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: IT, Programmierung, Web-Entwicklung
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: Programmierung, Web-Entwicklung
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: Computer, Funny, Games, IT, Produktivität, Programmierung, USA
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: IT, Programmierung, Web-Entwicklung
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: Anstellung, Arbeitsleben, Bewerbung, IT, Programmierung
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: Funny, Google, IT, Mobilfunk, Mobiltelefone, Programmierung
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: IT, Programmierung, Web-Entwicklung
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: HTML, IT, Programmierung, Web-Entwicklung, XML
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.
Labels: Bug, Funny, Microsoft, Programmierung
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: Firefox, Funny, Programmierung, Web, Web-Entwicklung
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: Computer, IT, Programmierung
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: Computer, Geschichte, IT, Jugend, Programmierung, Schule
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: Programmierung, SVN, Web-Entwicklung
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: Arbeitsleben, Arbeitslosigkeit, Funny, IT, Programmierung, Web-Entwicklung
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: IT, Programmierung, Web, Web-Entwicklung
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: IT, Programmierung, Web-Entwicklung
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: Arbeitsleben, Programmierung, Web-Entwicklung
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):
$ cd <svn-root>
$ svn propedit svn:externals inc
- 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) $ svn update
$ svn ci -m "Added external repository"
Via: svn:externals
Labels: Programmierung, SVN, Web-Entwicklung
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: Programmierung, Web-Entwicklung
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: Arbeitsleben, Programmierung, Web-Entwicklung
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: IT, Programmierung
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: Genetik, IT, Programmierung
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: Mobilfunk, Programmierung, Sunrise, SVN, Web-Entwicklung
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:
- Mac OS X: RegexPlor
- Mac OS X: Reggy
- Windows: RegexBuddy (30EUR)
- Multi-Plattform (AIR): RegExr Desktop
Empfehlungen Dritte
- Online: RegEx Assistant & Tester
- Windows: Regex Coach
Labels: IT, PHP, Programmierung
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: PHP, Programmierung, Web
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: IT, Programmierung
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: Programmierung
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:
Labels: Design, Programmierung, Software, Web, Web-Entwicklung
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: Apple, Betriebssysteme, Mac, Microsoft, Programmierung, Unix
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: IT, Linux, Programmierung, Web-Entwicklung
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: Gesetz, Kriminalität, Linux, Programmierung, USA
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: Programmierung, Web, Web-Entwicklung
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: Programmierung, Web, Web-Entwicklung
Dienstag, Juni 10, 2008
Hex-Editor für Mac OS X
... 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: IT, Mac, Programmierung
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: PHP, Programmierung, Web
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: Bern, Programmierung, Software, Universität
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: Funny, Programmierung, Software, Web, Web-Entwicklung, Zitat
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: IT, Job, Programmierung
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: IT, Programmierung, Software
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: Programmierung, Software
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: IT, Programmierung
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: Programmierung
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: PHP, Programmierung
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: Programmierung
Abonnieren
