Pull to refresh
32
0
Зеленый Андрей Сергеевич @Green21

User

Send message

Изучаем Python за 6 месяцев. Подробный план обучения

Level of difficultyEasy
Reading time5 min
Views234K

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

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

Читать далее
Total votes 47: ↑26 and ↓21+8
Comments87

Проверка содержимого PDF-файлов средствами Python и pdfminer. Часть 1

Level of difficultyMedium
Reading time12 min
Views3.1K

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

Читать далее
Total votes 9: ↑9 and ↓0+11
Comments2

Программирование на C в Linux на примере создания командной оболочки: часть 2

Level of difficultyMedium
Reading time55 min
Views7K

Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.

В первой части мы задали базовую структуру кода, разобрались с чтением вывода и созданием процессов. А в этой части нашей задачи будет дойти с альфа-стадии на бета-стадию — то есть реализовать прочий важный функционал, такой как: минимальная поддержка плагинов; автодополнение; подсветка синтаксиса; переменные окружения, новые встроенные утилиты.

Да-да, мы превратим наш велосипед в мопед! Я вынес из прошлой статьи итоги, и попытался решить все проблемы и замечания. Продолжаем погружение в пучины разработки под Linux!

Читать далее
Total votes 25: ↑24 and ↓1+33
Comments12

«А можно быстрее?»: разбираем методы ускорения обучения нейронных сетей

Level of difficultyMedium
Reading time21 min
Views3.8K

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

Например, последняя версия GPT-4 от OpenAI обучалась на большом GPU-кластере. По некоторым данным, она содержит около 1,8 триллиона параметров, а ее обучение обошлось более чем в 100 млн долларов. А модель Llama 3.1 405B, вроде бы оптимизированная под ограниченные ресурсы, все равно требовала более 15 триллионов токенов и свыше 16 тысяч GPU NVIDIA H100.

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

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

Читать далее
Total votes 25: ↑23 and ↓2+27
Comments0

Темные стороны контейнеров: риски и меры безопасности

Reading time5 min
Views3.3K

Гайнуллина Екатерина, инженер по информационной безопасности отдела развития Security Vision

Контейнеры Docker давно стали неотъемлемой частью современных IT-инфраструктур благодаря своей легкости и гибкости. Однако, несмотря на все их преимущества, они обладают и серьезными недостатками в плане безопасности. Представьте себе контейнер с root-доступом. Это, как если бы у вас была дверь с замком, но ключ от неё подходил бы ко всем замкам в доме.

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

Книжная полка DevOps-инженера

Level of difficultyEasy
Reading time9 min
Views17K

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

Я Сергей Задорожный, руководитель отдела платформенных решений банка «Центр-инвест» и один из авторов курса «DevOps для эксплуатации и разработки» от Яндекс Практикума. Раньше занимался написанием бэкендов на Java и Kotlin, потом занялся архитектурой, выстраиванием процессов, а сейчас заношу DevOps-практики в финтех-энтерпрайз.

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

Как простой Python-скрипт с использованием ИИ может оптимизировать ваш рабочий процесс

Level of difficultyEasy
Reading time6 min
Views21K

Программисты не понаслышке знают, как важно периодически давать отдых уставшим запястьям. И в этом случае возможность диктовки текста – будь то во время длительных сессий программирования или в стремлении к более эргономичной организации работы – может стать настоящим спасением. В данном туториале я вместе с вами подробно рассмотрю процесс создания современного инструмента для транскрибации речи в текст на языке Python, отличающегося высокой скоростью и точностью благодаря использованию ИИ, а именно API Whisper от Groq.

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

Приятного прочтения!

Читать далее
Total votes 26: ↑25 and ↓1+26
Comments9

Как оптимизировать размер контейнерного образа в Docker

Reading time6 min
Views6.1K

Введение


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

Я для сравнения покажу различные варианты Dockerfile, а в конце этой статьи приведу таблицу, в которой будет показано, образы какого размера получаются из каждого файла. Так вам будет проще оценить, каково влияние от каждого варианта оптимизации.
Читать дальше →
Total votes 11: ↑9 and ↓2+11
Comments6

JPA Entity. Загрузи меня не полностью

Level of difficultyEasy
Reading time16 min
Views7.3K

JPA часто подвергается критике за невозможность загружать сущности частично, что на самом деле является большим заблуждением. Spring Data JPA и Hibernate включают в себя множество инструментов по частичной загрузке сущностей. 

Команда Spring АйО подготовила статью, в которой рассмотрела имеющиеся в Spring Data JPA инструменты для частичной загрузки сущностей, а также разобрала их особенности и corner-кейсы.

Читать далее
Total votes 20: ↑19 and ↓1+18
Comments14

Микросервисы для тех, кто прикидывается разработчиком. Часть 1

Level of difficultyEasy
Reading time6 min
Views26K

«Скажите, какие основные преимущества микросервисов и почему?». Вероятно, это самых популярный вопрос последних 6–10 лет на любом собеседовании для бэкенд разработчика. Каким-то чудом он даже обогнал: «Назовите три принципа ООП» и «Чем отличается класс от объекта».

Читать далее
Total votes 21: ↑16 and ↓5+17
Comments16

Реактивное программирование со Spring, часть 2 Project Reactor

Reading time15 min
Views75K

Это вторая часть серии заметок о реактивном программировании, в которой представлен обзор Project Reactor, реактивной библиотеки, основанной на спецификации Reactive Streams.

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

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

Reading time7 min
Views43K

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

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

Flyway + Spring Boot: настройка и написание миграций баз данных

Level of difficultyEasy
Reading time11 min
Views2.7K

Написание скриптов миграции трудоёмкий процесс. И если есть возможность это дело автоматизировать – этим нужно пользоваться!

В этом гайде я расскажу как подключить и настроить Flyway в Spring Boot приложении, сгенерировать скрипты инициализации и миграции схемы базы данных вместе с Amplicode!

Читать далее
Total votes 14: ↑14 and ↓0+16
Comments3

10 книг по Python: как для новичков, так и для профи

Reading time5 min
Views56K

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

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

Как я улучшил производительность JSON-парсера в два раза

Level of difficultyMedium
Reading time6 min
Views13K

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

Читать далее
Total votes 13: ↑13 and ↓0+21
Comments17

Сумма степеней натурального ряда. Часть 1

Level of difficultyMedium
Reading time4 min
Views11K

Вам наверняка известна история о математике Карле Гауссе. Когда ему было восемь лет, учитель задал его классу задачу посчитать сумму всех натуральных чисел от 1 до 100. Пока остальные дети трудились над последовательным сложением, Гаусс нашел простое и изящное решение. Он заметил, что числа можно сгруппировать в 50 пар с одинаковой суммой и мгновенно получил ответ 50\cdot 101 = 5050.

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

В этой статье мы рассмотрим графический метод нахождения формул для суммы степеней натурального ряда.

Читать далее
Total votes 35: ↑34 and ↓1+46
Comments35

Как расширить JPA для работы с PostgreSQL

Level of difficultyMedium
Reading time4 min
Views5.8K

Всем привет! Меня зовут Антон, я — архитектор компании ITFB Group. Пережив несколько проектов, на которых встречается стек PostgreSQL с использованием связки PostgreSQL + JPA, мне удалось устранить большое количество проблем, связанных с неоптимальной интеграцией функциональности PostgresSQL в Java-приложения. В этой cтатье мы максимально подробно разберем, как можно настроить JPA для эффективной работы с PostgreSQL. Всем, кому интересна эта тема, добро пожаловать под кат)

Читать далее
Total votes 9: ↑7 and ↓2+7
Comments8

Переезд на Spring Boot 3.0 c версии 2.0: какие сложности могут возникнуть

Level of difficultyMedium
Reading time6 min
Views5.5K

Привет, Хабр! Я Артем Киреев, ИТ‑инженер в СберТехе. Мы с командой занимаемся развитием продукта из состава Platform V Synapse — децентрализованной платформы для задач интеграции. Мы стремимся поддерживать актуальность стека, на котором разрабатываем наши продукты, и регулярно отслеживаем все изменения. Обратившись к таблице поддерживаемых версий на официальном сайте Spring, мы обнаружили, что версии Spring Boot ниже 3.0 больше не поддерживаются. Поэтому мы решили, что нужно перевести проект на последнюю из существующих версий. На момент написания статьи это Spring Boot 3.2.

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

Читать далее
Total votes 24: ↑20 and ↓4+22
Comments1

Настройка Git сервера с нуля

Level of difficultyEasy
Reading time12 min
Views13K

Любой начинающий DevOps начинает своё знакомство с Git. Этот инструмент стал неотъемлемой частью рабочего процесса разработчиков по всему миру. Во многих курсах и руководствах по DevOps описывается настройка серверов через популярные платформы, такие как GitLab, а иногда и Gitea. Однако мне стало интересно попробовать другой путь — использовать встроенный в Git инструмент GitWeb.

Подробнее
Total votes 28: ↑25 and ↓3+24
Comments21

Spring Boot 3.2: замените свой RestTemplate на RestClient

Level of difficultyEasy
Reading time4 min
Views10K

Эта статья по Spring Boot 3.2 посвящена надстройке над  WebClient, которая называется RestClient и представляет собой более интуитивный и современный подход взаимодействия с RESTful сервисами.

В мире Spring Boot отправка HTTP запросов к внешним сервисам является весьма распространенной задачей. Традиционно при достижении этой цели разработчики полагались на  RestTemplate. Однако, по мере развития Spring Framework, на свет появился новый и более мощный способ обработки HTTP запросов: так называемый  WebClient. Spring Boot 3.2 представил нам надстройку над  WebClient, которая получила название RestClient. 

RestClient предлагает нам более современные и интуитивно понятные способы взаимодействия с RESTful сервисами. 

Читать далее
Total votes 19: ↑19 and ↓0+20
Comments7

Information

Rating
Does not participate
Location
Краснодар, Краснодарский край, Россия
Works in
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Technical Support Engineer
Senior
Web
Restful WebServices
RESTful API
FullStack
NestJS
Vue.js
TypeScript
TypeORM
C#
Python