Pull to refresh
13
0

Уже не безработный ;)

Send message

Gopher, вы слышали это слово?

Reading time 3 min
Views 16K

Gopher


«To Gopher, the world is just one big file system»

Gopher — один из протоколов интернета, был популярен в начале 1990-х, впоследствии его роль уменьшилась. В основном с повсеместным развитием WWW. Ошибочно считается (а именно так написано в русской и английской википедии), что протоколы Gopher и HTTP были своего рода конкурентами, это и привело к уменьшению доли одного и увеличению другого. Нет, изначально Gopher был разработан для своеобразной замены FTP, протокола, который был разрабтан еще в 1960-х годах.
Читать дальше →
Total votes 79: ↑76 and ↓3 +73
Comments 63

Telegram-bot для поиска укрытий (публикую после событий в Белгороде 30.12.23)

Reading time 13 min
Views 24K

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

Читать далее
Total votes 301: ↑269 and ↓32 +237
Comments 2

Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем

Reading time 25 min
Views 122K
Привет, меня зовут Костя Кардаманов, я работаю в отделе технологий разработки Яндекса. Обычно такой же фразой я приветствую и кандидатов на собеседовании. А сегодня я хотел бы рассказать вам, как и зачем мы проводим интервью по дизайну систем с бэкенд-разработчиками. Сразу скажу: для фронтендеров, мобильных разработчиков и ML-инженеров подобный тип собеседований применим слабо, так что эти специальности мы здесь обсуждать не будем.

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

Что такое дизайн информационных систем


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

Опытный читатель может сказать — в мире полно платных и бесплатных решений, из которых я могу собрать систему как из деталей конструктора, зачем мне понимать устройство этих деталей?
Читать дальше →
Total votes 94: ↑92 and ↓2 +90
Comments 37

System Design 101

Level of difficulty Medium
Reading time 42 min
Views 66K



О сложных системах простыми словами.


В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.


Выражаю благодарность Анне Неустроевой за помощь в редактировании материала.


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


System Design (сборник на английском языке).

Читать дальше →
Total votes 79: ↑79 and ↓0 +79
Comments 17

Быстрее быстрого в СУБД

Level of difficulty Hard
Reading time 14 min
Views 8.6K

Привет! Меня зовут Сергей, я технический эксперт в компании Bercut. Когда-то увлекался Delphi и J2ME, издал несколько книг на эти темы, и профессионально уже около 20 лет создаю высоконагруженные приложения баз данных, используя для этого PL/SQL и SQL.

В Bercut мы занимаемся разработкой и развитием IT-продуктов и решений для операторов цифровых услуг и мобильных сервисов. Наши системы работают на различном железе, разных СУБД и обслуживают 24x7x365 в режиме онлайн сотни миллионов абонентов по всему миру. И это только кажется, что абонент один раз в день куда-то позвонил и все, больше никакой нагрузки от него нет и никто с ним не работает. На самом деле каждый смартфон каждого абонента непрерывно обменивается данными с сетью, а это все работа инфраструктуры операторов сотовой связи, а значит, нашего ПО. Как же система справляется с таким огромным объемом нагрузки?

Сегодня расскажу, что нужно делать и чего избегать, чтобы построить максимально производительную систему на примере СУБД Оракл.

Читать далее
Total votes 35: ↑33 and ↓2 +31
Comments 18

Как за 60$ создать систему распознавания лиц с помощью Python и Nvidia Jetson Nano 2GB

Reading time 17 min
Views 18K

Новый набор инструментов для разработчиков Nvidia Jetson Nano 2GB представляет собой одноплатный компьютер с графическим ускорителем стоимостью 59$, работающий под управлением программного обеспечения с искусственным интеллектом.

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

Приятного чтения!
Total votes 23: ↑21 and ↓2 +19
Comments 30

Реактивное программирование со Spring

Reading time 1 min
Views 29K

Эта серия заметок служит введением в разработку реактивных веб-приложений с использованием Spring Boot, Project Reactor, WebFlux и R2DBC. Это руководство по реактивному миру для новичков, но предполагается, что читатель уже знаком с Java и Spring Boot.

В первой части представлен обзор различных концепций реактивного программирования и их истории. Вторая часть представляет собой введение в Project Reactor с большим количеством коротких примеров кода. В третьей части рассматривается WebFlux - реактивный веб-фреймворк Spring. И, наконец, четвертая часть посвящена R2DBC - Reactive Relational Database Connectivity.

Читать далее
Total votes 4: ↑3 and ↓1 +2
Comments 0

Как тестировать не-REST-бэкенд. Часть вторая, WebSocket

Level of difficulty Medium
Reading time 6 min
Views 9.7K

Привет! Продолжаем цикл статей про тестирование не-REST-бэкенда, в прошлый раз мы говорили о GraphQL, теперь пришло время WebSocket.

