Как стать автором
Обновить
4
0

Пользователь

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

Всё по полочкам: веб-аналитика с Рамблер/топ-100, часть 1

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


Часть первая, в которой мы рассказываем о перезапуске сервиса Рамблер/топ-100 и новом инструменте подробной иерархической аналитики «Разделы сайта».

Осенью 2016 года мы перезапустили Рамблер/топ-100 – сервис веб-аналитики и старейший каталог сайтов Рунета. С тех пор мы добавили еще несколько дополнительных возможностей, о которых хотим рассказать. Эту весну Топ-100 встретил под флагом тематической аналитики по российскому Интернету.

Вообще у перезапуска сервиса было несколько задач. Во-первых, устаревшие и затратные в поддержке компоненты мы меняли на современные и более стабильные. Во-вторых, давно пора было освежить внешний вид — теплый ламповый дизайн старого Топ-100 отдавал началом нулевых. В-третьих, нужно было пересмотреть функционал счётчика и аналитического интерфейса, дополнив его новыми возможностями.

Принимаясь за работу над новой версией Топ-100, мы обратились за консультацией к нашим коллегам: аналитикам, маркетологам и менеджерам. Они, как целевая аудитория сервиса, своими предложениями и замечаниями помогли сделать Топ-100 полезней и лучше. Люди этих профессий – наши самые активные и требовательные пользователи, поэтому в состав требований к MVP (Minimum viable product) вошли два важных момента: сохранение всех возможностей прошлой версии сервиса и добавление инструментов, нужных для собственных аналитических задач RAMBLER&Co.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии9

Знакомство с межпроцессным взаимодействием на Linux

Время на прочтение11 мин
Количество просмотров206K
Межпроцессное взаимодействие (Inter-process communication (IPC)) — это набор методов для обмена данными между потоками процессов. Процессы могут быть запущены как на одном и том же компьютере, так и на разных, соединенных сетью. IPC бывают нескольких типов: «сигнал», «сокет», «семафор», «файл», «сообщение»…

В данной статье я хочу рассмотреть всего 3 типа IPC:
  1. именованный канал
  2. разделенная память
  3. семафор
Отступление: данная статья является учебной и расчитана на людей, только еще вступающих на путь системного программирования. Ее главный замысел — познакомиться с различными способами взаимодействия между процессами на POSIX-совместимой ОС.
Читать дальше →
Всего голосов 79: ↑78 и ↓1+77
Комментарии22

Знай сложности алгоритмов

Время на прочтение2 мин
Количество просмотров988K
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Всего голосов 312: ↑296 и ↓16+280
Комментарии99

Современная операционная система: что надо знать разработчику

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

Александр Крижановский (NatSys Lab.)


Александр Крижановский

Нас сегодня будет интересовать операционная система – ее внутренности, что там происходит… Хочется поделиться идеями, над которыми мы сейчас работаем, и отсюда небольшое вступление – я расскажу о том, из чего состоит современный Linux, как его можно потюнить?

По моему мнению, современная ОС – это плохая штука.




Дело в том, что на картинке изображены графики сайта Netmap (это штуковина, которая позволяет вам очень быстро захватывать и отправлять пакеты сетевого адаптера), т.е. эта картинка показывает, что на одном ядре с разной тактовой частотой до 3 ГГц Netmap позволяет 10 Гбит – 14 млн. пакетов в сек. отрабатывать уже на 500 МГц. Синенькая линия – это pktgen – самое быстрое, что, вообще, есть в ядре Linux’а. Это такая штуковина – генератор трафика, который берет один пакет и отправляет его в адаптер много раз, т.е. никаких копирований, никакого создания новых пакетов, т.е., вообще, ничего – только отправка одного и того же пакета в адаптер. И вот оно настолько сильно проседает по сравнению с Netmap (то, что делается в user-space показано розовой линией), и оно вообще где-то там внизу находится. Соответственно, люди, которые работают с очень быстрыми сетевыми приложениями, переезжают на Netmap, Pdpdk, PF_RING – таких технологий море сейчас.
Читать дальше →
Всего голосов 102: ↑94 и ↓8+86
Комментарии51

Яндекс открывает ClickHouse

Время на прочтение14 мин
Количество просмотров167K
Сегодня внутренняя разработка компании Яндекс — аналитическая СУБД ClickHouse, стала доступна каждому. Исходники опубликованы на GitHub под лицензией Apache 2.0.



ClickHouse позволяет выполнять аналитические запросы в интерактивном режиме по данным, обновляемым в реальном времени. Система способна масштабироваться до десятков триллионов записей и петабайт хранимых данных. Использование ClickHouse открывает возможности, которые раньше было даже трудно представить: вы можете сохранять весь поток данных без предварительной агрегации и быстро получать отчёты в любых разрезах. ClickHouse разработан в Яндексе для задач Яндекс.Метрики — второй по величине системы веб-аналитики в мире.

В этой статье мы расскажем, как и для чего ClickHouse появился в Яндексе и что он умеет; сравним его с другими системами и покажем, как его поднять у себя с минимальными усилиями.
Читать дальше →
Всего голосов 176: ↑172 и ↓4+168
Комментарии204

Systemd за пять минут

Время на прочтение4 мин
Количество просмотров624K
Наша компания занимается администрированием веб-серверов на базе CentOS. Довольно часто наши клиенты используют веб-приложения на базе python, ruby или java. Для автозапуска подобных приложений есть готовые шаблоны для написания стартап-скриптов. Но прогресс не стоит на месте, вышел уже второй релиз CentOS 7 и, следуя старой традиции «не ставить dot-zero релизы на продакшен», мы начинаем предлагать клиентам сервера на базе CentOS 7.1 (1503).

В CentOS7, так же как и в его родителе RHEL7, используется systemd — менеджер системы и служб для Linux, совместимый со скриптами инициализации SysV и LSB. systemd обеспечивает возможности агрессивной параллелизации и много всего прочего.

image

Огромный монстр с множеством возможностей, гибкими настройками и мегабайтами документации…

Но что делать, если стоит задача быстро-быстро, вот прямо вчера, сделать автозапуск некоего сервиса?
Давайте выжмем из документации минимально необходимый набор информации для создания простых старт-стоп скриптов.
Знакомство с systemd
Всего голосов 70: ↑66 и ↓4+62
Комментарии58

Как я год работал на CoreOS

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

Первый раз о CoreOS я услышал от Петра Леменкова на Yandex конференции “Дорога в облака” в сентябре 2013 года. Тогда я даже подумать не мог, что буду участвовать в разработке этой ОС.


Второй раз о CoreOS я вспомнил в октябре 2014, когда поступила задача о переводе микросервисов, написанных на Ruby (которые использовали, как это ни странно разные версии Ruby), в более благоприятную среду для continuous integration. Тогда я первый раз запустил CoreOS, и мне она показалось ужасно неудобной в использовании. Документация к ней была поверхностная. Сервисы, которые превращали CoreOS в кластерную ОС, имели множество недоработок и вызывали только чувство раздражения из-за постоянных ошибок. О переводе даже части инфраструктуры на CoreOS не было и речи.


В третий же раз, в марте 2015, поступила задача о предоставлении услуги поддержки в рамках community support для CoreOS. О том, как я справлялся, и пойдет речь.

Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии12

Tracert vs Traceroute

Время на прочтение5 мин
Количество просмотров260K
В чем отличие маршрута пакета от его пути?
Стандартный механизм маршрутизации пакетов в интернете — per hop behavior — то есть каждый узел в сети принимает решение куда ему отправить пакет на основе информации, полученной от протоколов динамической маршрутизации и статически указанных администраторами маршрутов.

Маршрут — это интерфейс, в который нам надо послать пакет для достижения какого то узла назначения и адрес следующего маршрутизатора (next-hop):
R1#sh ip rou | i 40.  
	 40.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
O        40.0.0.0/31 [110/3] via 20.0.0.0, 00:01:54, FastEthernet0/0
O        40.1.1.1/32 [110/4] via 20.0.0.0, 00:00:05, FastEthernet0/0

Что такое путь? Путь — это список узлов, через которые прошел (пройдет) пакет:
 1  10.0.0.1  16.616 ms  16.270 ms  15.929 ms
 2  20.0.0.0  15.678 ms  15.157 ms  15.071 ms
 3  30.0.0.1  26.423 ms  26.081 ms  26.744 ms
 4  40.0.0.0  48.979 ms  48.674 ms  48.384 ms
 5  100.0.0.2  58.707 ms  58.773 ms  58.536 ms

Путь пакета можно посмотреть с помощью утилит tracert в OC Windows и traceroute в GNU/Linux и Unix-подобных системах. (другие команды, типа tracepath мы не рассматриваем).
Многие считают что этих утилит один и тот же принцип работы, но это не так. Давайте разберемся.
Читать дальше →
Всего голосов 83: ↑78 и ↓5+73
Комментарии63

Анализ поведенческих факторов с помощью Apache Spark

Время на прочтение10 мин
Количество просмотров12K
Речь пойдёт об использовании Apache Spark для анализа поведенческих факторов на сайте, который имеет очень большую посещаемость. Учёт поведенческих факторов весьма часто используется для повышения конверсии ресурса. Кроме этого, возможности Интернет позволяют очень просто и быстро собирать и анализировать гигантское количество самой разной статистической информации. Будут показаны примеры кода и даны некоторые советы, основанные на личном опыте автора статьи.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Публичные собеседования на позицию веб-разработчика в прямом эфире

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

Мы в Хекслете делаем не только практические курсы по программированию, но и готовим людей к карьере программиста. Например, недавно запустили полную программу обучения «Профессия PHP-программист», куда входят основы программирования, частично книга СИКП, веб, базы данных, деплой, управление конфигурацией и многое другое, что мы считаем важным для настоящего разработчика. По завершению учебной программы мы помогаем людям получить первый опыт и устроиться на работу.

Важный аспект последнего шага это подготовка к собеседованиям. Мы знаем, что собеседования могут быть пугающими и сложными, поэтому решили предложить нашему активному сообществу (которое живет, в основном, в большом слак-чате) идею: публичные собеседования в прямом эфире!

Сразу нашлось несколько кандидатов, и наш технический директор Кирилл toxicmt Мокевнин провел три собеседования в прямом эфире. Сегодня публикуем видеозаписи этих собеседований. Все кандидаты претендуют на позицию джуниор-программиста.

Собеседование 1: Денис Кривощеков


Занимается фрилансом, изучает Ruby on Rails.

Читать дальше →
Всего голосов 52: ↑30 и ↓22+8
Комментарии53

15 бесплатных онлайн курсов по программированию

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

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

Современная практика показывает: “Хорошо – не значит дорого”, а доступность интернет – ресурсов определяющим фактором в получении образования ставит желание. Получить необходимые знания и интересующую информацию в ведущих университетах России, Европы и Америки сейчас возможно даже не выходя из дома.

Сегодня такой бонус мы подготовили всем, кто давно мечтал заговорить с компьютером на “ты”, но не решался перейти к действиям. Перед вами 15 вариантов самых интересных бесплатных онлайн курсов по программированию, приступить к которым можно будет уже этой весной!
Читать дальше →
Всего голосов 25: ↑12 и ↓13-1
Комментарии8

Время учиться: дайджест бесплатных образовательных материалов от Mail.Ru Group

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

Кадр из к/ф «Операция Ы и другие приключения Шурика»

Как говорят, «кризис — пора возможностей». И поэтому сейчас самое время начать вкладывать в саморазвитие, осваивать новую профессию или повышать свою квалификацию. Займитесь изучением языков программирования, обретением навыков разработки, тестирования и вообще всячески прокачивайте свой IT-скилл. Ведь чем больше вы знаете, тем прочнее будете стоять на ногах. А чтобы вам было легче сориентироваться и выбрать направление, мы сделали подборку наших бесплатных образовательных материалов, курсов и инициатив за 2015–2016 годы.
Читать дальше →
Всего голосов 48: ↑43 и ↓5+38
Комментарии29

Логическая витрина для доступа к большим данным

Время на прочтение6 мин
Количество просмотров22K
Технологии Big Data создавались в качестве ответа на вопрос «как обработать много данных». А что делать, если объем информации не является единственной проблемой? В промышленности и прочих серьезных применениях часто приходится иметь дело с большими данными сложной и переменной структуры, разрозненными массивами информации. Встречаются задачи, способ решения которых наперед не известен, и аналитику необходимы средства исследования исходных данных или результатов вычислений на их основе без привлечения программиста. Нужны инструменты, сочетающие функциональную мощь систем BI (а лучше – превосходящие ее) со способностью к обработке огромных объемов информации.

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

Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии0

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

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

Данная публикация является переводом первой части статьи Characterization and Optimization Methodology Applied to Stencil Computations инженеров компании Intel. Эта часть посвящена анализу производительности и построению roofline модели на примере довольно распространенного вычислительного ядра, которая позволяет оценить перспективы оптимизации приложения на данной платформе.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

CPIO под микроскопом

Время на прочтение4 мин
Количество просмотров15K
cpioCPIO — это достаточно старый (1990 год), но в то же время очень удобный вариант архива. Он достаточно прост, и, возможно поэтому, получил широкое распространение. Например данный формат используют RPM, initramfs ядра Linux, а также установщик архивов «pax» от Apple.

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

Давайте на примерах рассмотрим формат этого архива.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии9

«Идеальный» кластер. Часть 3.1 Внедрение MySQL Multi-Master кластера

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

В продолжение цикла статей об «Идеальном» кластере хочу поделиться моим опытом развертывания и настройки Multi-Master кластеров MySQL.




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

Отчёт и задания со всероссийской олимпиады по администрированию Linux-систем

Время на прочтение4 мин
Количество просмотров37K
image
Участники

19 ноября прошел финальный тур олимпиады по администрированию Linux среди студентов и молодых специалистов. Я уже несколько лет занимаюсь проведением таких Олимпиад: первые 4 олимпиады были просто по администрированию смешанных систем, а вот последние 2 года мы сосредоточились на Linux.

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

Ниже будут задания с ответами, описание практического задания и детали, но пока встречайте победителей:

image
Владимир, Анна и Вячеслав
  • I место — Вячеслав Карпухин из Санкт-Петербурга (в прошлом году он занял III место).
  • II место — Анна Мартынова из Москвы.
  • III место — Владимир Довгелевич из Краснодара.
Читать дальше →
Всего голосов 57: ↑48 и ↓9+39
Комментарии26

Сертификация RHCSA: опыт подготовки и сдачи

Время на прочтение5 мин
Количество просмотров82K
Недавно я прошел курс RedHat Rapid Track Course with Exam (RH200) и успешно сдал сертификацию RedHat Certified System Administrator (RHCSA). Это начальная сертификация в линейке сертификаций RedHat, и я решил, что рассказ о подготовке и сдаче этого экзамена будет полезен Хабрасообществу (подробных рассказов об этом на Хабре я не нашел). Сразу оговорюсь, что перед началом экзамена подписываешь документ, который запрещает разглашать информацию о том, что было на экзамене, однако не запрещено рассказывать, что было на официальном курсе подготовки к этому экзамену, что я и сделаю.

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

Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии15

Лучший способ изучить Rails

Время на прочтение5 мин
Количество просмотров200K
Доброго времени суток!

Предисловие


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

Введение


У меня за спиной огромный опыт работы с PHP, но сейчас я работаю Rails разработчиком. Огромную сложность для большинства людей, которые пытаются освоить что-то новое — это сам процесс обучения. Когда вы владеете каким-либо языком или фреймворком и знаете его вдоль и поперёк, переход на что-то новое не представляется необходимым.

Однако, изучение Ruby on Rails является достаточно простым занятием. Это невероятно мощный фреймворк, который имеет огромное сообщество, продвигающее его вперёд. Итак, у нас возникает вопрос: какой способ изучить Rails является лучшим? Вот он — план занятий.
Читать дальше →
Всего голосов 83: ↑69 и ↓14+55
Комментарии118

Собираем RPM-пакет для CentOS 6.4 x64

Время на прочтение3 мин
Количество просмотров37K
Всех категорически приветствую! :)

Хочу поделиться опытом сборки RPM-пакетов в CentOS 6.4 x64. Мне эта система нравится, всё просто, информации много. Да и на большинстве наших сервисов (небольшая хостинговая компания) установлена именно она.

На рабочем серваке не делайте сборки пакетов, зачем вам лишние пакеты? Я создал виртуалку, там и делаю.

Будем мы сегодня собирать PHP-5.5.4 которая вышла буквально день назад. Почему PHP? Потому что с его сборкой я намучился больше всего: то не было нормального spec-файла, то ошибки в нём были (когда сам что-то дополнял/исправлял). Короче, горя я хлебал с ним больше недели. И в муках было рождено решение как же всё таки правильно собирать пакет для PHP.

Ну, что ж, уважаемые, к делу!
Читать дальше →
Всего голосов 11: ↑6 и ↓5+1
Комментарии5
1
23 ...

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность