Posts Tagged ‘Programmierung’

Mittwoch, 4. März 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 …

Tags: ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Samstag, 3. Januar 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

Tags: ,
Labels: Arbeit

Keine Kommentare | neuen Kommentar verfassen

Freitag, 2. Januar 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

Tags: , ,
Labels: Allgemein

1 Kommentar | neuen Kommentar verfassen

Dienstag, 30. Dezember 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

Tags: ,
Labels: Allgemein

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 30. Dezember 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 …

Tags: ,
Labels: Arbeit

Keine Kommentare | neuen Kommentar verfassen

Montag, 15. Dezember 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

Tags:
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 9. Dezember 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?

Tags: ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Samstag, 22. November 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.

Tags: , , , ,
Labels: Allgemein

Keine Kommentare | neuen Kommentar verfassen

Montag, 27. Oktober 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

Tags: ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 26. Oktober 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());
 }
}

Tags: ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen