Как стать автором
Обновить
35
Карма
0
Рейтинг
Дмитрий @GraD_Kh

C++ Enginner

Операционные системы с нуля; Уровень 1 (младшая половина)

Время прочтения 17 мин
Просмотры 42K
Программирование *Системное программирование *Rust *Программирование микроконтроллеров *
Туториал

Эта часть посвящена улучшению навыков работы с Rust и написанию парочки полезных утилиток и библиотек. Напишем драйверы для GPIO, UART и встроенного таймера. Реализуем протокол XMODEM. Используя это всё, напишем простенький шелл и загрузчик. Перед прочтением настоятельно рекомендуется убедиться в прочтении Книги. По крайней мере от начала и до конца. Для ленивых, но чуть более опытных можно рекомендовать это. На русском можно поковырять вот тут.


Ну и разумеется обходить стороной нулевой уровень совершенно не стоит. Алсо где-то половина этой части не требует малинки.

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

Операционные системы с нуля; Уровень 0

Время прочтения 11 мин
Просмотры 126K
Системное программирование *C *Rust *Программирование микроконтроллеров *
Туториал
Перевод

Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


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

Читать дальше →
Всего голосов 80: ↑78 и ↓2 +76
Комментарии 55

Что читать о нейросетях

Время прочтения 6 мин
Просмотры 112K
Блог компании VK Программирование *Обработка изображений *Профессиональная литература *Машинное обучение *


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


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


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

Читать дальше →
Всего голосов 59: ↑58 и ↓1 +57
Комментарии 44

Специализация по алгоритмам и структурам данных от Яндекса, Вышки, UC San Diego и CSC

Время прочтения 7 мин
Просмотры 27K
Блог компании Яндекс Программирование *Алгоритмы *Математика *Промышленное программирование *
Какие алгоритмы используют социальные сети, чтобы осуществлять поиск по графу друзей? Как телекомпании выбирают, какую рекламу показывать, чтобы максимизировать прибыль? Как собрать геном из миллионов фрагментов? Как вычислить кратчайший путь из Нью-Йорка в Маунтин Вью в тысячи раз быстрее, чем это делают классические алгоритмы?

На Coursera появилась еще одна полезная специализация, созданная при участии Яндекса, — «Алгоритмы и структуры данных». Среди преподавателей не только представители Яндекса, Вышки, петербургского Computer Science Center, но и лекторы Калифорнийского университета в Сан-Диего, поэтому на этот раз все курсы специализации англоязычные.



Всего их пять, в конце слушателей ждет финальный проект. Один из них связан с биоинформатикой, второй — с поиском кратчайших путей в настоящих дорожных сетях и графах. В формате специализации все материалы доступны бесплатно. Оплата понадобится только в том случае, если вы захотите отправлять домашние задания на проверку и получить сертификат. Тогда вам нужно будет запрограммировать и сдать около 100 задач в тестирующую систему. Сделать это можно на C, C++, C#, Haskell, Java, JavaScript, Python2, Python3, Ruby и Scala.

Сегодня начинается первый курс — Algorithmic Toolbox. Под катом — программа специализации, информация о преподавателях и их мнение о том, кому она будет полезна и почему.
Читать дальше →
Всего голосов 51: ↑48 и ↓3 +45
Комментарии 24

Лекции Технопарка. 1 семестр. С/С++

Время прочтения 6 мин
Просмотры 109K
Блог компании VK Программирование *C++ *C *
Туториал
Мы продолжаем наши еженедельные публикации учебных материалов Технопарка. Предыдущие лекции были посвящены web-технологиям в целом, а также алгоритмам и структурам данных. В третьем блоке лекций рассказывается о языках С и С++.

Лекция 1. Язык С. Основы организации и использования оперативной и сверхоперативной памяти


Лекция начинается с введения в язык С: рассказывается об истории его появления, особенностях, преимуществах и недостатках, о сферах применения. Описываются основы препроцессорной обработки, рассматриваются вопросы управления памятью (модели управления памятью, области видимости объектов хранения) и производительность программ на языке С. Обсуждается связывание объектов хранения и их инициализация. Затем рассказывается о классах памяти в языке С. Следующая часть лекции посвящена проблематике указателей, а также работе с одномерными массивами. В заключение рассматривается стандарт POSIX и вопросы переносимости.


Читать дальше →
Всего голосов 72: ↑70 и ↓2 +68
Комментарии 83

KinectFusion — построение 3D сцены в реальном времени

Время прочтения 2 мин
Просмотры 10K
IT-компании


Microsoft Research на SIGGRAPH продемонстировал очень интересную разработку — KinectFusion. Софт позволяет в _реальном_ времени восстанавливать 3D сцену на основе данных с Kinect-а, а также выполнять сегментацию и трекинг объектов.

Технология впечатлила, думаю, что теперь становятся реальными игры, в которые можно будет передавать предметы и окружение из реальности. Кстати можно ведь и наоборот, сейчас наблюдается бум развития технологии 3D печати, вполне возможно, что скоро это будет доступно. Имея такое доступное сканирование и печать, получаем возможность электронной передачи реальных объектов. Но это конечно только один из вариантов использования.

Под катом небольшой разбор видео:
  • Построение 3D модели (треугольной сетки)
  • Текстурирование модели
  • Дополненная реальность – бросаем шарики в сцену
  • Дополненная реальность – бросаем шарики в сцену, сцена изменяемая
  • Сегментация – веделяется предмет, который убираем
  • Трекинг – отслеживаем выделенный объект
  • Сегментация и трекинг – рисуем пальцами на предметах

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

Стэнфорд организует бесплатный онлайн-курс по ИИ

Время прочтения 1 мин
Просмотры 7.1K
Искусственный интеллект
Стэнфордский университет организует бесплатный онлайн-курс CS221 по искусственному интеллекту осенью этого года. Курс будет проходить с 2 октября по 16 декабря.

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

В десятинедельный курс входит примерно двадцать лекций, около восьми домашних заданий, один промежуточный и один итоговый экзамен.
Читать дальше →
Всего голосов 80: ↑76 и ↓4 +72
Комментарии 25

Рекомендации для начала карьерного роста

Время прочтения 7 мин
Просмотры 16K
Карьера в IT-индустрии
По мотивам недавно прошедшей конференции в ЯрГУ 25 марта, на которую пришло уж очень немного народу, решил я написать небольшой мотивирующий пост для студентов и начинающих программистов/IT специалистов. Мою презентацию с доклада можно посмотреть на skydrive. Здесь же я постараюсь вкратце, на сколько это возможно, осветить этот доклад.

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

Ну и до нас не раз еще поднимали эту тему. Рекомендую читать и заряжаться всеми этими топиками.
Читать дальше →
Всего голосов 120: ↑110 и ↓10 +100
Комментарии 104

Введение в оптимизацию. Имитация отжига

Время прочтения 10 мин
Просмотры 168K
Алгоритмы *Математика *
Из песочницы
В этой статье я постараюсь максимально доходчиво рассказать о таком простом, но эффективном методе оптимизации, как имитация отжига (simulated annealing). А чтобы не быть причисленным к далёким от практики любителям теоретизировать, я покажу как применить этот метод для решения задачи коммивояжёра.

Для понимания статьи Вам понадобятся минимальные навыки программирования и владение математикой на уровне 9 класса средней школы. Статья рассчитана на людей не знакомых с методами оптимизации или только делающих первые шаги в этом направлении.

image


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

Пару слов о распознавании образов

Время прочтения 13 мин
Просмотры 301K
Алгоритмы *Обработка изображений *
Туториал
Давно хотел написать общую статью, содержащую в себе самые основы Image Recognition, некий гайд по базовым методам, рассказывающий, когда их применять, какие задачи они решают, что возможно сделать вечером на коленке, а о чём лучше и не думать, не имея команды человек в 20.
image

Какие-то статьи по Optical Recognition я пишу давненько, так что пару раз в месяц мне пишут различные люди с вопросами по этой тематике. Иногда создаётся ощущение, что живёшь с ними в разных мирах. С одной стороны понимаешь, что человек скорее всего профессионал в смежной теме, но в методах оптического распознавания знает очень мало. И самое обидное, что он пытается применить метод из близрасположенной области знаний, который логичен, но в Image Recognition полностью не работает, но не понимает этого и сильно обижается, если ему начать рассказывать что-нибудь с самых основ. А учитывая, что рассказывать с основ — много времени, которого часто нет, становится всё ещё печальнее.
Распознать
Всего голосов 130: ↑129 и ↓1 +128
Комментарии 52

Предобучение ограниченными машинами Больцмана для распознавания реальных изображений

Время прочтения 8 мин
Просмотры 19K
Data Mining *
Из песочницы
image
Доброго времени суток. Этот топик рассчитан на тех, кто имеет представление об ограниченных машинах Больцмана (restricted Boltzmann machine, RBM) и их использовании для предобучения нейронных сетей. В нем мы рассмотрим особенности применения ограниченных машин Больцмана для работы с изображениями, взятыми из реального мира, поймем, почему стандартные типы нейронов плохо подходят для этой задачи и как их улучшить, а также немного пораспознаем выражения эмоций на человеческих лицах в качестве эксперимента. Те, кто представления o RBM не имеет, могут его получить, в частности, отсюда:

Реализация Restricted Boltzmann machine на c#,
Предобучение нейронной сети с использованием ограниченной машины Больцмана
Читать дальше →
Всего голосов 38: ↑38 и ↓0 +38
Комментарии 14

Реализация Restricted Boltzmann machine на c#

Время прочтения 12 мин
Просмотры 41K
.NET *Data Mining *
Привет. Закончился курс по нейронным сетям. Хороший курс, но мало практики. Так что в этом посте мы рассмотрим, напишем и протестим ограниченную машину Больцманастохастическую, генеративную модель нейронной сети. Обучим ее, используя алгоритм Contrastive Divergence (CD-k), разработанный профессором Джеффри Хинтоном, который кстати и ведет тот курс. Тестировать мы будем на наборе печатных английских букв. В следующем посте будет рассмотрен один из недостатков алгоритма обратного распространения ошибки и способ первоначальной инициализации весов с помощью машины Больцмана. Кто не боится формулок и простыней текста, прошу под кат.

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

Blind Deconvolution — автоматическое восстановление смазанных изображений

Время прочтения 6 мин
Просмотры 143K
Алгоритмы *Обработка изображений *
Смазанные изображения — один из самых неприятных дефектов в фотографии, наравне с расфокусированными изображениями. Ранее я писал про алгоритмы деконволюции для восстановления смазанных и расфокусированных изображений. Эти, относительно простые, подходы позволяют восстановить исходное изображение, если известна точная траектория смаза (или форма пятна размытия).
В большинстве случаев траектория смаза предполагается прямой линией, параметры которой должен задавать сам пользователь — для этого требуется достаточно кропотливая работа по подбору ядра, кроме того, в реальных фотографиях траектория смаза далека от линии и представляет собой замысловатую кривую переменной плотности/яркости, форму которой крайне сложно подобрать вручную.


В последние несколько лет интенсивно развивается новое направлении в теории восстановления изображений — слепая обратная свертка (Blind Deconvolution). Появилось достаточно много работ по этой теме, и начинается активное коммерческое использование результатов.
Многие из вас помнят конференцию Adobe MAX 2011, на которой они как раз показали работу одного из алгоритмов Blind Deconvolution: Исправление смазанных фотографий в новой версии Photoshop
В этой статье я хочу подробнее рассказать — как же работает эта удивительная технология, а также показать практическую реализацию SmartDeblur, который теперь тоже имеет в своем распоряжении этот алгоритм.
Внимание, под катом много картинок!
Читать дальше →
Всего голосов 243: ↑239 и ↓4 +235
Комментарии 149

Частые ошибки при разработке lockfree-алгоритмов и их решения

Время прочтения 13 мин
Просмотры 58K
C++ *Алгоритмы *
На хабре уже было несколько статей про lock-free алгоритмы. Этот пост — это перевод статьи моего коллеги, которую мы планируем публиковать в нашем корпоративном блоге. По роду деятельности мы пишем огромное количество lock-free алгоритмов и структур данных, и этой статьей хочется показать, насколько это интересно и сложно одновременно.



Эта статья во многом похожа на эту статью, но в той статье рассматриваются не все проблемы, с которыми можно столкнуться, разрабатывая lock-free структуры данных, и уделяется очень мало внимания решению этих проблем. В этой статье хочется детально остановиться на некоторых решениях, которые мы используем в реальной реализации lock-free структур данных в нашем продукте, и больше внимания уделить оценке производительности.
Читать дальше →
Всего голосов 148: ↑147 и ↓1 +146
Комментарии 52

Истинное могущество регулярных выражений

Время прочтения 16 мин
Просмотры 92K
Регулярные выражения *
Перевод
Как частый посетитель тэга PHP на StackOverflow, я очень часто встречаю вопросы о том, как распарсить какие-то конкретные аспекты HTML, используя регулярные выражения. Самый распространённый ответ на это:
«Ты не можешь парсить HTML с помощью регулярных выражений, потому что HTML не является регулярным. Используй XML парсер, и будет тебе счастье»

Это утверждение — в контексте вопроса — находится где-то между сильно вводящим в заблуждение и абсолютно неправильным. Что я хочу попытаться продемонстрировать в этой статье, так это то, насколько могущественны современные регулярные выражения на самом деле.
Читать дальше →
Всего голосов 182: ↑172 и ↓10 +162
Комментарии 39

