Программизд
178 subscribers
50 photos
2 videos
123 links
Backend developer, borisd.ru

Блог о программировании, бэкенде, IT и не только.

@hpdbru - собираю коллекции.

Иногда не пишу по две-три недели.


@purchase_list_bot
Download Telegram
Недавно задумался о бизнес-идее: сделать футбольную платформу, где каждый мог бы завести себе AI-игрока по аналогии с настоящим футболистом, мог бы прокачивать его скиллы и присоединяться к командам, получать за это зарплату от владельцев команд. На платформе были бы всякие лиги, чтобы команды могли в них участвовать, завоевывать титулы, покупать игроков (тех "настоящих"), заниматься трансферами и т.п.

Начал ресерчить, сразу наткнулся на проект от гугла
https://research.google/blog/introducing-google-research-football-a-novel-reinforcement-learning-environment/

https://github.com/google-research/football

они даже сделали один подобный турнир с Manchester City F.C.: https://www.kaggle.com/c/google-football

Потом я понял, насколько много в этой идее подводных камней и препятствий, что сократил ее просто до серии пенальти, но и это решил уже не делать. На продвижение подобного нужны огромные деньги и не факт, что выстрелит. Проще такое же, но не с AI, а просто игроками в фифу на консолях, но такое уже есть.
1👎1
Ковырялся с редисом и, как обычно, решил посмотреть блог его создателя. Т.к. я его уже неоднократно читал, в голове сразу всплыл адрес.
Это один из продуктивных текстовых блогеров: последний пост был 2 дня назад, а первый 4538.

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

antirez.com

#hpdb
👍2
Корнер-кейс с циклами (в го): если ограничивающее значение (; i <= X;) цикла передается извне, то возникает опасность, что передадут максимальный int и цикл станет бесконечным из-за переполнения i

func main() {
maxUint32 := ^uint32(0)
fmt.Println(maxUint32 - 1)
fmt.Println(maxUint32)

for i := maxUint32 - 1; i <= maxUint32; i++ {
fmt.Println("iter", i)
}
}

// 4294967294
// 4294967295
// iter 4294967294
// iter 4294967295
// iter 0
// iter 1
// iter 2
// ...


func main() {
k := ^uint32(0) / 2
j := int32(k) // max int32
fmt.Println(k, j+1)
c := 0
for i := j - 1; i <= j; i++ {
fmt.Println(i)
c++

if c > 5 {
break
}

}
}

// 2147483647 -2147483648
// 2147483646
// 2147483647
// -2147483648
// -2147483647
// -2147483646
// -2147483645
Коллеги подкинули годноту для залипания: документация к первой части The Sims
Очень интересно наблюдать за тем, как, казалось бы развлекательный продукт из 2000-х, имеет внутри такое количество нюансов, сложностей и продуманных аспектов!
👍1
Побывал в Японии и увидел, что знаменитый своими инвестициями SoftBank, оказывается, это мобильный оператор с точками продаж там на каждом шагу.
🔥1
Программизд
Захотелось новый проект Я прохожу через процесс поиска работы последнее время, и очередной раз вспомнил, что в масштабе он требует контроля и управления. Для наведения порядка я заиспользовал доску в trello с колонками: - init: переписка/подача завявки …
Один из самых популярных постов - проект "Job Tracker'а".

И вот мой проект готов! (шучу)

Сейчас прорабатывал эту идею и, посреди разговоров с ChatGPT, он мне выдал конкуретнтов (которых не давал по явному запросу о конкурентах)
- https://huntr.co/
- и tealhq .com (какой-то отстой)

Huntr меня впечатлил своим UI и виджетом для браузера, кладущим в закладки работы из linkedin. Идея с "My Job Trackers" - отдельными досками для поиска работ, а не одной общей, мне показалась крутой.

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

Жесткий упор на AI: генерация резюме, ответов на письма, подготовки (и все это платно).

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

Все-таки продолжаю думать над своей релаизацией: простой трекер + социальная составляющая, типа www.teamblind.com, чтоб можно было обсуждать вакансии и прогресс, смотреть на успехи других людей и мотивироваться, смотреть старые записи и делать выводы. Стоит ли? 👍/👎
👍1👎1
Когда приходится влазить в старый код, самое неприятное препятствие для внесения изменений - отсутствие слоев.

Есть "api -> model -> storage"

Самое худшее - когда одна структура отвечает за все: и за маппинг на БД, и за ответ в АПИ, например:

type Model struct {
ID int `json:"id" db:"id"`
Field string `json:"field" db:"field"`
}


В идеале, json тэги должны быть на полях отдельной структуре ответа, а db тэги на отельной структуре-сущности, структура-модель без тегов (тэги в го это знак того, что структура используется для десериализации json/чего-то еще).

В худшем случае, когда все на одной структуре, ты не можешь даже изменить поля в БД, не задев АПИ.

