Как стать автором
Обновить
13
0

Пользователь

Отправить сообщение

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

Время на прочтение 7 мин
Количество просмотров 140K


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


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

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

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

Время на прочтение 6 мин
Количество просмотров 67K
Представляю вашему вниманию перевод статьи «Which Android HTTP library to use?».

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


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

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

Время на прочтение 1 мин
Количество просмотров 90K


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

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

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

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

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

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

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

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

San-Francisco
Читать дальше →
Всего голосов 92: ↑83 и ↓9 +74
Комментарии 62

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

Время на прочтение 7 мин
Количество просмотров 56K

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


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

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

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

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

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

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

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

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

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

tox logo


Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Комментарии 43

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

Время на прочтение 4 мин
Количество просмотров 25K
php arrays everywhere

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

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

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

Время на прочтение 12 мин
Количество просмотров 300K
Одним из самых значительных событий, произошедших в мире PHP в 2015 году, стал выпуск PHP 7. Целых 10 лет отделяют его от выпуска первого релиза PHP с номером 5. С увеличением первой цифры в номере версии, в PHP 7 появилась масса новшеств, увеличилась и скорость работы.
Однако в седьмой версии была убрана устаревшая функциональность, что привело к некоторым проблемам с обратной совместимостью, затруднив перевод старых приложений на новую версию. Эта статья может послужить вам кратким руководством, если вы планируете написание новых или перевод своих существующих приложений на PHP 7.
Читать дальше →
Всего голосов 42: ↑39 и ↓3 +36
Комментарии 117

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

Время на прочтение 3 мин
Количество просмотров 4.6K
Мир изменился. А человеческая психология осталась в прошлом веке.

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

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

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

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

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

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

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

Читать дальше →
Всего голосов 20: ↑9 и ↓11 -2
Комментарии 162

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

Время на прочтение 7 мин
Количество просмотров 93K

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



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




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


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

Читать дальше
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 56

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

Время на прочтение 6 мин
Количество просмотров 42K
Привет, Хаброжители! У нас вышла новая книга:

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

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

Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 12

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

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


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

Читать дальше →
Всего голосов 68: ↑60 и ↓8 +52
Комментарии 114

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

Время на прочтение 4 мин
Количество просмотров 77K
image
Читая публикации на Хабре нашел пару статей об алгоритмах игры гомоку: эту и эту. В первой статье разобраны различные варианты решения задачи, но нет реализации в виде игры, во второй — игра есть, но компьютер «играет» слабовато. Я решил сделать свой вариант игры гомоку с блэкджеком достаточно сильной игрой компьютера. Публикация о том, что в итоге получилось. Для тех, кто любит сразу в бой — сама игра.
Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 19

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

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

1. Freepik


www.freepik.com

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



Читать дальше →
Всего голосов 41: ↑34 и ↓7 +27
Комментарии 3

Нет, «Хабр» не умирает

Время на прочтение 5 мин
Количество просмотров 55K


Нет, «Хабрахабр» не умирает. Его не убьёт никакое падение посещаемости, ни угрозы органов власти, ни даже разделение.

Единственное, что ему угрожает — это сами мы.
Читать дальше →
Всего голосов 258: ↑134 и ↓124 +10
Комментарии 224

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

Время на прочтение 2 мин
Количество просмотров 66K
Disclaimer. Этот пост — развёрнутый ответ на пост Хабр умирает?.

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

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

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

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

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

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

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



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



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


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

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

Время на прочтение 2 мин
Количество просмотров 39K


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

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

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

Время на прочтение 7 мин
Количество просмотров 32K
Правила хорошего тона при написании плагина на jQueryЯ написал уйму плагинов на jQuery. Если посмотреть код всех плагинов, сортируя их по дате публикации на github, то можно проследить эволюцию кода. Ни в одном из этих плагинов не соблюдены все рекомендации, которые будут описаны ниже. Все что будет описано, лишь мой личный опыт, накопленный от проекта к проекту.
Писать расширения на jQuery довольно просто, но если хотите узнать как написать их так, чтобы потом их было просто поддерживать и расширять, добро пожаловать под кат.
Читать дальше →
Всего голосов 31: ↑27 и ↓4 +23
Комментарии 36

Информация

В рейтинге
Не участвует
Откуда
Беларусь
Зарегистрирован
Активность