Pull to refresh
4
0
Send message

Советы по программированию, которые бы я дал себе 15 лет назад

Level of difficultyMedium
Reading time8 min
Views32K


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

▍ Если ты (или твоя команда) постоянно стреляешь себе в ногу, то почини ружьё


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

Когда я занимался разработкой для iOS, то использовал CoreData и подписывался на изменения нескольких view. Обратный вызов подписки поступал в тот же поток, из которого было запущено изменение. Иногда это был основной поток, а иногда — фоновый. В разработке для iOS важно то, что вносить изменения в UI можно только в основном потоке, иначе приложение вылетит. Поэтому подписка могла работать нормально, но потом ломалась, когда кто-то запускал изменение из фонового потока или вы позже добавляли обновление UI.

Все без раздумий воспринимали это как что-то само собой разумеющееся, и об этом часто говорили в ревью для новичков в команде. Время от времени кто-нибудь ошибался, и мы добавляли DispatchQueue.main.async, когда видели отчёт о сбое.

Я решил это исправить. У меня ушло десять минут на внесение изменений в слое подписки, теперь подписчики вызывались в основном потоке, что позволило избавиться от целого класса сбоев и сняло с нас часть умственной нагрузки.
Читать дальше →
Total votes 45: ↑43 and ↓2+59
Comments16

Простой способ развернуть локальный LLM

Level of difficultyEasy
Reading time4 min
Views13K

Большие языковые модели (LLM, Large Language Models) стали незаменимыми инструментами для разработчиков и исследователей. С их помощью можно решать разнообразные задачи.. Однако использование таких моделей часто связано с зависимостью от внешних сервисов, что накладывает определённые ограничения. Локальное развертывание LLM позволяет сохранить контроль над данными и гибко настроить модель под конкретные нужды, используя при этом преимущества локальной инфраструктуры.

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

Читать далее
Total votes 13: ↑12 and ↓1+16
Comments11

Тест поддельного шуруповерта Makita

Reading time6 min
Views89K

Это самый популярный шуруповерт на Wildberries. Каждый месяц их продают примерно по 8-9 тыс. штук на 15 млн. руб. Все остальные шуруповерты отстают по продажам в разы.

Скорее всего люди клюют на привлекательный ценник: за 2 тыс. руб. обещают мощный шуруповерт в пластиковом кейсе с двумя аккумуляторами, набором бит и насадок. Внешне он как бы приличный. Отзывы, как нынче водится, практически все «няшные».

Для разборщика фейков это отличный экземпляр. Например, не каждый день встретишь 48-вольтовый аккумулятор емкость 4 А*ч (192 Вт*ч) размером с пауэрбанк на 36 Вт*ч.

А вот для рядового покупателя это опасное приобретение.

Читать далее
Total votes 201: ↑198 and ↓3+247
Comments290

Гайд по работе языковых моделей для начинающих

Level of difficultyMedium
Reading time13 min
Views8.7K

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

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

Я проанализировал 250 комментариев под статьёй о том, как не смог «войти в IT в 35 лет». Вот ваши самые полезные советы

Level of difficultyMedium
Reading time4 min
Views97K

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

Итак, самый сок
Total votes 61: ↑44 and ↓17+37
Comments265

Топ бесплатных нейросетей на все случаи жизни

Reading time10 min
Views70K

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

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

Читать далее
Total votes 46: ↑31 and ↓15+21
Comments18

Как определять объекты с ptz камеры

Reading time10 min
Views2.8K


В статье предлагается рассмотреть практические моменты применения ptz камеры (на примере модели Dahua DH-SD42C212T-HN) для детектирования и классификации объектов. Рассматриваются алгоритмы управления камерой через интерфейс ONVIF, python. Применяются модели (сети): depth-anything, yolov8, yolo-world для детектирования объектов.
Читать дальше →
Total votes 6: ↑6 and ↓0+10
Comments13

Интеграция модели GPT-4 Omni в телеграм бота на Python

Reading time5 min
Views5.5K

13 мая 2024 года, OpenAI официально представила новую модель Omni. 

Преимущества модели в том, что она умеет работать со всем контентом (текстом, звуком и изображениями) и знает 50 языков.

И сегодня мы интегрируем эту модель в небольшого бота на Python.

Читать далее
Total votes 8: ↑6 and ↓2+6
Comments5

Как анонимно продать или купить крипту

Reading time5 min
Views53K

Сервис по мониторингу обменников Exnode

Как известно, анонимность — одно из базовых прав человека. В мае 2015 года Совет по правам человека ООН опубликовала доклад, который прямо называет анонимное использование интернета частью базовых прав человека:

«Шифрование и анонимность позволяют людям осуществлять свои права на свободу мнений и их свободное выражение в цифровой век и ввиду этого должны заслуженно пользоваться надёжной защитой», — из доклада ООН, 22.05.2015 г.

Особенно актуальна эта задача при обращении с финансами. Фиат и биткоин изначально задумывались как анонимные и приватные деньги, но на практике в 21 веке государство стремится отслеживать все транзакции, а личность пользователя можно вычислить, если он не принял меры безопасности.
Читать дальше →
Total votes 65: ↑63 and ↓2+76
Comments166

Вы сами это читали: как стать лучшим автором месяца

Level of difficultyEasy
Reading time10 min
Views5.4K

Когда-то давным-давно (почти десять лет назад) мне пришлось писать довольно много статей для разных компаний, которые впервые выходили на Хабр. Среди них были совсем небольшие стартапы, IT-компании побольше, международные корпорации, и все они хотели одного: написать статью, которую все прочитают, запомнят и к которой читатели непременно вернутся. Практически утопия. Идея найти формулу идеальной статьи сродни попыткам отыскать философский камень: вроде все компоненты есть, рецептура есть, но всегда чего-то не хватает. И кажется, что на Хабре волшебную формулу ищут многие. Кто-то пишет статью с самым высоким рейтингом, кого-то добавляют в закладки сотни пользователей, кто-то — мастер вызывать аудиторию на обсуждение и собирает буквально бесконечные ветки комментариев. А если автор опытный, то он периодически миксует суперспособности своих публикаций.

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

Читать далее
Total votes 37: ↑32 and ↓5+54
Comments38

Взламываем игры с помощью Python

Level of difficultyEasy
Reading time4 min
Views24K

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

А на днях мне вдруг захотелось вспомнить молодость и поиграть в бумерский диаблойд под названием Titan Quest, выпущенный аж в 2006 году. Да вот только времени на беготню, прокачку, и вот это вот всё, у меня нет. И ArtMoney нет. Зато есть определенные знания программирования. Вот я и решил совместить приятное с полезным, написав аналог ArtMoney на Python, а заодно стать супербогатым, хотя бы в Titan Quest.

Читать далее
Total votes 33: ↑30 and ↓3+30
Comments38

Создание аналога Google Photos на собственном сервере

Level of difficultyEasy
Reading time4 min
Views34K

Создание собственного облачного хранилища с автоматическим менеджером фотографий.

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

Читать далее
Total votes 23: ↑21 and ↓2+26
Comments83

Малоизвестные фичи XRay, о которых невозможно молчать

Level of difficultyEasy
Reading time8 min
Views25K

В этом посте я кратко поведаю о разных интересных возможностях XRay (клиент и сервер для протоколов VMess, VLESS, Trojan и других, в том числе с XTLS-Reality и XTLS-Vision), о которых, кажется, мало кто знает, но которые могут оказаться очень полезными.

Оглавление:

- Фрагментирование запросов
- QUIC-транспорт
- Мониторинг и автоматический выбор outbound'а
- Сбор статистики
- Browser dialer

Читать далее
Total votes 48: ↑48 and ↓0+58
Comments24

4 тысячи заметок?! Как я веду личную базу знаний в Obsidian

Reading time6 min
Views57K

В моей базе знаний 4 000 заметок.

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

Читать далее
Total votes 52: ↑45 and ↓7+50
Comments108

