Tuesday, June 1, 2010

ruby and curly braces around statements

"In memory" of perl, ruby allows curly braces in "almost every place", where perl allows it. But it does not allow it for function resp. method definitions, and not for if/elsif/else. There it enforces the keyword "end". Correct me, if I'm wrong.

Monday, May 31, 2010

public transport in Berlin

Here are a few hints, I looked up today, and that may be valid for a couple of weeks or months.
No warranties at all!!!
In case of doubt or for further information, pls refer to the BVG Tickets+Fares home page: www.bvg.de/index.php/en/ / Tickets+Fares !
  • There are 3 "tariff zones" in Berlin. For simplicity assume, you will always only be traveling within zones A and B aka "A+B" aka "AB".
  • Single trip tickets "A+B" cost EUR 2.10. 4-trip tickets (or any kind of "n-trip tickets") are not cheaper than single trip tickets, but you have less hastle with 4-trip tickets.
  • Single trip tickets are valid for 2 hours, they are strictly "one direction only", at least certainly no loops involved.
  • A "day pass Berlin AB" costs EUR 6.10, obviously it's worth going for a day pass, if you think, you would need at least 3 tickets per day.
  • There is a "Berlin WelcomeCard (5 days)" (basically a 5-days-ticket to "Berlin AB" plus a few vouchers, whose usefullness I cannot assign a proper value to so far) for EUR 29.90. (There exist a few variations of that as well ..., have a look here, if you want so!)
  • A simple regular 7-days-pass costs EUR 26.20. (I rather recommend that one, if you don't stay longer than 5 days.)
  • I also recommend you get tickets at a vending machine or at "info points" like at Tegel Airport, not on the bus.
  • Ticket machines usually accept cash and  Maestro cards, no credit cards at all.

Wednesday, May 26, 2010

Facebook forced me into a dialog

Today Facebook forced me into a dialog named "Confirm the Pages that will be on your Profile", and that was rather impressive: they showed me lots of pictures standing for pages, that they think, I would like. I liked to get out of that, but they said, that would leave my profile empty. That's rather violent, I think.

Tuesday, May 25, 2010

creating diary entries from procmail LOGFILE entries

Incoming e-mail messages may be worth getting recorded in a diary, of course most of them are not, do you agree?
Quite some times I manually create diary entries from my procmail LOGFILE.
I should have written a script to do that a long time ago. Now I did. That effort was really, really little, but I like the results.

Update / 2010-07-23:
I used to copy the entries from that log to my diary, and then a little later I usually wonder, which ones got already processed and completed. So what was missing, was just a little aid, but it looked difficult so solve for a while.
Today I introduced something new and the entry now looks like this:
23 Jul 2010
        09:56:49 [_] From: abc@def.com;
That's wicked cooled, isn't it? Yes, I know.

ruby and here-documents

Ruby has such a feature, and of course it's pretty, pretty useful. I found an article on here-documents in several programming languages at the English wikipedia.

Thursday, May 20, 2010

a call monitor for the FRITZ!Box, using a gmail address book and an area code directory

The FRITZ!Box family of routers also provide telephony services, actually all my phones go through my 7390. They are built using Linux and Busybox. On its TCP/IP port 1012 it offers event records on all telephony actions. Last Christmas I implemented a ruby script dealing with these event records and the "call threads". Yes, there is even a notion of "call threads". At that time I already decided I wanted to use my gmail address book as the data base for looking up all telephone numbers. Now I completed this task. There is a directory of area codes for Germany ("ONB"). I also make use of that one now: For every caller, whose telephone number is not listed in my gmail address book, I show at least from which area he called. I am rather glad with this software.
Initially I also wanted to make this ruby script an OS X cocoa ruby script with a colorful GUI, maybe to run on my iPhone. I'm not sure, whether I will ever be able to work on this.

Update 2010-07-02:
Having my script running now stably for quite a while, it was time for a new feature – somehow.
I have been using procmail for splitting my incoming e-mail for like 13 years or so now.
The procmail rules obviously derive from the addresses I am expecting e-mail messages from.
In former times I had a plug-in for emacs's BBDB, that created raw procmail rules from my emacs address book.
Now with my new approach it makes sense to generate procmail rules from the gmail address book.
Tonight I was in the mood for an little programming excercise, and I implented this feature rather spontaneously. I like it very much.
Right …, generating procmail rules isn't really a proper task for a call monitor, I do know that.

Update 2011-03-28:
This software now makes use of an XML Gmail address book. If you want to find out more on this issue, filter this blog using the tags shown below!

Tuesday, May 18, 2010

no more worries with winmail.dat

How often did I receive e-mail with a single weird winmail.dat attached, actually incorporating quite a few more real attachments ...

How often did this drive me nuts ...

During the last few years I was in the lucky position, that my webmail software actually supported me there by showing me the contents and allowing me to download the elements of that winmail.dat one by one -- yes, one by one.
I am getting my payroll files delivered each month like this. Sometimes I forget, that I can not (resp. could not) unpack the thing locally, so I have to send it back to my webmail site.

Today I found tnef by Mark Simpson. A big thank you to him!
Nowadays it's actually part of the openSUSE main repository, and this is, where I installed it from.

Update 2012-02-19:
It's not working on the winmail.dat file I received today. How bad!

Sunday, May 16, 2010

using "buildroot" for re-building a FRITZ!Box Linux kernel and system

I got the silly idea of  mounting a traditional Linux ext2/ext3/ext4 partition on my current FRITZ!Box 7390. I got pointed to buildroot, some nice software, that tries to ease to job of building the compilation toolchain, the libc, the busybox and all that for embedded Linux devices.

Found an article on ... describing exactly my current problem, and tried to explain in this response the software maintainer, how serious the case is. I hope, I find mercy in his eyes ... -- and some support.

Update / 2010-05-18:
Well the current flagship FRITZ!Box, the 7390, is already capable of mounting ext2/ext3 partition all by itself, so no need for building software for exactly this reason. I guess I will find a few more, so I will try again to build cross compilers etc. sooner or later.

Tuesday, May 11, 2010

postbank.de and JasperReports

When I drew my current account statement today, I was curious and applied the "pdfinfo" command on it. I was quite astonished, when it said this:
Creator: JasperReports (kontoauszug)
Producer: iText 1.4 (by lowagie.com)
I went back to their first PDF statements in 2006, and they said just the same.
Of course I would like to get in touch with them and find out, whether the knowledge, that I acquired recently in that area, could be of any use.
Yes, of course, there is no obvious current need for them to change anything regarding these account statements, but ...
Postbank has alway only been providing non-business customers with PDF account statements.
And they have been promising for years now, they wouldn't keep neglecting business customers forever ;-)
I guess that has to do with extended legal needs, e.g. signed PDF and so forth.

Right, I shouldn't forget mentioning this:
During the last couple of months I extended demo/samples/text/TextApp.java so that I can call all the necessary steps (JRXML->.jasper, filling into a .jrprint file, creating e.g. PDF) within a single call to this utility. You can now also pass JRXML parameters to this utility.
So using that simple utility you can create PDF reports in a batch run, starting from a JRXML or ".jasper" file and a database connection without any big software around -- just the JARs, that this utility needs.

Monday, April 26, 2010

SIP and international telephone numbers to get called at

You are living in country X, but you want to have a telephone number in country Y, where you can get called at. Some combinations of providers and governments won't allow it, but it's worth having a look at it. Some providers will charge you quite some Dollars, Euros, or whatever. Find out!
Here are some links:
All this is possible at rather low prices nowadays through Internet telephony aka VoIP esp. SIP. Of course SIP is not the only VoIP protocol available on the Internet, there is also XMPP aka Jabber, which is more of a general purpose thing, because it also comprises instant messaging aka IM. XMPP is actively propagated amongst other esp. by Google, so I asssume quite some progress and change in this market. Yes, there are already quite some SIP telephones out there, but actually with a smartphone (Android, iPhone, iTouch) and the XMPP right app, you don't mind the assets of the early adopters, right?

What do I use it for resp. what do I like to use international telelephone numbers for? Well, e.g. calling from  Germany to e.g. Brazil or Urugay is awfully cheap nowadays, but calling from Brazil or Urugay to Germany is still expensive. Alright, I can initiate the calling a couple of times each day, but sometimes we like getting called by our beloved ones or business friends, and then it it's simple nice and/or necessary, that it's cheap to call overseas from within Brazil at a Brazilian telephone number. Got it?

Monday, April 19, 2010

Eyjafjallajökull

There is an article on it on en.wikipedia.org resp. on the current events:
Eyjafjallajökull — translated as "Eyja-fjalla glacier" or "island-fells glacier"—is one of the smaller glaciers of Iceland.

Saturday, April 10, 2010

tools for "shrinking" a DVD

I came across these tools, haven't tried them yet myself, but I am definitely going to, and at least XDVDShrink must be quite reasonable, as it has pretty good ratings resp. weekly download figures at sourceforge:
Both are available on the Packman Repository for openSUSE 11.2, which I use directly with yast; there are also sister repositories for other Linux distributions on that site.
I definitely need to back up and shrink my and my friends' very precious DVDs like Peter Pan, Toy Story, etc.


Friday, March 26, 2010

my CV or Resume in XML

Until not too long ago I had kept my CV in DocBook, then I converted it to XMLRésumé (but the project really looks dead nowadays), now I am converting it to HR-XML/Resume. Yes, I know, its project admin just recently declared this SourceForge project as inactive. But then, what alternatives are there?
Of course, I want to edit HR-XML files in emacs using a RELAX-G grammar, but I didn't find any on the web. Well, that's not really a huge problem. Take a few nice sample files (of any XML), stuff them into trang, and trang creates a RELAX-NG grammar from them. Of course, that kind of grammar is far from perfect, but it's better than nothing, and you can always improve it manually, that's not that hard. That way I created a RELAX-NG "compact grammar" for HR-XML/Resume last night.
The grammar created actually has problems with  InternetWebAddress and Competency, but I was able to fix that for my personal use.
HR-XSL comes with a nice "XMLRésumé -> HR-XML/Resume" converter, that way my old XMLRésumé CV got converted into a good initial version for HR-XML/Resume. HR-XSL uses DocBook for creating HTML and PDF, but there is also a "DocBook -> RTF" converter, that I want to make use of.

Thursday, March 25, 2010

perl's pattern matching enhanced by "named capture buffers"

python has long had it: symbolic groups. They allow you to refer to a substring matched by a symbolic group name: "(?P<id>)", id in this case. Now perl has drawn equal: "(?<id>)" does the same job, and the feature is called named capture buffers. Read it up in the perlre manual page or online here! Basically the pieces go to "%+", i.e. a hash array by the name of "+". 

Thursday, March 4, 2010

Eclipse Pydev: refactoring

What Pydev (will be inserted a little later, promised) calls Refactoring is quite a nice toy, but not too reliable.
I tried "Rename...", and it does not rename keyword parameter usages.
I tried to use "Inline Local..." on an attribute getter, and it simply fell on its nose shouting "Could not translate editor coordinates into source node".
Not really good enough for professional usage, not too bad for Open Source. Quite a good starter at least.

Wednesday, March 3, 2010

IIWDFI

My mate at work pointed me to a techie article with this core phrase: "if it works,don't fix it!" aka IIWDFI.

Friday, February 26, 2010

BBC activates iPlayer Flash verification - Locking out open source

Read this article on H-Online!

Did you know, there is software to store streamed Flash? You find this info in that article.

Wednesday, February 24, 2010

New Python shell is a DreamPie

This article on H-Open reports on a nicer python shell.

Novell wants to be a big player in the mobile business

Novell's "open source .NET development environment MonoDevelop will now support development of Meego applications" (not quite "yet another" mobile platform) according to an article on H-Open. This article also reminds us, that MonoDevelop already supports iPhone and Google Android development.

another column-oriented database: Apache Cassandra

I came across an article at H-Open on Apache Cassandra. The Cassandra project was actually started by Facebook, but then open sourced and "donated" to Apache, and Facebook got a Gold Sponsor of Apache. The article also includes a hint on Google's BigTable. "Cassandra is used by a number of other companies, such as Cisco, Twitter, Digg and Rackspace."

Tuesday, February 23, 2010

Firefox-3.6 and certain extensions

Whenever we are offered another nice major release of Firefox, I always fear, certain extensions won't run any more and I have to find replacements for them. Now, when 3.6 and it RCs got released, there were a couple of weeks of big uncertainty (at least for me), during which I really didn't know, whether these extensions would follow this release step.

There is Sage, the lightweight RSS and Atom feed reader, (article on wikipedia (I just updated it), its home page). If you follow more than two or three feeds, what other tool can you actually use? I hope, its developers will never abandon this very nice piece of software.

There is "Live HTTP headers" (aka "LHH"), an extension for tracing the HTTP protocol traffic between you browser and the HTTP servers you are talking to. It has a mozdev home page.
This is a Firefox extension intended to be used by software developers.
There are also extensions to this extension like LHHreplay.
There is an extension to Microsoft's IE by the name of ieHTTPHeaders, that is rather similar to LHH.
I heavily depend on both of them (LHH and ieHTTPHeaders), as I use their trace files in order to generate (raw) perl scripts from them to mechanize web server accesses.
I started several years ago with several such projects to run a lot of my daily tasks, tasks like downloading market data or downloading bank account statements. And I add a few such scripts every year. Just recently I created a script to download the call record from my telephone+Internet router, an AVM fritz box.
A couple of weeks ago, there was a chap from Microsoft, who told me, he wanted to try my software for personal use. After I sent him my software, I never heard from him again.
Maybe my software is just too bad read and too ugly (a colleague of mine (a rather ego-centric guy) keeps saying so), but maybe he is just not very polite.

Thursday, February 11, 2010

Facebook Chat moves to XMPP/Jabber standard

If you are heavily interested in Instant Messaging and also Facebook, then you may want to read this article on H-Online.com.

three-finger salutes on computers

The most famous three-finger salute is Control-Alt-Delete.
Today I came across another one: Control-Shift-Escape -- that one starts the Task Manager on various Windows-s.

Wednesday, February 10, 2010

Linux freezing with kernel "2.6.31.8-0.1-desktop"

after migrating from openSUSE-11.1 to openSUSE-11.2
together with a few further online updates
including a kernel upgrade to 2.6.31.8-0.1-desktop,
my system started freezing a couple of times for two days.

I made up my mind googling for "linux freeze",
found a hint saying, that 2.6.31.8 causes trouble,
fell back to 2.6.31.5-0.1-desktop,
"et voila": the problem is gone.
What a relief!

I hope, this article helps others in similar situations.

Update:
Well, actually 2.6.31.5-0.1 didn't really change the situation.
I only thought so for a short while.
I am sorry, I gave that impression.
But after switching off WiFi, communicating through eth0 has helped since,
my system has not frozen sice.
Of course I would like to use WiFi again very soon.

Update (2010-02-09):
Right now I have an "uptime" of 2:30 hours with 2.6.31.12-0.1 (that I downloaded from openSUSE.org today), connected to my router through WiFi, which seemed to freeze that version of the kernel, that made me start this article.

Update (2010-02-10):
I actually did not expect this change to happen in the near future at all,
but now it looks, as if I will no longer need to "rmmod ath9k" (remove my wifi kernel module) and "modprobe ath9k" (reload it) again.

The wifi connection to the access point resp. "wireless router" got lost, as I had to power off/on that device, and before I could remove that kernel module and load it again, the connection already worked again as with any other OS, I have around, and as anybody would actually expect.

Very nice.
My Linux has not frozen for almost 18 hours,
its wifi connection started resynchronising by itself,
what more can I expect ...

Wednesday, February 3, 2010

column-oriented databases

I read this article on InfiniDB, and I thought, it would help at least myself, if I took a note on it here.

The centrepiece of InfiniDB is a column-oriented back end ("engine") . MySQL database 5.1.39 serves as the basis of InfiniDB and comes linked to the back end. Since there is no indication of other storage engines either in the source code or in the InfiniDB documentation, this seems to be a pruned version.
Of course, using a pruned version makes it impossible to combine queries into different engines, I am not going to describe the disadvantages here.

Other column-oriented free databases (Infobright, LucidDB, and MonetDB) and also a commercial one (Kickfire) get mentioned in that article.

This topic always reminds me of my time in an environment, where FAMEdb got used.

Thursday, January 7, 2010

emacs, *-other-window, splitting horizontally

After I upgrading to emacs-23 quite a couple of months ago, all these functions called *-other-window split my screen horizontally instead of vertically, as they have done for the last 20 years or so.
Getting it split vertically was really a pain. Today I found, that I just needed to set split-width-threshold to nil (well, I have never dreamt of that thing so far ...), best done through customization. I should have searched for that solution months ago ...

Update 2013-02-21:
I had written this article quite a while ago, but still I had neither remembered this article nor the name of the variable to customize. Well, this ocurred to me (again…) after starting to use W32 emacs [Link]. I really experience getting split frames to windows horizontally as a severe pain.

Tuesday, January 5, 2010

Skype starts offering SIP

I found these rather interesting news today in my e-mail from Skype.
(When I tried to read more on this on Skype.com, I found that T-Mobile currently seems to block accesses to that domain. Of course that did not stop me from doing so, but I don't think, that's a good and gentile draw on T-Mobile's side. I consider this kind of censorship rather childish.)
But further on the SIP issue!
Right now Skype offers you a subscription, that costs you n times EUR 4.95 per month, where n is the number of channels resp. maximal concurrent connections resp. "calls" you want to be able to use resp. have, incoming and outgoing calls count the same.
Right now that's nothing I want to go for, as I don't even have a "incoming Skype telephone number" (I don't want pour money on a steady monthly into yet another sink for services I don't really, really need), but I assume sooner or later, they let us dial out through SIP on a per call basis, just as they currently let me dial out on a per call basis using their proprietary software on Windows, Mac OS X or "whatever"; there they let me display my mobile phone number as "the caller", that's fair enough, I don't ask for more. I have been waiting with "all of us" for Skype to act as a SIP provider for quite a while, I am quite able to wait for that next step for another (short?) while. One step is done, the next steps will follow ...
If you search for "Skype SIP" on twitter.com, you will find, that Skype have been publishing that news on markets other than Germany at least for 4 days (as of 2010-01-05).

does T-Mobile block access to skype.com web pages through their UMTS etc.?

I guess so, as no access whatsoever seems to succeed through my Internet through UMTS with T-Mobile Germany as provider, although I can access Skype.com right now through another connection (bypassing T-Mobile Germany). No, Skype.com is no overloaded right now. I find that censoring exercised by T-Mobile quite childish and not very gentile towards their customers.