After several months of working and waiting, I am happy to report -that the nice and user friendly 3D printer slicer software Cura just -entered Debian Unstable. It consist of five packages, -cura, -cura-engine, -libarcus, -fdm-materials, -libsavitar and -uranium. The last -two, uranium and cura, entered Unstable yesterday. This should make -it easier for Debian users to print on at least the Ultimaker class of -3D printers. My nearest 3D printer is an Ultimaker 2+, so it will -make life easier for at least me. :)
- -The work to make this happen was done by Gregor Riepl, and I was -happy to assist him in sponsoring the packages. With the introduction -of Cura, Debian is up to three 3D printer slicers at your service, -Cura, Slic3r and Slic3r Prusa. If you own or have access to a 3D -printer, give it a go. :)
- -The 3D printer software is maintained by the 3D printer Debian -team, flocking together on the -3dprinter-general -mailing list and the -#debian-3dprinting -IRC channel.
- -The next step for Cura in Debian is to update the cura package to -version 3.0.3 and then update the entire set of packages to version -3.1.0 which showed up the last few days.
+ +It might seem obvious that software created using tax money should +be available for everyone to use and improve. Free Software +Foundation Europe recentlystarted a campaign to help get more people +to understand this, and I just signed the petition on +Public Money, Public Code to help +them. I hope you too will do the same.
While looking at -the scanned copies -for the copyright renewal entries for movies published in the USA, -an idea occurred to me. The number of renewals are so few per year, it -should be fairly quick to transcribe them all and add references to -the corresponding IMDB title ID. This would give the (presumably) -complete list of movies published 28 years earlier that did _not_ -enter the public domain for the transcribed year. By fetching the -list of USA movies published 28 years earlier and subtract the movies -with renewals, we should be left with movies registered in IMDB that -are now in the public domain. For the year 1955 (which is the one I -have looked at the most), the total number of pages to transcribe is -21. For the 28 years from 1950 to 1978, it should be in the range -500-600 pages. It is just a few days of work, and spread among a -small group of people it should be doable in a few weeks of spare -time.
- -A typical copyright renewal entry look like this (the first one -listed for 1955):
- -- ADAM AND EVIL, a photoplay in seven reels by Metro-Goldwyn-Mayer - Distribution Corp. (c) 17Aug27; L24293. Loew's Incorporated (PWH); - 10Jun55; R151558. -- -
The movie title as well as registration and renewal dates are easy -enough to locate by a program (split on first comma and look for -DDmmmYY). The rest of the text is not required to find the movie in -IMDB, but is useful to confirm the correct movie is found. I am not -quite sure what the L and R numbers mean, but suspect they are -reference numbers into the archive of the US Copyright Office.
- -Tracking down the equivalent IMDB title ID is probably going to be -a manual task, but given the year it is fairly easy to search for the -movie title using for example -http://www.imdb.com/find?q=adam+and+evil+1927&s=all. -Using this search, I find that the equivalent IMDB title ID for the -first renewal entry from 1955 is -http://www.imdb.com/title/tt0017588/.
- -I suspect the best way to do this would be to make a specialised -web service to make it easy for contributors to transcribe and track -down IMDB title IDs. In the web service, once a entry is transcribed, -the title and year could be extracted from the text, a search in IMDB -conducted for the user to pick the equivalent IMDB title ID right -away. By spreading out the work among volunteers, it would also be -possible to make at least two persons transcribe the same entries to -be able to discover any typos introduced. But I will need help to -make this happen, as I lack the spare time to do all of this on my -own. If you would like to help, please get in touch. Perhaps you can -draft a web service for crowd sourcing the task?
- -Note, Project Gutenberg already have some -transcribed -copies of the US Copyright Office renewal protocols, but I have -not been able to find any film renewals there, so I suspect they only -have copies of renewal for written works. I have not been able to find -any transcribed versions of movie renewals so far. Perhaps they exist -somewhere?
- -I would love to figure out methods for finding all the public -domain works in other countries too, but it is a lot harder. At least -for Norway and Great Britain, such work involve tracking down the -people involved in making the movie and figuring out when they died. -It is hard enough to figure out who was part of making a movie, but I -do not know how to automate such procedure without a registry of every -person involved in making movies and their death year.
+ +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 +Gadgetbridge. +It provide cloudless collection and storing of data from a variety of +trackers. Its +list +of supported devices 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 Gadgetbirde said they were using +Amazfit +Bip and +Xiaomi +Band 3.
+ +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 +Garmin +FIT files containing the collected measurements. While +proprietary, FIT files apparently can be read at least by +GPSBabel and the +GpxPod 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 Forerunner +935, 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.
+ +A final idea was to build ones own unit, perhaps by basing it on a +wearable hardware platforms like +the Flora Geo +Watch. 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.
+ +While I was working on tracking down links, I came across an +inspiring TED talk by Dave Debronkart about +being a +e-patient, and discovered the web site +Participatory +Medicine. 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.
As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address @@ -142,7 +104,7 @@ activities, please send Bitcoin donations to my address
@@ -150,40 +112,27 @@ activities, please send Bitcoin donations to my addressThree years ago, a presumed lost animation film, -Empty Socks from -1927, was discovered in the Norwegian National Library. At the -time it was discovered, it was generally assumed to be copyrighted by -The Walt Disney Company, and I blogged about -my -reasoning to conclude that it would would enter the Norwegian -equivalent of the public domain in 2053, based on my understanding of -Norwegian Copyright Law. But a few days ago, I came across -a -blog post claiming the movie was already in the public domain, at -least in USA. The reasoning is as follows: The film was released in -November or Desember 1927 (sources disagree), and presumably -registered its copyright that year. At that time, right holders of -movies registered by the copyright office received government -protection for there work for 28 years. After 28 years, the copyright -had to be renewed if the wanted the government to protect it further. -The blog post I found claim such renewal did not happen for this -movie, and thus it entered the public domain in 1956. Yet someone -claim the copyright was renewed and the movie is still copyright -protected. Can anyone help me to figure out which claim is correct? -I have not been able to find Empty Socks in Catalog of copyright -entries. Ser.3 pt.12-13 v.9-12 1955-1958 Motion Pictures -available -from the University of Pennsylvania, neither in -page -45 for the first half of 1955, nor in -page -119 for the second half of 1955. It is of course possible that -the renewal entry was left out of the printed catalog by mistake. Is -there some way to rule out this possibility? Please help, and update -the wikipedia page with your findings. +
+Dear lazyweb,
+ +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 only 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.
As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address @@ -192,7 +141,7 @@ activities, please send Bitcoin donations to my address
@@ -200,115 +149,66 @@ activities, please send Bitcoin donations to my addressIt would be easier to locate the movie you want to watch in -the Internet Archive, if the -metadata about each movie was more complete and accurate. In the -archiving community, a well known saying state that good metadata is a -love letter to the future. The metadata in the Internet Archive could -use a face lift for the future to love us back. Here is a proposal -for a small improvement that would make the metadata more useful -today. I've been unable to find any document describing the various -standard fields available when uploading videos to the archive, so -this proposal is based on my best quess and searching through several -of the existing movies.
- -I have a few use cases in mind. First of all, I would like to be -able to count the number of distinct movies in the Internet Archive, -without duplicates. I would further like to identify the IMDB title -ID of the movies in the Internet Archive, to be able to look up a IMDB -title ID and know if I can fetch the video from there and share it -with my friends.
- -Second, I would like the Butter data provider for The Internet -archive -(available -from github), to list as many of the good movies as possible. The -plugin currently do a search in the archive with the following -parameters:
- --collection:moviesandfilms -AND NOT collection:movie_trailers -AND -mediatype:collection -AND format:"Archive BitTorrent" -AND year -- -
Most of the cool movies that fail to show up in Butter do so -because the 'year' field is missing. The 'year' field is populated by -the year part from the 'date' field, and should be when the movie was -released (date or year). Two such examples are -Ben Hur -from 1905 and -Caminandes -2: Gran Dillama from 2013, where the year metadata field is -missing.
- -So, my proposal is simply, for every movie in The Internet Archive -where an IMDB title ID exist, please fill in these metadata fields -(note, they can be updated also long after the video was uploaded, but -as far as I can tell, only by the uploader): - --
-
-
- mediatype -
- Should be 'movie' for movies. - -
- collection -
- Should contain 'moviesandfilms'. - -
- title -
- The title of the movie, without the publication year. - -
- date -
- The data or year the movie was released. This make the movie show -up in Butter, as well as make it possible to know the age of the -movie and is useful to figure out copyright status. - -
- director -
- The director of the movie. This make it easier to know if the -correct movie is found in movie databases. - -
- publisher -
- The production company making the movie. Also useful for -identifying the correct movie. - -
- links - -
- Add a link to the IMDB title page, for example like this: <a -href="http://www.imdb.com/title/tt0028496/">Movie in -IMDB</a>. This make it easier to find duplicates and allow for -counting of number of unique movies in the Archive. Other external -references, like to TMDB, could be added like this too. - -
I did consider proposing a Custom field for the IMDB title ID (for -example 'imdb_title_url', 'imdb_code' or simply 'imdb', but suspect it -will be easier to simply place it in the links free text field.
- -I created -a -list of IMDB title IDs for several thousand movies in the Internet -Archive, but I also got a list of several thousand movies without -such IMDB title ID (and quite a few duplicates). It would be great if -this data set could be integrated into the Internet Archive metadata -to be available for everyone in the future, but with the current -policy of leaving metadata editing to the uploaders, it will take a -while before this happen. If you have uploaded movies into the -Internet Archive, you can help. Please consider following my proposal -above for your movies, to ensure that movie is properly -counted. :)
- -The list is mostly generated using wikidata, which based on -Wikipedia articles make it possible to link between IMDB and movies in -the Internet Archive. But there are lots of movies without a -Wikipedia article, and some movies where only a collection page exist -(like for the -Caminandes example above, where there are three movies but only -one Wikidata entry).
+ +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 +<enclosure> RSS tag), but was unable to find a current supplier +of such frames. In the end I gave up that approach.
+ +Some months ago, I discovered that +XScreensaver 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 +Kodi (both using +OpenELEC and +LibreELEC) provide the +Feedreader +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.
+ +Armed with motivation and a test photo frame, I set out to generate +a RSS feed for the Kodi instance. I adjusted my Freedombox 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.
+ +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:
+ ++ ++exiftool -headline='The RSS image title' \ + -description='The RSS image description.' \ + -subject+=for-family photo.jpeg +
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.
+ +Are there better ways to do this? Get in touch if you have better +suggestions.
As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address @@ -317,7 +217,7 @@ activities, please send Bitcoin donations to my address
@@ -325,67 +225,96 @@ activities, please send Bitcoin donations to my addressA month ago, I blogged about my work to -automatically -check the copyright status of IMDB entries, and try to count the -number of movies listed in IMDB that is legal to distribute on the -Internet. I have continued to look for good data sources, and -identified a few more. The code used to extract information from -various data sources is available in -a -git repository, currently available from github.
- -So far I have identified 3186 unique IMDB title IDs. To gain -better understanding of the structure of the data set, I created a -histogram of the year associated with each movie (typically release -year). It is interesting to notice where the peaks and dips in the -graph are located. I wonder why they are placed there. I suspect -World War II caused the dip around 1940, but what caused the peak -around 2010?
- -I've so far identified ten sources for IMDB title IDs for movies in -the public domain or with a free license. This is the statistics -reported when running 'make stats' in the git repository:
- -- 249 entries ( 6 unique) with and 288 without IMDB title ID in free-movies-archive-org-butter.json - 2301 entries ( 540 unique) with and 0 without IMDB title ID in free-movies-archive-org-wikidata.json - 830 entries ( 29 unique) with and 0 without IMDB title ID in free-movies-icheckmovies-archive-mochard.json - 2109 entries ( 377 unique) with and 0 without IMDB title ID in free-movies-imdb-pd.json - 291 entries ( 122 unique) with and 0 without IMDB title ID in free-movies-letterboxd-pd.json - 144 entries ( 135 unique) with and 0 without IMDB title ID in free-movies-manual.json - 350 entries ( 1 unique) with and 801 without IMDB title ID in free-movies-publicdomainmovies.json - 4 entries ( 0 unique) with and 124 without IMDB title ID in free-movies-publicdomainreview.json - 698 entries ( 119 unique) with and 118 without IMDB title ID in free-movies-publicdomaintorrents.json - 8 entries ( 8 unique) with and 196 without IMDB title ID in free-movies-vodo.json - 3186 unique IMDB title IDs in total -- -
The entries without IMDB title ID are candidates to increase the -data set, but might equally well be duplicates of entries already -listed with IMDB title ID in one of the other sources, or represent -movies that lack a IMDB title ID. I've seen examples of all these -situations when peeking at the entries without IMDB title ID. Based -on these data sources, the lower bound for movies listed in IMDB that -are legal to distribute on the Internet is between 3186 and 4713. - -
It would be great for improving the accuracy of this measurement, -if the various sources added IMDB title ID to their metadata. I have -tried to reach the people behind the various sources to ask if they -are interested in doing this, without any replies so far. Perhaps you -can help me get in touch with the people behind VODO, Public Domain -Torrents, Public Domain Movies and Public Domain Review to try to -convince them to add more metadata to their movie entries?
- -Another way you could help is by adding pages to Wikipedia about -movies that are legal to distribute on the Internet. If such page -exist and include a link to both IMDB and The Internet Archive, the -script used to generate free-movies-archive-org-wikidata.json should -pick up the mapping as soon as wikidata is updates.
+ +Last night, I wrote +a +recipe to stream a Linux desktop using VLC to a instance of Kodi. +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.
+ +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 +the JSON-RPC API in +Kodi 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.
+ ++ ++#!/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 + +if [ -n "$1" ]; then + kodihost=$1 + shift +else + kodihost=kodi.local +fi + +mcast=239.255.0.1 +mcastport=1234 +mcastttl=1 + +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=$! + +# Give stream a second to get going +sleep 1 + +# Ask kodi to start streaming using its JSON-RPC API +kodicmd "$kodihost" Player.Open \ + "{\"item\": { \"file\": \"udp://@$mcast:$mcastport\" } }" > /dev/null + +# wait for gst to end +wait "$gstpid" +
I hope you find the approach useful. I know I do.
As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address @@ -394,7 +323,7 @@ activities, please send Bitcoin donations to my address
@@ -402,78 +331,143 @@ activities, please send Bitcoin donations to my addressIf you care about how fault tolerant your storage is, you might -find these articles and papers interesting. They have formed how I -think of when designing a storage system.
- --
-
-
- USENIX :login; Redundancy -Does Not Imply Fault Tolerance. Analysis of Distributed Storage -Reactions to Single Errors and Corruptions by Aishwarya Ganesan, -Ramnatthan Alagappan, Andrea C. Arpaci-Dusseau, and Remzi -H. Arpaci-Dusseau - -
- ZDNet -Why -RAID 5 stops working in 2009 by Robin Harris - -
- ZDNet -Why -RAID 6 stops working in 2019 by Robin Harris - -
- USENIX FAST'07 -Failure -Trends in a Large Disk Drive Population by Eduardo Pinheiro, -Wolf-Dietrich Weber and Luiz AndreÌ Barroso - -
- USENIX ;login: Data -Integrity. Finding Truth in a World of Guesses and Lies by Doug -Hughes - -
- USENIX FAST'08 -An -Analysis of Data Corruption in the Storage Stack by -L. N. Bairavasundaram, G. R. Goodson, B. Schroeder, A. C. -Arpaci-Dusseau, and R. H. Arpaci-Dusseau - -
- USENIX FAST'07 Disk -failures in the real world: what does an MTTF of 1,000,000 hours mean -to you? by B. Schroeder and G. A. Gibson. - -
- USENIX ;login: Are -Disks the Dominant Contributor for Storage Failures? A Comprehensive -Study of Storage Subsystem Failure Characteristics by Weihang -Jiang, Chongfeng Hu, Yuanyuan Zhou, and Arkady Kanevsky - -
- SIGMETRICS 2007 -An -analysis of latent sector errors in disk drives by -L. N. Bairavasundaram, G. R. Goodson, S. Pasupathy, and J. Schindler - -
Several of these research papers are based on data collected from -hundred thousands or millions of disk, and their findings are eye -opening. The short story is simply do not implicitly trust RAID or -redundant storage systems. Details matter. And unfortunately there -are few options on Linux addressing all the identified issues. Both -ZFS and Btrfs are doing a fairly good job, but have legal and -practical issues on their own. I wonder how cluster file systems like -Ceph do in this regard. After all, there is an old saying, you know -you have a distributed system when the crash of a computer you have -never heard of stops you from getting any work done. The same holds -true if fault tolerance do not work.
- -Just remember, in the end, it do not matter how redundant, or how -fault tolerant your storage is, if you do not continuously monitor its -status to detect and replace failed disks.
+ +PS: See
+
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.
+ +I had a look at several approaches, for example +using uPnP +DLNA as described in 2011, 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.
+ +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.
+ +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.
+ +I did not spend much time investigating codeces. I combined the +rtp and rtsp recipes from +the +VLC Streaming HowTo/Command Line Examples, and was able to get +this working on the desktop/streaming end.
+ ++ ++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}' +
I ssh-ed into my Kodi box and created a file like this with the +same IP address:
+ ++ ++echo rtsp://192.168.11.4:8080/test.sdp \ + > /storage/videos/screenstream.m3u +
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. :)
+ +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.
+ +Update 2018-07-12: 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 + +
+ ++cvlc screen:// --sout \ + '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{sdp=rtsp://:8080/}' +
and this on the Kodi end
+ +
+ ++echo rtsp://192.168.11.4:8080/ \ + > /storage/videos/screenstream.m3u +
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.
+ +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: + +
+ ++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. +
and this on the Kodi end
+ +
+ ++echo udp://@239.255.0.1:1234 \ + > /storage/videos/screenstream.m3u +
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. :)!
+ +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.
+ ++cvlc screen:// --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{mux=ts,dst=239.255.0.1,port=1234,sdp=sap}' +
As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address @@ -482,7 +476,7 @@ activities, please send Bitcoin donations to my address
@@ -490,40 +484,112 @@ activities, please send Bitcoin donations to my addressI was surprised today to learn that a friend in academia did not -know there are easily available web services available for writing -LaTeX documents as a team. I thought it was common knowledge, but to -make sure at least my readers are aware of it, I would like to mention -these useful services for writing LaTeX documents. Some of them even -provide a WYSIWYG editor to ease writing even further.
- -There are two commercial services available, -ShareLaTeX and -Overleaf. They are very easy to -use. Just start a new document, select which publisher to write for -(ie which LaTeX style to use), and start writing. Note, these two -have announced their intention to join forces, so soon it will only be -one joint service. I've used both for different documents, and they -work just fine. While -ShareLaTeX is free -software, while the latter is not. According to a -announcement from Overleaf, they plan to keep the ShareLaTeX code -base maintained as free software.
- -But these two are not the only alternatives. -Fidus Writer is another free -software solution with the -source available on github. I have not used it myself. Several -others can be found on the nice -alterntiveTo -web service. - -If you like Google Docs or Etherpad, but would like to write -documents in LaTeX, you should check out these services. You can even -host your own, if you want to. :)
+ +Five years ago, +I +measured what the most supported MIME type in Debian was, 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: + +
Debian Unstable:
+ ++ 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 ++ +
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"
+ +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 <filename>", and then +look up all packages announcing support for this format in their +AppStream metadata (XML or .desktop file) using "appstreamcli +what-provides mimetype <mime-type>. For example if you, like +me, want to know which packages support inode/directory, you can get a +list like this:
+ ++ ++% 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 +% +
Using the same method, I can quickly discover that the Sketchup file +format is not yet supported by any package in Debian:
+ ++ ++% appstreamcli what-provides mimetype application/vnd.sketchup.skp +Could not find component providing 'mimetype::application/vnd.sketchup.skp'. +% +
Yesterday I used it to figure out which packages support the STL 3D +format:
+ ++ ++% appstreamcli what-provides mimetype application/sla|grep Package +Package: cura +Package: meshlab +Package: printrun +% +
PS: A new version of Cura was uploaded to Debian yesterday.
As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address @@ -532,7 +598,7 @@ activities, please send Bitcoin donations to my address
@@ -540,283 +606,74 @@ activities, please send Bitcoin donations to my addressRecently, I needed to automatically check the copyright status of a -set of The Internet Movie database -(IMDB) entries, to figure out which one of the movies they refer -to can be freely distributed on the Internet. This proved to be -harder than it sounds. IMDB for sure list movies without any -copyright protection, where the copyright protection has expired or -where the movie is lisenced using a permissive license like one from -Creative Commons. These are mixed with copyright protected movies, -and there seem to be no way to separate these classes of movies using -the information in IMDB.
- -First I tried to look up entries manually in IMDB, -Wikipedia and -The Internet Archive, to get a -feel how to do this. It is hard to know for sure using these sources, -but it should be possible to be reasonable confident a movie is "out -of copyright" with a few hours work per movie. As I needed to check -almost 20,000 entries, this approach was not sustainable. I simply -can not work around the clock for about 6 years to check this data -set.
- -I asked the people behind The Internet Archive if they could -introduce a new metadata field in their metadata XML for IMDB ID, but -was told that they leave it completely to the uploaders to update the -metadata. Some of the metadata entries had IMDB links in the -description, but I found no way to download all metadata files in bulk -to locate those ones and put that approach aside.
- -In the process I noticed several Wikipedia articles about movies -had links to both IMDB and The Internet Archive, and it occured to me -that I could use the Wikipedia RDF data set to locate entries with -both, to at least get a lower bound on the number of movies on The -Internet Archive with a IMDB ID. This is useful based on the -assumption that movies distributed by The Internet Archive can be -legally distributed on the Internet. With some help from the RDF -community (thank you DanC), I was able to come up with this query to -pass to the SPARQL interface on -Wikidata: - -
-SELECT ?work ?imdb ?ia ?when ?label -WHERE -{ - ?work wdt:P31/wdt:P279* wd:Q11424. - ?work wdt:P345 ?imdb. - ?work wdt:P724 ?ia. - OPTIONAL { - ?work wdt:P577 ?when. - ?work rdfs:label ?label. - FILTER(LANG(?label) = "en"). - } + +8th July 2018+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 <somepackages>' 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':
+ ++ ++#!/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 } -- -If I understand the query right, for every film entry anywhere in -Wikpedia, it will return the IMDB ID and The Internet Archive ID, and -when the movie was released and its English title, if either or both -of the latter two are available. At the moment the result set contain -2338 entries. Of course, it depend on volunteers including both -correct IMDB and The Internet Archive IDs in the wikipedia articles -for the movie. It should be noted that the result will include -duplicates if the movie have entries in several languages. There are -some bogus entries, either because The Internet Archive ID contain a -typo or because the movie is not available from The Internet Archive. -I did not verify the IMDB IDs, as I am unsure how to do that -automatically.
- -I wrote a small python script to extract the data set from Wikidata -and check if the XML metadata for the movie is available from The -Internet Archive, and after around 1.5 hour it produced a list of 2097 -free movies and their IMDB ID. In total, 171 entries in Wikidata lack -the refered Internet Archive entry. I assume the 70 "disappearing" -entries (ie 2338-2097-171) are duplicate entries.
- -This is not too bad, given that The Internet Archive report to -contain 5331 -feature films at the moment, but it also mean more than 3000 -movies are missing on Wikipedia or are missing the pair of references -on Wikipedia.
- -I was curious about the distribution by release year, and made a -little graph to show how the amount of free movies is spread over the -years:
- -
- -
I expect the relative distribution of the remaining 3000 movies to -be similar.
- -If you want to help, and want to ensure Wikipedia can be used to -cross reference The Internet Archive and The Internet Movie Database, -please make sure entries like this are listed under the "External -links" heading on the Wikipedia article for the movie:
- --* {{Internet Archive film|id=FightingLady}} -* {{IMDb title|id=0036823|title=The Fighting Lady}} -- -Please verify the links on the final page, to make sure you did not -introduce a typo.
- -Here is the complete list, if you want to correct the 171 -identified Wikipedia entries with broken links to The Internet -Archive: Q1140317, -Q458656, -Q458656, -Q470560, -Q743340, -Q822580, -Q480696, -Q128761, -Q1307059, -Q1335091, -Q1537166, -Q1438334, -Q1479751, -Q1497200, -Q1498122, -Q865973, -Q834269, -Q841781, -Q841781, -Q1548193, -Q499031, -Q1564769, -Q1585239, -Q1585569, -Q1624236, -Q4796595, -Q4853469, -Q4873046, -Q915016, -Q4660396, -Q4677708, -Q4738449, -Q4756096, -Q4766785, -Q880357, -Q882066, -Q882066, -Q204191, -Q204191, -Q1194170, -Q940014, -Q946863, -Q172837, -Q573077, -Q1219005, -Q1219599, -Q1643798, -Q1656352, -Q1659549, -Q1660007, -Q1698154, -Q1737980, -Q1877284, -Q1199354, -Q1199354, -Q1199451, -Q1211871, -Q1212179, -Q1238382, -Q4906454, -Q320219, -Q1148649, -Q645094, -Q5050350, -Q5166548, -Q2677926, -Q2698139, -Q2707305, -Q2740725, -Q2024780, -Q2117418, -Q2138984, -Q1127992, -Q1058087, -Q1070484, -Q1080080, -Q1090813, -Q1251918, -Q1254110, -Q1257070, -Q1257079, -Q1197410, -Q1198423, -Q706951, -Q723239, -Q2079261, -Q1171364, -Q617858, -Q5166611, -Q5166611, -Q324513, -Q374172, -Q7533269, -Q970386, -Q976849, -Q7458614, -Q5347416, -Q5460005, -Q5463392, -Q3038555, -Q5288458, -Q2346516, -Q5183645, -Q5185497, -Q5216127, -Q5223127, -Q5261159, -Q1300759, -Q5521241, -Q7733434, -Q7736264, -Q7737032, -Q7882671, -Q7719427, -Q7719444, -Q7722575, -Q2629763, -Q2640346, -Q2649671, -Q7703851, -Q7747041, -Q6544949, -Q6672759, -Q2445896, -Q12124891, -Q3127044, -Q2511262, -Q2517672, -Q2543165, -Q426628, -Q426628, -Q12126890, -Q13359969, -Q13359969, -Q2294295, -Q2294295, -Q2559509, -Q2559912, -Q7760469, -Q6703974, -Q4744, -Q7766962, -Q7768516, -Q7769205, -Q7769988, -Q2946945, -Q3212086, -Q3212086, -Q18218448, -Q18218448, -Q18218448, -Q6909175, -Q7405709, -Q7416149, -Q7239952, -Q7317332, -Q7783674, -Q7783704, -Q7857590, -Q3372526, -Q3372642, -Q3372816, -Q3372909, -Q7959649, -Q7977485, -Q7992684, -Q3817966, -Q3821852, -Q3420907, -Q3429733, -Q774474
+ +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 +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.
+ +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).
+ +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.
As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address @@ -825,7 +682,7 @@ activities, please send Bitcoin donations to my address
@@ -833,21 +690,23 @@ activities, please send Bitcoin donations to my address- -14th October 2017-I find it fascinating how many of the people being locked inside -the proposed border wall between USA and Mexico support the idea. The -proposal to keep Mexicans out reminds me of -the -propaganda twist from the East Germany government calling the wall -the âAntifascist Bulwarkâ after erecting the Berlin Wall, claiming -that the wall was erected to keep enemies from creeping into East -Germany, while it was obvious to the people locked inside it that it -was erected to keep the people from escaping.
- -Do the people in USA supporting this wall really believe it is a -one way wall, only keeping people on the outside from getting in, -while not keeping people in the inside from getting out?
+ +30th June 2018+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 +Bremanger i +Norway, where +the +Bremanger Quarry 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?
As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address @@ -864,43 +723,57 @@ activities, please send Bitcoin donations to my address
- -9th October 2017-At my nearby maker space, -Sonen, I heard the story that it -was easier to generate gcode files for theyr 3D printers (Ultimake 2+) -on Windows and MacOS X than Linux, because the software involved had -to be manually compiled and set up on Linux while premade packages -worked out of the box on Windows and MacOS X. I found this annoying, -as the software involved, -Cura, is free software -and should be trivial to get up and running on Linux if someone took -the time to package it for the relevant distributions. I even found -a request for adding into -Debian from 2013, which had seem some activity over the years but -never resulted in the software showing up in Debian. So a few days -ago I offered my help to try to improve the situation.
- -Now I am very happy to see that all the packages required by a -working Cura in Debian are uploaded into Debian and waiting in the NEW -queue for the ftpmasters to have a look. You can track the progress -on -the -status page for the 3D printer team.
- -The uploaded packages are a bit behind upstream, and was uploaded -now to get slots in the NEW -queue while we work up updating the packages to the latest -upstream version.
- -On a related note, two competitors for Cura, which I found harder -to use and was unable to configure correctly for Ultimaker 2+ in the -short time I spent on it, are already in Debian. If you are looking -for 3D printer "slicers" and want something already available in -Debian, check out -slic3r and -slic3r-prusa. -The latter is a fork of the former.
+ +26th June 2018+My movie playing setup involve Kodi, +OpenELEC (probably soon to be +replaced with LibreELEC) 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, InFocus, 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 +small script to control the projector. 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.
+ +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.
+ +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 +pyserial module 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.
+ +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. + +
If this sound interesting to you, check out +the +project github repository. 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.
+ +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.
As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address @@ -909,7 +782,7 @@ activities, please send Bitcoin donations to my address
@@ -924,6 +797,25 @@ activities, please send Bitcoin donations to my addressArchive
+
- 2018 +
++ +
- January (1)
+ +- February (5)
+ +- March (5)
+ +- April (3)
+ +- June (2)
+ +- July (5)
+ +- August (3)
+ +- 2017
@@ -1199,7 +1091,7 @@ activities, please send Bitcoin donations to my address@@ -947,7 +839,7 @@ activities, please send Bitcoin donations to my address
- November (3)
-- December (3)
+- December (4)
Tags
-
- 3d-printer (15)
+- 3d-printer (16)
- amiga (1)
@@ -1209,13 +1101,13 @@ activities, please send Bitcoin donations to my address- bitcoin (9)
-- bootsystem (16)
+- bootsystem (17)
- bsa (2)
- chrpath (2)
-- debian (155)
+- debian (161)
- debian edu (158)
@@ -1225,17 +1117,17 @@ activities, please send Bitcoin donations to my address- dld (17)
-- docbook (24)
+- docbook (25)
- drivstoffpriser (4)
-- english (363)
+- english (382)
- fiksgatami (23)
-- fildeling (12)
+- fildeling (13)
-- freeculture (31)
+- freeculture (32)
- freedombox (9)
@@ -1245,7 +1137,7 @@ activities, please send Bitcoin donations to my address- intervju (42)
-- isenkram (15)
+- isenkram (16)
- kart (20)
@@ -1261,21 +1153,21 @@ activities, please send Bitcoin donations to my address- mesh network (8)
-- multimedia (39)
+- multimedia (41)
-- nice free software (9)
+- nice free software (10)
-- norsk (293)
+- norsk (299)
-- nuug (189)
+- nuug (190)
- offentlig innsyn (33)
- open311 (2)
-- opphavsrett (69)
+- opphavsrett (72)
-- personvern (104)
+- personvern (107)
- raid (2)
@@ -1289,11 +1181,11 @@ activities, please send Bitcoin donations to my address- rss (1)
-- ruter (5)
+- ruter (6)
- scraperwiki (2)
-- sikkerhet (53)
+- sikkerhet (54)
- sitesummary (4)
@@ -1305,7 +1197,7 @@ activities, please send Bitcoin donations to my address- stortinget (12)
-- surveillance (52)
+- surveillance (55)
- sysadmin (4)
@@ -1313,13 +1205,13 @@ activities, please send Bitcoin donations to my address- valg (9)
-- verkidetfri (8)
+- verkidetfri (11)
-- video (60)
+- video (66)
- vitenskap (4)
-- web (40)
+- web (41)