
Демишев Игорь @TrueDrago
User
Задачи на собеседованиях в Яндексе
15 min
360KОткрытые вакансии на должность разработчика в Яндексе есть всегда. Компания развивается, и хороших программистов не хватает постоянно. И претендентов на эти должности тоже хоть отбавляй. Главная сложность – отобрать действительно подходящих кандидатов. И в этом плане Яндекс мало чем отличается от большинства крупных IT-компаний. Так что базовые принципы, описываемые в этой статье, могут быть применимы не только к Яндексу.
Однако стоит оговориться, что статья все же про подбор разработчиков. Т.е. собственно тех восьмидесяти процентов сотрудников, на которых держится массовая разработка. Часто мы нанимаем людей на специальные вакансии: например, разработчиков систем компьютерного зрения, лингвистов, экспертов по машинному обучению. В этом случае формат собеседования может заметно отличаться.

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

+135
turbofilm.tv заблокирован
1 min
66KДомен «turbofilm.tv» из большого интернета теперь резолвится в заглушку регистратора GoDaddy, призывающую владельца домена связаться с GoDaddy по адресу invalidwhois@godaddy.com


+55
Gearman — сервер очередей: использование в проектах на PHP
9 min
82KНе так давно была замечательная статья, описывающая общие принципы работы с сервером очередей Gearman. Мне бы хотелось продолжить материал, дополнив его некоторыми деталями практического применения, а именно:
— установка и управление сервером
— управление очередью — что возможно и как
— PECL и PEAR php-расширения для работы с Gearman
— мониторинг сервера
— примеры кода
— передача данных порциями
— организация параллельных вычислений в PHP
Интересно? Прошу под кат
— установка и управление сервером
— управление очередью — что возможно и как
— PECL и PEAR php-расширения для работы с Gearman
— мониторинг сервера
— примеры кода
— передача данных порциями
— организация параллельных вычислений в PHP
Интересно? Прошу под кат
+60
Nginx+php-fpm+perl под Debian Squeeze
10 min
125KTutorial

Для чего эта заметка, ведь похожих уже полно? Если кратко, то когда я взялся настроить связку пришлось перечитать огромное количество документации и разных статей, все сразу и в одном месте найти не получилось. Данная статья попытка систематизировать накопленные знания, а также максимально подробная помощь тем, кто только начинает осваивать nginx.
В качестве теста решил перевести все свои сайты на nginx, до этого все работало на Apache из состава ZendServerCE. Интересно было пробовать насколько сложно будет полностью переехать на новый для себя веб-сервер, ведь используется несколько CMS (DLE, Wordpress, самописныеCMS).
Задачи:
- базовая работа web сервера — обработка html;
- запуск php скриптов;
- корректная работа phpmyadmin для всех сайтов на сервере;
- запуск cgi и pl скриптов;
- использование кеширования и подбор оптимальных параметров для увеличения производительности.
Имеем свежеустановленный сервер Debian 6 в минимальной установке из netinstall. И так поехали.
+25
Дайджест интересных новостей и материалов из мира PHP № 29 (20 октября — 10 ноября 2013)
8 min
20K
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
+44
Как это сделано: парсинг статей
4 min
82K
Для меня всегда было некоей магией то, как Getpocket, Readability и Вконтакте парсят ссылки на страницы и предлагают готовые статьи к просмотру без рекламы, сайдбаров и меню. При этом они практически никогда не ошибаются. А недавно подобная задача назрела и в нашем проекте, и я решил копнуть поглубже. Сразу скажу, что это «белый» парсинг, вебмастеры сами добровольно пользуются нашим сервисом.
+101
Внимание — конкурс! Разрабатываем мессенджер Вконтакте для Tizen
1 min
11KДобрый день, Хабр!
Мы рады объявить о начале конкурса для разработчиков мобильных приложений. Участникам будет необходимо разработать приложение-мессенджер на основе API ВКонтакте на платформе Tizen SDK 2.2.

При разработке нового мессенджера участники конкурса должны будут выполнить предложенное задание. Конкурс пройдет с 28 октября по 18 декабря. 2 декабря жюри Samsung отберет до 20 финалистов, а 25 декабря будут названы три победителя, которые разделят между собой призовой фонд в размере 3 млн. рублей и смогут загрузить приложение в Tizen Store на сайте seller.tizenstore.com.
Подробные правила и условия конкурса опубликованы в официальной группе конкурса: vk.com/tizen_contest.
Дерзайте, дамы и господа!
Мы рады объявить о начале конкурса для разработчиков мобильных приложений. Участникам будет необходимо разработать приложение-мессенджер на основе API ВКонтакте на платформе Tizen SDK 2.2.

При разработке нового мессенджера участники конкурса должны будут выполнить предложенное задание. Конкурс пройдет с 28 октября по 18 декабря. 2 декабря жюри Samsung отберет до 20 финалистов, а 25 декабря будут названы три победителя, которые разделят между собой призовой фонд в размере 3 млн. рублей и смогут загрузить приложение в Tizen Store на сайте seller.tizenstore.com.
Подробные правила и условия конкурса опубликованы в официальной группе конкурса: vk.com/tizen_contest.
Дерзайте, дамы и господа!
+11
Структуры данных, PHP
9 min
86KTutorial
Translation
Данный пост является переводом и предназначен для новичков. Ну или для тех, кто забыл лекции с начальных курсов своих вузов. Скорее всего, данный материал уже попадался на хабре в той или иной модификации, но здесь упор на PHP и его особенности.
Структуры данных или Абстрактный Тип Данных (ADT) — это модель, определенная как некий набор операций, которые могут быть применены к самой себе и ограничена тем, какой результат дают эти операции.
Большинство из нас сталкиваются со стеком и очередью в повседневной жизни, но что общего между очередью в супермакете и структурой данных? В этом мы и попробуем разобраться в данной статье, где также будут описаны деревья.

UPD: s01e02
Структуры данных или Абстрактный Тип Данных (ADT) — это модель, определенная как некий набор операций, которые могут быть применены к самой себе и ограничена тем, какой результат дают эти операции.
Большинство из нас сталкиваются со стеком и очередью в повседневной жизни, но что общего между очередью в супермакете и структурой данных? В этом мы и попробуем разобраться в данной статье, где также будут описаны деревья.

UPD: s01e02
+31
Ungit — самый простой способ использовать Git
1 min
33KДоброго времени суток уважаемые хабражители. Буквально только что увидел потрясающий проект на GitHub от FredrikNoren.
Необходим Node.js версии 0.10 или выше и npm версии 1.3.1 или выше
Я думаю, что после просмотра видео, моего более тщательного описания не потребуется. Спасибо всем за внимание.
Ungit:
- Чистый и интуитивно понятный интерфейс для Git (что есть невероятно круто для освоения Git)
- Работает на любой платформе с установленными Node.js и самим Git
- Веб-ориентированный. Возможность запускать его в облаке.
- GitHub
Необходим Node.js версии 0.10 или выше и npm версии 1.3.1 или выше
Установка
npm install -g ungit
Я думаю, что после просмотра видео, моего более тщательного описания не потребуется. Спасибо всем за внимание.
+57
+95
Рекомендательные системы: You can (not) advise
9 min
44K
Более полугода назад в поисках что посмотреть, я листал топ произведений. Это занятие повторялось уже много раз и успело надоесть — постоянно приходилось пропускать то, что я смотреть не хочу. Имхонетами раньше не пользовался, да и не доверял им из-за специфики искомых произведений. На сайте, где я производил поиски, была возможность создать свой список просмотренных произведений и выставить оценку, также были доступны оценки других пользователей. Тут мне в голову пришла гениальная идея, как оказалось позднее банальная, — используя оценки других пользователей делать рекомендации. Данная деятельность называется коллаборативной фильтрацией, а программа её реализующая — Рекомендательной системой(РС). Оглядываясь назад я понимаю, что совершил множество ошибок из-за недостатка информации и её труднодоступности в данной тематике, а что самое главное — сильно переоценил РС. В данном посте я сделаю обзор основных типов и алгоритмов РС, а также постараюсь передать часть своих знаний и опыта.
+35
TraceGL — интересный способ отладки JavaScript
1 min
12KС traceGL можно увидеть весь JavaScript поток в шустром webGL визуализаторе. Это как осциллограф, только для кода.
На сайте traceGL предлагают купить за $14.99 или € 11.50
На сайте traceGL предлагают купить за $14.99 или € 11.50
+32
Как начать писать тесты за 10 шагов по 10 минут
7 min
79KTutorial
Дайте-ка угадаю: вы согласны с тем, что писать тесты — это хорошо. Это повышает надежность системы, ускоряет разработку, проект с хорошим тестовым покрытием поддерживать легко и приятно, а TDD — это вообще почти идеал процесса разработки. Но не у вас в проекте. То есть, оно клёво, но, к сожалению, сейчас столько работы — просто завал. Куча задач, одних только критических багов — два десятка, плюс надо срочно дописать этот модуль и еще написать письмо заказчику… Так что тесты, наверное, будем прикручивать уже в конце, если время останется. Или в следующем проекте. Нет, ну там точно полегче будет. Скорее всего.
Как, узнали ситуацию?
Так вот — чушь всё это. Сфера ИТ — бесконечна, как вселенная, куча работы будет всегда. Можно или начать писать тесты прямо сейчас, или не сделать этого никогда. Я тут набросал короткий план, как начать это делать за 10 шагов, по шагу в день, по 10 минут на шаг. И когда я говорю «10 минут» я имею в виду не «3 с половиной часа» и не «ну сколько-то времени, лучше побольше», а именно 600 секунд. Если у вас нету в день 600 секунд свободного времени — срочно меняйте проект, работу, профессию, страну проживания (нужное подчеркнуть), потому что это не жизнь, а каторга какая-то. Поехали.
Как, узнали ситуацию?

+60
Продуктивное использование PHPStorm
7 min
328KВ процессе использования IDE иногда случайно, иногда специально находятся полезные фишки, сочетания клавиш и прочие заложенные разработчиками приятные штуки, которые никогда не оседают в памяти без регулярного их использования и всячески ускользают при чтении мануалов.
Не претендуя на библию или «настольную статью программиста» я хочу поделиться полезными находками в моей любимой IDE, не скатываясь в тупую копипасту мануалов и скучных списков хоткеев, только то, что я сам использую постоянно и над чем удивляются коллеги: «о! а так можно?»
Не претендуя на библию или «настольную статью программиста» я хочу поделиться полезными находками в моей любимой IDE, не скатываясь в тупую копипасту мануалов и скучных списков хоткеев, только то, что я сам использую постоянно и над чем удивляются коллеги: «о! а так можно?»
+114
Каким бы я хотел видеть свой первый проект на Symfony
5 min
25K Вот уже полтора года я использую Symfony 2 для разработки web-приложений. За это время я трижды начинал новый проект, еще в трех проектах работал с унаследованным кодом, а также провел ревью около 15 тестовых заданий на знание фреймворка.
Наверное, было бы здорово иметь возможность вернуться на полтора года назад и дать себе несколько советов перед стартом своего первого проекта. Увы, это невозможно. Но может быть, мои советы могут пригодятся другим начинающим разработчикам на Symfony?
Наверное, было бы здорово иметь возможность вернуться на полтора года назад и дать себе несколько советов перед стартом своего первого проекта. Увы, это невозможно. Но может быть, мои советы могут пригодятся другим начинающим разработчикам на Symfony?
+45
Консольные команды на PHP
4 min
37KУ многих, равно как и у меня, периодически возникает потребность в реализации каких-то небольших задач. Например распарсить сайт/API и сохранить данные в xml/json/csv, произвести какие-либо расчеты/пересчеты, перегнать данные из одного формата в другой, собрать статистику и т.д. и т.п. Замечу, что речь о задачах не связанных с текущими проектами.

Собирать тяжелый фреймворк ради удобных фич, лень, а реализовывать в рамках кода текущих проектов как-то не эстетично. Поэтому для экономии своего времени приходится создавать скрипт, копипастить в него куски кода из предыдущих наработок, подключать разнообразные библиотеки и запускать скрипт из консоли. При этом часто требуется некоторая интерактивность работы скрипта: обработка опций/аргументов, а то и диалоговое взаимодействие. Здесь главное чтобы не было настроения, которое хорошо описывается выражением «Аппетит приходит во время еды», тогда вообще не понятно к чему приведет работа над простой задачкой =)
В такие моменты я вспоминал удобную симфоническую консоль, к которой успел привыкнуть работая с проектами на
Symfony 2. Не в обиду другим консолям (zend, yii, django, ror etc), все хороши, просто так сложилось.
Когда в очередной раз потребовалось что-то распарсить, я опять вспомнил про консоль Symfony (Console Component) и тот факт, что это независимый компонент все больше подтолкнул меня к мысли использовать ее возможности.
За пару часов получилась простая тулза, в основе которой:
и менеджер зависимостей Composer, который нам поможет все это быстро собрать, добавлять новые либы, а также возьмет на себя автозагрузку классов.

Собирать тяжелый фреймворк ради удобных фич, лень, а реализовывать в рамках кода текущих проектов как-то не эстетично. Поэтому для экономии своего времени приходится создавать скрипт, копипастить в него куски кода из предыдущих наработок, подключать разнообразные библиотеки и запускать скрипт из консоли. При этом часто требуется некоторая интерактивность работы скрипта: обработка опций/аргументов, а то и диалоговое взаимодействие. Здесь главное чтобы не было настроения, которое хорошо описывается выражением «Аппетит приходит во время еды», тогда вообще не понятно к чему приведет работа над простой задачкой =)
В такие моменты я вспоминал удобную симфоническую консоль, к которой успел привыкнуть работая с проектами на
Symfony 2. Не в обиду другим консолям (zend, yii, django, ror etc), все хороши, просто так сложилось.
Когда в очередной раз потребовалось что-то распарсить, я опять вспомнил про консоль Symfony (Console Component) и тот факт, что это независимый компонент все больше подтолкнул меня к мысли использовать ее возможности.
За пару часов получилась простая тулза, в основе которой:
- symfony/console — сама консоль
- symfony/finder — для поиска и подключения к приложению наших комманд
- suncat/symfony-console-extra — несколько плюшек для того чтобы это все работало
и менеджер зависимостей Composer, который нам поможет все это быстро собрать, добавлять новые либы, а также возьмет на себя автозагрузку классов.
+27
Функциональные мониторинги в Яндексе
4 min
10KМониторите ли вы свои сервисы в продакшене? Чья у вас это зона ответственности?
Часто, когда речь заходит о мониторингах, приходят на ум серверные разработчики, системные администраторы и DBA, которые должны следить за очередями обработки данных, наличием свободного места на дисках, за жизнеспособностью отдельных хостов и нагрузкой.
Такие мониторинги действительно дают много информации о сервисе, но далеко не всегда показывают, как сервис работает для реального пользователя. Поэтому, в качестве дополнения к системным мониторингам, мы создали в Яндексе систему функциональных мониторингов, отслеживающих состояние сервиса через конечные интерфейсы – через то, как приложение выглядит и работает в браузере, и то, как оно работает на уровне API.
Что же такое функциональные мониторинги в нашем понимании? Чтобы лучше это понять, давайте посмотрим на то, как все развивалось.
Часто, когда речь заходит о мониторингах, приходят на ум серверные разработчики, системные администраторы и DBA, которые должны следить за очередями обработки данных, наличием свободного места на дисках, за жизнеспособностью отдельных хостов и нагрузкой.
Такие мониторинги действительно дают много информации о сервисе, но далеко не всегда показывают, как сервис работает для реального пользователя. Поэтому, в качестве дополнения к системным мониторингам, мы создали в Яндексе систему функциональных мониторингов, отслеживающих состояние сервиса через конечные интерфейсы – через то, как приложение выглядит и работает в браузере, и то, как оно работает на уровне API.
Что же такое функциональные мониторинги в нашем понимании? Чтобы лучше это понять, давайте посмотрим на то, как все развивалось.
+13
Шок будущего: Добро пожаловать!
6 min
86K
Уверен, что многие на Хабрахабре читали замечательную книгу британского публициста Элвина Тоффлера «Шок будущего», написанную еще в 1970-х годах, но не потерявшей актуальности и сегодня. Я позволил себе позаимствовать заголовок этого замечательного произведения, потому как считаю, что он как нельзя лучше подходит к теме этого хабрапоста.
Мы с вами, человечество, люди, живем в эпоху, предсказанную еще в 70-х годах прошлого столетия. Шок будущего — это то, что окружает нас каждую минуту, и производители новой техники и технологий только приближают момент, когда широким массам придется столкнуться с изменениями, уже произошедшими в окружающей среде.
Наше общество переживает огромные структурные изменения — переход от индустриального общества к супер-индустриальному. И это изменение переполняет людей. Ускорение темпов технологических и социальных изменений оставляет людей отключенными, они страдают от «сокрушительного стресса и дезориентации», вызываемых шоком будущего.
+37
Неразвлекательная игра Auti-sim: ощутите дискомфорт сенсорной перегрузки
2 min
33KВы стоите на поле под красивым синем небом. В нескольких метрах от вас группа визжащих и счастливо играющих на площадке детей. Но когда вы подходите ближе, то внезапно замечаете, что дети, на самом деле, безликие тупо уставившиеся на вас статуи. Их крик почти оглушает, наслаиваясь на монотонный школьный гул. Идиллическая картинка тоже начинает смазываться, как будто мир мечется между реальностью и помехами расстроенного аналогового телеканала. Единственное спасение для вас — это отступить в безопасность вашего начального местоположения.
Это может звучать как описание нового ужастика, но в действительности речь идёт об Auti-SIM — небольшой, но заставляющей задуматься игре от первого лица, посвящённой гиперчувствительности аутичных детей.
Это может звучать как описание нового ужастика, но в действительности речь идёт об Auti-SIM — небольшой, но заставляющей задуматься игре от первого лица, посвящённой гиперчувствительности аутичных детей.
+27
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity