Pull to refresh
0
0
Юрий Ильин @YuriyIlyin

User

Send message

Архитектура сервиса сбора и классификации объявлений жилья из Вконтакте

Reading time5 min
Views9K


В этой статье я расскажу о том, как устроен и развивался сервис по поиску объявлений жилья из Вконтакте, почему была выбрана сервис-ориентированная архитектура, а также какие технологии и решения использовались при его разработке.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments10

Наш опыт знакомства с Docker

Reading time34 min
Views46K

Вместо предисловия





Сегодня приснился сон, как-будто меня ужали до размера нескольких
килобайт, засунули в какой-то сокет и запустили в контейнере.
Выделили транспорт в оверлейной сети и пустили
тестировать сервисы в других контейнерах…
Пока не сделали docker rm


Не так давно мне посчастливилось стать членом очень крутой команды
Centos-admin.ru, в которой я познакомился с такими же, как я: единомышленниками со страстью к новым технологиям, энтузиастами и просто отличными парнями. И вот, уже на второй рабочий день меня с коллегой посадили работать над одним проектом, в котором требовалось «докерировать всё, что можно докеризировать» и было критически важно обеспечить высокую доступность сервисов.

Скажу сразу, что до этого я был обычным комнатным Linux-админом: мерился аптаймами, апт-гет-инсталлил пакеты, правил конфиги, перезапускал сервисы, тайлил логи. В общем, не имел особо выдающихся практических навыков, совершенно ничего не знал о концепции The Pets vs. Cattle, практически не был знаком с Docker и вообще очень слабо представлял, какие широкие возможности он скрывает. А из инструментов автоматизации использовал лишь ansible для настройки серверов и различные bash-скрипты.

Читать дальше →
Total votes 29: ↑23 and ↓6+17
Comments63

15 тривиальных фактов о правильной работе с протоколом HTTP

Reading time7 min
Views232K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →
Total votes 191: ↑186 and ↓5+181
Comments120

Google купила производителя термостатов за 3.2$ млрд

Reading time1 min
Views64K
image

Не готовится ли Google предложить что-то и для идеи «умного дома»?

Сегодня стало известно, что поисковый гигант приобрёл компанию Nest — производителя термостатов — за значительные 3.2 миллиарда долларов. О самой компании стало известно примерно три года назад: в частности то, что главой компании является Тони Феделл, бывший старший вице-президент одного из подразделений Apple (именно с ним связывают выпуск и успех iPod), а её техническая сторона, вероятно, имеет академические корни — вице-президентом является Йоку Мацуока, профессор CS университета Вашингтона.
Узнать подробности
Total votes 37: ↑33 and ↓4+29
Comments29

О «нетарифицируемых» звонках с мобильных на номера 8-800-xxxxxxx в России

Reading time10 min
Views57K


Новогодние каникулы для гика — отличное время, чтобы заняться делами, до которых в обычное время не доходят руки. Вот и я, пока на всех домашних компьютерах идут дефрагментации и годовые мега-бекапы, раскопал свой список дел, «до которых в 2011 руки не дошли».

Итак, сегодняшний мой вопрос — а правда ли, что звонки с мобильного телефона на любые номера, начинающиеся на 8-800-xxxxxxx, в России являются для звонящего бесплатными? Такой вопрос на секунду нет-нет, да и возникал у многих пользователей колл-центров да горячих линий банков, курьерских служб, страховых агентств и прочих организаций, куда нужно подолгу дозваниваться, слушая зацикленную пережатую mp3-шку десятки раз подряд. Ведь если звонок бесплатный — можно начать дозваниваться стоя в пробке, или просто по дороге на работу — ежели ходите пешком. Но случись, что ответят вам неожиданно-БЫСТРО — в шуме улицы важные сведения и расслышать тяжело, и диктовать не слишком сподручно. А вдруг звонок окажется платным? Тогда лучше уделить ему побольше внимания, звонить из тихого спокойного места, и постараться подгадать для него время суток, когда очередь звонящих-ожидающих будет покороче.

Я живу в Санкт-Петербурге и проверяю ситуацию только с местными операторами сотовой связи, но информация, скорее всего, окажется интересной и для хабравчан из других городов РФ. Под хабракатом — СЕНСАЦИИ, ИНТРИГИ, РАССЛЕДОВАНИЯ^W неожиданно много букв и неоднозначная пища для размышлений.
Читать дальше →
Total votes 264: ↑253 and ↓11+242
Comments84

Нано-эппл, или как стать производителем электроники

