Как стать автором
Обновить
-3
0.5

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

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

Замена игрока, или Почему мы решили сменить Bug Bounty платформу?

Время на прочтение4 мин
Количество просмотров1.9K
Скоро мы отметим 2-летний юбилей нашего участия в Bug Bounty программе.

В прошлой статье мы рассказали, как всё начиналось: как запустить Bug Bounty программу, если нет опыта, на что стоит обратить внимание, как корректно сформировать скоуп и оценить критичность найденных багов в интересах компании.



Тогда, год назад, мы работали в рамках приватной Bug Bounty программы с проверенной платформой. За год нашего сотрудничества мы получили 76 репортов. Средний размер вознаграждения составлял примерно 423$.

Это хороший результат, которым мы очень довольны. Но, наверное, как вы догадались, что-то пошло не так…
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии2

Работаем с индексами при высокой нагрузке в rails с psql: как добавить/удалить индекс и при этом не умереть

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

Всё, что кладёт прод, делает тебя умнее. © программист, положивший прод

Привет! Я — Женя, рубист из Каруны. В этой статье расскажу, как мы получили, на первый взгляд, тривиальную задачу по работе с индексами, набили кучу шишек и пришли к не очень тривиальному и эффективному решению.

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

Репликация ClickHouse без костылей: ожидание и реальность

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


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

На момент написания статьи хранилищем и результатами его работы пользуются 16+ команд (11+ аналитиков и 2 data scientist, 70+ разработчиков, руководители и менеджерский состав).

Ежесуточно в хранилище поступает ~1,2 ТБ данных, пользователи и автоматика для построения отчётности генерируют ~35 000 запросов в сутки на выборки различной сложности. Подробнее про наше хранилище и то, какие задачи для бизнеса им решаем, можно почитать по ссылке.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+33
Комментарии13

Ищем логику в «американских горках» графика заражений Covid

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

Рисунок 1

Пики и падения, сжатия и растяжения, волна за волной всплесков и снижений: в течение полутора лет я ежедневно наблюдал за движениями этой кривой. График фиксирует количество новых обнаруженных случаев Covid-19 в США за каждый день с 21 января 2020 по 20 июля 2021 года. Это 547 дней, или ровно 18 месяцев. Бледные тонкие вертикальные полосы на фоне обозначают сырые ежедневные данные; ярко-синей линией обозначены суммарные средние значения за семь дней. (Другими словами, количество случаев за каждый день усредняется с количеством за шесть предыдущих дней.)

Я затрудняюсь объяснить крупномасштабные колебания этого графика. Если бы несколько лет назад меня спросили, как может выглядеть крупная эпидемия, то я бы пробормотал что-нибудь об экспоненциальном росте и угасании, и мог нарисовать примерно такую кривую:


Рисунок 2

Моя воображаемая эпидемия была намного проще реальной! Количество ежедневных заражений увеличивается, а затем снижается. Оно не колеблется, как нервный график фондовой биржи. У него нет сезонных всплесков и падений.

График, отслеживающий истинную частоту заболеваний, не меньше дюжины раз сменяет направление, а также имеет множество мелких изгибов. Большая гора посередине имеет холмы по обеим сторонам, а также альпийские долины между крутыми вершинами. Меня озадачивает вся эта структурная картина. Является ли она чистым шумом — результатом случайных флуктуаций, или же у неё есть какой-то движущий механизм, который мы должны узнать, какой-то переключатель, включающий и отключающий процесс заражения каждые несколько месяцев?
Читать дальше →
Всего голосов 15: ↑13 и ↓2+19
Комментарии13

Как я работал в Дубае

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


Предисловие


Здравствуйте, меня зовут Александр Зеленин, и я инженер-программист. В 2018 году я получил приглашение в Дубай в компанию Careem (поглощён Uber’ом за 3.1ккк$) архитектором/тимлидом в команду по финансовому взаимодействию с водителями.


