Кресты на моей кукухе
118 subscribers
202 photos
2 videos
5 files
43 links
Канал имени @vatneek
Здесь вы увидите:
* шитпостинг
* С++
* раст (иногда, по праздникам, я не растовод, я только балуюсь)
* шитпостинг
Download Telegram
Ъуъ
Накатил openwrt на роутер
В процессе настройки пару раз успел подумать, что превратил роутер в кирпич. Затем долго и мучительно стучался в интернет. Потом пытался убедить один из портов заработать. Подебил

Теперь можно будет поднять xray проксю прям на роутере, получить бонусом рабочие апдейты на quest2 и ютуб на телевизоре

Лучше бы спать вовремя ложился
🔥5👍3
А зачем питонячьи тулзы типа пипа и конды делают намеренно неудобными? Нормально же можно было pip install делать системно, нахера было прекращать? Предыдущий опыт работы с кондой отправил конду на свалку. Понадобилось потрогать её снова — глумится, блядь ехидная
😁7
Плюс один к плюсам тачки, где больше одного проца: можно параллельно прогонять параллельные бенчмарки
Всего 2 вечера, и OpenWRT поддался сборке
Фан факт, который я выяснил в процессе сборки: чтобы собрать golang версии 1.22, вам нужен golang версии 1.20. Чтобы собрать golang версии 1.20, вам нужен golang версии 1.17. Как собирается golang версии 1.17, ведомо Господу единому
🕊2🍌1
Не болейте
👻8
Я календарь
Люблю интернет
Контекст
😁2
"Да, сюда мы тоже этот баг занесли. И когда я говорю «мы», я имею в виду «я»"
7😁4
Миллион true в жсоне на мегабайт меньше, чем миллион false
🔥7
Впервые в жизни сбацал сайт: https://onemillioncheckboxes.eezo.top/. Клацнутные вами чекбоксы будут видны другим зашедшим

Идея стырена у https://onemillioncheckboxes.com/. Вдохновился прикольной статьёй его автора про то, как пришлось бороться с собственной популярностью — подумал, что это неплохой вариант простенького проекта, который интересно сбацать для развлечения

Развлекать себя решил очередным соприкосновением с растом, а ещё, впервые, — с фронтендом. Браузер без энтузиазма воспринял мою попытку вгрузить в него миллион чекбоксов одной html-страничкой (в 100 метров текста), так что надо было сОфТвАрЕ эНжИнИрИтЬ. В качестве фреймворка взял довольно хайповый vanilla js. Продираясь наощупь, наполовину не вдупляя происходящее, заставил-таки браузер рисовать только нужные чекбоксы, а ненужные не рисовать. Почувствовал себя настоящим фронтендером. Доволен

Потом ещё, чтобы интегрировать в свою держалку сервисов, пришлось освоить азы сборки докер образов и docker-compose файликов

Со стороны бекенда ничего особо интересного: перекидываюсь жсонами по вебсокету, апдейты от одного пользователя рассылаю всем. Интересно понагружать, посмотреть, где будет ломаться. Моя ставка — жсоны. Вероятно, можно будет чё-нить выиграть, если паковать данные в формат поменьше, возможно, предподготавливать сообщения, какими-нибудь такими вещами нехорошими заниматься. Плюс все апдейты синхронизируются на одном потоке — теоретически, в это можем упереться. Скорее всего, побить рейндж на части, но как из этих частей собирать снапшот — неясно. Возможно, и не надо общий снапшот: научить клиента хендлить распиленное состояние
Но это уже когда-нибудь потом. Пока у меня руки чешутся написать другое
🔥4
Я тут заметил, что давно перестал слышать фразу "до морковкина заговенья"

Как оказалось, заговенье это день перед постом, когда люди обычно наедаются всякой жирной пищи, потому морковкино заговенье это оксюморон, и потому выражение имеет значение, которое имеет. Не знал
👏7
Lock-free очереди не нужны

Господь дал нам циклический буффер на fetch-and-add'ах, но мы были неблагодарны, сказали, что не настоящий lock-free, ведь могут быть livelock'и — и стали придумывать, как оных избежать

Первая идея просто ошеломительной простоты: а давайте мы затолкаем FAA-очереди в очередь Майкла-Скотта (представьте себе самый простой lock-free односвязный список — вот это она), и будем добавлять новую вместо livelock'а. По памяти не ограничено, очищение памяти не проще, чем через hazard pointer'ы, да и хер с ним

Люди изголялись, как улучшить ситуацию с последним: добавляли слои индирекции, придумали подход fast-path-slow-path и даже добились wait-freedom по цене lock-freedom. Но самую, сука, дурацкую lock-free очередь в своих же бенчмарках обогнать не смогли. То есть, работы это скорее доказательства, что теоретически wait-free очередь может жить на ограниченной памяти, и в целом чувствовать себя неплохо, но на деле ограничивайтесь, мужики, obstruction freedom, и всё у вас будет ништяк

Вход в кроличью нору, чтобы при желании пойти читать референсы: wCQ: A Fast Wait-Free Queue with Bounded Memory Usage
👍3😱3
Заморозить компьютер, чтобы вынудить меня его перегрузить, чтобы накатить обновление, это осознанная тактика винды или я опараноел в край?

Upd. Блядь, винда, обои-то что тебе сделали, ирод ты окаянный
👨‍💻1
Баги расследовать люблю, пиздец
😁1
Фан факт: если не трогать окулус квест слишком долго, он магически превращается в кусок пластика

А ещё тот факт, что приложение, нужное для коннекта шлема с компом, требует фейсбук логина, вымораживает
😁1
Заставил компилироваться шмат растового кода, фото в цвете
😎4
Страшные люди пишут на сях лок-фри алгоритмы
Вот пишет он в статье, мол Cache_Remap нужна, чтобы пореже трогать одну кеш-линию. А смотришь в реализацию — там какая-то мрачная битовая магия, с полчаса медитируешь, чтоб понять, что это он младшие битики наверх утащил. Ща ещё столько же, походу, буду искать, куда этот кудесник флажок запрятал. А потом гадать, что за волшебные условия он расставил по коду, но не по псевдокоду в статье. Ъуъ
👌2
У меня курс про лок-фри алгоритмы был на жаве/котле, потому для меня от имплементации пейперов на сях несёт какой-то хтонью