Mittwoch, Februar 03, 2010

Offline-Manuals für Web-Entwickler

Da ich morgen 10 Stunden in einer Boeing 767-300 eingepfercht sein werde, nehme ich mein MacBook (mit brandneuem Akku, da der alte die 300 Ladezyklen überschritten hat) mit an Bord und werde an Web-Projekten programmieren. Wie es aber so ist, hat man im Flugzeug immer noch keinen Internet-Zugang, weshalb es von sehr, sehr grossem Wert ist, wenn man sich die gängigsten Handbücher auf den lokalen Laptop lädt.

Nachfolgend die Links, die sich mit einem

wget -i <datei>

herunterladen kann:

# 2010-02-03
# by Mario Aeby

# Apache 2.2
http://mirror.switch.ch/mirror/apache/dist/httpd/docs/httpd-docs-2.2.14.en.zip
http://mirror.switch.ch/mirror/apache/dist/httpd/docs/httpd-docs-2.2.14.en.pdf

# MySQL 5.0
http://downloads.mysql.com/docs/refman-5.0-en.html-chapter.zip
http://downloads.mysql.com/docs/refman-5.0-en.a4.pdf

# PHP
http://ch.php.net/get/php_manual_en.tar.gz/from/this/mirror

# jQuery 1.4
http://download881.mediafire.com/gidquw4y1u1g/mgmrt0ehzyz/jquery-1.4.chm.7z

# SelfHTML 8.1.2
http://ftp.uni-ulm.de/mirrors/selfhtml/selfhtml812.zip

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Dienstag, Januar 26, 2010

Ein Feature in 30 Minuten oder 24 Stunden?

For every 1 day estimates of a task, there’s a simpler version of that you can do in 3 hours, and an even simpler still you can do in 30 minutes. Back yourself into a corner and these versions will vividly appear before your eye. You can always do less.

Quelle: You can always do less - (37signals)

Labels: ,

0 Kommentare | neuen Kommentar verfassen

Freitag, Dezember 25, 2009

Besser als die Weihnachtsgeschichte: Duke Nukem Forever

His name is George Broussard, co-owner of 3D Realms and the man who headed the Duke Nukem Forever project for its entire 12-year run. Now 46 years old, he’d spent much of his adult life trying to make a single game, and failed over and over again.

Quelle: Learn to Let Go: How Success Killed Duke Nukem | Magazine

Labels: , , , , , ,

1 Kommentare | neuen Kommentar verfassen

Samstag, Dezember 19, 2009

Brauchen Softwareentwickler wirklich Höllenmaschinen?

I have endless battles with overzealous developers who swear up and down that they use their desktops like servers. Sure you do! And you're building the space shuttle with it, right? Of course you are. Yeah.

Quelle: Building a PC, Part VI: Rebuilding

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Sonntag, November 29, 2009

Wie man den richtigen Programmierer findet

There are three questions you have when you’re hiring a programmer (or anyone, for that matter): Are they smart? Can they get stuff done? Can you work with them?

Quelle: How I Hire Programmers (Aaron Swartz's Raw Thought)

Diesen Seitenhieb auf Googles Anstellungspraktiken mag ich:

(If you ask people at parties to name their greatest strengths and weaknesses or to estimate the number of piano tuners in Chicago, you’ve got bigger problems.)

Wobei man behaupten könnte, dass Google vielleicht nicht immer daran interessiert ist, Dinge möglichst rasch und effizient zu realisieren — und deshalb so doofe Fragen stellt.

Labels: , , , ,

0 Kommentare | neuen Kommentar verfassen

Dienstag, November 17, 2009

Google Droid und der vorgezogene 1. April?

And things have turned surreal. Dan Morrill, from Google's Android team, has confirmed that there's a date-related bug in the Droid's camera software that leads to it having cycles of good and bad focus that depend on the date. Our own testing confirmed this, as backdating to the 11th of November returned those red bars of of failure. Apparently, the cycles last 24.5 days, meaning that you'll have good focus all the way to December 11, when the real fix is expected to drop. So breathe easy, Gotham, there are no phantom updates, just an oddly date-sentient camera.

Quelle: Motorola Droid camera autofocus fixed in secrecy? (Update: it's a date-related self-correction)

WTF

Labels: , , , , ,

0 Kommentare | neuen Kommentar verfassen

Mittwoch, September 30, 2009

Aus dem Entwicklerleben gegriffen

3. About a week of development time is lost whenever someone from marketing makes a fuss about adding "a trivial feature that'll only take 1 hour" so he can close a sale

4. Most clients will not provide the most important requirement until a project is two-thirds developed. They will not even realize it was a requirement until they begin to see proofs

Quelle: N Examples of Why Time Estimates are Always Wrong (Software Engineering Tips)

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Sonntag, August 23, 2009

XML sucks!

Then reality struck. The pipeline was slow: Oracle loaded XML at a crawl. And it was a memory hog, since XSLT required putting full document trees in RAM.

Quelle: How XML Threatens Big Data : Dataspora Blog

Selbstverständlich bin ich voreingenommen und lese vorzugsweise Artikel, die Kritik an XML (und XSLT) üben. Aber ein Körnchen Wahrheit wird sicherlich darin sein ...

Aus diesem Grund lasse ich auch heute (2009) noch die Finger von dieser Technologie.

Labels: , , , ,

0 Kommentare | neuen Kommentar verfassen

Dienstag, August 18, 2009

Microsoft schiesst wieder mal den Vogel ab

The bug caused one of our customers to get different business reports depending on whether anyone had started up MS Paint during the data analysis.

Quelle: FYI: Not so funny Microsoft bug that hosed our company's product because a "function randomly returns incorrect results". : reddit.com

Labels: , , ,

0 Kommentare | neuen Kommentar verfassen

Freitag, Juli 10, 2009

Firefox 3.5 sucks

Instead of using the randomization functionality of the underlying operating system (which has this feature build-in as every TCP stack for example needs it), they did what Mozilla in general always does: they re-invented the wheel.

To solve the problem of the randomization, the NSS team came up with something clever, something so great, that no-one else had ever thought of that before: they decided to read the files in all possible temp folders on disk with multiple threads so these files can be used as seeds for the randomization. Brilliant. Temp folders! Why hasn't anyone else thought of using a disk-based resource for random number generation! I mean, these folders change every couple of milliseconds, have immediate access, no latency to read their contents and are never filled to the brim with useless cruft!

Quelle: The Firefox 3.5 fiasco - Frans Bouma's blog

Wieder ein Grund mehr, weiterhin glücklich mit Safari um die Welt zu surfen ... Wer braucht schon Extensions?

Labels: , , , ,

0 Kommentare | neuen Kommentar verfassen

Montag, Juni 08, 2009

Wie sag ich's dem Computer?

Programming is really just the act of teaching a computer how to do something that you know how to do yourself. It's a matter of understanding how to do something and then translating your thoughts into computer code.

Quelle: How to "think" as a programmer : reddit.com

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Samstag, Juni 06, 2009

Mein erstes "Hello World!"

I wrote my first traditional program using BASIC on an Apple II circa 1982. The program printed my name on the screen. At the time, it was the coolest thing I’d ever seen.

Quelle: Hivelogic - Regarding The Switch to ExpressionEngine

Mir ging es irgendwann einmal vor 1995 genau gleich: Mein erstes BASIC-Programm auf einem betagten i286er veränderte mein Verhältnis zum Computer für immer. Auf einmal konnte man der Maschine Befehle erteilen - und noch viel spannender, mittels einer Eingabeaufforderung Variablen einlesen. Der Rest meiner Familie kann sich vielleicht noch vage daran erinnern, als ich sie zum ersten Mal vor den Computer setzte und mit einem von mir geschriebenen BASIC-Programm interagieren lies.

Die Routine funktionierte etwa folgendermassen (Pseudo-Code):

echo "Wie heissen Sie?"
input $name
echo "Hallo $name. In welchem Jahr wurden Sie geboren?"
input $year
$age = date('Y') - $year
echo "Lieber $name, Sie sind heute $age Jahre alt."
exit 0

Das war der Hammer - auch wenn die Nicht-Geeks um mich herum still den Kopf schüttelten. Abgesehen von Kollege Stewä interessierten sich auch viele (männliche) Klassenkollegen nicht für diesen Durchbruch. Ich kann mich ganz genau daran erinnern, wie Kollege Fabio arrogant reagierte: "Ja und?". Zum Glück habe ich mich von solchen Reaktionen nicht beirren lassen.

Labels: , , , , ,

0 Kommentare | neuen Kommentar verfassen

Samstag, Juni 06, 2009

Dateien von der Versionierung durch SVN ausschliessen

Obwohl ich mich ja generell zu den Apple-Fanboys zähle, warte ich auf den Judgement Day für denjenigen Idioten, der a) anno dazumal die Resource Forks erfunden und denjenigen (wahrscheinlich anderen) Idioten, der b) die Resource Forks auch nach Mac OS X portiert hat.

