Empfehlung: Stephan Urbach ließt am 02.12.2015 in Frankfurt aus seinem Buch

Stephan Urbach ist Aktivist, Nerd und seit neuestem auch Autor. 2011 hat die Aktivistengruppe Telecomix, derren Teil er war, die Internetabschaltung des ägyptischen Machthabers Mubarak umgangen und den Menschen am Tahrir-Platz damit ihre Möglichkeit zum Schaffen einer Gegenöffentlichkeit wieder gegeben. Nachdem das Feuer der tunesischen und ägyptischen Revolution auch auf Syrien übergegriffen hatte, waren Telecomix da, um den Menschen, die Demonstrationen gegen den Diktator Assad organisierten Möglichkeiten der sicheren Kommunikation bereit zu stellen. Einige Aktivisten bauten Freundschaften zu Menschen in Syrien auf – einige der Freunde starben und über die Gruppe und Stephan legte sich eine Depression.

Stephan Urbach hat seine Geschichte aufgeschrieben – mit allen Hoch und Tief, die diese Arbeit mit sich bringt. Er gibt tiefe Einblicke in seine Erfahrugnen als Nerd, Aktivist und an Depression erkrankter Mensch.

Am 02.12.15 stellt er seinen biographischen Roman .NEUSTART im Chaos Computer Club Frankfurt e.V. vor. Einlass ist ab 19:00 Uhr, die Lesung beginnt um 19:30. Der Eintritt ist frei.

CCC-TV – Anruf von Apple

Soeben hatte ich einen sehr freundlichen Apple Mitarbeiter am Telefon, nachdem die App erneut in Review war.

Gedächnis-Protokoll: Er meinte das die YouTube-App nicht explizit über das Hacking sei und somit ok ist. CCC-TV hat hauptsächlich Inhalte, meint er, die über das Hacken sind. Unsere Organisation (er meint den CCC) ist eine aus Hackern bestehende Vereinigung. Dies hat er auf der Webseite ccc.de gelesen.

Eine Lösung hatte er auch für mich: Wir sollen die angemahnten Videos entfernen und die App erneut einreichen, er würde diese dann durchwinken.

Nun, dass widerspricht sich in vielfältiger Hinsicht. YouTube könnte auch die Inhalte entfernen bevor sie zugelassen werden. Aber auf diese Debatte lasse ich mich nicht mehr ein, ich merke das dies eine Sackgasse ist.
Eigentlich liegt die Lösung nahe: die 7 Videos ausblenden… aber das ist ja auch völlig Banane. Wenn ich das machen würde, dann reden wir wirklich von einer Zensur.
Klar könnte man nun tricksen und die entsprechenden Videos verstecken, oder nach dem Review Prozess wieder aktivieren immer auf die Gefahr hin wieder aus dem Store entfernt zu werden. Ich sträube mich momentan dagegen. Ganz oder gar nicht. Der Anruf zeigte das es hier nicht mehr um Hacks geht, sondern um ein Statement.

Das sind erste Gedanken direkt nach dem Telefonat.

Apple Antwortete dann noch schriftlich über das „Resolution Center“:

November 3, 2015 at 9:29 PM
From Apple

Hello Kris,

Thanks for your time on the phone today.

As we discussed, we found content in your app that is not appropriate for an app on the App Store. Specifically, content related to jailbreaking or hacking Apple devices is not acceptable in your app. It would be appropriate to remove this content and resubmit your app for review.

We have now rejected your app for the App Store Review Guidelines detailed below.

PLA 3.2 (e)

We found that your app contains information on hacking Apple’s operating system(s), which is not in compliance the Apple Developer Program License Agreement.

„3.2 (e) You will not, through use of Apple Software, services or otherwise, create any Application or other program that would disable, hack or otherwise interfere with the Security Solution, or any security, digital signing, digital rights management, verification or authentication mechanisms implemented in or by the iPhone operating system software, iPod touch operating system software, this Apple Software, any services or other Apple software or technology, or enable others to do so.“

We encourage you to review your app concept and evaluate whether you can incorporate different content and features that are in compliance with the Apple Developer Program License Agreement.For app design information, check out the videos: „The Ingredients of Great Apps“ and “iPhone and iPad User Interface Design,” available on the iOS Developer Center.

You may also wish to review the sections, ”Design Principles“ in the iOS Human Interface Guidelines.

We hope you will consider making the necessary changes to be in compliance with the App Store Review Guidelines and will resubmit your revised binary.

Please feel free to contact me at +1-408-974-2992 between 8AM-5PM Pacific Standard Time if you need further clarification.

Best regards,
App Store Review

Apple doesn’t allow Chaos Computer Club content on its platform

Nette Menschen haben den Artikel übersetzt und auf Pastebin geladen
http://pastebin.com/zt1n0rpv Auf Wunsch republiziere ich ihn hier.

The Chaos Computer Club in Frankfurt developed a tvOS application to bring talks from its media.ccc.de portal to Apple TV. Apple refused to release the app and took offense at the content.

A Apple TV App for displaying CCC-talks may not be released on the platform. According to Apple the app is in breach of developer terms and conditions because it enables access to content of which the company disapproves: Apple criticizes that the  App allows watching publicly given talks, which among others deal with security holes in the widely used Bluetooth technology, or help “jailbreaking” Apple devices — enabling the use of applications that have not been approved by Apple. The talks criticized by Apple are all available under the website media.ccc.de and can also be watched through the Apple TV YouTube app, which is not criticized by Apple.

The Chaos Computer Club is Europe’s largest group of hackers and a venue for people interested in all sorts of things from all over the world to meet. They usually meet in small gatherings but also in large conferences. They build, test and tinker. Technical barriers are removed, new things created and old things disassembled. Communication and sharing are in the center of all activities, though. The Chaos Computer Club has been creating videos documenting many of the given talks for many years.