В лучшем случае же (когда слои есть) кажется, что все это избыточно: респонс повторяет поля модели, модель повторяет поля сущности. Но это только кажется избыточным: этот подход позволяет менять БД на ходу, вводить новые версии АПИ и делать что угодно, не задевая старый код.
💯4
Я в равной мере использую все gpt, но grok.com стал генерить прототипы сайтов, как только я ему описываю идею. Страшнее всего, что прототипы еще и более менее рабочие.
Давно заметил, что чтобы твой блог набрал подписчиков, надо делать что-то такое, что вызывает легкую зависть мотивацию/способ развиваться.

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


Прикольный пост с реверс-инжинирингом синтезатора от инженера компании-разработчика flipperzero:

https://psi3.ru/blog/swl01u/

https://t.iss.one/anyatimatter

#hpdb
Программизд
Код Хэмминга, новый сайт 1. Реализовал давно сидевшую идею по интерактивным алгоритмам на своем сайте всеего спустя 7 лет. Первый - https://borisd.ru/algorithms/interactive/hamming-code/ Скидывайте друзьям. С компа интерактивность удобнее. С визуализацией…
Не знаю получится ли, но хочу вернуться к развитию своего сайта.

На выходных провозился с генерированием индексных страниц (типа /blog), освежил всякие нюансы в Гэтсби, например, не заметив отсутствующего “export”
export const query = graphql’…’

… Page({data}) {…}

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

Но теперь страницы есть, осталось писать блог и статьи.

https://borisd.ru/blog/2025/06/first-post/
Вчера начал готовить интересную (на мой взгляд) статью или серию статей по алгоритмам, надеюсь запостить на выходных.

А пока - не знаю что делать с hpdb, сайт я вряд ли оживлю, тут постить все подряд тоже не охота, решил завести отдельный канал:

https://t.iss.one/hpdbru

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

Если кто-то интересуется - подписывайтесь: @hpdbru
Список "смотреть позже" на youtube можно так же было назвать "смотреть никогда".
В ленту подмешиваются видео из этого списка, которые я добавил несколько лет назад и все еще нахожу их интересными, но все еще не готов смотреть. И все еще добавляю в этот список, есть в этом что-то успокаивающее.

Та же идея применима к открытым вкладкам в браузере. Если она открыта больше 1 дня - можно смело закрывать (ментально переместив ее в "смотреть позже"). Или тупо раз в день берешь и закрываешь все, кроме текущей.
👍4💯4
Пока пишу свою большую интерактивную статью с алгоритмами, пришло в голову постить свои диалоги с LLM отдельной рубрикой.

Иногда в голову придет интересный вопрос, спрошу ChatGPT/grok/gemini/deepseek, получу интересный ответ, а пошарить никак.

https://borisd.ru/articles/dialogs-with-llms/old-hardcore-engeneers-vs-hft/
1
Теория завышенной численности Телеграма

временный пост, удалю потом, на всякий случай

Сколько я слышал, что у телеграма огромная аудитория, что экс-СССР там составляет малый процент, но не вижу этому подтверждений.

Я знаю полно русскоязычных блогеров, у которых большая аудитория и хорошая активность в комментах, но ни одного англоязычного (какие-то каналы есть, но без комментов, и не факт, что аудитория не русскоязычная).

Это только мое мнение, но все, что продвигает Дуров, имеет огромные числа подписчиков, при этом везде отключены комменты, а если они включены, там просто какой-то спам. Либо миллионы подписчиков, но активность как от тысяч.

Сейчас спрашивал у LLMок привести мне пример реально популярных каналов в телеге не на русском, он мне привел только каналы экспатов, изучение английского, криптоскам и т.п. Как возможно не найти нормальных примеров при таких цифрах?

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

Может вы знаете примеры? Если нет, жмите 👍

https://www.youtube.com/watch?v=1TON5W_SNKY
👍5
Хочу сделать очень полезный мигающий светодиод

Не знаю сколько лет мне понадобится
👍5😁1
faang уже не тот
😁8💯21
Написал небольшой постик в блоге https://borisd.ru/blog/2025/07/when-to-rest/

Я потерял много лет, откладывая некоторые дела на выходные, это как с той вкладкой "смотреть позже” на ютубе.

Чтобы что-то сделать, нужно делать это в рабочие дни, завершать работу по графику, ведь она никуда не убежит.
Каждый день кажется, что сегодня самый важный день, сегодня надо добить задачу и станет легче. Но легче никогда не станет, надо просто забить и закрыть рабочий ноут ровно в 6 вечера. Идти учить английский, качаться и т.п.

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

https://www.youtube.com/watch?v=cK25bJV8JZg (пример)

*забил на идею завершить статью или серию статей по алгосам с заходом издалека, пока запостил как есть https://borisd.ru/articles/order-matching/naive-1/
👍4💯2🔥1
Не знаю, давно ли, но в хроме теперь тоже AI с добавлением запросов в контекст, иногда даже что-то полезное может выдать (недавно спрашивал, почему он на таком-то запросе пишет про CORS)