В этой статье я постараюсь покрыть все ключевые темы проживания в ОАЭ: от вакансий и интервью до ипотек и бессрочного резидентства с конкретными цифрами на конец 2020 года и ссылками на релевантные сервисы. Секции не упорядочены и могут читаться в любом порядке.

Как там, в Дубае?
Всего голосов 78: ↑77 и ↓1+108
Комментарии152

[Личный опыт] Штутгарт: город, который мечтает о русских программистах. Porsche, жилье, налоги и немецкие гопники

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

Антон Костин, девелопер Ruby on Rails, переехал из Москвы, и уже почти три года живет в Штутгарте, городке с населением 630 тысяч жителей.


Он рассказал о зарплатах, особенностях юга Германии, общем уровне сервисов, знаменитой немецкой пунктуальности (которой нет), районах гопников, «холодной» цене квартир, «большой неделе» в домах, и приложении, с которым можно сэкономить 4000 евро.


Есть ли жизнь за пределами Мюнхена и Берлина? Как выглядит обычная Германия, и стоит ли там жить?




Читать дальше →
Всего голосов 43: ↑39 и ↓4+47
Комментарии374

Мои правила хорошей дизайн-системы. Компоненты и архитектура интерфейса в Figma

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


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

Фигма и другие современные инструменты позволяют задавать взаимосвязи между элементами, упрощая редактирование отдельных компонентов или целых экранов; группировать их в библиотеки компонентов и давать желаемые права доступа.

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

По методологии Атомарного дизайна, я начну с атомов и буду двигаться дальше к более сложным компонентам. Буду работать в Фигме и продемонстрирую, что у Скетча появился серьёзный конкурент.

Всего голосов 12: ↑7 и ↓5+2
Комментарии21

Автоматизируем локализацию макетов в Figma

Время на прочтение19 мин
Количество просмотров7.4K
В один прекрасный момент наши дизайнеры решили, что пора обновить обложки
нашего приложения в Apple Store и Google Play. На всех 17 языках.

Это история про то, как нырнуть в незнакомый язык программирования, незнакомую платформу и незнакомую задачу, собрать много всего интересного, помочь коллегам и оставить след в open source community.

мемасик

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

RabbitMQ. Часть 2. Разбираемся с Exchanges

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

Exchange — обменник или точка обмена. В него отправляются сообщения. Exchange распределяет сообщение в одну или несколько очередей. Он маршрутизирует сообщения в очередь на основе созданных связей (bindings) между ним и очередью.


Exchange не является Erlang-процессом. Из соображений масштабируемости exchange — это строка (ссылка на модуль с кодом, где лежит логика маршрутизации) во встроенной базе данных mnesia. 1 тысяч обменников будут потреблять всего 1МБ памяти.

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

А нужен ли Redis или хватит PostgreSQL

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

Есть проверенная архитектура, которую я видел много раз для поддержки ваших веб-сервисов и приложений:

  • PostgreSQL для хранения данных
  • Redis для координации очередей фоновых заданий (и некоторых ограниченных атомарных операций)

Redis — это фантастика, но что, если бы я сказал вам, что его наиболее распространенные варианты использования этого стека на самом деле могут быть достигнуты с использованием только PostgreSQL?

Сценарий 1: очередь заданий


Пожалуй, наиболее частое использование Redis, которое я видел, — это координация отправки заданий из вашего веб-сервиса в пул фоновых воркеров. Идея состоит в том, что вы хотите записать желание выполнить какое-то фоновое задание (возможно, с некоторыми входными данными) и гарантировать, что только один из многих ваших фоновых воркеров выполнит его. Redis помогает в этом, поскольку предоставляет богатый набор атомарных операций для своих структур данных.
Читать дальше →
Всего голосов 21: ↑19 и ↓2+23
Комментарии10

Лучшие одноплатники на базе чипа RP2040 в 2021 году. Часть 1

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

С момента выхода Raspberry Pi Pico мы опубликовали несколько статей о системах на базе чипа RP2040 — от обзора возможностей одноплатника самой компании до более продвинутых систем других производителей. Сейчас их выпущено уже столько, что публиковать обзор всех подобных плат просто нет смысла. Зато можно разместить подборку лучших систем.

Некоторые из них даже меньше по размеру, чем Pico, другие — имеют больше возможностей и функций. Например, парочка плат оснащена беспроводными модулями связи. В общем, выбрать есть из чего, так что давайте посмотрим на то, что предлагает рынок.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+37
Комментарии22

EntityFramework: (анти)паттерн Repository

Время на прочтение15 мин
Количество просмотров113K
Repository Pattern
Репозиторий является посредником между слоем доступа к данным и доменным слоем,
работая как in-memory коллекция доменных обектов. Клиенты создают декларативные
описания запросов и передают их в репозиторий для выполнения.
  — свободный перевод Мартина Фаулера

EntityFraemwork предоставляет нам готовую реализацию паттернов Repository: DbSet<T> и UnitOfWork: DbContext. Но мне часто приходится видеть, как коллеги используют в своих проектах собственную реализацию репозиториев поверх существующих в EntityFraemwork.


Чаще всего используется один из двух подходов:


  1. Generic Repository как попытка абстрагироваться от конкретного ORM.
  2. Repository как набор запросов к выбранной таблице БД (паттерн DAO).

И каждый из этих подходов содержит недостатки.

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

Here are the Most Popular Video Conference APIs To be Considered for your Mobile App

Время на прочтение8 мин
Количество просмотров21K
As the world rearranges into virtualized societal norms, the most convenient and simplified interaction for businesses or socially has come from video-based apps. Extensive use of these conferencing apps is trending Post COVID-19 pandemic.
Statista.com has tracked the high number of video conference app downloads from AppStore and GoogleStore for the following
:
Video conferencing App / Country Hangouts Meet Houseparty Ms Teams Zoom
USA 30 8 11 4
France 23 30 16 2
Germany 15 26 11 17
Spain 64 2360 15 27
Italy 140 423 30 55

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

На фондовом рынке США сформировался пузырь небывалых размеров

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

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

Читать далее
Всего голосов 195: ↑175 и ↓20+209
Комментарии775

Тариф «100к+», или как вельми зело огорчить спамера

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

Уже не впервые сталкиваюсь, что читатели Хабра не все поголовно умеют правильно бороться со спамом. И я не про SpamAssasin, «Ктозвонил» и прочие приложения для фильтрации информационного мусора, а про несложную, но весьма доставляющую всем сторонам процесса подачу жалобы в ФАС.

Давайте расскажу, как буквально за 15 минут не отрываясь от любимого компьютера подключить спамеру задораздирающий тариф линейки «Административный»: «Административный 100к», «Административный 150к» и вплоть до «Административный 500к» – как повезет.
Читать дальше →
Всего голосов 207: ↑203 и ↓4+264
Комментарии259

Лучшие практики при написании безопасного Dockerfile

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

В данной статье мы рассмотрим небезопасные варианты написания собственного Dockerfile, а также лучшие практики, включая работу с секретами и встраивание инструментов статического анализа. Тем не менее для написания безопасного Dockerfile наличия документа с лучшими практиками мало. В первую очередь требуется организовать культуру написания кода. К ней, например, относятся формализация и контроль процесса использования сторонних компонентов, организация собственных Software Bill-of-Materials (SBOM), выстраивание принципов при написании собственных базовых образов, согласованное использование безопасных функций, и так далее. В данном случае отправной точкой для организации процессов может служить модель оценки зрелости BSIMM. Однако в этой статьей пойдет речь именно о технических аспектах.

Читать далее
Всего голосов 64: ↑62 и ↓2+73
Комментарии20

Переезжаем на ClickHouse: 3 года спустя

Время на прочтение19 мин
Количество просмотров22K
Три года назад Виктор Тарнавский и Алексей Миловидов из Яндекса на сцене HighLoad++ рассказывали, какой ClickHouse хороший, и как он не тормозит. А на соседней сцене был Александр Зайцев с докладом о переезде на ClickHouse с другой аналитической СУБД и с выводом, что ClickHouse, конечно, хороший, но не очень удобный. Когда в 2016 году компания LifeStreet, в которой тогда работал Александр, переводила мультипетабайтовую аналитическую систему на ClickHouse, это была увлекательная «дорога из желтого кирпича», полная неведомых опасностей — ClickHouse тогда напоминал минное поле.

Три года спустя ClickHouse стал гораздо лучше — за это время Александр основал компанию Altinity, которая не только помогает переезжать на ClickHouse десяткам проектов, но и совершенствует сам продукт вместе с коллегами из Яндекса. Сейчас ClickHouse все еще не беззаботная прогулка, но уже и не минное поле.

Александр занимается распределенными системами с 2003 года, разрабатывал крупные проекты на MySQL, Oracle и Vertica. На прошедшей HighLoad++ 2019 Александр, один из пионеров использования ClickHouse, рассказал, что сейчас из себя представляет эта СУБД. Мы узнаем про основные особенности ClickHouse: чем он отличается от других систем и в каких случаях его эффективнее использовать. На примерах рассмотрим свежие и проверенные проектами практики по построению систем на ClickHouse.


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

Обходим проверку сертификата SSL

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

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

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

Telogreika v1.0 — носимое устройство персонального обогрева на Arduino

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

На картинке скрин из нашумевшей игры про не очень далёкое будущее. Заметили странный воротник у типа? Думаете что это такое? Признаюсь честно, я совсем не пытался выяснить назначение этого устройства по сюжету, но мне сразу подумалось, что художник пытался изобразить ИНФРАКРАСНЫЙ ОБОГРЕВАТЕЛЬ! По-моему, логично. Сколько бы вы не протезировали органов и сколько бы дырок в черепе под нейролинк не насверлил вам Илон Машк, остатки вашей биологической плоти будут предательски старомодно мёрзнуть, создавая всем хорошо знакомое угнетающее ощущение «божечки, я сейчас точно кони двину от холода, если этот автобус не приедет в ближайшую минуту!»

Заходи под кат, чтобы узнать мои мысли по поводу существующих систем персонального обогрева и почему электрические греющие куртки это тупик. Всех с первой зимней пятницей!)
Всего голосов 167: ↑165 и ↓2+205
Комментарии190

Крушение Intel состоялось

Время на прочтение6 мин
Количество просмотров159K
Если посмотреть на историю Intel, то она сделала полный круг. В ХХ веке компания произвела настоящую революцию на рынке микроэлектроники. Затем большая корпорация решилась на смелые шаги, чтобы выжить в эпоху подрывных инноваций. Но теперь всё-таки попала под каток. Сейчас в 2020 году приходится лишь с сожалением смотреть, как она медленно тонет, и ничего не может с этим поделать. Поезд ушёл.

Бывший исполнительный директор Intel Энди Гроув говорил, что «Дилемма инноватора. Как из-за новых технологий погибают сильные компании» Клайтона Кристенсена стала самой важной книгой из всех, что он прочитал за десять лет. На обложке Forbes в 1999 году — автор книги Клайтон Кристенсен и Энди Гроув.

Действительно, Энди Гроув был живым примером того, как большой компании выжить в эпоху подрывных инноваций. Один из самых знаменитых примеров — когда Intel решилась на то, что компании редко осмеливаются сделать: выпустить низкоприбыльный продукт, который съедает её собственные высокоприбыльные продукты. Но Intel сделала это. Речь о выпуске процессора Celeron в 1998 году. Он реально съел «Пентиумы» и захватил 35% всего рынка процессоров. Но самое главное, что он выполнил свою задачу — отсёк потенциальных конкурентов снизу. Это был гениальный ход.
Читать дальше →
Всего голосов 163: ↑120 и ↓43+124
Комментарии779

Информация

В рейтинге
1 945-й
Зарегистрирован
Активность