fa
Feedback
Panic! At the 0xC0D3

Panic! At the 0xC0D3

رفتن به کانال در Telegram

Пишу что-то про разработку

نمایش بیشتر
کشور مشخص نشده استدسته بندی مشخص نشده است
205
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-17 روز
-130 روز

در حال بارگیری داده...

کانال‌های مشابه
هیچ داده‌ای
مشکلی وجود دارد؟ لطفاً صفحه را تازه کنید یا با مدیر پشتیبانی ما تماس بگیرید.
ابر برچسب‌ها
هیچ داده‌ای
مشکلی وجود دارد؟ لطفاً صفحه را تازه کنید یا با مدیر پشتیبانی ما تماس بگیرید.
اشارات ورودی و خروجی
---
---
---
---
---
---
جذب مشترکین
ژوئن '26
ژوئن '260
در 0 کانال‌ها
مه '26
+1
در 0 کانال‌ها
Get PRO
آوریل '26
+9
در 0 کانال‌ها
Get PRO
مارس '260
در 0 کانال‌ها
Get PRO
فوریه '26
+1
در 0 کانال‌ها
Get PRO
ژانویه '260
در 0 کانال‌ها
Get PRO
دسامبر '25
+14
در 0 کانال‌ها
Get PRO
نوامبر '25
+3
در 1 کانال‌ها
Get PRO
اکتبر '25
+40
در 0 کانال‌ها
Get PRO
سپتامبر '250
در 0 کانال‌ها
Get PRO
اوت '25
+3
در 1 کانال‌ها
Get PRO
ژوئیه '250
در 0 کانال‌ها
Get PRO
ژوئن '25
+56
در 0 کانال‌ها
Get PRO
مه '250
در 0 کانال‌ها
Get PRO
آوریل '25
+1
در 2 کانال‌ها
Get PRO
مارس '250
در 0 کانال‌ها
Get PRO
فوریه '250
در 0 کانال‌ها
Get PRO
ژانویه '25
+1
در 0 کانال‌ها
Get PRO
دسامبر '240
در 0 کانال‌ها
Get PRO
نوامبر '24
+3
در 0 کانال‌ها
Get PRO
اکتبر '240
در 0 کانال‌ها
Get PRO
سپتامبر '240
در 0 کانال‌ها
Get PRO
اوت '24
+6
در 0 کانال‌ها
Get PRO
ژوئیه '240
در 0 کانال‌ها
Get PRO
ژوئن '24
+69
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
08 ژوئن0
07 ژوئن0
06 ژوئن0
05 ژوئن0
04 ژوئن0
03 ژوئن0
02 ژوئن0
01 ژوئن0
پست‌های کانال
photo content
+1

2
I use arch btw В годы бреинрота и клодов, казалось бы, терминал должен умирать, и заменяться красивыми гуишками. Но мне кажется (тут чистая спекуляция по вайбам 2х часов ночи), что в последнее время терминал наоборот приобрел популярности. И мне кажется, что немалая заслуга в этом у Go и Rust. Потому что для меня использование терминальной утилиты 5 лет назад выглядело как "загуглить тулзу, открыть man pages, пострадать, пойти в стаковерфлоу, скопировать что там написали", в то время как сейчас я очень часто просто нахожу ответ из --help. Потому что UX стал лучше. Просто сравните аутпут pip install --help и uv pip install --help на скриншотах. Мало того, часто он мне просто не нужен: потому что fdfind json просто работает, а find . -name "*.json" надо запомнить А заслуга Go и Rust тут в том, что у обоих есть отличные и мощные библиотеки для парсинга аргументов, поддерживающие примерно одинаковый стиль, современные фичи типа цветов и автогенерации из кода. Помимо этого, я не один раз видел комментарии вида "я хотел написать gui, но попробовал ratatui (terminal ui библиотека на расте), и теперь это моя любимая библиотека!" Людям нравится писать терминальные утилиты с помощью библиотек, которые упрощают скучную часть, и создают приятный UX из коробки. А сами языки не мешаются под ногами, и делают эти инструменты быстрыми (кхм кхм питон кхм) Но все эти утилиты часто надо искать самому. И тут возвращаемся к арчу. Для незнающих, арч это такой bare minimum линукс с приятным пакетным менеджером, в котором есть около все; поэтому когда вы ставите арч, у вас ничего нет, но все ставится одной командой. Потому что когда я написал tree в терминал и мне выдало "не найдено", у меня промелькнула мысль в голове "ачевсмысле это не встроено в линукс?" и сразу следом "хмм а может быть поставить не самый дефолтный tree, а помоднее?". И теперь у меня есть alias tree=broot. А потом я задумался, а какие новомодные команды есть еще? И теперь у меня есть alias vim=helix alias find=fdfind alias cat=bat alias tree=broot alias grep=ripgrep alias ls=exa alias tmux=zellij И со временем для меня терминал перестал быть страданием и чтением man pages, а реально удобным инструментом, в котором я могу сделать вещи быстрее, чем тыкать кнопочки в gui. Забавно, что для того, чтобы получить нормальный UX, надо было чтобы не за меня все решали, а чтобы мне стало удобно решать самому.
214
3
Зачем вам типы если вы их игнорируете Я устал поэтому просто побугурчу Сколько ворнингов/ошибок должен выдать такой код? constexpr std::array<int64_t, 3> a{1, 2}; std::cout << a[3]; Тут будет 0 ошибок и ворнингов с -Wall -Wextra -Wpedantic А если так? constexpr int64_t a[3] = {1, 2}; std::cout << a[3]; Тут компилятор догадается, что a[3] это какая-то лажа, но вот что ты массив из 3х элементов двумя инициализируешь ему норм ууу сссука У вас вся информация в системе типов есть, почему нельзя быть как раст: (у раста при этом эти переменные не constexpr даже!) let a: [u32; 3] = [1, 2]; dbg!(a[3]); error[E0308]: mismatched types --> <source>:2:23 | 2 | let a: [u32; 3] = [1, 2]; | -------- ^^^^^^ expected an array with a size of 3, found one with a size of 2 | | | | | help: consider specifying the actual array length: 2 | expected due to this error: this operation will panic at runtime --> <source>:3:10 | 3 | dbg!(a[3]); | ^^^^ index out of bounds: the length is 3 but the index is 3 | = note: #[deny(unconditional_panic)] on by default Ну даже если причины это легаси, почему ворнинг то показать нельзя аааа Че бугуртить то Для меня главный юзкейс типов это то, что код легко рефакторить. Ты чето поменял, у тебя компиляция упала везде, где сломалось А тут мы видим, что если у тебя был код вида constexpr std::array<int64_t, SOME_CONST> a{1, 2}; И ты поменял константу на +1, то плюсы сожрут и ничего не скажут.
2 037
4
jj log Тут больше всего подходит фраза "с большой силой приходит большая ответственность". В гите есть большой плюс - в простом воркфлоу ты работаешь с понятными тебе вещами - названиями веток. Коммит хэш ты используешь довольно редко, обычно, когда что-то сломалось. В jj, log - это твоя самая популярная команда (в том числе потому что нет интеграций с ide), и самый большой вопрос в интерфейсе у меня к ней. Все команды ты делаешь с ревизиями, где ревизия - это либо коммит хэш, либо что-то на их языке запросов (например @- - предыдущий коммит). И блин, я привык использовать человеческий текст а не случайный набор из 4х букв для хождения по репозиторию. Т.е. если я хочу потестить другой эксперимент, мне нужно: 1. Открыть jj log 2. Найти в нем интересующую ревизию 3. Запомнить(!!!) четыре случайных буквы 4. Выполнить jj new abcd А если я хочу сделать мердж, то нужно запомнить 2 набора из четырех букв. И вот тут уже "ux сделанный для людей" превращается в "ux сделанный для людей с хорошей памятью на рандомные наборы букв" Имхо это главная вещь, с которой я бы попробовал что-то сделать (но я тоже слабо понимаю как) Прежде чем эксперты jj (лол) начнут писать комментарии, стоит сказать: 1. jj пытается тебе помочь с коммит хешами - он показывает минимальный префикс, который тебе нужен чтобы указать на эту ревизию (например, по началу надо будет запоминать 1-2 буквы, но с ростом коммитов буковок становится больше...) 2. Справедливости ради, тут скорее jj открыл мне возможность свободно ходить по ревизиям, и в гите была бы +- такая же проблема - запоминать названия веток или тех же коммит хешей 3. В jj можно указать коммит по дескрипшену: jj new "description(some text)". И это в целом помогает (меня только бесит слишком длинное название функции) 4. В jj все еще можно так же юзать "ветки" (bookmarks). Но прикол в том, что в гите ты зафоршен юзать их, а в jj они опциональны, и поэтому естественно ты в какой-то момент забудешь тегнуть коммит букмарком, и из-за этого воркфлоу не супер стабильный 5. Есть jjui - интерактивная тулза, в которой запоминать нужно сильно меньше. Но у нее опять свои кнопочки и опять чему-то учиться и я пока не успел. В итоге, я доволен. Потому что я не страдаю, а если и страдаю, то с понятными проблемами типа "блин я потерял старый коммит в большом логе", а не "епт какую тут команду вообще использовать". Но learning curve у jj я бы сказал довольно высокий. Порекомендовать я могу это только людям, которых бесит гит и они готовы потратить время на изучение новой тулзы. К сожалению, за 5 минут ты на нее не пересядешь.
773
5
jj крута Посидел я на jj где-то месяц, и... это офигенно. Сначала опишу мой основной юзкейс для VCS: * Делать много изменений на основе базового коммита, свитчится между ними и сравнивать * Делать "снепшоты" in-development версий - т.е. условная фича еще полностью не готова, но хочется какой-то стейт аля "оно хотя бы билдится" зафиксировать * Делать "снепшоты" экспериментов - т.е. тут вообще любой стейт от "изменил константу в конфиге" до "переписал половину кода", на котором был запущен эксперимент, и хочется этот стейт сохранить на будущее Т.е. у меня по большей части не обычный "гит воркфлоу", где делаешь фичу, мержишь, делаешь новую, а эдакий стейт "тещу 20 фичей какая заработает" И jj для этого идеален Почему: * WORKING COPY IS A PART OF A COMMIT ХОСПАДЕ НИКАКИХ СТЕШЕЙ ВСЁ ВСЕГДА СОХРАНЕНО АААА * Свитч между двумя версиями буквально jj new -r "version" * Коммиты не привязаны к веткам, поэтому можно их откреплять и прикреплять к друг другу как тебе вздумается. Можно фикс из рандомного места засунуть в другое рандомное место * Интеграция с гитом - это по сути deal breaker, т.к. переводить всех на jj нет ни желания, ни смысла * Сделать снепшот это буквально jj duplicate - ВСЕ (это отличается от коммита, т.к. working copy остается в том же стейте) Я скажу сразу, изначально было тяжело и не так радостно: * Спустя месяц все концепты действительно становятся логичными и простыми, но по началу твой git brain отказывается собирать их в общую картинку, и в моменте возникает ощущение что ты заменил гит на другой гит - делаешь рандомные команды и надеешься, что будет хорошо * Интеграций почти ни с чем нет. Очень рад был, что working copy diff все еще работает в ide, т.е. ты хотя бы в своем редакторе можешь нормально дифф твоего текущего коммита посмотреть * Интерфейс хоть и понятный, но все еще терминальный, и все еще новый. Надо было привыкать и чутка выучить новый для меня "язык" для запросов по ревизиям * Туториалы есть, но местами разбирали вообще не мои юзкейсы. Некоторые вещи приходилось самому понимать методом научного тыка * jj log...
666
6
(📽 Камера дрожит, кусты шевелятся, кто-то осторожно пробирается вперёд) — Тсс... Смотрите, вон он. Прямо перед нами — редчайший экземпляр. Вайбкодер маниграбер, решивший... завайбкодить библиотеку для терминального UI на Rust. — Он не использует реактивность. Вообще. Никаких состояний, никаких подписок, ничего живого. Просто... текст. Выплюнутый один раз и навсегда. Как надпись на камне. *пример рисует кнопку "Click me" и завершает выполнение, не дождавшись действия от юзера* — Это всё. Он считает, что UI — это просто вывод текста. Кажется, для него “интерфейс” заканчивается после println!. *перелистывает LICENSE* — А вот и лицензия. Своя, уникальная. Если ты начнёшь зарабатывать деньги с проектом, использующим эту библиотеку... ты должен платить ему. Серьёзно. — Мы были здесь. Мы это видели. Никто не поверит. this post was generated with chatgpt due to it being fucking hilarious
1 558