16 Okt 2009 @ 11:56 AM 

Vorwort

Ich interessiere mich in letzter Zeit sehr für das Thema “Cloud-Computing“, vor allem aber für “Google App Engine“.
Die Idee in einer “Adminfreien” Zone zu entwickeln und Google “den Rest tun lassen” besticht einfach.
Das System ist in sich schlüssig und einfach zu verstehen, lediglich einige Einschränkungen sind da.
Vor allem die Entscheidung für BigTable als Datenbank bereitet da ein paar Umstellungsprobleme.
Kein COUNT und AVG mehr in SQL-Queries benutzen zu können ist schon etwas ungewohnt.

Do No Evil

Tu Nichts Böses” ein Leitsatz von Google.
Und weil Google auch nicht möchte, dass jemand anderes Böses tut, hat man diesen Leitsatz mit in die AGBs aufgenommen.
Dort heißt es :

2.2. Your use of the Service must comply with all applicable laws, regulations and ordinances, including any laws regarding the export of data or software. You agree not to use the Service in the design, development, production, or use of missiles or the design, development, production, stockpiling, or use of chemical or biological weapons. You agree not to use the XMPP API to operate or to enable any telecommunications service or in connection with any applications that allow users to place calls to or receive calls from any public switched telephone network.

Frei übersetzt:

Man verpflichtet sich, Google App Engine nicht zur Entwicklung oder zum Bau von  Raketen, chemischen oder biologischen Waffen zu verwenden.

O No Devil

(Viele halten ja Google’s Leitsatz für ein Anagram für ebenjenes.)

Ich wusste ja gar nicht wie mächtig die Struktur von Google ist, wenn es möglich ist mit einem Hostingservice in der Lage zu sein,
Raketen zu bauen. Tatsächlich habe ich mit dem Projekt AppRocket ein erstes Indiz für eine solche Möglichkeit gefunden.

Auch dieser Ausschnitt bei Google Maps deutet eindeutig daraufhin:
Größere Kartenansicht

P.S:

Ja hier ist Ironie versteckt.

Posted By: tkdmatze
Last Edit: 16 Okt 2009 @ 11:56 AM

EmailPermalinkComments (0)
Tags
Categories: Google, MyWeb
 13 Jul 2009 @ 9:38 PM 

Microsoft

(allein schon diese Überschrift bringt mit bei der Porno-Suchmachine Bing nen Guten Platz)

,ja Microsoft seit “Monkey Boy” Steve Ballmer dort die Leitung übernommen hat, ist die Richtung von Microsoft klar: es gibt keine!

Wie sonst lässt es sich erklären, dass zwischen den Aussagen

Die Zeit der Gratis-Angebote im Internet ist möglicherweise bald vorbei. Davon geht jedenfalls der weltgrößte Softwarekonzern Microsoft aus.

Quelle: Stern

und

Im Kampf um Online-Nutzer holt Microsoft zum Schlag gegen Google. Die erfolgreiche Bürosoftware Office wird es künftig – wenn auch abgespeckt – als kostenlose Web-Version geben. Zudem hat Microsoft eine erste PC-basierte Version von Office 2010 vorgestellt.

Quelle: Stern

gerade mal 9 Tage liegen.

9 Tage zwischen kostenlos gibbet nicht und wir können das auch.

Knol

Kennts einer von euch? Google’s Wikipedia-Killer!
Schwachsinn so etwas zu entwickeln, nachdem eine Seite/Firma diesen Markt dominiert.
Ist auch megamässig gescheitert. Wer braucht schon einen Abklatsch einer funktionierenden Sache?

Ich hab auch letztens folgenden Satz gehört:

Ich hab gestern mit Bing gegoogelt.

Google ist die Suchmachine!
Wikipedia ist die Wissensdatenbank!

Office

Online Office … tolle Idee!
Nur da ist ein Problem, das gibt es 2 Global Player mit viel mehr Einfluss!
Google mit Google Docs und der hervoragenden OpenOffice- und ausreichender MS-Office- Integration und Zoho mit dem Focus auf MS- Office haben den Markt schon erobert.
Beide liefern auch schon Lösungen, welche Unternehmen jeder Grösse ansprechen. Unter anderem Sharepoint- und Exchange Integration. Wobei das Zusammenspiel mit OpenSource-Alternativen um einiges besser klappt. Und beide liefern schon Lösungen, welche die Open- Source- Community unterstützen.

Und da stelle ich mir die Frage: Warum ?
Microsoft hat das ganze verschlafen!
Microsoft hat dem Web wenig gegeben … eher im Gegenteil, mit dem Internet Explorer hat Microsoft das Internet versaut und ad absurdum geführt.
Und dann wollen die ein Online-Office bauen ?
Sicher genau so kompatibel wir .NET

Kompatibilität

Ich hab so ‘nen Schein C# – Crashkurs. Die Pfeife von Ausbilder (Microsoft Zertifizierter Idiot) wollte mir doch echt erklären das

funktioniert auf Windows XP, 2000 und 98 SE

bedeudet, dass es auf den meissten Betriebssystemen läuft.
In einem Windows- Netzwerk haben wir witzigerweise fast nur Zugriffsfehler bekommen, also haben wir bei dem Kurs auf lokalen Verzeichnissen gearbeitet.
Ich dachte mir während dem grössten Teil des Kurses nur … wenn mir das einer erzählen würde, der nicht sein Gehirn bei Microsoft-Kursen verloren hätte, was hätte der wohl gesagt?
Und ich dachte mir

Ich kenne mindestnes doppelt so viele Betriebssysteme wie die Pfeife da vorne

Ich hab weder eine Microsoft-Tasse bekommen, noch irgendwas cooles. Ein Developer- Snapshot “Security Bytes” oder so. Eine DVD mit Screencasts  … im Microsoft eigenen Format … über Probleme die man ohne Microsoft nicht hätte.

Da schau ich lieber im Browser meiner Wahl, und witzigerweise interessiert es Google nicht, welchen Browser ich benutze. auf Youtube Videos von Leuten an, denen man anmerkt, dass sie Ahnung haben.Aber so ein Schein kann durchaus nützlich sein … was wenn mir mal das Klopapier ausgeht?

Fazit

Microsoft sollte es erstmal lernen, vernünftige Standards zu definieren. Die Anwendungen sollten erstmal ein Standard werden.
Google bekämpfen ist keine Lösung, denn das ist nicht das MS- Medium.

Teilt euch darein!

Vista als Betriebssystem (hatte ich bisher nie Probleme mit) , Firefox als Browser (weder Chrome noch IE (aka Sackgang) halten damit mit) und online Google als das Ding.
Das muss man sich nicht bekriegen, sondern Mann genug sein, sich einzugestehen, dass man zu spät da war, dass man Fehler gemacht hat und den Dialog suchen statt den Krieg.
Aber das erfordert eine realistische Selbsteinschätzung …. etwas dass Microsoft leider nie hatte.

Posted By: tkdmatze
Last Edit: 13 Jul 2009 @ 09:38 PM

EmailPermalinkComments (0)
Tags
Categories: MyWeb
 05 Jul 2009 @ 8:13 PM 

Vorwort

Dieses Zitat stammt von Wilhelm Röpke, einem deutschen Ökonomen. Vor über 100 Jahren hat er das gesagt. Und es behält sein Gültigkeit.

Ein Besipiel

Aus Wiki

Agfa war über Jahrzehnte einer der größten europäischen Hersteller von fotografischen Filmen und Laborausrüstungen nach den weltweit führenden Konkurrenten Kodak und Fujifilm.

und gleich danach.

Die Agfa-Gevaert AG verkaufte jedoch Mitte 2004 den unrentabel gewordenen Geschäftsbereich Fotografie, der früher das Kerngeschäft der Agfa AG darstellte und nun unter AgfaPhoto GmbH selbständig ist und einem Insolvenzverfahren unterliegt.

Was ist passiert?

Man hat ganz simpel die digitale Fotografie verschlafen!

Kodak hat auch in benachbarten Marktsegmenten Fuß gefasst und bemüht sich im Bereich der Digitalfotografie und allgemein der digitalen Bildbearbeitung Marktanteile zu gewinnen.

In den 1980er Jahren digitalisierte Fujifilm als erstes Unternehmen ein Röntgenbild und gilt daher als Erfinder der digitalen Radiographie.

Zur Zeit erleben wir eine Weltwirtschaftskrise und der Begriff Insolvenz fällt fast täglich in den Nachrichten.
Märklin, Quelle, Schiesser, Karmann, Hertie und Grundig sind große Namen die fallen.
Namen mit Tradition und Tradition ist ihr Verhängnis.

Mit der Tradition brechen

Wir haben es schon immer so gemacht.

Ironischerweise ist der erste Treffer der Google-Suche das Totschlagargument. [2] Für viele der Firmen war es das Totschlagargument auch der Totschlag. Warum? Weil der Markt, um auf den Titel des Beitrages zurückzukommen, sich gewandelt hat, aber nicht das Produkt. Ein Produkt, das bestehen will, erfindet sich immer wieder neu.

Habt ihr euch schonmal gefragt, warum McDonalds (oder McDoof wie viele sagen) jede Woche eine andere Aktionswoche hat? Damit jeder Besuch bei McDonalds anders ist! Oder anders formuliert einzigartig. Klar gibt es auch Leute, die schon im Vorraus wissen, was sie bestellen, wo sie essen und wie sie bezahlen. Aber Otto Normalesser sieht jedes Mal ein anderes Angebot. Klar ist das auch eine Tradition, aber wie funktioniert die deutsche Gastwirtschaft, auch bekannt als Konkurrenz? Eine Karte die sich nie ändert.

Ich bin IT-ler und da gibt es auch Traditionen.

Wir haben schon immer mit Java 1.4 und Tomcat 5.0.30 entwickelt und sind Experten in der Administration davon.

Klingt bescheuert? SAP , ihr wisst schon die Firma von dem Hoffenheim-Mäzen, bezahlt massig Kohle, um nicht mit den Traditionen brechen zu müssen. SAP, auch bekannt als “Startbildschirm-Anzeigeprogramm, möchte nicht mit Traditionen brechen … logische Folge, für jeden, der das Vorwort gelesen hat:[5]

Am 28. Januar 2009 verkündete die Firma anlässlich der vorläufigen Jahresbilanz, dass wegen der schwierigen Wirtschaftslage 3300 Arbeitsplätze abgebaut werden müssten um die Personalkosten zu reduzieren

3300 Arbeitsplätze. Ist ne Menge! SAP bietet eine wunderbare Software an, die funktioniert. Aber der Markt geht online. Jeder möchte von zu Hause oder mobil arbeiten können, im Browser. Web 2.0 Softwareschmieden mit eventuell geringerer Qualität bekommen die Aufträge, die SAP so gerne hätte.

Anders Sein

Ich wohne in Leipzig und Amazon[3] hat hier 2006 ein Versandlager gebaut. Riesenteil sag ich nur. Und die Leute haben keine Probleme mit der Weltwirtschaftskrise. Amazon hat einen Markt erschaffen, den es vorher gar nicht gab. Und dominiert diesen. Mit Preisen und Möglichkeiten. Wenn mich 1990 einer gefragt hätte, ob ich mir vorstellen könnte ein Buch oder eine CD über das Internet zu bestellen, ich hätte nein gesagt. Heute würde ich ganz klar ja sagen, denn ich kenne Amazon und Ebay und den Sozialen Gedanken dahinter. Wenn ich in ein Elektrofachgeschäft gehe, hoffe ich, und die Hoffnung beruht auf dem Wortteil “fach”, wie vom Fach, dass ich gute Qualität bekomme. Bei Ebay und Amazon schaue ich vor jedem Kauf auf die Bewertungen des Verkäufers. Ich wäre auch vorher nie zu einem Geschäft gegangen, von dem mir ein Freund oder Familienmitglied abrät. Aber die Online-Community ist viel grösser, viel einflussreicher und aussagekräftiger. Deswegen kaufe ich gerne gut bewertete Bücher bei Amazon.

Anders Sein?

Ebay und Amazon haben ihren Platz im Markt gefunden. Aber gerade im E-Business und internetbasierenden Geschäftsmodellen gibt es zur Zeit Firmengründungen ohen Ende. Von Erfolgsstorys wie Xing oder MyMuesli.de können die meissten aber nur träumen. Es gibt so viele tolle Plattformen, die so viele Probleme lösen die keiner hat. Und ebensoviele die Probleme wirklich lösen, aber die keiner kennt. Vor allem Plattformen in traditionellen Gewerben wie dem Bauwesen stossen nicht auf die Akzeptanz, da kaum einer den Vorteil erkennt, und hier sind wir beim Todschlagargument, warum denn ins Internet gehen?

Es hat doch immer gut funktioniert.

Gerade im Web 2.0- Markt gibt es jede Menge Pleiten, es wird nur wenig darüber berichtet, Firmen ohne Tradition.

Anders Sein!

Man kann sich als Firma keinen riskanten Schritt wagen, aber mit geringem Aufwand Alternativen bieten und neue Wege gehen. Im eigenen Haus die Konkurrenz im Auge behalten und welche Strategie diese fahren.

Die Akzeptanz wird sich dann zeigen.

Selbst die Gelddruckmaschine Google hat sich mit Knol einen absoluten Fehlgriff erlaubt, die Strategie gibt Google aber recht. Frühzeitig neue Produkte (Wie viele Google-Produkte sind denn schon aus Beta raus? GMail auf jedenfall nicht.) zeigen, den Kunden diese Produkte ausprobieren lassen und mit dem Kunden zusammen verbessern.

Links

http://de.wikipedia.org/wiki/Agfa

http://de.wikipedia.org/wiki/Totschlagargument

http://de.wikipedia.org/wiki/Amazon.com

http://www.heise.de/developer/SAP-bezahlt-Sun-aeltere-Java-Versionen-aktuell-zu-halten–/news/meldung/121816

http://de.wikipedia.org/wiki/SAP

Posted By: tkdmatze
Last Edit: 05 Jul 2009 @ 08:14 PM

EmailPermalinkComments (0)
Tags
Categories: MyWeb
 25 Jun 2009 @ 9:19 AM 

Vorwort

Der meiste Schaden, den der Computer potentiell zur Folge haben könnte, hängt weniger davon ab, was der Computer tatsächlich machen kann oder nicht kann, als vielmehr von den Eigenschaften, die das Publikum dem Computer zuschreibt. Der Nichtfachmann hat überhaupt keine andere Wahl, als dem Computer die Eigenschaften zuzuordnen, die durch die von der Presse verstärkte Propaganda der Computergemeinschaft zu ihm dringen.

Joseph Weizenbaum, 1972[1]

Jeder hat das Recht, seine Meinung in Wort, Schrift und Bild frei zu äußern und zu verbreiten und sich aus allgemein zugänglichen Quellen ungehindert zu unterrichten. Die Pressefreiheit und die Freiheit der Berichterstattung durch Rundfunk und Film werden gewährleistet. Eine Zensur findet nicht statt.

Grundgesetz Artikel 5

In Deutschland wird zensiert?

Laut dem am 18.06.2009 beschlossenem Gesetzentwurf[2] nur Seiten mit kinderpornografischem Inhalt. Soweit auch nicht schlimm.

Warum aber beschweren sich dann so viele darüber?

Stoppt die Zensur!

Quelle http://www.rettet-das-internet.de/zensursula.htm

Vielleicht ja deswegen:

Unsere gewählten und für uns dadurch “in unserem Sinne” entscheidenden Menschen, haben also teilweise nur wenig oder gar keine Ahnung von den ganzen “Computersachen”. Wo informiert man sich da? Natürlich bei der Presse oder im TV, sagte ja auch schon Weizenbaum, aber bei der Killerspieldebatte ging ja schon genug schief.

Bei den Interviews merkt man den Politikern die stehts gleichen Phrasen mit absurden Versprechern an.

Jederzeit … Massenmarkt … massives Interesse

Wir wissen, dass bei den vielen Kunden, die es gibt, rund 80 Prozent die ganz normalen User des Internets sind. Und jeder, der jetzt zuhört, kann eigentlich sich selber fragen, wen kenne ich, der Sperren im Internet aktiv umgehen kann. Die müssen schon deutlich versierter sein. Das sind die 20 Prozent. Die sind zum Teil schwer Pädokriminelle. Die bewegen sich in ganz anderen Foren. Die sind versierte Internetnutzer, natürlich auch geschult im Laufe der Jahre in diesem widerwärtigen Geschäft”,

DNS-Sperre, das ist was technisches

300.000 – 400.000 Versuche, die man jeden Tag

Quelle: http://www.radioeins.de/programm/sendungen/eine_stunde_zeit/kopf_der_woche/ursula_von_der_leyen.html

Okay da wirds wohl Zeit zur Selbstanzeige

Sehr geehrte Frau Leyen,

ich bin ein versierter Internetbenutzer, im Gegensatz zu Ihnen und ihren Kollegen, mit Ausnahme vllt. von Jörg Tauss, browse ich seit dem Jahr 2000 fast täglich im Internet. Ich habe während der gesamten letzten 9 Jahren noch nie eine Kinderpornoseite (jederzeit Massenmarkt klar …. ) gesehen noch einen Link(das ist etwas wo man draufklickt und dann ‘ne andere Seite aufgeht … bei ihrem Bildungsstand erklär ich das mal lieber) auf ebensolche gesehen. Und ich habe auch Computerspiele gespielt. Sogar E- Mails, Foren und Chats habe ich benutzt. Ich gehöre zu den 40 Millionen Internetbenutzern in Deutschland. Wenn also jeder dieser Benutzer täglich einmal ins Internet geht und eine Seite aufruft, dann sind ihre 400.000 Versuche quasi 1% der Anfragen. Ich wette mit ihnen das nichtmal 1% der Internetbenutzer in Deutschland Kinderporno-Sucher sind. Ich würde sogar mit ihnen wetten, weil ich weiss ich gewinne, dass der Anteile der Bundesbürger die nach Kinderpornos sucht, geringer als der Anteil im deutschen Bundestag ist.

P.S: Jörg Tauss ist ein aktueller Bundestagsabgeordneter und steht unter Kinderporno- Verdacht und wechselt aktuell zur Piratenpartei.

Aber zurück zum Thema, unsere Politiker wollen also unser Recht frei durch das Netz zu surfen beschneiden. Wir haben das Recht aber noch, und  wir wissen dass es in China[3] , Australien[4] , Afgahnistan[5] schwere Fälle von Zensur gibt und minder schwer die Schweiz, Dänemark, Finnland, Schweden und Österrreich das Internet zensieren. (Fehlt ein Land ? Schreibt nen Kommentar!)

Und wo Zensur anfängt, hört sie nicht auf. Ich habe echt Angst davor, dass solche Menschen( bessere Worte kann ich für inkompetemte Politiker nicht finden) durch Vorurteile und schlechte Beratung Entscheidungen treffen, die meine Freiheit weiter beschneiden. Unabhängig sind eure Medien auch nicht.  Bevor eine neue “Aktion wider den undeutschen Geist“(1933) stattfindet, bitte ich jeden einzelnen Politiker, sich mit den Themen intensiver zu befassen, über die ihr entscheidet, oder einfach mal nichts sagen, wenn man nichts zu sagen hat.

Ich wohne in Leipzig und bei uns gibt es die ComputerSpielSchule, gibt es an der VHS Kurse zum Thema Internet. Zwei wunderbare Institutionen die es Eltern und Grosseltern erlaubt, sich mit den “Comuptersachen” unter Anleitung auseinanderzusetzen, Gibt es sowas bei euch nicht oder habt ihr da einfach keinen Bock drauf und versteckt euch lieber hinter lächerlichen und schlecht recherchierten “Fakten”?

Politik muss gefallen und mit dem Web 2.0 gibt es eine Generation Web 2.0 vergesst uns nicht … we watch you

Fazit

und die gaaaanz grosse Bitte: wechsel endlich die Partei bevor wir dich weitere 4 Jahre ertragen müssen.
denn da gehörst du hin

Links

http://nurtext.zeit.de/1972/03/Albtraum-Computer?page=5
http://dip21.bundestag.de/dip21/btd/16/128/1612850.pdf

http://www.heise.de/newsticker/Google-muss-Teile-seines-Suchdienstes-in-China-sperren-Update–/meldung/140780
http://www.heise.de/newsticker/Jeder-australische-Internetzugang-soll-gefiltert-werden–/meldung/117422
http://www.sarsura-syrien.de/islamkritik-20-jahre-haft_1862.html

Posted By: tkdmatze
Last Edit: 25 Jun 2009 @ 10:21 AM

EmailPermalinkComments (2)
Tags
Categories: MyWeb, privat, web 2.0
 16 Jun 2009 @ 7:19 PM 

Vorwort

Ich habe mich die letzte Zeit sehr intensiv mit dem Framework Grails[1] beschäftigt. Und ich muss zugeben ich bin beeindruckt. Dieser Artikel soll eininge der Vor- und auch natürlich auch die Nachteile des “Railsway” nach meiner Sichtweise dokumentieren. Viele der Kommentare lassen sich auf Ruby on Rails, CakePHP, Symfony und andere Frameworks anwenden.

Buzzword-Bingo

Für jeden der das Spiel kennt:

Rapid Application Development(RAD), Model Driven Development(MDD), Best Practises, Spring, The Yahoo! User Interface Library (YUI), Hibernate, Don’t repeat yourself (DRY),Agile Development, Database Migaration, Code Generation, SLF4J, DOM4J, Groovy, Metaclass, Sitemesh, Model View Controller (MVC), Apache Ant, JUnit, Jakarta Commons, HSQLDB, OSCache, Apache ORO,Apache Ivy, Rapid Prototyping,Keep it simple and straightforward (KISS), Single Point of Truth(SPOT),Convention over configuration(COC), Domain Specific Languages (DSL), Scaffolding, Dynamic Finders, Create -Retríeve- Update- Delete(CRUD)

So spätestens jetzt sollte einer Bingo schreien.

Intro Railsway

Um was gehts beim Railsway? Um eins : Geschwindigkeit!
Alles fing an mit einem Video[2].
Ein Webblog in 16 Minuten.
REVOLUTION!
Was schaffen normale Softwarefirmen in 16 Minuten?

  • ein Angebot schreiben? vielleicht
  • ein Pflichtenheft schreiben? nö
  • eine einzige Zeile Code? ganz sicher nicht!

Was ist der Railsway?

Zum einen geht es darum, dem Entwickler möglichst viele Entscheidungen abzunehmen.  Man benutzt einfach diese Sachen, die Standard sind.
Hat jemand von euch schon mal so ein Meeting erlebt?

Persistenz-Schicht(DAO)

  • JDO
  • JPA
  • Hibernate
  • Selbstgeschriebenes SQL (dann noch die Diskussion um Prepared Statements )
  • Dynamisches Selbstgeschriebenes SQL (dann noch die Diskussion um Prepared Statements )
  • SQL-Injection Handling

Views

  • Java Server Pages(JSP)
  • Java Server Pages (JSP)+ Java Standard Template Library (JSTL)
  • Java Server Faces (JSF) und dann die Distribution (MyFaves/IceFaces etc .. )
  • XSS Handling

Code

  • Java 1.4.2
  • Java 1.5
  • Java 1.6
  • Alles Andere

Abhängigkeiten

  • Spring
  • Maven
  • Ivy
  • Guice
  • Eigenproduktion

Sonstige Entscheidungen

  • put the most annoying part of each meeting here

Beim Railsway gibt es solche Meetings nicht mehr. Per Default ist es Hibernate+ Java Server Pages (JSP)+ Java Standard Template Library (JSTL) + Ivy + Java (1.5+) oder Groovy
Okay starten wir … Eclipse ? Natürlich!

Vorher : Create new Dynamic Web Project  …  bla bla bla  … MyProject    … bla bla bla … Jars kopieren …  Buildpath … pom.xml…. oh 16 minuten schon überschritten?
Railsway : grails create.app MyProject … Import existing Project

Model – View – Controller

Dieses Prinzip ist sicher jedem Entwickler bekannt. Bei Grails wird es strikt gefordert und bedankt sich dafür mit viel generiertem Code, der Überstunden erspart.

(M)Modelle

In den meissten Applikation entspricht eine Klasse einer Zeile irgendeiner Tabelle der Datenbank.
Warum also nicht die Tabelle so benennen wie die Klasse?
Diese Frage stellt sich der Railsway einfach nicht, sondern macht es.
Bei Grails entspricht auch jede Klasse einem Problem, einer eigenen Domäne.
Als Beispiel soll fogendes dienen:

class JsecUser {
String username
String passwordHash
String email
static constraints = {
username(nullable: false, blank: false)
email (email:true)
}
def setPassword(word){
passwordHash = new Sha1Hash(word).toHex()
}
}

(M2) Dynamische Mehoden

Mit Grails ist folgendes möglich :

JsecUser user = new JsecUser()
user.setUsername("admin")
user.setPassword("gayheim")
user.password = 'gayheim99'
user.save()

Die Setter in Zeile 2 und 3 haben wir nie geschrieben, sie wurden für uns generiert. Jeder der Eclipse benutzt weiss, dass man Getter und Setter auch in Eclipse generieren kann. Allerdings die die entstehende Klasse inklusive Outline-Ansicht nicht wirklich unterscheidbar nach “wo passiert das Standard-Zeug” und “wo passiert wirklich etwas”, hier hilft Grails die Übersicht zu behalten.

In Zeile 4 sieht es für Java-Entwickler so aus, als würde man direkt auf eine Eigenschaft zugreifen, doch weit gefehlt! Solche Zuweisungen gehen immer über Getter und Setter.

Die grösste Überraschung sollte aber die Zeile 5 darstellen. Alles was dazu benötigt wird, folgt nun.

(C)Persistenz in 0.5 Sekunden

Egal für welches Framework man sich entschieden hat, man konfiguriert das ganze erstmal. Ganz schlecht sind hier die selbstgeschriebenen Lösungen.
Bei Grails kann man mit

def scaffold=true

die normale CRUD-Funktionalität erreichen. Und viel mehr … ein Zauberwort ist hier Dynamic Finders

def user = JsecUser.findByUsername("admin")

ist ein gültiger Ausdruck, obwohl wir die Methode nie geschrieben haben. Alles was benötigt wird, ist eine Klasse, welche wie die Domainklasse + das Suffix Controller heisst und im Ordner “controller” abgelegt wird. Nebenbei hat man durch den Einsatz von Hibernate einen L2-Cache und SQL-Injection-Schutz OnBoard. Standard…….

(V) wunderliche Views

In Grails gibt es eine einfache Regel

/$controller/$action/$param

So würde der Aufruf

/laender/view/deutschland

folgendes bewirken:

  • gehe zum Controller LaenderController
  • führe die Methode “view” mit dem Argument “deutschland”  aus

Für die normalen Aktionen (CRUD ;) ) werden die Views “list”, “create” , “show” und “edit” erzeugt, welche man an seine Bedürfnisse anpassen kann.

Wo ist das Aber?

Grails unterstützt und beschleunigt den kompletten Entwicklungsprozess.
Der Start geht sehr schnell und reibungslos.
Der Railsway erzeugt sehr schnell funktionierende Webanwendungen.

Aber

Das Ganze hat auch seinen Preis :

  • Die Modelle
    • generieren standardmässig alles
    • brauchen im Gegensatz zu handgeschriebenen Klassen mehr Speicher
  • Die Controller
    • generieren auch viel Overhead
    • haben einige tricky Bugs
    • die generierten SQL-Statements sind teilweise suboptimal
    • die generierten SQL-Statements benutzen selten die DBMS-spezifischen Optimierungen
  • Die Views
    • durchlaufen mit Sitemesh und JSP zwei Kompilierungsprozesse

Fazit

  • Mit Grails kann man sehr schnell an ordentliche Ergebnisse kommen.
  • Mit Grails konzentriert man sich auf die wesentlichen Elemente der Entwicklung
  • Mit Grails hält man sich an Standards
  • Mit Grails muss man einen gewissen Overhead einrechnen
  • High-Performance und Optimierung kostet einen Grossteil der Zeit, die man spart

Links

http://www.grails.org/

http://www.youtube.com/watch?v=Gzj723LkRJY

http://adhockery.blogspot.com/2009/06/querying-by-association-redux.html

http://adhockery.blogspot.com/2009/04/when-is-pirate-not-pirate-when-its.html

Posted By: tkdmatze
Last Edit: 25 Jun 2009 @ 10:21 AM

EmailPermalinkComments (1)
Tags
Categories: grails, MyWeb, web 2.0
 07 Jun 2009 @ 10:25 PM 

Motivation

Entscheidungen zu fällen ist eigentlich ganz leicht, die Schwierigkeit besteht immer darin, die richtige Entscheidung zu fällen. Eine Formel, immer die richtige Entscheidung zu treffen kann keiner aufstellen, man kann lediglich die Chance erhöhen, die richtige Entscheidung zu fällen. Als Softwarearchitekt oder Entwickler steht man sehr oft vor Entscheidungen, meisst geht es um die Entscheidung, eine standardisierte oder ein selbstgeschriebene Lösung zu wählen, um ein Problem zu lösen.

Hier sind 6 kleine Schritte, nach denen man viel eher in der Lage ist, eine Entscheidung zu treffen und somit die Chance auf die richtige Entscheidung steigt.

1. Analyse

Jegliche Entscheidung besteht aus einer Wahl zwischen mehreren Möglichkeiten. Wichtig ist hier alle Wahlmöglichkeiten so sehr zu analysieren, dass man für jeden Parameter der Möglichkeiten eine eindeutige  Vergleichsmöglichkeit hat. Bei IT- Projekten sind typische Parameter:

  • Kosten in €
  • Zeitaufwand (aka Kosten in MannTagen)
    • Für die Implementierung
    • Für die Einarbeitung in die fremde API
  • Performance
  • Wartbarkeit
  • Wiederverwendbarkeit
  • Robustheit

2.Akzeptanz

Nun haben wir eine gute Übersicht über die Alternativen. Allerdings sind wir Menschen. Und gerade in der IT beeinflusst eine Entscheidung meisst mehrere Menschen. Jetzt bewerten wir den sogenannten “Kuschel-Faktor”

  • Wie zufrieden bin ich mit jeder Alternative?
  • Wie zufrieden ist das Team mit jeder Alternative?

Es mag witzig erscheinen, aber wie in der Natur lassen sich Entscheider in 2 Kategorien einteilen.

Es gibt die Jäger und es gibt die  Beute.

Bei der Entscheidungsfindung handelt die Beute immer nach dem gleichen Prinzip: Sie hält an altbewährtem fest. Sie fühlt sich sicher in ihrer aktuellen Umgebung und wagt nur geringes Risiko.

Der Jäger hingegen ist offen für neues, akzeptiert Risiken zur Verbesserung und Kostenersparnis.

Die Erkenntnis, zumindestens in der IT, ist allerdings, dass obwohl die eben genannten Definitionen einen anderen Schluss zulassen, das Gesetz der Natur immer noch gilt :

Jäger frisst Beute

Hat man allerdings ein Team aus Beutetieren, wäre es alles andere als die richtige Entscheidung, deren Kuschelfaktor zu ignorieren und revolutinäres zu wagen. Sie würden mit Entscheidungen, mit denen sie nicht zufrieden sind leben müssen,  unzufrieden sein und weniger produktiv. Hat man allerdings alles richtig gemacht und Guy Kawasakys Rat[1]

Hire infected people

befolgt, sind sich immer alle über den Kuschel-Faktor einer Entscheidung einig.

Ein typisches Beispiel dafür ist Java Server Faces, die einen vergöttern es, die anderen verteufeln es. Hier ist es wichtig, dass das gesamte Team hinter der Entscheidung Pro oder Contra steht. Andere Beispiele sind Google oder Microsoft, die polarisieren. Der Pol, an dem das Team steht, ist der Richtige.

3.Die Risiken

Jede Entscheidung trägt die unweigerliche Folge mit sich, die Falsche sein zu können. Das ist auch der Grund, warum so viele Menschen dazu tendieren, Entscheidungen anderen zu überlassen. Macht man sich allerdings die Risiken jeder Möglichkeit bewusst, dann muss man sie nicht fürchten, sondern einkalkulieren.

Die Typischen Kriterien der IT

  • Zeit (In- Time)
  • Qualität (In- Quality)
  • Kosten (In- Budget)

4.Die Vorteile

Hier kommt meisst derjenige ins Spiel, der eine Möglichkeit vorgestellt oder ins Rennen geschickt hat, natürlich muss man seine hohe Meinung respektieren, analysieren und bewerten. Jedes Mitglied des Teams muss erkannt haben, dass ein Möglicher Vorteil eines der 3 eben angesprochenen Kriterien verbessert.

5.Die Freiheit

Jede Entscheidung die man trifft hat Auswirkungen und wenn man eine Entscheidungskette hat, kann es sein, dass Entscheidungen die am Anfang getroffen werden, Möglichkeiten weiter hinten in der Entscheidungskette ausschliessen.

Wenn wir uns jetzt für A entscheiden, können wie nie wieder x-en

Um in der IT zu bleiben, wer sich für .NET entscheidet, wird nie Hibernate benutzen können.

6.Verteidigbarkeit

Wer bis hierhin gelesen und durchgeführt hat, hat eine sehr gute Übersicht über die Fakten der Entscheidung, wie die Entscheidung angenommen wird, welche Vor- und Nachteile sie hat, und welche Wege sie versperrt. Jetzt gibt es nur noch eine Hürde: die Entscheidung mitteilen.

Man muss jetzt schauen, wem man die Entscheiung mitteilen muss. In der IT hat man meisst eine gewisse Kontrollschicht. Dieser kann man entweder Diagramme zeigen oder einfach nur zusichern, dass diese oder jene Entscheiung die Richtige ist. Leider haben vor allem die Vorgesetzten eine eigene Meinung zu jeder Entscheidung und bewerten einen der 5 vorher aufgeführten Punkte besonders hoch. Die Optimisten sehen die Vorteile, die Pessimisten sehen die Nachteile, Freiheit und Akzeptanz sind für andere wichtig. Und die Controller, die Analysten werden mit besonderm Auge auf die Tabelle aus dem Punkt 1 schauen. Die Entscheidung muss jenem, dem die mitgeteilt wird zufriedenstellen und möglichst viele gute Bewertungen aus den ersten 5 Punkten haben.

Entschluss

Geht man diese 6 Schritte  durch, hat man die Möglichkeiten vergleichbar gemacht, kennt man alle Vor- und Nachteile, kennt man die Wege die es einem verbaut und  kennt (in etwa)die Reaktion “nach oben” und “nach unten” auf diese Entscheidung. Das ist eine Formel, die, wie angesprochen nicht immer die richtige Entscheidung hervorbringt, aber die Chance auf ebenejene erhöht.

Links

The Art of the Start

Posted By: tkdmatze
Last Edit: 25 Jun 2009 @ 10:22 AM

EmailPermalinkComments (0)
Tags
Categories: MyWeb, privat
 22 Mai 2009 @ 12:58 PM 

Jetpack

Jetpack[1] ist eine Neuentwicklung der Mozilla Labs, welche die Erweiterbarkeit des Firefox noch weiter vereinfachen soll. Schon jetzt ist Firefox mit seiner schier grenzenlosen Erweiterbarkeit ein Liebling der Webentwickler. Welcher Entwickler kommt noch ohne FireBug[2] zurecht? Welcher Firefoxbenutzer hat nicht AdBlock installiert?

1 Millarde Erweiterungen wurden allein über die Add-On-Seite installiert. Und diese Zahl soll jetzt noch steigen. John Resig,  “Evangelist” bei Mozilla und der Entwickler hinter JQuery[3] wird sich sicher freuen, dass JQuery zur Basis von JetPack gehört.

Wie sieht das ganze aus?:

jetpack.statusBar.append({
   html: "Bam<em>!</em>",
   width: 45,
   onReady: function(widget){
      $(widget).click(function(){
         jetpack.notifications.show( "Booming!" );
         $(jetpack.tabs.focused.contentDocument)
            .find("body")
            .css({backgroundColor:"blue"})
            .animate({opacity:.5});
         });
      }
});

Wer sich schon mit JQuery und/oder der Entwicklung von Extensions eingearbeitet hat, sollte sich schnell zurecht finden.

Chrome

Chrome 2 unterstützt rudimentär Extensions[4]. Klingt gut. Doch ist es auch gut? Fakt ist, dass sich Extensions einfacher entwickeln lassen, als beim Internet Explorer, ein weiterer Fakt ist, dass Google’s System weit mächtiger ist als Opera’s “Userscripts”. Und gegenüber Firefox muss sich das System auch nicht verstecken.

Der grosse Vorteil bei Chrome ist sicher die eingebaute Gears-Engine, mit der man viele Möglichkeiten hat, z.B. Daten lokal zu speichern. Und Google bietet eine einfachere API als Mozilla(ohne Jetpack) an.

Nehmen wir das Beispiel “Bookmark speichern”

Mozilla
var bmsvc = Components.classes["@mozilla.org/browser/nav-bookmarks-service;1"]
                      .getService(Components.interfaces.nsINavBookmarksService);
var ios = Components.classes["@mozilla.org/network/io-service;1"]
                    .getService(Components.interfaces.nsIIOService);
var uri = ios.newURI("http://google.com/", null, null);
var newBkmkId = bmsvc.insertBookmark(newFolderId, uri, bmsvc.DEFAULT_INDEX, "");
Google
chrome.bookmarks.create(url:’http://google.com/’);

[1] JetPack auf Mozilla Labs

[2] Firebug

[3] JQuery

[4] Chrome Extensions

Posted By: tkdmatze
Last Edit: 23 Mai 2009 @ 03:52 PM

EmailPermalinkComments (0)
Tags
Categories: Extensions, Firefox, MyWeb
 06 Mai 2008 @ 6:19 PM 

Für Nicht-Programmierer ist folgendes normal
1 Programmierer > Projekt dauert 2 Wochen
2 Programmierer > Projekt dauert 1 Woche
4 Programmierer > Projekt dauert 1/2 Woche
Programmierer wissen das es nicht so ist,
auch wenn mehr Programmierer weniger Aufwand für den einzelnen bedeuten,
so ist das Zusammenspiel das wirklich schwierige.
Erfahrene Programmierer benutzen CVS oder SVN aber auch da können mehr als genug Probleme auftauchen.
Hier einfach mal ein paar Beispiele wie es gehen kann: Auflösung was gut und was schlecht ist, seht ihr im Spoiler, bitte schaut nicht vorher nach, schaut einfach was ihr gemacht hättet und dann rechnet eure Punkte zusammen Wink

1. Situation

Ihr habt eine Klasse die eine ganz tolle Funktion hat.
Eines Tages schreibt ihr eine viel bessere Funktion die viel tollere Sachen kann
Version 1:

/**
* Ganz Tolle Klasse mit tollen Funktionen<br/>
* <br/>
* History:<br/>
* <uL>
* <li>1.0 erste Version</li><
* <li>1.1 tolleFunktion mit nochTollereFunktion ersetzt</li>
 * </ul 
 *  
 * @author Name 
 * 
 */ 
 public   class  TolleKlasse {
 /** 
      * Macht was ganz tolles 
      *  
      * @author m 
      * @param argument1 
      * @deprecated 
      * @see nochTollereFunktion 
      */ 
 public   void  tolleFunktion( int  argument1){
 // Kompatibilitaetsvariable 
 int  standardargument=0;
nochTollereFunktion(argument1, standardargument);
    }
 
 /** 
      * Macht was viel tolleres 
      *  
      * @author m 
      * @param argument1 
      * @param argument2 
      *  
      */ 
 public   void  nochTollereFunktion( int  argument1,  int  argument2){
 // mache was viel tolleres 
}
}

2. Version

 public   class  TolleKlasse {
 /** 
      * Macht was ganz tolles 
      *  
      * @param argument1 
      * @see nochTollereFunktion 
      */ 
 public   void  tolleFunktion( int  argument1) throws Exception{
 throw   new  Exception("veraltet, benutze nochTollereFunktion" );
    }
 /** 
      * Macht was viel tolleres 
      *  
      * @param argument1 
      * @param argument2 
      *  
      */ 
 public   void  nochTollereFunktion( int  argument1, int  argument2){
 // mache was viel tolleres 
}
}

3. Version

 public   class  TolleKlasse {
 /* 
     public void tolleFunktion(int argument1) throws Exception{ 
     //macht was ganz tolles 
     } 
     */ 
 public   void  nochTollereFunktion( int  argument1,  int  argument2){
 // mache was viel tolleres 
}
}

2. Situation

Das ganze Team benutzt eine Datenbankklasse, ihr findet einen Bug(ein Problem), wenn man ganz bestimmte Abläufe hintereinander ausführt
1. Version

Zitat:

Ihr schaut wer die Klasse zuletzt eingecheckt hat und schreit die Sau wegen seiner buggy Programmierung an

2. Version

Zitat:

Ihr analysiert, bei welchen Abläufen das Problem auftritt.
Ihr schreibt in den Bugtracker(zB Bugzilla) einen Bug an den Autor.

3. Version

Zitat:

Ihr scheisst auf euer Team und schreibt eurer eigene Datenbankklasse ... alle Doof ausser Mama

3. Situation

Ihr sollt schnell ein "neues Feature" Programmieren,
es ist Freitags um 15 Uhr,
die Sonne scheint, es sind 20 C
1. Version

Zitat:

Schnell Programmieren, commit , ich will heim.

2. Version

Zitat:

Ihr sagt, das es nicht schnell, sondern nur ordentlich geht,
sagt man soll einen Bug anlegen,
Features beschreiben,
am Montag werdet ihr dann programmieren und testen

3. Version

Zitat:

Freitag 15 Uhr ? woher haben die meine Festnetznummer ?

Für Programmierer sicher einfach, für nicht-Programmierer evtl auch, da ich es schon frustriert geschrieben habe,
trotzdem hier die Auflösung:

Situation 1:
>1 IDEAL > 10 Punkte
>2 Schrott > 0 Punkt
>3 Absoluter schrott > -10 Punkte
Situation 2:
>2 IDEAL > 10 Punkte
>1 nicht schön, aber auch richtig > 1 Punkt
>3 Absoluter schrott > -10 Punkte
Situation 3:
>2 IDEAL > 10 Punkte
>3 ich werd neidisch >1 Punkt
>1 Absoluter schrott > -10 Punkte
Auswertung :
> 10 Punkte
Charakter: Ihr programmiert sorgsam und gut.
Typische Projekte: Google (egal welches Projekt) , Ubuntu, Ecclipse, WebKit
0- 10 Punkte
Charakter: Ihr müsst noch einiges lernen, ist euch aber egal, hauptsache eure Sachen funktionieren
Typische Projekte: Microsoft Office 2007, JDBC, MySQL
unter 0 Punkte
Charakter: Ihr arbeitet bei Microsoft - Ihr habt Extremen Zeitdruck - Oder ihr seit einfach nur Doof
Typische Projekte: Microsoft Windows Vista, Internet Explorer

Posted By: tkdmatze
Last Edit: 16 Mrz 2009 @ 12:40 PM

EmailPermalinkComments (1)
Tags
Categories: MyWeb
 06 Jan 2008 @ 1:21 PM 

 

Mein kleines Projekt staemmebbcodes  hat sich in einem Jahr sehr entwickelt. Etwa 16.000 Benutzer, 5 Sprachen und und und…

Um da den Ueberblick zu behalten und auch anderen die Moeglichkeit zu geben, mal in meinen Code zu schauen, habe ich mich (endlich) entschieden, mal code.google auszuprobieren. Ein Projekt ist ja schnell angelegt, nun wollte ich es nur noch mit meinem Ecclipse verbinden, um nicht alles Webbasiert zu gestalten.

Und das ging erstaunlich einfach, fuer viele Aufgaben gibt es schon vorkunfigurierte Plug-ins.

Versionsverwaltung

Subclipse ist das erste Plugin, was schon im Handumdrehen konfiguriert ist, man muss nur beachten, das man zum commiten https statt http benutzt. Das wars schon !

subclipse

 

IssueTracker

Mylin ist das zweite Plugin, welches wunderbar mit code.google harmoniert. Auf die entsprechene Perspektive wechseln, Refresh druecken und die Offenen Tasks flattern einem um die Ohren (leider !!).

 mylin

 

Um interessierten das Ausprobieren zu erleichtern, habe ich die XML mit den entsprechenden Ecclipse-Update-Mirrors verlinkt, damit ihr nicht im Web danach suchen muesst.

Evtl hat ja jetzt sogar einer Lust, bei dem einem oder anderen Projekt mitzuarbeiten, vllt sogar bei Meinem.

Posted By: tkdmatze
Last Edit: 06 Jan 2008 @ 01:21 PM

EmailPermalinkComments (0)
Tags
 22 Dez 2007 @ 2:07 PM 

Dies ist ein von trigami vermittelter bezahlter Eintrag Hinweis: Dies ist ein von trigami vermittelter bezahlter Eintrag.

Wie schon Im August ist heute mal wieder das Thema Umzug dran. Aber keine Angst,
nochmal werde ich mir den Stress, quer durch die Republik zu ziehen ersparen
und das ganze nur virtuell machen um die Seite von umzug-easy.de mal genauer unter die Lupe zu nehmen.

Welche Erleichterung das Portal darstellt, um schnell an mehrere Umzugsfirmen zu kommen, habe ich ja schon beim letzten mal beschrieben, doch Knut beschreibt in seinem Blog Gefahren die mir zu meinem Umzug noch gar nicht bewusst waren. Und die ich sicher auch durch die Qualitätssicherung nach dem Umzug vom Team der Seite gar nicht fürchten hätte müssen.

Dann kurz nachdem ich umgezogen bin, passierte folgendes : das Team schickte eine Mail, mit der Bitte das Unternehmen, mit dem ich umgezogen bin zu bewerten: Sauberkeit, Sorgfalt, Pünktlichkeit und Beratung waren 4 der Punkte, in denen man das Unternehmen benoten konnte. Zum Dank bekommt man ein Werbeschlüsselband.

Auf der Unterseite Kundenmeinung kann man einige dieser Bewertungen sehen, wünschenswert wäre evtl, wenn man die Meinungen den Firmen direkt zuordnen kann, um neben dem Preis auch andere Kritierien zur Auswahl des geeigneten Unternehmens heranführen kann. Und ob bzw wie folgender Punkt

Gute Kritiken motivieren unsere Partnerfirmen, 
schlechte führen ggf. zum Ausschluss einer Firma aus unserem System. 

greift kann ich nicht beurteilen, wenn sich man jedoch die Meinungen grob durchliesst, erkennt man schnell,
dass der Grossteil sehr zufrieden war.

Somit bietet umzug-easy einen Rundumservice, der nicht (wie bei den meissten) aufhört, wenn die Provision eingestrichen ist.

P.S: Ich konnte in meinem Fall übrigens nur gute Note verteilen, das Unternehmen (Hoppe ;) ) hat sich sogar bereiterklärt nach dem eigentlichen Umzug eben mit mir zum Baumarkt zu fahren und ne neue Couch zu kaufen. Ging auch sonst alles sehr problemlos.

Posted By: tkdmatze
Last Edit: 22 Dez 2007 @ 02:08 PM

EmailPermalinkComments (1)
Tags
Categories: MyWeb

 Last 50 Posts
 Back
Change Theme...
  • Users » 2
  • Posts/Pages » 30
  • Comments » 6
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight