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

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

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

Что нужно знать, чтобы успешно пройти System Design Interview

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

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

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

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

Читать далее
Всего голосов 49: ↑47 и ↓2+56
Комментарии26

Производительность базового поиска в Ozon как культурный феномен

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

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

Читать далее
Всего голосов 68: ↑63 и ↓5+71
Комментарии87

Локальные нейросети. Аналог ChatGPT-3.5 на домашнем ПК: OpenChat 7B превосходящая 70B, DeepSeek для кода уровня ChatGPT

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

Есть много локальных аналогов ChatGPT, но им не хватает качества, даже 65B модели не могут конкурировать хотя бы с ChatGPT-3.5. И здесь я хочу рассказать про 2 открытые модели, которые всё-таки могут составить такую конкуренцию.

Речь пойдет о OpenChat 7B и DeepSeek Coder. Обе модели за счет размера быстры, можно запускать на CPU, можно запускать локально, можно частично ускорять на GPU (перенося часть слоев на GPU, на сколько хватит видеопамяти) и для такого типа моделей есть графический удобный интерфейс.

И бонусом затронем новую модель для качественного подробного описания фото.

UPD: Добавлена информация для запуска на Windows с ускорением на AMD.

Читать далее
Всего голосов 88: ↑86 и ↓2+102
Комментарии87

OpenConnect: недетектируемый VPN, который вам понравится

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

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Всего голосов 273: ↑272 и ↓1+323
Комментарии351

Пакуем весь трафик в Ping message, чтобы не платить за интернет | ICMP NAT traversal

Уровень сложностиСложный
Время на прочтение29 мин
Количество просмотров94K

Бывало ли у вас такое, что вы подключились к общественной сети или мобильному интернету, но он себя странно ведёт. Надпись «Подключено, без доступа к интернету» отсутствует, устройство думает, что всё нормально. Вы открываете браузер и видите «Пройдите проверку личности в сети нашего кафе» или в случае с мобильным интернетом «Пополнить баланс можно тут, тут и тут».

Так вот, переходя ближе к теме. Вы можете воспроизвести подобное поведение очень просто прямо сейчас при помощи вашего мобильного телефона и ноутбука. Я в своём конкретном кейсе буду пользоваться услугами оператора красного цвета, однако проблема актуальна для всех текущих 4 монополистов рынка сотовой связи. Как вам, скорее всего, уже известно, они около года меняют свою политику, внедряя одно интересное нововведение — с вас требуют дополнительной платы за раздачу интернета поверх основного пакета. То есть вы не можете взять и использовать свои 7 гигов на месяц как ресурс для раздачи при помощи точки доступа. Для точки доступа вам предлагают отдельный, зачастую совсем невыгодный тариф. Конечно, можно сменить основной тариф на специальный «тариф для раздачи» и платить втридорога, но, как вы понимаете, сегодня мы в потребителя будем играть совсем недолго. Сейчас по пунктам нужно доказать нечестность подобной политики и с чувством завершённого введения перейдём к непосредственно технотексту.

Подобные условия пользования, само собой, порождают внутреннее недовольство пользователей:

За интернет они платят? — Да.

Раздача как-либо использует ресурсы провайдера сверх нормы? — Нет.
Читать дальше →
Всего голосов 233: ↑231 и ↓2+294
Комментарии91

Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS

Уровень сложностиПростой
Время на прочтение26 мин
Количество просмотров36K

Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.

Хотите узнать, что скрывается под витриной маркетплейса? Что держит нагрузку в 1 миллион запросов в секунду? Толстые кэши или нечто большее? Про то, как устроено наше кэширование и как мы к этому пришли, — рассказываю в статье.

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

Создаем свой VPN с защищенным от блокировок протоколом AmneziaWG, или WireGuard на максималках

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


Всем привет! Возможно уже совсем скоро разные новостные и  IT-ресурсы будут подчищать информацию о способах обхода блокировок. А пока этого не случилось, запасаемся полезными гайдами и разворачиваем свои собственные VPN с защищенными от блокировок протоколами. Расскажу как это сделать, как изменилась Amnezia и как мы защитили WireGuard от блокировок.

Читать далее
Всего голосов 91: ↑89 и ↓2+111
Комментарии123

Как устроено распределение памяти

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

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

В этом посте я познакомлю вас с основами распределения памяти (memory allocation). Распределители памяти существуют, потому что иметь доступную память недостаточно, необходимо ещё и эффективно её использовать. Мы наглядно изучим, как работают простые распределители. Мы рассмотрим некоторые из задач, которые им необходимо решать, а также некоторые из методик, которыми они их решают. Прочитав этот пост, вы узнаете всё, что необходимо для написания собственного распределителя.
Читать дальше →
Всего голосов 56: ↑54 и ↓2+73
Комментарии6

Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все

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

Три месяца назад здесь на Хабре была опубликована статья “Интернет-цензура и обход блокировок: не время расслабляться”, в которой простыми примерами показывалось, что практически все популярные у нас для обхода блокировок VPN- и прокси-протоколы, такие как Wireguard, L2TP/IPSec, и даже SoftEther VPN, SSTP и туннель-через-SSH, могут быть довольно легко детектированы цензорами и заблокированы при должном желании. На фоне слухов о том, что Роскомнадзор активно обменивается опытом блокировок с коллегами из Китая и блокировках популярных VPN-сервисов, у многих людей стали возникать вопросы, что же делать и какие технологии использовать для получения надежного нефильтрованного доступа в глобальный интернет.

Мировым лидером в области интернет-цензуры является Китай, поэтому имеет смысл обратить на технологии, которые разработали энтузиасты из Китая и других стран для борьбы с GFW (“великим китайским файрволом”). Правда, для неподготовленного пользователя это может оказаться нетривиальной задачей: существует огромное количество программ и протоколов с похожими названиями и с разными не всегда совместимыми между собой версиями, огромное количество опций, плагинов, серверов и клиентов для них, хоть какая-то нормальная документация существует нередко только на китайском языке, на английском - куцая и устаревшая, а на русском ее нет вообще.

Поэтому сейчас мы попробуем разобраться, что же это все такое и как это использовать и не сойти с ума.

Читать далее
Всего голосов 126: ↑124 и ↓2+153
Комментарии136

Где решать задачи по программированию, чтобы пройти путь from zero to hero

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров118K

Если вам о чём-то говорят фамилии Зив, Хомченко и Рымкевич, иди сюда, дай обниму, бедолага-олимпиадник, то вы наверняка знаете, как важно прорешивать задачи для полноценного, осознанного и глубокого понимания изученного материала. Когда нет или совсем мало реальной практики, задачи дают возможность покрыть практикой все теоретические знания, погрузиться в неожиданные выводы, сложности, баги, препятствия. Более того, даже если практики достаточно, задачи помогают относительно быстро, комплексно и глубоко проработать типичные и нетипичные ситуации, возникающие в разработке (любой другой науке). Это всегда безопасный (никто не взрывает лабораторию и не роняет прод), доступный и удобный способ подробно разобраться в предмете. Определённо, программирования это касается в первую очередь.

Читать далее
Всего голосов 42: ↑41 и ↓1+65
Комментарии25

Рейтинг IT-брендов работодателей 2022: новый ландшафт рынка

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

Хабр, привет! С публикации последнего топа IT-работодателей России прошёл год, а значит, пришло время его обновить. Очередной цикл исследования мы запустили летом этого года. Сказать, что сегодняшний рынок постоянно и стремительно меняется — ничего не сказать, а потому исследовать его как никогда интересно.

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

Для начала общие вводные. Всероссийское исследование IT-брендов работодателей проводится ежегодно, с 2020 года мы (команда ЭКОПСИ и Хабра) спрашиваем мнения IT-специалистов о компаниях на рынке труда: насколько та или иная компания им известна как место работы + как они оценивают её привлекательность как работодателя. В 2022 году исследование проходило с 15 мая по 31 августа.

Огласить весь список
Всего голосов 46: ↑37 и ↓9+39
Комментарии73

Фантастические и фэнтезийные циклы, каждая часть которых удостаивалась престижных премий

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

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

Читать далее
Всего голосов 24: ↑21 и ↓3+27
Комментарии76

Как живется в США «неайтишникам». Два года спустя

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

Два года назад я написал на хабре статью Как живется в США «неайтишникам», которая собрала 194 000 просмотров, 561 комментарий и вошла в список лучших статей 2020 года. И вот, два года спустя я решил пробежаться по тем же тезисам, чтобы провести некий срез, как изменилась обстановка в США и мое место в ней, особенно в свете последних событий.

Про жизнь, траты, поиск и смены работы и перспективы. Мне 38, я по образованию биотехнолог, семья — два человека, английский язык — так себе. Живу в Северной Каролине почти два года. Обещаю без политики и максимально объективно.

Читать далее
Всего голосов 599: ↑538 и ↓61+586
Комментарии1315

Java 17 для тех, кто не следил. Часть 1

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


Уже вышла Java 18, но для всех, кто сидит на LTS, по-прежнему остаётся актуальной версия 17. Такие люди могут не отслеживать постоянно фичи каждой новой версии, а спокойно заниматься своими делами и иногда навёрстывать сразу всё.


И как раз на такое «навёрстывание» рассчитан доклад Тагира Валеева (tagir_valeev), с которым он осенью выступил на нашем мероприятии TechTrain. Люди, которые в последние годы тщательно отслеживали все новинки в Java, тут особо много нового не узнают. Зато для остальных это удобный единый ликбез по главным вещам сразу нескольких версий: от запечатанных классов до того, почему молодёжь может зарофлить над вами из-за префиксов get и is.


Поэтому в преддверии нового TechTrain и Java-конференции JPoint мы решили сделать для Хабра текстовую версию доклада. В этом посте речь идёт о языковых фичах, а отдельно опубликуем часть про изменения в API. Далее повествование идёт от лица спикера.

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

У вашей кожи тоже стресс

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

Классический модельный механизм для изучения стресса

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

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

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

  • Длительное повышение глюкокортикоидов начинает подавлять собственную иммунную систему и замедлять регенерацию.
  • Истощение резервов и нарушение иммунного ответа приводят к тому, что просыпаются хронические инфекции, которые до этого никак себя не проявляли. Кандидоз, вагиноз, герпетическая инфекция и хламидиоз — вполне типичный набор. Хотя для того, чтобы получить хламидиоз, просто понервничать недостаточно.

Поэтому сегодня мы будем говорить о стрессе, биохимических каскадах, которые при этом запускаются, и влиянии долгосрочного стресса на кожу.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+34
Комментарии2

Как можно сделать плохой звук наушников отличным? Что определяет качество звучания наушников согласно исследованиям?

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

Начну с небольшого наглядного примера. По данной ссылке вы можете скачать и прослушать записи трех наушников разной ценовой категории (HiFiMAN Sundara — $350, Creative Aurvana Live! SE — $60, Takstar PRO82 — $100) сделанные с помощью искусственного уха. Вносимые им искажения похожи на те, что вносит настоящее человеческое ухо. С помощью одного лишь эквалайзера эти записи были исправлены обратно к исходному воспроизводимому файлу. Попробуйте определить, какая запись соответствует каким наушникам и где находится цифровой оригинал
Читать дальше →
Всего голосов 37: ↑35 и ↓2+41
Комментарии108

Как устроена экосистема полупроводниковой индустрии

Время на прочтение8 мин
Количество просмотров58K
В прошлом году выходило много статей на темы, связанные с полупроводниковой индустрией: нехватка чипов, американский закон CHIPS, зависимость от Тайваня и TSMC, роль Китая, и т.д.



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

Экосистема полупроводниковой индустрии


На наших глазах абсолютно всё переходит в цифровой вид. Полупроводниковые устройства – чипы, обрабатывающие цифровую информацию – проникли почти всюду. Они в компьютерах, автомобилях, бытовой технике, медицинском оборудовании, и т.п. В этом году компании из полупроводниковой индустрии планируют продать чипов на $600 млрд.
Читать дальше →
Всего голосов 60: ↑57 и ↓3+73
Комментарии66

Миграция Spring Boot приложения на Java 17 — сложный путь: День 2

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

Добро пожаловать в статью о миграции приложения Spring Boot на Java 17.

В первый день мы пытались использовать Java 17 со Spring Boot и завершили день компиляцией нашего кода и зелеными юнит тестами.

В этом посте мы рассмотрим миграции: Spring Cloud, Spring Data, Spring Kafka

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

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

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

Привет, Хабр! Меня зовут Андрей Перепелкин. Я руководитель группы бэкенд-разработчиков, вошел в IT более 15 лет назад, 10 лет занимаюсь Java и около 4 плотно работаю с микросервисами. 

В этой статье я расскажу, как:

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

— создали общее поле разработки для независимых команд, получить единый стиль кода и контролировать качество;

— встраиваем микросервисы в инфраструктуру и собираем метрики и логи, не загружая этим разработчиков.

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

Разработка Telegram-бота на JAVA для генерации и считывания QR-кодов

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

пример разработки Tekegram-бота, функционал которого позволяет сканировать и генерировать QR-коды. Плюсы использования Telegram-бота в сравнении с традиционными приложениями-сканерами это: отсутствие необходимости устанавливать дополнительный софт (при наличии Telegram, естественно), возможность чтения цифровых изображений без использования камеры (например, из галереи или с web-сайта) и кроссплатформенность. Логика работы бота проста – отправляешь боту QR-код, в ответе получаешь расшифрованную информацию, отправляешь текст – в ответе получаешь QR-код. Просто? Да! Удобно? Несомненно!

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

Информация

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