Members of the Chaos Computer Club Frankfurt (http://www.ccc-ffm.de) started a project, which aimed at making available to a broad audience in an easy and entertaining way content from the media.ccc.de portal.

Even though all videos are available online on the Internet, the CCC-FFFM wanted to make them available in an especially easy fashion. Kris Simon called the project “the Netflix of the CCC” referring to the accessibility of content.

The application was ready in time and submitted to Apple’s reviewing process. The message that the app was rejected came seven days later. Apple refers to its “Program License Agreement PLA 3.2(e)” and refuses to include the app on its platform because the content has information about hacking of Apple’s operating system.

The following content was criticized by Apple in its review:

Hardware attacks: hacking chips on the (very) cheap
Bluetooth Hacking – The State of The Art
Hacking Medical Devices
Gamehacking & Reverse Engineering
Crypto-Hacking Export restrictions
Jailbreak: eine Einführung
Social Engineering und Industriespionage
$kernel->infect(): Creating a cryptovirus for Symfony2 apps

An open source version is available on GitHub and can be installed through the programming IDE Xcode. https://github.com/aus-der-Technik/CCC-TV

Apple Developer Licence Agreement:

You will not, through use of the Apple Software, Apple Certificates, services or otherwise, create any Covered Product or other code or program that would disable, hack or otherwise interfere with the Security Solution, or any security, digital signing, digital rights management, verification or authentication mechanisms implemented in or by iOS, watchOS, tvOS, the Apple Software, or any services, or other Apple software or technology, or enable others to do so

Screenshots from the app that apple dislike:

temp..aqqhekow temp..djnnqpxa temp..erbuytys temp..fuywvdtq temp..roldplfh temp..zcmrkxug temp..zcrjyudc

Apple lässt App mit Hacker-Vorträgen nicht in den AppleTV AppStore

Der Chaos Computer Club in Frankfurt entwickelte eine tvOS Anwendung, welche die Vorträge von dem Portal media.ccc.de auf das Apple TV bringen sollte. Apple verweigerte die Veröffentlichung und nahm Anstoß an den Inhalten.

Eine vom CCC (einigen Mitgliedern des Chaos Computer Club Frankfurt) erstellte Apple-TV-App zur Anzeige von CCC-Vorträgen darf nicht auf der Plattform erscheinen. Nach Ansicht von Apple verstößt die App gegen die Entwickler-Bedingungen – weil sie Zugang zu Inhalten ermögliche, die dem Konzern missfallen: Apple moniert, dass man sich über die CCC-TV App öffentlich gehaltene Vorträge anschauen kann, die sich unter anderem mit Sicherheitslücken in der weit verbreiteten Bluetooth-Technik beschäftigen – oder Hilfestellung dabei geben, einen so genannten „Jailbreak“ durchzuführen, das Öffnen von Apple-Geräten für nicht vom Konzern geprüfte Anwendungen. Die von Apple kritisierten Vorträge sind alle legal über die Seite media.ccc.de abrufbar und können auch über die Apple-TV-Youtube-App abgerufen werden – die vom Apple-Konzern nicht bemängelt wird.

Der Chaos Computer Club ist Europas größte Hackervereinigung und ein Treffpunkt für vielfältig interessierte Menschen aus der ganzen Welt. Man trifft sich vor Allem in kleinen Zusammenkünften, aber auch auf großen Konferenzen. Es wird gebastelt, ausprobiert und getüftelt. Technische Schranken werden beseitigt, Neues gebaut und Altes zerlegt.
Es wird diskutiert und politisiert. Bei allen Aktivitäten stehen jedoch Kommunikation und Austausch im Vordergrund. Seit vielen Jahren kreiert der Chaos Computer Club Videos, die viele der Vorträge dokumentieren.

Mitglieder des Frankfurter Chaos Computer Club (http://www.ccc-ffm.de nahmen sich einem Projekt an, dass die Inhalte des Portals media.ccc.de auf eine einfache und unterhaltsame Weise einem breiten Publikum zur Verfügung stellen sollte. Die Vorträge behandeln Themen aus Technik, Kunst, Kultur und Politik.

Zwar sind alle Videos online im Internet verfügbar, jedoch wollte der CCC-FFM diese auf eine besonders leichte Art zur Verfügung stellen. Kris Simon bezeichnet das Projekt als “das Netflix vom CCC” und bezieht sich dabei auf die leichte Zugänglichkeit der Inhalte.

Die Anwendung war rechtzeitig fertig und wurde in den Review-Prozess bei Apple eingereicht. Nach 7 Tagen kam die Meldung, das die App abgelehnt wurde.
Apple bezieht sich bei der Ablehnung auf die “Program License Agreement PLA 3.2(e)” und weigert sich die App in das Programm aufzunehmen, da die Inhalte Informationen über das Hacken von Apple’s Betriebsystem beinhaltet.

Im Review Prozess fand Apple Anstoß an den Folgenden Inhalten:

Hardware attacks: hacking chips on the (very) cheap
Bluetooth Hacking – The State of The Art
Hacking Medical Devices
Gamehacking & Reverse Engineering
Crypto-Hacking Export restrictions
Jailbreak: eine Einführung
Social Engineering und Industriespionage
$kernel->infect(): Creating a cryptovirus for Symfony2 apps

Das Projekt steht als OpenSource-Variante auf GitHub und kann mittels der Programmier-IDE Xcode selbst installiert werden. https://github.com/aus-der-Technik/CCC-TV

ATV 2015 / AppleTV gen.4

So, das neue Apple TV halte ich in der Developer Edition in meinen Händen. Die Ersten Apps sind in Planung. Nun darf ich diesen Blog wieder beschreiben.

Machen wir ein kurzes Resümee meiner Predictions:

– weiß und space grey
> Falsch, es gibt es in schwarz wie bisher, 0 Punkte

– selbe Grundfläche, aber hoch wie ein AirPort extrem
> na ja, fast. Selbe Grundfläche Stimmt. Halber Punkt.

– Wird zum HUB, nicht nur für HA, sondern für das Digitale „Home“ der Apple-Landschaft. Sprich: Wlan, Handover, Syncing, Timemaschine, Familysharing. ICloud-Cache. etc…
> Leider nicht das komplette HUB wie erwünscht. Was die iCloud integration bringen wird… who knows. 0 Punkte

– App-Store! (Und das wird gigantisch!) Ich will auf den Wohnzimmer Fernseher! Ich will ich will ich will.
> Ja. Super! 1 Punkt

– Siri. Mehr der Personal Assistent Gedanke, der aber über die Apps gelöst wird: Erinnere mich in einer Stunde daran ins Bett zu gehen, Mache um 2 Uhr das Licht im Schlafzimmer aus, etc…
> Exact. 1 Punkt

– Erweiteres BLE-SDK. (Welches iPhone sitzt vorm Fernseher)
> Jap! 1 Punkt.

– 3 versionen (256GB, 512GB, 1T).
> Es wird in zwei Versionen erscheinen, nicht in den Größen, sondern 64GB und 128GB oder so ähnlich. Halber Punkt? Kommt schon, der Gedanke war der Richtige.

– Sensoren (Licht, Druck, Feutigkeit, Bewegung, Temeratur, Co2)
> Nope, nichts von alledem, 0 Punkte.

– Release : Herbst 2015
> Treffer. 1 Punkt

– Preis ab: $159
> Ziemlich gut. 1 Punkt

6 von 10 Punkten. Scheiße ich bin ein Fanboy!

ATV 2015 – meine Glaskugel – 10 Vorhersagen

Ja ich wünsche mir ein neues ATV. Ich wünsche es mir so sehr, das ich davon überzeugt bin das zur WWDC eines erscheinen wird. Ich rede seit einem Jahr davon, das das die Plattform ist, auf die man (ich) als Entwickler will.

Ein Mix aus Vorhersage/Wünsche von mir, Rumors und … sonstigem. Hier mal nierdergeschreiben um dann in ein paar Wochen über mich selbst zu lachen:

– weiß und space grey
– selbe Grundfläche, aber hoch wie ein AirPort extrem
– Wird zum HUB, nicht nur für HA, sondern für das Digitale „Home“ der Apple-Landschaft. Sprich: Wlan, Handover, Syncing, Timemaschine, Familysharing. ICloud-Cache. etc…
– App-Store! (Und das wird gigantisch!) Ich will auf den Wohnzimmer Fernseher! Ich will ich will ich will.
– Siri. Mehr der Personal Assistent Gedanke, der aber über die Apps gelöst wird: Erinnere mich in einer Stunde daran ins Bett zu gehen, Mache um 2 Uhr das Licht im Schlafzimmer aus, etc…
– Erweiteres BLE-SDK. (Welches iPhone sitzt vorm Fernseher)
– 3 versionen (256GB, 512GB, 1T).
– Sensoren (Licht, Druck, Feutigkeit, Bewegung, Temeratur, Co2)
– Release : Herbst 2015
– Preis ab: $159

mal sehen wie weit ich mit den 10 Vorhersagen daneben liege.

TV5

es gibt zwei Konsequenzen aus dem TV5 Schlamassel:

– die Wichtigkeit von professioneller IT Security steht endlich wieder im Vordergrund. Architektur und Workflow-Design wird wieder gut bezahlt. Der Preisverfall Der Gehälter hat ein Ende. 

– Neue, unnütze Richtlinien und Unternehmensvorgaben machen es System-Administratoren und Projektmanager quasi unmöglich Neue Projekte umzusetzen. 

reduce code. What I like in Swift and JavaScript

in most cases, we can avoid temporary variables. 
This: 

    func ranges(input: String) -> [NSRange]? {
        let matches = self.internalExpression.matchesInString(input, options: nil, range: NSMakeRange(0, count(input)))
        var results: [NSRange] = []
        for match in matches {
            let matchRange = match.range
            results.append(match.range!)
        }
        return results
    }

turned to: 

    func ranges(input: String) -> [NSRange] {

        let matches = self.internalExpression.matchesInString(input, options: nil, range: NSMakeRange(0, count(input)))

        return matches.map({ $0.range })

    }

Optionale Callbacks in Swift

Callbacks sind in funktionalen Sprachen unabdingbar. foo bar, bla bla (Einleitung gekürzt)

Anyway heute geht es um Callbacks in Swift. Genauer gesagt um optionale Callbacks. Optionale Callbacks sind diejenigen Callbacks, welche nicht zwingend übergeben werden müssen.

fn processor ( callback ) { 
    if callback {
        callback()
    } else {
        return;
    }

nun kann prosessor() aufgerufen werden, als auch processor( fn done(){} ); Eben optional.

In Swift haben wir einige grazile Sprachelemente bekommen. Optionale Callbacks lassen sich hervorragend umsetzen!

Näherungsweise: Die Processor Funktion mit Aufruf  kann zunächst so aussehen. Sie hat jedoch noch keine Callback funktionalität. Ihr merkt, ich räume gerade etwas Code auf:

func processor(text: String){
    println("i am the processor and should say \(text)")
}
processor("hello to you")

Der Output ist erwartungsgemäß: „i am the processor and should say hello to you“

Wen nun diesem konstruierten Beispiel eine Callback funktion gegeben werden soll, könnte das so aussehen

func processor(text: String, completion: ()->Void) {
    println("i am the processor and should say \(text)")
    completion()
}
processor("hello to you") {
    println("text printed")
}

Die Signatur für eine leere Callbackmethode ()->Void wird als Type dem Parameter completion gegeben.
Dem Aufruf wird eine Funktion angehängt. In diesem Fall wird einfach nur eine Statusnachricht ausgeben.

Erwartungsgemäß ist das Ergebnis:
i am the processor and should say hello to you
text printed

So weit so gut. processor(_, _) muss ich aber nun mit zwei Parametern aufrufen. text und completion gehören zur Funktionssignatur. In vielen Fällen möchte ich jedoch optionale Callbacks, insbesondere wenn es um UI Geschichten geht. „Tue etwas, und wenn das Ok ist, dann schließe das Fenster“ – ist ein häufiger Anwendungsfall. Das „Tue etwas“ wird aber in diversen Kontexten aufgerufen, bzw. delegiert. Weshalb aus architektonischer Sicht das Schließen zu dem aufrufenden Part gehört, also in ein Callback muss. Das „Delegat“ soll zum Besipiel Daten speichern, aber nicht das Fenster beeinflussen. Das Fenster selber weiß jedoch, wann es eine Aktion (z.B. das speichern) ausführen lassen muss und in folge dessen wie es sich verhalten soll.

Hier kommen Optionale in Swift in in Spiel. Den completion Parameter kann man als Optionale angeben, heisst er kann entweder eine Funktion sein, oder nil.

(()->Void)?

und completion kann darauf hin auf ein Unwrapping geprüft werden. Die ganze Funktion sieht dann so aus:

func processor(text: String, completion: (()->Void)?) {
    println("i am the processor and should say \(text)")
    if let callback = completion{
        callback()
    }
}

Der Aufruf des Processors funktioniert nach wie vor, aber wirklich optional ist er nicht, da immer noch ein zweiter Parameter verlangt wird. Dieser kann nun jedoch nil sein:

processor("hello to you") {
    println("text printed")
}
processor("hello to me", nil)

Das ist noch nicht das was ich will! Mein erster Gedanke war eine convinience Methode zu schreiben, die processor(_, _) überlagert und nur text als Parameter verlangt:

func processor(text: String){
    processor(text, nil)
}
func processor(text: String, completion: (()->Void)?) {
    println("i am the processor and should say \(text)")
    if let callback = completion{
        callback()
    }
}

…, denn nun kann ich optional processor mit und ohne Callback aufrufen:

processor("hello to you") {
  println("text printed");
}
processor("hello to me")

Swift ist aber wie erwähnt eleganter. Es bieten sich (ähnlich wie in PHP, haha 🙂 ) Defaults an. Wenn der completion Parameter durch die Convinience-Methode zu einem nil wird, dann kann completion doch auch gleich nil als default bekommen.

func processor(text: String, completion: (()->Void)? = nil) {
    println("i am the processor and should say \(text)")
    if let callback = completion{
        callback()
    }
}
processor("hello to you") {
    println("text printed");
}
processor("hello to me")

Somit sind optionale Callbacks in Swift umgesetzt ohne den Weg über überlagerte Funktionen zu gehen! Nice! Ich fange mehr und mehr an, die Sprache richtig doll zu mögen!