Blog: Latest Entries (15):


ZF2 TableGateway und Closures im select

Mal ein kleines Beispiel wie man Closures im
Zend Framework 2 zusammen mit dem TableGateway verwendet.

Die meisten Beispiele nutzen leider nicht die Möglichkeit Objekte in der Function zu nutzen, die außerhalb erzeugt wurden. Dabei ist das eigentlich ja das spannende daran und nur ein "Order By" ist ja in den seltensten Fällen allein was man möchte.

Also hier ein kleines Beispiel, um direkt dazu zu kommen. Man achte auf das Schlüsselwort use.


if($test!=null && $test->getId()>0){
$rset = $this->select(
function (Select $select) use ($test) {
$select->where->equalTo('test_id',$category->getId());
$select->where->lessThan('test_date','CURRENT_DATETIME');
$select->order('test_date DESC')->limit(20,0);
}
);
}


Die Klasse leitet von TableGateway ab. Deswegen $this->select().

HTML 5 vs. JavaFX: Ruhe in Frieden JavaFX?

Vor ein paar Monaten hatte ich einen Post über JavaFX und die Konkurrenz zu HTML5 geschrieben. Und dabei das Fazit gezogen, dass JavaFX gut ist um vorhandene Swing-Anwendungen zu erweitern und in Zukunft zu modernisieren, aber für Neuentwicklungen ich eher eine andere Technologie nutzen würde.
Jetzt gab es bei JAXenter den Artikel Ruhe in Frieden JavaFX, wo ähnliches Thematisiert wird.

Die dort angesprochenen Punkte kann ich meiner Erfahrung nach voll zustimmen. Die technischen Unzulänglichkeiten und Probleme sind nicht mal das eigentliche Problem, denn die Unterstützung von Oracle scheint wirklich kaum vorhanden zu sein. Mobile-Unterstützung gibt es nur dank der RoboVM. Der Scene Builder ist relativ instabil und durch händische Anpassungen schnell aus dem Tritt zu bringen. Updates und neue Versionen, die das Problem beheben, waren bis Sommer jedenfalls nicht verfügbar gewesen.

Die Programme von Oracle setzen auch jetzt meistens noch auf Swing und nicht auf JavaFX. Der große Wechsel wurde zwar an vielen Stellen beschworen, aber war nie sichtbar. Swing hat auch zum Großteil sehr ausgereifte Komponenten und die Anwendungen sind über viele Jahre gewachsen... da ist ein schneller Wechsel nicht möglich und eine einfache Migration ist auch nicht machbar. Anwendungen komplett auf JavaFX umzustellen ist viel Arbeit. Ich habe gesehen, dass man gut SWT und JavaFX in einer Anwendung verwenden kann, aber wenn man es nüchtern betrachtet, wird auch nur eine JavaFX GUI irgendwie in SWT rein gezeichnet. Eine echte Integration gibt es nicht. 2 Welten die in einer Anwendung existieren.
Es gibt also weniger Swing, aber nicht mehr JavaFX. Es gibt ein paar JavaFX Verfechter, die es aber wohl auch nur gibt, weil Swing ja irgendwie abgekündigt wurde. Ansonsten wären alle wohl einfach bei Swing geblieben. Ich habe auch seit meinen Anfängen in Java ein paar Swing-Programme geschrieben und empfand den ersten Kontakt mit JavaFX als sehr ernüchternd. Netbeans + Swing funktioniert einfach sehr gut und auch das skalieren der GUI-Element funktioniert relativ gut. JavaFX kann es zwar auch, aber die Bedienung ist hier weniger selbsterklärend und das CSS ist weit von dem entfernt, was man sich erhofft hatte und aus dem Web-Bereich gewohnt ist.

Das mit der Version 2 von JavaFX kein großer Anstieg der Nutzerzahlen kam, liegt meiner Meinung auch daran, dass JavaFX einen schon sehr schlechten Ruf hatte und Jahre auf der Kippe stand.
Als dann eine brauchbare Version kam, hatten die meistens sich schon anderweitig umgesehen und etwas mit Zukunft und größerer Unterstützung gewählt. Das Problem ist damit eben, dass JavaFX dadurch nicht mehr die Unterstützung bekommt, um weiter wachsen und sich entwickeln zu können. So wird alles auf einem minimal Level betrieben. Wenige Nutzer.. wenige Entwickler.

Betrachtet man dagegen JSF was mit der Version auch nicht das Gelbe vom Ei war, aber immer offizielle Unterstützung bekam (auch von Apache) und somit man auch Vertrauen in die Zukunft hatte, das sich gerade mit den neusten Versionen auch als gerecht fertig erwiesen hat. Vielleicht würde auch JavaFX mit breiterer Unterstützung sich genau so gut entwickeln können.

Ich kann mich dem Fazit voll und ganz anschließen: Sollte Oracle nicht plötzlich viel in JavaFX investieren, sollte man lieber sich etwas mit mehr Unterstützung suchen und auf eine ungewisse Zukunft vertrauen.

Die Angst dass der Java EE Markt dadurch gefährdet wird. Node.js ist vielleicht eine größere Gefahr als PHP, aber die letzten Jahre basierte der Wachstum und die Stabilität von Java EE nicht auf Swing oder dem Desktop-Markt. Microservices, Android-Apps, Frameworks für Reactive-Entwicklung oder gleichwertige Lösungen als Alternative zu Node.js. REST-Services, Portale und kleinere Container. Auch die WebSocket und Push-Services im Tomcat. DevOps Lösungen. Alles tolle Entwicklungen im Java-Bereich.. es gab viel Bewegung und Fortschritte, aber keiner davon hing groß mit der Entwicklung von Desktop-Clients zusammen. Ich glaube der Rückgang bei den Desktop-Clients ist normal und Dank Java Web-Frameworks, HTML5 und AngularJS oder ähnlichen Frameworks, muss sich die JEE-Welt keine Sorgen machen.

Aber ich fühle mich gerade sehr in meinen Ansichten und Äußerungen von vor einem halben Jahr sehr bestätigt :-)

Spontaner Weihnachts- Nikolausgeschenk-Tipp: SSD

Ist leider nur ein Tagesangebot bei Amazon. 25.11.2015

Aber auch ein gutes Weihnachts- oder Nikolausgeschenk. Es sollte auch gut in einen Schuh passen.. bei 3,5 Zoll Laufwerken kann es ja schon schwieriger werden.

Es ist ein ideales Geschenk für ITler mit älteren Notebooks oder PCs, Fallout 4 Spielern, die sich über die hohen Ladezeiten aufregen (ich hab es gesehen, wärend meine Frau es spielte.. die Ladezeiten sind shcon wirklich alles andere als optimiert).
Eclipse sollte beim Bauen des Workspaces auch sehr davon profitieren können.

Eine 120GB SSD. Kein Highend und nicht so viel Speicher (4-5 Spiele oder das Betriebssystem sollten aber ohne Probleme passen).. aber sehr günstig.

bbcode-image
SanDisk SSD PLUS 120GB Sata III

520MB/s beim Lesen ist schon eine brauchbare Leistung, wir sind ja auch mit Festplatten ausgewachsen die 20MB groß waren. Man kann sich ja mal ausrechnen wie viele dieser Festplatten da pro Sekunde ausgelesen werden würden.

Hannes installiert sich seine Entwickler-Werkzeuge:

Gehen wir mal davon aus, ich hätte doch mal das Geld für einen neuen PC und würde alles neu installieren müssen.
Was wäre das alles? Bei vielen Programmen nehme ich die portable-Version wenn vorhanden, weil man dann einfach das
Programm inkl. alle Einstellungen und Daten kopieren kann und sich nicht über die Migration der Daten Gedanken machen braucht.

* Notepad++ (Portable): Seit man einfach den Editor schließen kann und er speichert auch nicht gespeicherte Texte automatisch mit, ist er ideal für Notizen, kleine Text und schnelle Bearbeitungen einzelner Dateien. EmEditor kann es nicht, dafür paar andere tolle Dinge, wie Zeilen mit Such-Treffen in ein neues Dokument extrahieren, aber gerade dass ich EmEditor nicht einfach schließen kann ohne zu speichern, empfinde ich als großen Nachteil.

* WinSCP (Portable): Der eingebaute Editor ist kein Highlight, aber besser als wenn per Default immer der von Windows verwendet werden würde. Das Programm läuft auch stabil und hat mich bis jetzt nie im Stich gelassen. Bitvise finde ist als SFTP oder SSH Client irgendwie schlechter zu bedienen und es ist eben nicht Opensource.

* Eclipse + PDT: Bei Eclipse reicht es auch die ZIP-Datei zu entpacken. Über das Software-Menü dann einfach PDT nach installieren und vielleicht nochmal die Zuordnung der *.php-Dateien zum entsprechenden Editor bearbeiten.Wie man Unterstützung für Getter und
Setter installiert findet man hier: PDT-Extensions. PHPStorm kann auch einiges. Ich finde es aber auch unübersichtlich. RemoteHost-View.. ist unter Deployment zu finden. An sich ja nicht verkehrt, wenn man das weiß. Bei Eclipse einfach bei den Views gucken. Da kann man auch suchen und findet alles innerhalb von Sekunden. Vielleicht liegt es auch daran dass ich Jahre mit Eclipse verbracht habe und es lieben und auch oft
genug hassen gelernt habe, aber bei PHP ist es mein Favorit und es ist eben Opensource.

* Oracle SQLDeveloper: Wenn man mal mit Oracle zu tun hat oder keine Lust auf phpMyAdmin hat, ist es immer noch meine Lieblingssoftware für Datenbank-Entwicklung. phpMyAdmin ist eben sehr träge (für eine Webanwendung aber noch wirklich schnell.. nur im Vergleich). HeidiSQL ist einfach nicht so professionell. Man merkt dass Oracle sich mit Datenbanken auskennt.

* Source Tree für GIT-Repositories. Die GIT-Integration in Eclipse war jedenfalls nie wirklich toll, wie ich fand. Der Konsolen-Client funktionierte,war aber für Nicht-Programmierer wirklich zu umständlich. Tortoise.. ja.. hat bei mir noch aus Delphi+SVN Zeiten einen schlechten Nachgeschmack hinterlassen. Auch wenn deren SVN Client manchmal durch mergen zerstörte Projekte wieder retten musste zusammen mit Notepad++.

* XAMPP oder Bitnami... Benutze ich beides und am Ende mag ich XAMPP minimal lieber. Deren Kontroll-GUI ist etwas aufgeräumter und ich kann auch hier einfaches von einem PC auf den anderen kopieren. Aber funktionieren tun beide gut.

* ein aktuelles JDK: Weil viele der oben genannten Programme Java-Programme sind und ich unter Umständen auch mal ein kleines Java-Programm schreiben oder pflegen muss. Eine aktuelle JDK8-Version installieren und die reicht erst einmal lange ohne Updates. Sollte ich nicht doch plötzlich wieder voll auf Java setzen. Dann aber nur mit Tomcat und vielleicht der aktuellsten JSF-Version oder meinen REST-Framework und das Frontend entsteht komplett in AngularJS (habe ich so schon benutzt und funktioniert extrem gut und ist PHP mit dem Application-Scope und echten Singletons teilweise
weit voraus bei der Performance.. mal PHP7 abwarten).

Und dann eben noch der ganze Rest wie Firefox Developer Edition (64-Bit), Thunderbird, Chrome, etc. Was man auch zum Testen und dem Alltag so
braucht.

Weichnachtsgeschenke für ITler - Bücher

Es nähert sich die besinnliche Weihnachtszeit. Kerzenlicht, Dominosteine und .. nein kleiner Scherz.. jetzt beginnt der Stress. Was soll man schenken. Gerade bei IT und Nerd Personen ist so etwas nicht ganz einfach. IT-Leute lieben IT Themen, aber zur Weihnachtszeit sollten sie auch mal abschalten können. Projektplanung kommt immer gut.. aber niemand sollte Weihnachten an so etwas denken müssen.

Was kann man also einen ITler schenken.. z.B. ein Buch aber welches Buch? Neben Klassikern wie Per Anhalter durch die Galaxis und Dirk Gently, die meistens alle schon haben, habe ich hier ein paar Bücher zusammen gestellt, die mir sehr gut gefielen und wirklich gute Unterhaltung bieten.

Schattenjagd - Hohlbein
Cyberspace, Cyber-Helme, Warcraft, 486er und schlechte Wortspiele. So ein Buch kommt dabei raus wenn Hohlbein zu viel Warcraft 2 spielt aber keine Lizenz hat dazu ein Buch zuschreiben. Technisch solide aber nicht tiefer gehend und eine Warcraft Rip-Off hoch n-1. Ich hab es in 2 Tagen durch gelesen und es ist immer noch gute Unterhaltung. In den heutigen Tagen mit einen zusätzlichen Extra an Retro-Feeling. Für mit neben 13 das beste Buch von Hohlbein.. also in Hohlbein-Niveau gemessen... ein B-Movie der Cyber-Punk Romane.

bbcode-image

Kuckucksei - Clifford Stoll
Wer die Inhaltsangabe liest, wird sich denken: "Nicht noch so ein pseudo Hacker-Krimi". Wer die ersten 3 Seiten liest, erfährt erst einmal etwas über die Struktur des Rechenzentrums, in desen Kontext dieser Roman spielt. Unix-Kisten, VAXe und VMS. Da merkt manschon, dass jemand das geschrieben hat, der was von der Thematisk versteht. Das Interessante hier ist, dass die Hackerseite in Deutschland angesiedelt ist. Spannend und mit dem UUCP-Trick kam ich mal in eine alte Bull DPX/2 des Roten-Kreuzes, die ich bei Ebay ersteigert hatte.
Aus deutscher Sicht wurde die Geschichte in 23 verarbeitet. Der Film ist Rotz.. das Buch über die Recherchen zum Film dafür sehr gut.

Jeder der sich für Hacker und IT-Geschichte interessiert, sollte dies lesen.

bbcode-image

iWoz - Wozniak
Muss man dazu viel sagen? Woz ist ein Genie.. inspiriert durch seinen Vater der an Dingen gearbeitet hat, über die er nicht sprechen durfte. Die Hacker-Szene der 70er Jahre im Silicon-Valley und viel Humor. Wer von Steve Jobs genervt ist, sollte sich dann lieber dieses Buch antun. Technischer, weniger Gelaber und sehr unterhaltsam. Wer mal die Doku
Triumph of the Nerds gesehen hat, sollte es sowie so lesen. (Achtung die DVD von Triumph of the Nerds ist Region 1.. also erstmal als MKV-Rippen und als MP4 dann auf dem TV gucken.)

bbcode-image

Accidental Empires - Robert X. Cringely
Das Buch auf dem Triumph of the Nerds basiert. Alt aber gut. Mit der Doku-Version von 3-Sat bin ich aufgewachsen und Buch vertieft alles noch mal sehr. Aber dies ist wirklich was für Hardcore ITler. Aber man sollte doch mit der DVD anfangen. (momentan kostet die DVD 270 Euro.. warten.. ist öfters auch für 16 Euro drin... aber .. ein Klassiker. "Allen is richer than god and Gates is richer than Allen.")

bbcode-image

Wenn jemand etwas hier von interessant findet und jemanden schenken möchte, wäre ich natürlich sehr glücklich, wenn die Link aus diesem Beitrag benutzt werden würden.

Eigene Validierung für Inputs

Ein kleines Beispiel wie man sich eine eigene Validierung für Inputs in JavaScript basteln kann. Man kann es natürlich beliebig komplex machen und es sollte auch super mit Ajax funktionieren. Nur mit nicht required Inputs habe ich so mein Problem, da ich die gerne in neutraler Farbgebung hätte, wenn nichts eingegeben ist. So wären sie momentan einfach "valid" und damit grün. Falls dort jemand eine Lösung kennt, wäre es echt toll.


<html>
<head>
<style type="text/css">
input:valid{
border-color:#00FF00;
}

input:invalid {
box-shadow: none;
border-color:#FF0000;
}
</style>
</head>
<body>
<label>Test (should be 'allo')</label> <input id="blubb" type="text" required/>
<script type="text/javascript">
var func=function(){
var el=document.getElementById("blubb");
if(el.value=="allo"){
el.setCustomValidity("");
}
else{
el.setCustomValidity("value is not allowed");
}
}
document.getElementById("blubb").onchange=func;
</script>
</body>
</html>

Hilfe GnuPG

Hier eine kleine Hilfe wie man GnuGP mit PHP verwenden kann und wie man einen vorhandenen Key importiert.

http://46dogs.blogspot.de/2007/11/setting-up-gnupg-gpg-for-use-with-php.html
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Step_by_Step_Guide/s1-gnupg-import.html
https://www.gnupg.org/gph/en/manual/c14.html

Die Umgebungsvariable brauchte ich nicht extra setzen, wenn ich das PHP-Script über CLI ausführte.

Also installieren (das Verzeichnis /home/benutzer/.gnupg muss auf 0700 stehen!) und dann:


gpg --import key.asc
gpg --list-keys
gpg --fingerprint


Dieser Fingerprint ist das was man in der Encrypt-Methode angeben muss.


$gpg = new gnupg();
$gpg->seterrormode(GNUPG_ERROR_WARNING); //should be setted!
$gpg->addencryptkey($fingerprint);
$result = $gpg->encrypt($toEncryptContent);


einen neuen Key anlegen geht mit:

gpg --gen-key

PHP Projekte bauen mit ANT

Privat arbeite ich ja mit Eclipse und PDT. An sich gefällt mir das auch sehr viel besser als PHPStorm. Genauso wie ich auch immer WinSCP Bitvise vorziehen würde.

Aber zurück zum Thema. Wenn man schon mit einer eigentlich auf Java ausgelegten IDE arbeitet, kommt man beim Build-System als erstes auf Apache ANT. Ich mag ANT und es funktioniert echt super.
Da ich demnächst etwas über Datenbanken, Mapping und Reflections in meinem Blog verfassen will und diesmal auch direkt komplett lauffähigen Code mit liefern möchte, musste ich alles in eine Zip-Datei packen. Per Hand ist es doof, aber mit 6 Zeilen XML kann man mit ANT einfach eine Zip-Datei mit Datum im Dateinamen erstellen.

build.xml

<project name="build aoop" default="copy">
<!-- hier ist normal der Code zum Bauen von aoop.. ist hier aber uninteressant -->
<target name="buildPDBC">
<tstamp>
<format property="tstamped-file-name" pattern="yyyy_MM_dd" locale="de,DE"/>
</tstamp>
<zip destfile="../pdbc_${tstamped-file-name}.zip" basedir="system/PDBC/"/>
</target>
</project>


bbcode-image

bbcode-image

bbcode-image


PS: PDBC steht für PHP DataBase Connectivity. Began vor 10 Jahren in der Berufsschule und der Name ist wie man merkt sehr an JDBC angelehnt.

Kleine SEO Checkliste

Ein paar Dinge auf die Ich geachtet habe und am Ende wohl auch etwas gebracht haben. Jedensfalls gehen Klicks und Impressions seit den Änderungen weiter nach oben. Jetzt nicht so dass man dieSeiten als erfolgreich bezeichnen könnte.
Aber die Seiten werden gefunden!

* ist der Viewport über ein <meta>-Tag gesetzt? (Wegen Mobile-frundlichern Setien und Google)
* Hat der Title alle 4-5 wichtigen Keywords und ist auf für Menschen noch gut lesbar? (kein zu langer Name am Anfang!)
* enthalten Links als Text und Title Keywords?
* Wird Mapping über Rewrites verwendet um nciht immer auf index.php oder zu verlinken? (in der URL Keywords verwenden)
* werden <nav>-Tags verwendet?
* werden <article>,<header>,<section> Tags verwendet? (Gerade bei Blogs und Newsseiten)
* Ist der meta-Description Text für Besucher ansprechend? (Der Text ist eher für Menschen als für die Suchmaschinen-Bots)
* Wurde eine Sitemap bei Google eingereicht?
* sind die Ladezeiten der Seite ok? (nicht so wichtig, aber ist für die Besucher schöner. Zur Not.. Profiling und Code-Analyse)

Projekt - Online Adventskalender

Bald kommt wieder die Weihnachtszeit. Manch einer könnte auf die Idee kommen seine Familie, Freunde, Kunden, Follower, Fans oder einfach die Welt mit einem Bilder-Adventskalender im Internet zu beglücken. Egal ob es nun Bilder von einem selbst, von den eigenen Kindern, Katzen oder Hunden sein sollen.

Dafür habe ich ein kleines Projekt gestartet, dass es jedem ermöglicht einen solchen Online-Adventskalender zu erstellen und zu teilen.

bbcode-image

Online Adventskalender

Neben den Bildern (die man auch in einer Großansicht betrachten kann), kann man jedem Bild einen zusätzlichen Text hinzufügen und auch dem gesamten Kalender neben einem eigenen Titel auch einen Text geben in dem man die Besucher seines Kalenders direkt ansprechen kann.

Wer seine Bilder nicht mit der gesamten Welt teilen möchte, kann den Adventskalender auch mit einem Passwort versehen, so das nur Personen Zugriff erhalten, die die Bilder sehen sollen dürfen.

