Dienstag, 17. Dezember 2013

HD16-S2 Android 4.0 Smart TV Box

I've got an android smart tv box, called hd16-s2. Everything is working fine but i cant manage to get a tv channel. Search doesnt find any channels. Maybe i am too stupid to find the right setting or maybe the dvb-s2 platine is somehow defective...

here are some pics of the thing, maybe someone has the same box and can provide some pics to... could it be that the flat cable is not corrected properly?

Or perhaps someone can regognize the dvb-s2 thing and tell where to get these, so that maybe i can replace it with a new one.




Donnerstag, 12. Dezember 2013

Hub / Switch an Fritzbox 7317 funktioniert nicht (richtig)

Mein an der Fritz Box angeschlossener Hub / Switch funktionierte nicht mehr. Ich bestellte also einen Neuen. Leider wollte der auch nicht wie gewohnt funktionieren, also einstöpseln und loslegen war nicht...

Nun verband ich das NAS (QNAP) über Hub mit der Box. Der Ping lieferte immer nur Zeitüberschreitung. Nach etlichem rumprobieren, dachte ich, hängst du mal den Laptop ans Hub und schaust mal ob da etwas ankommt. Und welch Wunder, am Laptop kommt was an und plötzlich ist sogar das QNAP anpingbar.
Kabel raus aus dem Laptop -> ping tot. Also Kabel erstmal wieder rein.

Nun mal am NAS in die Web Konfiguration geschaut. Es erscheint dauernd ein Meldungfenster:
"Das System hat erkannt, dass Ihr DNS-Server die Hosts nicht auflösen kann; möglicherweise funktionieren einige Anwendungen nicht richtig." .

Sehr merkwürdig. Irgendwas ist hier faul. Nach ca. 2 Stunden herumsuchen und probieren habe ich die Ursache gefunden. Weder Nas noch Hub sind schuld. Die olle Fritzbx ist es! Hier ist doch irgendwie (ich wars nicht :) ) Dieser IPv6 kram aktiviert worden. Außerdem fehlten alle Portfreigaben. In den Netzwerk Einstellungen der Fritzbox unter IP Adresse vergeben, habe ich alles IPv6 Zeug deaktiviert und schon lief die Sache wieder.

Mit aktiviertem IPv6 zeigte mir die Box alle verbundenen LAN Geräte mit 10 MBit angebunden an, nach der Deaktivierung waren es wieder gewohnte 100 MBit. Kein Wunder, dass ich bei der letzten Forza Session so extrem laggy war. Ich hoffe nun läuft auch die XBox 360 Zockerei wieder ordentlich.

Freitag, 6. Dezember 2013

Löschen der Wartungslampe - Toyota T25

Nach dem Ölwechsel an meinem Auto,
musste auch das Lichtsignal für die Wartung (der Schraubenschlüssel) gelöscht werden.
Ich habe dummerweise dafür mal 20 Euro bezahlt, als ich es mir in der Werkstatt zurücksetzen liess.


1. Gesamtkilometerstand einblenden
2. Zündung ausmachen
3. Den Kiloemeterzähler-Knopf drücken und halten
4. Zündung anschalten
5. Im Kilometerzählerdisplay erscheinen mehrere Striche (-)  -> Warten bis die weg sind

nun sollte der Schraubenschlüssel nicht mehr leuchten


Mittwoch, 25. September 2013

Umstieg vom 32 Bit auf 64 Bit

Mit meinem neuen Laptop habe ich auch ein neues Betriebssystem bekommen. Mein alter hatte Windows XP 32 Bit und der neue nun Windows 7 64 Bit. Nach der Installation von Visual Studio meldet sich der Debugger andauernd, dass ich nichts mehr editieren kann, das ging doch früher? Ebenso gibt es Probleme bei der Verwendung meines Connectionstrings zur MySql DB. Fehlermeldung nach dem Start des Programms: Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben. Und das obwohl ich meinen Connector und auch einen MySql Server installiert habe.

Lösung:
Unter Projekt auf Eigenschaften gehen. Hier nun im Kompilieren Dialog den Button Erweiterte Kompilierungsoptionen ... klicken. Nun kann man als Ziel CPU x86 auswählen und wieder froh werden, denn plötzlich funktioniert wieder alles.

Mittwoch, 4. September 2013

DOS - Kopieren von allen Dateien aus Unterordnern in ein anderes Verzeichnis