Dieser Entscheid hat leider schwerwiegende Auswirkungen bis heute, ins Jahre des Herrn 2009. Wenn ich nämlich Verzeichnisse mit SVN versioniere, kämpfe ich regelmässig mit versteckten Dateien, die entweder .DS_Store oder ._<dateiname-einer-im-selben-ordner-liegenden-datei> zu kämpfen habe. Vor allem dann, wenn ich auf Samba-Shares arbeite.

Glücklicherweise hat SVN einen Mechanismus eingebaut, mit welchem solche Fragmente von der Versionierung ausgeschlossen werden können:

$ cd dir/
$ svn propset svn:ignore ".DS_Store" .

Quelle: Preparing a Rails Application for SVN

Verzeichnisse

Selbstverständlich funktioniert die Chose auch mit ganzen Ordnern. Wenn ich in einem unter Versionskontrolle stehenden Projekt ein Verzeichnis habe, dessen Inhalt nicht versioniert werden soll, hilft folgender, ähnlicher Befehl:

$ cd dir/
$ svn propset svn:ignore '*' nicht-zu-versionierendes-verzeichnis/

Quelle: How to … Make Subversion ignore files and folders

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Dienstag, Juni 02, 2009

Wie man als Programmierer seinen Arbeitsplatz auf Lebzeiten sichert

Köstlich - der ganze Artikel muss gelesen werden!

If you call your variables a, b, c, then it will be impossible to search for instances of them using a simple text editor. Further, nobody will be able to guess what they are for.

Quelle: How To Write Unmaintainable Code

Labels: , , , , ,

0 Kommentare | neuen Kommentar verfassen

Montag, April 27, 2009

Welche Drupal-Version läuft auf meinem Server?

If CHANGELOG.txt is missing, you can also check in system.module for a line at the top like:

define('VERSION', '5.5');

If this is present, it will tell you which version you are running. If not, you have a version earlier than 4.7.2.

Quelle: Drupal version numbering | drupal.org

Labels: , , ,

0 Kommentare | neuen Kommentar verfassen

Mittwoch, März 04, 2009

Gegen Architecture Astronauts und für rasche Umsetzung

This is one reason why I'm so down on architecture astronauts. I find that the amount of discussion on a software feature is inversely proportional to its value. Sure, have some initial discussion to figure out your direction, but the sooner you can get away from airy abstractions, and down to the nuts and bolts of building the damn thing, the better off you -- and your project -- will be.

Quelle: Coding Horror: Procrastination and the Bikeshed Effect

Ich habe leider auch die Tendenz, mich mit abstrakten Fragen zu prokrastinieren. Gerade erst habe ich so wohl ein Software-Projekt unnötig verzögert ...

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Samstag, Januar 03, 2009

Chargeable Hours

Da sich in meinem Kollegenkreis zunehmend Leute beruflich zu den von mir so heiss geliebten Beratern weiterentwicklen, habe ich über Sylvester wieder ein neues Wort gehört: "chargeable hours" (Ernst & Young) - Kollege Zwei, der bei einer eher deutschstämmig orientierten Bude auf Consultant macht, nennt diese Eigenschaft von Arbeit "(weiter)verrechenbare Stunden".

Wenn man genau überlegt, gibt es diese Maxime eigentlich bei den meisten Dienstleistungs-Buden - und somit auch bei mindestens einer meiner Anstellungen.

Joel weist in seinem jüngsten Artikel auf ein verwandtes Problem hin:

for startups, everything about your resume has to scream getting your own hands dirty. Otherwise your resume makes you look like you’re looking for the kind of job where you can call meetings that take people away from coding all day long, which, to a startup, is about as useful as a one-legged man in a butt-kicking contest.

Quelle: Another resume tip - Joel on Software

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Freitag, Januar 02, 2009

Fremde SVN-Repositories in Projekt integrieren (svn:externals)

Heute war es das erste Mal soweit: svn externals musste her, um eine Web-Applikation aus mehreren eigenständigen Repositories zusammenzusetzen. Glücklicherweise ist das Prozedere nicht wirklich kompliziert.

Ziel ist es in diesem Beispiel unter <svn-root>/inc/classes/ Klassendateien aus einem fremden Repository einzufügen (Das Verzeichnis classes muss dabei nicht bestehen):

  1. $ cd <svn-root>
  2. $ svn propedit svn:externals inc
  3. Es öffnet sich der Editor der Wahl, in welchen man folgende Zeile eingibt:
    classes http://my.repository.com/classes
    Anschliessend speichert man die Änderungen (:w in vim, Ctrl+O in nano) und schliesst den Editor (:q in vim, Ctrl+X in nano)
  4. $ svn update
  5. $ svn ci -m "Added external repository"

