Архив

Архив раздела ‘Coding’

Алгоритм кратчайшего пути шахматной фигуры

11 January 2018 4 comments

Недавно мне понадобилось решить задачу поиска кратчайшего пути с клетки A в клетку B алгоритмически, и реализовать это программно. «Наверняка это уже тысячу раз кто-то делал и в интернете полно готовых решений». — подумал я, и каково же было мое разочарование… Несколько дней поисков ничего конкретного не дали. Максимум, что удалось найти, это упоминание, что решить данную задачу можно используя теорию графов и алгоритмом поиска в ширину (BFS — breadth first search). В этой статье я попробую подробно разобрать данный способ нахождения кратчайшего пути шахматных фигур с примерами кода и пояснениями.
Читать далее…

Categories: Coding Tags: , , , ,

Cocos2d-JS: загрузить внешние аудио файлы и javascript код

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

Читать далее…

Categories: Coding Tags: , , ,

OS X: Показать рабочий стол (аналог Win-D)

28 May 2016 4 comments

Давно мне не давало покоя отсутствие функции Скрыть все окна в Mac OS X. Почему это так важно для меня? Я чувствую дискомфорт от нагромождения окон на экране, или если в браузере открыта бесконечная куча вкладок, или ярлыков на рабочем столе тьма тьмущая, у меня все это вызывает приступы паники. Чтобы максимально сосредоточить внимание на конкретной задаче, мне нужно, чтоб на экране было не более трех окон. Прошло уже 5 лет, как я мигрировал с Windows, и все это время я пользовался убогим воркэраундом — Скрыть остальные (Option-Cmd-H) в меню приложений. Сегодня же я нашел и осуществил вполне себе достойный способ скрыть все окна одним кликом мыши. Сейчас расскажу, как мне удалось это сделать.

Читать далее…

Categories: Apple, Coding Tags:

Преобразовать двоичный plist в XML

Периодически возникает задача преобразовать plist файл из бинарного представления обратно в XML. Возникает эта задача как правило тогда, когда нужно из IPA архива извлечь plist файл проекта и посмотреть, что у него внутри. Это затруднено тем, что сборщик IPA (утилита xcrun) упаковывает все, что только можно, чтобы уменьшить размер приложения, и вероятно это ускоряет запуск приложения. Решил раз на пятый это дело скинуть себе в блог, чтоб не искать каждый раз мучительно.
Читать далее…

Categories: Apple, Coding Tags: , , , , ,

HexLauncher: быстрый запуск приложений в Mac OS X

5 April 2015 9 comments

История создания данного продукта возвращает меня на 5 лет назад во времена, когда я только начал входить в мир Apple технологий, а именно — мигрировать на операционную систему Mac OS X. Как и для многих пенреход был связан с некоторыми неудобставми из-за отсутствия привычных программ и элементов управления системой. Одним из недоразуменей стало отсутствие аналога кнопки Пуск для запуска программ путем выбора из списка. Честно говоря, до сих пор не уверен, что я правильно запускаю программы в OS X (для этого я использую Spotlight). И вот, спустя несколько лет я решил устранить этот недостаток.
Читать далее…

+(AppStore *) Timera: создай свое окно во времени

Настала пора поведать общественности о моем скромном участии в интересном и перспективном проекте с весьма оригинальным названием Timera (от слов time и camera). По удачному стечению обстоятельств я пребывал в активной фазе поисков новых гаризонтов развития в тот самый момент, когда руководство стартапа искало кандидата на вакансию iOS-разработчика. Суть проекта довольно проста — ее визуальное представление можно видеть на главной иллюстрации к посту (изображение кликабельно). Пользователю представляется инструмент для создания временнОго туннеля путем совмещения фотографии из прошлого с фотографией, сделанной камерой смартфона. Идея мне очень понравилась и я незамедлительно начал интегрироваться в процесс разработки, в ходе которого пришлось столкнуться и преодолеть немало сложных и интересных задач. Читать далее…

Утиная Охота: одной загадкой меньше

Давненько не обновлял блог, материала как всегда полно, но собрать что-то воедино и запостить руки не доходят. Сегодня я хотел бы написать мини-пост с элементами мемуаринга о том, что недавно на этом свете для меня стало одной загадкой меньше. Речь пойдет о приложении Duck Hunt для легендарного девайса Dendy.
Dendy — восьмибитная телевизионная приставка, клон японской Nintendo Entertainment System, подключалась к телевизору обычным коаксиальным кабелем, после чего видеосигнал настраивался на одном из каналов. Приложения запускались с помощью сменных картриджей, которые из себя представляли по сути печатную плату с микросхемой ROM, хранящий код приложения. Читать далее…

Подготовка Apple Push Notification SSL сертификата

8 July 2013 9 comments

Сегодня хотел бы записать на память один нетривиальный процесс, касающийся внедрения механизма Apple Push Notification Service, который осуществляет рассылку коротких сообщений на устройства пользователей приложений в AppStore. И хотел бы я записать последовательность действий, производимых при создании и установки SSL Push Certificate, без которого не будет работать серверная часть, рассылающая пуши. Также если останется место, напишу, как реализовать самый простецкий push-сервер на php. Сама функция Push Notification очень полезна для оповещения пользователей о новых событиях в системе. Такие монстры, как Skype, Google, WhatsApp используют технологию push, чтобы осуществлять вызов абонентов или уведомлять о новых сообщениях на манер, как это делает стандартное приложение PhoneApp. Читать далее…

Мультиязычный Zend Framework и WordPress

Как же долго я не мог себя заставить начать двигаться в направлении реализации мультиязычности на своем сайте… Эта задача оставалась нереализованной на протяжении двух лет. Обусловлено это по большей части тем, что движок сайта собственноручный, основанный на Zend Framework. Много раз я пытался подступиться к решению проблемы локализации Zend Framework, но ничего достойного никак не находилось. На официальном ресурсе (zendframework.ru) есть целая ветка форума, но там я тоже не нашел для себя идеального решения. В итоге, пришлось собирать его из разных источников. И вот, что в итоге получилось. Читать далее…

Categories: Coding, Блог Tags: , ,

Цветной UIImage из черно-белого изображения

Долгое время не мог подступиться к одной проблеме, которая то и дело периодически всплывала. В очередной раз я твердо решил, что мириться с таким положением дел не представляется более возможным и в очередной раз приступил к исследованиям. А проблема в следующем. Предположим, имеется в наличие монохромная картинка (например, иконка звезды для кнопки Избранные), а также некий каркас приложения, который реализует использование скинов (кастомизация пользовательского интерфейса). Если один клиент хочет, чтобы звезда была красной, а другой, чтобы синей, то дизайнеру придется каждый раз переделывать изображение. Но зачем, когда должно существовать более простой способ придать оттенок изображению с помощью графических функций CoreGraphics. Читать далее…

Categories: Coding, Новости Tags: ,