Desktop-Apps are dead?
vom 8. April 2007I recently found a interesting story on digg from neosmart.net. He mentioned, that desktop-apps still greater, better, smarter and a lot more fun to code. He refers to a article from Paul Graham in which he wrotes that Microsoft is dead. Both articles has a little bit of truth in it, but most of them is not to take serious.
Microsoft is not dead at all. Sure, web-applications like GMail, Writely and others bring normal desktop-applications to the web, thanks to AJAX, Javascript and new browsers. But the browser can't replace the desktop, there are to many restrictions by the browser. So keep it low, the web2.0-hype seems like another dot-com-bubble.
In the neosmart.net-article I read some lines which makes me think "that guy has no clue about modern programming-techniques":
One other point that Ryan makes is that desktop applications “look uglier.†Sorry - but where`s the evidence? To make a .NET program look decent and have a great GUI before there was ever WPF and XAML (the two technologies that Ryan rightly states are redefining the concept of UI) it doesn`t take HTML, CSS, color theory, and psychology. You just have to drag controls onto a form in some sort of slightly-logical manner, and it`ll be far more usable than an entry-level PHP application with some half-baked CSS job (and tons of tables to boot) - with a hell of a lot less work.
Table-Layouts are gone since a long time and dragging som controls on a form is not pretty neat. Desktop-applications have its advantage in conformity and default layout. If I use a new application, I know that the save-option is in the file-menu and the button with the disk on it saves my stuff on disk. But this has nothing to do with design. On a browser you can create great looking layouts with no effort.
The web-technologies are complex and there are many of them (Javascript, CSS, all the server-side scripting-languages, file- and data-formats like XML, RSS, RDF, YAML and so on...), but this is fun for me (personally); I love learning new stuff, not to stuck on old 10 year old habits.
It`s infinitely more enjoyable to build a desktop product than it is to make its web equivalent.
You can't make a "web equivalent", web-developing is quite different from desktop-programming. Sure, there are a lot of simularities, but you simply can't put some "web2.0-magic" on a desktop-app to run in a browser. The approach is completely different. On web-applications you have to think about many other factors like security, because the whole world can use your web-app. And thats the great thing about the web-development: The users response in comments, access-statistics and more. On a desktop-applications you only have the number of downloads or the number of sold licenses to control woh many users mya use your application.
Kommentar schreiben,
del.icio.us,
Atomare Schockwelle
vom 7. April 2007
Der Großvater unter den Bloggern, Jörg Kantel (auch bekannt als "Der Schockwellenreiter"), hat ein kleines Büchlein zum Thema RSS(1.0 und 2.0)-/ATOM-Feeds und RDF geschrieben, welches im O'Reilly-Verlag erschienen ist. Die kurz&gut-Referenz kostet knapp 10 EUR und umfasst 96 Seiten. Das Buch gliedert sich in folgende Abschnitte:
- Was ist RSS?
- Warum RSS?
- Wie kann ich RSS nutzen?
- RSS-Feeds erstellen
- Referenzen
Ich habe schon mehrere von diesen kurz&gut-Büchern, nicht nur vom Tierschutzverein, und ich finde es eine gute Möglichkeit sich einen kurzen Überblick über ein neues Thema zu verschaffen.
Was mich etwas erstaunt, ist das auf dem Umschlag eine Art Eule abgebildet ist, und kein kravattetragender Hund.
Kommentar schreiben,
del.icio.us,
Webserver-Baukasten
vom 5. April 2007Webrick müsste allen Rails-Programmierern ein Begriff sein. Was viele nicht wissen, ist das Webrick eine Art Baukasten für Webserver ist. Die Bibliothek ist seit Ruby 1.8 mit im Standardpaket dabei und enthält ein paar ziemlich coole Features: HTTPS, CGI-Support, Authentifizierung mit htpasswd- und diggest-Dateien, empfangen von Formulardatein, direkter zugriff auf Request und Response, und viele weitere.
Mit ein paar Zeilen Code lässt sich schon das erste HalloWelt in den Browser zaubern:
#!/usr/bin/ruby
require 'webrick'
include WEBRick
class HelloServlet < HTTPServlet::AbstractServlet
def do_GET(req, res)
res.body = "HelloWorld"
res['Content-Type'] = "text/html"
end
end
s = HTTPServer.new(:Port => 8080)
s.mount("/hello", HelloServlet)
trap("INT"){s.shutdown}
s.start
Eine sehr tolle Sache, vorallem für Anwendungen, die eigentlich keinen protzigen Apache benötigen, um simple Ausgabenin den Browser zu setzen. Da ich schon lange eine Art grafische Schnittstelle für das verwalten von SVN-Repositories basteln will, würde sich dies perfekt anbieten: Den selbstgebauten Webrick-Server startet man bei bedarf und stößt über den Webbrowser Ruby-Methoden an, die dann die Arbeiten am Dateisystem erledigen.
Kommentar schreiben,
del.icio.us,
Master of the known universe
vom 5. April 2007
Hab gestern die letzten Seiten von Steve Jobs` Biografie "Steve Jobs und die Geschichte eines außergewöhnlichen Unternehmens" vom Scherz-/Fischer-Verlag gelesen und ich war überrascht. Steve Jobs ist/(war?) ein arrogantes Arschloch, doch irgend wie hat er es geschafft, sich und seine Firmen in drei der wichtigsten Bereichen Film, Musik und Technik auf Spitzenpositionen zu katapultieren.
Ein kleiner Abriss: Steve Jobs fing mit seinem Kumpel Woz an, Blue-Boxen zu basteln (und zu verkaufen), mit denen man die Telefongesellschaften überlisten und umsonst telefonieren konnte. Woz war das Supergenie im Elektronik-Bereich und er war es auch, der den ersten voll funktionstüchtigen PC mit vernünftiger Textausgabe entwickelte. Als die beiden Apple gründeten, brachten sie mehrere Apple-Modelle heraus und Steve hob ab. Niemand (bis auf ein paar Fan-Boys) mochte ihn in der Firma, und alle mieden es mit ihm zu reden, weil er seine Mitarbeiter psychisch fertigmachte. Das ging so weit, bis er dann von seiner eigenen Firma rausgeschmissen wurde. Daraufhin warb er die klügsten Köpfe von Apple ab und gründete eine neue Firma mit dem Namen NeXT. Die lief nicht so recht an und er kaufte die Firma Pixar (nicht wegen der tollen Mini-Clips, sondern wegen der Spezialsoftware und der Hardware, die Pixar entwickelte). Erst später wurde im klar, das es um Filme geht. In den darauffolgenden Jahren wurden Filme wie Toy Story, Findet Nemo, The Incredibles usw. (z.T. mit Disney zusammen) prämiert. Als er dann später wieder bei Apple aufgenommen wurde, kaufte die Firma das Konzept des iPods einer kleinen Firma ab (und ebenso die Tauschplattform iTunes) und ein paar Jahre später lag/liegt ihm die Musikbranche Apple zu füßen (80% der Musikdownloads stammen von iTunes). Steve Jobs hat es immer wieder geschafft, im richtigen Moment zuzuschlagen, und ich denke, als nächstes ist die flächendeckende Verbreitung von Macs an Arbeitsplätzen an der Reihe.
Ich finde es interessant, was so hinter den Kulissen passiert. Jeder kennt den Namen Steve Jobs, aber die wenigsten haben von den genialen Köpfen hinter dem Boss gehört. Mit seinen umwerfenden Präsentationen wickelt er jeden um den Finger, da glaubt man es kaum, das er als Boss ein Tyrann ist. Das Buch ist in meinen Augen sehr objektiv geschrieben und nimmt auch kein Blatt vor den Mund.
Empfehlen würde ich das Buch nur demjenigen, der nicht nur etwas über Apple und Steve Jobs erfahren will, denn in den letzten 200 Seiten geht es hauptsächlich um die Probleme mit (und bei) Disney, Pixar oder NeXT. Wer lieber Filme schaut, sollte sich mal "Pirates of Silicon Valley" aus der Videothek ausleihen.
Ich bin durch dieses Buch nicht zum Apple-Fan geworden (was sich meine Tante vielleicht erhofft hatte :), dennoch nutze ich zur Zeit nur noch Macs. Das liegt aber an dem tollen Betriebssystem OSX, das sich anfühlt (und auch so bedienen lässt) wie ein normales Linux, und sich zudem praktisch (im Sinne von effektiv und unkompliziert) bedienen lässt. Unter Linux bin ich vor lauter Schrauberei oft nicht zum Arbeiten gekommen.
Kommentar schreiben,
del.icio.us,
37signals mag Mac's
vom 29. March 2007Ein sehr schönes Video über die Vorgehensweise bei der Firma 37signals gibts auf der Apple-Seite, Schleichwerbung inclusive :) Wer sich etwas genauer über die Philosophie, die diese Firma verbreitet, informieren will, findet in einem Vortrag von Jason Fried auf der Collaborative Technologies Conference 2007 einige Antworten (unter anderem auch wie sie zu ihrem Namen gekommen sind).
Kommentar schreiben,
del.icio.us,
Gezielte Überforderung und das Handbuch dazu
vom 29. March 2007Heute war die Präsentation von unserem Projektauftrag (Fach Labor für Software-Projekte and project skills). Marc und ich wollten eigentlich gleich als erstes machen, aber es wurde ausgelost; So waren wir als zweitletztes dran.
Präsentiert wurde vor der Medien- und Sozialpsychologin Prof. Dr. Marsden und Prof. Dr. Permantier für technische Fragen. Nach der Präsentation gab es jeweils 10 Minuten lang Fragen aus Sicht des Kunden von den Professoren. Die Fragen schienen mir der angekündigten "gezielten Überforderung" ziemlich passend. Bei weniger guten Präsentationen ging es hauptsächlich um verwendete Vorgehensmodelle, interne Strukturierung usw. Bei besseren Präsentationen wurde tiefer gegraben und kompliziertere Fragestellungen gewählt. Wenn die Präsentation ansich gut war, wurden (in meinen Augen) Lapalien herangezogen, die womöglich die Schlagfertigkeit abtesten Sollten. ("Was ist denn bei ihnen ein 'Mitglied', kann ich da einem Club beitreten?") Ich bin leider auch in eine Falle getreten: Die Frage, wiso kein Handbuch für die Client-Anwendung ausgeliefert wird hatte ich ungefähr mit "Die Anwendung ist zu simpel, als das man ein Handbuch bräuchte" beantwortet. (Das hatten wir ehrlich gesagt nie eingeplant, denn der Client unseres kleinen Spiels besitzt nur ein Eingabefeld und einen "Abschicken"-Knopf. Vermutlich liegt das daran, das ich für ein PC-Spiel noch nie ein Handbuch gelesehen habe). Das gefiel den beiden Professoren nicht und sie bestanden auf das Handbuch. Also sagte ich "Ok, wir haben ja genug Puffer eingeplant, das Handbuch können wir noch einschieben". Das war leider die falsche Antwort.
Aber es gab auch viel konstruktive Kritik, die wir morgen in unseren Projektauftrag einfließen lassen.
Nachtrag: Ganz so mies muss die gestrige Präsentation doch nicht gewesen sein. Marc und ich wurden mit 2.0 bewertet. Jetzt beginnt der Endspurt, bis 0:00 Uhr ist Abgabe des Projektauftrags.
Nachtrag2: 11:53 Uhr, alles abgegeben, fertig für heute.
Kommentar schreiben,
del.icio.us,
LaTeX Müllentsorgung
vom 28. March 2007Ich schreibe gerade wieder an einem etwas größeren LaTeX-Dokument mit mehreren Dateien. Beim "Compilieren" der *.tex-Dateien legt pdflatex selbständig zu jeder Datei mehrere Dateien an, die eigentlich nur hindern. Vorallem dann, wenn das Dokument (die *.tex-Dateien und das PDF) in einer Versionverwaltung untergebracht werden sollen.
Bei vielen Editoren lässt sich hier ein extra Ausgabeverzeichniss anlegen und auch pdflatex selbst hat einen Schalter "-output-directory" dafür. Doch bei TextMate ist das ganze etwas umständlicher einzurichten. Die Hilfe sagt nur:
The latexmk.pl script does all the compiling necessary for things to be right. In order to tell TextMate to use latexmk.pl when compiling, you have to set the environment variable TM_LATEX_COMPILER to have value latexmk.pl.
Leider stand dort nirgends wo man diese latexmk.pl findet und auch spotlight war ratlos. Nach etwas suchen hab ich tief im LaTex-Bundle eine Datei mit dem Namen "latexmkrc" gefunden. Diese enthält alle Parameter für pdflatex und ich setzte den Schalter für das Ausgabeverzeichnis hinten dran. Das funktionierte zwar halbwegs (jetzt waren die Temp-Dateien in dem angegebenen Verzeichnis, UND im Arbeitsverzeichnis).
Also musste eine andere Lösung her: Da TextMate für jeden Befehl (auch ⌘+R für das Compilieren) ein kleines Shell-Script bereitstellt, habe ich dieses etwas modifiziert. Über "Bundles" -> "Bundle Editor" -> "Edit Commands ..." lassen sich diese bearbeiten. Beim TypeSet & View-Befehl hab ich folgendes unten angehängt:
# Cleanup
rm -rf *.log
rm -rf *.aux
rm -rf *.aux.bak
rm -rf *.toc
Damit wird jetzt nach jedem Compilieren das Arbeitsverzeichnis von den hässlichen Log- und Temp-Dateien geleert.
Wenn es dennoch einen elegenten Weg gibt, dann verratet ihn mir bitte :)
Ich heiße Kane ...
vom 21. March 2007![]()
Mein Bruder und ich schauen uns zur Zeit jeden Abend nach der Arbeit/Studium/... eine oder zwei Folgen Kung Fu an. Meister Po und Meister Kan unterhalten sich dabei meist mit ihrem Schüler Kane über alltägliche Dinge des Lebens. Gestern Abend war es wieder soweit:
Kane: Meister, die anderen lachen mich aus. Meister Po: Sehr gut! Es ist schön, wenn man anderen eine Freude machen kann. Du solltest dich darüber freuen.
Ein interessanter Gedanke.
Global Reset
vom 17. March 2007Bei search-this.com bin ich auf einen diskusionswürdigen Artikel gestoßen, welcher ein Problem mit dem globalen Selector "" in CSS anspricht. Die meisten Browser haben Standardwerte für margin bzw. padding bei Block-Elemente wie body, html, p, h1-6 usw. definiert. Diese Werte sind zwischen den verschiedenen Browsern unterschiedlich. Um dieses Problem einfach aus der Welt zu schaffen, habe ich bisher den ""-Selektor verwendet, um zu Beginn alles auf eine einheitliche Ausgangsposition zu setzen:
* {
margin: 0;
padding: 0;
}
Doch was geschieht hier genau? Der Browser arbeitet die CSS-Angaben von oben nach unten ab. Beim "*"-Selektor werden alle Knoten im (X)HTML angesprungen und das Element, welches eines der angegebenen Formatierungs-Attribute besitzt, wird geändert (bzw. die Stilangabe geändert).
Vermutlich wird weiter unten im CSS-File folgendes auftauchen:
h1 {
margin-left: 10px;
padding: 5px 0 10px 0;
/* ... */
}
Somit werden die Werte margin und padding für h1 zwei mal gesetzt. Zudem werden beim Verarbeiten des globalen Selektors margin und padding für Elemente gesetzt, die sowiso schon auf 0 stehen oder die nicht gebraucht werden. Das bedeutet für den Browser mehr Arbeit, sprich und das Rendern größerer Seiten dauert länger.
Was also tun? Gerade bei umfangreicheren Designs ist es zu umständlich, für jedes verwendete Element diese Werte zu setzen. Von programmtechnischer Sicht ist dies eigentlich zu vermeiden und wiederspricht dem DRY-Prinzip. Hier gilt es abzuwägen was wichtiger ist. Die Kommentare im Artikel sind zu dieser Frage auch recht aufschlussreich.
Kommentar schreiben,
del.icio.us,
Hilfe, wo muss ich klicken?
vom 16. March 2007Sachen gibts ...
Als Mouse Rage Syndrom (dt. Maus-Wut-Syndrom) werden Stress-Symptome bezeichnet, die bei PC-Benutzern angeblich durch schlecht aufgebaute Websites hervorgerufen werden können. [...] Die meisten Probanden zeigten angeblich daraufhin ausgeprägte Zeichen von Stress, Bluthochdruck, wütendes Mausklicken und starkes Schwitzen. Die Symptome werden demnach durch langsame und unübersichtliche Websites, nicht verfügbare Dienste, Pop-ups oder Werbebanner hervorgerufen. (Aus Wikipedia, der freien Enzyklopädie)
Hier ein Aufruf an alle Webdesigner: Bitte entwerft und programmiert anständige Webseiten zum Wohle und zur Gesundheit der User, sonst müssen künftig alle Webseiten einem ärztlichen Gutachten unterzogen, und ein Beipackzettel beigelegt werden. :ironie:
Kommentar schreiben,
del.icio.us,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17