While playing with some javascript and think about how o create a simple OR mapper for JS client databases, I was in need for defining functions dynamically in in JS.
As far as I know there is no common build in function to do something like this. From Ruby you might know the define_method-method. I tried to build something similar in JS. So this is what I got:
Feel free to tell me if this is crap or hot,
Cheers
Today I had some issues with GitHub and the university's network. We run a Hudson continuous integration server behind a HTTP proxy that has to fetch revisions from a github repository.
But the problem was that the GitHub HTTP cloning is kind of broken at the moment. So I set up a little mirror script on my root server to mirror the GitHub repo to Gitorious.
Now the Hudson server can fetch from the Gitorious repo that is always in sync.
I know I could host all the stuff on my own server but I was to lazy to look up and setup all this server stuff. This solution took me about 10 minutes.
My conclusion: distributed version control is the shit!
Want to insert an encoding comment into your ruby code?
Do it TextMate style and create a snippet:
I know this is very static but I had not much time and decided for the simplest solution.
I tried to read the actual encoding of the file you are inserting in, but always got "US-ASCII" insted of "UTF-8". So if you know better tweet me.
Last week I got some time to try out Phusion's new Nginx-module. So I decided to try out it's Ruby 1.9 compatibilty, to test my own projects wether they are Ruby 1.9.1 compliant or not.
I installed it on a fresh Ubuntu 9.04 RC1 Image into my virtual Box, and everything seems to work good yet.
Da neulich mal wieder der Varnish-Cache abgerotzt ist und es dadurch wieder eine unerwartete Server-Downtime gab, dachte ich mir es wäre doch mal ganz nett über so etwas benachrichtigt zu werden. Und zwar am besten über mein Liebling-"Protokoll" Twitter.
Erst vor kurzem lief mir folgender Artikel zu Twibot, einem Ruby-Framework für die Twitter-API über den Weg. Also gesagt - getan, folgendes Script habe ich mir mal zusammen gehackt.
Das ist bestimmt nicht schön programmiert, aber es funktioniert. Konfiguriert wird es über die Datei ./config/bot.yml, aber am besten ist, ihr checkt es euch einfach auf Github aus: http://github.com/Santino/monbot/tree/master
Man kann den Bot einfach in einem bestimmten Intervall per Cron aufrufen und fertig ist die Karre.
Hiermit ist jeder herzlich eigeladen das Teil zu pimpen und noch andere Monitoring-Fälle einzubauen.
Ich saß heute in der Vorlesung ‘Grundlagen der Wissensverarbeitung’, als mir ganz plötzlich eine sehr schöne Definition für Intelligenz entgegen sprang.
Um ganz genau zu sein, beschreibt sie eigentlich den Prozess der Informationsverarbeitung. Ich fand darin aber eigentlich die fünf wichtigsten Stufen menschlichen Handelns wieder.
Erkennen
Wenn es eine Aufgabe gibt, auf die das menschliche Gehirn richtig gut trainiert ist, dann auf die Erkennung von Mustern. Ob diese sich nun in Form von geometrischen Formen, Klangschemata oder wiederkehrenden Handlungsweisen auftreten ist dabei eher zweitrangig. Der erste Schritt zu intelligentem Handeln ist die Feststellung von Sachverhalten.
Schlussfolgern
Auch der zweite Schritt scheint noch recht einfach. Haben wir erst einmal ein Muster erkannt, können wir daraus Thesen oder Regeln aufstellen um Voraussagen zu treffen. Diese Regeln sind meist nur vages Wissen, sie sind also mit Wahrscheinlichkeiten belastet und lassen noch Spielraum für Interpretation.
Entscheiden
Auf Grund dieser vagen Regelbasis fällt es oft schwer Entscheidungen zu fällen. Das Fällen von Entscheidungen ist also abhängig davon wie ausgeprägt und differenziert die Wissens- und Regelbasis ist. Es ist also nichts anderes als das Aufaddieren der Wahrscheinlichkeiten aller möglichen Wege – man nehme den Weg mit der größten Aussicht (Wahrscheinlichkeit) auf Erfolg.
Planen
Scheint eigentlich nichts weiter zu sein als ein Entscheiden auf Vorrat. Also quasi der Voraussage von Ereignissen auf Grund der Regelbasis. Dies ist nur durch eine umfassende und gefestigte Wissensbasis möglich da sich sonst die Möglichkeiten des Ausgangs sehr weit streuen und es eher ein Raten wird.
Lernen
Die Königsdisziplin. Aus den Ergebnissen der ersten vier Schritte kann man nun wieder neue Muster erkennen und neue Schlussfolgerungen ziehen. Dieser ganze Intelligenzprozess ist also auch noch iterativ und selbstjustierend, da ich die Ergebnisse meines Handelns immer wieder als Grundlage für neue Handlungen nehme.
Das alles erscheint mir eigentlich ganz logisch, und ist für mich eine gute Erklärung für einige ganz selbstverständliche Prozesse. Ich hoffe meine Ausführung enthält keine allzu groben Fehler. Wer mehr weis möge mich korrigieren.
Wer mich kennt weis ich bin ein überzeugter Macianer. Doch als Web- und Softwareentwickler habe ich trotzdem eine Meinung zu Windows 7.
Ich hoffe es wird erfolgreich. Warum? Hier kommen meine Argumente.
Der wichtigste aber auch naheliegenste Punkt ist der IE8. Microsoft verspricht uns endlich Standardkonformität, was wohl einige Probleme in der Entwicklung von HTML/CSS-Layouts beseitigen dürfte. Doch was nützt ein toller Browser wenn ihn niemand installiert. Es ist wohl davon auszugehen, das der IE8 standardmäßig mit Windows 7 ausgeliefert wird, so wie das auch mit IE7 und Vista war.
Meine Theorie: Weil niemand Microsoft vertraut. Die Hemmschwelle sein System zu updaten scheint für viele Windowsuser unüberwindbar zu sein. Während in der Macwelt jedem neuen Mac OS Release entgegengefiebert wird, scheint man sich auf dem PC gegen jede Art der Verschlimmbesserung zu wehren.
Uhh, aber nein wir wollen unser gutes altes XP wieder haben und zwar ohne Service Pack 1, 2 oder 3, denn das macht alles soo langsam.
Ich habe manchmal das Gefühl man hat den Glauben an den Fortschritt verloren im Windows-Lager. Aber es wird munter weiter gejammert, das die Computer ja soo böse und schlimm sind, und früher ging das ja auch, ohne dieses, dieses – Internet.
Mal ganz ernst, ich wünsche mir ein ganz wunderbares Windows 7 mit vielen großartigen Features und einem ordentlich verschlankten Kernel, aufgeräumten APIs und allem Schnickschnack. Damit man im Windows-Lager wieder das Gefühl hat ein gutes Stück Fortschritt für sein Geld geboten zu kommen. Denn eine aktuelle installed base dient nicht nur dem Nutzer, sondern auch den Programmierern die für die Plattform Software entwickeln.
Okay, das Thema Blogs ist ja nun nicht neu. Blogger haben ihre eigenen Konferenzen, werden als Presse endlich ernst genommen und bieten uns Themen in allem Geschmacksrichtungen feil. Was mich aber schon lange beschäftigt ist, wie nutzt man dieses Kommunikationsmittel denn eigentlich privat?
Zielgruppe?
Will ich wirklich darüber schreiben das der Schokopudding von eben echt der Hammer war, und dass obwohl ich eigentlich Vanille Fan bin? Will das einer lesen? Und schon stehe ich vor der Frage: Wer ist eigentlich meine Zielgruppe? Hmm, da begebe ich mich doch schon wieder auf den Weg für Menschen zu schreiben die ich gar nicht kenne und die mich wahrscheinlich auch nicht kennen. Eigentlich will ich doch aber Kontakt zu den Menschen herstellen die mich kennen oder mich noch kennen lernen werden: meine Freunde, Kollegen, Familie etc.
Also, interessiert die denn mein Schokopudding-Erlebnis? Also meine Freunde sicher nicht, es sei denn ich bringe nachher welchen mit. Meine Kollegen fragen sich warum ich für so ’nen Scheiß Zeit hab während sie am ackern sind. Ok, meine Ma interessiert es vielleicht wenn sie den gekocht hat. Alles in allem ein klares Jein.
Vielleicht sollte man sich erst mal einen Überblick verschaffen.
Twitter
Ein Aufschrei hallt durchs Web 2.0 und alle sind total aus dem Häuschen, denn jetzt gibt es endlich Twitter. Die digitale Reizüberflutung für alle die noch lesen können.
Twitter wird ja von vielen Leuten hoch gelobt und ausgiebig genutzt. Aber was fang ich denn damit an, nicht alle meiner 200 StudiVZ-Buddys (Wer seid ihr eigentlich?) twittern und ich auch keine 1337 Follower, die wissbegierig an meinen Lippen hängen um sich dann an jedem Wort hochzuziehen. Also was macht man mit Twitter wenn man kein web 2.0 Celebrity ist?
Ich benutze Twitter vor allem auf 3 Arten:
1. News
Die meiste Web 2.0 Prominenz benutzt Twitter ja auch ganz gerne als Push-Dienst für mehr oder weniger wichtige Nachrichtenmeldungen. Dem einen oder anderem Sympath möchte man vielleicht auch einfach nur folgen weils einen interessiert was der so den ganzen Tag macht. Quasis Digital-Stalking.
2. Instant Messaging
Viel interessanter und aktiver ist die Funktion als Instant Messenger, auch wenn nur eine Hand voll Freunde von mir bei Twitter sind, für diese wenigen macht es extrem Sinn. Noch nie konnte man sich schneller fürs Kino verabreden und da die ganze Diskussion ja auch öffentlich ist, bekommen es alle mit und können bei Gefallen auch daran teilnehmen.
“Alles was sie jetzt sagen kann vor Gericht gegen sie verwendet werden!” heißt es immer so schön, und deswegen sollte man sich auch bei Twitter bewusst sein, das man immer eine öffentliche Diskussion führt, weshalb die Kinoverabredung am blaugemachten Montag vielleicht doch nicht per Twitter klar gemacht werden sollte.
3. Statusmeldung
Zu Guter letzt, kann man immer mal in die Welt twittern was man gerade so macht, wie es einem so geht oder was der ganze Scheiß eigentlich soll. Moderne Social-Networks wie Facebook lassen einen auch gleich die Statusmeldung importieren, womit auch alle Nicht-Follower immer auf dem laufenden bleiben. Wie weit man sich im Internet ausziehen will muss jeder für sich selber entscheiden.
Also, die Sache mit dem Schokopudding kann man vielleicht auch in den 140 Zeichen einer Twitter-Meldung unterbringen, ausserdem erreicht es nur die Leute die unbedingt alles über einen wissen wollen, und die sollten ja auch an meinen Schreibstil und den Informationsgehalt meiner Nachrichten gewöhnt sein.
Tumblelogs/Social Bookmarks und andere Vagabunden
Ich sehe diese Dienste, vor allem als Möglichkeit seine Freunde ohne großen Aufwand auf Interessantes und Neues aus dem Netz aufmerksam zu machen. SO quasi: “Hey, kennste die Site schon. Die machen jQuery für Rails.”, nur dass man nicht mehr nebeneinander sitzen braucht. Gerade in Gruppen mit vielen ähnlich Interessierten kommt schnell eine qualifizierte Bookmarkliste zusammen.
Auch wenn du Überschrift etwas unscharf ist, so gibt es eine Menge sozialer Dienste im Netz die man als Datenreisender häufig nutzt. Bei mir beschränkt sich das eigentlich auf Flickr und Del.icio.us. Dazu kommst noch Soup.io, was es mir ermöglicht alle diese Dienste zusammen mit meinen Tweets in einen Nachrichtenstrom zusammenzuführen. Dabei heraus kommt dann quasi mein digitaler Fußabdruck. Wer hier die totale Überwachung wittert, der liegt nicht ganz daneben. Im Prinzip führe ich hier alle Informationen über mich zusammen woraus ein Gesamtbild entsteht.
Allerdings sind all dies Informationen die von mir bewusst Preis gegeben werden. D.h. ich kann das Bild das von mir entsteht ganz bewusst steuern. Ums mal klar und deutlich zu sagen, bevor irgendjemand totalen Scheiß über mich verbreitet nehme ich das Ruder doch lieber selbst in die Hand und verbreite meinen eigenen Kram.
Blogs
Eigentlich hat mein Gedankengang ja bei den Blogs angefangen. Wir finden viel zu selten die Möglichkeit uns mal zusammen zu setzen und über ernsthafte und weniger ernsthafte Themen zu reden. Klar findet man immer mal Zeit mit ein paar Kollegen oder Freunden in eine Kneipe zu gehen um was zu trinken und sich zu unterhalten. Aber wann war denn nochmal die letzte Diskussion zum Thema: “Ist die Klimaerwärmung schuld am Sterben der Robben, oder sollte ich sie nicht so oft mir Schokopudding füttern?”.
Zu welchen Themen man so bloggt und deren Sinnhaftgkeit sie an dieser Stelle mal ganz aussen vor gelassen. Ich finde es aber ein prima Medium um Themen zu denen man sich momentan mehr oder weniger ernsthafte Gedanken macht der Umwelt mitzuteilen. Ein offener Brief. Vielleicht.
Ich habe die Möglichkeit auf so vielen Zeilen wie mir lieb ist meine Meinung zu äussern. Ob diese nun letztendlich jemanden interessiert steht auf einem anderen Blatt. Ganz genau zu diesem Zweck möchte ich diese Blog in Zukunft nutzen. Ich hoffe es interessiert euch.