Tuesday, December 10, 2013

The Pragmatic Bookshelf: Seven Concurrency Models in Seven Weeks

Seven Concurrency Models in Seven Weeks:
Your software needs to leverage multiple cores, handle thousands of users and terabytes of data, and continue working in the face of both hardware and software failure. Concurrency and parallelism are the keys, and Seven Concurrency Models in Seven Weeks equips you for this new world. See how emerging technologies such as actors and functional programming address issues with traditional threads and locks development. Learn how to exploit the parallelism in your computer's GPU and leverage clusters of machines with MapReduce and Stream Processing. And do it all with the confidence that comes from using tools that help you write crystal clear, high-quality code.

Saturday, December 7, 2013

purchased my 1st "Raspberry Pi" "Model B" last (Friday) night

I found a cooperative employee at the Conrad branch, who got me all the things I needed, including Wheezy on an SD card. But I didn't know, how and which monitor I would attach, so that's what I have to solve on my 2nd related visit at the shop. I am rather hot to see it booting soon.

Unnecessary:

  • I should not have purchased the mega-sized AVM wifi dongle.
  • I should have found out before (at least before getting the converter), how to connect the Pi to monitors.

Update 2013-12-08:

  • got me more HDMI-DVI-adpaters yesterday, with cables,
  • should have gotten me a USB hub as well, as there are only 2 USB plugs,
  • well, the USB mouse went into the (playstation2) keyboard,
  • the EDIMAX wifi dongle found its plug,
  • got it booted,
  • got it connected via LAN to the Internet,
  • got wifi set up through WPS.
  • had to stop my experiments in favour of son#2.
This IS different to KDE and GNOME:
  • (apparently) you cannot set up the date/time format centraly,
  • even not the timezone.
  • you also cannot set up the virtual desktops in a grid.
But it IS Linux / Unix, and it is X-Windows, and it connects to the Internet, and there is a modern browser, …


  • I created a separate "bookmark article" on Java SE on the Raspberry Pi, cf. the "Raspberry Pi" label on this blog


Thursday, December 5, 2013

what a nice comparison of build tools: Make, Rake, Ant, Gradle

http://hyperpolyglot.org/build

Includes a table listing all their features and showing how the others deal with it.

Make allows you to insert a dash between the tab and before the statement in order to ignore that statement's exit code. The other build tools do not have that feature.

Wednesday, December 4, 2013

AIX moans: "Cannot open or remove a file containing a running program"


I came across this phenomenon in various contexts on AIX. 
It really sounds like "text file busy" from the old Unix days.

Looks like the guys who misuse this error message for there miserable situations actually mean "cannot open or remove a file". I call this capturing.

Looks like some variants of the "copy" utility (like CPAN File::Copy) use this error message instead of "no such file or directory". Maybe this happens in concurrent environments / situations, where a file disappears between the call to File::Copy and the actual kernel "open". Once "open" has a file handle, the inode access counter gets incremented, and the file cannot really disappear any longer, as long as it remains open ie. did not get closed again.

To be continue …

last night's online e-book purchases through o'Reilly Media

  • PacktPub--Instant_Nokogiri.20130826122153.pdf (ruby xml)
  • TidBITS--Take_Control_of_Your_Online_Privacy.20130827161623.pdf
  • nostarch--Book_of_GIMP.20130128094115.pdf
  • nostarch--Perl_One_Liners.20131101112448.pdf (perl)
  • rockynook--Testing_Cloud_Services.20130826101828.pdf (testing)


Tuesday, December 3, 2013

studied RT (AKA "Request Tracker") and its model of roles a little

The wiki seems to be more useful than the book [link]. I added a few notes on the roles at the entry on the book here on the blog at http://blog-en.jochen.hayek.name/2013/05/oreilly-media-book-rt-essentials.html.

my VirtualBox on Mavericks crashed today, so I upgraded to 4.3.4

https://www.virtualbox.org/wiki/Downloads

Mavericks disorders the windows within my "desktops"

That's rather bad with my long running applications like the Chromium browser or my virtual machines running within VirtualBox. I have to stop the browser or even VirtualBox itself. And just a few minutes "ago", VirtualBox even aborted abruptly without saving the states of the virtual machines. I hate that.

Wednesday, November 27, 2013

"FRITZ! Labor" – FRITZ!Box-Beta-Firmwares


  • http://www.avm.de/de/Service/Service-Portale/Labor/
  • Die 7390 ist zwar hardware-ausstattungs-mäßig nicht mehr das Flaggschiff, hat aber immer noch die modernste Firmware, nämlich die "06.00".
  • Die 7490 hat anscheinend noch Stabilitätsprobleme; man bekommt irgendwie häufig Beta-Firmware-Updates angeboten, die neueste ist die "05.60-27017". Ich leiste mir "gerade" den Kick, den Update meines Heim-Routers aus der Ferne anzustoßen.
  • Bin mal gespannt, wann die 7490 tatsächlich das Flaggschiff wird. Hätte irgendwie bisher keines der Alleinstellungsmerkmale der 7490 gegenüber der 7390 gebraucht, aber durch die kleine Austauschwelle konnte ich den Haushalt von Sohn #2 mit einer 7270 versorgen, mit der sich seine tägliche Internet-Zugriffszeit wesentlich besser regulieren lässt als mit dem alten DSL-Minimal-Router.

Perl modules to deal with config files à la "Java Properties": Config::Properties and Config::Properties::Simple



a Perl module helping to validate subroutine parameters: Params::Validate



I will consider employing this module sooner or later. And Perl::Critic as well …

Monday, November 25, 2013

"blur Exchange": yet another IT project market

http://experts.blurgroup.com/technology/

I have no idea, how useful it is resp. for which side. I received a message on LinkedIn, and I thought, I might bookmark it here.

Saturday, November 16, 2013

installing Oracle "Java SE for Embedded" on a Synology NAS


I think, I will use his description for setting up Java on my Synology NAS (resp. NASs), so that I can run the Hibiscus Server (implemented in Java) on them. My NAS at home has plenty of Internet bandwith available, so that I can get my bank account transactions updated over the Internet quite often each day.

Oracle's description on "Oracle Java SE Embedded Downloads":

For the DS112+ I chose the "ARMv5 Linux" entry "successfully". The ARMv6/7 and ARMv7 entries did not run at all. 

For the DS213+ I chose the "Power Architecture Linux - … - e500v2" entry "successfully".

Friday, November 15, 2013

Hibiscus Payment Server – HBCI banking

With the hibiscus-server running on (let's say) your current machine at port 8080 (AKA https://localhost:8080), you have a few rather useful services available:

I would love to see this running on my Synology NAS at home with plenty of Internet bandwith available, so that I can get my bank account transactions updated over the Internet a few times each day.

These days Synology does not supply Java on their devices – I assume, they do not want to get officially bothered with Java difficulties on their devices. But still here I found a description of how to install Oracle Java SE on a Synology NAS:
Wth the "https://localhost:8080/webadmin/rest/hibiscus/konto/…" REST services listed above I get hold off account data rather, rather easily like this:
$ curl --sslv3 --insecure \
    --user jameica:PASSWORD \
    https://localhost:8080/webadmin/rest/hibiscus/konto/list
Now I prefer developing software using Perl, and I will make use of the JSON lists in Perl, and that should be rather easy. I think, I am going to abandon my web-scraping scripts in Perl, once all this is in place. Web-scraping banking web-sites is a rather tedious business, whereas HBCI is a confirmed banking standard in this country (Germany), and I consider the Hibiscus Server as a rather either way to deal with the HBCI Moloch AKA FinTS.

…:

Thursday, November 14, 2013

wiki URL shortening with MediaWiki and Apache

https://www.mediawiki.org/wiki/Manual:Short_URL/Apache

I would really like to achieve that with my recently set up wiki, but so far to no success.

Apple just suggested, that I should update X11 on Mavericks

http://xquartz.macosforge.org/downloads/SL/XQuartz-2.7.5.dmg

I would love to do it immediately, but I guess the DMG is big and I shouldn't do it through mobile phone Internet.

SEPA = Single Euro Payments Area

No Starch Press book: Perl One-Liners

Perl One-Liners:
Perl One-Liners
Perl One-Liners showcases 130 short and compelling lines of code that do all sorts of handy, geeky things.
read more

No Starch Press book: Ruby Under a Microscope

Ruby Under a Microscope:
Ruby Under a Microscope
Ruby Under a Microscope gives developers a fascinating, behind the scenes look at Ruby's core.
read more

changing Perl code I inherited

  • Created a subMain.
  • There were a lot of "my"-s outside any subroutine, moved them as "our"-s to subMain – not the same visibility, I know. 
  • Outside subMain these "our"-s need to get accessed as "main::…".
  • But actually we don't like global variables at all, so pass them as parameters or …

if I needed very nice notebook hardware to run Linux: MALIBAL Nine X570SE

http://www.malibal.com/notebooks/nine-x570se/

Zarafa is the name of a European open source groupware application


Would be interesting to run it
  • on a (Synology) NAS – "busybox" on a variety of CPUS
  • or on a Raspberry Pi – e.g. Debian Wheezy
  • or …

Synology DSM 3rd party packages – this list does not show the platforms the packages are available on

http://www.synology.com/dsm/dsm_app.php?lang=enu#dsm_app_content_tabs_by_3rd_party
E.g. https://en.wikipedia.org/wiki/Zarafa_(software) is only available on ARM and x86 based platforms, and the list doesn't say that.

Wednesday, November 13, 2013

migrated a Korn shell script using "Extended Pattern Matching" to bash

https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html

I had to "shopt -s extglob" for that.

I inserted the shopt line rather close to the case statement, where the Extended Pattern Matching gets employed. That was inside a loop. That had no effect, but it didn't say so. I rather threw some weird error messages. I reduced the code around the causing line to its minimum, occasionally moved the shopt to outside the loop, and it worked. If it had only been that straigt …

SSH: if your public keys do not get accepted by the remote side, but (you think) they are in your remote authorized keys file, …

… check, whether the remote side considers authorized_keys or authorized_keys2:
# supposedly only one of them exists:
$ fgrep AuthorizedKeysFile /etc/ssh/sshd_config /etc/sshd_config
AuthorizedKeysFile .ssh/authorized_keys
This is certainly just one possible reason, if public keys do not get accepted by the remote side.

For a couple of weeks I got asked the remote password instead, and I did not understand why. My local public key was properly listed in the remote .ssh/authorized_keys2, but only today I took the time to investigate the issue, and I got reminded of this well-known reason: my remote .ssh/authorized_keys2 simply did not get considered at all. The remote ssh looks at my remote .ssh/authorized_keys, because it got set up like that – see above!

Wednesday, November 6, 2013

Synology® Releases Its Latest 2-Bay High Performance NAS for Small Business – The DS214+

Tuesday, November 5, 2013

the bash's "nullglob" is rather nice to use

http://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html

w/o this command line:
$ shopt -s nullglob
a glob pattern, that does not successfully evaluate to existing file names, gets literally resolved to a file name identical to the glob pattern.
With the above command line executed already, this command line will print file infos of /etc/passwd and ignore the unsuccessful other two glob patterns:
$ ll /etc/passwd /etc/passwd? /etc/passwd??
In interactive mode you may want to see the error messages, within a shell script supplying all three parameters to a "for f in …" loop, you will want the unresolving ones to get ignored.
$ for f in /etc/passwd /etc/passwd? /etc/passwd??; do echo $f; done
Well, at least in my script today I found this option rather useful.

I tried to find something comparable in the Korn Shell, but I wasn't successful.

"Synology unleashes its most affordable 2-bay NAS ever, the DS214se for $160" says 9to5toys


You may want to compare the specs of the DS213+ and the DS214se. I still quite like to own the DS213+.

Thursday, October 31, 2013

the Emacs tramp mailing list and gmane


Emacs and VC AKA Version Control

http://www.gnu.org/software/emacs/manual/html_node/emacs/Customizing-VC.html

I am working for a customer
  • on WinXP
  • with GNU Emacs 24.2.1
  • through Tramp
  • resp. putty plink ("pscp")
  • on AIX files.

They are using CVS on AIX, but as I am actually the only Emacs user there, I don't really bother going through the set-up for using Emacs with CVS on WinXP.

Recently I looked into *tramp/pscp HOSTNAME*, and I decided I would be able cutting down on my waiting time, if I drastically reduced the list of files and directories being checked through VC in that environment.

I really don't mind the VC overhead on OS X or (SUSE) Linux, but in that difficult environment I rather want to proceed as described.

I found vc-handled-backends and customized it the Emacs way, and I was done.