Как стать автором
Обновить
37
-7.1
Сергей @korvint

Программист

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

Принципы SOLID, только понятно

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

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

Изучить принципы
Всего голосов 74: ↑63.5 и ↓10.5+53
Комментарии90

Вопросы и ответы для собеседования на позицию frontend-разработчик. Часть 2

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

Всем привет! В этой статье (части) рассмотрим вопросы, связанные с великим и могучим TypeScript'ом, которые задают на собеседованиях. Если вы не читали прошлую статью, где описаны вопросы по JS, вот ссылочка. Пожалуйста, не заучивайте вопросы, это вредно для вашего здоровья!)

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

Как разработать свой SaaS повышения конверсии сайтов

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

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

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

О найме. Взгляд оттуда

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

Давайте поговорим о том как нам обустроить Россию правильно нанимать людей и не задавать глупые вопросы на интервью.

Читать далее
Всего голосов 84: ↑74 и ↓10+64
Комментарии255

Еще раз про Oracle standby

Время на прочтение13 мин
Количество просмотров162K
Представим себе ситуацию, когда наш проект, использующий в качестве СУБД Oracle, неожиданно (или с надеждой ожидаемо) стал критически важным для бизнеса (соответственно, появилась готовность выделять средства на обеспечение надежности системы).
До этого момента мы вполне обходились ежедневным или даже еженедельным бэкапом («горячим» или «холодным» копированием, а может и просто экспортом данных) и нас устраивало время восстановления системы порядка суток (будем считать, что данных у нас на пару терабайт).
И вот оказалось, что на восстановление системы нам отводится не более часа, и никакие данные нам терять нельзя.
Итак, все указывает на то, что нам придется поднимать standby сервер.
В принципе, большая часть из того, о чем говорится в этой статье, описано в «Oracle Data Guard Concepts and Administartion», а также в куче мест на просторах Сети, но, по большей части, это инструкции, содержащие последовательность команд, без особого описания их смысла и, главное, без рекомендаций, что делать, если что-то идет не так.
Я постараюсь описать процесс развертывания физической standby базы максимально подробно с указанием тех грабель на которые когда-либо натыкался.
Указание на случайно не обнаруженные мной проблемы, а также любые уточнения и дополнения всячески приветствуются.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии32

Нужен бесплатный SSL-сертификат? Легко

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

Если вам нужен SSL-сертификат, но вы не являетесь специалистом в веб-технологиях, то эта заметка для вас. Описан простой способ выпуска базового SSL-сертификата Let’s Encrypt в ручном режиме, на локальном компьютере с Windows, с помощью приложения Certbot. Этот способ позволяет получить файлы SSL-сертификата в папку на своём локальном компьютере, после чего можно установить сертификат на свой хостинг.

Потребность в SSL-сертификатах возникла у меня в связи с тем, что срок старых истёк, а создать новые оказалось невозможным из-за возникших ограничений на доменные зоны RU и РФ. Если у вас такая же проблема или вам просто надоело искать веб-сервис для выпуска SSL-сертификатов, то эта заметка вам поможет.

Поскольку я пока не знаю наилучшего пути, то ниже просто опишу ту последовательность действий, которую сам выполнил и которая позволила мне создать SSL-сертификаты для десяти своих доменов (в том числе в зонах RU и РФ), а значит и вам этот способ может помочь.

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

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

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

Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.

Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.

