Pull to refresh
14
0.1
Alexandr Ivanov @AlexSky

Системный программист

Send message

Миникомпьютер из роутера с OpenWRT: пишем драйвер фреймбуфера

Reading time19 min
Views67K
Добрый день, уважаемые хабровчане. Вот мы и подошли к самой интересной и важной части моего цикла статей про превращение небольшого роутера в миникомпьютер — сейчас мы с вами будем разрабатывать настоящий драйвер фреймбуфера, который позволит запустить на роутере разные графические приложения. Чтобы энтузиазм не угасал, вот видео одного из таких приложений — думаю, большинство узнают это великолепный старый квест:

На случай, если вы пропустили предыдущие части — вот ссылки:
1 — Миникомпьютер из роутера с OpenWRT: разрабатываем USB-видеокарту
2 — Миникомпьютер из роутера с OpenWRT: пишем USB class-driver под Linux
Итак, приступаем к работе.
Читать дальше →
Total votes 139: ↑139 and ↓0+139
Comments37

Миникомпьютер из роутера с OpenWRT: разрабатываем USB-видеокарту

Reading time25 min
Views183K

Добрый день, уважаемые хабровчане. В этом цикле статей мы с вами пройдем достаточно длинный, но весьма интересный путь по превращению обычного роутера в мини-компьютер с LCD-дисплеем. Для этого мы разработаем сначала USB-видеокарту на базе микроконтроллера STM32F103, потом тестовый драйвер, который позволит нам выводить на него графику, и, наконец – полноценный драйвер фреймбуффера, благодаря которому можно будет запустить настоящие графические приложения, такие как x-сервер. Заодно мы научимся включать наш код в дерево исходников OpenWRT, допиливать его ядро и делать прочие полезные вещи.
Ну а в самом конце мы получим результат, который, я надеюсь, вызовет ностальгическую слезу у многих читателей. Я постараюсь излагать материал таким образом, чтобы в конце каждого этапа мы получали осязаемый результат, не дающий угаснуть энтузиазму. Итак, начнем.
Читать дальше →
Total votes 286: ↑279 and ↓7+272
Comments44

Миникомпьютер из роутера с OpenWRT: пишем USB class-driver под Linux

Reading time20 min
Views78K

Добрый день, уважаемые хабровчане. В прошлой статье мы с вами разработали простую USB-видеокарту на базе STM32F103 и китайского дисплейного модуля на контроллере ILI9325.
Проверяли мы его из юзерспейса, при помощи LibUSB. Ну что ж, пришло время нам написать свой собственный драйвер, который позволит делать все то же самое, но из-под Linux и без дополнительных библиотек. Этот драйвер мы внесем в дерево исходников OpenWRT и он поселится там наравне со всеми остальными.
Начнем.
Читать дальше →
Total votes 124: ↑121 and ↓3+118
Comments32

OpenWeatherMap – как энтузиасты делают погоду

Reading time7 min
Views113K

Мы живем в удивительное время, то что раньше казалось очень сложным внезапно становится доступным и простым. Задачи для решения которых надо было создавать научные институты и крупные организации, сейчас решаются саморганизованными группами энтузиастов. Энтузиасты создают карты и энциклопедии снимают фильмы и разрабатывают software. Я хочу рассказать о той области, в которую этот свежий ветер перемен еще не подул в полную силу – это погода. И нашим проектом – OpenWeatherMap — мы хотим изменить эту ситуацию!

Читать дальше →
Total votes 110: ↑108 and ↓2+106
Comments100

Телевизоры. Часть 3. 3D. Типы, различия, источники воспроизведения и контент. Мой выбор телевизора

Reading time14 min
Views526K
Снова здравствуйте.
Это третья, заключительная, самая большая и по моему мнению самая интересная часть моего небольшого повествования о современных телевизорах. В первой части вы могли прочитать общую информацию о типах современных телевизоров, используемых технологиях подсветок, их практическом различии. Во второй части я попытался систематизировать все, что я узнал о шасси, диагоналях, передаче движения, особенностях передачи цвета и влиянии телевизоров на зрение.

В третей части я хочу поделиться с вами своими размышлениями касательно стереоизображения (или как его принято называть — 3D), разобраться в основных отличиях активного и пассивного 3D, их технической реализации. Рассказать, как, какие и главное — чем это 3D воспроизводить. Ну и, собственно, какой телевизор я выбрал и почему. А еще тут будут фотографии
Читать дальше →
Total votes 82: ↑75 and ↓7+68
Comments151

Телевизоры. Часть 2. Плазма или ЖК, шасси, диагональ, передача движения, цвет, влияние на зрение

Reading time9 min
Views322K
Снова здравствуйте, дорогие хабрачеловеки.

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

Можем продолжить. Во второй части я хотел бы поделиться своими размышлениями о выборе диагонали телевизора для различных применений, выборе технологии, а так же о том, как кадровая интерполяция влияет на плавность движения и попытаться развенчать некоторые мифы касательно современных телевизоров. Также, хочу затронуть тему влияния различных параметров телевизора на зрение.
Читать дальше →
Total votes 114: ↑111 and ↓3+108
Comments181

Телевизоры. Часть 1. Типы телевизоров, подсветок и технологий, практические различия

Reading time7 min
Views562K
Здравствуйте, уважаемое хабрасообщество.

Я надеюсь, что эта статья сможет помочь таким же, как я — тем людям, которые выбирают телевизор, но не очень-то владеют тонкими техническими вопросами в этой области. Хотел бы поделиться с вами своими размышлениями и практическими выводами по-поводу выбора большого и качественного телевизора.
Читать дальше →
Total votes 138: ↑133 and ↓5+128
Comments187

Как просто подключить любой датчик OPC сервера к проекту narodmon.ru

Reading time4 min
Views27K
Здравствуйте.

Совсем недавно я узнал что существует один простой, но полезный проект «Народный мониторинг» Смысл его в том, если вкратце, чтобы объединить множество разрозненных датчиков мониторинга окружающей среды в одном месте. Ведь одно дело например посмотреть прогноз погоды в интернете и совсем другое дело увидеть реально где какие температура, влажность, давление и их изменение с течением времени.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments5

ePayService + eBayToday = Бесплатный Mail Forwading

Reading time2 min
Views11K
Любому хабраюзеру, известно, что цены и ассортимент различных гаджетов и хорошей одежды в западных интернет-магазинах в большинстве своем намного лучше чем на родных просторах. Поэтому такие названия, как eBay, Amazon, Zappos уже давно не кажутся нам чужими. И это хорошо, ведь теперь есть повод познакомиться с интернет-шопингом еще ближе – все пользователи платежной системы ePayService имеют возможность воспользоваться специальным предложением от сервиса покупок за рубежом eBayToday: бесплатный Mail Forwading.

бесплатный Mail Forwading от ePayService и eBayToday
Читать дальше →
Total votes 7: ↑4 and ↓3+1
Comments3

Мобильный интернет с резервным каналом для онлайн-трансляций

Reading time3 min
Views20K
Приветствую всех участников Хабра.

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

Для решения задачи нужно было решить 3 больших вопроса:
1. Провайдер. Выбрать программно-аппаратное решение с резервным каналом для обеспечения стабильности сигнала в случае отсутствия
2. Платформа и клиент для трансляции видео. Выбрать устройство для захвата видео, программу-клиент для отправки потокового видео.
3. Мобильное питание. Событие хоть и регламентировано по времени, но надо было быть готовым освещать достаточно длительное время (сутками напролет)

Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments29

Полноценное Python приложение на Android

Reading time4 min
Views166K


В этой статье я хотел бы рассказать о том, как создать полноценное приложение на Python для Android. Нет, это не очередной мануал для создания скрипта для sl4a, это мануал по созданию полноценного приложения с UI, возможностью собрать apk и выложить на Android Market. Заодно я хотел бы похвалиться своим первым приложением на google.play, это не hello world, а полезное приложение для фотографов, хотя и узко специализированное.
Читать дальше →
Total votes 109: ↑106 and ↓3+103
Comments45

Как работает yield

Reading time6 min
Views667K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ
Total votes 141: ↑136 and ↓5+131
Comments41

Функциональное программирование для землян — списки

Reading time6 min
Views10K
Продолжаю свое небольшое введение в функциональное программирование. На этот раз речь пойдет о списках и методах их обработки в функциональном стиле.

Читать дальше →
Total votes 53: ↑52 and ↓1+51
Comments42

Функциональное программирование для землян — функции

Reading time5 min
Views9.1K


В статье про Python пользователь Xronos попросил рассказать о функциональном программировании (ФП). Поскольку я одно время довольно плотно занимался с Lisp, я хотел бы немножко рассказать об этом. Сразу хочу сказать, что о чистом ФП речь не идет. Я расскажу о более простых и более применимых приемах на примере языка Python.

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

Python Tips, Tricks, and Hacks (часть 3)

Reading time6 min
Views49K
В этой части статьи рассматриваются уловки для выбора одного из двух значений на основе логического условия, передача и получение произвольного числа аргументов функций, а также распространенный источник ошибок — тот факт, что дефолтные значения аргументов функции вычисляются только один раз.
Читать дальше →
Total votes 67: ↑63 and ↓4+59
Comments48

Python Tips, Tricks, and Hacks (часть 2)

Reading time6 min
Views133K
Содержание

Списки. Свёртка списка (reduce). Прохождение по списку (range, xrange и enumerate). Проверка всех элементов списка на выполнение условия (all и any). Группировка элементов нескольких списков (zip). Еще несколько операторов для работы со списками. Продвинутые логические операции с типом set.
Словари. Создание словаря с помощью именованных аргументов. Преобразование словаря в список и обратно. «Dictionary Comprehensions».
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments30

Реализация объектов-словарей, как в Javascript

Reading time3 min
Views8.6K
Недавно, после длительного взаимодействия моего мозга с Javascript я вернулся к привычному для меня Python, и понял, что чего-то мне не хватает, а именно объектов как в Javascript, тех что хеш-таблицы, ага. Фууууу, может быть скажете вы и, возможно зря.
Читать дальше →
Total votes 63: ↑58 and ↓5+53
Comments41

Information

Rating
2,822-nd
Location
Рязань, Рязанская обл., Россия
Date of birth
Registered
Activity