Шрифты сделай сам

Jul. 14th, 2025 12:27 pm
vak: (Знайка)
[personal profile] vak
В Питоне образовалась качественная поддержка для разработки современных шрифтов.К примеру, вот как выглядят исходники буквы A в шрифте TikTokSans: A_.glyph

Панорамы из Швеции

Jul. 13th, 2025 04:29 pm
vak: (Default)
[personal profile] vak
Вид с холма поверх крыш Сигтюны, древней столицы Швеции.



Развалины церкви 12 века в Сигтюне.



На пристани в Сигтюне.



Парк на берегу озера в Сигтюне.



Стокгольм, вид на старый город Гамла-Стан.



Стокгольм, на центральной пристани.



Стокгольм, статуя основателя города Birger jarl.



"Голубой зал" городской ратуши. Здесь проходит торжественный банкет вручения Нобелевских премий.

Odnaždy, v stud́onuü zimńuü poru

Jul. 13th, 2025 02:01 pm
vak: (Default)
[personal profile] vak
Пробуем латинскую кодировку для русского языка. Вот скрипт, перекодирующий произвольный текст.

Odnaždy, v stud́onuü zimńuü poru
Ä iz ĺesu vyšel; byl siĺnyj moroz.
Gĺažu, podnimaëtśa ḿedĺenno v goru
Lošadka, v́ezuşaä hvorostu voz.
I šestvuä važno, v spokojstvii činnom,
Lošadku v́ed́ot pod uzdcy mužičok
V boĺših sapogah, v polušubḱe ovčinnom,
V boĺših rukavicah… a sam s nogotok!
«Zdorovo, parnişe!» — Stupaj śeb́e mimo! —
«Už boĺno ty groźen, kak ä pogĺažu!
Otkuda droviški?» — Iz ĺesu, v́estimo;
Ot́ec, slyšiš, rubit, a ä otvožu.
(V ĺesu razdavalśa topor drovośeka.) —
«A čto, u otca-to boĺšaä śemä?»
— Śemä-to boĺšaä, da dva čelov́eka
Vśego mužikov-to: ot́ec moj da ä…—
«Tak von ono čto! A kak zvat́ t́eb́a?» — Vlasom.—
«A koj t́eb́e godik?» — Šestoj minoval…
Nu, ḿortvaä! — kriknul maĺutočka basom,
Rvanul pod uzdcy i bystŕej zašagal.

Русская латиница

