Assertions in Ruby
vom 12. December 2006Ich habe heute versucht, asserts unter Ruby zu nutzen, leider hab ich nirgends eine entsprechende Funktion dazu gefunden (natürlich bis auf die assert-Methoden bei den UnitTest, die man aber ausserhalb einer TestSuite nicht nutzen kann). Also schnell (mit etwas Hilfe) selbst was gebastelt:
Eine neue Exception von der Standard-Exception ableiten
class AssertionFailure < StandardError
end
... und die Klasse Object um eine weitere Methode erweitern (in Ruby ist alles ein Objekt, auch die primitiven Datentypen. So hat man die assert-Methode überall verfügbar):
class Object
def assert
raise AssertionFailure.new unless yield if DEBUG
end
end
Die Konstante DEBUG muss man natürlich irgend wo auf true setzen, damit die asserts ziehen. Ein kleines Beispiel (aus der heutigen SEKS-Vorlesung):
class NewMath
def sqrt(number)
assert {number >= 0} #pre-condition
# ...
res = Math.sqrt(number)
assert {res >= 0} #post-conditions
assert {res*res == number}
res
end
end
Und nun ein Test:
DEBUG = true
a = NewMath.new
puts a.sqrt(-1)
Hier wird nun eine AssertionFailure Exception geworfen.
Unter Java ist die assert-Funktionalität bereits drin, muss aber mit dem Schalter -ea erst aktiviert werden.
Kommentar schreiben,
del.icio.us,
Poke, Poke, Poke!
vom 10. December 2006Seit vielen Jahren schon (um genau zu sein, seit 5 Jahren) arbeiten Wuxe (Jörg Winterstein) und seine Gang an einem Spiel das sich Hurricane nennt. Jedes Jahr zur Dusmania hat man die Chance, das Spiel an seienm Rechner zu zocken und es wird immer besser. Laut des letzten Newseintrags, gibts vielleicht dieses Jahr zu weihnachten ein ganz spezielles Geschenk: Es wird gerade am letzten Level gefeilt und die Bug-Liste schrumpft.Auch wenn das Spiel ausschließlich auf Windows laufen wird, warte ich dennoch seit Anbeginn darauf es endlich mal zu spielen. Ich wage fast zu behaupten, das wird der beste Turricane-Remake aller Zeiten. Vorallem der Multiplayermodus wird richtig toll!
[sevenload 3C9WCGS]
Kommentar schreiben,
del.icio.us,
Webentwicklung unter Mac OSX
vom 10. December 2006Bin gerade auf einen interessanten Artikel gestoßen, der einige toole Tools zur Webentwicklung unter OSX beschreibt. TextMate hatte ich bereits installiert und finde es super! Einfach genial dieser Texteditor. MAMP werde ich demnächst mal austesten.
Kommentar schreiben,
del.icio.us,
Firefly als MMORPG
vom 9. December 2006Laut Wired News soll irgend wann 2008 ein MMORPG im Stil von Eve-Online für alle Firefly-Fans geben. Das ist zwar nicht die Fortsetzung, auf die ich gewartet hatte, aber besser als garnichts!
Kommentar schreiben,
del.icio.us,
ZeroDivisionError: divided by 0
vom 9. December 2006Durch 0 teilen ist eine Todsünde. Jedem Schulkind wird beigebracht, unter keinen Umständen durch 0 zu teilen, denn dann passiert was ganz schreckliches. Das Programm löst sich in Luft auf, der PC explodiert und der Bildchirm dematerialisiert sich. Dr. James Anderson ist da anderer Meinung und hat das 1200 Jahre alte Problem mit einer neuen Zahl "nullity" gelöst.
Für Chuck Norris ist das nichts neues:
Chuck Norris can devide by zero
Kommentar schreiben,
del.icio.us,
Captcha mal ganz anders
vom 9. December 2006Neulich hat mir Markus diesen Link gegeben, der ganz neue Captcha-Schutz Mechanismen präsentiert. Die Idee ist, animierte Gifs zu nutzen, um das zu erkennende "Codewort" kurzzeitig zu verdecken, bzw. niemals komplett sichtbar zu machen. Geniale Idee, wie ich finde.
Ein anderes Konzept hatte ich mal für einen Contest auf webdevity gemacht, bei dem man Tiernamen erraten muss.
Kommentar schreiben,
del.icio.us,
WebDesigner haben's schwer
vom 8. December 2006Als ob die Browserhersteller nicht schon genug Steine in den Weg gelegt hätten. Auch die Kunden können einem den letzten Nerf kosten. Der Artikel "Wenn Architekten wie Webdesigner arbeiten müssten" ist reichlich übertrieben, aber es steckt dennoch etwas Wahrheit drin. Es ist oft nicht leicht, dem Kunden gerecht zu werden. In solchen Fällen (wenn nicht mal der Kunde genau weiß, was er will), ist es besser, zuerst einen Prototypen zu erstellen, auch wenn das anfangs mehr Zeit kostet, es lohnt sich.
Den Prozess, zu verstehen was der andere genau will ist nicht zu unterschätzen. Hier noch ein weiterer interessanter Blog-Eintrag zu diesem Thema.
Kommentar schreiben,
del.icio.us,
Ping
vom 8. December 2006Jeder hat es schon einmal den Befehl "ping" verwendet, um nachzuprüfen ob eine Domain/Host erreichbar ist oder zu sehen, wie lange die Datenpakete brauchen. Sei es am Heim-PC mit WindowsXP, um die Verbindung zum Router zu prüfen, oder am Linux-Server, tief vergraben im uptime-Script.
Doch wer hat sich schon einmal gedanken darüber gemacht, wer denn das Programm ping programmiert hat? Ich bin gerade über die Homepage des ping-Autors gestolpert. Interessant ist, das er eine völlig andere Definition des Programmnamens PING hat. Fernab von der "offiziellen" Definition Packet InterNet Grouper sieht Mike Muuss sein Programm als Analogie zum ping-Geräusch eines Sonars.
Und hier noch eine lustige Geschichte (von "the PING page"):
The funniest use of `ping' to date was described in January 1991 by Steve Hayman on the USENET group comp.sys.next. He was trying to isolate a faulty cable segment on a TCP/IP Ethernet hooked up to a NeXT machine, and got tired of having to run back to his console after each cabling tweak to see if the ping packets were getting through. So he used the sound-recording feature on the NeXT, then wrote a script that repeatedly invoked `ping(8)', listened for an echo, and played back the recording on each returned packet. Result? A program that caused the machine to repeat, over and over, "ping ... ping ... ping ..." as long as the network was up. He turned the volume to maximum, ferreted through the building with one ear cocked, and found a faulty tee connector in no time.
Wer mal einen kleinen Blick in den Sourcecode werfen will, wird bei google-codesearch fündig.
Kommentar schreiben,
del.icio.us,
UML-Reasoner nimmt Form an
vom 7. December 2006
Wie man sieht, drück ich mich mal wieder vor den Mathe-Hausaufgaben (die bis morgen abzugeben sind). Ruby gefällt mir von Tag zu Tag besser und ich habe begonnen, den UML-Reasoner, den wir als eine Art Projektarbeit von unserem SEKS-Prof. (Herzberg) bekommen haben, mit Ruby zu programmieren. Auf Java hatte ich keine Lust und Prolog war mir dann doch ne Nummer zu mühsam.
Wie man sieht, sieht das nicht mehr wirklich nach Linux aus. Ja genau, ich habe jetzt einen Mac! Ist natürlich noch alles sehr ungewohnt und neu, aber es macht wirklich Freude alle paar Minuten was tolles zu entdecken. Gerade läuft der Compilevorgang für gimp durch und Firefox, sowie vim und die Bash ist natürlich auch schon installiert :) Mit der Tastatur kann ich mich allerdings noch nicht so ganz anfreunden. Die Mac-Tastatur ist alles andere als Programmiererfreundlich. Die wichtigen Symbole sind nicht aufgezeichnet und bekommt man nur durch Fingerakrobatik.
Kommentar schreiben,
del.icio.us,
Weiterbloggen
vom 7. December 2006Hallo zusammen. Ich habe entschlossen, wieder ein Blog zu aktivieren. Auf meiner alten Seite (aaron-mueller.de) war es ja seit fast einem Jahr ziemlich still geworden. Das hatte einen simplen Grund: Ich wollte die Seite neu gestelten und hatte einfach nie wirklich Zet gefunden. Da ich immer noch nicht wirklich weiß, was ich mit der alten Seite machen soll, habe ich beschlossen, vorerst auf Wordpress zu setzen.
Auf gehts in die zweite Runde!
Kommentar schreiben,
del.icio.us,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17