Pull to refresh
13
0
Send message

Мультиплеер в быстрых играх (части I, II)

Reading time7 min
Views141K


  1. Части I, II (синглплеер с авторитарным сервером)
  2. Часть III (Появление врага)
  3. Часть IV (Хэдшот!)


Предлагаю вашему вниманию перевод статьи Fast-Paced Multiplayer (Part I): Introduction.

Разработка игры — само по себе непростое занятие. Но мультиплеерные игры создают совершенно новые проблемы, требующие разрешения. Забавно, что у наших проблем всего две причины: человеческая натура и законы физики. Законы физики привнесут проблемы из области теории относительности, а человеческая натура не даст нам доверять сообщениям с клиента.
Читать дальше →
Total votes 136: ↑132 and ↓4+128
Comments109

Какую библиотеку работы с HTTP в Android выбрать?

Reading time6 min
Views68K
Представляю вашему вниманию перевод статьи «Which Android HTTP library to use?».

Для чего это вообще?


Сегодня почти все приложения используют HTTP/HTTPS запросы как своеобразный транспорт для своих данных. Даже если вы напрямую не используете эти протоколы, множество SDK, которые вы, скорее всего, уже включили в свои приложения (например, метрика, статистика падений, реклама), используют HTTP/HTTPS для работы с сетью. На сегодняшний день совсем немного существует библиотек, которые разработчик мог бы свободно использовать в своем проекте. И я постараюсь рассказать об основных из них в этом посте.
У Android-разработчиков есть много причин, чтобы сделать выбор в пользу сторонних библиотек, заместо уже встроенных API, таких как HttpURLConnection или Apache Client. Например:
Узнать зачем
Total votes 17: ↑15 and ↓2+13
Comments13

2400 иконок флагов под свободной лицензией

Reading time1 min
Views90K


Самая большая коллекция флагов: 2400 пиктограмм размерами 16×16, 24×24, 32×32, 48×48 и 64×64. Есть государственные флаги всех стран, плюс бонусы: Англия, Абхазия, Нагорный Карабах, Красный крест, Южная Осетия, Сомалиленд, флаг Марса, НАТО и проч.

Все иконки в двух вариантах: стандартный и глянцевый.

Скачать:
www.gosquared.com/download/pixels/flags.zip

Лицензия MIT (GPL-совместимая), разрешает использование иконок в коммерческих проектах.
Total votes 93: ↑84 and ↓9+75
Comments30

Социальное неравенство и зарплаты чиновников

Reading time7 min
Views68K
Волею судеб, ко мне в руки попали данные о заработных платах, премиях и сверхурочных множества госслужащих одного крупного портового города, от мэра до сторожа бассейна. Не теряя ни минуты, я бросился вгрызаться в цифры. Нет ничего любопытнее, чем смотреть на чужие зарплаты, особенно, когда можно оправдать себя тем, что занимаешься Data Science!

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

Сегодня мы поговорим про средние и медианные зарплаты, индекс социального неравенства Джини, отношения между богатыми и бедными (индекс Rich/Poor), непреодолимый разрыв доходов (эффект Матфея) и карьерный рост.

San-Francisco
Читать дальше →
Total votes 92: ↑83 and ↓9+74
Comments62

Наша Service и опасна и трудна или некоторые аспекты выживания служб в Android

Reading time7 min
Views56K

Вместо введения


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

Официальная документация гласит, что ОС Android останавливает службу только в случае нехватки памяти. Тем не менее, существует и другие случаи. Пользователь может сам остановить службу, используя предоставляемые ему средства меню Settings/Apps, там же он может сделать и полную остановку приложения. Но для этого ему надо напрягаться и, в общем-то осознавать свои действия и их последствия. К сожалению, для уничтожения службы у него есть и другие возможности, которыми он может пользоваться бессознательно. В частности, если в нашем приложении ранее была запущена хоть одна Activity, видимая в истории, то пользователь буквально одним движением пальца сможет вынести соответствующую задачу. Как ни парадоксально, попутно Android вышибет и весь процесс вместе со службой.

Лично мне такое поведение Android логичным не кажется. Пользователь зачастую просто чистит Recent Apps от давно забытого хлама, совсем не обязательно он при этом желает отказаться от тех благ, которые ему предоставляла выполняющаяся служба. Однако разработчики Google мыслили немного по-другому. По-другому, так по-другому, их право, но в конце концов нам с вами тоже надо как-то жить.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments20

Сохранение состояния фрагментов (Fragment)