Jul. 11th, 2025 12:09 pm
vak: (Аристипп)
[personal profile] vak
Раз уж "русский мир" движется в закат, пофантазируем насчёт перехода на латиницу. Йотированные гласные отметим умляутом.
Cyrillic Latin     Notes
---------------------------------------------
А а A a Open vowel, like "father".
Б б B b Voiced bilabial stop.
В в V v Voiced labiodental fricative.
Г г G g Voiced velar stop.
Д д D d Voiced alveolar stop.
Е е Ë ë Iotated "e", like "yes". Implies iotization (including glide) initially/after vowels; palatalizes preceding consonant.
Ё ё Ö ö Iotated "o", like "yoke". Implies iotization (including glide) initially/after vowels; palatalizes preceding consonant.
Ж ж Ž ž Voiced retroflex fricative, like "measure".
З з Z z Voiced alveolar fricative.
И и I i Close front vowel, like "machine". Palatalizes preceding consonant.
Й й J j Palatal approximant, like "yes". Used explicitly in diphthongs or where "й" appears.
К к K k Voiceless velar stop.
Л л L l Alveolar lateral; softness implied by following vowel.
М м M m Bilabial nasal.
Н н N n Alveolar nasal; softness implied by following vowel.
О о O o Mid-back vowel, like "or" (unstressed reduces).
П п P p Voiceless bilabial stop.
Р р R r Trilled alveolar, like Spanish "rr".
С с S s Voiceless alveolar fricative.
Т т T t Voiceless alveolar stop.
У у U u Close back vowel, like "boot".
Ф ф F f Voiceless labiodental fricative.
Х х H h Voiceless velar fricative, like Scottish "loch".
Ц ц C c Voiceless alveolar affricate, like "tsar".
Ч ч Č č Voiceless palato-alveolar affricate, like "cheese" but softer.
Ш ш Š š Voiceless retroflex fricative, like "sh" in "ship".
Щ щ Ş ş Long voiceless palato-alveolar fricative, like "fresh cheese".
Ъ ъ ' Indicates hard consonant separation; apostrophe for juncture.
Ы ы Y y Close central vowel, like "bit" but backer. Hardens preceding consonant.
Ь ь ´ (acute) Placed over the consonant (e.g. t́) to indicate palatalization/softening.
Э э E e Mid-front vowel, like "bet". Does not palatalize preceding consonant.
Ю ю Ü ü Iotated "u", like "you". Implies iotization (including glide) initially/after vowels; palatalizes preceding consonant.
Я я Ä ä Iotated "a", like "yard". Implies iotization (including glide) initially/after vowels; palatalizes preceding consonant.
Мягкие согласные обозначим акутом. Но, как предложил [personal profile] spamsink , перед i ë ö ü ä акут можно не ставить, ведь и так понятно, что согласная смягчается.
бь      B́ b́
вь V́ v́
гь Ǵ ǵ
дь D́ d́
зь Ź ź
кь Ḱ ḱ
ль Ĺ ĺ
мь Ḿ ḿ
нь Ń ń
пь Ṕ ṕ
рь Ŕ ŕ
сь Ś ś
ть T́ t́
фь F́ f́
хь H́ h́
ць Ć ć
Примеры:
  • Украина → Ukraina
  • Киев → Kiëv
  • Здравствуйте → Zdravstvujt́e
  • Спасибо → Spasibo
  • Пиво → Pivo
  • Да → Da
  • Нет → Ńet
  • Борщ → Borş
  • Царь → Caŕ
  • Щи → Şi
  • Я люблю русскую кухню → Ä ĺubĺu russkuü kuhńu
  • Щекочихин-Крестовоздвиженский → Şekočihin-Kŕestovozdviženskij

Nested Prime Factorization (NPF)

Jul. 10th, 2025 09:45 pm
vak: (Робот 1)
[personal profile] vak
Появилась новая версия Грока, ну я её сразу и озадачил.

> Please propose a new revolutionary method of representing integer numbers.

The "Nested Prime Factorization" (NPF) system is a revolutionary method for representing integers that transforms the traditional prime factorization into a recursive, nested structure. This approach not only highlights the multiplicative nature of numbers but also creates a tree-like representation that is particularly suited for modern computational paradigms, such as tree-based machine learning models, recursive algorithms, and efficient storage of large numbers in hierarchical data structures. Unlike conventional positional systems (e.g., decimal or binary), which focus on additive place values, NPF emphasizes multiplication and recursion, making it easier to visualize and manipulate number theory properties like primality, exponents, and factor relationships. It is compact for highly composite numbers or high powers, reduces repetition in representation, and enables novel operations like "unfolding" the tree for factorization or "folding" for synthesis.

How the NPF System Works

1. Base Cases:
  • 0 is represented as ∅ (empty set, symbolizing absence).
  • 1 is represented as [1] (a singleton leaf).
  • Negative integers are prefixed with a minus sign (-) applied to the representation of their absolute value (e.g., -n is -[representation of n]).
2. Positive Integers (n > 1):
  • Start with the canonical prime factorization of n = p1^α1 * p2^α2 * ... * pk^αk, where p1 < p2 < ... < pk are primes and αi > 0.
  • Represent n as a list [R(α1), R(α2), ..., R(αk)], where R(αi) is the recursive representation of the exponent αi.
  • Recurse on each exponent αi until reaching base cases (1 or primes, which are leaves).
  • Primes are represented as themselves in leaves, but if an exponent is prime, it is left as is unless further decomposed (primes stop recursion).
3. Recursion Rule:
  • If an exponent α is 1, it is [1].
  • If α is prime, it is the prime value (e.g., 2, 3, 5).
  • If α is composite, apply the NPF recursively to α.
This creates a nested list structure, which can be serialized in text using brackets or JSON-like notation for clarity. The structure is unique for each n, ensuring bijectivity.

Why Revolutionary?

  • Hierarchical Insight: The nested structure mirrors the "building blocks" of numbers, making it intuitive for educational purposes, number theory analysis, and AI applications (e.g., input to graph neural networks for predicting properties like divisibility).
  • Compactness for Large Numbers: High exponents are nested deeply rather than repeated, reducing representation length compared to linear factorization strings. For example, 2^{64} would be a deeply nested [ [...] ] rather than "2^64".
  • Operational Efficiency: Arithmetic can be performed recursively—multiplication concatenates or nests lists, addition requires "merging" trees with carries resolved via recursion. This could accelerate computations in symbolic math software or quantum simulation, where nested structures align with qubit entanglement models.
  • Extension to Other Domains: Easily adapts to rationals (numerator/denominator as two trees) or complexes, and supports error-resilient encoding by adding redundancy in nests.

Examples

  • 0: ∅
  • 1: [1]
  • -1: -[1]
  • 2 (prime): 2
  • 3 (prime): 3
  • 4 = 2^2: [2] (since exponent 2 is prime)
  • -4: -[2]
  • 6 = 2^1 * 3^1: [ [1], [1] ]
  • 8 = 2^3: [3] (exponent 3 is prime)
  • 12 = 2^2 * 3^1: [2, [1]]
  • 16 = 2^4 = 2^(2^2): [[2]] (recursive on exponent 4 = 2^2)
  • 1200 = 2^4 * 3^1 * 5^2: [ [2], [1], 2 ] (exponent 4 = [2], 1 = [1], 2 = 2)
  • 65536 = 2^16 = 2^(2^4): [[[2]]] (deep nesting for 16 = 2^4, 4 = 2^2, 2 = 2)
  • -65536: -[[[2]]]

Comparison with Traditional Systems

The table below compares NPF with binary, decimal, and factorial representations for select numbers, highlighting length (characters in serialized form) and key advantages.
| Number | Binary      | Decimal | Factorial     | NPF (Lists) | Notes on NPF Advantage 
|--------|-------------|---------|---------------|-------------|------------------------
| 1 | 1 | 1 | 1!0 | [1] | Minimal nesting for unity.
| 4 | 100 | 4 | 2!0 | [2] | Reveals prime exponent directly.
| 8 | 1000 | 8 | 2!1!0 | [3] | Compact for power-of-2.
| 12 | 1100 | 12 | 2!2!0 | [2,[1]] | Shows factors separately.
| 1200 | 10010110000 | 1200 | 4!3!2!1!0!0 | [[2],[1],2] | Nested for exponents, shorter than linear factorization (2^4*3^1*5^2 = 15 chars).
| 65536 | (17 bits) | 65536 | Long sequence | [[[2]]] | Highly compact for exponential towers; binary requires 17 chars, NPF uses 7.

This system opens doors to new computational techniques, such as recursive traversal for fast GCD (by comparing nests) or visualization as trees for educational tools. Future extensions could include probabilistic nesting for approximate representations in AI training data.

Корутины в Питоне

Jul. 10th, 2025 12:21 pm
vak: (Знайка)
[personal profile] vak
В языке Python с некоторого момента появились сопрограммы (coroutines), реализованные ключевыми словами async и await. Эта фича очень удобна для симуляции всяких процессов. В качестве примера забацаем классических обедающих философов.

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

Вот код на Питоне: Результат:

Amaranth HDL

Jul. 10th, 2025 11:01 am
vak: (Default)
[personal profile] vak
Товарищи взялись заменить Verilog на Python. Проект называется Amaranth. Есть отдельный симулятор.

Проект на Гитхабе: amaranth-lang/amaranth

Есть несколько реализаций процессора RISC-V на Amaranth.

BeegEgg Switzerland

Jul. 8th, 2025 10:26 am
vak: (Default)
[personal profile] vak
На рейсе авиакомпании Swissair купили поющее яйцо. Оно варится вместе с обычными яйцами и по мере готовности играет разные мелодии. В данном случае народные швейцарские песни.



