commit -m "better"
3.21K subscribers
1.01K photos
147 videos
3 files
2.35K links
just random thoughts
Download Telegram
commit -m "better"
Постепенно собираю openjdk8, уже на основе openjdk7.
{1/2} LEAVE /ix/store/8UzMbZu3BtpZ45nIX9ba46-bin-java-8/touch
{2/2} BUILD /ix/store/oOya9DHUM09bPoUGDRQCa2-rlm-ephemeral/touch
run hooks from glib_compile_schemas.sh
{2/2} LEAVE /ix/store/oOya9DHUM09bPoUGDRQCa2-rlm-ephemeral/touch
pg:home# ./ix build bld/java/8
👍7🔥3🆒2🤷2
Forwarded from 4chan
Media is too big
VIEW IN TELEGRAM
Когда приходишь просить повышения зарплаты у начальства
😁337👍5🗿5🔥4😢1🤡1
https://cs.android.com/android/platform/superproject/main/+/main:prebuilts/rust/bootstrap/README.md

TL;DR - в Google работают параноики (в хорошем смысле), их настолько беспокоит тема #bootstrap, supply chain attack, и атака Томпсона, что они, перед тем, как использовать rust в android, запилили его full source bootstrap.

Очень круто!

(спасибо подписчикам за ссылку)
29👍12🔥6🆒2🤯1🤨1
😁52🔥17🤡15💊9🤣32👍1🤔1
😁58🏆13🔥1
Forwarded from Банкста
Media is too big
VIEW IN TELEGRAM
Уборщик из Индии в Санкт-Петербурге оказался бывшим разработчиком по искусственному интеллекту. Он говорит, что работал в компаниях вроде Microsoft и использовал новые инструменты — ИИ, чат-боты, GPT и тому подобное.

В России у него другие задачи. Он с коллегами работает в Санкт-Петербурге Приморском районе и носят специальную нашивку в виде флагов Индии и России на форме. Для них организовано проживание и еда за счёт работодателя, а зарплата доходит до 100 тысяч рублей в месяц.

При этом у них есть профессии — среди прибывших бывший айтишник, предприниматель, организаторы свадеб, фермеры, водители, архитекторы, скульптор, кожевник. @banksta
🤣19😁5😢4👍3💊21👏1🤔1
https://xn--r1a.website/WhatDontYouLoveUsAnymore/18575

Осуждаю насилие, но затерпеть придётся
🤯21👍14😁13
Тут Spotify забекапили

We backed up Spotify (metadata and music files). It’s distributed in bulk torrents (~300TB), grouped by popularity.

This release includes the largest publicly available music metadata database with 256 million tracks and 186 million unique ISRCs.

It’s the world’s first “preservation archive” for music which is fully open (meaning it can easily be mirrored by anyone with enough disk space), with 86 million music files, representing around 99.6% of listens.
. . .
Before we dive into the details of this collection, here is a quick overview:

- Spotify has around 256 million tracks. This collection contains metadata for an estimated 99.9% of tracks.
- We archived around 86 million music files, representing around 99.6% of listens. It’s a little under 300TB in total size.
- We primarily used Spotify’s “popularity” metric to prioritize tracks. View the top 10,000 most popular songs in this HTML file (13.8MB gzipped).
- For popularity>0, we got close to all tracks on the platform. The quality is the original OGG Vorbis at 160kbit/s. Metadata was added without reencoding the audio (and an archive of diff files is available to reconstruct the original files from Spotify, as well as a metadata file with original hashes and checksums).
- For popularity=0, we got files representing about half the number of listens (either original or a copy with the same ISRC). The audio is reencoded to OGG Opus at 75kbit/s — sounding the same to most people, but noticeable to an expert.
- The cutoff is 2025-07, anything released after that date may not be present (though in some cases it is).
- This is by far the largest music metadata database that is publicly available. For comparison, we have 256 million tracks, while others have 50-150 million. Our data is well-annotated: MusicBrainz has 5 million unique ISRCs, while our database has 186 million.
- This is the world’s first “preservation archive” for music which is fully open (meaning it can easily be mirrored by anyone with enough disk space).

Top 10,000 Songs by Popularity
https://annas-archive.li/blog/spotify/spotify-top-10k-songs-table.html
👍24🔥174🥱2🆒1
Forwarded from Блог*
#prog

Для #java есть JEP 401: Value Classes and Objects (Preview). Value-объекты в данном случае — это объекты, у которых отсутствует идентичность. Это полезно, поскольку для многих классов, которые просто объединяют несколько полей вместе для удобства (например, LocalDateTime, или условной Point в графическом движке), наличие идентичности, отличной от совокупности значений, не имеет большого смысла.

На практике идентичность у объектов Java существует из-за того, что под них выделяется память в куче и, соответственно, у них есть уникальный адрес. Отсутствие такой идентичности позволяет генерировать более разумную реализацию оператора ==, а также делать то, что в JEP называется "heap flattening": изменение представление объекта, ссылки на который вместо хранения адреса выделенной памяти хранят значения полей объекта.

Всё это звучит хорошо, но, к сожалению, данная идея страдает от существующих элементов дизайна Java.

Первая — это повальная нуллабельность. Даже value-классы должны иметь возможность быть null, и это означает, что даже для сжатого представления один бит в ссылке должен отводиться под null-флаг. Как пишут сами авторы, массив из Integer, например, может хранить значения прямо в ссылках, но так как численные значения Integer занимают 32 бита и ещё один бит должен отводиться под null-флаг, на практике значения элементов массива будут занимать минимум по 64 бита. Это всё ещё выигрыш по сравнению с тем, что есть сейчас, поскольку это позволяет избежать индирекции на указателях и выделения 64 бита на заголовок каждого объекта в куче, но это всё ещё расточительно. Авторы явно признают эту проблему, и в разделе про дальнейшую работу есть ссылка на Null-restricted value class types JEP, но это пока лишь черновик.

Вторая проблема (которая, справедливости ради, была неочевидна индустрии на момент создания Java) — это отсутствие отслеживания алиасинга/перекрытия ссылок. В JEP авторы пишут:

Heap flattening must maintain the integrity of data. A flattened reference must always be read and written atomically, or it could become corrupted. On common platforms, this limits the size of most flattened references to no more than 64 bits.


Иными словами, выгоды от избегания аллокаций коснуться только очень маленьких объектов — особенно с учётом обязательного null-флага и паддинга под него. Но тут вообще стоит задать вопрос: зачем в принципе стоит требование атомарности обновлений ссылок? Атомарность нужна для того, чтобы избежать разрыва значений при одновременных обновлениях. Соответственно, если одновременных доступов нет, атомарность не требуется! Если бы в Java был механизм, который позволяет удостоверять, что доступ к значению уникален и остаётся уникальным в течение всего времени, пока значение остаётся достижимым (по крайней мере, для записи — многопоточное чтение безопасно и без атомарных операций), можно было бы использовать неатомарные операции для обновлений и избежать таким образом ограничений на размеры value-объектов. Можно считать это ещё одним примером к Fixing the next 10000 aliasing bugs, где инвариантом выступает целостность данных, и плюсом в копилку преимуществ отслеживания алиасинга для различных языков программирования.
🤔5
Forwarded from Лепра
Айтишник в 32 года нанял няню из детского сада, чтобы она следила за тем, как он работает, ест, вовремя ли ложится спать, выходит ли на улицу и не отлынивает ли от дел

Айтишники изобрели жену, поздравим 👍

🙈 Подписаться на Лепру 🙈
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5710🤡5🔥3🆒2
Forwarded from disasm.me channel
Разбираясь с тяжеловесными пакетами, нашёл вот такой интересный пакет: quick-logger-js

Занятно видеть разницу в весе релизов:
1.0.5 — 565 KB
1.0.6 — 40.7 KB
1.0.7 — 3.29 GB 👀
1.0.8 — 55.6 KB
1.0.9 — 55.6 KB

Что произошло? В релиз попал файл stdout.txt с результатами бенчмарка для библиотеки. Релиз не удалён. Много думал 😺

#npm
@disasm_me_ch
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣43😁31🔥4🥰3👏2🐳1
Вышла новая Lua - https://www.opennet.ru/opennews/art.shtml?num=64476

https://github.com/luarocks/luarocks/issues/1215 - а вот тикет про MIMT в пакетнике для Lua, всем пофиг. Похоже, они так 11 лет назад починили битый сертификат у репы - https://github.com/luarocks/luarocks/issues/286. К слову, сертификат всё ещё битый

А вот, например, меня спрашивают, почему я написал свой пакетник на python, а не на lua, я даже растерялся с ответом - https://github.com/stal-ix/ix/issues/803
😁13🔥4🤡3🐳1
https://www.phoronix.com/news/Meta-SCX-LAVD-Steam-Deck-Server

"An interesting anecdote from this month's Linux Plumbers Conference in Tokyo is that Meta (Facebook) is using the Linux scheduler originally designed for the needs of Valve's Steam Deck... On Meta Servers. Meta has found that the scheduler can actually adapt and work very well on the hyperscaler's large servers"

TL;DR - опять Миша не разобрался.

https://lpc.events/event/19/contributions/2099/attachments/1875/4020/lpc-2025-lavd-meta.pdf

Не "Meta использует тот же шедулер, что работает на Steam Deck", а "Meta взяли фреймворк шедулеров на ebpf, и творчески запилили свой вариант", #sched_ext #ebpf
😁16🔥94🐳2🆒1
Forwarded from Мост на Жепи (Валерия Бр.)
😁46🗿74😭2💘1
commit -m "better"
Искал тут в инторнетах ответ на вопрос "а как напечатать содержимое thread local переменной в статически слинкованной программе в gdb" (ответ, кстати, совершенно нетривиальный, но про это в другой раз)
Пару лет назад писал, что в gdb нельзя печатать thread local переменные, с musl и/или статической сборкой - https://xn--r1a.website/itpgchannel/1420.

И, ура, это починили!

https://www.opennet.ru/opennews/art.shtml?num=64463

"На платформе Linux реализована встроенная возможность доступа к локальным переменным потоков (Thread-Local Storage, TLS), используемая при отсутствии библиотеки libthread_db. Возможность доступна для архитектур x86_64, aarch64, ppc64, s390x и riscv при сборке с GLIBC или MUSL"

На КДПВ видно, что это реально работает!

(бонусом на КДПВ можно увидеть эмодзи в gdb, сука, глаза бы мои не видели это непотребство)
😁25🔥15👍5❤‍🔥3🆒21
Forwarded from Блог*
#prog #article

Advent of code optimizations — сборник декабрьских статей, по одной в день (в обратном хронологическом порядке), демонстрирующих на отдельных небольших примерах различные оптимизации компиляторов. Написано Мэттом Годболтом (да-да, тот самый, который godbolt.org).
👍26🔥63🆒1
https://www.opennet.ru/opennews/art.shtml?num=64485

"Исследователи из компании CodeRabbit проанализировали 470 pull-запросов (350 - созданные AI, 150 - написанные вручную) в открытых проектах на GitHub и пришли к выводу, что в изменениях, сгенерированных AI-ассистентами, присутствует в 1.7 раза больше значительных дефектов и в 1.4 раза больше критических проблем, чем во вручную написанном коде. В среднем в сгенерированных через AI pull-запросах присутствовало 10.83 проблем, в то время как в созданных вручную изменениях данный показатель составил 6.45.

При рассмотрении отдельных категорий проблем, в созданном AI коде было в 1.75 раз больше логических ошибок, в 1.64 раза больше проблем с качеством и сопровождаемостью кода, в 1.56 больше проблем с безопасностью и в 1.41 раз больше проблем с производительностью. Дополнительно отмечается, что в генерируемом через AI коде в 1.88 раз выше вероятность некорректной обработки паролей, в 1.91 раз - небезопасного предоставления доступа к объектам, 2.74 раза - межсайтового скриптинга (XSS) и в 1.82 раза - небезопасной десериализации данных. При этом в написанном людьми коде в 1.76 раз больше орфографических ошибок и в 1.32 раза больше ошибок, связанных с тестированием"
👍13🤡5🔥31🆒1