Show notes
Mit Mateus "@seanlilmateus" Armando über Mobilfunktechnik, MacRuby, RubyMotion und Apple.Unser Gast (00:00:00)Mateus "@seanlilmateus" Armando"Lange Namen und die Ämter"Hat eine Fachinformatik Ausbildung und ein abgebrochenes Informatikstudium vorzuweisenArbeitet bei der Deutschen TelekomIst in der MacRuby (http://macruby.org/) und RubyMotion (http://www.rubymotion.com/) Szene aktivRuby is Magic: Cupcakes! https://speakerdeck.com/railsbros_dirk/ruby-is-magic-cupcakesArbeiten der Telekom (00:03:55)Mateus automatisiert Dinge mit Ruby auf der Arbeit, ansonsten kommt es weniger zum EinsatzMateus testet Mobilfunkentgeräte mit dem Netz der TelekomZentrale Stelle für mehrere LänderFunktionieren die Geräte mit dem Netz der Telekom?Softwaretests, FunktestsMateus bekommt oft mal neue Geräte zum Testen in die HandDie neuen Apple Geräte werden von speziell ausgewählten Personen getestet; Apple ist da etwas pingelig :)Wenn Hersteller Mist machen, dürfen die Geräte nicht ins Netz der TelekomDas Notification System eines ungenannten Devices hat vor einiger Zeit für großflächige Ausfälle gesorgtFür Sicherheitsrelevante Fragen gibt es noch mal eine eigene AbteilungSecurity Research Labs (Karsten Nohl) - "Rooting SIM cars": https://srlabs.de/rooting-sim-cards/Wireshark: http://www.wireshark.org/Wireshark und GSM: http://wiki.wireshark.org/GsmProtocolFamilyGSM Hacking, Security und Co (00:14:30)Testgeräte und -installation sind extrem teuerBase Transceiver Station: http://en.wikipedia.org/wiki/BasetransceiverstationMehr Augen, finden mehr Fehler; bisher wurden Mobilfunkstandards wenig von der "Masse" unter die Lupe genommenEinige Fehler müssen sowohl beim Hersteller als auch auf Netzebene behandelt werdenNTT DOCOMO: http://www.nttdocomo.co.jp/english/NTT DOCOMO Ausfälle: http://www.geek.com/mobile/ntt-docomo-asks-google-to-limit-android-data-use-1463313/ http://www.techinasia.com/docomo-outage-line/C, Java, NeXT, WebObjects, Erlang… (00:19:35)Mateus hat mit C im jungen Jahren angefangen - Basti hat mit BASIC angefangen: 1 : 00 ;-)Wir machen einen Ausflug durch diverse Programmiersprachen und Umgebungen, die NeXT und Apple durchgemacht habenMateus hat während seiner Ausbildung bei T-Systems Erlang programmiertRuby wurde irgendwann zu Mateus' HobbyPyObjC: http://pythonhosted.org/pyobjc/RubyCocoa: http://rubycocoa.sourceforge.net/Wir rätzeln, seit wann Ruby in OS X dabei istDer Ruby-Guy bei Apple war Laurent Sansonetti (@lrz)Apple Scripting Bridge: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ScriptingBridgeConcepts/Introduction/Introduction.htmlMacRuby & RubyMotion (00:27:30)Bertrand Serlet: http://en.wikipedia.org/wiki/Bertrand_SerletBertrand Serlet basht Windows Vista https://www.youtube.com/watch?v=n9UPhwmjJ-YLaurent ist zu Bertrand gegangen und hat vorgeschlagen Ruby auf der Objective-C Runtime laufen zu lassenDas war der Anfang von MacRuby: http://macruby.org/Es stand im Raum, ob Apple nicht MacRuby für das iPhone verfügbar machen wird (das war 2008)ABER: MacRuby ist Garbage Collected und es gibt und gab auf dem iPhone nie GC.Es wurde versucht MacRuby ohne GC zu bauen - nicht einfachAutomatic Reference Counting: http://en.wikipedia.org/wiki/AutomaticReferenceCountingGarbage Collector in OS X 10.8 ist deprecatedLaurent Sansonetti gründet 2012 eine Firma und präsentiert: RubyMotion: http://www.hipbyte.com http://www.rubymotion.com/RubyMotion ist MacRuby mit ARC für iOS! Kommerzielle Lizenz, kostet ~150 EURWir rekapitulieren: RubyCocoa, MacRuby, RubyMotionRubyMotion gibt es auch für MacShizuo @watson1978 Fujita arbeitet zusammen mit Laurent an MacRuby und RubyMotionARC bei Objective-C wird zur Compile-Zeit gemachtMacRuby wird auch kompiliert, mit LLVMBindings machen Probleme bei MacRuby und RubyMotionBlocks in Ruby sind Closures (http://en.wikipedia.org/wiki/Closure(computerscience)) und sind sehr schwer in MacRuby zu implementierenWeak Reference: http://en.wikipedia.org/wiki/Weak_referenceEs gibt WeakRef in Ruby! http://www.ruby-doc.org/stdlib-2.0/libdoc/weakref/rdoc/WeakRef.htmlRuby Binding: http://www.ruby-doc.org/core-2.0.0/Binding.htmlHow to Marshal Procs Using Rubinius: http://yehudakatz.com/2011/11/19/how-to-marshal-procs-using-rubinius/Kernel#eval ist in RubyMotion nicht verfügbar, weil das die AppStore Richtlinien nicht erlaubenAnsonsten geht alles in RubyMotion, inkl. REPLIm Laufzeitverhalten sind RubyMotion Anwendungen ohne Unterschied zu Anwendungen in Objective-CDas Kompilat ist grundsätzlich nicht voneinander zu unterscheidenObjective-C Runtime (01:08:00)Objective-C Runtime ist noch nicht so weit wie die JVM mit unterstützten Sprachen, aber es gibt trotzdem einigesNu: http://programming.nu/F-Script: http://www.fscript.org/eero: http://eerolanguage.org/Es war wahrscheinlich nicht von Anfang so gedacht, aber das Design lässt es sehr gut zuDamals sollte auf OpenStep (https://en.wikipedia.org/wiki/OpenStep) Java laufenEs gibt ein GNUStep (http://www.gnustep.org/) basiertes System, dass sich mit Smalltalk programmieren lässt (http://etoileos.com/etoile/)Probleme mit RubyMotion (01:12:45)Bis vor kurzem gab es noch viele Probleme mit Blöcken in Bezug auf SpeicherlückenFür Ruby-Entwickler sind Blöcke absolut normal und werden überall verwendetViele Bugs sind entdeckt worden bei der (falschen) Verwendung von CoreData (https://en.wikipedia.org/wiki/Core_Data)Wichtig ist, CoreData ist keine Datenbank, aber man kann dort Objekte ablegenCoreData ist sehr mächtig und nicht leicht zu verstehenDa CoreData ein Teil von iCloud-Sync ist, führt dass dazu das iCloud-Sync oft nicht richtig umgesetzt istRubyMotion ist nicht Ruby, sondern ein Dialekt von RubyBeispiel ist, dass man mit der Block-API von Objective-C interagieren mussNamed Arguments sind verhalten sich unterschiedlichIn Objective-C sind die Named-Arguments Teil des MethodennameDie großflächige Verwendung von Named-Arguments wird sich in Ruby noch etwas hinziehenWenn man für iOS entwickeln will, aber keine Lust auf Objective-C hat, dann macht man was falschDokumentation ist in Objective-C und die Laufzeitumgebung mit all ihren Eigenheiten ist eben auch Objective-CAber: RubyMotion ist nach Mateus die beste Möglichkeit Objective-C zu lernenRubyMotion ist sehr viel kompakter als Objective-C, daher die bevorzugte Umgebung von MateusApple iPhone Event (01:30:20)Wir wollen keine goldenen iPhonesEvent war leider nicht liveIm Home-Office-Cologne gab es Rudelgucken mit TippspielEnttäuschung, dass es keine Mac News gabWieder kein AppleTV SDK :-)iPhone ist so wichtig, dass nichts parallel vorgestellt wirdAber: Mavericks und Mac Pros werden kommen, aber ohne Event ist der Mac Pro eher unwahrscheinlichNeue iPads und iPods stehen auch noch aus, aber dafür lohnt sich auch ein eigenes EventEigentlich haben sie Material für noch 2 EventsDirk wünscht sich ein AppleTV mit SDK und der Möglichkeit einen Playstation Controller anzuschließenDer Coup des Jahres wäre eine AppleTV SpieleconsoleiPhone/iPod als Controller für Spiele inkl. SecondscreenWir gehen nicht davon aus, dass Apple einen eigenen Controller bauen wird/kannAm Anfang noch vorsichtig im Bereich, in letzter Zeit wird das ganze sehr ernsthaft verfolgt, Stichwort: Grafikleistung und OpenGL 3In Bezug auf Independent-Spiele ist Apple bereits da wo Microsoft und Sony gerne hinmöchtenDas Event war das Ende der Ära Steve Jobs und der Beginn der Ära Jony IveBasti findet das "non" lustig ist, wenn die Löcherhülle auf dem 5C ist (https://www.apple.com/iphone-5c/design/images/casesgallerywhitewhite2x.png)Die Position des iPhone 5C ist noch unklarWeder ein Billig-PhoneGute LeistungsdatenEs ist aber buntBasti sagt nach wie vor, Apple hat es nicht nötig ein Billig-iPhone zu bringenUnterschied momentan ist die Qualität der AnwendungenHintergrund wird nicht sein, mehr Umsatz über iPhones zu machen, sondern iOS weiterzuverbreitenDas 'C' steht wahrscheinlich für 'Color' und nicht 'Cheap' ;-)Wir warten weiterhin auf das 4k-Display…

