Günstiger 3D Drucker für Einsteiger 

Schon längere Zeit hat mich das Thema 3D Drucker beschäftigt, aber so ein bisschen fehlte mir noch die persönliche Rechtfertigung, so ein Teil anschaffen zu können. Als dann meine Bastelei mit dem Raspberry pi und dem einen oder anderen technischen Bauteil losging, fiel mir auf, wie unglaublich praktisch es wäre, wenn man sich seine eigenen Gehäuse für diese Gerätschaften bauen könnte.

Eine etwas tiefere Recherche in das Thema ergab dann, dass die Preise massiv gefallen sind und man eigentlich bereits für ca. 180-200€ ein brauchbares Gerät bekommt. Ganz wichtig, ich spreche hier von Eigenbedarf – wer plant, im großen Stil Dinge anzufertigen, sollte vielleicht auf andere Technologien setzen, oder aber sehr viele günstige Drucker anschaffen 😉

Das Problem an den 180-200€ teuren 3D Druckern ist aber, dass man sie komplett zusammenbauen muss. In der Regel wird das jeder technisch halbwegs versierte Mensch hinbekommen, aber man muss die Zeit und die Muße dafür haben. Laut diverser Tutorials und Videos, die ich mir zu den Geräten angesehen habe, kann das schon mal mehrere Tage dauern. Also klapperte ich nochmal alle gängigen Umschlagplätze im Netz ab und irgendwann stach mir ein relativ billig aussehender Drucker ins Auge, der mit ca. 240€ definitiv zu einem der günstigsten Exemplaren zählte. Die Rede ist vom PrintRite Colido DIY 3D. Das Teil sieht ein bisschen aus, als ob er einem Lego Baukasten entsprang, aber das täuscht massiv. Der 3D Drucker hat mit den Druckmaßen von 20x20cm und 17cm in der Höhe eine der größten Druckflächen in diesem sehr niedrigen Preissegment. Diese flache Ebene, auf die der Drucker das Druckmaterial aufträgt, nennt man Druckbett. Der Colido bietet für den niedrigen Preis eine wirklich gute Druckqualität, die sich selbst vor Geräten im vierstelligen Bereich nicht verstecken muss. Und das beste: der Drucker ist innerhalb von ca. 30 Minuten zusammengebaut.

Ein weiteres Kriterium sollten die möglichen Materialien sowie Ersatzteile und Tuning sein. Der Colido bietet eigentlich all das, man kann entsprechend hoch heizen, es besteht die Möglichkeit ein beheiztes Druckbett anzuschliessen und es gibt auch diverse Ersatzteile zum selber Drucken im Netz.

Doch kommen wir zu den Grundlagen: wie funktioniert so ein Drucker, was kann man damit machen und die wichtigste Frage “macht das Spass” oder frustriert so ein Gerät eher?

Der grundsätzliche Aufbau aller 3D Drucker ist in der Regel gleich. Die gröbste Unterscheidung ist das Druckbett: Rund oder viereckig. Über dem Druckbett befindet sich der sogenannte Extruder, aus dem das Druckmaterial in stark erhitzter Form herausgepresst wird. Dieser wiederum hängt meist an Motoren, damit er über das Druckbett bewegt werden kann. Bei einigen Druckern ist auch das Druckbett beweglich, so auch beim Colido.

Wenn man das technische Grundprinzip einfach erklären möchte, dann hilft folgende Vorstellung: Ein 3D Drucker ist prinzipiell eine Heißklebepistole, die mittels Motoren in X und Y Richtung sowie auch auf der Z Achse, also in der Höhe, bewegt werden kann.

Als “Druckmaterialen” kommen diverse Plastik-Arten bzw. Plastik-ähnliche Stoffe zum Einsatz. Das gängigste und einfachste Material ist PLA, welches wie Plastik aussieht und sich auch so anfühlt, aber aus Maisstärke oder auch Kartoffeln hergestellt wird (soweit ich im Netz erfahren habe, sind Lego Teile auch aus diesem Material). PLA ist sehr stabil, ist allerdings nicht sehr wetterfest und hat als größten Nachteil mit ca. 60°C einen relativ niedrigen Temperaturpunkt, bei dem es beginnt sich zu verformen (wichtig: es schmilzt nicht, kann aber seine Form nicht mehr halten). Das schränkt die Nutzbarkeit etwas ein, in der Regel merkt man es aber nicht. Es gibt auch spezielle PLAs, die deutlich höhere Temperaturen aushalten, genauso gibt es auch flexible oder auch transparente Varianten. PLA ist übrigens biologisch abbaubar – was aber nicht heißt, dass ihr es einfach auf den Kompost schmeißen könnt.

Eine deutlich vielseitigere Variante ist ABS, welches ein “echtes” Plastik ist und vor allem die negativen Punkte von PLA aufgreift. Es ist wetterfest und hält Temperaturen von bis zu 110°C stand. Nachteilig ist, dass man auf jeden Fall ein beheiztes Druckbett benötigt und den Extruder ordentlich hoch heizen muss. Man kann übrigens auch Metalle, Holz und auch Stoffe “Drucken”. Damit habe ich mich allerdings noch nicht weiter beschäftigt.

Da das beheizte Druckbett nun schon mehrfach angesprochen wurde: warum brauche ich das? Beginnt man mit seinem 3D Drucker die ersten Objekte zu drucken, dann kann sich relativ schnell Frust einstellen. Denn während oder nach dem Druck kann es passieren, dass sich das gedruckte Objekt verformt, vor allem, wenn es sich um lange bzw. große Flächen handelt. Der Grund dafür ist das sogenannte “Bending”, also das “verbiegen” (siehe Bild über diesem Absatz, das Objekt sollte eigentlich flach auf dem Tisch liegen). Da PLA z.B. mit 200-220°C aus dem Extruder kommt und dann extrem schnell abkühlt, “arbeitet” das Material natürlich und zieht sich beim abkühlen zusammen. Erschwerend kommt hinzu, dass bei einer z.B. 10x10cm grossen Fläche das Material nur Bahn für Bahn und nicht gleichzeitig aufgetragen wird und somit unterschiedliche Temperaturen auf dieser Fläche herrschen. Das kann dafür sorgen, dass sich die Flächen mehrere Millimeter oder sogar Zentimeter verziehen. Mega unschön. Das beheizte Druckbett wirkt diesem Effekt entgegen, indem das Druckmaterial nicht auf eine “kalte” Druckfläche gedrückt wird, sondern eben auf eine ca. 50°C oder höher erhitzte Platte. Der Effekt ist nun, dass die Differenz der Temperatur nicht mehr so groß ist und das Material nach dem Druck gleichmäßig abkühlen kann. Nachteilig ist hier auf jeden Fall, dass der Stromverbrauch beim Druck deutlich ansteigt, die Platten heizen gerne mal mit 100W und mehr.

Will man die Kosten erstmal niedrig halten, kann man dem Bending auch in der Konstruktion seiner Objekte entgegenwirken, indem man lange und gerade Flächen vermeidet. Abgerundete Ecken oder gar runde Objektformen können wahre Wunder wirken.

Womit wir zum Thema Konstruktion kommen. Für den wirklich schnellen Einstieg und sehr schnelle Erfolgserlebnisse sollte man auf thingiverse.com vorbei schauen. Es gibt noch mehr derartige Seiten, aber hier findet man nahezu alles – und das vor allem kostenlos. thingiverse.com ist ein Teilekatalog, zu dem jeder beitragen kann. Man findet dort von Ersatzteilen über Spielzeug bis hin zu Kerzenständern so ziemlich alles. Es gibt meist Beispielbilder, wie die gedruckten Objekte aussehen werden und was man beim Druck beachten muss. Das gängigste Austauschformat für druckbare Gegenstände ist “stl”, welches man dann eben hier downloaden kann.

So richtig spannend wird aus meiner Sicht der 3D Druck aber erst, wenn man wirklich selbst konstruieren und somit tatsächlich einmalige Dinge schaffen kann. Ich selbst verwende dafür das kostenlose und freie 3D Werkzeug “Blender“, welches eigentlich für 3D Rendering und Filme gedacht ist. Aber es kann eben auch Objekte in das “stl” Format exportieren. Alternativ kann man auch mit vielen CAD Anwendungen oder anderen 3D Programmen arbeiten. Da die Extruder meist eine Düse mit 0,4 bis hin zu 0,1mm Öffnung haben, kann man bei der Konstruktion von Objekten millimetergenau arbeiten.

Hat man nun die “stl” Datei entweder heruntergeladen oder selbst konstruiert, muss diese nun noch durch den sogenannten “Slicer” gejagt werden, damit ein für den Drucker verständliches Format heraus kommt – der Gcode. Da es nicht so viele verschiedene 3D Drucker Firmwares gibt, gibt es auch nicht so viele verschiedene Slicer Programme, und diese sind fast alle auch untereinander kompatibel. Ich verwende für meine Drucke die Steuersoftware Repetier, in Kombination damit bietet es sich an, den Slicer “Slic3r” zu verwenden. Zwar gab es für diese Software schon lange kein Update mehr, aber sie funktioniert ganz gut. Die Slicer Software muss zunächst konfiguriert werden – sie benötigt Angaben, welche Art von Drucker wir haben, welche Firmware verwendet wird, ob wir ein beheiztes Druckbett haben, welches Material bei welchen Temperaturen verarbeiten wollen und vieles mehr.

Mit all diesen Informationen schaut sich der Slicer nun das zu druckende Objekt an, erkennt die Außenseiten und die innenliegenden Flächen, und beginnt dann darauf basierend die konkreten Anweisungen für den Drucker zu erstellen. Dabei wird die ganze Zeit mit Druckercodes und Koordinaten gearbeitet. So wird Schicht für Schicht das Objekt berechnet. Der Slicer versucht auch, den Materialeinsatz stark zu reduzieren, indem große innenliegende Teile nicht komplett gefüllt werden, sondern z.B. mit einem sparsamen Bienenwabenmustern ausgefüllt werden. Dadurch verliert das Objekt nicht an Stabilität.

Bei der Konstruktion muss man das Prinzip des Druckers immer im Hinterkopf behalten – Objekte mit einem starken Überhang sind schwierig zu drucken, da der Drucker ja nur Schichten aufeinander setzt. Beispiel:

Aber auch hier gibt es Abhilfe. Der Slicer kann sogenanntes “Support Material” mit einrechnen. Das sind Stützstrukturen, die in den Gcode eingefügt werden und auch mit gedruckt werden. Die Strukturen sind sehr einfach aufgebaut, benötigen nicht zu viel Druckmaterial und, das ist der Clou, berühren das zu druckende Objekt nur ganz leicht. Somit sind sie nach dem Druck sehr einfach abzutrennen. Korrekt abgestützt kann man nun auch Objekte mit Überhang drucken:

Neben dem Support Material kann der Slicer auch noch eine “Brim” einfügen – damit wird einfach nur die erste Schicht und somit die Grundfläche des Objektes stark vergrößert. Das ist erforderlich, wenn euer Objekt nur sehr wenig Berührung mit der Druckplatte hat – denkt z.B. an eine menschliche Figur oder ein Tier, bei dem nur die Füße auf der Druckplatte aufsetzen. Man sagt dem Slicer einfach, wie stark die Vergrößerung sein soll, und er erweitert dann die Fläche um das zu druckende Objekt um diesen Wert. Damit wird die Haftung extrem gesteigert. Und das ist wichtig, da das Objekt sich keinesfalls während des Drucks bewegen darf.

Der geschmolzene Dart Vader Helm war mein bisher heftigster Druck, alleine um das Support Material und die umliegende Brim zu entfernen habe ich über 30 Minuten benötigt.

