Search
Write a publication
Pull to refresh
0
Be3 @Be3read⁠-⁠only

User

Send message

Верхом на танке — Часть 1 — Поле боя

Reading time8 min
Views9.2K
В этот прекрасный, ничем не отличающийся от остальных день (если не брать в расчёт тот факт, что холодная погода разбила в осколки все мечтания о хотя бы паре тёплых дней в этом году что бы поездить на велосипеде), у меня выдалось хорошее настроение. И хорошее оно даже несмотря на то, что я отчаялся ставить хакинтош на свой ноут, и пришёл к неутешительной мысли, что если я хочу хоть что-то написать под iOS, то мне надо копить на продукцию фирмы Эппл. Но собственно пост не об этом, а о небольшой жизни крохотной игрушки, которую мы с вами и попытаемся создать. Честно говоря, в добрые времена я не так уж и много играл в предка нашего творения (которого ещё и не существует), но определённые теплые воспоминания ещё остались в моём сердце. Итак… Танки! Танчики! БатлТанкс! БатлСити!
Писать будем на JavaScript с выводом на canvas.
Далее более

Node: Масштабирование в малом против масштабирования в целом

Reading time8 min
Views4.7K
Последние несколько недель я использую все свободное время, которое могу найти, чтобы обдумать, какие технологии мы будем использовать, чтобы реализовать первую версию BankSimple. Многие люди, вероятно, предположат, что я сразу же предпочёл Scala, в связи с тем, что я был соавтором книги об этом языке, но я подхожу к решению инженерных задач совершенно иначе. Каждая проблема имеет соответствующий набор применяемых технологий, и задача разработчика, — обосновать необходимость их использования.

(Кстати, Scala, может быть, хорошо подходит для BankSimple, в немалой степени из-за большого количества стороннего кода на Java, с которым мы должны интегрироваться, но это уже совсем другая тема для блога, и даже, скорее всего, для совершенно другого блога).

Одной из самых обсуждаемых технологий среди Hacker News является Node, окружение для разработки и запуска событийно-управляемых приложений JavaScript на виртуальной машине V8. В рамках выбора технологий для реализации проекта я выполнил оценку Node. Вчера я выразил некоторый общий скепсис относительно Node, и автор этого окружения, Райан Дал, попросил, чтобы я изложил свои мысли более подробно. Так вот, приступаю.
Читать дальше →

Получаем бесплатный SSL сертификат

Reading time4 min
Views517K
Привет, хабр!

О StartSSL я узнал от небезызвестного lissyara, в связи с чем ему очень благодарен.

Для начала расскажу, что же за зверь это. Как известно, SSL сертификаты выдаются центрами сертификации, чьи корневые сертификаты хранятся в хранилище сертификатов браузера\ОС (либо другого ПО, использующего SSL). Цена на большинство сертификатов зашкаливает, и платить приходится за каждый сертификат. Но у StartSSL весьма интересный подход — сами сертификаты у них бесплатные, вы платите только за проверку вашей личности.

Так же не может не радовать наличие русскоязычной поддержки.
Читать дальше →

Определение кодировки текста в PHP, часть 2 — биграммы

Reading time3 min
Views8.2K
В прошлой статье был реализован алгоритм автоматического определения кодировки текста на основе частот распределения символов. В комментариях отметили: если использовать биграммы (триграммы), результат будет более точный. Тогда я отмахнулся, мол, и на одиночных символах неплохой результат получается. Но сейчас подумал, что неплохо было бы добавить надежности и точности в алгоритм, тем более использование биграмм вместо одиночных символов сильно кушать не просит.

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

Прототипирование игр с помощью JavaScript и CSS3

Reading time2 min
Views3.7K
Я хотел бы поделиться прототипом игры, созданным всего за несколько часов. Надеюсь, что он вдохновит нескольких из вас! В индустрии однопользовательских браузерных игр, кажется, очень не хватает воображения и умения рассказывать истории, хотя, возможно, я просто не заметил таких игр ;), но мне не хватает таких игр, как Grim Fandango.

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

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

Создаем чат на Node.js и Socket.IO