Via: svn:externals

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Dienstag, Dezember 30, 2008

Programmierer und die Firmenpolitik

Joels Archiv ist eine wahre Fundgrube:

When a programmer complains about “politics,” they mean—very precisely—any situation in which personal considerations outweigh technical considerations. Nothing is more infuriating than when a developer is told to use a certain programming language, not the best one for the task at hand, because the boss likes it. [...] Nothing is more aggravating to a developer than being forced to do something that is technically inferior because someone higher than them in the organization, or someone better-connected, insists on it.

Quelle: A Field Guide to Developers - Joel on Software

Labels: ,

1 Kommentare | neuen Kommentar verfassen

Dienstag, Dezember 30, 2008

Der perfekte Büro-Arbeitsplatz für Programmierer

One of the most important, and most controversial, topics in that book is that you have to give programmers lots of quiet space, probably private offices, if you want them to be productive.

[...] There’s a strong culture in Silicon Valley that requires you to jam a lot of programmers into a big open space, [...]

Quelle: A Field Guide to Developers - Joel on Software

Wenn ich eines hasse, dann sind es Telefone, die im Grossraumbüro alle fünf Minuten mit einem fürchterlichen Geklimpere schellen. Klar kann man sich Kopfhörer auf den Kopf pappen - doch leider schirmt einem die Musik mehr schlecht als recht vom Lärm ab.

Wenn ich so überlege: Im Grunde höre ich auf der Arbeit nur Musik, um den anderen Lärm zu übertönen. Zu Hause programmiere ich am liebsten bei Totenstille, wenn höchstens das Surren der Lüfter meines PowerMacs G5 zu hören ist.

Mein Wunsch fürs neue Jahr lautet deshalb von JoS Artikel "The new Fog Creek office" (Neid: 30-Zoll-Schirme und qualitativ hochstehende Bürostühle) inspiriert: Die Anstellung einer Telefonistin, die den ganzen Tag nichts anderers macht, als Anrufe entgegenzunehmen und an die entsprechende Person weiterzuleiten. Und zwar so, dass das Telefon der Zielperson keinen Krach macht. Im Grunde müsste man die Anrufe gar nicht direkt weiterleiten. Der Programmierer sollte eine Liste sehen und darauf basierend selber entscheiden, wann (am selben Arbeitstag) er den Anrufenden zurückruft ...

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Montag, Dezember 15, 2008

Unbeachtete Stärken von Programmierern

While people typically think of programmers as coders, whose main talent lies in writing the arcane syntax of programming languages. I think that their main talent lies in their ability to analyze, troubleshoot, and solve problems. Code is just the physical manifestation that culminates the thought process of the programmer.

Quelle: Eliminating the Programmer » “Hello World” - The SlickEdit Developer Blog

Labels: ,

0 Kommentare | neuen Kommentar verfassen

Dienstag, Dezember 09, 2008

Genetische Algorithmen

After testing the initial population, the genetic algorithm killed off the least fit individuals by deleting them and let the most fit produce copies of themselves--offspring. It mated some individuals, swapping sections of their code. Finally, the algorithm introduced a small number of mutations by randomly switching 1s and 0s within individual programs. It then downloaded the new population one at a time onto the FPGA and ran the fitness tests once more.

Quelle: http://www.cs.nyu.edu/courses/fall08/G22.2965-001/geneticalgex

Sehr spannender Versuch. Die Zukunft der Informationstechnologie? Oder das Ende der Menschheit?

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Samstag, November 22, 2008

SVN und transparente Proxies

Dank Beanstalk mache ich zur Zeit auch privat die ersten Schritte mit Versionierung von PHP. Falls ich dereinst mal mehr Zeit haben sollte, werde ich auf dem lokalen Server hier einen SVN-Server einrichten - bis dahin verwende ich Beanstalk, wenn auch in der kostenlosen Version nur ein Projekt versioniert werden kann.

Als ich das letzte Mal im Zug von Bern nach Zürich fuhr und den soeben programmierten Code über Sunrise Take Away committen wollte, erhielt ich immer wieder folgende Fehlermeldung zu Gesicht:

svn: PROPFIND request failed on /project
svn: PROPFIND of '/project': Could not read status line: Connection reset by peer (http://subdomain.svn.beanstalkapp.com)

Nach viel Googeln und unzähligen ausgerauften Haaren schwante mir plötzlich etwas böses: Sunrise wickelt seinen UMTS/EDGE/GPRS-Traffic doch nicht etwa über transparente Proxies ab, die Probleme mit dem erweiterten HTTP-Befehlssatz von SVN haben? Jedenfalls gibt es im Netz einige Seiten, die sich dem Thema SVN und Squid annehmen.

Kurzerhand wechselte ich also den SVN-Zugang von HTTP zu HTTPS - und schwupps, schon lag eine neue Revision im Repository.

Labels: , , , ,

0 Kommentare | neuen Kommentar verfassen

Montag, Oktober 27, 2008

Regex (Reguläre Ausdrücke) im Sandkasten testen

Regular Expression sind für viele Voodoo, für den fortgeschrittenen Programmierer aber ein unentbehrliches Hilfsmittel. Hier einige Tools, die dem Anfänger helfen, Reguläre Ausdrücke am "lebenden Beispiel" zu meistern:

Empfehlungen Dritte

Labels: , ,

2 Kommentare | neuen Kommentar verfassen

Sonntag, Oktober 26, 2008

Segmentation Fault bei leerer Cacti-Tabelle

Wie bereits getwittert habe ich gestern zum ersten Mal eine PHP-Web-Applikation (cacti, eine Tool, mit welchem per SNMP Zähler von netzwerkfähigen Geräten aufgezeichnet und ausgegeben werden können) erlebt, die Apache mit einem ...

[Sat Oct 25 15:55:52 2008] [notice] child pid 13452 exit signal Segmentation fault (11)

... bei jedem Aufruf zum Absturz gebracht hat (Apache-Threads sei dank, dass nicht gleich der ganze Web-Server zum erliegen kam).

Google wusste selbstverständlich die simple Lösung auf das Problem - für einmal musste ich aber die Suchanfrage mehrere Male abändern und auch auf die zweite Seite der Suchresultate blättern:

After throwing strace at it I could see before it died all it was doing was running the SQL query "select value from settings where name='log_verbosity'" over and over (around 6000 times before it died).

After squirting the cacti.sql file into MySQL all was well and the install completed OK.

Quelle: Seven Of Nine - Borg - Cacti - exit signal Segmentation fault (11)

Unglaublich, aber wahr: Wenn die Applikation die gesuchte Tabelle nicht findet, gelangt sie mit der Error Logging-Funktion in eine Endlosschleife. Auch bei mir löste sich das Problem, indem ich die im Cacti-Basisverzeichnis liegende cacti.sql manuell in MySQL importierte:

$ mysql -u cacti -p cacti < ./cacti.sql

Kostenloser Tipp an die Entwickler (Pseudo-Code):

if(!table_exists($tbl)) {
 mysql_import('./cacti.sql');
 
 if(!table_exists($tbl)) {
  die('Import of cacti.sql failed. Error #' . mysql_errno() . ' - ' . mysql_error());
 }
}

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Mittwoch, August 20, 2008

Thermocline of Truth in IT-Projekten

In many large or even medium-sized IT projects, there exists a thermocline of truth, a line drawn across the organizational chart that represents a barrier to accurate information regarding the project’s progress. Those below this level tend to know how well the project is actually going; those above it tend to have a more optimistic (if unrealistic) view.

Quelle: The Wetware Crisis: the Thermocline of Truth : Bruce F. Webster

Doch diese Thermocline of Truth ist nicht statisch:

As the project delivery deadline draws near, the thermocline of truth starts moving up the levels of management because it is becoming harder and harder to deny or hide just where the project stands. Even with that, the thermocline may not reach the top level of management until weeks or even just days before the project is scheduled to ship or go into production. This leads to the classic pattern of having a major schedule slip — or even outright project failure — happen just before the ship/production date.

Erinnert mich spontan an Windows Vista.

Labels: ,

0 Kommentare | neuen Kommentar verfassen

Mittwoch, Juli 30, 2008

Wann soll ich committen?

Rule of thumb: if you can’t summarise it in a sentence, you’ve gone too long without committing.

Quelle: [Quotable] NetNewsWire, JotSpot, Git, Google, old Texas sayings, etc. - (37signals)

Labels:

0 Kommentare | neuen Kommentar verfassen

Donnerstag, Juli 10, 2008

Online Color-Picker

Wer möchte schon Bloatware wie Photoshop starten, um nur rasch einige RGB-Farbwerte für seine CSS-Styles auszuwählen? Das Web hat natürlich auch für diesen Anwendungsfall etwas parat:

Color Schemer Online 2.0

Labels: , , , ,

2 Kommentare | neuen Kommentar verfassen

Mittwoch, Juli 09, 2008

Der Programmier-Superstar und seine Mutter

Avie Tevanian had been working on Mach as a PhD student at Carnegie Mellon, and Steve Jobs recognized he was a star and hired him straight away. (Microsoft countered by hiring Avie's old advisor to work on NT, which is kind of like Microsoft hiring my mom because I'm a good programmer.)

Quelle: Call Me Fishmeal.: Pimp My Code, Part 15: The Greatest Bug of All

Labels: , , , , ,

0 Kommentare | neuen Kommentar verfassen

Mittwoch, Juli 09, 2008

cURL versendet POST- als GET-Request

... und zwar genau dann, wenn man CURLOPT_NOBODY aktiviert.

Dieser Erkenntnis hatte ich nach ca. einer Stunde debuggen meines Twitter-Cron-Jobs. Eine Google-Suche führte dann auch schnurstracks zur Erläuterung des "Bugs", der eigentlich ein Feature ist/sein soll:

Setting CURLOPT_NOBODY to FALSE will now switch the HTTP request method to GET simply because previously when you set CURLOPT_NOBODY to TRUE first and then FALSE you'd end up in a broken state where a HTTP request would do a HEAD by still act a lot like for a GET and hang waiting for the content etc.

If you issue a POST request and then want to make a HEAD or GET using the same re-used handle, you must explicitly set the new request type using CURLOPT_NOBODY or CURLOPT_HTTPGET or similar.

Quelle: [ 2010735 ] setting a CURLOPT_NOBODY option forces GET request

Labels: , , ,

0 Kommentare | neuen Kommentar verfassen

Dienstag, Juli 08, 2008

Reiser hat sie tatsächlich umgebracht

Bizarre Story um den Entwickler des Dateisystem ReiserFS:

Der des Mordes an seiner Frau schuldig gesprochene Open-Source-Programmierer und Entwickler eines Dateisystems Hans Reiser hat die Polizei zu der mutmaßlichen Leiche seines Opfers geführt. Zudem hat Reiser gestanden, dass er mit seiner Frau gekämpft und sie dann stranguliert hat, berichten unter anderem die US-Tageszeitung San Francisco Chronicle und ABC News aus eingeweihten Kreisen.

Quelle: heise online - Hans Reiser führt Polizei zur Leiche seiner Frau

Labels: , , , ,

0 Kommentare | neuen Kommentar verfassen

Donnerstag, Juni 26, 2008

PHP wartet auf RoR-Entwickler

The maintainers published the code for the security patches on the 18th, thus giving crackers almost a week head start in finding an exploit in older versions. They then shipped broken releases on the 20th, making it impossible for anyone to upgrade to an official version. And we haven't heard anything since. What's going on?

Quelle: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) - Ruby Forum

Da ist die Eisenbahn wohl entgleist ... Macht nichts, alle Wege enden irgendwann bei PHP!

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Mittwoch, Juni 25, 2008

Tomcat - die perfekte Wahl für Web-Applikationen

Over the last few weeks my photo collection application has been struggling seriously with its performance. The Tomcat server would sometimes crash, which isn't so serious, as my monitoring script would restart it at most 30 minutes later.

Quelle: On robots, URL design, and bad optimization | Larsblog

Toll! Mein Apache-Server stürzt wegen PHP-Scripts auch hie und da ab, aber dank eines Scripts ist er nach spätestens 30 Minuten wieder im Netz. Hey, im Internet stört es niemanden, wenn Server für 30 Minuten offline gehen *höhö*

Nun mal im Ernst: Wieso Tomcat, wenn es AMP längst tun würde? Ich erschlage Fliegen hier im Haus ja auch nicht mit dem Sturmgewehr.

Labels: , ,

3 Kommentare | neuen Kommentar verfassen

Dienstag, Juni 10, 2008

Hex-Editor für Mac OS X

0xED

... war mir heute gerade wieder äusserst nützlich, um die Datenstruktur der von Nokias PC Suite erzeugten .nbu-Dateien zu analysieren (alle paar Jahre wieder ein neues Format - das letzte Mal spuckte die Applikation noch .nbfs aus ...)

Immerhin ist die Struktur nicht mehr so kryptisch und erinnert an das VCARD-Format.

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Mittwoch, Mai 28, 2008

Vom Hammer und den Nägeln

Some of the largest sites on the internet -- sites you probably interact with on a daily basis -- are written in PHP. If PHP sucks so profoundly, why is it powering so much of the internet?

The only conclusion I can draw is that building a compelling application is far more important than choice of language.

Quelle: Coding Horror: PHP Sucks, But It Doesn't Matter

Wie sagt ein Kollege immer so schön? Es kommt nicht auf die Grösse des Hammers drauf an, sondern wie man damit nagelt ... Übertragen wohl: Es kommt nicht auf die Grösse des Hammers drauf an, sondern auf das, Haus, das man zusammennagelt. Oder so ...

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Dienstag, Mai 27, 2008

Folgt auf ePUB das Chaos?

So mancher Studierender hat in den letzten Jahren wohl für eine Erlösung vom unausgereiften und übereilt eingeführten elektronischen Prüfungsadministrationsprogramm ePUB gebetet (das unikumberichtete). Und siehe da: Die Studierenden werden erhört. Das Zentrum Lehre hat bei den Informatikdiensten das Projekt «Kernsystem Lehre», kurz KSL, in Auftrag gegeben. Es soll die verschiedenen Informatiklösungen des Zentrums Lehre wie das ePUB und das veraltete elektronische Vorlesungsverzeichnis eVUB zu einem System zusammenfassen. Die Hörraumverwaltung soll ebenfalls über das neue Tool laufen. Zusätzlich soll das KSL über eine Schnittstelle zur Studierendenverwaltung und möglicherweise zur Lernplattform ILIAS verfügen. Kurz: Anstatt des bisheri-gen Programm-Wirrwarrs neu nur noch ein System für alle Abläufe, die irgendwie mit der Lehre an der Uni Bern zu tun haben. «Das KSL wird den Studierenden, aber auch dem Zentrum Lehre vieles erleich-tern», sagt Schwab-Bertelletto. Auch beim Personalaufwand sind laut Schwab Einspa-rungen möglich: «Der Support des KSL wird nicht so aufwändig sein wie derjenige des ePUB.» Die Studierenden und Dozierenden müssen sich aber noch etwas gedul-den: Die Inbetriebnahme wird frühestens 2010 abgeschlossen sein. Offensichtlich hat man aus den Fehlern bei der Einfüh-rung von ePUB gelernt: Das neue System soll nicht unter Zeitdruck entstehen.

Quelle: unikum, April 2008, "Keine Spur von gähnender Lehre", S. 7.

Na dann Feierabend. Aus der Sicht eines Software-Entwicklers im Web-Bereich tönt dies ganz klar nach eierlegender Wollmilchsau, unendlichen Verzögerungen und einem klassischen Death March.

Labels: , , ,

0 Kommentare | neuen Kommentar verfassen

Dienstag, Mai 27, 2008

Das ultimative Mantra der Software-Entwicklung

"How will this software get my users laid" should be on the minds of anyone writing social software (and these days, almost all software is social software). [...]

Quelle: It's Clay Shirky's Internet, We Just Live In It

Labels: , , , , ,

0 Kommentare | neuen Kommentar verfassen

Sonntag, Februar 10, 2008

Wie man wirklich gute Coder findet

[...] That company no longer focuses its recruitment on candidates that exactly match previous experience with the required technologies. Instead they focus on finding and employing the smartest and most passionate engineers.

Quelle: The Years of Experience Myth

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Mittwoch, Januar 30, 2008

Produktiv Coden

[...] ever since my first job I've realized that as a developer, I usually average about two or three hours a day of productive coding. When I had a summer internship at Microsoft, a fellow intern told me he was actually only going into work from 12 to 5 every day. Five hours, minus lunch, and his team loved him because he still managed to get a lot more done than average.

Quelle: Fire And Motion

Mit einem solchen Arbeitstag könnte ich mich eigentlich noch arrangieren ...

[...] It took me another fifteen years to realize that the principle of Fire and Motion is how you get things done in life. You have to move forward a little bit, every day. It doesn't matter if your code is lame and buggy and nobody wants it. If you are moving forward, writing code and fixing bugs constantly, time is on your side. Watch out when your competition fires at you. Do they just want to force you to keep busy reacting to their volleys, so you can't move forward

Labels: , ,

0 Kommentare | neuen Kommentar verfassen

Freitag, Dezember 21, 2007

Was macht ein Software-Tester?

The old testers at Microsoft checked lots of things: they checked if fonts were consistent and legible, they checked that the location of controls on dialog boxes was reasonable and neatly aligned, they checked whether the screen flickered when you did things, they looked at how the UI flowed, they considered how easy the software was to use, how consistent the wording was, they worried about performance, they checked the spelling and grammar of all the error messages, and they spent a lot of time making sure that the user interface was consistent from one part of the product to another, because a consistent user interface is easier to use than an inconsistent one.

Quelle: Why Does Vista Suck? Blame Automated Testing

Labels: ,

0 Kommentare | neuen Kommentar verfassen

Montag, Dezember 03, 2007

Die geheimsten Wünsche eines Coders

I wouldn't be bothered all day by marketing folks asking could the forms be mauve, I wouldn't have to worry about the wording of some field label on some feature that no one even knew how to get to, I wouldn't have to deal with icons that were too Anglo-Saxon, too masculine or too feminine, I wouldn't have to worry that some important VP wanted a new button that would confuse 90% of users. I would just write code. [...]

Quelle: Formula Engine Rewrite

Das Ziel:

The engine needed to be rewritten from the ground up, it needed to be made maintainable, it needed to be faster, and it needed to be completely backwards compatible..

Alles tönte super - bis zum letzten Teilsatz. Genau diese Rückwärtskompatibilität hat den OpenXML-Standard krepieren lassen sowie zum Flop Windows Vista geführt. Rückwärtskompatibilität wird Microsoft diese und nächste Dekade das Leben verflucht schwer machen ... Und somit den Entwicklern, die bei Microsoft (und anderen riesigen Software-Unternehmen) arbeiten.

Iris was a lot like most engineering organizations, most of the good work was done by handful of talented people, the others often produced barely functional crap that would need to be cleaned up someday.

Ich habe Lotus Notes noch nie benutzt, doch die Beschreibung der "Notes templates" lässt mich aufhorchen:

Describing how Notes templates work is a difficult thing, there is really nothing else quite like it the software world, but I guess I'd describe Notes templates as sort of like web applications. As a template developer, you must deal with back-end storage issues, you are writing in scripting languages for both the back-end and front-end functionality and rendering stuff, it's sort of like working with ASP, HTML and JavaScript...sort of.

Ich bin mir fast sicher, dass SAP etwas Ähnliches mitbringt ... ABAP und so.

Labels: ,

0 Kommentare | neuen Kommentar verfassen

Dienstag, Oktober 09, 2007

Ruby oder ... Erlang?

What would have made a better comparison is writing a multi-threaded web server in both Erlang and Ruby and see which server is able to deliver the best performance to 10,000 active clients with widely varying download speeds. I'd be willing to bet that Erlang does a better job. No, I wouldn't even suggest writing a 24x7x365 telecom switch in Ruby; as fine as Ruby is, Erlang would win that hands down.

Quelle: Stupid Programming Language Tricks

Labels:

0 Kommentare | neuen Kommentar verfassen

Dienstag, September 11, 2007

PHP5: 2006-13-01 wird nicht mehr akzeptiert

Als ich noch ein junger, unerfahrener PHP-"Programmierer" war (ich brauchte das Geld!), kamen ab und zu solche Konstrukte heraus:

$str_next_month = strtotime($arr_date["year"] . "-" . ($arr_date["mon"] + 1) . "-" . "01");

Das Script nimmt in Kauf, dass bei nicht sachgemässer Handhabung der Wert für den Monat auch einmal 13 betragen kann. In PHP4 meckerte strtotime() nicht gross um und rechnete das Datum kommentarlos auf den auf Dezember folgenden Januar um.

Nun, seit kurzem läuft PHP 5.2.2 auf meinem Entwicklungsserver (Liip und Hostpoint haben das ihre dazu beigetragen) - und bisher hielt sich mein Code tapfer. Bis heute abend.

Zu spüren bekam mein Server diese Fehlprogrammierung ausgerechnet in einer schicken while-Schleife (zu meiner Rehabilitierung die einzige in den knapp 1000 Zeilen PHP-Code). 120 Sekunden lang eine CPU-Auslastung von 100% - yippie! Multipliziert mit den Anzahl Versuchen, den Fehler einzugrenzen ... Heute wurden einige Elektronen zusätzlich verbraten und Schaltungen überbeansprucht.

Was lernen wir daraus?

  • Programmiere keinen Scheiss zusammen! (Y2k reloaded?)
  • Wenn du while-Schleifen schon nicht vermeiden kannst, baue wenigstens Sicherungen ein, z.B. ganz stümperhaft in Form eines Counters

Labels: ,

1 Kommentare | neuen Kommentar verfassen

Freitag, März 30, 2007

Wenn man besser als der Rest codet ...

[...] If Bob really did write almost half of the code, then being responsible for a third or a fourth of the bugs isn’t a sign that he was lazy. It’s a sign that he was at least as disciplined as everyone else.

All of this confirms a theory I have about some companies. If the culture is broken, the fastest way to make enemies is to do more than everyone around you.

Quelle: In software no good deed goes unpunished

Wahrlich eine eindrückliche Anekdote!

Labels:

0 Kommentare | neuen Kommentar verfassen