Kategorien
iPhone/iOS

Grundlagen für die iPhone Entwicklung (IOS)

Apple macht es einem nicht einfach, die Firma zu mögen. Besonders als Entwickler für das (wirklich tolle) iPhone werden einem verschiedenste Stolpersteine in den Weg gelegt:

  1. Entwickelt werden darf nur auf einem MAC und der kostet bekanntlich. Ältere und erschwinglichere MACs sind ausgeschlossen, weil ein aktuelles MAC OS installiert werden muss (Minimum 10.5 für Xcode 3.26).
  2. Man muss eine Lizen kaufen für 100$ (im Jahr!), wenn man seine Apps, bevor man sie in den App Store stellen will, auch mal auf seinem iPhone testen will.
  3. Das iPhone kostet einen Haufen Asche  🙂
  4. Sprache Objective C ist noch aus den 80er Jahren und das merkt man auch, trotz objektorientiert, ich sag nur Garbage Collector und Fehlermeldungen, mit denen man nichts anfangen kann (manchmal einfach auch garkeine Fehlermeldung, oder nur den sigbert).
  5. Soll die App auch im App Store bleiben, muss die Entwicklerlizenz jedes Jahr neu gekauft werden, d.h. 100$ pro Jahr Gebühren. Allerdings kann man dafür so viel Apps reinstellen wie man will.
  6. wenn alles überlebt ist: Der App Strore
Kategorien
iPhone/iOS

Worauf muss geachtet werden um die App in den App Store zu bekommen?

Wenn man die Grundlagen heil ohne Genickschuss überstanden hat, muss man auch noch persönlich an Apple vorbei. Bei der Lektüre der „App Store Review Guidelines“ von Apple, aus dem alle folgenden Zitate stammen, bin ich schließlich auf so lustig-dreiste Dinge gestoßen, dass ich das posten musste 🙂

Aus der Einleitung:

  1. „Wir (Apple) haben mehr als 350.000 Apps im App Store. Wir brauchen keine langweiligen Apps“ (Original: Fart apps, was man mit langweilig oder Pups übersetzen kann).
  2. Wenn die App nichts Praktisches macht oder nur kurzweiliges Entertainment bietet, kann die App abgelehnt werden.
  3. Apps, die zum Rauchen auffordern, werden abgelehnt.
  4. Jede App, die eine andere Plattform (als den App Store, Ovi-Store z.B.) nur benennen, fliegen raus.
  5. Wenn die App nur vorschlägt das iPhone nach der App Installation neu zu starten, kommt sie erst garnicht dazu 🙂
  6. Und der Hammer: Die Geodaten (wo befindet sich der User gerade), dürfen nur  benutzt werden, wenn es relevant für die App ist. Demnach müsste Apple wohl selber aus dem App Store fliegen 🙂
  7. Selbst, wenn das Design oder die Usability nicht sehr gut ist, gibts Stress, Zitat: „If your user interface is complex or less than very good, it may be rejected.“
  8. Verboten ist auch, den User dazu zu animieren, sein iPhone zu beschädigen: „Apps that encourage users to use an Apple Device in a way that may cause damage to the device will be rejected.“
  9. Schade ist Folgendes 🙂 : Apps containing pornographic material, defined by Webster’s Dictionary as „explicit descriptions or displays of sexual organs or activities intended to stimulate erotic rather than aesthetic or emotional feelings“, will be rejected. Was kann den dieser „Porno“ dafür?
  10. Die App darf nicht zum Trinken am Steuer auffordern 🙂

Die Liste kann ich jedem nur empfehlen. Ich bin gespannt, ob meine App, trotz dieser sehr hohen Barrieren, es in den App Store schafft, besonders Punkt 8 bis 10 machten einige Änderungen notwenig. Tschakka.

 

Kategorien
Diverses

Auch Microsoft muss mal live debuggen

Auf meinem Webmail Account von Hotmail habe ich diese interessante Beobachtung gemacht: Eine kleine Debugausgabe des javascripts in <pre>-Tags. Kurze Zeit später war dann wieder das richtige Messenger Fenster zu sehen (Links normal, rechts mit Debug ausgabe):

Hier der Code, Achtung fehlerhaft 🙂

Kategorien
MySQL VBA Excel

Daten exportieren/importieren von Excel 2007 nach MySQL in UTF-8

Um Daten von MS Excel 2007 zu exportieren und in eine MySQL Datenbank zu importieren sind ein paar sorgfältige Schritt notwendig.Folgende Vorgensweise ist zu empfehlen, um die Kodierung der Daten (sichtbar durch fehlende äöüß wird zu ? oder noch schlimmer:) ) des Exports aus Excel nach MySQL zu gewährleisten.

  1. Kopieren der Daten nach MS Excel
  2. in eine Tabellenform bringen
  3. Abspeichern als csv-Datei
  4. Öffnen der csv in einem Texteditor (ich verwende Notepad++)
  5. kontrollieren der letzten Zeilen, dort schleichen sich generell leere Zeile und unnötige Semikolons ein
  6. Kodierung der Datei nach UTF-8. Dazu in Notepad++: Kodierung->Kodierung zu UTF-8
  7. Anlegen der MySQL Datenbankstruktur in PHPMyAdmin, Kodierung der Text-Zeilen: utf8_general_ci
  8. Importieren auswählen, Kodierung: UTF-8, csv-Datei angeben
Kategorien
Diverses

Was ist die dunkle Marterie, ein Vorschlag

Als ich mir eine Dokumentation zum Thema unser Universum angeschaut habe, ist mir die folgende Idee gekommen:

Die dunkle Marterie hat die Eigenschaft, die gravitative Wechselwirkung mit sichtbarer Marterie zu bewirken, d.h. sie dient dazu die bestehenden Umlaufbahnen der Planeten zu erklären. Ohne diese Marterie würden sich die zu hohen Umlaufgeschwindigkeiten in der Randbereiche von Galaxien nicht erklären lassen (wikipedia-wissen).

Es gibt verschiedene Annahmen, was diese dunkle Marterie ist, z.B. ein undurchsichtiges Gas oder eine Staubwolke usw.

Mein Gedanke dazu ging in die Richtung, was wäre, wenn die dunkle Marterie dadurch erklärt wird, dass ein Vakuum, wenn es eine bestimmte Ausdehnung erfährt, neue pysikalische Eigenschaften erlangt, wie z.B. die Undurchdringbarkeit des Lichtes und gravitative Eigenschaften.

Der Vorteil ist, dass man keine Experimente durchführen kann, weil die Theorie besagt, dass das Vakuum genügend groß seien muss 🙂

Ich bin leider kein Physiker, würde mich mal interessieren, was die dazu sagen, Diskussion eröffnet.

Kategorien
iPhone/iOS

iOS Sound wird im Simulator abgespielt, aber nicht auf dem Test Device

Wer die folgende Fehlermeldung auf seinem Device (iPhone) bekommt, obwohl alles ohne Probleme lief im Simulator, der begibt sich auf eine unendliche Reise durch das Internet.

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:isDirectory:]: nil string parameter'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x3101b64f __exceptionPreprocess + 114
    1   libobjc.A.dylib                     0x34b36c5d objc_exception_throw + 24
    2   CoreFoundation                      0x3101b491 +[NSException raise:format:arguments:] + 68
    3   CoreFoundation                      0x3101b4cb +[NSException raise:format:] + 34
    4   Foundation                          0x34869e2f -[NSURL(NSURL) initFileURLWithPath:isDirectory:] + 74
    5   Foundation                          0x3487c9cb +[NSURL(NSURL) fileURLWithPath:isDirectory:] + 34

Der Code sieht so aus:

NSURL* aFileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"beep" ofType:@"wav"] isDirectory:NO];
AudioServicesCreateSystemSoundID((CFURLRef)aFileURL, &_scanSuccessSound);

Dabei ist die Lösung relativ einfach. Es gibt ein Kontextmenü, in dem man einstellen kann, welcher Dateien auf das Device kopiert werden sollen. Dieses ist erreichbar über: rechte Maustaste auf Grups & Files oben links in Xcode und dann sollte das passende Häckchen dort gemacht werden.

iphone_nsurl fileurlwithpath_nil string

Eine andere Fehlerquelle ist, dasss die Datei nicht in das Projektverzeichnis(Destination Folder) kopiert wurde, dies kann man durch löschen und erneutes einfügen der Datei in Xcode mit dem passenden ersten Häckchen wieder bereinigen.

Kategorien
SEO WordPress

Blog Katalogdienste nutzen bei WordPress um den Traffic zu erhöhen

Damit die eigene Meinung auf der ganzen Welt ankommt und nicht nur der eigen Freundeskreis von der verbalen Ergüssen genervt wird, bieten sich Katalogdienste an, die automatisch angepingt werden, wenn neue Artikel zur Verfügung stehen. Diese Dienste nehmen dann ihre Texte in ihre Suchmaschinen und Webseiten auf. Dabei muss beachtet werden, dass die richtigen Katalogdienste ausgewählt werden, weil Google gern Artikel bei anspruchlosen abstraft.

Eingefügt werden können diese Dienste unter Einstellungen->Schreiben->Update Services.

Eine Übersicht ist bei WordPress erhältlich.

Kategorien
WordPress

Bilder Upload bei WordPress

Bei einer Fehlermeldung wie

Das Verzeichnis xyz/uploads kann nicht angelegt werden. Ist das übergeordnete Verzeichnis durch den Server beschreibbar?

Sollte nicht wie oft geraten, die Schreibrechte der Ordners wp-content auf 777 gesetzt werden, sondern ein Verzeichnis namens uploads in diesem Ordner angelegt werden und dieser dann mit chmod 777 Rechten ausgestattet werden, weil sich ansonsten große Sicherheitslücken auftuen.

Kategorien
IT-Recht WordPress

Google Analytics für WordPress und das deutsche Recht

Mitlerweile hat jeder schon davon gehört, dass Google Analyticin seiner Grundkonfiguration gegen das deutsche Recht verstößt. Nur die Anonymisierug der IP-Adressen schützt den Webmaster vor der Abmahnung. Dazu muss bei WordPress darauf geachtet werden, dass passende Google Analytics Plugin zu installieren, weil nur wenige die Anonymisierug unterstützen, weil es in allen anderen Länder vollkommen legal ist, die IP-Adresse des Besuchers zu speichern.

Ein Plugin, welches die für Deutschland nötigen Funktion beinhaltet und ansonsten auch sehr empfehlenswert ist, ist Google Analytics für WordPress.

Die Annonymisierung kann etwas umständlich in den Einstellungen „Show advanced settings“ Häckchen setzen und dann ganz, ganz nach unten scrollen und „Anonymize IP’s“ Häckchen setzen.

Natürlich darf auch der entsprechende Warnhinweis im Impressum nicht fehlen.

Kategorien
SEO WordPress

Link-Sculpting ohne nofollow durch Link Maskierung mit Seo Ultimate

Klingt kompliziert, ist es aber nicht. Link-Sculpting bedeutet seine Link Struktur seiner Webseite so zu optimieren, dass die  von der Seite weg zeigenden Links entkräftet werden. Da mit jedem Link nach aussen mehr Gewicht auf den Linkpartner und weniger Gewicht auf die eigene Seite fällt, gilt es die ausgehenden Links zu optimieren.

Das Seo Ultimate Plugin von WordPress bietet dafür das geeignete Werkzeug: die „Link masks“, die unter jedem Artikel eingeblendet werden. Damit lassen sich Links erzeugen, die für die Suchmaschine auf die eigene Webseite zeigen und durch einen .htaccess Redirect für den Besucher das gewünschte Ziel ansteuern. Dabei wird darauf geachtet, dass der virtuelle  /go/ Ordner mit einem „302“ Redirect Moved Temporarily weiterleitet, den die Bots nicht weiter verfolgen.

Beispiel normaler Link: Sehenswürdigkeiten Berlin

Beispiel maskierter Link mit Redirect: Sehenswürdigkeiten Berlin

Zu Verdeutlichung habe ich mir im Firebug die Funktionsweise genauer angeschaut, allerdings muss man dafür sehr schnell klicken können oder Internet bei der Telekom haben, um rechtzitig vor dem Ausführen des Redirects das Folgende sehen zu können:

firebug_redirect_302_link_mask_sculp
firebug redirect 302 link mask sculp

Es wird also wirklich ein 302 Redirect gemacht, ausgelöst durch die Link Maskierung. Danach folgt ein 301 Redirect, der durch die .htaccess auf dem Server ausgelöst wird und die Anfrage von www.wo-bin-ich.de auf wo-bin-ich.de suchmaschinenfreundlich weiterleitet.