Wenn mann viele Bilder in Unterordnern verteilt hat und die alle mal in nur einem Verzeichnis 'versammeln' möchte, kann man mit Windows und Drag and Drop ziemlich beschäftigt sein.
Unter Linux ist es kein Problem über XTerm und co die Files herumzuschieben und zu kopieren. Unter Windows braucht man dann mal das DOS Fenster (Start -> Ausführen -> cmd).
Meine DOS Erfahrungen liegen fast 20 Jahre zurück.

Deshalb hat Google mir mal wieder geholfen, da ich nur eine englische Antwort gefunden habe, und damit ich sie wiederfinde hier nochmal in meinem Blog auf deutsch.

Also der DOS Befehl zum kopieren aller Dateien aus den Unterordnern eines Verzeichnisses:
als Beispiel mal hier aus dem Verzeichnis c:\split in das Verzeichnis c:\Neuer Ordner

cd /d "c:\split"
for /r %d in (*) do copy "%d" "c:\Neuer Ordner"

Freitag, 30. August 2013

How to post in WordPress Blog out of my app

Is there a way i can create and publish a blogpost in my wordpressblog out of my app? I need examples/tutorials. I ve read about the API but didn't get the clue how to implement this in my android app. Does this work only on wordpress.com hosted sites or can i use my own?
import java.net.MalformedURLException;
import java.util.List;
import redstone.xmlrpc.XmlRpcFault;
import net.bican.wordpress.Page;
import net.bican.wordpress.PageDefinition;
import net.bican.wordpress.Wordpress;

/**
 * 
 * Example implementation
 * 
 * Run this as java net.bican.wordpress.example.Main <username>
 * <password> <xmlrpc-url> for your blog.
 * 
 * @author Can Bican
 * 
 */
public class wordpressHelper {

 /**
 * @param args
 * @throws MalformedURLException
 * @throws XmlRpcFault
 */
 @SuppressWarnings("nls")
 public static void main(String[] args) throws MalformedURLException,
 XmlRpcFault {
 String username = args[0];
 String password = args[1];
 String xmlRpcUrl = args[2];
 Wordpress wp = new Wordpress(username, password, xmlRpcUrl);
 List<Page> recentPosts = wp.getRecentPosts(10);
 System.out.println("Here are the ten recent posts:");
 for (Page page : recentPosts) {
 System.out.println(page.getPostid() + ":" + page.getTitle());
 }
 List<PageDefinition> pages = wp.getPageList();
 System.out.println("Here are the pages:");
 for (PageDefinition pageDefinition : pages) {
 System.out.println(pageDefinition.getPage_title());
 }
 System.out.println("Posting a test (draft) page from a previous page...");
 Page recentPost = wp.getRecentPosts(1).get(0);
 recentPost.setTitle("Test Page");
 recentPost.setDescription("Test description");
 String result = wp.newPost(recentPost, false);
 System.out.println("new post page id: " + result);
 System.out.println("\nThat's all for now.");
 }
}

I also put in the jwordpress-0.5.1.jar and added that in the classpath.
I get the swirling red line underneath redstone import redstone.xmlrpc.XmlRpcFault;
-> The import cannot be resolved...
2nd july 2013: I managed to get rid of the import problem... I downloadedhttp://sourceforge.net/projects/xmlrpc/files/%28New%29%20Redstone/1.1.1/ an extracted the zip file Then added all files in a new package into src. The import works right now but next Problem is that the javax.servlet cannot be resolved...

Samstag, 29. Juni 2013

ToogleButtons im AlertDialog

Für mein Golfapp Projekt (siehe meine Golfseite ) musste ein AlertDialog her. Es hat ganz schön lang gedauert, eh ich das so hinbekommen habe, wie ich es mir vorstellte:

Nach dem Klick auf einen Button im 'Main' Layout soll sich ein Dialog öffnen, in dem Texteingaben möglich sind und auch angeklickt werden kann, wo der Drive gelandet ist. Dis habe ich mit Togglebuttons realisieren wollen.


Problematisch war, dass immer nur ein Button 'An' sein sollte. Die Lösung hat mich ganz schön Zeit gekostet:). Schließlich fand ich heraus, dass ich für jeden der Buttons ein OnCheckedChangeListener brauche.

Hier der Code des Alertdialogaufrufes zur Eingabe der Abschlagslänge -Richtung und der Einlochdistanz:

public void pDrvPutClick(View v){
    final Button b = (Button) v;
   
     LayoutInflater inflater = getLayoutInflater();
      View dstView = inflater.inflate(R.layout.dlg_drvput, null);
     
       AlertDialog.Builder builder = new AlertDialog.Builder(context) ;
      builder.setView(dstView);
      final EditText edit_ddst = (EditText) dstView.findViewById(R.id.drvDst);
      final EditText edit_pdst = (EditText) dstView.findViewById(R.id.putDst);
      final ToggleButton rb1 = (ToggleButton) dstView.findViewById(R.id.rb_hit);
      final ToggleButton rb2 = (ToggleButton) dstView.findViewById(R.id.rb_left);
      final ToggleButton rb3 = (ToggleButton) dstView.findViewById(R.id.rb_right);
      final ToggleButton rb4 = (ToggleButton) dstView.findViewById(R.id.rb_miss);
     
        //Klickhandling OnCheckedChangeListener fuer jeden Button
      rb1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
      @Override
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
         {
             if ( isChecked )
             {
                 rb2.setChecked(false);
                 rb3.setChecked(false);
                 rb4.setChecked(false);
             }
         }
      });
     
      rb2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
          @Override
          public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
             {
                 if ( isChecked )
                 {
                     rb1.setChecked(false);
                     rb3.setChecked(false);
                     rb4.setChecked(false);
                 }
             }
          });
      rb3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
          @Override
          public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
             {
                 if ( isChecked )
                 {
                     rb1.setChecked(false);
                     rb2.setChecked(false);
                     rb4.setChecked(false);
                 }
             }
          });
      rb4.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
          @Override
          public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
             {
                 if ( isChecked )
                 {
                     rb1.setChecked(false);
                     rb3.setChecked(false);
                     rb2.setChecked(false);
                 }
             }
          });
     

    builder.setPositiveButton("OK", new DialogInterface.OnClickListener(){
    public void onClick(DialogInterface dialog, int whichButton){
    String ddst;
    ddst = edit_ddst.getText().toString();
    if (ddst=="") {
      ddst="Drive";
      }else {
      if (rb1.isChecked()){
      ddst="H"+ddst;
      }
      if (rb2.isChecked()){
    ddst="L"+ddst;
    }
      if (rb3.isChecked()){
    ddst="R"+ddst;
    }
      if (rb4.isChecked()){
    ddst="M"+ddst;
    }
      }
    String pdst;
   
    pdst = edit_pdst.getText().toString();
    if (pdst=="") {
    pdst="PutDst";
    }
    b.setText(ddst+"\n"+pdst);
   
    // do something
    // lbl_platz = (TextView) findViewById(R.id.lbl_courseName);
    // lbl_platz.setText(value);
    }
   
   
    });
   
    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){
    public void onClick(DialogInterface dialog, int whichButton){
    // do nothing
   
    }
    });
   
   
    builder.show();
    }

Sonntag, 26. Mai 2013

Demonstration: "Für ein demokratischeres Rundfunksystem"

Unser Dresdner Beitrag 

"Für ein demokratischeres Rundfunksystem"
im Rahmen des Bundesweiten Protesttages
Organisiert und geplant von Dresdner Bürgern
-
Treff ist 14.00 Uhr am Postplatz, 
Aufzug über Wilsdruffer Straße bis Kulturpalast, 
am Kulturpalast vorbei durch das Georgentor zum 
Goldenen Reiter, wo die Abschlusskundgebung stattfindet. 
Ende ca. 16.00 Uhr. 
-
Unsere Petition kann noch bis 9.07.2013 gezeichnet werden.
https://www.openpetition.de/petition/online/fuer-ein-demokratischeres-rundfunksystem
-
Aufruf zur Protestveranstaltung gern weiter leiten, teilen und vor allem auch TEILNEHMEN ist wichtig


https://www.facebook.com/events/645220248825606

Sonntag, 14. April 2013

QNAP - Cronjob Script zum killen eines Prozesses

Da mir auf dem QNAP immer wieder der php Prozess die Prozessorlast und den load hochschraubt und ich noch nicht dahintergekommen bin, was den Prozess startet, habe ich nach einem Ausweg gesucht.

Ziel:
Erstellung eines Cronjobs, der alle X Minuten prüft ob der php Prozess läuft.

Die vorinstallierte top Version lässt leider keine Optionen zu:


top: invalid option -- n
BusyBox v1.01 (2013.02.28-18:30+0000) multi-call binary

Usage: top [-d <seconds>]

top provides an view of processor activity in real time.
This utility reads the status for all processes in /proc each <seconds>
and shows the status for however many processes will fit on the screen.
This utility will not show processes that are started after program startup,
but it will show the EXIT status for and PIDs that exit while it is running.

Deshalb wird per ipkg install ein neues top installiert:

ipkg install atop

Nun erstelle ich unter /share/ ein neues Verzeichnis scripts

mkdir /share/scripts
cd /share/scripts/

Hier soll nun das Script rein. Also erstelle ich die Datei killphp.sh:

vi killphp.sh

Und fülle sie mit folgenden Zeilen:

#!/bin/sh
d=`date`
pid=`atop -p 1 1 | grep php | cut -f1 -d" "`
txt=`atop -pc 1 1 | grep php`
if [ "x$pid" = "x" ]; then
  echo  $d " - Kein php Prozess gefunden" >> /share/scripts/killphp.log
else
  echo $d " - php Prozess " $pid " gekillt" >> /share/scripts/killphp.log
  echo $txt >> /share/scripts/killphp.log
  kill $pid
fi

Hier wird der aktuelle Datum/Zeit Stempel in d gespeichert. pid ist die ProzessId von php. txt gibt den Pfad von php zurück. Wenn nun kein php Prozess gefunden wird, schreibt er dies in das Logfile killphp.log. Wird der php Prozess gefunden, so wird die ProzessId und das php gekillt worden ist ins Logfile geschrieben. Ausserdem kommt der Pfad des Prozesses dazu und natuerlich wird der Prozess noch gekillt.

Jetzt noch die Logdatei erstellen.

touch killphp.log

Nun muss noch die Berechtigung der Dateien eingestellt werden. 

chmod 777 killphp.sh
chmod 666 killphp.log

Jetzt wird das ganze noch in die crontab eingetragen, so dass es alle 5 Minuten ausgeführt wird.

crontab -e

Hier diese Zeile einfügen:

*/5 * * * * /share/scripts/killphp.sh

Nun sollte sich die Datei killphp.log alle 5 Minuten um eine Zeile erweitern, und wenn der Prozess php anspringt, dieser wieder gekillt werden. Für den Fall, dass php benötigt wird müsste die Zeile in der crontab auskommentiert werden:

# */5 * * * * /share/scripts/killphp.sh

Sonntag, 17. März 2013

Wir basteln uns einen Döner Kebap - Selberdöner

Nachdem ich mal einen Beitrag über Dönerfleisch gesehen hatte und es dort hieß:
'Das Dönerfleisch besteht zum Großteil aus Hackfleisch...' wunderte ich mich ein wenig und dachte, das könnte man ja mal versuchen. Herausgekommen ist ein, wie ich finde, extrem leckerer Döner, was mir auch schon von anderen bestätigt worden ist.

Nun soll hier geschildert werden, wie man sich einen leckeren Döner selbst 'basteln' kann. Ich nenne ihn immer meinen Selberdöner. Wenn es den mal gibt freut sich die ganze Familie.

Dies ist kein hundertprozentiges Rezept, mit allen Gewichtsangaben, da ich immer 'frei Schnauze' koche und herumprobiere.

Los geht es mit den Zutaten:

Das Hackfleisch:


Für 4 Döner nehme ich immer 1 Kg Hackfleisch, ich mag das gemischte (Rind und Schwein). Kosten für 500g ca. 2,39 Euro. Manchmal gibt es das auch im Angebot für 3,78 das Kilo. So sind es 4,78 Euro.

Zum Döner gehört, zumindest bei uns, das Fladenbrot.

Das gibts bei uns im Kaufland für 0,89 Euro (geviertelt ergibt das 4 'normalgoße' Döner).
Weitere wichtige Zutaten sind:




Wichtig hierbei sind vor allem die beiden Bergwelt Packungen (je 0,79 Euro). Das Zeug gibt es im Kaufland und ist im Prinzip genau wie Brunch, nur halt etwas preiswerter. Warum die so wichtig sind, kommt später. Zaziki spricht für sich, wer es mag, kann sich damit den Döner verfeinern.

Dazu kommt Gurke, Tomate, Zwiebeln. Wer mag kann natürlich auch alles diverse andere an Dönerzutaten hinzufügen, wie man es von den ganzen Buden kennt. Rohkostkraut in rot und weiß, Feta, Kopfsalat und wer mag sogar Champignons (ich hasse die Dinger!). Ich nehme immer nur Gurke Tomate und Zwiebeln, ess aber auch gern das Rohkostzeugs auf dem Döner.

Ganz ganz wichtig sind natürlich die Gewürze. Ich nutze immer dieses hier:


wenn man das mit Knoblauchstreu kombiniert ergibt das eine Prima Hackfleischwürze, die das fertige Hackfleisch vom Geschmack her, nah an das Döner Originalfleisch bringt.


Diese Würzdinger gibt es total preiswert für um die 49 bis 89 Cent. 
Zur Menge:
für etwa 1 kg Hackfleisch braucht es schon etwa ein Drittel bis zur Hälfte des Hackfleischwürzmischungsgläschens (was für ein tolles Wort). Knoblauch gibt den ganz besonderen Kick aber nicht übertreiben, zu knoblauchlastig schmeckt das ganze dann zwar immer noch aber man braucht anstatt 1,5 Liter Wasser vielleicht 3 Liter um seinen Durst zu löschen (zumindest geht es mir immer so) .

Nun wollen wir mal anfangen. Wir brauchen eine Schale für das Hackfleisch. Ich halte immer meine Hand unter den Wasserhahn und mache sie nass, danach wird die Schüssel damit ausgewischt und eine erste Schicht Gewürz eingestreut. Dann verteile ich darüber die erste Packung Hackfleisch. 

Nun kommt wieder eine Lage Gewürz gefolgt von der nächsten Schicht Hackfleisch. Oben drauf kommt noch ein Ladung Gewürz. Dann verkneten wir alles und formen kleine Bällchen aus der Masse.  


Nun kommt das ganze auf den Grill. Wer noch keinen hat, ich habe meinen Kontaktgrill von Amazon. Ich kann den Beem Cater Pro empfehlen, den habe ich nun schon etwas länger als 3 Jahre und er macht seinen Job immer noch hervorragend.
BEEM D1000.220 Cater Pro, Kontaktgrill - Preis-/Leistungssieger 01/2012
Wer so ein ein Teil nicht hat und es sich auch nicht zulegen will, muss natürlich nicht auf seinen Selberdöner verzichten. Die Hackbällchen müssen dann nur platt gemacht und in der Pfanne gebraten werden. Das Plattmachen funktioniert ganz gut zwischen Backpapier und mit einem Teigroller. Es empfiehlt sich außerdem ein Warmehaltetopf zu benutzen. Meiner sieht so aus:


Diese Thermoschüsseln gibt es beispielsweise auch bei Amazon.Während der Grill anheizt, dauert ca. 2-3 Minuten, kann man schon mal das Fladenbrot aufschneiden (ist besser wenn man das vorher macht) und auch die Gurke, Tomaten und Zwiebeln in Scheibenform bringen.


Ist der Grill heiß, geht es los. Immer 4 bis 5 Bälle darauf verteilen und dann heißt es pressen. Achtung, der Grill ist heiß, auch der Dampf der entweicht. Also immer schön mit Topflappen arbeiten! Ordentlich pressen, je dünner die Fleischscheiben werden um so leckerer, finde ich jedenfalls.

Mit dieser Methode hat man ganz schnell seine Hackbällchen in Hackscheiben verwandelt. 

In diesen genialen Thermoschüsseln bleiben die Scheiben auch schön heiß und man kann in Ruhe noch den Tisch decken und die ganzen Zutaten hinstellen.


Nun kann man locker mit der Resthitze vom Grill das Fladenbrot grillen. Das dauert mit ein wenig Druck vielleicht eine Minute. Zu kross sollte das Brot nicht werden, dann wird es zum Gaumenreißer :).

Nun kann der Döner auch schon belegt werden. Am wichtigsten sind die Brunchersatzdinger. Hiermit beiden Fladenbrotinnenseiten bestreichen, das Zeug schmilzt und ergibt eine prima Dönersauce. Darüber dann die Gurken, Tomaten und Zwiebelscheiben. Nun noch das Hackfleisch rein und fertig ist der Selberdöner. Wer es scharf mag nimmt noch Chilipulver!


E Viola oder wie der Franzose sagt :)... Guten Appetit!


Ach ja, wer den Grill benutzt, wird sich wundern, wieviel Fett man aus dem Hackfleisch herauspressen kann.

Da landet bald eine ganze Tasse voll Fett in der Auffangschale. Das tolle daran ist, die landet nicht in unseren Mägen :) !