Bevor man nun los drucken kann, muss das Gerät noch kalibriert werden. Zum einen ist wichtig, dass die X und Y Achsen perfekt ausgerichtet sind (wirklich perfekt!), da sonst der Extruder auf dem Druckbett in unterschiedlicher Höhe lang fährt. Der zweite Faktor ist das “Leveling”, mit dem man die niedrigste Position der Z Achse kalibriert. Dabei fährt man den Extruder auf seine “Home Position”, also Stufe 0. Diese Stufe 0 sollte extrem niedrig über dem Druckbett sein, wir reden hier von unter einem mm. Beim Colido ist dafür eine Art Visitenkarte mit dabei, die man auf das Druckbett legen kann. Der Extruder muss diese Karte leicht andrücken. Es gibt viele Nutzer, die leveln noch feiner und nutzen dafür einfache extrem dünne Kassenzettel. Habt ihr die richtige Position gefunden, ist es wichtig, den Extruder über das komplette Druckbett zu schieben und zu prüfen, ob die Höhe überall gleich ist. Ihr kontrolliert damit quasi die Waage von X-und Y-Achse. Wichtig ist: der Extruder darf nicht ZU niedrig eingestellt sein, da er sonst das Druckbett beschädigt. Bewegt man den Drucker nach der Kalibrierung nicht mehr vom Fleck, muss man die Kalibrierung eigentlich auch nur einmalig machen.

In diesem Beispiel hatte ich die Höhe falsch kalibriert (rechts) – ihr seht, dass die einzelnen Bahnen extrem deutlich zu erkennen sind und nicht richtig auf die Bodenplatte gepresst wurden. Dadurch kommt es dann zu Lücken, die man an den äußeren Aussparungen für die 4 Schrauben sowie um die Löcher in der Mitte sehr gut sehen kann. Das linke Objekt hat nahezu keine Riffelung, weil es korrekt angedrückt und somit schön flach gedruckt wurde.

WICHTIG: mit diesen beiden Kalibrierungen steht und fällt das Druckergebnis! Man kann es nicht oft genug sagen. Sind diese beiden Einstellungen korrekt, druckt der Drucker auch richtig und es gibt keinen Frust. Hält das Material der ersten Druckschicht nicht auf der Druckplatte, dann ist eine der beiden Einstellungen falsch.

Beim Colido ist die Druckplatte auch aus Plastik, wird aber bereits mit BlueTape, also blauem Malerkrepp, beklebt geliefert. Zumindest bei mir was das sehr minderwertig, sodass ich das Zeug mühevoll abgekratzt habe und dann selbst mit BlueTape neu geklebt habe. Der Unterschied in der Haftung war riesig.

Pro-Tip: wenn das Malerkrepp aufgeklebt ist, geht da mal ordentlich mit Schleifpapier drüber. Man wird es nicht glauben, aber was die Haftung der Druckobjekte angeht ist das ein Unterschied wie Tag und Nacht. Ich bekomme die Objekte teilweise kaum von der Fläche – so muss es aber auch sein. Andernfalls besteht immer die Gefahr, dass das Druckobjekt eben verrutscht.

Nach den ersten Druck-Versuchen habe ich übrigens direkt den Repetier Server auf einen Raspberry Pi installiert und kann nun endlich über das Netzwerk von jedem beliebigen Gerät aus Druckvorgänge starten sowie den Drucker steuern. Andernfalls muss der Rechner immer mit laufen. Der Colido wird über USB angeschlossen, hat aber auch noch einen SD Karten Slot. Den habe ich bisher noch nicht verwendet. Der bequemste und einfachste Weg ist tatsächlich der Einsatz eines Raspberry Pi Mini Computers.

Um auf die letzte Frage nach dem Spassfaktor einzugehen: das Teil macht mega Laune, ja ich bin der Meinung, dass jeder Haushalt so ein Gerät haben sollte. Man kann sich damit sehr einfach die Dinge bauen, die man benötigt, und das millimetergenau. In der standard Ausführung haben die meisten 3D Drucker eine Druckspitze mit 0,4mm Durchmesser, es gibt aber auch Düsen mit bis zu 0,1mm Durchmesser. Je kleiner die Düse, desto feiner kann man natürlich drucken, desto länger dauert aber natürlich der Druck. Zusätzlich kann man im Slicer die Höhe der Schichten angeben – 0,4mm ist hier bereits relativ viel, man kann dann klar die Riffelung auf Flächen sehen. Dafür wird aber auch schnell gedruckt. Geht man auf 0,2mm Schichthöhe runter, werden Flächen bereits sehr glatt und sehen deutlich hochwertiger aus. Zumindest beim Colido sollte man aber nicht auf weniger als 0,2mm gehen, denn dann werden die Schichten so fein, dass der Drucker eher anfängt Fehler zu machen.

Und da sind wir beim Thema Druckzeit: man sollte schon etwas Zeit einplanen oder Objekte so bauen, dass mit möglichst wenig Materialeinsatz gearbeitet werden kann. Selbst einfache Objekte dauern in der Regel mindestens 30 Minuten, und es geht sehr schnell bis rauf zu mehreren Stunden. Man wird mit der Zeit sehr kreativ und denkt bei der Konstruktion um, und dann passt es auch mit den Zeiten.

Fazit

Wenn euch das Thema 3D Drucker schon immer interessiert hat, dann ist jetzt der Zeitpunkt, in dieses Hobby einzusteigen. Es macht mega viel Spaß und vor allem hat man die Möglichkeit, ziemlich viele verschiedene Unikate anzufertigen. Und wenn mal einfache Plastikteile oder das Spielzeug der Kinder kaputt geht, so kann man sich schnell selbst behelfen, anstatt ständig alles neu zu kaufen.

Was ist besser: Pebble Time oder Apple Watch?

Als bisher erfolgreichste Kickstarter Kampagne hat Pebble nun bereits zwei mal alle Rekorde gebrochen – und auch eine entsprechende Bekanntheit erlangt. Und da man mich ja sehr schnell für technische Spielereien begeistern kann, hatte ich relativ schnell eine Pebble (die allererste) an der Hand.

img_2946

Und ich war mega glücklich. Pebble hatte die Zeichen der Zeit (Achtung Wortspiel 🙂 ) erkannt und war die perfekte Kombination zum Smartphone. Nach einiger Zeit merkt man allerdings, dass auch nur die Anzeige von Notifications Sinn macht – bei den Apps gibt es nur einige wenige gute Ausnahmen. Mit diesem Problem haben aus meiner Sicht jedoch alle Smartwatches zu kämpfen.

Dank der großartigen Unterstützung für App Enwickler, mit Online IDE und simpler Javascript Entwicklung, waren auch schnell die ersten eigenen Apps gebastelt. Geblieben ist allerdings nur eine App für die Anzeige von Abfahrtszeiten der für mich relevanten Busse und Bahnen. Aus meiner Sicht muss eine App ihren Zweck innerhalb kürzester Zeit erfüllen (max. 10s), sonst wird man äußerst schnell ungeduldig. Dies gilt übrigens auch für alle Smartwatches.

Die cleverste Idee hatte Pebble jedoch mit dem E-Paper/LCD Display, welches eine Laufzeit von bis zu 7 Tagen ermöglicht – und zusätzlich auch bei direkter Sonneneinstrahlung perfekt ablesbar ist. Aus meiner Sicht eines der Hauptargumente für die Pebble.

Und dann kam Apple daher und kündigte die Apple Watch an. Bäm. Und sie kam richtig geil rüber. Retina Screen, Touch, tolles Design – aber nicht mal einen vollen Tag an Akkulaufzeit. Glücklicherweise hatte ich die Möglichkeit, über meinen damaligen Arbeitgeber eine Apple Watch als Testexemplar lange und ausführlich ausprobieren zu können.

img_4432

Der Unterschied zur Pebble war enorm, endlich wunderbare Grafik, Siri direkt an der Hand, auf Nachrichten direkt antworten können – und wenn es mal in den Flieger ging, das Boardticket auch direkt an der Hand haben. Stark. Aber ein riesiger Schatten lag über all den Vorteilen: die Akkulaufzeit. Teilweise ging die Uhr bereits am frühen Abend aus. Und nach den WatchOS Updates hatte ich einige Tage lang das Problem, dass die Uhr bereits nach wenigen Stunden leer war. Mega nervig und enttäuschend, vor allem weil alleine das “Ladekabel” gute 35€ kostet.

Nachdem ich nun vor kurzem die Apple Watch wieder abgeben musste, war ich im Zugzwang. Kaufe ich mir eine eigene Apple Watch, oder schwenke ich zurück zu Pebble, die mit der “Time” mittlerweile auch eine Smartwatch mit Farbdisplay im Angebot haben. Nachdem ich dann sah dass die Pebble Time “nur” 100€ kostet, war die Entscheidung sehr schnell gefällt. Die Uhr kam kurze Zeit später an, war schnell eingerichtet und ab an den Arm. Wahnsinnig toll, welchen Sprung die Uhr gemacht hat – tolles Design sowie ein großartiges neues und vor allem sehr durchdachtes Betriebssystem. Man merkt, dass sich da Leute richtig viel Gedanken gemacht haben. Touch ist in vielen Fällen sicherlich die bessere Art der Steuerung durch Menschen, aber auf dem kleinen Display kommt man mit den Tasten dann doch besser klar.

Aber der größte Vorteil der Pebble ist und bleibt: die Akkulaufzeit. Es ist unglaublich, wie entspannend es sein kann, wenn einem der Akkustand der Smartwatch auf einmal wieder egal ist. Man muss nicht ständig überlegen, ob man das Kabel eingepackt hat und ob der Akku durchhält. First-World-Problems, ich weiß – aber so ist es nun mal 🙂

Kommen wir zum Vergleich: Das Hauptaugenmerk einer Smartwatch sollte das Display sein. Hier muss ich sagen, dass die Pebble Time zwar leicht vorne liegt, die Apple Watch aber auch ganz klar ihre Vorzüge hat. Zwar ist das E-Ink Display der Pebble immer an und in sehr vielen Situationen ganz gut ablesbar, das Display der Apple Watch ist aber ganz klar überlegen – wenn es denn angeht. Reicht es bei der Apple Watch in nahezu allen Situationen, einfach den Arm so zu bewegen, dass man auf die Uhr schauen möchte, so muss man bei der Pebble eine heftige Schüttelbewegung durchführen, damit die Hintergrundbeleuchtung eingeschaltet wird. Wie gesagt, die Pebble liegt hier etwas weiter vorne, einfach, weil man die Uhrzeit bzw. Notification in 99% der Fälle sofort sehen kann. Bei der Watch funktioniert der Mechanismus ab und zu einfach nicht, was dann in hektischen Bewegungen endet. Alles in allem nicht wirklich befriedigend.

Zusammenfassend kann ich sagen: Aus meiner Sicht funktionieren derzeit alle Smartwatches gleich. Sie dienen hauptsächlich der Anzeige von Notifications, Apps spielen kaum eine Rolle und wirklich relevant ist die Akkulaufzeit. Man kann sich nun streiten, ob der Akku nun unbedingt 7 Tage lang halten muss, aber ich denke 2 Tage sollten mindestens drin sein. Einfach, weil man sein Ladegerät nun nicht immer überall mit dabei hat. Der deutliche Mehrwert ergibt sich dann mit der Integration in das jeweilige Handy-Betriebssystem. Unter iOS liegt die Apple Watch hier klar vorne, weil auch wirkliche Interaktion sowie die Nutzung von Siri möglich ist. Bei Android wiederum kann die Pebble vollständig genutzt werden und dann z.B. auch auf SMS direkte Antworten schicken.

Fazit: seid ihr iOS Nutzer, dann müsst ihr selbst abwägen, ob euch die Akkulaufzeit oder die Interaktionsmöglichkeiten wichtiger sind. Für Android Nutzer ist die Pebble sehr sinnvoll.

Nachtrag: während ich diesen Beitrag verfasst habe, wurde Pebble leider an Fitbit verkauft und die Herstellung der Hardware sowie deren Verkauf beendet. Fitbit will wohl dafür sorgen, dass die Software weiterhin funktioniert. Mega schade, aber so ist es nun mal. Solltet ihr also darüber nachdenken, euch eine günstige Pebble zu kaufen, dann solltet ihr sehr schnell zuschlagen. Ihr müsst dann aber auch damit rechnen, dass die notwendige Pebble App in Zukunft irgendwann nicht mehr funktioniert 🙁

Wie kann ich einen unendlich lang gültigen Facebook Page Accesstoken erzeugen?

Facebook Access Tokens sind eine ziemlich fiese Sache, wenn man Server only Anwendungen bauen möchte – also keine wirkliche Chance hat, den User einen Token besorgen zu lassen. Zusätzlich haben die “normalen” Access Tokens bei Facebook das Problem, dass sie spätestens nach 60 Tagen ungültig sind. Es gibt aber derzeit noch eine Möglichkeit, an unendlich gültige Access Tokens zu kommen. Mit diesen Tokens könnt ihr beliebig auf euer Seite posten, Statistiken abfragen usw. – und an diesen Token kommt ihr so:

  1. Zunächst müsst ihr Admin der gewünschten Fan Page sein
  2. erstellt eine Facebook App – natürlich mit dem gleichen User, der auch Admin der Seite ist.
  3. kopiert in den Einstellungen der App die App-ID sowie das App Secret
  4. öffnet den Facebook Graph API Explorer
  5. oben rechts ist ein Dropdown, in dem ihr die eben erstellte App auswählt (anfänglich steht da “Graph API Explorer” drin)
  6. nun klickt ihr auf das “Get Token”-Dropdown und wählt da “Get User Access Token” – dabei ist es wichtig, dass ihr in der nun erscheinenden Übersicht das Häkchen bei “manage_pages” setzt
  7. kopiert nun den kurzfristigen Token aus dem Textfeld in der Mitte und ruft folgende URL auf:
    https://graph.facebook.com/oauth/access_token?client_id=[APP_ID]&client_secret=[APP_SECRET]&grant_type=fb_exchange_token&fb_exchange_token=[TOKEN]
  8. kopiert euch den nun angezeigten langfristigen Token (LONG_LIVING_TOKEN, 60 Tage gültig)
  9. ruft nun die folgende URL auf:

    https://graph.facebook.com/me/accounts?access_token=[LONG_LIVING_TOKEN]

  10. in dem nun erscheinenden JSON seht ihr alle von euch verwalteten Seiten sowie deren unendlich lang gültigen Tokens für die verwendete App

Zur Überprüfung ruft ihr einfach das Access Token Debug Tool auf: 

https://developers.facebook.com/tools/debug/accesstoken

Hier könnt ihr den Token eintragen und bekommt dann Informationen darüber – und eben auch die Gültigkeit.

Wie kann ich auf das Timemachine Backup eines anderen Macs zugreifen?

Folgende Problemstellung: Du hast eine Timemachine USB Festplatte mit Backups eines anderen Macs, aus denen du einzelne Dateien auf deinen aktuellen Mac kopieren möchtest. Prinzipiell geht das einfach über den Finder, aber der Zugriff auf bestimmte Ordner, wie z.B. den Documents oder Images Ordner eines Users kannst du nicht öffnen, da dafür eine Beschränkung aktiviert ist. Um diese Beschränkung zu umgehen, rufe folgendes Command in einem Terminal aus:

sudo vsdbutil -d '/Volumes/[NAME_DEINER_USB_PLATTE]'

Mit diesem Command werden die Dateizugriffsrechte für diesen Pfad deaktiviert und du hast vollen Zugriff darauf.

Wie lade ich in Django 1.10 ein Bild von der Festplatte per Django Command hoch?

Für den Fall, dass man ein Bild in eine Django Applikation uploaden möchte, gibt es unzählige Tutorials – kniffelig wird es dann ein bisschen, wenn man ein Bild von der Festplatte des Servers, auf dem die Applikation läuft, mittels Django Command hochladen möchte. In meinem Beispiel importiere ich Bilder per Cronjob aus einem anderen Programm. Bisher ging der Upload auch ohne Probleme, aber seit Django 1.9 oder 1.10 wurde das Sicherheitskonzept geändert – man darf keine Dateien mehr ausserhalb des Media_Path Kontextes hochladen (Suspicious File Operation. Um das Problem zu umgehen, muss man das “normale” Fileobject, welches man normalerweise dann an das Model übergeben würde, in den Django File Wrapper packen. Dazu importiert ihr diesen Wrapper wie im Beispiel unten, übergebt den realen Pfad zum Bild und, und das ist nun wichtig, übergebt per “name” Parameter einen beliebigen Dateinamen, mit dem diese Datei dann im “Upload Prozess” von Django ankommt. Nun müsst ihr das “image” Objekt einfach nur an den Image Parameter eures Models hängen, und schon klappt das Einspielen der Datei wieder. Bei mir war es tatsächlich der fehlende “name” Parameter, der mich in die Verzweiflung getrieben hat 🙂

from django.core.files import File
image = File(open("[PATH_TO_REAL_FILE]", "rb"), name="[SOME_FILE_NAME]")

[Quicktip] Nginx Reverse Proxy mit Basic Auth

Nehmen wir an, ihr richtet einen Nginx als reverse Proxy ein und möchtet nun, dass bestimmte Subdomains, die von anderen Servern durchgeschliffen werden, per Basic Auth “geschützt” werden sollen. Dann werdet ihr wahrscheinlich auf das Problem stoßen, dass ihr immer wieder nach dem Basic Auth Login gefragt werdet und der Reverse Proxy nicht korrekt agiert. Die Lösung ist ganz einfach: ihr müsst verhindern, dass die Basic Auth Header weitergereicht werden. Und das geht so:

server {
    listen 80;
    server_name foo.bar.com;
    access_log            /var/log/nginx/foo.access.log;
    location / {
      proxy_set_header        Authorization "";    # <== das ist die wichtige Zeile, die verhindert, dass Basic Auth weiter gereicht wird!
      auth_basic              "Protected";
      auth_basic_user_file    /etc/nginx/basic_auth;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;
      proxy_set_header        Host [YOUR_REMOTE_DOMAIN];
      proxy_set_header        Accept-Encoding "";
      proxy_pass              [YOUR_REMOTE_URL];
      proxy_read_timeout      90;
    }
}

[Quicktip] 2 Faktor Authentifizierung für Amazon aktivieren

Mittlerweile hat man mit Amazon ja einen relativ wichtigen Account, über den man nicht nur einkauft, sondern evtl. auch seine Cloud Server betreibt oder das Amazon Cloud Drive verwendet. Von daher macht die 2 Factor Authentifizierung in jedem Fall Sinn, um nicht mal eine böse Überraschung zu erleben.

Die Aktivierung ist relativ leicht: meldet euch einfach auf “amazon.com” statt auf “amazon.de” an, und geht dann in die Accounteinstellungen, wo ihr das Passwort ändern könnt (Login & Security Settings). Unter “Advanced Security Settings” könnt ihr dann 2-Factor Auth aktivieren. Sobald das erledigt ist, erscheint dieser Menüpunkt auch auf der deutschen Amazon Seite 😉

[Quicktip] Wie kann ich alle installierten Python pip Packages upgraden?

Über einen kleinen Umweg kann man auf der Bash ganz einfach alle aktuell installierten pip Pakete updaten / upgraden:

pip freeze | sed -e 's/==.*//g' > upgrade.txt
pip install --upgrade -r upgrade.txt
rm upgrade.txt

Das Script lässt sich alle installierten Pakete ausgeben, entfernt das “==[Versionsnummer]” hinter dem Namen und packt diese Liste in die Datei upgrade.txt. Anschließend wird diese Datei bei einem “pip upgrade” als “requirements.txt” übergeben und mit dem upgrade Befehl ausgeführt.