Reading time4 min
Views56K
Распространенной проблемой является некорректное поведение приложения при повороте девайса. Дело в том что при повороте Activity-host (Activity которое является родителем для фрагмента) уничтожается. В тот момент когда этот процесс происходит FragmentManager отвечает за уничтожение дочернего фрагмента. FragmentManager запускает методы угасающего жизненного цикла фрагмента: onPause(), onStop() и onDestroy().

В случае если в контроллере нашего дочернего фрагмента, к примеру, есть объект Media-Player, то в методе фрагмента Fragment.onDestroy() экземпляр нашего звонко играющего Media-Player-а прервет воспроизведение медиа данных. Первое, что приходит в голову, сохранить состояние объекта Media-Player вызвав Fragment.onSaveInstanceState(Bundle), что сохранит данные, а новое Activity загрузит их. Однако, сохранение состояния объекта MediaPlayer и его последующее восстановление, все равно, прерывает воспроизведение и заставляет акул ненависти сновать в головах пользователей.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments16

Распределенная природа мессенджера Tox

Reading time7 min
Views27K
Пока правообладатели собираются заблокировать централизованный Telegram, сообщество пользователей распределенного мессенджера Tox растет. Сегодня, согласно статистике сайта www.toxstats.com, Россия занимает второе место после США по количеству пользователей отставая всего на какие-то 30-50 узлов.

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

tox logo


Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments43

Прекрати злоупотреблять массивами в PHP

Reading time4 min
Views25K
php arrays everywhere

Меня давно мучает мысль об одной проблеме — тотально злоупотребление массивами в PHP. Возможно корень проблемы в процедурном наследии PHP или в том, что PHP привлекает большое количество неопытных разработчиков, не знаю. Но дело в том, что очень многие используют массивы там, где должны использоваться объекты!

Взглянем на типичный пример ужасающего, на мой взгляд кода, злоупотребляющего массивами. Для примера, предположим, мы извлекаем данные из БД и работаем с ними посредством массива. Вот такие примеры я вижу ежедневно:
Читать дальше →
Total votes 45: ↑22 and ↓23-1
Comments131

Введение в PHP 7: Что добавлено, что убрано

Reading time12 min
Views300K
Одним из самых значительных событий, произошедших в мире PHP в 2015 году, стал выпуск PHP 7. Целых 10 лет отделяют его от выпуска первого релиза PHP с номером 5. С увеличением первой цифры в номере версии, в PHP 7 появилась масса новшеств, увеличилась и скорость работы.
Однако в седьмой версии была убрана устаревшая функциональность, что привело к некоторым проблемам с обратной совместимостью, затруднив перевод старых приложений на новую версию. Эта статья может послужить вам кратким руководством, если вы планируете написание новых или перевод своих существующих приложений на PHP 7.
Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments117

Заглянем в будущее: на пути к цифровому коммунизму

Reading time3 min
Views4.6K
Мир изменился. А человеческая психология осталась в прошлом веке.

Раньше мы жили в мире материи и энергии, а сейчас живем в мире информации.

"… -Мы займемся арифметикой… У вас в кармане два яблока… Буратино хитро подмигнул: – Врете, ни одного… – Я говорю, – терпеливо повторила девочка, – предположим, что у вас в кармане два яблока. Некто взял у вас одно яблоко. Сколько у вас осталось яблок?.. "

Правильный ответ, конечно, — одно яблоко.

Рассмотрим другую ситуацию.

"… -Мы займемся арифметикой… У вас в голове два знания… Буратино хитро подмигнул: – Врете, ни одного… – Я говорю, – терпеливо повторила девочка, – предположим, что у вас в голове два знания. Некто взял у вас одно знание. Сколько у вас осталось знаний?.. "

А вот в этом случае, правильный ответ – два знания.

Потому что в информационном мире не действует закон сохранения: «ежели где убудет несколько материи, то умножится в другом месте…». Поскольку информация не материя, и не энергия. В отличие от производства, например, автомобилей, еще один экземпляр информации для производителя ничего не стоит.

Читать дальше →
Total votes 20: ↑9 and ↓11-2
Comments162

Тернистый путь к продажам на Themeforest.net — Часть 1

Reading time7 min
Views93K

Наверняка многие задумываются над тем, чтобы попробовать продавать свои шаблоны на известном маркетплейсе Envato.com, а некоторые уже успешно этим занимаются. В данной статье я хочу поделиться своим опытом разработки и продажи шаблонов на Themeforest.net



