Ъуъ
Накатил openwrt на роутер
В процессе настройки пару раз успел подумать, что превратил роутер в кирпич. Затем долго и мучительно стучался в интернет. Потом пытался убедить один из портов заработать. Подебил
Теперь можно будет поднять xray проксю прям на роутере, получить бонусом рабочие апдейты на quest2 и ютуб на телевизоре
Лучше бы спать вовремя ложился
Накатил openwrt на роутер
В процессе настройки пару раз успел подумать, что превратил роутер в кирпич. Затем долго и мучительно стучался в интернет. Потом пытался убедить один из портов заработать. Подебил
Теперь можно будет поднять xray проксю прям на роутере, получить бонусом рабочие апдейты на quest2 и ютуб на телевизоре
Лучше бы спать вовремя ложился
🔥5👍3
Всего 2 вечера, и OpenWRT поддался сборке
Фан факт, который я выяснил в процессе сборки: чтобы собрать golang версии 1.22, вам нужен golang версии 1.20. Чтобы собрать golang версии 1.20, вам нужен golang версии 1.17. Как собирается golang версии 1.17, ведомо Господу единому
Фан факт, который я выяснил в процессе сборки: чтобы собрать golang версии 1.22, вам нужен golang версии 1.20. Чтобы собрать golang версии 1.20, вам нужен golang версии 1.17. Как собирается golang версии 1.17, ведомо Господу единому
🕊2🍌1
Кресты на моей кукухе
Всего 2 вечера, и OpenWRT поддался сборке Фан факт, который я выяснил в процессе сборки: чтобы собрать golang версии 1.22, вам нужен golang версии 1.20. Чтобы собрать golang версии 1.20, вам нужен golang версии 1.17. Как собирается golang версии 1.17, ведомо…
Ещё 2 вечера, чтобы выяснить, что объясняться надо не только с роутингом, но и с фаерволом
"Да, сюда мы тоже этот баг занесли. И когда я говорю «мы», я имею в виду «я»"
❤7😁4
Впервые в жизни сбацал сайт: https://onemillioncheckboxes.eezo.top/. Клацнутные вами чекбоксы будут видны другим зашедшим
Идея стырена у https://onemillioncheckboxes.com/. Вдохновился прикольной статьёй его автора про то, как пришлось бороться с собственной популярностью — подумал, что это неплохой вариант простенького проекта, который интересно сбацать для развлечения
Развлекать себя решил очередным соприкосновением с растом, а ещё, впервые, — с фронтендом. Браузер без энтузиазма воспринял мою попытку вгрузить в него миллион чекбоксов одной html-страничкой (в 100 метров текста), так что надо было сОфТвАрЕ эНжИнИрИтЬ. В качестве фреймворка взял довольно хайповый vanilla js. Продираясь наощупь, наполовину не вдупляя происходящее, заставил-таки браузер рисовать только нужные чекбоксы, а ненужные не рисовать. Почувствовал себя настоящим фронтендером. Доволен
Потом ещё, чтобы интегрировать в свою держалку сервисов, пришлось освоить азы сборки докер образов и docker-compose файликов
Со стороны бекенда ничего особо интересного: перекидываюсь жсонами по вебсокету, апдейты от одного пользователя рассылаю всем. Интересно понагружать, посмотреть, где будет ломаться. Моя ставка — жсоны. Вероятно, можно будет чё-нить выиграть, если паковать данные в формат поменьше, возможно, предподготавливать сообщения, какими-нибудь такими вещами нехорошими заниматься. Плюс все апдейты синхронизируются на одном потоке — теоретически, в это можем упереться. Скорее всего, побить рейндж на части, но как из этих частей собирать снапшот — неясно. Возможно, и не надо общий снапшот: научить клиента хендлить распиленное состояние
Но это уже когда-нибудь потом. Пока у меня руки чешутся написать другое
Идея стырена у 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
Господь дал нам циклический буффер на 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. Блядь, винда, обои-то что тебе сделали, ирод ты окаянный
Upd. Блядь, винда, обои-то что тебе сделали, ирод ты окаянный
👨💻1
Это мы слушаем
https://youtu.be/RYCR55P99yg?si=1a7s0250DyZFk1ZK
https://youtu.be/RYCR55P99yg?si=1a7s0250DyZFk1ZK
YouTube
Плейлист, под который удобно чувствовать себя котёнком-невдуплёнком 🙀🐾
00:00 The cat from ipanema - j1gggs
01:37 Meow - ivusm
04:01 Cute circus - Tsundere twintails
07:04 Daycare theme - Allen Simpson
09:34 Bubblegum K.K. - (From "Animal Crossing: New Leaf")
12:11 Детский сад ( из к/ф "Усатый нянь")
14:30 Cats on Mars…
01:37 Meow - ivusm
04:01 Cute circus - Tsundere twintails
07:04 Daycare theme - Allen Simpson
09:34 Bubblegum K.K. - (From "Animal Crossing: New Leaf")
12:11 Детский сад ( из к/ф "Усатый нянь")
14:30 Cats on Mars…
Фан факт: если не трогать окулус квест слишком долго, он магически превращается в кусок пластика
А ещё тот факт, что приложение, нужное для коннекта шлема с компом, требует фейсбук логина, вымораживает
А ещё тот факт, что приложение, нужное для коннекта шлема с компом, требует фейсбук логина, вымораживает
😁1
Страшные люди пишут на сях лок-фри алгоритмы
Вот пишет он в статье, мол
Вот пишет он в статье, мол
Cache_Remap
нужна, чтобы пореже трогать одну кеш-линию. А смотришь в реализацию — там какая-то мрачная битовая магия, с полчаса медитируешь, чтоб понять, что это он младшие битики наверх утащил. Ща ещё столько же, походу, буду искать, куда этот кудесник флажок запрятал. А потом гадать, что за волшебные условия он расставил по коду, но не по псевдокоду в статье. Ъуъ👌2
У меня курс про лок-фри алгоритмы был на жаве/котле, потому для меня от имплементации пейперов на сях несёт какой-то хтонью