Как стать автором
Обновить
9
0
Илья Подшивалов @Harrowmont

Программист

Отправить сообщение

Синтез изображений с помощью глубоких нейросетей. Лекция в Яндексе

Время на прочтение15 мин
Количество просмотров48K
Пусть в блоге Яндекса на Хабрахабре эта неделя пройдет под знаком нейронных сетей. Как мы видим, нейросети сейчас начинают использоваться в очень многих областях, включая поиск. Кажется, что «модно» искать для них новые сферы применения, а в тех сферах, где они работают уже какое-то время, процессы не такие интересные.

Однако события в мире синтеза визуальных образов доказывают обратное. Да, компании еще несколько лет назад начали использовать нейросети для операций с изображениями — но это был не конец пути, а его начало. Недавно руководитель группы компьютерного зрения «Сколтеха» и большой друг Яндекса и ШАДа Виктор Лемпицкий рассказал о нескольких новых способах применения сетей к изображениям. Поскольку сегодняшняя лекция — про картинки, то она очень наглядная.


Под катом — расшифровка и большинство слайдов.

Всего голосов 87: ↑84 и ↓3+81
Комментарии10

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

Время на прочтение10 мин
Количество просмотров92K


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

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

IT-студент с жаждой путешествий? Пора в магистратуру

Время на прочтение9 мин
Количество просмотров20K

Добрый день, Хабр!


Я IT-студентка, выпускница одного из старейших университетов Москвы, внезапно нашедшая себя в магистратуре в Европе. Не хочу агитировать за "утечку мозгов" или нечто подобное, правда, но по воле случая много знакомых спрашивали о процессе application, поэтому мне показалась интересной идея поделиться годом поисков и наработанными скиллами с более широкой аудиторией. Итак, поехали.

Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии72

Компиляция и подключение динамических модулей nginx

Время на прочтение4 мин
Количество просмотров35K

Эта статья расскажет, как скомпилировать и установить динамические модули в nginx в текущую его установку.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии24

Анализ производительности отдельных подсистем программы по Linux perf report

Время на прочтение5 мин
Количество просмотров8.8K

Обычно для подготовки отчета по профилированию на Linux я использовал только самые простые варианты запуска perf report (сами данные по производительности должны быть получены до запуска perf report командой perf record, вот тут можно подробнее прочесть с примером):


Отчет по модулям:


$ perf report --stdio --kallsyms=/boot/System.map-$(uname -r) --sort=dso -g none

Отчет по функциям:


perf report -g none --stdio --kallsyms=/boot/System.map-$(uname -r)

Отчет по функциям с построением callgraph:


perf report --stdio --kallsyms=/boot/System.map-$(uname -r) -g

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

Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии1

VIM: зачем, если есть IDE, и как?

Время на прочтение4 мин
Количество просмотров125K

Сегодня вышел текст о том, как человек перешёл с Sublime на VIM. В комментариях, как обычно это бывает, появились сообщения в духе "Зачем мне тратить время на Vim, если есть IDE, где всё работает?" (люди даже статьи на эти темы пишут). Хотел внести свои пять копеек, но объём написанного плавно перевёл текст из разряда "комментарий" в разряд небольшой статьи.


В целом, всё, что ниже — это вкусовщина, конечно. Нравится вам ваша IDE (или ваш текущий инструмент), да и пожалуйста. Используйте для текущих задач то, чем вы владеете лучше всего, это аксиома эффективной работы. Но если у вас вдруг появилось немного времени на повышение вашей эффективности в целом, то попробую вас заинтересовать именно Vim'ом, сравнивая его с некой обобщенной IDE.


Узнать зачем и как начать
Всего голосов 100: ↑75 и ↓25+50
Комментарии401

C++ без new и delete

Время на прочтение15 мин
Количество просмотров88K
Привет, хабравчане!

Меня зовут Михаил Матросов, я технический менеджер в компании Align Technology. Сегодня я поработаю капитаном и немного расскажу об основах современного С++.

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

Мне бы хотелось поговорить об этих основах и начну я со своей любимой темы. Будем говорить об операторах new и delete. А точнее, об их отсутствии. Я расскажу, как писать надёжный и современный код на С++ без использования операторов new и delete.

Казалось бы, тема стара как мир, Саттер и Майерс в своё время всё разложили по полочкам. Именно поэтому я не буду вдаваться в ненужные подробности, отправляя читателей к первоисточникам. Моя цель собрать информацию по вопросу в одном месте, дать соответствующие ссылки и сформулировать ёмкие рекомендации.

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


Изображение взято с сайта behappy.me
Читать дальше →
Всего голосов 59: ↑59 и ↓0+59
Комментарии134

Динамический неоднородный плотно упакованный контейнер

Время на прочтение11 мин
Количество просмотров20K

Определение 1. Однородный контейнер – это такой контейнер, в котором хранятся объекты строго одного типа.


Определение 2. Неоднородный контейнер — это такой контейнер, в котором могут храниться объекты разного типа.


Определение 3. Статический контейнер — это контейнер, состав которого полностью определяется на этапе компиляции.


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

Определение 4. Динамический контейнер — это контейнер, состав которого частично или полностью определяется на этапе выполнения.


По такой классификации, очевидно, существуют четыре вида контейнеров:


  1. Статические однородные


    Сможете придумать пример?

    Обычный массив — int[n].


  2. Статические неоднородные


    Примеры?

    Наиболее яркий пример такого контейнера — это кортеж. В языке C++ он реализуется классом std::tuple<...>.


  3. Динамические однородные


    Догадались?

    Правильно, std::vector<int>.


  4. Динамические неоднородные


    Вот об этом виде контейнеров и пойдёт речь в данной статье.


Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии64

Десять возможностей C++11, которые должен использовать каждый C++ разработчик

Время на прочтение12 мин
Количество просмотров532K
В данной статье рассматривается ряд возможностей С++11, которые все разработчики должны знать и использовать. Существует много новых дополнений к языку и стандартной библиотеке, эта статья лишь поверхностно охватывает часть из них. Однако, я полагаю, что некоторые из этих новых функций должны стать обыденными для всех разработчиков С++. Подобных статей наверное существует много, в этой я предприму попытку составить список возможностей, которые должны войти в повседневное использование.

Сегодня в программе:
  • auto
  • nullptr
  • range-based циклы
  • override и final
  • строго-типизированный enum
  • интеллектуальные указатели
  • лямбды
  • non-member begin() и end()
  • static_assert и классы свойств
  • семантика перемещения
Читать дальше →
Всего голосов 133: ↑125 и ↓8+117
Комментарии115

Математическая модель восприятия (Часть 1)

Время на прочтение10 мин
Количество просмотров25K
Часть 2
Часть 3

Введение (Языковая природа абстрактных понятий)


Цель этой работы показать, как языки наподобие английского, в качестве естественного и эффективного метода могут возникнуть на различных уровнях процесса восприятия. Попутно затронуты вопросы механизмов, позволяющих нам и животным видеть, классифицировать по форме цветовые пятна, составлять представление о местах, предметах и их геометрических свойствах. Несколько слов посвящено чисто языковым проблемам: тому, какие понятия и методы должны присутствовать в любом достаточно выразительном описательном языке среди первоначальных, а какие, в качестве производных, из первоначальных могут быть получены.
Каким же образом мог бы участвовать язык, например, в процессе зрительного восприятия? Каждый из нас привык говорить о своей способности видеть дерево, слышать пение птиц и чувствовать тепло, держа руку над свечой. Тем не менее нашему
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии40

RTKLib + Python + Google Maps JS API. Делаем свой навигатор

Время на прочтение4 мин
Количество просмотров24K
Здравствуйте!

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

Я подумал тогда: спутниковые системы, спутниковые приемники, геодезия, съемочные работы — близко соприкасающиеся вещи в строительной и инженерной области. И появилась тема дипломного проекта: применение одночастотных спутниковых приемников в земельном кадастре.

Понятное дело, что применять одночастотники в земельном кадастре, да и в геодезии — дело неразумное: помехи, точность, продолжительность приема сигнала. Но мне было важно посмотреть и разобраться, как работает приемник, как обрабатываются данные, как можно визуализировать результат. Мне было интересно.

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

image
Читать дальше
Всего голосов 11: ↑11 и ↓0+11
Комментарии11

Хотите бесплатный волшебный пинок? Время действовать

Время на прочтение5 мин
Количество просмотров6.2K

28 апреля 2016 г. Ассоциация студенческих бизнес инкубаторов России запустила образовательную программу «Время действовать».
Суть программы в дистанционном обучении студентов и активной молодежи тем знаниям и навыкам, которые необходимы для старта и развития бизнеса. Обучение представляет собой онлайн-трансляции известных спикеров и самостоятельную работу на образовательной платформе. Для лучшего усвоения информации предлагаются дополнительные материалы и сервисы, которые доступны на образовательной платформе «Время действовать». Сама программа, чай, кофе и печеньки – все бесплатно для участников съемок в Москве, а также студентов и сотрудников ВУЗов, где реализуется эта программа.
Я посетил все занятия, пообщался с организаторами и эксклюзивно для читателей Мегамозга готов поделиться своими впечатлениями, что же из себя представляет эта программа и как в ней принять участие.
Читать дальше →
Всего голосов 11: ↑5 и ↓6-1
Комментарии1

Каково это — быть разработчиком, когда тебе сорок

Время на прочтение18 мин
Количество просмотров229K
Примечание от переводчика:

Этот пост был написан и опубликован на Medium разработчиком приложений Адрианом Космачевским из Швейцарии. Кроме подготовки перевода его публикации, я также пригласил и самого автора, Адриана ( akosma ), на Хабр, для того, чтобы он смог лично ответить на любые вопросы участников сообщества, если таковые возникнут. Думаю, для общего удобства при общении в комментариях с ним стоит использовать английский (и, при желании, дублировать на русском).



Привет всем, я — сорокадвухлетний программист-самоучка, а это моя история.

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

image

Эти размышления привели меня туда, откуда все начиналось.

Я дебютировал в роли разработчика программного обеспечения в 10 часов утра 6 октября 1997 года, в городе Оливос, к северу от Буэнос-Айреса, в Аргентине. Был понедельник. Не так давно я праздновал свой 24-й день рождения.

Мир в 1997 году


Тогда он был немного другим. На веб-сайтах не было предупреждений об использовании cookie. Новаторскими в сети были сайты вида Excite.com, а моим любимым поисковиком был AltaVista.

Мой электронный ящик имел вид kosmacze@sc2a.unige.ch и был расположен на личном веб-сайте, который размещался по адресу http://sc2a.unige.ch/~kosmacze. Тогда мы еще оплакивали принцессу Диану, а Стив Джобс только-только вернулся на роль CEO и убедил Microsoft «вбросить» в Apple Computer 150 миллионов долларов. Digital Equipment Corporation подала в суд на Dell, останки Че Гевары вернули на Кубу, только начался четвертый (!) сезон «Друзей». Был убит Джанни Версаче, скончались Мать Тереза, Рой Лихтенштейн и Жанна Кальман. Люди зависали за Final Fantasy 7 на PlayStation, будто бы были наркоманами, Би-Би-2 начал вещание телепузиков, а Кэмерон только собирался показать миру свой «Титаник».
Читать дальше →
Всего голосов 200: ↑194 и ↓6+188
Комментарии321

Анатомия драйвера

Время на прочтение5 мин
Количество просмотров26K
Опять вернёмся в традиционную область разработки операционных систем (и приложений для микроконтроллеров) — написание драйверов.

Я попробую выделить некоторые общие правила и каноны в этой области. Как всегда — на примере Фантома.

Драйвер — функциональная компонента ОС, ответственная за отношения с определённым подмножеством аппаратуры компьютера.

С лёгкой руки того же Юникса драйвера делятся на блочные и байт-ориентированные. В былые времена классическими примерами были драйвер диска (операции — записать и прочитать сектор диска) и драйвер дисплея (прочитать и записать символ).

В современной реальности, конечно, всё сложнее. Драйвер — типичный инстанс-объект класса, и классов этих до фига и больше. В принципе, интерфейс драйверов пытаются как-то ужать в прокрустово ложе модели read/write, но это самообман. У драйвера сетевой карты есть метод «прочитать MAC-адрес карты» (который, конечно, можно реализовать через properties), а у драйвера USB — целая пачка USB-специфичных операций. Ещё веселее у графических драйверов — какой-нибудь bitblt( startx, starty, destx, desty, xsize, ysize, operation ) — обычное дело.

Цикл жизни драйвера, в целом, может быть описан так:

  • Инициализация: драйвер получает ресурсы (но не доступ к своей аппаратуре)
  • Поиск аппаратуры: драйвер получает от ядра или находит сам свои аппаратные ресурсы
  • Активация — драйвер начинает работу
  • Появление/пропадание устройств, если это уместно. См. тот же USB.
  • Засыпание/просыпание аппаратуры, если это уместно. В контроллерах часто неиспользуемая аппаратура выключается для экономии.
  • Деактивация драйвера — обслуживание запросов прекращается
  • Выгрузка драйвера — освобождаются все ресурсы ядра, драйвер не существует.


(Вообще я написал в прошлом году черновик открытой спецификации интерфейса драйвера — см. репозиторий и документ.)

Мне известны три модели построения драйвера:

  • Поллинг
  • Прерывания
  • Нити (threads)

Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии13

Дайджест Университета ИТМО: #1 Oбразование и наука

Время на прочтение5 мин
Количество просмотров10K


Сегодня мы решили собрать в одном дайджесте полезные ссылки по темам, связанным с научной и образовательной деятельностью Университета ИТМО. В подборку вошли научные журналы, интересные статьи о научных достижениях и открытые учебные курсы.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии0

Как я писал книгу 'Python Machine Learning'

Время на прочтение7 мин
Количество просмотров43K
Здравствуйте, уважаемые хабровчане!

В настоящее время мы всерьез намерены в обозримом будущем порадовать вас серьезной книгой по машинному или глубинному обучению. Среди книг, вызвавших у нас наибольший интерес, особого упоминания заслуживает работа Себастьяна Рашки "Python Machine Learning"



Предлагаем почитать, что сам автор рассказывает об этой книге. Мы позволили себе сократить статью практически вдвое, так как вся ее вторая часть посвящена тонкостям писательского труда и оформления книги, а тематические тонкости и актуальность темы рассмотрены в самом начале. Надеемся, что вам понравится текст, а нам — результаты опроса.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии11

Рудольф Сворень — человек легенда (автор книги «Электроника шаг за шагом»). Часть 2

Время на прочтение7 мин
Количество просмотров77K
"Knowledge is power" — известная фраза («Знание — сила») не менее значима и в наши дни.

Знание определяет профессионализм и ценность сотрудника, успешность компании, уровень развития государства и в итоге возможности всего человечества.

Учителя, книги — это главная сила знаний, но и их успешность зависит от выбранной стратегии и от самого стиля объяснения учебного материала.

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

Книги и статьи Рудольфа Свореня обладают той удивительной способностью объяснить сложные вещи доступным и понятным языком, поэтому их так любят и ценят. Вот некоторые цитаты:


«Книга редкая и отличная по содержанию и манере изложения. Рудольф Сворень вне конкуренции. Замечательные рисунки Фролова дополняют текст и увлекают еще больше. Сын подрастёт, обязательно распечатаю для него. Жаль, теперь таких книг не делают в принципе»

Примерно так же оценивают то, что сделал Рудольф Анатольевич Сворень, который более 40 лет был редактором и автором в журнале «Наука и жизнь».

«С удовольствием читал публикации Свореня в „Науке и жизни“ на протяжении многих-многих лет. Как-то он чувствовал грань между „простотой изложения“ и „примитивностью изложения“. Даже будучи уже вполне „образованным“, было интересно взглянуть на давно известную вещь как-бы со стороны, глазами пацана. И понимаешь, что если бы эта статья попалась тебе в отрочестве, то ты бы понял всё, о чем в ней говорится!»

