Monday, November 1. 2010
(The following is a kind of current-state analysis, maybe leading to my long intended anti-WWW rant. It might become more interesting in a few years.)
Honestly, I think Twitter is a broken technology. 140 characters are way too few to provide useful context. And as URLs eat from this character pool, the urge for link shorteners simply leaves this service behind broken, IMHO. Just look at this plot of the distribution of tweet lenghts:
Well, some misuse Twitter as a chat, although IRC would be the technology of choice for that. I mainly use it as a news stream. In fact, Twitter changed their orientation from individual “Took a dump, ate a banana” status updates to personalized news. Although RSS or Atom are dedicated technology for collecting headlines and articles (and keeping their read/unread state), Twitter provides a unified time flow (that passes by, no matter if you read it or not). And while RSS/Atom is a kind of pull technology (i.e. you have to look at different feeds and articles for yourself), Twitter is a push variant where all elements meld into a single data stream.
The problem is, in engineering terms, there’s so much noise in the data; there’s so much irrelevancy occurring in the timeline, at least in mine. I followed more and more people, like “Hey, this guy developped that app, and there’s a link to his Twitter”, or I chose to follow various companies when I noticed they had an account at Twitter. But more and more often I asked myself where a certain guy/gal I followed actually came from.
I’m wasting too much time at Twitter. Meanwhile, I’m following more than 250 people. (Yeah, I think those who follow >300 are simply nuts. How the hell do they handle their timeline? How can they claim Twitter is not a distraction?)
Me wants:
- More than 140 characters please. 200 or so should be OK. Or, better, do it like Google Buzz or Facebook and just collapse longer posts.
- Attach personal notes to provide the context about who this Twitter user is or why it was interesting to follow him/her. Their own bios are often useless.
- Some sort of global maximum tweet rate to allow skipping of irrelevant tweets
- Give weights to followers: “Important” followers should always be in the timeline, while tweets from others are allowed to be skipped if there are too many tweets; also, some followers might be muted, but not unfollowed (i.e. some kind of bookmarking).
- There should also be a rate per user. If one suddenly starts to reproduce audio content from e.g. a conference talk, I shouldn’t be bugged, please.
- The decision about relevance should be made similar to the My6Sense client. This innovative client aggregates from one’s Twitter, Facebook, Google Buzz and Google Reader subscriptions and automatically learns the topics that are most interesting for the individual.
- This automatic learning should be done using the read messages/articles (like My6Sense does) and/or by buttons in a “plus”/“minus” manner to prevent “accidentally” read articles from becoming relevant.
- URLs should not eat from the character pool and be placed in some kind of footnotes. Or, rather, make them the usual linked words.
Of course, a lot of this already sounds like RSS. But there are tweets that are status updates per se and don’t contain URLs.
It appears to me that Twitter and RSS (and maybe the whole social *BUZZWORD ALERT* media) are becoming “the HTTP of a new WWW”: It’s up to new and upcoming user interfaces to aggregate, weight, filter, sort and manage content coming from various data streams; new user interfaces for new devices, but also for the “old scholars”. I noticed recently that things are becoming better for me when using different Twitter—or rather, aggregator—clients, like TweetDeck or My6Sense. It’s becoming important for me to not just scream or hear screams, but to consume and provide relevant information.
Thursday, October 21. 2010
This is just a note for myself what hacks I applied to my phone to make it more usable to me. This is to reproduce these settings once I flash the full Android 2.2 “FroYo” image onto my Motorola Milestone:
- AdFree Android to hide ads in nearly all apps. This is done by installing a /system/etc/hosts file with ad-servers’ IPs pointing to localhost.
- Memory hack: Dalvik-cache is moved from the /data to the /cache partition to free up some space.*†
- Apps2sd: The whole /data/app[-private] directories are placed on the SD card to free up even more space.†
- Overclocking and o/c profiles: The Milestone/Droid’s factory setting is the 600 MHz CPU downclocked to 550 MHz, however, I run it on 800 MHz, but only when the display is on.
[Update Oct 31] I almost forgot to mention the CPUfreq interactive governor, which I installed in addition.
- JIT compiler backport to make all apps faster.*†
- QUERTY keyboard layout despite the German/European QUERTZ key arrangement.*
- Have WaveSecure as system app to be able to localize it via GPS remotely anytime.†
- Make screenshots using drocap2.
- Autostarts to avoid starting too many apps at boot time.
- Hot Reboot for quick UI restarts instead of lame cold reboots.
- Uninstall/reinstall some system apps such as the default browser or XING; this is a work-around for the “Package file is invalid” error messages in the Market.
- Some tweaks of the build.prop to avoid hiding some apps in the Market*, plus more window events per second.
- Busybox to get a full GNU/Linux command line environment with bash, grep & Co.*
- [Update Oct 27] Replace the YouTube app by the new and backported version†
- [Update Nov 9] A hack to display the battery level in 10%-steps instead of 20%.
* Achieved by TimeTurn’s OpenRecovery for Milestone † Not needed anymore in 2.2
And while we’re at it: Of course the Android system has got some flaws, but I think the situation’s similar to desktop environments: The on-board software is able to provide some basic things, but it’s up to third party developers to provide apps with full functionality, especially when I think of features regarding contacts (e.g. edit groups and birthdays, share via Bluetooth or SMS), calendar (e.g. search) or e-mail (e.g. search). Further apps I have installed are on this always almost complete and up-to-date list—HTH:
Continue reading "Why I rooted my phone"
Thursday, September 9. 2010
Ich habe nun wieder meinen von früher lieb gewonnenen Downstream von 16 Mbit/s und Upstream von 1 Mbit/s – und das außerhalb des Ballungsraums. Eher durch Zufall bin ich draufgekommen, dass es sowas wie VDSL gibt, noch dazu in Österreich, und noch dazu ausschließlich von der Telekom, für die ich mich letztlich entschieden hatte. Fast zwei Jahre lang fuhr ich ja auf 6 Mbit/512 kbit, was eigentlich für mich ganz OK war, abgesehen vom schneckenden Upstream bei Foto-Uploads oder Mail-Attachments. Nun habe ich mit deren GigaSpeed 16 also wieder meine „1-fache“ Geschwindigkeit, ohne auf Alternativtechnologien wie TV-Kabel oder Funk ausgewichen zu sein. Bei SpeedTest.net konnte ich 10–11 Mbit (max. 12,5 Mbit) Downstream messen, während der Upstream recht gut mit bis zu 0,96 Mbit ausgereizt wird; beides also praktisch eine Verdoppelung.
Es wäre sogar das GigaSpeed 30 mit 30 Mbit/3 Mbit möglich gewesen, wäre aber zu viel des Guten für meine Verhältnisse. Warten wir erstmal ein paar Jahre ab, bis des Sohnes Ansprüche größer werden.
Monday, June 14. 2010
Zu meinem Initialposting zu diesem Thema gibt es nun ein Update: Die SCOTTY mobil-Version für (Non-Android) Motorola-Handys, scottymobil_mot.zip, lässt sich nun via NetMite.com konvertieren und auf Android-Smartphones via J2ME Runner (aus dem Market) betreiben. Ob auch die anderen Versionen laufen, war ich zu faul auszuprobieren; vermutlich funktioniert es nun einfach dank eines aktualisieren J2ME Runners. Die Applikation scheint jedenfalls vollständig zu funktionieren. Leider wird damit den ÖBB der Druck genommen, doch noch eine offizielle Version für Android zur Verfügung zu stellen.
Sunday, May 2. 2010
Besides the fact that it was a pain to find out how ImageMagick’s -average option is to be used, it turned out to operate wrongly. The switch calculates the mean of an image sequence, i.e. the mean color values for every pixel. Say, if you have a bunch of images with file names like img*.jpg and want the average saved into avg.jpg, the command line is:
$ convert img*jpg -average avg.jpg
Pretty intuitive. The problem is that you define the mean image Ī[n] of n images I[k] as
while ImageMagick does it recursively as
(with Ĩ[1]=I[1]),
giving you wrong weights 1⁄2n−k+1 like e.g. for n=8
instead of the intended weights 1⁄n like
.
This misbehaviour can be proven e.g. by taking this sequence of a plain blue, green and red image:
and averaging it with the above command. The result is too reddish:
The solution I found was to call convert recursively like this:
#!/bin/bash
i=0 for file in img*jpg; do echo -n "$file.. " if [ $i -eq 0 ]; then cp $file avg.jpg else convert $file avg.jpg -fx "(u+$i*v)/$[$i+1]" avg.jpg fi i=$[$i+1] done
By this, the average of the above example images correctly becomes gray:
There might be similar problems with the other image sequence operators, but I haven’t examined them. Maybe I should file a bug.
Friday, April 16. 2010
Ich bin unlängst von einem Symbian-Handy auf ein Android umgestiegen und wollte die Applikation SCOTTY mobil von den ÖBB dort weiterbenutzen, um bequem aktuelle Zugverbindungen bzw. -verspätungen abrufen zu können, jedoch: Es gibt diese App nicht für Android, und auch nicht auf absehbare Zeit. Daher liste ich hier einmal die Möglichkeiten auf, die bleiben. Eins vorweg: Sie sind allesamt höchst unbefriedigend. - Webbrowser: Die schnelle Lösung in der Not ist, mit einem Android-Browser Fahrplan.OeBB.at abzurufen. Davon gibt es leider keine offizielle Mobilversion, ich kenne nur die in das WAP-Portal Live.A1.net integrierte für A1-Kunden. Abgesehen davon, dass dies nur online erfolgen kann, ist mir keine Möglichkeit bekannt, Verbindungen für einen späteren Abruf zu speichern. Start, Ziel und Zeitpunkt müssen immer wieder neu eingetippt werden, was eine Qual ist, wenn man nur „mal eben“ vorab nach Verspätungen sehen will. Apropos: Diese lassen sich ausschließlich auf diese Weise erfragen.
- SCOTTY mobil mit Tricks doch auf Android nutzen: Ich kenne zwei Möglichkeiten, um eine (J2ME) Java-App in ein Android-Format zu konvertieren:
- J2ME Runner: Diese via Android Market installierbare App erlaubt es, das originale .jar/.jad von den ÖBB in ein .apk zu konvertieren und zu installieren. Ein Startversuch führt dann aber kommentarlos und umgehend zum Homescreen zurück.
- MicroEmulator: Ich habe mir tatsächlich die Mühe gemacht und auf einem PC eine komplette Android-Entwicklungsumgebung eingerichtet. Mit ein paar Kniffen erstellt man damit ein Paket, welches nach Installation am Handy tatsächlich ein SCOTTY mobil startet, in dem sich sogar Haltestellen auswählen lassen! Schickt man jedoch die eigentliche Suchabfrage ab, verabschiedet sich die App reproduzierbar mit einem Force-Close. FAIL.
- Qando.at deckt leider nur den Ostösterreichischen VOR ab. Mit der oben erwähnten MicroEmulator-Methode kann man die Java-App auch auf Android installieren und sogar nutzen, inklusive Touchscreen. Nachteil: Die Android-Softwaretastatur funktioniert nicht, nicht einmal eine Hardwaretastatur wie beim Motorola Milestone. Man ist vollständig auf die integrierte, äußerst schlecht bedienbare und winzig kleine Softwaretastatur angewiesen. Verbindungen lassen sich zwar als Favoriten speichern, die Fahrpläne werden aber stets nur online nachgeschlagen; Verspätungen sind keine abrufbar.
- FahrplanAT: Diese Android-App findet man eventuell auch als TimetableAT im Android Market, benutzt aber offenbar kein offizielles ÖBB-API, sondern scheint unter der Haube einfach die Suchabfragen via Webinterface abzusetzen und die Ergebnisse herauszuparsen. Den selben Irrweg scheint (laut Code) auch die freie und unfertige App open-scotty einschlagen zu wollen. Diese Methode ist zum Scheitern verurteilt und steht und fällt mit dem Wohlwollen des offiziellen Betreibers der Website, also der ÖBB. Die Deutsche Bahn etwa, die übrigens sowohl eine mobile Website als auch eine native Android-Version anbietet, kennt solche Fremd-Apps und duldet sie nur, solange deren Abfragen sich nicht störend auswirken. Immerhin bietet FahrplanAT eine GPS-Lokalisierung und eine Historie bereits abgefragter Verbindungen an. Abrufe erfolgen aber wiederum stets online, ohne Daten über Verspätungen.
Thursday, February 25. 2010
Eric Brasseur explained a “bug” in the scaling algorithm of current image processing software. It’s not really a bug, technically, or mathematically. Calculating the numerical average of the surroundings of a pixel as the new color value is a pretty correct approach to scale an image down—if it’s seen as a data matrix. Rather, it’s visually not the thing you’d expect.
Technically speaking, the problem is that “the computations are
performed as if the scale of brightnesses was linear while in fact it is an exponential scale.” In mathematical terms: “a gamma of 1.0 is assumed while it is 2.2.”
Here’s an example of what might occur:
The wrong way:
- Take this image as a start:
- Simply scale it down to 50%:
Obviously, this might not be what you intended.
The right way:
Continue reading "Work around the image scaling "bug""
... you have an electronic hacker in your neighborhood. I bought the cheap Chinese solar USB charger revolt “4 Seasons” and wanted to use it to charge my Motorola Milestone/Droid or other devices while travelling by train or bike or during a hike. Unfortunately, it only provided power to “dumb” devices like not-so-smart phones or USB On-The-Go hard disks. When I connected it to my Milestone, the phone didn’t jump to the charging state. WTF? It turned out that modern smartphones like Milestone/Droid or iPhone rely on a properly implemented USB standard, what means that it’s not enough that the two outermost USB pins carry the needed voltage, but the inner pins must also provide a minimal “data voltage”. The problem is described here, and here is a DIY solution. Thanks go to my work mate Wolfi for hacking the solar charger successfully.
|