Kategorien
MySQL

MySQL SELECT Daten, die nicht älter als x Tage/Stunden/Minuten sind

Wenn man eine Spalte vom Typ timestamp hat und nur Daten eines bestimmten Alters selektieren will,  kann man dies in MySQL tun mit der DATE_SUB Funktion:

SELECT * FROM ... WHERE  timestamp > TIMESTAMP(DATE_SUB(NOW(), INTERVAL 2 hour))

Damit werden nur Daten selektiert, die nicht älter als eine Stunde sind. Das gleiche funktioniert bspw. auch mit Tagen:

SELECT * FROM ... WHERE  timestamp > TIMESTAMP(DATE_SUB(NOW(), INTERVAL 2 day))

und  Minuten:

.SELECT * FROM ... WHERE  timestamp > TIMESTAMP(DATE_SUB(NOW(), INTERVAL 10 minute))

Eine andere Möglichkeit wäre, PHP dafür zu benutzen, aber aus Performance Gründen sollte man immer MySQL vorziehen.

Kategorien
MySQL

MySQL Duplicate entry ‚1‘ for key ‚PRIMARY‘

Wenn man eine Fehlermeldung bekommt wie

Duplicate entry '1' for key 'PRIMARY'

Dann sollte man den Eintrag entweder mit UPDATE (beste Variante)

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

oder einfach nichts verändern in der Datenbank entweder mit

INSERT IGNORE INTO table (a,b,c) VALUES (1,2,3)

Wobei hier auch mögliche Fehlermedlungen unterdrückt werden. Achtung!

Kategorien
MySQL

MySQL speichert immer 2147483647 ab

Die Lösung ist ganz einfach, die 2147483647 ist der maximale Wert einer int-Variablen in MySQL (231 − 1). Wenn versucht wird in eine int-Spalte einen größeren Wert zu schreiben, so speichert MySQL immer dieses Wert ab, anstelle des gewünschten, größeren Wertes. Dann sollte man den Datentyp bigint nehmen, der Zahlen bis 9223372036854775807  zulässt (signed) oder auf unsigned (nur positive Werte, reicht bis 4294967295) umstellen.

Kategorien
SEO

Google Panda Update SEO

Google hat mit seinem neusten Update ihres Ranking Algorithmusses den Kampf gegen schlechten und doppelten Inhalt aufgenommen.

Leider funktioniert das sehr gut, wie ich auf meiner Webseite wo-bin-ich-jetzt.de festellen musste. Am 12.8.2011 wurde das Update in Deutschland aktiviert und führte auf meiner Seite prompt zu einem Einbruch der Google-Besucher um -80%, weil dort ausschließlich doppelter Content von verschiedenen APIs verwendet wird.

Eingie Kriterien für schlechte Qualität von Inhalten sind

  • zu kurze Texte oder gar kein
  • keine Strukturierung der Texte mit Auszählungen und Überschrifthierachien (h1-h5)
  • einfache Keyword Wiederholungen ohne Sätze zu benutzen

Außerdem kann Google auch die Verweildauer auf der Webseite messen, wenn User über Google suchen, auf einen Link klicken und kurze Zeit später wieder zurück sind und weitersuchen. Ich habe beobachtet, dass besonders die Seiten mit schlechter Verweildauer besonders abgestrafft worden sind.

Die Lösung kann nur sein, den doppelten Inhalt zu verändern und in verschiedene Satzformen zu skripten, um einen attrativeren Content zu schaffen. Dabei muss auch auf die Eigenheiten der deutschen Sprache wie Fälle und Ein- und Mehrzahl geachtet werden.

Kategorien
PHP Zend Framework

Design Patterns im Zend Framework

Für einen Uni Vortrag habe ich mich mit den zahlreichen Design Patterns im Zend Framework beschäftigt. Folgende Themen werden beleuchtet mit Code- Beispielen:

Gliederung:

1. MVC
2. Front-Controller
3. Singleton
4. Row-Data-Gateway und Table-Data-Gateway
5. Registry

Download:

zend_framework_design_patterns

Kategorien
iPhone/iOS

Probleme mit dem Apple Application Loader

Die hochzuladene .app Datei befindet sich im Ordner Projekt-Name/Build/foo.app. Diese muss gezippt werden und wird dann akzeptiert vom Loader. Um vorab zu testen, welche Probleme es gibt, sollte man Button links oben, einstellen: Active Configuration->Release. Der Button ist derselbe, bei dem man auch zwischen Simulator und Device wechseln kann.

Wenn meine seine App für Apple bereitstellt zum Testen und zum ersten Mal mit dem Application Loader hochlädt, kann es zu folgenden Problemen kommen:

application executable is missing a required architecture At least one of the following architecture(s) must be present: armv6

Dieser Fehler kann nur mit einem Versionswechsel des Application Loaders verhindert werden. Wer Version 1.4.1 hat sollte sich 1.4 oder Application Loader 1.3 installieren.

An dieser stellen fängt Apple auch gleich an zu rummeckern, dass das Icon in 57×57 Pixel groß und als png vorliegen muss. Der Sinn entzieht sich total, weil Icons in der Größe auf dem iPad und iPhone4 richtig pixelig aussehen. Deswegen ist zu empfehlen mehrer Icons anzulegen in den folgenden Größen:

57×57 (iPhone), 114×114 (iPhone4), 72×72 (iPad) und 512×512 (wer weiss, was noch kommt)

Kategorien
iPhone/iOS Mobil

Wie stelle ich meine App in den App Store Anmeldung

Wenn ihr eine App programmiert habt und das gute Stück in den App Store uploaden wollt für die ganze Welt,müsst ihr euch einem Account vom Apple Developer Programm besorgen. Dieser kostet 99$ pro Jahr und es sollte beachtet werden, dass Apple die App aus dem App Store schmeist, wenn der Account nicht bezahlt wird jährlich.

Die App muss danach auf ITunes Connect registriert werden:

  1. App Name: wird nur im App Store angezeigt.
  2. SKU Number: selbst ausgedachte ID für die App
  3. Bundle ID: im apple developer center zu erstellen
  4. App Beschreibung Plain ohne HTML (max 4000 Bytes)
  5. Keywords für die Suche, sehr wichtig. Tipp: von Google Analytics Keywords inspirieren lassen (max 100 Bytes, entspricht ca. 10 Keywords)
  6. 2 Kategorien, von 20 möglichen, in denen die App erscheinen soll z.B: Lifestyle oder  Utilities
  7. eine Support Webseite und/oder eine allgemeine Webseite über die App (beides optional)
  8. Screenshots der App, die im App Store angezeigt werden sollen. vom iPhone und/oder iPad
  9. ein Logo für den App Store in 512×512 Pixel und mindestens 72dpi

Der App Code kann konfortabel mit dem Xcode Application Loader (/Developer/Applications/Utilities/Application Loader.app) hochgeladen werden.

Bei Problemen lesen Sie Xcode Application Loader

Kategorien
iPhone/iOS

IOS überprüfen, ob eine Kamera vorhanden ist

Da die Apps auf allen IOS Geräten funktionieren müssen, wozu auch der iPod Touch gehört, der keine Kamera in den älteren Versionen enthält, sollte Folgendes beachtet werden:

  1. Bei notwendiger Verwendung der Kamera innerhalb der App, muss in der foo-Info.plist ein Vermerk unter Required device capabilities gemacht werden. Dann wird die App nur für Geräte installiert und angezeigt, die eine Kamera haben.
  2. Bei einer möglichen Verwendung der Kamera, sollte dies im Code geprüft werden:
        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == NO){
            NSLog(@"Kamera nicht vorhanden");
        }
        else{
            NSLog(@"Kamera vorhanden");
        }
Kategorien
CodeIgniter Framework SEO

$_GET Variablen in CodeIgniter und SEO

CodeIgniter hat aufgrund der Sichheitsprobleme von Get-Variablen dieses standmäßig deaktiviert, d.h. sie werden überschrieben beim Starten der Webseite.

Ein Möglichkeit GET-Variablen trotzdem zu nutzen und gleichzeitig suchmaschinenfreundliche URLs zu erzeugen ist:

$this->uri->segment(3)

Dieser Befehl gibt bei einer URL namens:http://www.foo.de/1/2/3/ den Wert 3 zurück.

Der Vorteil ist, dass keine Namen-Wert-Paare mehr in der URL befindlich sind, sondern nur noch die Werte, was die Länge der URL verkürzt und sehr seo freundlich ist. Der Nachteil ist, dass die Reihenfolge sich natürlich verändern kann und es dann zu Problen kommt.

Kategorien
iPhone/iOS WordPress

iPhone Oberfläche für WordPress

Mit dem Plugin WPtouch ist das kinderleicht erledigt und funktioniert bestens. Gerade habe ich das Plugin für meinen Blog installiert und bin begeistert.

20110819-101522.jpg