Pull to refresh
23
0
Andrei Odue @androude

C/C++/automotive-infotainment

Send message

Профилирование кода на C/С++ в *nix-системах

Reading time14 min
Views16K


Александр Алексеев (Postgres Professional)


Отличный обзорный доклад конференции HighLoad++ 2016 о том, как надо проводить профилирование программного кода. О типичных ошибках, происходящих при измерениях. И, конечно, об инструментах:

— gettimeofday
— strace, ltrace, truss
— gprof
— gdb / lldb
— perf
— pmcstat
— SystemTap
— DTrace
— HeapTrack
— BPF / bcc

image

В начале у меня будет не слишком техническая часть, о том, как не надо делать benchmark’и.

Я наблюдаю, что люди часто делают типичные ошибки, когда делают benchmark’и. И вот первая из них…
Total votes 23: ↑21 and ↓2+19
Comments2

Введение в архитектуры нейронных сетей

Reading time31 min
Views189K


Григорий Сапунов (Intento)


Меня зовут Григорий Сапунов, я СТО компании Intento. Занимаюсь я нейросетями довольно давно и machine learning’ом, в частности, занимался построением нейросетевых распознавателей дорожных знаков и номеров. Участвую в проекте по нейросетевой стилизации изображений, помогаю многим компаниям.

Давайте перейдем сразу к делу. Моя цель — дать вам базовую терминологию и понимание, что к чему в этой области, из каких кирпичиков собираются нейросети, и как это использовать.

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

Дальше я расскажу про важные тренды, что происходит в этой области. Затем мы углубимся в архитектуру нейросетей, рассмотрим 3 основных их класса. Это будет самая содержательная часть.

После этого рассмотрим 2 сравнительно продвинутых темы и закончим небольшим обзором фреймворков и библиотек для работы с нейросетями.
Читать дальше →
Total votes 54: ↑51 and ↓3+48
Comments2

Руководство по материалам электротехники для всех. Часть 2

Reading time12 min
Views45K
Продолжение руководства по материалам электротехники. В этой части продолжаем разбирать проводники: Железо, Золото, Никель, Вольфрам, Ртуть.
image

Добро пожаловать под кат (ТРАФИК)
узнать о материалах
Total votes 57: ↑56 and ↓1+55
Comments141

10 приёмов работы в терминале Linux, о которых мало кто знает

Reading time3 min
Views167K
Близкое знакомство с возможностями терминала — один из признаков человека, который хорошо разбирается в Linux. Хотя некоторые вещи запомнить сложно, есть довольно-таки простые, но эффективные приёмы, которые способны повысить качество и скорость работы в терминале. Пожалуй, каждый пользователь Linux рано или поздно обзаводится собственным списком ценных мелочей. Надеемся, некоторых из тех десяти приёмов работы в командной строке Linux, которыми мы хотим с вами поделиться, попадут в ваш личный список полезных команд.

Читать дальше →
Total votes 120: ↑95 and ↓25+70
Comments108

Элементы национальной инновационной системы США, ч. 2: политика, применяемая для развития инновационной среды

Reading time7 min
Views5.5K
«Треугольник успеха инноваций» состоит из бизнес-среды, регулятивной среды и политики, применяемой государством для развития инновационной среды. Первые два фактора мы рассмотрели в прошлой статье. Но они касаются экономики страны в целом, помогают понять, как устроена предпринимательская деятельность, за что приходится платить компаниям, как они могут получить налоговые льготы.

Сегодня мы рассмотрим те методы, которые федеральное правительство США и муниципальные власти страны применяют для развития непосредственно инноваций, для повышения эффективности коммерциализации изобретений и технологий, принятия технологий и привлечения инвестиций из других стран, развития коллаборации между бизнесом и учёной средой.

image
Калифорнийский технологический институт
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments8

Шаблоны проектирования с человеческим лицом

Reading time32 min
Views489K

image


Шаблоны проектирования — это способ решения периодически возникающих проблем. Точнее, это руководства по решению конкретных проблем. Это не классы, пакеты или библиотеки, которые вы можете вставить в своё приложение и ожидать волшебства.


Как сказано в Википедии:


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

image Будьте осторожны


  • Шаблоны проектирования — не «серебряная пуля».
  • Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
  • Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.

В статье приведены примеры на PHP 7, но пусть вас это не смущает, ведь заложенные в шаблонах принципы неизменны. Кроме того, внедряется поддержка других языков.

Читать дальше →
Total votes 148: ↑134 and ↓14+120
Comments98

DIY порошок для посудомойки: как не растворить посуду и не повторить моих ошибок. Год экспериментов

Reading time9 min
Views104K


Предыдущие публикации:

Пудра для мозга или как сделать порошок для посудомойки в 9,7 раз дешевле
DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт

Прошло уже больше года с момента последней публикации из серии домашней алхимии, посвященной издевательствам над бытовой техникой производству порошка для посудомойки в домашних условиях. Я все еще жив. Большинство тестировавших жуткие смеси, насколько мне известно, живы. В этом посте я хотел рассказать как правильно мыть ржавые гвозди в посудомойке, не растворяется ли картошка с укропом и подвести итог экспериментов за год.
Читать дальше →
Total votes 116: ↑116 and ↓0+116
Comments534

Глубокое обучение и Raspberry PI

Reading time5 min
Views29K
«Что у нас есть?» — спросил горбоносый поворачиваясь.
«Алдан-3», — сказал бородатый.
«Богатая машина, — сказал я.”[1]

Недавно я решил заняться изучением глубокого обучения. На работе мне выдали новую карточку с поддержкой CUDA и шеф выразил пожелание что эта вершина инженерной мысли позволит нашей лаборатории сделать рывок вперёд, ну или по крайней мере, не отстать от массы конкурентов. У меня уже был некоторый опыт общения с Tensor Flow, но в этот раз я решил попробовать Torch. Привлекало что он написан на языке Lua и C, является достаточно легковесным и легко расширяемым через FFI. И ещё мне не нравится Python.


Недавно на Хабрахабр я наткнулся на статью, в процессе обсуждения которой я вспомнил что где-то в тумбочке у меня пилится Raspberry Pi, модель B+ и мне захотелось посмотреть — а смогу ли я поднять на ней torch и запустить что-нибудь несложное.


Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments7

7 советов начинающему ИП, чтобы избежать проблем (что-то вы точно из этого не знаете)

Reading time10 min
Views957K


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


А для тех, кто открыл ООО, мы подготовили: 10 вещей, которые обязательно нужно сделать после регистрации ООО
Читать дальше →
Total votes 44: ↑41 and ↓3+38
Comments72

Переезд IT-шника в Германию: от А до Я

Reading time20 min
Views98K
Привет.

Germany Blue CardВ этом посте я хочу подробно рассказать о моём опыте переезда на работу PHP-разработчиком в Германию — от момента, когда есть просто желание переехать, но не знаешь что и как делать, до момента, когда уже переехал, вселился в квартиру и получил вид на жительство. Кроме того, в конце поста я приведу немного полезной информации и ссылок по переезду в некоторые другие страны.

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

Итак, если вы имеете IT-шное образование и вам интересна идея сваливания из печальной пост-совковой реальности, прошу под кат.
Читать дальше →
Total votes 211: ↑189 and ↓22+167
Comments163

Тонкости проектирования силовой платы инвертора

Reading time6 min
Views26K
Всем привет! Скромными шагами продолжаю цикл статей про разработку железа электробайка. Начнем с самого интересного — инвертора, который управляет мотором. Хочу подробнее рассказать о тонкостях построения силовой платы и о температурном режиме транзисторов.


Модель варп ядра электробайка
Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments26

Как накормить мозг программиста… или feed your brain

Reading time12 min
Views371K

Введение


Из всех наслаждений, отпущенных человеку в жизни,
самое изысканное — шевелить мозгами.
(Борис Акунин)


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

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

В данной публикации мы рассмотрим, как правильно питаться для жизнеобеспечения мозга и как его разогнать ноотропами (в случае аврала необходимости).
Читать дальше →
Total votes 213: ↑163 and ↓50+113
Comments145

Подборка полезных слайдов про Linux

Reading time1 min
Views46K
Недавно мы опубликовали перевод журнала про инструменты отладки для Linux, а теперь предлагаем подборку полезных слайдов для начинающих Linuxоводов от того же автора.


Читать дальше →
Total votes 60: ↑55 and ↓5+50
Comments30

[ В закладки ] Зоопарк архитектур нейронных сетей. Часть 1

Reading time10 min
Views92K


Это первая часть, вот вторая.
За всеми архитектурами нейронных сетей, которые то и дело возникают последнее время, уследить непросто. Даже понимание всех аббревиатур, которыми бросаются профессионалы, поначалу может показаться невыполнимой задачей.

Поэтому я решил составить шпаргалку по таким архитектурам. Большинство из них — нейронные сети, но некоторые — звери иной породы. Хотя все эти архитектуры подаются как новейшие и уникальные, когда я изобразил их структуру, внутренние связи стали намного понятнее.
Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments14

ESP8266 управление баней, 2 года — полет нормальный

Reading time4 min
Views25K
В данной статье хотел бы поделится результатами работы разработки 2х летней (конец 2014 — начало 2015 года производства) — одной из первых — это система управления баней. Делалась разработка «на коленке», в штучном экземпляре, с применением ЛУТ технологии (посему не такая красивая).

Давно не писал о новых разработках и за два года вектор развития сменился — сейчас на тех же esp есть чем похвастаться как штучными разработками, так и серийными — более 300 шт (на текущий момент). Но об этом позже.
Читать дальше →
Total votes 38: ↑33 and ↓5+28
Comments28

Как перестать бояться и полюбить mbed [Часть 3]

Reading time10 min
Views7.4K
Продолжаем серию публикаций, посвященных использованию среды ARM mbed для создания прототипа измерительного устройства.

Сегодня подключаем датчик.



Содержание цикла публикаций:


Третья часть под катом.
Total votes 13: ↑13 and ↓0+13
Comments4

HUD спидометр — от идеи до результата

Reading time5 min
Views23K
Всем привет!
Давно ничего не писал, теперь это больше новостной ресурс, а не практический. Попробую подправить ситуацию. Расскажу про разработку HUD-спидометра. Хоть и не лазерная проекция, зато доступно и компактно.
Введение
Началось с того, что мне в руки попали большие 3.3" семисегментные индикаторы. Заказывали их для часов, которые так и не родились. Надо было 4 шт, в лоте 5, китаец положил шесть. Оценив размер, яркость и отражение от лобового стекла я решил — вот оно. Благодаря размеру не видно раздвоения изображения, а якрость позволяет использовать даже при прямом солнце. Сразу соглашусь, что у китайцев есть красивые готовые штуки, которые стоят совсем недорого (все цены на момент написания статьи) — от 1800р. Недостатков всего пара (закроем глаза на неспортивность такого решения):
1. Надо клеить плёнку на стекло — она хоть и прозрачная, но всё ж перекрывает обзор, а я не люблю, когда на стекле что-то мешает. Чуть откинулся, сдвинул кресло — и плёнку надо переклеивать. Ну и даже с плёнкой почти ничего не видно в солнечный день.
2. Можно плёнку не клеить, тогда циферки (они довольно мелкие) двоятся, а в солнце не видно вообще ничего.
Для затравки, результат без плёнки в любом месте стекла и даже днём:


Под катом обещаю много картинок, посредственное видео, код и текст — всё в лучших традициях.
Total votes 30: ↑30 and ↓0+30
Comments48

Распознавание цифр на микроконтроллере

Reading time4 min
Views19K
Привет, Гиктаймс!

UPD: Есть видео демонстрация.

Как видно из названия речь в этой статье пойдет о распознавании цифр на микроконтроллере. Сразу хочу оговориться, что в данной статье не будет приведен исходный код, рассматриваться технология или алгоритм распознавания, скажу лишь, что используются идеи системного подхода. Некоторые из них изложены в наших статьях (здесь, здесь и вот здесь). Это связано с тем, что наш подход тянет на оригинальность, но требует уточнения некоторых вопросов. Кто-то может сказать: «очередная статья про программирование микроконтроллеров». Отнюдь нет, поиск подобных проектов не дал каких-то внятных результатов, за исключением этого видео. Из обсуждений на форумах понятно одно: идея получения подобного устройства (камера + микроконтроллер = результат распознавания на выходе, а не просто снятая картинка) приходила многим, но оставалась без реализации. Да и распознавание, по общему мнению, требует много вычислительных ресурсов и микроконтроллеры для этого не подходят, в частности про Arduino были высказывания, что это вообще невозможно. Если стало интересно прошу под кат.


Читать дальше →
Total votes 28: ↑21 and ↓7+14
Comments36

Алгоритм Левенберга — Марквардта для нелинейного метода наименьших квадратов и его реализация на Python

Reading time9 min
Views65K



Нахождение экстремума(минимума или максимума) целевой функции является важной задачей в математике и её приложениях(в частности, в машинном обучении есть задача curve-fitting). Наверняка каждый слышал о методе наискорейшего спуска (МНС) и методе Ньютона (МН). К сожалению, эти методы имеют ряд существенных недостатков, в частности — метод наискорейшего спуска может очень долго сходиться в конце оптимизации, а метод Ньютона требует вычисления вторых производных, для чего требуется очень много вычислений.



Для устранения недостатков, как это часто бывает, нужно глубже погрузиться в предметную область и добавить ограничения на входные данные. В частности: МНС и МН имеют дело с произвольными функциями. В статистике и машинном обучении часто приходится иметь дело с методом наименьших квадратов (МНК). Этот метод минимизирует сумму квадрата ошибок, т.е. целевая функция представляется в виде



\frac{1}{2}\sum \limits_{i=1}^{N}(y_i'-y_i)^2 = \frac{1}{2}\sum \limits_{i=1}^{N}r_i^2 \tag{1}


Алгоритм Левенберга — Марквардта является нелинейным методом наименьших квадратов. Статья содержит:


  • объяснение алгоритма
  • объяснение методов: наискорейшего спуска, Ньтона, Гаусса-Ньютона
  • приведена реализация на Python с исходниками на github
  • сравнение методов

Читать дальше →
Total votes 80: ↑78 and ↓2+76
Comments28

Information

Rating
Does not participate
Location
Karlsruhe, Baden-Württemberg, Германия
Date of birth
Registered
Activity