Как стать автором
Обновить
3
0
Корсаков Леонид @komandakycto

web-разработчик

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

Частицы РМ2.5: что это, откуда и почему об этом все говорят

Время на прочтение12 мин
Количество просмотров391K
Приветствуем всех в блоге компании Тион! Мы продолжаем рассказывать об «угрозах с воздуха». На этот раз речь пойдет о мелкодисперсных частицах РМ2.5. Сегодня о них говорят все: экологи, врачи, СМИ. Почему бы не поговорить и нам.



В своей самой первой статье на Geektimes мы писали про НЕРА фильтр, который очищает воздух от этих РМ2.5. А теперь, наконец-то, расскажем, что это за частицы, откуда они берутся и почему они вредят не только дыхательной, но и кровеносной системе. Готовы к долгому чтению?
Поехали!
Всего голосов 22: ↑20 и ↓2+18
Комментарии67

Хабрарейтинг 2019: статистика и рейтинг лучших статей за 2019 год

Время на прочтение8 мин
Количество просмотров10K
Привет, Хабр.

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



Парсинг и обработка данных были за этот год улучшены (кстати, изображение на КДПВ сгенерировано на базе заголовков статей), так что надеюсь, результаты будут более интересными. Также я добавил две новые категории в рейтинге — теперь отдельно будут рассматриваться хабы «ИТ-эмиграция» и «Здоровье», думаю, для многих и то и то может быть актуально.

Продолжение и результаты под катом.
Читать дальше →
Всего голосов 31: ↑26 и ↓5+33
Комментарии8

OWASP Moscow Meetup #9: записи выступлений

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

6 декабря 2019 года в московском офисе BI.ZONE прошел очередной OWASP Meetup — встреча Московского отделения сообщества. В под катом представлены выступления и презентации докладчиков.
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Пособие по Ansible

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

управление конфигурацией оркестра


Это практическое пособие познакомит вас c Ansible. Вам понадобится виртуальная или реальная машина, которая будет выступать в роли узла для Ansible. Окружение для Vagrant идет в комплекте с этим пособием.


Ansible — это программное решение для удаленного управления конфигурациями. Оно позволяет настраивать удаленные машины. Главное его отличие от других подобных систем в том, что Ansible использует существующую инфраструктуру SSH, в то время как другие (chef, puppet, и пр.) требуют установки специального PKI-окружения.


Пособие покрывает такие темы:


  1. Установка Ansible и Vagrant
  2. Файл инвенторизации
  3. Модули shell, copy, сбор фактов, переменные
  4. Запуск на группу хостов
  5. Плейбуки
  6. Пример: поднимаем кластер, устанавливаем и настраиваем Apache и балансировщик нагрузок HAproxy
  7. Обработка ошибок, откат
  8. Шаблоны конфигурации
  9. Роли

Ansible использует так называемый push mode: конфигурация «проталкивается» (push) с главной машины. Другие CM-системы обычно поступают наоборот – узлы «тянут» (pull) конфигурацию с главной машины.


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

Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии15

Открытый список PHP-событий, спикеров и организаторов на GitHub

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


Думаем, вы заметили, что Skyeng активно участвует в жизни PHP-сообщества России. Но даже с нашими возможностями и ресурсами организовать или принять участие в мероприятии не в Москве или Питере бывает затруднительно. Еще сложнее приходится тем, кому есть чем поделиться с сообществом, но он просто не знает о существовании PHP-тусовки в своем городе или регионе.

Так что мы решили сделать полезную вещь: календарь мероприятий, связанных с PHP, а к нему приложить перечень площадок, заинтересованных компаний и спикеров в виде открытого репозитория на GitHub. Зачем нам это? Мы твердо знаем, что IT-жизнь есть и за пределами МКАД и КАД — в регионах — так что решили поделиться этой информацией со всеми желающими!
Читать дальше →
Всего голосов 43: ↑37 и ↓6+31
Комментарии19

Алгоритмы и структуры данных поиска. Лекции и курсы от Яндекса

Время на прочтение4 мин
Количество просмотров155K
Сегодня мы завершаем новогоднюю серию постов, посвященных лекциям Школы анализа данных. Последний по порядку, но никак не по важности курс — «Алгоритмы и структуры данных поиска».

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

Мы учли то, о чём нас просили в комментариях к прошлым курсам — теперь при желании можно не только смотреть/скачивать лекции по отдельности, но и загрузить всё разом в виде открытой папки на Яндекс.Диске. Кстати — в предыдущих постах тоже появились такие же апдейты (вот ссылки для удобства: «машинное обучение», «дискретный анализ и теория вероятностей», «параллельные и распределённые вычисления»).



Лекции читает Максим Александрович Бабенко, заместитель директора отделения computer science, ассистент кафедры математической логики и теории алгоритмов механико-математического факультета МГУ им. М. В. Ломоносова, кандидат физико-математических наук.
Содержание курса, тезисы лекций и ссылки на видео
Всего голосов 115: ↑108 и ↓7+101
Комментарии19

Фильтр Блума

Время на прочтение3 мин
Количество просмотров62K
И снова здравствуйте! Сегодня я поведаю о фильтре Блума — структуре данных гениальной в своей простоте. По сути, этот фильтр реализует вероятностное множество всего с двумя операциями: добавление элемента к множеству и проверка принадлежности элемента множеству. Множество вероятностное потому, что последняя операция на вопрос «принадлежит ли этот элемент множеству?» даёт ответ не в форме «да/нет», а в форме «возможно/нет».

Как фильтр это делает?
Всего голосов 88: ↑85 и ↓3+82
Комментарии36

LogLog — находим число уникальных элементов

Время на прочтение5 мин
Количество просмотров30K
Здравствуй, Хабр! Мы с тобой уже побаловались фильтрами Блума и MinHash. Сегодня разговор пойдёт о ещё одном вероятностном-рандомизированном алгоритме, который позволяет с минимальными затратами памяти определить примерное число уникальных элементов в больших объёмах данных.

Для начала, поставим себе задачу: предположим, что у нас имеется большой объём текстовых данных — скажем, плоды литературного творчества небезызвестного Шекспира, и нам необходимо подсчитать количество различных слов встречающихся в этом объёме. Типичное решение — счётчик с урезанной хеш-таблицей, где ключами будут слова без ассоциированных с ними значений.

Способ всем хорош, но требует относительно большой объём памяти для своей работы, ну а мы с вами, как известно, неугомонные гении эффективности. Зачем много, если можно мало — примерный размер словарного запаса упомянутого выше Шекспира, можно вычислить используя всего 128 байт памяти.

Кажется невозможным?
Всего голосов 81: ↑80 и ↓1+79
Комментарии30

Как Badoo добился возможности отдавать 200k фото в секунду

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


Современный веб практически немыслим без медиаконтента: смартфоны есть практически у каждой нашей бабушки, все сидят в соцсетях, и простои в обслуживании дорого обходятся компаниям. Вашему вниманию расшифровка рассказа компании Badoo о том, как она организовала отдачу фотографий с помощью аппаратного решения, с какими проблемами производительности столкнулась в процессе, чем они были вызваны, ну и как эти проблемы были решены с помощью софтового решения на основе Nginx, обеспечив при этом отказоустойчивость на всех уровнях (видео). Благодарим авторов рассказа Олега Sannis Ефимова и Александра Дымова, которые поделились своим опытом на конференции Uptime day 4.

— Начнем с небольшого введения о том, как мы храним и кэшируем фотографии. У нас есть слой, на котором мы их храним, и слой, где мы фотографии кэшируем. При этом, если мы хотим добиваться большого хитрейта и снижать нагрузку на стораджи, нам важно, чтобы каждая фотография отдельного пользователя лежала на одном кэширующем сервере. Иначе нам пришлось бы ставить во столько раз больше дисков, во сколько у нас больше серверов. Хитрейт у нас в районе 99%, то есть мы в 100 раз снижаем нагрузку на наши storage, и для того, чтобы это сделать, еще 10 лет назад, когда все это строилось, у нас было 50 серверов. Соответственно, для того, чтобы эти фотографии отдавать, нам нужно было по сути 50 внешних доменов, которые эти серверы обслуживают.

Естественно, сразу встал вопрос: а если у нас один сервер упадет, будет недоступен, какую часть трафика мы теряем? Мы посмотрели, что есть на рынке, и решили купить железку, чтобы она решила все наши проблемы. Выбор пал на решение компании F5-network (которая, кстати, не так давно купила NGINX, Inc): BIG-IP Local Traffic Manager.

Читать дальше →
Всего голосов 70: ↑67 и ↓3+64
Комментарии17

Зачем нужны дженерики в Go?

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

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

Go вышел 10 ноября 2009-го. Меньше чем через сутки появился первый комментарий про дженерики. В нём также упомянуты исключения, которые мы добавили в язык в виде паники и восстановления (panic and recover) в начале 2010-го.

За три года наблюдений отсутствие дженериков всегда входило список трёх главных проблем, которые необходимо исправить в языке.
Читать дальше →
Всего голосов 78: ↑71 и ↓7+64
Комментарии250

Мутационное тестирование в PHP: качественное измерение для code coverage

Время на прочтение10 мин
Количество просмотров12K
Как оценивать качество тестов? Многие полагаются на самый популярный показатель, известный всем, — code coverage. Но это количественная, а не качественная метрика. Она показывает, какой объём вашего кода покрыт тестами, но не то, как хорошо эти тесты написаны. 

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

На Badoo PHP Meetup в марте я рассказывал, как организовать мутационное тестирование для PHP-кода и с какими проблемами можно столкнуться. Видео доступно по ссылке, а за текстовой версией добро пожаловать под кат.


Читать дальше →
Всего голосов 78: ↑76 и ↓2+74
Комментарии27

Docker + Laravel + RoadRunner = ❤

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

picture


Данный пост написан по заявкам трудящихся, которые с завидной периодичностью спрашивают о том "Как запустить Illuminate / Symfony / MyOwnPsr7 приложение в докере". Давать ссылку на ранее написанный пост уже не хочется, так как взгляды относительно того, как следует решать поставленную задачу, довольно сильно изменились.


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


В качестве приложения так же буду использовать Laravel, так как он мне наиболее знаком и довольно широко распространен. Адаптировать под другие PSR-7-based фреймворки/компоненты возможно, но этот рассказ не про это.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии10

JetBrains Open Day в Петербурге: видео

Время на прочтение2 мин
Количество просмотров4.6K
Недавно мы провели в нашем новом питерском офисе Space первое большое мероприятие — JetBrains Open Day.

Наталья Числер, VP по управлению персоналом:

— Есть такая традиция в нашей компании — приглашать гостей в новые офисы. Мы делали это в Петербурге в 2013 году, когда переехали в Universe, в Новосибирске, когда там стартовал офис, в Москве и вот снова в Петербурге. Это очень хороший формат для знакомства с интересными людьми, обмена мнениями и эмоциями. Получилось сделать праздник, причем и для самих себя. Идея была провести содержательное мероприятие с докладами, разговорами о продуктах и наших планах. Дать коллегам извне возможность увидеть JetBrains изнутри, понять, какие мы, чем живем, кого мы ищем и нанимаем. Нам тоже было очень интересно общаться с гостями.


Как обещали, делимся видеозаписями докладов.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии0

Эволюция структур данных в Яндекс.Метрике

Время на прочтение17 мин
Количество просмотров45K
Яндекс.Метрика сегодня это не только система веб-аналитики, но и AppMetrica — система аналитики для приложений. На входе в Метрику мы имеем поток данных — событий, происходящих на сайтах или в приложениях. Наша задача — обработать эти данные и представить их в подходящем для анализа виде.



Но обработка данных — это не проблема. Проблема в том, как и в каком виде сохранять результаты обработки, чтобы с ними можно было удобно работать. В процессе разработки нам приходилось несколько раз полностью менять подход к организации хранения данных. Мы начинали с таблиц MyISAM, использовали LSM-деревья и в конце концов пришли к column-oriented базе данных. В этой статье я хочу рассказать, что нас вынуждало это делать.

Яндекс.Метрика работает с 2008 года — более семи лет. Каждый раз изменение подхода к хранению данных было обусловлено тем, что то или иное решение работало слишком плохо — с недостаточным запасом по производительности, недостаточно надёжно и с большим количеством проблем при эксплуатации, использовало слишком много вычислительных ресурсов, или же просто не позволяло нам реализовать то, что мы хотим.
Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии22

Шпаргалка по структурам данных в Go

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

Некоторые компании проводят собеседования с online написанием кода. Требуется решить олимпиадную задачку на скорость. В таких условиях нет времени посмотреть подробности реализации структур данных — нужно сразу реализовать идею. Но курсы по алгоритмам и структурам данных дают примеры или на псевдокоде, или на С++. Ещё эталонные решения задач написаны зачастую на С++. Готовясь к собеседованию, составил шпаргалку библиотек — аналогов контейнеров STL, что бы не тратить драгоценное время на поиск.
Читать дальше →
Всего голосов 52: ↑47 и ↓5+42
Комментарии11

Осторожный переезд в Нидерланды с женой и ипотекой. Часть 1: поиск работы

Время на прочтение12 мин
Количество просмотров108K
На Хабре да и вообще в русскоязычном Интернете есть немало инструкций о том, как перебраться в Нидерланды. Я и сам немало полезного почерпнул из одной статьи на Хабре (ныне, видимо, скрытой в черновике уже нет, вот она). Но я все-таки расскажу о своем опыте поиска работы и переезда в эту европейскую страну. Помнится, и когда я только собирался рассылать резюме, и когда уже проходил собеседования, мне было очень интересно почитать об аналогичном опыте других коллег по цеху.

image

В общем, если вам интересен рассказ о том, как C++ программист из Подмосковья искал работу в Европе, желательно в Великобритании, а нашел-таки в Нидерландах, переехал туда сам и привез жену, все это с непогашенной ипотекой в России и с небольшими приключениями — добро пожаловать под кат.
Читать дальше →
Всего голосов 216: ↑202 и ↓14+188
Комментарии306

Как мы запустили 2ГИС под CarPlay и до сих пор расхлёбываем

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


Привет! Меня зовут Ваня, я пишу мобильное приложение 2ГИС под iOS. Сегодня будет история о том, как наш навигатор появился в CarPlay. Расскажу, как с такой себе документацией и недоделанными инструментами мы создали рабочий продукт и разместили его в AppStore.

Поехали!
Всего голосов 107: ↑106 и ↓1+105
Комментарии88

Что там такого интересного в Транссибирской магистрали?

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


Есть у нас в России одна достопримечательность, которая дичайше привлекает иностранцев. Но при этом почти каждый из нас сочтёт её пыткой. Это Транссибирская магистраль: шесть дней на поезде от Москвы до Владивостока. Первый день вы будете спать, на второй ещё как-то выдержите, а вот дальше сойдёте с ума. Или же воспользуетесь дешёвым и практичным методом телепортации с помощью водки.

Каждый раз, когда мы выезжаем за границу, нас спрашивают, что надо знать про Транссиб. А мы не можем толком ответить. В общем, это пост-ликбез про то, как не ударить в грязь лицом перед иностранцами, и про то, что нужно знать про эту поездку. И памятка для иностранцев сразу на английском.

Ну, с попыткой понять, зачем, вот зачем они ездят. И чему радуются. Наш респондент — проводник с многолетним стажем.
Читать дальше →
Всего голосов 118: ↑113 и ↓5+108
Комментарии140

5 продвинутых техник тестирования на Go

Время на прочтение7 мин
Количество просмотров14K
Всем салют! До старта курса «Разработчик Golang» остается меньше недели и мы продолжаем делиться полезным материалом по теме. Поехали!



Go имеет хорошую и надежную встроенную библиотеку для тестирования. Если вы пишете на Go, то вы уже это знаете. В этой статье мы поговорим о нескольких стратегиях, которые могут улучшить ваши навыки тестирования с помощью Go. Из опыта написания нашей внушительной кодовой базы на Go мы узнали, что эти стратегии действительно работают и тем самым помогают экономить время и усилия на работу с кодом.
Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии1

Как сделать из сайта приложение и выложить его в Google Play за несколько часов. Часть 1/2: Progressive Web App

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


Наверное, все близкие к веб-разработке люди уже наслышаны о Progressive Web App. Ещё бы! Эта технология практически уравняла веб и мобильную разработку с точки зрения распространения продуктов и вовлечённости пользователей.

Да, современный фронтенд, написанный, например, на React, работает как приложение. Но вот только скачивается это приложение в браузер и запускается из него. В этом и заключается огромный гандикап, который всегда имела мобильная разработка. Давайте подумаем, чем с точки зрения обычного пользователя, «приложение» отличается от «сайта». Сразу в голову приходит, что приложение в телефоне, а сайт на компьютере. Но ведь есть мобильный браузер, так что сайт и в телефоне тоже. Тогда остаётся 3 существенных отличия:
Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии31
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Казань, Татарстан, Россия
Дата рождения
Зарегистрирован
Активность