Обновить
0
Александр Агуленко@agulread⁠-⁠only

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

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

Экспорт истории сообщений из Skype

Время на прочтение4 мин
Охват и читатели33K
Многие пользователи Skype в Linux замечали насколько неудобно там сделана работа с историей сообщений чата. Нет нормального поиска, сообщения за длительный период времени грузятся очень долго. Нет возможности экспорта в другие форматы/клиенты.

Skype для Linux хранит историю сообщений в недокументированном бинарном формате. Несмотря на то что энтузиасты расковыряли его довольно давно, еще многое остается неизвестным.

Поверхностный поиск готового решения для экспорта истории сообщений не привел к успеху. Поэтому я, собрав всю доступную информацию, написал своё.
Читать дальше →

Сегментация изображения

Время на прочтение5 мин
Охват и читатели98K

Сегментация изображения


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

Читать дальше →

Выпадающий jQuery.Treeview

Время на прочтение5 мин
Охват и читатели25K

Вступление


image
В ходе реализации текущего проекта мне понабилось выпадающее дерево. Так как я уже пользовался jQuery плагином TreeView, и его функционал меня устраивает, было принято решение cделать выпадающее дерево на его основе. В результате родился плагин DropDownTreeView которым я хочу поделится.

Функционал


Плагин позволяет создавать выпадающие деревья с AJAX загрузкой (пример). При создании дерева к объекту обертки добавляется кнопка открытия дерева, и подгружается дерево. Дерево можно подгружать как целиком так и частями (актуально для больших деревьев). HTTP запросы могут выполнятся POST и GET методами. Параметры HTTP запроса определяются пользователем. Дерево строится посредством jQuery.Treeview. Дерево сворачивается при выборе пункта и клике вне зоны дерева.
Читать дальше →

Получаем изображение с оптического сенсора комьютерной мыши с помощью Arduino

Время на прочтение3 мин
Охват и читатели242K
КПДВ, 111.3 KB

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

Draw a Stickman: игра на canvas/js/svg

Время на прочтение1 мин
Охват и читатели5.4K


Draw a Stickman — впечатляющий пример того, какую увлекательную игру можно сделать с помощью JavaScript-библиотеки raphael.js для генерации SVG. Игра особенно подходит для планшетов, в ней совершенно не используется Flash.

Разработка флеш игры «King of the rocks»

Время на прочтение9 мин
Охват и читатели5.3K
Прочитав несколько статей о том как наши соотечественники делают флеш игры, да ещё и неплохо зарабатывают на этом я решил во чтобы-то ни стало сделать свою игру. И непременно заработать с её продажи как минимум 1000$. Успех в этом деле значил для меня очень многое. Я всю жизнь хотел делать игры и вот сейчас я был готов и уверен в успехе на все 100%. Это история разработки моей первой флеш игры King of the Rocks


Читать дальше →

Приём и обработка SMS-сообщений на Linux-машине

Время на прочтение5 мин
Охват и читатели44K
В одном из наших свежих проектов команде разработчиков была поставлена задача собрать максимально реальные контактные данные о пользователях нашего сайта. Жаркое обсуждение правильных и неправильных форм регистрации, одно- и двушаговые, дополнение информации по мере пользования сайтом… Казалось поток идей не остановится. Однако ни одна из них не гарантировала, что в результате мы не получим кучу никчемных данных. Валидировать? Можно, но разве все предусмотришь? Активация учетной записи через почтовый ящик для его валидации? Но куча сервисов типа 10 Minute Mail сводят на нет эффект. К тому же, специфика проекта не позволяла слишком растягивать процесс регистрации. Решено было, что пользователь должен зайти, сделать своё дело, а потом уже активировать или нет свою учетную запись. В конце концов прозвучала фраза «А давайте активировать по SMS!». Поиск провайдеров, изучение прайс-листов и отказ от идеи взвалить обработку SMS на стороннюю контору… Стало понятно, что принимать и обрабатывать их придется самим.
Читать дальше →

Сетевая игра на bash: шахматы

Время на прочтение5 мин
Охват и читатели9K
Я давно хотел написать какую-нибудь сетевую игру на bash, причём желательно, чтобы управление было удобное, с клавиатуры, обычными курсорным клавишами. Вообще, тема интерактивного взаимодействия в bash глубже, чем «введите число, нажмите „Enter“» не раскопана. Мне пришлось всё изобретать и исследовать самостоятельно. Я очень старался найти что-то похожее по уровню интерактивности, но не нашёл.

Поскольку тонкости управления с клавиатурой съели очень много моего времени, я не стал заморачиваться с тонкостями совместимости, поэтому игра тестировалась только под Mac OS X, есть ненулевая вероятность, что она заработает и под Linux и уж точно её можно допилить там до рабочего состояния.

Для работы игра требует наличия nc (aka Netcat) и терминала с поддержкой 256 цветов (под Mac OS рекомендую iTerm2). При наличие интереса к игре, допилю до терминала на 16 цветов и /dev/tcp. Кстати начал выкладывать все свои шел-поделки на ГитХаб.

Сетевые шахматы на Bash


Так как игра сетевая, у неё требуется указать два параметра, о которых она расскажет, если её запустить без них. Первый — адрес машины противника, второй — порт. Порт выбирается одинаковым на обеих машинах. Игру можно запустить и на одной машине, в двух консолях (на скриншоте как раз такой случай).

Играть просто — в каждый момент времени активна только одна доска (на скриншоте — правая, у неё буквы и цифры вокруг доски ярче), на активной доске курсор двигается курсорными клавишами — ←, →, ↑ и ↓, взять фигуру и поставить её на доску — по клавише пробела или Enter. Как только вы поставили фигуру на доску, ход переходит к сопернику. «Съесть» фигуру соперника проще простого — достаточно поставить свою фигуру на чужую. В игре есть защита — нельзя «съесть» свою фигуру.

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

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

Читать дальше →

Командная строка на службе фотографа-линуксоида

Время на прочтение4 мин
Охват и читатели4.7K
Здравствуйте, хабралюди!

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

Для Линукса, которым я пользуюсь практически 100% времени, есть много различных графических инструментов для работы с фото. Но иногда бывает, что нужной функции в используемой программе — нету.
Или она есть, но ты не смог её найти. Что же делать? Конечно же, использовать bash.

Читать дальше →

Комильфо интерфейса пользователя

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

Кто ответит за дизайн?



Зачастую разработкой интерфейса ПО занимаются сами программисты, которые это ПО и написали. Причем, как правило, не каждый программист может похвастаться наличием дизайнерских способностей или хотя бы опыта в этом плане.
Правильного ответа на вопрос «как сделать хороший интерфейс» нет и не будет, однако можно вывести некоторые общие рекомендации, которые хоть и не ответят на вопрос «как нужно делать», зато уж точно подскажут «как делать не нужно». Следование таким рекомендациям не даст обязательно сногсшибающий результат, зато поможет не совершать частых ошибок дизайна интерфейса и сделать его как можно более удобным и привлекательным для пользователя.
Написанные ниже рекомендации ориентированы на разработчиков ПО, которые никогда особо не задумывались об интерфейсе разрабатываемых ими программ, делая акцент лишь на внутреннее устройство. Если программа подразумевает в качестве пользователя не только самого разработчика, но и каких-либо других людей, то стоит обратить некоторое внимание и на внешний вид программы.
Некоторые рекомендации уже будут вам знакомы или очевидны, не буду отрицать. Посему просьба отнестись к этому позитивно, повторение — мать учения.
Читать дальше →

Как я делал игру

Время на прочтение10 мин
Охват и читатели18K
Всем привет, меня зовут Марк, я — Flash-разработчик. Я доволен своей работой, с помощью которой я могу сейчас зарабатывать достаточно для достойного существования в городе на букву М, да чтобы ещё и была возможность потихоньку копить сбережения на будущее. Даже несмотря на то, что в этой стране само слово «будущее» является каким-то очень странным и непонятным термином.

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

И вот, на фоне всеобщего помешательства инди-играми, бешеной популярности App Store и девайсов на базе Android, а так же нескольких шумных историй о том, как несколько разработчиков стали безумно богатыми за невероятно короткий срок, меня не покидают мысли о том, что я тоже могу, да что-там, я просто обязан заниматься разработкой игр в свободное от работы время.
Читать дальше →

Web Symbols

Время на прочтение1 мин
Охват и читатели6.4K
image

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

Чтобы упростить себе эту работу мы сделали шрифт, в котором каждая буква — символ (как правило, часто используемый).

Ну и собственно почему-бы им не поделиться со всеми?

Web Symbols

Создание Doodle jump на HTML5

Время на прочтение7 мин
Охват и читатели16K
Doodle Jump
Здравствуйте, Хабражители!
В этом топике я хочу рассказать о том, как я создал браузерную игру «DoodleJump» на HTML5 без использования каких либо то фреймворков. Для тех кто не знает, DoodleJump — это популярная мобильная игра где главный герой «doodler» бесконечно прыгает вверх по платформам, преодолевая различные препятствия, и собирая бонусы. Эта игра широко распространена почти на всех мобильных платформах, но приличной браузерной версии этой игры нет, поэтому я и решили написать браузерную версию этой игры, пусть даже управляемую клавишами а не гироскопом.
Читать дальше →

Пишем живые обои с часами

Время на прочтение4 мин
Охват и читатели25K
ClockНедавно я решил разобраться, как делать живые обои для андроида, а разбираться лучше всего на хорошем примере — таком, который потом пригодится. Я всегда хотел удобные часы. Для андроида уже существует достаточное количество подобных обоев, но обычно они рисуют большие часы в каком-нибудь фиксированном углу экрана и перекрываются виджетами, которых у меня немало. Мне хотелось, чтобы часы были разбросаны по всему экрану, тогда вероятность увидеть их будет выше.
Как сделать такое читайте дальше

«РосЯма» открыла исходный код сайта под свободной лицензией

Время на прочтение2 мин
Охват и читатели7.5K
Неделю назад координатор известного проекта «РосЯма» объявил об открытии исходников сайта (PHP-скриптов) под BSD-подобной лицензией: «Так как мы не в состоянии отследить все клоны РосЯмы, которые могут возникать, и вообще всё то, что могут придумать наши предприимчивые соотечественники, решили выбрать лицензию посвободнее. Кто угодно может совершенно бесплатно скачать себе исходный код, как угодно его менять, использовать в своих проектах, в том числе коммерческих и закрытых», — сообщил представитель веб-студии Greensight, которая сделала разработку сайта.

Репозиторий на Mercurial находится по адресу hg.rosyama.ru. Клонирование:

hg clone http://hg.rosyama.ru rosyama-local/

Обновление до новой версии — командой hg pull. Поддержка и обновление проекта продолжаются, репозиторий открыт только на pull. Баг-трекер функционирует по адресу trac.rosyama.ru.

Цена разработки «РосЯмы» составляет около 200 000 руб. Учитывая стоимость и общественную важность проекта, переход под Open Source можно только приветствовать, несмотря на все отрицательные моменты.
Читать дальше →

Пошаговая стратегия как хобби

Время на прочтение5 мин
Охват и читатели39K


Привет, хабралюди! Кто из вас не мечтал создать свою игру? А возможно ли написать браузерную стратегию, не имея при этом опыта и денег? Возможно, если очень этого хотеть.

Под катом моя история создания бесплатной пошаговой стратегии.

Читать дальше →

Знакомимся с PayPal API

Время на прочтение13 мин
Охват и читатели88K
На данный момент, PayPal — это самая популярная платформа электронных платежей. Именно то, насколько легко можно открыть счет и начать получать на него средства, по сравнению с традиционными способами получения платежей, и является причиной #1 его запредельной популярности. Второй причиной, многие со мной согласятся, является мощный API, предоставляемый PayPal. В этом топике я по порядку разложу все способы и трюки, связанные с работой PayPal API, чтобы вы избежали проблем с его интеграцией.
Читать дальше →

Теория Игр и функция Шпрага-Гранди

Время на прочтение6 мин
Охват и читатели37K
Доброго времени суток, уважаемое Хабрасообщество.

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

Я хочу рассказать вам основы теории Игр, доказать функцию Шпрага-Гранди, разобрать несколько классических impartial-задач и проиллюстрировать их кодом на python.
Читать дальше →

Знакомство с XNA и написание первой музыкальной игры

Время на прочтение13 мин
Охват и читатели52K
Привет всем начинающим геймдевелоперам и просто хорошим людям. Сегодня, я хочу познакомить вас с замечательным фреймворком XNA (набор инструментов с управляемой средой времени выполнения dotNet). Программировать мы будем на C#.
Для того, чтобы познакомить вас с XNA ближе, я предлагаю написать простую «музыкальную» 2D игрушку. Остальное под катом.
Читать дальше →

Изобретаем язык программирования для тренировки мозгов. Или эзотерический язык программирования за 5 минут

Время на прочтение2 мин
Охват и читатели6.4K
Изучая вики по эзотерическим языкам я наткнулся на интересный язык программирования Piet. Отличительной особенностью которого является графическое представление программы. Например, эта программа выводит «Hello World!»
image
И показалось мне, что данная программа похожа на QR-Code.
image
Только Piet использует цветовую кодировку. А QR-Code использует комбинацию расположения точек.
Читать дальше →

Информация

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