1. "Det äne am Bärgli"
(lyrics)



2. "Lueged vo Berg und Tal"
(lyrics)



3. "Min Vater isch en Appezöller"
(lyrics)



Аналогичных яиц полно на Амазоне, но не швейцарских.
vak: (Знайка)
[personal profile] vak
125,000-year-old ‘fat factory’ run by Neanderthals discovered in Germany



Гуглоперевод:

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

Археологи обнаружили фабрику, проанализировав около 120 000 фрагментов костей и 16 000 кремневых орудий, найденных за несколько лет на участке, известном как Ноймарк-Норд, к югу от города Галле, сообщили они в исследовании, опубликованном в среду в журнале Science Advances. Археологи обнаружили артефакты вместе со свидетельствами использования огня.

Исследователи полагают, что неандертальцы, вымерший вид людей, который, как известно, жил в этой области еще 125 000 лет назад, разбивали богатые костным мозгом кости на фрагменты каменными молотками, затем кипятили их в течение нескольких часов, чтобы извлечь жир, который всплывает на поверхность и может быть снят при охлаждении.

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

«Это отношение к тому, что неандертальцы были глупыми, — это еще один момент данных, который доказывает обратное», — сказал Вил Роебрукс, соавтор исследования и профессор палеолитической археологии в Лейденском университете в Нидерландах.

Ряд археологических открытий последних десятилетий показал, что неандертальцы были умнее, чем можно было бы предположить из-за их изначального грубого стереотипа. Древние люди жили по всей Евразии и исчезли 40 000 лет назад, и предыдущие исследования показали, что они делали пряжу и клей, гравировали кости и стены пещер и собирали украшения из когтей орла.

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

Сан Франциско 1851

Jul. 4th, 2025 05:02 pm
vak: (Default)
[personal profile] vak
Пассажиры и экипажи отправились на золотые прииски, бросив корабли на произвол судьбы.

Esparto, California

Jul. 4th, 2025 04:03 pm
vak: (U.S.A.)
[personal profile] vak
Не все фейерверки одинаково приятны. Взрыв на 01:03.

vak: (Житель планеты Узм)
[personal profile] vak
Вот где крутой ретрокомпьютинг! Чувак купил последнюю модель VAX и запустил NetBSD. Процессор 1994 года на частоте 110 МГц, память 64 мегабайта.
I bought a VAX! As far as I know, it's actually the fastest VAX ever produced, the 4000-705A (before the Alpha, anyway). It uses the KA694 NMAX++ CPU, and I've ordered the maximum 4x128MB memory config to add to it.

I spent the week waiting for it to arrive working in a VAX simulator (OpenSIM), learning NetBSD, getting it all configured, and so on. And when the VAX arrived, I was able to plug in an Emulex UC07 QBus SCSI card, plug a ZULUSCSI into that, plug an SD card into that, and mount the image I had been preparing all week.

And it booted!

I don't want to hurt any feelings amongst the DEC alumni, so I left the factory DSSI drive set up to boot OpenVMS. But it's just a node that's trying to join a non-existent cluster, sadly. Which is just as well, because I never learned VMS 📷

I want the machine to be able to "do something", and so I wanted to get it running my LED driver software that controls all of my LED effects via wifi. The only catch is it's written in C++20, and compiling it on the VAX would take almost a half gig of memory, and I only have 64MB right now.

So, I installed NetBSD on an Epyc, built the VAX cross-compiler, compiled the code on the Epyc, then scp'd the object files to the VAX, where I linked the binary. And it's now running my LEDs! At 100% cpu usage, mind you




vak: (Путиномедвед)
[personal profile] vak
"Завтра рано утром я поговорю с президентом Зеленским. И да, я очень разочарован сегодняшним разговором с президентом Путиным, потому что, по-моему, его там нет. Я думаю, его там нет, и я очень разочарован. Ну, это не... Я просто говорю, что я не думаю, что он собирается останавливаться, и это очень плохо."

