Well i am once again amazed how some maven tools are unstable especially if you think that we nearing the end of 2017 , but still maven surefire plugin isn't stable for Junit 5!
If you like me and you want spent little time in xml configuration here you go 100% working xml file with support of Junit 5 and tested with surefire plugin!
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.learningDesign</groupId>
<artifactId>ExampleOfLearningDesignPattern</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Exercise1 of Design patterns</name>
<description>Exercise1 of Design patterns</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>4.12.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.0.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.0.1</version>
</dependency>
</dependencies>
<configuration>
<argLine>${argLine}</argLine>
</configuration>
</plugin>
</plugins>
</build>
</project>
If you see big google ads banner just skip it and scroll further, thanks!
Freitag, 22. Dezember 2017
End of 2017 but still problems with surefire plugin

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Mittwoch, 13. Dezember 2017
Eclipse workaround for small size of icons!!!
Well finally i found a way to increase the size of icons in eclipse!
It was so simple just edit eclipse.ini and add the line -Dswt.autoScale=150 after -vmargs !!!
I wonder why in the world Eclipse developers don't think about some plugin or feature which give you a optimal solution (some tool) for that kind of problem, well this works for me!
It was so simple just edit eclipse.ini and add the line -Dswt.autoScale=150 after -vmargs !!!
I wonder why in the world Eclipse developers don't think about some plugin or feature which give you a optimal solution (some tool) for that kind of problem, well this works for me!

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Sonntag, 10. Dezember 2017
First example of working Cobol program.
I am very puzzled how people programmed back in 60-70, it was probably very difficult task, anyway due to demand and luck of Cobol programmers on German market, i must achieve mastery with this language.
Here what i use to master Cobol jungle:
OpenCobolIDE - very good IDE for writing Cobol programs.
Cygwin and compiled Cobol ver. 2.2 just for debugging purposes!
The online tutorials which i do is from Lynda, well in this case they are the best , Pluralsight was too short and too complicated to master, but i done it anyway!!
So for you consideration here is a code which wrote, yes i can post it on github but i am kind of lazy today!
I like how IDE highlight the Cobol code , very good.
Syntax of this language is very strict you must watch out on which column you write and the length of variables is limited.
I don't like the way how datatype in Cobol declared it pushes a programmer to learn this cryptic and obscure Cobol format , which i already hate.
Here is the whole logic of the program, Cobol allows you to use operators (+,*,= and etc) but you must write first the word COMPUTE, in my opinion it doesn't make any sense why the Cobol authors done such bad job?? (rhetorical question)
If you asked me , what i would prefer if i had only choice between C and Cobol, well i would pick C language without any further thinking , just because C syntax is a lot better then Cobol!!!!
We have huge problem developers, there are tons of Cobol code for enterprise critical applications, i don't care what you boss say to you , but i think developers who work with Cobol commercial projects must push forward and port Cobol code into other language like for example Java and C# (.Net) .
Sure it's not so easy and i understand that there a lot of datatype inconsistency between Cobol and other languages, but we are responsible for our code like Uncle Bob said, clean your mess and do care about the code which you write or refactor!
Another question arise , how can i test this code , is there any unit type testing possible?`I feel people who have a lot of experience with Cobol can test the code in their brains, but i think i must found a way to unit test this programming language even if take my all free time, this is very important if i wish to stay true to the clean code philosophy.
I will further learn "funny" things about Cobol language and will master it, but i will be very liberal of maintaining the Cobol Code. This means i am advocate of change , if somebody has a fear about loosing job and don't wish to change the current state of Cobol projects, then i will be the person on to which management can fire upon, i don't care really! My concern would be a quality of code, understanding the client request and ability to refactor the code in any cases, this my personal goal for the next year :-)

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Sonntag, 3. Dezember 2017
Cobol ist wieder im Trend.
Cobol ist sehr alte Programmiersprache , welche bei den IBM Mainframe's für die Business Anwendungen Millionenfach verwendet wird.
Einer meiner Kunden hat mich sogar gebeten und aufgefordert diese Sprache zu lernen, na ja wenn man dafür gut bezahlt wird Ich bin immer bei solche Situationen dafür und bin sehr Abenteuerlich :)
Hier ist ein sehr kleines Beispiel von Cobol:
IDENTIFICATION DIVISION.
PROGRAM-ID. HALLOWELT.
PROCEDURE DIVISION.
DISPLAY "Hallo Welt".
STOP RUN.
END PROGRAM HALLOWELT.
Nach meinem Geschmack ist die Sprache sehr Zähe und bei komplexen Logik kaum so einfach zu verstehen, wenn Ich die Wahl hätte Ich für C Sprache eindeutig entschieden da es einfach besser wenn man die beiden Programmiersprachen vergleich kann.
Ich kann mir kaum die Komplexität bei den älteren Cobol Anwendung vorstellen, eins ist aber sicher jemand muss diese Sprache verstehen und dann später in der Lage sein auf neue Programmiersprache zu portieren, wobei , dass ist auch ein Problem da in Cobol keine Lokal Scope gibt!
Man muss auch auf Typsicherheit bei Cobol aufpassen (ist dass überhaupt möglich ?).
Für mich die Frage wird sich während des Lernens ergeben (ca. 6 Monate in Teilzeit).
Zu der Cobol Frage , kommt die Frage ob man die Mainframe von heutzutage kennen braucht, ich würde sagen Ja , heutzutage an der Uni man kommt so selten zu den Mainframes Technologie .
Mein Appel an die Firmen: sorgen Sie für die Nachwuchs in dem Sie mit der Unis über bestimmte Technologien austauschen, es kann doch nicht wahr sein , dass die wirklich gute Fachleute ins Rente geschickt werden ohne vorher das Wissen an das zukünftige Generation vermittelt wurde! Ich sage mal es kostet deutlich mehr ohne Mentor sich das Wissen anzueignen als mit jemand der schon alle Strickfälle von der Programmiersprache gesehen hat.
Cobol ist im Trend , Java weiterhin auch im Trend, aber es gilt bei mir nach wie vor Kunde ist ein König!
Einer meiner Kunden hat mich sogar gebeten und aufgefordert diese Sprache zu lernen, na ja wenn man dafür gut bezahlt wird Ich bin immer bei solche Situationen dafür und bin sehr Abenteuerlich :)
Hier ist ein sehr kleines Beispiel von Cobol:
IDENTIFICATION DIVISION.
PROGRAM-ID. HALLOWELT.
PROCEDURE DIVISION.
DISPLAY "Hallo Welt".
STOP RUN.
END PROGRAM HALLOWELT.
Nach meinem Geschmack ist die Sprache sehr Zähe und bei komplexen Logik kaum so einfach zu verstehen, wenn Ich die Wahl hätte Ich für C Sprache eindeutig entschieden da es einfach besser wenn man die beiden Programmiersprachen vergleich kann.
Ich kann mir kaum die Komplexität bei den älteren Cobol Anwendung vorstellen, eins ist aber sicher jemand muss diese Sprache verstehen und dann später in der Lage sein auf neue Programmiersprache zu portieren, wobei , dass ist auch ein Problem da in Cobol keine Lokal Scope gibt!
Man muss auch auf Typsicherheit bei Cobol aufpassen (ist dass überhaupt möglich ?).
Für mich die Frage wird sich während des Lernens ergeben (ca. 6 Monate in Teilzeit).
Zu der Cobol Frage , kommt die Frage ob man die Mainframe von heutzutage kennen braucht, ich würde sagen Ja , heutzutage an der Uni man kommt so selten zu den Mainframes Technologie .
Mein Appel an die Firmen: sorgen Sie für die Nachwuchs in dem Sie mit der Unis über bestimmte Technologien austauschen, es kann doch nicht wahr sein , dass die wirklich gute Fachleute ins Rente geschickt werden ohne vorher das Wissen an das zukünftige Generation vermittelt wurde! Ich sage mal es kostet deutlich mehr ohne Mentor sich das Wissen anzueignen als mit jemand der schon alle Strickfälle von der Programmiersprache gesehen hat.
Cobol ist im Trend , Java weiterhin auch im Trend, aber es gilt bei mir nach wie vor Kunde ist ein König!

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Sonntag, 15. Oktober 2017
It is time to switch from Glassfish Server to Payara!!!
Hi folks just some random weekend experiments with Arquillian + Payara, it is well know framework which give you a possibility to remote test EJBs !
Screenshot from Unittest result! (Eclipse IDE)
The code which i worked with, wasn't my i got from Github ,
Previously i used embedded container , which wasn't good and not always worked as i expected (especially if we speaking about transactions in EJB) . Testing EJB in embedded container was always a lot of problem and headache.
Anyway i pretty happy about my experiment, and sure it's well overdue to switch from glassfish 4.1 to Payara or Glassfish 5, but really if i think about quality i rather pick Payara, because of the support 24/7 and quality of manuals and with compatibility with other frameworks.
For folks who trying to run Arquillian test against Glassfish version 4.1.2 just forget it , it wont work, i spent almost one day to figure it out, it make a lot fun, but for my customers probably not so much fun, because they must decide to swtich for another application server or the project fails, i certain there initial cost would be much more if they don't switch on time and yeah is heavy task , because some client run a lot of services on those old servers, well this is "normal" work.......
IT's time to switch to PAYARA!!!!!!!!
Screenshot from Unittest result! (Eclipse IDE)
The code which i worked with, wasn't my i got from Github ,
Previously i used embedded container , which wasn't good and not always worked as i expected (especially if we speaking about transactions in EJB) . Testing EJB in embedded container was always a lot of problem and headache.
Anyway i pretty happy about my experiment, and sure it's well overdue to switch from glassfish 4.1 to Payara or Glassfish 5, but really if i think about quality i rather pick Payara, because of the support 24/7 and quality of manuals and with compatibility with other frameworks.
For folks who trying to run Arquillian test against Glassfish version 4.1.2 just forget it , it wont work, i spent almost one day to figure it out, it make a lot fun, but for my customers probably not so much fun, because they must decide to swtich for another application server or the project fails, i certain there initial cost would be much more if they don't switch on time and yeah is heavy task , because some client run a lot of services on those old servers, well this is "normal" work.......
IT's time to switch to PAYARA!!!!!!!!

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Donnerstag, 3. August 2017
Warum Testgetriebene Entwicklung Goldwert ist?
Warum Testgetrieben Entwicklung Goldwert ist?
Der Anlass für diesen Blog war der Abschluss von sehr
erfolgreichen JEE Projekt (auf Basis JEE 7 Technologie) . In sehr kurze Zeit
habe Ich JSF, EJB, JPA Programmieraufgaben realisiert!
Aus Erfahrung weiss Ich, dass die Enterprise Projekte sind meistens keine „Sprint“ Projekte, in den meisten Fällen handelt es sich um „Marathon“ Strecken, trotzdem durch meine Arbeitsweise und den Streben nach Qualität und sehr methodischen Vorgehen bei der Realisierung von Projektteilen wurde es zum Erfolg geführt, wobei viele in den Projekt an den Erfolgt nicht geglaubt haben!
Aus Erfahrung weiss Ich, dass die Enterprise Projekte sind meistens keine „Sprint“ Projekte, in den meisten Fällen handelt es sich um „Marathon“ Strecken, trotzdem durch meine Arbeitsweise und den Streben nach Qualität und sehr methodischen Vorgehen bei der Realisierung von Projektteilen wurde es zum Erfolg geführt, wobei viele in den Projekt an den Erfolgt nicht geglaubt haben!
TDD : Test driven development
So ein Unsinn,
Ich stelle immer wieder fest, dass Ich mit den Vorurteilen zu kämpfen habe: TDD ist zu langsam , TDD führt nicht zum
Ziel , TDD wer soll diese Tests pflegen, TDD schütz nicht von eigene Dummheit,
TDD viel zu teur.
Was zeigt aber meiner Erfahrung, ich kann leider hier keine Einzelheiten
meines letzten Projektes public veröffentlichen,
aber man kann JSF(Managed Beans) , JPA und JMS; EJB Testgetrieben entwickeln!
Was spricht dafür?
Kommerzielle Software, muss sehr oft angepasst werden, und es gibt viele Gruppe von Programmierer ,
die behaupten nur durch sauberes Code und einhalten von Architektur kann man
sich „retten“, ich persönlich vertrete die andere Sicht dieses Spektrums.
Nach meiner
Meinung, sich auf eine bestimmte Architektur zu verlassen kann zu einer der
größten Fehler überhaupt führen!
Die Testgetriebene Entwicklung gibt ein sauberes Code und gibt mir meistens die Garantie, dass jeder Zeit meine Software an die chaotischen Kundenansprüchen angepasst werden kann, so dass die ganze Geschäftslogik nicht verletzt und oder die Datenbank Persistenz und Redundanz eingehalten werden kann.
Die Testgetriebene Entwicklung gibt ein sauberes Code und gibt mir meistens die Garantie, dass jeder Zeit meine Software an die chaotischen Kundenansprüchen angepasst werden kann, so dass die ganze Geschäftslogik nicht verletzt und oder die Datenbank Persistenz und Redundanz eingehalten werden kann.
Aber die Deadlines?
Die Deadlines müssen eingehalten werden
das stimmt, aber nicht um jeden Preis, der Quellcode soll immer wieder besser werden,
und nicht schlechter.
Nach ein Paar Jahren aktiver mitarbeit, bin Ich zum folgender Meinung gekommen:
für mich in so vielen
Projekten war es immer eine Mutprobe, sich quer zu stellen und zu sagen
warum ein Projekt soll länger laufen, einige Auftraggeber waren ehrlich darüber schockiert und verärgert,aber andere haben Verständnis dafür gezeigt und mir die nötige Zeit für den Abschluss des Projektes immer gegeben!
Bei den diejenigen wo keine Verständnis gibt, dort war auch für mich das Projektende und Ich habe keine Vorauszahlung dafür verlangt oder dafür das Geld erhalten habe, also beide Parteien blieben somit zufrieden!
Für die Zukunft aber, Ich möchte nur mit diejenige Firmen arbeiten, wo
meine Arbeitsweise von Anfang an akzeptiert wird, sonst lohnt sich aus meiner Sicht der Aufwand nicht, da Ich für die schlechte Quellcode nicht verantwortlich oder
zuständig weiterhin bleiben will

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Sonntag, 23. Juli 2017
Weiterbildung bei Comcave ?
Weiterbildung bei
Comcave ?
Diese Frage muss sich jeder, der bei Comcave anfangen will, stellen.
Denn die Weiterbildung bei Comcave kostet was. Wird die
Frage mit JA beantwortet, würde ich dazu raten, diesen Blog unbedingt zu lesen und danach sich
die Frage erneut zu stellen.
Wer meine Einträge hier liest, weiß auch, dass es mir bei
den Themen um das wesentliche geht. Als technisch veranlagter Mensch rede ich nur
ungern wortreich drumherum, sondern komme meistens schnell zu den Fakten.
Nun, nach mehreren Monaten bei Comcave und fachlich
erfolgreichen Leistungen, die zwar meiner eigenen “Lernarbeit“ zu verdanken sind jedoch während der
Weiterbildung erbracht worden waren, kann ich einiges über die “Ausbildung“ bei Comcave berichten.
Das, was Sie hier lesen, betrifft nur den Standort in
Nürnberg. Über die anderen Standorte
kann ich hier nicht berichten, weil ich dort
nie persönlich anwesend war und
deshalb nur vermuten kann, wie es dort gewesen.
Wie ist Comcave
aufgebaut?
Comcave hat überall in Deutschland Standorte. Die Comcave
Räumlichkeiten bestehen aus Büros, in welchen man unabhängig von der
Weiterbildungsmaßnahme zwei Bildschirme und einen leistungsstarken PC mit einer
guter Bandbreite Verbindung bekommt. In jedem Büro gibt es jeweils einen Laserdrucker und für jeden Arbeitsplatz bekommt man eigene
Kopfhörer.
Die Kommunikation mit Dozenten läuft über Skype. Die Dozenten selbst
befinden sich meistens in unterschiedlichen EU Ländern oder aber auch in
Deutschland, manche unterrichten vor
Ort, bei Comcave Standorten, es hängt tatsächlich vom jeweiligen Dozenten und der
Weiterbildungsmaßnahme ab. Die Anzahl der Teilnehmer (in virtuellen Zimmern in
Skype) kann bis zu 25 Studenten sein, in meinem Fall es war nur 10 Teilnehmer.
Für die Kommunikation mit Comcave “Studenten“ wird Skype for Business verwendet
und es gibt die Möglichkeit, komplett von zu Hause aus zu lernen (darüber erzähle Ich später).
Nun passt alles
und man kann ja wunderbar lernen, nicht wahr?!
Man hat doch die Dozenten mit Erfahrung, ausreichende Unterrichtsmaterialen und andere Kursteilnehmer, die einander motivieren und unterstützen.
Man hat doch die Dozenten mit Erfahrung, ausreichende Unterrichtsmaterialen und andere Kursteilnehmer, die einander motivieren und unterstützen.
Leider stimmt das
nicht so ganz. Der Dozent, wenn man glückt hat, stellt alle Unterrichtsfolien
schon vor Kursbeginn zur Verfügung. In meinem Kurs hat der Dozent die Folien während des Frontalunterrichts vorbereitet!
Ich würde hier keinem die Schuld zuweisen, aber eigentlich erwartet man, dass die Unterrichtsmaterialen im Voraus schon vorbereitet und ausgeteilt werden und man sich im Unterricht auf die vermittelnden Inhalte konzentrieren kann.
Ich würde hier keinem die Schuld zuweisen, aber eigentlich erwartet man, dass die Unterrichtsmaterialen im Voraus schon vorbereitet und ausgeteilt werden und man sich im Unterricht auf die vermittelnden Inhalte konzentrieren kann.
Besonders störend und schlimm waren die ständigen Nebengeräusche
aus dem Raum, wo der Dozent während des Unterrichts saß. Dies wurde von mir und
anderen Teilnehmer mit Qualitätsmanagement
von Comcave mehrmals thematisiert
und besprochen.
Leider hat das Qualitätsmanagement von Comcave meiner Meinung nach nichts unternommen, um den Dozenten dazu zu
bewegen, seinen Skype-Unterricht aus besseren Räumen zu halten.
Das nächste Problem
bei Comcave ist, dass die Dozenten meistens überlastet sind, die meisten
führen mehrere Kurse parallel. Warum ist es schlecht, würden Sie mich fragen?
Nun, wenn ein Dozent vergisst, die Aufgaben mit der
Lerngruppe rechtzeitig zu besprechen, dann aber schon zum neuen Stoff eilt,
auch wenn der vorherige Stoff noch nicht ganz und im besten Fall nur teilweise
von Kursteilnehmern verstanden wurde, ist es alles andere als effektiver
Lernprozess. Man bekommt genügend Unterrichtsmaterialen und die Zeit, diese
durchzuarbeiten, aber dann frage ich mich,
welche Rolle eigentlich der Dozent dabei spielt? Jemand, der die Aufgaben an die Kursteilnehmer
verteilt? Den Großteil der Zeit bei Comcave
habe Ich mit Selbststudium verbracht.
Von Anfang an gibt es bei Comcave-Kursen genügend
Unterrichtsmaterialien. Ich habe ein sehr gutes Buch von Comcave bekommen, aber
warum mein Dozent in so vielen Monaten darauf nicht einmal eingegangen ist,
wird für mich ein Rätsel bleiben.
Gruppenarbeit? Klar
müssen die Kursteilnehmer untereinander kommunizieren. Das habe ich auch versucht, zu organisieren. Aber da es von
Comcave-Seite anscheinend keine Interesse besteht, die Leute in die
Gruppenarbeit zu motivieren, hat die Gruppenarbeit auch nicht funktioniert.
Viele Teilnehmer wollen nur Frontalunterricht und für die Gruppenarbeit ist die
Interesse minimal groß. In meinen Augen ist es ein Nachteil, wenn die Leute an
einem Ziel zusammen nicht arbeiten können.
Durch meine Erfahrungen als Freiberufler und mein Bildungshintergrund (IHK Ausbildung zum Fachinformatiker Anwendungsentwickler, Fernstudent Informatik), besitze Ich bereits die nötige Erfahrung, mir neues Wissen problemlos und eigenständig anzueignen.
Die zwei Zertifikate von Oracle als Java Programmierer, die
ich während der Weiterbildung bei Comcave erfolgreich gemacht habe, sind ein
deutliches Beweis von meiner Fertigkeiten und Fähigkeiten als Java Entwickler.
Ich denke in diesem Zusammenhang, ich war eher
eine Ausnahme da einige Comcave Studenten und die anderen Kursteilnehmer
keinen Erfolg in ihrem Lernen erzielt haben.
An dieser Stelle möchte ich auch die Problematik der Lernform von zuhause aus ansprechen, die Comcave anbietet. Es gibt Skype Kommunikationsprobleme. Comcave verwendet alte Server Infrastruktur für privates Skype Netz und deshalb hat man ständige Probleme mit der Verbindung von außen ins Skype Netz von Comcave reinzukommen (besonders schlimm wenn jemand IPV6 verwendet).
Schlimmer kann es nicht werden?
Doch! Die Räumlichkeiten bei Comcave, Standort Nürnberg, besitzen keine Klimaanlage, da wurde sehr “gut“ gespart. Damit man sich es vorstellen kann: Sommer 2017, Temperatur in Büros 30 Grad aufwärts, in manchen sogar über 30 Grad. Nach zwei Wochen Hitze hat Comcave schließlich mit Wasser an Leute austeilen reagiert.
Meiner Meinung nach war die Reaktion der Weiterbildungstätte sehr verzögert. Comcave Studenten waren durch die enorme Hitze in Lernräumen unkonzentriert, manche haben geschlafen, somit zwei Wochen an Lernstoffaufnahme sicher verloren. Meine Lösung in der Situation war es, den eigenen Ventilator von zuhause mitzubringen und zumindest an meinem Arbeitsplatz dank der kühlen Temperaturen effizient und produktiv zu lernen. Comcave hat mir gegenüber bestätigt, dass die entsprechenden Klimaanlagen bereits gekauft worden waren, das genaue Lieferdatum stand aber nicht fest.
Prüfungen
Wie verlaufen die Prüfungen bei Comcave?
Wie verlaufen die Prüfungen bei Comcave?
Sehr unterschiedlich.
Bei mir war es die Oracle Zertifizierung und die Interne Klausuren.
Man muss sich eigenständig für die Oracle Zertifizierung anmelden und dann 20 Minuten vor der Prüfung pünktlich erscheinen. Wenn man Glück hat, hat der Comcave Admin die Anmeldung schnell verbucht. So wie es bei meiner letzten Prüfung war, musste ich 15 Minuten warten bis Comcave den Pearsonvue für die Prüfung bezahlt hat!
Man muss sich eigenständig für die Oracle Zertifizierung anmelden und dann 20 Minuten vor der Prüfung pünktlich erscheinen. Wenn man Glück hat, hat der Comcave Admin die Anmeldung schnell verbucht. So wie es bei meiner letzten Prüfung war, musste ich 15 Minuten warten bis Comcave den Pearsonvue für die Prüfung bezahlt hat!
Fazit: Wenn Sie was vernünftig bei Comcave
lernen wollen, dann stellen Sie sich auf selbstständiges Lernen ein. Die eigentliche Kursbetreung empfehle
Ich als ergänzende Lernmaßnahme zu betrachten, da die nur ein Bruchteil Ihres zukünftigen Erfolges ist.
Ich würde die Weiterbildung bei Comcave keinem empfehlen, vor allem wenn Sie bis jetzt durch Schule, Universität, Berufsausbildung “geführt“ zum Lernerfolgt wurden und keine Erfahrung mit Selbststudium gemacht haben.
Lernen bei Comcave
ist harte selbständige Arbeit, die mit chaotischen und oft widersprüchlichen
Umständen verbunden ist.
Mit diesem Beitrag möchte ich bewirken, dass Comcave als Anbieter der Weiterbildung sich über die Problemen klar wird und so schnell wie möglich, sich im Vermitteln der Kursinhalte und in der Qualität verbessert.
Fazit:
Nach meiner Meinung: die aktuelle Geschäftsmodell von Comcave basiert kaum auf die Organisation des
erfolgreichen Lernprozesses und verfehlt somit
seine eigene Ziele. Ich denke nicht, dass Comcave, in der aktuellen
Form, auf Dauer sich als profitables Unternehmen im Sektor
der Weiterbildung erweisen wird, weil
die Konkurrenz entwickelt sich ständig und bietet deutlich bessere und flexible
Lerngänge (ein Beispiel IBB AG ist.

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Mittwoch, 10. Mai 2017
Gründe für den Fachkräftemangel in Deutschland!!
Den Anlass für diesen Beitrag war ein Gespräch mit einem Geschäftsführer von einer großen IT Unternehmen hier in Bayern.
Es geht um die Problematik des Fachkräftemangels und fehlenden Senior Entwickler,
Ich würde aus Datenschutzgründen den Geschäftsführer mit Jürgen Kennzeichen, hier ist kurze Ausschnitt meines Gespräches:
Zitat Anfang:
Jürgen: Herr Orlovsky, viele Dank für Ihre Unterstützung bei den Projekt XY, dank Ihnen wurden unsere Prozesse stark verbessert und optimiert.
Ich: Es freut mich zu hören, jedoch muss Ich Ihnen mitteilen, wenn Sie Ihren Betrieb aufrechterhalten wollen, dann müssen Sie die Option in Erwägung ziehen vielen unerfahrenen Mitarbeiter einstellen und denen, dass nötige Fachwissen und Erfahrung beibringen damit Ihren Unternehmen weiterhin gut geht.
Ich: Sie suchen gerade nach Senior’s mir es auch bewusst, dass es um sehr anspruchsvolle Facharbeit sich handelt, welche von den passenden Facharbeiter mit besondere Skills erledigt werden muss. Gleichzeitig ich habe mit Ihren CTO gesprochen und er meinte, man kann die schwierigsten Arbeiten in mehrere Aufgaben trennen, so dass diese auch von weniger erfahrenen Entwickler zu meistern sind.
Jürgen: Ich weiß Ihre Meinung zu schätzen, Herr Orlovsky , aber denken Sie an unsere Kosten, Sie kennen bereits unsere Kunden , welche sehr Anspruchsvoll und Penibel sind und lassen uns keinen Pfenning locker, wenn einer unsere Projekte in Verzug kommt , dann sind wir dran , wenn wir unerfahrene Leute einstellen , dann wird es definitiv zum Nachteil für das Betrieb sein und außerdem wir haben dafür keine weiter Kapazitäten.
Ich: Herr Jürgen, Ich habe darüber nachgedacht und hier ist mein Vorschlag; Sie sprechen mit Ihren Kunden über die Situation und machen es deutlich , dass Ihre Kapazitäten bereits erreicht wurden und jetzt damit es Reibungslos verläuft brauchen Sie die begrenzte Mittel um weitere Anforderungen zu implementieren.
Jürgen: Nein, dass kann Ich nicht, der Kunde wird in so einer Situation zur Konkurrenz wechseln!
Ich: Ich habe auch darüber nachgedacht, dann sagen Sie zu der Kunde, wir haben immer die Qualitätsprodukte abgeliefert und Ihnen muss kein weiteres Zweifel aufkommen, dass es auch in der Zukunft so passieren wird, aber die Zeiten ändern sich , es kann nicht sein , dass bei gleicher Leistung deutlich mehr rauskommt als es vorher war.
Jürgen: Wissen Sie Herr Orlovsky Ich glaube Sie nehmen sich viel zu viel Gedanke darüber.
Ich: Herr Jürgen , Ich respektiere Ihre Meinung und auch Ihre Entscheidungen, ein Veränderung in Kunden Beziehungen ist immer ein Risiko , aber nach meiner Meinung und Erfahrungen so ein Geschäftsprozess wird auf die Dauer nicht halten können , Sie wissen ich bin unterwegs auch in anderen Unternehmen und viele Seniors dort können sich ein Wechsel, nur dann vorstellen wenn der Gehalt deutlich grösser als die Angebote welche Sie bis jetzt an die entsprechende Kandidaten unterbreiten haben.
Zitat Ende
Was will Ich damit sagen, es gibt in Deutschland ein verstecktes Problem die über den Fachkräftemangel hinaus geht, zu viele Geschäftsführer haben den Angst von Versagen und das ist ein der Gründe warum nur wenige lassen sich auf Risiko bei der Einstellung von neuen Mitarbeiter ein und die meisten auf Nummer sicher gehen wollen. Wie ist Ihre Meinung dazu?
Es geht um die Problematik des Fachkräftemangels und fehlenden Senior Entwickler,
Ich würde aus Datenschutzgründen den Geschäftsführer mit Jürgen Kennzeichen, hier ist kurze Ausschnitt meines Gespräches:
Zitat Anfang:
Jürgen: Herr Orlovsky, viele Dank für Ihre Unterstützung bei den Projekt XY, dank Ihnen wurden unsere Prozesse stark verbessert und optimiert.
Ich: Es freut mich zu hören, jedoch muss Ich Ihnen mitteilen, wenn Sie Ihren Betrieb aufrechterhalten wollen, dann müssen Sie die Option in Erwägung ziehen vielen unerfahrenen Mitarbeiter einstellen und denen, dass nötige Fachwissen und Erfahrung beibringen damit Ihren Unternehmen weiterhin gut geht.
Ich: Sie suchen gerade nach Senior’s mir es auch bewusst, dass es um sehr anspruchsvolle Facharbeit sich handelt, welche von den passenden Facharbeiter mit besondere Skills erledigt werden muss. Gleichzeitig ich habe mit Ihren CTO gesprochen und er meinte, man kann die schwierigsten Arbeiten in mehrere Aufgaben trennen, so dass diese auch von weniger erfahrenen Entwickler zu meistern sind.
Jürgen: Ich weiß Ihre Meinung zu schätzen, Herr Orlovsky , aber denken Sie an unsere Kosten, Sie kennen bereits unsere Kunden , welche sehr Anspruchsvoll und Penibel sind und lassen uns keinen Pfenning locker, wenn einer unsere Projekte in Verzug kommt , dann sind wir dran , wenn wir unerfahrene Leute einstellen , dann wird es definitiv zum Nachteil für das Betrieb sein und außerdem wir haben dafür keine weiter Kapazitäten.
Ich: Herr Jürgen, Ich habe darüber nachgedacht und hier ist mein Vorschlag; Sie sprechen mit Ihren Kunden über die Situation und machen es deutlich , dass Ihre Kapazitäten bereits erreicht wurden und jetzt damit es Reibungslos verläuft brauchen Sie die begrenzte Mittel um weitere Anforderungen zu implementieren.
Jürgen: Nein, dass kann Ich nicht, der Kunde wird in so einer Situation zur Konkurrenz wechseln!
Ich: Ich habe auch darüber nachgedacht, dann sagen Sie zu der Kunde, wir haben immer die Qualitätsprodukte abgeliefert und Ihnen muss kein weiteres Zweifel aufkommen, dass es auch in der Zukunft so passieren wird, aber die Zeiten ändern sich , es kann nicht sein , dass bei gleicher Leistung deutlich mehr rauskommt als es vorher war.
Jürgen: Wissen Sie Herr Orlovsky Ich glaube Sie nehmen sich viel zu viel Gedanke darüber.
Ich: Herr Jürgen , Ich respektiere Ihre Meinung und auch Ihre Entscheidungen, ein Veränderung in Kunden Beziehungen ist immer ein Risiko , aber nach meiner Meinung und Erfahrungen so ein Geschäftsprozess wird auf die Dauer nicht halten können , Sie wissen ich bin unterwegs auch in anderen Unternehmen und viele Seniors dort können sich ein Wechsel, nur dann vorstellen wenn der Gehalt deutlich grösser als die Angebote welche Sie bis jetzt an die entsprechende Kandidaten unterbreiten haben.
Zitat Ende
Was will Ich damit sagen, es gibt in Deutschland ein verstecktes Problem die über den Fachkräftemangel hinaus geht, zu viele Geschäftsführer haben den Angst von Versagen und das ist ein der Gründe warum nur wenige lassen sich auf Risiko bei der Einstellung von neuen Mitarbeiter ein und die meisten auf Nummer sicher gehen wollen. Wie ist Ihre Meinung dazu?

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Freitag, 21. April 2017
Was muss man lernen um einen Senior Entwickler zu werden?
Hi all!
Es gibt wieder ein Anlass ein neues Beitrag zu schreiben.
Ich wurde von einen Festangestellten Junior Mitarbeiter gefragt was muss man lernen um einen Senior Entwickler zu werden?
Nun Ich selber kein Senior bin, Ich bin nach meiner Erfahrungen eher ein Middle Entwickler, aber aus meinen großen Bekanntenkreis habe Ich ein Senior darüber gefragt.
Hier habe Ich folgender Antwort darauf bekommen:
Ich wurde von einen Festangestellten Junior Mitarbeiter gefragt was muss man lernen um einen Senior Entwickler zu werden?
Nun Ich selber kein Senior bin, Ich bin nach meiner Erfahrungen eher ein Middle Entwickler, aber aus meinen großen Bekanntenkreis habe Ich ein Senior darüber gefragt.
Hier habe Ich folgender Antwort darauf bekommen:
Anfang von der Zitat:„Ein Senior hat nicht nur das Wissen, sondern auch die
erforderliche Projekterfahrungen (mind.
5 Jahre Projekterfahrung als Entwickler) aus unterschiedlichen Domänen, er
weiß genau welchen Programmierstil und Entwurfsmuster für die unterschiedliche
Probleme anzuwenden.
Hier sind die 11 wichtigsten Kriterien von einem Senior Entwickler:
Kriterium 1:
kennt sich sehr gut mit Themen wie z.B „Reflection“ und auch Multithreading
aus, er weiss genau in welchen Fällen diese Technologien anzuwenden und auch die
Fälle wo man es nicht verwenden darf.Hier sind die 11 wichtigsten Kriterien von einem Senior Entwickler:
Kriterium 2: lernt immer neuen Programmiertechniken/Sprachen/Frameworks und Interessiert sich für Domänenkomplexität und hat meistens eine Fachgerechte und Konkrete Vorstellung über den gesamten Prozess der Entwicklung. Ein Senior besitzt sehr gute Vorstellung über die Architektur der entwickelten Software.
Kriterium 3: kennt die Fallstricken von unterschiedlichsten Programmiersprachen, Datenbanken, Frameworks, Versionsverwaltungssystemen und auch Anwendungsservern.
Kriterium 4: kann bei der Produktivsystem in der Echtzeit die Anpassungen an den Quellcode durchführen und sofort es auf den entsprechenden Produktivserver einsetzen. Wichtiges Nebeneffekt von dieser Arbeit, der Endbenutzer muss darüber nichts mitbekommen, kein Abstürz, kein langsames nachladen der Webseite.
Kriterium 5: kann für ein veraltetes Framework eine Programmierlösung abliefern, so dass altes Framework in neuer Umgebung ohne irgendwelche Schwierigkeiten laufen kann.
Kriterium 6: dadurch , dass man mit unterschiedlichen Softwarearchitekturen bereits gearbeitet hat, weiss ein Senior genau wie Speicher von den Prozessor adressiert wird, bei C++ und C ist es sehr wichtig auch bei Java wenn man dort die Aufrufe von native Code hat. Generell ein Senior hat sehr gründliche Kenntnisse über die Hardware (CPU Caches, Bus, Chipsatz etc)
Kriterium 7: Weißt genau welche die Features für ein Endprodukt von Bedeutung sind, besonders in der Anfangsphase, wo noch vieles unklar ist.
Kriterium 8: Besitzt durch seine Erfahrungen die Fähigkeiten die Komplexe Problemdomänen in kleine lösbare Design Patterns zu teilen und auch ein Spielraum lassen, so dass die Endlösung für weitere und neue Anforderungen zu implementieren ist.
Kriterium 9: Ein Senior wirkt meistens als Katalysator, der neigt eine Mittellösung zu wählen, es kommt natürlich darauf ob die anderen Teilnehmer der Gruppe dafür überzeugt werden können, es gibt manchmal sehr starke Streitigkeiten, aber ein Senior ist immer Sachkundig und Fachkundig, so dass seine Meinung mehr der Realität entspricht, letztendlich es geht um die Verantwortung, der Senior ist meistens sich bewusst welche Probleme entstehen können , falls die eine oder andere von den Benutzer verursachte Interaktion mit der Anwendung zum einem schwerwiegenden Bug führen kann.
Kriterium 10: Sich selbst und andere zu bilden, dieses Kriterium sehr selten zu sehen, aber ein Senior muss sein Wissen ständig verbessern und an die anderen Teilnehmer in seinen Team weitergeben.
Kriterium 11: in den meisten Fällen hört die Geschäftsleitung und Management auf die Meinung von einem Senior wenn es sich z.B um die Einstellung von neuen Mitarbeiter und oder Herausgabe von den fertiggestellten Produkt sich handelt.
Diese Liste von Kriterien ist nicht komplett und nicht vollständig, sollte aber die allgemeine Vorstellung geben welche Kriterien man sich im laufe der Projektarbeit eineignen muss um sich ein Senior Titel verdienen zu können, man muss auch folgendes beachten: dass ein Senior in einer Firma bei einer anderen Firma nicht automatisch als Senior eingestuft werden kann, da demjenigen das Wissen über die in dieser Firma eingesetzten Technologie und interne Geschäftsabläufe fehlt. “Zitat Ende
Nochmals vielen Dank an meinen Bekannten für diesen Einblick in die Kriterien von Seniorität!!!
Fazit: um einen Senior zu werden man muss viel Projektarbeit leisten, dazu gehört wie angegeben viel , sehr viel Zeit in das Lernen von Neuartigen Technologien investieren zu können und auch es entsprechend in der Praxis nachweisen können!

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Sonntag, 16. April 2017
Why I personally don’t like to use C++ in business projects
Why I personally don’t like to use C++ in business
projects:
I decided to write two
articles, because one day i was asked by one of my clients why i refuse
to work on projects where C++ mixed with Java, second reason I want to capture
my thought pattern after reading book
Bjarne Stroustrup Programming principles and practice using C++ (1634
Pages book!).
Before you read further, please notice this is my
personal subjective opinion, I am Oracle certified Java developer after all, so
consider this as last warning. This article consist technical stuff only, read
my previous blog about business side.
Now, I will give there some good points about why I prefer to work with Java rather then
with C++:
First: C++
has a huge inheritance problem, so called
deadly diamond problem:
So we have 3 Classes Father, Mother , Son, Daughter,
Son and Daughter both inherit the constructor of Father and Mother , personally
I find very nasty the way of class declaration in separate header files, C++
separates declarations (header files) and definitions (in cpp files) (not my
taste!)
Look at this “hell”:
//contents of Daughter.h
#ifndef DAUGHTER_H
#define DAUGHTER_H
#include "Mother.h"
#include "Father.h"
class Daughter : public Father, public Mother
{
public:
//destructor
~Daughter();
};
#endif
//contents of Daughter.cpp
#include <iostream>
#include <string>
#include "std_lib_facilities.h"
#include "Mother.h"
#include "Father.h"
#include "Daughter.h"
Daughter::~Daughter(){
cout << "goddbye from
daughter!!!";
}
//contents
of Son.h
#ifndef SON_H
#define SON_H
#include "Mother.h"
#include "Father.h"
class Son: public Father, public Mother
{
public:
//destructor
~Son();
};
//contents of Son.cpp
#include "std_lib_facilities.h"
#include "Mother.h"
#include "Father.h"
#include "Son.h"
Son::~Son(){
cout << "Goodbye from son!";
}
#ifndef MOTHER_H
#define MOTHER_H
class Mother
{
public:
Mother();
//destructor
~Mother();
};
//contents of Mother.cpp
#include "std_lib_facilities.h"
#include "Mother.h"
Mother::Mother() { cout
<< "Hello from Mother!!!";
}
Mother::~Mother(){
cout
<< "Goodbye from father!!! ";
};
//contents of Father.h
#ifndef FATHER_H
#define FATHER_H
class Father
{
public:
Father();
//destructor
~Father();
};
//contents
of Father.cpp
#include "std_lib_facilities.h"
#include "Father.h"
Father::Father(){
cout
<< "Hello from Father!!!";
}
Father::~Father(){
cout
<< "Goodbye from father!!! ";
}
//contents of TESTOOP.cpp
#include "std_lib_facilities.h"
#include "Father.h"
#include "Mother.h"
#include "Son.h"
#include "Daughter.h"
int main()
{
cout
<< "Call to Father -> ";
Father
fatherObj;
cout
<< endl;
cout
<< "Call to Mother -> ";
Mother
motherObj;
cout
<< endl;
cout
<< "Son inhert: ";
Son
sonObj;
cout
<< endl;
cout
<< "Daughter inhert: ";
Daughter daughterObj;
getchar();
return 0;
}
Second: C++
allows to use pointers (pointer madness) see the following example:
In this example you can read what the code doing , but imagine in the real world where you have thousand or more variables and each of this you can directly access via pointer, this is pure madness to work with such code!!
In this example you can read what the code doing , but imagine in the real world where you have thousand or more variables and each of this you can directly access via pointer, this is pure madness to work with such code!!
#include
"std_lib_facilities.h"
int
main()
{
int
number1 = 220;
int*
pointerToNumber;
int*
pointerToAPointer;
int*
pointerToAPointerToAPointer;
pointerToNumber = &number1; //<-- this pointer hold the address of number1
pointerToAPointer = pointerToNumber; // <-- pointerToAPointer hold the address of
pointerToNumber!!!
pointerToAPointerToAPointer =
pointerToAPointer; ////
<--pointerToAPointerToAPointer hold the address of pointerToNumber!!!
cout << "Value
of a pointerToNumber "<< *pointerToNumber << " address " << pointerToNumber;
cout << "\nValue
of a pointerToAPointer "<< *pointerToAPointer << " address " << pointerToAPointer ;
cout << "\nValue
of a pointerToAPointerToAPointer " <<
*pointerToAPointerToAPointer << "
address " << pointerToAPointerToAPointer;
getchar();
return 0;
}
Third: C++
provides direct access to memory (random memory corruption!!!) here is example:
Access a memory which has nothing to do with your
application, this is just unsafe in modern world where your application must be
fast and safe and work in different environments!!!
#include
"std_lib_facilities.h"
#include<stdio.h>
int
main()
{
int *p=(int *)0x00402000;
// acces to memory!!!!!
printf("%d",*p);
printf("%p",
p); // what
have we here
getchar();
return 0;
}
Forth: C++
has problem with type checking == weakly typed system here is example
int
main()
{
int a =
125;
bool
problemState;
problemState = (bool)a;
cout << "Result
"<< problemState;
getchar();
return 0;
}
In my opinion this very , very bad, because you lose
value integrity.
Five:
C++ allows memory leaks, this is especially nasty, I saw some projects, people actually
did overworked in such cases! Here is
simple example:
#include
"std_lib_facilities.h"
int
main()
{
// This works!
int *
pointerToInt = new int;
delete
pointerToInt;
// Memory leak
int * q = new int;
// no delete
getchar();
return 0;
}
Six: C++
have some standardization issues , even the
author of C++ Bjarne Stroustrup have spoken about it!
C++ by nature is very platform dependent (Except if
you can do all your work in ANSI C++!!!), so don’t tell me that C++ can be
easily ported to any platform, it’s not true (especially if you use libraries from
Microsoft Environment but your requirements tell you to port application to
Linux )!!!
Where and how
to use C++?
I think C++ it’s like a weapon with high damage and precision
rate, if you need to take one aim exactly as you imagine then go for it, but if
you need general purpose language consider Java a quick and fast way to achieve
the goal with safe net of unit tests. Java already provides large number of
useful frameworks.
Summary:
as you can see C++ is not easy to understand and to master, there are pitfalls
which just wait for you to fall in, if you decide to use this language in your
business, then expect big and bumpy ride
to your initial goal, but don’t take me wrong, I think C++ is great language
but it has very special usage domain and can be very good for solving some
special problems. My last advise would be at any time aware what you doing and
write lots of unit test, don’t give up to the pressure which some management “give
you”, you are responsible for your code and as professional you should care
what you writing as final product!

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Dienstag, 11. April 2017
Using C++ in your project is risky for your business success!!
I decided to write two articles, because one day i was
asked by one of my clients why i refuse to work on projects where C++ mixed
with Java, second reason I want to capture my thought pattern after reading
book Bjarne Stroustrup Programming
principles and practice using C++ (1634 pages book!).
Before you read further, please notice this is my
personal subjective opinion, I am Oracle certified Java developer after all, so
consider this as last warning. This article consist two parts one is technical
only and another business only.
How exactly C++ can affect your business operations?
Through all of my carrier I saw many project some good and some bad, I consider IT professionals 100 % responsible for business decisions, so if we techies make bad decisions we can actually can harm the company revenue and make it bankrupt!
Let me put a business hat on, okay assume you are a hardware manufacturer who develops equipment for communication companies, the software for this equipment written in C++. For the next years your revenue numbers are great and the codebase of your product is huge. One day one of the customers tell you, that your competitor sells better equipment and has cheap prices. So what will you do? Typical management decision will be to go the R&D department and ask the folks to make even better product and research what new features the customer is willing to pay. You schedule new plan (hopefully agile!) and all should go well, right?
Remember you have a legacy product and devs heavily at “working” and typical C++ thing happens, you starting to get notice the development slowdown, seniors and teamleads starting to report about strange and very difficult bugs to fix (hire new devs?), estimates must be adjusted and future release at danger ? Did you ask yourself why development based on legacy code slow down?
This is even worse in C++ projects, so I decide to give you some hints:
Basically C++ programming language gives to a programmer ultimate access to the memory of a device , there no restriction at all! Typical pattern of C++ Programmer will be to write an algorithm which does some complicated logic and then release memory back to the operating system. Let’s imagine that some bad day happens and C++ Programmer forgets to free up the memory and strangely enough everything works! The QA department report that sometimes software takes too much time and freeze or slow down, the developers say it must be the testing computers are too bad and the QA should upgrade them. It can be truth sometimes, but it can be a simple lie, because of the bug which is difficult to catch which cause the memory leaking.
If you happened to be in such case, then you have only one possible solution : to make a code review and hire external workforce which should be very good trained professional c++ developer, who can go through tons lines of codes and exactly pinpoint where the bug was created and fix it. From business point of view such development activity can only result in 100% failure in delivery of product on time and there no guarantee that new bugs wouldn’t introduce or discovered!
How exactly C++ can affect your business operations?
Through all of my carrier I saw many project some good and some bad, I consider IT professionals 100 % responsible for business decisions, so if we techies make bad decisions we can actually can harm the company revenue and make it bankrupt!
Let me put a business hat on, okay assume you are a hardware manufacturer who develops equipment for communication companies, the software for this equipment written in C++. For the next years your revenue numbers are great and the codebase of your product is huge. One day one of the customers tell you, that your competitor sells better equipment and has cheap prices. So what will you do? Typical management decision will be to go the R&D department and ask the folks to make even better product and research what new features the customer is willing to pay. You schedule new plan (hopefully agile!) and all should go well, right?
Remember you have a legacy product and devs heavily at “working” and typical C++ thing happens, you starting to get notice the development slowdown, seniors and teamleads starting to report about strange and very difficult bugs to fix (hire new devs?), estimates must be adjusted and future release at danger ? Did you ask yourself why development based on legacy code slow down?
This is even worse in C++ projects, so I decide to give you some hints:
Basically C++ programming language gives to a programmer ultimate access to the memory of a device , there no restriction at all! Typical pattern of C++ Programmer will be to write an algorithm which does some complicated logic and then release memory back to the operating system. Let’s imagine that some bad day happens and C++ Programmer forgets to free up the memory and strangely enough everything works! The QA department report that sometimes software takes too much time and freeze or slow down, the developers say it must be the testing computers are too bad and the QA should upgrade them. It can be truth sometimes, but it can be a simple lie, because of the bug which is difficult to catch which cause the memory leaking.
If you happened to be in such case, then you have only one possible solution : to make a code review and hire external workforce which should be very good trained professional c++ developer, who can go through tons lines of codes and exactly pinpoint where the bug was created and fix it. From business point of view such development activity can only result in 100% failure in delivery of product on time and there no guarantee that new bugs wouldn’t introduce or discovered!
There I make my point, C++ can be very dangerous for
your business if you don’t check and
test your code base, in general most times programmers are highly trainer, but
it doesn’t mean that they can’t make a dumb mistakes for example because of short
attention span of human being and other distractions(meetings, telephone calls,
music, after work party).
Many senior C++ developers would 100% disagree with my opinion, but this is reality in which they live, they are used to it and personally I am ok with it. To be successful in C++ you must continuous check your codebase and make sure that no memory leak bugs appear and don’t forget C++ is a heavily dependent on hardware, as C++ programmer one should be aware about compiler optimization options. So let’s summarize:
Many senior C++ developers would 100% disagree with my opinion, but this is reality in which they live, they are used to it and personally I am ok with it. To be successful in C++ you must continuous check your codebase and make sure that no memory leak bugs appear and don’t forget C++ is a heavily dependent on hardware, as C++ programmer one should be aware about compiler optimization options. So let’s summarize:
C++ provides direct access for memory which is good
and bad , bad because as developer you can make a mistake and forget about it
and only when you test the application your realize it, by that time you
already burn your money! Good you can make very fast and robust application but
is a price high enough (slow development phases, random at runtime memory
leaks) ?
I consider C/C++ as interesting and useful languages but I have a feeling that this languages after many years usage by the developers worldwide did transformed from general purpose languages to very specialized ones with domains like automobile, avionics and other very specialized industries and where hardware platforms are stable and work at least 10 year without any failure. Another point which I must underline, C++ must be used only by highly trained professionals, in my experience this is actually a very high cost-active expense, but what is better to allow memory leak bugs or to have somebody that caution at any time about such issues?
My last advise for business make sure that developer teams write unit tests, I saw to many projects which fails, because the developers assume that they don’t have enough time to test they stuff!
I consider C/C++ as interesting and useful languages but I have a feeling that this languages after many years usage by the developers worldwide did transformed from general purpose languages to very specialized ones with domains like automobile, avionics and other very specialized industries and where hardware platforms are stable and work at least 10 year without any failure. Another point which I must underline, C++ must be used only by highly trained professionals, in my experience this is actually a very high cost-active expense, but what is better to allow memory leak bugs or to have somebody that caution at any time about such issues?
My last advise for business make sure that developer teams write unit tests, I saw to many projects which fails, because the developers assume that they don’t have enough time to test they stuff!

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Donnerstag, 16. März 2017
Ich bin kein Arschküsser oder Schleimer von Vorgesetzten /Auftraggeber!!!
Grund dafür ist folgende: heute habe Ich erneut mit einem
Auftraggeber heiß diskutiert.
Es ging um meine Einstellung gegen Vorgesetzte und
Auftraggeber, mein Ansprechperson meinte ich bin arrogant, unhöflich sehr
pinnerlich und verzögere die Entwicklung durch die Verwendung von JUnit Tests.
Es mag so sein, aber Ich bin in erste Linie für meine Arbeit
durch meinen eigenen Name verantwortlich!
Ich vertrete die gleiche Qualitätsideologie wie in der Region Bayern bekannte IT Firma imbus AG , ich habe genug Projekte gesehen wo man anfänglich alles richtig gemacht hat, aber tatsächlich keine Gedanken über Code Qualität und nachhaltige Entwicklung von eigenen Software Produkten gemacht hat!
Besonders wird es schlimm wenn man mir den Kostenfaktor vorwirft, es ist unglaublich wie dreist so manche Firmen sind, klar ich würde auch nicht über Budget ins Pleite „reinfahren“, aber man sollte die spätere Arbeiten nach den Release nicht unterschätzen, es könnte sein, dass der Kunde später Sie anzeigt wegen den Verletzung von Vertraglich vereinbarte Leistungen!
Vor allem sind viele JEE Projekte davon betroffen, leider darf hier keine Namen nennen aber es ist schon frustrieren wieder an einem Fehlgeschlagen Projekt zu arbeiten mit der Hoffnung es irgendwann zum besseren zu führen.
Ich werde weiterhin direkt und ehrlich , offen mit den Vorgesetzten und Projektauftraggeber reden, die Flöskeln müssen endlich für Mittelalter bleiben, eins ist sicher Freiberufler sind alles andere als Angestellte, man muss uns wie die Geschäftspartner betrachten und gewissen Respekt und vertrauen zeigen, da wir auch für den Erfolg Ihres Unternehmens Leib und Seile aufbringen werden!
Ich vertrete die gleiche Qualitätsideologie wie in der Region Bayern bekannte IT Firma imbus AG , ich habe genug Projekte gesehen wo man anfänglich alles richtig gemacht hat, aber tatsächlich keine Gedanken über Code Qualität und nachhaltige Entwicklung von eigenen Software Produkten gemacht hat!
Besonders wird es schlimm wenn man mir den Kostenfaktor vorwirft, es ist unglaublich wie dreist so manche Firmen sind, klar ich würde auch nicht über Budget ins Pleite „reinfahren“, aber man sollte die spätere Arbeiten nach den Release nicht unterschätzen, es könnte sein, dass der Kunde später Sie anzeigt wegen den Verletzung von Vertraglich vereinbarte Leistungen!
Vor allem sind viele JEE Projekte davon betroffen, leider darf hier keine Namen nennen aber es ist schon frustrieren wieder an einem Fehlgeschlagen Projekt zu arbeiten mit der Hoffnung es irgendwann zum besseren zu führen.
Ich werde weiterhin direkt und ehrlich , offen mit den Vorgesetzten und Projektauftraggeber reden, die Flöskeln müssen endlich für Mittelalter bleiben, eins ist sicher Freiberufler sind alles andere als Angestellte, man muss uns wie die Geschäftspartner betrachten und gewissen Respekt und vertrauen zeigen, da wir auch für den Erfolg Ihres Unternehmens Leib und Seile aufbringen werden!

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Montag, 27. Februar 2017
Eclipse und Git!!! Warum Proxy ist per Default konfiguriert?!
Hi all ich schreibe wegen einen kleinen Problem bei der Eclipse, ich war heute bei einem Kunde wollte mein Code in github abchecken, aber es ging nicht.
Nach langen suchen, ich habe festgestellt ,dass bei Eclipse Einstellungen ein spezielles Reiter Proxy gibt, dorthin ich habe entsprechend wie in diesem Bild die Einstellungen vorgenommen und jetzt funktioniert!
Nach langen suchen, ich habe festgestellt ,dass bei Eclipse Einstellungen ein spezielles Reiter Proxy gibt, dorthin ich habe entsprechend wie in diesem Bild die Einstellungen vorgenommen und jetzt funktioniert!

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Donnerstag, 9. Februar 2017
Stellungnahme zur der Kenntnisse über Design Patterns in Java
Grund für den heutigen Eintrag war ein Fachgespräch in Bezug auf Design Patterns.
Mein Ansprechperson war ein Senior Entwickler nun ich habe mein bestes versucht zu erklären ,dass ein Junior soll zuerst den strikten Clean Code Style folgen und erst danach nach Design Patterns nachdenken, erst schreibe den Laufen Code , dann verbessere es und optimiere es, ein Design Pattern in grossen Projekten umzusetzen ist kein Einzelkämpfer Arbeit, es ist eine Teamarbeit von mehreren Entwickler.
Aus meiner Erfahrung als Freiberufler habe ich noch kein Projekt gesehen wo man perfekt den einen oder anderen Design Pattern 1 zu 1 umgesetzt hat und der Grund war nicht in fehlenden Wissen, sondern nun mehr in ständig änderbaren Kundenanforderungen!
Ich finde überhaupt es äußerst arrogant von einen Junior die Kenntnisse von Design Patterns abzuverlangen!
Nun wenn mich jemand fragt , welche der gängigsten Design Pattern soll man kennen aus 120 anderen ?
Meine 5 Lieblings Design als solche sind:
Kenne ich diese Design Pattern auswendig? Zum teil Ja und zum teil Nein, damit meine Ich ob ich es sofort in 100% funktionierenden Java Code implementieren kann.
Ich halte diese Fähigkeit nicht für besonders Wert und für unwichtig, was ich kann und was mich sehr lange beschäftigen wird ist die Fähigkeit zu erkennen ob es in der Code ein Design Pattern vorliegt oder nicht.
Und es gilt nach wie vor ein Design Pattern soll man mit bedacht und gesunden Menschenverstand anwenden, daher man soll sich sehr gut über Nachteile eines Design Pattern überlegen , bevor man sich dafür entscheidet.
Was kann ich als Junior besser machen ?
Nun es gibt eine Webseite mit der Beschreibung von Design Pattern , es gibt sehr schöne Bücher, die geht man einfach durch und während des Projektes schaut ob eine oder andere zutritt.
Head First Design Patterns ISBN: 0596007124 Publisher: O'Reilly
Java Design Patterns: A Tutorial ISBN : 0-201-48539-7
Und ein Meisterwerk Design Patterns
Elements of Reusable Object-Oriented Software ISBN 0-201-31011-2
Mein Ansprechperson war ein Senior Entwickler nun ich habe mein bestes versucht zu erklären ,dass ein Junior soll zuerst den strikten Clean Code Style folgen und erst danach nach Design Patterns nachdenken, erst schreibe den Laufen Code , dann verbessere es und optimiere es, ein Design Pattern in grossen Projekten umzusetzen ist kein Einzelkämpfer Arbeit, es ist eine Teamarbeit von mehreren Entwickler.
Aus meiner Erfahrung als Freiberufler habe ich noch kein Projekt gesehen wo man perfekt den einen oder anderen Design Pattern 1 zu 1 umgesetzt hat und der Grund war nicht in fehlenden Wissen, sondern nun mehr in ständig änderbaren Kundenanforderungen!
Ich finde überhaupt es äußerst arrogant von einen Junior die Kenntnisse von Design Patterns abzuverlangen!
Nun wenn mich jemand fragt , welche der gängigsten Design Pattern soll man kennen aus 120 anderen ?
Meine 5 Lieblings Design als solche sind:
1) Model View Controller
2) Facade
3) Factory
4) Composite
5) Singleton
Kenne ich diese Design Pattern auswendig? Zum teil Ja und zum teil Nein, damit meine Ich ob ich es sofort in 100% funktionierenden Java Code implementieren kann.
Ich halte diese Fähigkeit nicht für besonders Wert und für unwichtig, was ich kann und was mich sehr lange beschäftigen wird ist die Fähigkeit zu erkennen ob es in der Code ein Design Pattern vorliegt oder nicht.
Und es gilt nach wie vor ein Design Pattern soll man mit bedacht und gesunden Menschenverstand anwenden, daher man soll sich sehr gut über Nachteile eines Design Pattern überlegen , bevor man sich dafür entscheidet.
Was kann ich als Junior besser machen ?
Nun es gibt eine Webseite mit der Beschreibung von Design Pattern , es gibt sehr schöne Bücher, die geht man einfach durch und während des Projektes schaut ob eine oder andere zutritt.
Head First Design Patterns ISBN: 0596007124 Publisher: O'Reilly
Java Design Patterns: A Tutorial ISBN : 0-201-48539-7
Und ein Meisterwerk Design Patterns
Elements of Reusable Object-Oriented Software ISBN 0-201-31011-2
oder Ich werde einfach am besten Video von O'Reilly Design Pattern in Java anschauen, es ist nur eine Frage der Zeit, ich bin jetzt in der Oracle Weiterbildung, wenn Ich mich mit anderen Dingen beschäftigen würde , würde nicht zum Ziel kommen , da bin Ich mich sicher (Ich mache auch ein Fernstudium, läuft es als Hobby , aber ich möchte es irgendwann fertig haben).

Test driven development is my main tool to solve all software engineering problems.
I work by the agile manifesto: working software over comprehensive documentation.
Read more about here https://agilemanifesto.org
Abonnieren
Posts (Atom)
Blog-Archiv
Blog readers favorites
-
This is my ongoing blog about my cloud experience in any regards do not consider it as definitive one. Cloud stuff moving fast some chang...