1 <?xml version=
"1.0" encoding=
"utf-8"?>
2 <rss version='
2.0' xmlns:lj='http://www.livejournal.org/rss/lj/
1.0/' xmlns:
atom=
"http://www.w3.org/2005/Atom">
4 <title>Petter Reinholdtsen
</title>
5 <description></description>
6 <link>https://people.skolelinux.org/pere/blog/
</link>
7 <atom:link href=
"https://people.skolelinux.org/pere/blog/index.rss" rel=
"self" type=
"application/rss+xml" />
10 <title>Welcome out of prison, Mickey, hope you find some freedom!
</title>
11 <link>https://people.skolelinux.org/pere/blog/Welcome_out_of_prison__Mickey__hope_you_find_some_freedom_.html
</link>
12 <guid isPermaLink=
"true">https://people.skolelinux.org/pere/blog/Welcome_out_of_prison__Mickey__hope_you_find_some_freedom_.html
</guid>
13 <pubDate>Wed,
1 Jan
2025 20:
45:
00 +
0100</pubDate>
14 <description><p align=
"center
"><img src=
"https://people.skolelinux.org/pere/blog/images/
2024-
01-
01-mikke-verk-i-det-fri.jpeg
"/
></p
>
16 <p
>Today, the animation figure Mickey Mouse finally was released from
17 the corporate copyright prison, as the
1928 movie
18 <a href=
"https://en.wikipedia.org/wiki/Steamboat_Willie
">Steamboat
19 Willie
</a
> entered the public domain in USA. This movie was the first
20 public appearance of Mickey Mouse. Sadly the figure is still on
21 probation, thanks to trademark laws and a the Disney corporations
22 powerful pack of lawyers, as described in the
2017 article
23 in
<a href=
"https://priceonomics.com/how-mickey-mouse-evades-the-public-domain/
">"How
24 Mickey Mouse Evades the Public Domain
"</a
> from Priceonomics. On the
25 positive side, the primary driver for repeated extentions of the
26 duration of copyright has been Disney thanks to Mickey Mouse and the
27 2028 movie, and as it now in the public domain I hope it will cause
28 less urge to extend the already unreasonable long copyright
31 <p
>The first book I published, the
2004 book
<a
32 href=
"https://free-culture.cc/
">"Free Culture
" by Lawrence Lessig
</a
>,
34 <a href=
"https://people.skolelinux.org/pere/publisher/#frikultur
">English,
35 French and Norwegian Bokmål
</a
>, touch on the story of Disney pushed
36 for extending the copyright duration in USA. It is a great book
37 explaining problems with the current copyright regime and why we need
38 Creative Commons movement, and I strongly recommend everyone to read
41 <p
>This movie (with
42 <a href=
"https://www.imdb.com/title/tt0019422/
">IMDB ID tt0019422
</a
>)
43 is now available from the Internet Archive. Two copies have been
44 uploaded so far, one uploaded
45 <a href=
"https://archive.org/details/SteamboatWillie
">2015-
11-
04</a
>
46 (
<a href=
"https://archive.org/download/SteamboatWillie/SteamboatWillie_archive.torrent
">torrent
</a
>)
48 <a href=
"https://archive.org/details/steamboat-willie-mickey
">2023-
01-
01</a
>
49 (
<a href=
"https://archive.org/download/steamboat-willie-mickey/steamboat-willie-mickey_archive.torrent
">torrent
</a
>) - see
50 <a href=
"https://people.skolelinux.org/pere/blog/VLC_bittorrent_plugin_still_going_strong__new_upload_2_14_4.html
">VLC
51 bittorrent plugin
</a
> for streaming the video using the torrent link.
52 I am very happy to see
53 <a href=
"https://people.skolelinux.org/pere/blog/Legal_to_share_more_than_16_000_movies_listed_on_IMDB_.html
">the
54 number of public domain movies
</a
> increasing. I look forward to
55 when those are the majority. Perhaps it will reduce the urge of the
56 copyright industry to control its customers.
</p
>
59 <a href=
"https://publicdomainreview.org/features/entering-the-public-domain/
2024/
">comprehensive
60 list of works entering the public domain in
2024</a
> is available from
61 the Public Domain Review.
</p
>
63 <p
>As usual, if you use Bitcoin and want to show your support of my
64 activities, please send Bitcoin donations to my address
65 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
70 <title>VLC bittorrent plugin still going strong, new upload
2.14-
4</title>
71 <link>https://people.skolelinux.org/pere/blog/VLC_bittorrent_plugin_still_going_strong__new_upload_2_14_4.html
</link>
72 <guid isPermaLink=
"true">https://people.skolelinux.org/pere/blog/VLC_bittorrent_plugin_still_going_strong__new_upload_2_14_4.html
</guid>
73 <pubDate>Sun,
31 Dec
2023 10:
45:
00 +
0100</pubDate>
74 <description><p
>The other day I uploaded a new version of
75 <a href=
"https://tracker.debian.org/pkg/vlc-plugin-bittorrent
">the VLC
76 bittorrent plugin
</a
> to Debian, version
2.14-
4, to fix a few
77 packaging issues. This plugin extend VLC allowing it to stream videos
78 directly from a bittorrent source using both torrent files and magnet
79 links, as easy as using a HTTP or local file source. I believe such
80 protocol support is a vital feature in VLC, allowing efficient
81 streaming from sources such at the
11 million movies in
82 <a href=
"https://archive.org/
">the Internet Archive
</a
>. Bittorrent is
83 one of the most efficient content distribution protocols on the
84 Internet, without centralised control, and should be used more.
</p
>
86 <p
>The new version is now both in Debian Unstable and Testing, as well
87 as Ubuntu. While looking after the package, I decided to ask the VLC
88 upstream community if there was any hope to get Bittorrent support
89 into the official VLC program, and was very happy to learn that
90 someone is already working on it. I hope we can see some fruits of
91 that labour next year, but do not hold my breath. In the mean time we
92 can use the plugin, which is already
93 <a href=
"https://qa.debian.org/popcon.php?package=vlc-plugin-bittorrent
">installed
94 by
0.23 percent of the Debian population
</a
> according to
95 popularity-contest. It could use a new upstream release, and I hope
96 the upstream developer soon find time to polish it even more.
</p
>
98 <p
>It is worth noting that the plugin store the downloaded files in
99 <tt
>~/Downloads/vlc-bittorrent/
</tt
>, which can quickly fill up the
100 user home directory during use. Users of the plugin should keep an
101 eye with disk usage when streaming a bittorrent source.
</p
>
103 <p
>As usual, if you use Bitcoin and want to show your support of my
104 activities, please send Bitcoin donations to my address
105 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
110 <title>«Når «på» blir «pÃ¥»: Et reservoar av tegn sett fra depotet» i tidsskriftet Aksess
</title>
111 <link>https://people.skolelinux.org/pere/blog/_N_r__p___blir__p_____Et_reservoar_av_tegn_sett_fra_depotet__i_tidsskriftet_Aksess.html
</link>
112 <guid isPermaLink=
"true">https://people.skolelinux.org/pere/blog/_N_r__p___blir__p_____Et_reservoar_av_tegn_sett_fra_depotet__i_tidsskriftet_Aksess.html
</guid>
113 <pubDate>Wed,
15 Nov
2023 09:
20:
00 +
0100</pubDate>
114 <description><p
>For noen uker siden skrev en kamerat og meg
115 <a href=
"https://www.aksess-tidsskrift.no/fordypning/
175530">en
116 artikkel om tegnsett
</a
> i
117 <a href=
"https://www.aksess-tidsskrift.no/
">arkivtidsskriftet
118 Aksess
</a
> både på web og i papirutgave nr.
3 2023. Her er det som
119 nettopp ble publisert.
</p
>
123 <p
><strong
>Når «på» blir «pÃ¥»: Et reservoar av tegn sett fra
124 depotet
</strong
></p
>
126 <p
>av Thomas Sødring og Petter Reinholdtsen
</p
>
128 <p
>De færreste av oss tenker over hva som skjer dypere i datamaskinen
129 mens vi sitter der og skriver noe på tastaturet. Når du trykker på
130 tasten «Å», så vises bokstaven Å. Men noen ganger blir det
131 feil. Hvorfor det – og hva er viktig å være klar over i
132 arkivsammenheng?
</p
>
134 <p
>Dersom bokstaver tolkes forskjellig mellom systemer, blir det fort
135 rot, dette kalles mojibake blant kjennere, etter det japanske
136 uttrykket for tegnomforming. Det er en lang historie her som tidvis
137 har vært preget av rot. Noen husker kanskje tilbake til en tid der
138 bokstavene æ, ø og å ofte var ødelagt i e-poster – et klassisk
139 eksempel på tegnsettproblemstilling.
</p
>
141 <p id=
"tegnsett_access_nå_og_før
"><strong
>«Nå» og «før»
</strong
></p
>
143 <p
>Tid er et skjult problem for depot fordi vi danner dokumentasjon i
144 en kontekst som er preget av å være «nå». Vår forståelse av verden og
145 bruken av teknologi er utgangspunktet for denne konteksten. Tenk selv
146 hvordan verden har utviklet seg de siste
20 årene, hva samfunnet er
147 opptatt av, og hvordan vi bruker teknologi i hverdagen. Tid er et
148 skjult problem fordi når vi trekker dokumentasjon ut av systemer og
149 deponerer for langtidsbevaring, er konteksten til materialet «nå», men
150 verden går videre. Ettersom teknologien og måten vi bruker den på,
151 utvikler seg, blir «nå» til «før», og dokumentasjonen befinner seg
152 snart i en «før»-kontekst.
</p
>
154 <p
>Dette med «før» og «nå» i forhold til dokumentasjonens kontekst er
155 noe vi er veldig lite bevisste på, men det er en problemstilling
156 depotarkivene eier og forvalter. En av disse utfordringene er hvorfor
157 «Ø» ikke nødvendigvis er det samme som «Ø», og hvorfor det i det hele
158 tatt gir mening å si noe sånt. Vi snakker her om noe som heter
159 tegnsett, som er en avtalt måte å representere bokstaver, tall og
160 andre symboler på slik at vi på en feilfri måte kan utveksle tekst
161 mellom datasystemer.
</p
>
163 <p
>Tegnsettproblemstillingen er satt sammen av fire fasetter;
164 repertoar, representasjon, koding og uttegning.
</p
>
166 <p id=
"tegnsett_access_repertoarer
"><strong
>Repertoarer
</strong
></p
>
168 <p
>Repertoar er en samling med tegn og symboler som kan
169 representeres. Tenk norsk alfabet eller japanske piktogrammer, men
170 også matematiske og elektroniske symboler. Bokstaven «stor a» kan være
171 en oppføring i et slikt repertoar. For å kunne brukes i en datamaskin
172 trenger hver oppføring i et slikt repertoar en representasjon, hvilket
173 i datamaskinsammenheng betyr at det tilordnes et tall. Tallet kan
174 lagres på ulike vis i en eller flere kodingsformater. For eksempel kan
175 en skrive tallet ti som både
10, X og A, i henholdsvis
176 titallssystemet, romertallssystemet og sekstentallssystemet.
</p
>
178 <p
>Hvis en skal kunne lese inn filer og vite hvilket tall og hvilken
179 representasjon og instans i et repertoar det er snakk om, så må en
180 vite hvordan tallet er kodet. Sist, men ikke minst, for å kunne bruke
181 symbolet til noe må det kunne være kjent hvordan det skal se ut eller
182 tegnes på ark. Det finnes utallige skrifttyper med norske bokstaver,
183 alle litt forskjellige, og skal en kunne tegne en stor A på skjermen,
184 så må datamaskinen vite hva den skal tegne. Skrifttyper inneholder
185 informasjon om hvordan ulike tall skal tegnes. De inneholder ikke
186 alltid alle symbolene som er brukt i en tekst, hvilket gjør at ikke
187 alle forståtte tegn vil kunne vises på skjerm eller ark.
</p
>
189 <p
>Hver av disse fasettene må være avklart for å kunne ta vare på og vise
190 frem tekst med en datamaskin. Kombinasjon av repertoar, representasjon
191 og koding er det en kaller et tegnsett. Kombinasjonen av
192 representasjon og uttegning kalles en skrifttype. De fleste
193 skrifttyper har også informasjon om repertoar, men det finnes
194 skrifttyper som kun kobler mellom tallkode og uttegning, uten å
195 fortelle noe om hvordan tallkodene egentlig skal tolkes.
</p
>
197 <p id=
"tegnsett_access_fra_ascii_til_iso_8859
"><strong
>Fra ASCII til ISO-
8859</strong
></p
>
199 <p
>Vi begynner historien med ASCII (American Standard Code for
200 Information Interchange) som har en historie som spores tilbake til
201 1963. Utgangspunktet til ASCII var at det kunne kode opp til
128
202 forskjellige symboler i vanlig bruk i USA. De visuelle symbolene i
203 ASCII er de små og store bokstavene (a til z og A til Z), tall (
0 til
204 9) og tegnsettingssymboler (for eksempel semikolon, komma og
205 punktum). ASCII har også noen usynlige symboler som ble brukt for
206 bl.a. kommunikasjon. Før ASCII var det for eksempel teleks-tegnsett
207 med plass til bare
32 tegn og EBCDIC med plass til
256 tegn, alle med
208 en helt annen rekkefølge på symbolene enn ASCII, men de har vært lite
209 brukt de siste femti årene. Et eksempel på noen utvalgte symboler i
210 repertoaret til ASCII vises i tabell
1.
</p
>
212 <table align=
"center
" width=
"50%
">
214 <caption
>Tabell
1. Eksempel på utvalgte symboler hentet fra
215 ASCII-tegnsettet. Kolonnen «Binær» viser symbolets verdi i
216 totallssystemet (
1 og
0 tall), mens kolonnen «Desimal» viser symbolets
217 verdi i titallssystemet.
</caption
>
221 <th
>Grafisk
</th
>
222 <th
>Binær
</th
>
223 <th
>Desimal
</th
>
226 <td
>A
</td
>
227 <td
>1000001</td
>
228 <td align=
"right
">65</td
>
231 <td
>M
</td
>
232 <td
>1001101</td
>
233 <td align=
"right
">77</td
>
236 <td
>Z
</td
>
237 <td
>1011010</td
>
238 <td align=
"right
">90</td
>
241 <td
>a
</td
>
242 <td
>1100001</td
>
243 <td align=
"right
">97</td
>
246 <td
>m
</td
>
247 <td
>1101101</td
>
248 <td align=
"right
">109</td
>
251 <td
>z
</td
>
252 <td
>1111010</td
>
253 <td align=
"right
">122</td
>
256 <td
>0</td
>
257 <td
>0110000</td
>
258 <td align=
"right
">48</td
>
261 <td
>9</td
>
262 <td
>0111001</td
>
263 <td align=
"right
">58</td
>
266 <td
>;
</td
>
267 <td
>0111011</td
>
268 <td align=
"right
">59</td
>
273 <p
>Det opprinnelige ASCII-tegnsettet ble også omtalt som ASCII-
7 og
274 brukte
7 bits (
0 og
1) for å representere symboler. Datamaskiner er
275 ofte konfigurert til å jobbe med enheter der bits er gruppert som
4
276 eller
8 bits . Det lå en mulighet i å ta i bruk bit åtte. En slik
277 endring ville gjøre det mulig for datamaskiner å øke antall symboler
278 de kunne representere, noe som ga en økning fra
128 forskjellige
279 symboler til
256 forskjellige symboler. Det ble åpnet for å innlemme
280 de nordiske bokstavene sammen med ASCII, og dette ble etter hvert
281 standardisert som ISO-
8859-
1. Tabell
2 viser deler av ISO-
8859-
1 som
282 støtter de norske bokstavene.
</p
>
284 <p
>Det sier seg selv at muligheten til å representere inntil
256 symboler
285 ikke holder når vi snakker om en global verden, og det ble gjort et
286 standardiseringsløp som tok utgangspunkt i ASCII-
7 med en utvidelse
287 til å bruke den åttende biten for ulike språkgrupper. Denne standarden
288 heter ISO-
8859 og er inndelt i opptil
16 varianter, altså fra
289 ISO-
8859-
1 til ISO-
8859-
16.
</p
>
291 <table align=
"center
" width=
"50%
">
293 <caption
>Tabell
2. Koding av de norske symbolene slik de er definert i
294 ISO-
8859-
1 tegnsettet.
</caption
>
298 <th
>Grafisk
</th
>
299 <th
>Binær
</th
>
300 <th
>Desimal
</th
>
303 <td
>Æ
</td
>
304 <td
>11000110</td
>
305 <td align=
"right
">198</td
>
308 <td
>Ø
</td
>
309 <td
>11011000</td
>
310 <td align=
"right
">216</td
>
313 <td
>Å
</td
>
314 <td
>11000101</td
>
315 <td align=
"right
">197</td
>
318 <td
>æ
</td
>
319 <td
>11100110</td
>
320 <td align=
"right
">230</td
>
323 <td
>ø
</td
>
324 <td
>11111000</td
>
325 <td align=
"right
">248</td
>
328 <td
>å
</td
>
329 <td
>11100101</td
>
330 <td align=
"right
">229</td
>
335 <p
>Norske tegn er definert i ISO-
8859-
1, som også omtales som Latin
1, de
336 fleste samiske tegn er definert i ISO-
8859-
4 (Latin
4) mens tilgang
337 til €-symbolet kom med ISO-
8859-
15 (Latin
9). ISO-
8859-
15 er en
338 revisjon av ISO-
8859-
1 som fjerner noen lite brukte symboler og
339 erstatter bokstaver som er mer brukt, og introduserer €-symbolet. Det
340 er viktig å merke at alle ISO-
8859-variantene har overlapp med
341 ASCII-
7, noe som ga samvirke med de engelskspråklige landene som ikke
342 trengte å gjøre noe. Det innebærer også at de første
128 verdiene i
343 ISO-
8859-variantene representerer de samme symbolene. Det er først når
344 du kommer til tolkningen av de resterende
128 verdiene med nummer
128
345 til
255, at det oppsto tolkningsutfordringer mellom
346 ISO-
8859-variantene.
</p
>
348 <p
>ISO-
8859-verdenen fungerte godt så lenge tegnsettet som ble brukt når
349 innhold ble skapt, også ble brukt når innhold ble gjengitt og du ikke
350 trengte å kombinere innhold fra forskjellige tegnsett i samme
351 dokument. Utfordringen med bruken av ISO-
8859-variantene ble raskt
352 tydelig i en mer globalisert verden med utveksling av tekst på tvers
353 av landegrenser der tekstlig innhold i dokumenter, e-poster og
354 websider kunne bli skrevet med ett tegnsett og gjengitt med et annet
357 <table align=
"center
" width=
"60%
">
359 <caption
>Tabell
3. Viser tolkning av verdiene som er tilegnet de
360 norske symbolene i ISO-
8859-
1 i de andre ISO
8859-variatene. Merk
361 ISO-
8859-
12 ikke finnes da arbeidet ble avsluttet.
<sup
>[
<a id=
"tegnsett_access_footnoteref_1
" href=
"#tegnsett_access_footnotedef_1
" title=
"View footnote.
">1</a
>]
</sup
></caption
>
365 <th
>Binærverdi
</th
>
366 <th
>1</th
>
367 <th
>2</th
>
368 <th
>3</th
>
369 <th
>4</th
>
370 <th
>5</th
>
371 <th
>6</th
>
372 <th
>7</th
>
373 <th
>8</th
>
374 <th
>9</th
>
375 <th
>10</th
>
376 <th
>11</th
>
377 <th
>13</th
>
378 <th
>14</th
>
379 <th
>15</th
>
380 <th
>16</th
>
383 <td
>11000110</td
>
384 <td
>Æ
</td
>
385 <td
>Ć
</td
>
386 <td
>Ĉ
</td
>
387 <td
>Æ
</td
>
388 <td
>Ц
</td
>
389 <td
>ئ
</td
>
390 <td
>Ζ
</td
>
391 <td
></td
>
392 <td
>Æ
</td
>
393 <td
>Æ
</td
>
394 <td
>ฦ
</td
>
395 <td
>Ę
</td
>
396 <td
>Æ
</td
>
397 <td
>Æ
</td
>
398 <td
>Æ
</td
>
401 <td
>11011000</td
>
402 <td
>Ø
</td
>
403 <td
>Ř
</td
>
404 <td
>Ĝ
</td
>
405 <td
>Ø
</td
>
406 <td
>и
</td
>
407 <td
>ظ
</td
>
408 <td
>Ψ
</td
>
409 <td
></td
>
410 <td
>Ø
</td
>
411 <td
>Ø
</td
>
412 <td
>ุ
</td
>
413 <td
>Ų
</td
>
414 <td
>Ø
</td
>
415 <td
>Ø
</td
>
416 <td
>Ű
</td
>
419 <td
>11000101</td
>
420 <td
>Å
</td
>
421 <td
>Ĺ
</td
>
422 <td
>Ċ
</td
>
423 <td
>Å
</td
>
424 <td
>Х
</td
>
425 <td
>إ
</td
>
426 <td
>Ε
</td
>
427 <td
></td
>
428 <td
>Å
</td
>
429 <td
>Å
</td
>
430 <td
>ล
</td
>
431 <td
>Å
</td
>
432 <td
>Å
</td
>
433 <td
>Å
</td
>
434 <td
>Ć
</td
>
437 <td
>11100110</td
>
438 <td
>æ
</td
>
439 <td
>ć
</td
>
440 <td
>ĉ
</td
>
441 <td
>æ
</td
>
442 <td
>ц
</td
>
443 <td
>ن
</td
>
444 <td
>ζ
</td
>
445 <td
>ז
</td
>
446 <td
>æ
</td
>
447 <td
>æ
</td
>
448 <td
>ๆ
</td
>
449 <td
>ę
</td
>
450 <td
>æ
</td
>
451 <td
>æ
</td
>
452 <td
>v
</td
>
455 <td
>11111000</td
>
456 <td
>ø
</td
>
457 <td
>ř
</td
>
458 <td
>ĝ
</td
>
459 <td
>ø
</td
>
460 <td
>ј
</td
>
461 <td
></td
>
462 <td
>ψ
</td
>
463 <td
>ר
</td
>
464 <td
>ø
</td
>
465 <td
>ø
</td
>
466 <td
>๘
</td
>
467 <td
>ų
</td
>
468 <td
>ø
</td
>
469 <td
>ø
</td
>
470 <td
>ű
</td
>
473 <td
>11100101</td
>
474 <td
>å
</td
>
475 <td
>ĺ
</td
>
476 <td
>ċ
</td
>
477 <td
>å
</td
>
478 <td
>х
</td
>
479 <td
>م
</td
>
480 <td
>ε
</td
>
481 <td
>ו
</td
>
482 <td
>å
</td
>
483 <td
>å
</td
>
484 <td
>ๅ
</td
>
485 <td
>å
</td
>
486 <td
>å
</td
>
487 <td
>å
</td
>
488 <td
>ć
</td
>
493 <p
>Denne problemstillingen er illustrert i tabell
3, der vi ser verdiene
494 tilegnet de norske symbolene i ISO-
8859-
1 i kolonne «
1». I de øvrige
495 kolonnene ser vi hvilket symbol verdien får i de andre
496 ISO-
8859-variantene. Tar vi utgangspunkt i tabell
3, kan vi se at
497 ordet lærlingspørsmål gjengitt med ISO-
8859-
2 (kolonne
2) blir
498 lćrlingspřrsmĺl, mens det blir lζrlingspψrsmεl med ISO-
8859-
7
499 (kolonne
7). Med ISO-
8859-
2 blir «æ» til «ć», «ø» til «ř» og «å» til
500 «ĺ». I ISO-
8859-
7 blir «æ» til «ζ», «ø» til «ψ», mens «å» blir «ε».
</p
>
502 <p
>Det er egentlig ingen utfordring med dette så lenge du vet hvilket
503 tegnsett innholdet ditt er representert med, og det ikke har skjedd
504 omforminger som du ikke er klar over. Det er det siste som er
505 problematisk, spesielt de datasystemene som har vært i bruk de siste
506 20 årene, som ikke har noe innebygd funksjonalitet for å forvalte
507 tegnsettproblematikken. Et godt eksempel på dette er
508 Microsoft-tegnsettet Windows-
1252, som ble forvekslet som
100 %
509 kompatibel med ISO-
8859-
1, men hadde byttet ut plassene fra
127 til
510 159. Historisk vil det finnes en del variasjon i hvilket tegnsett som
511 har vært i bruk, og hvor vellykket konvertering mellom tegnsett har
514 <p id=
"tegnsett_access_unicode_som_løsning
"><strong
>Unicode som løsning
</strong
></p
>
516 <p
>Tegnsettforvirring ble etter hvert et irritasjonsmoment og
517 samvirkeproblem. Ofte fikk man en e-post der æøå var erstattet av rare
518 symboler fordi e-posten hadde vært innom et eller annet datasystem som
519 ikke brukte samme tegnsett.
</p
>
521 <p
>For å løse dette samvirkeproblemet for tegnsett ble det startet et
522 arbeid og en ny standard så dagens lys etter hvert. Denne standarden
523 fikk navnet Unicode (ISO/ IEC
10646) og skulle resultere i et tegnsett
524 som alle skulle være enige om. Unicode er et repertoar og en
525 representasjon, dvs. navngivning og tilordning av tallverdi til alle
526 symboler i bruk i verden i dag. Oppføringer i Unicode skrives gjerne
527 U+XXXX der XXXX er tallkoden i sekstentallssystemet som oppføringen
528 har i Unicode-katalogen. Her finner vi tegn brukt av både levende og
529 døde språk, konstruerte språk, tekniske symboler, morsomme tegninger
530 (såkalte emojier) og tegn ingen vet hva betyr eller skal brukes
531 til. Et morsomt eksempel er i nettartikkelen: U+
237C ⍼ RIGHT ANGLE
532 WITH DOWNWARDS ZIGZAG ARROW, av Jonathan Chan.
<sup
>[
<a id=
"tegnsett_access_footnoteref_2
" href=
"#tegnsett_access_footnotedef_2
" title=
"View footnote.
">2</a
>]
</sup
></p
>
534 <p
>Sammen med Unicode kom det tre måter å kode disse tallene på; UTF-
8,
535 UTF-
16 og UTF-
32. Av datatekniske årsaker er UTF-
8 mye brukt, spesielt
536 når det gjelder utveksling av tekst over Internett, mens UTF-
16 er
537 brukt en del til tekstfiler lagret på Windows. En utfordring med
538 Unicode og UTF-variantene er at disse gir flere måter å kode samme
539 symbol på med en kombinasjonsmekanisme. Dette kan gi utfordringer ved
540 søk, hvis en skal søke etter et ord som har ett eller flere symboler
541 som kan skrives på ulikt vis, så er det ikke sikkert at søkesystemet
542 vil finne alle forekomster. For eksempel kan bokstaven U+
00F8 «Latin
543 Small Letter O with Stroke» kodes som den tradisjonelle norske tegnet
544 ø, men også som o kombinert med skråstrek U+
0338. Begge deler er
545 gyldig bruk av Unicode, selv om det er tradisjon for å foretrekke å
546 «normalisere» kombinasjoner som enkelttegn der det er mulig, nettopp
547 for å forenkle søk.
</p
>
549 <p id=
"tegnsett_access_bare_unicode_fremover
"><strong
>Bare Unicode fremover
</strong
></p
>
551 <p
>Forvaltningens bruk av tegnsett er regulert i Forskrift om
552 IT-standarder i offentlig forvaltning
<sup
>[
<a id=
"tegnsett_access_footnoteref_3
" href=
"#tegnsett_access_footnotedef_3
" title=
"View footnote.
">3</a
>]
</sup
>. Her står det: «Ved all
553 utveksling av informasjon mellom forvaltningsorganer og fra
554 forvaltningsorgan til innbyggere og næringsliv skal tegnsettstandarden
555 ISO/IEC
10646 representert ved UTF8 benyttes.» Det er forskjellige
556 bruksområder til UTF-
8, UTF-
16 og UTF-
32, men UTF-
8 er kodingen vi
557 kjenner mest til. Det er flere grunner at UTF-
8 «vant» konkurransen
558 til å bli den utvalgte. Den kanskje viktigste er at UTF-
8 er fullt
559 samvirkende med ASCII-
7, slik at den engelskspråklige delen av verden
560 kunne rulle ut UTF-
8 uten å merke noe forskjell. En tekstfil med kun
561 ASCII-tekst vil være identisk på disken hvis den lagres som UTF-
8 og
562 ASCII. UTF-
16 og UTF-
32 byr på noen optimaliseringer som gjør dem
563 relevant for spesifikke problemområder, men for det meste vil vi aldri
564 oppleve disse standardene på nært hold i hverdagen. Det er uansett kun
565 bruken av UTF-
8 som er lovregulert i Norge.
</p
>
567 <p
>Det er ikke slik at hele verden bruker ISO/IEC
10646 og UTF-
8. Kina
568 har egne standarder for tegnsett, mye brukt er GB
18030, som er
569 Unicode med en annen koding enn UTF-
8, mens Taiwan og andre asiatiske
570 land gjerne bruker Big5 eller andre tegnsett.
</p
>
572 <p
>UTF-
8 er dominerende i Norge, men det er tidsperioder der forskjellige
573 datasystemer utvekslet data i henhold til ISO-
8859-
1, ISO-
8859-
15,
574 Windows-
1252, Codepage
865 og ISO-
646-
60 / Codepage
1016 mens
575 overgangen til UTF-
8 pågikk. Det er ikke slik at et datasystem enkelt
576 kan tvinges til å bruke et tegnsett, da det er flere lag i et
577 datasystem som må settes opp til å bruke riktig tegnsett, og
578 tegnsettproblemet fort oppstår når det er et eller annet i
579 datasystemet som bruker feil tegnsett.
</p
>
581 <p
>Et klassisk eksempel på problemet er en utveksling av tekst mellom to
582 systemer der teksten i utgangspunktet er kodet i UTF-
8, men går
583 gjennom noe som er ISO-
8859-
1 underveis. Dette kan vises med at ordet
584 «på» i et slik scenario ender opp som «pÃ¥». Det er mulig å spore
585 dette tilbake til verdiene symbolene er tilordnet i tegnsettene. «på»
586 blir til «pÃ¥» fordi «å» i UTF-
8 er representert med U+C3AF, og dersom
587 vi ser på hva disse verdiene representerer, ser vi at
588 sekstentallssystemverdien C3 er
1100 0011 i totallssystemet og
589 symbolet med dette tallet i ISO-
8859-
1 er Ã.
</p
>
591 <p
>Vi ser det samme med sekstentallssystemverdien A5, som er
1010 0101 i
592 totallssystemet, og tilsvarende symbol i ISO-
8859-
1 er ¥. Slik
593 mojibake kan lett skje hvis «på» i utgangspunktet var representert med
594 UTF-
8, men ble behandlet med et system som bruker ISO-
8859-
1. Det er
595 ingen automatikk i å fange opp slike ødeleggelser mens tekstlig
596 innhold utveksles mellom datasystemer.
</p
>
598 <p
>En utfordring for depotarkivene er at bruken av tegnsett ikke alltid
599 har vært regulert, og at det kan finnes flere dokumentasjonssamlinger
600 som er opprettet med varierende tegnsett før gjeldende forskrift
601 inntraff – uten at det er mulig å avlede fra filene hvilket tegnsett
602 som ble brukt. Et eksempel på dette er €-symbolet, som kom først etter
603 at ISO-
8859-
1 var tatt i bruk. Det kan bli en utfordring for et
604 depotarkiv, men så lenge det er kjent hvilket tegnsett var i bruk, så
605 bør det gå bra. Riksarkivarens
606 forskrift
<sup
>[
<a id=
"tegnsett_access_footnoteref_4
" href=
"#tegnsett_access_footnotedef_4
" title=
"View footnote.
">4</a
>]
</sup
>
607 formaliserer dette ved å kreve følgende:
</p
>
610 <p
>§
5-
11. Tegnsett i arkivuttrekk
</p
>
613 <li
>Arkivuttrekk og medfølgende struktur- og innholdsbeskrivelser skal
614 overføres som ren tekst i ukryptert form, og benytte godkjent
617 <li
>Godkjente tegnsett er:
619 <li
>Unicode UTF-
8<br
>
620 (ISO/IEC
10646-
1:
2000 Annex D)
</li
>
621 <li
>ISO
8859-
1:
1998, Latin
1</li
>
622 <li
>ISO
8859-
4:
1998, Latin
4 for samiske tegn.
</li
>
623 </ol
></li
>
625 <li
>Andre tegnsett aksepteres bare etter avtale med Arkivverket.
</li
>
629 <p id=
"tegnsett_access_ditt_ansvar
"><strong
>Ditt ansvar
</strong
></p
>
631 <p
>På mange måter burde ikke tegnsett være et problem i
2023, men sånn er
632 det nok ikke. Land som har oppgradert til UTF-
8 som primærtegnsett for
633 utveksling av tekstlig innhold, begrenser problematikken betraktelig,
634 men globalt sett så er tegnsettutfordringen ikke løst fordi ikke alle
635 er enige om å bruke samme tegnsett. Det kan være geopolitiske eller
636 kulturelle hensyn som ligger til grunn for dette.
</p
>
638 <p
>Det er uansett verdt å merke at selv om bruken av UTF-
8 skulle bli
639 100% utbredt, så er det et historisk perspektiv (ASCII-
7,
640 ISO-
8859-variantene, UTF-
8) her som gjør tegnsett til et problemområde
641 arkivarene må forstå og håndtere. Som danningsarkivar har du et
642 ansvar for å vite hvilket tegnsett systemene og databasene dere
643 forvalter, er i samsvar med. Det er noe IT-avdelingen din eller
644 programvareleverandørene enkelt skal kunne svare på, og svaret skal
645 være UTF-
8 for alle nye systemer.
</p
>
649 <p id=
"tegnsett_access_footnotedef_1
"><a href=
"#tegnsett_access_footnoteref_1
">1</a
>. Tegnsettkilde
<a href=
"https://en.wikipedia.org/wiki/ISO/IEC_8859
">https://en.wikipedia.org/wiki/ISO/IEC_8859
</a
></p
>
651 <p id=
"tegnsett_access_footnotedef_2
"><a href=
"#tegnsett_access_footnoteref_2
">2</a
>.
<a href=
"https://ionathan.ch/
2022/
04/
09/angzarr.html
">https://ionathan.ch/
2022/
04/
09/angzarr.html
</a
></p
>
653 <p id=
"tegnsett_access_footnotedef_3
"><a href=
"#tegnsett_access_footnoteref_3
">3</a
>.
<a href=
"https://lovdata.no/dokument/SF/forskrift/
2013-
04-
05-
959/%C2%A78#%C2%A78
">https://lovdata.no/dokument/SF/forskrift/
2013-
04-
05-
959/%C2%A78#%C2%A78
</a
></p
>
655 <p id=
"tegnsett_access_footnotedef_4
"><a href=
"#tegnsett_access_footnoteref_4
">4</a
>.
<a href=
"https://lovdata.no/forskrift/
2017-
12-
19-
2286/§
5-
11">https://lovdata.no/forskrift/
2017-
12-
19-
2286/§
5-
11</a
></p
>
659 <p
>For øvrig burde varsleren Edward Snowden få politisk asyl i Norge.
</p
>
661 <p
>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
662 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
664 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>. Merk,
665 betaling med bitcoin er ikke anonymt. :)
</p
>
670 <title>New and improved sqlcipher in Debian for accessing Signal database
</title>
671 <link>https://people.skolelinux.org/pere/blog/New_and_improved_sqlcipher_in_Debian_for_accessing_Signal_database.html
</link>
672 <guid isPermaLink=
"true">https://people.skolelinux.org/pere/blog/New_and_improved_sqlcipher_in_Debian_for_accessing_Signal_database.html
</guid>
673 <pubDate>Sun,
12 Nov
2023 12:
00:
00 +
0100</pubDate>
674 <description><p
>For a while now I wanted to have direct access to the
675 <a href=
"https://signal.org/
">Signal
</a
> database of messages and
676 channels of my Desktop edition of Signal. I prefer the enforced end
677 to end encryption of Signal these days for my communication with
678 friends and family, to increase the level of safety and privacy as
679 well as raising the cost of the mass surveillance government and
680 non-government entities practice these days. In August I came across
682 <a href=
"https://www.yoranbrondsema.com/post/the-guide-to-extracting-statistics-from-your-signal-conversations/
">recipe
683 on how to use sqlcipher to extract statistics from the Signal
684 database
</a
> explaining how to do this. Unfortunately this did not
685 work with the version of sqlcipher in Debian. The
686 <a href=
"http://tracker.debian.org/sqlcipher/
">sqlcipher
</a
>
687 package is a
"fork
" of the sqlite package with added support for
688 encrypted databases. Sadly the current Debian maintainer
689 <a href=
"https://bugs.debian.org/
961598">announced more than three
690 years ago that he did not have time to maintain sqlcipher
</a
>, so it
691 seemed unlikely to be upgraded by the maintainer. I was reluctant to
692 take on the job myself, as I have very limited experience maintaining
693 shared libraries in Debian. After waiting and hoping for a few
694 months, I gave up the last week, and set out to update the package. In
695 the process I orphaned it to make it more obvious for the next person
696 looking at it that the package need proper maintenance.
</p
>
698 <p
>The version in Debian was around five years old, and quite a lot of
699 changes had taken place upstream into the Debian maintenance git
700 repository. After spending a few days importing the new upstream
701 versions, realising that upstream did not care much for SONAME
702 versioning as I saw library symbols being both added and removed with
703 minor version number changes to the project, I concluded that I had to
704 do a SONAME bump of the library package to avoid surprising the
705 reverse dependencies. I even added a simple
706 autopkgtest script to ensure the package work as intended. Dug deep
707 into the hole of learning shared library maintenance, I set out a few
708 days ago to upload the new version to Debian experimental to see what
709 the quality assurance framework in Debian had to say about the result.
710 The feedback told me the pacakge was not too shabby, and yesterday I
711 uploaded the latest version to Debian unstable. It should enter
712 testing today or tomorrow, perhaps delayed by
713 <a href=
"https://bugs.debian.org/
1055812">a small library
714 transition
</a
>.
</p
>
716 <p
>Armed with a new version of sqlcipher, I can now have a look at the
717 SQL database in ~/.config/Signal/sql/db.sqlite. First, one need to
718 fetch the encryption key from the Signal configuration using this
719 simple JSON extraction command:
</p
>
721 <pre
>/usr/bin/jq -r
'.
"key
"' ~/.config/Signal/config.json
</pre
>
723 <p
>Assuming the result from that command is
'secretkey
', which is a
724 hexadecimal number representing the key used to encrypt the database.
725 Next, one can now connect to the database and inject the encryption
726 key for access via SQL to fetch information from the database. Here
727 is an example dumping the database structure:
</p
>
730 % sqlcipher ~/.config/Signal/sql/db.sqlite
731 sqlite
> PRAGMA key =
"x
'secretkey
'";
733 CREATE TABLE sqlite_stat1(tbl,idx,stat);
734 CREATE TABLE conversations(
735 id STRING PRIMARY KEY ASC,
743 , profileFamilyName TEXT, profileFullName TEXT, e164 TEXT, serviceId TEXT, groupId TEXT, profileLastFetchedAt INTEGER);
744 CREATE TABLE identityKeys(
745 id STRING PRIMARY KEY ASC,
749 id STRING PRIMARY KEY ASC,
752 CREATE TABLE sessions(
756 , ourServiceId STRING, serviceId STRING);
757 CREATE TABLE attachment_downloads(
758 id STRING primary key,
763 CREATE TABLE sticker_packs(
768 coverStickerId INTEGER,
770 downloadAttempts INTEGER,
774 stickerCount INTEGER,
776 , attemptedStatus STRING, position INTEGER DEFAULT
0 NOT NULL, storageID STRING, storageVersion INTEGER, storageUnknownFields BLOB, storageNeedsSync
777 INTEGER DEFAULT
0 NOT NULL);
778 CREATE TABLE stickers(
780 packId TEXT NOT NULL,
789 PRIMARY KEY (id, packId),
790 CONSTRAINT stickers_fk
792 REFERENCES sticker_packs(id)
795 CREATE TABLE sticker_references(
798 CONSTRAINT sticker_references_fk
800 REFERENCES sticker_packs(id)
804 shortName TEXT PRIMARY KEY,
807 CREATE TABLE messages(
808 rowid INTEGER PRIMARY KEY ASC,
814 schemaVersion INTEGER,
815 conversationId STRING,
818 hasAttachments INTEGER,
819 hasFileAttachments INTEGER,
820 hasVisualMediaAttachments INTEGER,
822 expirationStartTimestamp INTEGER,
825 messageTimer INTEGER,
826 messageTimerStart INTEGER,
827 messageTimerExpiresAt INTEGER,
830 sourceServiceId TEXT, serverGuid STRING NULL, sourceDevice INTEGER, storyId STRING, isStory INTEGER
831 GENERATED ALWAYS AS (type IS
'story
'), isChangeCreatedByUs INTEGER NOT NULL DEFAULT
0, isTimerChangeFromSync INTEGER
832 GENERATED ALWAYS AS (
833 json_extract(json,
'$.expirationTimerUpdate.fromSync
') IS
1
834 ), seenStatus NUMBER default
0, storyDistributionListId STRING, expiresAt INT
837 expirationStartTimestamp + (expireTimer *
1000),
839 )), shouldAffectActivity INTEGER
840 GENERATED ALWAYS AS (
844 'change-number-notification
',
845 'contact-removed-notification
',
846 'conversation-merge
',
847 'group-v1-migration
',
849 'message-history-unsynced
',
850 'profile-change
',
852 'universal-timer-notification
',
853 'verified-change
'
855 ), shouldAffectPreview INTEGER
856 GENERATED ALWAYS AS (
860 'change-number-notification
',
861 'contact-removed-notification
',
862 'conversation-merge
',
863 'group-v1-migration
',
865 'message-history-unsynced
',
866 'profile-change
',
868 'universal-timer-notification
',
869 'verified-change
'
871 ), isUserInitiatedMessage INTEGER
872 GENERATED ALWAYS AS (
876 'change-number-notification
',
877 'contact-removed-notification
',
878 'conversation-merge
',
879 'group-v1-migration
',
880 'group-v2-change
',
882 'message-history-unsynced
',
883 'profile-change
',
885 'universal-timer-notification
',
886 'verified-change
'
888 ), mentionsMe INTEGER NOT NULL DEFAULT
0, isGroupLeaveEvent INTEGER
889 GENERATED ALWAYS AS (
890 type IS
'group-v2-change
' AND
891 json_array_length(json_extract(json,
'$.groupV2Change.details
')) IS
1 AND
892 json_extract(json,
'$.groupV2Change.details[
0].type
') IS
'member-remove
' AND
893 json_extract(json,
'$.groupV2Change.from
') IS NOT NULL AND
894 json_extract(json,
'$.groupV2Change.from
') IS json_extract(json,
'$.groupV2Change.details[
0].aci
')
895 ), isGroupLeaveEventFromOther INTEGER
896 GENERATED ALWAYS AS (
897 isGroupLeaveEvent IS
1
899 isChangeCreatedByUs IS
0
901 GENERATED ALWAYS AS (
902 json_extract(json,
'$.callId
')
904 CREATE TABLE sqlite_stat4(tbl,idx,neq,nlt,ndlt,sample);
907 queueType TEXT STRING NOT NULL,
908 timestamp INTEGER NOT NULL,
911 CREATE TABLE reactions(
912 conversationId STRING,
915 messageReceivedAt INTEGER,
916 targetAuthorAci STRING,
917 targetTimestamp INTEGER,
920 CREATE TABLE senderKeys(
921 id TEXT PRIMARY KEY NOT NULL,
922 senderId TEXT NOT NULL,
923 distributionId TEXT NOT NULL,
925 lastUpdatedDate NUMBER NOT NULL
927 CREATE TABLE unprocessed(
928 id STRING PRIMARY KEY ASC,
935 serverTimestamp INTEGER,
936 sourceServiceId STRING
937 , serverGuid STRING NULL, sourceDevice INTEGER, receivedAtCounter INTEGER, urgent INTEGER, story INTEGER);
938 CREATE TABLE sendLogPayloads(
939 id INTEGER PRIMARY KEY ASC,
941 timestamp INTEGER NOT NULL,
942 contentHint INTEGER NOT NULL,
944 , urgent INTEGER, hasPniSignatureMessage INTEGER DEFAULT
0 NOT NULL);
945 CREATE TABLE sendLogRecipients(
946 payloadId INTEGER NOT NULL,
948 recipientServiceId STRING NOT NULL,
949 deviceId INTEGER NOT NULL,
951 PRIMARY KEY (payloadId, recipientServiceId, deviceId),
953 CONSTRAINT sendLogRecipientsForeignKey
954 FOREIGN KEY (payloadId)
955 REFERENCES sendLogPayloads(id)
958 CREATE TABLE sendLogMessageIds(
959 payloadId INTEGER NOT NULL,
961 messageId STRING NOT NULL,
963 PRIMARY KEY (payloadId, messageId),
965 CONSTRAINT sendLogMessageIdsForeignKey
966 FOREIGN KEY (payloadId)
967 REFERENCES sendLogPayloads(id)
970 CREATE TABLE preKeys(
971 id STRING PRIMARY KEY ASC,
973 , ourServiceId NUMBER
974 GENERATED ALWAYS AS (json_extract(json,
'$.ourServiceId
')));
975 CREATE TABLE signedPreKeys(
976 id STRING PRIMARY KEY ASC,
978 , ourServiceId NUMBER
979 GENERATED ALWAYS AS (json_extract(json,
'$.ourServiceId
')));
982 category TEXT NOT NULL,
984 descriptionTemplate TEXT NOT NULL
986 CREATE TABLE badgeImageFiles(
987 badgeId TEXT REFERENCES badges(id)
990 'order
' INTEGER NOT NULL,
995 CREATE TABLE storyReads (
996 authorId STRING NOT NULL,
997 conversationId STRING NOT NULL,
998 storyId STRING NOT NULL,
999 storyReadDate NUMBER NOT NULL,
1001 PRIMARY KEY (authorId, storyId)
1003 CREATE TABLE storyDistributions(
1004 id STRING PRIMARY KEY NOT NULL,
1007 senderKeyInfoJson STRING
1008 , deletedAtTimestamp INTEGER, allowsReplies INTEGER, isBlockList INTEGER, storageID STRING, storageVersion INTEGER, storageUnknownFields BLOB, storageNeedsSync INTEGER);
1009 CREATE TABLE storyDistributionMembers(
1010 listId STRING NOT NULL REFERENCES storyDistributions(id)
1013 serviceId STRING NOT NULL,
1015 PRIMARY KEY (listId, serviceId)
1017 CREATE TABLE uninstalled_sticker_packs (
1018 id STRING NOT NULL PRIMARY KEY,
1019 uninstalledAt NUMBER NOT NULL,
1021 storageVersion NUMBER,
1022 storageUnknownFields BLOB,
1023 storageNeedsSync INTEGER NOT NULL
1025 CREATE TABLE groupCallRingCancellations(
1026 ringId INTEGER PRIMARY KEY,
1027 createdAt INTEGER NOT NULL
1029 CREATE TABLE IF NOT EXISTS
'messages_fts_data
'(id INTEGER PRIMARY KEY, block BLOB);
1030 CREATE TABLE IF NOT EXISTS
'messages_fts_idx
'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
1031 CREATE TABLE IF NOT EXISTS
'messages_fts_content
'(id INTEGER PRIMARY KEY, c0);
1032 CREATE TABLE IF NOT EXISTS
'messages_fts_docsize
'(id INTEGER PRIMARY KEY, sz BLOB);
1033 CREATE TABLE IF NOT EXISTS
'messages_fts_config
'(k PRIMARY KEY, v) WITHOUT ROWID;
1034 CREATE TABLE edited_messages(
1035 messageId STRING REFERENCES messages(id)
1039 , conversationId STRING);
1040 CREATE TABLE mentions (
1041 messageId REFERENCES messages(id) ON DELETE CASCADE,
1046 CREATE TABLE kyberPreKeys(
1047 id STRING PRIMARY KEY NOT NULL,
1048 json TEXT NOT NULL, ourServiceId NUMBER
1049 GENERATED ALWAYS AS (json_extract(json,
'$.ourServiceId
')));
1050 CREATE TABLE callsHistory (
1051 callId TEXT PRIMARY KEY,
1052 peerId TEXT NOT NULL, -- conversation id (legacy) | uuid | groupId | roomId
1053 ringerId TEXT DEFAULT NULL, -- ringer uuid
1054 mode TEXT NOT NULL, -- enum
"Direct
" |
"Group
"
1055 type TEXT NOT NULL, -- enum
"Audio
" |
"Video
" |
"Group
"
1056 direction TEXT NOT NULL, -- enum
"Incoming
" |
"Outgoing
1057 -- Direct: enum
"Pending
" |
"Missed
" |
"Accepted
" |
"Deleted
"
1058 -- Group: enum
"GenericGroupCall
" |
"OutgoingRing
" |
"Ringing
" |
"Joined
" |
"Missed
" |
"Declined
" |
"Accepted
" |
"Deleted
"
1059 status TEXT NOT NULL,
1060 timestamp INTEGER NOT NULL,
1061 UNIQUE (callId, peerId) ON CONFLICT FAIL
1063 [ dropped all indexes to save space in this blog post ]
1064 CREATE TRIGGER messages_on_view_once_update AFTER UPDATE ON messages
1066 new.body IS NOT NULL AND new.isViewOnce =
1
1068 DELETE FROM messages_fts WHERE rowid = old.rowid;
1070 CREATE TRIGGER messages_on_insert AFTER INSERT ON messages
1071 WHEN new.isViewOnce IS NOT
1 AND new.storyId IS NULL
1073 INSERT INTO messages_fts
1076 (new.rowid, new.body);
1078 CREATE TRIGGER messages_on_delete AFTER DELETE ON messages BEGIN
1079 DELETE FROM messages_fts WHERE rowid = old.rowid;
1080 DELETE FROM sendLogPayloads WHERE id IN (
1081 SELECT payloadId FROM sendLogMessageIds
1082 WHERE messageId = old.id
1084 DELETE FROM reactions WHERE rowid IN (
1085 SELECT rowid FROM reactions
1086 WHERE messageId = old.id
1088 DELETE FROM storyReads WHERE storyId = old.storyId;
1090 CREATE VIRTUAL TABLE messages_fts USING fts5(
1092 tokenize =
'signal_tokenizer
'
1094 CREATE TRIGGER messages_on_update AFTER UPDATE ON messages
1096 (new.body IS NULL OR old.body IS NOT new.body) AND
1097 new.isViewOnce IS NOT
1 AND new.storyId IS NULL
1099 DELETE FROM messages_fts WHERE rowid = old.rowid;
1100 INSERT INTO messages_fts
1103 (new.rowid, new.body);
1105 CREATE TRIGGER messages_on_insert_insert_mentions AFTER INSERT ON messages
1107 INSERT INTO mentions (messageId, mentionAci, start, length)
1109 SELECT messages.id, bodyRanges.value -
>> 'mentionAci
' as mentionAci,
1110 bodyRanges.value -
>> 'start
' as start,
1111 bodyRanges.value -
>> 'length
' as length
1112 FROM messages, json_each(messages.json -
>> 'bodyRanges
') as bodyRanges
1113 WHERE bodyRanges.value -
>> 'mentionAci
' IS NOT NULL
1115 AND messages.id = new.id;
1117 CREATE TRIGGER messages_on_update_update_mentions AFTER UPDATE ON messages
1119 DELETE FROM mentions WHERE messageId = new.id;
1120 INSERT INTO mentions (messageId, mentionAci, start, length)
1122 SELECT messages.id, bodyRanges.value -
>> 'mentionAci
' as mentionAci,
1123 bodyRanges.value -
>> 'start
' as start,
1124 bodyRanges.value -
>> 'length
' as length
1125 FROM messages, json_each(messages.json -
>> 'bodyRanges
') as bodyRanges
1126 WHERE bodyRanges.value -
>> 'mentionAci
' IS NOT NULL
1128 AND messages.id = new.id;
1133 <p
>Finally I have the tool needed to inspect and process Signal
1134 messages that I need, without using the vendor provided client. Now
1135 on to transforming it to a more useful format.
</p
>
1137 <p
>As usual, if you use Bitcoin and want to show your support of my
1138 activities, please send Bitcoin donations to my address
1139 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
1144 <title>New chrpath release
0.17</title>
1145 <link>https://people.skolelinux.org/pere/blog/New_chrpath_release_0_17.html
</link>
1146 <guid isPermaLink=
"true">https://people.skolelinux.org/pere/blog/New_chrpath_release_0_17.html
</guid>
1147 <pubDate>Fri,
10 Nov
2023 07:
30:
00 +
0100</pubDate>
1148 <description><p
>The chrpath package provide a simple command line tool to remove or
1149 modify the rpath or runpath of compiled ELF program. It is almost
10
1150 years since I updated the code base, but I stumbled over the tool
1151 today, and decided it was time to move the code base from Subversion
1152 to git and find a new home for it, as the previous one (Debian Alioth)
1153 has been shut down. I decided to go with
1154 <a href=
"https://codeberg.org/
">Codeberg
</a
> this time, as it is my git
1155 service of choice these days, did a quick and dirty migration to git
1156 and updated the code with a few patches I found in the Debian bug
1157 tracker. These are the release notes:
</p
>
1159 <p
>New in
0.17 released
2023-
11-
10:
</p
>
1162 <li
>Moved project to Codeberg, as Alioth is shut down.
</li
>
1163 <li
>Add Solaris support (use
&lt;sys/byteorder.h
> instead of
&lt;byteswap.h
>).
1164 Patch from Rainer Orth.
</li
>
1165 <li
>Added missing newline from printf() line. Patch from Frank Dana.
</li
>
1166 <li
>Corrected handling of multiple ELF sections. Patch from Frank Dana.
</li
>
1167 <li
>Updated build rules for .deb. Partly based on patch from djcj.
</li
>
1170 <p
>The latest edition is tagged and available from
1171 <a href=
"https://codeberg.org/pere/chrpath
">https://codeberg.org/pere/chrpath
</a
>.
1173 <p
>As usual, if you use Bitcoin and want to show your support of my
1174 activities, please send Bitcoin donations to my address
1175 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
1180 <title>Test framework for DocBook processors / formatters
</title>
1181 <link>https://people.skolelinux.org/pere/blog/Test_framework_for_DocBook_processors___formatters.html
</link>
1182 <guid isPermaLink=
"true">https://people.skolelinux.org/pere/blog/Test_framework_for_DocBook_processors___formatters.html
</guid>
1183 <pubDate>Sun,
5 Nov
2023 13:
00:
00 +
0100</pubDate>
1184 <description><p
>All the books I have published so far has been using
1185 <a href=
"https://docbook.org/
">DocBook
</a
> somewhere in the process.
1186 For the first book, the source format was DocBook, while for every
1187 later book it was an intermediate format used as the stepping stone to
1188 be able to present the same manuscript in several formats, on paper,
1189 as ebook in ePub format, as a HTML page and as a PDF file either for
1190 paper production or for Internet consumption. This is made possible
1191 with a wide variety of free software tools with DocBook support in
1192 Debian. The source format of later books have been docx via rst,
1193 Markdown, Filemaker and Asciidoc, and for all of these I was able to
1194 generate a suitable DocBook file for further processing using
1195 <a href=
"https://tracker.debian.org/pkg/pandoc
">pandoc
</a
>,
1196 <a href=
"https://tracker.debian.org/pkg/asciidoc
">a2x
</a
> and
1197 <a href=
"https://tracker.debian.org/pkg/asciidoctor
">asciidoctor
</a
>,
1198 as well as rendering using
1199 <a href=
"https://tracker.debian.org/pkg/xmlto
">xmlto
</a
>,
1200 <a href=
"https://tracker.debian.org/pkg/dbtoepub
">dbtoepub
</a
>,
1201 <a href=
"https://tracker.debian.org/pkg/dblatex
">dblatex
</a
>,
1202 <a href=
"https://tracker.debian.org/pkg/docbook-xsl
">docbook-xsl
</a
> and
1203 <a href=
"https://tracker.debian.org/pkg/fop
">fop
</a
>.
</p
>
1205 <p
>Most of the
<a href=
"http://www.hungry.com/~pere/publisher/
">books I
1206 have published
</a
> are translated books, with English as the source
1207 language. The use of
1208 <a href=
"https://tracker.debian.org/pkg/po4a
">po4a
</a
> to
1209 handle translations using the gettext PO format has been a blessing,
1210 but publishing translated books had triggered the need to ensure the
1211 DocBook tools handle relevant languages correctly. For every new
1212 language I have published, I had to submit patches dblatex, dbtoepub
1213 and docbook-xsl fixing incorrect language and country specific issues
1214 in the framework themselves. Typically this has been missing keywords
1215 like
'figure
' or sort ordering of index entries. After a while it
1216 became tiresome to only discover issues like this by accident, and I
1217 decided to write a DocBook
"test framework
" exercising various
1218 features of DocBook and allowing me to see all features exercised for
1219 a given language. It consist of a set of DocBook files, a version
4
1220 book, a version
5 book, a v4 book set, a v4 selection of problematic
1221 tables, one v4 testing sidefloat and finally one v4 testing a book of
1222 articles. The DocBook files are accompanied with a set of build rules
1223 for building PDF using dblatex and docbook-xsl/fop, HTML using xmlto
1224 or docbook-xsl and epub using dbtoepub. The result is a set of files
1225 visualizing footnotes, indexes, table of content list, figures,
1226 formulas and other DocBook features, allowing for a quick review on
1227 the completeness of the given locale settings. To build with a
1228 different language setting, all one need to do is edit the lang= value
1229 in the .xml file to pick a different ISO
639 code value and run
1230 'make
'.
</p
>
1232 <p
>The
<a href=
"https://codeberg.org/pere/docbook-example/
">test framework
1233 source code
</a
> is available from Codeberg, and a generated set of
1234 presentations of the various examples is available as Codeberg static
1236 <a href=
"https://pere.codeberg.page/docbook-example/
">https://pere.codeberg.page/docbook-example/
</a
>.
1237 Using this test framework I have been able to discover and report
1238 several bugs and missing features in various tools, and got a lot of
1239 them fixed. For example I got Northern Sami keywords added to both
1240 docbook-xsl and dblatex, fixed several typos in Norwegian bokmål and
1241 Norwegian Nynorsk, support for non-ascii title IDs added to pandoc,
1242 Norwegian index sorting support fixed in xindy and initial Norwegian
1243 Bokmål support added to dblatex. Some issues still remains, though.
1244 Default index sorting rules are still broken in several tools, so the
1245 Norwegian letters æ, ø and å are more often than not sorted properly
1246 in the book index.
</p
>
1248 <p
>The test framework recently received some more polish, as part of
1249 publishing my latest book. This book contained a lot of fairly
1250 complex tables, which exposed bugs in some of the tools. This made me
1251 add a new test file with various tables, as well as spend some time to
1252 brush up the build rules. My goal is for the test framework to
1253 exercise all DocBook features to make it easier to see which features
1254 work with different processors, and hopefully get them all to support
1255 the full set of DocBook features. Feel free to send patches to extend
1256 the test set, and test it with your favorite DocBook processor.
1257 Please visit these two URLs to learn more:
</p
>
1260 <li
><a href=
"https://codeberg.org/pere/docbook-example/
">https://codeberg.org/pere/docbook-example/
</a
></li
>
1261 <li
><a href=
"https://pere.codeberg.page/docbook-example/
">https://pere.codeberg.page/docbook-example/
</a
></li
>
1264 <p
>If you want to learn more on Docbook and translations, I recommend
1265 having a look at the
<a href=
"https://docbook.org/
">the DocBook
1267 <a href=
"https://doccookbook.sourceforge.net/html/en/
">the DoCookBook
1268 site
<a/
> and my earlier blog post on
1269 <a href=
"https://people.skolelinux.org/pere/blog/From_English_wiki_to_translated_PDF_and_epub_via_Docbook.html
">how
1270 the Skolelinux project process and translate documentation
</a
>, a talk I gave earlier this year on
1271 <a href=
"https://www.nuug.no/aktiviteter/
20230314-oversetting-og-publisering-av-b%c3%b8ker-med-fri-programvare/
">how
1272 to translate and publish books using free software
</a
> (Norwegian
1277 https://github.com/docbook/xslt10-stylesheets/issues/
205 (docbook-xsl: sme support)
1278 https://bugs.debian.org/
968437 (xindy: index sorting rules for nb/nn)
1279 https://bugs.debian.org/
856123 (pandoc: markdown to docbook with non-english titles)
1280 https://bugs.debian.org/
864813 (dblatex: missing nb words)
1281 https://bugs.debian.org/
756386 (dblatex: index sorting rules for nb/nn)
1282 https://bugs.debian.org/
796871 (dbtoepub: index sorting rules for nb/nn)
1283 https://bugs.debian.org/
792616 (dblatex: PDF metadata)
1284 https://bugs.debian.org/
686908 (docbook-xsl: index sorting rules for nb/nn)
1285 https://sourceforge.net/tracker/?func=detail
&atid=
373747&aid=
3556630&group_id=
21935 (docbook-xsl: nb/nn support)
1286 https://bugs.debian.org/
684391 (dblatex: initial nb support)
1290 <p
>As usual, if you use Bitcoin and want to show your support of my
1291 activities, please send Bitcoin donations to my address
1292 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
1297 <title>«Virkninger av angrefristloven», hovedfagsoppgaven som fikk endret en lov
</title>
1298 <link>https://people.skolelinux.org/pere/blog/_Virkninger_av_angrefristloven___hovedfagsoppgaven_som_fikk_endret_en_lov.html
</link>
1299 <guid isPermaLink=
"true">https://people.skolelinux.org/pere/blog/_Virkninger_av_angrefristloven___hovedfagsoppgaven_som_fikk_endret_en_lov.html
</guid>
1300 <pubDate>Sun,
29 Oct
2023 22:
00:
00 +
0100</pubDate>
1301 <description><img src=
"https://people.skolelinux.org/pere/blog/images/
2023-
10-
29-bok-angrefrist.svg
" width=
"20%
" align=
"center
"></a
>
1303 <p
>I
1979 leverte Ole-Erik Yrvin en hovedfagsoppgave for Cand. Scient.
1304 ved Institutt for sosiologi på Universitetet i Oslo på oppdrag fra
1305 Forbruker- og administrasjonsdepartementet. Oppgaven evaluerte
1306 Angrefristloven fra
1972, og det han oppdaget førte til at loven ble
1307 endret fire år senere.
</p
>
1309 <p
>Jeg har kjent Ole-Erik en stund, og synes det var trist at hans
1310 oppgave ikke lenger er tilgjengelig, hverken fra oppdragsgiver
1311 eller fra universitetet. Hans forsøk på å få den avbildet og lagt
1312 ut på Internett har vist seg fånyttes, så derfor tilbød jeg meg for
1313 en stund tilbake å publisere den og gjøre den tilgjengelig med
1314 fribruksvilkår på Internett. Det er nå klart, og hovedfagsoppgaven
1315 er tilgjengelig blant annet via
<a
1316 href=
"http://www.hungry.com/~pere/publisher/
">min liste over
1317 publiserte bøker
</a
>, både som nettside,
1318 <a href=
"https://www.lulu.com/search?contributor=Ole-Erik+Yrvin
">digital
1319 bok i ePub-format og på papir fra lulu.com
</a
>. Jeg regner med at
1320 den også vil dukke opp på nettbokhandlere i løpet av en måned eller
1323 <p
>Alle tabeller og figurer er gjenskapt for bedre lesbarhet, noen
1324 skrivefeil rettet opp og mange referanser har fått flere detaljer
1325 som ISBN-nummer og DOI-referanse. Selv om jeg ikke regner med at
1326 dette blir en kioskvelter, så håper jeg denne nye utgaven kan komme
1327 fremtiden til glede.
</p
>
1329 <p
>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
1330 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
1332 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>. Merk,
1333 betaling med bitcoin er ikke anonymt. :)
</p
>
1338 <title>«underordnet tjenestemann blir inhabil fordi en overordnet er inhabil».
</title>
1339 <link>https://people.skolelinux.org/pere/blog/_underordnet_tjenestemann_blir_inhabil_fordi_en_overordnet_er_inhabil__.html
</link>
1340 <guid isPermaLink=
"true">https://people.skolelinux.org/pere/blog/_underordnet_tjenestemann_blir_inhabil_fordi_en_overordnet_er_inhabil__.html
</guid>
1341 <pubDate>Thu,
7 Sep
2023 09:
10:
00 +
0200</pubDate>
1342 <description><p
>Medlemmene av Norges regjering har demonstert de siste månedene at
1343 habilitetsvureringer ikke er deres sterke side og det gjelder både
1344 Arbeiderpartiets og Senterpartiers representater. Det er heldigvis
1345 enklere i det private, da inhabilitetsreglene kun gjelder de som
1346 jobber for folket, ikke seg selv. Sist ut er utenriksminister
1347 Huitfeldt. I går kom nyheten om at
1348 <a href=
"https://www.nrk.no/nyheter/riksadvokaten_-okokrim-nestsjef-kan-behandle-huitfeldt-saken-
1.16545162">Riksadvokaten
1349 har konkludert med at nestsjefen i Økokrim kan behandle sak om
1350 habilitet og innsidekunnskap
</a
> for Huitfeldt, på tross av at hans
1351 overordnede, sjefen for Økokrim, har meldt seg inhabil i saken. Dette
1352 er litt rart. I veilednigen
1353 «
<a href=
"https://www.regjeringen.no/globalassets/upload/krd/vedlegg/komm/veiledere/habilitet_i_kommuner_og_fylkeskommuner.pdf
">Habilitet
1354 i kommuner og fylkeskommuner
</a
>» av Kommunal- og regionaldepartementet
1355 forteller de hva som gjelder, riktig nok gjelder veiledningen ikke for
1356 Økokrim som jo ikke er kommune eller fylkeskommune, men jeg får ikke
1357 inntrykk av at dette er regler som kun gjelder for kommune og
1361 <p
>«
<strong
>2.1 Oversikt over inhabilitetsgrunnlagene
</strong
>
1363 <p
>De alminnelige reglene om inhabilitet for den offentlige
1364 forvaltningen er gitt i
1365 <a href=
"https://lovdata.no/dokument/NL/lov/
1967-
02-
10/KAPITTEL_2#KAPITTEL_2
">forvaltningsloven
1366 §§
6 til
10</a
>. Forvaltningslovens hovedregel om inhabilitet framgår
1367 av §
6. Her er det gitt tre ulike grunnlag som kan føre til at en
1368 tjenestemann eller folkevalgt blir inhabil. I §
6 første ledd
1369 bokstavene a til e er det oppstilt konkrete tilknytningsforhold mellom
1370 tjenestemannen og saken eller sakens parter som automatisk fører til
1371 inhabilitet. Annet ledd oppstiller en skjønnsmessig regel om at
1372 tjenestemannen også kan bli inhabil etter en konkret vurdering av
1373 inhabilitetsspørsmålet, der en lang rekke momenter kan være
1374 relevante. I tredje ledd er det regler om såkalt avledet
1375 inhabilitet. Det vil si at en underordnet tjenestemann blir inhabil
1376 fordi en overordnet er inhabil.»
</p
>
1379 <p
>Loven sier ganske enkelt «Er den overordnede tjenestemann ugild,
1380 kan avgjørelse i saken heller ikke treffes av en direkte underordnet
1381 tjenestemann i samme forvaltningsorgan.» Jeg antar tanken er at en
1382 underordnet vil stå i fare for å tilpasse sine konklusjoner til det
1383 overordnet vil ha fordel av, for å fortsatt ha et godt forhold til sin
1384 overordnede. Men jeg er ikke jurist og forstår nok ikke kompliserte
1385 juridiske vurderinger. For å sitere «Kamerat Napoleon» av George
1386 Orwell: «Alle dyr er like, men noen dyr er likere enn andre».
1391 <title>Invidious add-on for Kodi
20</title>
1392 <link>https://people.skolelinux.org/pere/blog/Invidious_add_on_for_Kodi_20.html
</link>
1393 <guid isPermaLink=
"true">https://people.skolelinux.org/pere/blog/Invidious_add_on_for_Kodi_20.html
</guid>
1394 <pubDate>Thu,
10 Aug
2023 19:
50:
00 +
0200</pubDate>
1395 <description><p
>I still enjoy
<a href=
"https://kodi.tv/
">Kodi
</a
> and
1396 <a href=
"https://libreelec.tv/
">LibreELEC
</a
> as my multimedia center
1397 at home. Sadly two of the services I really would like to use from
1398 within Kodi are not easily available. The most wanted add-on would be
1399 one making
<a href=
"https://archive.org/
">The Internet Archive
</a
>
1400 available, and it has
1401 <a href=
"https://kodi.wiki/view/Add-on:Internet_Archive
">not been
1402 working
</a
> for many years. The second most wanted add-on is one
1403 using
<a href=
"https://invidious.io/
">the Invidious privacy enhanced
1404 Youtube frontent
</a
>. A plugin for this has been partly working, but
1405 not been kept up to date in the Kodi add-on repository, and its
1406 upstream seem to have given it up in April this year, when the git
1407 repository was closed. A few days ago I got tired of this sad state
1408 of affairs and decided to
1409 <a href=
"https://github.com/petterreinholdtsen/kodi-invidious-plugin
">have
1410 a go at improving the Invidious add-on
</a
>. As
1411 <a href=
"https://github.com/iv-org/invidious/issues/
3872">Google has
1412 already attacked
</a
> the Invidious concept, so it need all the support
1413 if can get. My small contribution here is to improve the service
1414 status on Kodi.
</p
>
1416 <p
>I added support to the Invidious add-on for automatically picking a
1417 working Invidious instance, instead of requiring the user to specify
1418 the URL to a specific instance after installation. I also had a look
1419 at the set of patches floating around in the various forks on github,
1420 and decided to clean up at least some of the features I liked and
1421 integrate them into my new release branch. Now the plugin can handle
1422 channel and short video items in search results. Earlier it could
1423 only handle single video instances in the search response. I also
1424 brushed up the set of metadata displayed a bit, but hope I can figure
1425 out how to get more relevant metadata displayed.
</p
>
1427 <p
>Because I only use Kodi
20 myself, I only test on version
20 and am
1428 only motivated to ensure version
20 is working. Because of API changes
1429 between version
19 and
20, I suspect it will fail with earlier Kodi
1433 <a href=
"https://github.com/xbmc/repo-plugins/pull/
4363">asked to have
1434 the add-on added
</a
> to the official Kodi
20 repository, and is
1435 waiting to heard back from the repo maintainers.
</p
>
1437 <p
>As usual, if you use Bitcoin and want to show your support of my
1438 activities, please send Bitcoin donations to my address
1439 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
1444 <title>What did I learn from OpenSnitch this summer?
</title>
1445 <link>https://people.skolelinux.org/pere/blog/What_did_I_learn_from_OpenSnitch_this_summer_.html
</link>
1446 <guid isPermaLink=
"true">https://people.skolelinux.org/pere/blog/What_did_I_learn_from_OpenSnitch_this_summer_.html
</guid>
1447 <pubDate>Sun,
11 Jun
2023 08:
30:
00 +
0200</pubDate>
1448 <description><p
>With yesterdays
1449 <a href=
"https://www.debian.org/News/
2023/
20230610">release of Debian
1450 12 Bookworm
</a
>, I am happy to know the
1451 <a href=
"https://tracker.debian.org/pkg/opensnitch
">the interactive
1452 application firewall OpenSnitch
</a
> is available for a wider audience.
1453 I have been running it for a few weeks now, and have been surprised
1454 about some of the programs connecting to the Internet. Some programs
1455 are obviously calling out from my machine, like the NTP network based
1456 clock adjusting system and Tor to reach other Tor clients, but others
1457 were more dubious. For example, the KDE Window manager try to look up
1458 the host name in DNS, for no apparent reason, but if this lookup is
1459 blocked the KDE desktop get periodically stuck when I use it. Another
1460 surprise was how much Firefox call home directly to mozilla.com,
1461 mozilla.net and googleapis.com, to mention a few, when I visit other
1462 web pages. This direct connection happen even if I told Firefox to
1463 always use a proxy, and the proxy setting is ignored for this traffic.
1464 Other surprising connections come from audacity and dirmngr (I do not
1465 use Gnome). It took some trial and error to get a good default set of
1466 permissions. Without it, I would get popups asking for permissions at
1467 any time, also the most inconvenient ones where I am in the middle of
1468 a time sensitive gaming session.
</p
>
1470 <p
>I suspect some application developers should rethink when then need
1471 to use network connections or DNS lookups, and recommend testing
1472 OpenSnitch (only
<tt
>apt install opensnitch
</tt
> away in Debian
1473 Bookworm) to locate and report any surprising Internet connections on
1474 your desktop machine.
</p
>
1476 <p
>At the moment the upstream developer and Debian package maintainer
1477 is working on making the system more reliable in Debian, by enabling
1478 the eBPF kernel module to track processes and connections instead of
1479 depending in content in /proc/. This should enter unstable fairly
1482 <p
>As usual, if you use Bitcoin and want to show your support of my
1483 activities, please send Bitcoin donations to my address
1484 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
1486 <p
><strong
>Update
2023-
06-
12</strong
>: I got a tip about
1487 <a href=
"https://wiki.debian.org/PrivacyIssues
">a list of privacy
1488 issues in Free Software
</a
> and the
1489 <a href=
"irc://irc.debian.org/%
23debian-privacy
">#debian-privacy IRC
1490 channel
</a
> discussing these topics.
</p
>