"I'm speaking to President Zelenski tomorrow early in the morning. And yeah, I'm very disappointed with the conversation I had today with President Putin because I don't think he's there. I don't think he's there and I'm very disappointed. Well, it's not... I'm just saying I don't think he's looking to stop and that's too bad."

Люди на пособии

Jul. 4th, 2025 01:31 am
vak: (U.S.A.)
[personal profile] vak
Народ в сети страстно ругает/хвалит новый закон, проталкиваемый Трампом, так называемый OBBBA. Там всё сложно и больше похоже на запудривание мозгов, чем на что-то полезное. Для прояснения ситуации я попытал Грока и набрёл на картинку про неработающих и не желающих работать.

In 2025, ~10–15 million people (~3–5% of the U.S. population) likely live solely on social benefits (e.g., SNAP, SSI/SSDI, TANF) without earned income and don’t seek work, including ~5–7 million disabled, ~3–5 million SNAP recipients (e.g., caregivers, elderly), and ~0.5–1 million TANF/other recipients. The number has fluctuated: ~12–17 million (2010–2015), ~10–14 million (2019), ~12–18 million (2021), and ~10–15 million (2025). Trends reflect economic cycles, disability growth, and policy shifts. OBBBA’s 2026 work requirements may reduce this by ~1–2 million by 2034.



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

In 2025, ~1.1–2.2 million people (~0.7–1.4% of the labor force) are workforce-eligible, able-bodied adults living solely on social benefits (primarily SNAP, some TANF), with no earned income and not seeking work. This is a sharp reduction from the prior ~10–15 million estimate, as it excludes those unable to work (e.g., disabled, caregivers). Numbers have trended downward from ~2–3 million (2010) to ~1–2 million (2019), with spikes in 2021 (~1.5–2.5 million) and stability in 2025 (~1.1–2.2 million). OBBBA’s 2026 work requirements could cut this to ~0.5–1 million by 2034.



Не знаю, можно ли доверять цифрам от ИИ, но тенденция любопытная.

Gluten GO

Jul. 4th, 2025 12:00 am
vak: (Default)
[personal profile] vak
Финская компания Verman производит лекарство, облегчающее непереносимость глютена. Gluten GO продаётся в аптеках Скандинавии. Мы гостили у друзей в Швеции, закупились маленько. Снадобье cодержит пепсин, протеазу и протеазу DPP-IV. Эти ферменты помогают расщеплять глютен и белки в пище.

Каждая капсула содержит ферменты в количестве:
  • Пепсин: 500 СНАП
  • Протеаза: 75.000 HUT
  • Протеаза DPP-IV: 125 DPP-IV
Описание на английском через гуглоперевод: sundindeni.dk/gluten-go-25-kaps-en-komplet-guide-til-koebere
vak: (Знайка)
[personal profile] vak
Король Густав Адольф был главной фигурой, стоящей за решением о тяжелом вооружении Vasa 64 бронзовыми пушками, необычно большим числом для корабля своего времени. Будучи монархом Швеции во время Тридцатилетней войны, он стремился увеличить военную мощь и установить господство в Балтийском море. Его амбиции привели к проектированию Vasa как флагманского корабля, призванного запугивать таких соперников, как Польша и Дания. В 1625 году он отдал приказ корабельным плотникам во главе с Хенриком Хюбертссоном оборудовать корабль двумя орудийными палубами — новаторская разработка, позволявшая максимально увеличить огневую мощь. Переписка между королем и его адмиралтейством, сохранившаяся в шведских архивах, показывает, что Густав Адольф настаивал на тяжелом вооружении судна, несмотря на опасения по поводу устойчивости.

Хюбертссон, хотя и был опытным, следовал указаниям короля, но умер за год до окончания строительства, оставив своих помощников завершать работу. Настойчивость короля в отношении дополнительных пушек в сочетании с давлением, направленным на ускорение завершения строительства корабля, способствовали его перегруженному дизайну. Ни один подчиненный не упоминается как сторонник чрезмерного вооружения; решение в конечном итоге отражало стратегическое видение Густава Адольфа и политический климат.

