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

Архитектор программных решений

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

Публикация игры в Google Play. Настройка Play Games Plugin для Unity

Время на прочтение 7 мин
Количество просмотров 43K
Всем привет! Решил поделиться своим опытом по добавлению игры в Google Play Console и настройке Play Games Plugin для Unity.

Начнем мы с настройки Unity.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 2

Многопроцессный Firefox 44.b, оптимизация Electrolysis

Время на прочтение 4 мин
Количество просмотров 38K
Так уж сложилось, что Firefox использует однопроцессную модель, и реальность такова, что такой подход с учётом динамики развития сети и частичной связки с XUL вызывает, мягко говоря, много неудобств. Один процесс должен обрабатывать несколько потоков, что очень сильно сказывается на производительности браузера в целом. Отзывчивость Firefox оставляла желать лучшего, когда тот же Google Chrome прекрасно рендерил тяжёлые страницы, что никак не сказывалось на производительности других вкладок.

Такое положение вещей заставляло многих переходить на хром, а кто не хотел — искал пути решения в виде разного рода оптимизаций, которые по большому счёту из-за нелогичного подхода распределения потоков или банального желания настрочить что-то в блог просто усугубляли ситуацию. Теперь один процесс должен был не просто работать, а очень быстро работать! В конечном итоге и разработчики сами прекрасно понимали, что одно дело — мало памяти, другое — низкая скорость работы, которая в основном оправдана старыми связками с XUL. На деле: открываем в Firefox несколько вкладок сразу, скролим их и в момент загрузки видим, что все тормозит — ни о каком плавном серфинге речи быть не могло.
Читать дальше →
Всего голосов 25: ↑20 и ↓5 +15
Комментарии 50

Семь удивительных «возможностей» Javascript

Время на прочтение 5 мин
Количество просмотров 66K
За последние несколько месяцев я сделал несколько доработок для JSHint, в основном с целью изучить ES6 (я особенно горжусь тем, как переделано обнаружение областей видимости для переменных). Во время этого процесса я наткнулся на несколько вещей, которые меня удивили — в основном, в ES6, однако есть и кое-что про ES3, что я до этого никогда не использовал.

Break из любого блока


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

outer: for(var i = 0; i < 4; i++) {
    while(true) {
        continue outer;
    }
}
Читать дальше →
Всего голосов 78: ↑65 и ↓13 +52
Комментарии 71

Делаем собственную индикацию о входящем звонке

Время на прочтение 4 мин
Количество просмотров 46K
После последнего поста о нашем Android-приложении у некоторых читателей статьи возник вопрос, как именно показать собственную информационную плашку во время звонка? Ну что же, сегодня мы ответим на этот вопрос.
Пст, хотите немного java-кода?
Всего голосов 35: ↑27 и ↓8 +19
Комментарии 16

Как использовать GamePad в браузере и в приложениях для Windows на HTML и JavaScript?

Время на прочтение 7 мин
Количество просмотров 22K
Если вы разрабатываете игры на HTML и JavaScript, то эта статья для вас. Мы уже много писали о том, что под Windows 8.x можно разрабатывать приложения на HTML/JS, причем, как правило, вы можете с легкостью просто взять и использовать ваш текущий движок, работающий в современных браузерах.



Просто в качестве примера: если вы делаете платформер, то вы можете воспользоваться таким движком, как Phaser (кстати, он поддерживает разработку на TypeScript!), или, нашим Platformer Game StarterKit для Windows 8. К слову, если вы хотите сделать игрушку в жанре Tower Defense, то у нас есть еще один Starter Kit. А если вы хотите создать что-то трехмерное с использованием WebGL, то наше все для вас – это Babylon.js.


GamePad


Но в этой статье я не буду рассказывать, как создать саму игру. Мы зададимся другим вопросом: как подключить к игре для Windows 8.x или в браузере геймпад? Например, игровой контроллер от Xbox 360 или Xbox One:



Будем считать, что вы уже подключили сам геймпад к своему ПК (инструкция для Xbox 360, инструкция для Xbox One). Теперь давайте разберемся, что вам нужно сделать, чтобы добавить его поддержку в своей игре.

В качестве примера я буду использовать платформер RubbaRabbit из приведенного выше стартет-кита. Мы рассмотрим два варианта: игра для Windows 8.x и игра в браузере.
Читать дальше →
Всего голосов 23: ↑20 и ↓3 +17
Комментарии 3

Виджет для вывода пользовательских данных на Android

Время на прочтение 1 мин
Количество просмотров 9.6K
Universal Widget позволяет размещать на рабочем столе Android информацию о любой из ваших систем, описанную в формате JSON. Например, статистику посещений вашего сайта, информацию о заказах в интернет-магазине, загрузку процессора на сервере и т.д.



Три простых шага для размещения информации на рабочем столе:

1) Создайте скрипт – провайдер данных в формате JSON
2) Установите Universal Widget
3) В настройках виджета задайте адрес скрипта — провайдера данных, а также интервал обновления
Читать дальше →
Всего голосов 59: ↑55 и ↓4 +51
Комментарии 53

Руководство для дизайнера по DPI

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


Это руководство — начальный материал о кросс-DPI и кроссплатформенном дизайне для начинающих и средних дизайнеров, желающих узнать о нем с самого начала или получить больше знаний. Без сложных математических и непонятных диаграмм, только непосредственные объяснения, упорядоченные в небольших разделах, для понимания и применения их непосредственно к вашей дизайнерской работе.

Автор — Sebastien Gabriel.

Я не знаю всего, так что, если по вашему мнению я где то ошибаюсь или вам нужно уточнить что-то, либо у вас есть предложения или вопросы для улучшения данного руководства, отправьте письмо (на англ) на sgabriel.contact@gmail.com. Вы также можете найти на меня Twitter, G+ или Facebook.
Читать дальше →
Всего голосов 92: ↑88 и ↓4 +84
Комментарии 19

Как я перепробовал пять платежных систем для своего сайта

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


Более трех лет назад я написал пост о выборе платежной системы для приема платежей на своем прошлом проекте. С тех пор прошло довольно много времени и многое в способах приема платежей изменилось. Теперь я расскажу как делал прием платежей на сайте poiskvps.ru.

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

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


Читать дальше →
Всего голосов 100: ↑86 и ↓14 +72
Комментарии 69

Адаптивный и мобильный дизайн с CSS3 Media Queries

Время на прочтение 7 мин
Количество просмотров 585K
Разрешение экрана в наши дни колеблется от 320px (iPhone) до 2560px (большие мониторы) или даже выше. Пользователи больше не просматривают сайты только на настольных компьютерах. Теперь пользователи используют мобильные телефоны, небольшие ноутбуки, планшетные устройства, такие как iPad или Playbook для доступа в интернет. Поэтому, традиционный дизайн с фиксированной шириной больше не работает. Дизайн должен быть адаптивным. Структура должна автоматически изменяться с учетом всех разрешений дисплеев. Эта статья покажет вам как создавать кросс-браузерный адаптивный дизайн при помощи HTML5 и CSS3 media queries.
Читать дальше →
Всего голосов 91: ↑90 и ↓1 +89
Комментарии 32

ВКонтакте без джаббера и снова с ним

Время на прочтение 4 мин
Количество просмотров 54K
Это история про то, как пользоваться чатом ВКонтакте в том мессенджере, который вам нравится.
Пусть этой новости уже несколько месяцев, однако не всегда хорошие новости вовремя получают должное внимание.
В середине статьи — мануал для админов джаббер-серверов, в конце — обращение к питонистам.
Ссылки на пруфпики инклюдед.


Как известно, в начале сентября ВКонтакте закончил поддерживать XMPP для доступа к личным сообщениям. Джаббер-сообщество негодовало [pic] и решило этот вопрос иначе.

Картинка про Jabber и ВКонтакте от Павла Дурова:

Читать дальше →
Всего голосов 54: ↑42 и ↓12 +30
Комментарии 20

intro.js — пошаговое руководство для веб-страницы

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


Эта маленькая библиотека позволяет очень просто создать пошаговое введение для сайта или приложения. Достаточно добавить атрибуты data-intro и data-step с описанием и номером шага соответственно к нужным элементам страницы. Вот так:

<a href='http://google.com/' data-intro='Hello step one!' data-step='1'></a>
Читать дальше →
Всего голосов 139: ↑134 и ↓5 +129
Комментарии 24

Отдаем файлы эффективно с помощью PHP

Время на прочтение 3 мин
Количество просмотров 280K
Если Вам потребовалось отдавать файлы не напрямую веб сервером, а с помощью PHP (например для сбора статистики скачиваний), прошу под кат.
Три способа отправить пользователю файл и не повесить сервер
Всего голосов 132: ↑108 и ↓24 +84
Комментарии 59

Вечный торт: интервью с Денисом Крючковым, основателем Хабрахабра

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


Есть минимум две причины, по которым гордая редакция твоей любимой «айти-мурзилки» решила пообщаться с создателем Хабрахабра об истории этого уникального проекта. С одной стороны, конечно, это не имеющая прямых аналогов площадка, сформировавшая вокруг себя огромную аудиторию IT-профессионалов. А с другой — один из немногих успешных примеров того самого «издания нового поколения», которого все ждут с тех самых пор, как придумали слово «блог». Почему же гики смогли создать для себя медиа, которое не могут сделать обычные люди?
Читать целиком
Всего голосов 280: ↑256 и ↓24 +232
Комментарии 119

Упорядочивание аудиотеки. Практические советы

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

Введение


Вообще, я во многих вопросах перфекционист. Если есть — нужно, чтобы было безупречно (иногда это сказывается отрицательно, но сейчас не об этом). Свою аудиоколлекцию я тоже привык держать в чистоте. Но со временем, при пополнении стало накапливаться много мелких неприятностей. Вот некоторые из них:
  • Разные шаблоны для имен файлов: 4 — Звезда | 04 — Звезда | 04. Звезда
  • Разные имена исполнителей в тегах: Чиж & Co | Чиж и Ко. | Mylene Farmer | Mylène Farmer
  • Не указаны исполнители альбома (что приводит к полному бардаку в альбомах-компиляциях)
  • Не совсем корректная информация об альбомах, состоящих из нескольких дисков
  • Путаница в годах изданий и переизданий (ремастеринг, и т.д.)
Ну и прочие мелочи.
Часто у пользователей коллекции составляют несколько тысяч, а иногда — несколько десятков тысяч записей. Так что, перелопачивать все вручную — долго и неэффективно.

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

Итак, начнем...
Всего голосов 80: ↑76 и ↓4 +72
Комментарии 78

Tips & tricks for MySQL Developers. Работа с SQL

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

Эта статья задумана мной как сборник некоторых интересных моментов по использованию и оптимизации SQL запросов в БД MySQL, на мой взгляд, плохо освещенных в интернете. Так, из статьи вы узнаете о конструкции with rollup, и о том, как переписать подзапросы in и not in на join'ы, а так же обновление и удаление данных в нескольких таблицах — одним запросом, и многое другое. Начнем по порядку.
Читать дальше →
Всего голосов 71: ↑67 и ↓4 +63
Комментарии 28

HttpRequest — библиотека для простой работы с HTTP протоколом

Время на прочтение 2 мин
Количество просмотров 30K
https://github.com/Garik-/http-request

Очень часто в коде можно встретить такие строки:

$result = file_get_contents("http://geocode-maps.yandex.ru/1.x/?geocode=".urlencode("Москва"));

$handle = fopen("http://www.example.com/", "rb");
$result = fgets($handle);

  • Не важно человеку, что директива allow_url_fopen может быть отключена на сервере.
  • Не важно, что на сервере установлена библиотека cURL, которая без проблем скачает 100 МБ файл.
  • Не важно, какой ответ вернет сервер, 200, 301, может 404, может 502?
  • Не важно, то что сеть не идеальная среда и ответ может придти частично или его вовсе не будет продолжительное время. Скрипт попросту подвиснет в ожидании на неопределенное время или вернет не корректный результат.

try {
    $http = HttpRequest::get("http://geocode-maps.yandex.ru/1.x/?format=json",array("geocode"=>$city))->acceptJson();
    $json = $http->ok() ? json_decode($http->body()) : null;
} catch (HttpRequestException $e) {
    exit($e->getMessage());
}

Теперь это действительно не важно.

Библиотека Http Request основана на одноименной библиотеке Kevin Sawicki, которая должна быть хорошо известна Android разработчикам, ведь её использует сам GitHub в своем приложении.
Читать дальше →
Всего голосов 38: ↑18 и ↓20 -2
Комментарии 12

Полезные хаки и сниппеты для .htaccess

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


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

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

Если же вам нужны базовые сведения о предназначении данного файла, то вы можете получить из нашей статьи введение в .htaccess (перевод данной статьи не делал, так как там основы, их достаточно в русскоязычном сегменте Сети, но если будет проявлен интерес, то можно и ее перевести для полноты картины — прим. переводчика), в которой достаточно подробно раскрыты все аспекты его применения.
Узнать больше
Всего голосов 114: ↑92 и ↓22 +70
Комментарии 82

DKIM — это просто

Время на прочтение 3 мин
Количество просмотров 373K
Здравствуйте.

Хочу поделиться своим небольшим опытом прикручивания DKIM (DomainKeys Identified Mail) к своему домену и почтовому серверу.

Мы имеем:
Задача:
  • Разобраться в системе подписи сообщений DKIM, что бы gmail признал её валидной и выдал заветные: dkim=pass.

Читать дальше →
Всего голосов 35: ↑30 и ↓5 +25
Комментарии 34

WebHostingHub Glyphs — обновление шрифта до 1446 иконок

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


Недавно выпущенный набор иконок WebHostingHub Glyphs добавилось более 300 новых иконок.

Благодаря пожеланиям пользователей хабрахабр в шрифте появились иконки знака рубля, сети вконтакте и многие другие. Иконки доступны в формате png (белые и черные) и самое главное в виде шрифта в форматах SVG, EOT и TTF. Мы будем рады услышать любые пожелания к дальнейшему развитию сета.
Всего голосов 94: ↑89 и ↓5 +84
Комментарии 60

Groundwork — интересный CSS/HTML5 UI фреймворк

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


Бороздя просторы «бескрайнего», наткнулся на интересный CSS/HTML5 UI фреймворк – Groundwork. Как утверждают его разработчики, он имеет один из самых продвинутых responsive шаблонов в мире. Благодаря невероятной гибкости фреймворка можно получать сайты удовлетворяющие самым современным требованиям.
Читать дальше →
Всего голосов 51: ↑41 и ↓10 +31
Комментарии 21
1

Информация

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