Как стать автором
Обновить
26
0
Камашев Максим @ukko

Программист

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

Потрошим golang: как устроена память

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


Привет, меня зовут Стас Иванкевич, и я работаю в VK Cloud над разработкой облачных сервисов в команде Data Masters. Сервисы, запрошенные клиентами, так или иначе должны развернуться в том виде, в котором клиенты их запросили, в адекватные сроки и без ошибок. Существует множество механизмов, позволяющих этого достичь, и еще больше существует ошибок и проблем, которые мешают в достижении этих целей.

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

Единственным надежным решением таких проблем является глубокое погружение в теорию и исследования инструмента, которым решаются поставленные проблемы. В нашем случае таким инструментом является язык Go. И как же замечательно, что исследование его внутренностей — совсем легкое дело. В том числе когда дело касается использования памяти.
Читать дальше →
Всего голосов 59: ↑57 и ↓2+55
Комментарии17

Как запускать SQL в Go с максимальным комфортом

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

Писать SQL руками или использовать ORM — тема очень спорная, и я опишу, как использовать первый подход максимально эффективно. А какой из подходов выбрать, думаю, каждый сам для себя уже решил.

Читать далее
Всего голосов 47: ↑45 и ↓2+43
Комментарии9

Manticore — альтернатива Эластику на C++ с 21-летней историей

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

5 лет назад мы форкнули Manticore из open source версии некогда популярного open source поискового движка Sphinx 2.3.2. У нас было два пакетика травы, семьдесят пять ампул мескалина, три C++ разработчика, один саппорт-инженер, опытный пользователь, менеджер, мать пятерых детей, помогающая нам на полставки и гора багов, крэшей и технических долгов. И вот, по прошествии 5 лет и сотен новых пользователей мы готовы сказать, что Manticore можно использовать как альтернативу Elasticsearch и для полнотекстового поиска и для аналитики данных.

В этой статье хочется: вспомнить как всё начиналось и что было до SOLR и Elasticsearch, максимально объективно обрисовать текущую ситуацию, попытаться понять куда нам двигаться дальше.

Читать далее
Всего голосов 117: ↑117 и ↓0+117
Комментарии83

Taneleer на смену Thanos – как мы поменяли подход к обнаружению скомпрометированных паролей

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров5.2K

Привет, Хабр! Мы – команда информационной безопасности Почты Mail.ru. Уже много лет мы постоянно совершенствуем текущие и внедряем новые механизмы безопасности и технологии беспарольного входа, которые направлены на защиту аккаунтов пользователей. Но пока пароль остается основным методом аутентификации для большинства пользователей и является самым ненадежным методом аутентификации, потому что природа не одарила человеческий мозг хорошим генератором псевдослучайных чисел и идеальной памятью. Согласно многочисленным исследованиям, пользователи предпочитают использовать простые, предсказуемые, не уникальные пароли.

Читать далее
Всего голосов 45: ↑44 и ↓1+43
Комментарии0

Государство уничтожает классифайды

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

"Зарегулировать -> Обесценить -> Передать нужным людям". Такую такику государство выбрало в отношении крупных классифайдов. Самый крупный, конечно, Авито, но достанется и другим - ЦИАНУ и Юле например.

Сперва Горелкин придумал, что надо изгнать всех иностранцев из капитала компаний (пострадает, например, ЦИАН). И забрать себе их персональные данные - для этого сервисы принудят поставить государственный счетчик, собирающий данные пользователей. Напомню, закон о счётчике (я писал в своём канале подробно о нём) прямо позволяет "создавать государственные сервисы" на базе таких данных. Закон приняли в первом чтении 5 июля.

Но этого показалось мало - в пятницу экстренно внесли и уже приняли в первом чтении совсем радикальный закон. Он разрешит публиковать цифровые объявления ТОЛЬКО через нового "государственного оператора объявлений". Это ставит крест на бизнесе Авито, Юлы и других. Причина - защитить безопасность страны. Она страдает, потому что можно разместить вредную информацию. Мотивация у закона в пояснительной записке именно такая.

Автора закона, единоросса Кирьянова, четыре раза спросили о примерах таких вредных объявлений. Он не назвал ни одного, но сказал, что "надо действовать превентивно". Кроме того, зацените комментарий автора закона - "неизвестно, где обрабатываются данные россиян, но уверен, что они (данные) пересекают границу. Неизвестно, «что из анализа больших данных будет … достоянием недружественных государств».

Это притом, что все данные Авито хранятся в России, а несколько принятых его же партией законов и так УЖЕ запрещают передавать передавать данные за границу. А закон Горелкина и так принуждал классифайды отвечать за контент. Очевидно, что автор просто не в курсе, что он собрался регулировать.

Читать далее
Всего голосов 430: ↑411 и ↓19+392
Комментарии346

Много книг, хороших и разных

Время на прочтение20 мин
Количество просмотров96K
Мой список книг, которые мне хочется прочесть, изрядно вырос, спасибо топику “запасаемся на зиму”. Под катом вы обнаружите список книг, составленный по комментариям в том топике.
Читать дальше →
Всего голосов 139: ↑124 и ↓15+109
Комментарии89

Xiaomi Gateway MIEU01 как универсальный контроллер умного дома

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

Home Assistant - прекрасное программное решение для умного дома. У неё современный интерфейс, множество плагинов и дополнений почти на все случаи жизни. В интернете можно найти множество компонентов для самых экзотических устройств. Но чтобы начать им пользоваться, надо как следует позаботиться об аппаратной платформе. Нужно либо купить одноплатный компьютер наподобие Raspberry PI, или же использовать десктопный компьютер, который должен работать в режиме 24/7.

Но что если я скажу, что даже простой ZigBee шлюз от Xiaomi с евро-вилкой, который вставляется в розетку, может работать как хост система для Home Assistant? Он может показывать значение датчиков в веб интерфейсе, управлять светом и розетками, контролировать ZigBee сеть, проговаривать текст голосом через встроенный динамик, делать полноценную автоматизацию и всё это на скромном устройстве, которое нужно лишь воткнуть в розетку.

Читать далее
Всего голосов 31: ↑31 и ↓0+31
Комментарии47

select / poll / epoll: практическая разница

Время на прочтение10 мин
Количество просмотров69K
При проектировании высокопроизводительных сетевых приложения с неблокирующими сокетами важно решить, какой именно метод мониторинга сетевых событий мы будем использовать. Их есть несколько и каждый хорош и плох по-своему. Выбор правильного метода может быть критически важной вещью для архитектуры вашего приложения.

В этой статье мы рассмотрим:

  • select()
  • poll()
  • epoll()
  • libevent
Читать дальше →
Всего голосов 60: ↑55 и ↓5+50
Комментарии66

[Обновлено в 10:52, 14.12.19] В офисе Nginx прошел обыск. Копейко: «Nginx был разработан Сысоевым самостоятельно»

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

Другие материалы по теме:


Eng version
Что значит наезд на Nginx и как это отразится на индустрииdeniskin
Open source — наше всё. Позиция Яндекса по ситуации с Nginxbobuk
Официальная позиция Программных комитетов Highload++ и других IT-конференций на претензии к Игорю Сысоевуolegbunin


По информации от одного из сотрудников, в московском офисе опенсорс-разработчиков Nginx проводят обыски в рамках уголовного дела, истцом по которому выступает Рамблер (ниже официальный ответ пресс-службы компании по этому вопросу и подтверждение наличия претензий к Nginx). В качестве доказательств приводится фото постановления о производстве обыска в рамках уголовного дела, возбужденного 4 декабря 2019 года по статье 146 УК РФ «Нарушение авторских и смежных прав».

Фото постановления о производстве обыска


Как предполагается, истцом выступает компания Рамблер, а ответчиком пока «неустановленная группа лиц», а в перспективе — основатель Nginx Игорь Сысоев.

Суть претензии: Игорь начал работу над Nginx, будучи сотрудником Рамблера, а только после того, как инструмент стал популярен, основал отдельную компанию и привлек инвестиции.

Почему Рамблер вспомнил о своей «собственности» только спустя 15 лет — неясно.
Всего голосов 797: ↑794 и ↓3+791
Комментарии1457

Single Responsibility Principle. Не такой простой, как кажется

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

image Single responsibility principle, он же принцип единой ответственности,
он же принцип единой изменчивости — крайне скользкий для понимания парень и столь нервозный вопрос на собеседовании программиста.


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


В лесу нас разделили на группы по 8-9 человек в каждой и устроили соревнование — какая группа быстрее выпьет бутылку водки при условии, что первый человек из группы наливает водку в стакан, второй выпивает, а третий закусывает. Выполнивший свою операцию юнит встает в конец очереди группы.


Случай, когда размер очереди был кратен трем, и являлся хорошей реализацией SRP.

Но почему соображать нужно именно на троих?
Всего голосов 34: ↑31 и ↓3+28
Комментарии16

Книга «Распределенные системы. Паттерны проектирования»

Время на прочтение10 мин
Количество просмотров14K
image Современный мир попросту немыслим без использования распределенных систем. Даже у простейшего мобильного приложения есть API, через который оно подключается к облачному хранилищу. Однако проектирование распределенных систем до сих пор остается искусством, а не точной наукой. Необходимость подвести под нее серьезный базис назрела давно, и, если вы хотите обрести уверенность в создании, поддержке и эксплуатации распределенных систем — начните с этой книги!

Брендан Бёрнс, авторитетнейший специалист по облачным технологиям и Kubernetes, излагает в этой небольшой работе абсолютный минимум, необходимый для правильного проектирования распределенных систем. Эта книга описывает неустаревающие паттерны проектирования распределенных систем. Она поможет вам не только создавать такие системы с нуля, но и эффективно переоборудовать уже имеющиеся.

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

PostgreSQL 9.5: что нового? Часть 1. INSERT… ON CONFLICT DO NOTHING/UPDATE и ROW LEVEL SECURITY