Чтобы сохранить устойчивость Vasa с его 64 пушками, потребовалось бы несколько изменений в конструкции, чтобы решить проблему его тяжелой верхней конструкции и высокого центра тяжести, из-за чего он опрокидывался при легком порыве ветра. Основываясь на историческом анализе и принципах военно-морской инженерии того времени, следующие модификации могли бы улучшить устойчивость:
  • Более широкий корпус и меньшая осадка: корпус Vasa был относительно узким (ширина 11,7 метра) для его длины (69 метров) и высоты. Расширение ширины на 1-2 метра увеличило бы восстанавливающий момент судна, что затруднило бы его крен. Более мелкая осадка (уменьшенная с 4,8 метра) также могла бы помочь, понизив центр тяжести, хотя это могло бы поставить под угрозу ходовые качества в бурном море.
  • Увеличенный балласт: Vasa несла около 120 тонн каменного балласта, что намного меньше, чем требовалось для его тяжелой верхней конструкции и пушек. Добавление 50-100 тонн балласта в нижний трюм понизило бы центр тяжести. Однако для этого потребовался бы более прочный корпус, чтобы избежать перегрузки, поскольку дубовые балки Vasa уже были напряжены.
  • Понижение орудийных палуб: две орудийные палубы Vasa были расположены высоко, верхняя палуба была примерно на 4 метра выше ватерлинии. Опускание обеих палуб на 0,5-1 метр уменьшило бы вес 24-фунтовых и 12-фунтовых пушек, влияющих на неустойчивость. Это могло бы означать более короткую грот-мачту или перенастроенную высоту палубы, что потенциально уменьшило бы пространство для экипажа.
  • Меньше или более легкие пушки: сокращение количества пушек (например, с 64 до 48) или использование более легких орудий (например, 12-фунтовых вместо 24-фунтовых на верхней палубе) уменьшило бы верхний вес. Требование короля к тяжелому вооружению было ключевым вопросом, поэтому приоритет более легкой, более сбалансированной огневой мощи мог бы помочь.
  • Перепроектированная надстройка: сложная кормовая башня и бак Vasa, украшенные тяжелой резьбой, добавили вес вверху. Упрощение этих конструкций или уменьшение их высоты снизило бы центр тяжести. Упрощение более 500 скульптур, хотя и менее критично, также помогло бы немного сбросить вес.
  • Улучшенное распределение балласта: испытания на устойчивость во время строительства (когда люди бегали из стороны в сторону) показали, что судно было неустойчивым даже перед спуском на воду. Более равномерное распределение балласта в продольном направлении и обеспечение его закрепления в нижней части трюма могло бы уравновесить вес пушек. Балласт Vasa был добавлен в спешке и плохо оптимизирован.
  • Скорректированный план парусов: высокие мачты Vasa и большая площадь парусов усугубляли крен при порывах ветра. Уменьшение высоты мачты или использование более консервативной конфигурации парусов (например, меньшие топсели) уменьшили бы вызванную ветром качку, хотя это могло бы снизить скорость.
Реализация этих изменений потребовала бы преодоления практических ограничений. Расширение корпуса или добавление балласта могло задержать строительство, что противоречило требованиям короля Густава Адольфа. Уменьшение высоты орудийной палубы или количества пушек означало бы отказ от его идеи создания грозного флагмана. Корабельный плотник Хенрик Хюбертссон не располагал современными расчетами остойчивости (например, метацентрической высотой), полагаясь на опыт, которого было недостаточно для беспрецедентного проекта «Васы». После затопления шведские корабли стали использовать более консервативные конструкции, отражающие некоторые из этих уроков.

Для грубой количественной оценки морские архитекторы определяют метацентрическую высоту Vasa как близкую к нулю или отрицательную, что приводило к неустойчивости. Устойчивому военному кораблю 17-го века требовалась ГВ не менее 0,5-1 метра. Этого можно было добиться, расширив корпус и добавив балласта, но в 1628 году точные расчеты были невозможны.
Page generated Jul. 14th, 2025 11:51 pm
Powered by Dreamwidth Studios