Search
Write a publication
Pull to refresh
0
0
Send message

Огромный гайд по настройке рабочего окружения: Linux, VScode, Python

Level of difficultyEasy
Reading time29 min
Views59K

Привет всем!

Как обычно это и бывает, я накопил критическую массу мыслей, и пора их как-то систематизировать, чтобы вы, мои замечательные читатели Хабра, могли что-то извлечь из моего опыта или поделиться своим :)

Я люблю и одновременно ненавижу статьи-обзоры в стиле «10 программ для {whatever}». Ненавижу — потому что их очень легко делать, вбил в гугл «программа для X», взял первые 10 ссылок, статья готова. Я называю такие статьи «лёгкий рейтинг». А люблю я их за то, что даже если 9 пунктов — чушь полная, то десятый, как правило, годный, я узнаю что-то новое, это что-то облегчает мне жизнь и позволяет мне быть более продуктивным.

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

Статья получилась ОГРОМНАЯ, и у меня был большой соблазн разбить её на сотню статей поменьше, чтобы в каждой ставить ссылки на свой телеграм-канал и получать гонорар за каждую по отдельности. Но я не буду. Пусть знания будут сгруппированы вместе. Welcome!

Читать далее

Математика надёжности. Доклад Яндекса

Level of difficultyEasy
Reading time18 min
Views15K

Вадим Мартынов, руководитель команды платформы надёжности в Яндекс Go, в своём докладе рассказал, как влияют те или иные решения на надёжность системы и как это учитывать при разработке.

Читать далее

Tinkoff CTF 2024: разбор демозадания

Level of difficultyMedium
Reading time11 min
Views29K

В апреле пройдет второй Tinkoff CTF для ИТ-специалистов. В этой статье мы рассказываем о соревновании и разбираем одно из демозаданий CTF. Статья поможет лучше подготовиться, даже если вы никогда не участвовали в подобных мероприятиях.

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

Если вы любите интересные задачи, приглашаем под кат.

Почитать про задания

7 распространенных ошибок в SQL-запросах, которые делал каждый (почти)

Reading time6 min
Views94K

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

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

Кстати, иногда такая же участь постигает и специалистов более высокого полета. 

Сегодня мы решили собрать 7 таких ошибок в одном месте, чтобы как можно меньше людей их совершали.

Читать далее

Топ 6 идей для ваших ML pet-проектов в 2025 году

Reading time9 min
Views3.1K

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

погрузиться в мир pet-проектов

Мой первый контейнер без Docker

Level of difficultyMedium
Reading time6 min
Views42K

Технологии контейнеризации, возможно, как и у большинства из нас, плотно засели в моей голове. И казалось бы, просто пиши Dockerfile и не выпендривайся. Но всегда же хочется узнавать что‑то новое и углубляться в уже освоенные темы. По этой причине я решил разобраться в реализации контейнеров в ОС на базе ядра linux и в последствие создать свой «контейнер» через cmd.

Читать далее

Как устроен PyTorch. Чему я научился, самостоятельно реализовав PyTorch без абстракций Python

Reading time11 min
Views13K
Некоторое время назад я задал себе задачу — реализовать micrograd на Rust, используя для этого только стандартную библиотеку. Занимаясь этим, я подумал, что интересно было бы попробовать реализовать на базе micrograd полнофункциональную библиотеку тензоров. Я знаком с PyTorch и поэтому полагал, что это облегчит мне задачу. Но в условиях, когда под рукой нет высокоуровневых абстракций Python, эта задача оказалась гораздо сложнее, чем виделась на первый взгляд.

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

Как я построил serverless OCR-сервис на AWS Lambda и Amazon Bedrock

Level of difficultyMedium
Reading time13 min
Views1.6K

В этом посте я расскажу, как на практике за пару часов реализовал serverless OCR-сервис на AWS, используя AWS Lambda и модель из Amazon Bedrock. Статья ориентирована на опытных AWS-архитекторов, поэтому мы углубимся в архитектуру, покажу код (Terraform для инфраструктуры и Python для Lambda), обсудим масштабирование, ограничения и прикинем стоимость решения в регионе eu-central-1 (Франкфурт).

Читать далее

Порядок следования столбцов в таблицах PostgreSQL

Level of difficultyMedium
Reading time17 min
Views9.5K

Порядок столбцов в таблицах влияет на компактность и производительность. При небольшом числе строк на это не обращают внимание. Если в таблицах хранится много строк, то даже небольшое уменьшение объема хранения может быть полезно. У столбцов есть оптимальный  порядок и менее оптимальные, которые отличаются размером, который используют строки при физическом хранении. Причина того, что переставив столбцы строки в таблице с теми же самыми данными, меняют размер в выравнивании (aligning) и заполнении нулями (padding). В блоке данных выравниваются все структуры: заголовки, поля строк и целиком сами строки.

На 64-разраядных операционных системах, длина любой строки и заголовка строки  выравниваются по 8 байт. То есть если строка занимает 28 байт, то физически она займёт 32 байта. В конец строки будут добавлены пустые байты. Поля выравниваются сложнее - по 4,8, 16 байт. В статье рассматривается перестановка столбцов на примере демонстрационной базы.

Читать далее

Модель C4, DFD и диаграмма Ганта на PlantUML

Level of difficultyEasy
Reading time6 min
Views4.5K

Привет Хабр! Меня зовут Татьяна Ошуркова, я системный аналитик и разработчик. В прошлом году у меня вышла статья Не UML-диаграммы на PlantUML. Обзор с примерами, где я рассмотрела различные диаграммы не в нотации UML, которые можно построить с использованием возможностей PlantUML. В этой статье я хочу разобрать построение и других диаграмм, которые использует системный аналитик в своей работе.

Читать далее

Telegram бот + ИИ Jlama своими руками

Level of difficultyHard
Reading time5 min
Views5.6K

Хабр, привет! Сегодня мы попробуем сделать свой ИИ с телеграм ботом для возможности простого общения с ней. Сразу оговорюсь, мы не будем в очередной раз использовать открытый API ChatGPT или новомодного Deepseek. Мы развернем свой полноценный ИИ локально и сынтегрируем его с телеграм ботом.

Читать далее

Пишем свой PyTorch на NumPy. Часть 1

Level of difficultyEasy
Reading time16 min
Views9K

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

В этой статье мы реализуем собственную библиотеку машинного обучения на NumPy!

Читать далее

Решаем проблему устаревания кэширующих серверов. Смотрим на телевизоре. Не VPN

Reading time3 min
Views106K

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

В качестве нашего «кэширующего» сервера будем использовать дешевый одноплатный компьютер MangoPi MQ-Quad (или другой аналогичный), стоимостью не более $29.

Читать далее

Бесплатное обучение фулстек-разработке веб-сервиса с нуля по видео-урокам с исходным кодом и поддержкой

Level of difficultyMedium
Reading time7 min
Views45K

TLDR. Я примерно год создавал курс из 141 урока. Курс получился хороший, все кто проходят рады и пишут положительные отзывы. Я пытался его продавать, в лучшем случае у меня получалось отбивать рекламу в ноль. Короче, я хороший разработчик, я хорошо доношу материал, но я плохой маркетолог. Все эти таргреты, ретаргеты, воронки, шморонки — тоска унылая. Мне гораздо веселее и понятнее заработать на создании и запуске IT-продуктов, чему я и учу в этом учебнике. Так что пишу эту статью, чтобы сообщить вам о существовании моего курса и предложить всем желающим абсолютно бесплатно получить от него пользу 🙂

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

Читать далее

Барьеры и модели памяти – explained

Level of difficultyMedium
Reading time7 min
Views6.2K

Всем привет! 

Начну с предыстории.

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

Однако, на тот момент я тоже об этом не знал, и нам повезло, что мы изначально везде использовали модель памяти Sequential Consistency (что это – далее в статье), поэтому все прошло гладко. Теперь, зная про модели памяти и возможные последствия, боюсь представить, что было бы в противном случае.

Как родилась статья

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

Статья основана на материалах лекции Computer Science Center (CSC) с курса “Параллельные вычисления” преподавателя Калишенко Е.Л. Крайне рекомендую ознакомиться со всеми лекциями курса (более структурированного материала по теме я еще не встречал). Благо он в открытом доступе – ссылка.

Что такое барьеры памяти и зачем это все нужно?

Начнем с небольшого описания того, как устроена “условная” архитектура процессора. Почему условная? Потому что может отличаться в зависимости от конкретной реализации, но суть похожа. 

Читать далее

Как честно распределить вычислительные ресурсы? Показываем на примере YTsaurus

Reading time14 min
Views2.1K

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

Меня зовут Егор Щербин, я работаю в Yandex Infrastructure, в команде планировщика YTsaurus. О нём и расскажу в этой статье. А также о запуске вычислений в кластере YTsaurus, распределении ресурсов между вычислениями и о том, как управлять распределением, чтобы все операции получали ровно столько, сколько требуется.

Читать далее

Как мы строим публичное облако с нуля: опыт MWS

Level of difficultyMedium
Reading time10 min
Views5.8K

Привет, Хабр! Меня зовут Данила Дюгуров, я CTO MWS. Сегодня расскажу, как наша команда создаёт облако MWS, и на его примере разберу ключевые концепции, которые лежат в основе построения облаков в целом: от аппаратного обеспечения и выбора сетевой архитектуры до организации работы в инфраструктурной команде. А ещё порассуждаю о том, что лучше для облачного провайдера — вендорский софт или OpenStack — и что в итоге выбрали мы. Спойлер: ни то ни другое.

Читать далее

Как я собирал свой первый домашний сервер

Level of difficultyEasy
Reading time11 min
Views40K

В этой статье поделюсь как я собирал свой первый домашний сервер для виртуализации, с какими трудностями столкнулся на всем пути сборки и как их решал (правильно или неправильно), поделюсь личными выводами. А в конце посчитаем все это дело в цифрах (на первую половину 2023 года). Фото различных элементов прилагаются.

Читать далее

Запускаем Yolo на пятирублёвой монете или Luckfox Pico Mini

Level of difficultyMedium
Reading time29 min
Views27K

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

Мне удалось добиться скорости детекции в 15 FPS (или даже 50!), результат, который по силам далеко не каждому одноплатнику.

Читать далее
1
23 ...

Information

Rating
Does not participate
Registered
Activity