Automatische iCloud-Speicherung von Dokumenten verhindern

Wie sich heraus gestellt hat, speichern Programme mit iCloud-Anbindung auf dem Macintosh jedes noch ungesicherte Dokument ungefragt in diese hoch. Dies möchte man verhindern – gerade wenn man Dokumente soweit vertraulich behandeln möchte, dass sie selbst auf verschlüsselten Diensten von Dritten nichts zu suchen haben. Da es keine Möglichkeit in der GUI vom Mac OS X gibt dies zu verhindern, muss man folgenden Befehl auf der Kommandozeile absetzten.


defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false

Nach dem Beenden und erneutem Öffnen, speichern Programme mit iCloud-Unterstützung die neu angelegte Dokumente dann wieder lokal im Verzeichnis des jeweiligen Nutzers unter folgender Ordner-Struktur:

/Users/<Benutzername>/Library/Containers/<Ordnername_Applikation>/Data/Library/Autosave Information/

Möchte man hingegen das vorherige Verhalten mit der iCloud-Anbindung wieder zurück haben, reicht es den selben Befehl nur mit einem true am Ende aus zu führen.

Alternativ kann man sein Nutzungsverhalten in Bezug von Dokumentenverwaltung aber auch so einstellen, dass man auf die iCloud völlig verzichtet, oder nur einen selber gehosteten Dienst nutzt auf dem auch selbst administrativen Zugang hat.

Quelle des Tip bei Mac OS X Hints

Advertisements

WLAN am Raspberry PI einrichten

Der Net-Installer des Debian-Port Raspbian für den Raspberry Pi ist recht übersichtlich und auf der Projektseite hier dokumentiert. Da ich in dem Fall zu Anfangs lediglich immer nur ein Grundsystem mit einem SSH-Server auf eine SD-Karte werfe, gibt es keine Möglichkeit, dass man sich mit dem Pi out of the Box via WiFi ins Netz verbinden kann. Leider fehlt bei einer Standart-Debian-Installation auch das Toolkit um WLAN-Adapter zu konfigurieren. Also muss dieses als erstes nach installiert werden:


apt-get install wireless-tools wpasupplicant

Da ich mich auch für den allgemein bei den Pi’s sehr beliebten Edimax EW7811Un USB-Adapter entschieden habe, hilft es auf folgende Weise zu verifizieren ob dieser vom System im eingesteckten Zustand ordentlich erkannt wurde.
Durch Eingabe von lsusb sollte das WLAN-Gerät über den USB-Host-Adapter mit seinen vollen Namen aufgelistet werden.
Mit lsmod kann man prüfen, ob das entsprechende Kernelmodul zu den Realtek-Chip mit geladen wurde. In diesem Fall heisst dies 8192cu.
Als finale Möglichkeit zu Überprüfen ob der Edimax einsatzbereit ist, kann man sich mit iwconfig mal die „aktuelle“ Konfiguration des WLAN-Interface anzeigen lassen. Entscheidend dabei ist, das es einen Eintrag mit wlan0 gibt.

Wenn das alles gegeben ist, kann man mit restlichen Konfiguration weiter machen.

Als erstes muss das WLAN-Gerät in die Datei /etc/network/interfaces hinzugefügt und die Konfigurationsparameter mitgegeben werden. In diesem Fall soll die IP-Adresse via DHCP bezogen werden und es wird in der letzten Zeile ein Verweis auf die Konfigurationsdatei wpa_supplicant.conf gesetzt.

/etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary LAN-network interface
allow-hotplug eth0
iface eth0 inet dhcp

# The Edimax USB-WiFi interface
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Die eigentliche WLAN-Konfiguration mit den Parametern zum Aufbau der (verschlüsselten) Verbindung wird unter /etc/wpa_supplicant/wpa_supplicant.conf definiert. In dem Fall WPA/WPA2 verschlüsselt. Sollte die Datei noch nicht existieren, dann erstellt man sie einfach.

/etc/wpa_supplicant/wpa_supplicant.conf:

network={
ssid="_Name_des_Netwerk_"
scan_ssid=1
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="_Absolut_sicheres_Passwort_"
}

Mit dem Befehl ifup wlan0 wird dann das Interface neu gestartet und soll eine IP-Adresse beziehen mit der es sich dann versucht ein zu wählen. Ein Neustart des gesamten Raspbian tut aber auch nicht weh. Wenn ein ifconfig wlan0 als Ausgabe plausible Adress- und Netzmaskenwerte gibt, dann wurde alles richtig gemacht.

Im Wiki des Ubuntu-Forum gibt es auch sehr hilfreiche Howtos und Erklärungen zu Thema, die einem weiter bringen.
http://wiki.ubuntuusers.de/WLAN/Installation
http://wiki.ubuntuusers.de/WLAN/wpa_supplicant

Kobo Hacking Teil 1 – Telnetzugang

Durch eine Ausverkaufaktion bin ich und meine Peergroup recht günstig an Geräte der Mini Touch Serie des Kobo gekommen. Hintergrund ist, dass die Kobo’s recht gut hackbar sind. Und so habe ich auch mal daran gemacht, meinen Nerd-Usebility zu machen.

Es schadet nicht, erst einmal ein Image als Backup der verbauten Micro-SD-Karte zu erstellen. Danach braucht der Kobo eigentlich nicht noch mal aufgeschraubt werden. Er besitzt aber neben dem Micro-SD-Kartenslot noch eine Serielle Konsole, mit der man sich an ihm austoben kann.

Um sich jetzt einen Remote-Zugriff auf dem Kobo zu ermöglichen, reicht es, einfach ihn via USB mit den Rechner zu verbinden und folgendes KoboRoot.tgz-Archiv in den Ordner .kobo auf der „öffentlichen“ FAT32-Partion hinein zu kopieren. Dann den Kobo vom Computer trennen und ihn durch ein- und ausschalten neu booten lassen. Danach sollte es möglich sein, sich auf ihm mit Telnet zu verbinden zu lassen.

Normalerweise steht das WLAN im kobo unter kontrolle der Userspache-Applikation (nickel). Erfreulicherweise ist dies aber einfach zu umgehen:

/etc/wpa_supplicant_wpa_supplicant.conf vorbereiten (z.B. via wpa_passphrase ssid passwd )


network={
ssid="donotuse"
psk=wahnsinnigsicher
}

In /etc/init.d/rcS folgende Änderungen vornehmen: Kernelmodul laden, ifup, dhcp und so weiter:


insmod /drivers/ntx508/wifi/sdio_wifi_pwr.ko
insmod /drivers/ntx508/wifi/dhd.ko
sleep 2
ifconfig eth0 up
wlarm_le -i eth0 up
wpa_supplicant -s -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -C /var/run/wpa_supplicant -B
sleep 2

udhcpc -S -i eth0 -s /etc/udhcpc.d/default.script -t15 -T10 -A3 -f -q

Da jetzt eigentlich kein grund mehr für die Userspace app besteht kann diese auch deaktiviert werden:


#/usr/local/Kobo/hindenburg &
#/usr/local/Kobo/nickel -qws -skipFontLoad &

4x4x4 LED-Cube Teil 3

Nachdem ich das Würfeldrahtgestell aus LED’s auf eine Lochrasterplatine mit Anschlusspins gebracht habe, musste noch eine Platine mit Transistoren angefertigt werden, um das Signal zwischen den vier Ebenen und dem Arduino zu verstärken.
Da ich für meinen ersten Würfelversuch eher auf den Preis als auf die Qualität der LED’s geschaut habe, muss ich nun leider auch erst einmal enorme Abstriche bei der Leuchtkraft dieser machen. Um nicht zu sagen, sie sind mir bei maximaler Ansteuerung viel zu dunkel. Von daher brauche ich auch erst einmal keine Wiederstände in meiner Schaltung. Aber ich habe mir dennoch auf der Platine die Möglichkeit geschaffen auf den Leitungen zwischen den sechzehn Säulen und dem Arduino welche dazwischen zu löten.

P1020658

Anbei ein Schaltplan für die Transistoren:
LED-Wuerfel

Selbstgebauter Magnetrührer

Der Max ist ja Hobby-Brauer und berichtet auch in seinem Blog stets über seine neusten Erzeugnisse. Irgendwann kam er auch auf die Idee, seinen einmal gekauften Hefestamm selber auf zu bauen, um nicht immer neue nachkaufen zu müssen. In dem Behälter, wo die Kulturlösung aufgebaut werden soll, gibt es keinen Rührer. Da die Kulturlösung aber stets in Bewegung sein muss, kam die Idee das Gefäß mit einem Magnetrührer aus zu statten. Da aber so ein industriell hergestellter Magnetrührer – die im wesentlichen für den professionellen Laboreinsatz gefertigt werden – für den Heimeinsatz unverschämt teuer ist, musste eine Selbstbaulösung her.

Magnetrührer Seitenasnsichr trüb #1