Jeder Adventskalender ist kostenlos, hat 24 Türchen, kann einen Text und ein zusätzliches Hintergrundbild enthalten und lässt sich jeder Zeit anpassen und ändern. Auch Bilder und Texte schon offener Türchen lassen sich weiterhin bearbeiten. Dadurch kann man den Kalender auch während er schon läuft weiter aufbauen und man muss nicht gleich am Anfang seine 24 Bilder heraus gesucht haben.

Über Videos und Texte die nur am passenden Tag zusehen sind, denke ich momentan noch nach, wobei Video oder animierte Gifs ein komplexeres Thema sind. Wenn man jetzt kommerziell denken würde, wären diese Tages-Texte ideal für Gutschein-Codes und so etwas.

Jeder der es mal ausprobieren möchte ist herzlich dazu eingeladen und ich würde es toll finden, wenn dann doch ein paar Adventskalender wirklich ihrer Bestimmung nach andere Menschen beglücken können. Wenn jemand es testet und auch Fehler stößt oder Verbesserungsvorschläge hat.. immer her damit.

Eine bebilderte Anleitung wie für MP4toGif.com werde ich in den nächsten Tagen zusammen basteln.

Lernen wärend der Arbeitszeit

Es ist zwar schon etwas her, dass ich diesen Artikel gelesen habe, aber irgendwie lies mir das Thema bis jetzt keine Ruhe. Am Anfang dachte ich mir: "Klar, wenn eine Firma einen verbietet etwas neues zu lernen ist sie eine schlechte Firma." Denn jeder Arbeitgeber will, dass man viel kann und immer auf dem neusten Stand ist, deswegen sollte er einen auch dabei unterstützen dieses Ziel zu erreichen.
Ich habe in einer Firma gearbeitet, da war so etwas kein Problem. Es konnte sein dass plötzlich das Thema auf eine neue Technologie oder eine Alternative zum momentan benutzen kam und der Teamleiter oder Chef einem Anwesenden den Auftrag erteilte sich mal damit zu beschäftigen. Das ist super und ermöglicht einen auch mal einen Blick über den Tellerrand. Ohne so etwas hätte ich mir nie JBoss Seam angesehen oder verschiedene Application-Server. Meistens ist man bei dem geblieben was man hatte. Aber wenn man der Meinung war man hätte etwas, was einen voran bringt oder viel Zeitsparen könnte oder
einfach ein Hype darum gerade zu merken war und man wissen wollte, ob es wirklich so toll sei.... alles kein Problem sich mal 1-2 Stunden dafür Zeit zu nehmen.

Wenn man interne Software entwickelt oder diese verkauft ist das auch möglich. Wenn man für Kunden entwickelt ist oft die Lösung das zunehmen was man hat und kennt. Die Zeit in der man nicht für Kunden arbeitet bringt aber auch kein Geld, deswegen ist diese Zeit möglichst gering zu halten. In den seltensten Fällen wird ein Kunde einem auch die Zeit für die Forschung bezahlen wollen.

Trotzdem würde ich immer dafür sein, jedem Mitarbeiter pro Woche 1-3 Stunden Zeit einzuräumen, wenn nicht extremer Zeitdruck vorliegt, in denen er sich weiterbilden kann. Natürlich sollte dabei im Auge behalten werden, was der Firma auch was bringt. Eine neue Programmiersprache? Wenn man mit Java entwickelt und jemand möchte sich Scala ansehen.. klar. Jemand will Rust oder Swift angucken.. da muss man schon gucken, ob man wirklich Vorteile drauf ziehen kann.

Es geht auch selten um konkrete Sprachen oder Frameworks, die man dann auch einsetzen wird, aber es ist immer gut neue Konzepte kennen zu lernen.

Sollte es aber so sein, dass man bei der Arbeit ein neues Framework verwenden soll und dann so etwas wie "Guck dir das mal zu Hause ausführlich an" dann ist hier klar zu sagen: Was man für die Arbeit lernen muss ist genauso Arbeit wie das Programmieren und Entwickeln selbst und muss natürlich einem genauso angerechnet werden.
Aber bis jetzt habe ich so etwas noch nie erlebt.. nur mal davon gelesen oder mir etwas angesehen, wo ich selbst großes Interesse dran hatte und dann auch gleich ein kleines Projekt hatte, wo ich auch nicht wollte, dass es etwas mit meinem Arbeitgeber zu tun hat.

Fazit:
Sollte ich mal Teamleiter oder Chef sein, würde ich jedem nicht nur diese Stunden pro Woche gönnen, sondern es fast schon verlangen, das sich der Mitarbeiter weiter bildet und lernt. Lernen hält das Gehirn fit!

mp4togif.com im Edge

Jetzt läuft auch alles im Microsoft Edge. Das Problem war dass das "canplay" Event im Edge nicht bei einem Wechel der Zeit gefeuert wird wie beim Firefox oder Chrome. "timeupdate" löst aus bevor das Bild verfügbar ist und sorgt für ein ruckeliges GIF. Die Lösung war: seeked. Damit läuft MP4toGIF.com jetzt im Edge, Chrome und Firefox.

bbcode-image


Wer auch Probleme mit den Events des Video-Elements hat kann ich diese Seite empfehlen http://www.w3.org/2010/05/video/mediaevents.html


Enums in PHP

Ich habe mal etwas rumgepsielt und versucht so etwas wie die Enums auf Java in PHP abzubilden. Es ist mir mehr oder weniger gut gelungen. Aber für einfache Status und Fehler-Fälle sollte es funktionieren.


<html>
<body>
<?php
class ErrorCodesEnum{
private static $instance=null;

public $code='';
public $name='';
public $message='';

public $error1 = null;
public $error2 = null;

private function __construct($code='',$name='',$message=''){
if($code!=''){
$this->code=$code;
$this->name=$name;
$this->message=$message;
}
else{
$this->error1=new ErrorCodesEnum('0001','#1','run into error 1');
$this->error2=new ErrorCodesEnum('0002','#2','run into error 2');
}
}

static public function instance(){
if(self::$instance==null){
self::$instance=new ErrorCodesEnum();
}
return self::$instance;
}
}

$test=ErrorCodesEnum::instance();

$var=$test->error1;
if($test->error1===$var){
echo '[var1] '.$test->error1->message.'<br>';
}
if($test->error2===$var){
echo '[var2] '.$test->error2->message.'<br>';
}

$test2=ErrorCodesEnum::instance();
if($test->error2===$test2->error2){
echo '[getInstance] '.$test->error2->message.'<br>';
}
?>
</body>
</html>

Projekte bewerten und abschalten können

Was gibt es für Gründe ein Side-Project zu haben? Spaß, Lernen, Angeben, als Referenz verwenden und vielleicht ja auch etwas Geld damit verdienen. Der letzte Punkt ist irgendwie immer mit dabei, aber man weiß selbst wie unrealistisch der doch ist. Ich gehe mal davon aus, dass 50% der angefangenden Projekt nie weiter weiter als Prototyp-Status kommen wird.
Meistens hat man dann einen Beweis, dass etwas funktioniert oder nicht funktioniert. Im besten Falle hat man bei Facebook einen Link gepostet, der sagt: "Guckt mal, so etwas ist doch in relativ kurzer Zeit zu machen.. mal gucken ob ich das zu einer echten Anwendung ausbaue". In 50% dieser Fälle wird man es nicht machen. Oft ist die Idee doch nicht so gut, oder die Zeit fehlt.
Auch ist vielleicht die Idee gut und die Zeit wäre auch da, aber es gibt so eine Anwendung schon und weiß nicht, ob man die Zeit dann doch nicht lieber für was anderes verwenden sollte.

Also werden schon 75% alles Projekte von einem sowie nie zu Ende gebracht bzw vorher aussortiert.

Aber dann bleiben die 25% übrig, die man dann wenigstens soweit bringt, dass sich jemand das angucken kann oder man versucht die erste Version einer App irgendwo einzureichen. Hier trennt sich dann der Rest. Wenn die App oder Website nicht angenommen wird, verschwindet auch diese in der Versenkung. Aber ganz so einfach klar und einfach ist es an dieser Stelle dann doch oft nicht.
Man könnte ja nochmal nachbessern oder die Präsentation ist nicht gut genug. Gerade im Bereich vom Webdevelopment mit Websites und Web-Apps muss man sich gleich richtig präsentieren. Eine kryptische Subdomain? Damit findet doch niemand die Seite und wirklich seriös wirkt es damit auch nicht. Also erst einmal eine Domain bestellen. Domains sind zum Glück ja günstig. Erstes Jahr meistens nur 12 Euro. Dann braucht man noch die Zeit, damit Google die Seite crawled und in den Index aufnimmt. Danach muss man abwarten wie sich alles entwickelt. Das dauert natürlich viel zu kurz, um fest zu stellen, ob das Projekt eine Zukunft hat oder nicht. aber die Zeit ist auch zu lang, um das Rückgaberecht in Anspruch nehmen zu können.

Irgendwann guckt man auf seine Rechnung und guckt mal wie viel man Zahlt und wie viel wirklich einen noch was bringt oder einfach schon tot ist.

Privat hat man einfach zu wenig Zeit, um sich um viele Projekte zu kümmern und man kann die Zeit nicht so einteilen, dass alle Projekte wirklich die Aufmerksamkeit bekommen, die sie bräuchten.
Die neuen Projekte sind spannender und und durch die eigene Erfahrung auch viel leichter zu pflegen. Die alten sind nicht so toll. Gleiche Änderungen brauchen viel mehr Zeit und Aufwand. Also lässt man die lieber erst einmal so wie sie sind und sagt sich, dass man die noch mal komplett überarbeiten wird.
Projekte die man selbst nicht mehr pflegt, die auch von niemand anderen verwendet oder besucht werden, verbrauchen am Ende nur Geld. PHP 5.2 zu verwenden kostet bei einigen Hostern Geld. Ältere PHP Versionen auch. Wenn man also nicht mindestens auf PHP 5.5 wechseln kann, kostet es noch mehr Geld als eine Domain.

Private Side-Projects zu haben ist toll. Man lernt viel, zeigt sich der Welt, sieht mal eine andere Welt als die Enterprise-Welten bei der Arbeit. In Bewerbungen gehören diese Projekt schon eigentlich mit dazu. Man kann sich auch mal mit neuen Technologien befassen, die für einen ernsthaften Einsatz noch zu "neu" sind.

Aber diese Projekte sollen auch nicht Zeit und Geld rauben, wenn klar ist, dass sie keinen der oben genannten längerfristigen Ziele dienen. In Bewerbungen kommen alte Projekte nicht gut, weil man sich ja möglichst von der neusten und tollsten Programmierer-Seite zeigen möchte. Das man früher mal schlechten Code produziert hat glaubt einen jeder auch ohne einen Beweis dafür gesehen zu haben.

Jeder hat mal JavaScript ohne Closures geschrieben. Funktioniert wohl auch alles noch gut, aber zeigen mag man es dann doch auch nicht mehr so wirklich. Ich müsste da auch noch mal ein alte Projekte
überarbeiten.

Also.. auch wenn es einem schwer fallen mag, alten Projekte aus dem Internet entfernen. Bei mir waren mp4togif.com und webm-maker.com so ein Fall. Die erste Anwendung lief nicht schlecht, aber sie waren alt und optisch so wie bedienerfreundlich nicht ganz auf der Höhe meines Könnens. Webm-Maker konnte mehr, lief auf mobilen Geräten und war einfach sehr viel besser strukturiert und entwickelt worden. Nur die
Domain war wirklich brauchbar. Also die Anwendung gelöscht und durch eine Kopie des Webm-Maker Codes ausgetauscht. Seit dem läuft es ganz ok und ich überlege eher die Webm-Maker Seiten wieder einzusparen.

Andere Domains wo nur noch Test-Projekte liefen oder auch die einfach durch Namenswechsel nicht mehr aktuell waren und nicht wirklich benutzt wurden, habe ich dann auch vor kurzen gekündigt. Über 24 Euro mehr im Jahr sind jetzt nicht so viel, aber einmal Pizza bestellen oder einmal klein Essengehen sind da schon drin.

Wenn Projekte schon kein Geld oder Spass/Freude/Erkenntnis bringen, sollen sie auch kein Geld verbrauchen.

Jedes halbe Jahr sollte man die eigenen Projekte nochmal bewerten und gucken, welche keine Zukunft haben und wo man sparen kann. Das ist privat genau so sinnvoll wie bei Firmen. Hier sollte man so denken als wäre man eine kleine Firma und auch mal etwas wirtschaftlich denken.

Older posts:

Möchtest Du AdSense-Werbung erlauben und mir damit helfen die laufenden Kosten des Blogs tragen zu können?