Как стать автором
Обновить
26
0
Ратьков Дмитрий @dmrt

Вэб-программист

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

Внедрение зависимостей в Go

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

Недавно я создал небольшой проект на языке Go. После нескольких лет работы с Java я был сильно удивлён тем, как вяло внедрение зависимостей (Dependency Injection, DI) применяется в экосистеме Go. Для своего проекта я решил использовать библиотеку dig от компании Uber, и она меня по-настоящему впечатлила.

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

В этой статье я расскажу об основах внедрения зависимостей, а также покажу пример приложения до и после применения этого механизма (посредством библиотеки dig).
Читать дальше →
Всего голосов 48: ↑43 и ↓5+38
Комментарии92

Как я искал работу в США во время пандемии, подался на 200 вакансий и получил оффер на $380K

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

Украинский профильный ресурс DOU.UA опубликовал статью о нелегком пути релокации специалиста в США во время пандемии, где он также отвечает на дополнительные вопросы и комментарии.

Адам Леос — Senior Software Engineer в Roku. Пару лет назад он принял решение о релокации и в итоге выбрал своей целью США. Всего за три месяца Адам с нуля собрал все необходимое для подачи на визу О1, но потом в историю вмешалась пандемия. О том, с какими трудностями он столкнулся из-за карантина, как искать работу на американском IT-рынке, как получить большое количество офферов и выторговать самую выгодную компенсацию, разработчик рассказал в интервью DOU.UA

Читать далее
Всего голосов 36: ↑28 и ↓8+31
Комментарии74

Последний великий проект советской науки: коллайдер в Протвино

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


В ста километрах от Москвы, рядом с наукоградом Протвино, в лесах Подмосковья закопан клад в десятки миллиардов рублей. Выкопать и украсть его нельзя — навечно упрятанный в землю, он несет ценность только для истории науки. Речь идет об ускорительно-накопительном комплексе (УНК) Института физики высоких энергий Протвино — законсервированном подземном объекте размером почти с Большой адронный коллайдер.

Длина подземного кольца ускорителя — 21 км. Основной тоннель диаметром 5 метров проложен на глубине от 20 до 60 метров (в зависимости от рельефа местности). Кроме того, было построено множество вспомогательных помещений, связанных с поверхностью вертикальными шахтами. Если бы протонный коллайдер в Протвино удалось сдать в срок раньше БАК, в мире фундаментальной физики появилась бы новая точка притяжения. Далее — об истории главного советского коллайдера, на котором могла бы коваться физика будущего.
Читать дальше →
Всего голосов 94: ↑85 и ↓9+76
Комментарии118

Как «приручить» консоль, или 5 шагов к жизни с командной строкой

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

Всем привет! Меня зовут Осип, я Android-разработчик в red_mad_robot и я люблю автоматизировать всё, что автоматизируется. В этом мне помогает консоль, поэтому решил поделиться опытом, как настроить командную оболочку так, чтобы в ней было приятно работать и она ежедневно помогала вам решать задачи.

Статья для тех, кто использует Linux или macOS. Если у вас Windows, вы можете использовать WSL (приравнивается к Ubuntu).

Читать далее
Всего голосов 23: ↑22 и ↓1+23
Комментарии33

Почему работать в консоли настолько приятно? Так задумано отцами-основателями Unix

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

Кен Томпсон и Деннис Ритчи

Unix. Легендарная операционная система оказала огромное влияние на разработку программного обеспечения и всю информатику в целом. Из неё выросли целые семейства Unix-подобных ОС, которыми все мы пользуемся.

Язык программирования Си, Ричард Столлман и GNU, движение Open Source, Линус Торвальдс с ядром Linux, маки, айфоны и Android. Почти всё в системном программировании 21 века можно отследить до истоков — до Unix.

Unix — это фундаментальная база. Но что же в ней такого особенного? Есть один секрет. Точнее, два.
Читать дальше →
Всего голосов 86: ↑73 и ↓13+90
Комментарии434

Масштабирование поиска. Elasticsearch. Его преимущества и основные требования для установки

Время на прочтение7 мин
Количество просмотров7.1K
Добрый день. Меня зовут Роман Ларчиков, я инженер по технической поддержке Docsvision. Данная статья подготовлена для тех, кого интересуют технические детали реализации масштабирования поиска и знакомство с работой Elasticsearch. В статье пойдёт рассказ о причинах использования ES, требованиях к системе, а также о преимуществах над поиском от MS SQL Server.

