malloc(inf * sizeof thought);

Telegram Channel: @mall0c
Description: Произошло динамическое выделение памяти на неопределенное количество мыслей, пул памяти заполняется…

PLs: C, Go, TS/JS, Python
Subscribers: 8
Posts: 41
Created: January 13, 2024

malloc(inf * sizeof thought); [0x00000028]

Последний видос Прайма про Go у меня вызвал немного недоумения

Я понимаю, почему кому-то может не нравиться направление развития языка. Можно считать, что generics были ошибкой, что Go теряет часть своей первоначальной простоты при использовании новых фич и т.д. Это нормальная позиция.

Но я не очень понимаю, почему из этого следует, что сам Go становится каким-то плохим языком лол.

Тебе никто не мешает писать на Go так, как ты писал раньше. Не хочешь generics - не используй. Не нравится часть новых возможностей - игнорируй их. Язык не заставляет тебя применять каждую новую фичу.

При этом он сравнивает Go с Odin, хотя это вообще разные философии и ниши, хоть в Odin и есть некоторые хорошие заимствования из Golang. Odin ближе к миру C/C++, GameDev и системного программирования, где важны контроль над памятью и железом. Go же создавался прежде всего для инфраструктуры, backend-сервисов, сетевых приложений и инструментов, где важны простота, предсказуемость и поддерживаемость кода. Как и зачем их сравнивать вообще хз.

То, что тебе лично ближе Odin, абсолютно нормально. Но это не делает Go хуже. Это просто другой инструмент под другие задачи и все.

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

Это выглядит примерно как-то так с очень аргументными аргументами:
2025: I will not write Rust again
2026: I am done with Golang
2027: I am done with Zig
2028: I am done with programming

malloc(inf * sizeof thought); [0x00000027]

В последнее время подсел на Odin, просто балуюсь пока - делаю Advent of Code на нем и всякое такое простенькое, чтобы освоить. Заодно прохожусь по всяким темам вроде Memory Allocation, но с большим погружением в детали. И наткнулся на офигенный материал у автора Odin (Ginger Bill), когда игрался с context. Собственно, у него есть серия постов/статей на эту тему, которая довольно неплохо все разжевывает на примерах на C: Memory Allocation Strategies - Article Series

malloc(inf * sizeof thought); [0x00000026]

После ~2 лет с tmux я понял, что мне от него были нужны только сохранение сессий и состояние окон/сплитов. При этом сам tmux со временем стал приносить больше проблем, чем пользы: дополнительный слой рендеринга, проблемы с обработкой управляющих последовательностей, странности с TUI аппами и проблемы с некоторыми возможностями Ghostty.

Поэтому перешёл на zmx + bash/fzf-скрипты для управления рабочими пространствами.

В итоге получил почти тот же уровень удобства, но без tmux между приложениями и самим терминалом, что збись

mall0c [0x00000025]

Задротство со свитчами для клавиатуры продолжается…

Пока остановился на банановых свитчах от Keychron - Keychron Super Switch. Еще попробовал Akko V3 Creamy Purple Pro Switch.
Я так и не понял почему у свитчей от акко везде такие очень положительные отзывы, куча положительных обзоров на ютубе и на Амазоне и на реддите.
Мой опыт с ними был очень отрицательным:
Купил две пачки по 45шт., примерно где-то у 20% из них stem неплохо так шатался из стороны в сторону, где-то примерно у 30% из всех чувствовалось как stem трется о корпус, то есть заявленная фабричная смазка - полная халтура. Свитчи по-разному ощущались и я не смог отфильтровать какие типа хорошие и какие брак, и мне это надоело. По сути у акко полное отсутствие контроля качества. Я так и не понял за что я заплатил, благо купил с Амазона, поэтому с возвратом проблем никаких.
Если еще и буду что-то пробовать, то возможно Gateron Quinn или Gateron Baby Kangaroo - тактильные свитчи няяя ☺️

mall0c [0x00000024]

mall0c [0x00000024]

Два месяца назад я перешёл на механическую клавиатуру Keychron K2 Max с коричневыми свитчами. До этого пользовался мембранной Alienware и механической Logitech G613 - разница в ощущениях просто колоссальная: нажатия куда приятнее, тактильность на высоте.

За месяц до покупки K2 я успел попользоваться Keychron K3 Pro v3 с низкопрофильными свитчами, т.к. хотел что-то компактное для поездок, чтобы подключать к iPad. Но у неё оказался баг с Bluetooth, плюс версия попалась без hot-swap - это для меня был минус.

Теперь K2 Max моя основная клавиатура. Полностью кастомизируемая: hot-swappable, смена keycaps, слоёв, поддержка QMK. Можно даже без проблем заменить аккумулятор - тут стоит 4000 mAh (606090), все инструменты для разбора идут вместе с клавиатурой. И да, несмотря на массу в районе 1кг, уже брал её в поездки - особых проблем не было, места много не занимает. А если что и в самообороне пригодится: с такой массой это не только клавиатура, но и аргумент 😅

Доволен как слон и однозначно рекомендую.

mall0c [0x00000023]

Довольно любопытная статья от Bouke Stam: он рассказывает, как на чистом WebGL и THREE.js собрал интерактивную модель Земли за последние 100 000 лет. В ней удобно переключаться между эпохами, чтобы увидеть, как менялись уровень моря, очертания континентов, ледниковые шапки и климатические пояса.

mall0c [0x00000022]

Довольно стремно, что компании вроде OpenAI используют данные из пользовательских запросов (и не только) для обучения своих моделей. В статье описаны инструкции, как отключить использование пользовательских данных для обучения на популярных AI-сервисах и приложениях. Я бы еще отключал «память» в настройках ChatGPT, довольно стремная опция.

https://www.theverge.com/24315071/ai-training-chatgpt-gemini-copilot-how-to

mall0c [0x00000021]

mall0c [0x00000021]

Замечательная статья о том, как Китай утер нос всему миру в производстве электрокаров и наводнил мировой рынок своей продукцией, так что западным и японским автогигантом сейчас приходится нелегко - Немецкий автопром и Nissan потихоньку ВСЁ.

https://news.sky.com/story/the-electric-shock-behind-europes-stuttering-ev-future-and-how-china-has-leapfrogged-major-car-exporting-nations-13267440

mall0c [0x00000020]

Кстати, по поводу нативной кросс компиляции у golang… там еще и нативная компиляция WebAssembly модулей теперь, я только до нее добрался ☺️ а если еще и memory regions добавят, то можно и про Zig забыть 😅🙈

mall0c [0x0000001F]

Очень сильно меня поманил Golang в последнее время, особенно тем что поддерживается кросс компиляция (она появилась относительно недавно - пару лет назад вроде🙃), очень прост в использовании multithreading/concurrency, и очень легко использовать си код там где есть необходимость в производительности или доступе к системному API или еще по каким либо причинам. В общем куча достоинств, особенно в сравнении с ресурсожрущим nodejs на бэкенде.

Поэтому когда есть время потихоньку запиливаю cli утилитку j2z на Go для конвертирования Jekyll постов в Zola. И помимо этого осваиваю курс от MIT про распределенные системы на Go - рекомендую, кому интересно как это все устроено.

mall0c [0x0000001E]

В виду того что я скорее всего совсем ухожу с Jekyll на Zola, jekyll-post-bot отправляется на пенсию, а вместо него zola-post-bot с адаптированной after-dark темой для бота.
Получился вот такой статический сайт для дубликации контента с целью улучшения поиска: https://memoryall0c.github.io

mall0c [0x0000001D]

Два месяца назад я все же купился на минимализм Zola, с его отсутствием плагинов, но при этом очень впечатляющим шаблонизатором Tera. Что шаблонизатор, что Zola написаны на Rust, поэтому генерация сайта вполне себе летает.
В общем, я попробовал сделать то же самое, что и в случае с Hugo - мигрировать jekyll тему из вот этого, вот в это. Несмотря на отсутствие плагинов или чего-то подобного им, оказалось что Zola вполне легко расширяется при помощи shortcodes и macros, писать их невероятно легко и я бы сказал что оно того даже стоит, особенно если это касается генерации seo мета тегов и JSON-LD, потому что при ковырянии соответствующих плагинов для Jekyll обнаружилось много вышедших из употребления вещей и кривая логика.

Tera впечатляет своими возможностями, и Keats работает над второй версией шаблонизатора с кучей новых фич ☺️

Похоже я нашел ту самую замену Jekyll.

mall0c [0x0000001C]

mall0c [0x0000001C]

Довольно забавно наблюдать, как какие-то кулхацкеры проверяют наличие админки на сайте сгенерированном при помощи SSG 🤭

mall0c [0x0000001B]

Простенький конвертер Telegram Desktop сессии в gramjs сессию - https://gist.github.com/painor/7ef6c68a1d5bdea01a2f58b1de147104

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

mall0c [0x0000001A]

Proton Mail раскрыла данные пользователя, что привело к аресту в Испании

Тот самый безопасный анонимный почтовый сервис, с мега-пупер шифрованием… 🌚