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

Разработчик

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

Как я стал программистом. Путь от питерского бездомного до Senior Developer-а за 6 лет

Время на прочтение6 мин
Количество просмотров229K
Всем привет! Меня зовут Андрей, я работаю в отделе разработки продуктов Veeam Software.

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



Сегодня я хочу рассказать свою историю.

Итак, начну с момента, когда мне исполнился 21 год, я уволился из рядов доблестной российской армии и оказался на серых и холодных улицах Санкт-Петербурга. Осень, отсутствие жилья и денег активировали все клетки головного мозга для ответа на вопрос: «Что делать?».
Читать дальше →
Всего голосов 168: ↑152 и ↓16+136
Комментарии87

Прощайте, базы данных, да здравствуют векторные базы данных

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

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

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

Читать далее
Всего голосов 53: ↑51 и ↓2+49
Комментарии55

JWT-аутентификация при помощи Spring Boot 3 и Spring Security 6

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

Переход от базовых приложений к более сложным требует использования Spring Security для обеспечения безопасности. Новая версия, Spring Security 6, изменяет некоторые базовые реализации, а русскоязычных материалов на эту тему очень мало. В этой статье мы рассмотрим JWT-аутентификацию и авторизацию с помощью Spring Boot 3 и Spring Security 6, чтобы помочь начинающем разработчикам разобраться и начать пользоваться базовым функционалом этой библиотеки. Цель данной статьи - показать, как использовать JWT-аутентификацию с API-интерфейсами.

Читать далее
Всего голосов 16: ↑13 и ↓3+10
Комментарии10

Секреты JDK

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

Про Unsafe в Java не слышал только ленивый, однако это не единственный магический класс в Sun/Oracle JDK, стирающий границы Java платформы и открывающий тропинки, не нанесенные на карту публичного API. Я расскажу про некоторые из них, принесшие пользу в реальных проектах. Но помните: недокументированные возможности лишают ваше приложение переносимости на другие Java платформы и, кроме того, являются потенциальным источником нетривиальных ошибок. Я даже зря написал слово «приложение». Лучше сказать, что описанные ниже классы вовсе не годятся для приложений! Скорее, они представляют интерес лишь для системного ПО и для любознательных программистов, т.е. для вас :)
Читать дальше →
Всего голосов 129: ↑127 и ↓2+125
Комментарии30

Реактивное программирование со Spring, часть 1 Введение

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

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

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

Хабраюзер, помогай, тут еще истории карьерных тупиков

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

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

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

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

Читать далее
Всего голосов 27: ↑25 и ↓2+23
Комментарии16

Эффективное и комплексное устранение утечек памяти в Android

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

Цель этой статьи — изучить эффективные и комплексные решения по нахождению и устранению утечек памяти в контексте Android-разработки. Стоит понимать, что утечка памяти чаще всего возникает из-за незнания технологии или собственного кода на подкапотном уровне, поэтому основной целью является научиться правильно писать код, учитывая специфику работы Java Memory Model, Garbage Collector и File descriptor.

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

Каким образом спецслужбы отслеживают пользователей мессенджеров (без доступа к устройству и ключам)

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

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

Читать далее
Всего голосов 69: ↑67 и ↓2+65
Комментарии177

Работа с асинхронными операциями с помощью Kotlin Coroutines

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

Всем привет! Меня зовут Сергей, я Android-разработчик Студии Олега Чулакова на проектах Сбера. Недавно я написал статью Многопоточность в мобильной разработке. В ней был затронут один из наиболее популярных инструментов для работы с асинхронными операциями — Kotlin Coroutines. 

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

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

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

Возвращаем 2007 год, или делаем Интернет без блокировок

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

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

Хорошо, что существует возможность в рамках домашней сети восстановить свободный Интернет таким, каким он был в 2007-м. Именно этим мы и займемся. Стоит отметить, что в 2007 году довольно часто можно было встретить подключения на скорости 64-128 Кб/с, а то и вовсе dial-up; Wi-Fi был редкостью, а мобильная связь - довольно дорогим удовольствием. Однако, эти особенности того времени мы постараемся не воспроизводить.

Представляю вашему вниманию Freeroute - простой маршрутизатор, который позволяет направлять трафик на разные шлюзы в зависимости от домена назначения. Free в названии, как водится, означает свободный, а не бесплатный.

Читать далее
Всего голосов 84: ↑80 и ↓4+76
Комментарии98

Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana

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

Туториалы делятся на две больших категории: либо "как нарисовать сову", либо подробно расписанные тысячи шагов в формате "напиши туториал для дурака - и только дурак захочет его читать".

Как какой из двух категорий относится эта статья — решать вам.

В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.

Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.

Текст написан на основе текстов и демо-проекта microservice-customer за авторством @kamaruzzaman. Если вы потеряли нить повествования, всегда можно зайти на GitHub и найти весь код в пригодном для запуска виде. Если захочется закопаться в тему, то бро Дима Чуйко (@Teapot) написал вам ещё две части статьи "Микросервисы: от CRUD до Native Image" (раз, два).

