<atom:link href="http://people.skolelinux.org/pere/blog/index.rss" rel="self" type="application/rss+xml" />
<item>
- <title>A bit more on privacy respecting health monitor / fitness tracker</title>
- <link>http://people.skolelinux.org/pere/blog/A_bit_more_on_privacy_respecting_health_monitor___fitness_tracker.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/A_bit_more_on_privacy_respecting_health_monitor___fitness_tracker.html</guid>
- <pubDate>Mon, 13 Aug 2018 09:00:00 +0200</pubDate>
- <description><p>A few days ago, I wondered if there are any privacy respecting
-health monitors and/or fitness trackers available for sale these days.
-I would like to buy one, but do not want to share my personal data
-with strangers, nor be forced to have a mobile phone to get data out
-of the unit. I've received some ideas, and would like to share them
-with you.
-
-One interesting data point was a pointer to a Free Software app for
-Android named
-<a href="https://github.com/Freeyourgadget/Gadgetbridge/">Gadgetbridge</a>.
-It provide cloudless collection and storing of data from a variety of
-trackers. Its
-<a href="https://github.com/Freeyourgadget/Gadgetbridge/#supported-devices">list
-of supported devices</a> is a good indicator for units where the
-protocol is fairly open, as it is obviously being handled by Free
-Software. Other units are reportedly encrypting the collected
-information with their own public key, making sure only the vendor
-cloud service is able to extract data from the unit. The people
-contacting me about it said they were using
-<a href="https://us.amazfit.com/shop/bip?variant=336750">Amazfit
-Bip</a> and
-<a href="http://www.xiaomimi6phone.com/xiaomi-mi-band-3-features-release-date-rumors/">Xiaomi
-Band 3</a>.</p>
-
-<p>I also got a suggestion to look at some of the units from Garmin.
-I was told their GPS watches can be connected via USB and show up as a
-USB storage device with
-<a href="https://www.gpsbabel.org/htmldoc-development/fmt_garmin_fit.html">Garmin
-FIT files</a> containing the collected measurements. While
-proprietary, FIT files apparently can be read at least by
-<a href="https://www.gpsbabel.org">GPSBabel</a> and the
-<a href="https://apps.nextcloud.com/apps/gpxpod">GpxPod</a> Nextcloud
-app. It is unclear to me if they can read step count and heart rate
-data. The person I talked to was using a Garmin
-<a href="https://buy.garmin.com/en-US/US/p/564291">Garmin Forerunner
-935</a>, which is a fairly expensive unit. I doubt it is worth it for
-a unit where the vendor clearly is trying its best to move from open
-to closed systems. I still remember when Garmin dropped NMEA support
-in its GPSes.</p>
-
-<p>A final idea was to build ones own unit, perhaps by basing it on a
-wearable hardware platforms like
-<a href="https://learn.adafruit.com/flora-geo-watch">the Flora Geo
-Watch</a>. Sound like fun, but I had more money than time to spend on
-the topic, so I suspect it will have to wait for another time.</p>
-
-<p>While I was working on tracking down links, I came across an
-inspiring TED talk by Dave Debronkart about
-<a href="https://archive.org/details/DavedeBronkart_2010X">being a
-e-patient</a>, and discovered the web site
-<a href="https://participatorymedicine.org/epatients/">Participatory
-Medicine</a>. If you too want to track your own health and fitness
-without having information about your private life floating around on
-computers owned by others, I recommend checking it out.</p>
+ <title>Nikita version 0.6 released - free software archive API server</title>
+ <link>http://people.skolelinux.org/pere/blog/Nikita_version_0_6_released___free_software_archive_API_server.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Nikita_version_0_6_released___free_software_archive_API_server.html</guid>
+ <pubDate>Thu, 10 Jun 2021 17:10:00 +0200</pubDate>
+ <description><p>I am very pleased to be able to share with you
+<a href="https://lists.nuug.no/pipermail/nikita-noark/2021-June/000576.html">the
+announcement of a new version of the archiving system Nikita</a>
+published by its lead developer Thomas Sødring:</p>
+
+<p><blockquote>
+
+<p>It is with great pleasure that we can announce a new release of
+nikita. Version 0.6
+(<a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core">https://gitlab.com/OsloMet-ABI/nikita-noark5-core</a>). This
+release makes new record keeping functionality available. This really
+is a maturity release. Both in terms of functionality but also code.
+Considerable effort has gone into refactoring the codebase and
+simplifying the code. Notable changes for this release include:</p>
+
+<ul>
+
+ <li>Significantly improved OData parsing</li>
+ <li>Support for business specific metadata and national identifiers</li>
+ <li>Continued implementation of domain model and endpoints</li>
+ <li>Improved testing</li>
+ <li>Ability to export and import from arkivstruktur.xml</li>
+
+</ul>
+
+<p>We are currently in the process of reaching an agreement with an
+archive institution to publish their picture archive using nikita with
+business specific metadata and we hope that we can share this with you
+soon. This is an interesting project as it allows the organisation to
+bring an older picture archive back to life while using the original
+metadata values stored as business specific metadata. Combined with
+OData means the scope and use of the archive is significantly
+increased and will showcase both the flexibility and power of
+Noark.</p>
+
+<p>I really think we are approaching a version 1.0 of nikita, even
+though there is still a lot of work to be done. The notable work at
+the moment is to implement access-control and full text indexing of
+documents.</p>
+
+<p>My sincere thanks to everyone who has contributed to this
+release!</p>
+
+<p>- Thomas</p>
+
+<p><strong>Release 0.6 2021-06-10 (d1ba5fc7e8bad0cfdce45ac20354b19d10ebbc7b)</strong></p>
+
+<ul>
+
+ <li>Refactor metadata entity search</li>
+ <li>Remove redundant security configuration</li>
+ <li>Make OpenAPI documentation work</li>
+ <li>Change database structure / inheritance model to a more sensible approach</li>
+ <li>Make it possible to move entities around the fonds structure</li>
+ <li>Implemented a number of missing endpoints</li>
+ <li>Make sure yml files are in sync</li>
+ <li>Implemented/finalised storing and use of
+ <ul>
+ <li>Business Specific Metadata</li>
+ <li>Norwegian National Identifiers</li>
+ <li>Cross Reference</li>
+ <li>Keyword</li>
+ <li>StorageLocation</li>
+ <li>Author</li>
+ <li>Screening for relevant objects</li>
+ <li>ChangeLog</li>
+ <li>EventLog</li>
+ </ul></li>
+ <li>Make generation of updated docker image part of successful CI pipeline</li>
+ <li>Implement pagination for all list requests
+ <ul>
+ <li>Refactor code to support lists</li>
+ <li>Refactor code for readability</li>
+ <li>Standardise the controller/service code</li>
+ </ul></li>
+ <li>Finalise File->CaseFile expansion and Record->registryEntry/recordNote
+expansion</li>
+ <li>Improved Continuous Integration (CI) approach via gitlab</li>
+ <li>Changed conversion approach to generate tagged PDF documents</li>
+ <li>Updated dependencies
+ <ul>
+ <li>For security reasons</li>
+ <li>Brought codebase to spring-boot version 2.5.0</li>
+ <li>Remove import of necessary dependencies</li>
+ <li>Remove non-used metrics classes</li>
+ </ul></li>
+ <li>Added new analysis to CI including</li>
+ <li>Implemented storing of Keyword</li>
+ <li>Implemented storing of Screening and ScreeningMetadata</li>
+ <li>Improved OData support
+ <ul>
+ <li>Better support for inheritance in queries where applicable</li>
+ <li>Brought in more OData tests</li>
+ <li>Improved OData/hibernate understanding of queries</li>
+ <li>Implement $count, $orderby</li>
+ <li>Finalise $top and $skip</li>
+ <li>Make sure & is used between query parameters</li>
+ </ul></li>
+ <li>Improved Testing in codebase
+ <ul>
+ <li>A new approach for integration tests to make test more readable</li>
+ <li>Introduce tests in parallel with code development for TDD approach</li>
+ <li>Remove test that required particular access to storage</li>
+ </ul></li>
+ <li>Implement case-handling process from received email to case-handler
+ <ul>
+ <li>Develop required GUI elements (digital postroom from email)</li>
+ <li>Introduced leader, quality control and postroom roles</li>
+ </ul></li>
+ <li>Make PUT requests return 200 OK not 201 CREATED</li>
+ <li>Make DELETE requests return 204 NO CONTENT not 200 OK</li>
+ <li>Replaced 'oppdatert*' with 'endret*' everywhere to match latest spec</li>
+ <li>Upgrade Gitlab CI to use python > 3 for CI scripts</li>
+ <li>Bug fixes
+ <ul>
+ <li>Fix missing ALLOW</li>
+ <li>Fix reading of objects from jar file during start-up</li>
+ <li>Reduce the number of warnings in the codebase</li>
+ <li>Fix delete problems</li>
+ <li>Make better use of cascade for "leaf" objects</li>
+ <li>Add missing annotations where relevant</li>
+ <li>Remove the use of ETAG for delete</li>
+ <li>Fix missing/wrong/broken rels discovered by runtest</li>
+ <li>Drop unofficial convertFil (konverterFil) end point</li>
+ <li>Fix regex problem for dateTime</li>
+ <li>Fix multiple static analysis issues discovered by coverity</li>
+ <li>Fix proxy problem when looking for object class names</li>
+ <li>Add many missing translated Norwegian to English (internal)
+attribute/entity names</li>
+ <li>Change UUID generation approach to allow code also set a value</li>
+ <li>Fix problem with Part/PartParson</li>
+ <li>Fix problem with empty OData search results</li>
+ <li>Fix metadata entity domain problem</li>
+ </ul></li>
+ <li>General Improvements
+ <ul>
+ <li>Makes future refactoring easier as coupling is reduced</li>
+ <li>Allow some constant variables to be set from property file</li>
+ <li>Refactor code to make reflection work better across codebase</li>
+ <li>Reduce the number of @Service layer classes used in @Controller
+classes</li>
+ <li>Be more consistent on naming of similar variable types</li>
+ <li>Start printing rels/href if they are applicable</li>
+ <li>Cleaner / standardised approach to deleting objects</li>
+ <li>Avoid concatenation when using StringBuilder</li>
+ <li>Consolidate code to avoid duplication</li>
+ <li>Tidy formatting for a more consistent reading style across
+similar class files</li>
+ <li>Make throw a log.error message not an log.info message</li>
+ <li>Make throw print the log value rather than printing in multiple
+places</li>
+ <li>Add some missing pronom codes</li>
+ <li>Fix time formatting issue in Gitlab CI</li>
+ <li>Remove stale / unused code</li>
+ <li>Use only UUID datatype rather than combination String/UUID for systemID</li>
+ <li>Mark variables final and @NotNull where relevant to indicate
+intention</li>
+ </ul></li>
+ <li>Change Date values to DateTime to maintain compliance with Noark 5
+standard</li>
+ <li>Domain model improvements using Hypersistence Optimizer
+ <ul>
+ <li>Move @Transactional from class to methods to avoid borrowing the JDBC Connection unnecessarily</li>
+ <li>Fix OneToOne performance issues</li>
+ <li>Fix ManyToMany performance issues</li>
+ <li>Add missing bidirectional synchronization support</li>
+ <li>Fix ManyToMany performance issue</li>
+ </ul></li>
+ <li>Make List<> and Set<> use final-keyword to avoid potential problems
+during update operations</li>
+ <li>Changed internal URLs, replaced "hateoas-api" with "api".</li>
+ <li>Implemented storing of Precedence.</li>
+ <li>Corrected handling of screening.</li>
+ <li>Corrected _links collection returned for list of mixed entity types
+to match the specific entity.</li>
+ <li>Improved several internal structures.</li>
+</ul>
+
+</blockquote></p>
+
+<p>If free and open standardized archiving API sound interesting to
+you, please contact us on IRC
+(<a href="irc://irc.oftc.net/%23nikita">#nikita on
+irc.oftc.net</a>) or email
+(<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
+mailing list</a>).</p>
<p>As usual, if you use Bitcoin and want to show your support of my
activities, please send Bitcoin donations to my address
</item>
<item>
- <title>Privacy respecting health monitor / fitness tracker?</title>
- <link>http://people.skolelinux.org/pere/blog/Privacy_respecting_health_monitor___fitness_tracker_.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Privacy_respecting_health_monitor___fitness_tracker_.html</guid>
- <pubDate>Tue, 7 Aug 2018 16:00:00 +0200</pubDate>
- <description><p>Dear lazyweb,</p>
-
-<p>I wonder, is there a fitness tracker / health monitor available for
-sale today that respect the users privacy? With this I mean a
-watch/bracelet capable of measuring pulse rate and other
-fitness/health related values (and by all means, also the correct time
-and location if possible), which is <strong>only</strong> provided for
-me to extract/read from the unit with computer without a radio beacon
-and Internet connection. In other words, it do not depend on a cell
-phone app, and do make the measurements available via other peoples
-computer (aka "the cloud"). The collected data should be available
-using only free software. I'm not interested in depending on some
-non-free software that will leave me high and dry some time in the
-future. I've been unable to find any such unit. I would like to buy
-it. The ones I have seen for sale here in Norway are proud to report
-that they share my health data with strangers (aka "cloud enabled").
-Is there an alternative? I'm not interested in giving money to people
-requiring me to accept "privacy terms" to allow myself to measure my
-own health.</p>
-
+ <title>VLC bittorrent plugin in Bullseye, saved by the bell?</title>
+ <link>http://people.skolelinux.org/pere/blog/VLC_bittorrent_plugin_in_Bullseye__saved_by_the_bell_.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/VLC_bittorrent_plugin_in_Bullseye__saved_by_the_bell_.html</guid>
+ <pubDate>Sat, 1 May 2021 11:00:00 +0200</pubDate>
+ <description><p>Yesterday morning I got a warning call from the Debian quality
+control system that
+<a href="https://tracker.debian.org/pkg/vlc-plugin-bittorrent">the VLC
+bittorrent plugin</a> was due to be removed because of a release
+critical bug in one of its dependencies. As you might remember, this
+plugin make VLC able to stream videos directly from a bittorrent
+source using both torrent files and magnet links, similar to using a
+HTTP source. I believe such protocol support is a vital feature in
+VLC, allowing efficient streaming from sources such at the almost 7
+million movies in <a href="https://archive.org/">the Internet
+Archive</a>.</p>
+
+<p>The dependency was the unmaintained
+<a href="https://tracker.debian.org/pkg/libtorrent-rasterbar">libtorrent-rasterbar</a>
+package, and <a href="https://bugs.debian.org/987306">the bug in
+question</a> blocked its python library from working properly. As I
+did not want Bullseye to release without bittorrent support in VLC, I
+set out to check out the status, and track down a fix for the problem.
+Luckily the issue had already been identified and fixed upstream,
+providing everything needed. All I needed to do was to fetch the
+Debian git repository, extract and trim the patch from upstream and
+apply it to the Debian package for upload.</p>
+
+<p>The fixed library was uploaded yesterday evening. But that is not
+enough to get it into Bullseye, as Debian is currently in package
+freeze to prepare for a new next stable release. Only non-critical
+packages with
+<a href="https://wiki.debian.org/ContinuousIntegration/autopkgtest">autopkgtest
+setup</a> included, in other words able to validate automatically that
+the package is working, are allowed to migrate automatically into the
+next release at this stage. And the unmaintained libtorrent-rasterbar
+lack such testing, and thus needed a manual override. I am happy to
+report that such manual override was approved a few minutes ago, thus
+increasing significantly the chance of VLC bittorrent streaming being
+available out of the box also for Debian/Buster users. A bit too
+close shave for my liking, as the Bullseye release is most likely just
+a few days away, and this did feel like the package was saved by the
+bell. I am so glad the warning email showed up in time for me to
+handle the issue, and a big thanks go to the Debian Release team for
+the quick feedback on
+<a href="irc://irc.debian.org/%23debian-release">#debian-release</a>
+and their <a href="https://bugs.debian.org/987865">swift
+unblocking</a>.</p>
+
<p>As usual, if you use Bitcoin and want to show your support of my
activities, please send Bitcoin donations to my address
<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
</item>
<item>
- <title>Sharing images with friends and family using RSS and EXIF/XMP metadata</title>
- <link>http://people.skolelinux.org/pere/blog/Sharing_images_with_friends_and_family_using_RSS_and_EXIF_XMP_metadata.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Sharing_images_with_friends_and_family_using_RSS_and_EXIF_XMP_metadata.html</guid>
- <pubDate>Tue, 31 Jul 2018 23:30:00 +0200</pubDate>
- <description><p>For a while now, I have looked for a sensible way to share images
-with my family using a self hosted solution, as it is unacceptable to
-place images from my personal life under the control of strangers
-working for data hoarders like Google or Dropbox. The last few days I
-have drafted an approach that might work out, and I would like to
-share it with you. I would like to publish images on a server under
-my control, and point some Internet connected display units using some
-free and open standard to the images I published. As my primary
-language is not limited to ASCII, I need to store metadata using
-UTF-8. Many years ago, I hoped to find a digital photo frame capable
-of reading a RSS feed with image references (aka using the
-&lt;enclosure&gt; RSS tag), but was unable to find a current supplier
-of such frames. In the end I gave up that approach.</p>
-
-<p>Some months ago, I discovered that
-<a href="https://www.jwz.org/xscreensaver/">XScreensaver</a> is able to
-read images from a RSS feed, and used it to set up a screen saver on
-my home info screen, showing images from the Daily images feed from
-NASA. This proved to work well. More recently I discovered that
-<a href="https://kodi.tv">Kodi</a> (both using
-<a href="https://www.openelec.tv/">OpenELEC</a> and
-<a href="https://libreelec.tv">LibreELEC</a>) provide the
-<a href="https://github.com/grinsted/script.screensaver.feedreader">Feedreader</a>
-screen saver capable of reading a RSS feed with images and news. For
-fun, I used it this summer to test Kodi on my parents TV by hooking up
-a Raspberry PI unit with LibreELEC, and wanted to provide them with a
-screen saver showing selected pictures from my selection.</p>
-
-<p>Armed with motivation and a test photo frame, I set out to generate
-a RSS feed for the Kodi instance. I adjusted my <a
-href="https://freedombox.org/">Freedombox</a> instance, created
-/var/www/html/privatepictures/, wrote a small Perl script to extract
-title and description metadata from the photo files and generate the
-RSS file. I ended up using Perl instead of python, as the
-libimage-exiftool-perl Debian package seemed to handle the EXIF/XMP
-tags I ended up using, while python3-exif did not. The relevant EXIF
-tags only support ASCII, so I had to find better alternatives. XMP
-seem to have the support I need.</p>
-
-<p>I am a bit unsure which EXIF/XMP tags to use, as I would like to
-use tags that can be easily added/updated using normal free software
-photo managing software. I ended up using the tags set using this
-exiftool command, as these tags can also be set using digiKam:</p>
-
-<blockquote><pre>
-exiftool -headline='The RSS image title' \
- -description='The RSS image description.' \
- -subject+=for-family photo.jpeg
-</pre></blockquote>
-
-<p>I initially tried the "-title" and "keyword" tags, but they were
-invisible in digiKam, so I changed to "-headline" and "-subject". I
-use the keyword/subject 'for-family' to flag that the photo should be
-shared with my family. Images with this keyword set are located and
-copied into my Freedombox for the RSS generating script to find.</p>
-
-<p>Are there better ways to do this? Get in touch if you have better
-suggestions.</p>
+ <title>Updated Valutakrambod, now also with information from NBX</title>
+ <link>http://people.skolelinux.org/pere/blog/Updated_Valutakrambod__now_also_with_information_from_NBX.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Updated_Valutakrambod__now_also_with_information_from_NBX.html</guid>
+ <pubDate>Sat, 27 Feb 2021 13:30:00 +0100</pubDate>
+ <description><p>I have neglected the Valutakrambod library for a while, but decided
+this weekend to give it a face lift. I fixed a few minor glitches in
+several of the service drivers, where the API had changed since I last
+looked at the code. I also added support for fetching the order book
+from the newcomer Norwegian Bitcoin Exchange.</p>
+
+<p>I also decided to migrate the project from github to gitlab in the
+process. If you want a python library for talking to various currency
+exchanges, check out
+<a href="https://gitlab.com/petterreinholdtsen/valutakrambod">code for
+valutakrambod</a>.</p>
+
+<p>This is what the output from '<tt>bin/btc-rates-curses -c</tt>'
+looked like a few minutes ago:</p>
+
+<p><blockquote><pre>
+ Name Pair Bid Ask Spread Ftcd Age Freq
+ Bitfinex BTCEUR 39229.0000 39246.0000 0.0% 44 44 nan
+ Bitmynt BTCEUR 39071.0000 41048.9000 4.8% 43 74 nan
+ Bitpay BTCEUR 39326.7000 nan nan% 39 nan nan
+ Bitstamp BTCEUR 39398.7900 39417.3200 0.0% 0 0 1
+ Bl3p BTCEUR 39158.7800 39581.9000 1.1% 0 nan 3
+ Coinbase BTCEUR 39197.3100 39621.9300 1.1% 38 nan nan
+ Kraken+BTCEUR 39432.9000 39433.0000 0.0% 0 0 0
+ Paymium BTCEUR 39437.2100 39499.9300 0.2% 0 2264 nan
+ Bitmynt BTCNOK 409750.9600 420516.8500 2.6% 43 74 nan
+ Bitpay BTCNOK 410332.4000 nan nan% 39 nan nan
+ Coinbase BTCNOK 408675.7300 412813.7900 1.0% 38 nan nan
+ MiraiEx BTCNOK 412174.1800 418396.1500 1.5% 34 nan nan
+ NBX BTCNOK 405835.9000 408921.4300 0.8% 33 nan nan
+ Bitfinex BTCUSD 47341.0000 47355.0000 0.0% 44 53 nan
+ Bitpay BTCUSD 47388.5100 nan nan% 39 nan nan
+ Coinbase BTCUSD 47153.6500 47651.3700 1.0% 37 nan nan
+ Gemini BTCUSD 47416.0900 47439.0500 0.0% 36 336 nan
+ Hitbtc BTCUSD 47429.9900 47386.7400 -0.1% 0 0 0
+ Kraken+BTCUSD 47401.7000 47401.8000 0.0% 0 0 0
+ Exchangerates EURNOK 10.4012 10.4012 0.0% 38 76236 nan
+ Norgesbank EURNOK 10.4012 10.4012 0.0% 31 76236 nan
+ Bitstamp EURUSD 1.2030 1.2045 0.1% 2 2 1
+ Exchangerates EURUSD 1.2121 1.2121 0.0% 38 76236 nan
+ Norgesbank USDNOK 8.5811 8.5811 0.0% 31 76236 nan
+</pre></blockquote></p>
+
+<p>Yes, I notice the negative spread on Hitbtc. Either I fail to
+understand their Websocket API or they are sending bogus data. I've
+seen the same with Kraken, and suspect there is something wrong with
+the data they send.</p>
<p>As usual, if you use Bitcoin and want to show your support of my
activities, please send Bitcoin donations to my address
</item>
<item>
- <title>Simple streaming the Linux desktop to Kodi using GStreamer and RTP</title>
- <link>http://people.skolelinux.org/pere/blog/Simple_streaming_the_Linux_desktop_to_Kodi_using_GStreamer_and_RTP.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Simple_streaming_the_Linux_desktop_to_Kodi_using_GStreamer_and_RTP.html</guid>
- <pubDate>Thu, 12 Jul 2018 17:55:00 +0200</pubDate>
- <description><p>Last night, I wrote
-<a href="http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html">a
-recipe to stream a Linux desktop using VLC to a instance of Kodi</a>.
-During the day I received valuable feedback, and thanks to the
-suggestions I have been able to rewrite the recipe into a much simpler
-approach requiring no setup at all. It is a single script that take
-care of it all.</p>
-
-<p>This new script uses GStreamer instead of VLC to capture the
-desktop and stream it to Kodi. This fixed the video quality issue I
-saw initially. It further removes the need to add a m3u file on the
-Kodi machine, as it instead connects to
-<a href="https://kodi.wiki/view/JSON-RPC_API/v8">the JSON-RPC API in
-Kodi</a> and simply ask Kodi to play from the stream created using
-GStreamer. Streaming the desktop to Kodi now become trivial. Copy
-the script below, run it with the DNS name or IP address of the kodi
-server to stream to as the only argument, and watch your screen show
-up on the Kodi screen. Note, it depend on multicast on the local
-network, so if you need to stream outside the local network, the
-script must be modified. Also note, I have no idea if audio work, as
-I only care about the picture part.</p>
-
-<blockquote><pre>
+ <title>Boken «Hvordan knuse overvåkningskapitalismen» lanseres på norsk</title>
+ <link>http://people.skolelinux.org/pere/blog/Boken__Hvordan_knuse_overv_kningskapitalismen__lanseres_p__norsk.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Boken__Hvordan_knuse_overv_kningskapitalismen__lanseres_p__norsk.html</guid>
+ <pubDate>Tue, 26 Jan 2021 19:10:00 +0100</pubDate>
+ <description><p>Etter intenst arbeid over mange måneder er endelig den norske
+utgaven av «Hvordan knuse overvåkningskapitalismen» av Cory Doctorow
+ferdig og klar til å glede millioner av lesere over hele verden.
+Følgende pressemelding ble nettopp sendt ut til norske redaksjoner:
+
+<blockquote>
+
+<p><strong>Hva gjør stordata med oss, og hvordan gjør algoritmene
+«fake news» til realiter?</strong></p>
+
+<p>Nå foreligger en viktig bok om temaet også på norsk. Boken klargjør
+og foreslår hvordan vi selv som enkeltpersoner, men også nasjonalt og
+internasjonalt kan bekjempe stordatakonsentrasjonene;
+«overvåkingskapitalismen». Boken er «Hvordan knuse
+overvåkingskapitalismen» av dr. Cory Doctorow. Den engelske
+bokutgivelsen kom for noen dager siden og lanseres med et Webinar
+torsdag 2021-01-28. Doctorow besøkte Norge og NUUG i desember med sin
+presentasjon Monopoly, Not Mind Control: What's Really Happening With
+"Surveillance Capitalism".</p>
+
+<p>I funn etter funn, eksempel etter eksempel, gjennomgår og
+analyserer dr. Doctorow de utfordringer vi møter i større og større
+omfang. Ikke bare i USA, men også her hjemme.</p>
+
+<p>Cory Doctorow er en britisk-kanadisk forfatter, journalist og
+aktivist, kjent for sine science fiction-romaner, for arbeidet for
+Creative Commons-bevegelsen, og for sine bidrag til reform av
+opphavsretten. Han er både æresdoktor og gjesteforeleser i
+datavitenskap ved Open University i UK, konsulent for Electronic
+Frontier Foundation, og godt kjent for innsiktsfullt å kommentere og
+skrive om digital utvikling.</p>
+
+<p>Boken lanseres nå på norsk, både som ebok og på papir, oversatt av
+en dugnadsgjeng ledet av Petter Reinholdtsen.</p>
+
+<p>Boken reiser noen helt grunnleggende og samfunnskritiske spørsmål:
+Hva fører det til når store deler av Internettet domineres av få store
+aktører og deres styringsverktøy og algoritmer?</p>
+
+<p>Som individer bør vi være opptatt at grenser blir satt og håndhevet
+- grenser for overvåkning av individet, for utøvelse av kommersiell
+og politisk påvirkning, og for monopoldannelser i
+dataverdenen. Slik grensesetting styrker personvernet.</p>
+
+<p>Konkurransetilsynet har ansvaret for at konkurranselovens § 11 skal
+forby «et dominerende foretak for utilbørlig å utnytte og misbruke
+sin dominerende stilling». Et tilsvarende forbud omfattes også av
+EØS-avtalens artikkel 54. Boken går i detalj om serien av
+innskrenkninger vi møter i valgfriheten, innskrenkninger som denne
+lovgivningen nettopp skal forhindre. Håndhevelse av en slik lovgivning
+er også til fordel for mindre næringsdrivende som uten dette får
+begrenset sine faktiske eller potensielle muligheter for vekst og
+etablering. «Slik atferd kan utgjøre et misbruk og kan ta ulike
+former», skriver Konkurransetilsynet.</p>
+
+<p>Cory Doctorow går i sin bok lengre enn det med sine mange eksempler
+på forhold det burde vært grepet inn mot.</p>
+
+<p>«Boken bør bidra til et sterkere engasjemen fra voktere av
+Internettet nasjonalt og internasjonalt - EU medregnet» sier
+oversetter Ole-Erik Yrvin og fortsetter: «Vi har derfor
+<a href="http://people.skolelinux.org/pere/blog/images/2021-01-26-knus-overvaakningskapitalismen-helleland.pdf">allerede
+tatt opp bokens forslag</a> direkte med Distrikts- og
+digitaliseringsminister Linda Hofstad Helleland (H) og
+Konkurransetilsynet slik at de kan følges opp.»</p>
+
+<p>«Også Norge bør innta en pådriverrolle i denne utviklingen», sier
+Petter Reinholdtsen. «Tiden er knapp, og tilsynsmyndighetene må få
+de verktøy og de ressurser de trenger for at vi her hjemme skal oppnå
+nødvendige resultater. Dette gjelder ikke bare vår egen generasjon;
+det gjelder alle generasjoner fremover», avslutter Petter
+Reinholdsen.</p>
+
+<p>Kontaktinformasjon:</p>
+
+<ul>
+
+<li>Ole-Erik Yrvin, oeyrvin (at) gmail.com, +47 46500450</li>
+
+<li>Petter Reinholdtsen, pere (at) hungry.com</li>
+
+</ul>
+
+<p>Relevante lenker:<p>
+
+<ul>
+
+<li>«Hvordan knuse overvåkingskapitalismen» kan bestilles på papir,
+som ebok eller leses på nett via
+<a href="http://www.hungry.com/~pere/publisher/">http://www.hungry.com/~pere/publisher/</a>.</li>
+
+<li>Opptak av NUUG-møtet Monopoly, Not Mind Control: What's Really
+Happening With "Surveillance Capitalism" med Cory Doctorow,
+<a href="https://www.nuug.no/aktiviteter/20201208-doctorow/">https://www.nuug.no/aktiviteter/20201208-doctorow/</a>.</li>
+
+<li>Påmelding til webinar som lanserer den engelske utgaven kan gjøres
+via
+<a href="https://craphound.com/category/destroy/">https://craphound.com/category/destroy/</a>.</li>
+
+<li>Cory Doctorows nettsted er
+<a href="https://craphound.com/">https://craphound.com/</a>.</li>
+
+</ul>
+
+</blockquote>
+
+<p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
+det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
+til min adresse
+<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
+Merk, betaling med bitcoin er ikke anonymt. :)</p>
+</description>
+ </item>
+
+ <item>
+ <title>Latest Jami back in Debian Testing, and scriptable using dbus</title>
+ <link>http://people.skolelinux.org/pere/blog/Latest_Jami_back_in_Debian_Testing__and_scriptable_using_dbus.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Latest_Jami_back_in_Debian_Testing__and_scriptable_using_dbus.html</guid>
+ <pubDate>Tue, 12 Jan 2021 17:00:00 +0100</pubDate>
+ <description><p>After a lot of hard work by its maintainer Alexandre Viau and
+others, the decentralized communication platform
+<a href="https://en.wikipedia.org/wiki/Jami_(software)">Jami</a>
+(earlier known as Ring), managed to get
+<a href="https://tracker.debian.org/pkg/ring">its latest version</a>
+into Debian Testing. Several of its dependencies has caused build and
+propagation problems, which all seem to be solved now.</p>
+
+<p>In addition to the fact that Jami is decentralized, similar to how
+bittorrent is decentralized, I first of all like how it is not
+connected to external IDs like phone numbers. This allow me to set up
+computers to send me notifications using Jami without having to find
+get a phone number for each computer. Automatic notification via Jami
+is also made trivial thanks to the provided client side API (as a DBus
+service). Here is my bourne shell script demonstrating how to let any
+system send a message to any Jami address. It will create a new
+identity before sending the message, if no Jami identity exist
+already:</p>
+
+<p><pre>
#!/bin/sh
#
-# Stream the Linux desktop view to Kodi. See
-# http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html
-# for backgorund information.
-
-# Make sure the stream is stopped in Kodi and the gstreamer process is
-# killed if something go wrong (for example if curl is unable to find the
-# kodi server). Do the same when interrupting this script.
-kodicmd() {
- host="$1"
- cmd="$2"
- params="$3"
- curl --silent --header 'Content-Type: application/json' \
- --data-binary "{ \"id\": 1, \"jsonrpc\": \"2.0\", \"method\": \"$cmd\", \"params\": $params }" \
- "http://$host/jsonrpc"
-}
-cleanup() {
- if [ -n "$kodihost" ] ; then
- # Stop the playing when we end
- playerid=$(kodicmd "$kodihost" Player.GetActivePlayers "{}" |
- jq .result[].playerid)
- kodicmd "$kodihost" Player.Stop "{ \"playerid\" : $playerid }" > /dev/null
- fi
- if [ "$gstpid" ] && kill -0 "$gstpid" >/dev/null 2>&1; then
- kill "$gstpid"
- fi
-}
-trap cleanup EXIT INT
+# Usage: $0 <jami-address> <message>
+#
+# Send <message> to <jami-address>, create local jami account if
+# missing.
+#
+# License: GPL v2 or later at your choice
+# Author: Petter Reinholdtsen
-if [ -n "$1" ]; then
- kodihost=$1
- shift
-else
- kodihost=kodi.local
+
+if [ -z "$HOME" ] ; then
+ echo "error: missing \$HOME, required for dbus to work"
+ exit 1
fi
-mcast=239.255.0.1
-mcastport=1234
-mcastttl=1
+# First, get dbus running if not already running
+DBUSLAUNCH=/usr/bin/dbus-launch
+PIDFILE=/run/asterisk/dbus-session.pid
+if [ -e $PIDFILE ] ; then
+ . $PIDFILE
+ if ! kill -0 $DBUS_SESSION_BUS_PID 2>/dev/null ; then
+ unset DBUS_SESSION_BUS_ADDRESS
+ fi
+fi
+if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && [ -x "$DBUSLAUNCH" ]; then
+ DBUS_SESSION_BUS_ADDRESS="unix:path=$HOME/.dbus"
+ dbus-daemon --session --address="$DBUS_SESSION_BUS_ADDRESS" --nofork --nopidfile --syslog-only < /dev/null > /dev/null 2>&1 3>&1 &
+ DBUS_SESSION_BUS_PID=$!
+ (
+ echo DBUS_SESSION_BUS_PID=$DBUS_SESSION_BUS_PID
+ echo DBUS_SESSION_BUS_ADDRESS=\""$DBUS_SESSION_BUS_ADDRESS"\"
+ echo export DBUS_SESSION_BUS_ADDRESS
+ ) > $PIDFILE
+ . $PIDFILE
+fi &
+
+dringop() {
+ part="$1"; shift
+ op="$1"; shift
+ dbus-send --session \
+ --dest="cx.ring.Ring" /cx/ring/Ring/$part cx.ring.Ring.$part.$op $*
+}
-pasrc=$(pactl list | grep -A2 'Source #' | grep 'Name: .*\.monitor$' | \
- cut -d" " -f2|head -1)
-gst-launch-1.0 ximagesrc use-damage=0 ! video/x-raw,framerate=30/1 ! \
- videoconvert ! queue2 ! \
- x264enc bitrate=8000 speed-preset=superfast tune=zerolatency qp-min=30 \
- key-int-max=15 bframes=2 ! video/x-h264,profile=high ! queue2 ! \
- mpegtsmux alignment=7 name=mux ! rndbuffersize max=1316 min=1316 ! \
- udpsink host=$mcast port=$mcastport ttl-mc=$mcastttl auto-multicast=1 sync=0 \
- pulsesrc device=$pasrc ! audioconvert ! queue2 ! avenc_aac ! queue2 ! mux. \
- > /dev/null 2>&1 &
-gstpid=$!
+dringopreply() {
+ part="$1"; shift
+ op="$1"; shift
+ dbus-send --session --print-reply \
+ --dest="cx.ring.Ring" /cx/ring/Ring/$part cx.ring.Ring.$part.$op $*
+}
-# Give stream a second to get going
-sleep 1
+firstaccount() {
+ dringopreply ConfigurationManager getAccountList | \
+ grep string | awk -F'"' '{print $2}' | head -n 1
+}
-# Ask kodi to start streaming using its JSON-RPC API
-kodicmd "$kodihost" Player.Open \
- "{\"item\": { \"file\": \"udp://@$mcast:$mcastport\" } }" > /dev/null
+account=$(firstaccount)
-# wait for gst to end
-wait "$gstpid"
-</pre></blockquote>
+if [ -z "$account" ] ; then
+ echo "Missing local account, trying to create it"
+ dringop ConfigurationManager addAccount \
+ dict:string:string:"Account.type","RING","Account.videoEnabled","false"
+ account=$(firstaccount)
+ if [ -z "$account" ] ; then
+ echo "unable to create local account"
+ exit 1
+ fi
+fi
-<p>I hope you find the approach useful. I know I do.</p>
+# Not using dringopreply to ensure $2 can contain spaces
+dbus-send --print-reply --session \
+ --dest=cx.ring.Ring \
+ /cx/ring/Ring/ConfigurationManager \
+ cx.ring.Ring.ConfigurationManager.sendTextMessage \
+ string:"$account" string:"$1" \
+ dict:string:string:"text/plain","$2"
+</pre></p>
+
+<p>If you want to check it out yourself, visit the
+<a href="https://jami.net/">the Jami system project page</a> to learn
+more, and install the latest Jami client from Debian Unstable or
+Testing.</p>
<p>As usual, if you use Bitcoin and want to show your support of my
activities, please send Bitcoin donations to my address
</item>
<item>
- <title>Streaming the Linux desktop to Kodi using VLC and RTSP</title>
- <link>http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html</guid>
- <pubDate>Thu, 12 Jul 2018 02:00:00 +0200</pubDate>
- <description><p>PS: See
-<ahref="http://people.skolelinux.org/pere/blog/Simple_streaming_the_Linux_desktop_to_Kodi_using_GStreamer_and_RTP.html">the
-followup post</a> for a even better approach.</p>
-
-<p>A while back, I was asked by a friend how to stream the desktop to
-my projector connected to Kodi. I sadly had to admit that I had no
-idea, as it was a task I never had tried. Since then, I have been
-looking for a way to do so, preferable without much extra software to
-install on either side. Today I found a way that seem to kind of
-work. Not great, but it is a start.</p>
-
-<p>I had a look at several approaches, for example
-<a href="https://github.com/mfoetsch/dlna_live_streaming">using uPnP
-DLNA as described in 2011</a>, but it required a uPnP server, fuse and
-local storage enough to store the stream locally. This is not going
-to work well for me, lacking enough free space, and it would
-impossible for my friend to get working.</p>
-
-<p>Next, it occurred to me that perhaps I could use VLC to create a
-video stream that Kodi could play. Preferably using
-broadcast/multicast, to avoid having to change any setup on the Kodi
-side when starting such stream. Unfortunately, the only recipe I
-could find using multicast used the rtp protocol, and this protocol
-seem to not be supported by Kodi.</p>
-
-<p>On the other hand, the rtsp protocol is working! Unfortunately I
-have to specify the IP address of the streaming machine in both the
-sending command and the file on the Kodi server. But it is showing my
-desktop, and thus allow us to have a shared look on the big screen at
-the programs I work on.</p>
-
-<p>I did not spend much time investigating codeces. I combined the
-rtp and rtsp recipes from
-<a href="https://wiki.videolan.org/Documentation:Streaming_HowTo/Command_Line_Examples/">the
-VLC Streaming HowTo/Command Line Examples</a>, and was able to get
-this working on the desktop/streaming end.</p>
-
-<blockquote><pre>
-vlc screen:// --sout \
- '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{dst=projector.local,port=1234,sdp=rtsp://192.168.11.4:8080/test.sdp}'
-</pre></blockquote>
-
-<p>I ssh-ed into my Kodi box and created a file like this with the
-same IP address:</p>
-
-<blockquote><pre>
-echo rtsp://192.168.11.4:8080/test.sdp \
- > /storage/videos/screenstream.m3u
-</pre></blockquote>
-
-<p>Note the 192.168.11.4 IP address is my desktops IP address. As far
-as I can tell the IP must be hardcoded for this to work. In other
-words, if someone elses machine is going to do the steaming, you have
-to update screenstream.m3u on the Kodi machine and adjust the vlc
-recipe. To get started, locate the file in Kodi and select the m3u
-file while the VLC stream is running. The desktop then show up in my
-big screen. :)</p>
-
-<p>When using the same technique to stream a video file with audio,
-the audio quality is really bad. No idea if the problem is package
-loss or bad parameters for the transcode. I do not know VLC nor Kodi
-enough to tell.</p>
-
-<p><strong>Update 2018-07-12</strong>: Johannes Schauer send me a few
-succestions and reminded me about an important step. The "screen:"
-input source is only available once the vlc-plugin-access-extra
-package is installed on Debian. Without it, you will see this error
-message: "VLC is unable to open the MRL 'screen://'. Check the log
-for details." He further found that it is possible to drop some parts
-of the VLC command line to reduce the amount of hardcoded information.
-It is also useful to consider using cvlc to avoid having the VLC
-window in the desktop view. In sum, this give us this command line on
-the source end
-
-<blockquote><pre>
-cvlc screen:// --sout \
- '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{sdp=rtsp://:8080/}'
-</pre></blockquote>
-
-<p>and this on the Kodi end<p>
-
-<blockquote><pre>
-echo rtsp://192.168.11.4:8080/ \
- > /storage/videos/screenstream.m3u
-</pre></blockquote>
-
-<p>Still bad image quality, though. But I did discover that streaming
-a DVD using dvdsimple:///dev/dvd as the source had excellent video and
-audio quality, so I guess the issue is in the input or transcoding
-parts, not the rtsp part. I've tried to change the vb and ab
-parameters to use more bandwidth, but it did not make a
-difference.</p>
-
-<p>I further received a suggestion from Einar Haraldseid to try using
-gstreamer instead of VLC, and this proved to work great! He also
-provided me with the trick to get Kodi to use a multicast stream as
-its source. By using this monstrous oneliner, I can stream my desktop
-with good video quality in reasonable framerate to the 239.255.0.1
-multicast address on port 1234:
-
-<blockquote><pre>
-gst-launch-1.0 ximagesrc use-damage=0 ! video/x-raw,framerate=30/1 ! \
- videoconvert ! queue2 ! \
- x264enc bitrate=8000 speed-preset=superfast tune=zerolatency qp-min=30 \
- key-int-max=15 bframes=2 ! video/x-h264,profile=high ! queue2 ! \
- mpegtsmux alignment=7 name=mux ! rndbuffersize max=1316 min=1316 ! \
- udpsink host=239.255.0.1 port=1234 ttl-mc=1 auto-multicast=1 sync=0 \
- pulsesrc device=$(pactl list | grep -A2 'Source #' | \
- grep 'Name: .*\.monitor$' | cut -d" " -f2|head -1) ! \
- audioconvert ! queue2 ! avenc_aac ! queue2 ! mux.
-</pre></blockquote>
-
-<p>and this on the Kodi end<p>
-
-<blockquote><pre>
-echo udp://@239.255.0.1:1234 \
- > /storage/videos/screenstream.m3u
-</pre></blockquote>
-
-<p>Note the trick to pick a valid pulseaudio source. It might not
-pick the one you need. This approach will of course lead to trouble
-if more than one source uses the same multicast port and address.
-Note the ttl-mc=1 setting, which limit the multicast packages to the
-local network. If the value is increased, your screen will be
-broadcasted further, one network "hop" for each increase (read up on
-multicast to learn more. :)!</p>
-
-<p>Having cracked how to get Kodi to receive multicast streams, I
-could use this VLC command to stream to the same multicast address.
-The image quality is way better than the rtsp approach, but gstreamer
-seem to be doing a better job.</p>
-
-<blockquote><pre>
-cvlc screen:// --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{mux=ts,dst=239.255.0.1,port=1234,sdp=sap}'
-</pre></blockquote>
-
-<p>As usual, if you use Bitcoin and want to show your support of my
-activities, please send Bitcoin donations to my address
-<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
+ <title>Boken «Made with Creative Commons» lanseres på norsk</title>
+ <link>http://people.skolelinux.org/pere/blog/Boken__Made_with_Creative_Commons__lanseres_p__norsk.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Boken__Made_with_Creative_Commons__lanseres_p__norsk.html</guid>
+ <pubDate>Sun, 15 Nov 2020 23:50:00 +0100</pubDate>
+ <description><p>Endelig er den norske utgaven av «Made with Creative Commons»
+ferdig og publisert. Følgende pressemelding ble nettopp sendt ut:
+
+<blockquote>
+
+<p><strong>Boken «Made with Creative Commons» lanseres på norsk</strong></p>
+
+<p>«Gjort med Creative Commons» er en bok om gjenbruk, deling og den
+digitale allmenningen. Boken omhandler å bygge en forretningsmodell på
+åpne verdier, endringene i tankesett og filosofi, og fordelene og
+praksisen som kommer med å være «åpen».</p>
+
+<p>Forfatterne Paul Stacey og Sarah Hinchliff Pearson tar oss med inn
+i samtaler med 24 mennesker, prosjekter og organisasjoner som på ulike
+måter generere inntekter gjennom deling av sine verk. Som leser får
+man innsikt i hvordan alt fra forskere, forfattere, kunstnere og
+filmskapere tjener penger basert på åpne forretningsmodeller. En av
+referansestudiene i denne boken viser hvordan Blender Animation Studio
+lager vakre animasjonsfilmer som de publiserer under en fri lisens,
+basert på en plattform som er fri programvare.</p>
+
+<p>Utover praktiske eksempler på forskjellige forretningsmodeller berører
+også boken forskjellen mellom tradisjonelle kommersielle virksomheter og
+de som tar utgangspunkt i den globale delingskulturen.</p>
+
+<p>«Hvis du ønsker å lære mer om digital delingskultur og Creative Commons
+er dette en bok som både vil inspirere og gi grunnleggende innsikt» sier
+leder av Creative Commons Norge, Christer Solheim Gundersen. «De siste
+årene har denne globale bevegelsen sett en betydelig vekst med totalt
+over 1,6 milliarder verk med CC-lisens tilgjengelig på nett.»
+
+Nå er den tilgjengelig på norsk takket være liten gruppe frivillige
+entusiaster ledet av Petter Reinholdtsen. «På vegne av Creative Commons
+Norge vil jeg takke hver enkelt bidragsyter. Dette prosjektet er i seg
+selv et inspirerende eksempel på at delingskulturen også har godt
+fotfeste her i Norge.», avslutter Gundersen.</p>
+
+<p>Boken er selvsagt fritt tilgjengelig under en Creative Commons lisens,
+og kan også kjøpes som ebok og papirutgave på blant annet Lulu.com og
+Amazon.</p>
+
+<p><strong>Lenker og kontaktinformasjon</strong></p>
+
+<ul>
+
+<li>Kontaktpunkt:
+<br>Ole-Erik Yrvin (oeyrvin@gmail.com) og
+<br>Christer Solheim Gundersen (christer@goopen.no), +47 9341 1360</li>
+
+<li>Bokens <a href="https://madewith.cc/">engelske nettside</a></li>
+
+<li>Den <a href="http://www.hungry.com/~pere/publisher/">norske utgavens nettside</a></li>
+
+<li><a href="https://www.lulu.com/en/us/shop/sarah-hinchliff-pearson-and-paul-stacey-and-bryan-mathers-and-ryan-merkley/gjort-med-creative-commons/paperback/product-m5jy75.html">Papirutgaven fra Lulu</a></li>
+
+<li><a href="https://www.lulu.com/en/us/shop/sarah-hinchliff-pearson-and-paul-stacey-and-bryan-mathers-and-ryan-merkley/gjort-med-creative-commons/ebook/product-zw2r4k.html">Epub-utgaven fra lulu</a></li>
+
+</ul>
+
+</blockquote>
+
+<p>Nå håper jeg bare den får mange lesere, og finner veien under mange
+juletrær.</p>
+
+<p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
+det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
+til min adresse
+<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
+Merk, betaling med bitcoin er ikke anonymt. :)</p>
</description>
</item>
<item>
- <title>What is the most supported MIME type in Debian in 2018?</title>
- <link>http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_in_2018_.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_in_2018_.html</guid>
- <pubDate>Mon, 9 Jul 2018 08:05:00 +0200</pubDate>
- <description><p>Five years ago,
-<a href="http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html">I
-measured what the most supported MIME type in Debian was</a>, by
-analysing the desktop files in all packages in the archive. Since
-then, the DEP-11 AppStream system has been put into production, making
-the task a lot easier. This made me want to repeat the measurement,
-to see how much things changed. Here are the new numbers, for
-unstable only this time:
-
-<p><strong>Debian Unstable:</strong></p>
-
-<pre>
- count MIME type
- ----- -----------------------
- 56 image/jpeg
- 55 image/png
- 49 image/tiff
- 48 image/gif
- 39 image/bmp
- 38 text/plain
- 37 audio/mpeg
- 34 application/ogg
- 33 audio/x-flac
- 32 audio/x-mp3
- 30 audio/x-wav
- 30 audio/x-vorbis+ogg
- 29 image/x-portable-pixmap
- 27 inode/directory
- 27 image/x-portable-bitmap
- 27 audio/x-mpeg
- 26 application/x-ogg
- 25 audio/x-mpegurl
- 25 audio/ogg
- 24 text/html
-</pre>
-
-<p>The list was created like this using a sid chroot: "cat
-/var/lib/apt/lists/*sid*_dep11_Components-amd64.yml.gz| zcat | awk '/^
-- \S+\/\S+$/ {print $2 }' | sort | uniq -c | sort -nr | head -20"</p>
-
-<p>It is interesting to see how image formats have passed text/plain
-as the most announced supported MIME type. These days, thanks to the
-AppStream system, if you run into a file format you do not know, and
-want to figure out which packages support the format, you can find the
-MIME type of the file using "file --mime &lt;filename&gt;", and then
-look up all packages announcing support for this format in their
-AppStream metadata (XML or .desktop file) using "appstreamcli
-what-provides mimetype &lt;mime-type&gt;. For example if you, like
-me, want to know which packages support inode/directory, you can get a
-list like this:</p>
-
-<p><blockquote><pre>
-% appstreamcli what-provides mimetype inode/directory | grep Package: | sort
-Package: anjuta
-Package: audacious
-Package: baobab
-Package: cervisia
-Package: chirp
-Package: dolphin
-Package: doublecmd-common
-Package: easytag
-Package: enlightenment
-Package: ephoto
-Package: filelight
-Package: gwenview
-Package: k4dirstat
-Package: kaffeine
-Package: kdesvn
-Package: kid3
-Package: kid3-qt
-Package: nautilus
-Package: nemo
-Package: pcmanfm
-Package: pcmanfm-qt
-Package: qweborf
-Package: ranger
-Package: sirikali
-Package: spacefm
-Package: spacefm
-Package: vifm
-%
-</pre></blockquote></p>
-
-<p>Using the same method, I can quickly discover that the Sketchup file
-format is not yet supported by any package in Debian:</p>
-
-<p><blockquote><pre>
-% appstreamcli what-provides mimetype application/vnd.sketchup.skp
-Could not find component providing 'mimetype::application/vnd.sketchup.skp'.
-%
-</pre></blockquote></p>
-
-<p>Yesterday I used it to figure out which packages support the STL 3D
-format:</p>
-
-<p><blockquote><pre>
-% appstreamcli what-provides mimetype application/sla|grep Package
-Package: cura
-Package: meshlab
-Package: printrun
-%
-</pre></blockquote></p>
-
-<p>PS: A new version of Cura was uploaded to Debian yesterday.</p>
+ <title>Buster based Bokmål edition of Debian Administrator's Handbook</title>
+ <link>http://people.skolelinux.org/pere/blog/Buster_based_Bokm_l_edition_of_Debian_Administrator_s_Handbook.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Buster_based_Bokm_l_edition_of_Debian_Administrator_s_Handbook.html</guid>
+ <pubDate>Tue, 20 Oct 2020 18:35:00 +0200</pubDate>
+ <description><p align="center"><img align="center" src="http://people.skolelinux.org/pere/blog/images/2020-10-20-debian-handbook-nb-testprint.jpeg" width="60%"/></p>
+
+<p>I am happy to report that we finally made it! Norwegian Bokmål
+became the first translation published on paper of the new Buster
+based edition of "<a href="https://debian-handbook.info/">The Debian
+Administrator's Handbook</a>". The print proof reading copy arrived
+some days ago, and it looked good, so now the book is approved for
+general distribution. This updated paperback edition <a
+href="https://debian-handbook.info/get/#norwegian">is available from
+lulu.com</a>. The book is also available for download in electronic
+form as PDF, EPUB and Mobipocket, and can also be
+<a href="https://debian-handbook.info/browse/nb-NO/stable/">read online</a>.</p>
+
+<p>I am very happy to wrap up this Creative Common licensed project,
+which concludes several months of work by several volunteers. The
+number of Linux related books published in Norwegian are few, and I
+really hope this one will gain many readers, as it is packed with deep
+knowledge on Linux and the Debian ecosystem. The book will be
+available for various Internet book stores like Amazon and Barnes &
+Noble soon, but I recommend buying
+"<a href="https://www.lulu.com/en/us/shop/roland-mas-and-rapha%C3%ABl-hertzog/h%C3%A5ndbok-for-debian-administratoren/paperback/product-9j7qwq.html">Håndbok
+for Debian-administratoren</a>" directly from the source at Lulu.
<p>As usual, if you use Bitcoin and want to show your support of my
activities, please send Bitcoin donations to my address
</item>
<item>
- <title>Debian APT upgrade without enough free space on the disk...</title>
- <link>http://people.skolelinux.org/pere/blog/Debian_APT_upgrade_without_enough_free_space_on_the_disk___.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_APT_upgrade_without_enough_free_space_on_the_disk___.html</guid>
- <pubDate>Sun, 8 Jul 2018 12:10:00 +0200</pubDate>
- <description><p>Quite regularly, I let my Debian Sid/Unstable chroot stay untouch
-for a while, and when I need to update it there is not enough free
-space on the disk for apt to do a normal 'apt upgrade'. I normally
-would resolve the issue by doing 'apt install &lt;somepackages&gt;' to
-upgrade only some of the packages in one batch, until the amount of
-packages to download fall below the amount of free space available.
-Today, I had about 500 packages to upgrade, and after a while I got
-tired of trying to install chunks of packages manually. I concluded
-that I did not have the spare hours required to complete the task, and
-decided to see if I could automate it. I came up with this small
-script which I call 'apt-in-chunks':</p>
-
-<p><blockquote><pre>
-#!/bin/sh
-#
-# Upgrade packages when the disk is too full to upgrade every
-# upgradable package in one lump. Fetching packages to upgrade using
-# apt, and then installing using dpkg, to avoid changing the package
-# flag for manual/automatic.
-
-set -e
-
-ignore() {
- if [ "$1" ]; then
- grep -v "$1"
- else
- cat
- fi
-}
-
-for p in $(apt list --upgradable | ignore "$@" |cut -d/ -f1 | grep -v '^Listing...'); do
- echo "Upgrading $p"
- apt clean
- apt install --download-only -y $p
- for f in /var/cache/apt/archives/*.deb; do
- if [ -e "$f" ]; then
- dpkg -i /var/cache/apt/archives/*.deb
- break
- fi
- done
-done
-</pre></blockquote></p>
-
-<p>The script will extract the list of packages to upgrade, try to
-download the packages needed to upgrade one package, install the
-downloaded packages using dpkg. The idea is to upgrade packages
-without changing the APT mark for the package (ie the one recording of
-the package was manually requested or pulled in as a dependency). To
-use it, simply run it as root from the command line. If it fail, try
-'apt install -f' to clean up the mess and run the script again. This
-might happen if the new packages conflict with one of the old
-packages. dpkg is unable to remove, while apt can do this.</p>
-
-<p>It take one option, a package to ignore in the list of packages to
-upgrade. The option to ignore a package is there to be able to skip
-the packages that are simply too large to unpack. Today this was
-'ghc', but I have run into other large packages causing similar
-problems earlier (like TeX).</p>
-
-<p>Update 2018-07-08: Thanks to Paul Wise, I am aware of two
-alternative ways to handle this. The "unattended-upgrades
---minimal-upgrade-steps" option will try to calculate upgrade sets for
-each package to upgrade, and then upgrade them in order, smallest set
-first. It might be a better option than my above mentioned script.
-Also, "aptutude upgrade" can upgrade single packages, thus avoiding
-the need for using "dpkg -i" in the script above.</p>
+ <title>Buster update of Norwegian Bokmål edition of Debian Administrator's Handbook almost done</title>
+ <link>http://people.skolelinux.org/pere/blog/Buster_update_of_Norwegian_Bokm_l_edition_of_Debian_Administrator_s_Handbook_almost_done.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Buster_update_of_Norwegian_Bokm_l_edition_of_Debian_Administrator_s_Handbook_almost_done.html</guid>
+ <pubDate>Fri, 11 Sep 2020 09:45:00 +0200</pubDate>
+ <description><p>Thanks to the good work of several volunteers, the updated edition
+of the Norwegian translation for
+"<a href="https://debian-handbook.info/">The Debian Administrator's
+Handbook</a>" is now almost completed. After many months of proof
+reading, I consider the proof reading complete enough for us to move
+to the next step, and have asked for the print version to be prepared
+and sent of to the print on demand service lulu.com. While it is
+still not to late if you find any incorrect translations on
+<a href="https://hosted.weblate.org/languages/nb_NO/debian-handbook/">the
+hosted Weblate service</a>, but it will be soon. :) You can check out
+<a href=" https://debian-handbook.info/browse/nb-NO/stable/">the Buster
+edition on the web</a> until the print edition is ready.</p>
+
+<p>The book will be for sale on lulu.com and various web book stores,
+with links available from the web site for the book linked to above.
+I hope a lot of readers find it useful.</p>
<p>As usual, if you use Bitcoin and want to show your support of my
activities, please send Bitcoin donations to my address
</item>
<item>
- <title>The worlds only stone power plant?</title>
- <link>http://people.skolelinux.org/pere/blog/The_worlds_only_stone_power_plant_.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/The_worlds_only_stone_power_plant_.html</guid>
- <pubDate>Sat, 30 Jun 2018 10:35:00 +0200</pubDate>
- <description><p>So far, at least hydro-electric power, coal power, wind power,
-solar power, and wood power are well known. Until a few days ago, I
-had never heard of stone power. Then I learn about a quarry in a
-mountain in
-<a href="https://en.wikipedia.org/wiki/Bremanger">Bremanger</a> i
-Norway, where
-<a href="https://www.bontrup.com/en/activities/raw-materials/bremanger-quarry/">the
-Bremanger Quarry</a> company is extracting stone and dumping the stone
-into a shaft leading to its shipping harbour. This downward movement
-in this shaft is used to produce electricity. In short, it is using
-falling rocks instead of falling water to produce electricity, and
-according to its own statements it is producing more power than it is
-using, and selling the surplus electricity to the Norwegian power
-grid. I find the concept truly amazing. Is this the worlds only
-stone power plant?</p>
+ <title>Working on updated Norwegian Bokmål edition of Debian Administrator's Handbook</title>
+ <link>http://people.skolelinux.org/pere/blog/Working_on_updated_Norwegian_Bokm_l_edition_of_Debian_Administrator_s_Handbook.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Working_on_updated_Norwegian_Bokm_l_edition_of_Debian_Administrator_s_Handbook.html</guid>
+ <pubDate>Sat, 4 Jul 2020 23:55:00 +0200</pubDate>
+ <description><p>Three years ago, the first Norwegian Bokmål edition of
+"<a href="https://debian-handbook.info/">The Debian Administrator's
+Handbook</a>" was published. This was based on Debian Jessie. Now a
+new and updated version based on Buster is getting ready. Work on the
+updated Norwegian Bokmål edition has been going on for a few months
+now, and yesterday, we reached the first mile stone, with 100% of the
+texts being translated. A lot of proof reading remains, of course,
+but a major step towards a new edition has been taken.</p>
+
+<p>The book is translated by volunteers, and we would love to get some
+help with the proof reading. The translation uses
+<a href="https://hosted.weblate.org/languages/nb_NO/debian-handbook/">the
+hosted Weblate service</a>, and we welcome everyone to have a look and
+submit improvements and suggestions. There is also a proof readers
+PDF available on request, get in touch if you want to help out that
+way.</p>
<p>As usual, if you use Bitcoin and want to show your support of my
activities, please send Bitcoin donations to my address
</item>
<item>
- <title>Add-on to control the projector from within Kodi</title>
- <link>http://people.skolelinux.org/pere/blog/Add_on_to_control_the_projector_from_within_Kodi.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Add_on_to_control_the_projector_from_within_Kodi.html</guid>
- <pubDate>Tue, 26 Jun 2018 23:55:00 +0200</pubDate>
- <description><p>My movie playing setup involve <a href="https://kodi.tv/">Kodi</a>,
-<a href="https://openelec.tv">OpenELEC</a> (probably soon to be
-replaced with <a href="https://libreelec.tv/">LibreELEC</a>) and an
-Infocus IN76 video projector. My projector can be controlled via both
-a infrared remote controller, and a RS-232 serial line. The vendor of
-my projector, <a href="https://www.infocus.com/">InFocus</a>, had been
-sensible enough to document the serial protocol in its user manual, so
-it is easily available, and I used it some years ago to write
-<a href="https://github.com/petterreinholdtsen/infocus-projector-control">a
-small script to control the projector</a>. For a while now, I longed
-for a setup where the projector was controlled by Kodi, for example in
-such a way that when the screen saver went on, the projector was
-turned off, and when the screen saver exited, the projector was turned
-on again.</p>
-
-<p>A few days ago, with very good help from parts of my family, I
-managed to find a Kodi Add-on for controlling a Epson projector, and
-got in touch with its author to see if we could join forces and make a
-Add-on with support for several projectors. To my pleasure, he was
-positive to the idea, and we set out to add InFocus support to his
-add-on, and make the add-on suitable for the official Kodi add-on
-repository.</p>
-
-<p>The Add-on is now working (for me, at least), with a few minor
-adjustments. The most important change I do relative to the master
-branch in the github repository is embedding the
-<a href="https://github.com/pyserial/pyserial">pyserial module</a> in
-the add-on. The long term solution is to make a "script" type
-pyserial module for Kodi, that can be pulled in as a dependency in
-Kodi. But until that in place, I embed it.</p>
-
-<p>The add-on can be configured to turn on the projector when Kodi
-starts, off when Kodi stops as well as turn the projector off when the
-screensaver start and on when the screesaver stops. It can also be
-told to set the projector source when turning on the projector.
-
-<p>If this sound interesting to you, check out
-<a href="https://github.com/fredrik-eriksson/kodi_projcontrol">the
-project github repository</a>. Perhaps you can send patches to
-support your projector too? As soon as we find time to wrap up the
-latest changes, it should be available for easy installation using any
-Kodi instance.</p>
-
-<p>For future improvements, I would like to add projector model
-detection and the ability to adjust the brightness level of the
-projector from within Kodi. We also need to figure out how to handle
-the cooling period of the projector. My projector refuses to turn on
-for 60 seconds after it was turned off. This is not handled well by
-the add-on at the moment.</p>
+ <title>Secure Socket API - a simple and powerful approach for TLS support in software</title>
+ <link>http://people.skolelinux.org/pere/blog/Secure_Socket_API___a_simple_and_powerful_approach_for_TLS_support_in_software.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Secure_Socket_API___a_simple_and_powerful_approach_for_TLS_support_in_software.html</guid>
+ <pubDate>Sat, 6 Jun 2020 12:40:00 +0200</pubDate>
+ <description><p>As a member of the <a href="https://www.nuug.no/">Norwegian Unix
+User Group</a>, I have the pleasure of receiving the
+<a href="https://www.usenix.org/">USENIX</a> magazine
+<a href="https://www.usenix.org/publications/login/">;login:</a>
+several times a year. I rarely have time to read all the articles,
+but try to at least skim through them all as there is a lot of nice
+knowledge passed on there. I even carry the latest issue with me most
+of the time to try to get through all the articles when I have a few
+spare minutes.</p>
+
+<p>The other day I came across a nice article titled
+"<a href="https://www.usenix.org/publications/login/winter2018/oneill">The
+Secure Socket API: TLS as an Operating System Service</a>" with a
+marvellous idea I hope can make it all the way into the POSIX standard.
+The idea is as simple as it is powerful. By introducing a new
+socket() option IPPROTO_TLS to use TLS, and a system wide service to
+handle setting up TLS connections, one both make it trivial to add TLS
+support to any program currently using the POSIX socket API, and gain
+system wide control over certificates, TLS versions and encryption
+systems used. Instead of doing this:</p>
+
+<p><blockquote><pre>
+int socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
+</pre></blockquote></p>
+
+<p>the program code would be doing this:<p>
+
+<p><blockquote><pre>
+int socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TLS);
+</pre></blockquote></p>
+
+<p>According to the ;login: article, converting a C program to use TLS
+would normally modify only 5-10 lines in the code, which is amazing
+when compared to using for example the OpenSSL API.</p>
+
+<p>The project has set up the
+<a href="https://securesocketapi.org/">https://securesocketapi.org/</a>
+web site to spread the idea, and the code for a kernel module and the
+associated system daemon is available from two github repositories:
+<a href="https://github.com/markoneill/ssa">ssa</a> and
+<a href="https://github.com/markoneill/ssa-daemon">ssa-daemon</a>.
+Unfortunately there is no explicit license information with the code,
+so its copyright status is unclear. A
+<a href="https://github.com/markoneill/ssa/issues/2">request to solve
+this</a> about it has been unsolved since 2018-08-17.</p>
+
+<p>I love the idea of extending socket() to gain TLS support, and
+understand why it is an advantage to implement this as a kernel module
+and system wide service daemon, but can not help to think that it
+would be a lot easier to get projects to move to this way of setting
+up TLS if it was done with a user space approach where programs
+wanting to use this API approach could just link with a wrapper
+library.</p>
+
+<p>I recommend you check out this simple and powerful approach to more
+secure network connections. :)</p>
<p>As usual, if you use Bitcoin and want to show your support of my
activities, please send Bitcoin donations to my address
</description>
</item>
- <item>
- <title>youtube-dl for nedlasting fra NRK med undertekster - nice free software</title>
- <link>http://people.skolelinux.org/pere/blog/youtube_dl_for_nedlasting_fra_NRK_med_undertekster___nice_free_software.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/youtube_dl_for_nedlasting_fra_NRK_med_undertekster___nice_free_software.html</guid>
- <pubDate>Sat, 28 Apr 2018 10:30:00 +0200</pubDate>
- <description><p>I <a href="https://no.wikipedia.org/wiki/VHS">VHS-kassettenes</a>
-tid var det rett frem å ta vare på et TV-program en ønsket å kunne se
-senere, uten å være avhengig av at programmet ble sendt på nytt.
-Kanskje ønsket en å se programmet på hytten der det ikke var
-TV-signal, eller av andre grunner ha det tilgjengelig for fremtidig
-fornøyelse. Dette er blitt vanskeligere med introduksjon av
-digital-TV og webstreaming, der opptak til harddisk er utenfor de
-flestes kontroll hvis de bruker ufri programvare og bokser kontrollert
-av andre. Men for NRK her i Norge, finnes det heldigvis flere fri
-programvare-alternativer, som jeg har
-<a href="http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK.html">skrevet</a>
-<a href="http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK_med_den__nye__l_sningen.html">om</a>
-<a href="http://people.skolelinux.org/pere/blog/Nedlasting_fra_NRK__som_Matroska_med_undertekster.html">før</a>.
-Så lenge kilden for nedlastingen er lovlig lagt ut på nett (hvilket
-jeg antar NRK gjør), så er slik lagring til privat bruk også lovlig i
-Norge.</p>
-
-<p>Sist jeg så på saken, i 2016, nevnte jeg at
-<a href="https://rg3.github.com/youtube-dl/">youtube-dl</a> ikke kunne
-bake undertekster fra NRK inn i videofilene, og at jeg derfor
-foretrakk andre alternativer. Nylig oppdaget jeg at dette har endret
-seg. Fordelen med youtube-dl er at den er tilgjengelig direkte fra
-Linux-distribusjoner som <a href="https://www.debian.org/">Debian</a>
-og <a href="https://www.ubuntu.com/">Ubuntu</a>, slik at en slipper å
-finne ut selv hvordan en skal få dem til å virke.</p>
-
-<p>For å laste ned et NRK-innslag med undertekster, og få den norske
-underteksten pakket inn i videofilen, så kan følgende kommando
-brukes:</p>
-
-<p><pre>
-youtube-dl --write-sub --sub-format ttml \
- --convert-subtitles srt --embed-subs \
- https://tv.nrk.no/serie/ramm-ferdig-gaa/MUHU11000316/27-04-2018
-</pre></p>
-
-<p>URL-eksemplet er dagens toppsak på tv.nrk.no. Resultatet er en
-MP4-fil med filmen og undertekster som kan spilles av med VLC. Merk
-at VLC ikke viser frem undertekster før du aktiverer dem. For å gjøre
-det, høyreklikk med musa i fremviservinduet, velg menyvalget for
-undertekst og så norsk språk. Jeg testet også '--write-auto-sub',
-men det kommandolinjeargumentet ser ikke ut til å fungere, så jeg
-endte opp med settet med argumentlisten over, som jeg fant i en
-feilrapport i youtube-dl-prosjektets samling over feilrapporter.</p>
-
-<p>Denne støtten i youtube-dl gjør det svært enkelt å lagre
-NRK-innslag, det være seg nyheter, filmer, serier eller dokumentater,
-for å ha dem tilgjengelig for fremtidig referanse og bruk, uavhengig
-av hvor lenge innslagene ligger tilgjengelig hos NRK. Så får det ikke
-hjelpe at NRKs jurister mener at det er
-<a href="http://people.skolelinux.org/pere/blog/Best___ikke_fortelle_noen_at_streaming_er_nedlasting___.html">vesensforskjellig
-å legge tilgjengelig for nedlasting og for streaming</a>, når det rent
-teknisk er samme sak.</p>
-
-<p>Programmet youtube-dl støtter også en rekke andre nettsteder, se
-prosjektoversikten for
-<a href="http://rg3.github.io/youtube-dl/supportedsites.html">en
-komplett liste</a>.</p>
-</description>
- </item>
-
</channel>
</rss>