Небольшой анонс

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

  • Практика создания языков предметной области
  • Как устроены распределенные виртуальные машины
  • Анализ изображений с использованием сверточных нейронных сетей
  • Краткое введение в практику использования клеточных автоматов
  • Регистры сдвига с линейной обратной связью (LFSR) и их применение
  • Автоматическое построение оптимальных путей в графе
  • Автоматизация доказательства корректности протоколов распределенного обмена сообщениями в P2P сетях

Читать далее

Клеточные автоматы

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

Это могло бы быть интересным на следующем ITGM и достаточно функциональным для FProg-комьюнити. Особенно если описать все на хаскеле - заодно хороший повод в нем наконец разобраться.

Можно было бы рассмотреть:

  • "Жизнь" Конвея
  • "WireWorld" Брайаном Сильверманом (особенно интересен в в отношении применимости к проекту симуляции электронных схем.
  • Алгоритм волновой трассировки Ли для поиска путей (например, в двумерных играх, или для трассировки печатных плат, что даже лучше)
  • "Муравей Ленгтона" и его эквивалентность машине Тьюринга с 2 символами и 4 состояниями Работа Пауля Чепмена и немного про Регистровые Машины Минского Мозаичные плоскости Пенроуза как более интересный вид пространства для клеточных автоматов

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

MiniKanren

The ReasonedSchemer - книга, вдохновившия довольно много умных людей на разработки в реляционно-логическом программировании. Думаю пора мне к ним присоединиться. Итак, не позже чем до нового года я освою эту новую (для меня область).

About me

Меня зовут Михаил Rigidus Глухов, я программист и системный архитектор. На этом сайте я собираю материалы по интересующим меня темам.

Мне интересна теория языков программирования, алгоритмика, робототехника и все что связано с интернетом вещей.

« Биография Контакты »

Автоматический поиск работы

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

Я решил пойти дальше и разработал экспертную систему с элементами искусственного интеллекта, которая ищет работу за меня в полностью автоматическом режиме - от подбора вакансий до автоматической адаптации резюме.

Подробнее »

Система автоматизации тестирования

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

Подробнее »

Моделирование электронных схем

Распространение сигнала внутри схемы дает возможность иначе взглянуть на процесс программирования и отладки и применить очень необычные и мощные идеи.

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

Однако этого оказалось недостаточно для обеспечения наглядности, поэтому я изучил Tcl/Tk и запрограммировал визуализатор распространения сигнала, чтобы прямо на экране видеть, как высокие и низкие уровни двигаются от одного элемента к другому.

Подробнее »

Умный гараж с нуля

Не первый опыт в автоматике и робототехнике, но пожалуй первый настолько масштабный проект.

Ядром системы является платформа BeagleBoneBlack, остальная часть большей частью самодельная, с помощью ЛУТ и гремучей смеси современных микроконтроллеров и старых советских комплектующих, найденных непонятно где.

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

Подробнее »

Структура и интерпретация компьютерных программ (SICP)

Материал этой книги был основой вводного курса по информатике в MIT начиная с 1980 года. К тому времени, как было выпущено первое издание, этот материал преподавался в течение четырех лет, и прошло еще двенадцать лет до появления второго издания.

Структура и интерпретация компьютерных программ. Абельсон, Сассман (перевод: Ю. Бронников)

Впечатления »

Типы в языках программирования (TAPL)

Книга о теории типов. Рассматриваются вопросы проверки и автоматического вывода типов в языках программирования со статической типизацией. Для каждой темы сначала дается теория, а затем приводится реализация на OCaml.

TAPL — это, бесспорно, настоящий кладезь знаний для разработчиков языков программирования со статической типизацией.

Типы в языках программирования. Бенджамин Пирс

Литературное программирование

Слайды с лекции "Грамотное программирование" (literate programming), которую я читал 22 января 2015 доступны здесь: http://slides.com/rigidusrigidus/deck/

Подробнее »

Макросы в Lisp

Видео, с доклада на ноябрьском FProg Meetup "Макросы в лиспе" опубликовано на youtube: https://www.youtube.com/watch?v=i1lD2J7qLLM

Подробнее »

Как проектируются IP-блоки и системы на кристалле

Юрий Панчул прочитал эту лекцию в Алма-Ате и я подготовил небольшой конспект. Осталось немного довести его до ума и я выложу его на сайт, а пока доступно видео, слайды и его отчетный пост на хабре.