Telegram Group Search
Пропустил, что вчера было ровно 33 года с первого релиза vim.

В честь этого 3+3 прикола в лучшем текстовом редакторе Microsoft Word:

1. :smile - нарисовать смайл (🤯). nvim, кстати, на это выдает NOPE и рисует grumpy cat.
2. :TOhtml - сохранить текущий файл в виде HTML с подсветкой синтаксиса (скриншот по-дедовски)
3. vim -y - запустить вим в детском режиме. Копировать/вставить/отменить на ctrl+c/ctrl+v/ctrl+z, включена мышь и все такое. Из insert режима выйти становится невозможно. Из вима, кстати, тоже.
4. ggg?G - закодировать весь файл в rot13. Полезно, когда пишешь на php и в комнату резко заходит мама.
5. vim <url> - редактировать файл по урлу, который вим сам скачает.
6. :earlier 3m - откатить файл к состоянию, которое было 3 минуты назад. Также есть :later. Пришел на работу, набрал :later 8h и идешь пить кофе.
Неплохая пара получилась сегодня. 

По плану было поговорить про функции для работы с файлами в си: readdir, stat, access и все такое. Решил, что будет более наглядно показывать не просто абстрактное использование функций, а напрогать что-то целостное и по ходу обсуждать новый материал, если понадобится.

В итоге написали собственный ls -l. Он хорошо покрыл материал: и про биты прав поговорили и по директориям походили, обсудили inode и symlink. Цвета всякие разные поиспользовали в зависимости от типа файла.

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

Конспект вот скрафтил по тому, как работают права:

https://github.com/lll-phill-lll/hse_caos_practice/blob/master/12-fs/README.md

Ну и запись пары:

https://youtu.be/eMnMRuf1lNc

https://vkvideo.ru/video-221776054_456239046
This media is not supported in your browser
VIEW IN TELEGRAM
В субботу прошла первая в этом году пара по акосу. 

В этом полугодии мы не используем ejudge, все домашки будут в гитлабе. Поэтому первая же пара у нас про гит, чтобы потом нельзя было отмазаться, что что-то там не получилось закоммитить.

Да и вообще к нам в курс все пытается вклиниться ИПР (инструменты промышленной разработки), поэтому в плане на полгода есть не только системные вызовы и всякие приколы с ОС, но также гит, докер, CI и остальные челики.

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

Вот и сама пара: 
yt: https://youtu.be/lJugblvqpKY
vk: https://vkvideo.ru/video-221776054_456239047

Также я решил написать САМЫЙ ЛУЧШИЙ В МИРЕ КОНСПЕКТ (тоже с нового года начал новую жизнь), но почти сразу устал, поэтому написал только около четверти 🙁

Тем не менее конспект вот: https://github.com/lll-phill-lll/hse_caos_practice/tree/master/13-git

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

https://github.com/cfenollosa/os-tutorial
https://optozorax.github.io/p/my-keyboard-layout/

Так что надеюсь однажды все-таки его дописать, если пользу не принесу, то хотя бы сам доволен буду.
📌 Рубрика "Надо было знать, но я не знал"

Всегда писал:

grep ... | less

и грустил, потому что grep выводит цветной текст, а в less всё становится монохромным.

Думал, что это less тупой. Оказалось, что не он, а я.

Но почему?

grep, как и многие другие Unix-утилиты (ls, diff, ripgrep и т. д.), проверяет, является ли стандартный вывод (stdout) терминалом и в зависимости от этого включает или выключает цвета.

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

Такая проверка выполняется с помощью isatty(3):

isatty(STDOUT_FILENO)

Этот функция возвращает 1, если вывод идёт в терминал, и 0, если в файл или пайп. Если isatty возвращает 0, утилита отключает цвет.

Нашёл даже коммит, в котором этот функционал добавили в grep:
🔗 Коммит в grep

Как спастись?

Чтобы grep, ripgrep, ls, diff и другие челы не отключали цвета при передаче вывода в less, нужно явно указать, что цвет всегда должен быть включен:

grep --color=always ... | less

(Вроде как надо еще -R добавлять к less, но у меня и без этого работает 🤔)

При этом опасно добавлять --color=always в алиасы, потому что это может поломать разные скрипты, которые используют grep.
(спасибо @asokol123, теперь я еще знаю, что алиасы не пролезают в скрипты)

Надеюсь, кому-то теперь тоже станет проще жить)

🔗 Обсуждение на SuperUser
Please open Telegram to view this post
VIEW IN TELEGRAM
Миша пишет код
В субботу прошла первая в этом году пара по акосу.  В этом полугодии мы не используем ejudge, все домашки будут в гитлабе. Поэтому первая же пара у нас про гит, чтобы потом нельзя было отмазаться, что что-то там не получилось закоммитить. Да и вообще к нам…
К слову про гит:

https://git-man-page-generator.lokaltog.net

Сайт, который генерирует несуществующие гит команды и документацию к ним

Если интересно, как это работает, то по ссылке находятся правила грамматики, на основе которых генерируется документация:

https://github.com/Lokaltog/baba-core/blob/71ca4a2957eb899145f41055c1288231b9dcea3f/src/grammar/git-manual.js

Не удивлюсь, если тут как с панорамой - какие-то выдуманные команды с этого сайта уже могут быть невыдуманными 🤷‍♀️
Уже пару недель балуюсь и использую сдвг шрифт

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

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

Оригинальная идея принадлежит вот этим ребятам:
https://bionic-reading.com/
НО!
Чел придумал половину слова писать жирным и хочет за это $50! ПАЛТОС!

Я такую цену вообще никак обосновать не могу, поэтому просто отсюда поставил шрифт:
https://github.com/Born2Root/Fast-Font

Текст и на руссом, и на английском выглядят хорошо (1 и 2 фотки)

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

А еще удивительно, как это вообще работает. Я раньше думал, что шрифт - это какой-то маппинг из символа в изображение. А тут получается, что есть еще какая-то дополнительная логика, связанная с длиной слова

(специально для вас, кстати, переписал текст поста в такой шрифт и не прошу за это ПЯТЬДЕСЯТ БАКСОВ!)

p.s. телега не дает так много выделений жирным сделать((((((
This media is not supported in your browser
VIEW IN TELEGRAM
Вчера была пара по акосу, говорили на ней про процессы и fork(2).

Кроме самого обсуждения процессов делали всякие приколы:
1. С помощью длинной колбасы из форков вычисляли лимит на процессы
2. Форк-бомбой пытались убить виртуалку.

Второе вообще не так просто сделать оказывается (специально, разумеется, случайно-то у меня регулярно хост откисает). На 100% ядра загрузить - легко, а вот добиться, чтобы все зафризилось так и не вышло. Если честно, надеялся, что хотя бы ssh отвалится.

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

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

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

Ну и сами записи пары (считаю, что лучшую обложку в жизни сделал): ютуб, вк
Блин блинский какой кайф:
https://habr.com/ru/articles/883342/

TLDR;
Из-за всяких неотображаемых символов юникода становится возможно закодировать произвольные данные в обычный смайлик (да и вообще в любой юникод символ). При этом закодированная часть не теряется даже при пересылке эмодзи!

Декодер/энкодер для поиграться вот тут:
https://emoji.paulbutler.org

Интересно, какой максимальной длины сообщение можно так передать? Можно ли так передать целый файл? 👀󠇀󠆒󠇁󠅻󠄐󠇁󠅷󠇁󠅲󠇀󠆮󠄐󠇁󠅲󠇁󠅳󠇁󠅲󠄐󠇁󠅱󠇀󠆠󠇀󠆬󠇁󠅻󠇀󠆩󠄐󠇀󠆫󠇁󠅾󠇀󠆡󠇀󠆮󠇀󠆯󠇁󠅻󠇁󠅲󠇀󠆭󠇁󠅻󠇀󠆩󠄯
Через пару недель будет пара по акосу, где будем проходить, как работает сеть.

Появилась мега-омега идея рассказать про сеть (OSI) через майнкрафт.

+ так как сегодня праздник и пар нет, а привычка вести пары осталась, то попробую на стриме готовиться к паре:
https://www.youtube.com/live/pRxFFXSO6Xo?si=N1BhARNoe1T9owV8

Если интересно поучаствовать, то присоединяйтесь.

Цель - скрафтить механизмы в майнкрафте, переходя от самого нижнего слоя к верхнему. И попытаться сделать это наглядно.

(основной вопрос, переживет ли мой компутер obs + minecraft + стрим)

upd компутер вообще норм справился
Забайтился на твит, что по-настоящему умный указатель должен использовать LLM для подсчета ссылок.

В итоге вот скрафтил: https://github.com/lll-phill-lll/actually_smart_pointer

Все выходные ковырялся, но в итоге получилось что-то терпимое.

Сначала пытался ходить по api в deepseek или в chatgpt, но там есть 0 (НОЛЬ!) бесплатных запросов через api. Поэтому второй попыткой я попробовал заюзать модели с huggingface через их api (там есть бесплатные 10$). Но там что-то все очень плохо работало и нормальных моделей доступных по api я не нашел.

Поэтому в итоге остановился на локальной модели. Заюзал llama.cpp и в него запихал deepseek-coder в формате gguf (RIP) вот отсюда. Прикол, что получилось даже просто залинковаться с llama и не использовать cli или сервер.

В результате даже небольшая (4гб диск, 300мб ram) моделька какие-то результаты показывает (хоть и не всегда корректно управляет памятью указателя).

ЗАТО! Я добавил метод ask. И в отличие от других "умных" указателей с моим указателем можно даже пообщаться.

Smart pointer получился на 100% smart и на 0% pointer.

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

Исследование про нативную поддержку проигрывания вертикальных видео в clang21
И больше он никогда не был онлайн ....

Купил iPod Classic. Прямиком из 2008. И ему уже 17 (СЕМНАДЦАТЬ) лет.

С ноября думал купить это чудо, но все никак не мог найти. Мониторил все барахолки, но именно classic никто не продавал. Уже даже собрался заказывать откуда-то восстановленный, но они стоят как крыло самолета - на амазоне, например, цена где-то 300-400 евро

И вот вчера появился продавец, который мало того, что находился в 15 минутах от меня, так еще и продавал iPod ровно за столько, сколько у меня было прямо тогда в кармане - 70 евро (чистая правда, ни больше ни меньше).

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

Уже готов был страдать, перекидывая музыку, но нет!
Я просто подключил iPod к компу и он распознался. Открылось приложение Music (iTunes же похоронили) и предложило мне настроить айпод. За два клика я откатил его к заводским настройкам и поставил новую OS (из 2014). А после этого просто перетянул папку с музыкой и она просто появилась в медиатеке! Единственное, обложки почему-то не отображались, но оказалось, что они должны быть не больше 300x300, и после ресайза все заработало.

Самое приятное, что мне не пришлось нигде логиниться. Вы представляете себе? Покупаешь электронное устройство, настраиваешь и пользуешься. ВСЕ. Не нужно создавать никакой аккаунт, ничего никуда привязывать (к слову про посудомойку и подключение к облаку). А еще музыку скачиваешь и она твоя: у нее не будет меняться обложка, она не станет недоступной из-за того, что кто-то отозвал права. Просто скачал и просто слушаешь.

Модифицировать особо не буду. Знаю, что в iPod добавляют блютуз, type-c, ставят прозрачные корпусы, но это все от лукавого. Думаю, просто шлифануть его и крутилку поменять. Наверное, еще rockbox поставлю - все-таки очень хочется заценить doom. На конкретно мою модель вроде нельзя докинуть памяти из-за всяких приколов с адресацией, но я слабо представляю, как я могу 120гб на музыку израсходовать.

Кстати, про 120 гб. Это всего на 8гб меньше, чем в базовом айфоне 16!
НО! iOS весит 10гб+, а вот прошивка айпода всего 62Мб. Так что свободной памяти в айподе из 2008 больше, чем в айфоне из 2025. Многое говорит о нашем обществе

В общем, доволен на 1000. Ощущения прям такие же, как от покупки киндла. Как будто купил устройство, у которого мало функций, но которое выполняет их ровно так, как бы ты и хотел.
Буду теперь заниматься осознанным потреблением контента. А то, кажется, что музыку в наушниках выбираю вовсе и не я.
Читал всякие мануалы, пока готовился к паре про время и вот на что наткнулся --^

Немного приятно стало, что даже в манах написано, что MM/DD/YYYY - дурацкий формат

man 3 strptime
link
2025/05/21 22:54:46

❌Photos not found?❌Click here to update cache.


Back to Top
HTML Embed Code: