January 23, 2006

Nice afternoon snapshot

Last Saturday I was doing something in my room when my view catched the red glow outside the house. Normally I just go to the window and let the sunset impress me some time but this time I had the camera lying near and decided to capture it.

Now it serves as quite a nice desktop wallpaper.


TiddlyWiki as SVG editor

During the weekend an idea jumped into my mind:

Since SVG is a standard for graphics on the web and TiddlyWiki is an self-contained micro-wiki, what about integrating an live-SVG-editor into TiddlyWiki.

I'm thinking of something similar like a small MS Paint. Something like that is already existing, the ASCIIsvg Editor, but that is currently better suited for mathematical drawings and will very likely have to be modified a bit for inline and convient SVG editing. It's based on ASCIIsvg.js. This "library" has already been used to create a SVG-enhanced version of TiddlyWiki for math-equations. See the ASciencePad for this.

I wonder if anyone before me had the idea (and wrote it down) of an inline SVG painting tool...

January 20, 2006

TOR in the news

Since TOR had a bit of press coverage with the Anonym.OS Release and the EFF statement about Google's resistance to government subpoena I think the prime time for TOR is slowly approaching.

TOR is an application which enables the user to anonymize the IP traffic to and from his computer. This is done by providing an SOCKS proxy on the clients side which receives the IP packets, encrypts them and sends them to several TOR servers on the internet via HTTPS. Those servers then exchange the requests a few time until one finally decrypts the packet and sends it into the internet. It also receives the internet-reply, encodes it again and delivers the result back to the client again using the TOR servers.

This way everything which can be seen going in and out at a client are some encryptet HTTPS connections to a handful of servers in the internet.

The advantage of using HTTPS is that it's widely used for secure websites and so the traffic is more difficult to recognize for an outside attacker or surveyor. It also allows to bypass certain restrictions for example if a company or state blocks specific websites for its employees or inhabitants.

Macabre missing-sign text

Yesterday I was walking around the main train station when I saw such a missing-sign sticking on the wall where parents search for their missing kids.

The text of the sign contained following paragraph:

[Blah, blah, description of a missing girl...]. She is usually in company with another missing girl.

Now, what does that mean? When she isn't missing, is she still in company with missing girls? That would be cool, if someone else is missing a girl the police only has to call her if those girl is around.

January 17, 2006

Joking time, blonde joke

I just read about the The best blonde joke ever

January 16, 2006

Sent out the order

As said last friday I sent the order form for the broadband ADSL connection to Inode.

I'm curious how long it'll take until the connection is up. I'm already looking out for an ADSL modem which has built-in WLAN support so that we can take andvantage of our wireless freedom of our laptops. Perhaps I'll even set up one computer as some always-on thing for continuous connection and service providing. Dunno yet, there are some obstacles to drive around with something like that.

January 13, 2006

Acquiring broadband?

The last few days I've been thinking about boosting my internet connection at home again. I thought about that already about a year ago but did not find anything suitable at that time.

Of course I was looking for something all the time but only recently something changed. Somewhere around Christmas Inode enhanced their ADSL reselling products by two optional upgrades:

  • 7 GB Transfer Upgrade & Fair Use
  • 20 GB Transfer Upgrade & Fair Use

With these upgrades I finally found a product which enables me for low-cost massive broadband. "Fair Use" in these options means that the transfer volume can be transgressed to 110%, without that there is no limit but I have to pay for every excess MB.

I chose to buy the smallest available ADSL package (384/128 - 500MB) and enable the 7 GB option for it. I don't really need a faster line and I doubt that decent online gaming (except fast FPSs) is affected by it.

Well, including the option the price for the whole package lies below 30\x80, very fine for me :)

The order form is lying on my desk and I plan to send it over to Inode today. Better to do so because after the 15th I'll have to pay extra installation fee.

January 12, 2006

Linux shell scripting - testing for numeric argument

I've been tinkering on the problem of checking if an argument is numeric or not inside shell scripts for quite a time already. I searched the internet for a way to test if a variable in a bash script is consisting only of digits but haven't found a clear solution yet. Either that or I'm unable to bring up the right search terms. The main problem is that it has to be cross-Unix-compatible (Linux, Solaris, AIX).

A few weeks ago I completed an in-corporate eLearning course about Unix Shell Scripting. This course also contained lessons about basic Unix commands like sed and awk.

Today this tiny problem struck at me again and I tried to bring in my new knowledge from the course. What I came up with is:

