]> pere.pagekite.me Git - homepage.git/blobdiff - blog/archive/2018/10/10.rss
Generated.
[homepage.git] / blog / archive / 2018 / 10 / 10.rss
index c35ee7c49f18719390107dba211ae97cfcdc699a..f88301a61b4e34da3e7256023b76ef442aedf79d 100644 (file)
@@ -6,6 +6,323 @@
                 <link>http://people.skolelinux.org/pere/blog/</link>
 
        
+       <item>
+               <title>Measuring the speaker frequency response using the AUDMES free software GUI - nice free software</title>
+               <link>http://people.skolelinux.org/pere/blog/Measuring_the_speaker_frequency_response_using_the_AUDMES_free_software_GUI___nice_free_software.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Measuring_the_speaker_frequency_response_using_the_AUDMES_free_software_GUI___nice_free_software.html</guid>
+                <pubDate>Mon, 22 Oct 2018 08:40:00 +0200</pubDate>
+               <description>&lt;p&gt;&lt;img src=&quot;http://people.skolelinux.org/pere/blog/images/2018-10-22-audmes-measure-speakers.png&quot; align=&quot;right&quot; width=&quot;40%&quot;/&gt;&lt;/p&gt;
+
+&lt;p&gt;My current home stereo is a patchwork of various pieces I got on
+flee markeds over the years.  It is amazing what kind of equipment
+show up there.  I&#39;ve been wondering for a while if it was possible to
+measure how well this equipment is working together, and decided to
+see how far I could get using free software.  After trawling the web I
+came across an article from DIY Audio and Video on
+&lt;a href=&quot;https://www.diyaudioandvideo.com/Tutorial/SpeakerResponseTesting/&quot;&gt;Speaker
+Testing and Analysis&lt;/a&gt; describing how to test speakers, and it listing
+several software options, among them
+&lt;a href=&quot;https://sourceforge.net/projects/audmes/&quot;&gt;AUDio MEasurement
+System (AUDMES)&lt;/a&gt;.  It is the only free software system I could find
+focusing on measuring speakers and audio frequency response.  In the
+process I also found an interesting article from NOVO on
+&lt;a href=&quot;http://novo.press/understanding-speaker-specifications-and-frequency-response/&quot;&gt;Understanding
+Speaker Specifications and Frequency Response&lt;/a&gt; and an article from
+ecoustics on
+&lt;a href=&quot;https://www.ecoustics.com/articles/understanding-speaker-frequency-response/&quot;&gt;Understanding
+Speaker Frequency Response&lt;/a&gt;, with a lot of information on what to
+look for and how to interpret the graphs.  Armed with this knowledge,
+I set out to measure the state of my speakers.&lt;/p&gt;
+
+&lt;p&gt;The first hurdle was that AUDMES hadn&#39;t seen a commit for 10 years
+and did not build with current compilers and libraries.  I got in
+touch with its author, who no longer was spending time on the program
+but gave me write access to the subversion repository on Sourceforge.
+The end result is that now the code build on Linux and is capable of
+saving and loading the collected frequency response data in CSV
+format.  The application is quite nice and flexible, and I was able to
+select the input and output audio interfaces independently.  This made
+it possible to use a USB mixer as the input source, while sending
+output via my laptop headphone connection.  I lacked the hardware and
+cabling to figure out a different way to get independent cabling to
+speakers and microphone.&lt;/p&gt;
+
+&lt;p&gt;Using this setup I could see how a large range of high frequencies
+apparently were not making it out of my speakers.  The picture show
+the frequency response measurement of one of the speakers.  Note the
+frequency lines seem to be slightly misaligned, compared to the CSV
+output from the program.  I can not hear several of these are high
+frequencies, according to measurement from
+&lt;a href=&quot;http://freehearingtestsoftware.com&quot;&gt;Free Hearing Test
+Software&lt;/a&gt;, an freeware system to measure your hearing (still
+looking for a free software alternative), so I do not know if they are
+coming out out the speakers.  I thus do not quite know how to figure
+out if the missing frequencies is a problem with the microphone, the
+amplifier or the speakers, but I managed to rule out the audio card in my
+PC by measuring my Bose noise canceling headset using its own
+microphone.  This setup was able to see the high frequency tones, so
+the problem with my stereo had to be in the amplifier or speakers.&lt;/p&gt;
+
+&lt;p&gt;Anyway, to try to role out one factor I ended up picking up a new
+set of speakers at a flee marked, and these work a lot better than the
+old speakers, so I guess the microphone and amplifier is OK.  If you
+need to measure your own speakers, check out AUDMES.  If more people
+get involved, perhaps the project could become good enough to
+&lt;a href=&quot;https://bugs.debian.org/910876&quot;&gt;include in Debian&lt;/a&gt;?  And if
+you know of some other free software to measure speakers and amplifier
+performance, please let me know.  I am aware of the freeware option
+&lt;a href=&quot;https://www.roomeqwizard.com/&quot;&gt;REW&lt;/a&gt;, but I want something
+that can be developed also when the vendor looses interest.&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>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>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Fetching_trusted_timestamps_using_the_rfc3161ng_python_module.html</guid>
+                <pubDate>Mon, 8 Oct 2018 12:30:00 +0200</pubDate>
+               <description>&lt;p&gt;I have  earlier covered the basics of trusted timestamping using the
+&#39;openssl ts&#39; client.  See blog post for
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html&quot;&gt;2014&lt;/a&gt;,
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/syslog_trusted_timestamp___chain_of_trusted_timestamps_for_your_syslog.html&quot;&gt;2016&lt;/a&gt;
+and
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html&quot;&gt;2017&lt;/a&gt;
+for those stories.  But some times I want to integrate the timestamping
+in other code, and recently I needed to integrate it into Python.
+After searching a bit, I found
+&lt;a href=&quot;https://dev.entrouvert.org/projects/python-rfc3161&quot;&gt;the
+rfc3161 library&lt;/a&gt; which seemed like a good fit, but I soon
+discovered it only worked for python version 2, and I needed something
+that work with python version 3.  Luckily I next came across
+&lt;a href=&quot;https://github.com/trbs/rfc3161ng/&quot;&gt;the rfc3161ng library&lt;/a&gt;,
+a fork of the original rfc3161 library.  Not only is it working with
+python 3, it have fixed a few of the bugs in the original library, and
+it has an active maintainer.  I decided to wrap it up and make it
+&lt;a href=&quot;https://tracker.debian.org/pkg/python-rfc3161ng&quot;&gt;available in
+Debian&lt;/a&gt;, and a few days ago it entered Debian unstable and testing.&lt;/p&gt;
+
+&lt;p&gt;Using the library is fairly straight forward.  The only slightly
+problematic step is to fetch the required certificates to verify the
+timestamp.  For some services it is straight forward, while for others
+I have not yet figured out how to do it.  Here is a small standalone
+code example based on of the integration tests in the library code:&lt;/p&gt;
+
+&lt;pre&gt;
+#!/usr/bin/python3
+
+&quot;&quot;&quot;
+
+Python 3 script demonstrating how to use the rfc3161ng module to
+get trusted timestamps.
+
+The license of this code is the same as the license of the rfc3161ng
+library, ie MIT/BSD.
+
+&quot;&quot;&quot;
+
+import os
+import pyasn1.codec.der
+import rfc3161ng
+import subprocess
+import tempfile
+import urllib.request
+
+def store(f, data):
+    f.write(data)
+    f.flush()
+    f.seek(0)
+
+def fetch(url, f=None):
+    response = urllib.request.urlopen(url)
+    data = response.read()
+    if f:
+        store(f, data)
+    return data
+
+def main():
+    with tempfile.NamedTemporaryFile() as cert_f,\
+        tempfile.NamedTemporaryFile() as ca_f,\
+        tempfile.NamedTemporaryFile() as msg_f,\
+        tempfile.NamedTemporaryFile() as tsr_f:
+
+        # First fetch certificates used by service
+        certificate_data = fetch(&#39;https://freetsa.org/files/tsa.crt&#39;, cert_f)
+        ca_data_data = fetch(&#39;https://freetsa.org/files/cacert.pem&#39;, ca_f)
+
+        # Then timestamp the message
+        timestamper = \
+            rfc3161ng.RemoteTimestamper(&#39;http://freetsa.org/tsr&#39;,
+                                        certificate=certificate_data)
+        data = b&quot;Python forever!\n&quot;
+        tsr = timestamper(data=data, return_tsr=True)
+
+        # Finally, convert message and response to something &#39;openssl ts&#39; can verify
+        store(msg_f, data)
+        store(tsr_f, pyasn1.codec.der.encoder.encode(tsr))
+        args = [&quot;openssl&quot;, &quot;ts&quot;, &quot;-verify&quot;,
+                &quot;-data&quot;, msg_f.name,
+               &quot;-in&quot;, tsr_f.name,
+               &quot;-CAfile&quot;, ca_f.name,
+                &quot;-untrusted&quot;, cert_f.name]
+        subprocess.check_call(args)
+
+if &#39;__main__&#39; == __name__:
+   main()
+&lt;/pre&gt;
+
+&lt;p&gt;The code fetches the required certificates, store them as temporary
+files, timestamp a simple message, store the message and timestamp to
+disk and ask &#39;openssl ts&#39; to verify the timestamp.  A timestamp is
+around 1.5 kiB in size, and should be fairly easy to store for future
+use.&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>Automatic Google Drive sync using grive in Debian</title>
                <link>http://people.skolelinux.org/pere/blog/Automatic_Google_Drive_sync_using_grive_in_Debian.html</link>