Uninteressantes von einem Anwendungsentwickler aus Linse
 

Die neusten Blog Einträge

 
Seite 6 von 39

c´t Praxis Android

Kategorie "Android" Android  Verfasst am 12.05.2011 21:33 12.05.2011 21:33  1 Kommentar 1 Kommentar  

Seit einigen Tagen gibt es eine c`t Praxis Ausgabe mit dem Schwerpunkt Android. Ich habe mir die über den heise Shop mal Testweise bestellt und bin echt positiv beeindruckt.

Von einer Übersicht aktueller Handy Modelle, über must-have Apps bis zum Rooten und Flashen von Custom Roms ist alles dabei. Ein Artikel in dem einige Navigations Apps verglichen werden gibt es auch.

Als Special gibt es dann noch ein Videotutorial auf DVD welches eine Einleitung in die Android App Entwicklung bringt.

Das werde ich auf jedenfall bei nächster Gelegenheit mal antesten. Mal sehen ob sich die 8,90€ gelohnt haben. ;)

 

Evernote - Noch ein (oder DER?) Notizen-Online-Service

Kategorie "Internet" Internet  Verfasst am 07.05.2011 21:09 07.05.2011 21:09  5 Galeriebilder 5 Galeriebilder  0 Kommentare 0 Kommentare  

Evernote ist ein Online Notizbuch. Das besondere hier ist, dass es für so gut wie jede Plattform einen Client gibt. Auch eine Schnittstelle für Programmierer gibt es. Da kann man sich also so richtig austoben. ;)

Unterstützte Plattformen

  • Windows
  • Mac OSX
  • iPhone, iPad, iPod touch
  • Android
  • Blackberry
  • Palm
  • Windows Mobile
  • Weboberfläche
  • Linux (über 3rd Party Programm)
  • API

Evernote Android ClientEvernote Android Notiz bearbeitenEvernote Android Schlagwörter für eine NotizNevernote Linux ClientEvernote Weboberfläche

Man kann mehrere Notizbücher erstellen, die dann auch für andere Benutzer freigegeben werden können. Als Standardbenutzer kann man Notizbücher nur lesend freigeben. Als Premiumnutzer geht dies auch schreibend.

Natürlich kann man auch Bilder und andere Medien in die Notizen einbinden. Das einzige was hier die Grenzen setzt, sind die 60MB (Standard) bzw 1GB (Premium) Traffic im Monat. Auch kann eine einzelne Notiz maximal 25MB (Standard) bzw 50MB (Premium) groß sein.

Was sonst noch so mit einem Premium Account möglich ist, findet man hier. Werbefreiheit in den Clients, offline Notizbücher auf den mobilen Geräten und Zugang zur Historie der Notizen sind einige der Premium-Funktionen.

Einen offiziellen Linux Client gibt es leider nicht. Als alternative kann ich aber gefahrlos Nevernote empfehlen. Der Client wird aktiv entwickelt und ist dazu noch OpenSource. Was will man als Linuxer mehr? ;)

Ich mache seit einigen Monaten fast alles mit Evernote. Von Todo Listen in Projekten bis zu Einkaufszetteln. Benutzt werden die Evernote Clients für Windows und Android, die Weboberfläche und Nevernote unter Linux.

Natürlich muss man bei der Cloud-Problematik vorsichtig sein, was man Evernote anvertraut. Weswegen beispielsweise Passwortlisten in meinem Evernote Account nicht zu finden sind. ;)

 

CyanogenMod 7.0.2

Kategorie "Android" Android  Verfasst am 28.04.2011 19:27 28.04.2011 19:27  0 Kommentare 0 Kommentare  

CyanogenMod Android FirmwareCyanogenMod 7.0.2 (stable) ist seit einigen Tagen raus.

Das Release hat auf meinem HTC Desire Z nun endlich alle Mini-Fehler die, noch da waren, gefixt. Zum Beispiel funktioniert nun das Anschalten von 3G auf anhieb. Mit der Version 7.0.0 musste erst noch einmal zwischen 2G und 3G gewechselt werden.

Alle weiteren Änderungen kann man wie gewohnt im Changelog nachlesen. Bisher funktioniert alle wunderbar. Hoffendlich bleibt es auch so. :)

 

Custom Splash Screen

Kategorie "Android" Android  Verfasst am 26.04.2011 20:44 26.04.2011 20:44  3 Galeriebilder 3 Galeriebilder  0 Kommentare 0 Kommentare  

Mit wenigen Handgriffen kann man den Splash screen, bei meinem Desire Z also das HTC Logo am Anfang, durch ein beliebiges Bild austauschen.

Das einzige was man dazu benötigt ist ein HTC mit S-OFF. Also ein komplett offenes Gerät welches nicht nur gerooted ist, sondern auch keine "Hardwaresperre" mehr besitzt.

Custom Splash ScreenCyanogenMod 7 Final BootscreenSIM Unlock

Einkaufsliste

  • nbimg - Konvertiert das Bitmap in ein Image zum flashen
  • Ein Grafik Programm um das Bild zu erstellen
  • Vollständige Andoid SDK mit adb und fastboot
     

Grafik erstellen

Ersteinmal brauchen wir eine passende Grafik. Ich habe mir einfach ein Android Logo von Deviantart geschnappt und ein bissl mit Gimp rumgespielt. Sicherlich kein Kunstwerk, hässlich ist es aber auch nicht. Also das was ich draus gemacht habe... ;)

Ist die Grafik fertig, muss diese als 24 Bit RGB Color Bitmap (.bmp) gespeichert werden.

Image erstellen und flashen

Auch hier gilt wieder: Wer nicht weiß was er/sie tut, kann das Handy bricken und es somit unwiderruflich zerstören! Also bitte Vorsicht falls ihr euch denoch dazu entscheiden solltet!

Nun muss die Grafik mit dem Tool nbimg in ein Image zum flashen konvertiert werden.

Den Sourcecode von nbimg habe ich hier her, da ich mich nicht bei xda-developers registrieren wollte. Man muss das Tool dann nur noch compilieren. Dann kann man es direkt nutzen. Mir fehlten hier unter Ubuntu auch keine Abhänigkeiten.

Für die Windows-Muffel gibt es auch eine fertig übersetzte Version auf der Website. ;)

bash$ gcc nbimg.c -o nbimg
bash$ ./nbimg -F splash1.bmp -w 480 -h 800
=== nbimg v1.1
=== Convert NB <--> BMP splash screens
=== (c)2008 Pau Oliva - pof @ xda-developers

[] File: version1.bmp
[] No padding added. Check file size.
[] Encoding: version1.bmp.nb
[] Image dimensions: 480x800
[] Adding 0 bytes padding using pattern [0xff]
[] Adding HTC splash screen signature
[] Done!

bash$ mv splash1.bmp.nb splash1.img

Nun kann das Image auf das HTC Handy geflasht werden. Dazu muss das HTC Handy nur mit gestarteten Bootloader an den PC angeschlossen werden.

Nun kann man vom PC aus den Upload starten.

bash$ fastboot flash splash1 splash1.img
sending 'splash1' (750 KB)... OKAY
writing 'splash1'... OKAY

Das Gerät kann nun neu gestartet werden. Man sollte direkt den neuen Spash Screen sehen.

Quellen

Custom Spash Screen for HTC Desire
nbimg: HTC Splash Screen Tool on xda-developers
nbimg: HTC Splash Screen Tool



Have fun und sei kreativ! ;)

 

BOINC Statistik GUI Script

Kategorie "Projekte" Projekte  Verfasst am 19.04.2011 22:16 19.04.2011 22:16  1 Galeriebild 1 Galeriebild  4 Kommentare 4 Kommentare  

Der Boinc Client generiert regelmäßig eine XML Datei (client_state.xml) welche alle wichtigen und interessanten Infos über die aktiven Tasks und über den Host enthält.

Mit einem Cronjob wird die Datei regelmäßig in einen Unterordner des Scripts kopiert und dann ausgewertet. Das Script ist zudem komplett Template gestützt. Es kann also relativ einfach ein neues Design erstellt werden.

Boinc GUI

Die Idee zu diesem Script habe ich von hier. Erst wollte ich nur ein paar Änderungen vornehmen. Dann kam aber eins zum anderen und nun sind 90% neu geschrieben... :)

Die GUI steht genau wie das "Urscript" unter der GPL. Also viel spaß damit. ;)

Links
Boinc Statistik GUI, Download Link und Lizenz im Footer der GUI

 

Piwik - Die freie Alternative zu Google Analytics

Kategorie "Internet" Internet  Verfasst am 19.04.2011 21:37 19.04.2011 21:37  4 Galeriebilder 4 Galeriebilder  5 Kommentare 5 Kommentare  

Piwik ist eine freie Alternative zu Google Analytics. Man installiert es wie Wordpress mit einem Weiter-Weiter-Fertig-Dialog auf einem Webspace seiner wahl.

Danach kann man Websites in Piwik anlegen. Man muss dann genau wie in Google Analytics einen Tracking Code in den Footer der Website verbauen.

DashboardKeywordsPagesSettings

Piwik ist seit gut einer Stunde in diesen Blog und in einigen anderen meiner Projekte verbaut. Ich werde das erstmal einige Wochen testen und dann entscheiden ob Piwik eingebaut bleibt oder nicht.

Wer übrigens nicht von Piwik analysiert werden möchte, kann im Adblocker seines vertrauens einfach eine Regel auf piwik\.(php|js) anlegen. Dann werden die Dateien piwik.php und piwik.js, egal von welcher Domain, nicht mehr durchgelassen.

 

Audio Störgeräusche im Auto

Kategorie "Sonstiges" Sonstiges  Verfasst am 15.04.2011 23:06 15.04.2011 23:06  0 Kommentare 0 Kommentare  

Audio EntstörfilterFür mein HTC hatte ich mir eine Autohalterung mit KFZ Ladekabel zugelegt, um Musik über ein Cinch-Klinke Kabel in mein Autoradio einzuspeisen.

Leider wurden über das Ladekabel Störgeräusche auf das Autoradio übertragen.

Jedes mal wenn der Motor über 1500 Umdrehungen die Minute lief, hörte man ein mehr oder weniger lautes Fiepen in den Lautsprechern. Das Fiepen hörte man sogar bei lauter Metal Musik... :(

Abhilfe schafft hier ein Entstörfilter. Das hier vorgestellte Modell wird via Cinch Stecker/Buchse zwischen Handy und Autoradio geschaltet und filtert zirka 95% aller Störgeräusche heraus.

Es ist echt super wie gut das funktioniert. :)

Die Störgeräusche kommen nur wieder, wenn der Ton zirka 5 Sekunden stumm ist. Verschwindet aber sofort wieder, wenn man den Ton wieder anschaltet. Der Filter weiß bei stummen Ton halt nicht mehr, was er nun genau filtern soll. Für zirka 3 Euro, kann man das aber verschmerzen, denke ich. ;)

Ich habe den Filter bei Reichelt Elektronik bestellt. Lieferung hat zirka 3 Tage gedauert. Ich musste allerdings noch ein paar andere Dinge mitbestellen, da es einen Mindestbestellwert von 10 Euro gibt. So hab ich halt eine Bestellung bei Amazon gespart. ;)

 

In einem MySQL Query select und update/insert

Kategorie "Programmieren" Programmieren  Verfasst am 03.04.2011 17:04 03.04.2011 17:04  2 Kommentare 2 Kommentare  

In einem Projekt stand ich vor dem Problem, dass über eine API verschiedene Clients auf die gleichen Tabellen zugreifen. Damit die Tabellen sauber bleiben, darf allerdings immer nur ein Client gleichzeitig schreibende Operationen ausführen. 

Auch muss es weiterhin möglich sein, dass interne Scripte die Tabellen lesen und schreiben dürfen. LOCK TABLES kommt dadurch also nicht in Frage.

Die einfachste Lösung war eine Tabelle mit zwei Spalten. Einem Identifier und dem Status. Der Identifier muss dabei natürlich einzigartig (UNIQUE) sein. Außerdem darf in der Tabelle nur ein Datensatz gleichzeitig den Status 1 (gesperrt) haben.

Folgendes Query führt dann alle nötigen Prüfungen und Aktionen aus:

INSERT INTO LockTable
   (name, status, createdBy, creationTime) 
SELECT 
   '$name', '$lock_status', '11', NOW() 
FROM 
   LockTable 
WHERE '1' NOT IN ( SELECT status
FROM LockTable
WHERE status = '1'
) OR '$lock_status'='0'
ON DUPLICATE KEY UPDATE status = '$lock_status',
lastModifiedBy='1', lastModifiedTime=NOW()

Das Query führt drei Aktionen auf einen Rutsch aus:

  • Ist für $name kein Datensatz vorhanden, wird dieser erstellt.
  • Ein Datensatz wird nur gesperrt, wenn es keinen anderen gibt, der gesperrt (auf 1 gesetzt) ist.
  • Existiert bereit ein Datensatz für $name, wird dieser aktualisiert.

Würde man diese Aktionen nun in einzelne Querys aufteilen, bestünde die Gefahr, dass sich zwischen SELECT und INSERT/UPDATE eine weitere Verbindung zwischen schaltet und sich dort als gesperrt markiert. Im schlimmsten Fall wären dann zwei Verbindungen gleichzeitig gesperrt.

In der Anwendung kann man dann über den Affected Rows Zähler (der muss >0 sein) sehen, ob die sperre erfolgreich gesetzt wurde.

Wichtig: In der Tabelle muss sich IMMER mindestens ein Datensatz befinden. Ansonsten funktioniert das erste Select, welches die Daten für den Insert zusammenbaut nicht!

 

BOINC auf einem 64-Bit Server

Kategorie "Linux" Linux  Verfasst am 26.03.2011 02:19 26.03.2011 02:19  2 Kommentare 2 Kommentare  

Da ich es auf meinem lokalen Rechner immer vergesse, und sich mein Server sowieso langweilt, habe ich eine XEN Maschine erstellt, die auf drei Kernen mit 2,6 GHz für verschiedene Projekte rechnet.

Meine Maschinen rechnen für die Projekte von worldcommunitygrid.org. Die Anleitung bezieht sich also speziell auf diese Plattform.

BOINC Einrichten (Projekt unabhängig)

BOINC ist der Client, der sich die Aufgaben vom Server abholt und dann rechnet. Der Client arbeitet als Service. Um diesen Service zu steuern, kann man sich über eine RPC-GUI mit dem Server verbinden.

Die größte Herausforderung war, die 32 Bit Anwendung auf einem 64 Bit System zu starten. (Das mag vielleicht auch an der Tageszeit liegen. ;)) Man muss das Paket ia32-libs installerien. Tut man dies nicht, wird Linux beim Ausführen von ./boinc melden, dass es diese Datei nicht gibt. Sehr verwirrende Meldung...

Natürlich sollte man BOINC mit einem separaten Linux Account laufen lassen:

groupadd -u <einegroupid> boinc
useradd -u <eineuserid> -g <diegroupid> -G boinc -d /home/boinc -m -s /bin/bash boinc
su boinc
cd /home/boinc

Danach kann BOINC "installiert" werden:

wget http://boinc.berkeley.edu/dl/boinc_<version>_i686-pc-linux-gnu.sh
chmod u+x boinc_<version>_i686-pc-linux-gnu.sh
./boinc_<version>_i686-pc-linux-gnu.sh
cd BOINC

Möchte man den Zugang via GUI zum BOINC Prozess gestatten, kann man nun in der Datei gui_rpc_auth.cfg ein beliebiges Kennwort festlegen. Später beim Startbefehl legt man dann fest, ob diese Funktion genutzt werden soll, oder nicht.

BOINC mit worldcommunitygrid.org starten

Beim ersten Start von BOINC muss das Projekt hinzugefügt werden. Den letzten Parameter im Befehl, den so genannten Account Key, findet man auf der Website worldcommunitygrid.org unter My Profile relativ weit unten.

./boinc -attach_project www.worldcommunitygrid.org 28f34sdgsdgsdwr324234324a914596

Starten nun erfolgreich die Prozesse, kann der Client mit Strg+C wieder gekillt werden. Danach wird BOINC mit folgendem Befehl als Service gestartet:

./boinc --allow_remote_gui_rpc --daemon

Der erste Parameter gibt dabei an, ob BOINC über eine GUI erreichbar sein soll, oder nicht. Aus Sicherheitsgründen ist in meinem Fall der komplette Server via iptables dicht gemacht.



Nun noch ein Startscript bauen damit BOINC beim Systemstart startet.
Thats it. ;)

Seite 6 von 39

Tag Cloud

28c3   3D   ASCII   Akismet   Allgemein   Animation   Apache   Arbeit   Arch Linux   Archos 5   Asterix & Obelix   Audio   Auto   BOINC   Bash   Bitlbee   Blog v2.0   Bluetooth   Bodenwerder   Bouncer (BNC)   Bundestagswahl 09   Bücher   CCC   Chromium   Comics   Computerspiele   Content Managment System   Creative Commons   CyanogenMod   Cybton   DAU Alarm   DLRG   Datenbanken   Datenschutz   Debian   Deutsches Rotes Kreuz   Domains   EZFlash Vi   Eclipse   Eingabegeräte   Ekelhaft   Email   Essen   Ethernet   Evernote   Facebook   Fanartikel   Feiertage   Fernsehn   Firefox   Flash   Flattr   Fotografie   Fritz!Box   Fun   Fußball   GEZ   GPS   Gameboy Advance   Games   Gnome   Google   Google Android   Google Android Hacking   Google+   Grafiken   Grand Theft Auto IV   HTC   HTC Desire Z   HTML   Handhelds   Handy   Handy Apps   Hardware   Homebrew   ICQ   IRC   ImapFilter   Internet   Internet Explorer   Internet Relay Chat (IRC)   Internetzensur   Java   JavaScript   JeeGeek   Justiz   Kino   Konzert   Kultur   Kumpels   Legend of Zelda   Linux   MS SQL Server   Marilyn Manson   Microsoft .NET   Minecraft   Mobile   Mozilla   Music Player Daemon (MPD)   Musik   MySQL   NPD   Natur   Netbeans   Netbooks   Netzwerk   Nintendo   Nintendo DS   Nintendo DSi   Nintendo Wii   Notebook   OpenOffice   OpenOffice Impress   OpenWRT   PC Hardware   PHP   Pandora   Papierkorb   Patentrecht   Pidgin   Piratenpartei   Piwik   Politik   Privat   Programmieren   Projekte   PulseAudio   QR-Code   RSS   Rammstein   Root   SOGo Scalable OpenGroupware   SSH   SVN   Schlüsselband   Schule   Seagate Freeagent Dockstar   Server   Serversicherheit   Sesamstraße   Shellscripting   Shopping   Shortlinker   Skype   Social Networks   Software   Spam   Spenden   Spongebob   Straßenverkehr   Support   TV   Technik   Textverarbeitung   Thunderbird   Truecrypt   Twitter   Typo3   UMTS   USA   USB   Ubuntu   Underground Shopping   Urheberrecht   Urlaub   VMWare   VNC   Vereine   Verkaufen   Verstärker   Videorecorder   Viren und andere Schädlinge   Virtual Box   Vorratsdatenspeicherung   WLAN   Wahlen   Webspace   Wehrdienst   Weserbergland   Willkommen   Windows   Windows 7   X11   XFCE   XML   XStylus   Zeitschriften   Zensur   bind9   ffmpeg   netcup   openSSL   r0ket   sim4000.de   vim   Überwachung   Überwachungsstaat   üäx.de   1337