Если вам интересно в более общих чертах узнать о том, как мы масштабировали поиск в последней версии нашей платформы – об этом рассказывали мои коллеги на вебинаре «Docsvision ECM. Масштабирование поиска ElasticSearch».

Почему Elasticsearch?


image
Читать дальше →
Всего голосов 11: ↑3 и ↓8-3
Комментарии4

Собеседование в Яндекс: театр абсурда :/

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

Привет, Хабр!

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

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

Как вы думаете, что делают рекрутеры, когда видят "Alexandr, NOT OPEN FOR WORK"? Правильно, пишут "Алексей, рассматриваете вариант работать в X?" Я обычно игнорирую это, но тут мне предложили попытать счастья с Яндекс.Лавкой, и я не смог пройти мимо - интересно было, смогу ли я устроиться куда-нибудь, когда введут великий российский файерволл. К тому же за последние 3 года я проходил только два интервью, и мне показалось, что я не в теме, что нынче требуется индустрии. Блин, я оказался и вправду не в теме. И вы, скорей всего, тоже - об этом и статья.

Читать далее
Всего голосов 531: ↑504 и ↓27+610
Комментарии1270

Самый беззащитный — уже не Сапсан. Всё оказалось куда хуже…

Время на прочтение8 мин
Количество просмотров546K
{UPD 10.02.2021} Евгений Чаркин дал интервью на эту тему gudok.ru/newspaper/?ID=1552569
Под катом мои комментарии на некоторые тезисы.
{/UPD}

Больше года назад хабравчанин keklick1337 опубликовал свой единственный пост «Самый беззащитный — это Сапсан» в котором рассказывает как он без серьёзных ухищрений получил доступ ко внутренней сети РЖД через WiFi Сапсана.

В ОАО «РЖД» прокомментировали результаты этого расследования. «Есть результаты проверки. Почему удалось взломать? Наверное, потому, что злоумышленник. Наверное, из-за этого… Ну, он из „фана“. Юный натуралист. Там уязвимостей, которые бы влияли на утечку каких-то критических данных, нет. Мультимедийный портал „Сапсанов“ функционирует как положено и не нуждается в доработке», — заявил Евгений Чаркин.

То есть вместо того, чтобы выразить благодарность за обнаруженную уязвимость, автора обозвали «злоумышленником» и «Юным натуралистом».

К сожалению, но специалисты РЖД, начиная с директора по информационным технологиям, отнеслись к статье очень пренебрежительно, проигнорировав важное указание автора:
Также оттуда в сеть РЖД есть впн. Если захотите — найдёте её там сами.

И вот, год спустя я попал в сеть РЖД даже не садясь в Сапсан.



Видимо, только этот котэ добросовестно охраняет вокзал.

Как именно я попал в сеть РЖД с пруфами, чего не сделал директор по информационным технологиям ОАО «РЖД» Чаркин Евгений Игоревич и возможные последствия — под катом.
Читать дальше →
Всего голосов 1135: ↑1132 и ↓3+1447
Комментарии990

Использование journalctl для просмотра и анализа логов: подробный гайд

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


Journalctl — отличный инструмент для анализа логов, обычно один из первых с которым знакомятся начинающие администраторы linux систем. Встроенные возможности ротации, богатые возможности фильтрации и возможность просматривать логи всех systemd unit-сервисов одним инструментом очень удобны и заметно облегчают работу системным администраторам.

Эта статья рассматривает основные возможности утилиты journalctl и различные варианты ее применения. С помощью journalctl можно просматривать логи системы, чтобы решить возникшие проблемы на рабочей станции или сервере использующие дистрибутив linux с демоном инициализации systemd, де-факто уже ставшим стандартом в современных Linux-системах, например: RHEL, CentOS, Fedora, Debian и многих других.

Существует мнение, что systemd не так уж и хорош — он нагружает систему и это все еще предмет для споров на сегодняшний день, но нельзя отрицать, что он предоставляет прекрасный набор инструментов для управления системой и поиска проблем. Представьте, что вам приходится иметь дело с проблемным сервером, который даже не загружается — в таком случае можно загрузиться с live-дистрибутива, смонтировать системный раздел и просмотреть логи systemd, чтобы понять, в чем проблема.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+60
Комментарии25

Базы данных. Тенденции общемировые и в России

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

Эта статья не является ответом на множество вопросов по базам данных (БД) и системам управлениям базами данных (СУБД). Я как автор выражаю своё собственное мнение о  трендах, стараясь опираться на беспристрастные показатели, статистики и т.д., но для примера приводя собственный опыт. Я не являюсь ангажированным представителем какой-либо компании и выражаю точку зрения опираясь на опыт более 25 лет работы с разными СУБД, в том числе, которую создавал своими руками. Не так много даже опытных программистов и архитекторов, которые знают все термины, технологии, какие подводные камни и куда идёт движение. Тема поистине огромная, поэтому в рамках одной статьи не раскрыть даже верхний уровень информации. Если кто-то не встретит свою любимую СУБД или её невероятный плюс, который стоит упомянуть, то прошу в комментариях указать и этим дополнить общую картину, что поможет другим разобраться и понять лучше предметную область. Поехали!

Open Source DBMS vs Commercial DBMS

 Для начала приведён график с сайта, db-engines.com, по моим ощущениям, неплохо отслеживающим тренды БД. Именно этот график добавил желания написать статью о текущем положении дел.

Читать далее (в конце краткие итоги)
Всего голосов 51: ↑47 и ↓4+61
Комментарии106

Docker is deprecated — и как теперь быть?

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

Kubernetes объявил Docker устаревшим и планирует прекратить его использование примерно через год, в версии 1.22 или 1.23. Эта новость вызвала много вопросов и непонимания. В блоге Kubernetes появилось целых две статьи, разъясняющих смысл записи в Changelog (раз и два). Если все обобщить, то для разработчиков (те, которые Dev) ничего не меняется — они все так же могут продолжать использовать docker build для сборки своих контейнеров, а вот для инженеров, ответственных за эксплуатацию кластера (Ops), пришла пора разобраться и освоить несколько новых инструментов.

Читать дальше
Всего голосов 79: ↑72 и ↓7+91
Комментарии82

Самые маленькие Arduino для ваших мини-проектов + примеры самих проектов

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

Если вам нужны маленькие Arduino-платы для DIY-проектов, эта статья как раз кстати. Вы хотите создать носимый девайс на базе Arduino, но оригинальная плата слишком большая? Или есть на примете другой проект, для которого нужна маленькая плата с большим количеством возможностей?

Эта подборка поможет выбрать то, что нужно. В ней собраны самые маленькие Arduino платы с разными характеристиками. Их можно использовать для разработки самых разных проектов — от роботов до носимых устройств. Есть и примеры проектов.
Всего голосов 21: ↑19 и ↓2+22
Комментарии23

Как находить проблемы с интернетом и кто виноват ч.2 — домашняя работа

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

Перед тем, как обращаться к провайдеру, необходимо разобраться - а всё ли хорошо в доме. Без этой проверки есть риск превратиться в мальчика, который постоянно кричал "у меня потери пакетов" "волки".

Заглянуть под кат
Всего голосов 20: ↑17 и ↓3+22
Комментарии25

Опыт использования gRPC в Почте Mail.ru

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

Привет, Хабр! Я работаю в команде Антиспама Почты Mail.ru. В этой статье я бы хотел рассказать про наш опыт запуска сервиса с пропускной способностью около 3 миллионов запросов в минуту на базе технологии gRPC. Это современная технология передачи данных по сети, которая реализует подход к удаленному вызову процедур. Разберу, с каким проблемами мы столкнулись при использовании этой технологии под высокой нагрузкой. Все описанное в статье касается реализации gRPC для языка С++.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+42
Комментарии19

Scaled YOLO v4 самая лучшая нейронная сеть для обнаружения объектов на датасете MS COCO

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

Scaled YOLO v4 является самой лучшей нейронной сетью для обнаружения объектов — самой точной нейронной сетью (55.8% AP) на датасете Microsoft COCO среди всех опубликованных нейронных сетей на данный момент. А также является лучшей с точки зрения соотношения скорости к точности во всем диапазоне точности и скорости от 15 FPS до 1774 FPS. На данный момент это Top1 нейронная сеть для обнаружения объектов.

Scaled YOLO v4 обгоняет по точности нейронные сети:

  • Google EfficientDet D7x / DetectoRS or SpineNet-190 (self-trained on extra-data)
  • Amazon Cascade-RCNN ResNest200
  • Microsoft RepPoints v2
  • Facebook RetinaNet SpineNet-190


Мы показываем, что подходы YOLO и Cross-Stage-Partial (CSP) Network являются лучшими с точки зрения, как абсолютной точности, так и соотношения точности к скорости.

График Точности (вертикальная ось) и Задержки (горизонтальная ось) на GPU Tesla V100 (Volta) при batch=1 без использования TensorRT:

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

Черная дыра прокрастинации: о чем не пишут в других статьях, и что на самом деле важнее всего

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


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


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


Если же вы, как и я, горите в аду бесконечного избегания, самобичевания и выгорания, читайте дальше. Я специально все тут пожал gzip-ом, чтобы не прокрастинировать, как обычно, чтение статьи про прокрастинацию, а можно было прочитать пару абзацев и сделать что-то полезное. Пусть даже меня заклюют за "Хабр не тот", отсутствие формул и обзора внушительного списка околонаучной литературы, зато, возможно, еще одним прокрастинатором в мире станет меньше. А может, и двумя.

Читать дальше →
Всего голосов 24: ↑22 и ↓2+26
Комментарии50

«Привет, мир»: разбираем каждый шаг хэш-алгоритма SHA-256

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

SHA-2 (Secure Hash Algorithm), в семейство которого входит SHA-256, — это один самых известных и часто используемых алгоритмов хэширования. В тексте подробно покажем каждый шаг работы этого алгоритма на реальном примере. SHA-2 отличается безопасностью (его тяжелее взломать, чем SHA-1) и скоростью.
Читать дальше →
Всего голосов 26: ↑23 и ↓3+26
Комментарии6

Эмуляция компьютера: интерпретатор CHIP-8

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


Меня, по ряду причин, всегда завораживала эмуляция. Программа, которая выполняет другую программу… Мне эта идея кажется невероятно привлекательной. И у меня такое ощущение, что тот, кто напишет подобную программу, не пожалеет ни об одной минуте потраченного на это времени. Кроме того, написание эмулятора — это очень похоже на создание настоящего компьютера программными средствами. Мне было очень интересно разбираться в устройстве компьютерной архитектуры, писать простой HDL-код, но эмуляция — это гораздо более простой способ ощутить себя тем, кто своими руками создаёт компьютер. А ещё, в детстве, когда я впервые увидел игру Super Mario World, я поставил себе цель, которая до сих пор не потеряла для меня ценности. Она заключается в том, чтобы полностью понять то, как именно работает эта игра. Именно поэтому я уже некоторое время подумываю о написании эмулятора SNES/SNC. Недавно я решил, что пришло время сделать первый шаг к этой цели.

Предлагаю поговорить о разработке эмулятора и обсудить простой, но полноценный пример эмуляции CHIP-8.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии1

Как проходит собеседование начинающего разработчика на С++: что нужно знать и как подготовиться

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

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

В этом посте я собрал подборку понятий, которые у вас могут спросить на собеседовании на вакансию Junior С++ разработчика, и описал, к чему в принципе вам стоит готовиться. Предупрежден — значит вооружен. Вкратце о себе: меня зовут Турмец, я работаю в Яндексе, параллельно учусь в Школе Анализа Данных и занимаюсь ревью кода на курсе «Разработчик С++» в Практикуме. 

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

Поехали.

Читать далее
Всего голосов 34: ↑26 и ↓8+30
Комментарии39

Распознавание номеров. Практическое пособие. Часть 1

Время на прочтение6 мин
Количество просмотров105K
Пример распознавания номерных знаков

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

И в один прекрасный день МВД Украины открыло доступ к реестру транспортных средств. Теперь по номерному знаку стало возможным проверять некоторую информацию про автомобиль (марку, модель, год выпуска, цвет и т.д. )! Скучная рутина линейного программирования померкла перед новой свехзадачей — считывать номера по всей базе фото и валидировать эти данные с теми, что указывал пользователь. Сами знаете как это бывает «глаза загорелись» — вызов принят, все остальные задачи на время стали скучны и монотонны… Мы принялись за работу и получили неплохие результаты, чем, собственно и решили поделиться с сообществом.
Для справки: на сайт AUTO.RIA.com, в день добавляется около 100 000 фото.
Датасаентисты давно уже знают и умеют решать подобные задачи, поэтому мы с dimabendera написали эту статью именно для программистов. Если вы не боитесь словосочетания «сверточные сети» и умеете писать «Hello World» на питоне — милости просим под кат…
Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии58

Информация

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