Shebang, #! und bangbang, !! haben wenig mit g*!, grinsbang und peng peng zu tun

Zu peng peng habe ich mir schon einiges notiert und shebanging ist mir schon lange gut geläufig, nur wusste ich nicht, dass man es so nennt. Ok, jetzt weiß ich es, brauche nie mehr Programmaufruf mit Raute und Rufzeichen sagen, und zitiere dazu gleich aus der Wikipedia Shebang

Shebang (auch Magic Line) bezeichnet bei unixoiden Betriebssystemen die Zeichenkombination #! am Anfang eines Skript-Programms. Die Markierung führt dazu, dass das folgende Kommando mitsamt aller angegebenen Argumente beim Aufruf des Programms ausgeführt wird. Der Dateiname wird dann als weiteres Argument übergeben. Andere Betriebssysteme – beispielsweise Microsoft Windows – nutzen die Technik nicht. Nur bei speziellen Umgebungen, wie dem Common Gateway Interface im Apache HTTP Server, spielt die Shebang-Konstruktion auf diesen Systemen eine Rolle…..

Veröffentlicht unter Allgemeines | Verschlagwortet mit | Hinterlasse einen Kommentar

Sicherheit geht vor

das weiß doch jeder Tor. Manche pflegen angeblich ihr ganzes Leben lang nichts anderes zu tun, als sich für alle Fälle zu rüsten. Wenn sie es endlich geschafft haben, rafft sie der Tod wegen Altersschwäche hinweg, denn er allein ist jedem Leben sicher. Natürlich kann man um eine Wohnung eine nicht-chinesische Mauer aufziehen, einen Limes und dahinter einen Wassergraben und dann einen eisernen Vorhang… Die Tür muss richtig verankert sein, aber dann machen vielleicht 10 elektronische und 5 mechanische Schlösser einen Sinn. Auch Verschlüsselung der eigenen Daten und womöglich der gesamten Festplatte am persönlichen Rechner kann unter Umständen sogar sinnvoll sein.
Dumm ist nur, wenn sie die Wohnung nicht mehr verlassen können, vielleicht aus Angst, dass sie selbst nicht mehr hinein kommen, weil sie irgend ein Kennwort (-zeichen) vergessen haben, oder weil es einfach viel zu lange dauert und zu mühsam ist. Wozu also der ganze Aufwand? Damit der Nachbar nicht sieht wie dreckig es in ihrem Wohnzimmer ist? Ach, das ist doch keine Schande, schließlich hatten sie doch viel zu tun, mit den ganzen Sicherheitsmaßnahmen.
Es gibt viele törichte Ideen und auch viele Dummheiten. Der umgekehrte Fall ist auch so eine, nämlich wenn Sie eine versperrbare Haustür haben, aber den Schlüssel weg werfen und die Tür weit offen stehen lassen, ähnliches habe ich z.B. bei Ubuntu 10.4 gesehen. Aber der Standardhauptbenutzer kann dann ja einen Schlosser kommen lassen, der ihm ein neues Schloss einbaut. Tödeldida, dödeldidi – verschlüssel nur den Schlüssel nie. LOL
Wie dem auch sei, sicher ist sicher, sprach der körperlich gesunde, militante Nichtraucher, stieg in sein Auto und tötet einen unschuldigen Passanten. Der Satz musste sein, um die statistisch häufigste Todesursache durch Fremdeinwirkung erwähnt zu haben, wenn es schon um Sicherheit geht. Ich bin für ein Pickerl auf jedes Fahrzeug: “Achtung die Benutzung kann tödlich enden”. Aber noch richtiger wäre eine Warnung bei der Geburt, denn Leben kann nicht nur unsicher und tödlich sein, sondern es endet immer und ausnahmslos mit dem Tod. Also aufpassen, denn: “Leben kann nicht nur unsicher und tödlich sein – sondern, Leben ist tödlich”! Das, und nur das, ist wirklich sicher.
Liebe Grüße vom Transparenzheini mit gesundem Vertrauen, Helmeloh

Veröffentlicht unter Allgemeines, amüsant | Verschlagwortet mit | Hinterlasse einen Kommentar

Ruby! Bock auf Block?

Statt For-Schleifen verwendet man in Ruby gern Blöcke, also Codeabschnitte, die nach bestimmten Vorgaben, etwa für alle Elemente einer Datenstruktur, ausgeführt werden. Sie können unter anderem benutzt werden, um Strukturen auszuwerten oder zu manipulieren. Ausdrücke wie

array.each do |element|
...
end

bzw.
array.each { |element| ... }

auf Ruby (Programmiersprache) geht’s weiter mit

iterieren über array, wobei dem Block in jedem Iterationsschritt ein Visitor für das aktuelle Element mit der Bezeichnung element übergeben wird. Mit Blöcken werden elegante Konstruktionen wie 5.times{ … } oder array.sort_by{|element| element.size} möglich.

Iteratoren, also Methoden, die Blöcke aufrufen, können auch selbst definiert werden:

def mach_zweimal
yield
yield
end

mach_zweimal { puts “Block aufgerufen!” }

Ausgabe:

Block aufgerufen!
Block aufgerufen!

So ähnlich steht es auch in den Ruby Einführungen, aber ich zitierte aus Wikipdedia, weil mir das “Duck Typing”-Beispiel dort so gut gefällt:

Eine graue Ente macht: Quak!
Eine dicke Kuh macht: Muuuh!

;-)

Ich dachte schon das war’s, bis ich Block Closures in Ruby und # CLOSURES IN RUBY fand.

Wichtig ist jedenfalls und das gilt auch für Blöcke, dass alles ein Objekt ist in Ruby. Everything is an object in Ruby heißt es auch in “Ruby on Rails – Part 2: Just Enough Ruby”:
YouTube Preview Image

Veröffentlicht unter Ruby | Verschlagwortet mit | Hinterlasse einen Kommentar

PostgreSQL Handbuch in Deutsch

Es ist für mich doch viel leichter zu lesen, außerdem ist die Dokumentation sehr übersichtlich, siehe PostgreSQL: Das offizielle Handbuch von Peter Eisentraut. Auf der Seite befinden sich auch Links zum online lesen, ich zitiere:

Lesen

Mit freundlicher Genehmigung des Verlages kann das gesamte Buch sowohl in HTML-Form als auch in PDF-Form online gelesen werden.

* HTML-Version zum Lesen online (einzelne Dateien)
* HTML-Version zum Herunterladen (gepackte Datei, 835 kB)
* PDF-Version zum Herunterladen (gepackt, 4,1 MB)

Kaufen

… kann man das Buch am besten gleich beim Verlag. Übrigens: ein Teil der Verkaufserlöse wird dem PostgreSQL-Projekt zugute fließen.

Die Aktualisierungen und Änderungen, besonders der 9.0 beta Version lesen sich dann auch in Englisch leichter auf Documentation. Momentan wundere ich mich gerade über die Datentypen in pg. Mit der InnoDB von MySQL hatte ich ja immer wieder Problemchen (vermutlich meine Fehler) und jetzt sehe ich mir nach BASE PostgreSQL genauer an. Bis jetzt bin ich sehr beeindruckt von Datentypen, Funktionen, Operatoren und Transaktionsisolation … und nicht zuletzt ist auch die DBI Schnittstelle Ruby/DBI – Direct database access layer for Ruby interessant für mich.
Active Record (Migrations, Validations and Callbacks, Associations, Query Interface) von Rails ist als ORM natürlich eine ganz andere Geschichte, die mich ebenfalls gerade fasziniert. Durch die DB-Abstraktion wird man dabei von der DB selbst, sei es nun MySQL, PostgreSQL, SQLite, Oracle, SQLServer oder DB2, unabhängig.

Veröffentlicht unter EDV, PostgreSQL, SW und Open Source | Verschlagwortet mit , , | Hinterlasse einen Kommentar

RIA-Frameworks

Ich habe mir gerade ein paar RIA-Frameworks angesehen und neben RIA War Is Brewing (schon etwas veraltet) und RIA Frameworks (keine Ahnung mit welchem steinzeitlich Modem der die Qooxdoo Seiten getestet hat) auch den Artikel Using jQuery with Ruby on Rails (94 HTML Fehler sind übrigens keine gute Reputation für einen Webdeveloper und freelancer mit einer Seite mit dem Titel:
Ruby on Rails, Javascript, CSS and Standards). Dort habe ich auch diesen Vergleich gefunden:

Die Präsentation (slide) habe ich wieder entfernt, da die Embed-Funktion HTML-Fehler aufweist! Daher also nur ein Link zu Prototype & jQuery. Eigentlich wollte ich das auf slideshare auch in einem Kommentar anbringen, aber das Login or Signup mittels Twitter bzw. Facebook funktioniert auch nicht (Sorry! The page could not be loaded.). Gut, dann eben nicht.

jQuery beeindruckt mich am meisten von den gesehenen RIA-Frameworks und sobald ich meine ersten Lektionen in Ruby und RoR fertig gelernt habe, werde ich bestimmt auch jQuery verwenden.

Veröffentlicht unter Ruby on Rails, Web + Dev. | Verschlagwortet mit , | Hinterlasse einen Kommentar