C++Guns – RoboBlog blogging the bot

13.08.2012

Aquarienstaubsauger getunt

Filed under: Allgemein — Tags: — Thomas @ 17:08

Es gibt von Eheim so eine Art Aquarienstaubsauger um Fisch AA und sonstige Sachen aus dem Bodenkies zu entfernen. Leider ist das Ding furchtbar unterdimensioniert und die vier Mignon Zellen sind ruck zuck leer. Da muss ein Netzteil her!

Aquarienstaubsauger

Aquarienstaubsauger

Die Batterien hatten nur noch 1.3V und so stellte sich ein Strom von 0.35A ein. Das macht langweilige 1.8W.
Zur Probe schloss ich mal mein Netzteil ein und stellte es auf normale 6V. Ein Strom von 0.5A macht 3W. Fast schon die doppelte Leistung. Nun wird auch ordentlich Waser gefördert.
Bei 7V und 0.65A stellte sich eine bomben Leistung von 4.6W ein. Da floss das Wasser nur so in Strömen.

5V 1.8W

5V 1.8W

6V 3W

6V 3W

7V 4.6W

7V 4.6W

Darauf hin kaufte ich ein Steckernetzteil mit einstellbarer Spannung von 5V, 6V, 6.5V und 7V. Etwas Kabel und zwei Schrauben später war der Netzanschluss fertig. Die Investition von 22Eur sollte schnell wieder drin sein. Selbst wenn ein Pack billig Batterien nur 1Eur kosten und man regelmäßig das Aqua sauber macht, sollte sich das nach einem halben Jahr schon rentiert haben.

04.08.2012

Rohrverstopfung in der Sickergrube

Filed under: Allgemein — Tags: — Thomas @ 20:08

Vor ca. 10 Jahren haben wir eine Sickergrube angelegt um das Regenwasser der Garage dort versickern zu lassen. Nun hat sich das Rohr aber wegen Sand und Laub so zugesetzt, dass sich das Regenwasser seinen Weg mitten durch die Garage gebahnt hat.
Nun heißt es: Hof aufbuddeln und Verstopfung beseitigen. Hier ein paar Bilder.

Hoffentlich ist das Rohr hier irgendwo

Hoffentlich ist das Rohr hier irgendwo

Gefunden! Halben Meter voll mit Matsch.

Gefunden! Halben Meter voll mit Matsch.

Pause!

Pause!

Hasendraht verhindert eindringen von Steinen.

Hasendraht verhindert eindringen von Steinen.

Und Tschüß!

Und Tschüß!

Damit das Rohr nicht wieder verstopft, haben wir uns etwas ausgedacht. Natürlich kommen erstmal neue Laubfilter auf die Garage. Aber Sand spült sich immer mit ins Rohr. Deswegen haben wir den Auslauf des Rohres von 75mm Stufenweise bis auf 160mm vergrößert. So entsteht im Rohr Stauraum der sich erst mit Sand zusetzen muss, bevor sich Sand im Rohr ablagert.
Die Zeichnung soll das verdeutlichen.

Schlamm Stauraum

Schlamm Stauraum

01.05.2012

Festplattengehäuse Lüftungslöcher

Filed under: Allgemein — Tags: — Thomas @ 10:05

Ich hab in mein Festplattengehäuse mal ein paar Lüftungslöcher gebohrt nur um festzustellen, dass sie garnicht benötigt werden.
Wie man auf dem Bild erkennen kann, strömt die Luft in den Schlitz zwischen den Gehäuseteilen. Na toll -_-

Unnötige Lüftungslöcher, der Rauch strömt durch den Schlitz

Unnötige Lüftungslöcher, der Rauch strömt durch den Schlitz

13.03.2012

Firefox Speicherverbrauch

Filed under: Allgemein — Tags: — Thomas @ 15:03

Wenn der Firefox ein halben Gigabyte virtuellen Speicher verbraucht ist das schon normal heute. Ich wollte mir den realen
Speicherverbrauch mal genau ansehen. Glaubst du, ich finde irgendein Tool was das kannst? Da gibt es ja überhaupt
garnichts um den Speicherverbrauch über einen Zeitraum aufzuzeichnen und dann zu plotten.
Ich habe 45min vergebns gegoogelt und mir was in 5min selbst geschrieben.
Einfach alle Sekunde ps aufrufen und das Ergebnis in eine Datei schreiben. Mit gnuplot dann den Grapg erzeugen.

firefox_memory

while(true); do ps -p 31258 -o rss --no-headers | tee -a firefoxrss ; sleep 1; done

Man sieht, dass der Verbrauch recht konstant bleibt. Nach einem neustart ists etwas weniger, aber nur für kurz Zeit.
in about:memory kann man Speicher per Knopfdruck frei geben. Das bringt gerade mal 10MB.
Das Addon RAMBack bringt genauso wenig.
Und diverse Optionen in about:config haben auch Null effekt.
Scheiß Browser. Aber die andern sind noch schlimmer. :/

07.02.2012

Akkuschrauber Akku repariert

Filed under: Allgemein — Tags: , — Thomas @ 18:02

Nach über 11 Jahren hat die Leistung meines Akkuschraubers doch schon deutlich nachgelassen. (Ja, ich pflege meine Akkus, darum halten sie so lange.)
Also habe ich mich dran gemacht und jede einzelne Zelle kontrolliert. Die Nennkapazität betrug 1200mAh. Einige Zellen kamen sogar noch auf über 900mAh. Ein paar hatte nur noch 600mAh oder weniger. Und eine war komplett defekt.

Aus der Bastelkiste habe ich einen noch recht brauchbaren NiCD Akku mit mindestens 900mAh Restkapazität gefischt. Auch vier NimH Zellen die noch recht neu sind lißen sich auftrauben. Ich konnte also 5 Zellen auswechseln ohne Geld auszugeben :)
Eine Zelle hätte mich sonst etwa 5Eur, und ein Ersatzakku 50Eur gekostet :)

Nun hat er wieder ordentlich Power. Das reicht für die nächsten 5 oder 10 Jahre ;)

Akku mit ein paar Ersatzzellen

Akku mit ein paar Ersatzzellen

24.01.2012

Fixed...

Filed under: Allgemein — Tags: , — Thomas @ 20:01

Neuer Stromanschluß :D
fixed

20.12.2011

Weihnachtsbaumständer selbst gebaut

Filed under: Allgemein — Tags: — Thomas @ 21:12

Weihnachtsbaum geschenkt bekommen, doch oh Schreck. Kein Weihnachtsbaumständer.
Doch kein Problem! Zwei Bretter und eine Hand voll Schrauben später:

weihnachtsbaumstaender

Der steht so bombenfest, den wirft niemand um. Das Fest kann kommen :)

06.11.2011

Stichsägenkoffer

Filed under: Allgemein — Tags: , — Thomas @ 01:11

Material: eine alte Matratze und ne Tupe UHU

stichsaegenkoffer

06.09.2011

example to change the base instance of a derived object

Filed under: Allgemein — Tags: , , — Thomas @ 15:09

Man hat ein Array von Objekten einer abgeleiteten Klasse.
Da new[] nur den Default Konstruktor aufruft, kann man keine schon existierende Instanz der Basisklasse mitgeben.
Folgender Code zeigt, wie man die Basisinstnaz nachträglich ändern kann.


// example to change the base instance of a derived object
#include < iostream >
using namespace std;

class rawData
{
public:
double x;
};

class extendedData : public rawData
{
public:
int a;
};

int main ()
{
rawData *knoten = new rawData[2];
knoten[0].x = 0;

extendedData *knotenext = new extendedData[2];
knotenext[0].x = 1;
knotenext[0].a = 10;

cout << knotenext[0].x << endl; cout << knotenext[0].a << endl; // do the magic rawData *base = &knotenext[0]; *base = knoten[0]; cout << knotenext[0].x << endl; cout << knotenext[0].a << endl; delete[] knoten; delete[] knotenext; return 0; }

Ausgabe:

1
10
0
10

Valgrind:

kater@mintux:~$ valgrind ./a.out --leak-check=full
==7218== Memcheck, a memory error detector.
==7218== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==7218== Using LibVEX rev 1854, a library for dynamic binary translation.
==7218== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==7218== Using valgrind-3.3.1-Debian, a dynamic binary instrumentation framework.
==7218== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==7218== For more details, rerun with: -v
==7218==
1
10
0
10
==7218==
==7218== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 18 from 1)
==7218== malloc/free: in use at exit: 0 bytes in 0 blocks.
==7218== malloc/free: 2 allocs, 2 frees, 40 bytes allocated.
==7218== For counts of detected errors, rerun with: -v
==7218== All heap blocks were freed -- no leaks are possible.

Eigentlich hätte ich erwartet, dass man das alte Basisobjekt noch löschen muss. Aber anscheinend nicht :)

11.03.2011

gzip auf mehreren Kernen

Filed under: Allgemein — Tags: , — Thomas @ 00:03

Das Komprimieren von Daten sollte man doch wunderbar parallelisieren können. Und tatsächlich haben das schon ein paar Jungs gemacht

pigz, which stands for parallel implementation of gzip, is a fully functional replacement for gzip that exploits multiple processors and multiple cores to the hilt when compressing data.

http://www.zlib.net/pigz/

Funktioniert wunderbar :)

Powered by WordPress