Информации в сети о заветном маркетплейсе Envato.com достаточно много, но детально расписанный процесс подготовки проектов попадается очень редко. Я сам не раз обращался к успешным авторам, продающим на Themeforest.net, за советом и помощью. Благо есть люди готовые помочь безвозмездно. Я надеюсь, моя статья также будет полезна начинающим авторам или тем, кто собирается стать автором. Ну или, по крайней мере, прольет немного света на темопроизводство.




Как все начиналось


Как я рассказывал в своих предыдущих публикациях, уже несколько лет моя небольшая студия занимается диджитал продакшеном: разработкой web сайтов и мобильных приложений. А разработкой шаблонов мы занялись по рекомендации моего товарища. Однажды он сказал, что это отличный дополнительный заработок для небольшой студии, и, мол, усилий требуется совсем немного для этого. Идея иметь дополнительный заработок, используя ресурс студии, который не загружен по текущим проектам, мне понравилась. Но тогда я еще даже не представлял какое количество времени мы потратим до того момента, как в продаже на Themeforest.net появится наш первый шаблон. Нам для старта продаж понадобилось более полутора лет. Однако, это случай частный и не стоит на него ориентироваться. Я знаю примеры и более стремительного успеха. Но хочу более детально рассказать, почему мы так долго к этому шли и с какими трудностями столкнулись в процессе.

Читать дальше
Total votes 19: ↑17 and ↓2+15
Comments56

Книга «Android. Программирование для профессионалов»

Reading time6 min
Views42K
Привет, Хаброжители! У нас вышла новая книга:

image Авторы: Б. Харди, Б. Филлипс, К. Стюарт, К. Марсикано

Второе издание познакомит вас с интегрированной средой разработки Android Studio, которая поможет с легкостью создавать приложения для Android. Вы не только изучите основы програм-мирования, но и узнаете о возможностях Lollipop, новых инструментах вспомогательных библио-тек, а также некоторых ключевых инструментах стандартной библиотеки, включая SoundPool, анимацию и ресурсы. Все учебные приложения были спроектированы таким образом, чтобы про-демонстрировать важные концепции и приемы программирования под Android и дать опыт их практического применения.

Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments12

Анализ результатов выборов в Госдуму. Готовимся к голосованию 2016 года

Reading time3 min
Views35K
Выборы в Государственную думу только осенью, но мы уже начинаем готовиться. Если повторится история 2011 года, будет очень интересно. Наверное, многие помнят, как сразу после тех выборов появилась куча статистических исследований, намекающих на фальсификации и как все узнали, как выглядит распределение Гаусса. Я хотел бы рассказать, где искать данные про выборы и как с ними работать. Кроме хорошо известных графиков я покажу некоторые другие прикольные картинки, которых раньше в паблике не видел. Так, например, выглядит распределение голосов за Единую Россию по стране, хорошо видны регионы с максимальной поддержкой партии власти — Северный Кавказ и Татарстан:


Есть такой замечательный сайт izbirkom.ru. Его здесь даже недавно упоминали в контексте, что, типа, на него потратили слишком много денег. Но лично мне не жалко, сайт прекрасный:

Читать дальше →
Total votes 68: ↑60 and ↓8+52
Comments114

Игра гомоку (крестики-нолики, 5 в ряд)

Reading time4 min
Views78K
image
Читая публикации на Хабре нашел пару статей об алгоритмах игры гомоку: эту и эту. В первой статье разобраны различные варианты решения задачи, но нет реализации в виде игры, во второй — игра есть, но компьютер «играет» слабовато. Я решил сделать свой вариант игры гомоку с блэкджеком достаточно сильной игрой компьютера. Публикация о том, что в итоге получилось. Для тех, кто любит сразу в бой — сама игра.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments19

Векторная графика бесплатно — подборка сайтов

Reading time3 min
Views417K
У векторной графики много преимуществ. В отличие от растровых, векторные изображения более гибкие, легко масштабируются, сохраняют качество и т.д. Ниже представлена подборка веб-ресурсов с бесплатными векторными иконками, символами и картинками.

1. Freepik


www.freepik.com

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



Читать дальше →
Total votes 41: ↑34 and ↓7+27
Comments3

Почему умер Хабр. Что делать и куда бежать

Reading time2 min
Views66K
Disclaimer. Этот пост — развёрнутый ответ на пост Хабр умирает?.

В исходном посте я дал ссылку на свою дискуссию с deniskin от ноября 2014 года (чуть позднее точки на графике ТС, когда Хабр начал умирать): habrahabr.ru/post/278325/#comment_8789143

В том треде я довольно подробно описал, что же произошло с Хабром и почему он умирает. Прошло полтора года, уважаемое сообщество может оценить, кто из нас оказался прав.

Исходный тезис звучит следующим образом: Хабр убило прежде всего непонимание Тематическими Медиа, что такое Хабрахабр и почему он взлетел — в отличие от прочих ТМ проектов, половину из которых уже закопали, а другая половина летит низенько-низенько.

Дело в том, что Хабр в том его виде, в котором он существовал в 2010 году, был вовсе не «сайтом про IT» типа 3dnews и Ferra. Хабр был, в первую очередь, кружком по интересам. Собралась кучка гиков и обсуждала, в общем, то, что им самим интересно — включая, но не ограничиваясь, космос, настолки, вещества, теорию эволюции, жадность копирастов, гребёнку Чурова и прочая. Периодически ТМ устраивала набеги и банила особо жестокий флейм, но, в целом, ситуация всех устраивала.
В принципе, основную мысль я изложил, под катом хроника борьбы слона с посудной лавкой
Total votes 244: ↑206 and ↓38+168
Comments227

Хабр умирает?

Reading time2 min
Views108K
Я люблю писать тексты по мотивам проектов, которыми занимаюсь. За последний год я разместил на Хабре больше 20 постов. Меня постоянно удивляло, как мало толковых комментариев удаётся здесь получить. Просмотров много, а комментариев мало и большинство не по делу. Недавно я начал замечать, натыкаясь на старинные посты за 2012, 2013 годы, что в них обсуждение, как будто, более содержательное. Решил проверить это количественно. Скачал инфу по всем постам за все годы и построил несколько простых графиков. То что я увидел меня удивило и даже немного испугало. Решил разместить наблюдения здесь, чтобы проверить правильные ли я делаю выводы и всё ли учёл.

Для всех опубликованных на Хабре постов я собрал даты публикаций, число просмотров, число лайков и дислайков, число звёздочек и комментариев, список хабов и названия блогов компаний. В ходе прокачки узнал, что число плюсиков и минусиков может быть дробным и даже отрицательным, пост может быть опубликовал в блоги нескольких компаний и может не иметь автора. Если что, таблицу можно скачать из репозитория: github.com/alexanderkuk/analyze-habr/blob/master/data/posts.csv



Первым делом я посмотрел как менялось общее число постов со временем. Оно перестало расти в 2013 и немного падает с 2014, что уже немного тревожно:



Потом я построил такой же график для суммарного числа просмотров и испугался. С 2014 оно упало в 3.5 раза:


Это серьёзное утверждение, поэтому я решил свериться с Similarweb.
Читать дальше →
Total votes 331: ↑311 and ↓20+291
Comments802

Sci-Hub помогает научным «пиратам» скачивать бесплатно по 200000 научных статей в день

Reading time2 min
Views39K


Последние несколько месяцев ресурс Sci-Hub стал центром академических дебатов о копирайте в науке. Несмотря на то, что с ресурсом пытаются судиться крупнейшие издательства научной литературы, сайт продолжает работать, и сейчас его популярность максимальна — никогда прежде у Sci-Hub не было столько посетителей. В день ресурс помогает скачивать около 200 тысяч научных статей.

«Информация должна быть свободной» — это широко известный призыв, часто используется в дебатах по авторскому праву. В мире науки это утверждение очень актуально — ведь информация и знание является краеугольным камнем научной сферы. Тем не менее, многие ученые вынуждены тратить огромные средства на получение информации, покупая доступ к научным материалам, или же обходиться без результатов современных исследований.
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments128

Правила хорошего тона при написании плагина на jQuery

Reading time7 min
Views32K
Правила хорошего тона при написании плагина на jQueryЯ написал уйму плагинов на jQuery. Если посмотреть код всех плагинов, сортируя их по дате публикации на github, то можно проследить эволюцию кода. Ни в одном из этих плагинов не соблюдены все рекомендации, которые будут описаны ниже. Все что будет описано, лишь мой личный опыт, накопленный от проекта к проекту.
Писать расширения на jQuery довольно просто, но если хотите узнать как написать их так, чтобы потом их было просто поддерживать и расширять, добро пожаловать под кат.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments36

Information

Rating
Does not participate
Location
Беларусь
Registered
Activity