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