Man nehme also einen Arduino Uno zur Steuerung, einen 80 Millimeter Lüfter als Antrieb, einen Potentiometer um die Drehgeschwindigkeit des Lüfter später ein zu stellen, eine flache Plastikschale als Abdeckung und ein Breadboard für die elektrische Verdrahtung. Das einzige professionelle, was man kaufen muss, sind die Rührfische, wie sie im Laborbereich tatsächlich eingesetzt werden. Hiervon sind aber zwei Stück gleichzeitig von nötig. Einer wird auf den Lüfter unter die Schale gelegt und dient als Antrieb und Adaptermagnet für den zweiten, der im Behälter mit Lösung ist.

flickr-Fotostream

Als Testversuch hatten wir mal ein gewöhnliches Schraubdeckel-Glas mit Wasser gefüllt und etwas Rocula hinein getan um die Rührvorgang besser darzustellen.

Die Wolke in der eigenen Hand

Seit der iTunes-Version 11.2 und iOS 7.0.3 hat nun Apple das vollzogen, wovon ich nie gedacht hätte, dass es passieren würde. Man kann die Kalender- und Kontaktdaten nun nicht mehr lokal über WiFi oder USB zwischen Computer und iPhone/iPad synchronisieren. Stattdessen braucht man dazu seine Apple-ID um das über die iCloud abzugleichen. Aber die iCloud kommt für mich nicht in Frage, da die Daten nichts auf fremden Servern zu suchen haben, die zu allen Überfluss auch noch im Ausland stehen. Ich weis schliesslich nicht, ob sie dort auch verschlüsselt abgelegt werden und muss eventuell davon ausgehen, dass irgendwelche staatlichen Behörden auf diese Server zugriff haben. Deswegen habe ich nun beschlossen, einen meiner Raspberry Pi’s dazu zu nutzen und auf ihn ownClod installieren, der sicher in meiner eigenen Wohnung steht. Mit ihm werde ich meine Kalender- und Kontaktdaten über mein lokales Netz austauschen, währenddessen die Bilder-, Audio- und Applikationen sowieso ich über USB synchronisiere.

Raspberry Pi zur Verwendung für die ownCloud

Raspberry Pi zur Verwendung für die ownCloud

Anbei ein kleiner Workaround zur Installation von ownCloud.

Ich entscheide mich hierbei für den Webserver nginx, der wohl etwas Ressourcen schonender als der Apache-Webserver ist und flüssiger läuft.

Auf dem Server werden also folgende Komponenten zur ownCloud mit installiert:

  • nginx Webserver
  • PHP5
  • SQLite (Datenbank auf Dateibasis)
  • sowie diverse Pakete zum Performancegewinn

Nachdem man sich via http://www.raspbian.org/RaspbianInstaller mit den Raspbian-Installer ein Debian Weezy Grundsystem installiert hat, installiert man sich mit raspi-config ein sehr praktisches Konfigurationswerkzeug, um auf dem System ein paar grundlegende Einstellungen für das Gerät vorzunehmen.

sudo apt-get install raspi-config

sudo raspi-config

  1. change_locale zu „en_US.UTF-8“ für das komplette System (Ansonsten meckert ownCloud, dass es zu Fehlern bei Dateinamen mit Sonderzeichen kommen kann)
  2. memory_split auf „16“ MB einstellen. Dies ist die kleinst mögliche Einstellung. Die GPU bekommt somit 16MB.
  3. overclock auf „Medium“ 4. „Finish“ und danach die Frage nach dem Reboot mit „Yes“ beantworten.

Paketlisten aktualisieren

sudo apt-get update
sudo apt-get upgrade

Benutzer erstellen

sudo groupadd www-data
sudo usermod -a -G www-data www-data

Installation der Pakete

sudo apt-get install nginx openssl ssl-cert php5-cli php5-sqlite php5-gd php5-curl php5-common php5-cgi sqlite php-pear php-apc curl libapr1 libtool curl libcurl4-openssl-dev php-xml-parser php5 php5-dev php5-gd php5-fpm memcached php5-memcache varnish

SSL Zertifikat erstellen (gültig für 1 Jahr)

sudo openssl req $@ -new -x509 -days 365 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key
sudo chmod 600 /etc/nginx/cert.pem
sudo chmod 600 /etc/nginx/cert.key

nginx Webserver konfigurieren

sudo nano /etc/nginx/sites-available/default

Hier löscht man den kompletten Inhalt und fügt stattdessen den unten stehenden ein.
Darauf achten, dass man die IP-Adresse „192.168.XXX.XXX“ mit der des Raspberry Pi ersetzt.

server {
listen 80;
server_name 192.168.XXX.XXX;
rewrite ^ https://$server_name$request_uri? permanent; # enforce https
}

server {
listen 443 ssl;
server_name 192.168.XXX.XXX;
ssl_certificate /etc/nginx/cert.pem;
ssl_certificate_key /etc/nginx/cert.key;
root /var/www;
index index.php;
client_max_body_size 1000M; # set maximum upload size
fastcgi_buffers 64 4K;

location ~ ^/owncloud/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}

location / {
try_files $uri $uri/ index.php;
}

location @webdav {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
include fastcgi_params;
}

location ~ ^(?<script_name>.+?\.php)(?<path_info>/.*)?$ {
try_files $script_name = 404;
include fastcgi_params;
fastcgi_param PATH_INFO $path_info;
fastcgi_param HTTPS on;
fastcgi_pass 127.0.0.1:9000;
}
}

Danach in folgender Datei die Werte „upload_max_filesize“ sowie „post_max_size“ auf 1000M setzen.

sudo nano /etc/php5/fpm/php.ini

upload_max_filesize = 1000M
post_max_size = 1000M

Am Ende der Datei noch folgendes einfügen:

upload_tmp_dir = /srv/http/owncloud/data

Als nächstes muss folgender Ordner mit den dazugehörigen Rechten erstellt werden

sudo mkdir -p /srv/http/owncloud/data
sudo chown www-data:www-data /srv/http/owncloud/data

PHP konfigurieren

sudo nano /etc/php5/fpm/pool.d/www.conf

Hier ändert man folgende Zeile von:

listen = /var/run/php5-fpm.sock

zu

listen = 127.0.0.1:9000

Webserver und PHP neustarten

sudo /etc/init.d/php5-fpm restart
sudo /etc/init.d/nginx restart

ownCloud installieren
Als letztes wird ownCloud installiert. Folgende Befehle müssen abgearbeitet werden.

wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key
apt-key add - < Release.key echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list
apt-get update
apt-get install owncloud

Nun lässt sich der Server im lokalen Netz aufrufen. In meinem Fall ist das https://192.168.1.104/owncloud. Als letztes muss nur noch ein Administratorkennwort und ein Benutzername festgelegt werden. Somit ist die Installation vollends abgeschlossen.

Der schnellste Weg, Adressbücher und Kalender in die eigene Wolke zu laden, führt über die Webanwendung von Owncloud, die Dateien im VCF- und ICS-Format importieren kann.

Bei Adressbüchern (.vcf) klappte der Import im Versuch allerdings nicht immer reibungslos. Bei einem Adressbuch, in dessen Feldern Doppelpunkte vorkamen, brach der Import leider ab. Im Zweifel muss man vor dem Import noch an den Daten feilen. Auch Gruppen ließen sich nicht importieren, da ownCloud sie als regulären Adressbuch-Eintrag interpretierte. Ein Fehler, der hoffentlich bald behoben wird.

Weiterführender Link

4x4x4 LED-Cube Teil 2

Den LED-Cube werde ich über einen ArduinoMega mit den unten aufgeführten C-Code ansteuern.

ArduinoMega
ArduinoMega mit ATmega2560 Prozessor

Der ArduinoMega hat folgende Eigenschaften

Microcontroller: ATmega2560
Operating Voltage: 5V
Input Voltage (recommended): 7-12V
Input Voltage (limits): 6-20V
Digital I/O Pins: 54 (of which 15 provide PWM output)
Analog Input Pins: 16
DC Current per I/O Pin: 40 mA
DC Current for 3.3V Pin: 50 mA
Flash Memory: 256 KB of which 8 KB used by bootloader
SRAM: 8 KB
EEPROM: 4 KB
Clock Speed: 16 MHz

Davon nutzen werde ich folgenden Teil:

Ebenen (von unten nach oben, z = 0..3) an Pins A0, A1, A2, A3
LEDs erste Reihe (y = 0) an Pins 22, 23, 24, 25
LEDs zweite Reihe (y = 1) an Pins 26, 27, 28, 29
LEDs dritte Reihe (y = 2) an Pins 30, 31, 32, 33
LEDs letzte Reihe (y = 3) an Pins 34, 35, 36, 37

LED-Cube.c

Der Programmcode wird ganz simple mit der eigenen Arduino-Applikation via USB auf den Microkontroller in einem Rutsch kompiliert und hochgeladen. Code in das Fenster einfügen und Upload-Button klicken. Fertig!

Arduino_App
Programm zum bespielen von Arduino’s