Фильтр Калмана

Время прочтения 10 мин
Просмотры 379K
Алгоритмы *Математика *
Туториал


В интернете, в том числе и на хабре, можно найти много информации про фильтр Калмана. Но тяжело найти легкоперевариваемый вывод самих формул. Без вывода вся эта наука воспринимается как некое шаманство, формулы выглядят как безликий набор символов, а главное, многие простые утверждения, лежащие на поверхности теории, оказываются за пределами понимания. Целью этой статьи будет рассказать об этом фильтре на как можно более доступном языке.
Фильтр Калмана — это мощнейший инструмент фильтрации данных. Основной его принцип состоит в том, что при фильтрации используется информация о физике самого явления. Скажем, если вы фильтруете данные со спидометра машины, то инерционность машины дает вам право воспринимать слишком быстрые скачки скорости как ошибку измерения. Фильтр Калмана интересен тем, что в каком-то смысле, это самый лучший фильтр. Подробнее обсудим ниже, что конкретно означают слова «самый лучший». В конце статьи я покажу, что во многих случаях формулы можно до такой степени упростить, что от них почти ничего и не останется.
Читать дальше →
Всего голосов 178: ↑173 и ↓5 +168
Комментарии 84

Любительское видео фотокамерой

Время прочтения 2 мин
Просмотры 31K
Работа с видео *Звук
Из песочницы
Всегда было интересно как снимают кино, можно ли не имея большого бюджета получить качественную картинку, используя любительское оборудование и любительские навыки.
Расскажу как я снимал ролик для конкурса и что для этого использовал.
Нужно было снять пародию на любой фильм, длительностью 60 секунд. Выбрал «Леон».
Опыта в таких съемках нет, снимал пару раз просто репортажи.
После того как придумал небольшой сюжет, начал делать раскадровку, рисовать не умею, но для себя в принципе понятно.

image
Читать дальше →
Всего голосов 59: ↑51 и ↓8 +43
Комментарии 94

16 бесплатных курсов Стэнфорда на осенний семестр

Время прочтения 2 мин
Просмотры 77K
Учебный процесс в IT
Начался новый учебный год, пора снова садиться за учебники, то есть за экраны компьютеров. Этой осенью Стэнфордский университета расширяет программу учебных курсов, которые бесплатно преподаются через интернет, с последующей выдачей сертификатов. Студентам предлагается 16 онлайновых курсов. Каждый найдёт там себе что-нибудь интересное: криптография, математика, алгоритмы, ИТ-предпринимательство, финансы и т.д. (полный список под катом).

Радует, что Стэнфорд постепенно развивает платформу для дистанционного образования, добавляются новые технологические площадки для вещания — это единственный вуз, который транслирует курсы через несколько площадок, увеличивается количество преподаваемых предметов. На зимний и весенний семестры обещают опять расширить учебную программу.
Читать дальше →
Всего голосов 37: ↑32 и ↓5 +27
Комментарии 28

20 бесплатных дополнений для Visual Studio

Время прочтения 4 мин
Просмотры 39K
Блог компании Microsoft Visual Studio *
Для Visual Studio 2010 создано уже около 900 дополнений. Многие из них позволяют облегчить решение рутинных задач, добавить удобства. Ниже представлено двадцать популярных дополнений, которые вы возможно найдете полезными для вашей работы.
Читать дальше →
Всего голосов 146: ↑135 и ↓11 +124
Комментарии 55

Декодирование GIF

Время прочтения 4 мин
Просмотры 16K
Алгоритмы *
Туториал
В прошлый раз мы разобрались как устроен JPEG (Декодирование JPEG для чайников). Вполне логично, что следующим форматом стал GIF. Кстати, он гораздо проще. Его, в отличии от JPEG, можно декодировать имея только ручку с бумажкой. Сначала, продолжая традицию, я захотел закодировать в GIF favicon Гугла, но потом решил, что лучше расписать процесс декодирования всего файла на маленьком изображении. Без всяких «а дальше по аналогии...». Пришлось долго экспериментировать, и картинка получилась неказистой, зато вполне наглядной для изучения.

Итак, мы будем ковырять вот эту картинку . Видите? :) Тогда она же, увеличенная в 10 раз:


Внутренности в hex-редакторе:

Читать дальше →
Всего голосов 109: ↑107 и ↓2 +105
Комментарии 9

Информация

В рейтинге
Не участвует
Откуда
Харьков, Харьковская обл., Украина
Работает в
Дата рождения
Зарегистрирован
Активность