Creative Commons Lizenzvertrag

Dienstag, 5. Februar 2013

Blogger Tipp Nr.9 - Letzte Kommentare

Oftmals wurde ich gefragt wie ich die letzten Kommentare in Blogger anzeige. Dis ist ganz einfach. ich habe einfach ein HTML/JavaScript Gadget hinzugefügt und es mit folgendem Quelltext versehen:

Donnerstag, 24. Januar 2013

Telefonieren mit dem Galaxy Tab 10.1N

Das Samsung Galaxy Tab 10.1N (P7501) hat zwar ein GSM Modul, aber damit kann man nicht telefonieren. Gleiches gilt für das Galaxy Tab 10.1 (P7500). SMS kann man damit allerdings versenden und empfangen. Die neueren Modelle Tab 2 erlauben allerdings Telefonate. Wenn man SMS versenden und empfangen kann dann sollte es eigentlich auch möglich sein zu telefonieren. Ein wenig googlen und man findet eine Lösung. Die Entwicker von xda-developers haben eine Lösung die recht einfach ist. Sie funktioniert sowohl mit dem Original-ROM als auch mit Custom-Roms. Einzige Vorraussetzung ist ein Tablet mit einen freien Recovery. Wer noch kein entsprechendes Recovery hat muss sich dieses als erstes installieren. Ich benutze ClockworkMod und habe es mit Odin geflasht.

Nun müsst ihr nur 2 Zip-Dateien laden wobei eine abhängig ist welche Firmware ihr verwendet. Die beiden Dateien findet ihr auf xda-developers. Dies ladet ihr am besten ins Wurzelverzeichnis der (eingebauten) SD-Karte eures Tablets. Danach nur noch euer Gerät im Recovery Modus starten. und dann "Install from SD Card" auswählen. Dann die beiden Dateien auswählen und installieren. Dabei hat es sich als praktisch erwiesen zuerst CWM_I9103XXLQ3_Modem.zip zu installieren. Danach die Voice_Call_Enable_XXX.zip installieren, wobei XXX für euer verwendetes ROM steht. Danach müsst ihr euer Tablet nur neu booten und schon habt ihr ein Galaxy Tab 10.1 bzw. 10.1N welches eine Telefonfunktion besitzt. Wer ganz sicher gehen will kann vorm Reboot noch ein "Wipe Cache & Dalvik Cache" durchführen, aber dies ist im Prinzip nicht notwendig. Bei mir funktionierte es problemlos ohne.


Samstag, 19. Januar 2013

Google+ als RSS-Stream

Google+ bietet ja von Hause kein RSS an. Es gibt aber viele Seiten die euren Stream in RSS wandeln. Wer aber will kann dieses auch anders lösen. Der Google+ Stream kann per API abgerufen werden und man erhält die Daten als JSON-Objekt. Dieses ist nur in das RSS-Format umzuwandeln. Die Umwandlung geht wiederum recht einfach, entweder ein kleines Script in einer Sprache eurer Wahl auf eurem Server oder auch  clientseitig per Javascript ist dies möglich. Beachtet dabei aber das die Aufrufe der Google+ API limitiert sind. Wem dieses Limit nicht ausreicht der kann dieses Limit kostenpflichtig erhöhen. 

Eine weitere Möglichkeit ist es die Yahoo-Pipes zu benutzen. Ich habe diese benutzt und rufe die RSS-Ausgabe der Pipe dann mit Feedburner ab und Poste dann in Twitter. Das Limit erreiche ich mit dieser Variante nicht. 

In einer neuen Pipe braucht man nur 3 Elemente. Das erste Element ist "Fetch Data" und holt die Daten von Google+ und  gebt als auszuwertenden Pfad "items" an. Die Adresse für die Daten lautet: https://www.googleapis.com/plus/v1/people/EUREGOOGLEPLUSID/activities/public?alt=json&pp=1&key=EUERKEY

EUREGOOGLEPLUSID ist dann die entsprechende ID für euren Account oder auch für eure Seite, welche ihr bei Google+ besitzt. EUERKEY ist das entsprechende Zugriffstoken welches ihr auf der Google API Console erhaltet. Dazu müsst ihr dort ein Projekt anlegen und die Google+ API einschalten und dann den entsprechenden Key generieren.

Das zweite Element in der Pipe ist "Rename" und wandelt die Namen der Einträge des empfangenen JSON-Objekts in die Namen für RSS um. Was genau umgewandelt erden muss ist im Screenshot zu sehen.

Und das dritte Element ("Pipe Output") gibt dann nur noch die Daten aus. Diese können dann per RSS abgerufen werden.

Freitag, 2. November 2012

Muss man Leser an den Blog binden?

Diese Frage stellte ich mit als ich das Wochenthema des WebmasterFriday las. Wer mich kennt weiß ja das ich mich fast nie an solchen Aktionen beteilige. Aber irgendwie kam bei mir eben die Frage auf muss man Leser wirklich an sein Blog binden? Ich meine NEIN oder doch JA. Die Frage ist eben nicht mit einen klaren Ja oder Nein zu beantworten. Es kommt meiner Meinung nach auf die Art und die Inhalte des Blogs an. Normale 081-Blogs welches die meisten ja sind, müssen Leser binden und sich darüber Gedanken machen. Spezial Blogs die nur ein Thema behandeln welches vielleicht noch sehr speziell ist brauchen sich darüber keine Gedanken machen. Da reichen die Inhalte um Leser anzulocken.

Je spezieller das Thema ist um so größer ist dieser Effekt. Zu dieser Erkenntnis bin ich jedenfalls gekommen. Mir persönlich ist es egal wer hier oder auf meinen anderen Seiten etwas liest. Schon gar nicht erwarte ich das Leser hier jeden Tag herkommen, dazu schreibe ich zu selten. Oft kommt es vor das ich nur einen Post im Monat bringe und was sollen die Leser dann in der Zwischenzeit hier? 

Manchmal verbinde ich auch meine Blogs, besonders dann wenn es Postings sind die auf mehreren Blogs stehen könnten. Dort erhalten Leser auf einem Blog nur die ersten Zeilen und beim Klick auf "Weiterlesen"  werden sie dann automatisch auf den Originalpost auf einem anderen Blog umgeleitet.

Für mich ist es wichtig das wenn ich etwas schreibe es die richtigen Leser erreicht. Und die kommen von ganz alleine wie die Analyse der Seiten zeigt. Wichtig ist nur das die Leser informiert werden wenn etwas neues geschrieben wurde. Um dies zu erreichen benutze ich soziale Netzwerke, hauptsächlich Google+ und Twitter. Facebook benutze ich dagegen relativ selten um nicht zu sagen fast nie. Zusätzlich bite ich die Inhalte noch mobilgerecht aufgearbeitet bei Google Currents an. Oftmals lohnt es sich auch gar nicht einen kompletten Post zu schreiben, dann veröffentliche ich nur ein paar Zeilen zum Thema bei Google+.

Die Analyse der Zugriffe gibt mir insofern recht das dies funktioniert indem sich die Besucherzahlen nach einem Posting ungefähr um das bis zu 100fache ansteigen. Für mich sind wichtig die Inhalte die ich publiziere und nicht die Reaktionen der Leser. Dies finden auch statt durch retweeten, 1+ geben und was weiß ich noch. Allerdings soll dies nicht heißen das mir die Leser egal sind, sondern ich will durch Inhalte überzeugen und nicht durch technische Maßnahmen. Allerdings reagiere ich auf Kommentare wenn man reagieren muss wie bei gestellten zusätzlichen Fragen. Bei reinen Zustimmungen zum Inhalt reagiere ich meistens aber nicht.

Und nun zum Schluß noch eine Nachricht die sich viele Blogbetreiber wahrscheinlich überhaupt nicht vorstellen können: Ich schließe bestimmte Usergruppen von meinen Blogs komplett aus und leite sie automatisch an das Ende des Internets. Dies werde ich allerdings noch ändern und es komplett hier realisieren. 

Samstag, 20. Oktober 2012

Android Programmierung unter Google TV

Über meine Erfahrungen mit Google TV als User hatte ich ja bereits berichtet und heute schreibe ich über meine Erfahrungen der Programmierung. Google TV ist ja im Prinzip nichts weiter als ein Android Gerät mit ein paar Besonderheiten. Ich möchte hier nicht alle Aspekte beleuchten sondern nur meine eigenen Erfahrungen bei der Anpassung von Andlin, dem Android-Client für weblin mitteilen.

Montag, 15. Oktober 2012

Google TV - Ein erster Eindruck

Seit Anfang Oktober gibt es ja die Google TV Box NSZ-GS7 von Sony offiziell in Deutschland. Nachdem ich mir vorige Woche eine direkt kaufen wollte und ich feststellen musste das sie überall bei mir in der Umgebung entweder noch nicht im Sortiment der Händler ist bzw, bei denen die sie bereits führen bereits vergriffen ist habe ich mir sie bestellt. Und heute wurde sie geliefert und ich konnte sie testen. 

Der Anschluß der Box war ganz unproblematisch. HDMI Kabel vom Sat-Receiver in den HDMI-Eingang der Box und den HDMI-Ausgang der Box in den Fernseher und dann noch den die Stomversorgung herstellen und das war es bei mir. Wer möchte kann auch noch ein LAN-Kabel zum Router verlegen, aber ich bevorzugte die WLAN-Anbindung. Als erstes kam auf dem Bildschirm eine Anleitung wie man die Batterien in die Fernbedienung der Box einlegen muss. Danach startete die Box mit dem Setup. Das war eigentlich unproblematisch. 

Nur mir ist es nicht gelungen den Sat-Receiver der Box bekanntzumachen. Damit kann ich die Fernbedienung der Box nicht für den Sat-Receiver mit benutzen. Für den Fernseher ging es allerdings ohne Probleme. Ich werde mal sehen ob ich noch ein baugleiches Gerät finde welches ich dann dort eingeben kann. Nach dem Start der Box erfolgte sogleich ein Systemupdate. Die Qualität der Ausgabe (1080p) finde ich hervorragend. Alle Funktionen sind zu meiner Zufriedenheit. Der einige Kritikpunkt an der Hardware ist die Fernbedienung, mir ist sie eindeutig zu schwer.

Was ein wirklich störend ist sind die nur wenigen vorhandenen Apps. Das ist aber kein Problem von Sony, sondern liegt daran, dass die App-Entwickler ihre Apps nicht für Google TV bereitstellen. Entäuschend fand ich allerdings dass selbst die meisten Apps von Google nicht zur Verfügung stehen. Es gibt kein Google+, kein GMail, kein Google Drive, kein Google Maps usw. Diese Funktionen muss ich eben dann über den Browser benutzen. Wenigstens ist Google Chrome vorinstalliert. Für Freunde des Fuchses gleich noch die Mitteilung auch FireFox ist nicht für Google TV zur haben. Auch die Facebook-App steht nicht zur Verfügung. Auch habe ich noch keinen Virenscanner gefunden. Insgesamt ist das Angebot an Apps also noch sehr dürftig.

FAZIT: Insgesamt gut, aber noch nicht ausgereift, es fehlen vor allen noch Apps.

Montag, 1. Oktober 2012

ShowDialog unter Android

In den Dot.Net-Sprachen gibt es die Möglichkeit mit ShowDialog() ein Programm anzuhalten bis der Dialog beendet ist. Diese Möglichkeit gibt es so ohne weiteres in Android nicht. Der AlertDialog.Builder kennt nur ein show() und diese Funktion hält das aufrufenden Programm nicht an. Um eine modale Darstellung zu bekommen ist es am einfachsten dies mir einer eigenen Klasse zu realisieren die man aus der Klasse Dialog ableitet. Für die Darstellung muss noch ein Layout in einer XML-Datei erstellt werden. Dies lasse ich hier einfach mal weg, jeder der Androidprogramme entwickelt sollte dazu in der Lage sein. Das Beispiel macht nichts weiter als zu warten bis der OK bzw. Abbrechen-Button geklickt wurde. Zusätzliche Funktionalität muss jeder selbst noch implementieren. Hier der entsprechende Quelltext:


   1:  public enum DialogResult{Cancel, Ok}
   2:   
   3:  public class InputDialog extends Dialog{
   4:      private DialogResult dialogResult;
   5:      private Handler mHandler ;
   6:   
   7:      public InputDialog(Activity context){
   8:          super(context);
   9:          setOwnerActivity(context);
  10:          onCreate();
  11:          this.setTitle(context.getString(R.string.app_title));
  12:      }
  13:      
  14:      public DialogResult getDialogResult(){
  15:          return dialogResult;
  16:      }
  17:      
  18:      private void setDialogResult(DialogResult dialogResult){
  19:          this.dialogResult = dialogResult;
  20:      }
  21:      public void onCreate(){
  22:          setContentView(R.layout.inputdialog);
  23:          findViewById(R.id.cancel).setOnClickListener(View.OnClickListener() {
  24:   
  25:              @Override
  26:              public void onClick(View paramView){
  27:                  endDialog(DialogResult.Cancel);
  28:              }
  29:          });
  30:          findViewById(R.id.ok).setOnClickListener(new View.OnClickListener(){
  31:   
  32:              @Override
  33:              public void onClick(View paramView){
  34:                  endDialog(DialogResult.Ok);
  35:              }
  36:          });
  37:      }
  38:      
  39:      public void endDialog(DialogResult result){
  40:          dismiss();
  41:          setDialogResult(result);
  42:          Message m = mHandler.obtainMessage();
  43:          mHandler.sendMessage(m);
  44:      }
  45:   
  46:      public DialogResult showDialog() {
  47:          mHandler = new Handler() {
  48:               @Override
  49:                public void handleMessage(Message mesg){
  50:                  throw new RuntimeException();
  51:                }
  52:          };
  53:          super.show();
  54:          try{
  55:              Looper.getMainLooper().loop();
  56:          }
  57:          catch(RuntimeException e){
  58:              if ((BuildConfig.DEBUG) && (e != null)
  59:                      && (e.getMessage() != null))
  60:                  Log.e(LOG, e.getMessage());
  61:          }
  62:          return dialogResult;
  63:      }
  64:   
  65:  }

Dieser muss nur noch angepasst werden und damit sind dann modale Dialoge unter Android möglich.

Donnerstag, 20. September 2012

Bedingte Compilierung und Versionierung unter Java

Leider kennt ja Java keinen Präprozessor-Anweisungen wie die C-Sprachen. Gerade die Möglichkeiten der bedingten Compilierung fehlen hier. Aber es gibt mindestens 2 Ersatz-Lösungen:

Montag, 27. August 2012

Warum ich kein Nexus 7 will

Seit heute gibt es ja das Google Nexus 7 offiziell in Deutschland zu kaufen. Ein eigentlich schönes Tablet, was mir persönlich aber nicht zusagt. Folgende Punkte sind dies besonders:



  1. Kein GSM/UMTS/LTE enthalten.
    Damit ist für mich das Gerät nicht mobil nutzbar. Viele sagen nun du hast doch ein Handy dabei dann nutze dies um ein mobiles Internet per Tethering/Hotspot auf dem Nexus 7 zu benutzen. Dies ist aber leider nur bedingt möglich. Ich bin darauf angewiesen Telefon und Internet gleichzeitig zu benutzen und dies ist damit leider nur in 3G-Netzen und höher uneingeschränkt möglich. Unterwegs im Zug oder auch Auto und auch oftmals in Gebäuden steht leider nur 2G zur Verfügung und damit ist dieses nicht möglich da die Provider kein DTM unterstützen. Zusätzlich gibt es das Problem das fast alle Androidgeräte (und auch viele andere) während des Telefonierens in den GSM-Modus umschalten!
  2. Formfaktor 7 Zoll
    Für mich ist 7 Zoll zu klein, ich habe es getestet. Ich kann 10 Zoll Geräte ohne Probleme in einer Hand halten und auch bedienen. Ich bin ja Entwickler und entwickle Apps zum Teil direkt auf dem Gerät und da ist ein größerer Bildschirm auf alle Fälle besser.Auch das Ansehen von Fotos, Filmen oder TV ist einfach auf einem 10 Zöller besser.
  3. Fehlender SD-Slot 
    Auf diesen könnte ich notfalls verzichten, aber mir sind die max. 16 GB leider zu wenig. Besser wären 64 GB oder ein Slot zur Aufnahme von SD-Karten. Natürlich ist dies ein geringeres Problem da es ja möglich ist externe Datenträger per USB anzubinden.
Da ich allerdings bereits ein 10 Zoll Tablet besitze brauche ich zur Zeit kein weiteres Tablet. Sollte es allerdings irgendwann mal ein Nexus 10 mit GSM/UMTS/LTE geben würde ich dieses Tablet allen anderen vorziehen, alleine schon aus Gründen der Update-Politik der Hersteller. Mit einem Nexus egal ob Tablet oder Smartphone ist man eben immer auf dem aktuellsten Stand von Android. Zumindest für einen längeren Zeitraum als bei anderen Geräten.

Ich persönlich sehe das Nexus 7 so wie es jetzt verkauft wird als Einsteigermodell an und wünsche allen denen die es kaufen viel Spaß damit.

Montag, 6. August 2012

Google Music API

In meinem Radio Player, ein Programm welches Radiostreams, CDs und MP3-Files abspielt und dann die Titel in verschiedene soziale Netzwerke posten kann wollte ich auch das abspielen von Songs die bei Google Music gespeichert sind ermöglichen. Leider stellt Google dazu (bisher?) keine API zur Verfügung. Allerdings gibt es dazu Alternativen. ich habe bisher folgende gefunden:
Marmel powered by Instant Communities