<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Marcin Juszkiewicz</title><link href="https://marcin.juszkiewicz.com.pl/" rel="alternate"/><link href="https://marcin.juszkiewicz.com.pl/feed/" rel="self"/><id>https://marcin.juszkiewicz.com.pl/</id><updated>2026-04-01T10:13:00+02:00</updated><entry><title>Twenty-one years of blogging</title><link href="https://marcin.juszkiewicz.com.pl/2026/04/01/twenty-one-years-of-blogging/" rel="alternate"/><published>2026-04-01T10:13:00+02:00</published><updated>2026-04-01T10:13:00+02:00</updated><author><name>Marcin Juszkiewicz</name></author><id>tag:marcin.juszkiewicz.com.pl,2026-04-01:/2026/04/01/twenty-one-years-of-blogging/</id><summary type="html">I never thought that it will be online so&amp;nbsp;long.</summary><content type="html">&lt;p&gt;&lt;a href="/2005/04/01/new-website/"&gt;Twenty-one years ago&lt;/a&gt; I&amp;nbsp;wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is 3th (or 4th) version of my website and I hope that this time it will
stay for much longer and that I will use it more often to publish some
OpenEmbedded related articles and&amp;nbsp;informations.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And here we are, 21 years later. With the same&amp;nbsp;website.&lt;/p&gt;
&lt;!--MORE--&gt;

&lt;h3&gt;Time&amp;nbsp;flows&lt;/h3&gt;
&lt;p&gt;For sure I managed to keep it running &amp;#8220;for much longer&amp;#8221; than any earlier version
of my website. The previous one existed for about two years. Older ones were
more Lynx bookmarks split into several files rather than a&amp;nbsp;website.&lt;/p&gt;
&lt;h3&gt;Engines&lt;/h3&gt;
&lt;p&gt;When I started this website in 2005, WordPress was something new. Easy to use,
no &lt;span class="caps"&gt;HTML&lt;/span&gt; knowledge needed&amp;nbsp;etc.&lt;/p&gt;
&lt;p&gt;In 2006, &lt;a href="/2006/09/12/haerwu-created/"&gt;I created my own consulting company&lt;/a&gt; and
moved to WordPress &lt;span class="caps"&gt;MU&lt;/span&gt; (MultiUser). I had two separate websites then &amp;#8212; one for
my company and my personal blog. Merged them into one a few years&amp;nbsp;later.&lt;/p&gt;
&lt;p&gt;In the meantime &lt;span class="caps"&gt;WPMU&lt;/span&gt; got integrated into WordPress. And one day I recreated the
whole website on a fresh install of &lt;span class="caps"&gt;WP&lt;/span&gt; to cut more than half of the database
size &amp;#8212; there was a lot of unused data left from several plugins I used through
all those&amp;nbsp;years.&lt;/p&gt;
&lt;p&gt;And then, in 2019, &lt;a href="/2019/04/24/good-bye-wordpress/"&gt;I said &amp;#8220;good bye&amp;#8221; to WordPress&lt;/a&gt;
and moved to Pelican, static page generator. It was a good move. It cost me a
day or two of handling &lt;span class="caps"&gt;WP&lt;/span&gt; export, cleaning posts, sorting out tags, images etc.
It was worth it &amp;#8212; I still use Pelican to generate this&amp;nbsp;website.&lt;/p&gt;
&lt;h3&gt;Grammar and&amp;nbsp;language&lt;/h3&gt;
&lt;p&gt;Reading old posts (especially pre-2010 ones) shows how awful my English grammar
and vocabulary were. In 2010,
&lt;a href="/2010/04/06/another-job-change/"&gt;when I signed contract with Canonical to work at Linaro&lt;/a&gt;,
I went to language school to work on improving both grammar and
vocabulary. And it paid&amp;nbsp;off.&lt;/p&gt;
&lt;p&gt;I am not going to edit language of my old posts. I may alter tags, formatting or
fix/remove links in them. But not how they were written. I keep them as a
reminder how my English looked in the past. Not that it is fluent and nice
nowadays&amp;nbsp;:D&lt;/p&gt;
&lt;h3&gt;Markdown all the&amp;nbsp;time&lt;/h3&gt;
&lt;p&gt;I have never been a fan of using &lt;span class="caps"&gt;HTML&lt;/span&gt; to edit blog posts. So when I discovered
Markdown I started using it.
With &lt;a href="https://michelf.ca/projects/php-markdown/extra/"&gt;&lt;span class="caps"&gt;PHP&lt;/span&gt; Markdown Extra&lt;/a&gt;&amp;nbsp;extensions.&lt;/p&gt;
&lt;p&gt;My current Pelican configuration for Markdown is&amp;nbsp;simple:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;MARKDOWN = {
    'extension_configs': {
        'markdown.extensions.extra': {},
        'markdown.extensions.meta': {},
        'markdown_del_ins': {},
        'yafg': {},
    },
    'output_format': 'html5',
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It gives me abbreviations, attribute lists, definition lists, fenced code
blocks, footnotes, markdown in html, tables, meta-data, delete and insert tags
and the &amp;#8216;yafg&amp;#8217; extension wraps images into the &amp;lt;figure&amp;gt; tag with a caption.
In other words: all stuff I ever used in any&amp;nbsp;post.&lt;/p&gt;
&lt;h3&gt;Social&amp;nbsp;Media&lt;/h3&gt;
&lt;p&gt;Around 2009 - 2011 I started using social media and blog slowly started getting
fewer short entries as those went to twitter, facebook and google+&amp;nbsp;services.&lt;/p&gt;
&lt;p&gt;Still kept the rule of posting long texts on my website with links shared rather
than posting only on social&amp;nbsp;media.&lt;/p&gt;
&lt;h3&gt;Popular&amp;nbsp;posts&lt;/h3&gt;
&lt;p&gt;When it comes to posts it is hard to tell as I never kept statistics. But some
kind of a way to measure popularity of my posts is how often they landed on
external&amp;nbsp;websites.&lt;/p&gt;
&lt;p&gt;Many people read websites like &lt;a href="https://news.ycombinator.com/"&gt;Hacker News&lt;/a&gt; or
&lt;a href="https://lobster.rs/"&gt;Lobster&lt;/a&gt;, so I checked which of my posts landed there and
got more than 10&amp;nbsp;points:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Article&lt;/th&gt;
&lt;th&gt;Hacker News&lt;/th&gt;
&lt;th&gt;Lobster&lt;/th&gt;
&lt;th&gt;points&lt;/th&gt;
&lt;th&gt;comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/2026/03/10/risc-v-is-sloooow/"&gt;&lt;span class="caps"&gt;RISC&lt;/span&gt;-V Is Sloooow&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://news.ycombinator.com/item?id=47328214"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://lobste.rs/s/ta3jjk/risc_v_is_sloooow"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;317&lt;/td&gt;
&lt;td&gt;379 + 111&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/2016/07/25/aarch64-desktop-hardware/"&gt;64-bit &lt;span class="caps"&gt;ARM&lt;/span&gt; desktop hardware?&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://news.ycombinator.com/item?id=12158068"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;243&lt;/td&gt;
&lt;td&gt;169&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/2025/06/27/bought-myself-an-ampere-altra-system/"&gt;Bought myself an Ampere Altra system&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://news.ycombinator.com/item?id=44419446"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://lobste.rs/s/oiabdv/bought_myself_ampere_altra_system"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;206&lt;/td&gt;
&lt;td&gt;97 + 9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/2025/07/22/arm-desktop-emulation/"&gt;Arm desktop: emulation&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://news.ycombinator.com/item?id=44823580"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://lobste.rs/s/mf5mup/arm_desktop_x86_emulation"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;50 + 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/2024/02/12/twenty-years-of-my-work-with-arm-architecture/"&gt;Twenty years of my work with Arm architecture&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://news.ycombinator.com/item?id=39353784"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;54&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/2019/10/23/what-is-wrong-with-all-those-aarch64-desktops/"&gt;What is wrong with all those AArch64 desktops?&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://news.ycombinator.com/item?id=22014393"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;141&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/2021/02/22/aarch64-boards-and-perception/"&gt;AArch64 Boards and Perception&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://news.ycombinator.com/item?id=26222300"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://lobste.rs/s/eijsrh/aarch64_boards_perception"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/2019/10/15/how-to-survive-fosdem/"&gt;How to Survive &lt;span class="caps"&gt;FOSDEM&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://news.ycombinator.com/item?id=34337793"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://lobste.rs/s/i28ei1/how_survive_fosdem"&gt;thread&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;42&lt;/td&gt;
&lt;td&gt;15 + 5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Some posts landed on places like &lt;a href="https://phoronix.com/"&gt;Phoronix&lt;/a&gt; or
&lt;a href="https://osnews.com"&gt;OSNews&lt;/a&gt; and got several&amp;nbsp;comments.&lt;/p&gt;
&lt;p&gt;I do not track where my posts got quoted &amp;#8212; most of the time friends send me
links. I read comments and sometimes I edit original blog post to make it easier
to understand. And I try to stay away from commenting (if someone is wrong on
the Internet, I do not need to stay awake to correct&amp;nbsp;them).&lt;/p&gt;
&lt;p&gt;And there was &lt;a href="/2013/04/22/death-to-raspberrypi-beaglebone-black-is-on-a-market/"&gt;Death to Raspberry/Pi — Beaglebone Black is on a market&lt;/a&gt;
one&amp;#8230; It landed on Slashdot and generated such load that I was unable to log in
to my server. A day after I changed whole web server configuration and went from
Apache to Lighttpd (and some time later to&amp;nbsp;Nginx).&lt;/p&gt;
&lt;h3&gt;Popular&amp;nbsp;tags&lt;/h3&gt;
&lt;p&gt;It is easier to check which tags were the most popular during all those 21&amp;nbsp;years:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;tag name&lt;/th&gt;
&lt;th&gt;number of articles&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/linaro"&gt;Linaro&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;177&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/ubuntu"&gt;Ubuntu&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;170&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/aarch64"&gt;AArch64&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;154&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/openembedded"&gt;OpenEmbedded&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/fedora"&gt;Fedora&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/nokia"&gt;Nokia&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/development"&gt;development&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;84&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/debian"&gt;Debian&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;82&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/openmoko"&gt;Openmoko&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;70&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/conferences"&gt;conferences&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/life"&gt;life&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/phone"&gt;phone&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;58&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/travels"&gt;travels&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;52&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/linux"&gt;Linux&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;51&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/maemo"&gt;Maemo&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;47&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/openzaurus"&gt;OpenZaurus&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/arm"&gt;Arm&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;44&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/website"&gt;website&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;41&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/poky"&gt;Poky&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/zaurus"&gt;Zaurus&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/tag/red hat"&gt;Red Hat&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;31&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The high position of the Ubuntu tag suggests a need for review as for some posts
it was used to get them placed on the 
&lt;a href="https://planet.ubuntu.com/"&gt;Planet Ubuntu&lt;/a&gt;&amp;nbsp;aggregator.&lt;/p&gt;
&lt;p&gt;With the Nokia-related posts comes a story. Each post bumped &amp;#8216;karma&amp;#8217; on
Maemo.org website. And I mostly complained in them. But &amp;#8216;karma is a beach&amp;#8217;,
right? I got it high enough to get invitation to the Nokia N900 developer
program. It was a nice phone with software written to gather&amp;nbsp;complaints.&lt;/p&gt;
&lt;h3&gt;Requested&amp;nbsp;edits&lt;/h3&gt;
&lt;p&gt;During all those years there were some requests to edit some of my posts. I
rejected some and fulfilled&amp;nbsp;others.&lt;/p&gt;
&lt;h4&gt;No camera,&amp;nbsp;please&lt;/h4&gt;
&lt;p&gt;In 2009 &lt;a href="/2009/08/04/nhk15-arrived/"&gt;I received &lt;span class="caps"&gt;NHK15&lt;/span&gt; developer board&lt;/a&gt; from
&lt;span class="caps"&gt;ST&lt;/span&gt;-Ericsson. As I had not signed any &lt;span class="caps"&gt;NDA&lt;/span&gt;, I decided to show them the post before
publishing to make sure I do not mention too&amp;nbsp;much.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Can you remove the camera module from it? It will not be in a boxes we give
out during the&amp;nbsp;event.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I took one photo again, removed mentions of a camera module and&amp;nbsp;published.&lt;/p&gt;
&lt;p&gt;Move forward two months to the &lt;a href="/2009/10/19/st-ericsson-community-workshop-2009/"&gt;&lt;span class="caps"&gt;ST&lt;/span&gt;-Ericsson Community Workshop 2009&lt;/a&gt;
event. A day before it, decision was made to include that camera module.
One guy was going through each box to add&amp;nbsp;it&amp;#8230;&lt;/p&gt;
&lt;h4&gt;Pre-announced &lt;span class="caps"&gt;SBC&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;Most of Linaro Connect events had a &amp;#8216;Demo day&amp;#8217; event where companies, projects
and developers presented some interesting things related to our work. I was
there walking, looking and asking&amp;nbsp;questions.&lt;/p&gt;
&lt;p&gt;And one year I asked a company (sorry, no names this time) will they have an
&lt;span class="caps"&gt;SBC&lt;/span&gt; similar to the Beagleboard. And the answer was &amp;#8220;yes, it will be called
A_NAME&amp;#8221;. I asked was this information public and can I write about it on my
blog. Got confirmation, so an hour later I mentioned it in a blog&amp;nbsp;post.&lt;/p&gt;
&lt;p&gt;A few minutes later, when I was going to the hotel bar for an evening event, I
was asked by my manager where I got that info from. And then got a request to
remove it &amp;#8220;because they plan to announce it next week on some &lt;span class="caps"&gt;BIG&lt;/span&gt; trade&amp;nbsp;show&amp;#8221;.&lt;/p&gt;
&lt;p&gt;I took my phone from my pocket, edited and we went for a&amp;nbsp;beer.&lt;/p&gt;
&lt;h4&gt;Lessons&amp;nbsp;learnt&lt;/h4&gt;
&lt;p&gt;Whenever non-public information is shared, wait until it is properly announced
publicly. Then, check how much information was released. My work is related to
many non-disclosure agreements (NDAs). So, if I know something, it needs to be
checked against public information before I can disclose any of it. You may also
want to confirm with an official source that the public disclosure was not due
to a leak or other incorrect source of&amp;nbsp;information.&lt;/p&gt;
&lt;h3&gt;Fewer technical&amp;nbsp;posts&lt;/h3&gt;
&lt;p&gt;If you look into &lt;a href="/archives/"&gt;archives page&lt;/a&gt; you may notice that there are fewer
technical posts than there were in previous years. There is a simple explanation
for&amp;nbsp;it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Well, you are some kind of influencer, get over it.
People do pay attention to what you&amp;nbsp;write.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Writing a technical post nowadays&amp;nbsp;means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;asking a few people who know stuff to check whether I was right or&amp;nbsp;wrong&lt;/li&gt;
&lt;li&gt;asking a few people who do not know stuff to check what I&amp;nbsp;missed&lt;/li&gt;
&lt;li&gt;doing some technical review and&amp;nbsp;correction&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This changes writing a post for a personal blog into writing a technical&amp;nbsp;article.&lt;/p&gt;
&lt;p&gt;And then publishing still means a lot of online comments where maybe 25% of them
make any&amp;nbsp;sense.&lt;/p&gt;
&lt;h3&gt;Plans for the&amp;nbsp;future&lt;/h3&gt;
&lt;p&gt;I do not have any special plans for the future of this website. Will keep it
operational and add posts from time to time. I still have some ideas for the
content and have some drafts which wait for my&amp;nbsp;retirement.&lt;/p&gt;</content><category term="misc"/><category term="website"/></entry><entry><title>Upgraded to OpenWRT 25.10</title><link href="https://marcin.juszkiewicz.com.pl/2026/03/24/upgraded-to-openwrt-2510/" rel="alternate"/><published>2026-03-24T08:18:00+01:00</published><updated>2026-03-24T08:18:00+01:00</updated><author><name>Marcin Juszkiewicz</name></author><id>tag:marcin.juszkiewicz.com.pl,2026-03-24:/2026/03/24/upgraded-to-openwrt-2510/</id><summary type="html">One system to rule them&amp;nbsp;all</summary><content type="html">&lt;p&gt;I upgraded my router to OpenWRT 25.10. Nothing strange&amp;nbsp;right?&lt;/p&gt;
&lt;p&gt;And then I realized that I use OpenWRT for over twenty&amp;nbsp;years&amp;#8230;&lt;/p&gt;
&lt;!--MORE--&gt;

&lt;h3&gt;All started with Linksys &lt;span class="caps"&gt;WRT54GS&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Long, long time, when I worked from an office,
&lt;a href="/2005/06/07/i-got-wrt54gs/"&gt;I got Linksys &lt;span class="caps"&gt;WRT54GS&lt;/span&gt;&lt;/a&gt; as a donation.
&lt;span class="caps"&gt;IIRC&lt;/span&gt; I got money to buy it as this was simpler than sending device from&amp;nbsp;abroad.&lt;/p&gt;
&lt;p&gt;Having Wi-Fi at home allowed me to test more stuff on Sharp Zaurus devices. Or
install/upgrade packages in an easy&amp;nbsp;way.&lt;/p&gt;
&lt;p&gt;It was running OpenWRT WhiteRussian for quite a while as device upgrades were
quite problematic at that&amp;nbsp;time.&lt;/p&gt;
&lt;h3&gt;Other&amp;nbsp;devices&lt;/h3&gt;
&lt;p&gt;During next years I used a mix of devices running OpenWRT. Routers, access
points or devices which served both those functions at the same&amp;nbsp;time.&lt;/p&gt;
&lt;p&gt;Netgear &lt;span class="caps"&gt;WNDR4300&lt;/span&gt; N750 brought 5GHz Wi-Fi network to my flat. Running MiniPC +
Belkin &lt;span class="caps"&gt;BT3200&lt;/span&gt; (aka Linksys E8450) combo brought network separation as I started
using VLANs. Etc.&amp;nbsp;etc.&lt;/p&gt;
&lt;h3&gt;Why&amp;nbsp;OpenWRT?&lt;/h3&gt;
&lt;p&gt;Having a unified way of doing network setup was a key for me when I was choosing
next router/&lt;span class="caps"&gt;AP&lt;/span&gt; device. Or ability to install additional packages which brings
more functions. Especially since 512 &lt;span class="caps"&gt;MB&lt;/span&gt; &lt;span class="caps"&gt;RAM&lt;/span&gt; became popular in a&amp;nbsp;router.&lt;/p&gt;
&lt;p&gt;Why it matters to me? I am not a network admin. Never planned to be. So being
able to switch to a new device and restore configuration from a previous one
saves my&amp;nbsp;time. &lt;/p&gt;
&lt;p&gt;There are no limitations on how I name my Wi-Fi networks (national characters,
emojis, spaces), how many of them will be, what kind of firewall zones I want
and which devices/networks are in which zone.&amp;nbsp;Etc&amp;#8230;&lt;/p&gt;</content><category term="misc"/><category term="openwrt"/><category term="network"/><category term="wlan"/></entry><entry><title>RISC-V is sloooow</title><link href="https://marcin.juszkiewicz.com.pl/2026/03/10/risc-v-is-sloooow/" rel="alternate"/><published>2026-03-10T18:53:00+01:00</published><updated>2026-03-10T18:53:00+01:00</updated><author><name>Marcin Juszkiewicz</name></author><id>tag:marcin.juszkiewicz.com.pl,2026-03-10:/2026/03/10/risc-v-is-sloooow/</id><summary type="html">143 vs 36 minutes is far too big&amp;nbsp;difference</summary><content type="html">&lt;p&gt;About 3 months ago &lt;a href="/2025/12/04/from-the-diary-of-aarch64-porter-risc-v/"&gt;I started working with &lt;span class="caps"&gt;RISC&lt;/span&gt;-V port of Fedora
Linux&lt;/a&gt;.
Many things happened during that&amp;nbsp;time.&lt;/p&gt;
&lt;!--MORE--&gt;

&lt;h3&gt;Triaging&lt;/h3&gt;
&lt;p&gt;I went through &lt;a href="https://abologna.gitlab.io/fedora-riscv-tracker/"&gt;the Fedora &lt;span class="caps"&gt;RISC&lt;/span&gt;-V tracker&lt;/a&gt;
entries, triaged most of them (at the moment 17 entries left in &lt;span class="caps"&gt;NEW&lt;/span&gt;) and tried
to handle whatever&amp;nbsp;possible.&lt;/p&gt;
&lt;h3&gt;Fedora&amp;nbsp;packaging&lt;/h3&gt;
&lt;p&gt;My usual way of working involves fetching sources of a Fedora package&amp;nbsp;(&lt;code&gt;fedpkg
clone -a&lt;/code&gt;) and then building it&amp;nbsp;(&lt;code&gt;fedpkg mockbuild -r fedora-43-riscv64&lt;/code&gt;). After
some time, I check did it built and if not then I go through build logs to find
out&amp;nbsp;why.&lt;/p&gt;
&lt;p&gt;Effect? At the moment,
&lt;a href="https://src.fedoraproject.org/user/hrw/requests"&gt;86 pull requests sent for Fedora packages&lt;/a&gt;.
From heavy packages like the &amp;#8220;llvm15&amp;#8221; to simple ones like the &amp;#8220;iyfct&amp;#8221; (some
simple game). At the moment most of them were merged, and most of these got
built for the Fedora 43. Then we can build them as well as we follow
&amp;#8216;f43-updates&amp;#8217; tag on the Fedora&amp;nbsp;koji.&lt;/p&gt;
&lt;h3&gt;Slowness&lt;/h3&gt;
&lt;p&gt;Work on packages brings the hard, sometimes controversial, topic: speed. Or
rather lack of&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;You see, the &lt;span class="caps"&gt;RISC&lt;/span&gt;-V hardware at the moment is slow. Which results in terrible
build times &amp;#8212; look at details of the binutils 2.45.1-4.fc43 package I took from
koji (&lt;a href="https://koji.fedoraproject.org/koji/buildinfo?buildID=2894403"&gt;Fedora&lt;/a&gt;
and &lt;a href="https://riscv-koji.fedoraproject.org/koji/buildinfo?buildID=60248"&gt;&lt;span class="caps"&gt;RISC&lt;/span&gt;-V Fedora&lt;/a&gt;):&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Architecture&lt;/th&gt;
&lt;th&gt;Cores&lt;/th&gt;
&lt;th&gt;Memory&lt;/th&gt;
&lt;th&gt;Build time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;aarch64&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;46 &lt;span class="caps"&gt;GB&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;36 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;i686&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;29 &lt;span class="caps"&gt;GB&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;25 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ppc64le&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;37 &lt;span class="caps"&gt;GB&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;46 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;riscv64&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;16 &lt;span class="caps"&gt;GB&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;143 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;s390x&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;45 &lt;span class="caps"&gt;GB&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;37 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;x86_64&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;29 &lt;span class="caps"&gt;GB&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;29 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;That was StarFive VisionFive 2 board, while it has other strengths (such as
upstreamed drivers), it is not the fastest available one. I asked around and one
of porters did a built on Milk-V Megrez &amp;#8212; it took 58&amp;nbsp;minutes.&lt;/p&gt;
&lt;p&gt;Also worth mentioning is that the current build of &lt;span class="caps"&gt;RISC&lt;/span&gt;-V Fedora port is done
with disabled &lt;span class="caps"&gt;LTO&lt;/span&gt;. To cut on memory usage and build&amp;nbsp;times.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;RISC&lt;/span&gt;-V builders have four or eight cores with 8, 16 or 32 &lt;span class="caps"&gt;GB&lt;/span&gt; of &lt;span class="caps"&gt;RAM&lt;/span&gt; (depending
on a board). And those cores are usually compared to Arm Cortex-A55 ones. The
lowest cpu cores in today&amp;#8217;s Arm&amp;nbsp;chips.&lt;/p&gt;
&lt;p&gt;The UltraRISC &lt;span class="caps"&gt;UR&lt;/span&gt;-&lt;span class="caps"&gt;DP1000&lt;/span&gt; SoC, present on the Milk-V Titan motherboard should
improve situation a bit (and can have 64 &lt;span class="caps"&gt;GB&lt;/span&gt; ram). Similar with SpacemiT K3-based
systems (but only 32 &lt;span class="caps"&gt;GB&lt;/span&gt; ram). Both will be an improvement, but not the final&amp;nbsp;solution.&lt;/p&gt;
&lt;h3&gt;Hardware needs for Fedora&amp;nbsp;inclusion&lt;/h3&gt;
&lt;p&gt;We need hardware capable of building above &amp;#8220;binutils&amp;#8221; package below one hour.
With &lt;span class="caps"&gt;LTO&lt;/span&gt; enabled system-wide etc. to be on par with the other architectures.
This is the speed-related&amp;nbsp;requirement.&lt;/p&gt;
&lt;p&gt;There is no point of going for inclusion with slow builders as this will make
package maintainers complain. You see, in Fedora build results are released into
repositories only when all architectures finish. And we had maintainers
complaining about lack of speed of AArch64 builders in the past. Some developers
may start excluding &lt;span class="caps"&gt;RISC&lt;/span&gt;-V architecture from their packages to not have to&amp;nbsp;wait.&lt;/p&gt;
&lt;p&gt;And any future builders need to be rackable and manageable like any other boring
server (put in a rack, connect cables, install, do not touch any more). Because
no one will go into a data centre to manually reboot an &lt;span class="caps"&gt;SBC&lt;/span&gt;-based&amp;nbsp;builder.&lt;/p&gt;
&lt;p&gt;Without systems fulfilling both requirements, we can not even plan for the
&lt;span class="caps"&gt;RISC&lt;/span&gt;-V 64-bit architecture to became one of official, primary architectures in
Fedora&amp;nbsp;Linux.&lt;/p&gt;
&lt;h3&gt;I still use &lt;span class="caps"&gt;QEMU&lt;/span&gt; for local&amp;nbsp;testing&lt;/h3&gt;
&lt;p&gt;Such long build times make my use of &lt;span class="caps"&gt;QEMU&lt;/span&gt; useful.
&lt;a href="/2025/06/27/bought-myself-an-ampere-altra-system/"&gt;My AArch64 desktop&lt;/a&gt; has 80
cores, so with the use of &lt;span class="caps"&gt;QEMU&lt;/span&gt; userspace riscv64 emulation, I can build the
packages without buying &lt;span class="caps"&gt;RISC&lt;/span&gt;-V hardware. Still, there are timed out tests
because single thread is slower than native&amp;nbsp;one.&lt;/p&gt;
&lt;figure id="__yafg-figure-1"&gt;
&lt;img alt="busy btop" src="/files/2026/03/btop-700x.jpg" title="btop shows 80 cores being busy"&gt;
&lt;figcaption&gt;btop shows 80 cores being busy&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;There are package (like &lt;span class="caps"&gt;LLVM&lt;/span&gt;) which make real use of both available cores and
memory. I am wondering how fast would it go on 192/384 cores of Ampere One-based&amp;nbsp;system.&lt;/p&gt;
&lt;p&gt;Still, I used &lt;span class="caps"&gt;QEMU&lt;/span&gt; for local builds/testing only. Fedora, like several other
distributions, does native builds&amp;nbsp;only.&lt;/p&gt;
&lt;h3&gt;Future&amp;nbsp;plans&lt;/h3&gt;
&lt;p&gt;We plan to start building Fedora Linux 44. If things go well, we will use the
same kernel image on all of our builders (the current ones use a mix of kernel
versions). &lt;span class="caps"&gt;LTO&lt;/span&gt; will still be&amp;nbsp;disabled.&lt;/p&gt;
&lt;p&gt;When it comes to lack of speed&amp;#8230; There are plans to bring new, faster builders.
And probably assign some heavier packages to&amp;nbsp;them.&lt;/p&gt;</content><category term="misc"/><category term="fedora"/><category term="risc-v"/><category term="development"/><category term="qemu"/><category term="virtualization"/></entry><entry><title>Books I read in 2025</title><link href="https://marcin.juszkiewicz.com.pl/2025/12/30/books-i-read-in-2025/" rel="alternate"/><published>2025-12-30T23:06:00+01:00</published><updated>2025-12-30T23:06:00+01:00</updated><author><name>Marcin Juszkiewicz</name></author><id>tag:marcin.juszkiewicz.com.pl,2025-12-30:/2025/12/30/books-i-read-in-2025/</id><summary type="html">Reading is fun. All those new&amp;nbsp;worlds/stories&amp;#8230;</summary><content type="html">&lt;p&gt;I enjoy reading and I am known for being a fast reader. In 2025, I read one
hundred&amp;nbsp;books&amp;#8230;&lt;/p&gt;
&lt;!--MORE--&gt;

&lt;p&gt;So what kind of books did I read? Mostly science-fiction, but also some
biographies, thrillers and a few random&amp;nbsp;ones.&lt;/p&gt;
&lt;h3&gt;Space&amp;nbsp;operas&lt;/h3&gt;
&lt;p&gt;As in previous years, I continued reading the &amp;#8220;Undying Mercenaries&amp;#8221; series by
&lt;span class="caps"&gt;B.V.&lt;/span&gt; Larson. It is an easy to read series &amp;#8212; I can read a book in the evening
and forget what was there during&amp;nbsp;sleep.&lt;/p&gt;
&lt;p&gt;There was &lt;a href="https://en.wikipedia.org/wiki/The_Murderbot_Diaries"&gt;&amp;#8220;The Murderbot Diaries&amp;#8221;&lt;/a&gt;
by Martha Wells. Mostly because there was an announcement of a &lt;span class="caps"&gt;TV&lt;/span&gt; series (which 
(surprise, surprise) turned out to be worse than the books). I read the first
five books in Polish and the last two in English, as they had not been published
yet. If you plan to read them, I recommend the &amp;#8220;1, 2, 3, 4, 6, 5, 7&amp;#8221; order as
&amp;#8220;System Collapse&amp;#8221; (7th book) starts at the end of &amp;#8220;Network Effect&amp;#8221; (5th one),
while &amp;#8220;Fugitive Telemetry&amp;#8221; is more a single story happening before &amp;#8220;Network
Effect&amp;#8221;&amp;nbsp;one.&lt;/p&gt;
&lt;p&gt;I started reading &lt;a href="https://en.wikipedia.org/wiki/Craig_Alanson#Expeditionary_Force_(ExForce)"&gt;&amp;#8220;Expeditionary Force&amp;#8221;&lt;/a&gt;
by Craig Alanson. It was an interesting space opera, but became boring at some
point so I ended on &amp;#8220;Aftermath&amp;#8221; (the 17th book). How long you can keep up with a
series where humans keep playing with other galactic civilisations, all thanks
to the help of an ancient &lt;span class="caps"&gt;AI&lt;/span&gt;?&lt;/p&gt;
&lt;p&gt;After many years, I collected all parts of &lt;a href="https://en.wikipedia.org/wiki/Sector_General"&gt;&amp;#8220;Sector General&amp;#8221;&lt;/a&gt;
by James White. All twelve books. It was fun to read but it feels old.
And recently &lt;a href="https://www.eyrie.org/~eagle/reviews/books/1-5344-0303-5.html"&gt;Russ Allbery mentioned&lt;/a&gt;
&amp;#8220;Machine&amp;#8221; and &amp;#8220;Ancestral Night&amp;#8221; by Elisabeth Bear as a modern series with
similar&amp;nbsp;vibe.&lt;/p&gt;
&lt;p&gt;When it comes to old authors, I also read &amp;#8220;To the Stars&amp;#8221; series by Harry&amp;nbsp;Harrison.&lt;/p&gt;
&lt;p&gt;The other series was &amp;#8220;Shadow Raptors&amp;#8221; by Sławomir Nieściur. Common theme:
humans fighting some other species. In&amp;nbsp;space.&lt;/p&gt;
&lt;h3&gt;Military&amp;nbsp;fiction&lt;/h3&gt;
&lt;p&gt;Another space series was &lt;a href="https://en.wikipedia.org/wiki/Stark%27s_War"&gt;&amp;#8220;Stark&amp;#8217;s War&amp;#8221;&lt;/a&gt;
by John G. Hemry (as Jack Campbell). A war on the Moon over the control of&amp;nbsp;resources.&lt;/p&gt;
&lt;p&gt;There were two series by Vladimir Wolff: &amp;#8220;Nowy porządek świata&amp;#8221; (&amp;#8220;A new world
order&amp;#8221;) and &amp;#8220;Armaggedon&amp;#8221;. It is hard to tell how they differ cause they share
some ideas. The world as we know it ends, old forces vanish, and new ones
appear. It is fun to read about a &amp;#8220;near future&amp;#8221; where Poland becomes a new
global force, while the United States vanishes due to a virus killing nearly
entire&amp;nbsp;population.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://en.wikipedia.org/wiki/All_You_Need_Is_Kill"&gt;&amp;#8220;All You Need Is Kill&amp;#8221;&lt;/a&gt;
by Hiroshi Sakurazaka shows how much story can be changed before film adaptation
is created (the &amp;#8220;Edge of Tomorrow&amp;#8221; was based on this book). Highly&amp;nbsp;recommend.&lt;/p&gt;
&lt;h3&gt;Other&amp;nbsp;fiction&lt;/h3&gt;
&lt;p&gt;There were books by Andrzej Kwiecień &amp;#8212; &amp;#8220;Metamorf&amp;#8221; and &amp;#8220;Dori&amp;#8221;. Some kind of
cyberpunk stories in a world where androids can take human&amp;#8217;s form and
personality. Light&amp;nbsp;read.&lt;/p&gt;
&lt;p&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;Kaori&amp;#8221; by Marta Sobiecka was a cyberpunk crime story. Reading reviews does not
remind me a book, which shows that it was mediocre&amp;nbsp;one.&lt;/p&gt;
&lt;p&gt;Other cyberpunk was set of stories called &amp;#8220;Cyberpunk Girls&amp;#8221;. Some were good,
some were&amp;nbsp;not.&lt;/p&gt;
&lt;p&gt;Another collection was the &amp;#8220;Frostpunk, Antologia&amp;#8221; &amp;#8212; a set of four stories in
the steampunk world of the Frostpunk game (which I have never&amp;nbsp;played).&lt;/p&gt;
&lt;p&gt;And while we are around alternative world of &lt;span class="caps"&gt;XXI&lt;/span&gt; century I have to mention
&amp;#8220;Ciepło-zimno&amp;#8221; by Joanna Mazur. Deeper in climate change, with nine months long
summer, no electricity during some parts of a day, main character is a freelance
worker, happy to have some work at&amp;nbsp;all.&lt;/p&gt;
&lt;p&gt;There was &amp;#8220;Czarownica znad Kałuży&amp;#8221; postapo story by Artur Olchowy. Small village
in a middle of nowhere, with &amp;#8220;a witch&amp;#8221; living just outside of it. And one day a
priest arrives and tries to change the way those people live. It was an
interesting read, despite common oversimplifications (as usual in postapo&amp;nbsp;stories).&lt;/p&gt;
&lt;p&gt;Then was Blake Crouch with his &lt;a href="https://en.wikipedia.org/wiki/Dark_Matter_(Crouch_novel)"&gt;&amp;#8220;Dark matter&amp;#8221;&lt;/a&gt; 
and &lt;a href="https://en.wikipedia.org/wiki/Recursion_(Crouch_novel)"&gt;&amp;#8220;Recursion&amp;#8221;&lt;/a&gt; books.
Both are about travelling to the other versions of the world. In &amp;#8220;Dark matter&amp;#8221;
those are parallel universes, where the main character can meet the other
selves. &amp;#8220;Recursion&amp;#8221; loops the live of the main character to his younger self.
Both were a good&amp;nbsp;read.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Good_Omens"&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;Good Omens&amp;#8221;&lt;/a&gt; by Terry Pratchett and
Neil Gaiman was a must after watching &lt;span class="caps"&gt;TV&lt;/span&gt;&amp;nbsp;series.&lt;/p&gt;
&lt;p&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;Senni zwycięzcy&amp;#8221; by Marek Oramus about multi-generation spaceship flying
towards the Earth. Society there is in terrible state and there are mysterious
people with paranormal abilities trying to change things. And it turns out to be
transmitted as some sick reality &lt;span class="caps"&gt;TV&lt;/span&gt;. Good book from&amp;nbsp;1970s.&lt;/p&gt;
&lt;p&gt;And &amp;#8220;Triplet&amp;#8221; by Timothy Zahn. Fantasy book in&amp;nbsp;space.&lt;/p&gt;
&lt;h3&gt;Literary Role-Playing Game&amp;nbsp;(LitRPG)&lt;/h3&gt;
&lt;p&gt;Some time ago, someone suggested me to check books by Василий Маханенко (Vasily
Mahanenko in one transcription, Wasilij Machanienko in the other). His &amp;#8220;Way of
Shaman&amp;#8221; series was an interesting one. Kind of reading how someone plays the
game instead of watching it on Twitch or&amp;nbsp;Youtube.&lt;/p&gt;
&lt;h3&gt;History&lt;/h3&gt;
&lt;p&gt;Between science fiction books I smuggled some history ones. Mostly around the
Second World&amp;nbsp;War.&lt;/p&gt;
&lt;p&gt;There was &amp;#8220;Wojna oczami wroga, sojusznicy Hitlera&amp;#8221; by Grzegorz Bobrek. A book
showing &lt;span class="caps"&gt;WW2&lt;/span&gt; from a view of German allies: Italy, Hungary, Romania or Japan. And
Germany itself. Was boring at some points but if someone wants to see the other
view, I recommend this&amp;nbsp;book.&lt;/p&gt;
&lt;p&gt;Friedrich Sander&amp;#8217;s book titled &amp;#8220;Blood, Dust and Snow: Diaries of a Panzer
Commander in Germany and on the Eastern Front, 1938-1943&amp;#8221; was another one
showing &lt;span class="caps"&gt;WW2&lt;/span&gt; from the German&amp;nbsp;side.&lt;/p&gt;
&lt;p&gt;The &amp;#8220;Operation Paperclip&amp;#8221; by Annie Jacobsen is about secret &lt;span class="caps"&gt;US&lt;/span&gt; project of
gathering as much of German research and scientists as possible during the end
of &lt;span class="caps"&gt;WW2&lt;/span&gt;. If you were deemed valuable enough, you were moved to the &lt;span class="caps"&gt;USA&lt;/span&gt; with a new
identity as long as you were ready to work for &amp;#8220;your new&amp;nbsp;country&amp;#8221;.&lt;/p&gt;
&lt;p&gt;The &amp;#8220;Ludzie na mydło&amp;#8221; (&amp;#8220;Humans for soap&amp;#8221;) by Tomasz Bonek is about German
anatomists turning human corpses into school material. And that soap made from
human fat was more of a side effect of that work rather than primary&amp;nbsp;purpose.&lt;/p&gt;
&lt;p&gt;There was also something not about &lt;span class="caps"&gt;WW2&lt;/span&gt;: 
&lt;a href="https://en.wikipedia.org/wiki/The_Hot_Zone"&gt;&amp;#8220;The Hot Zone&amp;#8221;&lt;/a&gt; by Richard Preston.
Worth reading book about the Ebola&amp;nbsp;virus.&lt;/p&gt;
&lt;h3&gt;The end of the&amp;nbsp;world&lt;/h3&gt;
&lt;p&gt;There were some books which can be described as &amp;#8220;the end of the world we&amp;nbsp;know&amp;#8221;.&lt;/p&gt;
&lt;p&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;The End of Men&amp;#8221; by Christina Sweeney-Baird shows the world where 90% of men
died due to unknown disease. When vaccination arrives, international travel is
allowed only between countries with 99.9% of population being vaccinated. And
that book was written &lt;strong&gt;before&lt;/strong&gt; &lt;span class="caps"&gt;COVID&lt;/span&gt;-19 pandemic. Very interesting position to&amp;nbsp;read.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://en.wikipedia.org/wiki/Blackout_(Elsberg_novel)"&gt;&amp;#8220;Blackout: Tomorrow Will Be Too Late&amp;#8221;&lt;/a&gt;
by Mark Elsberg was another book in this category. Imagine Europe without
electricity. Which means no water, no fuel, no food, no hospitals, no
communication etc.. All because of a&amp;nbsp;cyberattack.&lt;/p&gt;
&lt;h3&gt;Biographies&lt;/h3&gt;
&lt;p&gt;I read some biographies during&amp;nbsp;2025.&lt;/p&gt;
&lt;p&gt;There was &amp;#8220;The Outsider: My Life in Intrigue&amp;#8221; by Frederick Forsyth. From the
youngest pilot in &lt;span class="caps"&gt;RAF&lt;/span&gt;, to journalist, almost a spy and the author. Quick read,
despite 368&amp;nbsp;pages.&lt;/p&gt;
&lt;p&gt;And then were books about Jan Himilsbach (&amp;#8220;Ja to chętnie napiłbym się kawy&amp;#8221;) and
Zdzisław Maklakiewicz (&amp;#8220;Zaczęło się od tego, że jestem brzydki&amp;#8230;&amp;#8221;). Both by
Ryszard Abraham. Add &amp;#8220;Rejs na krzywy ryj&amp;#8221; by Anna Poppek and you have three
interesting books about famous Polish duo and the film which started their
common career. I was also reading stories written by Jan Himilsbach but did not
finished it in 2025 so it was not&amp;nbsp;counted.&lt;/p&gt;
&lt;p&gt;The book by Chrysta Bilton &amp;#8220;A Normal Family: The Surprising Truth About My Crazy
Childhood (And How I Discovered 35 New Siblings)&amp;#8221; was a fun read. Author
described her crazy childhood and later finding out that author&amp;#8217;s father was a
sperm donor. Which ended with her &amp;#8220;expanded family&amp;#8221; of 35 brothers and&amp;nbsp;sisters&amp;#8230;&lt;/p&gt;
&lt;p&gt;Another book from this category was &amp;#8220;American Sniper&amp;#8221; by Chris Kyle, Scott
McEwen and Jim&amp;nbsp;DeFelice.&lt;/p&gt;
&lt;h3&gt;Journalism&lt;/h3&gt;
&lt;p&gt;A few books here. Starting with &amp;#8220;&lt;span class="caps"&gt;ZATO&lt;/span&gt;&amp;#8221; by Alice Lugen &amp;#8212; a book about closed
cities in Soviet Union (and later Russia). Very good read, describing how Soviet
maps were falsified to hide those cities even from neighbours, how life there
was different&amp;nbsp;etc.&lt;/p&gt;
&lt;p&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;Głusza&amp;#8221; by Anna Goc described world of deaf people. Their language, culture and
problems. How world of &amp;#8220;those who hear&amp;#8221; tries to force them &amp;#8220;to fit&amp;#8221;. Highly&amp;nbsp;recommend.&lt;/p&gt;
&lt;p&gt;Edyta Żemła in &amp;#8220;Armia w ruinie&amp;#8221; described how Polish Armed Forces changed during
last years. To&amp;nbsp;worse.&lt;/p&gt;
&lt;p&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;Miła robótka&amp;#8221; by Ewa Stusińska describes how everything around sex and porn
arrived in Poland during 1990s. From &lt;span class="caps"&gt;VHS&lt;/span&gt; films to sex toys. How people started
explore new areas of sexual&amp;nbsp;freedom.&lt;/p&gt;
&lt;p&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;Breasts&amp;#8221; by Corien van Zweden is a wonderful book about breasts. Their role,
how they change during life and what breast cancer can mean. Highly recommend.
Even if you lack them&amp;nbsp;yourself.&lt;/p&gt;
&lt;p&gt;And the last entry: &amp;#8220;Pogo&amp;#8221; by Jakub Sieczko describes life of an ambulance&amp;nbsp;workers.&lt;/p&gt;
&lt;h3&gt;Summary&lt;/h3&gt;
&lt;p&gt;It might look that I had a lot of free time in 2025, because reading all those
books takes&amp;nbsp;time.&lt;/p&gt;
&lt;p&gt;I mostly read in the evening. Lying in bed, with my Onyx Nova2 e-book reader.
Sometimes during day (there was lot of reading during time &lt;a href="/2025/06/11/i-have-a-problem-with-arm/"&gt;when I had a problem
with my arm&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;In those one hundred books, I read a few of them in English. Rest was in Polish
(I had to look out for English titles for most of this&amp;nbsp;post).&lt;/p&gt;
&lt;p&gt;How many books I will read inn 2026? No idea. Probably&amp;nbsp;fewer.&lt;/p&gt;</content><category term="misc"/><category term="books"/><category term="onyx"/><category term="life"/></entry><entry><title>From the diary of AArch64 porter — RISC-V</title><link href="https://marcin.juszkiewicz.com.pl/2025/12/04/from-the-diary-of-aarch64-porter-risc-v/" rel="alternate"/><published>2025-12-04T18:47:00+01:00</published><updated>2025-12-04T18:47:00+01:00</updated><author><name>Marcin Juszkiewicz</name></author><id>tag:marcin.juszkiewicz.com.pl,2025-12-04:/2025/12/04/from-the-diary-of-aarch64-porter-risc-v/</id><summary type="html">I started working on Fedora packaging for the 64-bit &lt;span class="caps"&gt;RISC&lt;/span&gt;-V architecture&amp;nbsp;port.</summary><content type="html">&lt;p&gt;Wait, what? &lt;span class="caps"&gt;RISC&lt;/span&gt;-V? In &amp;#8216;the diary of &lt;strong&gt;AArch64&lt;/strong&gt; porter&amp;#8217;? &lt;span class="caps"&gt;WTH&lt;/span&gt;?&lt;/p&gt;
&lt;!--MORE--&gt;

&lt;p&gt;Yes, I started working on Fedora packaging for the 64-bit &lt;span class="caps"&gt;RISC&lt;/span&gt;-V architecture&amp;nbsp;port.&lt;/p&gt;
&lt;h3&gt;All started with discussion about&amp;nbsp;Mock&lt;/h3&gt;
&lt;p&gt;About a week ago, one of my work colleagues asked me about &lt;a href="/2016/04/15/how-to-speed-up-mock/"&gt;my old post about
speeding up Mock&lt;/a&gt;. We had a discussion, I
pointed him to the Mock documentation, and gave some&amp;nbsp;hints.&lt;/p&gt;
&lt;p&gt;It turned out that he was working on &lt;span class="caps"&gt;RISC&lt;/span&gt;-V related changes to Fedora packages.
As I had some spare cycles, I decided to take a look. And I&amp;nbsp;sank&amp;#8230;&lt;/p&gt;
&lt;h3&gt;State of the &lt;span class="caps"&gt;RISC&lt;/span&gt;-V Fedora&amp;nbsp;port&lt;/h3&gt;
&lt;p&gt;The 64-bit &lt;span class="caps"&gt;RISC&lt;/span&gt;-V port of Fedora Linux is going quite well. There are over 90%
of Fedora packages already built for that architecture. And there are several
packages with the riscv64 specific changes, such&amp;nbsp;as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;patches adding &lt;span class="caps"&gt;RISC&lt;/span&gt;-V&amp;nbsp;support&lt;/li&gt;
&lt;li&gt;disabling some parts of test&amp;nbsp;suites&lt;/li&gt;
&lt;li&gt;disabling some build options due to bootstrapping of some languages being in
  progress (like&amp;nbsp;Java)&lt;/li&gt;
&lt;li&gt;disabling of debug information due to some toolchain issues (there is a
  work-in-progress now to solve&amp;nbsp;them)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that these changes are temporary. There are people working on solving
toolchain issues, languages are being bootstrapped (there was a review of Java
changes earlier this week), patches are being integrated upstream and in Fedora,
and so&amp;nbsp;on.&lt;/p&gt;
&lt;p&gt;There is &lt;a href="https://abologna.gitlab.io/fedora-riscv-tracker/"&gt;the Fedora &lt;span class="caps"&gt;RISC&lt;/span&gt;-V tracker&lt;/a&gt;
website showing the progress of the&amp;nbsp;port:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;package&amp;nbsp;name&lt;/li&gt;
&lt;li&gt;current status (new, triaged, patch posted, patch merged,&amp;nbsp;done)&lt;/li&gt;
&lt;li&gt;version in &lt;span class="caps"&gt;RISC&lt;/span&gt;-V port&amp;nbsp;Koji&lt;/li&gt;
&lt;li&gt;version in Fedora Koji (F43 release is tracked&amp;nbsp;now)&lt;/li&gt;
&lt;li&gt;version in CentOS Stream&amp;nbsp;10&lt;/li&gt;
&lt;li&gt;notes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a simple way to check what to work on. And there are several packages,
not built yet due to use of &amp;#8220;ExclusiveArch&amp;#8221; setting in&amp;nbsp;them.&lt;/p&gt;
&lt;h3&gt;My&amp;nbsp;work&lt;/h3&gt;
&lt;p&gt;The quick look at work needed reminded me of the 2012-2014 period, when I worked
on the same stuff but for AArch64 ports (OpenEmbedded, Debian/Ubuntu,
Fedora/&lt;span class="caps"&gt;RHEL&lt;/span&gt;). So I had a knowledge, I knew the tools and started&amp;nbsp;working.&lt;/p&gt;
&lt;p&gt;In the beginning, I went through entries in the tracker and tried to triage as
many packages as possible, so it will be more visible which ones need work and
which can be ignored (for now). The tracker went from seven to over eighty
triaged packages in a few&amp;nbsp;days.&lt;/p&gt;
&lt;p&gt;Then I looked at changes done by current porters. Which usually meant David
Abdurachmanov. I used his changes as a base for the changes needed for Fedora
packaging, while trying to minimise the amount of them to the minimum&amp;nbsp;required.&lt;/p&gt;
&lt;p&gt;I did over twenty pull requests to Fedora packages during a week of&amp;nbsp;work.&lt;/p&gt;
&lt;h3&gt;Hardware?&lt;/h3&gt;
&lt;p&gt;But which hardware did I use to run those hundreds of builds? Was it HiFive Premier
P550? Or maybe Milk-V Titan or another &lt;span class="caps"&gt;RISC&lt;/span&gt;-V &lt;abbr title="Seriously Broken Computer"&gt;&lt;span class="caps"&gt;SBC&lt;/span&gt;&lt;/abbr&gt;?&lt;/p&gt;
&lt;p&gt;Nope. I used my 80-core, Altra-based, AArch64 desktop to run all those builds.
With the &lt;span class="caps"&gt;QEMU&lt;/span&gt; userspace&amp;nbsp;helper.&lt;/p&gt;
&lt;p&gt;You see, Mock allows to run builds for foreign architectures &amp;#8212; all you need is
the&amp;nbsp;proper &lt;code&gt;qemu-user-static-*&lt;/code&gt; package and you are ready to&amp;nbsp;go:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ fedpkg mockbuild -r fedora-43-riscv64
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can extract the &amp;#8220;fedora-43-riscv64&amp;#8221; Mock config from the
&lt;a href="http://fedora.riscv.rocks:3000/rpms/mock-core-configs/src/branch/main-riscv64/mock-riscv64-configs.patch"&gt;mock-riscv64-configs.patch&lt;/a&gt;
hosted on Fedora &lt;span class="caps"&gt;RISC&lt;/span&gt;-V port forge. I hope that these configuration files may be
found in the &amp;#8220;mock-core-configs&amp;#8221; in Fedora&amp;nbsp;soon.&lt;/p&gt;
&lt;p&gt;At some point I had&amp;nbsp;337 &lt;code&gt;qemu-user-static-riscv&lt;/code&gt; processes running at same
time. And you know what? It was &lt;strong&gt;still faster than a native build on 64-bit
&lt;span class="caps"&gt;RISC&lt;/span&gt;-V hardware&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;But, to be honest, I only compared a few builds, so it may be better with other
builders. Fedora &lt;span class="caps"&gt;RISC&lt;/span&gt;-V Koji uses wide list of &lt;abbr title="Seriously Broken Computers"&gt;SBCs&lt;/abbr&gt; to build&amp;nbsp;on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Banana Pi &lt;span class="caps"&gt;BPI&lt;/span&gt;-F3&lt;/li&gt;
&lt;li&gt;Milk-V&amp;nbsp;Jupiter&lt;/li&gt;
&lt;li&gt;Milk-V&amp;nbsp;Megrez&lt;/li&gt;
&lt;li&gt;SiFive HiFive Premier&amp;nbsp;P550&lt;/li&gt;
&lt;li&gt;StarFive VisionFive&amp;nbsp;2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also note that using &lt;span class="caps"&gt;QEMU&lt;/span&gt; is not a solution for building a distribution. I used
it only to check if package builds, and then scrap the&amp;nbsp;results.&lt;/p&gt;
&lt;h3&gt;Future&lt;/h3&gt;
&lt;p&gt;Will I continue working on the &lt;span class="caps"&gt;RISC&lt;/span&gt;-V port of Fedora Linux? Probably yes. And,
at some point, I will move to integrating those changes into CentOS Stream&amp;nbsp;10.&lt;/p&gt;
&lt;p&gt;For sure I do not want to invest in &lt;span class="caps"&gt;RISC&lt;/span&gt;-V hardware. Existing models are not
worth the money (in my opinion), incoming ones are still old (&lt;span class="caps"&gt;RVA20&lt;/span&gt;/&lt;span class="caps"&gt;RVA22&lt;/span&gt;) and
they are slow. Maybe in two, three years there will be something fast&amp;nbsp;enough.&lt;/p&gt;</content><category term="misc"/><category term="aarch64"/><category term="development"/><category term="fedora"/><category term="risc-v"/><category term="virtualization"/><category term="qemu"/></entry><entry><title>Wałek na Inpost</title><link href="https://marcin.juszkiewicz.com.pl/2025/11/12/walek-na-inpost/" rel="alternate"/><published>2025-11-12T19:47:00+01:00</published><updated>2025-11-12T19:47:00+01:00</updated><author><name>Marcin Juszkiewicz</name></author><id>tag:marcin.juszkiewicz.com.pl,2025-11-12:/2025/11/12/walek-na-inpost/</id><summary type="html">Dostałem ciekawą ofertę&amp;nbsp;kupna.</summary><content type="html">&lt;p&gt;Dawno nie pisałem tutaj po polsku ale dzisiaj &amp;#8220;pani Antonina&amp;#8221; próbowała kupić ode mnie&amp;nbsp;telefon.&lt;/p&gt;
&lt;!--MORE--&gt;

&lt;h3&gt;Wprowadzenie&lt;/h3&gt;
&lt;p&gt;Nabyłem w okazyjnej cenie telefon Xiaomi Redmi Note 14 Pro+ 5G. A że nie mam
potrzeby go używać to postanowiłem go&amp;nbsp;sprzedać.&lt;/p&gt;
&lt;p&gt;Na początek wrzuciłem go na Facebook Marketplace. Bo wiecie: &amp;#8220;za darmo&amp;#8221;. No tak
sobie tam leżał, co jakiś czas ktoś pytał czy aktualne lub zadawał więcej&amp;nbsp;pytań.&lt;/p&gt;
&lt;p&gt;Po czym dzisiaj pojawiła się &amp;#8220;pani Antonina&amp;#8221; (w cudzysłowie bo to przejęte konto
raczej). Na początek zadała klasyczne pytania o aktualność oferty, stan telefonu&amp;nbsp;itp&amp;#8230;&lt;/p&gt;
&lt;h3&gt;A może być&amp;nbsp;InPostem?&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Czy jest możliwość wysyłki kurierem Inpost po wcześniej wpłacie na konto?
Zamówię kuriera i pokryję koszty&amp;nbsp;wysyłki.&lt;/p&gt;
&lt;p&gt;Lub paczkomatom zapłacę&amp;nbsp;+20.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nie wiem jak Wy, ja lubię usługi InPostu. W promieniu 15 minut piechotą mam
pewnie z 10 ich &amp;#8220;automatów paczkowych&amp;#8221;. Więc owszem, czemu by nie miało&amp;nbsp;być.&lt;/p&gt;
&lt;p&gt;Parę minut później dostałem&amp;nbsp;info:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Gotowe. Zaplaciłam na InPost powinieneś otrzymać list na swój adres&amp;nbsp;maila.&lt;/p&gt;
&lt;p&gt;Sprawdź swoją skrzynkę mail&amp;nbsp;proszę.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I okazała potwierdzenie&amp;nbsp;przelewu:&lt;/p&gt;
&lt;figure id="__yafg-figure-1"&gt;
&lt;img alt="potwierdzenie przelewu" src="/files/2025/11/potwierdzenie-700x.jpg" title="potwierdzenie przelewu"&gt;
&lt;figcaption&gt;potwierdzenie przelewu&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I tu już zaczęło&amp;nbsp;śmierdzieć&amp;#8230;&lt;/p&gt;
&lt;h3&gt;Potwierdzenie&amp;nbsp;przelewu&lt;/h3&gt;
&lt;p&gt;Uznałem, że nie wiem, może i potwierdzenie z banku Pekao &lt;span class="caps"&gt;SA&lt;/span&gt; tak powinno
wyglądać. Popytałem znajomych, czy ktoś ma tam&amp;nbsp;konto.&lt;/p&gt;
&lt;p&gt;Dostałem informację, że zawsze jest data &lt;strong&gt;i godzina&lt;/strong&gt; wystawienia dokumentu.
Zawsze jest numer rachunku nadawcy, dane właściciela rachunku&amp;nbsp;itp.&lt;/p&gt;
&lt;p&gt;Na potwierdzeniu powyżej jest jeszcze kilka innych błędów ale co ja będę
naprowadzać&amp;nbsp;scammerów&amp;#8230;&lt;/p&gt;
&lt;h3&gt;Mail&lt;/h3&gt;
&lt;p&gt;Skoro była prośba o sprawdzenie skrzynki to sprawdziłem. Nie było nic. No to
zaglądam GMailowi do spamu, a tam owszem jest mail &amp;#8220;od&amp;nbsp;InPostu&amp;#8221;.&lt;/p&gt;
&lt;p&gt;O ile InPost używa adresów email w&amp;nbsp;domenie &lt;code&gt;tp5142.com&lt;/code&gt; :D&lt;/p&gt;
&lt;figure id="__yafg-figure-2"&gt;
&lt;img alt="pierwszy spam" src="/files/2025/11/spam1.jpg" title="pierwszy spam: InPost Pay - podsumowanie"&gt;
&lt;figcaption&gt;pierwszy spam: InPost Pay - podsumowanie&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Link &amp;#8220;Otwórz panel InPost Pay&amp;#8221; to 320 znaków prowadzących do jeszcze innej
domeny. Poza adresem był blok&amp;nbsp;&amp;#8220;&lt;code&gt;onload=eval(decodeURIComponent(atob(ZNACZKI)))&lt;/code&gt;&amp;#8221;.
Po zdekodowaniu otrzymałem kolejny&amp;nbsp;&amp;#8220;&lt;code&gt;eval(decodeURIComponent(atob(InneZnaczki)))&lt;/code&gt;&amp;#8221;
który dał mi&amp;nbsp;url:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;h00ps://confirm-orderNUMERKI.xyz/LosoweZnaczki=InneLosoweZnaczki&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Tu już zacząłem szukać po sieci artykułów w temacie &amp;#8220;wałek na&amp;nbsp;InPost&amp;#8221;&amp;#8230;&lt;/p&gt;
&lt;h3&gt;Dziwne&amp;nbsp;literki&lt;/h3&gt;
&lt;p&gt;Tymczasem &amp;#8220;pani&amp;nbsp;Antonina&amp;#8221;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To jest numer śledzenia przesyłki kսrіеrѕkіеј. Zaplaciłam na ǏnΡost. Proszę
odebrać pieniądze na konto przez&amp;nbsp;zamówienie.&lt;/p&gt;
&lt;p&gt;Tam jest przycisk Dalej i wybierz bank i wprowadź dane, aby zweryfikować i
otrzymać pieniądze. Po potwierdzeniu zaⅿóԝіеոіа kսrіеr zadzwoni się w celu
dogadania kiedy przyjechać i pod jaki&amp;nbsp;adres.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nie wiem czy widzicie to co ja: &amp;#8220;Ǐ&amp;#8221; w &amp;#8220;ǏnΡost&amp;#8221; to nie jest nasze &amp;#8220;I&amp;#8221; tylko &amp;#8220;duże
łacińskie i z caronem&amp;#8221;. Przyznaję, że nie wiem w jakim języku używa się tej&amp;nbsp;litery.&lt;/p&gt;
&lt;p&gt;Do tego &amp;#8220;m&amp;#8221; w &amp;#8220;zaⅿóԝіеոіа&amp;#8221; też nie jest naszym &amp;#8220;m&amp;#8221; tylko &amp;#8220;Small Roman Numeral
One Thousand&amp;#8221; czyli &amp;#8220;małe rzymskie oznaczenie liczby&amp;nbsp;tysiąc&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Oba znaczki złapałem bo mi edytor podświetlił słowa z nimi jako&amp;nbsp;błędne.&lt;/p&gt;
&lt;h3&gt;Drugi&amp;nbsp;mail&lt;/h3&gt;
&lt;p&gt;W międzyczasie dostałem jeszcze jednego maila &amp;#8212; ten przeszedł filtry
antyspamowe. Tym razem adres nadawcy był zbudowany z losowych literek w&amp;nbsp;domenie
&lt;code&gt;zohomail.in&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Nic tylko czytać i klikać co&amp;nbsp;nie?&lt;/p&gt;
&lt;figure id="__yafg-figure-3"&gt;
&lt;img alt="drugi spam" src="/files/2025/11/spam2.jpg" title="drugi spam: Odbierz etykietę nadawczą"&gt;
&lt;figcaption&gt;drugi spam: Odbierz etykietę nadawczą&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Tym razem link prowadzi prosto&amp;nbsp;do
&lt;code&gt;h00ps://elektrizitaet-muenchen.com/LosoweLiterki&lt;/code&gt; który także kieruje do znanego
już&amp;nbsp;adresu:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;h00ps://confirm-orderNUMERKI.xyz/LosoweZnaczki=InneLosoweZnaczki&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;Koniec&amp;nbsp;zabawy&lt;/h3&gt;
&lt;p&gt;Na tym etapie uznałem, że postaram się być&amp;nbsp;miły:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Przepraszam bardzo, ale na tym kończymy - nie mam zamiaru klikać podejrzanych
linków w podejrzanych&amp;nbsp;mailach.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Na co&amp;nbsp;dostałem:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;O czym ty mówisz? Moje pieniądze już są na stronie, zaufałam Ci. Potwierdź
proszę zаⅿóԝіеոіе , mam nadzieję na Twoją&amp;nbsp;uczciwość.&lt;/p&gt;
&lt;p&gt;Pieniądze już zostały pobrane i nie da się cofnąć transakcji, bo to był
pobraniowy&amp;nbsp;przelew&lt;/p&gt;
&lt;p&gt;Nieprzyjęcie pobrania to kradzież. InPost pracuje do 22:00  jeśli nie
przyjmiesz, pieniądze po prostu przepadną i się spalą, i to będzie traktowane
jako&amp;nbsp;kradzież&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Przyznaję, ciekawe podejście do sprawy. Później jeszcze była wiadomość głosowa
męskim głosem strasząca policją&amp;nbsp;itp.&lt;/p&gt;
&lt;h3&gt;Koniec&lt;/h3&gt;
&lt;p&gt;Zgłosiłem &amp;#8220;panią Antoninę&amp;#8221; i podzieliłem się historią ze znajomymi. Ktoś rzucił
pomysłem posta na bloga. Więc macie&amp;nbsp;historię.&lt;/p&gt;</content><category term="misc"/><category term="życie"/><category term="inpost"/><category term="wałek"/></entry><entry><title>From the diary of AArch64 porter — ID registers</title><link href="https://marcin.juszkiewicz.com.pl/2025/11/12/from-the-diary-of-aarch64-porter-id-registers/" rel="alternate"/><published>2025-11-12T09:19:00+01:00</published><updated>2025-11-12T09:19:00+01:00</updated><author><name>Marcin Juszkiewicz</name></author><id>tag:marcin.juszkiewicz.com.pl,2025-11-12:/2025/11/12/from-the-diary-of-aarch64-porter-id-registers/</id><summary type="html">Checking &lt;span class="caps"&gt;CPU&lt;/span&gt; features can be time&amp;nbsp;consuming.</summary><content type="html">&lt;p&gt;People are used to looking at &amp;#8220;Features&amp;#8221; field in&amp;nbsp;the &lt;code&gt;/proc/cpuinfo&lt;/code&gt; file under
Linux. But does it show everything about the &lt;span class="caps"&gt;CPU&lt;/span&gt; cores present in the&amp;nbsp;system?&lt;/p&gt;
&lt;!--MORE--&gt;

&lt;h3&gt;What &lt;span class="caps"&gt;ID&lt;/span&gt;&amp;nbsp;registers?&lt;/h3&gt;
&lt;p&gt;AArch64 CPUs have a set of &amp;#8220;identification registers&amp;#8221; which are named
&amp;#8220;ID_AA64*_EL1&amp;#8221;, where &amp;#8220;*&amp;#8221; can&amp;nbsp;be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="caps"&gt;AFR&lt;/span&gt;  &amp;#8212; Auxiliary Feature&amp;nbsp;Registers&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;DFR&lt;/span&gt;  &amp;#8212; Debug Feature&amp;nbsp;Registers&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;FPFR&lt;/span&gt; &amp;#8212; Floating-Point Feature&amp;nbsp;Registers&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;ISAR&lt;/span&gt; &amp;#8212; Instruction Set Attribute&amp;nbsp;Registers&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;MMFR&lt;/span&gt; &amp;#8212; Memory Model Feature&amp;nbsp;Registers&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;PFR&lt;/span&gt;  &amp;#8212; Processor Feature&amp;nbsp;Registers&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;SMFR&lt;/span&gt; &amp;#8212; &lt;span class="caps"&gt;SME&lt;/span&gt; Feature &lt;span class="caps"&gt;ID&lt;/span&gt;&amp;nbsp;Registers&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;ZFR&lt;/span&gt;  &amp;#8212; &lt;span class="caps"&gt;SVE&lt;/span&gt; Feature &lt;span class="caps"&gt;ID&lt;/span&gt;&amp;nbsp;Registers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They can be used to check which features are present in a given &lt;span class="caps"&gt;CPU&lt;/span&gt; core. Their
presence depends on things like age, generation, revision, and the design of the&amp;nbsp;SoC.&lt;/p&gt;
&lt;h3&gt;Introductions of&amp;nbsp;registers&lt;/h3&gt;
&lt;p&gt;As the AArch64 architecture was progressing, more and more identification
registers were needed to describe &lt;span class="caps"&gt;CPU&lt;/span&gt; core&amp;nbsp;features.&lt;/p&gt;
&lt;p&gt;From a quick look through Arm docs, I compiled a simple table of&amp;nbsp;chronology:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span class="caps"&gt;ID&lt;/span&gt; register&lt;/th&gt;
&lt;th&gt;Architecture version&lt;/th&gt;
&lt;th&gt;Year&lt;/th&gt;
&lt;th&gt;First Arm core&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64DFR0_EL1&lt;/td&gt;
&lt;td&gt;v8.0-A&lt;/td&gt;
&lt;td&gt;2011/2012&lt;/td&gt;
&lt;td&gt;Cortex-A53, Cortex-A57&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64PFR0_EL1&lt;/td&gt;
&lt;td&gt;v8.0-A&lt;/td&gt;
&lt;td&gt;2011/2012&lt;/td&gt;
&lt;td&gt;Cortex-A53, Cortex-A57&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64ISAR0_EL1&lt;/td&gt;
&lt;td&gt;v8.0-A&lt;/td&gt;
&lt;td&gt;2011/2012&lt;/td&gt;
&lt;td&gt;Cortex-A53, Cortex-A57&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64MMFR0_EL1&lt;/td&gt;
&lt;td&gt;v8.0-A&lt;/td&gt;
&lt;td&gt;2011/2012&lt;/td&gt;
&lt;td&gt;Cortex-A53, Cortex-A57&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64AFR0_EL1&lt;/td&gt;
&lt;td&gt;v8.0-A&lt;/td&gt;
&lt;td&gt;2013/2014&lt;/td&gt;
&lt;td&gt;Cortex-A53, Cortex-A73&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64AFR1_EL1&lt;/td&gt;
&lt;td&gt;v8.0-A&lt;/td&gt;
&lt;td&gt;2013/2014&lt;/td&gt;
&lt;td&gt;Cortex-A53, Cortex-A73&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64DFR1_EL1&lt;/td&gt;
&lt;td&gt;v8.0-A&lt;/td&gt;
&lt;td&gt;2013/2014&lt;/td&gt;
&lt;td&gt;Cortex-A53, Cortex-A73&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64PFR1_EL1&lt;/td&gt;
&lt;td&gt;v8.0-A&lt;/td&gt;
&lt;td&gt;2013/2014&lt;/td&gt;
&lt;td&gt;Cortex-A53, Cortex-A73&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64ISAR1_EL1&lt;/td&gt;
&lt;td&gt;v8.0-A&lt;/td&gt;
&lt;td&gt;2013/2014&lt;/td&gt;
&lt;td&gt;Cortex-A53, Cortex-A73&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64MMFR1_EL1&lt;/td&gt;
&lt;td&gt;v8.0-A&lt;/td&gt;
&lt;td&gt;2013/2014&lt;/td&gt;
&lt;td&gt;Cortex-A53, Cortex-A73&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64MMFR2_EL1&lt;/td&gt;
&lt;td&gt;v8.2-A&lt;/td&gt;
&lt;td&gt;2016&lt;/td&gt;
&lt;td&gt;Cortex-A55, Cortex-A75&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64ZFR0_EL1&lt;/td&gt;
&lt;td&gt;v8.2-A (&lt;span class="caps"&gt;SVE&lt;/span&gt;)&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;td&gt;Fujitsu &lt;span class="caps"&gt;A64FX&lt;/span&gt;, Cortex-A710&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64MMFR3_EL1&lt;/td&gt;
&lt;td&gt;v8.3-A&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;td&gt;Cortex-X4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64ISAR2_EL1&lt;/td&gt;
&lt;td&gt;v8.5-A&lt;/td&gt;
&lt;td&gt;2018&lt;/td&gt;
&lt;td&gt;Cortex-A520&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64ISAR3_EL1&lt;/td&gt;
&lt;td&gt;v8.5-A&lt;/td&gt;
&lt;td&gt;2018&lt;/td&gt;
&lt;td&gt;Cortex-A520&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64MMFR4_EL1&lt;/td&gt;
&lt;td&gt;v8.7-A&lt;/td&gt;
&lt;td&gt;2021&lt;/td&gt;
&lt;td&gt;Cortex-A715&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64SMFR0_EL1&lt;/td&gt;
&lt;td&gt;v9.0-A (&lt;span class="caps"&gt;SME&lt;/span&gt;)&lt;/td&gt;
&lt;td&gt;2021&lt;/td&gt;
&lt;td&gt;Neoverse V1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64FPFR0_EL1&lt;/td&gt;
&lt;td&gt;v9.5-A&lt;/td&gt;
&lt;td&gt;2023&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ID_AA64PFR2_EL1&lt;/td&gt;
&lt;td&gt;v8.9-A/9.5-A&lt;/td&gt;
&lt;td&gt;2023&lt;/td&gt;
&lt;td&gt;C1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I am not 100% sure about years and architecture versions. Not every document has
all versions available on the Arm developer&amp;nbsp;website.&lt;/p&gt;
&lt;p&gt;It also shows that the Cortex-A53 was a very popular core design &amp;#8212; it had
multiple revisions, which added several&amp;nbsp;features.&lt;/p&gt;
&lt;h3&gt;How to read&amp;nbsp;those?&lt;/h3&gt;
&lt;p&gt;In my opinion, the easiest way is to use my &lt;a href="https://github.com/hrw/edk2-armcpuinfo/"&gt;ArmCpuInfo tool&lt;/a&gt;.
It runs on any &lt;span class="caps"&gt;EFI&lt;/span&gt; environment (&lt;span class="caps"&gt;EDK2&lt;/span&gt;, U-Boot, and so on), reads the &lt;span class="caps"&gt;ID&lt;/span&gt; registers
and prints their meaning.
I &lt;a href="/2023/05/03/arm-cpu-info-efi-application/"&gt;wrote about it some time ago&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Empty&amp;nbsp;registers&lt;/h3&gt;
&lt;p&gt;A &lt;span class="caps"&gt;TRM&lt;/span&gt; document may list an &lt;span class="caps"&gt;ID&lt;/span&gt; register, explain all its fields, and it still can
look like something to ignore because it only contains zeros. Like the
ID_AA64MMFR3_EL1 register in
&lt;a href="https://developer.arm.com/documentation/107734/0002/AArch64-registers/AArch64-Identification-registers-summary/ID-AA64MMFR3-EL1--AArch64-Memory-Model-Feature-Register-3"&gt;the Neoverse-V3 &lt;span class="caps"&gt;TRM&lt;/span&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SpecFPACC&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;ADERR&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;SDERR&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;RPZ&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;ANERR&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;SNERR&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;D128_2&lt;/li&gt;
&lt;li&gt;D128&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;MEC&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;AIE&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;S2POE&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;S1POE&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;S2PIE&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;S1PIE&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;SCTLRX&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="caps"&gt;TCRX&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All those fields have descriptions and they mean something. At the same time,
they all have a 0b0000 value. I assume that the value of some fields may change
when the SoC vendor pays more and begins designing its own version of a &lt;span class="caps"&gt;CPU&lt;/span&gt; core
based on Arm&amp;#8217;s&amp;nbsp;design.&lt;/p&gt;
&lt;h3&gt;Strange&amp;nbsp;cases&lt;/h3&gt;
&lt;p&gt;Cortex-A75 present in the MediaTek Helio G70 SoC reports &lt;span class="caps"&gt;SSBS&lt;/span&gt; (Speculative Store
Bypass Safe) feature under&amp;nbsp;Linux:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;processor       : 6
BogoMIPS        : 26.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp
                  asimdhp cpuid asimdrdm lrcpc dcpop asimddp asimddp sha512 ssbs
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x3
CPU part        : 0xd0a
CPU revision    : 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But to read it, you need the ID_AA64PRF1_EL1
register, which is not mentioned in
&lt;a href="https://developer.arm.com/documentation/100403/"&gt;the Cortex-A75 technical reference manual (&lt;span class="caps"&gt;TRM&lt;/span&gt;)&lt;/a&gt;.
It is present in the newer versions of 
&lt;a href="https://developer.arm.com/documentation/100442/"&gt;the Cortex-A55 &lt;span class="caps"&gt;TRM&lt;/span&gt;&lt;/a&gt;,
and both &lt;span class="caps"&gt;CPU&lt;/span&gt; core models are present in the Helio G70&amp;nbsp;SoC.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;SSBS&lt;/span&gt; (and &lt;span class="caps"&gt;SSBS2&lt;/span&gt;) were introduced into Arm v8.5 and then added to v8.0 to allow
every &lt;span class="caps"&gt;CPU&lt;/span&gt; core to have it&amp;nbsp;implemented.&lt;/p&gt;
&lt;h3&gt;Let me list it for&amp;nbsp;you&lt;/h3&gt;
&lt;p&gt;As you may know, I have &lt;a href="https://gpages.juszkiewicz.com.pl/arm-socs-table/arm-cpu-cores.html"&gt;a page about &lt;span class="caps"&gt;ARM&lt;/span&gt; &lt;span class="caps"&gt;CPU&lt;/span&gt; cores&lt;/a&gt;
where I list some basic information. Last weekend I added showing of potential
&lt;span class="caps"&gt;CPU&lt;/span&gt; features to it. Small&amp;nbsp;example:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span class="caps"&gt;CPU&lt;/span&gt;&amp;nbsp;core&amp;nbsp;name&lt;/th&gt;
&lt;th&gt;features&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cortex-A53&lt;/td&gt;
&lt;td&gt;&lt;span class="caps"&gt;AA32EL0&lt;/span&gt;, &lt;span class="caps"&gt;AA32EL1&lt;/span&gt;, &lt;span class="caps"&gt;AA32EL2&lt;/span&gt;, &lt;span class="caps"&gt;AA32EL3&lt;/span&gt;, &lt;span class="caps"&gt;AA64EL0&lt;/span&gt;, &lt;span class="caps"&gt;AA64EL1&lt;/span&gt;, &lt;span class="caps"&gt;AA64EL2&lt;/span&gt;, &lt;span class="caps"&gt;AA64EL3&lt;/span&gt;, &lt;span class="caps"&gt;AES&lt;/span&gt;, &lt;span class="caps"&gt;ASID16&lt;/span&gt;, AdvSIMD, &lt;span class="caps"&gt;CRC32&lt;/span&gt;, Debugv8, DoubleLock, &lt;span class="caps"&gt;FP&lt;/span&gt;, MixedEnd, MixedEndEL0, &lt;span class="caps"&gt;PMULL&lt;/span&gt;, PMUv3, &lt;span class="caps"&gt;SHA1&lt;/span&gt;, &lt;span class="caps"&gt;SHA256&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cortex-A520&lt;/td&gt;
&lt;td&gt;&lt;span class="caps"&gt;AA64EL0&lt;/span&gt;, &lt;span class="caps"&gt;AA64EL1&lt;/span&gt;, &lt;span class="caps"&gt;AA64EL2&lt;/span&gt;, &lt;span class="caps"&gt;AA64EL3&lt;/span&gt;, &lt;span class="caps"&gt;AES&lt;/span&gt;, &lt;span class="caps"&gt;AFP&lt;/span&gt;, AMUv1, &lt;span class="caps"&gt;ASID16&lt;/span&gt;, AdvSIMD, &lt;span class="caps"&gt;BBM&lt;/span&gt;, &lt;span class="caps"&gt;BF16&lt;/span&gt;, &lt;span class="caps"&gt;BTI&lt;/span&gt;, &lt;span class="caps"&gt;CCIDX&lt;/span&gt;, &lt;span class="caps"&gt;CONSTPACFIELD&lt;/span&gt;, &lt;span class="caps"&gt;CRC32&lt;/span&gt;, CSV2_2, &lt;span class="caps"&gt;CSV3&lt;/span&gt;, &lt;span class="caps"&gt;DGH&lt;/span&gt;, &lt;span class="caps"&gt;DIT&lt;/span&gt;, &lt;span class="caps"&gt;DPB2&lt;/span&gt;, Debugv8p4, DotProd, &lt;span class="caps"&gt;E0PD&lt;/span&gt;, &lt;span class="caps"&gt;ECBHB&lt;/span&gt;, ECV_POFF, &lt;span class="caps"&gt;EVT&lt;/span&gt;, &lt;span class="caps"&gt;FCMA&lt;/span&gt;, &lt;span class="caps"&gt;FGT&lt;/span&gt;, &lt;span class="caps"&gt;FHM&lt;/span&gt;, &lt;span class="caps"&gt;FP&lt;/span&gt;, &lt;span class="caps"&gt;FP16&lt;/span&gt;, &lt;span class="caps"&gt;FRINTTS&lt;/span&gt;, FlagM2, &lt;span class="caps"&gt;HAFDBS&lt;/span&gt;, &lt;span class="caps"&gt;HCX&lt;/span&gt;, &lt;span class="caps"&gt;HPDS2&lt;/span&gt;, &lt;span class="caps"&gt;HPMN0&lt;/span&gt;, &lt;span class="caps"&gt;I8MM&lt;/span&gt;, &lt;span class="caps"&gt;IDST&lt;/span&gt;, &lt;span class="caps"&gt;IESB&lt;/span&gt;, &lt;span class="caps"&gt;JSCVT&lt;/span&gt;, &lt;span class="caps"&gt;LOR&lt;/span&gt;, &lt;span class="caps"&gt;LRCPC&lt;/span&gt;, &lt;span class="caps"&gt;LRCPC2&lt;/span&gt;, &lt;span class="caps"&gt;LSE&lt;/span&gt;, &lt;span class="caps"&gt;LSE2&lt;/span&gt;, &lt;span class="caps"&gt;MTE3&lt;/span&gt;, MixedEnd, MixedEndEL0, &lt;span class="caps"&gt;PACQARMA3&lt;/span&gt;, &lt;span class="caps"&gt;PAN3&lt;/span&gt;, PAuth2, &lt;span class="caps"&gt;PMULL&lt;/span&gt;, PMUv3p7, RASv1p1, &lt;span class="caps"&gt;RDM&lt;/span&gt;, &lt;span class="caps"&gt;S2FWB&lt;/span&gt;, &lt;span class="caps"&gt;SB&lt;/span&gt;, &lt;span class="caps"&gt;SHA1&lt;/span&gt;, &lt;span class="caps"&gt;SHA256&lt;/span&gt;, &lt;span class="caps"&gt;SHA3&lt;/span&gt;, &lt;span class="caps"&gt;SHA512&lt;/span&gt;, &lt;span class="caps"&gt;SM3&lt;/span&gt;, &lt;span class="caps"&gt;SM4&lt;/span&gt;, &lt;span class="caps"&gt;SPECRES&lt;/span&gt;, &lt;span class="caps"&gt;SSBS2&lt;/span&gt;, &lt;span class="caps"&gt;SVE&lt;/span&gt;, &lt;span class="caps"&gt;SVE2&lt;/span&gt;, SVE_AES, SVE_BitPerm, SVE_PMULL128, SVE_SHA3, SVE_SM4, &lt;span class="caps"&gt;TLBIOS&lt;/span&gt;, &lt;span class="caps"&gt;TLBIRANGE&lt;/span&gt;, &lt;span class="caps"&gt;TRBE&lt;/span&gt;, &lt;span class="caps"&gt;TRF&lt;/span&gt;, &lt;span class="caps"&gt;TTCNP&lt;/span&gt;, &lt;span class="caps"&gt;TTL&lt;/span&gt;, &lt;span class="caps"&gt;TTST&lt;/span&gt;, &lt;span class="caps"&gt;UAO&lt;/span&gt;, &lt;span class="caps"&gt;VHE&lt;/span&gt;, &lt;span class="caps"&gt;VMID16&lt;/span&gt;, &lt;span class="caps"&gt;XNX&lt;/span&gt;, &lt;span class="caps"&gt;XS&lt;/span&gt;, nTLBPA&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;There may be some mistakes in the table &amp;#8212; I strongly advise checking Technical
Reference Manuals (TRMs) to be sure. Please report any error &amp;#8212; I will take a
look at fixing&amp;nbsp;them.&lt;/p&gt;</content><category term="misc"/><category term="aarch64"/><category term="python"/><category term="development"/><category term="edk2"/><category term="linux"/></entry><entry><title>Finished Factorio: Space Age under 40 hours</title><link href="https://marcin.juszkiewicz.com.pl/2025/10/22/finished-factorio-space-age-under-40-hours/" rel="alternate"/><published>2025-10-22T19:53:00+02:00</published><updated>2025-10-22T19:53:00+02:00</updated><author><name>Marcin Juszkiewicz</name></author><id>tag:marcin.juszkiewicz.com.pl,2025-10-22:/2025/10/22/finished-factorio-space-age-under-40-hours/</id><summary type="html">I need to find some other game to&amp;nbsp;play.</summary><content type="html">&lt;p&gt;Factorio: Space Age added new achievements, so I no longer had 100% done. So,
some time ago, I started &amp;#8220;finish &lt;span class="caps"&gt;SA&lt;/span&gt; under 40 hours&amp;#8221; challenge to get back to
fully finished game&amp;nbsp;state.&lt;/p&gt;
&lt;!--MORE--&gt;

&lt;h3&gt;Gathering of&amp;nbsp;hints&lt;/h3&gt;
&lt;p&gt;Before starting, I decided to check how people approached this achievement. One of
solutions was the 
&lt;a href="https://www.reddit.com/r/factorio/comments/1gsza9m/express_delivery_a_brief_guide_for_the_best/"&gt;&amp;#8216;Express Delivery: a brief guide for the best achievement in the game. Ask me anything!&amp;#8217;&lt;/a&gt;
post by &amp;#8220;Intrepid_Teacher1597&amp;#8221; on Reddit. With clean split to&amp;nbsp;parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nauvis&lt;/li&gt;
&lt;li&gt;Vulkanus&lt;/li&gt;
&lt;li&gt;Fulgora&lt;/li&gt;
&lt;li&gt;Gleba&lt;/li&gt;
&lt;li&gt;Nauvis (to redesign using technologies from other&amp;nbsp;planets)&lt;/li&gt;
&lt;li&gt;Aquillo&lt;/li&gt;
&lt;li&gt;Solar&amp;#8217;s&amp;nbsp;Edge&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I went through my old blueprints, refreshed my
&lt;a href="https://factorioprints.com/view/-OEYpgwrnR1zCwk_r2JF"&gt;&amp;#8216;Microfactories for Space Age&amp;#8217;&lt;/a&gt;
set from some old savegame and started&amp;nbsp;playing.&lt;/p&gt;
&lt;p&gt;I opted for rich resource settings and made islands on Fulgora large enough to
not have issues with space. Later, it turned out that I did not looked closely
at how Aquillo would&amp;nbsp;look&amp;#8230;&lt;/p&gt;
&lt;h3&gt;Nauvis&lt;/h3&gt;
&lt;p&gt;I do not like the first hours in Factorio. No bots means everything needs to be
built by hand. The awful part. So, I used 
&amp;#8216;&lt;a href="https://factorioprints.com/view/-LvWjwX1U25krBg-auKR"&gt;Brian&amp;#8217;s bootstrap&lt;/a&gt;&amp;#8216;
by Brian White, as in some of my previous games, to make it as compact and
quick as&amp;nbsp;possible.&lt;/p&gt;
&lt;p&gt;Once I had bots I designed Nauvis base using blueprints from my previous game.
Which turned out to be a bad idea as it quickly showed that there would be
serious lockdowns&amp;nbsp;later.&lt;/p&gt;
&lt;p&gt;So I moved back a bit and redesigned using 
&lt;a href="https://factorioprints.com/view/-OXRxN4v1U8dwIjSO4l4"&gt;Nilaus cityblocks 2.0&lt;/a&gt;
blueprints. Quick, simple and organised. Probably should have started with&amp;nbsp;them.&lt;/p&gt;
&lt;h3&gt;Space platform and&amp;nbsp;ships&lt;/h3&gt;
&lt;p&gt;To get to space you need space science. A simple
&amp;#8216;&lt;a href="https://factorioprints.com/view/-OO75wt7RLuAYOSbYspD"&gt;75 &lt;span class="caps"&gt;SPM&lt;/span&gt; space platform&lt;/a&gt;&amp;#8216;
by Brandon Lam was enough for a start. I did some edits to it later as some
inserters required adding conditions to keep the platform&amp;nbsp;operational.&lt;/p&gt;
&lt;p&gt;For inner planets transport I wanted something small. The
&amp;#8216;&lt;a href="https://www.factorio.school/view/-OZ67t6Gl8HF8cDK56Bf"&gt;Early Game Ship&lt;/a&gt;&amp;#8216; by
Ian Coleman was enough for most of the time. At some point, I enlarged storage
space a bit and built a second one. One was used for transporting science packs
and the other for&amp;nbsp;deliveries.&lt;/p&gt;
&lt;h3&gt;Vulkanus&lt;/h3&gt;
&lt;p&gt;Landed, built a small base and went&amp;nbsp;hunting.&lt;/p&gt;
&lt;p&gt;Small demolishers are easy to kill when you have 50 gun turrets and a few
thousand red ammo. Set a 5x10 block of turrets on your territory next to the
border, fill them with ammo, use some decoys to make the demolisher angry and
walk away. At some point, you get notification and a new territory. Repeat a few
times and there will be more than needed space for&amp;nbsp;expansion.&lt;/p&gt;
&lt;p&gt;Got tungsten ore, setup a bus, a set of my microfactories making things, 300+
megawatts of power from sulfuric acid and was ready to go to the next&amp;nbsp;planet.&lt;/p&gt;
&lt;p&gt;Lava is a beautiful resource &amp;#8212; infinite amounts of molten iron/copper make
things so much&amp;nbsp;easier.&lt;/p&gt;
&lt;h3&gt;Fulgora&lt;/h3&gt;
&lt;p&gt;The recycling planet. The usual process: land, walk around, find a large island,
put few hundred accumulators for power and start&amp;nbsp;building.&lt;/p&gt;
&lt;p&gt;Again I used my microfactories set and something like six thousand accumulators
for&amp;nbsp;power.&lt;/p&gt;
&lt;p&gt;Several recycler blocks to get basic components (like plates) and Fulgora is a
place where you can build so many&amp;nbsp;things&amp;#8230;&lt;/p&gt;
&lt;p&gt;Fulgora and Vulkanus were my main sources for several components for the other&amp;nbsp;planets.&lt;/p&gt;
&lt;h3&gt;Gleba&lt;/h3&gt;
&lt;p&gt;I am not a fan of Gleba. It is too biological for me. Spoilage everywhere,
nutrients&amp;nbsp;everywhere&amp;#8230;&lt;/p&gt;
&lt;p&gt;In the beginning, I planned to use my microfactories. But kick-starting it took a
bit too much time so I went back and used the
&lt;a href="https://factorioprints.com/view/-OHIIG6j6nkHquAEnPWg"&gt;Gleba starter factory&lt;/a&gt;
instead. One complex block, built by bots, delivers everything I needed. This
blueprint is expected to be replaced by the main base but it was enough for my&amp;nbsp;challenge.&lt;/p&gt;
&lt;h3&gt;Nauvis&amp;nbsp;again&lt;/h3&gt;
&lt;p&gt;While bots were building factory on Gleba I started redesigning base on Nauvis.
Drilling machines from Vulkanus instead of electric miners gave me much more
resources. And they stack items on belts once you research Gleba&amp;nbsp;technologies.&lt;/p&gt;
&lt;p&gt;Melting iron/copper ore solved another problem as liquids transfer faster than
belts. Furthermore foundries from Vulkanus allow to produce several things
without any intermediate steps (direct steel, pipes, wheels or copper&amp;nbsp;wire).&lt;/p&gt;
&lt;p&gt;Add &lt;span class="caps"&gt;EM&lt;/span&gt; plants from Fulgora and you get electronic chips (green, red, blue ones)
in much bigger amounts than before. For example: my cityblock was making two red
belts of electronic chips (that&amp;#8217;s 60/s). After the redesign, it was 280/s on two
green belts (required stack inserters to pass 75/s limit of one green&amp;nbsp;belt).&lt;/p&gt;
&lt;p&gt;Modules, &lt;span class="caps"&gt;LDS&lt;/span&gt;, and so on are also much faster. The old hub/mall &amp;#8220;making
everything&amp;#8221;, can get upgrades, such foundries making wheels and pipes directly
from molten iron instead of using iron&amp;nbsp;plates.&lt;/p&gt;
&lt;h3&gt;Long distance space&amp;nbsp;ship&lt;/h3&gt;
&lt;p&gt;At that stage I also finished building space ship for next stage. I used &amp;#8216;&lt;a href="https://factorioprints.com/view/-OYAqqPwZ736BzmjcKav"&gt;Easy
normal quality Edge ship&lt;/a&gt;&amp;#8216;
by Wobbleland as a base for&amp;nbsp;it.&lt;/p&gt;
&lt;p&gt;After some trial flights, I edited it to have a bit more cargo space. I cut ship
in half, added some extra storage, and it became my only long distance&amp;nbsp;ship.&lt;/p&gt;
&lt;h3&gt;Aquillo&lt;/h3&gt;
&lt;p&gt;The frozen hell. Planet where all you have is an ammoniacal ocean with some
small islands here and there. Things freeze if you do not heat them, bots
discharge five times quicker than usual&amp;nbsp;etc.&lt;/p&gt;
&lt;p&gt;This is a place where you need to be properly prepared. Mech armor is mandatory,
along with 4 portable fission reactors and &lt;span class="caps"&gt;MK2&lt;/span&gt; or &lt;span class="caps"&gt;MK3&lt;/span&gt; batteries with &lt;span class="caps"&gt;MK2&lt;/span&gt;
roboports. Anything below that, and your bots are useless and for most of the
time you run without any power in the&amp;nbsp;armour.&lt;/p&gt;
&lt;p&gt;Careful design is a must. I landed, tried to set up base and started adding what
I had forgotten to take with me into my notes. Restarted and landed again. And
again.&amp;nbsp;And&amp;#8230;&lt;/p&gt;
&lt;p&gt;Then I took some time and designed whole base with the main bus idea. To not
have to rely on bots for the most of the&amp;nbsp;base.&lt;/p&gt;
&lt;p&gt;First, I built some small starter to get water from ice (from ammoniacal
solution) so I could have power. And two nuclear reactors to provide heat among
heating towers powered by rocket fuel (which I took with me from&amp;nbsp;Fulgora).&lt;/p&gt;
&lt;p&gt;Then, I built the main bus piece by piece up to cryogenic science packs and the
space port. It took some time to squeeze everything close to each other. Then
cut it into pieces and restarted game from landing point. I have to admit &amp;#8212; it
looks nice at&amp;nbsp;night:&lt;/p&gt;
&lt;figure id="__yafg-figure-1"&gt;
&lt;img alt="Aquillo at night" src="/files/2025/10/aquillo-700x.jpg" title="Aquillo at night"&gt;
&lt;figcaption&gt;Aquillo at night&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Once production of science packs started I delivered them to Nauvis and started
researching the final&amp;nbsp;technologies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;quantum&amp;nbsp;computing&lt;/li&gt;
&lt;li&gt;fusion&amp;nbsp;power&lt;/li&gt;
&lt;li&gt;promethium&amp;nbsp;science&lt;/li&gt;
&lt;li&gt;railgun&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Brought all components required for quantum processors and built enough of them
to make two railguns for my space&amp;nbsp;ship.&lt;/p&gt;
&lt;h3&gt;Solar&amp;#8217;s&amp;nbsp;Edge&lt;/h3&gt;
&lt;p&gt;With about two hours left before the 40 hours limit my ship was ready to fly to
Solar&amp;#8217;s Edge (which is the requirement to finish the game). Loaded with yellow
magazines, yellow rockets and railgun ammo it went from Vulkanus to Aquillo,
mounted the missing railguns and went away, to Solar&amp;#8217;s&amp;nbsp;Edge.&lt;/p&gt;
&lt;p&gt;It was a one-way trip as all I needed was to get there, without having to go back.
The railgun ammo ended just before the end, there were fewer than a hundred
rockets left as&amp;nbsp;well.&lt;/p&gt;
&lt;p&gt;But it was enough to finish the game. Now I have 100% of achievements&amp;nbsp;again:&lt;/p&gt;
&lt;figure id="__yafg-figure-2"&gt;
&lt;img alt="100% of achievements done" src="/files/2025/10/100.png" title="100% of achievements done"&gt;
&lt;figcaption&gt;100% of achievements done&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;That &amp;#8220;finish under 40 hours&amp;#8221; game started three months ago and took over 4.6 &lt;span class="caps"&gt;GB&lt;/span&gt;
of storage for save&amp;nbsp;files.&lt;/p&gt;
&lt;h3&gt;What&amp;#8217;s&amp;nbsp;next?&lt;/h3&gt;
&lt;p&gt;I should put Factorio away for a year or so. Because for me, &lt;a href="/2025/03/04/factorio-is-a-drug/"&gt;Factorio is
a drug&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Otherwise, I will start adding mods and try to get this base expanded, redone &amp;#8220;in
a proper way&amp;#8221; and so&amp;nbsp;on.&lt;/p&gt;</content><category term="misc"/><category term="factorio"/><category term="games"/></entry></feed>