LINUX.ORG.RU

Сообщения PPP328

 

Абсолютно неожиданно для всех ИИ в FF141 жрёт батарею

Форум — Talks

Акт I: Добавить локальную нейросеть для создания названий для сгруппированных вкладок и включить по-дефолту
Акт II: Она жрёт батарею и процессор.

https://www.neowin.net/news/mozilla-under-fire-for-firefox-ai-bloat-that-blows-up-cpu-and-drains-battery/

 ,

PPP328
()

Завершился IOCCC'24

Новости — Разработка
Завершился IOCCC'24
Группа Разработка

3 августа 2025 года завершился юбилейный (40 лет) конкурс по написанию запутанного С-кода IOCCC.

( читать дальше... )

>>> Смотреть всех победителей

 , ,

PPP328
()

Оказывается люди могут ущемиться от наличия лигатур

Форум — Talks

https://practicaltypography.com/ligatures-in-programming-fonts-hell-no.html

Прочитал статью и немного не понял.

Человек возмущается, что в шрифтах для программирования символы типа != могут визуально отображаться как . Аргумент: "А вот в unicode есть символ , и он не является частью языка, поэтому надо смотреть на != и не бухтеть!

P.S. Сам я уже много лет использую FiraCode с лигатурами и их наличие позволяет очень быстро понимать, что происходит в коде, не обращая внимание на синтаксические условности.

 ,

PPP328
()

Насколько требовательный и работоспособный Dolphin (Wii emulator)

Форум — Desktop

Хочу побегать в «TLoZ: Twilight Princess». Есть вопросы:

  • Насколько Dolphin требовательный? В наличии есть:
    • Ноут на лине с i5-1135G7 и без дискретки.
    • Комп с виндой на 3060
  • Насколько он вообще работоспособный? А то эмулятор, например, CD-i днищенское дно, с отстающим на минуту звуком, периодически отваливающимся управлением и еще и платный.
  • Насколько эмуль требует новый дистр, если норм будет работать на ноуте? У меня доживает 20.04.

 ,

PPP328
()

Предварительный этап в Makefile

Форум — Development

Приветствую.

Есть следующая структура каталогов:

.
├── interrupts
│   ├── handlers
│   │   ├── file.a65
│   │   └── Makefile // Вложенный
│   └── Makefile // Вложенный
├── defines.mk
├── common.mk
└── Makefile // Корневой

В первую очередь, файл defines.mk:

PROJECT_NAME = xxx

PROG_AS ?= ca65
PROG_LD ?= ld65
PROG_DOX ?= doxygen
PROG_RM ?= rm -f
PROG_MV ?= mv -f
PROG_MKDIR ?= mkdir -p
PROG_FIND ?= find
PROG_MAKE ?= make

DIR_BUILD ?= build

Файл common.mk

TARGET_SUBMAKE = $(shell \
	$(PROG_FIND) \
	. \
	-mindepth 2 \
	-type f \
	-name Makefile \
	-printf '%h\n' \
)

TARGET_SRC = $(shell \
	$(PROG_FIND) \
	. \
	-maxdepth 1 \
	-type f \
	-name '*.a65' \
	-printf '%f\n' \
)

TARGET_OBJ = $(patsubst \
	%.a65, \
	$(DIR_BUILD)/$(PROJECT_NAME)/%.o, \
	$(TARGET_SRC) \
)

.PHONY: all $(PROJECT_NAME) $(TARGET_SUBMAKE)

$(DIR_BUILD)/$(PROJECT_NAME)/%.o : %.a65
	$(PROG_MKDIR) \
	    $(DIR_BUILD)/$(PROJECT_NAME)
	$(PROG_AS) \
	    -o $@ \
	    $<

$(TARGET_SUBMAKE):
	$(PROG_MAKE) \
	    -C $@ \
	    MAKEFILE_DEF=$(MAKEFILE_DEF) \
	    MAKEFILE_COMMON=$(MAKEFILE_COMMON) \
	    DIR_BUILD=$(DIR_BUILD)

$(PROJECT_NAME): $(TARGET_SUBMAKE) $(TARGET_OBJ)

all: $(PROJECT_NAME)

Корневой Makefile

MAKEFILE_DEF    := $(CURDIR)/defines.mk
MAKEFILE_COMMON := $(CURDIR)/common.mk

include $(MAKEFILE_DEF)
include $(MAKEFILE_COMMON)

.PHONY: doc clean

all: doc

doc:
	$(PROG_DOX) Doxygen

clean:
	$(PROG_RM) $(DIR_BUILD)/$(PROJECT)/*.o

Вложенные Makefile (все одинаковые)

include $(MAKEFILE_DEF)
include $(MAKEFILE_COMMON)

Итак, в чём вопросы:

1

Оно сейчас работает. Но меня не устраивает, что оно на каждый файл вызывает создание целевого каталога (см.

$(DIR_BUILD)/$(PROJECT_NAME)/%.o : %.a65
	$(PROG_MKDIR) \
	    $(DIR_BUILD)/$(PROJECT_NAME)
	...

). Что я пытался сделать: а) Вынести mkdir в отдельный сегмент и вызывать как $(DIR_BUILD)/$(PROJECT_NAME)/%.o : %.a65 | build-dir
б) Вынести mkdir в отдельный сегмент и вызывать тут: $(PROJECT_NAME): build-dir $(TARGET_SUBMAKE) $(TARGET_OBJ)

Оба варианта приводят к тому, что при вызове корневого make он просто создаёт директорию и даже не пытается заходить в дочерние Makefile.

2

Приветствуется общая критика. Я не эксперт в make, соответственно буду рад услышать, что я делаю не так.

P.S. Сразу уточню насчёт build директории. «Корневой» makefile на самом деле тоже не корневой и его вызывают выше с

DIR_BUILD := $(CURDIR)/build

make -C code/xxx DIR_BUILD=$(DIR_BUILD)

 ,

PPP328
()

Лорчик, а помоги песню найти

Форум — Talks

Где-то в 2012м имел диск с «Навигатором игрового мира» и «Страны игр». В каком-то подкасте у них была песня, которую я и пытаюсь найти. Если это было в Навигаторе - то, возможно, 3-4й выпуск 2012, потому что помню как один из ведущих орал «Cannon Fodder, war has never been so much fun», а по гугле 3ю часть они обсуждали в 3-4м от 2012. Если Страна Игр, то затрудняюсь сказать, какой выпуск, год плюс минус тот же.

Поёт женщина, голос примерно похожий на Бритни (но тогда все под нее косили). Если мозг окончательно не рассохся, то там была рифма bubbles-troubles, но это неточно.

А, ну и да, я мотив точно помню. Воссоздал:

Может кто помнит.

Шазамы и всякие musicscore выдают дичь

 ,

PPP328
()

Очевидное-невероятное. В npm снова нашли зловредов

Форум — Talks

https://socket.dev/blog/malicious-npm-packages-target-react-vue-and-vite-ecosystems-with-destructive-payloads

В сумме примерно 6к+ загрузок.

Очередное доказательство помойки как npm так и всей идеи non-trusted пакетов в целом.

Ключевые моменты:

  • Маскировка под легитимные пакеты: Злоумышленник, действующий под псевдонимом xuxingfeng, опубликовал восемь вредоносных пакетов, маскируя их под полезные инструменты и плагины. Некоторые из них имитировали названия популярных пакетов, таких как @vitejs/plugin-react и vite-plugin-html, используя технику, известную как «typosquatting».

  • Деструктивные действия: Вредоносные пакеты содержали скрытые полезные нагрузки, способные повреждать данные, удалять критические файлы и вызывать сбои в системах разработчиков.

  • Смешивание вредоносных и легитимных пакетов: Чтобы повысить доверие, злоумышленник также публиковал несколько легитимных, не вредоносных пакетов, создавая видимость надежного разработчика.

  • Текущий статус: На момент публикации статьи вредоносные пакеты всё ещё доступны в реестре npm. Команда Socket официально запросила их удаление

  • Пакеты были в репозитории и оставались незамеченными в течение двух лет

 ,

PPP328
()

А кто-то вообще разобрался, что пытались сказать журналисты про Hash Map?

Форум — Talks

В своей работе 1985 года информатик Эндрю Яо, позже ставший лауреатом премии Тьюринга, доказал, что для хеш-таблиц с открытой адресацией лучший способ поиска элемента или пустой ячейки — это случайный перебор возможных мест. Такой подход называется универсальным хешированием. Яо также предположил, что в худшем случае, когда необходимо найти последнюю свободную ячейку, нельзя обойтись без затрат времени, пропорциональных x. Если хеш-таблица заполнена на 99%, то, вероятно, придется проверить около 100 разных позиций, чтобы найти свободное место.

В конце 2021 года на тот момент студент Ратгерского университета Эндрю Крапивин (в своей недавней презентации исследователь представляется именно так; в 2020 году в беседе с жившим в Украине дедом он называл себя Андреем) случайно наткнулся на публикацию про уменьшение размеров указателей в памяти компьютера. Через несколько лет он вернулся к этой статье, перечитал ее и понял, что можно добиться того, что указатели будут занимать еще меньше памяти. Однако для этого нужно улучшить саму организацию данных, к которым указатели будут направлять.

Крапивин обратил внимание на хеш-таблицы и в процессе работы неожиданно для себя создал их новый тип, который оказался значительно быстрее. Его таблица позволяла находить элементы за меньшее время и с меньшими усилиями.

Ссыкли:

Что конкретно предлагает-то? Я просмотрел его презентацию, но сложилось впечатление, что парень переизобрел то ли последовательный сдвиг индекса если ячейка занята, то ли хранить в ячейке не один элемент, а список элементов с одним хэшом.

Соль то в чем?

P.S. Также в тред приглашаются свидетели движения «математика программисту не нужна»

 , ,

PPP328
()

Под какими веществами собирается Google Chrome?

Форум — Desktop

Уже далеко не в первый раз получаю проблему, что вкладка отстреливается с SIGILL. Встречал такое на разных машинах, на разных версиях хрома и вот только что опять и чаша переполнена.

Как? Вот как можно собирать под х86_64, чтобы у тебя там появилась недопустимая инструкция? Чем надо собирать? Они там для AVX512 включают? Или как? По запросу «chrome sigill» выводит буквально почти все версии в поиске и все года.

В инете много таких же случаев, где дебилы с ТП отвечают «ну попробуйте перезагрузить компьютер или переустановите windows» или (редко) «ну это известная проблема, обновитесь до версии ххх.хх.ххх» как вообще у вас в билд попадают такие инструкции??

Вот, например, на brave: https://community.brave.com/t/suddenly-getting-error-code-sigill-on-many-websites/483238/15

P.S. Для firefox’о защитников: в гугле много выдачи и про firefox sigill тоже.

 , sigill,

PPP328
()

Ошибка при редактировании комментария

Форум — Linux-org-ru
TransactionCallback threw undeclared checked exception
К сожалению, произошла исключительная ситуация при генерации страницы.

Произошла непредвиденная ошибка. Администраторы получили об этом сигнал.

Пытаюсь отредактировать комментарий, просто добавляю ссылку на ImgBB, при «сохранить» вылазит это.

Администраторы получили сигнал?

 ,

PPP328
()

Почему вся документация написана так всрато?

Форум — Talks

Сначала хотел пожаловаться на конкретную систему, но копнули глубже и выяснилось, что это общая проблема.

Windows

Вот берем, например, хвалёный MSDN (до линуксов тоже доберемся).
Рассмотрим функцию _write. Опустим чёртов момент, что они депрекейтнули write в пользу _write с тем же синтаксисом, опустим что под виндой есть суперкосяк с текстовым режимом. Опустим, что может быть установлен parameters_handle, который коллбекнется при передаче невалидных параметров. Опустим то, что сигнатура использует int и unsigned вместо ssize_t и size_t:

int _write(
   int fd,
   const void *buffer,
   unsigned int count
);

Нас интересует такой момент:

If execution is allowed to continue, the function returns -1 and errno is set to one of three values: EBADF, which means the file descriptor is invalid or the file isn't opened for writing; ENOSPC, which means there isn't enough space left on the device for the operation; or EINVAL, which means that buffer was a null pointer, or that an odd count of bytes was passed in Unicode mode.

Итого нам говорят, что:

  • Если передан невалидный fd - продолжать нельзя
  • Если на диске закончилось не хватает место - то продолжать нельзя
  • Если передан кривой буфер - то продолжать нельзя

Ну то есть функция возвращает ошибку всего в трех случаях и все они критические. Окей, а что насчет возврата числа меньше, чем передано в count? Когда такое может быть? В теории когда выполнение функции прервано сигналом или когда записалось N байт и кончилось место. Однако под windows сигналы обрабатываются специально установленным коллбеком и такой вариант отметается. А что касается диска, то:

If the actual space remaining on the disk is less than the size of the buffer the function is trying to write to the disk, _write fails and doesn't flush any of the buffer's contents to the disk

То есть она не попытается записать то, что возможно (что неимоверно тупо, поскольку между моментом проверки места и попыткой записи это самое место могло появиться). Ну то есть _write под windows никогда не вернет значение меньше count (и даже больше count не вернет, несмотря на то что в текстовом режиме запишется больше(!) байтов). Еще есть прикол с 0x17 байтом.

По итогу - нигде в документации не записано - а вернет ли когда-либо _write что-то кроме -1 или count. Если никогда не вернёт, то смысла в возвращаемом count нет. Поведение сломано, сигнатура сломана, доломайте уже контракт. Причем (якобы) существует функция write, но она объявлена устаревшей и плохой, негодной функцией.

The name is deprecated because it doesn’t follow the Standard C rules for implementation-specific names.

Linux

С чего, собственно, всё началось. Читали в качестве групповой терапии ман man 2 write. И нашли такое:

       The number of bytes written may be less than  count  if,  for  example,
       there  is  insufficient space on the underlying physical medium
       Note  that  a  successful  write() may transfer fewer than count bytes.
       Such partial writes can occur for various reasons; for example, because
       there was insufficient space on the disk device to write all of the re‐
       quested bytes

Но в конце в списке errno видим:

       ENOSPC The device containing the file referred to by fd has no room for
              the data.

Т.е. сначала нам два раза говорят, что если на диске не хватает места то запишет сколько влезет и вернет N, а в списке ошибок нам говорят, что будет выставлено -1 и установлен ENOSPC как errno.

Разгадка тут простая - если на диске есть хотя бы один байт свободного пространства - оно запишет один байт. Если там ноль - то вернет -1 + ENOSPC. Но где конкретно это написано? Почему документация превратилась в противоречащий сам себе кусок текста без этого уточнения? Поведение, кстати, полностью противоположное тому, что задано для windows.

 , , ,

PPP328
()

Как конкретно работает отслеживание и рекомендации?

Форум — Talks

На днях искал нужный фильм, перебирал в гугле название и открывал кинопоиск с предложенными ГоПоТой названиями. Сегодня (спустя несколько дней) мне youtube предлагает посмотреть один из фильмов которые я искал.

Понятно, что сопоставилось потому что я а) залогинен в гугл-аккаунте б) искал в гугле. Но вопрос в том как конкретно это работает? Youtube не получает от браузера историю посещений. Значит на сервере гугла при формировании рекомендаций используется мой профиль как облако тегов. Но тогда это должно работать безошибочно и каждый раз. А оно срабатывает настолько редко, что кажется что это вообще совпадение, что оно раз в месяц предлагает примерно по теме. Ну и задержка в столько дней. Может пару дней назад я бы и посмотрел фильм, а сейчас поезд ушел.

Это как тупые алгоритмы на амазоне, сверхкорпорации, которая не понимает, что если ты уже что-то купил, то не надо тебе предлагать тот же товар от другого продавца.

 , ,

PPP328
()

Помогите найти фильм

Форум — Talks

(Вроде ж был такой запиненый топик, или мне кажется?)

В общем что-то похожее на «омен», но не они (вроде). В красках помню финальную сцену, где дьявол сбрасывает человеческую шкуру, становится классической ебобой с рогами и крыльями, а на него прут танки и там китайский генерал высовывается из танка и шашкой машет.

Пытался использовать поиск с ChatGPT, предлагает букально что угодно вместо этого:

«Вузгода» (оригинальное название — «The Devil Inside»), выпущенный в 2012 году. В этом фильме речь идет о женщине, исследующей случаи экзорцизма и обращения к демонам. Однако в описании концовки вы могли перепутать детали, так как фильм на самом деле заканчивается внезапным и шокирующим образом, но китайские танки не являются частью истории.

Если же ваш вопрос скорее относится к фильму с другой сюжетной линией и концовкой, где действительно присутствуют танки и дьявол, то это может быть «End of Days» (Конец света), выпущенный в 1999 году с Арнольдом Шварценеггером в главной роли. В этом фильме также есть элементы, связанные с дьяволом и его пришествием.

«Физика одиночества» («The Inhabited Island») — российский научно-фантастический фильм, вышедший в 2009 году. В нем действительно есть сцена с китайским генералом, который выезжает из танка, а также сюжет, связанный с темой наездников и зла.

Дьявол" (The Devil), выпущенный в 1972 году. В этой картине действительно присутствуют сцены, связанные с дьяволом, а также зрелищные элементы, которые могут вам запомниться.

Однако, с учётом наличие китайских танков и генерала в вашей истории, скорее всего, речь идет о фильме «Неудержимые 2» (или «The Final Countdown»), где присутствуют элементы путешествия во времени и столкновение различных эпох.

Если ни один из вышеупомянутых фильмов не подходит, возможно, это «Тайна третьей планеты» (1981), если мы говорим о советском анимационном фильме, который тоже включает в себя элементы борьбы со злом и причин, происходящих на другой планете.

Разумеется ни один из них это не он. Возможно, что фильм из треш-категории, потому что смотрелся на телевизору где-то в нулевых.

 , ,

PPP328
()

Поменялся размер элементов на linux.org.ru

Форум — Linux-org-ru

Выглядит так, как будто включен масштаб 75%. Проверял с разных компов и ОС, в том числе приватки.

Что-то произошло?

 

PPP328
()

Написал js/css для «выделения» kali-топиков

Форум — Talks

Пока одна половина ржёт от kali-топиков, другая бомбит, а третья опустила руки написал правило для кастомного правила для страницы трекера.

Выглядит вот так: https://ibb.co/wJjypxS

Использовал расширение Custom Style Script для chrome (скорее всего будет работать любое, которое умеет кастомные скрипты и CSS)

Ссылка на kali-топик остается кликабельной.

js:

window.addEventListener("load", () => {
    let items = document.getElementsByClassName('tracker-item');
    for (let item of items) {
        let tags = item.getElementsByClassName('tag');
        for (let tag of tags) {
            if (tag.textContent.localeCompare("kali") == 0) {
                item.innerHTML = "<div class = \"tracker-title\"><p class = \"kali-title\">Kali-топик свернут</p></div>"
            }
        }
    }
}, false);

css

.kali-title {
    opacity: 0.33;
    font-size: 10px;
}

 , ,

PPP328
()

Десктопный текстовый LLM

Форум — Desktop

Есть RTX3060 12ГБ. Есть ли в данный момент возможность на такую конфигурацию поставить standalone текстовый LLM? Чтобы хотя б на уровне ChatGPT 3.5 тупило (или лучше).

Параллельно вопрос - а контекст в такое-то количество токенов - это тоже какое-то фундаментальное ограничение? Нельзя его поставить больше? А то кидаешь кусками произведения для анализа, так оно начало забывает и делает мне смешно.

 , ,

PPP328
()

Нашел заставку «трубопровод» в мультфильме 85го

Форум — Talks

Разве она не в XP появилась? Неужели капиталистический Билли украл заставку у Советского союза?

https://i.postimg.cc/vZQ3vbjt/2024-09-25-02-51-22.png

https://youtu.be/HJDPXpi7s-M?t=500

 , ,

PPP328
()

Дуров арестован

Форум — Talks

⚡️По информации французского телеканала TF1, основатель и генеральный директор Telegram был задержан в субботу вечером в аэропорту Ле Бурже. 39-летнего предпринимателя сопровождали его телохранитель и женщина.

Издание утверждает, что Дуров прибыл из Азербайджана и был объявлен в федеральный розыск. На него якобы был выписан французский ордер на обыск, выданный OFMI (Национальным управлением судебной полиции) на основании предварительного расследования.

⚡️Ордер был выписан из-за того, что Дуров не сотрудничал с французскими силовиками, что делает его соучастником незаконного оборота наркотиков, и прочих тяжких преступлений — телеканал TF1

⚡️Следователи поместили Дурова под стражу — TF1

⚡️Павел Дуров должен быть представлен судье в эту субботу вечером, ему предъявят обвинение по множеству преступлений

Среди возможных обвинений: терроризм, наркотики, соучастие, мошенничество, отмывание денег, сокрытие, педофильский контент, сообщает канал TF1.

 

PPP328
()

Как экспортировать в fb2?

Форум — Desktop

Есть книжка в виде rtf, читалка плохо ее показывает, попробовал экспортнуть в epub - не настраивается размер шрифта в читалке тогда, видимо рендерится как страница (как в pdf). FB2 при этом рендерит отлично, хочу сконвертить в него. В либре не нашел такой опции. Пытался загуглить, но гугл внедрил ИИ, который игнорирует запрос и фантазирует: https://i.postimg.cc/SQt8VfM3/2024-08-24-15-22-14.png

Вопрос: как экспортнуть в fb2? Плевать, если заголовки слегка поедут.

 ,

PPP328
()

А можно завезти подсветку ассемблера?

Форум — Linux-org-ru

А то ну вообще убого работает. В списке поддерживаемых языков асма вообще нет.

_get_type_msg:
        mov     eax, offset .L.str
        add     edi, -30
        cmp     edi, 11
        ja      .LBB0_6
        jmp     qword ptr [8*rdi + .LJTI0_0]
.LBB0_2:
        mov     eax, offset .L.str.1
        ret
.LBB0_3:
        mov     eax, offset .L.str.2
        ret
.LBB0_4:
        mov     eax, offset .L.str.3
        ret
.LBB0_5:
        mov     eax, offset .L.str.4
.LBB0_6:
        ret
.LJTI0_0:
        .quad   .LBB0_2
        .quad   .LBB0_3
        .quad   .LBB0_6
        .quad   .LBB0_6
        .quad   .LBB0_6
        .quad   .LBB0_6
        .quad   .LBB0_6
        .quad   .LBB0_6
        .quad   .LBB0_6
        .quad   .LBB0_6
        .quad   .LBB0_4
        .quad   .LBB0_5

.L.str:
        .asciz  "DEBUG"

.L.str.1:
        .asciz  "INFO"

.L.str.2:
        .asciz  "WARNING"

.L.str.3:
        .asciz  "ERROR"

.L.str.4:
        .asciz  "FATAL"

 , ,

PPP328
()

RSS подписка на новые темы