One week ago I found my old 17″ TFT behind a sofa while cleaning up. There is lots of technical stuff hidden in my flat I tend to forget after a while. I immediately started thinking what I could do with it in combination with all the other computer parts I have lying around, so I came up with my very customized KITCHENPC.
The system is based on an old (recycled) Asus Pundit-R and a lot of cabeling. I just took a little bit of my kitchen apart to get all the cables behind the tiles. Something I hate is cables hanging around although they could be perfectly hidden. Cables can easily kill the aura of beautifully designed devices.
While building the KITCHENPC I started dreaming of what I will be doing with it as the goal of the KITCHENPC was so far, well, let’s say unspecified. The coolest thing that came into my mind was adding touchscreen support. After searching on ebay a little while I found the right thing: 17 inch USB Panel Kit Set from eBay Seller easyworldwidetrading for only about 65€ including shipping from Hong Kong.
The panel comes with a driver CD but those are outdated. All current drivers can be obtained from eGalax. I tested it on my MacBook Pro just for curiousity and it worked fine with the Snow Leopard drivers. Installation on Ubuntu in my kitchen was straight forward as well. Running setup.sh was all that was needed.
The PC is located behind the wall on the right. All the cables are hidden behind the tiles.
Booting for the first time.
The screensaver runnning a great slideshow ;)
Asus Pundit-R
The 4-wire touch panel add on kit.
Mounting the USB touchkit controller inside the screen
Plugging all the cables for the touchkit controller
This is a sneak preview of my current project which is still work in progress but about to be in its end phase in the next 2 weeks. Basically it is a Java desktop application running on Mac and Windows to setup Internet radio stations and podcasts for a special Internet radio which can be connected via USB. This product is still under development so I am not allowed to give more informations about it at the moment.
The user interface was heavily customized by the client using Photoshop and then implemented in Java Swing. This application therefore is a great example on how un-Java-like a Java application can look like. I think Java applications look awful except on a Mac where Apple took a lot of effort to make them look as native as possible. So I liked to replace most of the standard GUI widgets by customized ones a lot.
Choose your Internet Radio Stations or Podcasts from the vTuner portal.
Choose your preferred wireless networks and configure them.
Set your preferred language for the application or change general settings.
Am vergangenen Samstag war es endlich so weit, theviennaproject.com ging in Wien über die Bühne. Es war ein ereignisreicher Tag für alle Involvierten mit einer gelungenen Abschlussparty am Abend im Little Buddha. Ein wirklich gelungener Tag für alle.
Die Aufgabe der Software hinter tvp09 war das Tracking der Agenten sowie ein Messagingsystem. Das System bestand aus 4 T-Mobile G1, sowie 4 T-Mobile G2 für die Agenten, einem Server der die Daten sammelte und einem Webinterface das im Headquarter zum Einsatz kam. Sofern man Erfahrung mit Java, Eclipse und vielleicht sogar noch Embedded Systems hat kann man auf Android extrem schnell durchstarten und Applikationen schreiben.
Begrüßung der Agenten
Eines kann ich gleich vorwegnehmen: Android ist für Entwickler ein absoluter Traum. Man hat komplette Narrenfreiheit und hat auf wirklich alle Featueres kompletten Zugriff. Applikationen können parallel laufen und man kann davon ausgehen permanent über eine Internetverbindung zu verfügen. Jegliches Feature des Phones lässt sich auch nutzen: Internet, Video, Audio, Fotos, GPS, Orientation, Compass, Vibration, Notifications, OpenGL ES, Batterielevel, mir fallen garnicht alle ein. Die Liste ist nahezu unendlich. Als eines der Hauptfeature der Trackingapp hat sich tatsächlich die Überwachung der Batterielevel aller Agenthandies herausgestellt.
Und kaum lobe ich Android muss ich dem auch schon wieder entgegenreden: Android in der Version wie sie Google auf dem G1 und dem HTC MAgic herausgebracht hat ist für Endanwender eine ordentliche Challenge. Selbst die Google Entwickler selbst (siehe Google I/O Videos am Ende des Blogs) entschuldigen sich für etliche Fehler im UI. Android ist langsam, sicher nicht flüssig und bei weitem nicht Intuitiv. Wenn ich von Intuitiv rede denke ich immer an den ultimativen Kindertest. Wenn ein Kind ein iPhone in die Hände bekommt so erklärt es einem innerhalb kürzester Zeit alle Feature. Bei Android muss dann aber doch ein Erwachsener zuerst das Manual zu rate ziehen.
Ich hatte in den letzten Monaten mehrere Handys im Vergleich: G1 (HTC Dream), HTC Magic, G2 (HTC Hero) sowie iPhone 3G und 3GS. Eines steht fest, das iPhone 3GS bietet alles in extrem eleganter und überschaubarer Form. Eine runde und vollendete Sache. Das T-Mobile G2 ist das erste Android Phone daß dem schon nahe kommt. HTC hat wirklich viel am UI getüftelt und Googles Standardapplikationen ersetzt oder aufgepeppt. Nachdem bis Ende 2009 noch etwa 15 weitere Phones von 7-8 verschiedenen Herstellern herauskommen werden sehe ich noch eine positive Zukunft für Android. Ein weiterer Hype wird sicher noch durch die Android Developer Challenge 2 ausgelöst werden bei dem es um bis zu 150.000 USD Preisgeld geht für eingereichte Applikationen.
Die Spuren der Agenten. Sofern kein GPS-Signal vorhanden ist wird auf ungenauere Cell-IDs umgeschaltet. Dadurch entstehen die Sprunglinien.
Fazit: Für Entwickler ist Android extrem spannend und für Grafiker noch ein unbeschriebenes Blatt das designed gehört. Für Endanwender die gerade in die Welt der Smartphones eintauchen ist es ein extrem interessantes Phone. Hat man aber schon mal ein iPhone länger in Händen gehalten ist Android nicht mehr ganz so glamourös und man vermisst die ganzen schönen flüssigen Animationen. Als Entwickler werde ich weiterhin iPhone als auch Android verfolgen. Es bleibt spannend!
PS: Gleich nach Ende des Spiels bin ich nach mehreren Wochen wieder von meinem HTC Magic auf mein iPhone umgestiegen. Es ist einfach um so vieles schöner zu bedienen…
Die Spuren der Agenten. Sofern kein GPS-Signal vorhanden ist wird auf ungenauere Cell-IDs umgeschaltet. Dadurch entstehen die Sprunglinien.
Die Agenten sind sehr genau geortet, sofern das GPS-Signal stark genug ist.
Am Ende des Spiels waren alle Akkus komplett leer, was die roten Ringe unterstreichen. Auf der rechten Seite sieht man das Messagingsystem.
Die Handys waren im extremen Einsatz. Permanent GPS Updates sowie alle 20 Sekunden Updates an den Server. Stresstest pur. Da gehen die Akkus schnell in die Knie.
Sommer, Sonne, Strand und iPhone. Für viele neuverliebte iPhone User könnte es nichts schöneres geben, dem iPhone würde das allerdings weniger gefallen. Sand und Wasser tun keinem elektronischen Gadget gut, umso besser dass ich jetzt ein Aquapac habe.
Nachdem ich gelegentlich Wakeboarden oder Kitesurfen gehe habe ich schon seit langem nach einer guten Lösung gesucht um mein Handy vor Wasser zu schützen. Oder noch schöner, es vielleicht sogar ins Wasser mitzunehmen um dann Fotos und Videos zu machen. Jetzt war die Zeit einfach reif und ich habe mir endlich ein wasserdichtes Plastiksackerl von Aquapac bestellt. Bisher hab ich mich davor gescheut 30€ für eine Plastikhülle zu zahlen, aber für mein iPhone tu ichs ja dann doch.
Die Verpackung verspricht 3 Jahre Garantie und 100% Wasserdichte bis zu 5m, was ich ja schon sehr erstaunlich finde. So tief war ich noch nie unter Wasser! Ich find die Idee mit meinem iPhone abzutauchen zwar reizend aber mir wär dann doch ein wenig mulmig dabei. Beim auspacken merkt man dann allerdings sofort dass das wohl wirklich möglich wäre. Das Ding ist zwar nur aus Plastik fühlt sich aber nicht billig an und der Verschluss sieht ebenfalls gut verarbeitet aus.
Also rein mit dem iPhone in die schützende Hülle, aber mit viiiieel Geduld. Mein iPhone bleibt schon nach wenigen Zentimetern in der Hülle kleben und lässt sich nur sehr langsam auf die neue Umgebung ein. Nach ein paar Minuten gelingt es mir dann aber doch und ich kann die Hülle verschließen. Das Touchscreen lässt sich unter Wasser nur schlecht bedienen, es funktioniert aber einigermaßen. Es reicht jedenfalls um ein kurzes Unterwasservideo zu machen:
Gerade in Verbing mit dem iPhone 3GS mit wirklich guter Videoqualität ist dieses Gadget für den nächsten Strandurlaub auf alle Fälle das Geld wert. Unterwasservideos und Fotos sind mit den Schützhüllen von Aquapac endlich mölgich und bringen sicher noch mehr Spaß mit dem iPhone 3GS (so lange es nicht untergeht). Die Hülle lässt sich natürlich auch mit allen möglichen anderen Handys nützen.
Tip: Um das iPhone leichter rein und raus zu bekommen am besten ein Stück Papier eng um das iPhone falten und es dann so in die Hülle stecken. Das Papier bleibt nicht an der Hülle kleben und man kann es einfach wieder rausziehen.
Creating a Button with custom background images is quite easy based on a JLabel and a MouseListener. I couldn’t find a better solution on google so I quickly came up with this solution. No need for further explanations. Just check out my Source Code. Please leave a comment in case you have a much better solution!
package at.techforce.gui;
import java.awt.AWTEventMulticaster;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
public class ImageButton extends JLabel implements MouseListener {
public final static int NORMAL = 0;
public final static int PRESSED = 1;
public final static int OVER = 2;
public final static int DISABLED = 3;
public final static int STATES = 4;
private boolean isMouseOverButton = false;
private ActionListener actionListener;
private String action_command;
private int state = NORMAL;
private ImageIcon stateImages[];
private Color textColor[];
public ImageButton(String t, ImageIcon normal, ImageIcon over, ImageIcon pressed) {
this.textColor = new Color[STATES];
setTextColor(NORMAL, Color.BLACK);
setTextColor(OVER, Color.BLUE);
setTextColor(PRESSED, Color.WHITE);
setTextColor(DISABLED, Color.GRAY);
setForeground(this.textColor[NORMAL]);
setText(t);
this.stateImages = new ImageIcon[STATES];
setImage(NORMAL, normal);
setImage(OVER, over);
setImage(PRESSED, pressed);
setOpaque(false);
addMouseListener(this);
setIcon(normal);
setVerticalTextPosition(CENTER);
setHorizontalTextPosition(CENTER);
}
public void setImage(int st, ImageIcon i) {
this.stateImages[st] = i;
}
public void setTextColor(int st, Color c) {
this.textColor[st] = c;
}
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
isMouseOverButton = true;
setCursor(new Cursor(Cursor.HAND_CURSOR));
state = OVER;
setIcon(stateImages[state]);
setForeground(textColor[state]);
}
public void mouseExited(MouseEvent e) {
isMouseOverButton = false;
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
state = NORMAL;
setIcon(stateImages[state]);
setForeground(textColor[state]);
}
public void mousePressed(MouseEvent e) {
state = PRESSED;
setIcon(stateImages[state]);
setForeground(textColor[state]);
}
public void mouseReleased(MouseEvent e) {
if(isMouseOverButton) {
state = OVER;
setIcon(stateImages[state]);
setForeground(textColor[state]);
processActionEvent(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, action_command, e.getModifiers()));
} else {
state = NORMAL;
setIcon(stateImages[state]);
setForeground(textColor[state]);
}
}
public void addActionListener(ActionListener l) {
if (null != l)
actionListener = AWTEventMulticaster.add(actionListener, l);
}
public void removeActionListener(ActionListener l) {
if (null != l)
actionListener = AWTEventMulticaster.remove(actionListener, l);
}
public String getActionCommand() {
return action_command;
}
public void setActionCommand(String action) {
this.action_command = action;
}
protected void processActionEvent(ActionEvent e) {
if (actionListener != null)
actionListener.actionPerformed(e);
}
}
Barcodes kennt jeder vom Einkaufen. Sie befinden sich auf jedem Produkt und erzeugen das schöne biepen an der Kassa. Sie speichern eine eindeutige Nummer zu jedem Produkt um sie dann bei der Kassa erkennen zu können.
Eine interessante Erweiterung sind QR-Codes. Ursprünglich 1994 für die Autoindustrie entwickelt verbreiten sich diese Codes auch in andere Bereiche seitdem nahezu jedes Handy auch eine Kamera hat. Vor allem in Japan sind diese Codes bekannt und sind zB auf vielen Werbeplakaten zu finden.
Doch was kann man mit diesen Codes machen? Sie sind eine interessante Art Daten in mobile Devices zu laden. Man kann mit Hilfe von Quick Response Codes mit nur einem einzigen Klick Webseitenlinks, Telfonnummern, SMS oder Text aufs Handy bekommen.
Das Bild in diesem Blogartikel ist zum Beispiel ein QR-Code der den Link auf techforce.at enthält. Generiert habe ich diesen QR-Code auf kayway.com. Startet man jetzt QuickMark und zeigt mit der Cam auf das Bild so öffnet sich sofort die Webseite für den Link. Das geht übrigens auch nahezu mit jedem anderen Handy mit Cam. Anstatt also einen Link einzutippen öffnet man lediglich QuickMark.
QuickMark ist noch ein Vorreiter und kostet 1,59€. Es gibt eine Gratisversion, jedoch kann man mit der Version nur Fotos scannen und nicht in Realtime mit der Cam arbeiten. Mehr Infos über verfügbare QR-Code iPhone Apps gibt es auf splitbrain.org.
Was natürlich mittlerweile auf keinem iPhone fehlen darf ist ein Twitter Client und davon gibt es unzählige. Mashable hat im Mai einen Twitter iPhone App Vergleich gemacht und kommt dabei auf 29. Ich beschränke mich hier auf die 3 gängigsten +1 die ich auch selber in den vergangenen Monaten verwendet habe und die mir auch häufig von anderen als Lieblingsapp fürs iPhone genannt werden.
TweetDeck
Zunächst mein persönlicher Favorit. Ich finde es gibt keinen Twitter Client der übersichtlicher und mit ausgeklügelteren Effekten kommt als TweetDeck. Bekannt von Win, Mac und Linux hat der Client am iPhone abenfalls mehrere Spalten die man individuell verwalten kann. Standard sind “All Friends”, “Mentions” und “DM” wobei man diese natürlich löschen oder ändern kann. Sofern man auch die Computerversion verwendet so kann man die iPhone App über einen TweetDeck account auch syncen.
Twitteriffic
Ein Client den ich ebenfalls sehr gerne verwende weil er sehr übersichtlich ist. Alle Funktionen sind schnell bei der Hand und man erkennt durch farbliche Hinterlegung der Tweets ob es ein eigener Tweet war, eine Direct Message oder ein Mention. Möchte man auf einfach Art mit gutem Design twittern dann empfehle ich Twitteriffic.
Tweetie
Etwas weniger verspielt und nicht ganz so verliebte Grafiken dafür aber umfangreich. Tweetie kann alles was ein Twitter Cilent nur bieten kann und deswegen auf alle Fälle das Richtige für Poweruser.
TweetMic
Wenn man nicht einfach nur twittern möchte sondern gleich die Stimmung von einem Livekonzert verschicken möchte so vermag das TweetMic zu tun. Einfach aufnehmen was auch immer man aufnehmen möchte, eine Message dazu und abgezwitschert. Ein Beispiel wie sich so ein Tweet anhört gibts hier. Eine App die wohl eher seltener Anwendung findet aber sicher manchmal ganz lustig ist.
Eine App die es in sich hat ist PhotoForge. Es ist tatächlich ein kleines aber feines Bildbearbeitungsprogramm. Es gibt etliche Tools mit denen man gleich loslegen kann um ein Fingerbild zu malen oder aber, was mich begeistert hat, man kann damit Fotos die am iPhone gespeichert sind bearbeiten. Natürlich kann man auch aus der App gleich ein neues Foto machen. Das Bearbeiten geht von einfachem Beschneiden bis hin zu einer Vielzahl an Filtern. Die fertigen Bilder können dann wieder in der Galerie gespeichert werden und dann per MMS oder sonst wie geshared werden. Die App kostet 1,59€ und ist den Preis auch wert. Vom selben Entwickler gibt es noch weitere Phototools die sicher auch interessant wären.
I accidently googled for google.com and was pretty surprised what Google found out about itself.
A friend of mine posted a comment below with a link to youtube explaining what horrible mistake I made to google for google. Thanks Franzo, I really didn’t know!
Twitter backgrounds are a pretty simple but effective way to enhance your Twitter profile. It adds a more personal note to your account. More than the short bio and profile pic would let you.
There are several online sources which help you to create a customized Twitter background but I don’t like any of those as I prefer to do things myself and have full control of the final result. So I made my own Photoshop template which I am sharing here. Feel free to download it below and customize it anyway you want it! Enjoy!