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.
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.
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.
Monday, December 9, 2013
Saturday, December 7, 2013
purchased my 1st "Raspberry Pi" "Model B" last (Friday) night
- http://en.wikipedia.org/wiki/Raspberry_Pi
- Conrad @ Berlin, Schöneberg [link]
- http://en.wikipedia.org/wiki/Debian_Wheezy
- http://www.raspberrypi.org/
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:
Update 2013-12-08:
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
Labels:
Debian,
Linux,
Raspberry Pi
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.
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.
Labels:
build management,
Gradle,
rake
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 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 …
Labels:
AIX,
CPAN,
The Perl Programming Language,
to be continued,
UNIX,
unix_utilities
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.
Labels:
ticketing
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.
Labels:
Apple,
Mac OS X,
Mac OS X Mavericks
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.
a Perl module helping to validate subroutine parameters: Params::Validate
I will consider employing this module sooner or later. And Perl::Critic as well …
Labels:
CPAN,
The Perl Programming Language
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.
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.
Labels:
job market,
jobs
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":
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".
Labels:
HBCI,
Java SE,
NAS,
online banking,
Oracle,
Synology,
the Java universe
Friday, November 15, 2013
Hibiscus Payment Server – HBCI banking
- http://www.willuhn.de/products/hibiscus-server/
- http://www.willuhn.de/products/hibiscus-server/install.php
- http://www.willuhn.de/products/hibiscus-server/support.php
- http://www.willuhn.de/wiki/ – I don't see Hisbiscus Server mentioned
- http://www.onlinebanking-forum.de/phpBB2/viewforum.php?f=33
- http://www.willuhn.de/bugzilla
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:
- https://localhost:8080/hibiscus/ – the "Hibiscus Management Console" – this is where you enter your HBCI accounts and where you can view account statements etc
- https://localhost:8080/webadmin/ – the "Jameica Management Console" for the Hibiscus Server
- https://localhost:8080/webadmin/rest.html – the Management Console shows a link "REST Services" listing available REST services, amongst others the list of accounts and list of transactions … (see below)
- https://localhost:8080/webadmin/rest/hibiscus/konto/list – a JSON list of the accounts, of course with details
- https://localhost:8080/webadmin/rest/hibiscus/konto/2/umsaetze/days/999 – a JSON list of transactions on account "2" (you can find acount "2" described above) during the last 999 days
- All that is implemented in Java.
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 \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.
--user jameica:PASSWORD \
https://localhost:8080/webadmin/rest/hibiscus/konto/list
…:
- http://www.willuhn.de/wiki/doku.php?id=support:list:banken:misc:pintan – bank details needed to set up an HBCI account
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.
I would really like to achieve that with my recently set up wiki, but so far to no success.
Labels:
MediaWiki,
to be continued,
to be done
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.
I would love to do it immediately, but I guess the DMG is big and I shouldn't do it through mobile phone Internet.
Labels:
Mac OS X,
Mac OS X Mavericks,
to be continued,
to be done,
X11,
XQuartz
SEPA = Single Euro Payments Area
- en.wikipedia.org/wiki/Single_Euro_Payments_Area
- SDD – SEPA Direct Debit, en.wikipedia.org/wiki/Direct_Debit
- …
Labels:
online banking,
SEPA
No Starch Press book: 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 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 …
- …
Labels:
The Perl Programming Language
Zarafa is the name of a European open source groupware application
- https://en.wikipedia.org/wiki/Zarafa_(software)
- zarafa.com
- http://www.zarafa.com/wiki/index.php/Compiling_source_code
- http://www.mars-solutions.de/Knowledgebase/Raspberry_pi_zarafa
- http://download.zarafa.com/community/final/7.1/7.1.7-42779/sourcecode/
- …
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 …
Labels:
groupware,
Linux,
NAS,
Open Source,
Raspberry Pi
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.
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 …
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 …
Labels:
bash,
Korn shell,
The Shell Programming Language
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!
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!
Labels:
ssh
Wednesday, November 6, 2013
Synology® Releases Its Latest 2-Bay High Performance NAS for Small Business – The DS214+
- http://originwww.synology.com/support/news.php?lang=us&news_id=421
- http://originwww.synology.com/support/news.php?lang=enu&news_id=419
- the DS214+ is faster CPUwise and has double the memory of the DS213+, but it also seems to get sold cheaper – I certainly wouldn't need the 2nd Gigabit LAN plug, but then …
- the DS214+ is my new 2-bay NAS favourite
Labels:
hardware wishlist,
NAS,
Synology
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:
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:
I tried to find something comparable in the Korn Shell, but I wasn't successful.
w/o this command line:
$ shopt -s nullgloba 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; doneWell, 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
- http://9to5toys.com/2013/11/05/synology-unleashes-its-most-affordable-2-bay-nas-ever-the-ds214se-for-160/
- http://www.synology.com/products/spec.php?product_name=DS214se&lang=enu
- http://www.synology.com/products/spec.php?product_name=DS213%2B&lang=enu
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
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
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.
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.
Labels:
emacs,
version control,
WinXP
Tuesday, October 29, 2013
Saturday, October 26, 2013
“More Instantly Better Vim” - Damian Conway customizes his favorite editor
- http://programming.oreilly.com/2013/10/more-instantly-better-vim.html (a presentation)
- http://en.wikipedia.org/wiki/Damian_Conway
- http://www.oreilly.com/pub/au/2247 = Damian Conway at oreilly.com as author
- http://en.wikipedia.org/wiki/Vim_(text_editor)
Labels:
VIM
Subscribe to:
Posts (Atom)