Последняя важная оговорка. В этом гайде будут использоваться технологии Amazon и обычные дистрибутивы OpenJDK. Автор осознает, что мы живём в России, и возможно, вместо Amazon куда лучше подойдет что-то вроде SberCloud или MTS Cloud, а вместо обычного OpenJDK - Axiom JDK с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.

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

8-битный денди-ноутбук за 400 рублей из начала нулевых. Какой «компьютер» смогли сделать китайцы на базе железа «Денди»?

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

Друзья! А вы заметили, что NES, которая более известна у нас как Dendy, наряду с сегой стала консолью на много поколений вперёд? Даже спустя практически 40 лет после выхода, она не теряет актуальности и до сих пор взращивает все новые и новые поколения геймеров. 80-ые (Famicom/NES), 90-ые (тайваньские клоны NES, известные у нас как Dendy и Сюбор), 2000-ые («денди на капле» или новоделы), десятые и даже двадцатые (сейчас железные клоны уже не делают, но делают довольно мощные стики с эмуляторами и встроенными ромами). Для многих из нас NES/SMD стали первыми игровыми платформами, за которыми мы проводили часами на пузатых и изрядно уставших ЭЛТ-телевизорах. Недавно, листая онлайн-барахолки, я нашёл очень интересную вариацию денди: в виде эдакого «ноутбука», с настоящей рабочей клавиатурой, мышкой и двумя геймпадами. Сегодня мы с вами: осмотрим интересную покупку, узнаем, что у такого «ноутбука» под капотом, посмотрим на местный закос под Windows с настоящим бэйсиком и DOS. Интересно? Тогда жду вас под катом!
Читать дальше →
Всего голосов 49: ↑47 и ↓2+45
Комментарии52

Гасить ипотеку досрочно или инвестировать? Разбираемся, как не оказаться без денег и без квартиры

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

Кто‑то говорит, что ипотека — это жуткая переплата банку, и ее нужно закрывать всеми силами как можно скорее. А кто‑то, наоборот — что это дешевый кредит, который лучше не гасить, а направить эти деньги на инвестиции (в STONKS). В этой статье мы попробуем понять, каким образом лучше подходить к гашению ипотеки, и что там может пойти не так.

Читать далее
Всего голосов 103: ↑90 и ↓13+77
Комментарии222

Импортозамещение, которое мы потеряли (ч.2): АСУ ТП по телеграфному кабелю, нейронные сети и РСУБД в 60-х

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

Пилотная статья понравилась комьюнити, а значит продолжаем рассказывать о ранних советских разработках, предвосхитивших современные достижения отрасли, а порой, опередивших своё время. Наш рассказ будет не полным без упоминания проектов АН УССР, наиболее важная часть которых была реализована в процессе разработки и использования ЭВМ “Киев”. Под катом речь пойдет о проектах управления технологическими процессами на расстоянии 500 км, разработке и применении прообраза современных реляционных систем управления базами данных, а также первых советских опытах по машинному обучению и созданию искусственного интеллекта в 1950-х - 1960-х.

Читать далее
Всего голосов 48: ↑45 и ↓3+42
Комментарии64

Impress me или как решить задачу на интервью

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

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

Поясню. Джуниор разработчик проходит собеседование. Ему дали следующее задание:

Одна из задач, которую мы даём соискателям: написать код, который выводит числа от 0 до 1000, которые делятся на 3, но не делятся на 5, и сумма цифр в которых меньше десяти.

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

РЕД ОС: первые впечатления от импортозамещенной операционки

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

Разработчики РЕД ОС избавились от одной болезни Linux, но ничего не смогли сделать с другой...

Читать далее
Всего голосов 112: ↑69 и ↓43+26
Комментарии187

Про оптимизацию кода

Время на прочтение2 мин
Количество просмотров1K
Кодер Один мой знакомый получил работу в очень престижной конторе по разработке устройств связи уоки-токи, мобильные и так далее. Контора надо сказать очень большая и входит в ТОП-50 по этой сфере индустрии.

И из-за такого размера в конторе было очень много бюрократических моментов — согласований, совещаний и уходило на общение очень много времени. Программисты там были в большей части индусы и делали они свою работу очень неторопливо, медитируя так сказать в рабочее время.
Что было дальше
Всего голосов 86: ↑49 и ↓37+12
Комментарии18

Достаточно ли вы умны для того, чтобы работать на Илона Маска?

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

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

Вы стоите на поверхности Земли. Затем вы начинаете идти: проходите один километр на юг, один на запад и один на север. В итоге вы оказываетесь в начальной точке. Где вы стоите?

Чаще всего кандидаты отвечают «на Северном полюсе», и это правильный ответ. Эта задачка очень старая – самое раннее её упоминание датируется аж 1821 годом. Однако, как утверждает Эшли Вэнс, биограф Маска, тот, получив такой ответ, задавал следующий вопрос: «Хорошо, а есть ли ещё такие точки?»
Читать дальше →
Всего голосов 60: ↑46 и ↓14+32
Комментарии173

Муравьи

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

Муравьи

Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи Муравьи М

Муравьи
Всего голосов 122: ↑73 и ↓49+24
Комментарии319

Есть ли в вашей IT команде саботажник?

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

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

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

Читать далее
Всего голосов 94: ↑80 и ↓14+66
Комментарии91
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность