Публикации

29 декабря 2015 в 12:49

Новогодний подарок от HTML Academy

С 1 по 10 января 2016 года все курсы HTML Academy, как базовые, так и продвинутые, можно пройти бесплатно.

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

Для тех, кто о HTML Academy не слышал, рассказываю.

Если вы задаётесь суперпопулярным нынче вопросом: «как научиться программировать» и не знаете с чего начать, начните с вёрстки. Это хороший старт, который позволит понять, интересно ли вам писать код, увидеть результаты своего труда, создать для себя сайт-визитку.

image
Не просто картинка для привлечения внимания. Перед вами инструктор Кекс — символ, талисман и всеобщий любимец курса

HTML Academy позволяет научиться вёрстке с нуля и делает это в доступной увлекательной форме. Проходила этот курс пару месяцев назад, впечатления остались самые лучшие.

Понравилась хорошая теоретическая база, доступность подачи материала, интерактивные практические задания, испытания. И ещё то, что базовые курсы полностью бесплатны. А с Нового года на десять дней откроется бесплатный доступ ещё и к продвинутым курсам.
29 декабря 2015 в 14:55

Сегментация аудитории при разработке игр

Грамотная сегментация пользователей — один из краеугольных камней, на которых зиждется успех игры. В этом посте мы поговорим о том, каким образом можно правильно выделить целевую аудиторию игр на любых платформах: клиентских, браузерных, мобильных.

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


29 декабря 2015 в 10:25

Повышаем производительность поиска с помощью партиционирования индекса в Apache Solr



Полнотекстовый поиск используется в Wrike почти повсеместно. Поиск в шапке страницы дает возможность быстрого доступа к последним задачам с сортировкой по дате обновления, с совпадением по названию. Такой вариант поиска представлен в разделах «Моя работа» и «Панель задач».
Поиск в списке задач работает по всем полям: название, описание, имена файлов вложений, авторы, комментарии, дата изменения. Максимальный приоритет у задач, активность по которым связана с текущим пользователем, с фразовым совпадением в названии, описании или в комментариях.
Упрощенный вариант поиска по названиям используется:
  • при расстановке зависимостей для диаграммы Ганта (предшествующая и последующая задачи),
  • при добавлении ссылок на задачи по названиям (меншенинг),
  • при добавлении подзадач.

В этих разделах используется instant search с неявным wildcard: пользователь последовательно вводит u, up, upd, update, а поисковые запросы принимают вид: u*, up*, upd*, update*.
Кроме того, wildcards можно использовать во всех вариантах поиска.
Таким образом, часто приходят “тяжелые” поисковые запросы, вызывающие многократное чтение индекса, повышенную нагрузку по CPU/IO на серверах и, как следствие, общие задержки в обработке запросов в “часы-пик”.
В данной статье мы поделимся своим способом решения проблемы производительности.
Речь пойдет об ускорении поиска при работе с поисковым сервером Apache Solr через партиционирование коллекций. Описанный способ был нами опробован на версиях 4.9.0 и 4.10.2.

29 декабря 2015 в 12:38

Бесплатный практический курс по Bash и другие хорошие новости



Привет, Хабр!

Давно не писали про обновления в нашем образовательном проекте Хекслет, а тут как раз Новый год — самое время поделиться хорошими новостями. Мы сделали бесплатным популярный курс «Bash: Основы командной строки»! Это уникальный курс, потому что упражнения в нем (как и везде в Хекслете) выполняются в условиях, приближенных к боевым: вам доступен личный контейнер с root-доступом, в котором среди прочего запущена оболочка Bash.

Курс затрагивает навигацию, работу с файловой системой, пейджеры, перенаправления и потоки, историю, псевдонимы и другие аспекты работы с Bash, которыми должен владеть любой уважающий себя программист.
29 декабря 2015 в 13:25

Делаем джойстик из Windows Phone из песочницы

Небольшая предыстория.


imageОднажды вечером подошел ко мне сын и сказал, что хочет поиграть в Марио. Летом у бабушки на даче он любил «зарубиться» в дождливую погоду. А за окном как раз дождь. Не долго думая я скачал ему первый попавшийся эмулятор 8-ми битной приставки и игру. Однако, оказалось, что удовольствие от игры на клавиатуре совсем не то. Идти покупать джойстик было уже поздно. И тогда я подумал, что можно обойтись и без него. Под рукой у нас была старенькая Nokia Lumia, ее размеры и форма примерно совпадали с нашими нуждами. Было решено написать джойстик. Сын отправился рисовать дизайн на листе бумаги в клеточку, а папа пошел варить кофе и думать, как бы осуществить эту идею с наименьшими временными затратами.

Я решил пойти по пути наименьшего (с моей точки зрения) сопротивления. Эмулятору приставки в настройках надо указывать нажатые кнопки, значит наше приложение должно нажимать кнопки. Нажатие кнопок можно эмулировать при помощи старого доброго WINAPI.

Конечной идеей стало клиент-серверное приложение. Клиент (телефон) при нажатии на кнопку посылает запрос на сервер, который, в свою очередь, в зависимости от того что пришло эмулирует нажатие или отпускание кнопки клавиатуры. Связь же осуществляется через сокеты. Вроде все просто. Начинаем делать.
Реклама
28 декабря 2015 в 17:40

Domain sharding: реализация на Ruby on Rails и результаты применения

Решил я недавно на примере одного проекта узнать, насколько сильно влияет на скорость загрузки сайта domain sharding. Напомню, суть этой оптимизации в том, что статические файлы грузятся с разных доменов (которые, впрочем, могут указывать на один и тот же сервер), и это позволяет обходить ограничение браузеров на количество одновременных подключений к одному домену. Интуитивно кажется, что в случае большого количества мелких файлов это должно существенно ускорить загрузку сайта в целом. Проверим, так ли это на самом деле.
29 декабря 2015 в 12:53

Проблемы при использовании Math.random() перевод

image

В английском есть такая аббревиатура — TIFU. Привести здесь её точное значение мы не можем, но вы без труда найдёте его в Сети. А после «литературной обработки» TIFU можно перевести как «сегодня я всё испортил». В контексте этого поста данная фраза относится к использованию функции Math.random() в JavaScript-движке V8. Хотя случилось это не сегодня, а пару лет назад. Да и дров я наломал не по своей вине, корень зла таится в самой этой функции.

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

Дональд Кнут, «Искусство программирования», том 2.

Надеюсь, что к концу этого поста вы согласитесь с двумя утверждениями:

  • Мы были идиотами, поскольку использовали генератор псевдослучайных чисел в V8, не понимая его ограничений. И если очень лень, то безопаснее использовать криптографически стойкие генераторы псевдослучайных чисел.
  • В V8 необходима новая реализация Math.random(). Работу текущего алгоритма, кочующего от одного программиста к другому, нельзя считать удовлетворительной из-за слабой, неочевидной деградации, часто встречающейся в реальных проектах.

Хочу подчеркнуть, что сам движок V8 — замечательный продукт и его создатели очень талантливы. Я ни в коей мере не обвиняю их. Просто эта ситуация иллюстрирует, насколько сильно влияют на процесс разработки даже небольшие нюансы.
29 декабря 2015 в 11:51

Облачный колл-центр в безоблачном краю. Необычайные новогодние приключения ITooLabs на Балканах

Традиционно, перед самым Новым Годом, принято писать об итогах года уходящего, о планах на год предстоящий, поздравлять клиентов, партнеров и коллег с праздниками. Мы не хотим нарушать сложившуюся традицию и сегодня публикуем пост, который наверняка создаст нужное и правильное настроение у читателей блога ITooLabs. Мы хотим рассказать о том, как складывается облачный бизнес нашего зарубежного партнера, балканского оператора связи VoxNet, как выглядит работа балканских коллег и как платформа ITooLabs помогла автоматизировать большой европейский колл-центр, работающий на входящих и исходящих звонках. По нашей просьбе македонские коллеги сделали много фото и даже записали новогоднее видеопоздравление.


29 декабря 2015 в 10:03

Простая возможность приобрести опыт в IT

imageАнестезиолог Кон Коливас разработал собственную версию планировщика задач для Linux ядра, потому что существующая реализация была адаптирована под серверные задачи, но неудовлетворительно справлялась с пользовательскими задачами.

Алексей Кузнецов, который по воле случая «превратился» в Linux хакера, сменил свою профессию с физика-теоретика на системного программиста.

ИТ-журналист Пётр Семилетов помимо своей основной работы уже десять лет разрабатывает свой текстовый редактор Tea с открытым исходным кодом.

Леся Новасельская, получившая специальность паталогоанатома, участвует в тестировании проекта c открытым исходным кодом.

Подобных примеров множество. Всех этих людей объединяет одно — они реализовали свои интересы в проектах с открытым исходным кодом и участвовали в них и для удовольствия, и для получения опыта. Сложился некий миф о том, что открытый проект – это только для программистов, причем тех, у кого уже есть большой опыт в разработке. Но это не так. Открытый проект — это не только разработка исходного кода, но и тестирование, техническая поддержка, написание документации, маркетинг и т.д. А ещё — отличный шанс приобрести опыт и получить удовольствие от общения с такими же единомышленниками, как вы. Согласно результатам голосования основным препятствием для участия в открытом проекте является отсутствие понимания того, как присоединиться к проекту. Поэтому в статье мы разберёмся как и в качестве кого можно присоединиться к такому проекту.
29 декабря 2015 в 09:25

И еще раз о необходимости закрывать базы

DataBreaches.net сообщает о найденной базе персональных данных 191 млн избирателей США. Сайт на данный момент лежит под хабраэффектами, google cache.

Исследователь Chris Vickery, ранее уже находивший не защищенные как следует многомиллионные базы аккаунтов, рассказал о наличии неограниченного доступа к 300-гигабайтной базе зарегистрированных избирателей, включающей: имена/фамилии, почтовые и электронные адреса, телефоны, даты рождения и пр.


Интересные публикации

Вакансии

Заказы