c++ show elapsed time with chrono::high_resolution_clock

A small snippet to display the elapsed time between two time points:

#include <iostream>
#include <chrono>
 
using namespace std;
 
chrono::high_resolution_clock::time_point tic() {
	return chrono::high_resolution_clock::now();
}
 
void toc(chrono::high_resolution_clock::time_point tic) {
	chrono::high_resolution_clock::duration
		duration = chrono::high_resolution_clock::now() - tic;
	cout << "Elapsed time is "
			<< chrono::duration_cast<chrono::milliseconds>(duration).count()
			<< " milliseconds." << endl;
}
 
 
int main() {
 
	/* start measure */
	auto start = tic();
 
	/* do stuff */
	for (int i = 1; i < 10000000; i++) {
		if (i % 5 == 0) {
			continue;
		}
	}
 
	/* stop measure */
	toc(start);
 
}

Configure apticron to only report security updates

Apticron lacks the ability to only report security updates. With this small change in the script code, you only receive a report when a security update is available.

On line 117 in the file /usr/sbin/apticron the script collects the names of the packages:

PKGNAMES=`/usr/bin/apt-get -q -y --ignore-hold --allow-unauthenticated -s dist-upgrade | \
          /bin/grep ^Inst | /usr/bin/cut -d\  -f2 | /usr/bin/sort`

The result before /usr/bin/cut is something like this:

Inst base-files [6.0squeeze8] (6.0squeeze10 Debian:6.0.10/oldstable [amd64])
Inst dpkg [1.15.8.13] (1.15.11 Debian:6.0.10/oldstable, Debian-Security:6.0/oldstable [amd64])
Inst linux-base [2.6.32-48squeeze4] (2.6.32-48squeeze6 Debian:6.0.10/oldstable, Debian-Security:6.0/oldstable [all])
Inst linux-image-2.6.32-5-amd64 [2.6.32-48squeeze4] (2.6.32-48squeeze6 Debian:6.0.10/oldstable, Debian-Security:6.0/oldstable [amd64])
Inst tzdata [2013d-0squeeze1] (2014e-0squeeze1 Debian:6.0.10/oldstable [all])
Inst file [5.04-5+squeeze2] (5.04-5+squeeze5 Debian:6.0.10/oldstable, Debian-Security:6.0/oldstable [amd64]) []
Inst libmagic1 [5.04-5+squeeze2] (5.04-5+squeeze5 Debian:6.0.10/oldstable, Debian-Security:6.0/oldstable [amd64])
Inst libgnutls26 [2.8.6-1+squeeze2] (2.8.6-1+squeeze3 Debian:6.0.10/oldstable, Debian-Security:6.0/oldstable [amd64])
Inst openssh-server [1:5.5p1-6+squeeze4] (1:5.5p1-6+squeeze5 Debian:6.0.10/oldstable, Debian-Security:6.0/oldstable [amd64]) []
Inst openssh-client [1:5.5p1-6+squeeze4] (1:5.5p1-6+squeeze5 Debian:6.0.10/oldstable, Debian-Security:6.0/oldstable [amd64])
Inst apache2-mpm-prefork [2.2.16-6+squeeze11] (2.2.16-6+squeeze12 Debian:6.0.10/oldstable [amd64]) []
Inst apache2.2-common [2.2.16-6+squeeze11] (2.2.16-6+squeeze12 Debian:6.0.10/oldstable [amd64]) []
Inst apache2.2-bin [2.2.16-6+squeeze11] (2.2.16-6+squeeze12 Debian:6.0.10/oldstable [amd64])

To only report security updates, just add a grep for „Debian-Security“:

PKGNAMES=`/usr/bin/apt-get -q -y --ignore-hold --allow-unauthenticated -s dist-upgrade | \
          /bin/grep ^Inst | grep "Debian-Security" | /usr/bin/cut -d\  -f2 | /usr/bin/sort`

Reflow-Ofen für SMD-Löten mit AVR Steuerung

Mit einem kleinen Pizza-Ofen / Brötchen-Ofen läßt sich wunderbar ein Reflow-Ofen für SMD-Bauteile basteln. Viele neue Bauteile gibt es nur noch in der SMD-Version, daher habe ich mir gedacht, ich baue mir einen entsprechenden Ofen dazu. Wichtig bei der Auswahl des Ofens ist die Leistung pro Liter, diese sollte bei ~100 Watt pro Liter liegen um eine steile Heizkurve zu erhalten. Bei eBay fand ich einen Ofen von Adler (?) mit 1000 Watt auf 9L Raum mit 4 Heizelementen, optimal!

reflow_ofen_1

Hier geht es zum Projekt.

ARM Cortex M4 Discovery Board von STMicroelectronics

stm32f429i-disco
Nachdem ich schon eine Weile mit dem Gedanken gespielt habe, mich mit der ARM Platform auseinander zu setzen, werde ich mir nun endlich ein Discovery Board beschaffen. Meine Wahl ist dabei auf das STM32F429I-DISCO von STMicroelectronics gefallen.

Das Discovery Board hat ein 2,4″ TFT mit Touch und ein 3-Axis Gyroskop (L3GD20). Was genau ich damit anstelle, ist mir noch nicht klar, aber möglich scheint mit einem Cortex M4 vieles zu sein.

Weitere Infos kann man beim Elektronik Distributor Farnell finden.

20-Kanal Funkzündanlage für Silvester 2013

zuender_1 Für das diesjährige Feuerwerkspektakel haben wir uns einen 20-Kanal Funkzündanlage gebaut, der komplett über den PC gesteuert wird. Dadurch haben wir die Beqemlichkeit, neue Features per Software zu realisieren und können einen Ablaufplan erstellen, der all das Feuerwerk geplant zündet.

Ein paar Details:
– Funkmodule HopeRF RFM69HW
– 20x IRF3708 Mosfet (30V, 62A)
– SMA-Anschluss für Antennen
– ATMega328 Mikrocontroller zur Steuerung

Hier geht es zum Projekt.

Grado Alessandro MS1 mit neuem Kabel

Nach einem Kabelbruch und „aus Frust weglegen“ habe ich vor einigen Tagen meine Ersatzkopfhörer weggelegt und mein MS1 repariert. Ich habe eine Weile gesucht, habe aber dann ein Cordial Y-Kabel auf Amazon gefunden. Die Cinch-Stecker einfach öffnen, die Hörer mit heißer Luft (Fön) öffnen und die Kabel neu drauflöten. Dazu gabs frische Sennheiser HD414 Pads, die Alten waren hinüber.

Der Y-Teil des Kabels hängt zwar ein wenig weit oben, stört aber beim tragen nicht. Der Stecker ist ziemlich stabil.

Endlich wieder MS1 hören! Meine Gamer-Kopfhörer sind für alles mögliche nützlich, nur nicht fürs Musik hören. Der Unterschied ist schon stark.

ms1

74HC595 Shift Register mit definiertem Start-Zustand

Ich bastel gerade an einem Projekt bei dem ich ca. 20 MOSFETs über drei 74HC595 Schieberegister ansprechen möchte. Da die MOSFETs große Ströme schalten, möchte ich unbedingt vermeiden, dass diese zufällig beim Power-Up toggeln. Nach ein wenig basteln und Unterstützung aus dem µC-Forum bin ich zu folgender Lösung gekommen.
(mehr …)

Windows und Zahlen

Bin immer wieder erstaunt wie immer wieder solche abstrusen Zahlen im Windows Software-Manager hervorkommen:
windows_software
Dabei habe ich nur 128GB zur Verfügung.

ATmega Demoboard

Es gibt nix nervigeres als das halbe Breadboard für eine ATmega Grundschaltung zu verheizen, deswegen mußte jetzt ein eigenes Demoboard her. Die Verkabelung ist zwar Kraut und Rüben, aber es funktioniert. Mein murksiger ISP Adapter (mit viel Heißkleber) gehört endlich der Vergangenheit an und mit dem einfachen Spannungswandler kann ich mal eben eine 9V Batterie anschließen! Cool und unendlich praktisch sind auch die auflötbaren Lüsterklemmen.

Jetzt muss ich nur noch überlegen für was ich den Rest der Platine nutze.

IMG_20130726_001244