Pull to refresh
4
0
Дмитрий Мозговой @ctajiuh

User

Send message

Советуют разработчики: подборка популярных книг о программировании, языках, алгоритмах

Reading time9 min
Views65K
В сегодняшнем материале мы собрали одни из наиболее популярных книг, отобранных самими разработчиками — резидентами Reddit, Quora, Stack Exchange, Stack Overflow и Hacker News.

В нашу подборку попали работы по популярным языкам программирования, проектированию ПО, работе с Linux-системами, сборники практических советов для разработчиков — от начинающих, до опытных. Объединяют эту подборку высокие оценки самих программистов, которым эти книги помогали на разных этапах их карьеры.

Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments12

Лучшие плагины для Sublime Text

Reading time5 min
Views642K

WebInspector


Мощный инструмент для дебаггинга JavaScript, полноценный инспектор кода для Sublime. Фичи: установка брейкпоинтов прямо в редакторе, показ интерактивной консоли с кликабельными объектами, остановка с показом стек трейса и управление шагами дебаггера. Все это работает на ура! А еще есть Fireplay от Mozilla, который позволяет подключаться к Firefox Developer tools и максимально простой дебаггер JSHint.



Читать дальше →
Total votes 116: ↑114 and ↓2+112
Comments101

B1 Basis Band: часы-биорегистратор. Геймификация здорового образа жизни (первый обзор на русском)

Reading time8 min
Views107K
Мечта, пожалуй, любого айтишника — автоматизировать жизнь и поставить мониторинг на все на свете. До всего на свете еще далеко, а часы, позволяющие записывать целый ряд биопоказателей и отсылать их в «облако» для обработки и анализа, уже есть, и мне довелось их недавно приобрести.

.

Гаджет B1 Basis Band, один из номинантов выставки CES-2012, — это первый портативный биорегистратор, следящий за здоровьем с помощью датчиков, измеряющих сердечный ритм человека, влажность кожи, движение, температуру. Они следят за временем, потраченным на сон, считают количество сожжённых калорий. Данные через USB и bluetooth передаются на компьютер или мобильный телефон и заносятся в онлайн-профиль. В дальнейшем будем этот биорегистратор называть часами для простоты. Тем более, он еще и правда часы.

B1 Basis band продолжает линейку Fitbit, Jawbone, Nike Fuelband, дополняя привычное совершенно новыми функциями, которых еще ни в одних портативных устройствах не было. Стоит ли покупка потраченных денег?

Читать дальше →
Total votes 56: ↑49 and ↓7+42
Comments102

Простые догмы при работе с цветом в интерфейсах

Reading time5 min
Views111K
image

Привет, username!

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

Читать дальше →
Total votes 149: ↑131 and ↓18+113
Comments128

Структура кода в Unity3d — личное мнение и пара трюков

Reading time7 min
Views60K
image
Хотелось бы поделиться личными впечатлениями о разработке мобильных игр на основе Unity3d. Изначально думал уместить в одном посте все мелкие «Tip&Trick» с которыми столкнулся при работе с Unity3d за последнее время. Но их оказалось черезчур много. Так что в этом посте будут только те, которые касаются непосредственно написания кода.

Главная тема поста — разделение классов по «слоям», связывание их через события и чуть-чуть о том, как наладить взаимодействие объектов на сцене.
Кому интересно — добро пожаловать под кат!

Читать дальше →
Total votes 37: ↑28 and ↓9+19
Comments21

Поиск VPS — второй апдейт: аукционы, место для резервных копий, лицензии и отзывы о хостерах

Reading time7 min
Views11K
Всем привет!

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




Но для начала я хотел бы немного отвлечься и раскрыть небольшую тайну. В самое ближайшее время помимо возможности поиска по виртуальным серверам появится возможность искать выделенные сервера. В самом конце статьи можно прочитать небольшой комментарий для хостеров.
Обзор новых возможностей под катом
Total votes 34: ↑30 and ↓4+26
Comments19

Как стреляет шутер

Reading time10 min
Views21K
image

[Статья Armin Ronacher о принципах вычисления коллизий в сетевых шутерах. Носит скорее обзорный и исследовательский, нежели технический характер. Здесь и далее в квадратных скобках примечание переводчика]

Сегодня я хочу выглянуть из своего окошка и поделиться знаниями по весьма сложной теме, в которой я буквально пару месяцев назад ничего не понимал. Зачем? Ну, мне кажется, что это просто здорово – разбираться в этом. А еще это может дать кому-нибудь повод для погружения в эту тему.

И еще – несмотря на все мои изыскания, я не выяснил достаточно для того, чтобы ясно представлять себе механику очень динамичных игр, вроде баттлфилда, так что я не выражаю претензий на бытие истиной в последней инстанции. И еще, очень многое из этого было действительно трудно раскопать.
Читать дальше →
Total votes 124: ↑115 and ↓9+106
Comments47

Охотимся за утечками памяти в Node.js (1-я из 12 статей о Node.js от команды Mozilla Identity)

Reading time7 min
Views27K
От переводчика: Это первая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona. Как клиентская, так и серверная часть Persona написаны на JavaScript. В ходе работы команда проекта создала несколько инструментов на все случаи жизни — от локализации до отладки, управления зависимостями и многого другого. В этой серии статей разработчики Mozilla делятся с сообществом своим опытом и этими инструментами, которые пригодятся любому, кто пишет высоконагруженный сервис на Node.js.

Первая статья цикла посвящена распространённой проблеме Node.js — утечкам памяти, особенностям утечек в высоконагруженных проектах и библиотеке node-memwatch, которая помогает найти и устранить такие утечки в Node.




Зачем заморачиваться?


Вы можете спросить, зачем вообще отслеживать утечки памяти? Неужели нет более важных дел? Почему бы просто не перезапускать процесс время от времени, или просто добавить памяти на сервер? Есть три причины, по которым устранять утечки всё-таки важно:

  1. Возможно, вы не сильно переживаете об утечках памяти, но этого нельзя сказать о V8 (движок JavaScript на котором работает Node). Чем больше памяти занято, тем активнее работает сборщик мусора, замедляя ваше приложение. Так что в Node утечки напрямую вредят производительности.
  2. Утечки могут привести к другим проблемам. Протекающий код может блокировать ограниченные ресурсы. У вас могут закончиться файловые дескрипторы или вы вдруг не сможете открыть ещё одно соединение с БД. Такие проблемы могут возникнуть задолго до того, как кончится память, но обрушат ваше приложение ничуть не хуже.
  3. Рано или поздно ваше приложение упадёт. И это наверняка случится во время наплыва посетителей. Вас все засмеют и будут писать про вас гадости на Hacker News.

Откуда доносится звук падающих капель?
Total votes 63: ↑61 and ↓2+59
Comments1

Много бесплатных книг по программированию

Reading time7 min
Views346K
Читать дальше →
Total votes 202: ↑192 and ↓10+182
Comments42

Мошеннические методы монетизации в free-to-play играх

Reading time11 min
Views136K
Примечание переводчика: После публикации статьи с автором связался коммерческий директор из King.com, создателя Candy Crush Saga, и прояснил несколько моментов, после чего автор добавил пару замечаний. Добавленные абзацы отмечены курсивом.

Принудительная монетизация


Модель принудительной монетизации основывается на уловках, с помощью которых можно заставить человека совершить покупку с неполной информацией, или сокрытии этой информации так, что технически она остаётся доступной, но мозг потребителя не улавливает эту информацию. Сокрытие покупки может быть осуществлено с помощью простой маскировки связи между действием и ценой, как я писал в статье Системы контроля в F2P.

Согласно исследованиям, добавление даже одной промежуточной валюты между потребителем и реальными деньгами, например «игровых самоцветов» (премиальная валюта), делает потребителя гораздо менее подготовленными к оценке стоимости сделки. Лишние промежуточные предметы, я называю их «наслоения», делают для мозга оценку ситуации очень сложной, особенно под напряжением.

Этот дополнительный стресс часто подаётся в форме того, что Роджер Дики из Zynga называет «весёлыми мучениями». Приём заключается в том, чтобы поставить потребителя в очень неудобное или неприятное положение в игре, а потом предложить ему убрать эти «мучения» в обмен на деньги. Эти деньги всегда замаскированы в слоях принудительной монетизации, поскольку потребитель, столкнувшийся с «реальной» покупкой, скорее всего не поведётся на трюк.
Читать дальше →
Total votes 138: ↑131 and ↓7+124
Comments76

Делаем простую игру с кнопками, ящиками и дверями на Unity

Reading time14 min
Views163K


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

Для самых нетерпеливых по ссылкам ниже находится готовый прототип.
Онлайн версия
Скомпилированная версия для Windows [Зеркало] ~7.5 МБ

Что мы собираемся делать? Двумерную головоломку с колобком в роли главного героя, который может двигать ящики, которые могут нажимать кнопки, которые могут открывать двери, за которыми скрывается выход из уровня, который построил я. Или вы, у нас же здесь туториал как-никак.

Подразумевается, что вы уже успели скачать Unity и поигрались немного в редакторе. Нет? Сейчас самое время, я подожду.
Читать дальше →
Total votes 96: ↑89 and ↓7+82
Comments32

Создание многопользовательской realtime игры на node.js

Reading time5 min
Views53K


Несколько месяцев назад мы с коллегами решили сделать многопользовательскую realtime игру, которая могла бы работать в вебе. Мы решили использовать node.js для нашего сервера. Это решение привело к очень убедительному успеху — наш сервер работал несколько месяцев без единого падения или перезагрузки процесса.

Мы решили написать нашу игру на node.js, потому что мы слышали много хорошего об этой платформе и очень хотели немного с ней поиграть. И это было потрясающе — мы очень быстро вошли в тему. Для node.js существует множество любопытных библиотек, способных решать абсолютно разные задачи. Побочным преимуществом использования node для серверной части является, собственно, javascript — очень простой в обращении язык. Это позволило нам сфокусироваться на проблемах, которые встречаются во всех realtime играх, без лишней суеты, ограничений и необходимости компилировать код, как это случается при использовании менее динамических языков.

Также node.js проявил себя как очень легковесный язык, даже в моменты пиковой нагрузки. Для нашей игры, процесс node.js использовал только один поток и потреблял всего около 3-4% CPU при одновременной работе 8-10 копий игры, каждая со своим собственным движком обнаружения столкновений.
Читать дальше →
Total votes 64: ↑59 and ↓5+54
Comments47

Мы спасены! Genymotion — забудьте про вашего эмулятора-слоупока

Reading time1 min
Views137K
Думаю, все кто осваивал разработку приложений под Android, сразу же осозновал невозможность тестирования программ без реального устройства. А все потому что официальный Android эмулятор страдает серьезными проблемами с производительностью.
Решение проблемы
Total votes 70: ↑62 and ↓8+54
Comments65

Продвижение мобильного приложения: с чего начать

Reading time4 min
Views61K
Скажем откровенно, сделать хорошее мобильное приложение не так уж и просто. И вы нигде не найдете готового рецепта, который поможет в этом. Но, провести рекламную кампанию, которая поможет получить много установок и даже выйти в топ, вполне реально.
Есть свои особенности продвижения Android и iOS приложений. Но в данном посте я хочу затронуть именно общие этапы.

Итак, с чего начать?



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

Немного подробнее остановимся на каждом пункте.
Читать дальше →
Total votes 69: ↑41 and ↓28+13
Comments15

Введение в Spring Frameworks: Spring MVC

Reading time8 min
Views21K
Привет, Хабр.

Это моя первая статья.Прошу сильно молотком не бить.

Сегодня, этим сообщением начнется мой цикл статей о фреймворках Spring.

Я не буду вдаваться в тонкости теории, здесь на хабре достаточно статей об этом. Предпочитаю практику.
Тем не менее, стоит напомнить, что работать со Spring Framework можно как с помощью xml-конфигурации, так и с помощью аннотаций. Также, ничего не мешает комбинировать оба подхода.
Лично я предпочитаю работать с аннотациями, чего и вам советую. Поэтому все примеры, которые я буду приводить, будут использовать аннотации.
Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments38

Real-time дебаг Android и iOS приложений на Unity

Reading time6 min
Views20K
Когда разработка проекта идёт на компьютере, проблемы просмотра лога не встаёт. Но когда начинаешь разрабатывать на планшете, то всё становится гораздо печальнее. Разработчики движка добавили много разных полезных вещей в профайлер, но к сожалению забыли о простой консоли, чтобы переключившись на её вкладку разработчик мог смотреть сообщения от своей игры и отправлять какие-то консольные команды прямо с компьютера на планшет.
Это упущение мы сейчас и будем исправлять.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments7

Симпатичный замок — от моделирования до готовой картинки

Reading time2 min
Views30K
Доброго времени суток. Данная статья, хотя лучше обозвать её ToDo, может быть полезна людям со способностями к рисованию, которые знают основы моделирования и обработки изображений, ну или умеют включать нужные программы. Если это про Вас, или Вам интересно как сделать такой замок — прошу под кат.



Читать дальше →
Total votes 97: ↑62 and ↓35+27
Comments84

Как создать простую Tower Defense игру на Unity3D, часть первая

Reading time16 min
Views127K
Здравствуйте! Давно уже хотел опубликовать эту статью, да не успевал выделить время. Заранее хотел бы предупредить, что статья рассчитана на не шибко знающего Unity3D пользователя, потому в тексте будет обилие пояснений.

Часть вторая

Всем заинтересовавшимся — добро пожаловать под кат!
Читать дальше →
Total votes 81: ↑73 and ↓8+65
Comments45

Как создать простую Tower Defense игру на Unity3D, часть вторая

Reading time9 min
Views70K
Здравствуйте! Весьма надолго у меня растянулась подготовка материала (жизнь давала изрядных пинков под зад), но вот я справился и готов поделиться продолжением первой статьи с вами.

Часть первая


Неудачный тест физики

В этой части мы:
— оптимизируем код из предыдущей статьи;
— создадим объект «база» и научим её чиниться время от времени;
— добавим пушкам патроны и перезарядку;
— избавимся от «неудобной» переменной gv;

А в конце статьи вас ожидает маленький бонус :)

Всем заинтересовавшимся — добро пожаловать под долгожданный кат!
Читать дальше →
Total votes 59: ↑49 and ↓10+39
Comments41

Распознавание рукописных символов с использованием Python и scikit

Reading time5 min
Views30K
Привет. Наверняка многие интересуются методами машинного обучения и решения различных задач, которые обычными подходами не решаются. Недавно мне посчастливилось попасть на курс Data Mining, организованный в рамках программы GameChangers. Первым же домашним заданием было сделать сабмит на Kaggle — решить задачу Digit Recognizer.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments7

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity