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

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

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

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

Время на прочтение7 мин
Количество просмотров44K
Всем привет! Решил поделиться своим опытом по добавлению игры в 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 мин
Количество просмотров47K
После последнего поста о нашем 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.8K
Universal Widget позволяет размещать на рабочем столе Android информацию о любой из ваших систем, описанную в формате JSON. Например, статистику посещений вашего сайта, информацию о заказах в интернет-магазине, загрузку процессора на сервере и т.д.



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

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

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

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


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

Автор — Sebastien Gabriel.

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

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

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


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

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

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


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

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

Время на прочтение7 мин
Количество просмотров592K
Разрешение экрана в наши дни колеблется от 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 мин
Количество просмотров283K
Если Вам потребовалось отдавать файлы не напрямую веб сервером, а с помощью PHP (например для сбора статистики скачиваний), прошу под кат.
Три способа отправить пользователю файл и не повесить сервер
Всего голосов 132: ↑108 и ↓24+84
Комментарии59

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

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


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

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

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

Введение


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

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

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

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

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

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

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

Время на прочтение2 мин
Количество просмотров31K
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 мин
Количество просмотров465K


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

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

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

DKIM — это просто

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

Хочу поделиться своим небольшим опытом прикручивания 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

Информация

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