Category Archives: Computer

Gibberish Last Names Clogging up Subscriptions

I had been annoyed recently by an increasing number of SPAM subscriptions on my web site. The script behind the form for these subscriptions and requests for rebate immediate send out a confirmation email to the address entered (as well as to the admin of the site) and add the visitor to a database.

Initially there were a few of those spam entries and I could easily go into the database and manually remove them. But they became more and more numerous, so the first step was to add a link to the email the admin received which allowed for an easy removal of that spam entry.

But finally it got so annoying and time-consuming that I tried to think of a more automated way to handle the spam entries. What they all had in common was

  • a good first name
  • a gibberish last name like NLMAkPJpIVyqCkCeuEh, YijhgzswktJTVWqXhmA or MPSVPkfXInMzFYhEOpp
  • and a good email

The email was probably a good one because there were hardly any bounces for the automatic confirmation emails. That actually bothered me also because these poor recipients got some SPAM apparently coming from me.

Now the quest for me was to find something that all these spam entries had in common so that I could filter them somehow. Unfortunately php does not have a ‘gibberish’ function, so I had to come up with one of my own. Meditating over these entries I finally saw that these spam names often have longer sequences of consonants than would occur in valid names.

With a little bit of help from my friends at Google I came up with the following. With the hope that it might help somebody bothered by the same spammers, here the code snippet to filter those entries:

$first = $_REQUEST[first];
$last = $_REQUEST[last];
$gibberish = preg_match('/[bcdfghjklmnpqrstvwxz]{4,}/i', $first)
          || preg_match('/[bcdfghjklmnpqrstvwxz]{4,}/i', $last);
if (! $gibberish) {
    //do the regular processing
else {
    // pretend every thing went find for the spammer
    // but don't really do anything

Will see how many will slip through – gibberish with less than 4 consonants in a row.

What I am still curious about is ‘WHY’? What the spammer intends with these spam entries. I don’t see any way that could be beneficial to him/her. Discrediting me because the site sents out spam? But why then use gibberish in the last name? I am really curious.

How To Make Symbols With Keyboard

Alt + 0153   ™   trademark symbol
Alt + 0169   ©   copyright symbol
Alt + 0174   ®   registered ­ trademark symbol
Alt + 0176   °    degree symbol
Alt + 0177   ±   plus-or ­-minus sign
Alt + 0182   ¶   paragr­aph mark
Alt + 0190   ¾   fractio­n, three-fourths
Alt + 0215   ×    multi­plication sign
Alt + 0162   ¢   the ­ cent sign
Alt + 0161   ¡    upside down exclamation point
Alt + 0191   ¿   upside down question mark
Alt + 1   ?   smiley face
Alt + 2   ?   black smiley face
Alt + 15   ?   sun
Alt + 12   ?   female sign
Alt + 11   ?   m­ale sign
Alt + 6   ?   spade
Alt + 5   ?   Club
Alt + 3   ?   Heart
Alt + 4   ?   Diamond
Alt + 13   ?   e­ighth note
Alt + 14   ?   beamed eighth note
Alt + 251   ?   square root check mark
Alt + 24   ?   up arrow
Alt + 25   ?   down arrow
Alt + 26   ?   r­ight arrow
Alt + 27   ?   l­eft arrow
Alt + 18   ?   u­p/down arrow
Alt + 29   ?   lef­t right arrow
Alt + 0196   Ä   umlaut upper A
Alt + 0214   Ö   umlaut upper O
Alt + 0220   Ü   umlaut upper U
Alt + 0223   ß   german sz
Alt + 0228   ä   umlaut a
Alt + 0246   ö   umlaut o
Alt + 0252   ü   umlaut u
Alt + 0128   €   Euro

A more complete list of Windows Alt Key Codes.

The Internet is Humming with Dr. Who

The-Doctor-and-ClaraToday the wait was over – the second half of season 7 of Dr. Who has started.

I bet that most views of the show happened on the official channels like BBC America here in the US of A, but, as we are out in the boons, with the cable left behind, we depended on the good old pirate bay to get our fix of Dr. Who (obviously this is a lie, as we would never download any tv show illegally.) Had we actually looked at the torrents we would have been surprised by all the buzz on the interconnected pipes that make up the internet. Way over 2000 seeders is rather rare, and still, download speed would have been – had we done that – still rather slow, so there would have been many, many people as excited to find out about the Doctor’s new adventures and all with a new companion.

Had we been able to watch the show after downloading it illegally we would have been able to actually watch it on the west coast before it officially aired. As I write this, it’s only a bit after the show ended and we would have finished it hours ago – way ahead of all the people waiting for the BBC to start it – Man – are time zones cool, or what?

I’m really curious if the Doctor will get lucky with this companion, but I’m not really holding my breath as one of the big tensions in the series is that that never happens. Strange things can happen if time travel is involved, like Amy turning out to be the Doctor’s mother in law – who comes up with those things?

Thanks, Steven Moffat!

Look Ma, No Breasts – A Photoshop Disaster

I have, in the past, enjoyed some of the Photoshop disasters that happen when the graphics editor just does not pay enough attention or is not given enough time by his editor to do a good job.

Today I found one myself…

Escali Body-Composition Scale – Groupon Online Deal

Instantly I had the feeling there was something not quite kosher but I had to look twice to see what’s wrong with that lady. I guess with the help of that scale that measures body fat she succeeded to get rid of all the fat in her mammal glands because they are not there any more.

Subliminal advertizing?

There certainly is the possibility that this model has a very long upper body, but as models are usually well-shaped and proportioned, I am leaning more towards a little mishap with the clone tool.

(clicking the photo might bring you to the Groupon page where I found this image, but there is a good chance that it will not be there when you look – just the way Groupon works.)

X11Forwarding But DISPLAY variable not set

x11-logoSerious programming in the olden days mean to deal with Unix – the father of today’s ubiquitous Linux running bigger part of the internet.

The first bigger project I was involved in was still the good old DOS with Turbo Pascal – anybody remember that?

As soon as I could, and we had to build something less of a hack but more of a software-engineered application, I steered my client into Unix, first the X86 version of Xenix, which turned out to be too flaky, and then a nice hundred thousand dollar HP Workstation. As it was an application involving graphics, an important order of business was to get familiar with the principles and techniques of the X11 windowing system.

This was not a very long-lived project and with the advent of more powerful x86 hardware and a finally decent piece of software from Microsoft – Windows NT – the develoment was moved to that new platform. The fact that the port from X to NT was not terribly difficult was a nice testimonial for proper application of software engineering principles. Hacking mentality as promoted by something like Turbo Pascal would have required a complete rewrite.

System administration, I had become familiar with during that time, was helpful when I started to maintain a few linux web servers years later. I always considered X11 far superior to all the other graphical windows software but I really had never anything to do with it any more – until a point in time a few days ago.

First of all, I finally succeeded in getting Ubuntu running on an old laptop. A flaky DVD had never gotten me through an installation properly and the machine was so old that it could not boot from a memory stick. I ultimately succeeded when I found a utility I could burn on a CD and boot from that made my USB bootable. Now I could load Ubuntu from the USB stick.

So, there I finally was again with a computer with a proper graphical user interface. But that computer was tucked away somewhere with little physical access. It serve as a local testing machine for web development – did not really need that X Windows for that!

But it was sitting there, teasing me, so I finally got XMing – an X Server running on MS Windows – installed on my main computer where I sit all day and I could finally connect to that old laptop remotely with a graphical user interface. In my early days of X11 there was not too much concern about security – it was all on the local network – yes, a coax ethernet cable – and to have an application display on an xterminal you just had to set the DISPLAY environment variable to the IP address of any X-Server, like a xterminal, and authorize its use.

That is all different now. I learned that from a remote machine you start an ssh connection on my workstation (windows 7) to the remote host (old linux laptop) using putty. If the putty session had X Forwarding enabled then a secure tunnel for all the X traffic was created. This tunnel could even go through a router with NAT without a problem. Initially I had wondered why I saw the value of the DISPLAY variable set to strange things like localhost:10.0 – but I finally understood that this was how the ssh tunnel worked: the ssh server on the old laptop pretended to be a local X server on display number 10; then it transported all the X traffic it received securely to the machine I was sitting on and fed it into XMing. It all worked perfectly.

Two weeks later I received my first Raspberry Pi and that little wonder did behave the same way as the old laptop, a bit slower I have to admit, so the old laptop is still a bit more powerful than the miniature linux box sitting over there on my speaker. Both are full LAMP systems and are even accessible from the rest of the world through the magic of DynDNS and port forwarding.

But then my trouble began.

As I had all this so nicely and easily set up, it was suddenly not enough any more that I logged into my real web servers only with putty, SCP, and DirectAdmin. Nostalgia had me in its grip and I just had to get X running on them as well.

First of all there was no X-stuff installed on those servers as they were web servers in some remote data center. But a “yum install xterm” got this handled. Still no go – starting xterm from the ssh login gave me the error message that the display was either not there or could not be opened.

The next step, I found out, was to enable X11Forwarding for the sshd on the remote server – but still no go – the DISPLAY variable was still not set. Lots of Googling around but no solution – everything I tried made no difference.

But I learned about the -vvv parameter to ssh. It would give me insight into what was happening during the establishing of the ssh connection. Unfortunately, putty does not have it! But I found that it has a logging function and after turning this on and comparing the logs from connections to my local old laptop and the remote web server I finally saw the light:


After I had it yum-installed and run to generate a new .Xauthority file for a local X server my quest for the xterm running on that web server and displaying on my local machine behind a NAT router in my office had come to a successful conclusion.

Not that I will use that much – putty and SCP have done the job for me for years – but I now could, potentially, install firefox on that server and start browsing through that server located at a very different place on the planet.

Hmmm  – why don’t I just try that: yum install firefox……………………….
finally, after installing a gazillion dependent packages, the installation is – complete!

Now: firefox& – wait – wait – wait…


But it is clear that I have to file this away under ‘education’ as it is so slow to make it more or less unusable.

Google in the 60s

My first encounters with computers were through the medium of punch cards and line-printers.

Thus, finding the Google60 art project made me a bit nostalgic. The project tries to show how you would interact with the all-pervasive Google through the mediums of the 60s.

Click on the image to experience it yourself…


Google 60 Art Project

The Good Old Trash 80

I ran into a web site today showing the 1980′s Radio Shack catalog of the TRS 80.

My very first computer had been a Trash-80 and I remember having a lot of fun with it. One of the most difficult tasks for me to understand, at that time, had been the idea of an interpreted language, like that TRS-80 Basic.

Before that computer I had been mostly exposed to assembler and some high level language like Fortran  and PL3 on an IBM mainframe. This the idea of typing in human readable code and directly running it – without compiling and linking – was a strange concept to grasp.

The TRS-80 I had was far less sophisticated than the one shown in the above catalog, so I looked around and found a picture that matched better what I remembered:

I believe that I had the 16kB model but certainly no floppy disks – I saved my programs and data on cassette tape. With my difficulty to grasp the concept of interpreted languages the first program I bought was an assembler. I was quite some work to get anything done with this setup:

  • Insert the cassette with the assembler and load the program
  • Edit and assemble the code, keeping source and assembled program in memory
  • Insert a new cassette into the recorder and save the source file
  • Insert a different cassette into the recorder and save the assembled program
  • Load the assembled program (overwriting the assembler in memory)
  • Running, testing the assembled program and writing down errors
  • Rinse and repeat

This lengthy procedure trained you to really think ahead and consider all possible errors – it took too long to ‘just try’ something. In this regards those interpreted languages are much easier and train programmers to be much sloppier.

Bigger part of the internet now is based on such sloppy work – whenever you have a php file it is more or less interpreted like the old Basic in my Trash 80. I once read – and it made a lot of sense – that we would do a lot to avoid global warming if we would compile all those billions of lines of php code into machine code once and then execute that on the server. All data centers around the world could be scaled down considerably if each line of php code would not have to be compiled over and over and over again, thus saving energy for the processors of the web sewer and the energy for cooling them.

Maybe, then the web could run on  a couple of TRS-80s.

Triumph of the Nerds

Now that all those nerds that created the computer revolution are getting to an age where we might lose them – see Steve Jobs – documentaries like Robert X. Cringley’s Triumph of the Nerds become more of a history text book (book understood more figuratively).

In the old InfoWorld magazine/newspaper Cringley’s column “Notes from the Field” was always my favorite – your’s too, Max, right?

So, I just had to stop and listen (and watch) when I ran into his documentary “Triumph of the Nerds” on Youtube.

What to Do to Be on Money and Coins

When playing with my scanner and photo editing software to find out how to get around the built-in law prohibiting to scan money, I looked at the dude on that one bill and could not help thinking about what he did to become so admired that he now is on one of those pieces of paper that is usually called money.

Honest Abe managed to trample liberty with all his feet by forcing the south to remain in the union. They did not like to be in that union any more but Abe did not want to lose what they contributed so he waged a war to keep them in. As he was the victor he packaged his motives as “freeing the slaves” – but politicians, especially when victorious have always been very good at this kind of re-purposing.

Another dude that I just recently learned to see in a different light does not have his own paper bill, but at least he has a coin, and, as I remember, at least one stamp with his picture…

Wernher von Braun – the man who took us to the moon.

But he also was a war criminal because he built – or helped build – all the V2s that were used to bomb England. He did not have to stand trial in Nuremberg because his services were needed in the US of A.

So, what could I do to get my picture on some money or at least a coin?

No good idea yet but maybe some of you might come up with something.

And, so that you did not come here for nothing – here is how I got the picture of Abe from the 5 Dollar bill. My scanner – an HP – did scan the bill without a problem into a png file. I could not open that in Photoshop or Corel Paint – but Gimp was not so picky about the law. So I opened it there, cropped and straightened it, then selected all and hit the Crtl C.

In Photoshop I could open a new doc and just paste the data from Gimp. Once saved as a Photoshop native format – psd – there was no problem re-opening that file – and cutting out honest Abe.