Верните разрешение скриншотов
Привет, @maxcom!
Не знаю, в какой момент это произошло, но в галерее больше не отображаются разрешение и размер запощенной картинки. Можно вернуть, плз?
Спасибо!
Привет, @maxcom!
Не знаю, в какой момент это произошло, но в галерее больше не отображаются разрешение и размер запощенной картинки. Можно вернуть, плз?
Спасибо!
Привет, ЛОР!
Хочу странного. Из коробки, при записи на съёмный диск (usb, microsd) лялекс пишет файлы как обычно в кэш, а потом долго скидывает это на диск при отмонтировании. Можно ли как-нибудь заставить ядро писать файлы на съёмные диски синхронно? Т.е. чтобы при копировании следующий файл не записывался, пока не допишется предыдущий.
Хочется этого, например, чтобы можно было отменить копирование кучи файлов на середине.
Привет, ЛОР!
На прошедшей конференции CCC среди прочего был анонсирован дистрибутив SixOS. Пока что релизов не было, есть только исходники и презентация. Для управления сервисами используется инструментарий s6.
Исходники: https://codeberg.org/amjoseph/sixos
Презентация: https://media.ccc.de/v/38c3-sixos-a-nix-os-without-systemd
Привет, ЛОР!
Наткнулся тут на прекрасную историю о том, как использование казалось бы обычных функций из libc может оторвать жопу. И даже Rust не поможет!
Ссылка: https://www.edgedb.com/blog/c-stdlib-isn-t-threadsafe-and-even-safe-rust-didn-t-save-us
Для Ъ:
Функции getenv() и setenv() небезопасны в многопоточных программах. В частности, вызов setenv() во время выполнения getenv() в другом потоке может привести к порче памяти и падению программы. Это особенно релевантно на ARM64, потому как архитектура предоставляет меньше гарантий по части очерёдности выполнения команд.
И если бы это можно было списать на кривые руки авторов статьи, проблемы бы не было. Но тут суть в том, что огромное количество библиотек дёргают getenv() и setenv() под капотом с разными целями, в том числе гнутое gettext и прочие openssl.
Скажи, ЛОР, сишники совсем разучились писать безопасный код? Как с этим жить-то вообще?
UPD:
Подробный пост об этой проблеме: https://www.evanjones.ca/setenv-is-not-thread-safe.html
Прекрасное оттуда:
glibc uses an array to hold pointers to the "NAME=value" strings. It holds a lock in setenv() when changing this array, but not in getenv(). If a thread calling setenv() needs to resize the array of pointers, it copies the values to a new array and frees the previous one. This can cause other threads executing getenv() to crash, since they are now iterating deallocated memory.
То есть, вызов getenv() из glibc потенциально является use-after-free в многопоточной программе и от этого никак нельзя защититься.
Привет, ЛОР!
Тащемта, вопрос. В x86-16 были near и far pointers, что позволяло экономить на размере указателя в ту глубокую древность. Почему этот концепт не попал в 64-битные архитектуры? Ведь с учётом локальности, делать все указатели 64-битными выходит в конский расход памяти при том, что большая часть бит указателей в рамках одного экземпляра структуры данных (допустим, связанный список или дерево) будут одинаковыми. А значит, можно сэкономить кучу памяти, сохраняя только последние N бит указателя и хранить полный указатель, например, только в заголовке структуры данных.
В общем, вариантов как это может облегчить жизнь просто вагон. Почему этого сейчас нет нигде?
Update:
Вообще, такой подход дохрена где применяется. Гуглить «succinct data structures». Например, вот это: https://web.archive.org/web/20160312010342/https://www.computer.org/csdl/proceedings/focs/1989/1982/00/063533.pdf
Но мой вопрос скорее про то, почему этого нет на уровне языков/компиляторов.
Привет, ЛОР!
Как тебе известно, самая прогрессивная UNIX-система NetBSD до сих пор использует систему контроля версий CVS – факт, который многих в сообществе категорически не устраивает. Посему было решено перейти на более современную децентрализованную систему контроля. Проблема в том, что участники сообщества не смогли договориться о выборе и решили его попросту не делать.
Ссылка: https://mail-index.netbsd.org/tech-repository/2025/01/04/msg000805.html
Для Ъ: по ссылке план перехода. Сначала репозитарий CVS конвертируется в hg, а для фанатов git предлагается двухстороннее зеркало, синхронизируемое с помощью git-cinnabar.
Скажи, ЛОР, что ты думаешь по этому поводу? Может ли подобный подход работать в других проектах? Или стоит уже наконец отказаться от git и перейти на Mercurial?
Привет, ЛОР!
Плохие новости: Lenovo собираются выпустить новый Thinkpad без клитора. Помянем-с…
https://www.technetbooks.com/2024/12/lenovo-thinkpad-x9-ditches-iconic.html
Привет, ЛОР!
А я почитал тред про Linux на PlayStation 2 в 2024. Чувак не сумел в установку ПО... я бы тоже не сумел. и решил добавить позитива в толксы.
Ссылка: https://luke8086.dev/netbsd-on-thinkpad-380z.html
Для Ъ:
Чувак поставил свежую NetBSD на Thinkpad 380Z (модель 1998 года, Pentium 2 233MHz, 160 мегабайт памяти) и… ВСЁ РАБОТАЕТ! Иксы стартуют, можно печатать в виме, работать по SSH, подключаться к удалённой сети через WireGuard, слушать музычку через mpg123 и так далее.
В общем, NetBSD может многое.
Привет, ЛОР!
По старой традиции я вновь нарываюсь на бан^W^W^Wпрочитал для тебя свежий ежегодный отчёт Linux Foundation и принёс тебе интересного.
Ссылка на PDF: https://www.linuxfoundation.org/hubfs/Reports/2024%20Linux%20Foundation%20Annual%20Report_120524.pdf
Итак, ключевые пункты:
В общем, такие дела, ЛОРовец. Также по традиции, призываю в тред @Shaman007 и @alpha, чтобы они мне объяснили как я капитально неправ и что на самом деле всё в порядке и так и должно быть.
Привет, ЛОР!
Из-за того, что GCC по умолчанию переходит на стандарт C23 для компилируемого кода, возникли некоторые интересные нюансы. Так например, начиная с C23 пустой список аргументов у функции теперь будет считаться объявлением с void. То есть, следующие два объявления будут эквивалентными:
void f1() { }
void f2(void) { }
Это крохотное изменение внезапно сломало вагон и маленькую тележку программ под Linux, где используется этот трюк для передачи в функцию по указателю различных аргументов:
typedef int (*fptr)();
int f1(void) { return 1; }
int f2(int a) { return 2 + a; }
int main(void) {
fptr f;
int r = 0;
f = f1;
r += f();
f = f2;
r += f(1);
return r;
}
Подобный код больше не будет собираться. Сломанными оказались такие программы как: Linux (ядро), bash, iwd, samba, bluez, rustc, gnupg, vde2, sudo, gdb, postgresql, guile, w3m, freeglut, neovim, dnsmasq и куча других.
Бонусом к этому будет добавленный в mbedtls (и не только) баг, вызванный иным порядком инициализации union.
int main() {
union {
int dummy;
struct { int fs[4]; } s;
} v = { 0 };
printf("%d\n", v.s.fs[3]);
return 0;
}
В gcc 14 и ранее код выведет 0, начиная с gcc 15 – мусор.
Плюс ко всему, bool, true и false теперь ключевые слова, что тоже ломает кучу кода. В общем, сишников ждут интересные времена и много работы по исправлению костылей. Возрадуемся же!
За наводку можно поблагодарить забавнишегося @sf:
Привет, ЛОР!
Сабж. Я думал, на Xen давно забили и мигрировали на KVM, а оно оказывается ещё живо и активно пилится. Какие у него плюшки в сравнение с тем же KVM? Я так понимаю, раньше основным плюсом была возможность использовать другие ОС в Dom0, но сейчас других ОС кроме Linux особо и не осталось.
Хочу историй успеха, в общем.
Привет, ЛОР!
Мне лень пилить новости, но там NixOS 24.11 и FreeBSD 14.2 вышли. Вдруг кто-то шкворца хочет.
Привет, ЛОР!
В какой-то момент поймал себя на мысли, что постоянно лазать в сеть за доками к языкам и библиотекам – какое-то полное дно, поэтому скачал большую часть нужного себе на диск. Возник вопрос: а как всё это удобным образом каталогизировать, обновлять и искать по этому?
Доки в основном в HTML (всякие CPP Reference, доки по Qt, Haddock и т.д.), но форматы вразнобой.
В общем, надеюсь на твою мудрость в этом вопросе, ЛОР. Вдруг тут кто-то нашёл волшебное средство, о котором я не знаю.
Привет, ЛОР!
Как ты, наверное, помнишь, я проникнут горячей любовью к компании Mozilla, и не мог пропустить свежие новости.
А именно, в рамках антимонопольного разбирательства против Google министерство юстиции США составило список мер, призванных ограничить монополию Google на рынке интернет-поиска. Одним из пунктов является запрет для Google платить другим компаниям за использование их, Google, поиска в качестве варианта по умолчанию. Напомню, что на данный момент эта статья дохода для Mozilla составляет 80% их годового бюджета в принципе, и если эта мера будет принята, к лету следующего года Mozilla лишится 80% дохода.
(Тут, на всякий случай, уточню: Google УЖЕ проиграл антимонопольный суд, теперь бюрократы будут решать, что же именно с гугелем делать).
Естественно, руководство Mozilla не могло не предполагать подобного варианта развития событий, и поэтому ранее в октябре сократило 30% сотрудников. Это второй случай сокращения сотрудников из Mozilla только в этом году, до этого в феврале было уволено более 60 человек.
Кстати, помимо массовых сокращений, этой осенью Mozilla организовали большой Mozilla Fest в Замбии, сняв там люксовый курорт под это. Темами фестиваля были такие важные вещи как: инклюзивность, коллективное благополучие (collective wellbeing), климатическая справедливость (climate justice), использование AI для влияния на выборы. Про разработку веб-браузера мне найти ничего не удалось.
Помимо этого, Mozilla за последние годы скупила несколько стартапов, специализирующихся на AI, и всё больше денег вкладывает в эту область. Так же, в недавнем блог-посте был опубликован опрос со списком вариантов развития компании на ближайшие годы, и разработка браузера туда не входит.
В связи со всем вышеперечисленным, спешу огорчить пользователей браузера Mozilla: Firefox скорее всего всё. Если мозилка его не продаст кому-нибудь или его не форкнут, то он просто загнётся. Такие дела.
P.S. Хромогу тоже ничего хорошего не светит, с большой вероятностью гугель заставят его продать. Ещё возможно, что гугель заставят продать Android, но шансы этого несколько меньше.
Привет, ЛОР!
Не знаю, как местные макоюзеры об этом ещё не отписались, но в общем сабж. Начиная c MacOS 15.1, из системы по-умолчанию убрана поддержка запуска неподписанных программ и, что важно, из настроек убрана даже опция, отключавшая такое поведение. Пока что проверку подписи всё можно можно отключить, выполнив spctl --master-disable из под рута, но общая тенденция показывает, что скоро запуск Emacs на макбуке будет фантастикой, а не реальностью. Такие дела :(
Привет, ЛОР!
А вот расскажи, у тебя есть опыт подобного? Среди менеджмента кучи контор популярно организовывать созвоны или - упаси господь! - видеочаты на каждый чих по пять раз в день. Что происходит, если один или более из разработчиков глухой или просто очень плохо слышит? Или таких просто стараются не нанимать, несмотря на не слишком высокую легальность такого решения?
Хочу при поиске работы в следующий раз притвориться слабослышащим, дабы избегать всех этих бесполезных митингов в стиле ППР (посидели-поп%;%;%ли-разошлись).
Привет, ЛОР!
Забавная история: некий вендор решил, что не самой плохой идеей будет для проверки интернета слать HTTP запрос на kernel.org. И если для одного девайса это норм идея, то в итоге на данный момент таких запросов приходит около 700 в секунду. Люникс в опасности!
Ссылка на заведующего инфраструктурой LF: https://social.kernel.org/objects/b3edb7d1-1952-4374-b1a4-9ab5c63e99b3
Привет, ЛОР!
Тихо и незаметно во всеми нами горячо любимый язык программирования Си решили наконец добавить новый оператор, возвращающий количество элементов в массиве. То есть, аналог вот такого:
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
Название нового оператора пока не определено, и по ссылке ниже можно проголосовать за понравившийся вариант.
Ссылка на опрос: https://www.allcounted.com/s?did=qld5u66hixbtj&lang=en_US
Статья от автора предложения: https://thephd.dev/the-big-array-size-survey-for-c
Что скажут эксперты в программировании на C по поводу этого нововведения? Нужно ли оно? Станет ли язык Си ещё лучше?
Привет, ЛОР!
Наткнулся на любопытную статью тут. Авторки рассказывают, что одна из проблем в обучении программированию заключается в том, что подавляющее большинство существующих языков разработаны с учётом мужского взгляда на мир в целом и на компьютеры в частности. В то время, как главной ценностью феминизма является более человечный подход к отношениям с людьми, что может только положительно сказаться на вовлечение людей в IT.
Что ты думаешь по этому поводу, ЛОР? Стал бы ты программировать на женской версии C/C++?
| ← назад | следующие → |