Serveral links on how to integrate 3rd Party Libraries into Web DynPro Projects (e.g. Hibernate) and how to use a Java Bean Model:

Hibernate
complex Java Beans
Changing a Java Bean Model
Jar of a Java Bean Model
Including Rhino as Example of an external library
Exernal Jars in Web DynPro

Werbung

Endlich ist es soweit, das iPhone ist in Deutschland angekommen und ich war der erste, der es in Friedrichshafen, der T-City gekauft hat. Da es heute extrem kalt und stürmisch in Friedrichshafen ist, haben mich die nette Angestellten im T-Punkt sogar schon um 8 Uhr in den Laden gelassen.

Der Sturm 2Der Sturm kommt

T-Punkt um 7:50 Uhr

T-Punkt in der T-City

Nach dem Einlass habe ich gleich den Vertrag Complete M abgeschlossen. Die ganze Prozedur hat vielleicht 20 Min gedauert und ich war um 400 Eur ärmer… Zumindest kann man heute die Anschlussgebühr von 25 Eur sparen!

Das erste iPhone in der T-City

Das erste iPhone in der T-City

Jetzt bin ich zuhause und werde das Gerät in Betrieb nehmen:

Lange hat’s gedauert

Hab die Sim-Karte ins iPhone eingesteckt, mit Hilfe dieser kleinen Nadel, die dabei ist:

Die denken echt an alles.

Dann das iPhone ins Dock gesteckt, iTunes startet automatisch und man wird durch die Aktivierung geführt (hat nichtmal eine Minute gedauert):

Aktivierung erfolgreich!

Und Boom – das iPhone ist aktivert und synchronisiert mit allen Email Accounts, Adressen usw.

Aktivierung erfolgreich!

Mehr Bilder und Berichte heute abend, ich geh jetzt mal zur Arbeit.

Meine iTunes Bibliothek befindet sich aufgrund ihrer Größe auf einem externen Laufwerk.

Damit ich in iTunes nichts konfigurieren muss, richte ich mir nach einer Neuinstallation von MacOS X immer über das Terminal einen symbolischen Link ein, der folgendes Format hat.

cd ~/Music
ln -s [Order auf externem Laufwerk] iTunes

Bei mir sieht der Link dann so aus:

ln -s /Volumes/Media/iTunes/ iTunes

Open Terminal
enter pico ~/.profile

GRAILS_HOME=~/Library/grails
PATH=$PATH:$GRAILS_HOME/bin

Save with Ctrl+X, Y
Close and open new Terminal window

Kommt ziemlich selten vor.
Faithless – i Won’t Stop (iTunes muss installiert sein).

Ich habe bei meinem Samsung LCD Fernseher das Problem gehabt, dass er automatisch den Kontrast runterreguliert hat. Wenn das passiert, gibt der Fernseher ein relativ lautes Summen von sich.

Diese automatische Kontrastregelung kann man allerdings über das Service-Menü ausschalten, welches man folgendermaßen aufruft:

Achtung! Hier kann man sein Gerät ruinieren! Also mit bedacht die Werte ändern. Die eingestellten Werte vor dem Verändern notieren!

Gerät mit der Fernbedienung ausschalten
Info-Taste drücken
Menü-Taste drücken
Mute-Taste drücken
Gerät einschalten

Der Chef Editor der Technology Review erklärt es uns.

Warum sollte man Sckriptsprachen einsetzen?

7 Patterns

Alleskleber(superglue)

Gut geeignet für flexible Applikationslayer: View und Controller
Beispiel:
XML Parser, Java Networking, Swing Widget -> RSS Reader

Weiches Herz

Fachliche Modelle auslagern
Rules Engines groovyrules
GroovyShell in Java einbinden: GroovyShell shell = new GroovyShell(Binding);

Endoskopische Operation

Minimal-invasiv
Im laufenden System Änderungen machen oder nachvollziehen.
Skripte ausführen in der VM, in dem das Produkt läuft
Wertvoll für Produkt-Support, Fehleranalyse, Hot-Fixes, Notfälle
Alles was man hätte programmieren können, kann man auslösen.
Emergency-Fix!
Groovy-Console

Bsp.: Live-Groovy Servlet (ULC Admin Console)
DBConnection Wrapper
def ds = Config.dataSource
ds.connection = new DebugConnection(ds.connection)

users = servletContext.getAttribute(‚users‘)
bad = users.findAll{ user -> gpath}
servletContext.setAttribute(‚users‘, users-bad)

Kluge Anpassung (Smart Configuration)

Ausführungslogik in Konfiguration
erstaz für xml-konfigurationen
Referenzen zwischen den verschiedenen XML Files (FrontIntegrator)
Typischer Anwendungsfall für DSLs, Groovy Builder, Grails plugins

Grenzenlose Offenheit

Jede Zeile Code wird änderbar
groovyblogs.org

Heinzelmännchen

Repetitive Aufgaben automatisieren
Automatisierter Build unbedingt notwendig für o4b!!
Verbindung Groovy und Ant
AntBuilder
ant.mail() (Mailtask)

Grails (under the hood mvc)
www.svenhaiges.de
Actionality

von ROR inspiriert. Convention over configuration, DRY
Java/Groovy|J2EE
Spring MVC Framework

Eckpfeiler
Spring, Hibernate, SiteMesh(Layouting)

Eigene Hibernate Mappings für Legacy-Schema
Domainmodels
Dependency Injection

Model
Domain-Klassen (grails-app/domain)

class Podcast{
String title
String feedURL
}

Erzeugung grails creat-domain-class

1:n
def hasMan = [episodes:Episode]

Persistenz per GORM
u.a. Dynamic Finders
Podcast.findByTitle(„“) -> wird alles automatisch generiert
findAllByTitleLike
Auch direkte HQL Abfragen möglich

Constraints

static constraints = {
title(size:1..50)
feedURL(unique:true}
}

Definition per Closure

grails-app/conf
DB-Konfiguration
Grails Console

View
GSP, dynamic tag libraries
Groovy Server Pages
Dynamic Tag Libraries
Sitemash
<meta name=“layout“ content=“main“/>

Controller
generierung möglich grails generate-controller
einfacher Zugriff auf Parameter, Session, Flash

Nicht jede Seite braucht einen Controller. Ein Controller gilt für eine Domänen-Objekt!
render()-methode bietet die möglichkeit für ajax

Services: Businesslogik auslagen

Features:
Unit und Functional Testing
Funktionales Testing mit Webtest
grails run-webtest
Quartz Jobs
Auch komplett integriert
Grails Plugins

AJAX mit Grails
Scriptaculous, YahooUI, Dojo werden unterstützt und automatisch angepasst
Podcasts zu groovy und grails
hansamann.podspot.de/rss
infoq.com: getting started with grails
http://tinyurl.com/y3zmos

Für kleinere Teams ideal
Eclipse Plugin – Probleme mit Scaffolding und Locking

Zeichenkodierung ->  wikipedia
iso-8859-1 -> Latin1 unter Linux
cp1252(iso8859+€)

Möglichkeiten für Umlaute in Java:
Unicode Escape ü -> \u00F6

Richtiges Source-Encoding verwenden
javac -encoding UTF-8
bei ant : encoding=“UTF-8″
bei maven: <compilerArguments> <encoding>
Ab unicode 3.1 mehr als 2 Byte, deshalb jetzt 3 Byte
unicode.org version 5.0

UTF-8 bildet Unicode ab, ist nicht Unicode!
Java 5 -> Unicode 4.0
FileReader liest die Datei im Encoding von der Maschine, auf der das Programm läuft
Character.toChars()-> wenn 2 char, also 4 bytes -> Java 5
Default Encoding mit file.encoding property. allerdings nicht zur laufzeit änderbar

!!!.property Dateien MÜSSEN in iso-8859-1 sein java.util.properties!!!
native2ascii

xml
in xml deklaration immer das encoding angeben und datei immer in utf-8 speicher

csv
cp1252

cmd chcp

Datenbank

Mozilla Plugin: Live HTTP Headers

Auf Serverseite wird beim Interpretieren einer Anfrage standardmäßig immer iso-8859-1 verwendet.
Man kann dem Server aber sagen, was das encoding sein soll.
request.setCharacterEncoding(„UTF-8“)  (z.b. mit einem Filter machen) (haben wir das so?)
schoenitzer.de/encoding.html
JSR204
Es gibt eigentlich keine universelle Möglichkeit um herauszufinden, welches encoding eine Datei hat, weil 2 encodings genau die gleiche datei liefern können.

Character Escaping als Möglichkeit, zwischen verschiedenen Encodings zu konvertieren
Unterschied zw. UTF-8 und UTF-16
UTF-8: 1,2,3,4 Bytes überprüfung, ob es zu einem Byte auf wirklich ein Zeichen gibt.
UTF-16: 2 oder 4 Bytes (braucht deshalb mehr zeichen als utf-8)
UTF-32: 4 Bytes

Bei Schnittstellen sollte man dafür sorgen, dass auch nur die Sachen reinkommen, dieauch akzeptiert werden.

Nächste Seite »