06.10.2008: JavaScript: Find out if function exists

I've been working on a site concept which involves several pure HTML- and Javascript-based pages, to be uses as mere demonstrational material. While adding several niceties like modal windows based on my fork of Thickbox, ie. Thickbox Redux, I've stumbled over some strange errors Firebug throw out during the document load process.

Thus I had to implement some kind of "if function exists"-magic to avoid getting errors on the debugging console (not to mention that this properly might have side-effects like totally disabling my JS efforts at all and similar worst-case scenarios) - which is quite hard to find out, I have to say.

Simple, but effective solution is as follows:

if(typeof yourFunctionName == 'function') { yourFunctionName(); }

Found via Idealog: Check if a Javascript Function Exists or Is Defined and (Paul Bennett) Javascript: checking if a function exists.

05.10.2008: Überlegungen: Wikis für Einsteiger

DokuWiki ist für fortgeschrittene Benutzer schon ne tolle Sache - du kannst ganz fix neue Seiten und Namespaces anlegen, alles geht Hand in Hand, ist schnell aufgesetzt und braucht auch keine mühselige DB-Pflege ..

Aber wie ist das für Einsteiger? Da gibt es wohl die übliche Hürde von wegen "Wo ist mein WYSIWYG-Editor?!?".
Ich habe bei meinem aktuellen Arbeitgeber ein Wiki auf Basis von DokuWiki aufgesetzt und verwalte es auch weiterhin, allerdings erscheinen mir die Einstiegshürden etwas zu hoch.

Alternativen dazu müssten folgende Vorraussetzungen out-of-the-box oder zumindest "easy to add to" erfüllen:

  1. Namespaces, Tagging o.ä.
  2. PHP-basiert - zum einen wegen den Server-Anforderungen, zum anderen, weil ich mich dafür jetzt nicht extra in eine neue Programmier- oder Scriptsprache stürzen will (geht schon allein zeitmäßig nicht)
  3. Halbwegs sinnvoll administrierbar - dabei reicht mir ein teils recht karger Admin-Bereich ähnlich dem von DokuWiki völlig aus
  4. WYSIWYG-Editor - wenn via Plugin nachzurüsten, , dass das nicht in einen solchen K(r)ampf wie bei MediaWiki ausartet

Vorschläge anyone? Bis dato hab ich noch keine sinnvolle Alternative gefunden - und jeden Tag, der verstreicht, geht die Chance, das Firmen-Wiki als Austausch-Plattform und Wissens(an)sammlung zu nutzen, weiter flöten :-/

29.09.2008: Linkdump: The Atom-Publishing Protocol

Da ich gerne endlich Blog-Einträge von der Kommandozeile aus verfassen möchte, habe ich mich gestern abend trotz bisher recht magerer Ergebnisse nochmals hingesetzt und tatsächlich ein paar Artikel zum Themas "Atom Publishing Protocol" aka AtomPub ausfindig machen können. Mithilfe dieser werde ich innerhalb der nächsten ein größtenteils auf die Kommandozeile abzielendes Script zusammenbasteln, welches mir ermöglicht, einfach in irgendeinem x-beliebigem Editor einen Text zu verzapfen und diesen dann auf Zuruf zu "publishen", d.h. also automatisiert in einem meiner Weblogs zu veröffentlichen ;)

22.09.2008: Es nervt ..

.. aber so richtig. Ich hätte wirklich gern eine einfache UND schnelle Möglichkeit, Posts einfach so von der Kommandozeile abzusetzen. meine FTP-Daten rausgeben zu müssen o.ä. Sicherheitslücken.

Jetzt erstmal das Habari-Update einspielen... und gucken, was sich dort sonst noch so getan hat seit Anfang August diesen Jahres.

17.09.2008: jQuery-based charts

Bookmark: Creating accessible charts using canvas and jQuery - nette Methode das.

16.09.2008: Mein Starterkit

Eine Antwort auf Peter Kröners "Das Website-Starterkit" - ursprünglich als Kommentar gedacht. Ist mir dann aber zu groß ausgefallen, ergo: Eintrag ;)

Mein "Starterkit" ist deutlich reduzierter:

HTML schreibe ich immer noch per Hand - meist darf das Header-Template von fwolf.info für den Dateianfang herhalten.

Datei- und Verzeichnisstrukturen entstehen je nach Anforderungen. Immer mit dabei: ein Include-Verzeichnis namens includes/. Dorthin kommt u.a.:

Der Meyer'sche Reset liegt bei mir unter /inst/scripts/css/ herum und wandert von dort nach Bedarf ins Verzeichnis includes/, oder, wenn mehr zu tun ist, ins Verzeichnis includes/css/. Weiterhin gestellt sich gerne auch die clearfix.css hinzu. Und je nach Ausbauform auch gerne mal ein thickbox.css.

Bei einfachen Websites kommt nun nur noch ein Verzeichnis namens images/ hinzu, das war's dann auch schon. Komplexere Varianten enthalten dann noch ein includes/js/-Verzeichnis, in welches in 90% der Fälle ein (aktuelles) jquery.pack.js oder jquery.min.js kopiert wird, ebenso wie ich dort fast 100%ig eine Datei namens custom.js anlege, welche eben "custom"-Scripts und Settings enhält.

12.09.2008: jQuery collumn select

Note to self:

$('.row-col1').hover( function() { $('.row-col1').attr('style', 'background-color: #fe0;'); }, function() { $('.row-col1').attr('style', ''); }

08.09.2008: Quick'N'Easy blog editing

For quite a while, it's been getting a big problem for me: How to quickly and easily submit a blog post - whether its in here using Habari or any other blogging platform.

I recently stumbled over hl--, which describes itself as: "Designed for people who are comfortable SSHing to their web server, and making updates with a text editor" - great concept! Thats what I've been searching for - but not as yet another blog software, but for getting my thoughts and side notes quickly published.

Thus, I'm currently in the process of hacking something together that'll handle the following tasks:

  1. Fetch given text file that contains a pre-formatted, new blog post
  2. Upload it using different methods, starting from down-to-earth FTP access, up to HTTP-PUT and AtomPub
  3. Parse the incoming data and publish (or save it as draft) it at a given date and time - or right now

On a side-note rant: Why isnt there a simple to use PHP class, app or something for using the bloody AtomPub protocol?!? I'd lovingly use this protocol as it gets shipped with Habari, but thanks to this short-comings, its going to be a loooong way before I get the chance of implementing this into above mentioned app :(

03.09.2008: Krumm vs. Opernhaus

Dieses ewige Beweihräuchern, Benchmarking und Getue, als ob Google "Krumm" Chrome der tollste und schnellste Browser unterm Himmelszelt wär, geht mir allmählich ziemlich gegen den Strich.

Ganz offensichtlich haben sämtliche Beteiligten, die aktuell Krumm als DIE Browser-Alternative hochjubeln, weil ja angeblich viel viel schneller zu starten und zu benutzen, als alles andere, was bis dato da gewesen ist, noch nie in ihrem Leben Opera benutzt.

Genau. Opera. Dieser Browser, der u.a. auch auf vielen vielen Handys und sonstigen Mobilgeräten zu Hause ist.
Der schon seit geraumer Zeit rasend schnell ist und verdammt wenig Systemresourcen verbraucht. Kleiner Vergleich? Gerne:

vergleich-no-load.png

Darauf ist zu erkennen, dass Firefox (oder in meinem Fall: Swiftweasel = CPU-optimierte Variante von Firefox) im Ruhezustand schon derbe viel Speicher frisst, während Opera sehr sehr genügsam mampft.

Mein Firefox ist natürlich übelst vollgestopft mit Extensions, die ich u.a. für die Arbeit benötige, allerdings selbst ohne diese würde Firefox immer noch mindestens 100 MB an Speicher für nichts verschwenden (lt. Test direkt nach frisch aufgesetzer Installation vor ca. 2 Monaten).

Verwendete Browser:
a) Firefox bzw. Swiftweasel 2.0.0.14 (AthlonXP-Built)
b) Opera 9.50

Kernel: 2.6.20-16-generic i686 GNU/Linux

26.08.2008: Webmontag Karlsruhe XIII

13, holde 1213. Also: Hoffentlich entspricht der kommende Webmontag in Karlsruhe am 08.09. nicht dieser Zahl, und es kommen vielerlei Leute ;-)

Statt findet dieser Webmontg - wie schon die letzten paar Male - im Viktoriagarten, Viktoriastr. 7 in (wo sonst?) Karlsruhe - am besten zu erreichen vom Mühlburger Tor.

Ich werde mich vielleicht dazu herablassen, ein bisserl den neuen Posterdesigner meines neuen Arbeitgebers vorzustellen - mal schaun. Weiterhin gibt es noch den Logo-Abstimmungs-Contest - womöglich haben wir bis dahin aber schon eine gute Auswahl getroffen und es geht nur noch um eine kurze Präsentation desselbigen.

Wer selber noch was vorstellen möchte oder einen sinnvollen Vortrag in peto hat: Ab ins Wiki und eintragen. Für Interessierte gilt dasselbe ;-)