Итак, что такое WebSocket?

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

Что тут важно — что это протокол (со всеми вытекающими последствиями для протокола), который использует постоянное соединение.

Работу по WebSocket в обычной жизни можно представить примерно так.

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

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

ОК, что вам делать в такой ситуации?

Читать далее
Total votes 21: ↑21 and ↓0 +21
Comments 4

Вышла Java 21

Level of difficulty Medium
Reading time 18 min
Views 52K
Вышла общедоступная версия Java 21. В этот релиз попало около 2500 закрытых задач и 15 JEP'ов. Release Notes можно посмотреть здесь. Изменения API – здесь.

Java 21 является LTS-релизом, а значит у него будут выходить обновления как минимум 5 лет с момента выхода.
Читать дальше →
Total votes 74: ↑74 and ↓0 +74
Comments 49

Скажи «нет» Electron! Пишем быстрое десктопное приложение на JavaFX

Reading time 13 min
Views 83K
В последнее время на программистских форумах развернулись неслабые дискуссии (для примера см. здесь, здесь и здесь, и эта сегодняшняя) об Electron и его влиянии на сферу разработки десктопных приложений.

Если вы не знаете Electron, то это по сути веб-браузер (Chromium) в котором работает только ваше веб-приложение… словно настоящая десктопная программа (нет, это не шутка)… это даёт возможность использовать веб-стек и разрабатывать кросс-платформенные десктопные приложения.

Самые новые, хипстерские десктопные приложения в наше время сделаны на Electron, в том числе Slack, VS Code, Atom и GitHub Desktop. Необычайный успех.

Мы писали десктопные программы десятилетиями. С другой стороны, веб только начал развиваться менее 20 лет назад, и на протяжении почти всего этого времени он служил только для доставки документов и анимированных «гифок». Никто не использовал его для создания полноценных приложений, даже самых простых!
Читать дальше →
Total votes 70: ↑61 and ↓9 +52
Comments 185

Создаем нативное Kotlin приложение на Spring Boot Native, Gradle и GraalVM без докера под MacOS и Windows

Level of difficulty Medium
Reading time 10 min
Views 4.3K

В этой статье я хочу рассказать о практическом опыте нативной компиляции production приложения, написанного на Kotlin со Spring Boot, Gradle с использованием GraalVM . Начну сразу с минусов и плюсов самой возможности нативной компиляции и где она может быть полезна, и дальше перейду уже непосредственно к процессу сборки под MacOS и Windows.

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

Read more →
Total votes 12: ↑12 and ↓0 +12
Comments 12

Как я создал курс по программированию на Rust, вышел на мировой рынок и увеличил прибыль в десятки раз

Level of difficulty Easy
Reading time 6 min
Views 17K

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

С появлением стабильной версии 1.0 в 2015 году было решено «с головой» погружаться в изучение и пилить курс, который бы в «экспресс» режиме позволил познакомиться с основами и понять, как использовать Rust на практике. 

В кейсе поговорим о создании курса, разочаровании в российском рынке, выходе материала в мир и увеличении доходов с его продажи почти в 10 раз. 

Читать далее
Total votes 70: ↑41 and ↓29 +12
Comments 39

Производство корпусов «в силикон» на пальцах: поэтапно и с анимацией

Level of difficulty Easy
Reading time 6 min
Views 16K

Это вам не 3D-принтер гонять, тут все по-взрослому. Покажем производство корпусов по очень популярной технологии литья полиуретана в силиконовые формы — как это делается; и расскажем о рисках и ошибках. Зачем? Чтобы цена разработки и производства корпуса неожиданно не стала в несколько раз выше, чем вы планировали. 

Открываем дверь на производство с ноги
Total votes 73: ↑73 and ↓0 +73
Comments 26

Railway и Render, как замена бесплатного тарифа Heroku

Reading time 4 min
Views 9.5K

Как многим известно Heroku с 28.11.2022 прекращает поддержку бесплатных аккаунтов. И у меня,  как и у других пользователей бесплатного аккаунта, возник вопрос: «Куда же теперь переезжать?» Я нашёл два подходящих сервиса, которые, на мой взгляд, могли бы  заменить Heroku. Так как я не увидел статей на Habr на тему, куда можно мигрировать с Heroku, то решил написать небольшую инструкцию по переезду. Надеюсь кому-то она будет полезной.

Читать далее
Total votes 10: ↑8 and ↓2 +6
Comments 15

Будущее живой музыки или причуда миллиардера? Как устроена самая крупная сферическая конструкция в мире

Reading time 7 min
Views 12K

Первый стадионный концерт состоялся в 1965-м году, когда The Beatles выступили на нью-йоркском Shea Stadium перед 55 000 кричащих фанатов. Этот концерт, на котором «Битлз» заработали более 160 000 долларов за 28 минут работы, стал атрибутом статусности и коммерческой мощи музыкантов. В 1970-е годы стадионы стали основной площадкой для концертных исполнений популярной музыки. От звёзд кантри и рок-музыки до более традиционных певцов, таких как Фрэнк Синатра и Барбра Стрейзанд, популярные исполнители стали привлекать аудиторию от 20 000 до 100 000 человек за один раз.

Музыканты смотрели на стадион как на способ выступить перед наибольшим количеством людей и заработать больше денег, а значит переход к стадионам, как минимум из чисто коммерческих соображений, был неизбежен. Но удерживать внимание 20 000 (или даже более) человек одновременно было серьёзной задачей для тех, кто выступал. И вскоре исполнителей стали сопровождать свои концерты спецэффектами, вроде пиротехники или лазерного светового шоу. Если для небольших клубных выступлений была характерна ламповость, то для стадионных концертов стала характерна зрелищность.

С тех пор такие концерты стали прерогативой самых популярных и успешных музыкантов мира: The Queen, U2, Мадонны, Эминема, Metallica, Майкла Джексона и других. Но концерт на стадионе часто означает плохую видимость и плохой звук для большинства зрителей. Но развитие технологий не могло не коснуться и этой отрасли развлечений. Новая эра живых развлечений начнётся в конце сентября 2023-го года, когда U2 выступят в «Сфере». Геометрическая фигура высотой 112 м и шириной 157 м в Лас-Вегасе попробует полностью переосмыслить стадионные концерты.
Читать дальше →
Total votes 34: ↑31 and ↓3 +28
Comments 14

Вам достался проект. Но есть один нюанс…

Level of difficulty Medium
Reading time 5 min
Views 3.3K

Привет Хабровчане!

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

В рамках одного проекта в компании ОТР 2000 были трудности с самим техническим заданием, но благодаря команде проекта (всех помню, вы лучшие с кем я когда-либо работал) удалось нивелировать отставание по проекту, и вывести команду из состояния перманентного цейтнота.

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

Был проект, где до срока сдачи оставалось два месяца, а прогноз по работам был на пять месяцев:))) Но получилось. Основная сложность была не в техническом задании или непонятных целях, а в постоянно растущих объемах и небольшом административном хаосе.

Как удавалось решить данные вопросы и хотелось рассказать.

Читать далее
Total votes 10: ↑3 and ↓7 -4
Comments 0

«Входить в IT неспеша» или как стать Middle Java Backend разработчиком минуя ступень Junior

Level of difficulty Easy
Reading time 12 min
Views 38K

Статья о том, как шаг за шагом при дефиците свободного времени обучиться и устроиться на работу сразу Middle Java разработчиком перескочив через Junior ступеньку, основанная на личном опыте, и о том, как мне это помогло, когда сразу после трудоустройства пришлось тянуть проект практически в solo.

Статья родилась как некий ответ на вопросы, которые мне часто задавали люди, находящиеся в таком же положении, как и был когда‑то я, когда времени на обучение почти нет и хочется войти в IT кем‑то выше, чем Junior разработчик.

Давай-ка разберёмся с этим
Total votes 22: ↑17 and ↓5 +12
Comments 80

Разработка блока управления боковыми зеркалами автомобиля

Reading time 10 min
Views 17K

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

Подробнее
Total votes 77: ↑77 and ↓0 +77
Comments 92

Jetpack Compose Desktop

Reading time 2 min
Views 13K

Несколько дней назад компания JetBrains в своём блоге рассказала о выходе нового инструмента для создания дескопных приложений Jetpack Compose Desktop. Компания с русскими корнями не особо жалует русскоязычную аудиторию и не спешит рассказать нам о новинке, поэтому возьму на себя роль популяризатора.

Разработчики под Android уже могли слышать про Compose, которая доступна в предварительной версии Android Studio 4.2. Я не любитель устанавливать бета-версии, поэтому не мог пощупать новую технологию своими руками. Но когда услышал новость про Compose Desktop, то не удержался и поставил себе IntelliJ IDEA Early Access Program.

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

Создаём новый проект и выбираем шаблон Desktop uses Kotlin 1.4.0. Минимальная версия Java SDK должна быть не ниже 11. Проверял на Windows 10, других платформ у меня нет.

Читать далее
Total votes 11: ↑11 and ↓0 +11
Comments 5

Приложение Getcontact светит вашими персональными данными, даже если вы им никогда не пользовались

Level of difficulty Easy
Reading time 5 min
Views 132K

Getcontact — мобильное приложение, позиционирующее себя как менеджер звонков и блокировщик спама. Появилось в конце 2017-го и стремительно взлетело на первые места магазинов приложений. Создатели сервиса оценивают свою аудиторию в 400+ миллионов пользователей.

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

Читать далее
Total votes 172: ↑167 and ↓5 +162
Comments 277

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer
From 360,000 ₽
Java
Java Spring Framework
SQL
Angular
React