Reading time5 min
Views228K
В данной статье я попытаюсь показать, как можно создать простой чат, используя Node.js в связке с Socket.IO. Изначально я хотел построить чат на чистых Websockets, но столкнулся с практически полным отсутствием готовых реализаций сервера для них в Интернете. Так что решил не изобретать велосипед, а использовать готовую библиотеку.
В моем случае сервер работает под Ubuntu, поэтому все примеры будут для неё (и ссылки в примерах — на него же).

Установка компонентов

Первым делом нам потребуются собственно Node.js (инструкция по инсталляции и ссылки на скачивание здесь) и Socket.IO. Модули для Node.js проще всего устанавливать, используя менеджер npm —
curl http://npmjs.org/install.sh | sh
npm install socket.io

Серверная часть

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

Стейкхолдеры: зона особого внимания

Reading time5 min
Views61K
Как только в мире рождается новый проект, у него сразу появляются друзья и враги. Объясняется это очень просто: любой проект влечет за собой изменения. Ну а люди на перемены реагируют по-разному – кто-то к ним готов и горячо приветствует, а кто-то перемен не любит и боится, потому что видит в них угрозу для своего статуса, образа жизни, стабильности или, что еще хуже, появление у себя дополнительной работы. И первые, и вторые могут оказаться в числе людей, способных повлиять на ход и результат проекта.
Читать дальше →

Мгновенный поиск в 75 гигабайтах

Reading time8 min
Views35K
Речь пойдет о том, как был реализован быстрый поиск по большим объемам данных на этой страничке. Там можно искать пароль по хешу, для игрового сервера PvPGN, и генерировать эти же хеши.
Поиск написан на чистом PHP, без использования модулей и сторонней БД. В принципе, таким образом можно наращивать объемы до многих терабайт, было бы место — скорость от этого не сильно пострадает.

Далее от начала до конца описан весь процесс, который включает в себя брутфорс, создание хеш таблицы, её сортировка и, собственно, поиск.


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

Влияние сохранение и загрузки игрового состояния на игровой процесс

Reading time5 min
Views7.4K

Введение


Несмотря на то, что функция сохранения (save) и загрузки (load) игрового состояния (game state) относится скорее к системному функционалу, в определённых случаях их можно рассматривать и в разрезе игрового дизайна, как влияющие на механику игрового процесса.

Главное, что можно сказать об этих функциях это то, что они непосредственно влияют на способности принимать правильные решения, без получения штрафов (penalties). В полной мере контролируя эти функции игрок может идеально пройти всю игру, не получив ни одного повреждения, ни потеряв ни одной жизни, копейки денег и тому подобное. Таким образом можно сказать, что сохранение и загрузка влияют как на сложность, нивелируя все опасности и штрафы, так и на эффективность, если игра ведётся на время и состояние времени также сохраняется и восстанавливается.

Кроме того, сохранение и загрузка позволяет в принципе избежать такого состояния как проигрыш (game over). Имеется ввиду, конечно, не проваленная попытка, а невозможность выиграть, не начиная сначала. От смерти в результате падения в яму сохранение и загрузка не спасают.
Читать дальше →

How to по деревьям на jQuery

Reading time5 min
Views7.3K
Часто встречаются задачи, в которых требуется отобразить древовидную структуру взаимосвязей каких-либо сущностей. Например, навигация по файловой системе, меню сайта или содержание учебника.
image
Самым простым вариантом отобразить древовидную структуру в HTML являются списки. Но нас интересуют деревья, обладающие динамическими свойствами. Без javascript тут не обойтись. Так как решение нужно обычно быстро, то использование jQuery позволяет создавать динамические деревья, экономя прилично времени на кодинге. Чтобы сэкономить себе еще кучу времени идем на поисковик и ищем подходящее решение. В целом часто на этом дело создание дерева на сайте и ограничивается, но бывают ситуации, когда дерево подходит, но не имеет какой-то маленькой фишки и тут уже ни чего не остается, кроме как модифицировать имеющиеся дерево.
Читать дальше →

Faviconist: Создайте красивый favicon с HTML5

Reading time1 min
Views8K

Каждый сайт должен иметь favicon. Если вы до сих пор не сделали значок для вашего сайта — сделайте, теперь это еще проще!
Faviconist — новый favicon генератор от Michael Mahemoff.

Вам больше не нужен Photoshop для создания простого значка. Как Mahemoff пишет в своем блоге: Faviconist для 95% людей, которых устроит микро-дизайн их иконки, остальным все равно придется прибегнуть к Photoshop.
Читать дальше →

Алло, мы ищем команды!

Reading time2 min
Views753
image
Заканчивается пора летних отпусков и разработчики игр со всего СНГ наверняка обдумывают очередные планы по захвату мира, ну или хотя бы небольшого сегмента рынка.
Мы (компания GDTeam Limited) хотим всячески поддержать эти начинания и открываем новый этап отбора команд и проектов.
Читать дальше →

Автоматические хосты для веб-разработки (FreeBSD)

Reading time2 min
Views6K


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

Как вариант, можно скриптами обновлять конфиги apache и файл hosts.

Другое решение, настройка собственного DNS сервера с зоной верхнего уровня.
Это мы и сейчас и проделаем.

Итак, создадим зону ".dev" (используя демон named и apache под FreeBSD)
Читать дальше →

История одного покерного бота

Reading time6 min
Views48K
Сейчас возможность написания покерного бота уже не вызывает сомнений (есть даже серия статей в журнале Хакер), а вот в 2008 году все было не настолько очевидно и все что можно было найти — одна единственная статья на английском языке, которая описывала лишь общие идеи, которое так и не прижились в нашем проекте. Но даже сейчас мало кто будет делится успешными историями.
В данной статье я опишу наш опыт разработки бота, который действительно тестировался в реальных покер румах и даже научился играть и не проигрывать. Те, кто собрался писать своего бота — найдет в статье интересные вещи и пути облегчения себе жизни. Кому интересно — добро пожаловать под кат.
Читать дальше →

Что делать, если вы застряли с Большой и Сложной Программистской Задачей?

Reading time5 min
Views8.9K
image

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

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

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

Заблуждения о самоорганизующихся командах

Reading time4 min
Views3.2K
На недавней конференции я вдоволь наслушалась разговоров трёх менеджеров о самоорганизующихся командах.

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

«Ограничения по времени классная штука», — говорил другой. «Засуньте их всех в комнату, поддайте жару и они начнут творить», — утверждал он.

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

Время развеять некоторые заблуждения.
Читать дальше →

Как сделать собственный видео-плеер на HTML5 Video

Reading time9 min
Views198K
Ранее мы уже рассмотрели общие вопросы использования HTML5 Audio и Video и начали погружаться в детали, начав с задачи определения поддержки браузером нужного кодека. Сегодня мы рассмотрим задачу создания собственного видео-плеера на HTML5 Video.


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

<video src="trailer_480p.mp4" width="480" height="270" poster="poster.gif" controls />

Однако, как я отмечал в вводной статье, со стандартными контролами есть проблема, которая заключается как раз в том, что выглядят они нестандартно. Другими словами, в каждом браузере они выглядят по-своему (проверить, как выглядят контролы в разных браузерах, можно на примере Video Format Support на ietestdrive.com — просто откройте его в двух-трех различных браузерах).
Читать дальше →

Git и публикация сайта

Reading time4 min
Views115K
При попытке отредактировать этот старый пост слетело всё форматирование. Может быть я его когда-нибудь исправлю.

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

Основные преимущества:
  • Делая push из удалённой копии мы автоматически обновляем live-копию сайта
  • Правки файлов на сервере не будут разрушать историю коммитов
  • Простота, не нужны особые правила выполнения коммитов
  • Можно применить к уже запущенному сайту, без повторного деплоя или перемещения файлов
посмотреть, что там такое

Интервью с Райаном Далом. Часть первая

Reading time4 min
Views1.2K
Это интервью было проведено Олегом Подсечиным с Райаном Далом (Ryan Dahl) 8 июля 2010 г., вскоре после чтений Райана в Кельне. Олег — энтузиаст JavaScript, который управляет Ionsquare Ltd, специализирующейся в области ИТ-консалтинга.

О.П.: Первый вопрос на самом деле вводный. Как вы пришли к Node.JS? Был ли у вас раньше опыт работы с JavaScript? Когда вы начали работать с использованием JavaScript? А также с событийно-управляемым программным обеспечением?

РД: Я работал по контракту, и делал различные маленькие проекты на C, как правило, серверное событийно-управляемое программное обеспечение, и я понял, что пишу один и тот же код снова и снова. С — великолепный язык для работы, но я хотел что-то, позволяющее писать скрипты в том же стиле, в котором я обычно программирую серверное ПО.
Читать дальше →

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity