Google hat angekündigt, dass Google Buzz bald eingestellt und aus den anderen Google Diensten (z.B. Mail) entfernt wird. Danach hat man noch über sein Google Profil Zugriff auf die geposteten Schnipsel oder man sichert sie jetzt noch.

Mit Google Takeout lassen sich eigene Daten und Inhalte aus den Google Diensten sichern. Natürlich lassen sich auch nur einzelne Dienste sichern.

Google Takeout Oberfläche:

Nur einzelne Dienste sichern:

Download:

Internet Explorer… Kompatibilitätsmodus… alles Rotz. Dieser Modus lässt sich über eine Schaltfläche rechts in der Adressleiste oder alternativ über die Entwicklerkonsole umschalten. Die Darstellung der Seite ist in diesem Modus irgendwie anders.

Sollte es mal nötig sein eine Webseite bei der Betrachtung mit IE 8 unbedingt im Kompatibilitätsmodus darzustellen, kann man diesen Meta Tag einbauen:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

Danach wird die Seite immer in diesem Modus dargestellt. via

In den letzten Tagen habe ich auf Arbeit ein Upgrade von SPSS 17 auf SPSS 20 vorbereitet und vorgestern durchgeführt.
Die Verteilung erfolgte mit Gruppenrichtlinien über ein Active Directory auf etwa 120 Windows Clients (98,4% Windows 7).
Deployments dieser Größenordnung müssen ausführlich durchdacht und sorgfältig umgesetzt werden. An viele Dinge muss man denken bevor der Tag der Verteilung anbricht.

Zu diesem Zweck habe ich eine Präsentation vorbereitet, die die Herangehensweise und Durchführung einer Softwareverteilung, in diesem Beispiel SPSS 20, grob veranschaulicht. Die wichtigsten Schritte werden angeschnitten, jedoch nicht weiter vertieft, da dies natürlich den Rahmen sprengen würde.
Videos und Screenshots veranschaulichen einige Vorgehensweisen.

Download section
Präsentation ohne Videos: SPSS20-Deployment-om [.zip] (500KB)
Präsentation mit Videos: SPSS20-Deployment-mm [.zip] (110MB)

Zeit messen ist mit Batch kein Problem und oftmals eine nette Spielerei.

Code:

set /a timerstart=((1%time:~0,2%-100)*60*60)+((1%time:~3,2%-100)*60)+(1%time:~6,2%-100)
REM packing zip archive
%wd%\7za.exe a -bd -ssw "%job-ziel%.zip" "%job-quelle%" > nul
set /a timerstop=((1%time:~0,2%-100)*60*60)+((1%time:~3,2%-100)*60)+(1%time:~6,2%-100)
set /a timeseks=(%timerstop%-%timerstart%)
set /a timemins=(%timerstop%-%timerstart%)/60
echo Sekunden: %timeseks% -- Minuten: %timemins%

Erläuterung:
Also, timerstart nimmt die aktuelle Uhrzeit und rechnet aus, wieviele Sekunden seit 00:00 Uhr verstrichen sind.
Der 2. Timer, timerstop, rechner ebenfalls die Sekunden seit 00 Uhr aus. Zieht man diese jetzt von der Startzeit ab so bleibt die Anzahl in Sekunden übrig, die zwischen den Timern verstrichen ist.
Das bedeutet natürlich auch, dass eine Zeitberechnung von einem Tag in den nächsten nicht funktioniert. Start und Stop müssen zwischen 00 Uhr und 23:59 Uhr des selben Tages liegen.

Details zu dieser Art der Zeitmessung:
Diese Berechnung ist bereits eine optimierte Variante. Grundsätzlich würde in 80% der Fälle auch

set /a timerstart=((%time:~0,2%)*60*60)+((%time:~3,2%)*60)+(%time:~6,2%)

funktionieren; diese Variante findet man auch überall im Netz.
Ich beobachtete jedoch Probleme bei Zeitberechnungen, wenn mit den Zahlen „08“ und „09“ hantiert wurde.
Also beispielsweise um 16:08:09 Uhr wird ein Timer aktiviert. Dann rechnet dieser eigentlich
((16)*60*60)+((08)*60)+(09)
Batch kommt damit aber nicht klar, da er dezimale Zahlen und oktale Zahlen durcheinander bringt. Um trotzdem mit Uhrzeiten mit „08“ und „09“ rechnung zu können habe ich die Zeile ergänzt:

set /a timerstart=((1%time:~0,2%-100)*60*60)+((1%time:~3,2%-100)*60)+(1%time:~6,2%-100)

Nun wird also bei 16:08:09 gerechnet:
((116-100)*60*60)+((108-100)*60)+(109-100)
Funktioniert 🙂

Update:
Eine etwas komplexere Lösung mit der Berücksichtigung des Datums wurde von einem Leser via Kommentar eingereicht:

@echo off

REM dynamisch mit %TIME% oder Zahlenformat des endtime Beispiels nehmen
set starttime=%TIME%
set endtime=00:15:26,92
set startdate=08.09.2012
set enddate=09.09.2012

REM einstellige Uhrzeiten korrigieren
set starttime=%starttime: =%
set endtimehh=%endtime:~1,1%
if ‘%endtimehh%’ == ‘:’ set endtime=0%endtime%
echo endtime: %endtime%

set starttimehh=%starttime:~1,1%
if ‘%starttimehh%’ == ‘:’ set starttime=0%starttime%
echo starttime: %starttime%

set /a timerstart=((1%starttime:~0,2%-100)*60*60)+((1%starttime:~3,2%-100)*60)+(1%starttime:~6,2%-100)
echo timerstart: %timerstart%

set /a daymodifier=86400*((1%enddate:~0,2%)-(1%startdate:~0,2%))
rem set daymodifier=86400
echo daymodifier: %daymodifier%

set /a timerstop=(((1%endtime:~0,2%-100)*60*60)+((1%endtime:~3,2%-100)*60)+(1%endtime:~6,2%-100))+%daymodifier%
echo timerstop: %timerstop%

rem =======================

set /a timeseks=(%timerstop%-%timerstart%)
echo Sekunden: %timeseks%

set /a timemins=((%timerstop%-%timerstart%)/60)
echo Minuten: %timemins%

set /a timeminsseks=((((%timerstop%-%timerstart%)/60)*60)-(%timerstop%-%timerstart%))*-1
echo Zeit: %timemins%:%timeminsseks%

pause

Auf der rechten Seite bei Facebook gibt es 3 recht nervige Container: “Personen, die du vielleicht kennst”, “Gesponsort” und “Personen, deren Aktualisierungen du abonnieren kannst”. Diese Bereiche sind meiner Meinung nach sinnlos, warum also nicht entfernen?
Adblock, was jeder im Browser installiert haben sollte, kann diese Aufgabe schnell und einfach übernehmen:

Chrome: Rechtsklick auf das Adblock Icon -> „Optionen“ -> „Eigene Filter“ -> auf [Bearbeiten] klicken und in das Textfeld

##div#pagelet_ego_pane_m
##div#pagelet_ego_pane
##div#MessagingNetegoSidebar

eintragen.

Firefox: Adblock Plus Preferences -> Filters -> Add Filter ->

##div#pagelet_ego_pane_m
##div#pagelet_ego_pane
##div#MessagingNetegoSidebar

eintragen.

Zur Erklärung:

##div#pagelet_ego_pane_m

versteckt die 3 unnötigen Anzeigen auf der Facebook Startseite.

##div#pagelet_ego_pane

versteckt die 3 unnötigen Anzeigen auf allen Profilseiten.

##div#MessagingNetegoSidebar

versteckt diese Elemente auf den „Nachrichten“-Seiten.
Auf der Startseite verbleiben weiterhin die Anzeigen für Veranstaltungen und Anstupser. Wer auch diese entfernen will kann auch noch

##div#pagelet_eventbox
##div#pagelet_pokes

ergänzen.

Fertig, den Kram seht ihr nicht mehr wieder (außer die ID wird umbenannt) 🙂

In den letzten Wochen habe ich einen erstaunlichen Trend auf Youtube bemerkt, der mir bis dato nicht aufgefallen war.
Fast schon richtig professionelle Kurzfilme machen die Runde in dem Videoportal. Von jungen Filmemachern und Filmteams, oftmals in Zusammenarbeit mit Anderen dieser Branche, eine kurze knackige und oft lustige Idee, meistens nur wenige Minuten lang, teilweise zugepackt mit interessanten visual/special-Effects, daran sind die Filme leicht zu erkennen.
Ich werde hier einfach ein paar zeigen denn ich finde sehr viele wirklich sehr gut gemacht und sehenswert. Ich glaube da etabliert sich eine interessante Form der Unterhaltung auf Youtube.

CorridorDigital & Mike Diva – Dubstep Guns

DeStorm & Mike Diva – Heroes and Villains #1

WungFuProductions – Kung Fooled

Ein etwas längeres Projekt:
CorridorDigital – PRISM

Mike Diva – Paranormal Wacktivity

Shaycarl – Epic War!

Und weitere gute Filmchen:
Sentry Sabotage, Clock Blockers, The New Drug (Charlie Sheen), Man vs. Urban Ninja, Man vs. Parkour Expert

Ich hatte letztens mal drüber geschrieben: mit erweiterten Stringoperationen kommt man leicht an Dateinamen, Endung, Ordner, Pfade, Dateieigenschaften und Ähnliches.

Ich möchte gerne die Aussagen und den Code korrigieren. Ich hatte folgendes vorgeschlagen:
Dieser Code ist unsicher, lest weiter unten für einen zuverlässigeren Code!

:: nur der Dateiname (ohne .ext)
for %%a in (C:\test\geheim.txt) do set 1=%%~na
:: -> geheim
:: funktioniert auch mit Ordnern
for %%a in (C:\test\ziemlich\geheim) do set 1=%%~na
:: -> geheim

Letzte Datei und Ordner lassen sich so herausfinden. Ist auch korrekt, hat aber 2 Fehlerpotentiale:

Man sollte natürlich den Pfad, den man auswertet, in Gänsefüße stecken! Ansonsten gibt es nämlich Fehler sobald der gesuchte letzte Part (Dateiname/Ordnername) ein Leerzeichen enthält. Bei erweiterten Stringoperationen mit FOR sollte man doppelte Gänsefüße verwenden obwohl man sonst ja bei FOR Befehlen einfache nutzen sollte. Hier kommt es teilweise aber vor, dass im Ergebnis ein einfaches mit reingerät (“ geheim‘ „), was nicht gewollt ist. Doppelte Anführungsstriche sind hier zuverlässiger.

Ebenfalls wird es problematisch wenn man den letzten Ordnernamen sucht und dieser aber ein Punkt enthält („C:\Windows 3.1\“). For erkennt den Punkt und denkt, dass es sich um eine Datei handelt. Also gibt der Befehl „Windows 3“ zurück, dabei soll es „Windows 3.1“ zurückliefern.

Lösung:

:: Datei mit Anführungsstrichen und %%~n suchen!
for %%a in ("C:\test\geheim.txt") do set 1=%%~na
:: -> geheim
:: den letzten Ordner immer mit Anführungsstrichen und %%~nx suchen!
for %%a in ("C:\test\ziemlich\geheim 9.1") do set 1=%%~nxa
:: -> geheim