tag:blogger.com,1999:blog-66773153306844466012024-02-21T04:55:51.938-08:00Koup's BlogMein Öffentlicher Notizblock wenn ich abends oder in der Nacht genug von der Arbeit habe...Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.comBlogger23125tag:blogger.com,1999:blog-6677315330684446601.post-26389897841154936402017-09-03T14:56:00.002-07:002017-09-03T14:56:16.182-07:00A nice fresh web development take on AgileIt was a nice read with some great looking graphics and an interesting angle on the Scrum approach.<br />
<a href="https://www.keycdn.com/blog/agile-web-development/" target="_blank">read here</a>Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-8879525720496190702017-09-03T14:52:00.001-07:002017-09-03T14:52:33.151-07:00Really funny map for old JVM fans<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWr-YbnuAO63nwc33S9g5qjmG9Z29v9CgUo_t5dr6QzzrwiJefDcyi7FSCMxZN1wwO1CJt7-xw9kY7kYnbSdgwHwf6PujfK75yqBHT-MCNBMYogwUeDSDAHxVnXsNCvDjGt4-Q7iJ6JfQ/s1600/java.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="687" data-original-width="876" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWr-YbnuAO63nwc33S9g5qjmG9Z29v9CgUo_t5dr6QzzrwiJefDcyi7FSCMxZN1wwO1CJt7-xw9kY7kYnbSdgwHwf6PujfK75yqBHT-MCNBMYogwUeDSDAHxVnXsNCvDjGt4-Q7iJ6JfQ/s320/java.PNG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://jaxenter.de/pirates-of-the-jvm-die-infografik-54589" target="_blank">GOTO the big version of the map hier </a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-85112522860593268072014-02-23T09:21:00.001-08:002014-02-23T09:21:38.106-08:00Perl... Really!!!<iframe allowfullscreen="" frameborder="0" height="270" src="//www.youtube.com/embed/LR8fQiskYII" width="480"></iframe>Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-21737287045213810632014-02-22T10:36:00.001-08:002014-02-22T10:36:58.918-08:00How to stop your subordinates from becoming creative since everyone knows it’s the real threat …<iframe allowfullscreen="" frameborder="0" height="344" src="//www.youtube.com/embed/AU5x1Ea7NjQ" width="459"></iframe>Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-22846104744595316812013-08-01T13:19:00.001-07:002013-08-02T01:46:59.282-07:00Manual testing is immoral!It’s not just dumb, and it is dumb!IT IS IMMORAL!<p>
Great Presentation by Uncle Bob (Robert Cecil Martin) where he talks about the original meaning of the scrum Master role, the importance of Testing and how 'scrum' and 'agile' took the wrong path. I could not find it in better quality…
</p>
<br />
<a href="http://ndc2011.macsimum.no/mp4/Day2%20Thursday/Track3%201740-1840.mp4">Better quality Link of 'The Land that Scrum Forgot'</a>
<iframe allowfullscreen="" frameborder="0" height="270" src="//www.youtube.com/embed/hG4LH6P8Syk" width="480"></iframe>
Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-63625154509166797282013-07-12T12:32:00.001-07:002013-08-02T01:47:49.691-07:00U need a programming language. Simple as that.<p>
David Heinemeier Hansson talks about how ruby on rails lowers the bar and make programming more accessible. He stress the fact that 'There's No Such Thing as a "Pure" Programmer' but in the end accomplishing great thinks in programming can’t be easy, it takes thousands of decisions, so we will still need some language of expression, a programming language.
</p>
<p>
Full Interview on <a href="http://bigthink.com/videos/theres-no-such-thing-as-a-pure-programmer">Talk on 'big Thing'</a>
</p>
<br />
<iframe allowfullscreen="" frameborder="0" height="270" src="//www.youtube.com/embed/4Pn-f6Z-qj0" width="480"></iframe>Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-56348520227118062582010-01-11T11:25:00.000-08:002010-01-11T12:52:27.027-08:00Positionierung von JUnit Tests innerhalb eines ProjektsNeulich ergab sich bei mir auf der Arbeit eine Diskussion über eine auf den ersten Blick relativ banale Angelegenheit. Die Unstimmigkeiten betrafen den Speicherort von JUnit Tests innerhalb eines Projekts. In diesem Fall war es ein Eclipse Java Projekt, doch sicherlich gelten die ähnliche Argumente für jede Projektstruktur mit einer Package basierten Sprache und einem Testframework. <br /><br /><h3>Fragestellung</h3><br />Folgende Frage stellt sich nun: Sollen die JUnit Tests in einem extra Source Ordner mit dem Namen "test", "JUnit" etc. abgelgegt werden oder sollen die Testklassen im gleichen Sourceordner liegen wie die zu testenden Klassen. Darüber das die Klassen und die Tests jeweils im gleichen Package liegen sollten waren wir uns aus verschiedensten Gründen einig. Die Fragestellung ist also welche Package Struktur die bessere Wahl ist:<br />1) <br /><script type="syntaxhighlighter" class="brush: java"><br />src<br /> com<br /> mypackage<br /> MyClass.java<br /> MyClassTest.java<br /></script><br />ODER<br />2)<br /><script type="syntaxhighlighter" class="brush: java"><br />src<br /> com<br /> mypackage<br /> MyClass.java<br />test<br /> com<br /> mypackage<br /> MyClassTest.java <br /></script><br />Hier ist die Beschreibung der Problematik und eine Antwort die unter junit.sourceforge zu finden ist: <a href="http://junit.sourceforge.net/doc/faq/faq.htm#organize_1">link</a><br /><br /><h3>Überlegungen</h3><br />Für die Lösung 1) spricht, dass man auf einen Blick sieht welche Klassen einen Unittest haben und welche noch einen brauchen. Wird eine Klasse umbenannt oder verschoben ist es sehr schwer den dazugehörigen Unittest bei diesem Schritt zu übersehen. Die JUnit Tests sind darüber hinaus aus jeder Ansicht schnell zu öffnen und können per ANT relativ einfach aus dem build Prozess herausgenommen werden.<br /><br />Für die Lösung 2) spricht die Tatsache, dass die große Anzahl an Tests den Inhalt der einzelnen Packages aufblähen und nicht zu Übersichtlichkeit der Projektansicht beitragen. Der Buildprozess wird vereinfacht. Mock Klassen, Infrastrukturklassen sowie Helper Klassen die nur für das Testen notwendig sind können hier gemeinsam mit den eigentlichen Testklassen relativ einfach untergebracht werden.<br /><br />Im Netzt findet man unter dem Verweis auf "Best Practice of testing" in der Regel fast Ausschließlich die Anwendung der Lösung 2). <br />z.B. <a href="http://agile.csc.ncsu.edu/SEMaterials/tutorials/junit/junit_tutorial_jazz.html">hier</a> "It is considered a best practice in testing, to separate the test case code from the application code."<br /><br />Nur selten trifft man auch auf die <a href="http://www.javaworld.com/jw-12-2000/jw-1221-junit.html?page=3">Argumente</a>, die für die Lösung 1) sprechen.<br /> <br /><h3>Schlussfolgerungen</h3><br />Will man in einem relativ kleinen Projekt das Testen enforcen so wird die Lösung 1) wohl die passendste sein. <br />In größeren Projekten wo mit Hilfe von Spring beim Testen ganze Architekturschichten ausgetauscht bzw. gemockt werden können und das Verständnis um die Notwendigkeit von Tests bereits vorhanden ist, wird die Lösung 2) wohl am effizientesten sein.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-28753034797659288992010-01-05T06:22:00.000-08:002010-01-05T07:00:59.487-08:00Wie macht man Geld mit Web 2.0Viele fragen sich ja wie kann ich mit Web 2.0 Geld verdienen. Klar, da gibt es viele Antworten aber ich habe wohl noch nirgends eine kreativere und einfachere Möglichkeit gesehen als mit <a href="http://doihavepigflu.com/">dieser</a> Seite. <a href="http://jpd.me/2009/05/13/pandemics-for-fun-profit/">Hier </a>beschreibt der Autor was er dafür gemacht hat. Dass er ein Paar Twitter followers hatte ist sicher nicht von der Hand zu weisen. Schräg ist dieses ausnutzen der Pandemie Angst, mit dem einfachsten Konzept den man sich überhaupt überlegen kann, schon.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-20338666103812022672009-11-30T09:25:00.000-08:002009-12-01T14:46:03.630-08:00Neues aus einem meiner Projekte: Angebotsassistent<p>Trotz immenser Einsparpotentiale sowohl für die Bieter, als auch für die Vergabestellen kann sich die elektronische Vergabe in Deutschland immer noch nicht wirklich durchsetzen. Ein Grund dafür ist in der hier schädlichen „Vielfalt“, an technischen Voraussetzungen, Plattformen und Geschäftsmodellen, zu sehen. Bereits heute existieren deutschlandweit über 40 unterschiedliche Vergabeplattformen, Tendenz steigend. Ein überregional agierender Bieter muss eine große Menge an Lösungen unterschiedlicher Anbieter beherrschen. Dies ist heute der wichtigste Grund, wieso eVergabe hinter den, in sie gesteckten Erwartungen, bleibt. Die Lösung für diese Problematik liegt in Erstens: Einer weitreihenden Standardisierung der Schnittstellen und Austauschformate und Zweitens: Der Bereitstellung einer einheitlichen Lösung, eines Multiplattform-Bieterwerkzeugs, das nach Möglichkeit alle vorhandenen Vergabeplattformen bedienen kann.<br /><br /> Dem Problem der Standardisierung im Bereich eVergabe widmet sich seit einiger Zeit das von BeschA BMI ins Leben gerufene Projekt <a href="http://www.standardisierung.deutschland-online.de/Standardisierung_Internet/broker.jsp?uMen=b3330f32-d664-ba11-d88e-f1ac0c2f214a" title="XÖV XVergabe">XVergabe</a>. Die Initiative wurde bereits 2007 im Rahmen der Standardisierungsinitiative XÖV als zentrales Vorhaben von Deutschland Online begründet. Der erklärte Wille war und ist: Standards für den elektronischen Datenverkehr in Behörden zu schaffen. Hier wurden bereits wichtige Grundsteine gelegt, wie die deutschlandweite Standardisierung der Bekanntmachung. Die <a href="http://www.ai-ag.de/" target="_blank" title="AI AG Experten in der rechtssicheren elektronischen Vergabe">Administration Intelligence AG</a> hat sich von Anfang an rege beteiligt und wirkt neben den anderen Plattform und Lösungsanbietern wie Subreport Verlage Schawe GmbH und <a href="http://www.cosinex.de/">Cosinex GmbH</a> an Entscheidungsfindung und der Entstehung neuer Standards mit. Hierbei wird die Administration Intelligence AG vom <a href="http://www.wiinf.uni-wuerzburg.de/" target="_blank" title="Lehrstuhl Prof. Thome">Lehrstuhl für BWL und Wirtschaftsinformatik</a> der <a href="http://www.uni-wuerzburg.de/" target="_blank" title="Uni Würzburg">Julius-Maximilians-<em>Universität Würzburg</em></a> unterstützt. Dabei ist die Aufgabe des Lehrstuhls nicht nur auf die zukunftweisende, sichere und technisch verlässliche Umsetzung der Standards zu achten, sondern auch die Interessen der Bieter zu wahren. Denn für einen bieterseitig effizienten Angebotsprozess ist neben der universellen Verfügbarkeit der Vergabeunterlagen, auch die einfache und schnelle Angebotserstellung von großer Bedeutung. So ist nicht jedes Formular oder Leistungsverzeichnis, welches in einer Behörde erstellt worden ist, selbsterklärend und nicht jede Verfahrenseigenheit der unterschiedlichen Vergabestellen sofort nachvollziehbar und einleuchtend. Eine Standardisierung der Austauschformate und Arbeitsabläufe macht eine geführte Angebotserstellung, fachliche Prüfung der Angebotsunterlagen sowie eine sichere und valide Angebotsabgabe erst möglich. Hier machte die Administration Intelligence AG erst vor Kurzem von Sich reden, als sie die in Zusammenarbeit mit den Würzburger Wissenschaftlern entwickelte und bereits verfügbare Bietersoftware vorstellte.<br /><br /> Die besagte Lösung ist der <a href="https://www.angebotsassistent.de/" target="_blank" title="Das Mulit-Plattform-Bieter-Werkzeug für sichere eVergabe">AI ANGEBOTSASSISTENT</a>, das Multi-Plattform-Bieter-Werkzeug der AI AG und ist nach einer Registrierung kostenlos zum Herunterladen verfügbar. Das Ziel war es den Unternehmen ein Werkzeug anzubieten, mit dem eine größere Anzahl an verschiedenen Plattformen, bedient werden kann. Die Lösung unterstützt derzeit eine noch kleine, aber signifikante Anzahl an Vergabeplattformen. Diese wird in den kommenden Monaten aber immer weiter ausgebaut. Wichtige Features, wie die plattformübergreifende Suche in Vergabeunterlagen und Bekanntmachungstexten sowie die Verwaltung von Zugangsdaten für die unterschiedlichen Vergabeplattformen, aber auch eine geführte und rechtsichere Angebotserstellung sowie Angebotsabgabe bietet die Lösung schon jetzt. Viele weitere Merkmale, an denen der Lehrstuhl für BWL und Wirtschaftsinformatik der Universität Würzburg maßgeblich mitgewirkt hat, werden in Kürze die Lösung bereichern.<br /><br /> Die Probleme, die bei der Entwicklung eines Multi-Plattform-Bieter-Clients entstehen, liegen auf der Hand. Die Lösung muss viele separate Plattformen bedienen. Selbst unterschiedliche Plattformen eines Herstellers liegen oft in verschiedenen Versionen vor und müssen technisch jeweils anders angesprochen werden. Weiterhin sind die unterschiedlichen Geschäftsmodelle ein großes Hindernis. So erhebt die Hessische Ausschreibungsdatenbank, kurz HAD, für nicht Hessische Bieter eine Gebühr. Vergabe24 verfolgt dagegen gleich mehrere Geschäftsmodelle. Ein weiteres Problem ist die Zentrale Anmeldung, das sogenannte SSO. Hier muss beachtet werden, dass die Sicherheitsvorkehrungen und die geforderte Daten von Plattform zu Plattform variieren. Um einen konsistenten Datenbestand zu erreichen und mögliche Doubletten zu vermeiden, musste hier viel Aufwand betrieben werden. Die gesammelten Erfahrungen haben die Würzburger Wissenschaftler bereits dem XVergabe Gremium präsentiert. In Zusammenarbeit mit der Administration Intelligence AG plant der Lehrstuhl für BWL und Wirtschaftsinformatik Universität Würzburg mittelfristig die verwendete Schnittstelle sowie die Standardaustauschformate zu veröffentlichen um so die XVergabe voranzubringen.<br /><br /> Nun sind auch andere Hersteller bemüht hier Abhilfe zu schaffen so wird eine Initiative die vor Allem durch <a href="http://www.subreport.de/">Subreport Verlage Schawe GmbH</a> und das <a href="http://www.fokus.fraunhofer.de/de/fokus/index.html">Fraunhofer-Institut für Offene Kommunikationssysteme FOKUS</a> vorangetrieben wird, zuletzt immer wieder ins Gespräch gebracht. Noch gibt es kein offizielles Release-Termin jedoch darf man auf weitere Entwicklungen in diesem Bereich gespannt sein. </p><br />Abschließend kann man sagen, dass sich die elektronische Vergabe immer weiter durchsetzen wird weil es elementare Vorteile gegenüber dem Papierverfahren bietet. Die Multi-Plattform-Bieter-Clients können dieser Entwicklung jedoch einen großen Schub verleihen. Die Entwicklung des Bieters zum Kunden und zur wichtigsten Zielgruppe im Bereich eVergabe wird jedenfalls nicht mehr aufzuhalten sein und wird für weitere Wichtigen Impulse in diesem Marktsegment sorgen.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-89478553080775739392009-09-21T14:02:00.000-07:002009-09-22T03:35:04.935-07:00SVN+TRAC+CruiseControl = BuildixEin Ubuntu System mit SVN, Trac und einer integrierten Benutzerverwaltung einzurichten kann für alle die sich nicht täglich mit Servereinrichtung beschäftigen zu einem Problem werden. Natürlich gibt es Systeme wie Google Code oder Sourceforge aber dies setzt voraus, dass man sein Projekt vor aller Welt offenlegen muss. Selbst wenn es sich letzten Endes um ein Open Source Projekt handeln soll wird man am Anfang wohl eher eine geschlossene Gesellschaft wünschen.<br /><br />Nun gibt es schon seit geraumer Zeit ein fertiges system was alles notwendige um im Team zu Entwickeln enthält. Das System wird von <a href="http://www.thoughtworks.com/">ThoughtWorks </a>angeboten und heißt <a href="http://buildix.thoughtworks.com/index.php/documentation/package-installation/">Buildix</a>. Kennt man die wichtigen Kniffe ist das System ruck zuck eingerichtet und lässt sich sehr leicht administrieren.<br /><br />Es gibt mehrere Möglichkeiten ein Buildix System einzurichten. Die einfachste Art ist wohl das schon fertige VMWare Image runterzuladen und in einem VMWare Server 2.x zu laden. Startet man nun das Ubuntu 7 System stellt man fest, dass es offensichtlich Probleme mit der Festplatte des VMWare Images gibt. Dies scheint jedoch normal zu sein. Man sollte sich nun als root Benutzer (Passwort ebenso root) anmelden und dann einfach wie vorgeschlagen fsck ohne Argumente in der Konsole ausführen. Nach einem Neustart (reboot) dürfte das System - Internetverbindung vorausgesetzt ganz normal arbeiten. Bei der weiteren Einrichtung kann dieser <a href="http://realultimateprogramming.blogspot.com/2008/01/using-buildix-in-anger.html">Link</a> behilflich sein.<br /><br />Die Buildix Seite sollte unter der Rechner IP über das https Protokoll unter Port 80 erreichbar sein. Was nun beachtet werden muss ist dass bevor man das System weiter einrichten kann die Mingle Software entweder deinstalliert oder eingerichtet werden sollte. Offensichtlich war Mingle früher kostenfrei, ist es inzwischen jedoch nicht. Man kann eine Probelizenz für 5 Nutzer beziehen oder muss eine echte Lizenz kaufen. Ich habe also kurzerhand Mingle über die Konsole deinstalliert:<br /><br /><span style="font-family: courier new;">aptitude remove mingle</span><br /><br />Damit ist es aber nicht getan. Man muss auf der Buildix Startseite unter Config, Mingle deaktivieren damit man mit den restlichen Systemen ohne weiteres arbeiten kann. Davor muss man sich jedoch mit dem Initial User des Buildix Systems: Benutzername:buildix/pass:buildix anmelden. Hat man sich angemeldet und ist Mingle abgeschaltet kann man neue Benutzer und Projekte anlegen und sich mit CruiseControll und Trac auseinandersetzen.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-72502443800373276452009-07-22T10:02:00.000-07:002009-10-26T02:57:56.201-07:00Spring MVCMit diesem Post will ich einige Stolpersteine bei dem Einarbeiten in Spring und der Implementierung einer ersten Spring MVC Anwendung beschreiben und einige für bestimmte Bereiche der seite wichtige Links bereitstellen.<br /><br />Grundsätzliche Informationsquellen die beim Einstieg pflicht sind:<br /><a href="http://www.springbyexample.org/">SpringByExample</a>: Hier findet man eine Viel zahl an kleinen Beispielimplementierungen für fast alle wichtigen Spring Frameworkteile. Nachteilig wirken sich aus, das Fahelen von Schritt für Schritt Tutorials und teils oberflächliche Beschreibungen und Beispiele.<br /><a href="http://static.springsource.org/spring/docs/2.0.7/reference/mvc.html">SpringDoku</a>: Ausführlicher als man glaubt und auf jeden Fall die Standardlektüre für alle Spring Eisnteiger.<br /><a href="http://blog.springsource.com/category/spring/30/">SpringBlog</a>: Neuigkeiten im Bereich Spring findet man hier.<br /><br />Für die Umstellung von Spring MVC auf Annotationsbasierte Konfiguration ist <a href="http://sleeplessinslc.blogspot.com/2008/02/introduction-software-development-and.html">dieser Artikel</a> ganz gut wobei er nicht auf Interceptor klassen eingeht.<br /><br />Ich Finde die @Autowired Funktion für eine der sinnvollsten Annotationen. Oft hat man jedoch mehr als ein Objekt der gleichen Klasse im Spring Kontext hier hilft die @Qualifier("<id>") Annotation.<br /><br />@Autowired<br />@Qualifier("applicantFacade")<br />private ApplicantFacade iApplicantFacade;<br />Weiterhin kann man bestimmte Objekte für das Autowire Context deaktivieren. - <bean candidate="false">...<br /><br /><br /><span style="font-size:130%;">Spring - Hibernate</span><br />Will man die beiden mächtigen Frameworks verbinden kommt man an dem Buch <span style="font-style: italic;">Spring & Hibernate - Eine Praxisbezogene Einführung </span>nicht vorbei. Viel Zusatz information braucht man nach aufmerksamen Durchlesen des Buchs eigentlich nicht. Ich will jedoch speziell im Hinblick auf MVC auf den OpenSessionInViewFilter eingehen der notwendig ist wenn man Lazy Loading der Objekte braucht:<br /><span style="font-family:courier new;"><filter></filter></span><span style="font-family:courier new;"><filter-name></filter-name></span><br /><span style="font-family:courier new;"> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</span></bean><span style="font-family:courier new;"><url-pattern></url-pattern></span><br /><br />Zudem hatte ich einige Probleme mit der <span style="font-weight: bold;">NonUniqueObjectException.</span> <id>Exception die für die Ich nicht sofort eine Lösung fand: <a href="http://www.stevideter.com/2008/12/07/saveorupdate-versus-merge-in-hibernate/">Link1</a>, <a href="http://blog.xebia.com/2009/03/23/jpa-implementation-patterns-saving-detached-entities/">Link2</a><br /><br /><span style="font-size:130%;">Spring Security</span><br />Momentan ist die einfachste und schnellste <a href="http://www.viddler.com/explore/oredev/videos/22/">Einführung</a> in Spring Security in videoform ist etwas älter und stellt Spring Security 2.x vor.<br /><br />Speziell im Hinblick auf die Security 3.0 wurde das framework viel userfreundlicher. Eine Menge von XML Konfiguration ist nun überflüssig geworden. Im <a href="http://stsmedia.net/spring-finance-part-2-spring-mvc-spring-30-rest-integration/">Spring Finance</a> Beispiel kann man einige Gute Ansätze und Ideen für seine Spring 3.0 Security und MVC Konfiguration holen. Weitere aktuelle und Entwicklernahe Quelle für Spring Security ist der Spring Blog bzw. der Security 3.0 <a href="http://blog.springsource.com/2009/06/03/spring-security-300m1-released/">Eintrag</a>.<br /><br />Will man User Programmatisch anmelden so kann man die <a href="http://stackoverflow.com/questions/1013032/programmatic-use-of-spring-security">hier</a> angeführte Anleitung verwenden.<br /><br />Will man einem User nur Zugriff auf Seine Objekte - Objekte die er erstellt hat bzw. Objekte die er Verwalten darf bereitstellen (Artikel - Autor) - so muss man etwas weiter in das Framework einsteigen und eine ACL Implementierung für seine Sicherheitsrelevanten Objekte bereitstellen. Ein sehr interesantes Tutorial findet man <a href="http://server.denksoft.com/wordpress/?page_id=5">hier</a>.<br /><br />will man für das Admininterface oder für Sessionexterne Zugriffe erfahren welche Sessions gerade aktiv sind bzw welcher User sich gerade auf der Palttform befindet so hilft hier diese knappe <a href="http://www.gesea.de/spring/security/Acegi-ConcurrentSessionController-Configuration.htm">Handlungsanweisung</a>.<br /><br /><span style="font-size:130%;">Spring Web Flow<br /><br />Rendering - Tiles Einrichtung unter Spring<br /></span>Um redundanzen in den JNLP Files zu vermeiden und Trotzdem einfachhat und Kontrolle über den Rendering Prozess zu haben eignet sich der Tiles Ansatz ziemlich gut. Zudem bietet Tiles die Möglichkeit in wenigen Schritten eine Navigation und somit die dynamische hervorhebung der aktuellen Position auf der Webseite, ein Breadcrumbs Model und dynamisches anpassen des Webseiten Templates abhängig von der aktuellen Contentseite und der Rolle des Nutzers. Für die Tiles Einrichtung ist wie Üblich die <a href="http://static.springsource.org/spring/docs/2.5.x/reference/view.html#view-tiles">Spring Referenz</a> in akuteller Version zu beachten.<br /><br />Um eine dynmaische Navigation auf der Webseite einzurichten habe ich mich vom folgenden <a href="http://scbcd.blogspot.com/2008/07/controlling-navigation-menu-with-tiles.html">Beitrag</a> inspirieren lassen. Das vorgestellte Konzept lässt sich beliebig erweitern.<br />Weiterhin ist es machmal notwendig auch programmatisch in den Tiles Prozess einzugreifen. Die Klassen DynamicTilesView und DynmaicTilesViewProcessor übernehmen leiten alle Anfragen an die Tiles Konfiguration weiter und können weitreichenden Veränderungen and dem tatsächlich angewandtem Tiles Definition sowie an den respond und request Objekten vornehmen. Weiterhin lassen sich für bestimmte Tiles Definitions sogennante Preparer einbauen und auch Kontextabhängige Programmatische Veränderungen vornehmen können.<br /></id></id>Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-91119961591751790262009-06-22T16:36:00.000-07:002009-06-22T16:45:30.963-07:00XML BindingXML Binding ist eine Technologie die neben dem Databinding und dem O/R Binding immer wichtiger wird. Muss man gegen ein proprietäres XML Format, oder an der Persistenz sich immer wieder ändernden Modells arbeiten, spart einem XML Binding jede Menge Zeit und Nerven. Der etwas neutrale aber dennoch aufschlussreiche <a href="http://www.heise.de/developer/Kriterien-fuer-die-Auswahl-eines-XML-Data-Binding-Frameworks--/artikel/140242/0">Artikel</a> auf <a href="http://www.heise.de/developer/">heise.de/developer/</a> bietet eine kommentierte Übersicht über die Features und die Angebote im XML Binding Markt.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-35617466592318978642009-06-17T12:56:00.000-07:002009-06-17T13:06:48.231-07:00Infastruktur eines EntwicklersAppfuse ist eine sehr schöne Beispielwebanwendung mit allen notwendigen Features Tutorials und sehr viel Beispielcode. Will man im Bereich Java eine Webapplikation auf der grünen Wiese Entwickeln so sollte man sich diese unbedingt angucken. Ich entwickle momentan mit Spring MVC WebFlow und Security eine JSP Plattform und konnte mir schon das eine oder andere abgucken. Vor allem fand ich aber die Seite auf der die Einrichtung einer Infrastruktur für Softwareentwicklung beschrieben wird. Hier gibt es sehr viel Nützliches insbesondere wenn man sich auch für Maven2 begeistern kann.<br /><a href="http://appfuse.org/display/APF/Development+Environment">Abfuse Wiki</a>Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-28821973499181295992009-05-12T02:38:00.000-07:002009-05-12T02:40:19.586-07:00Swing im BrowserWährend die großen RIA Frameworks schon lange auch Desktopapplikation anbieten und Eclipse bzw. SWT Entwicklung schon seit langem Pläne und Entwicklungen vorweist um die entsprechenden Anwendungen auch im Browser anzuzeigen gibt es nun auch ein Framework das der Swing Welt auf den Browser verhilft. Das Projekt heißt <a href="http://wingsframework.org/cms/">WingS</a> und will die Paradigmen und die Herangehensweise von Sing auf JavaScript mit Hilfe von AJAX portieren wobei viel Webtechnologie durch das Framework von dem Benutzer abstrahiert wird. Nun findet in München ein <a href="http://wingsframework.org/wiki/en/CodingCamp">Workshop</a> statt der auch Neulingen einen Einstieg in die Technologie bieten und für erfahrene Benutzer eine Plattform schaffen soll. Während Entwicklung von <a href="http://swingweb.sourceforge.net/swingweb/index.html">Swingweb</a> momentan wohl nicht mehr weiter geführt wird ist WingS die Alternative für erfahrene Swing Programmierer die komplexe Webanwendungen schreiben wollen.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-91333801437192570972009-05-04T04:26:00.000-07:002009-05-04T05:20:16.826-07:00Parleys.com private betaWill man einen leichtverdaulichen Überblick über den aktuellen Stand in der Java Technologie bekommen so geht kein Weg vorbei, an der Plattform die von den <a href="http://devoxx.com/display/JV08/Home">Devoxx (Javapolis)</a> Initiatoren ins Leben gerufen wurde. Auf <a href="http://www.parleys.com/">Parleys.com</a> können aktuelle Vorträge und Diskussionen die auf den letzten Dovoxx Veranstaltungen aufgenommen wurden eingesehen werden. Die Vielfallt der Themen und die perfekte Aufbereitung bzw. Qualität der Aufnahmen ist für ein offenes Portal beispiellos und hat deutlich zur wachsenden Beliebtheit der Konferenz beigetragen.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://devzilla.org/wp-content/uploads/2009/03/parleys.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 280px;" src="http://devzilla.org/wp-content/uploads/2009/03/parleys.png" alt="" border="0" /></a><br />Nun haben sich die Entwickler der Plattform allen voran Stephan Janssen daran gemacht die Technologie die Hinter Parleys.com steckt allen verfügbar zu machen und in einer private beta die nächste Generation der auf Flex und Air basierenden Platform vorgestellt. Die Idee ist es Universitäten, Java User Groups und anderen Institutionen die Möglichkeit zu bieten auch deren Content im Internet auf einer Zentralen Plattform zu Verfügung zu stellen. Dabei soll sich die Zielgruppe nicht auf Java Entwickler bzw. Informatiker beschränken. Das Geschäftsmodell von Parleys soll in Zukunft jedoch vorsehen, dass speziell die partizipierenden Universitäten als Austausch für den Dienst einen kleinen Teil ihrer Breitband Kapazität zu Verfügung stellen damit die frei verfügbaren Vortragsmaterialien der Parleys.com Plattform weiterhin frei verfügbar bleiben.<br /><br />Weiterhin wird die Entwicklung eines Parleys Publishers vorangetrieben der das Onlinestellen von Vorträgen noch schneller und einfacher gestalten soll. Der Lehrstuhl Prof. Thome beteiligt sich an der „private Beta“ und wird in Zukunft versuchen die eLearning Videos des Lehrstuhls über die Parleys Plattform bereitzustellen.<br /><br />Weitere Informationen zu der Plattform bekommen Sie in der <a href="http://groups.google.com/group/parleyscom?hl=en">Google Group von Parleys.com</a>.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-1872383020705430832009-04-28T03:19:00.000-07:002009-05-04T09:55:44.577-07:00Fragen zum Open SourceWährend eines von mir betreuten Wirtschaftsinformatik Seminars zum Thema Open Source habe ich einige Fragen und mögliche Antworten formuliert die das Thema in einem globaleren Kontext betrachten.<br /><br />Seminar zum Thema: Open Source Lizenzen und Geschäftsmodelle von<br />Michael Bauer Lizenzen - <a href="https://share.acrobat.com/adc/document.do?docid=b2cb9271-d59f-4db9-b256-d575c847072b">Ausarbeitung</a> <a href="https://share.acrobat.com/adc/document.do?docid=50f5429a-c60d-41e0-9cd7-69fb5effc57e">Korrektur</a><br />Simon Philipp Geschäftsmodelle - <a href="https://share.acrobat.com/adc/document.do?docid=2087f2bd-7dc0-43d7-8e88-c27d5a1d2f42">Ausarbeitung</a> <a href="https://share.acrobat.com/adc/document.do?docid=9195baf3-9881-4303-91f1-3de9b0b53f39">Korrektur</a><br />Vortrag:<br /><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0" height="500" width="365"> <param name="movie" value="https://share.acrobat.com/adc/flex/mpt.swf"> <param name="quality" value="high"> <param name="wmode" value="transparent"> <param name="allowFullScreen" value="true"> <param name="flashvars" value="ext=pdf&docId=ff105023-65c0-42a4-954b-6926a089d8e7&lang=en_US"> <embed src="https://share.acrobat.com/adc/flex/mpt.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" flashvars="ext=pdf&docId=ff105023-65c0-42a4-954b-6926a089d8e7&lang=en_US" height="500" width="365"></embed> </object><br /><br />1) Wieso können OS Produkte schneller bis zur Marktreife gebracht werden?<br />• Niedrige Einstiegskosten<br />• Kein Vendor lockin bei unsicheren Märkten<br />• Investitionssicherheit.<br />2) Wieso können OS Produkte schneller bis zur Marktreife gebracht werden?<br />• Viele freiwillige Tester die auch Beta Versionen testen.<br />• Häufigere und schnellere Releases z.B. durch „perpetual beta“ und des Fehlens von Marketing und Vertriebs die Releases oft aus eigenen Überzeugungen verzögern.<br />• Durch Transparenz und Quellcode Einsicht kann jeder beteiligter (User, Tester) stark zur Lösung eines Problems beitragen.<br />• Probleme werden durch die Transparenz und Offenheit sehr viel schneller an die Entwickler herangetragen und können durch öftere Releases sehr viel schneller beseitigt werden.<br />3) Wo liegen OS Potentiale zum Senken der total „cost of ownership“?<br />• Einsparungen im Supportbereich Unabhängigkeit von spezieller Hard- und Software da überall offene Standards und Interfaces.<br />4) Wie kann Marketing und Vertrieb durch den Open Source Charakter des Produkts eingespart werden?<br />• Meist V & M über Electronic "Mund zu Mund Propaganda" im Netz Blog’s und Foren.<br />5) In wie fern ist OSS Entwicklung in gewisser Weise die reinste Form des Kapitalismus?<br />• Es existiert ein Markt für Dienstleistungen wobei statt des Geldes andere, viel bessere, weil persönlich angepasste, monetäre Mechanismen greifen. Der Markt ist global und frei, so dass jeweils derjenige dessen opportunitätskosten am geringsten sind in das Projekt einsteigt.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-61775907229092087632009-04-23T05:13:00.001-07:002009-05-04T06:44:51.839-07:00SAPDB deinstallierenVor Kurzem musste ich eine nicht mehr richtig funktionierende SAPDB deinstallieren. Dies ist nicht ganz ohne da ich eine DB Instanz deinstallieren musste jedoch keinen Zugang mehr drauf hatte. Somit verhinderte die Deinstallationsroutine das Löschen einer DB weil ich nicht mehr auf die DB zugreifen konnte. <a href="http://lists.mysql.com/maxdb/7391">Hier</a> bekam ich Schützenhilfe. Nach dem ich bereits die DB auf der Festplatte entfernt habe entfernte ich auch noch den Registry Einträge mit Windows\regedit.exe HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SAP DBTech-.* danach konnte ich mit Hilfe eines MAXDB Installers die DB Ohne Probleme Entfernen.<br />Nun kann es sein dass trotz einer erfolgreichen Deinstallation immer noch Verweise auf die alte Datenbank in der Registry vorhanden sind. Die Suchoption von Regex "SAPDB" hilft hier nicht unbedingt weiter. Falls man nun keine weitere SAP Produkte installiert hat könnte man zur Brachialmethode greifen und alles was die Kombination SAP enthält löschen. Hier fand ich noch mindestens 2 weitere Verweise die auch den namen meiner alten Datenbank enthielten was dann zum erfolgriechen Installieren von MAXDB und einer neuen Datenbank endlich ausgreicht hat.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-4829933613547563592009-04-21T15:41:00.000-07:002009-04-22T07:21:49.149-07:00Erreichbarkeit der Uni WebpräsenzDas Outsourcing von IT Infrastruktur und Konzentration auf Kernkompetenzen an einem Wirtschaftsinformatik Lehrstuhl mag viele Vorteile Haben. Gerade beobachte ich jedoch den Totalausfall der Kompletten Typo3 basierten Webpräsenz der <a href="http://www.uni-wuerzburg.de/">Uni Würzburg</a>.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb5nm8HcHX-Sv6ezkTYnFQHzBSlt4xwv3NQh2zJWeJKDIVvmTj8zNpsuh5JxcYBv5CmFKsF2eZqkYp5CvTsbhsqR9MkbA3Z4CI8kymLzI8l-NPISI5vvEXgzJJ_AuUBQwmFAarGD82TCM/s1600-h/totalausfall.bmp"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 177px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb5nm8HcHX-Sv6ezkTYnFQHzBSlt4xwv3NQh2zJWeJKDIVvmTj8zNpsuh5JxcYBv5CmFKsF2eZqkYp5CvTsbhsqR9MkbA3Z4CI8kymLzI8l-NPISI5vvEXgzJJ_AuUBQwmFAarGD82TCM/s320/totalausfall.bmp" alt="" id="BLOGGER_PHOTO_ID_5327279427187230914" border="0" /></a>Die Lehrstuhlhomepage des <a href="http://www.wiinf.uni-wuerzburg.de/">Lehrstuhls für BWL und Wirtschaftsinformatik</a> ist aber weiterhin erreichbar.<br />Momentan wird im Rahmen eines Softwarepraktikums die Protierung der Lehrstuhlwebpräsenz auf die Typo3 Server der Uni durchgeführt und wir haben mit einigen Einschränkungen bezüglich Funktionalität und dezentralem Content Management zu kämpfen. Somit müssen wir immer wieder die Pro und Contra einer Umstellung gegenüberstellen. Hierbei muss ich sagen, dass gerade ein wichtiger Pro Punkt flöten gegangen ist...Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-827282097799297802009-03-17T18:02:00.000-07:002009-03-20T10:41:22.337-07:00AjaxAjax ist als technologie enorm wichtig für die momentane entwicklung im Web und für Web 2.0 Webseiten. Dehr wird die Vorstellung dieser Technik auf 10-20 Folien sicher nicht verkehrt sein.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-15649581973975088062009-03-16T09:35:00.000-07:002009-03-20T10:42:22.550-07:00OpenIDEs ist zwar fraglich inwiefern OpenID in Zukunft relevant sein wird aber da ich es schon beim letzten mal reinnehmen wollte überlege ich es mir nach einem Artikel aus der aktuellen t3n <a href="http://dennisbloete.de/stuff/publications/t3n14.pdf">Softlink</a>. Was ich mich jedoch interessiert ist was denn eigentlich eine Single-Sign-On-Infrastruktur ist. Hier müsste ich mal <a href="http://dennisbloete.de/studies/bachelor-report/thesis.pdf">hier</a> und <a href="http://dennisbloete.de/">hier</a> noch schlau machen.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-80731866771021095712009-03-15T12:53:00.000-07:002009-03-15T12:57:09.472-07:00Jeder sollte einen Blog einrichten könnenIn Zeiten des Web 2.0 ist es gut zu wissen wie einfach es ist einen Blog einzurichten. Jedoch liegt auf dem Weg dahin der eine oder andere stolperstein. Daher denke ich dass ich die Einrichtung im Blogger als eine Übungsaufgabe nach dem CMS Teil einbaue.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-47903074278884273372009-03-14T14:23:00.000-07:002009-03-16T10:08:10.994-07:00ECZ3 VorbereitungBereite die Unterlagen für den ECZ3 Kurs vor. Es werden einige zusätzliche Folien zu den Bereichen Web 2.0 und CMS werden. Zudem muss der Dreamweaver Teil umgestaltet werden da hier die Software erst im neuen CIP Pool vorhanden sein wird.Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0tag:blogger.com,1999:blog-6677315330684446601.post-32691443174591246642008-04-16T11:08:00.000-07:002009-03-20T10:55:21.773-07:00Modulare RCP Anwendung die Alternativen?Momentan gibt es zwar einige Frameworks die sich mit dem Namen Rich Client schimpfen jedoch gibt es meiner Meinung nach nur 2 Player die nicht nur ein fundiertes modulares Konzept sondern auch eine sich bewährte und breite RC Plattform anbieten. Zum einen die extrem erfolgreiche Eclipse OSGI Kombination die sich von Erfolg zum Erfolg schwingt, und eine eher auf Sun Standards ausgerichtete NetBeans Plattform der jedoch meiner Ansicht nach große erfolgreiche Projekte immer noch fehlen. Die NetBeans Entwicklung geht immer noch weitgehend von Sun aus während das Eclipse Universum inzwischen so groß ist, dass die meisten Nutzer von Eclipse bzw. von Eclipse Derivaten gar nicht mehr wissen, dass eigentlich IBM dahinter steckt. Die Frage ist nun wie kann NetBeans weiterhin erfolgreich sein wenn der Markt momentan einen klaren Monopolcharakter aufweist?Pavel Kotlovhttp://www.blogger.com/profile/15001246201909454153noreply@blogger.com0