Es ist heiß, die Sonne scheint und alle Personen haben kurze und bequeme Sachen an. Dies sind sichere Anzeichen dafür, dass momentan Sommer bei Ihnen ist. Jedoch kann sich nicht jeder darüber freuen. Nicht vorhandene oder defekte Klimaanlagen erschweren die Arbeit des versierten IT’lers. Aber zum Glück habe ich jetzt den perfekten USB-Ventilator gefunden. Es geht um den Arctic Fan Breeze Pro. Dieser USB-Ventilator ist wirklich extrem Leise (Meiner Meinung nach 15 dB = Blätterrauschen, normales Atmen) und kann an einem USB 2 oder 3 Port angeschlossen werden. Außerdem befindet sich ein 4-Port-USB-Hub im Fuß des Ventilators und die Geschwindigkeit kann per Regler stufenlos angepasst werden. Ich nutze den Arctic Fan Breeze Pro den ganzen Tag, seit ca. 5 Wochen und kann deshalb sagen: absolut empfehlenswert!
Außerdem gibt es jetzt neu noch eine mobile Variante….
Java ist eine sehr coole Programmiersprache und bietet einem Programmierer zahlreiche Möglichkeiten sein Problem zu lösen. Jedoch denkt man oft zu kompliziert und verliert das Wesentliche aus den Augen. Mein heutiges Problem ist das zufällige Mischen einer beliebigen Liste.
Wer jetzt an eine For each-Schleife oder an (Math.random() * myList.size()) + 1 denkt, sollte unbedingt diesen Artikel lesen! Ich präsentiere die Klasse java.util.Collections…
(mehr …)
Man brauch es bei der Interaktion mit der Datenbank. Man brauch es zur Programmierung eines Poolings und man brauch es an 1.000.000 anderen Stellen im Leben. Die Rede ist natürlich von ID’s. Die Abkürzung ID kommt aus dem Englischen und steht für „Identity Document“. Speziell geht es in diesem Beitrag um die so genannte Universally Unique Identifier kurz UUID. Die UUID ist ein Standard für Identifikatoren, der in der Softwareentwicklung verwendet wird. Er ist von der Open Software Foundation (OSF) als Teil des Distributed Computing Environment (DCE) standardisiert. Hauptsächlich werden UUIDs eingesetzt, um Informationen in verteilten Systemen ohne zentrale Koordination eindeutig kennzeichnen zu können.
(mehr …)
In dem Beitrag „Java: SOAP – Web Service Client schreiben“ habe ich großspurig berichtet, wie man innerhalb kürzester Zeit einen Web Service Client in Java implementiert (hier das gleiche für PHP). Jedoch sollte man beachten, dass dieser Client immer nur den Web Service Endpoint anspricht, der in der WSDL angegebene wurde und das ist im Standardfall „localhost„.
Will man nun Web Services in einem Unternehmen mit verschiedenen Umgebungen (Entwicklung, Test, Produktion) einführen, braucht man eine allgemeingültige und konfigurierbare Lösung. In diesem Artikel beschreibe ich zunächst, was eigentlich Umgebungsunabhängigkeit / Ebenenunabhängigkeit bedeutet und wie man diese umsetzen kann. In einem zweiten Artikel erkläre ich ausführlich, wie man einen umgebungsunabhängigen Java Web Service Clients implementiert.
(mehr …)
Am 10. Oktober 2011 habe ich behauptet, dass wirklich JEDER Java-Entwickler einen Web Service innerhalb von 15 Sekunden schreiben kann. Diese Behauptung konnte bisher keiner wiederlegen:-)
Darum behaupte ich heute, dass wirklich JEDER PHP-Entwickler einen Web Service Client in nur 10 Sekunden schreiben kann. Man brauch lediglich einen Web Service (WSDL + Endpoint) und einen php-fähigen Server (z.B. Apache). Lasst uns los legen und keine Zeit verlieren!
Diese Woche ist es wieder soweit – der Kongress NeueVerwaltung 2012 öffnet seine Türen und pünktlich dazu (zwei Wochen vorher), wurde meine eigenes für den Kongress entwickelte App fertig. Jedoch war die ganze Arbeit umsonst, die Applikation wird nicht von der Kongressleitung unterstützt. Wie die App aussieht und wie es zu dieser Reaktion kam, können Sie in diesem Beitrag lesen.
(mehr …)
Was braucht jede Anwendung (egal ob Web-Anwendung, Batch oder Standalone) und wird meistens vom Entwickler vernachlässigt?! Genau – das Logging. Speziell in Java hat man hier die Qual der Wahl: Apache Log4j, Apache Commons Logging, Java Util Logging/Java Logging API und wie sie alle heißen. Am Ende muss man sich für eins der Frameworks entscheiden oder man setzt slf4j ein und verzögern damit die Entscheidung. Persönlich habe ich mich für Log4j entschieden und möchte Ihnen in diesem Beitrag eine Möglichkeit zeigen, wie man Log4j in einem Java-Programm verwendet.
(mehr …)
Es gibt verschiedene Parameter, die man einer JVM mitgeben kann. So kann man neben dem zu verwendenden RAM, auch Debug-Informationen und Pfade mitgeben. Dies kann nützlich sein, wenn man eine Web-Anwendung im Applikationserver oder eine einfache Jar-Datei debuggen will. Mein Beitrag zeigt euch das Debuggen einer Jar-Datei mit Eclipse.
Total Bananne, aber dennoch oft gefragt, stelle ich euch heute die BASE64 Kodierung vor.
Für die Übertragung von Binärdaten im Internet hat sich im Laufe der Zeit die so genannte Base64-Kodierung durchgesetzt. Man findet diese Art der Kodierung zum Beispiel bei E-Mail-Anhängen, Downloads oder SOAP-Nachrichten. Die im Request for Comments kurz RFC 1521 beschriebene Methode übersetzt drei Bytes also 24 Bits (1 Byte = 8 Bit;-) in vier Base64-kodierte Zeichen (4 Zeichen mit jeweils 6 repräsentativen Bits). Die Base64-Zeichen bestehen aus den Buchstaben des lateinischen Alphabets, den Ziffern 0 bis 9 sowie den Sonderzeichen „+“, „/“ und „=“.
(mehr …)
Unglaublich, aber heute hat mich Java zum ersten Mal in meinem Leben enttäuscht:-(
Wie die Überschrift des Blogeintrags verrät, habe ich Ungenauigkeiten in der Zeitmessung von Java festgestellt. Normalerweise verwende ich Timestamps selten als Primery-Key in der Datenbank, aber wenn die eigentliche Verarbeitung unter 10 Millisekunden dauert, kann das zu Problemen unter Windows XP führen! Laut API bestimmt das darunter liegende Betriebssystem wie oft der Zeitwert aktualisiert wird. Mit anderen Worten: Windows XP (32 Bit) und Java Version: JDK 1.6.0_16 aktualisieren im Durchschnitt aller 15 ms die Systemzeit. Somit erhält man in meinem Beispiel(Datenbank-Primery-Key) zweimal den gleichen Timestamp und provoziert damit einen SQL-Fehler. Dabei spielt es keine Rolle, ob man die Funktion System.currentTimeMillis(); oder das Objekt new Date(); verwendet.
(mehr …)