#!/bin/bash

# check first argument
number=$1

# test if argument present, then compare original string to the string without non-digit characters
# if string is the same, it only consist of digits
if [ ! -z "$number" -a "$number" = "$(echo $number | sed 's/[^[:digit:]]//g')" ]
then
 echo "Argument is full numeric"
else
 echo "Argument is not full numeric"
fi

I tested it and it seems to work on all the platforms I need it. I don't like the inline call of sed but for the sake of compatibility I'll settle with that.

Perhaps I'll find an easier solution in the future but now that's not a priority anymore...

January 9, 2006

Using webbrowsers as a supercomputing platform

The recent combination of using old web technologies into the new buzzword AJAX and more interactive web applications like TiddlyWiki and the well known way how Seti@Home utilizes spare CPU power inspired me into a new idea. Well, surely not new because I doubt that nobody has thought on that before but new in the sense that I never read or heard of something like that before.

So without further distractions I'll tell you my idea: What about using the spare computing power of websurfing peoples browsers to crunch some numbers? I mean using JavaScript to fetch computing units from a server, process it locally and load the results back up.

The process I have in mind starts with loading a certain webpage which uses AJAX-technologies to provide an interactive experience to the user. Perhaps setting this page as the browsers initial page can quite increase the participation level. Then the user can, if not already done, log in to an account and let the computations begin. The JavaScript on the page loads data and processing instructions from a server. Then it processes the data and delivers the results back to the server.

The advantages I see in this approach are:

  • Keeping everything contained in one webpage lowers the entry barrier for possible participants quite a bit. Just loading a page is much easier than installing a separate application.
  • Using JavaScript for computations removes the need to create separate applications for every different platform.

Of course every coin has two sides, I see also disadvantages:

  • JavaScript is SLOW! Of course it is, it's an interpreted language inside a quite tight corsett of restrictions, runtime-checks and conversions.
  • Different browsers have different restrictions and interpretations of the same JavaScript code. This adds the need for browser-detection and alternate code-paths.
  • Most browsers only have a single-threaded base which is responsible for the presentation of all open pages and tabs. Running JavaScript on one page also slows down the other open pages and probably even makes the browser less responsive.
  • Some browsers have a long-running-JavaScript detection which kicks in when a JavaScript function is running for some extended time.
  • The computation has to deal with possible interruptions at any time by closing the browser, changing the webpage or something else.

But for some of those problems I can imagine possible solutions or at least workarounds:

  • The slowness of JavaScript can be avoided to a certain level if the JavaScript passes on some or most of its computing to plugins, ie. Java applets or other forms of objects included on the webpage. Of couse this needs support of those objects in the browser through third-party addons but nowadays this shouldn't be a large problem.
  • Different browser platforms could be unified by providing a JavaScript library with an unified API for the different computation algorithms.
  • The single-thread problem could possibly be solved in the same way as the slowness-problem: through the use of plugins.
  • Closing the browser shouldn't destroy the computation results. I expect this is what the onUnload-procedure is for but this has to be evaluated.

All in all I think this is surely something to evaluate. The slower computation in comparison to native but independend applications could be compensated by the much smaller entry-barrier and therefore greater possible participants base. The possible application of such a system is probably limited to smaller mathematical things and not big data-crushing but I may be wrong on that.

I think AJAX-techniques combined with embedded Java-applets on such a page provide the greatest flexibility and platform independence compared to other solutions.

Christmas and New Year roundup

Ok, now that I'm back from year-end vacation I'll put up a small roundup of the past two weeks:

  • We bought our first christmas tree in the new upper level of our house. Not cheap but it's a 2.50m giant. Well, it was before we had to cut the bottom branches...
  • My darling got tickets for Apassionata, a famous horse show
  • I got a brand new (and surely expensive as hell) DeLonghi automatic Espresso Maker
  • On New Year's Eve we invited some friends to our house and celebrated the evening
  • The next day we picked up the leftovers from the rockets and fireworks which were sticking in the snow. Looked funny
  • Snow, loads of snow... And all had to be shoveled away...
  • Not much time or passion to turn on laptop or computers in the two weeks
  • In the few moments my laptop was turned on I began learning Java
  • Sorted my insurance papers a bit, left them lying around too long already
  • Got a replacement cashcard twice, have to go to the bank and give one back
  • Christmas wasn't as busy as I expected, but most of it accumulated on the 24th

All in all two nice weeks.