throwie love

ich hab vor kurzem ein paar kleine throwies gebastelt um menschen glücklich zu machen. die sahen teilweise so aus:

bei dem dicken throwie oben handelt es sich um eine LED die wechselweise rot, grün und blau anzeigt und das langsam im fading macht und auch mal schnell wechselt. die ganze logik ist in der led, also keine weitere schaltung nötig. ich hab ein kleines durchsichtiges plastikplättchen unter den einen kontakt getan und dieses plättchen mit durchsichtigem garn verbunden. so konnte ich eine aktivierung durch ziehen an dem faden herstellen. was in einer kleinen geburtstagskiste zum einsatz kam und tadellos funktioniert hat.

später bin ich noch auf einige weitere tolle anleitungen und folgenden film aus berlin gestossen. dort werden massenhaft throwies mit magnet unter einer s-bahn-brücke geworfen. der effekt ist toll!

Mitglieder des Street-Art-Kollektivs Graffiti Research Lab Germany (@GRLGermany auf Twitter) haben mit einigen Helfern rund 200 sogenannte LED-Throwies unter die eiserne U-Bahn-Überführung „geschmissen“. In der Dunkelheit mutet die Lichtinstallation an wie ein bunter Sternenhimmel. Zu der Aktion wurde in den Tagen zuvor auf Facebook und Twitter aufgerufen.

Throwies sind handelsübliche LEDs, zwischen deren Beinchen eine Knopfzelle und ein kleiner aber starker Neodym-Magnet verklebt sind. Durch gezieltes „Schmeißen“ haften sie selbst an schwer erreichbaren metallischen Konstruktionen.

Auch am Sonntagabend noch bot das helle, bunte Lichtermeer ein spektakuläres Bild. Passanten blickten erstaunt empor und diskutierten entzückt über den Ursprung der ungewöhnlichen Installation. Die Throwies werden jedoch im Laufe der Woche ihre Leuchtkraft verlieren, bevor sie schließlich ganz erlöschen.
Quelle: „Buntes Lichtermeer aus LED-Throwies“, make Magazin, 14.03.2011
https://www.heise.de/make/meldung/Buntes-Lichtermeer-aus-LED-Throwies-1207023.html

Diese Anleitung LED Throwies bauen kann man prima als PDF ausdrucken (vorher registrieren).

Diese Anleitung The LED (Minor) Artcrime Tutorial (als PDF) in Englisch bietet großartige weitere inspirationen für die gestaltung und variation z.B. mit hilfe von plexiglas und anderen lichtleitenden materialien.

Update Feb 2017

Ich hab einen ersten Shape-Throwie gebaut. Für den ersten Entwurf gar nicht mal so übel geworden.

Aus Acryl gelasercutted, Oberfläche des Acryl zwecks mehr Shiny Reflektion aufgeraut mit einer Eisenfeile (Schleifpaopier war grad alle) dann LED mit Heisskleber unten eingesetzt und anschließend die LED/Heissklebestelle und einen Teil der Stromzuleitung mit schwarzem Lack übermalt.

Leider hatte ich erst eine zu breite, gelb-klar LED versucht einzusetzen, und dem Monster dabei ein Bein abgebrochen, das musste ich dann noch mit Sekundenkleber wieder drankleben. Sieht man aber kaum noch finde ich. Im nächsten Versuch werde ich eine Seite der Figur mit Silberfarbe bestreichen, um noch bessere Reflektion zu erzielen.

Und ich werde versuchen die gesamte Pacman Family zu lasern und mit LEDs zu beleuchten.

Why do I blog this? Ich finde Anleitungen, um Menschen eine Freude zu machen, kann es gar nicht genug geben. Und da meine throwies eher so zusammen-amateurisiert waren, find ich es cool, dass man die noch mit neodym magneten „haftbar“ machen kann und die plexiglas idee werde ich definitiv nächstes mal umsetzen.

Auch wenn ich jetzt den Umweltaspekt durchaus sehe (Neodym ist ein kostbarer Rohstoff, Batterien in die Natur werfen nicht grade super umweltfreundlich), überwiegt meiner Ansicht nach der positive Aspekt. Neodym wird tonnenweise in Windrädern verbaut, und Batterien in riesigem Maßstab nicht ordentlich recycled. Da machen ein oder zwei mehr davon der Umwelt auch nix mehr aus. Zumal mit Umwelt hier bei mir eigentlich der städtische Raum gemeint ist, der eh schon mit Beton zugebaut ist. Und die throwies sind eh direkt an Menschen gegangen nicht an die Umwelt in meinem fall.

RealmExplorer – a piece of sample code for Realm DB

realmexplorer_01_smallFirst things first, look at the RealmExplorer github repo for the project.

Preface: CoreData

I have some history in using databases. From using Oracle, Frontbase, mySQL, PostgreSQL, sqlite etc. the last time I used a database was for a postcard app using CoreData. But I found CoreData to be a lot of overhead and boilerplate code to write.

Especially migrations are kind of not very intuitive to understand and if something goes wrong you are basically lost. While Xcode for a while had an Entity modelling tool (which had it’s roots in the WebObjects EOModeler), most of the time this tool did not work very well for me and had lots of bugs. In each Xcode version different bugs!

Also many people report running into issues when using CoreData with lots of objects, because it is easy to loose track of memory consumption with CoreData and if you do not actively check and work against that, you end up with a whole model graph being in memory. Not cool! So I wanted to try something different.

Realm

I found Realm by Realm.io to be interesting enough to tinker with. So I started working with their sample code projects. But none of those projects came even close to some real world example. So I just started prototyping something I will need for a different project anyway.

Starting with a custom viewcontroller for adding & editing entities I recognized that this would soon become rather painful to provide e.g. inputfields for text and numbers and dates. So I grabbed FXForms to give it a try after I had already completed a viewcontroller to manage DBCaptain entities a bit.

Migrations

Right from the start I wanted to know how migrations work. Because usually those are the weakest spot in every db operation taking place. With a live product you always „pray“ that nothing will go wrong during migrations on the customers device. And keeping track of changes to the db schema is very important to have a stable app.

So I built the sample around the process to „simulate“ an app in development. You can now iterate through different development steps (5 different app states & their migrations) and their needed migrations. This way I figured out how I can safely manage my migrations (i.e. always keeping a backup of the old schema). In the project the
DatabaseFactory.m class manages all that. It detects existing schemas using a precise naming scheme for each Realm-db created.

During app launch any necessary migrations are executed if necessary. Also, any errors happening while the app launches and gets into trouble activating the database, are nicely displayed.

Create/Insert/Edit/Delete

I started with one entity DBCaptain which is basically a user entity. I just wanted to create user objects and populate them with different properties. I tested insertion with one and with many users on the main thread and on the background thread. I also took advantage of notifications coming from Realm as soon as an operation finished updating the db.

Deletion of objects came next. As always having the UI keeping track of all those changes is the more difficult task. So expect some „ugly“ code, because this was only me tinkering around. When i wanted to edit existing objects I recognized that I do not want to create all those textfields manually.

FXForms

That was when FXForms came to the rescue. I started to recreate the already half done viewcontroller and created another based on FXForms. I needed some time to wrap my head around FXForms, because basically this is a quite sophisticated hack of providing compact descriptions of UITableViewCells and their content.

You describe what kind of structure your form should have and what kind of value types it should use. FXForms crafts the UITableView which makes all those inputfields come true. Things start to become a bit tricky if you want to control those UITableViewCells more directly. E.g. I needed a way to exclude certain properties of being edited at all. So I simply extended the FXForms protocol to allow for a denial of userInteractionEnabled on certain cells by adding the FXFormFieldEditable key. This is used on the CaptainFormViewController to exclude the information about the database schema and the encryption status to not be editable.

Evaluation

My first impression of Realm DB is quite positive. It is fast, it provides helpful error-messages and it is easy to setup and comprehensive in what it does and how it works. I never in my life had migrations up and running that quickly. Very, very helpful was the Mac app RealmBrowser to open a realm DB file directly. I used that while checking my migrations and the results of operations which added arbitrary data (e.g. image files).

What is actually really great is that encryption is supported for the db by just providing a 128 bit key. That is really helpful to protect user data and increase safety of the realm db file even if it gets backed up into some cloud somewhere else.

What’s next?

I think I missed something related to the KVO-thingy going on by Realm. But I had no time until now to figure that out. I suppose they actually track entities and changes via KVO. But I am not yet sure how exactly this works and how I can detect if an object has pending changes. That is why I added a hasPendingChanges BOOL-flag to both ViewControllers for editing entities. So help is welcome here!!

I did not have time to do some real hardcore performance testing, i.e. adding thousands of entities and relationships in a short time and crafting a rather complex model with complex relationships which define ownership and cascading deletions etc. Also doing sophisticated db queries is on my list to do next.

But having a prototype now to tinker with helps already a lot. Since I learn best from sample code, and I think I am not the only one learning new things this way, I hope it helps others to jumpstart with Realm, too.

Why do I blog this? I just wanted to give a bit of background info on the sample code I put on github. Have fun tinkering & I am really in need of getting more info on how I can detect changes to an object so I know WHEN to save changes to the db. Maybe someone who already grabbed the concept better can help me here?? Leave a comment or contact me via github.

The Art of Manliness

Orientierung für Männer ist heutzutage angesichts des von allen Seiten unter Druck geratenen Männerbildes ein knappes Gut geworden. Es gibt kaum noch exklusiv Männern vorbehaltene Orte, an denen sich Männer auch tatsächlich Mann-spezifischen Entwicklungen in einem geschützen Raum widmen können ohne gleich in komische Rechtfertigungszwänge gegenüber unserer überkorrekten, übervorsichtigen, risikoaversen Vollkaskogesellschaft zu geraten.

Umso schöner, wenn es solche kleinen Oasen mit viel interessanten Inhalt dann doch noch im Netz gibt. Eine solche habe ich per Zufall vor kurzem gefunden: www.artofmanliness.com

Ich zitiere daraus mal einen mir sehr wichtigen Abschnitt, den ich nur unterstreichen möchte, zeigt er doch, woran es vielen Exemplaren Mann derzeit am meisten fehlt. Vor allem Jungs die allein von der Mutter, der Kindergärtnerin und der Grundschullehrerin erzogen werden. Menschen die diesem Jungen beim Anblick eines Messers sagen „Pass auf das ist scharf, damit schneidest du dich nur, leg das weg!“

Rite of Passage

Across time and place, cultures have inherently understood that without clear markers on the journey to manhood, males have a difficult time making the transition and can drift along indefinitely. Thus, rites of passage were clearly delineated in nearly every culture as one of the community’s most important rituals.

Wir selbst müssen die Veränderung sein, die wir in der Welt sehen wollen

Das (PDF | Depublizierungsschutz) sagte einst Mohandas Karamchand (Mahatma) Gandhi und ich finde die Empfehlung nicht schlecht. Die abhanden gekommenen Riten, die einem den Übergang zu & Status als Mann und zugehöriger zu den Männern klar machen, sollte man nicht einfach hinnehmen. Wenn etwas fehlt, dann sollte man sich drum kümmern, dass es (wieder-)beschafft wird.

Ich denke daher, dass Männer jeden Alters sich heutzutage selbst um einen „Rite of Passage“ kümmern müssen. Die Väter kriegen es in aller Regel gar nicht auf die Reihe und sind mit sich selbst beschäftigt, und die Mütter können das nicht tun, da sie nicht der Gruppe der Männer angehören.

Rite of passage is a celebration of the passage which occurs when an individual leaves one group to enter another. It involves a significant change of status in society.
Quelle: Wikipedia

Ich denke daher, Mann sollte sich seine eigene Rite of Passage-Challenge erarbeiten und durchziehen. Etwas vor das man sich fürchtet, etwas was eine Spur hinterlässt die man zeigen kann, etwas was einem zu jedem Zeitpunkt danach wie eine Art Anker wissen lässt und versichert, dass man diese Passage gemeistert hat.

Über die Kuh hüpfen

hamar_cow_jumping_rite_of_passage_250Im äthiopischen Stamm der Hamar ist es z.B. üblich, dass man erst dann von der Gesellschaft als Mann anerkannt wird (als Vorbedingung die Heirat eingehen zu dürfen), wenn man über eine Herde Rinder gesprungen ist. Eine durchaus fancy Challenge wie ich finde, mit einem tollen Bild rechts.

Bei dem Höhepunkt dieses Rituales springt ein junger, uninitiierter Mann (ukuli) viermal nackt über eine Reihe von Rindern, um heiratsfähig und erwachsen zu werden.

Interessant ist bei diesem Ritual dass es bei den Hamar eine Art Gleichberechtigung gibt, denn auch die Frauen werden Teil des Rituals und tragen durchaus Spuren in Form von Narben davon. Näheres liest man am besten selber in der Wikipedia nach.

The Modern Primitive

Ein Teil der angesprochenen Dinge, insbesondere der Prozess eines Übergangs in Form eines Rite of Passage, wird oft auch wiedergefunden in einem „Way of Life“-Konzept das sich Modern Primitive nennt oder auch Primitivism. Dabei macht man als zivilisierter Mensch Anleihen bei eher „einfacheren“ und „ursprünglicheren“ Konzepten des Zusammenlebens und fremden Kulturen, wie eben z.B. bei autark lebenden Stämmen wie den Hamar.

Why do I blog this? Ich denke, dass die vielen orientierungslosen Männer auf diesem Planeten keinen Übertritt zum Mann-sein mehr erleben können und das genau dieser Umstand eine der Hauptursachen für eine Nichtverankerung in der Gesellschaft und in der Rolle als Mann darstellt. Das Kulturgut und die elementare Funktion dieses wichtigen Schritts ist weitgehend untergegangen, obwohl es eine so wichtige Funktion für die gesamte Zukunft und Lebensgestaltung eines Individuums ausfüllt. Ich habe sicher auch kein Patentrezept, was deine persönliche „Rite of Passage“ sein wird, aber bei einem bin ich mir sicher, es sollte sie mindestens einmal im Leben eines jeden Jungen/Mannes geben. Wer wie viele junge und ältere Männer heutzutage Mitglied im Club of Dadfails™ ist, dem könnte eine ganz persönliche Rite of Passage einen Weg offenbaren sich selbst zu verankern in der Gesellschaft und sich der Zugehörigkeit zu den Männern jederzeit sicher zu sein. Ein Quell der Sicherheit & Orientierung durch Verankerung, der seinen ganz eigenen Wert darstellt in einer Gesellschaft deren ständiger Wertewandel für genügend Verwirrung jeden Tag sorgt.