(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go

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

Я создаю Систему (RealRPG) в реальной жизни

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

Ты не задумывался никогда, почему мы не играем в собственную жизнь как в RPG игру? Ведь все похоже, только графика получше.

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

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

Читать далее
Всего голосов 14: ↑9 и ↓5+4
Комментарии89

Все о триггерах в Oracle

Время на прочтение17 мин
Количество просмотров182K
Традиционно статья написана тезисно. Более подробное содержание можно найти в приложенном внизу статьи видео с записью лекции про триггеры Oracle.

Все шокирующие подробности про триггеры в Oracle
Всего голосов 10: ↑8 и ↓2+6
Комментарии10

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

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

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

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

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

Никогда не забывай об этом, когда делаешь open-source проект

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

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

Читать далее
Всего голосов 54: ↑46 и ↓8+38
Комментарии124

Один маленький tap для SMS OTP, но гигантский скачок для всего человечества

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

Привет Habr!

Не так давно застал себя врасплох, когда заполнял очередную web-форму, на которой надо было вводить код SMS руками посимвольно! Мелочь, но раздражает. Особенно, когда понимаешь, что современные обозреватели сами проделают всю работу – просто удели немного времени и пользователи не будут испытывать не нужный негатив.

Почему до сих пор хватает ресурсов на просторах рунета, где подобные вещи надо исполнять не в один “tap”? (речь про мобильные сайты)

Свято верю в то, что наш коллективный разум найдет-таки возможность достучаться до тех, кто еще не встал на путь истинный по данному вопросу. Возможно, это ваш сосед по лестничной клетке, или коллега из соседнего департамента, который заведует web-формой, которой пора уже выйти на “новый уровень” 😁. Я и у себя в “хозяйстве” нашел подобное. Чего греха таить? – исправляемся.

Давайте по классике - лучше один раз увидеть. На скринах ниже показал несколько наглядных примеров из жизни о том, как браузеры могут отобразить на экранной клавиатуре код из SMS – нажми на него один раз и о чудо, весь код оказывается в нужном месте в нужное время. Уровень напряга 0%.

Читать далее
Всего голосов 22: ↑17 и ↓5+12
Комментарии14

Оптимизация SQL-запросов в Oracle

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

Всем привет. Меня зовут Михаил Потапов, я - главный системный аналитик компании "Ростелеком Информационные Технологии". В компании занимаюсь разработкой отчетности для сегмента B2B и проектированием хранилища данных, на базе которого эта отчетность функционирует. Работоспособность каждого отчета напрямую зависит от корректно выстроенных SQL-запросов к базе данных Oracle, поскольку при работе с большими объемами данных скорость выполнения запросов может существенно снижаться. Снижение скорости сильно затрудняет работу с отчетами для конечного пользователя, а в некоторых случаях и вовсе делает ее невозможной.

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

Читать далее
Всего голосов 18: ↑14 и ↓4+10
Комментарии23

IronZen: как мы решили боль тысяч тревожных людей, разработав собственное мобильное приложение

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

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

Читать далее
Всего голосов 21: ↑17 и ↓4+13
Комментарии36

[Разбор резюме] SAP-разработчик, ушедший в Backend: как оформить резюме, когда сменил специализацию

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

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

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

Маленький поисковик, который не смог

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров28K
Пара бывших сотрудников Google решила создать поисковый движок будущего. Они собрали нечто более быстрое, простое и без рекламы. Почему же так вышло, что большинство людей ничего не слышало о Neeva?


Сридхар Рамасвами ушёл из Google не для того, чтобы создать другой поисковый движок. По крайней мере, изначально. В завершение своей 15-летней карьеры в Google Рамасвами управлял целым рекламным отделом компании, руководя более чем десятью тысячами людей, и лучше других знал, какой объём работы необходим, чтобы реализовать поиск правильно.

Нельзя переоценить степень доминирования Google в мире поиска. По данным большинства исследований, Google владеет примерно девяноста процентами мирового рынка поисковиков, и это число стабильно росло в течение двадцати лет. Google — поисковый движок, используемый по умолчанию почти в каждом браузере, почти на каждом устройстве. Мы не выполняем поиск в Интернете, мы гуглим. Вторым и третьим в списке идут Bing и Yahoo, но когда вы в последний раз искали что-нибудь в Bing или Yahoo? Для поддержания своего доминирования Google тратит огромные политические, инженерные и финансовые капиталы.

Но больше остальных Рамасвами знал и то, что Google не может или не хочет сделать со своим движком. Имея миллиарды пользователей и сотни миллиардов долларов, Google не будет рисковать, исследуя существенные изменения в своей странице результатов, новые бизнес-модели или любые продукты, которые заставят пользователей меньше заниматься поиском (Рамасвами тестировал функцию Google Contributor, позволявшую людям платить за отсутствие рекламы на некоторых сайтах, но система не взлетела). Возникла возможность, которой Google просто не могла и не хотела бы пользоваться. Поэтому когда Рамасвами ушёл из компании в 2018 году, они с Вивеком Рагхунатаном (давним руководителем высшего звена Google и YouTube) основали компанию Neeva для создания поискового движка будущего.
Читать дальше →
Всего голосов 77: ↑71 и ↓6+65
Комментарии68

Как делается OpenSource: личный опыт

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

Я - автор двух пакетов, входящих более-менее во все дистрибутивы Linux: sane-airscan и ipp-usb.

Кроме того, sane-airscan входит во все основные дистрибутивы BSD (FreeBSD, NetBSD и OpenBSD) и в ChromeOS. ipp-usb в ChromeOS не взяли потому, что он написан на Go, а у них там очень жестко с размером исполняемых файлов, вместо этого они написали свое на Rust, но предпочли бы взять моё изделие, если бы могли. Совсем недавно появился порт ipp-usb на FreeBSD, вероятно, другие BSD тоже скоро подтянутся.

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

Кроме того, ipp-usb делает возможным "бездрайверную" печать на USB-устройствах.

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

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

Первое занимает гораздо меньше времени, чем второе. Второе - гораздо меньше времени, чем третье.

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

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

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров14K
Последние десять лет я занимался разработкой OSINT-инструмента под названием SpiderFoot; он используется для автоматизации сбора и анализа общедоступных данных с целью сократить поверхность атаки и выявить возможные угрозы. Это проект с открытым кодом, он написан на Python и занимает первые строки во многих из тех категорий GitHub, где фигурирует. На момент написания статьи у него около 7000 звезд. Пару лет назад я сделал SaaS-версию SpiderFoot под названием SpiderFoot HX, но это тема для отдельной статьи (а то и серия статей), которую мы отложим на потом. Сегодня я хочу рассказать, чему научился в процессе.

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

Поэтому сейчас, как представляется, наступил удачный момент для того, чтобы оглянуться назад, поразмышлять и сформулировать те уроки, которые я вынес из опыта и впитал в себя за это время. Эту статью я пишу отчасти для собственной пользы, но также и с надеждой, что она пригодится другим людям, которые или пошли похожим путем, создав свой проект с открытым кодом, или подумывают об этом, но еще не решились.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии1

Управление ресурсами нашего мозга

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

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

Если хотите посмотреть оригиналы, то вот ссылки на её видео:
Как изменить mindset в Agile сторону
OKR изнутри — как мозг ставит цели

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

Читать далее
Всего голосов 16: ↑8 и ↓80
Комментарии6

Самые распространенные логические ошибки

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

Изучение логических ошибок помогает в развитии критического мышления, необходимого во всех сферах жизни. School of Thought проделала отличную работу, описав 24 наиболее распространенные логические ошибки.

Читать далее
Всего голосов 84: ↑79 и ↓5+74
Комментарии101

Информация

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

Специализация

Software Developer, Database Developer
Middle
От 200 000 ₽
Oracle
Delphi
C#
PostgreSQL
OOP
Database
Software development
SQL
SQLite
Linux