Pull to refresh
@saintbyteread⁠-⁠only

User

Send message

Egret. Free open source HTML5 game engine

Reading time5 min
Reach and readers31K
В данной статье будет рассмотрены вопросы, возникающие во время выбора Game Engine для разработки 2D игр. И, как вариант ответов на эти вопросы, будет предложено использовать Egret.


Читать дальше →

JavaScript и Nginx = nginScript, а HTTP2 в придачу

Reading time6 min
Reach and readers41K

Дело было вечером, делать было нечего, но голова рукам покоя не давала и хотелось чего-то для души… А для души захотелось чего-то новенького, эдакого необычного.

Я, как и многие из хабровчан, люблю новинки. Релиз нового софта — это как праздник. Новые фичи, новые возможности… Новые способы забивать гвозди и кататься на велосипедах. Новые велосипеды… В общем можно придумать кучу аллегорий и метафор. А про что это я? Ах да, про Nginx, HTTP2 и JavaScript. Чем они связаны, спросите вы? А тем, что в последней версии Nginx (1.9.5) добавили много интересных плюшек, а именно:

  • добавили протокол HTTP2 и удалили модуль SPDY (нафиг старое барахло)
  • интегрировали прямо в nginx модуль ngx_http_js_module и создали свой диалект JavaScript

Го под кат, расскажу детали.
Читать дальше →

Как работает реляционная БД

Reading time51 min
Reach and readers591K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →

Простые советы: как стать успешным фрилансером

Reading time7 min
Reach and readers22K


Я работаю в области графического дизайна и занимаюсь фрилансом на протяжении примерно пяти лет. Я сказал «примерно» потому, что у меня не было определенной даты начала, просто вещи шли своим чередом. Наверное, решающим фактором, повлиявшим на мое решение стать фрилансером, стала перспектива перестать работать на кого-то другого. И я никогда не пожалел о принятом тогда решении самому стать у руля.

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

Мой опыт фриланса на Upwork

Reading time5 min
Reach and readers69K
Впервые я столкнулся с Upwork (тогда еще oDesk) в 2011м году, когда брат прислал на них ссылку в скайпе. Я только начинал работать на русских биржах, и подумал — почему бы не попробовать еще и на зарубежной. Но тогда все закончилось ничем. Результаты были слабыми, и, разочаровавшись во фрилансе как таковом, я бросил это дело.

Вернулся на Upwork только спустя два года, когда узнал, что есть те, кто серьезно занимаются фрилансом, и отлично живут на этом. Решил в этот раз ориентироваться только на зарубежных заказчиков, т. к. по первому опыту у них бюджеты были больше, а также они выше ценили свое и мое время. Так я снова оказался на Upwork.
Читать дальше →

Почему меня не читают: 12 способов заставить аудиторию полюбить сайт

Reading time3 min
Reach and readers8K
image

Разбираемся, как медиа и контентно-ориентированные площадки должны повышать эффективность.
Читать дальше →

100 из 100 в Google PageSpeed Insights (Баг или фича)?

Reading time2 min
Reach and readers67K
Многие из Вас наверное пользовались замечательным сервисом от Google: PageSpeed Insights? Хотите получить заветные 100 из 100?

image
Картинка для привлечения внимания

А дело-то за маленьким.
Читать дальше →

Отзывчивое Android-приложение или 1001 способ загрузить картинку

Reading time16 min
Reach and readers55K
О реализации многопоточности при разработки Android-приложений уже написано немало. В этой же статье хочется провести сравнение нескольких распространенных на сегодня способов скачать/прочитать/сохранить/посчитать, при этом не дав пользователю повода для раздражения. Постараться понять, когда то или иное решение будет уместным, а чего лучше не делать вовсе. Попытаемся показать, почему привычных вещей, таких как класс Thread и пакет java.util.concurrent оказывается недостаточно, когда речь заходит об Android-приложении.

Читать дальше →

Разработка циферблатов для Android Wear — это проще, чем кажется

Reading time3 min
Reach and readers32K
Когда возникла идея делать циферблаты для часов на Android Wear, к делу приступили без страха. Опыт разработки под «большой» андроид был, а на часиках крошечный экран и всего одна кнопка — легче лёгкого.


Читать дальше →

Стабилизация таймлапс-видео на калькуляторе (IPython+OpenCV)

Reading time6 min
Reach and readers14K
Подобно многим стихийным и сезонным любителям астрофотографии, в этом августе я ловил ночью Персеиды. Улов небольшой есть, но сейчас не о нём, а о том, что побочным результатом такого лова стала серия фотографий, которые напрашивались на то, чтобы сделать из них таймлапс. Но вот незадача: установка камеры оказалась не столь уж жесткой, как хотелось бы, и между кадрами появилось небольшое смещение. Попытался исправить его плагином дешейкинга в VirtualDub, но результаты не порадовали. Тогда было решено сделать свой велосипед: подробнее о результатах и том как они получены — под катом.
Читать дальше →

Как узнать, наша жизнь уже под колпаком ИИ или ещё нет? (паранойи пост)

Reading time7 min
Reach and readers20K
У вас бывает так, что думаются странные мысли? Вот прокрастинируешь так, никого не трогаешь, мысль вяло и бесконтрольно течёт, а потом БАЦ, и приходи в голову…



Так вот и у меня, мучает давно одна мысль и надо ей поделиться. Нет, она не совсем it-шная, но в то же время околоайтишная и как-то связана со всеми этими вашими «интернетами», искусственным интеллектом и прочим.
Читать дальше →

Какой квадрокоптер выбрать для GoPro? Рассмотрим лучших среди бюджетных

Reading time4 min
Reach and readers120K
Свой первый квадрокоптер я купил более двух лет назад и купил я его, чтобы открыть новые ракурсы для своей «гопрошки». Сегодня совсем другая ситуация и на рынке квадрокоптеров и с курсом доллара, однако желание купить квадрокоптер для съёмки с воздуха — всё так же актуально. Поэтому в этой статье я расскажу о том, на какие квадрокоптеры стоит обратить внимание и с какими сложностями вы можете столкнуться.


«Подвес DJI Phantom»
Читать дальше →

Технологии ASR и TTS для прикладного программиста: теоретический минимум

Reading time27 min
Reach and readers37K

Введение


В последние несколько лет голосовые интерфейсы окружают нас все плотнее. То, что когда-то демонстрировалось только в фильмах о далеком будущем, оказалось вполне реальным. Дело дошло уже до встраивания движков для синтеза (Text To Speech — TTS) и распознавания (Automatic Speech Recognition — ASR) речи в мобильные телефоны. Более того, появились вполне доступные API для встраивания ASR и TTS в приложения.

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

Но для затравки — анекдот:
Урок русского языка в грузинской школе.
Учитель говорит: «Дети, запомните: слова сол, фасол и вермишел пишутся с мягким знаком, а слова вилька, булька, тарелька – без мягкого знака. Дети, запомните, потому что понять это невозможно!»

Раньше этот анекдот казался мне смешным. Теперь — скорее жизненным. Почему так? Сейчас постараюсь объяснить…
Читать дальше →

ipgeobase в Nginx

Reading time3 min
Reach and readers18K
Когда возникает задача — по адресу посетителя получать его город и налоговый (автомобильный) код региона, кажется — да это же просто, в инете полно таких штук!
А потом смотришь: одни платные, другие нельзя у себя развернуть, третьи можно, но это ресурсозатратно, четвертые о регионах РФ ничего не знают…
И тут на помощь спешит больной мозг программиста с навязчивой идеей: «Нет у других — сделай сам»

Читать дальше →

Семь вредных советов начинающему коптероводу

Reading time2 min
Reach and readers28K
За время пока я летаю на квадрокоптерах — я совершил массу ошибок, которые мог бы не совершать. Пусть эти 7 вредных советов будут подсказкой тем, у кого этот путь ещё впереди.

Вредный совет №1:
Если вы первый раз запускаете свой квадрокоптер на улице — обязательно проверьте какую высоту он может набрать. И путь вас не смущает сильный ветер — вы же уже получили 80lvl в игре с квадрокоптером.

Читать дальше →

ГЭС изнутри

Reading time5 min
Reach and readers69K
Теоретически с гидроэлектростанциями все понятно — вода идет из верхнего бьефа в нижний, крутит рабочее колесо турбины. Турбина вращает генератор, а тот вырабатывает электричество…
Интересны детали.



Хозяйке на заметку: чтобы получить 1 киловатт-час электроэнергии, надо спустить с высоты 27 метров 14 тонн воды.
Читать дальше →

Предложение от Яндекс.Денег в новом стандарте платежей W3C

Reading time6 min
Reach and readers20K
Привет! Меня зовут Евгений Виноградов. Я работаю в Яндекс.Деньгах и участвую в работе группы W3C, посвященной стандартам интернет-платежей. Помимо нас и ещё нескольких платёжных сервисов, в неё вошли международные IT-компании, банки, регуляторы, организации, работающие с Bitcoin. На самом деле, группа существует уже больше трех лет. Всё это время она обсуждает содержание будущего стандарта для интернет-платежей, но только недавно — после очной встречи участников — дело заметно продвинулось вперед.



Мы в Яндекс.Деньгах не понаслышке знаем, с какими сложностями приходится сталкиваться разработчикам, например, интернет-магазинов. Сейчас для использования разных платёжных систем им приходится разбираться с документацией и особенностями каждой из них, а процесс подключения платёжных решений к мелкому магазину может растягиваться на месяцы. Если же подключение будет выполняться практически идентично, достаточно будет изучить процедуру один раз — и вы будете способны работать со всеми платежными системами.

Одним из наших предложений в рамках работы над стандартом стал способ инициализации платежа с условным названием «payto:» — по аналогии со всем известным сценарием отправки сообщений электронной почты через URI-схему «mailto:».

В этом посте мы хотим рассказать о том, почему так сложилось, что единого стандарта до сих пор нет, почему он очень нужен и каким он может, на наш взгляд, быть.
Читать дальше →

Оптимизируем запросы к Facebook Graph API с помощью Real-Time Updates

Reading time9 min
Reach and readers17K
Приложения для Facebook могут иметь разнообразный функционал: например, часто приложению будет достаточно информации, полученной через API, во время работы пользователя с приложением. Но что делать, если ваше приложение должно работать с самыми “свежими” данными пользователе, даже если они не открывали его уже больше месяца?

Есть два способа для того, чтобы получать данные не только во время работы пользователя с приложением:
  1. Получить от пользователя offline_access permission (сохранить “вечный” пользовательский access_token) и получать необходимые данные “по расписанию” (дергать скрипт cron-ом).
  2. Написать скрипт, который будет получать все изменения данных от Facebook, настроить и подписаться на обновления через Real-Time Updates.

Под катом вы узнаете виртуальный пример, как использование real-time updates помогает сократить за день количество запросов к API более чем в 100 раз в некоторых ситуациях. Мы напишем скрипт подписки на обновления и проверим его работу, получив данные о изменении объектов от самого Facebook.
Читать дальше →

12 малоизвестных фактов о CSS (продолжение)

Reading time12 min
Reach and readers58K
Больше года назад я опубликовал 12 малоизвестных фактов о CSS (перевод на хабре), и по сей день это была одна из самых популярных статей на SitePoint. С тех пор я собирал больше интересностей и маленьких советов по CSS для новой публикации. Мы же все знаем, что каждый успешный фильм должен способствовать выходу новомодного сиквела, верно?


Автор иллюстрации SitePoint/Natalia Balska.

Итак, давайте посмотрим на подборку уже этого года дюжины малоизвестных фактов о CSS. Я уверен, что многим из вас известны, по крайней мере, некоторые из них, но вы можете дать мне знать в комментариях сколько из фактов оказались для вас новыми.

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

1. Оригинальная статья изобилует рабочими демонстрациями с CodePen. Хабр, к сожалению, не поддерживает вставки с подобных ресурсов, а заменять рабочие динамические примеры статичными картинками, думаю, не имеет смысла. Поэтому статья получилась немного «лысой» простыней, но, я надеюсь, заинтересованные читатели будут открывать недостающие примеры по ссылкам в новом окне.

2. Хотя я имею непосредственное отношение к верстке, перевод получился большим и не таким простым, как показался поначалу. Замечания по ошибкам, опечаткам, терминологии и т.п. просьба присылать личным сообщением в хабрапочту.
Читать дальше →

Простой телефонный интерфейс из Нокии

Level of difficultyEasy
Reading time2 min
Reach and readers25K


Наш автономный эхо-репитер управляется сигналами DTMF в общем канале связи. Для этого нужно использовать радиостанцию с клавиатурой и быть в зоне устойчивого радиопокрытия. Так как эти условия не всегда выполнимы, мы решили сделать доступ в радиосеть через сеть телефонную. Для этого было использовано классическое решение – установка телефонного интерфейса. Но в неклассическом его виде.
Читать дальше →

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity