Search
Write a publication
Pull to refresh
10
0.3

JavaScript-разработчик

Send message

Создание космической браузерной игры. Первый опыт

Reading time8 min
Views37K
В этой статье речь пойдет о первом опыте создания космической браузерной игры. О начальных шагах, первых результатах, о совершенных ошибках и наиболее интересных трудностях разработки, с которыми приходилось столкнуться. Мы будем рады, если читатели Хабра найдут в этой статье интересную для себя информацию.

В качестве вступления


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

Идея создания космической игры родилась довольно давно. Почему космической? Отчасти потому, что космическая тема всегда вызывала мой личный интерес, а отчасти, по причине ностальгических воспоминаний от приятного времяпрепровождения за «Космическими рейнджерами», когда-то в далеком прошлом…

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

Рецепт вращения планет в космосе на HTML5 + JavaScript

Reading time3 min
Views38K
imageВ рамках создания нашей браузерной космической игры, перед нами стояла задача разработать простую и наименее ресурсозатратную анимацию вращения планет в звездной системе.

Вычеркиваем


После непродолжительного подбора различных способов реализации, сразу были исключены варианты:
  • с gif-анимацией (из-за низкого качества изображения);
  • с Flash (по договоренности, Flash-технологии решили в проекте не использовать);
  • с анимацией с помощью JQuery посредством функции $().animate (по причине ее прожорливости).


CANVAS в помощь!


Итак, остановились мы на использовании Canvas и JavaScript, посчитав этот вариант оптимальным для реализации нашей задачи.
Читать дальше →

Frida-node или немножко странного кода

Reading time8 min
Views17K
Приветствую всех, кто читает эту статью.
Как-то так сложилось, что на хабре практически нет упоминаний про замечательную штуку под названием Frida. Самое толковое из них заключается в паре строк кода и общем описании(HabraFrida, из которой, собственно, я и узнал про существование этой штуковины, за что отдельное спасибо автору).
Если вкратце, то Frida занимается тем, что инжектит JS-движок от Гугла(V8) в таргетный процесс(при отсутствии защиты, конечно же), причем встроенный js-код умеет работать с памятью, перехватывать вызовы функций, делать эти самые вызовы и заниматься прочими непотребствами.
Если честно, с реверсом я знаком крайне посредственно и, в-основном, из MMORPG Runes of Magic, с которой я и начал учиться кодить и с которой связанна немалая часть моих текущих познаний в программировании. Собственно, до сих пор время от времени развлекаюсь написанием всяких разностей под нее(дырявая, кстати говоря, игрушка… Каких только шикарных багов в ней не находили, начиная от рисовки предметов и заканчивая sql-inject'ом). Вот для нее я и написал немножко тестового кода на Frida, позволяющего делать… разное.
Почему node.js? Прост. В конце-концов, это же хаб ненормального программирования)
Читать дальше →

Сокровищница отечественной криптографии

Reading time8 min
Views35K
В своей первой статье я писала о легендарном Блетчли-Парке и криптографической службе Великобритании военного периода, о шифровальных машинах Тьюринга и немецкой «Энигма». Сейчас речь пойдет о нашей отечественной криптографии. В СССР криптография была полностью закрытой дисциплиной, которая использовалась исключительно для нужд обороны и государственной безопасности, а потому не было необходимости в публичном освещении достижений в этой области.



Попытки создания аппаратов для автоматического шифрования


Многие согласятся с американский историком Дэвидом Каном в том, что «свой современный вид шифровальное дело получило благодаря телеграфу».
Россия. Конец ХIХ века. 1879 год. Главный механик, помощник начальника Петербургского почтово-телеграфного округа Деревянкин разработал оригинальный прибор для шифрования телерамм «Криптограф».
читать дальше

Обзор Circuit Scribe: рисуем электронные схемы без проводов и макетных плат

Reading time5 min
Views16K


У вас в детстве был конструктор? Уверен, что да. Возможно, это был брутальный железный, с отвертками и ключами, или изысканный деревянный — для сборки домиков. Возможно, вам повезло и достался набор LEGO, а если не очень — то LEGO Duplo. Автору этого текста родители подарили электронный конструктор «Знаток» — набор с большим количеством деталей для создания электрических схем и с советами Андрея Бахметьева («Очумелые ручки»).
Читать дальше →

Делаем адресные формы более привлекательными

Reading time6 min
Views51K


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

К сожалению, однократной очистки часто бывает недостаточно: нужно не допустить попадания плохих и неполных данных в базу в будущем. Именно для решения этой задачи был разработан сервис подсказок, о котором мы писали ранее. Изначально подсказки предназначались для операторов, которым приходится вводить большое количество адресов, и были призваны ускорить их работу и сократить количество ошибок.

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

Итак, приступим!

Распознать нельзя оставить картинкой, или кое-что о сложных случаях оптического распознавания текста

Reading time5 min
Views23K
На данный пост нас сподвигло интервью, которое наш европейский офис дал одному компьютерному журналу. Речь шла об ABBYYFineReader и о технологиях распознавания. Среди вопросов был и примерно такой:

What were the main challenges to be overcome when developing the software? Were there any particularly knotty problems?

В ответ так и хочется выдать служебную тираду, про то, что изображения бывают очень разные, фотографии нечёткие, разрешение низкое, бумага грязная, буквы вычурные… В общем, даже не зная ничего или почти ничего о наших технологиях, можно сказать нечто правдоподобное.

И здесь есть повод задуматься. Всё-таки с точки зрения сложности задач не так уж это интересно – низкое качество изображения и декоративные шрифты. Мы примерно то же самое могли сказать и пять лет назад, и десять, и двадцать. Да, несомненно, прогресс есть – и для большей части версий известный обозреватель и наш старый друг Сергей Голубицкий находил как раз те картинки, которые оказывались на «переднем крае» наших технологий – чтобы именно их новая версия FineReader стала обрабатывать практически идеально, а старая пока «спотыкалась».

Но чтобы рассказать о том, какие трудности перед нами стоят ещё, стоит прибегнуть к небольшой метафоре. Вот какие трудности у вас возникли, чтобы решить следующую задачушкольный пример
Только не надо и правда её решать в уме: мы НЕ подбирали цифры, чтобы ответ был целым

Автоматизируй это

Reading time9 min
Views28K
Сколько нужно программистов, чтобы сделать форму для пользователя? Ни одного! Для этого достаточно создать инструмент, с помощью которого создавать формы для web-решений смогут даже домохозяйки.


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

Астротрекер: мой опыт

Reading time5 min
Views31K
Дабы совместить два своих любимых хобби: фотографию и астрономию, решил попробовать себя в астрофотографии. Уж очень глубокое впечатление на меня оказывают фотографии Млечного Пути с огромными россыпями звезд. Тем более что каждое лето бываю на Кавказе, а небо там идеально подходит для наблюдений. Для качественной съемки звездного неба не обойтись без астротрекера. Для чего он нужен не вижу необходимости повторять, т.к. здесь уже было несколько статей на эту тему. Поэтому просто хотел бы поделиться своим опытом создания данного устройства, его настройки и использования. Саму конструкцию я почерпнул из данной статьи, немного упростил её, и оснастил собственными доработками. Подробности под катом.


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

Хватит неправильно использовать выпадающие списки

Reading time4 min
Views133K
Формы состоят из самых разных элементов интерфейса. Если вы не знаете, как правильно с ними обращаться, вы можете сильно усложнить заполнение форм. Чаще всего ошибаются, применяя выпадающие списки (select menu).

Когда использовать


Иногда можно встретить выпадающие списки с 2 вариантами, иногда — с более чем 20. В обоих случаях это неправильно. Если у пользователя есть менее 5 вариантов выбора, следует использовать радиокнопки. Так выбор будет проще и быстрее, потому что пользователю нужно лишь взглянуть на варианты и один раз кликнуть. С выпадающим списком ему нужно нажать на него, найти подходящий вариант и кликнуть снова. Также другие варианты не видны, пока вы не нажмёте на выпадающий список. Если их меньше 5, лучше наглядно показать их в форме в виде радиокнопок — пользователи смогут быстро их просмотреть.



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

Полная кастомизация select без использования JS

Reading time4 min
Views84K
imageСколько я не мучил поисковик, а решения этого вопроса так и не нашлось. Конечно, всегда можно использовать JS и это нормально, но иногда заказчик душа просит изысков.
Читать дальше →

Муравьиная оптимизация и сетевые алгоритмы

Reading time8 min
Views20K
Как вы могли заметить, у нас тут затишье. Но наш творческий поиск не прекращается, и первая октябрьская публикация будет посвящена ACO (Ant Colony Optimization)



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

Виртуальные машины и микроконтроллеры

Reading time5 min
Views21K
Разрабатывая разные устройства, очень часто получаешь проблему: алгоритм от устройства к устройству местами повторяется, а сами устройства полностью разные. У меня три разрабатываемых устройства, которые местами повторяют функционал друг друга, в них используются три разных процессора (три разные архитектуры), но алгоритм один. Чтобы хоть как-то все унифицировать, было задумано написать минимальную виртуальную машину.


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

PPM-to-USB адаптер на STM32F3Discovery, или Подключаем авиамодельный пульт к компьютеру как HID-джойстик с STM32Cube

Reading time22 min
Views42K


В этой статье я расскажу, как:
  • Создать проект в STM32CubeMX и настроить таймеры для захвата внешних сигналов.
  • Декодировать PPM-сигнал с авиамодельного пульта.
  • Сделать Human Interface Device на STM32 и написать свой HID Report Descriptor.
  • Полетать в симуляторе на гоночном квадрокоптере. :)
Читать дальше →

Пульт радиоуправления моделями своими руками

Reading time3 min
Views80K
image

Всем привет. Представляю на общее обозрение самодельный пульт радиоуправления для управления различными объектами на расстоянии. Это может быть машинка, танк, катер и т.д. изготовленное мной для “детского” радио кружка. С применением радио модуля NRF24L01 и микроконтроллера ATMEGA16.
Читать дальше →

19 принципов разработки по БЭМ, или что должен знать каждый разработчик библиотек

Reading time11 min
Views43K
БЭМ набирает популярность и становится актуальнее — например, недавно Google выпустил новую библиотеку блоков под названием Material Design Lite, реализованную по БЭМ-методологии. Команда БЭМ тоже не сидела без дела — мы выпустили новую версию библиотеки bem-components, на базе которой построены сайты и проекты не только Яндекса, но и других разработчиков.

Эти события натолкнули нас на мысль ещё раз вспомнить и рассказать вам, как сформировались принципы разработки библиотек в БЭМ-методологии. Надеемся, что многим это будет интересно и полезно. Итак, поехали.

image

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

Если вы хотите узнать на примерах, как мы пришли к нашим принципам разработки, добро пожаловать под кат.
Читать дальше →

«Книжная полка фронтендера» — как гугл, только лучше

Reading time2 min
Views38K
Список книг — «Книжная полка фронтендера

Привет, читатель!

В этой публикации я расскажу тебе о «Книжной полке фронтендера».

Предыстория


К сожалению, в рунете очень мало по-настоящему качественных ресурсов для изучения фронтенда. Эти ресурсы можно буквально пересчитать по пальцам одной руки — это Frontender Magazine, HTML Academy, «Современный учебник JavaScript». Я благодарю авторов этих ресурсов за их неоценимый вклад в развитие и популяризацию фронтенда в рунете.

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

Лайфхаки для веб-разработчика

Reading time3 min
Views45K
Обожаю трюки и лайфхаки. Каждый раз радуюсь, когда удается упростить очередную рутинную операцию. А так как работаю я, вот уже 8 лет, веб-программистом, то рутинные операции и лайфхаки у меня программерские. Вот этим и хочу с вами поделиться.
Часть трюков до меня уже описали на хабре, часть я взял из других источников, часть придумал сам. Буду благодарен если в комментариях к посту вы напишете, какие трюки используете вы.

Использование ** в zsh


Таким образом я ищу файлы в папке по расширению рекурсивно:
ls **/*.json

файлы с размером выше чем 1 мегабайт:
ls -lh **/*(Lm+1)

Быстро и уверенно удаляем мусор из репозитория в python проекте и судорожно правим. gitignore:
git rm --cached **/*.pyc


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

Игры на CSS. Часть 2: StarCraft

Reading time4 min
Views47K
Доброго дня, хабровцы.
По результатам прошлой статьи я понял, что тема интересна общественности, поэтому подготовил еще один материал, чуть сложнее.
По прежнему нет скриптов, только HTML/CSS.

Смотрите видео и под кат.

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

Information

Rating
3,554-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity