Search
Write a publication
Pull to refresh
156
0
Виктор @TyVik

Full-stack developer

Send message

Учимся разрабатывать REST API на Go на примере сокращателя ссылок

Level of difficultyMedium
Reading time30 min
Views90K

В этой статье мы напишем полноценный REST API сервис — URL Shortener — и задеплоим его на виртуальный сервер с помощью GitHub Actions.

Говоря «полноценный», я имею в виду, что это будет не игрушечный проект, а готовый к использованию:

  • мы выберем для него актуальный http-роутер,
  • позаботимся о логах,
  • напишем тесты: unit-тесты, тесты хэндлеров и функциональные,
  • настроим автоматический деплой через GitHub Actions и др.

Но важно понимать, что «готовый к продакшену» != «энтерпрайз».

Кратко обо мне: меня зовут Николай Тузов, я много лет занимаюсь разработкой на Go, очень люблю этот язык. Также веду свой YouTube-канал, на котором есть видеоверсия текущего гайда, с более подробными объяснениями.
Читать дальше →

Строение атома и материи

Level of difficultyHard
Reading time18 min
Views20K

Модель вещества (атома) в настоящее время разработана в деталях и понятна настолько, что колоссальную энергию, заключенную в нем, научились извлекать и поставили на службу человеку (в первую вчередь это АЭС). Тем не менее хотелось бы убедиться в правильности наших представлений об атоме, увидеть изображение реального атома, «пощупать» руками, прогнозировать дальнейший прогресс исследований вещества.

Для проведения исследований структуры вещества в динамике необходим источник синхротронного излучения высокой энергии. В РФ под Новосибирском в наукограде Кольцово Институт ядерной физики (ИЯФ) СО РАН им. Г.И. Будкера ведет строительство такого источника поколения 4+СКИФ (электроны будут разгоняться до энергии 3ГэВ). Ожидается, что ввод в строй СКИФа позволит осуществить серьезный прорыв в материаловедении и многих других научных направлениях

Ученые США (Ун-т Огайо) впервые сделали рентгеновский снимок отдельного атома. Атомы стало возможно извлекать поштучно, перемещать и синтезировать из них конструкции, визуализировать с помощью сканирующих зондовых микроскопов. Но без рентгеновских лучей невозможно определить из чего они состоят. Впервые атом «просветили» лучами. Стало возможно назвать не только тип элемента, но и его химическое состояние. В публикации Science Daily приводятся примеры атомов железа (26) и тербия (65). Сейчас стало возможно определить тип конкретного атома по числу протонов. Благодаря прорыву можно будет назвать не только тип элемента, но и его химическое состояние. Это позволит лучше манипулировать частицами внутри различных материалов для удовлетворения потребностей различных отраслей науки и практики.

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

Читать далее

Так всё же, за что Интернеты полюбили Ктулху? Часть финальная с тонной мемов

Level of difficultyEasy
Reading time9 min
Views9K

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

И вот мы наконец добрались до ключевой темы: как Ктулху стал звездой интернетов?
Читать дальше →

Разбор и обнаружение уязвимости OverlayFS (CVE-2023-0386)

Level of difficultyMedium
Reading time7 min
Views4.9K

Всем привет!
Совсем недавно в ядре линукс была обнаружена критичная уязвимость, позволяющая повышать привилегии до уровня root. Она получила идентификатор CVE-2023-0386 и затронула версии ядра до 6.2. В интернете уже есть несколько доступных PoC:
https://github.com/CKevens/CVE-2023-0386
https://github.com/xkaneiki/CVE-2023-0386
В этой статье я хотел рассмотреть принцип работы данной уязвимости и возможные варианты ее обнаружения.

Читать далее

Тебе не нужно классическое ООП в твоём бэкенд микросервисе

Reading time24 min
Views20K

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

Читать далее

Покажи мне свой Git, и я скажу, кто ты

Reading time15 min
Views39K

Можно ли с помощью GitHub анализировать работу, не заглядывая в монитор сотрудника — без скриншотов и тайм-трекеров?

Я Александр Кириллов, технический директор компании Evrone. Больше 20 лет я посвятил разработке. В этой статье поделюсь с вами опытом, который собрал за время работы с распределенными командами. Расскажу о том, как, не нарушая приватность разработчиков, следить за качеством работы на проектах и отслеживать нежелательные паттерны с помощью метрик в Jira и Git.

Читать далее

Код-ревью: cookbook от Google

Level of difficultyEasy
Reading time16 min
Views13K

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

От автора перевода: в Google вместо PR (Pull Request) принято использовать аббревиатуру CL (ChangeList — список изменений). Остальные термины, на мой взгляд, понятны и без пояснений. Чтобы разбавить кучу текста, в качестве разделителей разделов использованы генерации на тему "код-ревью от разных мультипликаторов" от нейросети Kandinsky.

Читать далее

Как заставить программистов пахать? 5 неочевидных советов

Level of difficultyEasy
Reading time4 min
Views79K

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

Меня зовут Слава. Я создал и развалил сеть ночных клубов, прошел 300 собеседований на маркетолога, проработал как подрядчик и сотрудник в более 50 компаниях. Сейчас занимаюсь системным маркетингом.

Там, где я работал, были разные системы управления, но всегда работал один и тот же принцип.

Читать далее

Программируй свое здоровье

Level of difficultyEasy
Reading time10 min
Views4.4K

Так как я сам новичок в программировании и сидячая многочасовая работа уткнувшись в монитор для меня вообще-то была нетипична, то через совсем короткое время я заметил небольшие изменения в своем здоровье... Появилась мысль, что несмотря на приличный заработок, со временем, придется значительно тратиться на лечение и поддержание своего здоровья. И тогда я задался вопросом: а можно ли организовать свою работу так, чтобы здоровье мое не ухудшалось, а наоборот - улучшалось? Часто, мы все время откладываем "на потом" тему здоровья, поэтому, надеюсь, что моя статья привлечет внимание и поможет вам сохранить его до глубокой старости!

Моя статья будет состоять из двух частей:

Читать далее

Сколько стоит твоя жизнь?

Reading time12 min
Views34K

Сколько стоит человеческая жизнь? Да-да, в рублях.

Обычная реакция на такой вопрос, что-то вроде: как ты смеешь говорить о цене человеческой жизни, ведь она бесценна?

Обсудим?

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

Level of difficultyMedium
Reading time11 min
Views28K

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

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

Системы счисления, которым ещё не время умирать

Level of difficultyEasy
Reading time7 min
Views17K

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

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

Читать далее

Кратковременные лунные явления. Что это такое и легко ли поймать их

Level of difficultyMedium
Reading time14 min
Views9.8K

Луна — первый астрономический объект, с которым встречаются люди. Если, конечно, не считать Землю и Солнце. Когда начинающий любитель астрономии получает в руки телескоп или бинокль, то сразу начинает искать Луну.

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

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

Тем не менее рано или поздно астроном-любитель захочет большего. Этим большим становятся газовые гиганты: Юпитер с барашками облаков, кольца Сатурна, далёкий и блеклый Уран, красноватый диск Марса или венерианский серп. Все это заставляет позабыть о Луне.

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

Читать далее

Пишем на Python, как будто это Rust

Reading time19 min
Views11K

Я начал программировать Rust несколько лет назад, и эта работа постепенно позволила мне изменить подход к проектированию программ и на других языках. В особенности заметен этот эффект был на Python. Прежде, чем я приступил к использованию Rust, я обычно писал код Python в очень динамичном стиле со свободной типизацией, без подсказок типов. Я повсюду передавал и возвращал словари, от случая к случаю прибегая к интерфейсам со «строковой типизацией». Правда, ощутив на себе всю строгость системы типов Rust и познакомившись со всеми теми проблемами, которые Rust решает «по природе», я вдруг сильно разволновался, когда пришлось вернуться к Python, и оказалось, что там и близко нет таких гарантий, как в Rust.

Читать далее

5 антипаттернов при написании кода на функциональном ЯП

Level of difficultyMedium
Reading time7 min
Views14K

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

Lua: маленький язык, который смог

Level of difficultyEasy
Reading time6 min
Views79K

Lua — это, пожалуй, мой любимый "маленький язык", с низкой когнитивной нагрузкой и простотой в изучении и использовании. Он встроен во многое ПО, такое как Redis, NGINX через OpenResty и Wireshark (прим. перевод.: и многое другое). Он также используется в качестве скриптового языка в таких играх, как World of Warcraft и Roblox через Luau (прим. перевод.: и многих других). Этот пост — краткое признание в любви языку с некоторыми примерами того, почему он мне так нравится.

Читать далее

Организационные структуры. Виды, характеристики, отличия

Level of difficultyMedium
Reading time10 min
Views19K

Основатель «Магнита» Сергей Галицкий однажды сказал в интервью: «Чтобы управлять компанией на 11 000 магазинов и 300 000 сотрудников, нужно соблюдать принцип, что у каждого человека не более прямых 7 подчиненных, и выстраивать такими "ячейками" структуру управления».

Но по какому принципу эти «ячейки» стыкуются, согласуются между собой? Как выстроить структуру управления, когда в компании несколько десятков, сотен, а то и тысяч сотрудников? Какие есть типы организационных структур, их плюсы и минусы?

Тема эта довольно обширная и мы попробуем охватить её в нескольких материалах — сегодня сделаем обзор типов организационных структур и заглянем в историю этого вопроса.

Читать далее

Obsidian — Мой сетап

Level of difficultyMedium
Reading time13 min
Views76K

Вот я и дописал свою четвёртую статью на хабр (А ведь в начале года поставил себе цель написать хотя бы одну статью, а тут аппетит пришёл во время еды и вот четвёртая). Предыдущие раз, два и три.

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

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

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

В этом хранилище используются 10 плагинов, основные:

- Calendar - для календаря справа.

- Dataview - для статистики и для проектов.

- Tasks - для задач.

- Templater - для шаблонов и чтобы нужные заметки с запросами создавались в нужных папках и с нужными данными в запросах.

К такой настройке я шёл целый год используя обсидиан, постоянно дорабатывал её и искал "совершенство", в ней собраны разные подходы из разных статьей и книг (GTD, 7 навыков, Джедайские техники, Атомные привычки), данные подходы большинству могут быть знакомы. Но есть метод, до которого я дошёл сам и до этого я нигде его не встречал (возможно просто не попадался) - это метод одной задачи.

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

Погнали вкатываться в обсидиановый мир

5 млн долларов за строчку кода: подробный разбор сбоя сервисов Datadog

Level of difficultyMedium
Reading time24 min
Views13K

В марте сервисы Datadog не работали более суток. Что пошло не так, как отреагировала команда инженеров, и что можно извлечь из этого инцидента? Это перевод эксклюзивного исследования, которое провел Гергели Орош (Gergely Orosz), консультант mobile.dev, автор нескольких книг по работе с инфраструктурой, в прошлом — инженер в Uber, Skype, Microsoft. 

Читать далее

За что Интернеты полюбили Ктулху? Часть 3: как Ктулху выплыл из тьмы забвения и при чём тут гики

Level of difficultyEasy
Reading time10 min
Views8K

Ктулху, как известно, фхтагн. А также мем, кандидат в президенты США, персонаж бесчисленных комиксов и один из любимых героев Интернетов. Несмотря на всю свою мрачность, хтоничность и фхтагничность, а возможно — как раз благодаря им. Как получилось, что существо из совершенно не «выстрелившей» в годы выхода новеллы малоизвестного автора превратилось в культовую во всех смыслах фигуру, легко узнаваемую любым завсегдатаем Сети?

В первой статье мы начали говорить о Ктулху: кто он такой по канону, чем занимается (спойлер: в основном дрыхнет на дне и иногда икает), где живёт на этом самом дне и почему ему на голову могла упасть советская станция «Мир». Во второй обсудили, откуда Ктулху взялся в фантазиях Лавкрафта именно такой, со всеми его щупальцами, крыльями и пузом — ведь в мировой культуре прямого аналога такой фигуры не существовало. Ну а теперь проследим путь Ктулху из безвестности на момент публикации первого рассказа к массовой известности в конце ХХ — начале ХХI века.
Читать дальше →

Information

Rating
9,325-th
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
Python
PostgreSQL
Linux
Docker
Kubernetes
RabbitMQ
Elasticsearch