at least it's more interesting than obfuscating word, and writing useless crap.
Saturday, July 17, 2004
spam
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
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.
Thursday, July 08, 2004
Java, not the next level
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.
Dogville
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.