Categories
Allgemein

Cordova android build fails with gradle wrapper error

After updating Android Studio I got the following error message:

could not find gradle wrapper within android sdk. might need to update your android sdk

After some research on the internet I found the following solution: https://stackoverflow.com/questions/31310182/error-could-not-find-gradle-wrapper-within-android-sdk-might-need-to-update-yo

cp -r /Applications/Android\ Studio.app/Contents/plugins/android/lib/templates ~/Library/Android/sdk/tools
chmod a+x ~/Library/Android/sdk/tools/templates/gradle/wrapper/gradlew
Categories
arduino

Arduino and KTY81-210

You have a lot of possibilities to measure the temperature with an arduino. One simple solution is the usage of a KTY81 silicon temperature sensors.
Arduino describes on the playground the usage of KTY81-110. If you have an other type, you need to recalculate the temperature.


(Vcc 5+)--+-->2.7k--+-->kty81-210-->(GND)
          |         |
          +->100nF--+-----> ADC2 (Analog Port 2)

Here is my code to use KTY81-210 with the arduino:

// resistor value of voltage divider in ohm
float resistor = 2700;

void setup() {
  Serial.begin(9600); 
}

void loop() {  
  float temp = kty(2); 
  Serial.print("Temperature: ");
  Serial.println(temp,1); 
  delay (5000);  
}

float kty(unsigned int port) {
   float sensorValue = analogRead(port);  
   float resistance = sensorValue / (1023-sensorValue) * resistor;
   // resistor values from kty81-210 data sheet, written as polynomial trend line
   return -1.332e-11 * pow(resistance,4) + 6.621e-8 * pow(resistance,3) - 0.0002 * pow(resistance,2) + 0.2947 * resistance - 230.55;  
}
Categories
Allgemein

GeekTool calendar view

With this command you will see the calendar with first day monday.

echo `date "+%d %B %Y"` | cal | awk '{ getline; print " Mo Di Mi Do Fr Sa So"; getline; if (substr($0,1,2) == " 1") print " 1 "; do { prevline=$0; if (getline == 0) exit; print " " substr(prevline,4,17) " " substr($0,1,2) " "; } while (1) }' | awk -v cday=`date "+%d"` '{ fill=(int(cday)>9?"":" "); a=$0; sub(" "fill int(cday)" ","("fill int(cday)")",a); print a }'

Update: I have changed the command to:

cal | awk '{ getline; print " Mo Di Mi Do Fr Sa So"; getline; if (substr($0,1,2) == " 1") print " 1 "; do { prevline=$0; if (getline == 0) exit; print " " substr(prevline,4,17) " " substr($0,1,2) " "; } while (1) }' | awk -v cday=`date "+%d"` '{ fill=(int(cday)>9?"":" "); a=$0; sub(" "fill int(cday)" ","("fill int(cday)")",a); print a }'

Categories
Allgemein

Enable syntax highlighting in MacOS vi

Unfortunately the vi that ships with Mac OS X doesn’t have an optimized configuration file to allow for syntax highlighting
To enable the syntaxx highlighting do

cd /usr/share/vim 
sudo vim vimrc

and add

syntax on ” syntax highlighting

Thats all.

Categories
iOS

iPhone Simulator SpringBoard Crash

If SpringBoard crash, take a look to the details. If you see something about „timezone“, try to select an other city in your timezone. Before crash, I selected Berlin as default. The iPhoneSimulator don’t crash since I select Longyearbyen as nearest location.

Categories
Java JBoss Portal

Retrieving URL parameters from JBoss portlet

Problem:
Retrieving URL parameters from JBoss portlet.

Solution:

RenderRequest request;
or
ActionRequest request;

String value = ((PortletRequestImpl) request).getRealRequest().getParameter(URL_KEY);

Categories
Allgemein

MacBook Beschleunigungssensor

MacBooks sind mit einem(oder zwei) Beschleunigungssensor(en) ausgestattet. Dieser wird verwendet um den Lese/Schreib-Kopf der Festplatte rechtzeitig in die Parkposition zu versetzen, um Plattenfehler zu verhindern. Beschleunigungssensoren werden vor allem beim iPhone eingesetzt. Da kann man durch das Bewegen des iPhones z.B. im Brwoser die Seite hoch und runter scrollen.

Ein OpenSource-Projekt hat es sich zur Aufgabe gemacht, den Beschleunigungssensor der MacBooks für weitere Anwendungszwecke nutzbar zu machen. Das Projekt heisst AMS2HID. Es ermöglicht den Sensor direkt in Eingabebefehle umzusetzen (z.B. Mausbewegungen, Tasten). Der Anwendungsfall: Erdbebenvorwarnung wird sich in unseren Breiten eher nicht durchsetzen.

Sinnvoll finde ich das Tool z.B. bei Sites (nur Leopard) Siehe dazu das Video unten
Ich kann jedem MacUser nur empfehlen sich das kleine Tool mal zu installieren (Natürlich außerhalb der Arbeitszeit). Man hat viel Spaß. Vor allem nicht MacUser werden beeindruckt sein.

Download: http://www.osxbook.com/software/sms/ams2hid

Anwendungsfälle:
* Sites
* Neverball
* Autorennen
* Safari

Categories
Allgemein

VMware Fusion: Probleme mit Soundwiedergabe

Lässt sich in VMware Fusion 1.1 der Sound nicht verbinden, dann ist hier die Lösung:

    • Die VMX-Datei der VM mit einem Texteditor öffnen. (Vorher natürlich die VM beenden)
      Dann die Zeile mit sound.virtualDev = "sb16" suchen und sb16 durch es1371 ersetzen.
      Jetzt die VM neue starten und nach neuer Hardware suchen.
  • Jetzt sollte es gehen.

    Categories
    Javascript

    IE7 bevorzugt JavaScript-Dateien vor Inline-JavaScript

    In eine HTML-Datei sollen Daten-Dateien per Javascript importiert werden. Es handelt sich um mehrere Dateien die den gleichen Syntax aufweisen um die Daten zu definieren.

    data1.js
    var data = "data1 to load";

    data2.js
    var data = "data2 to load";

    Damit die Daten der zweiten Datei die Daten der ersten nicht überschreiben, sollen nach dem Laden der data1.js die Daten in ein Array allData gesichert werden. Dieses Array ist neben weiteren js-funktionen in eine js-Datei ausgelagert

    main.js
    var allData = [];

    function importData(){
    out="";
    ["data1","data2"].each(function(d){
    out+="";
    out+="";
    });
    document.write(out);
    }

    function output(){
    $("output").innerHTML = allData;
    }

    Der vollständigkeit halber hier noch der HTML-Code:

    index.htm

    ...
    script type="text/javascript" src="main.js">
    script type="text/javascript">importData();
    ...
    body onload="output();"
    ...

    Führt man obigen Code aus, erkennt man im Ablauf von IE 7 und FF einen Unterschied.

    FF: Es wird zunächst der Inhelt der data1.js importiert. Anschließend wird das data-Objekt zum Array hinzugefügt. Dann wird die zweite Datei geladen und das zweite Objet zum Array gepackt. Am Ende wird die onLoad Methode aufgerufen un der Inhalt des Arrays wird mit den Daten beider Dateien korrekt ausgegeben.

    IE7: Der IE7 scheint das nicht so zu machen. Er liest als erstes die Daten in der ersten Datei ein. Anschließend werden die Daten der zweiten Datei eingelesen. Am Ende wird erst der Javascript-Code in der HTML-Datei ausgeführt. Das Problem ist hier, dass die Daten nicht korrekt im Array abgelegt werden.

    Lösung: Das Problem läßt sich lösen, indem man die Javascript-Zeile out+=""; in out+=""; geändert wird. Wir lagern also allData.push(data); in eine eigene Datei aus. Dann funktioniert es auch mit dem IE7. Nach dem Ausführen der ersten Daten-Datei wird das sammelDaten-Script ausgeführt, das die Daten der ersten Datei in das Array sichert. Im anschluß wird data2 geladen und dann wieder ins Array gepackt.

    Diese Lösung funktioniert in beiden Browser.

    Fazit: IE7 schein die JS-Dateien bevorzugt zu laden und auszuführen.

    Alle Sourcen