Alternative Suchmaschinen

Ich bin kein Freund von Google. Die Macht, die Größe und die Philosophie von Google ergeben meiner Meinung nach eine gefährliche Mischung. Daher vermeide ich Google, wo ich nur kann.

Die meisten Google-Dienste brauche ich gar nicht. Eine brauchbare Suchmaschine braucht aber wohl jeder, der sich täglich im Internet aufhält; so auch ich. Was soll man aber benutzen, wenn man Google nicht mit weiteren Daten versorgen will. Ich benutze immer folgende Suchmaschinen:

ecosia.org
Ecosia ist eine Suchmaschine, die 80% ihrer Einnahmen an ein Aufforstungsprogramm in Brasilien spendet. Beim Suchen hilft man also der Natur. Damit das ganze nicht widersinnig ist, ist die Suche selbst CO2-neutral. Die Suche bei Ecosia ist also doppelt gut. Wenn man über Ecosia der Umwelt noch mehr helfen will, kann man Produkte, die man kaufen möchte über Ecosia suchen und die so genannten EcoLinks anklicken. Dadurch gehen dann bis zu 5% des Einkaufspreises an Ecosia und damit an die Umwelt.
Die Suchergebnisse erhält Ecosia hauptsächlich von Yahoo.
Seit neustem hat Ecosia Apps für die beiden gängigen mobilen Plattformen (iOS, Android), es gibt eine App für den temporären Marktbegleiter und es gibt Erweiterungen für alle gängigen Browser.
Man kann mit Ecosia ausserdem noch in den Bereichen News, Bilder, Maps, Video suchen. Sollte sich dabei mal nicht das richtige finden lassen bietet Ecosia als Suchmaschine zusätzlich Google an. Die Suche über Google ist dann CO2-neutral, aber es werden, aufgrund von Google-Nutzungsbedingungen, keine Bäume gepflanzt.

duckduckgo.com
Duckduckgo ist eine Suchmaschine, die für mich besonders interessant ist, da sie mein Suchverhalten nicht auswertet. Die Seite speichert von mir keine Daten. Somit erhalte ich die gleichen Suchergebnisse wie beispielsweise Angela Merkel oder der Papst. Das ist mir in vielen Fällen wichtig, da ich dadurch neue Sachen finden kann, die mir Google niemals angezeigt hätte, da sie nicht zu mir passen. Gerade Ergebnisse, die ich nicht erwartet habe geben mir aber oft neue Impulse und Ideen.
Wie Ecosia bietet Duckduckgo Apps, Browsererweiterungen und Suche nach speziellen Themengebieten.

Fazit: Die Google-Suche lässt sich in sehr vielen Fällen umgehen und man dabei sogar den Planeten zu einem besseren Ort machen. Bitte probiert die Alternativen aus und macht euch selbst ein Bild.

Posted in aus dem taeglichen Leben, Das Netz | 1 Comment

Aus alt mach nicht mehr so alt

Mein iPhone 4 ist nun fast drei Jahre alt. Vor etwa zwei Jahren haben die Probleme mit dem Homebutton angefangen. Das bekannte Problem der iPhone 4. Bei meinem war es nicht so schlimm, dass er gar nicht mehr zu benutzen war. Es war eher nur nervig und ich gewöhnte mich daran, dass ich manchmal im App-Switcher landete, wenn ich nur ein Mal den Button betätigte. Oder dass sich des Öfteren VoiceOver meldete, wenn ich den App-Switcher wollte. Oder dass ich manchmal den Button drei oder vier Mal betätigen musste, bis sich die App endlich schloss.

Für kurze Zeit hatte ich sogar mal den Software-Homebutton aktiviert. Allerdings habe ich nie einen Ort auf dem Bildschirm gefunden, an dem dieser nicht so stört.

(Den perfekten Ort für diesen Software-Knopf habe ich neulich auf dem iPhone eines Leidensgenossens in der S-Bahn gesehen. Derjenige hatte den Button in die Mitte am oberen Bildschirmrand geklebt. Dort ist ja meist der Titel der aktuellen Seite zu sehen und den braucht man eher selten.)

Als ich mich in Schweden im Urlaub durch App.net las sprang mir die Information ins Auge, dass ifixit nun auch einen europäischen Online-Store haben. ifixit kannte ich schon von ihren Videos in denen sie die jeweils neuste iPhone-Generation auseinander nahmen. Ich hatte auch schon mal mit dem Gedanken gespielt bei denen in den USA zu bestellen, liess mich aber dann von den Versandkosten abhalten.

Nun, da sie aber einen europäischen Online-Store hatten gab es keinen Grund mehr mich nicht an den Austausch des Homebuttons zu wagen. (Hatte ich doch kurze Zeit zuvor mein altes MacBook erfolgreich repariert.) Als wir also zurück aus dem Urlaub waren habe ich gleich einen neuen Homebutton und gleich noch einen neuen Akku für mein iPhone 4 bestellt. Das ganze hat mich etwa 45 EUR inkl. Versand gekostet.

Der Einbau war nicht ganz leicht, aber sehr spannend. (Ich habe dabei auch eine Folie innerhalb des iPhones zerstört, aber es stellte sich heraus, dass diese wohl nicht so wichtig war.) Der Einbau war nicht schwer, da ifixit eine hervorragende Anleitung für den Einbau zur Verfügung stellt. Stilecht habe ich mich aber für iPad-App entschieden (die einem einfach nur die Anleitungen der Seite anzeigt, und somit ohne Internetanbindung nicht funktioniert).

Fazit: Lohnt sich. Ich kann mich nicht mehr daran erinnern, dass mein Homebutton jemals so gut funktioniert hat. Wie Margarine. Toll! Ausserdem ist es sehr spannend ein iPhone auseinander zu nehmen und sich die Teile anzusehen. Es ist erstaunlich wie klein das Motherboard wirklich ist.
Und auch der neue Akku ist toll. Ich muss endlich nicht mehr jeden Tag mein iPhone laden.

Hier noch ein paar Bilder von der Reparatur.

Gehäuse und Motherboard

Und hier noch zum Schluss die Akkulaufzeit vor und nach dem Akkuwechsel (allerdings ist das unfähr, weil ich gleichzeitig auch von iOS7 beta 5 auf iOS7 beta 6 umgestiegen bin.)

Posted in iPhone | Tagged , , , | 2 Comments

Aura

Seit etwa sieben Jahren habe ich zum ersten Mal wieder eine Aura mit anschliessender Migräne. Offensichtlich will mir mein Körper etwas sagen. Also erstmal Pause.

Posted in Leben | Tagged , , , | 1 Comment

Schweden

Schweden ist ein sehr faszinierendes Land. Ich war jetzt drei Mal dort und bin sehr beeindruckt. Zum einen beeindruckt mich die Natur. Es ist ein atemberaubend schönes Land. Zum anderen beeindrucken mich die Menschen. Ich habe nicht einen unfreundlichen Schweden getroffen. Und es ist egal, wo man ihnen begegnet. Man wird immer freundlich empfangen. Dabei nehmen sich die Schweden Zeit das Gegenüber ein kleines Stück kennen zu lernen (selbst wenn in der Schlange noch andere darauf warten bedient zu werden). Sie sind interessiert und zuvorkommend.

Ausserdem sprechen die meisten Schweden ein sehr gutes Englisch. Es ist keine Problem im Supermarkt, beim McDonalds oder mit der Reinigungskraft Englisch zu sprechen.

Und dann der Umgang der Schweden mit Kindern. Man sieht Kinder überall. Und sogar in eine Großstadt wie Stockholm gibt es mitten in der Stadt große Kinderspielplätze. Man sieht viele junge Familien mit Kindern. Oft sind die Kinder in einem sehr kurzen zeitlichen Abstand geboren.
Im Vasa-Museum in Stockholm ist uns aufgefallen, dass “Kinder” bis 18 Jahre keinen Eintritt bezahlen müssen. Auf jeder Toilette gibt es Wickelmöglichkeiten. In vielen Gärten sieht man kleine Häuschen, die offensichtlich zum Spielen für die Kinder dort hingestellt wurden.

Ich bin sehr beeindruckt. Wenn wir mutiger wären würden wir ernsthafter über eine Auswanderung nachdenken.

Posted in aus dem taeglichen Leben | Tagged | 4 Comments

Es steht doch drauf

Immer wieder gibt es ein grosses Hallo, wenn eine Organisation wie foodwatch “herausfindet”, dass in Supermarktpesto keine Pinienkerne und kaum Olivenöl enthalten sind. Die Medien greifen das dann dankbar auf und die Menschen sind geschockt, dass sie so hinters Licht geführt wurden.

Denen würde ich am liebsten immer ins Gesicht brüllen: ES STEHT DOCH DRAUF!

Dreht man nämlich das Glas so, dass man die Zutatenliste lesen kann, so findet man dort folgende Angaben: Sonnenblumenöl 46,1%, Basillikum 31%, Cashewkerne, natürliche Aromen, Grana Padano Käse g.U 4,6%, Salz, Pecorino Romano Käse g.U. 1,2%, Zucker, natives Olivenöl extra 1%, Knoblauch

Diese Zutatenliste zeigt (vielmehr schreit) sehr deutlich, was mit diesem Produkt bezweckt wird. Es geht hier nicht darum, dass die Verbraucher Nahrung bekommen. Es geht nicht darum, dass der Hersteller aus Überzeugung ein hochwertiges Produkt in den Handel bringt. Nein, es geht darum die minderwertigen Zutaten mit Zucker und Aromen so zu vermischen, dass der Verbraucher den Betrug nicht merkt. Zum Nachteil des Herstellers und zum Vorteil des Verbrauchers sind die Hersteller in Deutschland verpflichtet diesen Betrug auf das Produkt zu drucken.

Warum nutzen wir also nicht diesen Vorteil und informieren uns vor dem Essen, ob da Scheisse an uns verkauft werden soll?

Und wir sollten aufhören Lebensmittel mit Aroma zu kaufen. Durch den Zusatz von Aromen werden wir umerzogen. Erdbeeren schmecken plötzlich fad, weil wir Erdbeeraroma mit Erdbeeren verwechseln. Das wiederum freut die chemische Industrie, das sie uns so unnötige Dinge verkaufen kann, die wir sonst nicht kaufen würden.

Und jetzt alle: Wir sind mündige Verbraucher!

Posted in aus dem taeglichen Leben, Umwelt | Tagged , , | 2 Comments

Ehrfurcht

Erde und Mond; Image credit: NASA/JPL-Caltech/Space Science Institute

Dieses Bild wurde vom NASA-Sattelit Cassini am 19 Juli 2013 aufgenommen.

Posted in Leben, Photo, Umzug | Tagged , , | 1 Comment

Händewaschen war gestern

Sagrotan bewirb in einer Werbung einen Seifenspender, den man nicht mehr anfassen muss. In der Werbung erfährt man auch, dass man ohne diese überragende Technik nicht hygienisch leben kann.

In meinen Augen wird dabei aber deutlich, dass Sagrotan seinen eigenen Produkten nicht vertraut. Nehmen wir mal an, das Produkt käme mit einem gewöhnlichen Seifenspender. Ich würde mir also mit dem Seifenspender etwas Seife auf die Hand geben und ANSCHLIESSEND die Hände waschen. Wenn ich nun also aus hygienischen Gründen den Seifenspender nicht mehr anfassen soll, so heisst das doch, dass die Seife nicht wie versprochen die Bakterien tötet. Somit haben wir gerade eine sehr dreiste Werbelüge enttarnt. Sie ist besonders zu verachten, weil sie mit den Ängsten von Eltern spielt. In diesen Werbespots werden immer Kinder gezeigt.

Das ist in weiterer Hinsicht besonders verachtenswert. In einer Einführung zur Hygiene und Desinfektion in Haushalt und Klinik der Helmholtz-Gemeinschaft wird vor den negativen Folgen des unnötigen Einsatzes von antimikrobiellen Substanzen gewarnt. Dazu gehört die mögliche Selektion resistenter Bakterienstämme, eine vermehrte Umweltbelastung und die erhöhte Wahrscheinlichkeit Allergien zu entwickeln. Die Werbung empfiehlt also in Wirklichkeit aus Profitgier den Eltern ihren Kindern zu schaden.

Posted in Leben, Umwelt, Uncategorized | Tagged , , | 2 Comments

Vegane Eltern

Meine Frau ist schwanger und wir sind beide vegan. Als vegan lebender Mensch muss man sich allerlei anhören.

Des Öfteren haben ich schon die Frage gehört, ob ich meinem Kind die Wahl lassen werde, was es isst. Natürlich werde ich ihm die Wahl lassen. Ich werde ihm aber keine Dinge zu essen geben, die meiner Meinung nach nicht zum Essen geeignet sind. Dazu zählen Honig, Milchprodukte, Fleisch, Fisch, Insekten, Gelatine, Eier oder kurz nicht-vegane Dinge.

Diese Antwort wird fast immer von der nächste Frage gefolgt: “Glaubst du nicht, ein Kind sollte selbst entscheiden, was es isst?”
Meine Antwort: “Ganz eindeutig: NEIN! Glaubst du das etwa?”
Bei den Giftnotrufzentralen rufen immer wieder Eltern an, weil ihre Kinder beispielsweise Zigaretten gegessen haben (Quelle). Sollte ich meinem Kind jetzt also dabei zu sehen, wie es die Zigarettenstummel isst, die es auf der Strasse findet? Oder sollte ich zusehen, wie es Hundekot zu sich nimmt, weil es ja selbst entschieden hat das zu essen?
Nein, natürlich nicht. Das Kind weiss noch nicht, was man bedenkenlos essen kann und was nicht. Meine Aufgabe als Vater ist es unter anderem ihm genau das beizubringen. Meiner Meinung nach kann man Milchprodukte, Eier, Fleisch, Fisch, Insekten, Gelatine und Honig nicht bedenkenlos essen. Mein Kind würde sich, der Umwelt und nicht zuletzt den Tieren schaden ohne es zu wissen. Diese unwissentlich gegangene Grausamkeit kann und will ich ihm nicht zumuten.

In einem Alter, in dem Kinder ein Mitgefühl entwickeln, haben sie oft eine gefestigte Meinung zu diesem Thema. Ich habe nicht nur einmal von Veganern gehört, dass sie gebeten wurden doch bitte dem Kind nicht zu erzählen, was es da gerade gedankenlos in sich reinstopft.

Wenn mein Kind einmal alt genug sein wird das zu verstehen, werde ich versuchen ihm zu erklären, warum wir nicht all das essen, was andere Menschen essen. Ich denke mein Kind wird mir beipflichten, dass das gute Gründe sind. Irgendwann einmal wird es sich vielleicht von seinem Taschengeld einen Hamburger kaufen. Das ist mir klar. Von mir wird es aber keine nicht-veganen Dinge bekommen. Und ich denke es wird mich verstehen.

Posted in Umwelt, Vegan | Tagged , | 1 Comment

Wie (fast) alles begann

Im Zuge meiner heute startenden Mitgliedschaft bei den Iron Bloggern ADN habe ich mal in den alten Post meines Blogs gestöbert und folgenden Eintrag gefunden: iPod touch Applikation

Mit diesem Blogposts (bzw mit dem Grund für den Post) fing meine Karriere als iOS-Entwickler an. Damals habe ich mir neben dem Beruf Objektive-C und die Entwicklung von iPhone-OS-Applikationen beigebracht, weil ich gerne eine physikalische Formelsammlung auf meinem iPod touch haben wollte.

Ein paar Apps und zwei Jobs später verdiene ich jetzt mein Geld mit dem Programmieren von iOS-Applikationen. Die letzten vier Jahre waren sehr aufregend und ich habe sehr sehr viel gelernt (und auch einiges verlernt). Und ich bin glücklicher mit dem was ich jetzt mache. Ich bin so glücklich damit, dass ich auch in meiner Freizeit fast nichts anderes mache. Mein derzeitiges Freizeitprojekt ist hAppy, ein iOS-Client für ADN. Und da schliesst sich der Kreis, denn das war mein erster Beitrag als Iron Blogger ADN.

Posted in Development | Tagged | 1 Comment

Accessibility Challenges in the Development of hAppy

What is hAppy?

hAppy is an App.net (short ADN) client for iPhone (You can download it here). I joined ADN because Marco Arment tweeted that he backed the project and it sounded very interesting. The idea to have an infrastructure with which many different clients and moreover a lot of new and exiting ideas could be realized fascinated me. I thought about what people did with the limited Twitter API. The many different clients and ideas within the clients. What would happen if they where given an API with much more possibilities.

Here is what I learned in making hAppy accessible.

Accessibility Challenges

Apps for iOS can easily be made accessible. For a start I recommend to read the great articles by Matt Gemmell and Keith Harrison.

Accessibility is not a feature, moreover missing accessibility is a bug.

The Easy 95%

Storyboard quick get complicated.

hAppy was developed with the use of storyboard. (By the way, I strongly recommend not to use storyboard. At the current stage it is a pain in the ass.) The picture shows how complex storyboards can get for such an small app like hAppy.

But on the plus side, using storyboards roughly 95% of the accessibility implementation can be made with Interface Builder. You select the object you want to make accessible and set the accessibility label, the accessibility hint and the accessibility traits. The rules you should follow when implementing those are in detail described by Matt Gemmell.

Real World Example: The Reply Button

In hAppy one can select a post to show actions in conjunction with the selected post (like reply and repost). These action buttons are custom buttons with images and therefore not accessible by default. Here is what I had to do to make the reply button accessible:

Open the storyboard in Interface builder. Select the reply button and open the identity inspector. Set the accessibility label to “Reply” and the accessibility hint to “Replies to the selected post.”. The accessibility traits are already set because the button is an instance of UIButton. Don’t forget to make accessibility enabled if it isn’t already.

The following pictures shows how this looks like in Xcode 4.5.

The selected reply button and the identity inspector.

The rest of the action buttons can be made accessible with similar steps. But how do visually impaired users get informed that the buttons appeared? Apple implemented a notification one can send to inform the system about those changes.
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil);. When the system receives this notification an acoustic signal informs the user. In hAppy I call this function after I have inserted or removed the cell with the action buttons from the table view.

Most of the UI has been made accessible using this approach. Let’s now talk about the remaining 5%.

The “Hard” 5%

The Post Text

The post texts in hAppy are drawn with Core Text and NSAttributedString because the links, usernames and hashtags should be highlighted and clickable. Unfortunately this means the post texts are not accessible by default. But as it turned out I only had to implement one line of code to change that:

self.accessibilityValue = self.text;

But there is a problem with the clickability of the post text elements. Visually impaired users navigate between clickable elements with swipes (Go, try it!). I could have implemented all the clickable elements as attachment to the post. The visually impaired user could then have accessed the clickable elements by swiping though them element by element. I discussed this implementation with Marco Zehe, an accessibility evangelist and QA engineer at Mozilla, who was so kind to test hAppy. He pointed out that this could be frustrating as the user should have to swipe through all those elements even if he/she would only want to reply to the post. Marco had the idea to make the clickable elements accessible in the action menu. An additional button would have destroyed the UI and therefore I have implemented an invisible but accessible button, which can barely be seen in the picture.

The invisible button in the upper left corner of the action cell.

The selection of this button loads a table view with three sections containing the clickable elements. I have added the information about the number of the clickable elements in each header of the different sections.

The metadata screen only shown to visually impaired users.

But there is another problem with the clickable elements in the posts. If VoiceOver is active one can select the text of a post and VoiceOver (or Siri) reads the text. A double tap anywhere on the screen should then open the action menu for this post. But when the user double taps, VoiceOver simulates a tap in the middle of the selected item. Some posts have a clickable element at this position. As a result, instead of showing the action menu, a profile page or a web page is shown. UIAccessibility allows the developer to change this simulated point but this doesn’t help in this case as the clickable elements can be anywhere in the post.

To fix this issue I use the focus feature of VoiceOver. VoiceOver sends a notification to the item which enters its focus and another to the object which leaves the focus. I use these notifications to set a Boolean property of the text view to reflect the focus of VoiceOver. With this addition I can disable the clickable elements in the post when the focus is on the post text.

A post in ADN is not only the text. The user also wants to know who posted and when. This is straight forward in VoiceOver. With the information from the API the app creates a label for the post cell. The time information is parsed to time since post creation. In the user interface I use the abbreviations m, h and d for minute, hour and day. For VoiceOver I convert this to the corresponding words. As a feature I also give the information with which client the post was created. Therefore a typical post cell information could be “dasdom posted three minutes ago via hAppy.”. A swipe to the right would then result in VoiceOver selecting the posted text and reading it aloud.

The Profile Page

The first version of the profile page included a floating view with the cover image and action buttons (like follow, mute, show followers) on top of a table view. As it turned out, in this implementation the profile wasn’t accessible at all. VoiceOver wasn’t able the select the action buttons on the floating view one after another. It selected the first action button and switched with the next swipe to the last element of the table view. After I changed the floating view into a table view header everything was fine. The drawback is that I had to change the design to make the app accessible. But I already have another idea how I can accomplish the desired design and keeping the accessibility. The idea is to put the action button in a table view section header. I will try this soon and update this section if the result is what I expect.

I have seven action button on the profile page. To keep the UI clean they are laid out in a horizontal scroll view. The design does not allow to inform the user that there is a scroll view. Therefore I have added a button in the navigation bar with toggles the scroll positions of the scroll view. This has the big advantage that it can easily be made accessible. The user interface changes when the button is selected. Therefore I call again the function UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil);.

Conclusion

Accessibility is not a feature, moreover missing accessibility is a bug. Most of it is quite easy to implement and it shouldn’t take much time (especially when you are using a lot of Apple provided user interface elements). And you get a bonus. If your app is fully accessible you can use UIAutomation to make automatic touch based tests of your app with Instruments. This helps to find bugs and make regression test of your user interface.

As a developer you should switch on VoiceOver from time to time and inspect your and others apps. Get a feeling what is important when you can’t see the user interface. Learn from others how they have mastered difficult accessibility tasks.

Tell other developers how easy it is to make apps accessible. Show them examples of accessible and not so accessible apps. Convince your boss that this is important and will help the company to become a good citizen in the app business.

Acknowledgements

I would like to thank Marco Zehe for testing hAppy and giving me a lot of very useful feedback and input. And I would also like to thank Matt Gemmell for testing and for the nice article about hAppy on his blog. I was thrilled and I am flattered!

Posted in iOS-Entwicklung, iPhone | Tagged , , | 2 Comments