]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.rss
Correct filename.
[homepage.git] / blog / index.rss
index 5756f07f8326662d9e10c8aefb4767b2e1ebeaa5..5dad2229b3b8ca00f9f2df506df9c53962aaa63d 100644 (file)
@@ -6,6 +6,143 @@
                 <link>http://people.skolelinux.org/pere/blog/</link>
                 <atom:link href="http://people.skolelinux.org/pere/blog/index.rss" rel="self" type="application/rss+xml" />
        
+       <item>
+               <title>Web browser integration of VLC with Bittorrent support</title>
+               <link>http://people.skolelinux.org/pere/blog/Web_browser_integration_of_VLC_with_Bittorrent_support.html</link>
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Web_browser_integration_of_VLC_with_Bittorrent_support.html</guid>
+                <pubDate>Sun, 21 Oct 2018 09:50:00 +0200</pubDate>
+               <description>&lt;p&gt;Bittorrent is as far as I know, currently the most efficient way to
+distribute content on the Internet.  It is used all by all sorts of
+content providers, from national TV stations like
+&lt;a href=&quot;https://www.nrk.no/&quot;&gt;NRK&lt;/a&gt;, Linux distributors like
+&lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt; and
+&lt;a href=&quot;https://www.ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;, and of course the
+&lt;a href=&quot;https://archive.org/&quot;&gt;Internet archive&lt;/A&gt;.
+
+&lt;p&gt;Almost a month ago
+&lt;a href=&quot;https://tracker.debian.org/pkg/vlc-plugin-bittorrent&quot;&gt;a new
+package adding Bittorrent support to VLC&lt;/a&gt; became available in
+Debian testing and unstable.  To test it, simply install it like
+this:&lt;/p&gt;
+
+&lt;p&gt;&lt;pre&gt;
+apt install vlc-plugin-bittorrent
+&lt;/pre&gt;&lt;/p&gt;
+
+&lt;p&gt;Since the plugin was made available for the first time in Debian,
+several improvements have been made to it.  In version 2.2-4, now
+available in both testing and unstable, a desktop file is provided to
+teach browsers to start VLC when the user click on torrent files or
+magnet links.  The last part is thanks to me finally understanding
+what the strange x-scheme-handler style MIME types in desktop files
+are used for.  By adding x-scheme-handler/magnet to the MimeType entry
+in the desktop file, at least the browsers Firefox and Chromium will
+suggest to start VLC when selecting a magnet URI on a web page.  The
+end result is that now, with the plugin installed in Buster and Sid,
+one can visit any
+&lt;a href=&quot;https://archive.org/details/CopyingIsNotTheft1080p&quot;&gt;Internet
+Archive page with movies&lt;/a&gt; using a web browser and click on the
+torrent link to start streaming the movie.&lt;/p&gt;
+
+&lt;p&gt;Note, there is still some misfeatures in the plugin.  One is the
+fact that it will hang and
+&lt;a href=&quot;https://github.com/johang/vlc-bittorrent/issues/13&quot;&gt;block VLC
+from exiting until the torrent streaming starts&lt;/a&gt;.  Another is the
+fact that it
+&lt;a href=&quot;https://github.com/johang/vlc-bittorrent/issues/9&quot;&gt;will pick
+and play a random file in a multi file torrent&lt;/a&gt;.  This is not
+always the video file you want.  Combined with the first it can be a
+bit hard to get the video streaming going.  But when it work, it seem
+to do a good job.&lt;/p&gt;
+
+&lt;p&gt;For the Debian packaging, I would love to find a good way to test
+if the plugin work with VLC using autopkgtest.  I tried, but do not
+know enough of the inner workings of VLC to get it working.  For now
+the autopkgtest script is only checking if the .so file was
+successfully loaded by VLC.  If you have any suggestions, please
+submit a patch to the Debian bug tracking system.&lt;/p&gt;
+
+&lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
+activities, please send Bitcoin donations to my address
+&lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Release 0.2 of free software archive system Nikita announced</title>
+               <link>http://people.skolelinux.org/pere/blog/Release_0_2_of_free_software_archive_system_Nikita_announced.html</link>
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Release_0_2_of_free_software_archive_system_Nikita_announced.html</guid>
+                <pubDate>Thu, 18 Oct 2018 14:40:00 +0200</pubDate>
+               <description>&lt;p&gt;This morning, the new release of the
+&lt;a href=&quot;https://gitlab.com/OsloMet-ABI/nikita-noark5-core/&quot;&gt;Nikita
+Noark 5 core project&lt;/a&gt; was
+&lt;a href=&quot;https://lists.nuug.no/pipermail/nikita-noark/2018-October/000406.html&quot;&gt;announced
+on the project mailing list&lt;/a&gt;.  The free software solution is an
+implementation of the Norwegian archive standard Noark 5 used by
+government offices in Norway.  These were the changes in version 0.2
+since version 0.1.1 (from NEWS.md):
+
+&lt;ul&gt;
+  &lt;li&gt;Fix typos in REL names&lt;/li&gt;
+  &lt;li&gt;Tidy up error message reporting&lt;/li&gt;
+  &lt;li&gt;Fix issue where we used Integer.valueOf(), not Integer.getInteger()&lt;/li&gt;
+  &lt;li&gt;Change some String handling to StringBuffer&lt;/li&gt;
+  &lt;li&gt;Fix error reporting&lt;/li&gt;
+  &lt;li&gt;Code tidy-up&lt;/li&gt;
+  &lt;li&gt;Fix issue using static non-synchronized SimpleDateFormat to avoid 
+      race conditions&lt;/li&gt;
+  &lt;li&gt;Fix problem where deserialisers were treating integers as strings&lt;/li&gt;
+  &lt;li&gt;Update methods to make them null-safe&lt;/li&gt;
+  &lt;li&gt;Fix many issues reported by coverity&lt;/li&gt;
+  &lt;li&gt;Improve equals(), compareTo() and hash() in domain model&lt;/li&gt;
+  &lt;li&gt;Improvements to the domain model for metadata classes&lt;/li&gt;
+  &lt;li&gt;Fix CORS issues when downloading document&lt;/li&gt;
+  &lt;li&gt;Implementation of case-handling with registryEntry and document upload&lt;/li&gt;
+  &lt;li&gt;Better support in Javascript for OPTIONS&lt;/li&gt;
+  &lt;li&gt;Adding concept description of mail integration&lt;/li&gt;
+  &lt;li&gt;Improve setting of default values for GET on ny-journalpost&lt;/li&gt;
+  &lt;li&gt;Better handling of required values during deserialisation &lt;/li&gt;
+  &lt;li&gt;Changed tilknyttetDato (M620) from date to dateTime&lt;/li&gt;
+  &lt;li&gt;Corrected some opprettetDato (M600) (de)serialisation errors.&lt;/li&gt;
+  &lt;li&gt;Improve parse error reporting.&lt;/li&gt;
+  &lt;li&gt;Started on OData search and filtering.&lt;/li&gt;
+  &lt;li&gt;Added Contributor Covenant Code of Conduct to project.&lt;/li&gt;
+  &lt;li&gt;Moved repository and project from Github to Gitlab.&lt;/li&gt;
+  &lt;li&gt;Restructured repository, moved code into src/ and web/.&lt;/li&gt;
+  &lt;li&gt;Updated code to use Spring Boot version 2.&lt;/li&gt;
+  &lt;li&gt;Added support for OAuth2 authentication.&lt;/li&gt;
+  &lt;li&gt;Fixed several bugs discovered by Coverity.&lt;/li&gt;
+  &lt;li&gt;Corrected handling of date/datetime fields.&lt;/li&gt;
+  &lt;li&gt;Improved error reporting when rejecting during deserializatoin.&lt;/li&gt;
+  &lt;li&gt;Adjusted default values provided for ny-arkivdel, ny-mappe,
+   ny-saksmappe, ny-journalpost and ny-dokumentbeskrivelse.&lt;/li&gt;
+  &lt;li&gt;Several fixes for korrespondansepart*.&lt;/li&gt;
+  &lt;li&gt;Updated web GUI:
+     &lt;ul&gt;
+       &lt;li&gt;Now handle both file upload and download.&lt;/li&gt;
+       &lt;li&gt;Uses new OAuth2 authentication for login.&lt;/li&gt;
+       &lt;li&gt;Forms now fetches default values from API using GET.&lt;/li&gt;
+       &lt;li&gt;Added RFC 822 (email), TIFF and JPEG to list of possible file formats.&lt;/li&gt;
+     &lt;/ul&gt;&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;The changes and improvements are extensive.  Running diffstat on
+the changes between git tab 0.1.1 and 0.2 show 1098 files changed,
+108666 insertions(+), 54066 deletions(-).&lt;/p&gt;
+
+&lt;p&gt;If free and open standardized archiving API sound interesting to
+you, please contact us on IRC
+(&lt;a href=&quot;irc://irc.freenode.net/%23nikita&quot;&gt;#nikita on
+irc.freenode.net&lt;/a&gt;) or email
+(&lt;a href=&quot;https://lists.nuug.no/mailman/listinfo/nikita-noark&quot;&gt;nikita-noark
+mailing list&lt;/a&gt;).&lt;/p&gt;
+
+&lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
+activities, please send Bitcoin donations to my address
+&lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
+</description>
+       </item>
+       
        <item>
                <title>Fetching trusted timestamps using the rfc3161ng python module</title>
                <link>http://people.skolelinux.org/pere/blog/Fetching_trusted_timestamps_using_the_rfc3161ng_python_module.html</link>
@@ -508,176 +645,6 @@ Is there an alternative?  I&#39;m not interested in giving money to people
 requiring me to accept &quot;privacy terms&quot; to allow myself to measure my
 own health.&lt;/p&gt;
 
-&lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
-activities, please send Bitcoin donations to my address
-&lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
-</description>
-       </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>&lt;p&gt;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
-&amp;lt;enclosure&amp;gt; RSS tag), but was unable to find a current supplier
-of such frames.  In the end I gave up that approach.&lt;/p&gt;
-
-&lt;p&gt;Some months ago, I discovered that
-&lt;a href=&quot;https://www.jwz.org/xscreensaver/&quot;&gt;XScreensaver&lt;/a&gt; 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
-&lt;a href=&quot;https://kodi.tv&quot;&gt;Kodi&lt;/a&gt; (both using
-&lt;a href=&quot;https://www.openelec.tv/&quot;&gt;OpenELEC&lt;/a&gt; and
-&lt;a href=&quot;https://libreelec.tv&quot;&gt;LibreELEC&lt;/a&gt;) provide the
-&lt;a href=&quot;https://github.com/grinsted/script.screensaver.feedreader&quot;&gt;Feedreader&lt;/a&gt;
-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.&lt;/p&gt;
-
-&lt;p&gt;Armed with motivation and a test photo frame, I set out to generate
-a RSS feed for the Kodi instance.  I adjusted my &lt;a
-href=&quot;https://freedombox.org/&quot;&gt;Freedombox&lt;/a&gt; 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.&lt;/p&gt;
-
-&lt;p&gt;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:&lt;/p&gt;
-
-&lt;blockquote&gt;&lt;pre&gt;
-exiftool -headline=&#39;The RSS image title&#39; \
-  -description=&#39;The RSS image description.&#39; \
-  -subject+=for-family photo.jpeg
-&lt;/pre&gt;&lt;/blockquote&gt;
-
-&lt;p&gt;I initially tried the &quot;-title&quot; and &quot;keyword&quot; tags, but they were
-invisible in digiKam, so I changed to &quot;-headline&quot; and &quot;-subject&quot;.  I
-use the keyword/subject &#39;for-family&#39; 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.&lt;/p&gt;
-
-&lt;p&gt;Are there better ways to do this?  Get in touch if you have better
-suggestions.&lt;/p&gt;
-
-&lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
-activities, please send Bitcoin donations to my address
-&lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
-</description>
-       </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>&lt;p&gt;Last night, I wrote
-&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html&quot;&gt;a
-recipe to stream a Linux desktop using VLC to a instance of Kodi&lt;/a&gt;.
-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.&lt;/p&gt;
-
-&lt;p&gt;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
-&lt;a href=&quot;https://kodi.wiki/view/JSON-RPC_API/v8&quot;&gt;the JSON-RPC API in
-Kodi&lt;/a&gt; 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.&lt;/p&gt;
-
-&lt;blockquote&gt;&lt;pre&gt;
-#!/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=&quot;$1&quot;
-    cmd=&quot;$2&quot;
-    params=&quot;$3&quot;
-    curl --silent --header &#39;Content-Type: application/json&#39; \
-        --data-binary &quot;{ \&quot;id\&quot;: 1, \&quot;jsonrpc\&quot;: \&quot;2.0\&quot;, \&quot;method\&quot;: \&quot;$cmd\&quot;, \&quot;params\&quot;: $params }&quot; \
-        &quot;http://$host/jsonrpc&quot;
-}
-cleanup() {
-    if [ -n &quot;$kodihost&quot; ] ; then
-       # Stop the playing when we end
-       playerid=$(kodicmd &quot;$kodihost&quot; Player.GetActivePlayers &quot;{}&quot; |
-                           jq .result[].playerid)
-       kodicmd &quot;$kodihost&quot; Player.Stop &quot;{ \&quot;playerid\&quot; : $playerid }&quot; &gt; /dev/null
-    fi
-    if [ &quot;$gstpid&quot; ] &amp;&amp; kill -0 &quot;$gstpid&quot; &gt;/dev/null 2&gt;&amp;1; then
-       kill &quot;$gstpid&quot;
-    fi
-}
-trap cleanup EXIT INT
-
-if [ -n &quot;$1&quot; ]; then
-    kodihost=$1
-    shift
-else
-    kodihost=kodi.local
-fi
-
-mcast=239.255.0.1
-mcastport=1234
-mcastttl=1
-
-pasrc=$(pactl list | grep -A2 &#39;Source #&#39; | grep &#39;Name: .*\.monitor$&#39; | \
-  cut -d&quot; &quot; -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. \
-  &gt; /dev/null 2&gt;&amp;1 &amp;
-gstpid=$!
-
-# Give stream a second to get going
-sleep 1
-
-# Ask kodi to start streaming using its JSON-RPC API
-kodicmd &quot;$kodihost&quot; Player.Open \
-       &quot;{\&quot;item\&quot;: { \&quot;file\&quot;: \&quot;udp://@$mcast:$mcastport\&quot; } }&quot; &gt; /dev/null
-
-# wait for gst to end
-wait &quot;$gstpid&quot;
-&lt;/pre&gt;&lt;/blockquote&gt;
-
-&lt;p&gt;I hope you find the approach useful.  I know I do.&lt;/p&gt;
-
 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
 activities, please send Bitcoin donations to my address
 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;