Reading time5 min
Views4.2K
Итак, вы решили сделать что-то вот эдакое! Новый MP3-плеер, пульт управления для телевизора, да хоть датчик температуры. В моем случае это был пульт управления фотоаппаратами, и идея пришла в час ночи, когда я ради развлечения фотографировал стройку при свете луны. Началось это все в сравнительно небольшом сибирском городе… а сейчас у нас производство в Техасе и дистрибьюторы по всему миру. Вспоминая этот веселый путь, хотелось бы описать как удачные находки, так и ошибки, допущенные в процессе подготовки к производству.
Читать дальше →
Total votes 119: ↑114 and ↓5+109
Comments88

Яндекс.Директ. Общие рекомендации по стратегиям в зависимости от рекламных бюджетов

Reading time6 min
Views3.3K
Исходя из нашего опыта, статья «бюджет на контекстную рекламу» у многих компаний в общих расходах болтается в списке где-то между пунктами «годовые расходы на кофе» и «опять эти чертовы подарки на новый год». И это, господа предприниматели, печально.

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

Реклама в эпоху жесточайшей конкуренции – это то, без чего развитие любой коммерческой организации попросту невозможно.
Читать дальше →
Total votes 7: ↑4 and ↓3+1
Comments0

Еще раз об отборе программистов (часть 1)

Reading time2 min
Views4K
Написать сей пост меня сподвиг критический обзор, в котором хорошо расписано как НЕ надо проводить собеседования. Я же, в свою очередь, попытаюсь рассказать, как выглядит адекватный процесс отбора кандидатов на испытательный срок.
Читать дальше →
Total votes 41: ↑28 and ↓13+15
Comments18

Видео докладов iPhoneDevCamp Kyiv v2.0

Reading time1 min
Views499
В конце ноября прошла вторая встреча iPhone разработчиков в рамках iPhoneDevCamp Kyiv. Уже готовы видео-ролики всех докладов и их можно посмотреть ниже, а все презентации отдельно можно увидеть на сайте кемпа.

Доклад Никиты Луценко “In-App-Purchases и с чем их едят”

Видео остальных докладов
Total votes 17: ↑12 and ↓5+7
Comments4

multi_get — качаем сайты оптом

Reading time4 min
Views1.7K
Топик будет интересен тем, кто хочет индексировать Интернет-сайты на предельных скоростях (самодельные поисковики, анализы частоты слов, сервисы по анализу html'я и т.п.) Threading тут не дает предельных скоростей, urllib — тем более… Решение здесь в использовании асинхронных запросов из libcurl.

Скорость?
На 500MHZ (очень-очень слабенький VPS) — около 100 URLов в секунду (100 соединений, 2 процесса).
На Amazon EC2 «High-CPU Medium Instance» (.2$/час) ~ 1200 URLов в секунду (300 соединений, 5 одновременных процессов). В один процесс до 660 URLов в секунду.

Для выкачивания множества сайтов и дальнейшей обработки, хочу поделиться одной своей полезной функцией — multi_get — по сути она — удобный wrapper для CurlMulti (libcurl), модифицированный из их примера CurlMulti.

>>> urls = ['http://google.com/', 'http://statcounter.com/']
>>> res = {}
>>> multi_get(res, urls, num_conn = 30, timeout = 5, percentile = 95)
>>> res['http://google.com/']
'<html><title>Google....
# тут обрабатываем res, который содержит HTML всех для URL'ок
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments11

Финляндия

Reading time5 min
Views5.6K
Продолжим тему жизни по ту сторону границы небольшим рассказом о Финляндии (пока не опередили :) ). Живу в Финляндии уже семь лет, прошёл университет и аспирантуру, имею достаточно полное представление о повседневной жизни и немного менее полное представление (в основном через опыт друзей) о карьерных возможностях.
Читать дальше →
Total votes 155: ↑138 and ↓17+121
Comments128

SVN на Маке

Reading time4 min
Views6.7K
image
Купив Мак, я озадачился установкой на него софта, который стоял до этого у меня на PC. Перенести удалось почти всё. Для чего-то нашлись маковские версии, для чего-то удалось подобрать замену. Проблемы возникли с Subversion (SVN). На PC я пользовался Visual SVN Server, который не требует практически никакой настройки и работает сразу после установки. На Маке такого удовольствия не оказалось, так что пришлось немного повозиться.
Читать дальше →
Total votes 53: ↑45 and ↓8+37
Comments67

What's all this fuss about Erlang?

Reading time5 min
Views5.8K
by Joe Armstrong

Никто не в состоянии предсказывать будущее — но я сделаю несколько обоснованных предположений.

Предположим, что Intel правы, что их проект Keifer выстрелит. Если это случится, то 32-х ядерные процессоры появятся на рынке не позже 2009-2010.

Ничего удивительного здесь нет. Sun уже продает восьмиядерные Niagara с 4-мя «hyperthreads» на каждом ядре, что эквивалентно 32-ум ядрам.

Это разработка, которая осчастливит программистов на Erlang. Они 20 лет ждали этого события, и теперь настало время расплаты.

Хорошие новости для Erlang-программистов:

На N-ядерном процессоре ваша программа будет работать в N раз быстрее.

Читать дальше →
Total votes 77: ↑73 and ↓4+69
Comments271

Правила Джоша (для деловых людей)

Reading time3 min
Views1.4K
Список советов от эксперта по базам данных и члена группы разработчиков Джоша Беркуса (Josh Berkus), на мой взгляд, может оказаться полезным не только консультантам в области баз данных. Приведённые советы относятся к сфере взаимоотношений с клиентами. Некоторые рекомендации, как мне кажется, являются актуальными и для разработчиков-фрилансеров.

Джош Беркус является членом ядра группы разработчиков PostgreSQL (PostgreSQL Core Team) с 2002-го года. В данный момент он работает на Sun Microsystems, входя в группу, занимающуюся открытыми СУБД. До работы над PostgreSQL он работал с различными другими приложениями и технологиями, включая OpenOffice.org, Microsoft SQL Server, Oracle PL/SQL, и (о, ужас!) COM+.

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

1. Состояние данных отражает состояние бизнеса. Покажите мне клиента с хроническими проблемами в базе данных — и я покажу вам клиента с хроническими проблемами в области менеджмента.
2. Три вещи, с которыми вам не придется столкнуться никогда:
  • слишком мягкие временные рамки;
  • клиент, который платит слишком быстро;
  • точная и полная спецификация.

3. Решения, принимаемые по отношению к базе данных, «живут» очень долго («нет ничего более постоянного, чем временное»): среднее время жизни «временного, одноразового» приложения баз данных составляет 4 года. Некоторые такие кусочки кода датируются 1960-ми и работают и по сей день. Так что сразу рассчитывайте на долгосрочное использование.
4. Плохие клиенты погубят ваш бизнес: умение вовремя распознать плохого клиента и отказаться от него или вовремя расторгнуть контракт — это половина успеха. Будьте готовы сбежать в любую минуту.
Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments40

Разговорный английский за месяц

Reading time5 min
Views21K
Перепечатано с моего ЖЖ.

Решился написать про свой опыт изучения английского в экстремально короткие сроки (1 месяц) — вдруг кому пригодится. Также выдам немного инфы про то, как собеседовался за границу.

Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments220

Бэкап в Time Machine используя домашний сервер под Ubuntu в качестве iSCSI — таргета

Reading time2 min
Views5.8K
Добрый вечер, уважаемое хабросообщество!

Долгое время из за отсутствия TimeCapsule или внешнего USB винчестера я использовал Time Machine для бэкапа на домашний сервер по протоколу SMB (подробно о том как это сделать смотри, например здесь) Однако совершенно не зря на мой взгляд данный метод не поддерживается Apple официально, метод плохой, негодный. Дважды образ для бэкапов оказывался испорченым без всяких видимых на то причин но данные удалось спасти, на третий раз чаша моего терпения переполнилась и я стал искать альтернативный вариант. Представляю сообществу свой вариант решения проблемы бэкапа путем предоставления доступа к отдельному диску домашнего сервера по протоколу iSCSI. Что это такое, для чего оно нужно а также преимущества и недостатки по сравнению с SMB/nfs можно узнать, например здесь.

Итак, дано:
1. Сервер под управлением Ubuntu 9.04 server (сделан dist-upgrade с 8.10). Выступает в роли iSCSI-target. Для бэкапа будем использовать отдельный жесткий диск.
2. iMac под управлением MacOS 10.5.7 Выступает в роли iSCSI-initiator
Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments42

Как я искал, и нашел русский голос для Mac OS

Reading time4 min
Views11K
Будучи пользователем PC я активно использовал «голосовые»решения.

Различные читалки и голосовые конвертаторы текста, переводя в «голос» интересные мне статьи и книги и слушая их на ходу с плеера или с компа перед сном. Это превратилось в устойчивую привычку, которая позволяла мне приятно и с пользой проводить время прогулок и дальних поездок. Около года назад, купив практически одновременно Macbook Air и iPhone, я с удивлением обнаружил такой факт:
С одной стороны Mac имеет прекрасную и глубоко интегрированную в ОС голосовую службу. Множество прекрасных встроенных голосов.
С другой стороны, русского голоса для мака нет!
Читать дальше
Total votes 41: ↑30 and ↓11+19
Comments20

13 подсказок для само-мотивации

Reading time4 min
Views6.2K
Кому вообще нужен Тони Роббинс, когда ты сам можешь себя мотивировать? Иногда совсем не просто перебороть эмоциональное препятствие, чтобы начать заниматься делами, особенно когда больше хочется сидеть на диване и ничего не делать. Но, хотя болезненное состояние и пробуждение в полдень не имеет никаких последствий для тебя, без этого ты часто просто не можешь.

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

Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments8
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity