Tuesday, November 23, 2004

Ostfriesisch & Half-Life 2

Angeregt durch die Podcasts von Steffanie habe ich Heute meinen ersten eigenen Podcast produziert. Es hat ein bißschen gebraucht, da ich bisher kein Aufnahmeprogramm für meinen Mac hatte und mein Headset für den PC zu verrauscht ist. Aber dank Rainer Joswig bin ich auf Audacity gestoßen.

podcast logo (8 Minuten 1,1MB)

Sunday, November 07, 2004

Natürlichsprachliche Schnittstellen

Ich weiß noch nicht ganz was ich damit machen soll, aber John hat über Natürlichsprachliche Systeme mit Lisp geschrieben.

Um ehrlich zu interessiert es mich nicht sehr, wenn ich meinem Computer über das Mikrofon befehlen kann was er tun soll, ich sitze vor dem Ding und statt Maus und Tastatur zu benutzen (was schneller wäre) Spreche ich mit dem PC. Wenn mich Jemand dabei hören würde wäre es sicher komisch, denn man muß ja deutlich und laut sprechen, was wiederum sehr unnatürlich ist, und wenn man es dann noch dreimal wiederholen muß …. Diese Vorstellunge reißt mich nicht vom Hocker, genausowenig wie einen Rechner als Übersetzer zu benutzen.

Aber so ein Programm daß ich nach dem Status von dem System Fragen kann, wie in dem vorgenannten Beitrag, reizt mich schon. Oder wie wäre es damit, weil ich keine vernünftige Anlage habe, höre Ich meine Musik über den Computer und statt daß Ich auf irgendwelche Knöpfe drücke könnte das Programm doch auf Sätze wie „Das Lied gefällt mir&ldquo, „Ich möchte ein anderes Lied hören“, „Das Lied mag ich nicht“, „Ich habe Lust auf Kings of Leon“, (Telefonklingeln) reagieren. So könnte ich beim Abwaschen gute Musik hören ohne meinen Mac naß zu machen.

Deutsch im Finnisch-Unterricht

Korrektur: Es gibt im Finnischen einen Perfekt!

In der Finnischen Sprache gibt es kein Perfekt stattdessen wird der Imperfekt (Präteritum) benutzt und wenn man von dem F. Sprache ausgeht gibt es keinen Passiv in der Deutschen Sprache. Damit setzt man sich auseinander wenn man Finnougristik Studiert, kein Wunder das man mit diesem Fach keine Arbeit findet.

Noch mal zum Perfekt, der ersetzt im der Deutschen Sprachgebrauch den Imperfekt, wer sagt denn noch „Ich buck den Kuchen“?. Siehste, stattdessen sagt man doch „Ich habe den Kuchen gebacken, vielleicht ist das Beispiel nicht so schön aber wenn es dafür schon ein Wort gibt ist es wohl doch ein Phänomen: Präteritumsschwund. Ein besseres Beispiel Imperfekt: „Ich lief zum Bahnhof“ vs Perfekt: „Ich bin zum Bahnhof gelaufen“

Soviel zur Sprachwissenschaft, das ist nicht ganz mein Ding, die Schule ist auch länger her … aber Ich hole es irgendwann nach.

Etwas für die Ohren

Ein neuer Blog-Fund: Deutsch für Anfänger. Eine Schwedin mit einer sehr schönen Stimme die Deutsch lernt und auch auf Deutsch bloggt.

Hm, mein Finnisch, ich sollte mich mehr darum kümmern, Hausaufgaben machen einfach Texte auf Finnisch lesen zb. aus dem Helsinginsanomat und auf Finnisch bloggen (?). Tu was, tu was, und schätze den Imperfekt (Ich buck den Kuchen).

Thursday, November 04, 2004

Pläne

In den nächsten Semesterferien muß ich unbedingt Urlaub im Ausland machen, am besten in Finnland um endlich meine Sprachkenntnisse anzuwenden und einen Ansporn zu haben diese auch mal zu verbessern, sprich auch außerhalb des Finnischunterrichts Vokabeln und Grammatik lernen.

Aber bevor das soweit ist muß ich dafür erstmal genug Geld verdienen und lernen mit der Fotokamera umzugehen.

Ein anderer Plan hat Heute konkretere Formen angenommen, die Website meiner Gemeinde bekommt bald ein neues Layout und, weil niemand mit dem altem System zurecht kommt, auch ein neues CMS für das ich zuständig bin.

Wednesday, November 03, 2004

Platte des Monats

Kings of Leon - Aha Shake Heartbreak

Seitdem ich sie Heute gekauft habe lief bisher noch nichts anderes. Aha Shake Heartbreak hat mich auf Anhieb beim reinhören im Laden überzeugt. Vom Sound ich würde sagen sie bleiben sich selbst treu, legen aber noch einen drauf.

Sunday, October 31, 2004

Assoziationen

Es ist interessant wie man Texte mit vielen Links liest. Mir ist jedenfalls aufgefallen das, Ich bei den Texte von Assoziations-Blaster, die mit Hyperlinks nur so durchsetzt sind, zwischen Links immer Pausen mache. Ich lese also nicht den ganzen Satz sondern die Links immer Wortweise.

Auch sehr interessant was Netzmanipulation angeht insert_coin.

Saturday, October 30, 2004

Heute angekommen

Heute angekommen
  • Contemporary Linguistics für Einführung in die Linguistik für Studierende der Finnougristik und hoffentlich auch für meinen Schwerpunkt im Informatik Studium
  • Ein Moleskin das hoffentlich nicht so leicht verschleißt wie das Notizbuch, das ich momentan in meiner Gesäßtasche rumtrage.
  • Batterien für meine Digitalkamera, damit mir während meines Besuchs bei meiner Schwester in Stuttgart nicht der Strom ausgeht.
  • Ein Spiegel im Briefkasten, ich bin zu faul für eine Tageszeitung und mir sind Zeitungen auch zu groß.
  • Technology Review vom Zeitschriftenladen, Abo ist heute bestellt worden.
  • CD-Rohlinge damit ich ein Backup von wichtigen Daten machen kann um danach Ubuntu zu installieren.
  • Gummibärchen, die gab es umsonst.

Thursday, October 28, 2004

das wars

Ich habe die letzte Prüfung vom letzten Semester bestanden. Damit sieht es bei den Prüfungen vom SS04 garnicht so schlecht aus:

IMGF1/2F3/4T3/4
4.02.3 (5.0)2.72.0

Sunday, October 24, 2004

piano dreams

Some months ago I had a strange dream, strange because it was emotionally intense and unusual wrt what happened in it. I was not processing what happened the day before nor was it very surreal, it was not the “usual strangeness” of a normal dream.

I do not remember most of it, but three things stuck. I played at a piano, Michael (band leader at our church) played guitar and I sung a song. I did not know the lyrics but improvised on the spot, not having to think about words, they just flowed out of my mouth.

It was amazing, I did not know how to play piano, nor did I know the song. I just sat down and started playing & singing.

I was so happy making music, moved to tears in the dream. Waking up in disbelief that I could be that moved by a dream, I touched my eyes to discover that tears really were running down my face. Even now when I write and recall it, it is still very touching.

I did play piano when I was younger, but stopped at about ten. I do sing in the youth group at our church. So I would not rate myself high, but in the dream I just knew, I just knew how to sing and play as if I had done nothing else in my life. It is the second dream that touched me so deeply and I believe both were God touching my life, something he wants to tell me, not a order of his, but something he wants to share with me.

Until thanksgiving nothing came of it, I enjoyed it but took no action. At thanksgiving however we had a meal in the church and I sat at a table with our second pastor and the young (and attractive) piano player. The pianist told of spoiled children she is teaching, how she learned playing and church music. It took some weeks but today I asked her if she can give me piano lessons. Making my dream reality.

Saturday, October 16, 2004

code aesthetically pleasing

It [emacs] is written in Lisp, which is the only computer language that is beautiful. Neal Stephenson

I agree with him, the fact that that lisp does use only a few characters with a special meaning for most of the code and the fact that the two most used special characters are round makes most lisp code aesthetically pleasing. Some format code though, can be like going cyrillic

.

Sunday, October 03, 2004

revising

busy, revising for exams, DFA, NFA, PDA, CFG, P, NP, TM, RAM etc.

Thursday, September 30, 2004

nacht

Saturday, September 11, 2004

Lisp in Games

It's not a secret that Naughty Dog uses Lisp to write its games like Jak & Dexter, and you can even look at the Lisp code that was used in Abuse (it is in the data files archive).

But it is more of a secret that at least two other games owned/distributed/whatever use Lisp for their AI. Age of Empires: Age of Kings uses as suspiciously Lisep-like syntax for their AI-scripts. report from the 2002 Game Developer’s Conference Question #6 near the end: &ldquoLISP is more a favorite of academics and rarely used by game developers, though the AI in Halo makes heavy use of LISP scripts.”. And to cheat in “A Bug's Life” you can edit "lisp\options.lsp".

This is a badly written text, basically it's just some links, I found on the usenet, surrounded by a few words

debugging lisp

The Conditions System of Common Lisp is something I have not grokked yet. I had a look at some examples and tutorials, but they usually involved too much information and code, more than I thought is neccessary for “simple” things. Sometimes in OpenMCL, when an error occurs it gives you the chance to assign/change a value or define a function and continue. But the debuggers in SBCL and CMUCL never offered such restarts. Because I knew OpenMCL can do it, and that capability ist often praised in Common Lisp, I thought it is “simple”. But the Condition System tutorials were always complex, using CLOS, creating new classes with :keywords and such, not just one, two functions/macros to remember and if one needs more one checks the manual.

So I was very happy when I found Joel R. Holvecks Usenet Post Re: Debugging Lisp code (stupid newbie question). He explains exactly what I want, getting an error, fix it, and restart from a frame rather than using one of the default restarts (abort). No CLOS, just a macro and a special operator, RESTART-CASE and UNWIND-PROTECT.

Wednesday, August 25, 2004

In one day

I rarely read a book in one day, but “Surely You're Joking, Mr. Feynman” was so good that I did. So I think it is highly recommendable, it's fun to read, the scientific parts are very lightweight and you get a bit of a insight into Mr. Feynmans life.

Tuesday, August 24, 2004

Great things to come ... *puff*

Sometimes when I read a paper or a book/paper about a great scientist, or simply some cool (mostly CS) stuff, I want to go out and develop the next great thing, write an application which puts some of the ideas, I just read about, in use. I am inspired by those texts, I want to do something, but nothing ever came from it, nothing. I hope someday something great will come from this, or I do something great, remember what I have read, how it inspired me, and think “ well it took some time, but at least something did come of it”

Probably it is not working out because you need to try and fail beforehand, build one to scratch it. Or in other words: It won't come from nothing, there is some work to be done upfront!

On a sidenote: There is one thing, nothing important, mostly of use for myself, i believe using emacs improved my typing. Maybe it's because it got in the way with I usually handle the keyboard. Previously I used key like END or PAGE UP, but with emacs I am using more different keychors.

If somebody reads this blog, it would be nice if you left a comment.

Reading

Reading, UK

Some days I am thinking I am not reading enough and should get out and shop for some english book. On other days I am thinking I should organise myself better and not read so much at the same time. I am really reading a lot, but not what I used to read. I have read some of Nick Hornbys books and liked them, I read Glue and Porno by Irvine Welsh, but I have read the last book of that kind over a year ago. Coincing with my LISP obsession I started reading more “scientific” books/papers. At the moment I am reading

  • “Can Programming Be Liberated from the von Neumann Style?”, John Backus - Paper
  • “Connection Machine Lisp: Fine-Grained Parallel Symbolic Processing”, Guy L. Steele Jr., W. Daniel Hills - Paper
  • “Surely You're Joking, Mr. Feynman“, Richard P. Feynman - Book
  • “Metamagicum”, Douglas R. Hofstadter - Book (German)

And there are more books & papers in the queue. But I read a lot onscreen aswell, news, blogs, etc. I consider it quite a lot and fear I might loose track somewhere and not grok a paper, loosing time to reread it, if I do it at all.

A another problem is that those books collide with the “required” reading for university, scripts and such.

unexpected call

One of my aunts found me in ICQ today, which is totally unexpected as most of my relatives do not use their computers for anything but work.

Keyboards

My first obession with keyboards was when I bought two german IBM Model M keyboards. Before Model M, I used the cheapest Cherry keyboard available, and before the Cherry I used and AT/XT keyboard which had a switch at the back to toggle between AT and XT PCs. The XT/AT keyboard is a monster in size, but it was my second keyboard and it has *click*, a quality which is missing from modern keyboards.

The keyboard I would like to have does not exist, nor would it be supported by current software. It would be like the old keyboards at university (eg. Stanford, MIT) computers. Those keyboards had an extended character set, eg. they supported entering λ, ∧ and ∨ directly, not latex style \lambda \wedge, \vee

Such a keyboard would probably look like the Knight keyboard or the Space Cadet keyboard. Though it might produce cokebottles and one may need quadruple bucky to enter some characters. Mr. Crunchly might complain.

Using Emacs you will inevitably stumble upon the Meta Key Problem, most keyboards do not have a meta key, (i think SUN keyboards have one, but it is not labelled as such). So the Alt key is used instead. However Meta is just one out of three, due to MIT & Lisp Machine heritage Emacs can also handle Super and Hyper, but unless you have a very very exotic keyboard you won't have them. If you have a keyboard with windows keys you could make more use of them than most users do, not mimick windows behavior but use them as Meta, Super and Hyper instead (which still gives you the option to use them as “windows” keys). If you do not have these extra keys, you are bound to rebind other keys. So, do you really use CapsLock? Do you need two Alt/Ctrl keys?

Supposing the answer is no to both questions, you can fiddle around with xmodmap & xkeycaps. The most common thing seems to be swapping Ctrl and CapsLock, so that Ctrl is next to “a”.
If you use an non-american keyboard there is even more you can do to ease programming, like making parens and other often used brackets more accessible.

The other reason why I'm writing this is to point to John McCarthys paper EFFECTIVE INTERACTIVE USE OF LARGE CHARACTER SETS

Sunday, August 15, 2004

Nachwehen

Gestern: Welt Astra Tag mit entsprechend viel Astra. Heute: Kopfschmerzen, Übelkeit, ..., der Tag ist im Eimer. Wahr wohl doch zuviel, aber schön ein paar alte Schulfreunde wiedergetroffen zu haben.

Thursday, August 05, 2004

How many hours does it take to go to Japan by car?

Fool's World Map

This is a project visualizing the world map which many fools in the world imagine. If you can see this map comfortably, you are definitely a fool.

ZEN-STYLE | Fool's World Map

Saturday, July 31, 2004

Gödel, Escher, Bach or Metamagical Themas

Gödel, Escher, Bach (GEB) is what I wanted to read, Metamagical Themas (MT) is what I'm reading. The problem is I just found this out after having read half of MT, I was already wondering where Mr. Tortoise was. I just hope GEB is doesn't have as many pages as MT and is easier to read and not less interesting after having read MT.

Firefox nuisances

Firefox can be a nice browser, but there are two things that annoy me. It seems like it can't handle many images, bigger than 500kb, at once. As today my system was unusable because it kept swapping like wild and so that at some point the kernel (or whatever manages memory eaters) decided to kill it.
The other thing is the download window, which was fine before 0.9, but now it is like a annoying popup window. Every time a downloaded it pops into the foreground, which is especially annoying when I start several downloads. Previously it just opened when it was not there yet, but stayed in the background afterwards. I “fixed” this problem by deactivating “Show Download Manager window when a download begins” under “Preferences” -> “Downloads”

There is however once feature they did improve, the DOM Inspector. I usually use it to prepare websites for printing, that is I start up the DOM Inspector by Control-Shift-i, and delete everything I don't want. It is very handy to get rid of ads, format tables to use the whole page and thus waste less paper. And if you can't find something in the tree, you can use its finde node feature which is just point and click. Quite neat.

Wednesday, July 28, 2004

Smalltalk aka forgotten language

Somehow this article: “Forgotten language enables nonstop gadgets”, reminds me of Master of Orion, especially the news story when you find ancient yet superior technology.

Saturday, July 17, 2004

spam

Silence is argument carried out by other means. - Ernesto Che Guevara (1928-1967) Show me a sane man and I will cure him for you. - Carl Gustav Jung (1875-1961) Be nice to people on your way up because you meet them on your way down. - Jimmy Durante

at least it's more interesting than obfuscating word, and writing useless crap.

Sunday, July 11, 2004

Uni Ärger

Ich studiere Informatik an der Universität Hamburg und weil man Informatik nicht um der Informatik willen studieren kann, sondern immer ein „Anwendungsgebiet“ braucht, muß man sich eine Ergänzungsfach (!= Nebenfach) aussuchen. Bei der Wahl des Nebenfachs sind einem eigentlich keine Grenzen gesetzt, man kann alles wählen was es so an den Hamburger Hochschulen angeboten wird. Für einige Fächer gibt es sogenannte „Ergänzungsfach-Rahmenpläne“, die machen das beantragen des Ergänzungsfaches ziemlich einfach, ein formloses Schreiben ala „Ich möchte X gemäß Rahmenstudienplan studieren“ genügt.

Für alle anderen Fächer ohne Rahmenstudienplan muß man sich selbst einen Plan zusammenstellen, d.h. Vorlesungen/Seminar/Praktika mit mindestens 12 Semesterwochenstunden (SWS) zusammensuchen, überlegen wo man einen Leistungsnachweis erbringen will/kann. Sich mit den Dozenten absprechen wegen der Vordiplomsprüfung. Dann bringt man das ganze auf ein Papier, besorgt sich eine Unterschrift & Siegel von seinem Prüfer, und gibt den Antrag im Prüfungsamt ab. Bis vor kurzem gab es noch keinen Vordruck für den Antrag und auch sonst recht wenig Informationen was man denn so beachten muß, ein eigener Ergänzungsfachplan ist wohl nicht so beliebt, die meisten studieren eh Experimentalphysik oder Psychologie.

Da mir die Fächer für die es einen Rahmenstudienplan gibt nicht wirklich gefallen und ich lieber etwas in Richtung Sprachen machen wollte, habe ich mir Finnougristik, bzw. Finnisch ausgesucht, entsprechend Kurse belegt und, recht spät, einen 1. Antrag gestellt. 8 SWS mit Prüfung „Finnisch I + II“, 2 SWS „Einführung in das Studium der Finnougristik/Uralistik“, 2 SWS mit Leistungsnachweis „Einführung in die Linguistik für Studierende der Finnougristik I“. Nach einiger Zeit kam dann eine Antwort: Eine Kopie des Antrags mit einer Bemerkung am Rand:

Sprachkurse können nicht anerkannt werden, da Sprachkenntnisse die Vorraussetzung für eine Studium (hier der Finnougristik) sind. Antrag abgelehnt.
<Unterschrift, Datum, Stempel >

Ja so einfach kann man meinen Antrag aber nicht ablehnen, jedenfalls nicht mit der Begründung, schließlich kann man Finnisch nicht in der Schule lernen, weshalb ich mir kaum vorstellen kann das es wirklich Vorraussetzung für das Studium ist. Wie dem auch sei, im „Studienplan für das Fach Finnougrstik/Uralistik“ steht es auch so ähnlich drin:

I. Allgemeine Bestimmungen
...
4. Sprachanforderungen
4.1 Die Sprachen, die den Gegenstand des Faches „Finnougrstik/Uralistik“ bilden, sind in der Regel keine Schulsprachen. Deshalb werden für die finnisch-ugrischen (uralischen) Sprachen keine Sprachanforderungen bei Beginn des Studiums gestellt. ...

Nach einem Gespräch mit der Studienberatung, habe ich dann einen schönen Schrieb bekommen und diesen mit einem neuen, inhaltlich gleichen, Antrag bei dem Prüfungsamt abgegeben. Die Sachbearbeiterin die den Antrag entgegengenommen hat, hatte auch Verständnis für meine Situation, naja und so hatte ich gehofft das Thema würde sich bald erledigen und erst wieder im Hauptstudium auftauchen.

Leider ist dem nicht so und das ist auch der Grund warum ich diesen Text schreibe. Der 2. Antrag wurde auch abgelehnt, auch wieder nur auf als Bemerkung, diesmal auf dem Schreiben von der Studienberatung:

Grundsätzlich können Sprachkurse nicht anerkannt werden als Prüfungsleistungen
<Unterschrift, Datum, Stempel >

Da fühle mich doch veräppelt, konnte man das nicht schon auf die erste Ablehnung schreiben? Jetzt ist das Semester fast zuende und ich habe immernoch kein Ergänzungsfach.

Ich weiß ja nicht warum Sprachkurse nicht als Prüfungsleistung anerkannt werden, aber so sind alle Fächer die sich mit ausländischen Sprachen, die man nicht schon vor dem Studium erlernen konnte, beschäftigen anscheinend nur mit großem Mehraufwand zu studieren. Denn die Finnisch Sprachkurse brauchen allein 16 SWS, davon kann man (hoffentlich) 12 SWS in den Plan einbringen (6 SWS Grund- + 6 SWS Hauptstudium). Da man die Kurse aber nicht aufteilen kann sind es 8 SWS je Plan, und man muß noch 6 SWS einbringen über die man geprüft werden kann, macht also 14 SWS. Normal sind 12 SWS, es gibt nur einen Rahmenstudienplan der auch 14 SWS hat: Theoretische Physik, und da wird auch extra auf den erhöhten Aufwand hingewiesen. Um die Sprachkurse werde und will ich wohl kaum herumkommen, schließlich erscheint es mir seltsam sich mit einer Sprache & Kultur auseinanderzusetzen, wenn man die Sprache nicht beherrscht.

Letztendlich hoffe ich mehr SWS machen zu können, denn ich will schon etwas tiefer in die Finnougristik eintauchen, schließlich bin ich zum Studieren an der Uni, nicht nur um einen Hochschulabschluß zu machen.

Saturday, July 10, 2004

Public Transport

I added myself to the Hamburg Blogplan. Blogplan lists the blogs by public transport station they are closest to, in my case it is Holstenstraße. Of all the blogs listed, I only know Satta.Name

Building 20

MITs Building 20

City of Sound has a nice article about Building 20 and the new Stata building which replaced it. There is also an older article about Building 20, with some nice quotes.

Reading both articles, I am reminded of lisp. (Which is also the way i found them, searching on daypop for lisp.) You could extend it in any way you like, as you weren't restricted by the initial placement of the floor/walls. And it spurred creativity. Which leads me to think that to be creative, don't adapt to the enviroment, but adapt the enviroment to your needs. Do what you want to do. Try to explore the space around you. I know that thinking out of the box is hard, and i do not know how you can get out of the box. But once done, it is absolutely thrilling for me.

You can program the way you always did, and think Eclipse is the way to go. Or take a look at Lisp Machines (unlikely) or Squeak, and notice that you can not only write programs with a language but also modify the system in which the programs “live”. That is a powerful concept which almost no language has.

These systems empower the user, he can change the enviroment and tailor it to his needs. This should result in a productivity boost, because the system can be changed in such a way that it assists you, not the user in general. It can also result in a deeper understand of the system, because the code is at your fingertips. If there is something which doesn't work as expected, or you don't understand it, you can look at the source code and, if necessary, change it. The language specification/documentation isn't a impenetrable barrier. There is no second-guessing, because you can look under the hood and see how it is acutally implemented.

Returning to Building 20, in my opinion one important propery of it was its uglyness. If you changed something, you did not ruin its visual asthetics. I wonder how that part design affects the use of the new buildings.

I *am* the blogosphere

I know it is old, but apparently I am the blogosphere.

what kind of social software are you?

Thursday, July 08, 2004

Java, not the next level

S-Bahn Haltestelle Hasselbrook

Maybe one of the reasons why I don't like it, is that in 2000 in school I was thinking OOP is the thing. I didn't know any better, I thought C and C++ were the languages, and anything else was irrelevant. Java is newer but overhyped, and, that's of course very important for someone who had never even written a single C program, slow. But Java didn't challenge, it didn't show me other ways to think about programming, structuring. OO did that, but I didn't get to know OO via Java. And as Java didn't change much, it still doesn't.

But at university I am forced to learn it, I'm forced to do something dull. I am more than a Java programmer, Java isn't and will never be the next level for me.

If you want to listen to something interesting, watch Croquet: A Collaboration Architecture, a presentation given by Alan Kay. He starts off with Croquet, which imho doesn't seem to be that innovative. The Q&A session afterwards is the real gem. To quote Dave Roberts:

Okay, but after that, Kay starts to take questions at the lecture. This was the best part, in my opinion. The questions are very interesting, as are Kay's responses. Simply, Kay has some pretty harsh criticism of computer science education these days. He says that nobody is doing computer science anymore and basically equates today's computer science curriculum with vocational work, simply training legions of Java programmers and not studying any hard problems or advancing the state of the art. He says that he actually looked at writing Croquet in Java originally, but found it sadly lacking on a number of fronts and so they went back to Smalltalk (Squeak). He has high praise for Lisp and McCarthy, saying that it was one of the most impactful ideas ever in computer science. At one point, he blasts Stanford's Bill Gates-funded computer science building, saying it's an oxymoron.

Wednesday, July 07, 2004

defmacro insert-pair

Would a function with a optional parameter be better?

(defmacro insert-pair (name char1 char2)
  "Creates function name which is Like insert-parenthesis, but inserts char char2
   instead of parenthesis "
  `(defun ,name (arg)
     (interactive "P")
     (if arg (setq arg (prefix-numeric-value arg))
       (setq arg 0))
     (cond ((> arg 0) (skip-chars-forward " \t"))
           ((< arg 0) (forward-sexp arg) (setq arg (- arg))))
     (insert ,char1)
     (save-excursion
       (or (eq arg 0) (forward-word arg))
       (insert ,char2))))

(insert-pair insert-brackets "[" "]")
(global-set-key "\M-[" 'insert-brackets)

Sunday, June 20, 2004

* ** ***

Whenever I tex my math or tech homework I'm using lisp as a calculator as it knows how to handle fractions and as I'm using Emacs it's just a buffer away. So yesterday, while checking my calculations I discovered this imho funny piece of lisp code: (* ** *). Which multiply the second-last with the last return value, nothing you would use in a program, but quite usefull in the REPL.

Monday, June 14, 2004

the end is near

The semester ends soon (July 14th), which means I'm learning for exams. Vocabulary and grammar for finnish, vocabulary and grammar for formal CS, ideas & whatsoever for technical CS and IMG (IT, Man & Society). At the moment I'm reading “F2 - Automaten und formale Sprachen”, which will be followed by a short repitition of “F1 - Formale Gundlagen der Informatik”.

Thursday, June 03, 2004

php-complete-function ready for testing

I think I have completed it and would love to have some feedback, especially if it works with XEmacs. You can download it here, before you use it however you should M-x customize-group RET php RET it and set php-manual-path to directory which contains the php manual in many html files or generate a file with one function name per line and set php-completion-file to it. If you want to include completions from your tag file you must visit-tags-file. The key combination for completion is M-TAB, if that doesn't suit you rebind it.

php-completion-table

I did solve the problem of getting the right table and solved a another problem. The right completion table is now computed by etags-tags-completion-buffer and the other problem was that I didn't join the right tables, not having thought about how it was done, the incorret code would do nothing because (mapatoms (lambda ...) nil) should do nothing.

(defun php-completion-table ()
  (or php-completion-table
      (let ((table (make-vector 1022 0))
            (php-completion-buffer (find-file-noselect php-completion-buffer-file))
            (my-tags-table (if (functionp 'etags-tags-completion-table)
                               (with-current-buffer (get-file-buffer tags-file-name)
                                 (etags-tags-completion-table))
                               nil)))
        (save-excursion
          (set-buffer php-completion-buffer)
          (goto-char (point-min))
          (while (re-search-forward
                  "^\\([-a-zA-Z0-9_.]+\\)\n"
                  nil t)
            (intern (buffer-substring (match-beginning 1) (match-end 1))
                    table)))
        (when my-tags-table
          ;; Combine the tables.
          (mapatoms (lambda (sym) (intern (symbol-name sym) table))
                    my-tags-table))
        (setq php-completion-table table))))

Fanta the german drink

I just heard it on the radio and could not believe it so I checked the Wikipedia entry for Fanta. Basically there was shortage of ingredients to produce coca-cola in Third Reich and thus a new drink Fanta (from fantastisch - fantastic) was invented.

php-complete-function

Dissapppointed by the poor php-mode for emacs, I am trying to improve it by adding php-complete-function. I can now complete most of the php functions (methods of objects are missing), but I'm struggling on how to mix the php functions with user defined functions from TAGS. I somehow can't get the right tags-completion-table and merge it with my php-completion-table.

(defcustom php-completion-buffer-file "/home/tekai/emacs/php_functions"
  "*Path to the file which contains the function names"
  :type 'string
  :group 'php)

(defvar php-completion-table nil
  "Obarray of tag names defined in current tags table.")
;; Define function name completion function

(defun php-complete-function ()
  "Complete the function name at the point from known PHP functions."
  (interactive)
  (let ((pattern (funcall (or find-tag-default-function
                              (get major-mode 'find-tag-default-function)
                              'find-tag-default)))
        beg
        completion
        (php-functions (php-completion-table)))
    (search-backward pattern)
    (setq beg (point))
    (forward-char (length pattern))
    (setq completion (try-completion pattern php-functions nil))
    (cond ((eq completion t))
          ((null completion)
           (message "Can't find completion for this \"%s\"" pattern)
           (ding))
          ((not (string= pattern completion))
           (delete-region beg (point))
           (insert completion))
          (t
           (message "Making completion list...")
           (with-output-to-temp-buffer "*Completions*"
             (display-completion-list
              (all-completions pattern php-functions)))
           (message "Making completion list...%s" "done"))))
  ;;(complete-tag)
  ;;(message "php-complete-function not implemented yet")
  ;; how to read the list of functions from a separate file?
  )

(defun php-completion-table ()
  (or php-completion-table
      (let ((table (make-vector 1022 0))
            (php-completion-buffer (find-file-noselect php-completion-buffer-file))
            (tags-table (if (functionp 'tags-completion-table)
                            (progn (visit-tags-table-buffer)
                                   (tags-completion-table))
                            nil)))
        (save-excursion
          (set-buffer php-completion-buffer)
          (goto-char (point-min))
          (while (re-search-forward
                  "^\\([-a-zA-Z0-9_.]+\\)\n"
                  nil t)
            (intern (buffer-substring (match-beginning 1) (match-end 1))
                    table)))
         (if tags-table
             ;; Combine the tables.
             (mapatoms (lambda (sym) (intern (symbol-name sym) tags-table))
                   php-completion-table))
        (setq php-completion-table table))))

The php_functions file has one function name per line.

Aside: I find the poor quality of php-mode somewhat strange, maybe I shouldn't compare it with slime, but I expected it to do better, PHP is not that new. But maybe most PHP coders don't grasp (e)lisp, use IDEs and are just codemonkeys who doing are doing most of their work copy&paste. But really why is the php-mode that bad?

Monday, May 31, 2004

FarCry

It is a bit surreal when you walk into a room where, just a few seconds ago, trigents and mercenaries were fighting each other and now everything is silent but instead of dead bodies lying around, they are walking, not moving. It is like as time has been frozen, and everybody has to do the same move over and over again but you can walk around freely. It feels like they could come back to life every instant and attack you. Surreal.

Turmbunker

If you take the S-Bahn in Hamburg from Holstenstraße to Hasselbrook you can see three of those bunkers which have sparked my interest.

Lostplaces: Luftschutztürme - Bauarten und -typen:

In Hamburg beispielsweise hält wahrscheinlich ein Großteil der jüngeren Bevölkerung die Zombeck-Türme für historische Wasserspeicher, in anderen Städten dürfte dies wahrscheinlich kaum anders sein.

If you know what they are you can spot them easily because round towers are an unusual sight and they all look the same. The bunkers are “verklinkert” and thus do not look as dull & scary as the “normal” grey bunker does.

Turmbunker am S-Bahnhof Hasselbrook

Dogville

Nicole Kidman

I saw Dogville on friday and must say it is a horrible movie, not horribly bad but what happens in he movie is cruel.

Lars von Trier managed to shoot an very intense movie, starring the ever so beautiful Nicole Kidman, using very few stage props and just one location. It is not a movie to be enjoyed but thought provoking, showing the dark side of man. Not easy to digest but I definitely recommend it.

Thursday, May 20, 2004

Finding a good digital camera

For ~300€ incl. 128MB was not easy for me. I have now ordered two cameras from amazon, a Fuji Finepix S5000 and a Canon PowerShot A70. I do not need two cameras and the Fuji has a serious flaw so I'm going to return it.

Looking at the specs it seems nice, especially the 10x optical zoom, however once I found out that you can not change the image compression which results in (imho) low grade images.

After the disaster with the low image quality of the Fuji I searched specifically for a camera with good image quality. The Canon PowerShot A70 already has two successors, the A75 and the A80, which could have been my choice, if it had not been for the price difference of 40/110 €. It is a 3.2 megapixel camera with a 3x optical zoom and uses CF cards, so it fullfills three criteria of at least 3 megapixels, optical zoom and cheap storage. Other than that there is not much to say as I am not able to use it yet.

Saturday, May 15, 2004

GNU TAGS

I somwhat find the xemacs code for etags better, amongs other things you can specify a list where to search for TAGS files. While this macro isn't that sophisticated it covers my needs 99% of the time.

(defadvice find-tag (before c-tag-file activate)
 "Automatically search for tags in higher directories."
 (let ((file1  (concat default-directory "TAGS"))
       (file2  (concat default-directory "../TAGS"))
       (file3  (concat default-directory "../../TAGS")))
   (let ((tag-file
          (cond ((file-exists-p file1) file1)
                ((file-exists-p file2) file2)
                ((file-exists-p file3) file3)
                (t nil))))
     (when tag-file
       (visit-tags-table tag-file)))))

Tuesday, April 06, 2004

Maths & Theory

Maths & Theory, those are the courses for which I did the least, and yet I regard Theory as the most interesting course, it's just that I am very lazy and you aren't required to do any work for the F2 & F3 courses, you have a written exam about F1 & F2, which I didn't take yet, and a oral exam about F3 & F4. But I do know theses courses are interesting, context free grammar, turing machines, complexity, automatons. It's theory but it's theory upon which languages, compilers, algorith and computers a based on.
With Math it's a different, it was fine back in school, because it was easy, dead easy. But university math not school math, it's a lot more and it's complex. And worst for me, but I didn't see any use for most the the things I learned, they did say that some off it is needed for encryption of compression, but we never did any compression or encryption, just abstract theory.

Last thursday we had a Cognitive Science course, and in the course, which btw. is very entertaining, it made click. The lecturer used a picture, taken by a b/w camera, to show when and where you need a formal/mathematical theory. Maths is not just all maths for maths, there is a hidden link between practice and theory.

Sunday, April 04, 2004

bad style

I was going to critize two articles, who imho are mostly bashing others. The GNOME article is esp. shallow GNOME is simple while the competition has a bad UI. He rarely explains why. It reads like propagande and imho really is.

I consider them to be badly written, they could and should have written their critcism in a more objective, less derogatrive and more constructive way.

The worst for me is that they anger me, for their imho obvious stupidity.

Wednesday, March 31, 2004

Lisp Books

So I aquired the CLOS book and CLtL2 and read a bit in these two and the UCI Lisp manual. Apparently in old Lisps there were functions which were used purely for their sideeffects, such as MAP which always returns nil regardless of it's parameters. When I saw PROG2 for the first time, I thought it was a optimized PROGN for only two forms, little did I know that the 2 means the value of the 2nd form will be returned instead of the last form. in LOOP AS and FOR are interchangeable, though I prefer the latter one.

Time to blog

I didn't have it in the last few weeks, however quite a few things happened.

First of all o got a new PC, which is one of the reasons I didn't have time, and it is causing trouble. It's a new AMD 64 3000+ (really 2GHz), with 1GB of RAM, a shuttle AN50R mainboard and a HIS ATI Radeon 9600 XT (no VIVO). It's a bitch, it looks fine Warcraft 3 is running smoothly at 1280x1024, Divx movies aren't a problem anymore and with the new gfx card it's really quiet. But, and thats a big but, there are some issues like freezing, random segment violations, dirty IRQs, lost DMAs and 2.4 kernels not getting into the net. While the last problems have been resolved by kernel upgrades and fault-save BIOS settings, the others are still causing reboots, and I don't know what to do.

Wednesday, March 17, 2004

lisp books

Yesterday I browsed Amazon for lisp books and decided to buy Keenes CLOS book. Browsing a bit more I came along a unusual suspect, someone was trying to sell CLtL2 on Amazon marketplace, well he succeded and I'm now a proud owner of CLtL2, I can't wait till I hold it in my hands.

I have advanced to chapter 5 in PAIP, but it took me almost halve a day to solve exercise 4.2: Write a functions that generates a list of all permutations of a givn list. There were two problems for me: Bridging the gap between algorithm and code and figuring out that I didn't cover the simplest case: (PERMUTE '()) -> (()) while I thought (PERMUTE '(A)) -> ((A)) was the simplest case.

Sunday, March 14, 2004

keyboards, keybindings, keywords ...

I ordered a keyboard with a US layout to see if programming with is easier/faster because often used keys like ([{/ are easier to reach and some emacs keybindings should seem less painfull, because you don't have to stretch your hand over the whole keyboard. Depending on if I want to keep the windows key as meta/super or I like the old IBM keyboard click better I'll try to get a IBM keyboard with US layout.

While I'm at it, i learned some new and very useful keybindings if you are editing lisp or any other code with lots of parenthesis. In addition to those a also added the following code, which is not as good as insert-parethesis, but does well enough for me.

(defun insert-doublequotes ()
  "Like insert-parenthesis, but inserts doublequotes (\")
   instead of parenthesis "
  (interactive)
  (insert "\"\"")
  (backward-char))
(global-set-key "\M-\"" 'insert-doublequotes)

I always wondered why you need C-f, C-b etc. when you have arrow key which are there for just that specific purpose, but when you use parenthesis movement it's very nice to have them, because your hands can stay where they are and don't have to move to the arrow keys.

Saturday, March 13, 2004

books

So much for writing daily, maybe it will work later.

At the moment I'm reading “Paradigms of Artificial Intelligence Programming” by Peter Norvig. So far it's easy and thus fun, and this time I'm actually typing most of the code in the book & try to do most exercises. Before that I read “ANSI Common Lisp” by Paul Graham, having tried to read “On Lisp” first I must say OnLisp is not for the novice, despite the almost identical introductions saying otherwise.

Wednesday, March 03, 2004

xmms-remote 0.21

I have updated xmms-remote again and added /xmms-volume to get & set the main volume, added /xmms pp to toggle between play & pause and replaced COYPING with a file that actually contains a license, somehow it had become a gzipped tar.

Saturday, February 28, 2004

xmms-remote

I have updated xmms-remote to work with X-Chat 2.

xmms-remote was my first C program, I wanted a program to show the mp3 I'm currently playing, simply because it was “hip” at that time. The program itsself was easy to write, yet finding out how to make it a X-Chat plugin wasn't. There was hardly any documentation, a sample plugin was provided with the source, but it did not use the functions I needed, so I had search for them myself in the sourcecode. Luckily that changed, as the X-Chat 2.0 C API is properly documented.

do it yourself

Sometimes I think “Application X should have this feature” or “I wish there was a Application which could do Y”, and only a few days ago it dawned unto me that I could write these things myself. So I'm interested in fixing dfm (there are problems with the image which are loaded twice and/or have a different format than xpm), and writing a file based blogging tool for blogger. The language of choice for the blog tool will be either Smalltalk or Common Lisp, for dfm I'll have to stick to C.

Wednesday, February 25, 2004

nice guy

If you think you are a nice guy like this take some time and listen to some heartless bitches

Tuesday, February 24, 2004

printing in the RRZ

Today I had the joy of trying to print some slides in the RRZ. The first free terminal was a AIX one, so I downloaded the pdf and looked for some information on how to use the duplex option. It is either hidden very well or there is none because I couldn't find anything, but what was even worse that the queues weren't available as show on the printing websites. Using man lpr and less /etc/qconfig I found out they are given different names on the AIX server. After a successfull test run with five pages, I tried to print the rest but the only thing which cames was the cover sheet. Thinking windows would be the easier way, I logged out of the AIX terminal and logged into a Windows NT terminal, did a another test run with 10 pages, duplex, successfully, and tried to print the rest, but again just the cover sheet. Finally being frustrated I gave up, and will print the rest at home.

friends

We are just friends, that's why there has been no update for the last three days. But she enjoyed the roses i sent her for valentines.

Friday, February 20, 2004

Oh great

Browser or blogger ate my entry, I love it, shouldn't write directly in the browser, well that's it for today then.

Thursday, February 19, 2004

lisp

I hoped others would add comments to xachs lisp braindamage, as I'm just building up my own braindamage, and afaik learning from the mistake of others is a great source of knowledge, or so.

assembler

Last week I had the T3 Praktikum, which was mainly microcode (decoding instructions) and assembler for the c-core, which is basically a simplified version of the Motorola m-core. One of the programs we had to write was to simulate preemptive multitasking. Writing assembler made me realize that C is just a fancier way to mess around with registers & memory, what you actually access are memory locations, and not objects or pointers, but 16, 32, 64bits.

writing daily

I will try to write daily, just to write, and get better with time. Sometimes I have small things to write about but I'm to lazy to really do it, and after a while a blockade builds up because I didn't write when I could have, when I think about it it's really stupid.

At the moment I'm sitting in my livingroom/kitchen and it is a bit chilly because the window is open, but I can not remember opening it. A child outside is crying. When everything goes as planned, I'll write some more stuff, go shopping, have meal call her and attend the youth group leader meeting.

Saturday, January 31, 2004

streik

As you might know students at almost every germany are protesting against fees & budget cuts university, but at my university they started with really stupid things like blocking lectures, which which is like cutting your wrists in an empty room, it's hurting only yourself. But today the students of the IT “faculty” decided to go public (like others already do) and try to hold lectures in public buildings spaces, mostly sub- & railway stations.

Regarding other things of interest, I think I'm slowly making progress.

Friday, January 30, 2004

stücke

If somebody deservers a lobotomy it is this idiot guy

Trailer news: The Kill Bill Volume IItrailer if finally up on Apples site, and it seems like a another german movie is making it into american cinemas

Sunday, January 18, 2004

bits

The trailer for The Girl Next Door has been released, featuring sexy Elisha Cuthbert.

I didn't really do what I planned to do, but I hacked together a RSS 2.0 feed for Nackensteaks - Feedback

The thing that made my day was a SMS I received, lets just say I was happy.

Wednesday, January 14, 2004

bush, election, mac, love

Bush in 30 Seconds. While some are pretty funny, using a mac, others are scary. I don't really want to comment on him, except for his international activities which are imho best described as “imperialistic”, as I dont really know how he justified what his administration did, nor do I know the real situation of the people living in the USA. I just can´t critize without knowing.

A bit more local is this “Hamburger Wahlblog” which I found via the Schockwellenreiter. It provides a information about election in Hamburg, and only about, which is nice because you don´t have to buy & keep daily newspapers to get all the information, plus lesser events/information, are probably covered aswell.

I love Brent

I really had a good day yesterday, I´m still happy

Tuesday, January 13, 2004

Maybe I'm not

This tuesday was totally unlike last one. I met her after finnish, I always have one spare hour after it. We did some math, talked, ate and waited for some demonstrators to let us get to the next lecture(gr?). Well, the demonstrators kept on demonstrating, so we walked around the campus to find some place where we could sit. We settled for the empty auditorium in which our next lecture was going to be. We exchanged words and then did math until the lecture started. After the lecture we fetched her daughter from the kindergarden and went home. I'm happy.

lots of “we” in that paragraph

Tuesday, January 06, 2004

I am an idiot

Except for seeing her, uttering a few words and offering chocolate to her friend I did nothing. Oh yeah, I'm a good listener, to the extent of not talking at all. Yes I'm great, Ice? I tremble at the sight of it, nevermind the ice to be broken. It's like nothing happened today but I feel bad. I have every chance to talk to her, but I do nothing, I keep schtum. What for an idiot am I?

Just very shy & quiet I guess.

Monday, January 05, 2004

things i did today

I got a haircut, and drank a small mocha latte. Went to the watch maker to get a new wristband for my watch, only to realise that he doesn't exist anymore. Turned around to go to Budnikowsky and buy toothpaste, tried to get a labello aswell, but couldn't find them in the store. Had a meal at the refectory for the same price as the mocha latte, was forced to sit in the smokers area as the main hall was full, fortunately there were no smokers at my table. Bought the vocabulary book for “suomea suomeksi” at Heine.