Подборка игр с низкоуровневым программированием

Level of difficultyEasy
Reading time5 min
Views35K

TL;DR

Игры от Zachtronics:

TIS-100, EXAPUNKS, SHENZHEN I/O

Про создание процессора от логических элементов и до написания кода на ассемблере: браузерная бесплатная nandgame.com, более продвинутая Turing complete.

Если Вам нравится какая-то игра из перечисленных - наверно, и остальные тоже подойдут. В каждую из них я наиграл по 30+ часов, получил кучу удовольствия и научился чему-то новому.

Подробности
Total votes 67: ↑66 and ↓1+79
Comments26

Как я в 35 пытался стать Python-разработчиком, и почему у меня [пока] ничего не вышло

Reading time4 min
Views74K

Мои родители инженеры микроэлектронной техники, мой младший брат ML-разработчик уровня lead, друзья — системные и бизнес-аналитики. А я — гуманитарий. Мне не повезло. С характером, способностями, обстоятельствами, мало ли чем ещё. В какой-то момент я понял, что так больше не может продолжаться и решил в свои тогда ещё 34 года «залететь в ИТ». Выбрал курсы по Python на степике, потому что это самый популярный и довольно простой язык. Вдохновился историями «старокодящих», которые смогли. Почитал новости о диком дефиците программистов в России. И с головой ушёл в обучение.

Что могло пойти не так?
Total votes 46: ↑27 and ↓19+17
Comments250

Установка LLM на скромном VPS

Level of difficultyMedium
Reading time6 min
Views9.6K

«Я тебя завалю, если ещё раз упомянешь AI», — писал автор нашумевшей статьи. В самом деле, хайп вокруг ИИ всем надоел. Но мы всё-таки рискнём поговорить о том, какую LLM поставить на своём сервере и зачем.

Сразу упомянем, что на серверах RUVDS установлены видеокарты NVIDIA Quadro P4000 (на фото). Карты довольно слабенькие, так что подойдут скорее для проектов в образовательных целях и т. д. Тем более что под VPS выделяется максимум 1 ГБ видеопамяти. Но даже в таких спартанских условиях можно запустить LLM.

Кстати, о VPS с видеокартой. Несколько лет назад мы уже писали о сферах их применения и даже проводили тесты. Всё это можно найти здесь.
Читать дальше →
Total votes 32: ↑30 and ↓2+46
Comments17

Самопаркующийся авто за 500 строк кода

Level of difficultyMedium
Reading time21 min
Views19K



TLDR


В этой статье мы научим авто самостоятельно парковаться с помощью генетического алгоритма.


Мы создадим первое поколение авто с произвольными геномами, которое будет вести себя примерно так:





Примерно на сороковом поколении авто начнут понимать, что такое авто-парковка, и начнут приближаться к парковочному месту:




Читать дальше →
Total votes 63: ↑63 and ↓0+84
Comments27

AuraFlow — новейшая модель для генерации изображений с открытым исходным кодом

Level of difficultyEasy
Reading time4 min
Views3.9K

AuraFlow — крупнейшая и полностью открытая модель генерации изображений по текстовому описанию, основанная на технологии потоковых моделей (flow-based models).
Модель достигает передовых результатов по метрике GenEval и представляет собой значительный шаг вперед в области открытых моделей ИИ для генерации изображений.
Эта модель поддерживается командой FAL. Демо доступно на платформе HuggingFace здесь.

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

Ещё мы сделали для вас простую удобную портативную версию с установкой в один клик, если вы хотите локально и без костылей насладиться AuraFlow.

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

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

Как я настраивал платежи и реферальную систему продаж «Приведи друга» в Telegram боте

Level of difficultyMedium
Reading time7 min
Views5.5K

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

Читать далее
Total votes 15: ↑7 and ↓8+1
Comments33

Information

Rating
6,252-nd
Registered
Activity

Specialization

Backend Developer, Mobile Application Developer
Junior
Python
Git
Kotlin
Android development