Pull to refresh
18
0
Николай Первухин @Nikolay_Pervukhin

Программист Go, Java

Send message

Beego в Golang для начинающих

Level of difficultyEasy
Reading time9 min
Views5.9K

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

Beego – это фреймворк для разработки веб-приложений на языке Go, ориентированный на быстрое развертывание и простоту использования. В его основе лежит идея создания полнофункциональных приложений с минимум усилиям на настройку и кодирование. Это достигается за счет широкого выбора инструментов, включая ORM, систему маршрутизации, интерфейс кмд и многое другое. Beego придерживается принципов RESTful и MVC.

Читать далее
Total votes 14: ↑12 and ↓2+16
Comments5

Golang: Мои Открытия

Reading time5 min
Views6.3K

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

1. Как используется встраивание (embedding) в Go?

В Go директива //go:embed используется для встраивания файлов и папок в бинарный файл Go на этапе компиляции. Эта функция улучшает безопасность, производительность и простоту кода за счёт возможности прямого импорта файлов без использования функций операционной системы.

Читать далее
Total votes 29: ↑13 and ↓16+3
Comments15

Эффективные трассировки в Go

Level of difficultyMedium
Reading time6 min
Views2.4K

Пакет runtime/trace содержит мощный инструмент для понимания программ Go и устранения неполадок. Функциональность внутри позволяет создавать трассировку исполнения каждой горутины за определенный период времени. С помощью go tool trace command (или превосходного инструмента gotraceui с открытым исходным кодом) можно визуализировать и исследовать данные в этих трассировках.

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

Читать далее
Total votes 16: ↑15 and ↓1+15
Comments0

Запускаем privateGPT локально на WSL c поддержкой GPU Nvidia

Level of difficultyMedium
Reading time3 min
Views7.2K

Приватный GPT - это готовый к производству проект искусственного интеллекта, который позволяет задавать вопросы о ваших документах, используя мощь больших языковых моделей (LLM), даже в сценариях без подключения к Интернету. 100% приватный, никакие данные не покидают ваше окружение выполнения в любой момент.

Запуск на Windows Subsystem для Linux (WSL) с поддержкой GPU может значительно улучшить его производительность. В этом руководстве я проведу вас пошаговый процесс установки PrivateGPT на WSL с использованием ускорения GPU.

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments7

Как из Proxxon (дремеля) сделать сверлилку для плат

Level of difficultyMedium
Reading time2 min
Views8.2K

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

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

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

Читать далее
Total votes 21: ↑20 and ↓1+23
Comments32

Книги, которые можно рекомендовать любому программисту: от «Карьеры программиста» до «Математических алгоритмов»

Reading time4 min
Views18K

Привет, Хабр! Сегодня хотим представить подборку книг, которые было бы полезно прочитать любому программисту. Многие из них, вероятно, вами уже прочитаны, но если нет, рекомендуем ознакомиться. В подборке 7 книг — конечно, это субъективный выбор. Но если у вас есть любимые книги по разработке, которые вы можете рекомендовать, расскажите о них в комментариях, пожалуйста.

Читать далее
Total votes 12: ↑9 and ↓3+13
Comments13

От «Hello World» до включения программы в реестр российского ПО

Level of difficultyEasy
Reading time8 min
Views8.4K

В 2017 году я начал изучать Java. И, чтобы как-то визуализировать результат трудов, я решил сделать десктопное приложение (функционал продублирован в Telegram боте).

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

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

Читать далее
Total votes 26: ↑22 and ↓4+22
Comments23

Введение в Clickhouse движок AggregatingMergeTree

Level of difficultyEasy
Reading time11 min
Views10K

В процессе разработки витрин данных часто возникает задача предоставления клиентам данных в агрегированном виде. Если данных в хранилище немного, то их можно агрегировать “на лету”, но это плохая практика так как, чем больше будет копиться данных, тем дольше будут выполняться запросы, и тем больше Clickhouse будет съедать ресурсов. В этих случаях логично хранить данные в заранее агрегированном виде, вопрос лишь в том, как реализовать расчет данных агрегированных значений.

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

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

В рамках моей задачи хранилище данных (далее - DWH) реализовано в виде реплицированного кластера состоящего из 3 нод, данные на ноды распределяются равномерно в соответствии с ключом сортировки таблиц. Существует исходная таблица source, которая содержит столбцы id, timecode_1, metric_data - данные представляют собой временной ряд утилизации ресурсов с гранулярностью 1 минута. Данные поступают блоками каждые 2 минуты.

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments4

Как структурировать проект на Golang: гайд от backend-разработчика

Reading time4 min
Views39K

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

Когда я начинал писать на Go, то потратил много времени на поиски стандартов структурирования проекта. В итоге так и не нашел официального и точного стандарта — либо информация была неполной, либо это было не то, что нужно. Я решил написать свой гайд на основе опыта. Он для начинающих разработчиков и посвящен тому, как структурировать проект на Golang.

Читать далее
Total votes 17: ↑15 and ↓2+15
Comments17

