With the work that has been done in the debian-installer/netcfg merge-proposal !9 it is possible to install a standard Debian system, using the normal Debian-Installer (d-i) mini.iso images, that will come pre-installed with Netplan and all network configuration structured in /etc/netplan/.
In this write-up, I d like to run you through a list of commands for experiencing the Netplan enabled installation process first-hand. Let s start with preparing a working directory and installing the software dependencies for our virtualized Debian system:
Next we ll prepare a VM, by copying the EFI firmware files, preparing some persistent EFIVARs file, to boot from FS0:\EFI\debian\grubx64.efi, and create a virtual disk for our machine:
Finally, let s launch the debian-installer using a preseed.cfg file, that will automatically install Netplan (netplan-generator) for us in the target system. A minimal preseed file could look like this:
For this demo, we re installing the full netplan.io package (incl. the interactive Python CLI), as well as the netplan-generator package and systemd-resolved, to show the full Netplan experience. You can choose the preseed file from a set of different variants to test the different configurations:
We re using the linux kernel and initrd.gz here to be able to pass the preseed URL as a parameter to the kernel s cmdline directly. Launching this VM should bring up the official debian-installer in its netboot/gtk form:
Now you can click through the normal Debian-Installer process, using mostly default settings. Optionally, you could play around with the networking settings, to see how those get translated to /etc/netplan/ in the target system.
After you confirmed your partitioning changes, the base system gets installed. I suggest not to select any additional components, like desktop environments, to speed up the process.
During the final step of the installation (finish-install.d/55netcfg-copy-config) d-i will detect that Netplan was installed in the target system (due to the preseed file provided) and opt to write its network configuration to /etc/netplan/ instead of /etc/network/interfaces or /etc/NetworkManager/system-connections/.
Done! After the installation finished, you can reboot into your virgin Debian Sid/Trixie system.
To do that, quit the current Qemu process, by pressing Ctrl+C and make sure to copy over the EFIVARS.fd file that was modified by grub during the installation, so Qemu can find the new system. Then reboot into the new system, not using the mini.iso image any more:
Finally, you can play around with your Netplan enabled Debian system! As you will find, /etc/network/interfaces exists but is empty, it could still be used (optionally/additionally). Netplan was configured in /etc/netplan/ according to the settings given during the d-i installation process.
In our case, we also installed the Netplan CLI, so we can play around with some of its features, like netplan status:
Thank you for following along the Netplan enabled Debian installation process and happy hacking! If you want to learn more, find us at GitHub:netplan.
Recently, Ola started rolling out Ola Maps in their main mobile app, replacing Google Maps, while also offering maps as a service to other organizations. The interesting part for me was the usage of OpenStreetMap data as base map with Ola s proprietary data sources. I ll mostly about talk about map data part here.
Screenshot of Ola App. OpenStreetMap attribution is shown after clicking the Ola Map icon.
OpenStreetMap (OSM) for starters, is a community owned and edited map data resource which gives freedom to use map data for any purpose. This includes the condition that attribution is given back to OSM which in turn ideally would encourage other users to contribute, correct and edit, helping everyone in turn. Due to this, OSM is also regarded as Wikipedia of maps. OSM data is not just used by Ola. Many others use it for various purposes like Wikipedia Maps, Strava Maps, Snapchat Map, bus tracking in GoIbibo/Redbus.
OSM India community has been following Ola map endeavor to use and contribute to OSM since they went public. As required by OSM for organized mapping efforts, Ola created wiki entry with information regarding their editors, usage, policy and mentions following as their data usage case:
OSM data is used for the road network, traffic signs and signals, buildings, natural features, landuse polygons and some POIs.
Creating a map product is a task in itself, an engineering hurdle creating the tech stack for collection, validation, import and serving the map and the map data part. Ola has done a good job describing the development of tech stack in their blog post. Ola holds an enormous corpus of live and constantly updated GPS trace data. Their drivers, users, and delivery partners generate those, which they harness to validate, correct and add missing map data. Ola employees now regularly contribute new or missing roads (including adding dual carriageway to existing ones), fix road geometry, classification, road access type and restrictions pan India. They have been active and engaging in OSM India community channels, though community members have raised some concerns on their OSM edit practices.
Ola s venture into the map industry isn t something out of the ordinary. Grab, a South East Asian company which has business interests in food deliveries, ride hailing and a bunch of other services too switched to their in-house map based on OpenStreetMap, followed by launching of their map product. Grab too contributed back data like Ola. Both Ola and Grab heavily rely on map for their business operations and seem to chose to go independent for it, bootstrapping the products on OSM.
In India too, a bunch of organizations contribute to OSM like Swiggy, Stackbox, Amazon, Apple. Microsoft, Meta/Facebook and many others. Everyone wants a better map (data), so everyone works together.
Ola could have gone their own route, bootstrapping map data from scratch, which would have been a gargantuan task when you re competing against the likes of Google Maps and Bing Maps, which have been into this since many years. Deciding to use OSM and actively giving back to make data better for everyone deserves accolades. Now I m waiting to for their second blog post, which they mention would be on map data.
If you re an Ola map user through Ola Electric or Ola app, and find some road unmapped, you can always edit them in OSM. What I have heard from their employee, they import new OSM data weekly, which means your changes should start reflecting for you (and everyone else) by next week. If you re new, follow Beginners guide and join OSM India community community.osm.be/resources/asia/india/ for any doubts and participating in various mapping events.
PS You can see live OSM edits in India subcontinent here.
This week our family suffered another loss with my brother in-law. We will miss him dearly. On our way down to Phoenix to console our nephew that just lost his dad our car blew up. Last week we were in a roll over accident that totaled our truck and left me with a broken arm. We are now in great need of a new vehicle. Please consider donating to this fund: https://gofund.me/033eb25d . Kubuntu is out of money and I am between work packages with the project . We are 50 miles away from the closest town for supplies, essentials such as water requires a vehicle.
I have had bad years before ( covid ) in which I lost my beloved job at Blue Systems. I made a vow to myself to never let my personal life affect my work again. I have so far kept that promise to myself and without further ado I present to you my work.
Kubuntu:
Many SRUs awaiting verification stage including the massive apparmor policy bug.
sddm fix for the black screen on second boot has passed verification and should make .1 release.
See Debian for the qt6 Plasma / applications work.
Debian:
qtmpv in NEW
arianna in NEW
kamera uploading today
kcharselect Experimental
Tokodon Done, but needs qtmpv to pass NEW
Gwenview WIP needs kamera, kio-extras
kio-extras WIP
KDE Snaps:
Please note: for the most part the Qt6 snaps are in edge except the few in the project that are heavily tested. Please help test the edge snaps so I can promote them.
Elisa
Okular
Konsole ( please note this is a confined terminal for the project and not very useful except to ssh to the host system )
Kwrite
Gwenview
Kate ( classic )
Gcompris
Alligator
Ark
Blinken
Bomber
Bovo
Calindori
Digikam
Dragon
Falkon
Filelight
WIP Snaps or MR s made
KSpacedual
Ksquares
KSudoku
KTuberling
Kubrick
lskat
Palapeli
Kajongg
Kalzium
Kanagram
Kapman
Katomic
KBlackBox
KBlocks
KBounce
KBreakOut
KBruch
Please note that 95% of the snaps are free-time work. The project covers 5. I am going as fast as I can between Kubuntu/Debian and the project commitments. Not to mention I have only one arm! My GSOC student is also helping which you can read all about here: https://soumyadghosh.github.io/website/interns/gsoc-2024/gsoc-week-3-week-7/
There is still much work to do in Kubuntu to be Plasma 6 ready for Oracular and they are out of funds. I will still continue my work regardless, but please consider donating until we can procure a consistent flow of funding : https://kubuntu.org/donate/
Thank you for reading and have a blessed day!
DebConf24, the 25th edition of the Debian
conference is taking place in Pukyong National University at Busan, Republic of
Korea.
Thanks to the hard work of its organizers, it again will be an interesting and
fruitful event for attendees.
We would like to warmly welcome the sponsors of DebConf24, and introduce them to
you.
We have three Platinum sponsors.
Proxmox is the first Platinum sponsor.
Proxmox provides powerful and user-friendly Open Source server software.
Enterprises of all sizes and industries use Proxmox solutions to deploy
efficient and simplified IT infrastructures, minimize total cost
of ownership, and avoid vendor lock-in.
Proxmox also offers commercial support, training services, and an extensive
partner ecosystem to ensure business continuity for its customers.
Proxmox Server Solutions GmbH was established in 2005
and is headquartered in Vienna, Austria.
Proxmox builds its product offerings on top of the Debian operating system.
Our second Platinum sponsor is Infomaniak.
Infomaniak is an independent cloud service provider recognised throughout
Europe for its commitment to privacy, the local economy and the environment.
Recording growth of 18% in 2023, the company is developing a suite of online
collaborative tools and cloud hosting, streaming, marketing and events
solutions.
Infomaniak uses exclusively renewable energy, builds its own data centers and
develops its solutions in Switzerland, without relocating.
The company powers the website of the Belgian radio and TV
service (RTBF) and provides streaming for more than 3,000
TV and radio stations in Europe.
Wind River is our third Platinum sponsor.
For nearly 20 years, Wind River has led in commercial Open Source Linux
solutions for mission-critical enterprise edge computing.
With expertise across aerospace, automotive, industrial, telecom, and more,
the company is committed to Open Source through initiatives like eLxr, Yocto,
Zephyr, and StarlingX.
Our Gold sponsors are:
Ubuntu,
the Operating System delivered by Canonical.
Freexian,
a services company specialized in Free Software and in particular Debian
GNU/Linux, covering consulting, custom developments, support and training.
Freexian has a recognized Debian expertise thanks to the participation of
Debian developers.
Lenovo,
a global technology leader manufacturing a wide portfolio of connected
products including smartphones, tablets, PCs and workstations as well as
AR/VR devices, smart home/office and data center solutions.
Korea Tourism Organization,
which purpose is to advance tourism as a key driver for national economic
growth and enhancement of national welfare and intends to be a public
organization that makes the Korean people happier; it promotes national wealth
through tourism.
Busan IT Industry Promotion Agency,
an industry promotion organization that contributes to the innovation of the
digital economy with the power of IT and CT and
supports the ecosystem for innovative local startups and companies to grow.
Microsoft,
who enables digital transformation for the era of an intelligent cloud and an
intelligent edge.
Its mission is to empower every person and every organization on the planet to
achieve more.
doubleO,
a company that specializes in consulting and developing empirical services
using big data analysis and artificial intelligence.
doubleO provides a variety of data-centered services together with small and
medium-sized businesses in Busan/Gyeongnam.
Our Silver sponsors are:
Roche, a major international pharmaceutical
provider and research company dedicated to personalized healthcare.
Two Sigma, rigorous inquiry, technology
data science, and invention to bring science to finance and help solve the
toughest challenges across financial services.
Arm: leading technology provider of processor
IP, Arm powered solutions have been supporting innovation for
more than 30 years and are deployed in over 280 billion chips to date.
Google, one of the largest technology companies in
the world, providing a wide range of Internet-related services and products
such as online advertising technologies, search, cloud computing, software,
and hardware.
FSIJ, the Free Software Initiative
of Japan, a non-profit organization dedicated to supporting Free Software
growth and development.
Busan Tourism Organisation:
leading public corporation that generates social and economic values in Busan
tourism industry, developing tourism resources in accordance with government
policies and invigorate tourism industry.
Civil Infrastructure Platform,
a collaborative project hosted by the Linux Foundation,
establishing an open source base layer of industrial grade software.
Collabora, a global consultancy delivering
Open Source software solutions to the commercial world.
Matanel Foundation, which operates in Israel,
as its first concern is to preserve the cohesion of a society and a nation
plagued by divisions.
A special thanks to the
Pukyong National University, our Venue
Partner and our Network Partners KOREN
and KREONET!
Thanks to all our sponsors for their support!
Their contributions make it possible for a large number of Debian contributors
from all over the globe to work together, help and learn from each other in
DebConf24.
The twelveth release of the qlcal package
arrivied at CRAN today.
qlcal
delivers the calendaring parts of QuantLib. It is provided (for the R
package) as a set of included files, so the package is self-contained
and does not depend on an external QuantLib library (which can be
demanding to build). qlcal covers
over sixty country / market calendars and can compute holiday lists, its
complement (i.e. business day lists) and much more. Examples
are in the README at the repository, the package page,
and course at the CRAN package
page.
This releases synchronizes qlcal with
the QuantLib release 1.35 (made
today) and contains more updates to 2024 calendars.
Changes in version 0.0.12
(2024-07-22)
Synchronized with QuantLib 1.35 released today
Calendar updates for Chile, India, United States, Brazil
Courtesy of my CRANberries, there
is a diffstat report for this
release. See the project page
and package documentation for more details, and more examples. If you
like this or other open-source work I do, you can sponsor me at
GitHub.
Here comes the 3rd article of the 5-episode blog post series on Polis, written by Guido Berh rster, member of staff at my company Fre(i)e Software GmbH.Enjoy also this read on Guido's work on Polis,
Mike
Table of Contents of the Blog Post Series
Issues extending Polis and adjusting our goals (this article)
Creating (a) new frontend(s) for Polis
Current status and roadmap
Polis - Issues extending Polis and adjusting our Goals
After the initial implementation of limited branding support, user
feedback and the involvement of an UX designer lead to the conclusion that we
needed more far-reaching changes to the user interface in order to reduce
visual clutter, rearrange and improve UI elements, and provide better
integration with the websites in which conversations are embedded.
Challenges when visualizing Data in Polis
Polis visualizes groups using a spatial projection of users based on
similarities in voting behavior and places them in two to five groups
using a clustering algorithm.
During our testing and evaluation users were rarely able to interpret the
visualization and often intuitively made incorrect assumptions e.g. by
associating the filled area of a group with its significance or size. After
consultation with a member of the Multi-Agent Systems (MAS) Group at the
University of Groningen we chose to temporarily replace the visualization
offered by Polis with simple bar charts representing agreement or disagreement
with statements of a group or the majority. We intend to revisit this and
explore different forms of visualization at a later point in time.
The different factors playing into the weight attached to statements which
determine the pseuodo-random order in which they are presented for voting
( comment routing ) proved difficult to explain to stakeholders and users and
the admission of the ad-hoc and heuristic nature of the used algorithm1 by
Polis authors lead to the decision to temporarily remove this feature.
Instead, statements should be placed into three groups, namely
metadata questions,
seed statements,
and participant statements
Statements should then be sorted by group but in a fully randomized order
within the group so that metadata questions would be presented before seed
statements which would be presented before participant s statements. This
simpler method was deemed sufficient for the scale of our pilot projects,
however we intend to revisit this decision and explore different methods of
comment routing in cooperation with our scientific partners at a later point
in time.
An evaluation of the requirements for implementing mandatory authentication and
adding support for additional authentication methods to Polis showed that
significant changes to both the administration and participation frontend were
needed due to a lack of an abstraction layer or extension mechanism and the
current authentication providers being hardcoded in many parts of the code
base.
A New Frontend is born: Particiapp
Based on the implementation details of the participation frontend, the invasive
nature of the changes required, and the overhead of keeping up with active
upstream development it became clear that a different, more flexible approach
to development was needed. This ultimately lead to the creation of
Particiapp, a new Open Source project providing the building blocks and
necessary abstraction layers for rapid protoyping and experimentation with
different fontends which are compatible with but independent from Polis.
Small, Christopher T., Bjorkegren, Michael, Erkkil , Timo, Shaw, Lynette and Megill, Colin (2021). Polis: Scaling deliberation by mapping high dimensional opinion spaces. Recerca. Revista de Pensament i An lisi, 26(2), pp. 1-26.
Another thing to note is that include_directories adds both the source
directory and corresponding build directory to include path, so you don't
have to care.
It seems that I have to care after all.
Thankfully there is an implicit_include_directories setting
that can turn this off if needed.
Its documentation is not as easy to find as I'd like (kudos to Kangie on IRC),
and hopefully this blog post will make it easier for me to find it in the
future.
The Rcpp Core Team is once again pleased to announce a new release
(now at 1.0.13) of the Rcpp package.
It arrived on CRAN earlier
today, and has since been uploaded to Debian. Windows and macOS builds
should appear at CRAN in the next few days, as will builds in different
Linux distribution and of course r2u should catch up
tomorrow too. The release was uploaded last week, but not only does Rcpp always gets flagged because of the
grandfathered .Call(symbol) but CRAN also found two packages
regressing which then required them to take five days to get back to
us. One issue was known; another
did not reproduce under our tests against over 2800 reverse dependencies
leading to the eventual release today. Yay. Checks are good and
appreciated, and it does take time by humans to review them.
This release continues with the six-months January-July cycle started
with release
1.0.5 in July 2020. As a reminder, we do of course make interim
snapshot dev or rc releases available via the Rcpp drat repo as well as
the r-universe page and
repo and strongly encourage their use and testing I run my systems
with these versions which tend to work just as well, and are also fully
tested against all reverse-dependencies.
Rcpp has long established itself
as the most popular way of enhancing R with C or C++ code. Right now,
2867 packages on CRAN depend on
Rcpp for making analytical code go
faster and further, along with 256 in BioConductor. On CRAN, 13.6% of
all packages depend (directly) on Rcpp, and 59.9% of all compiled packages
do. From the cloud mirror of CRAN (which is but a subset of all CRAN
downloads), Rcpp has been downloaded
86.3 million times. The two published papers (also included in the
package as preprint vignettes) have, respectively, 1848 (JSS, 2011) and 324 (TAS, 2018)
citations, while the the book (Springer useR!,
2013) has another 641.
This release is incremental as usual, generally preserving existing
capabilities faithfully while smoothing our corners and / or extending
slightly, sometimes in response to changing and tightened demands from
CRAN or R standards. The move towards a
more standardized approach for the C API of R leads to a few changes;
Kevin did most of the PRs for this. Andrew Johnsom also provided a very
nice PR to update internals taking advantage of variadic templates.
The full list below details all changes, their respective PRs and, if
applicable, issue tickets. Big thanks from all of us to all
contributors!
Changes in
Rcpp release version 1.0.13 (2024-07-11)
Changes in Rcpp API:
Set R_NO_REMAP if not already defined (Dirk in #1296)
Add variadic templates to be used instead of generated code
(Andrew Johnson in #1303)
Count variables were switches to size_t to avoid
warnings about conversion-narrowing (Dirk in #1307)
Rcpp now avoids the usage of the (non-API) DATAPTR function when
accessing the contents of Rcpp Vector objects where possible. (Kevin in
#1310)
Rcpp now emits an R warning on out-of-bounds Vector accesses.
This may become an error in a future Rcpp release. (Kevin in #1310)
Switch VECTOR_PTR and STRING_PTR to new
API-compliant RO variants (Kevin in #1317 fixing #1316)
Changes in Rcpp Deployment:
Small updates to the CI test containers have been made (#1304)
The Initial Encounter:
I recently started to work with Nginx to explore the requirements on how to
configure a then so called server block. It s quite different than within
Apache. But there are a tons of good websites out there which do explain the
different steps and options quite well. I also realized quickly that I need to
be able to configure my Nginx setups in a way so the content is delivered
through https with some automatic redirection from http URLs.
Let s install Nginx
Installing Nginx
$ sudo apt update
$ sudo apt install nginx
Checking your Web Server
We can check now nginx service is active or inactive
Output
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2024-02-12 09:59:20 UTC; 3h ago
Docs: man:nginx(8)
Main PID: 2887 (nginx)
Tasks: 2 (limit: 1132)
Memory: 4.2M
CPU: 81ms
CGroup: /system.slice/nginx.service
2887 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
2890 nginx: worker process
Now we successfully installed nginx and it in running state.
How To Secure Nginx with Let s Encrypt on Debian 12
In this documentation, you will use Certbot to obtain a free SSL certificate
for Nginx on Debian 12 and set up your certificate.
Certbot is now ready to use, but in order for it to automatically configure
SSL for Nginx, we need to verify some of Nginx s configuration.
Step 2 Confirming Nginx s Configuration
Certbot needs to be able to find the correct server block in your Nginx
configuration for it to be able to automatically configure SSL. Specifically,
it does this by looking for a server_name directive that matches the domain you
request a certificate for. To check, open the configuration file for your
domain using nano or your favorite text editor.
Fillup above data your project wise and then save the file, quit your editor,
and verify the syntax of your configuration edits.
$ sudo nginx -t
Step 3 Obtaining an SSL Certificate
Certbot provides a variety of ways to obtain SSL certificates through
plugins. The Nginx plugin will take care of reconfiguring Nginx and reloading
the config whenever necessary. To use this plugin, type the following command
line.
$ sudo certbot --nginx -d example.com
The configuration will be updated, and Nginx will reload to pick up the new
settings. certbot will wrap up with a message telling you the process was
successful and where your certificates are stored.
Output
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2024-05-12. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Your certificates are downloaded, installed, and loaded. Next check the
syntax again of your configuration.
$ sudo nginx -t
If you get an error, reopen the server block file and check for any typos or
missing characters. Once your configuration file s syntax is correct, reload
Nginx to load the new configuration.
$ sudo systemctl reload nginx
Try reloading your website using https:// and notice your browser s security
indicator. It should indicate that the site is properly secured, usually with
a lock icon.
Lomiri Weather App goes Open Meteo
In Ubuntu Touch / Lomiri, Maciej Sopy o has updated Lomiri's Weather App to operate against a different weather forecast provider (Open Meteo). Additionally, the new implementation is generic and pluggable, so other weather data providers can be added-in later.
Big thanks to Maciej for working on this just in time (the previous implementation's API has recently been EOL'ed and is not available anymore to Ubuntu Touch / Lomiri users).
Lomiri Weather App - new Meteorological Terms part of the App now
While the old weather data provider implementation obtained all the meteorological information as already localized strings from the provider, the new implementation requires all sorts of weather conditions being translated within the Lomiri Weather App itself.
The meteorological terms are probably not easy to translate for the usual software translator, so special help might be required here.
Call for Translations: Lomiri Weather App
So, if you feel entitled to help here, please join the Hosted Weblate service [1] and start working on Lomiri Weather App.
Thanks a lot!
light+love
Mike Gabriel (aka sunweaver)
[1] https://hosted.weblate.org/
[2] https://hosted.weblate.org/projects/lomiri/lomiri-weather-app/
Twenty years ago, it was easy to dislike Microsoft. It was the quintessential evil MegaCorp that was quick to squash competition, often ruthlessly, but in some cases slowly through a more insidious process of embracing, extending, and exterminating anything that got in the way. This was the signature personality of Ballmer-era Microsoft that also inspired and united the software freedom fighting forces that came together to safeguard things that mattered to them and were at risk.I remember the era when the Novell, SCO, and Microsoft saga cast fear, uncertainty, and doubt on the future of open Unix and Linux and on what would happen to the operating systems that we loved if the suits of Redmond prevailed. Looking back, I&aposm glad that the arc of this story has bent towards justice, and I shudder at the possibilities had it worked out differently.Looking at today&aposs Microsoft, I&aposm amazed at how much change a leader with the right vision can make to the trajectory of a company that even makes an old-school software freedom advocate as me admire and even applaud the strides it has taken in the last 10 or so years that has dramatically shifted the perception of Microsoft. The personality of the Satya-era Microsoft is one to behold. While it will take more time to win back the trust, we see the tides changing and the positivity is important for the entire industry.For Microsoft, it was TypeScript and VS Code that helped change the narrative internally which led to its internal resurgence and acceptance of open source. Its acquisition of GitHub propelled it forward within the community overnight. Its contributions to the Linux kernel and other major software projects have also been consequential in changing its public perceptions.It takes a while to claw back trust and is very easy to breach. This time, however, Microsoft seems to understand this dynamic more than it did 20 years ago. All it took was the right leadership.
Review: The Splinter in the Sky, by Kemi Ashing-Giwa
Publisher:
Saga Press
Copyright:
July 2023
ISBN:
1-6680-0849-1
Format:
Kindle
Pages:
372
The Splinter in the Sky is a stand-alone science fiction political
thriller. It is Kemi Ashing-Giwa's first novel.
Enitan is from Koriko, a vegetation-heavy moon colonized by the Vaalbaran
empire. She lives in the Ijebu community with her sibling Xiang and has
an on-again, off-again relationship with Ajana, the Vaalbaran-appointed
governor. Xiang is studying to be an architect, which requires passing
stringent entrance exams to be allowed to attend an ancillary imperial
school intended for "primitives." Enitan works as a scribe and
translator, one of the few Korikese allowed to use the sacred Orin
language of Vaalbara. In her free time, she grows and processes tea.
When Xiang mysteriously disappears while she's at work, Enitan goes to
Ajana for help. Then Ajana dies, supposedly from suicide. The Vaalbaran
government demands a local hostage while the death is investigated,
someone who will be held as a diplomatic "guest" on the home world and
executed if there is any local unrest. This hostage is supposed to be the
child of the local headwoman, a concept that the Korikese do not have.
Seeing a chance to search for Xiang, Enitan volunteers, heading into the
heart of imperial power with nothing but desperate determination and a tea
set.
The empire doesn't stand a chance.
Admittedly, a lot of the reason why the empire doesn't stand a chance is
because the author is thoroughly on Enitan's side. Before she even
arrives on Gondwana, Vaalbara's home world, Enitan is recruited as a spy
by the other Gondwana power and Vaalbara's long-standing enemy. Her
arrival in the Splinter, the floating arcology that serves as the center
of Vaalbaran government, is followed by a startlingly meteoric rise in
access. Some of this is explained by being a cultural curiosity for bored
nobles, and some is explained by political factors Enitan is not yet aware
of, but one can see the author's thumb resting on the scales.
This was the sort of book that was great fun to read, but whose political
implausibility provoked "wait, that didn't make sense" thoughts
afterwards. I think one has to assume that the total population of
Vaalbara is much less than first comes to mind when considering an
interplanetary empire, which would help explain the odd lack of
bureaucracy. Enitan is also living in, effectively, the palace complex,
for reasonably well-explained political reasons, and that could grant her
a surprising amount of access. But there are other things that are harder
to explain away: the lack of surveillance, the relative lack of guards,
and the odd political structure that's required for the plot to work.
It's tricky to talk about this without spoilers, but the plot rests
heavily on a conspiratorial view of how government power is wielded that I
think strains plausibility. I'm not naive enough to think that the true
power structure of a society matches the formal power structure, but I
don't think they diverge as much as people think they do. It's one thing
to say that the true power brokers of society can be largely unknown to
the general population. In a repressive society with a weak media, that's
believable. It's quite another matter for the people inside the palace to
be in the dark about who is running what.
I thought that was the biggest problem with this book. Its greatest
feature is the characters, and particularly the character relationships.
Enitan is an excellent protagonist: fascinating, sympathetic, determined,
and daring in ways that make her success more believable. Early in the
book, she forms an uneasy partnership that becomes the heart of the book,
and I loved everything about that relationship. The politics of her
situation might be a bit too simple, but the emotions were extremely
well-done.
This is a book about colonialism. Specifically, it's a book about
cultural looting, appropriation, and racist superiority. The Vaalbarans
consider Enitan barely better than an animal, and in her home they're
merciless and repressive. Taken out of that context into their imperial
capital, they see her as a harmless curiosity and novelty. Enitan
exploits this in ways that are entirely believable. She is also driven to
incandescent fury in ways that are entirely believable, and which she only
rarely can allow herself to act on. Ashing-Giwa drives home the sheer
uselessness of even the more sympathetic Vaalbarans more forthrightly than
science fiction is usually willing to be. It's not a subtle point, but it
is an accurate one.
The first two thirds of this book had me thoroughly engrossed and unable
to put it down. The last third unfortunately turns into a Pok mon hunt of
antagonists, which I found less satisfying and somewhat less believable.
I wish there had been more need for Enitan to build political alliances
and go deeper into the social maneuverings of the first part of the book,
rather than gaining some deus ex machina allies who trivially
solve some otherwise-tricky plot problems. The setup is amazing; the
resolution felt a bit like escaping a maze by blasting through the walls,
which I don't think played to the strengths of the characters and
relationships that Ashing-Giwa had constructed. The advantage of that
approach is that we do get a satisfying resolution and a standalone novel.
The central relationship of the book is unfortunately too much of a
spoiler to talk about in a review, but I thought it was the best part of
the story. This is a political thriller on the surface, but I think it's
heart is an unexpected political alliance with a fascinatingly tricky
balance of power. I was delighted that Ashing-Giwa never allows the
tension in that relationship to collapse into one of the stock patterns it
so easily could have become.
The Splinter in the Sky reminded me a little of Arkady Martine's
A Memory Called Empire. It's not as
assured or as adroitly balanced as that book, and the characters are not
quite as memorable, but that's a very high bar. The political point is
even sharper, and it has some of the same appeal.
I had so much fun reading this book. You may need to suspend your
disbelief about some of the politics, and I wish the conclusion had been a
bit less brute-force, but this is great stuff. Recommended when you're in
the mood for a character story in the trappings of a political thriller.
Rating: 8 out of 10
rra-c-util is my collection of utility and test functions that I keep
synchronized between my packages. The big change in this release is that
I've switched to semantic versions, which I plan to do for all of my
packages, and I've started using
scriv to manage
a Markdown change log. We've been using scriv for a while at work, so I
have finally gotten on board the change log fragment train rather
than assuming linear commits.
This release also raises the minimum Perl version for all of the Perl
support code to 5.12 so that I can use semantic versions for all modules,
and updates the perltidy configuration with lots of improvements from
Julien LIE. There are also the normal variaty of bug fixes and more
minor improvements.
You can get the latest version from the rra-c-util distribution page.
Welcome to Boy.Net is a science fiction novel with cyberpunk vibes,
the first of a possible series.
Earth is a largely abandoned wasteland. Humanity has survived in the rest
of the solar system and spread from Earth's moon to the outer planets.
Mars is the power in the inner system, obsessed with all things Earth and
effectively run by the Earth Nations' Peacekeeping Force, the ENForcers.
An ENForcer soldier is raised in a creche from an early age, implanted
with cybernetic wetware and nanite enhancements, and extensively trained
to be an elite fighting unit. As befits a proper military, every ENForcer
is, of course, male.
The ENForcers thought Lucia Del Toro was a good, obedient soldier. They
also thought she was a man. They were wrong about those and many other
things. After her role in an atrocity that named her the Scourge of New
Shanghai, she went AWOL and stole her command ship. Now she and her
partner/girlfriend Hawk, a computer hacker from Luna, make a living with
bounty hunting jobs in the outer system. The ENForcers rarely cross the
asteroid belt; the United Miners see to that.
The appearance of an F-class ENForcer battle cruiser in Jupiter orbit is a
very unpleasant surprise. Lucia and Hawk hope it has nothing to do with
them. That hope is dashed when ENForcers turn up in the middle of their
next job: a bounty to retrieve an AI eye.
I first found Lyda Morehouse via her AngeLINK
cyberpunk series, the last of which was published in 2011. Since then,
she's been writing paranormal romance and urban fantasy as Tate Hallaway.
This return to science fiction is an adventure with trickster hackers,
throwback anime-based cowboy bars, tense confrontations with fascist
thugs, and unexpected mutual aid, but its core is a cyberpunk look at the
people who are unwilling or unable to follow the rules of social
conformity. Gender conformity, specifically.
Once you understand what this book is about, Welcome to Boy.Net is
a great title, but I'm not sure it serves its purpose as a marketing tool.
This is not the book that I would have expected from that title in
isolation, and I'm a bit worried that people who would like it might pass
it by.
Inside the story, Boy.Net is the slang term for the cybernetic network
that links all ENForcers. If this were the derogatory term used by people
outside the ENForcers, I could see it, but it's what the ENForcers
themselves call it. That left me with a few suspension of disbelief
problems, since the sort of macho assholes who are this obsessed with male
gender conformance usually consider "boys" to be derogatory and wouldn't
call their military cybernetic network something that sounds that
belittling, even as a joke. It would be named after some sort of
Orwellian reference to freedom, or something related to violence,
dominance, brutality, or some other "traditional male" virtue.
But although this term didn't work for me as world-building, it's a
beautiful touch thematically.
What Morehouse is doing here is the sort of concretized metaphor that
science fiction is so good at: an element of world-building that is both
an analogy for something the reader is familiar with and is also a
concrete piece of world background that follows believable rules and can
be manipulated by the characters. Boy.Net is trying to reconnect to Lucia
against her will. If it succeeds, it will treat the body modifications
she's made as damage and try to reverse all of them, attempting to convert
her back to the model of an ENForcer. But it is also a sharp metaphor for
how gender roles are enforced in our world: a child assigned male is
connected to a pervasive network of gender expectations and is programmed,
shaped, and monitored to match the social role of a boy. Even if they
reject those expectations, the gender role keeps trying to reconnect and
convert them back.
I really enjoyed Morehouse's handling of the gender dynamics. It's an
important part of the plot, but it's not the only thing going on or the
only thing the characters think about. Lucia is occasionally caught by
surprise by well-described gender euphoria, but mostly gender is something
other people keep trying to impose on her because they're obsessed with
forcing social conformity.
The rest of the book is a fun romp with a few memorable characters and a
couple of great moments with unexpected allies. Hawk and Lucia have an
imperfect but low drama relationship that features a great combination of
insight and the occasional misunderstanding. It's the kind of believable
human relationship that I don't see very much in science fiction, written
with the comfortable assurance of an author with over a dozen books under
her belt. Some of the supporting characters are also excellent, including
a non-binary deaf hacker that I wish had been a bit more central to the
story.
This is not the greatest science fiction novel I've read, but it was
entertaining throughout and kept me turning the pages. Recommended if you
want some solar-system cyberpunk in your life.
Welcome to Boy.Net reaches a conclusion of sorts, but there's an
obvious hook for a sequel and a lot of room left for more stories. I hope
enough people buy this book so that I can read it.
Rating: 7 out of 10
Here comes the 2nd article of the 5-episode blog post series written by Guido Berh rster, member of staff at my company Fre(i)e Software GmbH.Enjoy also this read on Guido's work on Polis,
Mike
Table of Contents of the Blog Post Series
Polis - Initial evaluation and adaptation
The Polis code base consists of a number of components, the administration
and participation interfaces, a common web backend, and a statistics processing
server. Both frontends and the backend are written in a mixture of JavaScript
and TypeScript, only the statistics processing server is written in Clojure.
In case of self hosting the preferred method of deployment is via Docker
containers using Docker Compose or any other orchestrator. The participation
frontend for conversations can either be used as a standalone web page or be
embedded via an iframe.
For our planned use case we initially defined the following goals:
custom branding and the integration into different content management systems
(CMS)
better support for mobile devices
mandatory authentication and support for a broader range of authentication
methods, including self-hosted solutions and DigiD
support for alternative email sending services
GDPR compliance
After a preliminary evaluation of our own and consulting with Policy Lab
UK who were also evaluating and testing Polis and had already made a
range of improvements related to self-hosting as well as bug fixes and
modernization changes we decided to take their work as a base for our
adaptations with the intent of submitting generally useful changes back to the
Polis project.
Subsequently, a number of changes were implemented, including the removal of
hardcoded domain names, the elimination of unnecessary cookies and third-party
requests, support for an alternative email sending service, and the option of
disabling Facebook and X integration.
For the branding our approach was to add an option allowing websites which are
embedding conversations in an iframe to load an alternative stylesheet for
overriding the native Polis branding. For this to be practical we intended to
use CSS custom properties for defining branding-related styles such as colors
and fonts. That approach turned out to be problematic because although the
Polis participation frontend stylesheet is generated via SCSS and some of the
colors are parameterized, however, they are not used consistently throughout the SCSS
stylesheets, unfortunately. In addition the frontend templates contain a large amount of
hardcoded style attributes. While we succeeded in implementing
user-defined stylesheets, it took a disproportionate amount of development
resources to parameterize all used colors and fonts via CSS custom properties
aggravated by the fact that the SCSS and template files are huge and contain
many unused rules and code.
When I started working on the language server for debputy,
one of several reasons was about automatic applying a formatting
style. Such that you would not have to remember to manually
reformat the file.
One of the problems with supporting automatic formatting is that
no one agrees on the "one true style". To make this concrete,
Johannes Schauer Marin Rodrigues did the numbers of which
wrap-and-sort option that are most common in
https://bugs.debian.org/895570#46. Unsurprising, we end up
with 14-15 different styles with various degrees of popularity.
To make matters worse, wrap-and-sort does not provide a way
to declare "this package uses options -sat".
So that begged the question, how would debputy know which
style it should use when it was going to reformat file. After
a couple of false-starts, Christian Hofstaedtler mentioned that we
could just have a field in debian/control for supporting
a "per-package" setting in responds to my concern about adding
a new "per-package" config file.
At first, I was not happy with it, because how would you specify
all of these options in a field (in a decent manner)? But
then I realized that one I do not want all these styles and that
I could start simpler. The Python code formatter black is
quite successful despite not having a lot of personalized
style options. In fact, black makes a statement out of
not allowing a lot of different styles.
Combing that, the result was X-Style: black (to be added
to the Source stanza of debian/control), which every
possible reference to the black tool for how styling
would work. Namely, you outsource the style management to
the tool (debputy) and then start using your focus on
something else than discussing styles.
As with black, this packaging formatting style is going
to be opinionated and it will evolve over time. At the starting
point, it is similar to wrap-and-sort-sat for the deb822
files (debputy does not reformat other files at the moment).
But as mentioned, it will likely evolve and possible diverge
from wrap-and-sort over time.
The choice of the starting point was based on the numbers posted
by Johannes #895570. It was not my personal favorite but it seemed
to have a majority and is also close to the one suggested by salsa
pipeline maintainers. The delta being -kb which I had
originally but removed in 0.1.34 at request of Otto Kek l inen
after reviewing the numbers from Johannes one more time.
To facilitate this new change, I uploaded debputy/0.1.30
(a while back) to Debian unstable with the following changes:
Support for the X-Style: black header.
When a style is defined, the debputy lsp server command
will now automatically reformat deb822 files on save (if
the editor supports it) or on explicit "reformat file" request
from the editor (usually indirectly from the user).
New subcommand debputy reformat command that will reformat
the files, when a style is defined.
A new pre-commit hook repo to run debputy lint and
debputy reformat. These hooks are available from
https://salsa.debian.org/debian/debputy-pre-commit-hooks
version v0.1 and can be used with the pre-commit
tool (from the package of same name).
The obvious omission is a salsa-pipeline feature for this. Otto
has put that on to his personal todo list and I am looking forward
to that.
Beyond black
Another thing I dislike about our existing style tooling is that if you
run wrap-and-sort without any arguments, you have a higher probability
of "trashing" the style of the current package than getting the desired
result. Part of this is because wrap-and-sort's defaults are out
of sync with the usage (which is basically what
https://bugs.debian.org/895570 is about).
But I see another problem. The wrap-and-sort tool explicitly defined
options to tweak the style but provided maintainers no way to record their
preference in any machine readable way. The net result is that we have
tons of diverging styles and that you (as a user of wrap-and-sort)
have to manually tell wrap-and-sort which style you want every time you
run the tool.
In my opinion that is not playing to the strengths of neither human nor
machine. Rather, it is playing to the weaknesses of the human if anything
at all.
But the salsa-CI pipeline people also ran into this issue and decided to
work around this deficiency. To use wrap-and-sort in the salsa-CI
pipeline, you have to set a variable to activate the job and another
variable with the actual options you want.
The salsa-CI pipeline is quite machine readable and wrap-and-sort
is widely used. I had debputy reformat also check for the salsa-CI
variables as a fallback. This fallback also works for the editor mode
(debputy lsp server), so you might not even have
to run debputy reformat. :)
This was a deliberate trade-off. While I do not want all us to have all
these options, I also want Debian packaging to be less painful and have
fewer paper cuts. Having debputy go extra lengths to meet
wrap-and-sort users where they are came out as the better solution
for me.
A nice side-effect of this trade-off is that debputy reformat now
a good tool for drive-by contributors. You can safely run
debputy reformat on any package and either it will apply the styling
or it will back out and inform you that no obvious style was detected.
In the latter case, you would have to fallback to manually deducing
the style and applying it.
Differences to wrap-and-sort
The debputy reformat has some limitations or known differences
to wrap-and-sort. Notably, debputy reformat (nor
debputy lsp server) will not invoke wrap-and-sort. Instead,
debputy has its own reformatting engine that provides similar
features.
One reason for not running wrap-and-sort is that I
want debputy reformat to match the style that
debputy lsp server will give you. That way, you get
consistent style across all debputy commands.
Another reason is that it is important to me that reformatting is
safe and does not change semantics. This leads to two regrettable
known differences to the wrap-and-sort behavior due to safety
in addition to one scope limitation in debputy:
debputy will ignore requests to sort the stanzas
when the "keep first" option is disabled (-b--no-keep-first).
This combination is unsafe reformatting. I feel it was a mistake for
wrap-and-sort to ever allow this but at least it is no longer
the default (-b is now -bk by default). This will be less
of a problem in debhelper-compat 15, since the concept of
"main package" will disappear and all multi-binary source packages
will be required to use debian/package.install rather than
debian/install.
debputy will not reorder the contents of debhelper
packaging files such as debian/install. This is also an
(theoretical) unsafe thing to do. While the average package
will not experience issues with this, there are rare corner
cases where the re-ordering can affect the end result. I
happen to know this, because I ran into issues when trying
to optimize dh_install in a way that assumed the order
did not matter. Stuff broke and there is now special-case
code in dh_install to back out of that optimization
when that happens.
debputy has a limited list of wrap-and-sort options
it understands. Some options may cause debputy to back
out and disable reformatting entirely with a remark that
it cannot apply that style. If you run into a case of this,
feel free to file a feature request to support it. I will
not promise to support everything, but if it is safe and
trivially doable with the engine already, then I probably
will.
As stated, where debputy cannot implement the
wrap-and-sort styles fully, then it will currently implement
a subset that is safe if that can be identified or back out
entirely of the formatting when it cannot. In all cases,
debputy will not break the formatting if it is correct.
It may just fail at correcting one aspect of the
wrap-and-sort style if you happen to get it wrong.
It is also important to remember that the prerequisite for
debputy applying any wrap-and-sort style is that
you have set the salsa-CI pipeline variables to trigger
wrap-and-sort with the salsa-CI pipeline. So there is
still a CI check before the merge that will run the
wrap-and-sort in its full glory that provides the final
safety net for you.
Just give me a style
In conclusion, if you, like me, are more interested in getting a consistent
style rather than discussing what that style should be, now you can get that
with X-Style: black. You can also have your custom wrap-and-sort
style be picked up automatically for drive-by contributors.
$ aptsatisfy'dh-debputy (>= 0.1.30), python3-lsprotocol'# AddX-Style:blacktodebian/controlfor"just give me a style"## OR,ifthereisaspecificwrap-and-sortstyleforyouthenset# SALSA_CI_DISABLE_WRAP_AND_SORT=noplussetrelevantoptionsin# SALSA_CI_WRAP_AND_SORT_ARGSindebian/salsa-ci.yml(or.gitlab-ci.yml)$ debputyreformat
It is sadly not yet in the salsa-ci pipeline. Otto is looking into that and
hopefully we will have it soon. :)
And if you find yourself often doing archive-wide contributions and is tired
of having to reverse engineer package formatting styles, consider using
debputy reformat or debputy lsp server. If you use debputy in
this way, please consider providing feedback on what would help you.
A short status update of what happened on my side last month. Was able
to test our Cellbroadcast bits, feedbackd became more flexible
regarding LEDs, Phosh 0.40 is out, and some more.
Phosh
As regular readers would know, since I never stop banging on about it, I run Pwnedkeys, a service which finds and collates private keys which have been disclosed or are otherwise compromised.
Until now, the only way to check if a key is compromised has been to use the Pwnedkeys API, which is not necessarily trivial for everyone.
Starting today, that s changing.
The next phase of Pwnedkeys is to start offering more user-friendly tools for checking whether keys being used are compromised.
These will typically be web-based or command-line tools intended to answer the question is the key in this (certificate, CSR, authorized_keys file, TLS connection, email, etc) known to Pwnedkeys to have been compromised? .
Opening the Toolbox
Available right now are the first web-based key checking tools in this arsenal.
These tools allow you to:
Check the key in a PEM-format X509 data structure (such as a CSR or certificate);
Check the keys in an authorized_keys file you upload; and
Check the SSH keys used by a user at any one of a number of widely-used code-hosting sites.
Further planned tools include live checking of the certificates presented in TLS connections (for HTTPS, etc), SSH host keys, command-line utilities for checking local authorized_keys files, and many other goodies.
If You Are Intrigued By My Ideas
and wish to subscribe to my newsletter, now you can!
I m not going to be blogging every little update to Pwnedkeys, because that would probably get a bit tedious for readers who aren t as intrigued by compromised keys as I am.
Instead, I ll be posting every little update in the Pwnedkeys newsletter.
So, if you want to keep up-to-date with the latest and greatest news and information, subscribe to the newsletter.
Supporting Pwnedkeys
All this work I m doing on my own time, and I m paying for the infrastructure from my own pocket.
If you ve got a few dollars to spare, I d really appreciate it if you bought me a refreshing beverage.
It helps keep the lights on here at Pwnedkeys Global HQ.
The x13binary team
is thrilled to share the availability of Release 1.1.61 of the x13binary
package providing the X-13ARIMA-SEATS program
by the US Census Bureau which arrived on CRAN earlier today.
This release brings two updates suggested by the tireless CRAN maintainers. Kurt Hornik
suggested to now also ignore stderr when calling the x13
binary via system: it appears that builds under the new-ish
and clang-based flang-new now emit on stderr
even if Fortran-based binaries did not before. So we adjust. And Brian
Ripley pointed out that our Makefile for creating the x13
binary was not quite as is should be, which we adjusted. And I just
realized I should have named this 1.1.60-2 to follow the upstream
convention but didn t. Next time.
Courtesy of my CRANberries, there
is also a diffstat report for this release showing
changes to the previous release.
If you like this or other open-source work I do, you can sponsor me at
GitHub.
IPv4 is an expensive resource. However, many content providers are still
IPv4-only. The most common reason is that IPv4 is here to stay and IPv6 is an
additional complexity.1 This mindset may seem selfish, but there are
compelling reasons for a content provider to enable IPv6, even when they have
enough IPv4 addresses available for their needs.
Disclaimer
It s been a while since this article has been in my drafts. I
started it when I was working at Shadow, a content
provider, while I now work for Free, an internet service
provider.
Why ISPs need IPv6?
Providing a public IPv4 address to each customer is quite costly when each IP
address costs US$40 on the market. For fixed access, some consumer ISPs are
still providing one IPv4 address per customer.2 Other ISPs provide, by
default, an IPv4 address shared among several customers. For mobile access, most
ISPs distribute a shared IPv4 address.
There are several methods to share an IPv4 address:3
NAT44
The customer device is given a private IPv4 address, which is translated to a public
one by a service provider device. This device needs to maintain a state for each
translation.
464XLAT and DS-Lite
The customer device translates the private IPv4 address to an IPv6 address or
encapsulates IPv4 traffic in IPv6 packets. The provider device then translates
the IPv6 address to a public IPv4 address. It still needs to maintain a state
for the NAT64 translation.
Lightweight IPv4 over IPv6, MAP-E, and MAP-T
The customer device encapsulates IPv4 in IPv6 packets or performs a stateless
NAT46 translation. The provider device uses a binding table or an algorithmic
rule to map IPv6 tunnels to IPv4 addresses and ports. It does not need to
maintain a state.
Solutions to share an IPv4 address across several customers. Some of them require the ISP to keep state, some don't.
All these solutions require a translation device in the ISP s network. This
device represents a non-negligible cost in terms of money and reliability. As
half of the top 1000 websites support IPv6 and the biggest players can
deliver most of their traffic using IPv6,4 ISPs have a clear path to
reduce the cost of translation devices: provide IPv6 by default to their
customers.
Why content providers need IPv6?
Content providers should expose their services over IPv6 primarily to avoid going
through the ISP s translation devices. This doesn t help users who
don t have IPv6 or users with a non-shared IPv4 address, but it provides a
better service for all the others.
Why would the service be better delivered over IPv6 than over IPv4 when a
translation device is in the path? There are two main reasons for that:5
Translation devices introduce additional latency due to their geographical
placement inside the network: it is easier and cheaper to only install these
devices at a few points in the network instead of putting them close to the
users.
Translation devices are an additional point of failure in the path between
the user and the content. They can become overloaded or malfunction.
Moreover, as they are not used for the five most visited websites, which
serve their traffic over IPv6, the ISPs may not be incentivized to ensure
they perform as well as the native IPv6 path.
Looking at Google statistics, half of the users reach Google over IPv6.
Moreover, their latency is lower.6 In the US, all the nationwide mobile
providers have IPv6 enabled.
For France, we can refer to the annual ARCEP report: in 2022, 72% of fixed
users and 60% of mobile users had IPv6 enabled, with projections of 94% and 88%
for 2025. Starting from this projection, since all mobile users go through a
network translation device, content providers can deliver a better service for
88% of them by exposing their services over IPv6. If we exclude Orange, which
has 40% of the market share on consumer fixed access, enabling IPv6 should
positively impact more than 55% of fixed access users.
In conclusion, content providers aiming for the best user experience should
expose their services over IPv6. By avoiding translation devices, they can
ensure fast and reliable content delivery. This is crucial for latency-sensitive
applications, like live streaming, but also for websites in competitive markets,
where even slight delays can lead to user disengagement.
A way to limit this complexity is to build IPv6 services and only
provide IPv4 through reverse proxies at the edge.
In France, this includes non-profit ISPs, like FDN and
Milkywan. Additionally, Orange, the previously state-owned telecom
provider, supplies non-shared IPv4 addresses. Free also provides a dedicated
IPv4 address for customers connected to the point-to-point FTTH access.
I use the term NAT instead of the more correct term NAPT. Feel free to
do a mental substitution. If you are curious, check RFC 2663. For a
survey of the IPv6 transition technologies enumerated here, have a look at
RFC 9313.
For AS 12322, Google, Netflix, and Meta are delivering 85% of
their traffic over IPv6. Also, more than half of our traffic is delivered
over IPv6.
An additional reason is for fighting abuse: blacklisting an IPv4
address may impact unrelated users who share the same IPv4 as the culprits.
IPv6 may not be the sole reason the latency is lower: users with IPv6
generally have a better connection.