Как стать автором
Обновить
140
0
Коваленко Александр @alk0v

Пользователь

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

Декодирование JPEG для чайников

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

[FF D8]


Вам когда-нибудь хотелось узнать как устроен jpg-файл? Сейчас разберемся! Прогревайте ваш любимый компилятор и hex-редактор, будем декодировать это:


Jpeg file in hex editor


Специально взял рисунок поменьше. Это знакомый, но сильно пережатый favicon Гугла: Google favicon


Последующее описание упрощено, и приведенная информация не полная, но зато потом будет легко понять спецификацию.


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


[FF D8] — маркер начала. Он всегда находится в начале всех jpg-файлов.


Следом идут байты [FF FE]. Это маркер, означающий начало секции с комментарием. Следующие 2 байта [00 04] — длина секции (включая эти 2 байта). Значит в следующих двух [3A 29] — сам комментарий. Это коды символов ":" и ")", т.е. обычного смайлика. Вы можете увидеть его в первой строке правой части hex-редактора.

Читать дальше →
Всего голосов 413: ↑408 и ↓5+403
Комментарии140

Интеграция asterisk с Active Directory

Время на прочтение9 мин
Количество просмотров33K
На некотором этапе развития нашей организации было решено перейти на VoIP телефонию. В качестве платформы безоговорочно был выбран Asterisk-PBX. Оконечное оборудование брали бюджетное из доступного — DLink DPH-150.
В результате проделанной работы получилась автоматизированная VoIP система, с управлением через стандартную оснастку MS ActiveDirectory.

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

АСУДД: Эволюция «умных» светофоров

Время на прочтение7 мин
Количество просмотров35K
В прошлый раз в статье "АСУДД: Что висит над дорогой?" мы бегло прошлись по «железу», которое устанавливается на транспортных магистралях: по типам детекторов транспортного потока, светодиодным табло и дорожным контроллерам.

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

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

Читать дальше →
Всего голосов 65: ↑64 и ↓1+63
Комментарии28

Рой дронов поднимет WiFi на месте катастрофы

Время на прочтение2 мин
Количество просмотров4K
В работе служб МЧС и спасателей, которые устраняют последствия стихийного бедствия иди техногенной катастрофы критически важный фактор — надёжная связь. Но иногда катастрофы происходят в чрезвычайно удалённой местности, где работают только спутниковые телефоны. Как поднять нормальную сеть для всей группы?



Лаборатория саморегулирующихся систем в Политехническом институте Лозанны разработала проект SMAVNET (The Swarming Micro Air Vehicle Network), который должен решить эту проблему. Они предлагают использовать роевую сеть из десяти беспилотных летательных аппаратов, которые в считанные минуты организуют беспроводную сеть на обширной территории. Достаточно бросить их в воздух (видеосъёмка процесса развёртывания сети под хабракатом).
Читать дальше →
Всего голосов 105: ↑96 и ↓9+87
Комментарии115

Работа с GSM-модулем на примере SIM900D

Время на прочтение9 мин
Количество просмотров151K
Не так давно друг предложил мне работу, связанную с созданием прошивки для микроконтроллера, который должен был связываться с сервером при помощи GSM-модуля SIM900D. Ранее я с программированием микроконтроллеров дела не имел, да и на C программировал последний раз в студенческие времена, но любопытство перевесило и я принялся за работу. Документация по данной железке присутствует в интернете, однако хороших примеров работы с TCP/IP в коде найти не удалось. Ничего не оставалось, кроме как обложиться документацией, запастись сигаретами и чаем и приступить к лавированию между граблями. А граблей оказалось немало. Собственно, поэтому я и написал эту статью — чтобы другим было легче.

Далее будет много AT-команд, не слишком много кода и очень много букв.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии8

Захват видео с сетевых камер, часть 2

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

В первой своей статье «измерение расстояния до объекта и его скорости» я рассмотрел захват изображений с веб-камер через Video4Linux2 и через DirectX. В следующей статье «захват видео с сетевых камер, часть 1» я рассмотрел как работать с сетевыми Motion-JPEG камерами. Сейчас я поведаю Вам о захвате изображений с сетевых RTSP камер, в частности поток Motion-JPEG по RTSP.

Задача эта более сложная нежели Motion-JPEG по HTTP, так как необходимо больше действий, больше подключений, но взамен мы получаем большую гибкость, скорость, функциональность и даже некую универсальность. Честно говоря, RTSP для простых задач избыточен, но я не сомневаюсь, что найдутся ситуации, где он будет необходим.

Приступим
Всего голосов 64: ↑63 и ↓1+62
Комментарии39

Алгоритмы сжатия изображений

Время на прочтение8 мин
Количество просмотров84K
Легко подсчитать, что несжатое полноцветное изображение, размером 2000*1000 пикселов будет иметь размер около 6 мегабайт. Если говорить об изображениях, получаемых с профессиональных камер или сканеров высокого разрешения, то их размер может быть ещё больше. Не смотря на быстрый рост ёмкости устройств хранения, по-прежнему весьма актуальными остаются различные алгоритмы сжатия изображений.
Все существующие алгоритмы можно разделить на два больших класса:
  • Алгоритмы сжатия без потерь;
  • Алгоритмы сжатия с потерями.

Когда мы говорим о сжатии без потерь, мы имеем в виду, что существует алгоритм, обратный алгоритму сжатия, позволяющий точно восстановить исходное изображение. Для алгоритмов сжатия с потерями обратного алгоритма не существует. Существует алгоритм, восстанавливающий изображение не обязательно точно совпадающее с исходным. Алгоритмы сжатия и восстановления подбираются так, чтобы добиться высокой степени сжатия и при этом сохранить визуальное качество изображения.
Читать дальше →
Всего голосов 124: ↑106 и ↓18+88
Комментарии19

Кластеризация палитры изображения и сжатие в формате PNG

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

Аннотация


В данной статье читателю предлагается опыт разработки алгоритма сжатия изображения, хранящегося в формате PNG. Сжатие осуществляется за счет квантования палитры с использованием классификатора К–внутригрупповых средних. Приводится исходный код алгоритма, написанный на языке Java. Указываются проблемы и дальнейшие пути улучшения алгоритма.
Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии38

Онлайн-мониторинг транспорта своими руками

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

Всегда нравилась идея онлайн-мониторинга чего-либо на карте. И вот представилась возможность сделать нечто подобное.
Процессом и результатом разработки хочу поделиться с сообществом.
Читать дальше →
Всего голосов 101: ↑98 и ↓3+95
Комментарии106

Webmin — система на кончиках пальцев

Время на прочтение2 мин
Количество просмотров128K
image

Как говорится на официальном сайте, Webmin — это web-интерфейс для системного администрирования Unix. Используя любой современный баузер, Вы можете настраивать аккаунты юзеров, сервер Apache, DNS, файловый сервер и многое другое.
Читать дальше →
Всего голосов 105: ↑92 и ↓13+79
Комментарии90

GLGDI+ или «переходим с GDI+ на OpenTK»

Время на прочтение3 мин
Количество просмотров16K
Думаю, многим приходилось сталкиваться с проблемой, что GDI+ тормозит, а тормозит, потому что не ускоряется железом.
Вот и я как-то писал редактор уровней

и понял, что GDI+ мне больше не хватает, нужно переходить на что-то ускоренное, причем за минимальное время. Немного погуглив, я решил остановить свой выбор на библиотеке OpenTK.
Читать дальше →
Всего голосов 54: ↑45 и ↓9+36
Комментарии27

Ликвидатор велосипедов: часть 2

Время на прочтение3 мин
Количество просмотров34K
Исходя из того, что первая статья насобирала много плюсов и попала в избранное большого количества человек, я понял что тема актуальна и во-первых призываю подтянуться сообщество (ведь я не могу знать абсолютно все библиотеки и решения), а во-вторых буду продолжать своими силами рассказывать о том какие библиотеки можно подтянуть, если необходимо что-то сделать вместо того чтобы делать все новые и новые велосипеды, состоящие из водопроводных труб.

В этом топике я затрону важную для многих тему — тему рисования графиков в платформе .NET. Вспомните: ведь наверняка когда-то было просто необходимо вывести на экран красивый график… И что происходило? Правильно, появлялся новый велосипед.

Часть первая из серии



Читать дальше →
Всего голосов 85: ↑71 и ↓14+57
Комментарии36

Мучаем MS Word из нашего приложения

Время на прочтение4 мин
Количество просмотров27K
Перед каждым прикладным разработчиком рано или поздно встает задача экспорта данных из своего приложения в другое. Вот и передо мной она в очередной раз встала: мне потребовалось генерировать сообщения для рассылки (почтовой, которую почтальон носит). Письма должны сохраняться в формате Word. Казалось бы, задача тривиальная, но некоторые тонкости есть. На просторах инетернетов довольно много примеров работы с вордом из сторонних приложений через COM-вызов, но большая часть из них является либо примерами уровня «Hello world!», либо заточенными под определенную задачу. Реализации своей я не нашел, потому предлагаю ознакомиться с очередным велосипедом.
Читать дальше →
Всего голосов 21: ↑13 и ↓8+5
Комментарии43

Asterisk, или домашняя телефония для (про)двинутых пользователей

Время на прочтение14 мин
Количество просмотров121K
Эта история началась два долгих года назад, когда во время командировки в США я ВДРУГ остался без мобильной связи: с дуру перед поездкой поменял телефон, а он оказался «двух-диапазонником»… Да и роуминг не дешёвый…
Итогом стало открытие для себя SIP-телефонии.

И вот несколько месяцев назад, из статей на Хабре, выясняю, что чужим дядям можно и не платить за межгород, если надо позвонить откуда-то в родной город через Интернет! Достаточно поставить VoIP сервер и настроить его так, как надо именно тебе!

И вот, взяв в руки Asterisk, я приступил к операции по борьбе с излишней жадностью ОпСоСов…

Читать дальше →
Всего голосов 177: ↑174 и ↓3+171
Комментарии110

Asterisk GUI. Первые шаги

Время на прочтение3 мин
Количество просмотров99K
Почти всякий раз, когда речь заходит о выборе web-интерфейса к asterisk, в ход идут рекомендации «тяжелой артиллерии»: trixbox, elastix, freepbx. Asterisk GUI остается эдакой «темной лошадкой»: вроде и слышали о нем, вроде и скриншоты симпатишные, а реально работающих систем — с гулькин нос. Частично это объясняется новизной, необкатанностью продукта. Частично — отсутствием документации. Частично — иннертностью сообщества. Попытаемся сдвинуть дело с мертвой точки…
В статье — пошаговые инструкции, как установить и настроить Asterisk с Asterisk GUI.

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

Вещание видеофайлов с помощью VLC multicast

Время на прочтение2 мин
Количество просмотров10K
Помимо вещания спутниковых каналов, может возникнуть необходимость вещания файликов.

Вот мой пример Gentoo Linux + VLC
Читать дальше →
Всего голосов 11: ↑8 и ↓3+5
Комментарии10

Вещание видеофайлов с помощью VLC multicast. С теорией.

Время на прочтение4 мин
Количество просмотров54K
По просьбам переписываю статью с добавлением теоретический знаний. Итак, пара определений:
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии19

Преимущества и стоимость внедрения системы Интерактивного Голосового Меню (IVR) (ознакомительная статья)

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

Что такое IVR?


Интерактивное Голосовое Меню (IVR) — это система предварительно записанных голосовых сообщений, выполняющая функцию маршрутизации звонков внутри call-центра, пользуясь информацией, вводимой клиентом с помощью тонального набора. Именно такое определение дано на русской википедии. Почему call центра? Да потому что модули речевого взаимодействия всегда немало стоили, и являлись составной частью больших АТС, чаще всего используемых в кол-центрах.
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии24

ProgressBar — Javascript Canvas2d

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

Здравствуйте. Последнее время я достаточно часто имею дело с JavaScript-canvas, особенно написание всяких игрушек, которые требовательны к трафику в силу необходимости загрузки множества картинок.
Обычно сначала загружается около 50-100кб сжатого JavaScript, после чего — энное количество картинок(например, 500кб, 2мб, 10мб и т.п.) и только после этого запускается сама игра. Можно, конечно, загружать по ходу, но отсутствие текстур врядли порадует игрока.
Потому я решил, что необходимо сделать какой-то приличный, симпатичный, легко-настраиваемый(чтобы быстро менять от проекта к проекту) прогресс-бар, но, обязательно без использования картинок. Под катом исходники под лицензией LGPL, небольшая инструкция, как это сделать и внизу статьи — ссылка на результат.
Читать дальше →
Всего голосов 90: ↑85 и ↓5+80
Комментарии31
12 ...
13

Информация

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