Время на прочтение9 мин
Количество просмотров106K
Часть 2. TABLESAMPLE
Часть 3. GROUPING SETS, CUBE, ROLLUP
В 4 квартале 2015 года ожидается релиз PostgreSQL 9.5. Как всегда, новая версия кроме новых багов приносит новые фичи и «плюшки». В данной статье будут рассмотрены две из них, а именно INSERT… ON CONFLICT DO NOTHING/UPDATE и Row-level security. Уже вышла вторая альфа-версия, поэтому самые нетерпеливые могут её установить и попробовать новый функционал.
Скачать можно тут
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии16

Истории успеха Kubernetes в production. Часть 10: Reddit

Время на прочтение5 мин
Количество просмотров11K
На прошлой неделе было объявлено о том, что отныне все новые сервисы Reddit запускаются в production на инфраструктуре, основанной на Kubernetes-кластерах. Эта значимая веха на пути миграции на K8s одного из популярнейших онлайн-ресурсов, и вот как к ней пришли…

Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии4

Превращаем докладчиков в спикеров #2: разбор выступления Артема Данилова, Авито

Время на прочтение8 мин
Количество просмотров9.8K
Мы начинаем профессиональный «разбор полетов» выступлений с HighLoad++, который поможет многим будущим и нынешним спикерам поучиться на чужих примерах. В прошлой публикации я рассказывал о том, что именно я буду делать и зачем все это нужно. Завершать каждый материал будет небольшой рассказ о важности какого-то определенного параметра в выступлении.



Первым под прицел попал Артем Данилов из Авито и его доклад про хранилище данных. В конце же вас ждет экскурс про дикцию.
Итак, поехали
Всего голосов 44: ↑41 и ↓3+38
Комментарии20

Расставляем точки над микросервисами. Секция Avito на РИТ++ 2017 (Видео)

Время на прочтение4 мин
Количество просмотров25K
Вот и подоспели материалы с фестиваля РИТ++ 2017. Мы выступили там с докладами по темам machine learning, front-end и mobile разработки и провели отдельный тематический блок, посвященный микросервисам. Под катом – видеозаписи выступлений на этой секции наших докладчиков и коллег из других компаний. Обязательно загляните, чтобы узнать о подходах к работе с микросервисами и интересных приемах, которые реально использовать для решения ваших задач.


Всего голосов 43: ↑43 и ↓0+43
Комментарии3

Лекции Техносферы: Программирование на Go

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

image


Продолжаем публикацию наших образовательных материалов. Этот курс посвящен изучению основ языка Go. На примере простой текстовой игры будут рассмотрены все основные задачи, с которыми сталкивается разработчик современных веб-приложений в крупных проектах, с реализацией их на Go. Курс не ставит задачи научить программированию с нуля, для обучения будут необходимы базовые навыки программирования.


Список лекций:


Всего голосов 73: ↑68 и ↓5+63
Комментарии52

Отчет с Go meetup 14 апреля

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


Спустя полгода сообщество Go-разработчиков снова воссоединилось в нашем московском офисе 14 апреля. И теперь у нас есть возможность ознакомиться с тем, как проходила эта встреча. Пять докладов и прочие подробности ищите под катом.
Всего голосов 40: ↑34 и ↓6+28
Комментарии3

Помнить все: Evernote и Anki

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


Решил написать о системе, которую я использую, чтобы помнить практически все, что хочется, при минимальных затратах времени и других ресурсов. Под словом “помнить” имеется в виду любой способ найти нужную информацию — в личной памяти или в памяти компьютера, в зависимости от ситуации и от самой информации; основные требования при этом — экономия времени и контроль того, что мы запоминаем.

Я хочу достичь следующих целей при использовании системы:

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

Ниже я напишу о методах и правилах, которые составляют данную систему. Статья будет состоять из нескольких разделов:

  • Мой опыт по описанному вопросу
  • Проблемы запоминания
  • Теоретическое разрешение проблем
  • Практическое разрешение проблем с Evernote
  • Практическое разрешение проблем с Anki
Читать дальше →
Всего голосов 83: ↑78 и ↓5+73
Комментарии65

Жизнь проекта на production: советы по эксплуатации

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

Немаловажный пункт, который очень часто упускают из вида разработчики — это эксплуатация проекта. Как выбрать дата-центр? Как прогнозировать угрозы? Что может произойти на уровне фронтенда? Как балансировать фронтенд? Как мониторить? Как настраивать логи? Какие нужны метрики?


И ведь это только фронтенд, а есть ещё бекенд и база данных. Везде разные законы и логика. Подробнее об эксплуатации highload-проектов в докладе Николая Сивко (okmeter.io) с конференции HighLoad++ Junior.


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

Инкремент в PHP

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


Возьмите переменную и увеличьте её на 1. Звучит просто, верно? Ну… С точки зрения PHP-разработчика, наверное, да. Но так ли это на самом деле? Здесь могут возникнуть некоторые трудности. Существует несколько способов инкрементировать значения, они могут выглядеть равноценными, но под капотом PHP работают по-разному, что может привести к, так сказать, интересным результатам.
Читать дальше →
Всего голосов 53: ↑45 и ↓8+37
Комментарии27
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность