Pull to refresh
64
0
Денис Панаскин @Goliath

User

Send message

Производительность I/O бэкэнда: Node vs. PHP vs. Java vs. Go

Reading time14 min
Views106K

image


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


Как и в большинстве других ситуаций с несколькими возможными решениями, дело не в том, какой из вариантов лучше, дело в понимании компромиссов. В этой статье мы сравним Node, Java, Go и PHP из-под Apache, обсудим модели ввода/вывода в разных языках, рассмотрим достоинства и недостатки каждой модели и прогоним простенькие бенчмарки. Если вас волнует производительность ввода/вывода вашего следующего веб-приложения, то эта статья для вас.

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

Спортивный анализ данных, или как стать специалистом по data science

Reading time17 min
Views61K
Меня зовут Пётр Ромов, я — data scientist в Yandex Data Factory. В этом посте я предложу сравнительно простой и надежный способ начать карьеру аналитика данных.

Многие из вас наверняка знают или хотя бы слышали про Kaggle. Для тех, кто не слышал: Kaggle — это площадка, на которой компании проводят конкурсы по созданию прогнозирующих моделей. Её популярность столь велика, что часто под «кэглами» специалисты понимают сами конкурсы. Победитель каждого соревнования определяется автоматически — по метрике, которую назначил организатор. Среди прочих, Kaggle в разное время опробовали Facebook, Microsoft и нынешний владелец площадки — Google. Яндекс тоже несколько раз отметился. Как правило, Kaggle-сообществу дают решать задачи, довольно близкие к реальным: это, с одной стороны, делает конкурс интересным, а с другой — продвигает компанию как работодателя с солидными задачами. Впрочем, если вам скажут, что компания-организатор конкурса задействовала в своём сервисе алгоритм одного из победителей, — не верьте. Обычно решения из топа слишком сложны и недостаточно производительны, а погони за тысячными долями значения метрики не настолько и нужны на практике. Поэтому организаторов больше интересуют подходы и идейная часть алгоритмов.



Kaggle — не единственная площадка с соревнованиями по анализу данных. Существуют и другие: DrivenData, DataScience.net, CodaLab. Кроме того, конкурсы проводятся в рамках научных конференций, связанных с машинным обучением: SIGKDD, RecSys, CIKM.

Для успешного решения нужно, с одной стороны, изучить теорию, а с другой — начать практиковать использование различных подходов и моделей. Другими словами, участие в «кэглах» вполне способно сделать из вас аналитика данных. Вопрос — как научиться в них участвовать?
Хардкор

Эволюция нейросетей для распознавания изображений в Google: Inception-v3

Reading time4 min
Views41K

Продолжаю рассказывать про жизнь Inception architecture — архитеткуры Гугла для convnets.
(первая часть — вот тут)
Итак, проходит год, мужики публикуют успехи развития со времени GoogLeNet.
Вот страшная картинка как выглядит финальная сеть:
image
Что же за ужас там происходит?

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

Объяснение нейронных машин Тьюринга

Reading time9 min
Views29K
Я обнаружил, что подавляющее большинство онлайновой информации об исследованиях в области искусственного интеллекта делится на две категории: первая рассказывает о достижениях непрофессиональной аудитории, а вторая — другим исследователям. Я не нашёл хорошего ресурса для людей с техническим образованием, которые не знакомы с более продвинутыми концепциями и ищут информацию для восполнения пробелов. Это моя попытка заполнить данную пустоту, предоставив доступные, но в то же время (относительно) подробные объяснения. Здесь я объясню научную статью Грейвса, Уэйна и Данихейки (2014) о нейронных машинах Тьюринга (NTM).

Изначально я не собирался рассказывать об этой статье, но я никак не мог понять другую интересную статью, о которой собирался рассказать. В ней как раз шла речь о модификации NTM, так что я решил убедиться, что полностью понимаю NTM, прежде чем двигаться дальше. Убедившись в этом, у меня появилось ощущение, что та вторая статья не слишком подходит для объяснения, а вот оригинальная работа по NTM очень хорошо написана, и я настоятельно рекомендую её прочитать.
Читать дальше →

Как разделить окружение для сборки и запуска сервиса в Docker сегодня и как это cделать завтра

Reading time4 min
Views37K

image


Большинство из нас уже давно научилось готовить Docker и используют его на локальных машинах, на тестовых стендах и на боевых серверах. Docker, который недавно превратился в Moby, прочно вошел в процессы доставки кода до пользователя. Но best practice работы с контейнерной виртуализацией и, в частности, с Docker вырабатываются до сих пор.


Как это было


В начале становления Docker как основного инструмента изоляции процессов, многие использовали его аналогично использованию виртуальных машин. Подход был максимально прост: устанавливаем все необходимые зависимости в образ (Docker Image), там же билдим всё, что должно билдиться а что не должно двигаем и билдим, получаем артефакт сборки и запекаем всё это в итоговый образ.

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

Компьютерное зрение на примере приложения для IKEA. Часть 1

Reading time8 min
Views46K
Готовился к очередному хакатону, решил обновить свои знания в области компьютерного зрения. В прошлый раз задачу распознавания номеров авто в видеопотоке я так и не смог решить быстро «в лоб». Сейчас, поразмыслив, решил немного упростить задачу. Было много идей, листал фотки в телефоне и наткнулся на привычный кейс для всех, кто бывал в магазине ikea — фотографию с чеком, где указан номер товара и его положение на складе самообслуживания.

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

Создание Warcraft (часть 2)

Reading time10 min
Views77K
От переводчика

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

Под хабракатом — о том, что именно, помимо любви к Dune 2 подтолкнуло на создание Warcraft; почему в Warcraft такая яркая графика; какие здания не попали в Warcraft 1; откуда растут ноги у героев в Warcraft III и еще несколько интересностей, включая заднюю обложку коробки первого издания и несколько скринов для того, чтобы пустить слезу ностальгии.

Традиционно буду рад замечаниям, исправлениям. И спасибо всем, кто писал по этому поводу в прошлый раз!

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

Создание Warcraft (часть 1)

Reading time10 min
Views86K
Введение (от переводчика)


Так вышло, что одна из моих самых любимых игр — Warcraft II.
Каждый раз, когда эта игра где-то упоминается, или кто-то про неё вспоминает, я обычно очень радуюсь. Перед Warcraft II, разумеется, был просто Warcraft.

Патрик, автор статьиИ вот недавно случилось интересное — Патрик Вайат (Patrick Wyatt), один из тех людей, кто стоял у истоков Blizzard, и человек, который затеял разработку Warcraft начал цикл воспоминаний о тех временах. Первая статья, которую я вам предлагаю прочитать ниже — о начале разработки Warcraft. О том, откуда появилась идея; о том, какая сеть была организована у ребят в офисе, пока они грезили о мультиплеере; о EMS и тонкостях эстетики программирования под DOS; о команде проекта и так далее.

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

Это касается, понятное дело, и любых других неточностей, опечаток, пунктуации и стилистики.




image Давным давно, в начале времен, когда игры для PC писались под операционной системой DOS, я начал работать над игрой под названием Warcraft.

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

Эффект Осборна и несколько других фатальных ошибок управления

Reading time8 min
Views22K
Компании любой отрасли, от самых мелких до крупных, регулярно совершают ошибки, и лишь размер предприятий определяет масштаб последствий этих промахов. Информационные технологии — очень молодая сфера, возраст которой составляет всего каких-то несколько десятков лет, и высокий риск ошибок, новизна многих проблем и финансовый интерес к индустрии сделали несколько неудачных решений хрестоматийными примерами плохого управления, и порой фамилии их авторов остались лишь в истории и учебниках менеджмента.

SCO против Linux


Успешная и даже названная Эриком Реймондом «первой Unix-компанией» Santa Cruz Operation имеет мало общего с тем, что в конечном счете назвало себя SCO Group. До начала 2000-ых в Санта-Крусе создавался коммерчески востребованный Unix для серверов платформы x86, но дела пошли хуже после покупки компанией Caldera Inc., возглавляемой Рэнсомом Лавом, который питал надежды создать лучший Unix на основе приобретенных наработок.

Партнерство с Intel и IBM в попытке реализации проекта Монтерей, операционной системы для разрабатываемой архитектуры Intel Itanium и POWER IBM, не увенчалось успехом: рынок отверг IA-64 в пользу 64-битных вариантов архитектуры x86, а нишу Unix заняла свободная операционная система Linux. В 2002 году Рэнсом оставил свой пост Дарлу Макбрайду, и часть Canopy Group переименовала себя в SCO Group, а вместо разработки новых продуктов компания сконцентрировалась на судебных разбирательствах.
Читать дальше →

Новые ноутбуки серии ThinkPad от Lenovo

Reading time1 min
Views3.3K
Сегодня Lenovo анонсировала 6 новых ноутбуков серии ThinkPad — T420s, T420, T520, L420, L520 и W520.



В двух словах, о них в пресс-релизе говорится следующее: «Ультра-тонкий, весом меньше 4-х фунтов ThinkPad T420s обладает на 30% меньшим временем загрузки (по сравнению с аналогичными системами) благодаря Lenovo Enhanced Experience 2.0; Т420 может работать до 30 часов в комплекте с дополнительным аккумулятором; мобильная рабочая станция W520 предлагает клиентам вдвое большую производительность, по сравнению с предыдущими моделями».

Еще пару слов о времени работы от аккумулятора из пресс-релиза. Стандартная 9-ти ячеечная батарейка в ThinkPad T420, как обещают, позволит работать до 15 (!) часов. Если же есть такая необходимость, в дополнение к стандартной батарее можно будет прикупить дополнительную, что даст возможность работать до 30 часов.

Спецификации пока что недоступны. Известно только то, что данные ноутбуки будут строиться на 2-м поколении процессоров Intel® Core™ и Core™ vPro™.

Обещают их уже в марте по следующим ценам: T420s, T420, T520, L420, L520 и W520 — от $1329, $779, $909, $719, $719 и $1329 соответственно.

P.S. Симпатичный видеоролик прилагается: www.youtube.com/watch?v=suCYukt82IY

Upd: Появились спецификации, ура! Смотреть тут.

Бэкенд Twitter перешёл на Protocol Buffers

Reading time2 min
Views4.3K
Хотя основные копии пользовательских твитов хранятся в базах данных MySQL и Cassandra, компания также разворачивает дополнительное хранилище на Hadoop, которое можно будет использовать для аналитики и дополнительных программных приложений.

Информацию из этой системы можно запрашивать с помощью Java MapReduce или Pig, собственного SQL-подобного языка запросов Hadoop. В данный момент на этот бэкенд уже переведена система поиска, а в будущем появятся и другие приложения.

Отвергнув популярные технологии вроде XML, CSV и JSON, программисты Twitter выбрали в качестве формата для хранения данных бэкенда относительно неизвестный формат Protocol Buffers, разработанный в Google (он уже обсуждался на Хабре). Технические подробности реализации были оглашены представителями Twitter на конференции HadoopWorld во вторник.
Читать дальше →

Википедия переходит на P2P-видео

Reading time1 min
Views2.6K
В техническом блоге Википедии опубликовано сообщение о том, что с нынешнего момента все видеоролики на сайтах Wikimedia поддерживают доставку через торренты.

Каждый пользователь может установить в браузере расширение Swarmplayer (пока только под Firefox, скоро будет под IE) — и с этого момента любое видео Wikimedia будет поступать ему в браузер не напрямую с сайта, а через P2P-сеть таких же клиентов. Это позволит значительно снизить нагрузку на серверы Wikimedia.

Swarmplayer 2.0 работает с библиотекой Kaltura HTML5 (aka mwEmbed) и сервисом url2torrent.net.
Читать дальше →

47 принципов игровой механики

Reading time1 min
Views8K
Не секрет, что многие социальные сервисы внедряют у себя принципы игровой механики, хотя бы в виде статусов, рейтингов, голосований, виртуальных подарков. Аналогичные принципы применяются в офлайновом мире, где на игровой механике основаны маркетинговые акции, дисконтные программы. Игры вызывают эмоции, что делает отношения с пользователями более крепкими и эффективными. Среди экспертов существует мнение, что любой бизнес в будущем должен взять элементы игры.

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

Компания SCVNGR занимается разработкой мобильных игр и создала именно такую колоду карт, которую можно позаимствовать и использовать в своих целях. Вот здесь приводится объяснение каждого из 47-ми терминов и примеры их использования: достижения, фиксированный интервал, поведенческий кураж, информационная теория фрагментарной информации (то есть что любую информацию для пользователей нужно выделять минимально возможными порциями — так она лучше усваивается), динамика достижений, совместная игра, кросс-ситуационные хит-парады, бесконечный геймплей, мысль о великой цели, бесплатный завтрак, лотерея, собственность и т.д.

Мои вторые уши

Reading time3 min
Views22K
Ну вот и схлынула волна публикаций про наушники… А я про свои Sennheiser CX 300-II так и не рассказал. Пора исправлять свою оплошность, тем более, очень сложно найти вторые такие же наушники по соотношению цена/качество. В общем, если вам нужны компактные наушники с хорошим звуком за приемлемую цену, то милости прошу под хабракат.

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

Регистрируем торговую марку в США

Reading time3 min
Views32K

Вопрос этот, прямо скажем, волнует не каждого. Но если вы планируете серьёзно выходить на рынок США, то этот вопрос обязательно возникнет. Минусов или проблем от регистрации торговой марки нет, но это стоит некоторых денег. Зато после регистрации, можно будет писать на сайте и в рекламной продукции — МояМарка ®. Это добавит вашему продукту/услуге некоторой солидности.
Ранее на хабре был топик по патентам. Я же раскажу о регистрации торговой марки, как всегда на своём опыте.
Читать дальше →

Мастерство целевого использования ключевых слов и оптимизации страниц

Reading time8 min
Views8.9K
Пост опубликован по просьбе одного хорошего человека.

Как создать максимально оптимизированную веб-страницу?



Если вы СЕОшник (SEO оптимизатор), то этот вопрос вы часто слышите. К сожалению, однозначного ответа нет. Но, тем не менее, существует набор полезных приемов, которые помогут приблизиться к ответу на этот вопрос. В данном посте я поделюсь нашими лучшими рекомендациями для достижения «совершенства» оптимизации страницы и расположения ключевых слов. Или, по крайней мере, что-то близкое к этому. Некоторые из наших советов подтверждены данными, результатами исследований и тестирований, другие основаны на интуиции и общем опыте. Как и со всеми СЕО советами, мы рекомендуем постоянное тестирование и оттачивание, ну а данный пост поможет вам начать процесс оптимизации.
Читать дальше →

Оптимизация оплаты Webmoney посредством Paymer

Reading time2 min
Views3.1K
image Выкладываю статью о webmoney и паймере из своего блога. На днях пополнял на очень популярном сайте свой баланс посредством webmoney. Было крайне удивительно обнаружить, что администрация сайта оставила в мерчанте настройки по умолчанию. Результат — 0.8% моих денег им не дошли. Более того, они могли их заработать два раза, если бы сделали на своем сайте прием чеков Paymer правильно.
Читать дальше →

Разработка Qt-приложения с доступом к MySQL под Android

Reading time6 min
Views44K
Qt является одним из самых популярных и удобных фреймворков для разработки, и это вполне заслуженно. Когда нашей компании пришёл заказ на небольшое клиент-серверное приложение, мы ни минуты не сомневались в выборе инструментария. Приложение должно было работать на Windows и Linux, впоследствии к списку платформ добавился и Android. Приложение является сетевым, решает довольно простенькую задачу, и хранит все свои данные на сервере MySQL.
И тут начала вырисовываться проблема: как запрячь в одну упряжку Qt-приложение, Android, да ещё и заставить их общаться с MySQL? Решению этой достаточно нетривиальной задачи и посвящена эта статья. В качестве примера напишем небольшое приложение, которое считывает строки из таблицы MySQL и выводит их в табличное поле на форме.
Читать дальше →

Найм персонала: О важности примитивных вопросов

Reading time4 min
Views7.4K
Вам приходилось бывать на долгих собеседованиях? На многоуровневых собеседованиях? А может вы такие проводите сами? Многие компании ведут подобную практику, и большие и маленькие, но подобная практика имеет ряд очевидных минусов. Таких, как впустую потраченое время на интервьюирование человека по полной программе, который не подходит просто по техническим навыкам. В данной статье я хочу описать подход к интервью технических навыков (про остальное не забываем, но в статье рассматривать не будем), который, возможно, сбережет вам кучу времени. Сутью подхода является задавание вопросов, которые грамотный специалист расценит как: «Ты что дурак? Меня о таком спрашивать!»
Читать дальше →

50 цитат о программировании всех времён

Reading time6 min
Views164K
Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

50. Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
— Rick Cook

49. Lisp — это не язык, а строительный материал.
— Alan Kay

48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity