Как стать автором
Обновить
7
0
Alexander Telegin @drinkius

Founder @ Scalind.com — Rollup as a Service

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

Создание дизайна для дальтоников (и вместе с ними)

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


Каждый раз, как кто-то узнает, что я дальтоник, я отвечаю на один и тот же вопрос: «Какой это цвет?». В 95% случаев я отвечу правильно, и поэтому мне задают еще один вопрос: «Подожди, значит, ты понимаешь, что это [вставить название цвета]? Так что ты видишь?». И тут начинается процесс объяснения того, как работает дальтонизм, и как он на меня влияет.
Читать дальше →
Всего голосов 50: ↑48 и ↓2+46
Комментарии78

Семь итераций наивности или как я полтора года свою дебютную игру писал

Время на прочтение32 мин
Количество просмотров78K
imagination С появлением у меня в первом классе Dendy вопрос кем я стану отпал сам собой буквально через пару недель — программистом конечно же. Я долго и упорно шел к этому, невзирая на отсутствие информатики в школе, работал в техподдержке известного всем регистратора параллельно с учебой в институте, но полноценная жизнь началась лишь в тот момент, когда меня наконец-то взяли хоть куда-то писать код.

Очень скоро я понял, что мало быть программистом, работающим от звонка до звонка и получающим за это деньги на карточку — всё самое интересное начинается, когда решаешь сам без всяких архитекторов, тестировщиков и тимлидов что-нибудь этакое написать и заставить работать. Желательно что-нибудь веселое и захватывающее. Игру, например.

Под катом лежат семеро очевиднейших (как мне сейчас кажется) граблей, неожиданно вставших у меня на пути, а потому способных с отличной от нуля вероятностью встать на пути любого, идущего дорогой разработки игр.
Семь не слишком оригинальных мишеней для лба, разбавленных повествованием
Всего голосов 100: ↑96 и ↓4+92
Комментарии137

Что нужно знать о работе с текстом превью email-писем

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


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

Папка входящи сообщений — это первое, что видит пользователь почтовой программы, но это также часто и последний фактор, рассматриваемый при принятии решения о том, открывать ли письмо. Все почтовые клиенты в обязательном порядке показывают, от кого пришло письмо (поле “from”) и тему сообщения. Некоторые программы также показывают небольшой текст превью.

Оптимизация этого текста может приносить отличные результаты и значительно увеличивать процент открытых писем (иногда, до 45%).
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии1

Охота на зомби из облака

Время на прочтение6 мин
Количество просмотров12K
На стремительно развивающийся рынок PaaS приходят все новые игроки. Не так давно в бой вступила IBM, представив широкой программерской общественности сервис Bluemix. Просто облаком с возможностью выполнения Push-to-Deploy уже никого не удивишь, и поэтому конкуренция переместилась из зоны «посмотрите, у нас тоже есть облако!» в сторону «у нас удобный интерфейс, готовые сервисы “из коробки” — и все это совершенно бесплатно, пока ваш проект не вырос». Под катом я покажу, как с помощью этой современной системы PAAS и всего нескольких строк кода сделать сервис, который будет внимательно следить за сайтом какой-нибудь онлайн-игры и присылать push-уведомления, как только появится любопытная новость.

Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии5

Потоковая обработка данных при помощи Akka

Время на прочтение5 мин
Количество просмотров40K
Привет, Хабр! Все привыкли ассоциировать обработку больших данных с Hadoop (или Spark), которые реализуют парадигму MapReduce (или его расширения). В этой статье я расскажу о недостатках MapReduce, о том, почему мы приняли решение отказываться от MapReduce, и как мы приспособили Akka + Akka Cluster на замену MapReduce.


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

Отправка Nginx-логов в Google Analytics

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

С наших Download-серверов каждый день скачивается несколько миллионов драйверов (статичных .exe и .zip файлов). Для анализа поведения пользователей перед нами встала задача посчитать следующие параметры: когда, сколько, как часто и даже кто именно скачивает драйверы.

Самым очевидным решением было бы использовать инструменты типа AWstat, GoAccess, ELK stack или Splunk, а в крайнем случае собирать логи Nginx.

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

И тогда мы решили заставить Nginx самостоятельно отправлять события в Google Analytics сразу же после скачивания файла. Мы также смогли передать в GA уникальный идентификатор пользователя ClientID.
В результате мы получили аналитику по статичным файлам, к которым раньше невозможно было привязать счетчик GA.

Под катом готовый конфиг и примеры работы нашей системы.
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии14

Разработка веб-приложения на Golang

Время на прочтение8 мин
Количество просмотров60K
В этой статье я рассмотрю разработку веб-приложения на Go. Материал не содержит принципиально новых знаний и рассчитан скорее для таких же новоиспеченных исследователей языка как и я. Хотя, надеюсь, какие-то свежие идеи вы все-таки для себя найдете.

У некоторых читателей могут возникнуть вопросы о «велосипедостроении» — это всё плоды любопытства и живого интереса при ознакомлении с языком Golang.
Читать дальше →
Всего голосов 39: ↑33 и ↓6+27
Комментарии28

У семи программистов адрес без дома

Время на прочтение4 мин
Количество просмотров98K
Привет, Хабр!

Мы в HumanFactorLabs парсим адреса в особо крупных размерах. Наши продукты упрощают ввод контактных данных и работу с ними.

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

Недавно на Хабре нас попросили привести примеры необычных адресов, в связи с чем и написана эта статья.
Читать дальше →
Всего голосов 104: ↑101 и ↓3+98
Комментарии211

Beat-chart – лучший друг гейм-дизайнера

Время на прочтение3 мин
Количество просмотров37K
Всем привет!

Я гейм-дизайнер и в данный момент вместе с небольшой командой занимаюсь разработкой двумерной адвенчуры на Unity3D. Цель этой публикации – рассказать о процессе дизайна локаций для нашей игры и приемах, которые я использую.
Ну и параллельно показать вам все стадии развития локации – от схемы до финальной версии.


Забегая немного вперед – так выглядит кусочек уже готовой локации в действии.
Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии12

Полный перевод облака КРОК на All-Flash хранилища данных Violin Memory

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




Мы в КРОК запустили собственную публичную облачную платформу в России одними из первых, еще в конце 2009 года. Нам нужен был рост в геометрической прогрессии из года в год. Чтобы обеспечить подобную динамику, архитектура облачной платформы должна была быть сверхгибкой и масштабируемой, а сама платформа — хорошо управляемой. В какой-то момент мы начали упираться в архитектурные ограничения, заложенные еще на заре развития облака, а именно в подсистему хранения данных.

Одна из важнейших задач роста — обеспечение потребностей заказчиков не только в части объемов дисковой емкости, но и в части гарантированной производительности используемых дисков. Нужно было избежать взаимного влияния соседей по СХД, сделать ситуацию полностью управляемой, дать гарантии по производительности дисков в рамках SLA в пределах от 400 IOPS до 100 000 IOPS на диск.

Ко всему прочему тема с гарантированными дисками в облаке была подогрета и законом о персональных данных, вступающим в силу с 1 сентября 2015 года. Многие заказчики размещали и размещают свои ИТ-сервисы за границей, зачастую — на выделенном физическом высокопроизводительном оборудовании в ЦОДе провайдеров. Данные теперь нужно перенести на территорию России, но от высокой гарантированной производительности дисков отказываться совсем заказчикам не хочется или вовсе нельзя, а ждать поставки оборудования в РФ уже нет возможности. Облако в этом случае является, пожалуй, одним и, возможно, единственным способом успеть перенести данные в РФ и получить аналогичные технические параметры производительности, как на используемом ранее физическом оборудовании провайдера.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии9

Docker. Best practices на примере образа Oracle xe 11g

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


Docker за последнее время стал очень популярен за счет своей производительности, отказоустойчивости и, главное, простоты.

Сегодня можно найти тысячи образов в hub.docker.com. За счет своей простоты в создании образов, буквально за пол часа можно начать вносить свой вклад.

Но многие забывают о best practices, и за счет этого docker hub наполнился огромным количеством не самых лучших образов.

В этой статье я хочу описать на сколько просто и полезно создавать образы используя Best Practices на примере.
Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии37

Аварии в дата-центрах, которые было (почти) невозможно предусмотреть

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


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

В продолжении — несколько случаев, как давних, так и произошедших совсем недавно, которые показывают, что некоторые ситуации просто невозможно предусмотреть.
Читать дальше →
Всего голосов 42: ↑36 и ↓6+30
Комментарии23

9 анти-паттернов, о которых должен знать каждый программист

Время на прочтение9 мин
Количество просмотров149K
В программировании самокритика – это умение распознать контрпродуктивные решения в дизайне, коде, процессах и поведении. Знание о вредных шаблонах решений полезно для программиста. В этой статье я опишу анти-паттерны, которые я встречал на своём личном опыте время от времени.

Некоторые из них напрямую или косвенно связаны с когнитивными искажениями человеческого сознания – в этих случаях я даю ссылки на соответствующие вики-статьи. Также интересен список известных когнитивных искажений.

1 Преждевременная оптимизация


В 97% случаев надо забыть об эффективности малых частей программы: преждевременная оптимизация – корень всех зол. Но в 3% случаев об оптимизации забывать не нужно.
Дональд Кнут

Хотя никогда зачастую лучше, чем прямо сейчас
Тим Питерс, Зен языка Python


Что это

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

Почему плохо

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

Как избежать

Сначала пишите чистый, читаемый, работающий код, используя известные и проверенные алгоритмы и инструменты. При необходимости используйте инструменты для профилирования для поиска узких мест. Полагайтесь на измерения, а не на догадки и предположения.
Читать дальше →
Всего голосов 117: ↑97 и ↓20+77
Комментарии123

Соединяй и властвуй. Нестандартный взгляд на keep-alive

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


Большинство современных серверов поддерживает соединения keep-alive. Если на страницах много медиаконтента, то такое соединение поможет существенно ускорить их загрузку. Но мы попробуем использовать keep-alive для куда менее очевидных задач.
Читать дальше →
Всего голосов 41: ↑33 и ↓8+25
Комментарии10

Прием платежей по банковским картам в приложениях на iOS

Время на прочтение7 мин
Количество просмотров30K
Вслед за разработанными ранее SDK для Windows Universal App (о чем мы уже рассказывали на Хабре) и node.js, в мае мы разработали и опубликовали SDK для iOS. О том, какие приложения на iOS могут принимать платежи через сторонний платежный сервис, зачем это нужно и как интегрировать платежный сервис в мобильное приложение, читайте под катом. А еще — вкусная свежая статистика по доле мобильных пользователей в платежном трафике PayOnline за последние 3 года. Только для жителей ХабраХабр!


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

How-to: Типографика в дизайне email-писем

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


Исследования показывают, что в почтовых программах до 43% email-подписчиков отключено отображение картинок. Это означает, что донести до них нужную информацию с помощью email-рассылки можно только если использовать реальный текст в HTML-версиях писем.

При этом, данный факт вовсе не означает, что можно использовать только Arial и Times New Roman. В сегодняшнем материале мы рассмотрим существующие возможности по работе с шрифтами в email.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии0

Appodeal — бесплатный оптимизатор доходов от рекламы для мобильных разработчиков

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


Этим постом я бы хотел официально представиться и вкратце познакомить вас с нашим проектом. Меня зовут Павел Голубев, с 2009 года я работаю в сфере разработки и публикации мобильных приложений. Наша команда в свое время запустила SaaS-сервис Columbis для турагентств, позволяющий автоматизировать их деятельность. После этого я переехал в Соединенные Штаты, Сан-Франциско, и уже тут продолжил работу в сфере мобильной рекламы. В определенный момент у нас возникла потребность в платформе, которая позволила бы увеличить доход от рекламы в наших приложениях. На поиски подобного инструмента оптимизации трафика мы потратили несколько месяцев, после чего приняли решение сделать его сами. В итоге, разработка для внутренних нужд переросла в самостоятельный проект — Appodeal, в блоге которого и размещена данная публикация.

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

  • какую рекламную сеть выбрать;
  • как к ней подключиться;
  • насколько высокая заполняемость (fill rate) у этой сети;
  • насколько высокий eCPM для региона вашей аудитории в конкретной сети;
  • какой тип оплаты подходит для вас (CPI/CPM/CPC);
  • есть ли плагин для фреймворка, в котором вы ведете разработку;
  • как в конечном итоге вывести свои деньги.

Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии29

Под прессом. Ломаем и защищаем Wordpress своими руками

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


WordPress — это удобная блог-платформа для публикации статей и управления ими, на которой базируется огромное число различных сайтов. Из-за своей распространенности эта CMS уже давно является лакомым куском для злоумышленников. К сожалению, базовые настройки не обеспечивают достаточного уровня защиты, оставляя многие дефолтные дырки незакрытыми. В этой статье мы пройдем типичным путем «типового» взлома сайта на Wordpress, а также покажем как устранить выявленные уязвимости.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии11

Как создавать Pixel Perfect изображения в Adobe Illustrator

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

От переводчика


Рад приветствовать тебя, %юзернейм%!

Я новичок в профессии дизайнера интерфейсов, и как-то давно, листая вакансии, меня заинтересовали требования к одной из них. Среди таких, как знание пакета Adobe, средств прототипирования и навыков в области ux/ui я прочитал, что соискателю именно на эту вакансию неплохо было бы уметь держать порядок в слоях, структуре и названиях файлов и папок, а так же знать и уметь применять на практике то, что называется pixel perfect. Меня это заинтересовало, так как на моей работе ни от меня, ни от других сотрудников этого не требуют, но я всегда старался этого придерживаться и даже пытался убедить в этом других, но мне почему-то не хватало аргументов, чтобы объяснить, для чего это нужно.

С понятием pixel perfect я вообще на тот момент не был знаком, только слышал где-то пару раз, и так как этот пункт стоял в конце списка требований «аккуратности», я понял, что это что-то вроде апогея, вершины айсберга в организации работы над макетами.

Я стал искать, но ничего, кроме статьи на Хабре из пары абзацев про Pixel perfect от программиста не нашёл. Потом я как-то услышал о Monument Valley, и даже наткнулся на справочник Pixel Perfect Precision, но времени изучать так много информации на английском как-то не было, и первый раз он меня не зацепил. Стало появляться время и вышли некоторые статьи, одна из которых, наполненная практическими советами по Pixel Perfect зацепила меня, и я решил не просто прочитать и понять, а ещё и перевести по возможности литературно, чтобы дать вопросу широкую известность, и распространить тему на Хабре.

Небольшой технический момент. Оригинальная статья с Tuts+ называется «How to Create Pixel Perfect Artwork Using Adobe Illustrator», при этом я могу вас уверить, что большая часть из предложенных в статье настроек присутствует и в Adobe Photoshop CS6, а уж в Adobe Photoshop CC вообще можно повторить всё это полностью.

В заключение вступительной части хочу попросить не обращать внимания на то, что я новичок в дизайне, и этой мой первый в жизни перевод. Отнеситесь критично, тема серьёзная. Призываю делиться своими соображениями и опытом в комментариях.

Краткое содержание


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

Настройки Abobe Illustrator


  1. Edit > Preferences > Units > General → Pixels
    Edit > Preferences > Units > Stroke → Pixels
  2. Edit > Preferences > Guides & Grid > Gridline every → 1px
    Edit > Preferences > Guides & Grid > Subdivisions → 1px
  3. Edit > Preferences > General > Keyboard Increment → 1px
  4. View > Snap to Grid
    View > Snap to Point
  5. View > Pixel Preview

Не благодарите.
Всех заинтересовавшихся прошу пройти под кат.

Как создавать pixel perfect изображения в Adobe Illustrator




Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии6

Нужно ли переезжать на хостинг в Россию, или Отказоустойчивость по 242-ФЗ

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


Некоторое время назад в Москве прошла конференция Failover, посвящённая такой важной проблематике, как обеспечение отказоустойчивости онлайн-сервисов. За день перед слушателями выступили 19 докладчиков, рассказав немало интересных вещей для разработчиков, тестировщиков и эксплуатантов. Мы решили, что такие полезные материалы не должны «пылиться» в архиве и должны стать достоянием ещё более широкой общественности. И начнём мы с выступления Сергея Рыжикова, озаглавленного «Нужно ли переезжать на хостинг в Россию, или Отказоустойчивость по 242-ФЗ».
Читать дальше →
Всего голосов 44: ↑26 и ↓18+8
Комментарии23

Информация

В рейтинге
5 560-й
Откуда
Дубаи, Дубаи, О.А.Э.
Дата рождения
Зарегистрирован
Активность