GNOME 48 приехал в арч
И реально не тормозит. Ура.
И реально не тормозит. Ура.
Что-то обновился и как будто они что-то испортили. По дефолту меню вообще скрыто за гамбургером. Это полный бред, конечно. Есть галочка - показывать меню в отдельном тулбаре. С такой настройкой появляется лишняя полоса и жрёт вертикальное место. При этом само меню у меня занимает процентов 30 ширины экрана и справа от него вроде вполне вмещаются все кнопки. В общем какая-то шляпа неудобная в очередной раз, не могут они оставить идею в покое, всё портят и портят.
Как-то это можно исправить может быть? Даунгрейдить не хочу, я новую жаву хочу использовать.
Тут добавил скриншоты, как у меня. https://imgur.com/a/OsBOg8Y
Как должно быть - это, собственно, развёрнутый гамбургер. Но он, конечно, не разворачивается просто так, только пока мышка там. Просто в строку с меню засунуть все кнопки справа и всё, без лишних строк и не сворачивая меню.
Есть только удалённый доступ как юзера, без доступа на сервер. Сейчас делаю через pgdump, но как-то неудобно это, куча места впустую тратится. В голову приходит только хранить предыдущий бэкап и делать тупо текстовый diff с текущим, который и сохранять… Но как-то это странно и не уверен, что diff будет нормально работать для огромных файлов. В теории вроде никто не мешает написать инструмент, который будет это делать более интеллектуально, т.е. работать аналогично pgdump-у, но сохранять только изменённые строки, может такой инструмент уже существует?
xorg-x11-server is removed from RHEL 10
So Long, and Thanks for All the Fish
У меня есть указатель на uint8_t
. Я знаю, что он выровнен по адресу 4. Я хочу быстро читать и писать туда uint32_t
значение.
Правильный по стандарту вариант использовать memcpy
, но он очень медленный.
Быстрый вариант - кастовать uint8_t *
в uint32_t *
и полагаться на то, что он выровнен. Это генерирует одну инструкцию, но это UB по стандарту, хотя по факту работать будет…
Как тут можно поступить? Меня интересует конкретный компилятор gcc 9.2. Может быть gcc даёт какие-то дополнительные гарантии сверх стандарта для данного случая?
Код:
#include <stdint.h>
#include <string.h>
void save1(uint8_t *p, uint32_t v) {
memcpy(p, &v, 4);
}
void save2(uint8_t *p, uint32_t v) {
uint32_t *p32 = (uint32_t *)p;
*p = v;
}
uint32_t load1(uint8_t *p) {
uint32_t v;
memcpy(&v, p, 4);
return v;
}
uint32_t load2(uint8_t *p) {
uint32_t *p32 = (uint32_t *)p;
return *p32;
}
Во что он компилируется с -Os:
save1:
push {r0, r1, r2, lr}
mov r2, #4
str r1, [sp, #4]
add r1, sp, r2
bl memcpy
add sp, sp, #12
ldr lr, [sp], #4
bx lr
save2:
strb r1, [r0]
bx lr
load1:
push {r0, r1, r2, lr}
mov r2, #4
mov r1, r0
add r0, sp, r2
bl memcpy
ldr r0, [sp, #4]
add sp, sp, #12
ldr lr, [sp], #4
bx lr
load2:
ldr r0, [r0]
bx lr
Тут на фоне недавних новостей обдумывал тему статических генераторов сайтов и подумалось - а чем не генератор?
Делаем странички в XML.
К ним прикручиваем XSLT, который переводит наш XML в XHTML.
Всё это отдаём тупо статикой, без всякой генерации. Браузеры умеют в XSLT. Промежуточных шагов нет.
Т.е. все общие блоки (хедер и прочее) в XSLT. Весь контент в XML.
Ну понятно, что никаких комментов, никакой динамики не предусмотрено в таком виде. А минусы будут? Как гугл к таким «сайтам» относится? Проиндексирует вообще?
Я тут столкнулся с ней по работе и удивился, что не видел такие чипы нигде. Может быть кому-то будет интересно. Характеристики такие, для примера взял чип Infineon CY15B204QN
Конечно тут всё портит цена, SSD на терабайт на такой памяти не собрать. Но я бы точно купил вечную флешку на полмегабайта за 50 долларов. Применений у неё может быть много: хранение каких-нибудь закрытых ключей приходит в голову сразу. Понятно, что у такой флешки и остальное исполнение должно быть неубиваемым, нет толку от работающей памяти, если обвязка сдохла (хотя выпаять чип и вычитать оттуда данные не должно быть очень сложно даже в таком случае).
Может быть кому-нибудь в голову придёт сделать «стартап» на такой штуке, хе-хе. Кстати BLE для такого хорошо подойдёт, там никаких контактов, физически ломаться нечему. Только под батарейку слот.
Работаю с FRAM-памятью. Код пока не запускал. Написал около 1000 строк кода и бахнул всё в ChatGPT o1 Pro на анализ (на самом деле бахаю в разные ИИ, и Claude и другие ChatGPT).
И он мне выдал:
WREN + WRITE in one transaction The array command[5] = {0x06, 0x02, …} lumps the FRAM “Write Enable” (0x06) and “Write” (0x02) into a single SPI transaction. Most FRAM datasheets require /CS to go high after the 0x06 command before issuing 0x02. Putting them in one transaction is not standard and may fail on some devices.
Это я так написал код для записи данных в FRAM. Не совсем внимательно прочитал даташит.
Как бы это было без ИИ:
Я бы ещё часа три отлаживал изначальный код, он там мне подсветил некоторые мелкие баги, ничего особого, но баги есть баги.
write у меня бы по факту не работал, но я бы этого не замечал, т.к. никакой индикации этого нет. Последующий read возвращал бы 0xFF.
Я бы прикручивал логический анализатор к плате и долго чесал затылок, почему так происходит.
Через день-другой до меня бы дошло, и я бы пофиксил это всё.
А так я потратил буквально 5 минут и сэкономил пару дней отладки.
Очень круто. Всем рекомендую.
Это уязвимость уровня ядра:
https://android.googlesource.com/kernel/common/+/96ad4e759ff4aaa24eb185500c0c28466ae5452a%5E%21/#F0
В 2025 году. Вариантов вроде много - можно весь /dev/sda отформатировать в файловую систему. Можно там MBR разметку сделать с одним разделом или GPT разметку. Во втором случае возникает вопрос с тем, какой тип этому разделу надо проставить?
Файловая система, я так понимаю, сейчас ExFAT считается стандартом де-факто для более-менее больших флешек.
Если у кого есть относительно недавно купленная флешка, которую не переформатировали с завода, дайте вывод fdisk -l /dev/sda
, заранее спасибо.
Одной из моих проблем использования линукса были офисные документы. Сам я предпочитаю формат TXT, но периодически приходится иметь дело с документами в формате DOC и DOCX. Использовать libre office для меня очень сложно, неприятная программа, неприятный интерфейс. В винде офис гораздо красивей и приятней.
На днях узнал, что микрософт сделали офис, который работает прям в браузере и это всё бесплатно. Можно загрузить DOCX, открыть и читать. Какое облегчение. Ещё один гвоздь в гроб винды!
Сейчас у смартфонов неплохие характеристики. Например у недавно вышедшего Pixel 9 Pro имеется 16 GB RAM, 1 TB Flash, 8-ядерный CPU, какой-то GPU, которого хватает на визуально красивые игры, конечно там и с аппаратным ускорением видео всё ОК.
Заманчиво подключить этот смартфон к монитору через USB-C и получить пусть и не топовый, но относительно неплохой десктоп в кармане.
Но почитав про Termux, псевдо-chroot, какой-то pkvm, пришёл к выводу, что софтовая часть всего этого в глубоком зародыше. Чисто теоретически можно даже какой-то дистрибутив в псевдо-chroot-е запустить, но это всё выглядит глубоко экспериментальным.
Есть ли у кого-то практический опыт использования подобного смартфона как персонального компьютера? Конечно интересует полноценная работа в нормальном ARM-линуксе, с работающим аппаратным ускорением.
Перемещено hobbit из talks
Это те ребята, которые решили фиксить баги во FreeCad и продавать его. Не взлетело. Не получается монетизировать Open Source.
Каждый раз, когда сталкиваюсь с VPS, удивляет, почему у них всё такое медленное.
Объективно, сколько времени должно пройти между созданием VPS?
Создать qcow2 файл с backing файлом в виде образа нужной ОС. Это выполняется мгновенно.
Запустить образ. Затюненный линукс загружается за доли секунды. Если это обычный дистрибутив - ну пусть пара секунд.
Скрипты, которые выполняются один раз вроде настройки сети и тп, тоже мгновенно отрабатывают.
Итого VPS должна создаваться в идеале мгновенно, если не заморачиваться тюнингом дистрибутива, то за несколько секунд.
По факту проходит несколько минут, прежде, чем IP-адрес начинает пинговаться.
Нажимаю в веб-консоли какую-то кнопку вроде power off, реакция тоже идёт несколько секунд. Чего они там несколько секунд делают? У меня банковский перевод к жене приходит, вчера засекал, примерно за 1-2 секунды. Так это я запрос на сервер посылаю, оно там по всем банковским коболам проходит, потом к эпплу на сервер в Купертино улетает, оттуда как-то по океану и воздуху на телефон прилетает в виде пуш-уведомления. Вот это скорость, вот так должно быть.
Что-то посложней вроде Kubernetes, там вообще минут 15 надо ждать. Чего оно там делает 15 минут, ёмоё.
Ещё у всех ужасная реализация IPv6. Считанные хостеры прокидывают /64 подсеть. Про /48, которая типа по стандарту должна выдаваться серверам, вообще молчу, такое сто лет назад было у пары хостеров и вроде даже у них нет.
И это в мире, в котором AWS умеет виртуалку создавать и запускать вообще за доли секунды (Firecracker вроде).
Экспериментирую с qemu на макоси. Запускаю его в докере. Сам докер запущен в виртуалке с arm64 (стандартный docker desktop). Меня интересует виртуализация x86_64 (через tcg).
Собственно есть два способа:
Способ 1, используя arm64 образ с arm64 сборкой qemu. Ну тут всё понятно, qemu эмулирует x86_64 код, интерпретируя его своим arm64 билдом.
Способ 2, используя x86_64 образ с x86_64 сборкой qemu. А вот это самое интересное. У Apple есть Rosetta, которая умеет транслировать x86_64 код в arm64 и выполнять его, делая всё это на лету. Это вообще говоря работает весьма быстро. Но для виртуалок это использовать невозможно, т.е. к примеру запустить Windows XP через Rosetta не выйдет. Docker эту розетту для линукса тоже умеет использовать. Т.е. в ARM64 виртуалке можно запустить x86_64 бинарник.
И вот я таким макаром запускаю qemu (конечно в tcg режиме). Он транслирует x86_64 код в x86_64 код, и выполняет его. И в этот момент подключается розетта и уже она это всё безобразие транслирует в ARM64. Честно говоря я не ожидал, что оно вообще заработает.
Но, очевидно, заработало, по крайней мере для ISO от Alpine Linux. Загрузилось.
Самое интересное это производительность. Мерял через openssl speed md5
, приведены значения для типа 8192 bytes.
На хосте : 545620.17k
В докере arm64 : 656146.43k
В докере amd64 : 537531.73k
В докере arm64 и далее в виртуалке amd64: 306571.95k
В докере amd64 и далее в виртуалке amd64: 353517.57k
Странно, конечно, что в докере работает быстрей, ну там линуксовый openssl, а на хосте сборка от Apple, видимо по-разному собрали.
Как видно, простой код транлсируется неплохо, и извращенский вариант с розеттой даже даёт небольшой выигрыш.
Не знаю, что тут можно ещё сказать, но вот так вот, решил зачем-то поделиться, живите теперь с этим.
Мои пожелания в порядке убывания:
Полная 100% гальваническая развязка, как по питанию, так и по сигнальным линиям. Никакого шанса того, что включенное в хаб устройство может навредить компьютеру, не должно быть.
Физические кнопки включения/выключения для каждого порта, которые отключают все линии порта.
Программное управление включением/выключением каждого порта через стандартные USB запросы (см. uhubctl)
Питание от компьютера, без всяких дополнительных блоков питания.
На даунстрим 4 порта USB-A, 4 порта USB-C, на апстрим (соединение с компьютером) порт, а не припаянный провод.
Поддержка USB 3.
Может кто-то видел такое в природе за разумные деньги?
Наверное мне на самом деле нужно что-то вроде REPL… Мои пожелания:
Простая консольная тулза, моментально запускающаяся и тд.
Традиционный формат записи.
Поддержка всех популярных математических функций, в частности логарифмов по произвольным основаниям (или хотя бы по 2/e/10) и чтобы оно было сразу доступно, без всяких импортов.
Поддержка рациональных чисел, пока получается. Чтобы 10 / 3 * 3 === 10
было. В идеале вообще символьные, но допускаю, что мне это на самом деле не надо.
Поддержка какого-нибудь понятно-традиционного синтасиса для переменных, коротких функций и тд.
Поддержка битовых операций, двоичного, шестнадцатеричного представления. Наверное в виде переключения формата вывода для последующих действий…
Пока пользуюсь обычным GUI-калькулятором, bc -l
и python3
но это всё не очень удобно…
Забросила меня судьба в Китай. Имею проблемы с интернетом. Спасаюсь роумингом, но он дорогой. Местный интернет дешёвый но там многое заблокировано. Собственно вопрос - есть ли проверенные способы работать с комфортом? Пробовал ProtonVPN, AstrillVPN - шлак, ничего не работает, все их хваленые защиты просто не коннектятся, Wireguard коннектит, но через несколько минут перестаёт работать. ssh для проксирования пробовал использовать (до своих серверов), тоже неюзабельно, буквально несколько минут и всё. В общем так работать нельзя.
В курсе про всякие модные XTLS-Reality и прочие прикольные штуки, но вопрос - работает ли оно реально, есть ли у кого личный опыт? У меня есть VPS-ка, купить другую не проблема, но не хочу тратить время на то, что не сработает, и так кучу времени уже на эту порнографию потратил.
Мне это нужно для того, чтобы определять - сколько амперов тянуть из порта. Из компьютера я хочу тянуть не очень много, а из зарядки - по максимуму (для заряда аккумулятора).
Интернет подсказывает, что у зарядки D+ и D- замкнуты. Но проблема в том, что в моём чипе я не нашёл такой возможности определить это состояние.
Пока планирую отслеживать USB RESET в течение некоторого времени после появления напряжения. Если его не произошло, значит подключена зарядка.
Но проблема в том, что если подключить устройство к компьютеру в спящем режиме, то USB RESET там тоже не приходит.
Есть какая-то ещё возможность это дело отследить?
И полу-связанный вопрос - что вообще будет, если из USB порта уснувшего компьютера тянуть, скажем, ампер тока? Я так полагаю, либо порт на это рассчитан и ничего не будет, или порт на это не рассчитан, будет проседать напряжение и будет срабатывать в цикле событие отключения USB?
следующие → |