К сожалению, очень мало информации об этом замечательном человеке, поэтому мы хотели бы заполнить этот пробел — публикацией воспоминаний от Рудольфа Анатольевича (первая часть). И так же мы планируем организовать переиздание классической книги «Электроника шаг за шагом» (об этом в конце статьи).

Вторая часть воспоминаний Рудольфа Анатольевича Свореня и его планы (публикуется впервые):


Мой переход в редакцию [журнала «Радио»] совпал по времени с невиданно быстрым прогрессом радиоэлектроники – появились и совершили переворот в схемотехнике серийные транзисторы, а вскоре их высокочастотные и достаточно мощные типы. Широко осваивались сантиметровые и дециметровые диапазоны. Были созданы новые технологии производства транзисторов, а затем и интегральных схем – достаточно вспомнить, что уже несколько лет выпускаются размером с почтовую марку интегральные схемы, в каждой из которых до трех миллиардов (!!!) сложным образом точно соединенных деталей. А ведь для того, чтобы получился миллиард песчинок, нужно собрать 6 тысяч мешков песка. Отметим, что вся эта новейшая техника выпускалась, как говорится, без прикосновения человеческой руки – её делали и проверяли автоматы.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии17

Новый курс по микроконтроллерам — совместный проект индустрии и университетов

Время на прочтение2 мин
Количество просмотров20K
Британская компания, две американские компании и 18 университетов (включая российские МИЭТ, ИТМО, СГАУ, ННТУ) сотрудничали, чтобы выпустить современный курс по микроконтроллерам c небольшой привязкой к интернету вещей. Об этом – сегодняшний пресс-релиз Imagination Technologies, Microchip Technology и Digilent (отделения National Instruments). Главный автор — профессор Александр Дин из университета Северной Каролины. В отличие от более легковестных курсов интернета вещей, новый курс подводит под предмет твердую инженерную базу – в нем подробно обсуждается использование RTOS-ов, архитектура микропроцессорного ядра микроконтроллера, протоколы периферии и даже оптимизация алгоритмов при программировании.

07_Communications

Скачать курс можно здесь:

https://community.imgtec.com/downloads/connected-microcontroller-lab-v1.2/

В пресс-релизе, помимо цитат из США, Великобритании, Германии, Китая, есть и цитата из России:
“MIET is part of Imagination’s MIPSfpga and Connected MCU Lab beta-testing programs. Our students have benefited from the MIPSfpga hands-on workshops and we are looking forward to implementing the Connected MCU Lab at our university because this course offers an up-to-date and well-structured curriculum for teaching embedded solutions to future engineers.”

– Alexey Pereverzev, Head of Computer Engineering, National Research University of Electronic Technology (MIET), Russia



Пару десятков слайдов из курса, чтобы вы почувствовали его вкус:

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии37

Создание пакета Debian с нуля

Время на прочтение10 мин
Количество просмотров38K
Создание пакета Debian с нуля является своего рода волшебным процессом. Вы могли бы начать гуглить с запросом “Создание пакета Debian с нуля” и получить множество результатов, ни один из которых не стал бы тем, который Вам необходим. Несомненно, Вы найдете большой обзор команд, которые используются в Debian и, если Вы роете достаточно глубоко, Вы сможете все же найти пару команд, которые помогут создать базовый пакет Debian, но не смогут объяснить, что происходит. Более подробную информацию о том, что все же «происходит» Вы можете получить, в данном посте мы попробуем это частично затронуть.

Читать дальше →
Всего голосов 51: ↑34 и ↓17+17
Комментарии27

Python: вещи, которых вы могли не знать

Время на прочтение8 мин
Количество просмотров311K
Python — красивый и местами загадочный язык. И даже зная его весьма неплохо, рано или поздно находишь для себя нечто такое, что раньше не использовал. Этот пост отражает некоторые детали языка, на которые многие не обращают внимание. Сразу скажу: многие примеры являются непрактичными, но, оттого, не менее интересными. Так же, многие примеры демонстрируют unpythonic стиль, но я и не претендую на новые стандарты — я просто хочу показать, что можно делать вот так.
Читать далее
Всего голосов 139: ↑120 и ↓19+101
Комментарии120
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность