Как стать автором
Обновить
4
Карма
0
Рейтинг

суперюзер

  • Публикации
  • Комментарии

Документирование архитектуры: введение (remastered)

Анализ и проектирование системПроектирование и рефакторинг


Прочел статью Документирование архитектуры: введение и решил описать изложенное с другим подходом.
Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Просмотры4.4K
Комментарии 10

Новости

Показать еще

Структуры данных и алгоритмы, которыми я пользовался, работая в технологических компаниях

RUVDS.comРазработка веб-сайтовПрограммированиеАлгоритмы
Перевод
Пользуетесь ли вы структурами данных и алгоритмами в повседневной работе? Я обратил внимание на то, что всё больше и больше людей считает алгоритмы чем-то таким, чем, без особой связи с реальностью, технические компании, лишь по собственной прихоти, интересуются на собеседованиях. Многие жалуются на то, что задачи на алгоритмы — это нечто из области теории, имеющей слабое отношение к настоящей работе. Такой взгляд на вещи, определённо, распространился после того, как Макс Хауэлл, автор Homebrew, опубликовал твит о том, что произошло с ним на собеседовании в Google:

Google: 90% наших инженеров пользуются программой, которую вы написали (Homebrew), но вы не можете инвертировать бинарное дерево на доске, поэтому — прощайте.

Хотя и у меня никогда не возникало нужды в инверсии бинарного дерева, я сталкивался с примерами реального использования структур данных и алгоритмов в повседневной работе, когда трудился в Skype/Microsoft, Skyscanner и Uber. Сюда входило написание кода и принятие решений, основанное на особенностях структур данных и алгоритмов. Но соответствующие знания я, по большей части, использовал для того чтобы понять то, как созданы некие системы, и то, почему они созданы именно так. Знание соответствующих концепций упрощает понимание архитектуры и реализации систем, в которых эти концепции используются.



В эту статью я включил рассказы о ситуациях, в которых структуры данных, вроде деревьев и графов, а так же различные алгоритмы, были использованы в реальных проектах. Здесь я надеюсь показать читателю то, что базовые знания структур данных и алгоритмов — это не бесполезная теория, нужная только для собеседований, а что-то такое, что, весьма вероятно, по-настоящему понадобится тому, кто работает в быстрорастущих инновационных технологических компаниях.
Читать дальше →
Всего голосов 71: ↑69 и ↓2 +67
Просмотры43.3K
Комментарии 53

Как я html-парсер на php писал, и что из этого вышло. Заключительная часть

PHPАлгоритмыHTML
🔥 Технотекст 2020
Tutorial
Здравствуйте.

Представляю вам заключительную главу цикла. В ней пойдет речь о реализации самого парсера, его модулей, вроде функции анализа, построения стека и dom дерева. Помимо этого поговорим и об обработке комментариев. Как оказалось, комментарии могут обрабатываться по разному.

Напишем свой поиск элементов, подробнее поговорим о поиске по классам и идентификаторам. И многое другое!
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры5.1K
Комментарии 2

Создаем EXE

Разработка под Windows
Из песочницы
Самоизоляция это отличное время приступить к тому, что требует много времени и сил. Поэтому я решил заняться тем, чем всегда хотел — написать свой компилятор.

Сейчас он способен собрать Hello World, но в этой статье я хочу рассказать не про парсинг и внутреннее устройство компилятора, а про такую важную часть как побайтовая сборка exe файла.
Читать дальше →
Всего голосов 96: ↑95 и ↓1 +94
Просмотры34.6K
Комментарии 48

stm32. Смотрим в корень

АлгоритмыCПрограммирование микроконтроллеров
Из песочницы

Вместо вступления


Статья содержит пример ручной оптимизации критического участка прикладной программы применительно к бюджетным микроконтроллерам stm32, повышающий производительность в 5 и более раз по сравнению с библиотечной функцией.

Читать дальше →
Всего голосов 18: ↑15 и ↓3 +12
Просмотры5.2K
Комментарии 29

Software v.s. Hardware. Или почему электронщику жить тяжело?

ПрограммированиеПроизводство и разработка электроники

С глубины прожитых лет, я уже давно понял, что различие между программированием и разработкой электроники в общем-то незначительные, а в конечном итоге это одно и тоже. В электронику уже давно проникли всякие контроли версий, регрессионное тестирование и прочие юнит-тесты, а программисты начинают считать надежность своих программ и проходить прочие сертификации и испытания. Программирование — это всегда новшества, новые технологии и новая философия. Электроника — это консерватизм и знание физики. Хороший программист помнит законы Кирхгофа, а хороший железячник умеет программировать. В любой более-менее сложной электронике уже есть программная часть, а любая программа требует аппаратуры на которой будет выполняться. Так что это одно и то же — обработка информации. Либо на уроне классов, массивов или переменных, либо на уровне аналогового сигнала на фоне шумов. И подходы должны быть одни и те же со стороны государства в части поддержки. Да, к сожалению поддержки, так как ковидная эпопея опять вбила клин между программистами и железячниками.
Читать дальше →
Всего голосов 37: ↑35 и ↓2 +33
Просмотры14.2K
Комментарии 58

Анализ данных из последнего слива Intel

Информационная безопасностьData MiningПроизводство и разработка электроники
Я порылся в 20 гигабайтах слитых данных с незащищённого CDN интела в поисках интересного и оценки серьёзности этой утечки.


КДПВ. Прототип ноутбука на Tiger Lake.

Краткое резюме


Большая часть слитой информации предназначена для OEM/ODM разработчиков и производителей, но заинтересует энтузиастов, исследующих BIOS и недокументированные режимы работы процессоров Intel. В них нет внутренней интеловской документации, критичной к обнародованию, или способной раскрыть секретные разработки. Также здесь не найти информации о неизвестных ранее уязвимостях.
Читать дальше →
Всего голосов 61: ↑61 и ↓0 +61
Просмотры33.5K
Комментарии 33

Использование таймеров systemd вместо заданий cron

RUVDS.comНастройка LinuxСистемное администрирование
Перевод
Сейчас я занимаюсь заменой моих cron-заданий на таймеры systemd. Я пользовался таймерами несколько лет, но обычно в тонкости их применения особо не углублялся, разбираясь лишь с тем, что нужно было для выполнения интересующей меня задачи. Недавно я работал над серией материалов про systemd и узнал о том, что systemd-таймеры обладают некоторыми очень интересными возможностями.



Эти таймеры, как и задания cron, могут, в заданное время, вызывать выполнение различных действий в системе. Например — запуск скриптов командной оболочки или программ. Таймеры могут срабатывать, например, раз в день, причём — только по понедельникам. Ещё один пример — срабатывание таймера каждые 15 минут в рабочее время (с 8 утра до 6 вечера). Но таймеры systemd могут кое-что такое, что недоступно заданиям cron. Например, таймер может вызвать скрипт или программу через заданное время после некоего события. Таким событием может быть загрузка системы или запуск systemd, завершение предыдущей задачи или даже завершение работы сервиса, вызванного ранее по таймеру.
Читать дальше →
Всего голосов 67: ↑67 и ↓0 +67
Просмотры23.8K
Комментарии 16

Это нужно знать каждому программисту (или ядреный кликбейт про кодерский сленг)

ФрилансIT-эмиграцияИстория ITИзучение языковIT-компании


YAGNI, KISS, DRY, WET, SLAP, ASAP, YOLO — что все это вообще значит?

Аве, Кодер! Если ты когда-нибудь читал англоязычную литературу по программированию, проходил курсы на английском языке, работал с англоязычными коллегами-кодерами или просто даже переписывался с ними, ты наверняка встречал эти аббревиатуры и, когда один бородатый кодер говорил другому KISS — гарантирую, что твоя бровь хотя бы немного приподнималась.

В этой статье мы разберем, что означают эти популярные в среде англоязычных IT-шников словечки, а точнее аббревиатурки.

Визуалам сюда: youtu.be/ub0YtnSwqRA
Читать дальше →
Всего голосов 42: ↑31 и ↓11 +20
Просмотры16.9K
Комментарии 23

15 базовых советов по Git для эффективной работы каждый день

ManyChatGitСистемы управления версиями
🔥 Технотекст 2020
Tutorial

Привет, меня зовут Сергеев Сергей aka gurugray. Сейчас я «Mentor FrontEnd Community» в компании ManyChat. Вы могли видеть мои лекции по релизному циклу и регламенту работ с системами контроля версий в Школе Разработки Интерфейсов Яндекса (ШРИ).


Меня часто спрашивают какие life-hacks или best-practices я использую при работе с Git'ом и репозиториями проекта.


Эта заметка — попытка объяснить те базовые настройки и приёмы, которыми я пользуюсь каждый день. Рецепты не претендуют быть ноу-хау, но могут помочь с освоением ежедневной гигиены работы с репозиторием.


Читать дальше →
Всего голосов 72: ↑68 и ↓4 +64
Просмотры52.4K
Комментарии 63

Издатель/подписчик для распределённых отказоустойчивых бортовых систем реального времени в 1500 строк кода

Системное программированиеРазработка робототехникиПрограммирование микроконтроллеровРобототехникаТранспорт

Сап, котятки.


Я пришёл рассказать о проекте UAVCAN — новом сетевом стандарте для организации взаимодействия узлов и компонентов современных транспортных средств с высоким уровнем автономности/автоматизации. Название является акронимом от Uncomplicated Application-level Vehicular Computing And Networking (несложные бортовые сети и коммуникации уровня приложения).


В этой публикации объясняется текущее положение дел и тренды в области сложных бортовых систем, существующие и грядущие проблемы, как мы их решаем и каких успехов добились. Во второй части наши коллеги из Университета Иннополис подробно осветят практическую сторону внедрения UAVCAN на примере конкретных проектов.



Конъюнктура


Первый блин проекта был заложен в 2014-м. С самого начала это был эксперимент в минимализме: возможно ли в разработке сложных распределённых бортовых систем опираться на мощные абстракции, избегая при этом роста сложности реализации и связанных с ним трудностей валидации и верификации.


Мы наблюдаем быстрый рост сложности бортовых систем, связанный с развитием функциональных возможностей транспортных средств (особенно беспилотных) в целом, и систем автоматического управления в частности.

Ну и что?
Всего голосов 21: ↑21 и ↓0 +21
Просмотры9.6K
Комментарии 17

Будущее автозаправок: 50 или 250 кВт

НПП ИТЭЛМАИсследования и прогнозы в ITНаучно-популярноеЭнергия и элементы питанияТранспорт
Перевод
Возможно, будущее зарядок электрического транспорта за станциями на 50 кВт, а не «заправками» на 250 кВт.

image

Зарядные станции на 350 кВт очень дороги, но их сторонники считают, что «больше – лучше» и относятся к зарядкам электрического транспорта как к бензиновым заправкам.

Автопроизводители участвуют в конкурсе «у кого больше», соревнуясь своими высокоскоростными зарядными станциями постоянного тока. Tesla была пионером, развернув сеть зарядных устройств мощностью на 120 кВт, которые впоследствии были модернизированы до 150 кВт. Porsche продемонстрировали зарядное устройство мощностью 350 кВт для своего Taycan. Tesla модернизировала свои новейшие станции до 250 кВт. Сети других производителей начинали с 50 кВт, но по мере улучшения системы зарядки CCS, новые установки (в частности, в сети «Electrify America») были доведены до 150 кВт (некоторые из них даже мощнее).

Установка зарядных устройств второго уровня (мощностью от 3 до 8 кВт) оказалась ошибкой – страну заполонили дорогие зарядные станции, которыми водители дальноходных современных электромобилей практически не пользуются. Эти зарядные устройства работают медленно, и либо они бесплатны, либо цена зарядки на них завышена. Их установка имеет смысл только в жилых кварталах, либо возле парковок и у отелей – в местах, где люди обычно проводят 4 часа и более. Тем не менее множество таких зарядок установлено в местах, где люди проводят от 30 минут до 2 часов (например, на парковках магазинов).
Читать дальше →
Всего голосов 6: ↑4 и ↓2 +2
Просмотры5K
Комментарии 23

Где прячется Российская электроника

LampTestПроизводство и разработка электроникиГаджетыУмный дом
Каждый раз, когда я пишу о российской электронике, в комментариях появляется множество людей, совершенно уверенных, что российской электроники не существует, и всё, что могут делать отечественные компании — это приклеивать наклейки «Сделано в России» на китайские устройства.

Читать дальше →
Всего голосов 155: ↑142 и ↓13 +129
Просмотры63.3K
Комментарии 242

Какие есть открытые ОС для сетевого оборудования

1cloud.ruOpen sourceСетевые технологииСерверное администрированиеСетевое оборудование
На днях мы обсудили, как госучреждения в Европе переходят на открытое ПО. Теперь расскажем, кто делает что-то подобное на уровне ИТ-инфраструктуры — на примере пары открытых ОС.

Читать дальше →
Всего голосов 10: ↑7 и ↓3 +4
Просмотры6.3K
Комментарии 9

Как сделать поиск по документам, накопленным почти за 100 лет. Опыт НПО Энергомаш и ABBYY

ABBYYПоисковые технологииИскусственный интеллектКосмонавтикаNatural Language Processing
Многие знают, что ABBYY занимается обработкой и извлечением данных из разных документов. Но у наших продуктов есть и другие интересные возможности. В частности, с помощью решения ABBYY Intelligent Search можно быстро и удобно искать информацию по смыслу в электронных документах из корпоративных систем. Этим уже пользуются крупные российские компании, например, производитель ракетных двигателей АО «НПО Энергомаш».

Многолетняя практика показывает, что время вывода космических двигателей на рынок от момента начала работ составляет от 5 до 7 лет. В то же время для удержания лидирующих позиций необходимо сокращать сроки разработки и изготовления до 3 – 4 лет. Кроме того, усиление конкуренции привело к необходимости существенного снижения стоимости выпускаемых двигателей на 30 – 50%.

Указанных показателей невозможно достигнуть без внедрения современных цифровых технологий. Наиболее передовые компании используют инновационные подходы не только на всех стадиях производства, но и на всех стадиях жизненного цикла их изделий. Чем больше компании уходят в цифру, тем острее становится вопрос: как использовать большие данные с максимальной для себя выгодой?

За 90 лет работы НПО Энергомаш накопил вековой объем документов (как бумажных, так и электронных) с ценной информацией о наработках испытателей и конструкторов. Большая часть документов уже хранится в информационных системах компании (ИС). Согласно исследованию IDC, в среднем сотрудники крупных организаций пользуются 5-6 внутренними ИС. Около 36% времени в среднем уходит на поиск информации – в масштабах крупной компании это тысячи рабочих часов в день.

Сегодня мы расскажем, как помогли НПО Энергомаш создать корпоративную интеллектуальную информационно-поисковую систему (КИИПС) на базе ABBYY Intelligent Search – такую же удобную и быструю, как популярные поисковики.
Читать дальше →
Всего голосов 32: ↑28 и ↓4 +24
Просмотры5.8K
Комментарии 15

Закон дырявых абстракций

SelectelПрограммированиеСетевые технологииIT-стандарты
Перевод

Текст, который установил «закон дырявых абстракций», был написан в 2002 году. Почему я перевожу его спустя почти 20 лет? Он до сих пор не потерял своей актуальности и достоин прочтения. Протокол TCP не получил лучшую альтернативу, а закон дырявых абстракций лишь укрепился в жизни разработчиков и рискует стать аксиомой. Добавлю, что я не пересчитывал все указанные в тексте временные рамки, так что учитывайте некоторый «сдвиг во времени».
Читать дальше →
Всего голосов 26: ↑23 и ↓3 +20
Просмотры10K
Комментарии 18

I see… hey, stop moving: как зрительная система компенсирует неточности саккад

ua-hosting.companyЧитальный залНаучно-популярноеБиотехнологииЗдоровье


Одним из самых важных органов чувств считаются глаза. Благодаря им мы получаем львиную долю информации об окружающем мире. Когда мы рассматриваем что-то, наш взор не фиксированный, т.е. наши глаза совершают множество мелких движений, именуемых саккадами. Из-за этих движений смещается сетчатка, что в свою очередь снижает четкость изображения (вспомните не самые удачные фильмы в стиле «мокьюментари»). Чтобы компенсировать этот эффект, зрительная система снижает свою чувствительность к смещению зрительных стимулов во время саккад. Однако до сего времени механизмы, лежащие в основе этого тонкого процесса, оставались не изучены. Посему ученые из университета Тохоку (Япония) решили провести ряд практических опытов и моделирований. Что показали эксперименты, какие секреты таит в себе гашение саккадического смещения, и почему так важны визуальные стимулы до и после саккад? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры5.3K
Комментарии 5

Самая доступная плата для экспериментов с SoC'ом MCU&FPGA

Высокая производительностьCFPGAПроизводство и разработка электроникиРобототехника
Из песочницы
Технологии шагают вперёд. И вот уже несколько лет как есть SoC’и MCU+FPGA. И на
КДПВ платка как раз с таким SoC’ом.

image

Это — Microsemi SmartFusion 2 Maker-Board. Кому интересно, что это за плата прошу под кат. Будет краткий обзор.
Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры9.5K
Комментарии 41

Крутые Data Scientist не тратят время на статистику

SkillFactoryУчебный процесс в IT
Перевод
image

Недавно я узнала, что один мой хороший друг получил докторскую степень по статистике, при этом он даже никогда не думал над вопросом: а какой собственно прок от статистики? О боже. Если не знаешь — для чего, тогда и не знаешь — нужно ли оно тебе. И раз профессорам это не очевидно, посмотрим, что смогу сделать я.

Статистика — это наука о том, как принимать решения в условиях неопределенности. Как вы можете думать? Следовать стандартным действиям или идти по пути априорных убеждений. Но что делать, если ваш разум не определился? Что если у вас еще не сложилось на этот счет никакого мнения?

Просто руководствуйтесь своими предположениями (это такой причудливый способ сказать, что “лучшая догадка строится на ваших знаниях”). Как это сделать? Посмотрите на данные, и скажите, что там. Это называется аналитикой (или data-mining), а если вам когда-нибудь доводилось пользоваться электронными таблицами, то вы наверняка уже ответили на вопрос. Дело в том, что ваше чутье поможет сделать правильную оценку и, соответственно, выбор. Поэтому всякая необходимость в сложных математических расчетах попросту отпадает.

«Но я ведь могу и ошибаться!» Конечно, ошибка не исключена, это и значит — попасть в неопределенность. В мире нет такой математики, благодаря которой можно было бы прийти к уверенному ответу. Ваша лучшая догадка может оказаться ошибочной, но тем не менее, раз это ваше лучшее предположение, на фоне него все остальные неправильны и даже скорее ошибочны.

Так что, сколько бы данных у вас не было, просто следуйте своей интуиции.

«Подождите, но мне нужно знать, достаточно ли у меня данных?» — Правда? А достаточно для чего?
Читать дальше →
Всего голосов 20: ↑8 и ↓12 -4
Просмотры4.9K
Комментарии 3

Юнит-тесты в uVision Keil (и не только)

C++TDDCПрограммирование микроконтроллеров

КПДВ


Не утихают споры о том, нужны ли юнит-тесты вообще, а если нужны — то как именно их писать. Сначала писать код или сначала писать тесты? Допустимо ли нарушать инкапсуляцию при тестировании или же можно трогать только публичное API? Сколько процентов кода должно быть покрыто тестами?


Тестирование во встраиваемых системах тоже порождает немало споров. Точки зрения разнятся от "покрытие должно быть 100% + нужны испытательные стенды" до "какие еще тесты, я программу написал — значит все работает".


Я не хочу начинать холивар и вооще стараюсь придерживаться некоего разумного баланса. Поэтому для начала предлагаю рассмотреть самые "низко висящие" плоды, которые позволяет сорвать юнит-тестирование применительно к embedded-разработке.

Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры4.5K
Комментарии 34

Информация

В рейтинге
5,829-й
Зарегистрирован
Активность