Программирование — это про общение

Reading time9 min
Views10K

Когда выгорание по внутренним (и внешним) причинам достигает максимума, когда тошнит от одного воспоминания о том как выглядит IDE, когда мнится что в седло большой разработки больше не вернутся никогда, но, при всём при этом, вносить свой вклад в развитие индустрии хочется - остаётся одно.

Сменить угол обзора.

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

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

Давайте поговорим об этом
Total votes 29: ↑28 and ↓1+34
Comments12

Безвыигрышная лотерея под названием «секс»

Reading time6 min
Views49K

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

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

По моим наблюдениям (которые могут отличаться от нормального распределения Гаусса и объективной реальности) с таким запросом чаще обращаются мужчины в возрасте 28-35 лет, находящиеся более 4-5 лет в одних отношениях. Среди «отягчающих» обстоятельств можно назвать наличие маленького ребенка, ипотеку, высокоинтенсивную работу.

Читать, о чем нельзя говорить
Total votes 105: ↑68 and ↓37+53
Comments243

Кинотерапия — более 150 фильмов, которые пересматривают

Reading time6 min
Views53K

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

Для начала отделим мух от котлет. Психолог, психотерапевт, психиатр и невролог чем они отличаются? Самое простое отличие в том, что психолог не является врачом. Психотерапевт, психиатр и невролог - это врачи.

Читать далее
Total votes 48: ↑24 and ↓24+6
Comments141

Гайд по поиску и устранению утечек памяти в Go сервисах

Reading time4 min
Views6.9K

Привет меня зовут Игорь и я профессионально занимаюсь веб разработкой с 2005 года, раньше это называлось "веб-мастер", а сейчас full-stack developer.

На данный момент я tech lead в одной классной команде и иногда мне приходиться писать много текста в confluense, что бы не объяснять всё дважды и заодно приумножить knowledge base компании. Этот гайд мои "заметки на полях" в ходе исследования одного инцидента.

Читать далее
Total votes 9: ↑5 and ↓4+2
Comments4

Дефицита нет, платить не нужно

Reading time14 min
Views94K

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

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

Я берусь доказать, что основной тезис ошибочен. В РФ нет дефицита кадров. 

Читать далее
Total votes 260: ↑227 and ↓33+256
Comments472

Zeebe и Camunda: сравниваем известные BPM-системы под высокими нагрузками

Reading time12 min
Views25K

Всем привет! Меня зовут Николай Первухин, я Senior Java Developer в Райффайзенбанке. В последнее время я активно занимаюсь BPM-системами Camunda и Zeebe (основа Camunda-cloud). Если вы, как и я, с ходу не можете ответить на вопрос, кто быстрее — Camunda или Zeebe, насколько, и в каких случаях они могут тормозить, то добро пожаловать под кат.

Читать далее
Total votes 17: ↑16 and ↓1+15
Comments7

Senior Java Developer — как проходят собеседования

Reading time5 min
Views44K

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

Это не инструкция для прохождения собеседований, со списком вопросов.

Читать далее
Total votes 44: ↑29 and ↓15+18
Comments128

Как я «напрограммировал» себе скилл рисования диаграмм в скетч-стиле

Reading time5 min
Views26K

По работе мне часто приходится рисовать разные схемы, диаграммы процессов и графики, в том числе и те, которые потом используются в качестве иллюстраций для сайта, статей и презентаций. Всё бы ничего, но есть у диаграмм и графиков, сделанных в популярных онлайн-сервисах наподобие draw.io или lucidcharts одна беда — они выглядят как-то слишком уныло и «олдскульно», в духе «90-х». Всю эту инфографику хотелось бы сделать более заметной, привлекательной и душевной (и, желательно, без привлечения дизайнера).

Так у меня возникла идея создания инструмента для отрисовки диаграмм и графиков в стиле «нарисовано от руки». Об истории создания сервиса и «подводных камнях» я расскажу в этой заметке.

Читать далее
Total votes 157: ↑157 and ↓0+157
Comments37

А как вы определяете свойства переменными окружения в Spring Boot приложениях?

Reading time2 min
Views11K
image

А что, если я скажу, что подобное

#application.properties
spring.datasource.url=${SPRING_DATASOURCE_URL}?someProperty=${PROPERTY}

содержит ошибку. Не согласны? Разбор под катом.
Читать дальше →
Total votes 7: ↑4 and ↓3+3
Comments11

Задачки по программированию на BASIC для ZX Spectrum

Reading time2 min
Views14K
Недавно я участвовал в нескольких соревнованиях, которые проводились в Facebook-группе, посвящённой BASIC-программированию для ZX Spectrum. Там попадаются задачки разной сложности, но большинство из них можно решить, минут за 30 написав соответствующий код. Если вы хотите проверить или улучшить свои навыки программирования на BASIC — вам, возможно, будет интересно взглянуть на эти задачки.


Читать дальше →
Total votes 62: ↑60 and ↓2+80
Comments19
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity