Search Results for: t3

bus bastelei

20130907_bus

ich hab ein bischen “pflege” an meinem t3 betrieben. die wassertemperaturanzeige hat vor ein paar wochen einfach den dienst eingestellt. nach ein bischen bemuehungen bei google wusste ich schonmal, dass man die anzeige testen kann, wenn man einach den stecker vom sensor ab zieht und die kontakte im stecker ueberbrueckt. dann sollte die anzeige vollausschlag bringen… leider tat sie das nicht. diesen check habe ich von oben aus dem motorrraum vorgenommen. deswegen hatte ich nicht das gesehen, was ich vor ein paar tagen bei betrachtung von unten gesehen habe… naemlich einen “kabelbruch”:

20130907_kabelbruch

bzw… keine ahnung. fuer so einen “bruch” muesste ja auch ein knick da sein. vielleicht wars auch angefressen oder so. auf jeden fall ist die ummantelung der kabel in diesem alter wirklich sehr bruechig, was ich dann bei der reparatur festgestellt habe. statt dieser bloeden “schneid-klemm-verbinder” habe ich das mal anstaendig verloetet und einen schrumpfschlauch drum gemacht.

und dann war da noch die nicht zu ueberhoerende undichtigkeit des auspuffs. die firma atu war zu doof diese zu finden. nicht nur, dass man diese ja akustisch orten koennte… als ich unter dem bus lag, habe ich das auf den ersten blick gesehen. naemlich zwischen zylinderkopf und kruemmer war schon eine schwarze spur vom abgasaustritt zu sehen. da hab ich einfach mal die zwei schrauben angezogen und gut wars. bei gelegenheit wird dann auch noch eine neue dichtung rein kommen.

20130907_auspuff

automx howto

gaengige mailclients beherrschen heute die automatische konfiguration der einstellungen anhand der eingegebenen benutzerdaten (emailadresse und passwort).

335x80xlogo_automx

das projekt automx.org hat sich der “sache” angenommen, damit nicht jeder sein setup selber erfinden muss. die insstallation gestaltet sich (stand heute) etwas schwierig, da die dokumentation nicht ganz up to date ist. ein debian paket fuer die aktuelle version gibt es derzeit nicht, aber ich konnte mir mit ein paar kruecken mit dem ubuntu paket auf meinem squeeze weiterhelfen. da ich mir nicht notiert habe, was ich zur installation alles gemacht habe, beschreibe ich das hier auch nicht naeher. ich denke mal, dass jeder, der ein solches setup haben will auch ein bischen vorwissen und basteltrieb bzgl. linux und softwareinstallation hat 😉

ausgegangen von folgendem setup: eine domain, postfix mit mysql backend – ergibt sich fuer mich folgende configdatei (/etc/automx.conf – basierend auf automx version 0.9, relevante kommentare in der datei selbst)

[automx]
provider = domain.tld
# alternativ zum wildcard (*) koennen die domains mit
# komma getrennt angegeben werden
domains = *

debug = yes
# verzeichnis muss erstellt werden und owner der webserver 
# user sein. berechtigung 750. 
# logrotate nicht vergessen zu konfigurieren!
logfile = /var/log/automx/automx.log

# Protect against DoS
# default einstellungen
memcache = 127.0.0.1:11211
memcache_ttl = 600
client_error_limit = 20
rate_limit_exception_networks = 127.0.0.0/8, ::1/128

# The DEFAULT section is always merged into each other
# section. Each section can overwrite settings done here.
[DEFAULT]
account_type = email
account_name = domain.tld
account_name_short = domain.tld

# If a domain is listed in the automx section, it may have 
# its own section. If none is found here, the global section 
# is used.
[global]
backend = sql
action = settings

# datenbankverbindung
host = mysql://user:password@dbserver.domain.tld/databse

# die abfrage muss den eigenen begebenheiten angepasst werden
query = SELECT user FROM qry_mailaddresses WHERE user='%s';

# das ergebnis mit "result_attrs" einer variablen zuweisen
# mehrere spalten im ergebnis mit komma getrennt
# im weiteren kann diese variable so benutzt werden: ${user}
result_attrs = user

smtp = yes
smtp_server = mail.domain.tld
smtp_port = 25
smtp_encryption = starttls
smtp_auth = plaintext
smtp_auth_identity = ${user}
smtp_expiration_date = 20131231
smtp_refresh_ttl = 6
smtp_default = yes

pop = yes
pop_server = mail.domain.tld
pop_port = 995
pop_encryption = ssl
pop_auth = plaintext
pop_auth_identity = ${user}
pop_expiration_date = 20131231
pop_refresh_ttl = 6

imap = yes
imap_server = mail.domain.tld
imap_port = 993
imap_encryption = ssl
imap_auth = plaintext
imap_auth_identity = ${user}
imap_expiration_date = 20131231
imap_refresh_ttl = 6

hinweis: die reihenfolge der einstellungen bestimmt auch die default auswahl im mailclient. d.h. wenn der bereich mit den imap einstellungen vor pop genannt wird, zeigt z.b. thunderbird imap und pop3 als option an, aber imap ist als standard ausgewaehlt… und umgekehrt.

damit die mailclients den service finden, muessen in der entsprechenden zone (hier domain.tld) folgende eintraege gemacht werden (natuerlich an die eigenen gegebenheiten angepasst):

autoconfig      IN    A     xxx.xxx.xxx.xxx
autodiscover    IN    A     xxx.xxx.xxx.xxx

in der apache konfiguration ist entgegen der anleitung die datei “automx.wsgi” zu ersetzen durch “automx_wsgi.py”. meine apache config sieht dann ungefaehr so aus:


  ServerName autoconfig.domain.tld
  ServerAdmin webmaster@domain.tld
  
    WSGIScriptAlias /mail/config-v1.1.xml /usr/local/lib/automx/automx_wsgi.py
    
      Order allow,deny
      Allow from all
    
  



  ServerName autoconfig.domain.tld:443
  ServerAdmin webmaster@domain.tld
  
    WSGIScriptAlias /Autodiscover/Autodiscover.xml /usr/local/lib/automx/automx_wsgi.py
    WSGIScriptAlias /autodiscover/autodiscover.xml /usr/local/lib/automx/automx_wsgi.py
    
      Order allow,deny
      Allow from all
    
  

das entsprechende modul wsgi muss natuerlich installiert und anschliessend mit diesem befehl aktiviert werden:

a2enmod wsgi

apache neu starten und gut.

mit dem mitgelieferten prograemmchen “automx-test” und der mailadresse als parameter kann man das ergebnis ueberpruefen. alternativ kann man z.b. die autoconfig url manuell aufrufen und sich das ergebis im browser ansehen:

https://autoconfig.domain.tld/mail/config-v1.1.xml?emailaddress=bla@domain.tld

das ergebnis sollte mit obiger config dann so aussehen:


  
    domain.tld
    domain.tld
    domain.tld
    
      mail.domain.tld
      25
      STARTTLS
      password-cleartext
      bla@domain.tld
      yes
    
    
      mail.domain.tld
      995
      SSL
      password-cleartext
      bla@domain.tld
    
    
      mail.domain.tld
      993
      SSL
      password-cleartext
      bla@domain.tld
    
  

und dann kanns losgehen… z.b. mit dem thunderbird ein neues mailkonto anlegen:

20130325_automxtest1

wenn da geschrieben steht: “Einstellungen wurden bei Ihrem Anbieter des E-Mail-Dienstes geunden”, funktioniert das ganze. wie oben beschrieben, ist hier nun pop3 vorausgewaehlt, weil pop3 in der xml antwort vor imap genannt ist.

20130325_automxtest2

ein klick auf “Manuell bearbeiten” gibt alle details preis. idealerweise genau so, wie sie von automx zurueck gegeben werden 😉

20130325_automxtest3

(und im gegensatz zu outlook stimmen hier auch die einstellungen, wenn man manuell auf imap umstellt. aber outlook und das microsoftsche autodiscover ist sowieso ein ganz anderes thema. das wird ein gesonderter und wahrscheinlich langer blog eintrag mit vielen wenns und abers. und in einer “multidomain umgebung” ists dann ganz vorbei mit lustig…)

die richtige schraube

eine normale schraube passte ja nicht. hier nun die richtige “oel-ablass-schraube” fuer den t3 wbx ss motor:

und falls die mal jemand bestellen muss… so sieht sie aus, da steht die teilenummer und der preis:

murphy’s oelwechsel law

wenn man einen oelwechsel in der naehe eines kanaldeckels macht und sich dann noch quasi vorsagt “aufpassen, dass die schraube nicht in den kanal faellt”, dann wird das mit 100%iger sicherheit passieren. ganz vorsichtig hab ich sie aus der wanne mit dem altoel gefischt, mit einem lappen abgeputzt und auf den lappen neben hin gelegt. eine minute spaeter wollte ich mir ein bischen oel von den haenden putzen, ziehe am lappen und… schwupps.. schraube im kanal. natuerlich in dem auffangbehaelter (sieb) unter dem kanaldeckel gleich durch das groesste loch direkt in den abfluss. wie sonst.

nun kommt erschwerend hinzu, dass die oel-ablass-schraube beim t3 zwar ein M14er gewinde hat, aber der kopf einen sechskant mit einer schluesselweite von nur 13 millimetern. ueblicherweise ist an schrauben dieser groesse ein sechskantkopf mit 19 millimetern. diese kann man aber leider nicht nutzen, da die schraube versenkt ist und somit die nuss nicht mehr drauf passt:

das reicht noch nicht… diese schraube ist weder beim vw haendler noch zubehoerhandel meines vertrauens auf lager. also erstmal eine fuer 3 euro bestellt und den oelwechsel auf morgen verschoben. grmpfl…

geile fans

bei google+ gefunden…

so siehts harmlos aus:

ah.. da unten.. zwei fans

…denen gefaellt scheinbar, was sie sehen

links 20110401

Die erfundene Wirklichkeit im Fernsehen
Breaking News – Eine Kurzanleitung
Wikipedia soll Weltkulturerbe werden
Gmail To Roll Out Ads That Learn From Your Inbox
Wie man Wahlergebnis-Server richtig aufsetzt
Der Kick mit dem Wodka-Tampon
Die Dagegen-Öffentlichkeit

tsql – zeilenanzahl aller tabellen

es gibt viele unterschiedliche wege, die zeilenanzahl aller tabellen in einer datenbank einzeigen zu lassen. gerade wenn man noch anfaenger ist, landet man erstmal bei dem altbekannten:

SELECT COUNT(*) FROM TABELLE

…was man dann fuer jede tabelle machen muss. schnell hat man sich einen cursor drumherum gebaut damit das fuer alle tabellen in einer datenbank macht.

-- BEISPIEL 1

DECLARE @tables TABLE (
	tablename	varchar(255),
	rowcounter	int
)

DECLARE @table_name varchar(255)
DECLARE @SQLSTATEMENT nvarchar(255)
DECLARE @x int

DECLARE cur CURSOR FOR
	SELECT table_name 
	FROM information_schema.tables 
	WHERE TABLE_TYPE = 'BASE TABLE'
OPEN cur
FETCH FROM cur INTO @table_name
WHILE @@fetch_status = 0
BEGIN
	SET @SQLSTATEMENT = 
	 N'SELECT @x = COUNT(*) FROM ' + @table_name
	EXEC sp_executesql
		@SQLSTATEMENT,
		N'@x int OUTPUT',
		@x OUTPUT

	INSERT INTO @tables (tablename, rowcounter) 
	VALUES (@table_name, @x)
	FETCH FROM cur INTO @table_name
END
CLOSE cur
DEALLOCATE cur
SELECT * FROM @tables ORDER BY tablename

das ist natuerlich viel code fuer das bischen abfrage. es geht naemlich auch kuerzer mit der (von microsoft undokumentierten) sql-server internen stored procedure sp_MSforeachtable

-- BEISPIEL 2

CREATE TABLE #TABLEROWCOUNT
(
 TABLENAME sysname,
 ROWCOUNTER int
)
EXEC sp_MSforeachtable 
'INSERT #TABLEROWCOUNT (TABLENAME,ROWCOUNTER) 
SELECT ''?'',Count(*) from ?'
SELECT * FROM #TABLEROWCOUNT
DROP TABLE #TABLEROWCOUNT

schick ist das aber immer noch nicht. eleganter und performanter und ausfuehrlicher gehts mit einer (auch in sql server inegrierten) stored procedure namens sp_spaceused:

-- BEISPIEL 3

DECLARE @tables TABLE (
	tablename	varchar(255),
	rowcounter	int,
	reserved	varchar(255),
	data		varchar(255),
	index_size	varchar(255),
	unused		varchar(255)
)

DECLARE @table_name varchar(255)
DECLARE cur CURSOR FOR
	SELECT table_name 
	FROM information_schema.tables 
	WHERE TABLE_TYPE = 'BASE TABLE'
OPEN cur
FETCH FROM cur INTO @table_name
WHILE @@fetch_status = 0
BEGIN
	INSERT INTO @tables
	(tablename, rowcounter, reserved,
	data, index_size, unused)
	EXEC sp_spaceused @table_name
	FETCH FROM cur INTO @table_name
END
CLOSE cur
DEALLOCATE cur
SELECT * FROM @tables ORDER BY tablename

das schoenste und auch schnellste statement ist dieses hier (funktioniert erst ab sql server 2005):

-- BEISPIEL 4
-- zeigt alle user tables und deren zeilenanzahl der aktuellen 
-- datenbank. ohne "IS_MS_SHIPPED = 0" in der where 
-- klausel werden noch die system objekte angezeigt. 

SELECT T2.NAME, T3.ROW_COUNT 
FROM SYS.INDEXES T1 
INNER JOIN SYS.OBJECTS T2 ON T1.OBJECT_ID = T2.OBJECT_ID 
INNER JOIN SYS.DM_DB_PARTITION_STATS T3 ON 
T1.OBJECT_ID = T3.OBJECT_ID AND T1.INDEX_ID = T3.INDEX_ID
WHERE T1.INDEX_ID < 2 
AND T2.IS_MS_SHIPPED = 0 
ORDER BY T2.NAME

wenn man sich die performance der vier beispiele betrachtet wird schnell klar, welches man fuer groessere datenbanken nicht mehr gebrauchen kann. ich hatte eine datenbank zum "ausprobieren", in der 475 millionen datensaetze auf 60 tabellen verteilt waren. das waren die laufzeiten in millisekunden:

BEISPIEL 1: 156183 ms ( ~ 2 minuten 60 sekunden)
BEISPIEL 2: 155573 ms ( ~ 2 minuten 59 sekunden)
BEISPIEL 3: 173 ms
BEISPIEL 4: 13 ms

ich denke, dass es zu den ergebnissen nicht viel zu sagen gibt.

neues spielzeug: windows home server

so… ich hab mir wiedermal ein neues spielzeug geleistet. ein acer aspire easystore H341 mit windows home server als betriebssystem. geliefert wurde das geraetchen mit 2 x 2 TB und hat noch 2 festplattenschaechte frei. damit die nicht so lange leer sind, hab ich natuerlich gleich noch 2 x 2 TB platten gekauft ;-). die einrichtung geht anscheinend nur mit der clientsoftware, was ich garnicht so toll fand, da ich keinen desktoprechner mit windows rumstehen hatte. aber zum glueck hatte ich auf meinem ubuntu noch eine vmware mit einem alten XP.

nach dem ersten einschalten und verbinden mit dem client war das geraet erstmal mit sich selbst beschaeftigt. da die clientsoftware nicht sonderlich viele details preisgibt, hab ich mich zum gucken per rdp mit der kiste verbunden (einen graka anschluss gibts ja nicht). das teil war erstmal ne zeit lang mit sich selbst beschaeftigt und hat ein update nach dem anderen installiert. und immer nach dem reboot gings fleissig weiter. gefuehlt waren das 700 patches, die von microsoft runtergeleiert wurden.

da mir in der zeit langweilig war und ich gleich mal austesten muss, ob das alles so geht, wie man es sich wuenscht, habe ich einfach die beiden zusaetzlichen platten im laufenden betrieb reingesteckt. und siehe da… sie wurden gleich erkannt! einmal mit der rechten maustaste draufklicken, hinzufuegen auswaehlen und das wars. die kapazitaet sollte mir erstmal eine zeit lang reichen…

nun galt es, die kiste mit daten zu fuellen. ueberall hat sich ein wenig angesammelt.. auf externen platten, auf dem laptop, auf dem desktop-pc, auf einem billig-nas, auf dem alten fileserverchen, auf dvd…usw. logischewrweise habe ich auch ein paar medien, die ich unter linux mit ext3 o.ä. formatiert habe. dieses filesystem verhaelt sich etwas anders als unter windows. z.b. hat linux keinen schmerz damit, wenn die datei BEANS~1.txt in gekuerzter DOS-konvention vorhanden ist und auch noch die mit dem “richtigen” namen. ein nettes rsync murrt da auch nicht rum und wills auf den whs kopieren. der hat dann aber gleich dateninkosistenzen angezeigt und mit seiner roten “i” lampe geblinkt, weil er die datei nicht schreiben konnte. komisches zeugs….

die niedliche schwarze kiste hat halt auch nur einen niedlichen intel atom prozesser. je nachdem, was man so alles an features aktiviert hat, kann dem schonmal die puste ausgehen. der indexierungsdienst hat nach drei tagen betrieb noch nicht alle dateien durchwuehlt. also erstmal abgeschaltet. dann ist mir eine firefly.exe aufgefallen, die den armen kleinen prozessor penetriert hat. nach ein bischen googlen wusste ich, dass das was mit dem itunes server zu tun hat. also erstmal abgeschaltet. mitgeliefert und installiert wurde auch “mcaffee total protection”… das fliegt als naechstes runter.
ansonsten moechte der whs gerne meinen dsl router per upnp umkonfigurieren und 3 ports fuer den remotezugriff von aussen freischalten. das darf er natuerlich nicht.. wo kaemen wir denn da hin?

das geraet an sich ist angenehm leise… wenns denn die platten auch sind. die beiden samsungs, die ich mir dazu gekauft habe kann man bei zugriffen deutlich hoeren. praktisch ist, dass man noch externe platten zum speicher hinzufuegen kann (esata und usb), was aber erst in ferner zukunft noetig sein duerfte. ein echtes raid gibts fuer den preis nicht, dafuer aber eine “datenduplizierung”, die man auf freigabeebene an- und ausschalten kann und im hintergrund werkelt. fuer meine beduerfnisse genau richtig, da ich nicht alles spiegeln wollte.

mal sehen, wie sich der server im alltagsbetrieb gibt…