<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7289501846561173823</id><updated>2012-02-16T18:47:14.381-08:00</updated><category term='Glassfish'/><category term='Management'/><category term='Java'/><title type='text'>BlogFreelenzerAt</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.freelenzer.at/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default'/><link rel='alternate' type='text/html' href='http://blog.freelenzer.at/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dipl.-Ing. Chris Lenz</name><uri>http://www.blogger.com/profile/08163640116009750051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7289501846561173823.post-2144443676280357520</id><published>2012-02-16T15:06:00.001-08:00</published><updated>2012-02-16T15:29:14.040-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><title type='text'>Technologischer Sex-Appeal</title><content type='html'>&lt;p&gt;In der Entwicklung arbeiten wohl immer unteschiedlichste Charaktere, und so sagte mir&amp;nbsp;unl&amp;auml;ngst&amp;nbsp;ein Kollege, er h&amp;auml;tte sich in einer Firma als Java Entwickler beworben, nun ist er jedoch Cobol Entwickler geworden. Er ist froh, dass er dort gelandet sei.&lt;/p&gt;&lt;p&gt;Gerade Unternehmen m&amp;uuml;ssen bei Ihren Produkten den Fokus auf die Nachhaltigkeit ihrer Produkte legen. Nachhaltigkeit ist jedoch in der Softwareentwicklung ein dehnbarer Begriff. Oft mach es hier einen Unterschied in welcher Brache man sich bewegt. Schreibt man Software f&amp;uuml;r mobile Endger&amp;auml;te, kann es schon vorkommen, dass man die Software nicht nur einmal implementiert. Dabei w&amp;uuml;rde man die Nachhaltigkeit in den Konzepten und in Programmiersprachen unabh&amp;auml;ngigen Algorythmen suchen. Bei Legacy Anwendungen w&amp;uuml;rde man die Nachhaltigkeit dann wohl eher in der &amp;Auml;nderbarkeit oder Wartbarkeit vermuten.&lt;/p&gt;&lt;p&gt;Aber gerade bei Legacysystemen kann es vorkommen, dass ein und das selbe St&amp;uuml;ck Code w&amp;auml;hrend seiner Lebensdauer von verschiedensten Personen angegriffen werden muss. Wie kann man dann Mitarbeiter dazu motivieren sich immer wieder in &amp;auml;ltere Codeartefakte einzuarbeiten und diese zu ver&amp;auml;ndern.&lt;/p&gt;&lt;p&gt;Es zeigt sich, dass diese Bereitschaft mit der Zeit einfach sinkt. Es werden immer wieder neue Technologien entwickelt, Sprachen werdern vereinfacht bzw. wieterentwickelt, auch die Entwicklungsprozesse entwickeln sich weiter. Es f&amp;auml;ngt schon bei so banalen Dingen wie einem Sourcerepository an, wo auch schon der Zahn der Zeit nagt.&lt;/p&gt;&lt;p&gt;Potentielle Bewerber suchen sich Ihren Job nicht mehr nur nach den Sozialen- und Intrinsischen- Merkmalen eines Unternehmens aus, nein es spielt mittlerweilen auch schon viel mehr der Technologischesexappeal des Unternehmens eine Rolle.&lt;/p&gt;&lt;p&gt;Wie siehts mit Ihrem Sex-Appeal aus?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7289501846561173823-2144443676280357520?l=blog.freelenzer.at' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.freelenzer.at/feeds/2144443676280357520/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.freelenzer.at/2012/02/technologie-sex-appeal.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/2144443676280357520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/2144443676280357520'/><link rel='alternate' type='text/html' href='http://blog.freelenzer.at/2012/02/technologie-sex-appeal.html' title='Technologischer Sex-Appeal'/><author><name>Dipl.-Ing. Chris Lenz</name><uri>http://www.blogger.com/profile/08163640116009750051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7289501846561173823.post-8407454141923325402</id><published>2011-11-13T10:38:00.000-08:00</published><updated>2011-11-13T10:38:54.137-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Glassfish'/><title type='text'>Run Glassfish V3 as a Service on Ubuntu</title><content type='html'>&lt;p&gt;I have used the &lt;a class="externallink" href="https://blogs.oracle.com/foo/entry/how_to_run_glassfish_v3" rel="nofollow" title="https://blogs.oracle.com/foo/entry/how_to_run_glassfish_v3"&gt;this&lt;/a&gt; article as a basis, and adopted it for my needs. I had the following requirements: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;run as a standalone service &lt;/li&gt;
&lt;li&gt;start on startup &lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;For the blog, I used also root for the user. So start a new terminal and write: &lt;/p&gt;&lt;pre class="bash"&gt;sudo -s
&lt;/pre&gt;&lt;h2&gt;&lt;span class="mw-headline" id="We_have_to_install_a_jdk"&gt;We have to install a jdk&lt;/span&gt;&lt;/h2&gt;&lt;pre class="bash"&gt;sudo apt-get install openjdk-7-jdk
&lt;/pre&gt;&lt;p&gt;or &lt;/p&gt;&lt;pre class="bash"&gt;sudo apt-get install openjdk-6-jdk
&lt;/pre&gt;&lt;p&gt;You can also search for other jdk packages &lt;/p&gt;&lt;pre class="bash"&gt;apt-cache search jdk
&lt;/pre&gt;&lt;h2&gt;&lt;span class="mw-headline" id="Install_Glassfish"&gt;Install Glassfish&lt;/span&gt;&lt;/h2&gt;&lt;pre class="bash"&gt;cd /opt
wget  http://download.java.net/glassfish/v3/release/glassfish-v3.zip
unzip glassfish-v3.zip
rm glassfish-v3.zip
&lt;/pre&gt;&lt;p&gt;Now glassfish is installed at &lt;b&gt;/opt/glassfishv3&lt;/b&gt;! To start automatically at startup, we have to create the following file &lt;b&gt;/etc/init.d/glassfish&lt;/b&gt;. &lt;/p&gt;&lt;pre class="bash"&gt;#!/bin/sh
#
# glassfish init script for Linux 
# Simplest possible case -- no password file, one default domain
# it would be simple to add such options

GLASSFISH_HOME=${GLASSFISH_HOME:-&amp;#34;/opt/glassfish3/glassfish&amp;#34;}

case &amp;#34;$1&amp;#34; in
start)
    $GLASSFISH_HOME/bin/asadmin start-domain
    $GLASSFISH_HOME/bin/asadmin start-database
    ;;
stop)
    $GLASSFISH_HOME/bin/asadmin stop-domain
    $GLASSFISH_HOME/bin/asadmin stop-database
    ;;
restart)
    $GLASSFISH_HOME/bin/asadmin restart-domain
    $GLASSFISH_HOME/bin/asadmin stop-database
    $GLASSFISH_HOME/bin/asadmin start-database
    ;;
\*)
    echo &amp;#34;usage: $0 (start|stop|restart|help)&amp;#34;
esac
&lt;/pre&gt;&lt;p&gt;This starts not only the glassfish server but also the integrated javadb. &lt;/p&gt;&lt;p&gt;To start, stop, restart Glassfish simply run these commands: &lt;/p&gt;&lt;pre class="bash"&gt;sudo /etc/init.d/glassfish start
sudo /etc/init.d/glassfish stop
sudo /etc/init.d/glassfish restart
&lt;/pre&gt;&lt;p&gt;But for a simpler test you can just reboot your system: &lt;/p&gt;&lt;pre class="bash"&gt;sudo reboot
&lt;/pre&gt;&lt;p&gt;Check &lt;a class="externallink" href="http://localhost:8080" rel="nofollow" title="http://localhost:8080"&gt;&lt;a class="externallink" href="http://localhost:8080" rel="nofollow" title="http://localhost:8080"&gt;http://localhost:8080&lt;/a&gt;&lt;/a&gt; if it is running.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7289501846561173823-8407454141923325402?l=blog.freelenzer.at' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.freelenzer.at/feeds/8407454141923325402/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.freelenzer.at/2011/11/run-glassfish-v3-as-service-on-ubuntu_13.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/8407454141923325402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/8407454141923325402'/><link rel='alternate' type='text/html' href='http://blog.freelenzer.at/2011/11/run-glassfish-v3-as-service-on-ubuntu_13.html' title='Run Glassfish V3 as a Service on Ubuntu'/><author><name>Dipl.-Ing. Chris Lenz</name><uri>http://www.blogger.com/profile/08163640116009750051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7289501846561173823.post-8861045365282260432</id><published>2011-10-27T11:00:00.002-07:00</published><updated>2011-11-12T11:54:39.311-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><title type='text'>Spielräume</title><content type='html'>
&lt;p&gt;Spielräume
Spielräume brauchen wir um kreativ zu sein. Spielräume bedeuten jedoch nicht, dass man nicht geführt wird, genau so wenig wie Führung heisst, dass man keine Spielräume haben kann.
&lt;/p&gt;
&lt;p&gt;&amp;#34;Um großangelegte Veränderungen umzusetzteen, müsste darüberhinaus ein breiter Konsens zwischen unterschiedlichen Interessensgruppen gefunden werden. Dafür sind sowohl Visionen als auch eine charismatische Führung notwendig.&amp;#34;
&lt;/p&gt;
&lt;p&gt;Tom DeMarco
spielräume&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7289501846561173823-8861045365282260432?l=blog.freelenzer.at' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.freelenzer.at/feeds/8861045365282260432/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.freelenzer.at/2011/10/spielraume_6178.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/8861045365282260432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/8861045365282260432'/><link rel='alternate' type='text/html' href='http://blog.freelenzer.at/2011/10/spielraume_6178.html' title='Spielräume'/><author><name>Dipl.-Ing. Chris Lenz</name><uri>http://www.blogger.com/profile/08163640116009750051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7289501846561173823.post-3630440411849624606</id><published>2011-10-26T11:00:00.000-07:00</published><updated>2011-11-12T11:57:14.475-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><title type='text'>Strategic Decisions</title><content type='html'>
&lt;p&gt;Strategische Entscheidungen zeichnen sich nicht dadurch aus, dass sie unbedingt sehr schwierig sind, aber sie haben einen großen Impact für folgenden Aktivitäten.
&lt;/p&gt;
&lt;p&gt;Einmal getroffen sind sie oft schwer zu ändern.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7289501846561173823-3630440411849624606?l=blog.freelenzer.at' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.freelenzer.at/feeds/3630440411849624606/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.freelenzer.at/2011/10/strategic-decisions.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/3630440411849624606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/3630440411849624606'/><link rel='alternate' type='text/html' href='http://blog.freelenzer.at/2011/10/strategic-decisions.html' title='Strategic Decisions'/><author><name>Dipl.-Ing. Chris Lenz</name><uri>http://www.blogger.com/profile/08163640116009750051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7289501846561173823.post-3583302143118770591</id><published>2011-10-25T11:00:00.000-07:00</published><updated>2011-11-12T11:58:53.309-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><title type='text'>Führung</title><content type='html'>
&lt;p&gt;&amp;#34;Führung ist Dienstleistung am Mitarbeiter.&amp;#34; Unbekannt
&lt;/p&gt;
&lt;p&gt;Oft sieht es so aus als ob unsere Manager immer nur gut Laune haben, um 16:00 aus dem Büro verschwinden. Aber meist ist die Führung am besten die man kaum merkt, und trotzdem spürt. &amp;#34;Ich weiß nicht was da so besonders war, aber es hat Spaß gemacht und funktioniert.&amp;#34;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7289501846561173823-3583302143118770591?l=blog.freelenzer.at' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.freelenzer.at/feeds/3583302143118770591/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.freelenzer.at/2011/10/fuhrung.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/3583302143118770591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/3583302143118770591'/><link rel='alternate' type='text/html' href='http://blog.freelenzer.at/2011/10/fuhrung.html' title='Führung'/><author><name>Dipl.-Ing. Chris Lenz</name><uri>http://www.blogger.com/profile/08163640116009750051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7289501846561173823.post-4890704676222378467</id><published>2011-07-26T11:00:00.000-07:00</published><updated>2011-11-12T12:02:25.515-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><title type='text'>OpenSource vs. ClosedSource</title><content type='html'>
&lt;p&gt;OpenSource vs. ClosedSource
OpenSource bedeutet, dass der Code so gut geschrieben ist, dass es Freude bereitet ihn zu zeigen.
&lt;/p&gt;
&lt;p&gt;ClosedSource...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7289501846561173823-4890704676222378467?l=blog.freelenzer.at' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.freelenzer.at/feeds/4890704676222378467/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.freelenzer.at/2011/07/opensource-vs-closedsource.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/4890704676222378467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/4890704676222378467'/><link rel='alternate' type='text/html' href='http://blog.freelenzer.at/2011/07/opensource-vs-closedsource.html' title='OpenSource vs. ClosedSource'/><author><name>Dipl.-Ing. Chris Lenz</name><uri>http://www.blogger.com/profile/08163640116009750051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7289501846561173823.post-4597159027913385184</id><published>2011-06-25T11:00:00.000-07:00</published><updated>2011-11-12T12:00:37.238-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><title type='text'>escalation of commitment</title><content type='html'>
&lt;p&gt;Wer mich kennt weiß, dass ich mich nicht nur gern mit Software beschäftige, sondern auch mit Bergsteigen und Klettern. Darin bin ich zwar nicht richtig gut, aber man muss sich ja mit irgendwas in seiner Freizeit beschäftigen :-).
Beim Bergsteigen beschäftigt man sich sehr viel mit Risikomanagement. Bei jeder Tour die man plant versucht man natürlich das Risiko zu minimieren. Jedoch weiß man auch, dass man es nicht vollständig eliminieren kann. Denkt man darüber mal genauer nach spielt man vielleicht des öfteren mit seinem Leben, und wenn einem das bewusst ist, ist dies ja auch ok.
&lt;/p&gt;
&lt;p&gt;Vor längerem bin ich über den Ausspruch &amp;#34;escalation of commitment&amp;#34; gestoßen, und er lässt mich nicht mehr los. Ich finde einfach so viele parallelen von dem Risikomanagement am Berg zum Risikomanagement beim Software Entwickeln. Und nicht nur das, ich lerne damit auch Leute und deren Reaktionen auf Kritik besser zu verstehen.
&lt;/p&gt;
&lt;p&gt;Aber nun zuerst einmal zu dem Zitat:
&lt;/p&gt;
&lt;p&gt;Je mehr wir in eine Entscheidung investiert haben (zB in Form von Geld, Aufstiegsmühen, Vorbereitungszeit, usw.), desto stärker fühlen wir uns dieser Entscheidung verbunden bzw. verpflichtet. Wir sind auch dann noch bereit, weitere Energien, Mühen und erhebliche Risiken in die getroffene Entscheidung zu stecken, wenn für einen neutralen Beobachter längst erkennbar ist, dass die Entscheidung unsinnig bzw. hoch riskant ist. entscheidungsfindung aus bergundsteigen 3/04
&lt;/p&gt;
&lt;p&gt;Ich selber konnte diese Reaktionen auch öfters bei Softwareprojekten erkennen, welche nicht ganz rund liefen. Die beteiligten Personen gehen oft in Tauchmodus und sind für Veränderungen nur sehr schwer zu motivieren. Änderungen werden dann oft als negativ bzw. als Zugeständnis von Fehlverhalten gesehen. Etablierte und oft bewährte Techniken, Vorgehensweisen oder auch Tools werden dann in Frage gestellt.
&lt;/p&gt;
&lt;p&gt;Verinnerlicht man sich das Zitat und denkt genauer darüber nach, kann man das auch verstehen. Umso mehr Respekt muss man dann doch jenen Menschen schenken, welche in solchen Momenten im wahrsten Sinne des Wortes die &amp;#34;Kurve kriegen&amp;#34; bzw. umdrehen.
&lt;/p&gt;
&lt;p&gt;Die Softwareentwicklung hat sich in den letzten Jahren extrem weiter entwickelt. Wir sind im Zeitalter der objektorientierten Sprachen, Skript-Sprachen versuchen gerade mal den Markt zu erobern. Was wir nun brauchen sind Projektmanager die jahrelang oder jahrzehntelang aufgebaute Weisheiten über Bord werfen und neue (agile) Techniken versuchen. Oder Entwickler die bereit sind sich neue Problemlösungsstrategien anzueignen und neue (agile) Vorgehensweisen umsetzen.
&lt;/p&gt;
&lt;p&gt;Charlie Poole meinte in seinem Vortrag immer wieder: Separation of concern is one of the main principle from object oriented programming. Was für mich ein synonym dafür ist, dass man sich einem Paradigmen wechsel unterziehen muss, wenn man von einer prozeduralen auf eine objektorientierte Sprache umsteigt.
&lt;/p&gt;
&lt;p&gt;Die Einführung von Agilen Methoden in ein Unternehmen kann oft einem Kulturschock gleich kommen. Das selbige kann einem auch passieren wenn man direkt von der Uni in einem konservativ geführtem Unternehmen Fuß fasst.
&lt;/p&gt;
&lt;p&gt;escalation of commitment hat im Agilen eigentlich keinen Platz. Dort wird versucht Entscheidungen so spät wie möglich zu treffen, also mit dem Maximum an Wissen.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7289501846561173823-4597159027913385184?l=blog.freelenzer.at' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.freelenzer.at/feeds/4597159027913385184/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.freelenzer.at/2011/06/escalation-of-commitment.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/4597159027913385184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/4597159027913385184'/><link rel='alternate' type='text/html' href='http://blog.freelenzer.at/2011/06/escalation-of-commitment.html' title='escalation of commitment'/><author><name>Dipl.-Ing. Chris Lenz</name><uri>http://www.blogger.com/profile/08163640116009750051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7289501846561173823.post-4136562002070521451</id><published>2011-03-10T11:00:00.001-08:00</published><updated>2011-11-12T11:55:15.154-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java DeepCopy via Serialization</title><content type='html'>
&lt;p&gt;Sometimes you need a way to make a deepcopy of all your objects. May be not the fastest :-). You have to ensure, that all of your objects are serializeable.
&lt;/p&gt;&lt;pre class="java"&gt;
&lt;span style="color:#7F0055; font-weight: bold; "&gt;public&lt;/span&gt; &lt;span style="color:#7F0055; font-weight: bold; "&gt;static&lt;/span&gt; &amp;#60;T&amp;#62; T deepCopy(T o) &lt;span style="color:#7F0055; font-weight: bold; "&gt;throws&lt;/span&gt; Exception{
 ByteArrayOutputStream baos = &lt;span style="color:#7F0055; font-weight: bold; "&gt;new&lt;/span&gt; ByteArrayOutputStream();
 &lt;span style="color:#7F0055; font-weight: bold; "&gt;new&lt;/span&gt; ObjectOutputStream(baos).writeObject(o);
 ByteArrayInputStream bais = &lt;span style="color:#7F0055; font-weight: bold; "&gt;new&lt;/span&gt; ByteArrayInputStream(baos.toByteArray());
 &lt;span style="color:#7F0055; font-weight: bold; "&gt;return&lt;/span&gt; (T) &lt;span style="color:#7F0055; font-weight: bold; "&gt;new&lt;/span&gt; ObjectInputStream(bais).readObject();
}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7289501846561173823-4136562002070521451?l=blog.freelenzer.at' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.freelenzer.at/feeds/4136562002070521451/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.freelenzer.at/2011/03/java-deepcopy-via-serialization_10.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/4136562002070521451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/4136562002070521451'/><link rel='alternate' type='text/html' href='http://blog.freelenzer.at/2011/03/java-deepcopy-via-serialization_10.html' title='Java DeepCopy via Serialization'/><author><name>Dipl.-Ing. Chris Lenz</name><uri>http://www.blogger.com/profile/08163640116009750051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7289501846561173823.post-483856763909738817</id><published>2011-02-04T11:00:00.001-08:00</published><updated>2011-11-12T11:55:07.620-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Fast ArrayList or HashMap initialisation</title><content type='html'>
&lt;p&gt;Everyone knows how to initialize String Arrays:
&lt;/p&gt;&lt;pre class="java"&gt;
&lt;span style="color:#7F0055; font-weight: bold; "&gt;private&lt;/span&gt; &lt;span style="color:#7F0055; font-weight: bold; "&gt;static&lt;/span&gt; &lt;span style="color:#7F0055; "&gt;String&lt;/span&gt;[] array = &lt;span style="color:#7F0055; font-weight: bold; "&gt;new&lt;/span&gt; &lt;span style="color:#7F0055; "&gt;String&lt;/span&gt;[]{&lt;span style="color:#2A00FF; "&gt;&amp;#34;Test&amp;#34;&lt;/span&gt;, &lt;span style="color:#2A00FF; "&gt;&amp;#34;Test&amp;#34;&lt;/span&gt;};
&lt;/pre&gt;
&lt;p&gt;But how can we do this with ArrayLists or with HashMaps?
&lt;/p&gt;&lt;pre class="java"&gt;
&lt;span style="color:#7F0055; font-weight: bold; "&gt;private&lt;/span&gt; &lt;span style="color:#7F0055; font-weight: bold; "&gt;static&lt;/span&gt; List&amp;#60;&lt;span style="color:#7F0055; "&gt;String&lt;/span&gt;&amp;#62; arraylist = &lt;span style="color:#7F0055; font-weight: bold; "&gt;new&lt;/span&gt; ArrayList&amp;#60;&lt;span style="color:#7F0055; "&gt;String&lt;/span&gt;&amp;#62;() {
 {
  add(&lt;span style="color:#2A00FF; "&gt;&amp;#34;Test&amp;#34;&lt;/span&gt;);
  add(&lt;span style="color:#2A00FF; "&gt;&amp;#34;Test&amp;#34;&lt;/span&gt;);
 }
};
&lt;span style="color:#7F0055; font-weight: bold; "&gt;private&lt;/span&gt; &lt;span style="color:#7F0055; font-weight: bold; "&gt;static&lt;/span&gt; Map&amp;#60;&lt;span style="color:#7F0055; "&gt;String&lt;/span&gt;,&lt;span style="color:#7F0055; "&gt;String&lt;/span&gt;&amp;#62; map = &lt;span style="color:#7F0055; font-weight: bold; "&gt;new&lt;/span&gt; HashMap&amp;#60;&lt;span style="color:#7F0055; "&gt;String&lt;/span&gt;,&lt;span style="color:#7F0055; "&gt;String&lt;/span&gt;&amp;#62;() {
 {
  put(&lt;span style="color:#2A00FF; "&gt;&amp;#34;one&amp;#34;&lt;/span&gt;,&lt;span style="color:#2A00FF; "&gt;&amp;#34;Test&amp;#34;&lt;/span&gt;);
  put(&lt;span style="color:#2A00FF; "&gt;&amp;#34;two&amp;#34;&lt;/span&gt;,&lt;span style="color:#2A00FF; "&gt;&amp;#34;Test&amp;#34;&lt;/span&gt;);
 }
};
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7289501846561173823-483856763909738817?l=blog.freelenzer.at' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.freelenzer.at/feeds/483856763909738817/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.freelenzer.at/2011/02/fast-arraylist-or-hashmap_04.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/483856763909738817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/483856763909738817'/><link rel='alternate' type='text/html' href='http://blog.freelenzer.at/2011/02/fast-arraylist-or-hashmap_04.html' title='Fast ArrayList or HashMap initialisation'/><author><name>Dipl.-Ing. Chris Lenz</name><uri>http://www.blogger.com/profile/08163640116009750051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7289501846561173823.post-3399518495155344611</id><published>2011-02-03T11:00:00.001-08:00</published><updated>2011-11-12T11:55:00.389-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>static generic factory methods</title><content type='html'>
&lt;p&gt;How to write a static but generic factory method in java?
&lt;/p&gt;&lt;pre class="java"&gt;
&lt;span style="color:#7F0055; font-weight: bold; "&gt;public&lt;/span&gt; &lt;span style="color:#7F0055; font-weight: bold; "&gt;class&lt;/span&gt; Test {
 &lt;span style="color:#7F0055; font-weight: bold; "&gt;public&lt;/span&gt; &lt;span style="color:#7F0055; font-weight: bold; "&gt;void&lt;/span&gt; test() {
  Map&amp;#60;&lt;span style="color:#7F0055; "&gt;String&lt;/span&gt;, &lt;span style="color:#7F0055; "&gt;String&lt;/span&gt;&amp;#62; test = newHashMap();
 }
 &lt;span style="color:#7F0055; font-weight: bold; "&gt;public&lt;/span&gt; &lt;span style="color:#7F0055; font-weight: bold; "&gt;static&lt;/span&gt; &amp;#60;K,V&amp;#62; Map&amp;#60;K,V&amp;#62; newHashMap() {
  &lt;span style="color:#7F0055; font-weight: bold; "&gt;return&lt;/span&gt; &lt;span style="color:#7F0055; font-weight: bold; "&gt;new&lt;/span&gt; HashMap&amp;#60;K, V&amp;#62;();
 }
}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7289501846561173823-3399518495155344611?l=blog.freelenzer.at' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.freelenzer.at/feeds/3399518495155344611/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://blog.freelenzer.at/2011/02/static-generic-factory-methods_03.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/3399518495155344611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7289501846561173823/posts/default/3399518495155344611'/><link rel='alternate' type='text/html' href='http://blog.freelenzer.at/2011/02/static-generic-factory-methods_03.html' title='static generic factory methods'/><author><name>Dipl.-Ing. Chris Lenz</name><uri>http://www.blogger.com/profile/08163640116009750051</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
