Comparator – eigene Sortierung, wenn immer ein bestimmter Wert am Anfang stehen soll

Man möchte eine Liste (in dem Beispiel mit Path-Objekten) sortieren. Allerdings soll ein bestimmter Eintrag ganz vorne in der Liste stehen, unabhängig von der Standardsortierung.
Dazu kann man den Comparator implementieren, der die entsprechende Prüfung vornimmt und sonst die Standard compareTo Methode aufruft.

protected Comparator<Path> pathComparator = new Comparator<Path>() {
  @Override
  public int compare(final Path path1, final Path path2) {
    if (path1.toString().endsWith("base.properties")) {
      return -1;
    }
    if (path2.toString().endsWith("base.properties")) {
      return 1;
    }

    return path1.toString().compareTo(path2.toString());
  }
};

Messergebnis senden

Nachdem im letzten Schritt die Temperatur ausgelesen wurde, soll nun die Temperatur von einem Arduino zum anderen gesendet werden. Damit dies alles recht günstig passieren kann, habe ich hier wieder preislich entsprechende Teile gewählt. Die Kommunikation soll erstmal via 433MHz erfolgen (wie bei den billigen schaltbaren Steckdosen).

Hardware-Sendeeinheit

Identisch zum letzten Aufbau, zusätzlich wird noch ein RF Sender (3,49 €) benötigt.

Der Schaltplan wird jetzt um den RF Sender erweitert. Dieser braucht wie bereits der Temperatursensor, nur eine Leitung, neben der Stromversorgung.
Messergebnis senden weiterlesen

Temperatursensor mittels Arduino auslesen

Ziel des Projektes ist es nun, mittels eines einfachen Aufbaus die aktuelle Temperatur zu erfassen und seriell am Rechner auszugeben. Dafür verwenden wir einen Arduino UNO, für den alle benötigten Bibliotheken vorhanden sind, und einen einfachen Sensor.

Hardware

Benötigte Hardware (die Preise dahinter sind von Watterott):

  • Arduino UNO – 23,80 €
  • DS18B20 (OneWire-Temperature Sensor von Dallas) – 2,- €
  • 4,7k Ohm Widerstand
  • 4 Steckkabel
  • Breadboard

Temperatursensor mittels Arduino auslesen weiterlesen

Ant usage in Gradle projects, with XMLBeans as an example

Porjects, which are running on Ant today, can also think about a movement to Gradle. This is of course the point of view in the Gradle community. Gradle deliver an Ant and Maven integration. That is one reason, why you get the current Ant version installed on your machine, when running the commandgradle -v.

------------------------------------------------------------
Gradle 1.4
------------------------------------------------------------

Gradle build time: Montag, 28. Januar 2013 03:42 Uhr UTC
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.8.4 compiled on May 22 2012
Ivy: 2.2.0
JVM: 1.7.0_17 (Oracle Corporation 23.7-b01)
OS: Mac OS X 10.8.3 x86_64

In Gradle scripts you can link Ant tasks, or you can call Ant commands. Here now an example, how to use Ant taskdef within Gradle, and as exmaple the Apache XML Beans lib is used. XML Beans is a JAXB implementation.
Ant usage in Gradle projects, with XMLBeans as an example weiterlesen

DB2 terminal session – change the instance

You are connected with a terminal session to your database server and just executing the good known db2profile.
In the next step you want to execute db2 connect to blabla, but you get an error message, database is unknown – but you know, the database exists on that server… but not in that instance. You are connected to the wrong instance, because your DB server has more than one instance on it (lets call them db2inst1 and db2inst2).

You can see the error, what’s next?
DB2 terminal session – change the instance weiterlesen

DB2 in der Terminal Session – wechseln der Instanz

Man verbindet sich mit einer Terminal Session zu seinem Datenbank Server und führt das bekannte db2profile aus.
Im nächsten Schritt will man ein einfaches db2 connect to blabla, doch man erhält die Fehlermeldung, dass diese Datenbank unbekannt ist – aber es gibt sie wirklich. Denn leider ist man mit der falschen Instanz verbunden, denn der Server besitzt mehrere Instanzen von DB2 (nennen wir sie mal db2inst1 und db2inst2).

Man erkennt den Fehler, was nun.
DB2 in der Terminal Session – wechseln der Instanz weiterlesen

Create Eclipse projects with the usage of Gradle

Why using a build tool, to create Eclipse projects files, which are only created once? When you are working in a distributed team, with multiple developers on different platforms (like Linux, Windows or Mac OS X), you want them to create their own Eclipse project files, in their environment – and you don’t want these files to be shared in your version control system. But you really want, that the use the same folder and project structure, with the same external libs (in maybe different locations).

It could also make sense, to recreate the project files, when you’ve added some new libs to your project – which you not want to share via your VCS system.

What do you need to do, to get Gradle to support you.
Create Eclipse projects with the usage of Gradle weiterlesen

Gradle einsetzen um Eclipse Projekte zu erstellen

Warum soll man ein Build Tool verwenden, um ein Eclipse Projekt zu erstellen, welches nur einmal erstellt wird? Arbeitet man mit mehreren Entwicklern, die vielleicht auch noch auf mehreren Plattformen (Linux, Windows, Mac OS X) unterwegs sind, möchte man vielleicht nicht die Eclipse Projekt Dateien in seiner Versionskontrolle hinterlegen. Aber man möchte sicherlich, dass jeder, bei der Erstellung des eigenen Eclipse Projektes, die identischen Rahmenbedingungen schafft. Es sollen die gleichen Quell und Ziel Verzeichnisse verwendet werden, die externen Library Versionen sollten auch zueinander passen.

Dies könnte also durchaus einen Sinn ergeben, warum man das Eclipse Projekt nicht nur einmal, sondern eben mehrmals erstellt und vielleicht aktualisiert, wenn neue Bibliotheken in das Projekt eingebunden werden.

Was muss man also machen, um mit Hilfe von Gradle solch eine Unterstützung zu erreichen.
Gradle einsetzen um Eclipse Projekte zu erstellen weiterlesen

Read Excel files within of DataStage – using Java Stages – Part 1

With DataStage older than version 9.1, it was not possible to read Excel doucments (maybe, when using a Windows Server and creating an ODBC interface for teh Excel). But business folks, like the usage of Excel to collect their data (Excel is a good and powerful tool, but if it the right choice to collect data?), and with that, it is very common in a data migration project that you get hundreds of Excel to process in your ETL tools.

When not using DataStage 9.1, maybe the usage of a Java stage could help you

Because with the Java API Apache POI, it is easy to read Excel files (97 and 2007 format).
Read Excel files within of DataStage – using Java Stages – Part 1 weiterlesen