Freu-Thread

ich habe aus der aktuellen c’t den Raspberry zur Fernsteuerung für Funksteckdosen umgebaut. Problem war das ich Intertechno-Dinger habe. Funktioniert also nicht Out-of-the-Box. Aber Google hat mir schön weiter geholfen. Nun noch eine kleine Webseite dazu gebastelt und schon kann ich vom Tablet Licht an/ausschalten

klick an
klick aus
klick an
klick aus

klickst du immer noch? :slight_smile:

nee - ich habe die Aufgabe an meiner Kinder heute morgen abgegeben. Dafür Diskutiere ich jetzt mit der Verkabelung fürs das nächste Licht (zu wenige Kabel).

Habe es gerade hinbekommen, auf die Datenbank meiner Webanwendung mandantenfähig zuzugreifen. Der Knackpunkt: automatische Auswahl des Schemas anhand der Domain des Servers.
Das Problem dabei war, dass die Auflösung des Mandantenidentifizierers erfolgt, bevor Spring den RequestContext verfügbar macht.
Die Lösung: einen ganz einfachen ServletFilter, der den Servernamen threadlokal ablegt.

49ers im Football halbfinale - dieses Jahr wirds wars mit der Super bowl !!

Ich liebe es!

Ich hab eine Methode optimiert die von der Abarbeitungszeit bei ca. 3h lag, jetzt dauert es nur noch 7 Minuten.:wizard:

::banana::banana::banana::banana::banana

[QUOTE=Greta]Ich liebe es!

Ich hab eine Methode optimiert die von der Abarbeitungszeit bei ca. 3h lag, jetzt dauert es nur noch 7 Minuten.:wizard:

::banana::banana::banana::banana::banana[/QUOTE]
Du kannst ja zaubern!

[QUOTE=Greta]Ich liebe es!

Ich hab eine Methode optimiert die von der Abarbeitungszeit bei ca. 3h lag, jetzt dauert es nur noch 7 Minuten.:wizard:

::banana::banana::banana::banana::banana[/QUOTE]

Wie hast du denn das gemacht? :smiley:

Ganz einfach Groggy

--- Thread.sleep(3 * 60 * 60 * 1000);
+++ Thread.sleep(7 * 60 * 1000);

Oft gibt es erstaunlich coole Möglichkeiten Zeit zu sparen. Vielleicht verrät Greta ja etwas mehr.

Mich würde eher interessieren, was das für eine Methode ist, die 3 Stunden braucht um sich selber abzuarbeiten… Solch eine Zeit kann man nur in die länge ziehen, wenn man das manipuliert - andererseits ist sie/er ja froh, kürzere Wartezeiten zu haben.
Ergo: Irgendwas übernommen, bei google (und sonst so) gefragt, irgendwas gelesen, nicht kapiert und hier auf dicke Hose machen…

Ich nehme alles zurück, wenn du mir die laaangsame Methode und die schnelle mal so per Code-Tags zeigst…:wink:

Edit:

Mit der gesamten Programmlogik natürlich.

Das würde mich auch interessieren. Wahrscheinlich ist, dass es eine Abrechnungsmethode ist. Mangels eigener Erfahrungen in dem Bereich kann ich das selbst nicht beurteilen, aber in einschlägiger Literatur zum Thema OOP im Bereich Unternehmensanwendung liest man häufiger von Abrechnungen, die teilweise ohne Optimierungen sogar länger als 24 Stunden dauern.

Abgesehen davon: Berechnen der Kreiszahl auf eine beliebige Genauigkeit dauert auch beliebig lange :wink:

Och, ich habe auch schon äußerst dilettantischen Code mit SQL gesehen, der Ergebnisse aus zwei Datenbanken zusammenführen sollte und dann für jedes Result aus der ersten Abfrage nicht nur ein einzelnes (auch recht langsames) Query auf die zweite DB abgesetzt hat, sondern auch jedes mal die Connection geöffnet und geschlossen hat. Je nach Ergebnismenge summiert sich da auch die Zeit.

Diese Funktion liest eine CSV-Datei ein und speichert den Inhalt in eine Datenbank auf 4 Tabellen verteilt. Zu jedem Zugriff auf die Datenbank wird zusätzlich noch ein Eintrag in eine Log-Tabelle getätigt. Der Kollege hat sich die IDs für die Log-Einträge direkt von der Sequenz geholt anstatt in der Entity-Klasse die Sequenz als ID-Generator anzugeben.

Ich hab nur die Sequenz gescheit annotiert und schon flitzt der durch :slight_smile:

Auf Datenschubserei hätte ich jz auch getippt. Da hatte ich auch mal einen ähnlichen Fall wo ich Arbeit von Stunden auf Sekunden runterbrechen konnte (ebenfalls weil ursprünglich noch mit den Daten gearbeitet wurde, anstatt sie einfach von a nach b zu bewegen).

jo bei sowas ist es entweder IO oder Datenbankgerammel…

Wuhu, hab heraus wie ich den Bonprinter ansteuern muss.

Ich glaub ich habe endlich raus wie ich Jenkins daran hindern kann beim archivieren von Artifakten den Slave Channel jedesmal vorzeitig zu terminieren.
Einfach mal den Slave via Java 7 starten lassen anstelle von Java 6.

Was sehr merkwürdig ist, denn ein älterer Jenkins Build, welcher den selben Slave zum Bauen nutzt, hat keine Probleme beim archivieren obwohl er den Slave mit Java 6 gestartet hat.

Gerade die Methode ConcurrentHashMap#computeIfAbsent() entdeckt. Genial praktisch, wenn die Berechnung nicht isomorph oder sehr aufwändig ist oder Seiteneffekte hat. Und das ohne, dass man die Vorteile der ConcurrentHashMap durch ein externes synchronize kaputt macht :slight_smile:

I believe I can fly…

wie süüüüüüüüß, gibts die auch für zu Hause?