Gleich zwei Termine zum Thema Java Concurrency stehen in der Region an:
Java User Group Karlsruhe - "The Secrets of Concurrency"
Mittwoch, 2009-02-11 19:15 Uhr
Dr Heinz Kabutz (PhD CompSci) Author des The Java(tm) Specialists' Newsletter
Ort: Uni Karlsruhe, ATIS, Am Fasanengarten 5, Geb. 50.34, 76131 Karlsruhe, Raum UG102
und
ObjektForum Stuttgart - Herausforderung Multikern-Systeme
Montag, 2009-02-16, 18.30 Uhr
Prof. Dr. Walter F. Tichy Universität Karlsruhe / FZI
Ort: Alte Scheuer, Degerloch
Java User Group Karlsruhe - "The Secrets of Concurrency"
Mittwoch, 2009-02-11 19:15 Uhr
Dr Heinz Kabutz (PhD CompSci) Author des The Java(tm) Specialists' Newsletter
Ort: Uni Karlsruhe, ATIS, Am Fasanengarten 5, Geb. 50.34, 76131 Karlsruhe, Raum UG102
und
ObjektForum Stuttgart - Herausforderung Multikern-Systeme
Montag, 2009-02-16, 18.30 Uhr
Prof. Dr. Walter F. Tichy Universität Karlsruhe / FZI
Ort: Alte Scheuer, Degerloch
Geschrieben von Bernd Eckenfels
in Hardware, Java Programming, Karlsruhe
| Kommentare (0)
| Trackbacks (0)
Ich bin auf der Suche nach (bezahlten) Experten im Bereich JbossMQ. Wir haben uns natürlich zuerst an RedHat gewannt mit unserer Anfrage. Die Annahme war, wir könnten uns eine Fragestunde mit einem der Entwickler kaufen (für eine spezifische 4.2 JBoss Version). Leider bietet RedHat diese Option nicht an. Deswegen haben wir uns sogar überlegt eine entsprechende Partnerschaft mit Support Vertrag abzuschliessen. Leider würde uns auch die nicht ermöglichen unsere bisherige Release Stratagie weiterzufahren, mal ganz abgesehen davon dass wir erheblichen Zusatzaufwand (Arbeit, Geld) für die Kundenlizensierung aufbringen müßten. Effektiv wäre dies ein embedded kommerzielles Produkt, was wir uns damit einhandeln würden.
Diese unflexiblen Haltung ist eine Enttäuschung für uns. Es sieht danach aus, dass RH sich für dieses Vorgehen entschieden hat aus der Angst mit bezahltem Support für Jboss.org sich das Geschäftsmodell für JBoss.com kaputt zu machen. Diese Strenge Trennung zwischen den Produkten und die Distanzierung von der Community war mir so bis dahin noch nicht bewusst geworden.
Aus dem Grund suche ich jetzt Entwickler (idealerweise Commiter) die sich mit JBossMQ auskennen (konkret geht es um das bekannte Problem dass MDBs sich aufhängen). Wir bezahlen nach Aufwand, bitte direkt Kontakt mit mir aufnehmen.
Diese unflexiblen Haltung ist eine Enttäuschung für uns. Es sieht danach aus, dass RH sich für dieses Vorgehen entschieden hat aus der Angst mit bezahltem Support für Jboss.org sich das Geschäftsmodell für JBoss.com kaputt zu machen. Diese Strenge Trennung zwischen den Produkten und die Distanzierung von der Community war mir so bis dahin noch nicht bewusst geworden.
Aus dem Grund suche ich jetzt Entwickler (idealerweise Commiter) die sich mit JBossMQ auskennen (konkret geht es um das bekannte Problem dass MDBs sich aufhängen). Wir bezahlen nach Aufwand, bitte direkt Kontakt mit mir aufnehmen.
Es ist immer wieder interessant die Analysen von Dan Dyer zu lesen. Er ist der Kopf hinter Java library uncommons-math, die insbesondere brauchbare Alternativen für Zufallszahlengeneratoren liefert.
int[] vals = new int[8];
for (int i = 0; i < 1500; i++)
vals[new Random(i).nextInt(8)]++;
System.out.println(Arrays.toString(vals));Dass dieser Code "falsch" ist weil er jeweils einen neuen PRNG erzeugt ist offensichtlich, warum es aber keinerlei vernünftig verteilte Zufallszahlen liefert (trotz den unterschiedlichen Seeds) ist eine ganz andere Sache, die er in seinem Artikel gut beschreibt.Unknown state 0. Please contact the creator of my caller ..impl.SHCInitiatorProcessor.init(SHCInitiatorProcessor.java:155) and tell her/him to please use some states that do not make me sad. This warning has no further impact.
Die IBM JVM unterscheidet sich in einigen Aspekten deutlich von der Sun JVM. Im Bereich Betrieb gibt es eine ganze Reihe von Features die im IBM Java Diagnostics Guide (5.0, 6.0) zusammengefasst sind. Einen Bereich - den Java Heapdump - möchte ich hier mal näher beleuchten:
Die IBM JVM kennt den klassischen Java Heap Dump, also einen Abzug der Java Objekte im Speicher. Diese Heap Dumps gibt es in verschiedenen Formaten. IBM unterstützt eine Textvariante und das sogenannten Portable Heap Dump Format, eingeschaltet mit -Xdump:heap. Problem ist, dass es nur von IBM Analysetools ausgewertet werden kann. Einer der besten freien Heap Dump Betrachtern ist das von der SAP gestiftete Projekt Eclipse MAT. Im Sun Umfeld sind diese Heap Dumps im HPROF Binary Format. Das Memory Analyser Tool kann deswegen Dumps von Sun, SAP und HP VM lesen. Gerade hat aber IBM ein Eclipse Pluging bereitgestellt, den IBM DTFJ Adapter. Dieses Plugin der den MAT um Import Möglichkeiten erweitert kann aber das PHD Format nicht verarbeiten.
Die Java spezifischen Heap Dumps haben ein Vorbild: die Speicherabzüge (Core Dumps) der Betriebsysteme. Core Files oder Dr.Watson Logfiles werden angelegt wenn eine Anwendung eine kritische Ausnahme verursacht (z.B. Zugriffsschutzfehler). Im Falle der IBM VM kann man solche Core Dumps aber ebenfalls für die Analyse von Java Heaps verwenden. Die von IBM genannten System Dumps werden mit der -Xdump:system option bei der VM eingeschaltet.
Wenn ein Core Dump stattfindet (entweder bei OutOfMemeoryErrors, bei Signalen, einem echten JVM Crash oder bei frei definierbaren Events) so wird dieser im System spezifischen Format in ein File geschrieben. IBM liefert ein Tool mit das sich jextract nennt (und im JRE Unterverzeichnis des SDK zu finden ist). Man muss dabei die jextract Version direkt aus dem verwendeten JRE nehmem (insbesondere auch auf dem Rechner auf dem der Coredump erzeugt wurde). Dies packt den aufbereiteten Core Dump zusammen mit systemspezifischen Details (z.B. Kopien der Symbole in den Libraries) in ein ZIP File.
Dieses bearbeitete ZIP File kann direkt in den MAT (mit IBM Update) importiert werden. Meiner Erfahrung nach klappt dies nur, wenn jextract keine Warnung oder Fehler gemeldet hat. Der Ansatz auf dem Produktivsystem den Dump vorzuverarbeiten finde ich ganz geschickt, denn nicht immer hat der Entwickler Zugriff auf ein System mit vergleichbarer Kapazität. Übrigens kann dieses ZIP auch von dem IBM Diagnose Tool Framework for Java verarbeitet werden, so kann man Analyseprogramme die den Heap durchsuchen auch direkt in Java schreiben und auf dem Produktivserver ausführen.
Die IBM JVM kennt den klassischen Java Heap Dump, also einen Abzug der Java Objekte im Speicher. Diese Heap Dumps gibt es in verschiedenen Formaten. IBM unterstützt eine Textvariante und das sogenannten Portable Heap Dump Format, eingeschaltet mit -Xdump:heap. Problem ist, dass es nur von IBM Analysetools ausgewertet werden kann. Einer der besten freien Heap Dump Betrachtern ist das von der SAP gestiftete Projekt Eclipse MAT. Im Sun Umfeld sind diese Heap Dumps im HPROF Binary Format. Das Memory Analyser Tool kann deswegen Dumps von Sun, SAP und HP VM lesen. Gerade hat aber IBM ein Eclipse Pluging bereitgestellt, den IBM DTFJ Adapter. Dieses Plugin der den MAT um Import Möglichkeiten erweitert kann aber das PHD Format nicht verarbeiten.
Die Java spezifischen Heap Dumps haben ein Vorbild: die Speicherabzüge (Core Dumps) der Betriebsysteme. Core Files oder Dr.Watson Logfiles werden angelegt wenn eine Anwendung eine kritische Ausnahme verursacht (z.B. Zugriffsschutzfehler). Im Falle der IBM VM kann man solche Core Dumps aber ebenfalls für die Analyse von Java Heaps verwenden. Die von IBM genannten System Dumps werden mit der -Xdump:system option bei der VM eingeschaltet.
Wenn ein Core Dump stattfindet (entweder bei OutOfMemeoryErrors, bei Signalen, einem echten JVM Crash oder bei frei definierbaren Events) so wird dieser im System spezifischen Format in ein File geschrieben. IBM liefert ein Tool mit das sich jextract nennt (und im JRE Unterverzeichnis des SDK zu finden ist). Man muss dabei die jextract Version direkt aus dem verwendeten JRE nehmem (insbesondere auch auf dem Rechner auf dem der Coredump erzeugt wurde). Dies packt den aufbereiteten Core Dump zusammen mit systemspezifischen Details (z.B. Kopien der Symbole in den Libraries) in ein ZIP File.
Dieses bearbeitete ZIP File kann direkt in den MAT (mit IBM Update) importiert werden. Meiner Erfahrung nach klappt dies nur, wenn jextract keine Warnung oder Fehler gemeldet hat. Der Ansatz auf dem Produktivsystem den Dump vorzuverarbeiten finde ich ganz geschickt, denn nicht immer hat der Entwickler Zugriff auf ein System mit vergleichbarer Kapazität. Übrigens kann dieses ZIP auch von dem IBM Diagnose Tool Framework for Java verarbeitet werden, so kann man Analyseprogramme die den Heap durchsuchen auch direkt in Java schreiben und auf dem Produktivserver ausführen.
Immer mal wieder erreichen mich seltsame Blindbewerbungen. Ab und zu frage ich sogar nach, woher denn die Annahme stammt, ich würde Stellen anbieten. Bisher habe ich noch nie eine Reaktion erhalten. Deswegen nehme ich mir die Freiheit das Anschreiben einer solchen Blindbewerbung hier zur Unterhaltung wiederzugeben. Zum besseren Verständnis habe ich meine Gedanken eingefügt :)
Sehr geehrte Damen und Herren,
ich bewerbe mich bei Ihnen als Java/J2EE-Entwickler. Nach jahrelangem Studium [ohne Abschluss] mit Schwerpunkten Künstliche Intelligenz und Computergrafik und mit breit angelegter Informatik-Bildung, habe ich mich entschieden, meinen Schwerpunkt einer angehenden Arbeitstätigkeit im Java-Umfeld zu suchen.
Ich bin qualifiziert, die von Ihnen [nicht] angebotene Tätigkeit auszuüben, da ich bereits während meines Studiums Erfahrungen mit der Konzeptionierung und Realisierung von Software-Projekten, in Gruppen mit jeweils mehreren Personen [Ah, da hat doch Tatsächlich jemand die Seminare und Übungen besucht] gemacht habe. [Ich habe sonst keinerlei Praxiserfahrung]
Während des Studiums habe ich immer wieder mit Java programmiert, zumeist Applets [entsprechend Umfanreich waren diese Gruppenprojekte]. Bis vor kurzem befand ich mich in einer Java-Weiterbildungsmaßnahme [denn ich muss trotz Studium mich vom Arbeitsamt aushalten lassen], um die ich mich selbst seit langem bemüht habe [in der Zeit hätte ich sonst arbeiten müssen], da zum einen in Stellenangeboten frequentiert nach Java-Programmierern nachgefragt wurde, andererseits Java eine mir leicht zur Hand gehende Programmiersprache in Erinnerung geblieben war. [Ist zwar schon Jahre her, aber wenn es sonst keine Jobs gibt...]
Ich freue mich, wenn Sie mich zu einem Vorstellungsgespräch einladen würden. Für Rückfragen - auch per E-Mail - stehe ich Ihnen gern auch kurzfristig zur Verfügung.
Mit freundlichen Grüßen
Name der Redaktion bekannt
Ich hatte ja schon öfters darüber geschrieben, dass Microsoft für die kommenden Generationen des Visual Studios und letztendlich auch für die Entwicklung auf dem .NET Stack die modellgetriebene Software Entwicklung verstärken möchte.
Dabei setzen sie auf textuelle und grafische DSL, und ein intelligentes Repository das beide verknüpft. Bei Martin Fowler (Bliki) gibt es einen Artikel (engl.), der den aktuellen Umfang von Projekt Oslo gut beschreibt.
Dabei setzen sie auf textuelle und grafische DSL, und ein intelligentes Repository das beide verknüpft. Bei Martin Fowler (Bliki) gibt es einen Artikel (engl.), der den aktuellen Umfang von Projekt Oslo gut beschreibt.
In einer Panik-artigen Aktion hat Sun einige neue Features gesammelt und als Update für Java 6 im Project Update-N oder Update 10 zusammengefasst. Darunter fallen Verbesserungen für die Installation (Inkrementeller Download), Beschleunigung von Grafik und Swing und ein neues Java Plugin (für Applets).
Am 15. Oktober fand dann die FCS statt, das Java SE 6 Update 10 ist jetzt zum Download verfügbar. Ich bin mal gespannt wie viele Probleme dieses mal auftreten werden in existierenden Anwendungen.
Interessant ist auch, dass Sun nach Jahren wieder (Anfang Oktober) ein JDK für Itanium anbietet. Die 64bit JVM wird für Linux und Windows angeboten. Im Bereich Tooling (VisualVM, JavaDB) und Plugin (Applet) sowie im Bereich Multi Media (Linux Alsa Sound) existieren allerdings starke Einschränkungen. Eignet sich so nur für den Server Einsatz. HP dürfte mit seiner JRE für IA64 aber deutlichen Optimierungsvorsprung haben.
Update: InfoQ hat einen interessanten engl. Artikel.
Am 15. Oktober fand dann die FCS statt, das Java SE 6 Update 10 ist jetzt zum Download verfügbar. Ich bin mal gespannt wie viele Probleme dieses mal auftreten werden in existierenden Anwendungen.
Interessant ist auch, dass Sun nach Jahren wieder (Anfang Oktober) ein JDK für Itanium anbietet. Die 64bit JVM wird für Linux und Windows angeboten. Im Bereich Tooling (VisualVM, JavaDB) und Plugin (Applet) sowie im Bereich Multi Media (Linux Alsa Sound) existieren allerdings starke Einschränkungen. Eignet sich so nur für den Server Einsatz. HP dürfte mit seiner JRE für IA64 aber deutlichen Optimierungsvorsprung haben.
Update: InfoQ hat einen interessanten engl. Artikel.
Microsoft hatte mit dem Visual Studio schon immer ein starkes Toolset für Entwickler. Im Rahmen der Parallel Extensions for .Net oder der neuen Generation von VS (Oslo) wird noch mehr Wert auf DSL und Parallelität gesetzt.
Genau die Punkte die aktuell die Entwicklergemeinde bewegen. Bleibt auf der Präsentationsseite nur noch das Thema RIA/Browser. Hier ist Microsoft mit Silverlight angetreten. Der Akzeptanz hinderlich sind aber noch Faktoren wie Offenheit oder Plattform (Linux) support.
Bisher gab es ja nur die Silverlight Portierung Moonlight (auf Mono Basis). Für Silverlight 2 kündigt Microsoft jetzt aber Unterstützung für Windows, Linux und Mac (Internet Explorer, Fire Fox und Safari) an.
Daneben vermeldet auch die Eclipse Foundation eine Beteiligung von Microsoft (via Soyatec): die Entwicklung von Silverlight auf Basis von Eclipse Tools soll möglich werden.
Nur mit dieser Öffnung kann sich Silverlight gegen Flash oder Applets etablieren. Für das Java Lager (das immer noch mit JavaFX und Update 10 keine wirklichen Lösungen liefern kann) wird die Luft nun sehr dünn.
Update: der Artikel war nicht als Java vs. .Net gedacht, aber zu dem Thema bin ich grade über einen Artikel (engl.) gestolpert.
Genau die Punkte die aktuell die Entwicklergemeinde bewegen. Bleibt auf der Präsentationsseite nur noch das Thema RIA/Browser. Hier ist Microsoft mit Silverlight angetreten. Der Akzeptanz hinderlich sind aber noch Faktoren wie Offenheit oder Plattform (Linux) support.
Bisher gab es ja nur die Silverlight Portierung Moonlight (auf Mono Basis). Für Silverlight 2 kündigt Microsoft jetzt aber Unterstützung für Windows, Linux und Mac (Internet Explorer, Fire Fox und Safari) an.
Daneben vermeldet auch die Eclipse Foundation eine Beteiligung von Microsoft (via Soyatec): die Entwicklung von Silverlight auf Basis von Eclipse Tools soll möglich werden.
Nur mit dieser Öffnung kann sich Silverlight gegen Flash oder Applets etablieren. Für das Java Lager (das immer noch mit JavaFX und Update 10 keine wirklichen Lösungen liefern kann) wird die Luft nun sehr dünn.
Update: der Artikel war nicht als Java vs. .Net gedacht, aber zu dem Thema bin ich grade über einen Artikel (engl.) gestolpert.
Bin auf dem ThoughtBlogs Planet über den folgenden Artikel (engl.) von Ryan Green gestolpert, und finde den lesenswert:
What is the Role of QA?
Besonders bemerkenswert ist, dass ich beim Lesen des Anfangs dachte "ein QA lauf der keine Fehler findet ist nicht normal, irgendwas findet man ja immer". Dass ich dabei aber implizit schon die eigentlich schädliche Haltung des "nachbohrens" eingenommen habe ist Beweis dafür, dass ich den Artikel lesen musste :)
What is the Role of QA?
Besonders bemerkenswert ist, dass ich beim Lesen des Anfangs dachte "ein QA lauf der keine Fehler findet ist nicht normal, irgendwas findet man ja immer". Dass ich dabei aber implizit schon die eigentlich schädliche Haltung des "nachbohrens" eingenommen habe ist Beweis dafür, dass ich den Artikel lesen musste :)
« vorherige Seite
(Seite 2 von 9, insgesamt 89 Einträge)
nächste Seite »
Layout by Ricky Wilson | Serendipity Template by Carl Galloway | Login
Impressum
Bernd Eckenfels
Mörscher Str. 8
76185 Karlsruhe
bernd-2012@eckenfels.net
Read More

Kommentare