الجمعة، 8 أكتوبر 2010
Movie: Grand Canyon (1991)
“Grand Canyon” [uk] is a great movie from 1991 with Danny Glover (after the 2nd “Lethal Weapon” movie) and Kevin Kline. I originally saw it when it came out and re-watched it today. It is a bit more somber in the middle than I remembered, but ends fairly upbeat. Lawrence Kasdan wrote and directed it. As an aside, he is responsible for the 2nd and 3rd original Star Wars movies having good scripts. For the new ones, George Lucas decided that he could write the scripts himself. And we all know how that turned out.
Bill Murray gives a rare interview
In August 2010, GQ published an interview with Bill Murray. It is one in only five he has done during the last 10 years. Reading it, one learns a lot of curious facts. For example, to do business with him, you have to call an 800 number and then he gets back to you – or doesn’t.
الأحد، 3 أكتوبر 2010
Sub-100ml products
If a container holds at most 100ml of liquid, you can take it with you in your hand luggage on an airplane. I don’t know if they were there before this regulation, but I’ve recently noticed whole shelves in shops (e.g. Rossmann in Germany) dedicated to sub-100ml products: toothpastes, deodorants, shampoos, etc. Cute and useful.
Update 2010-10-05: Looks like the 100ml limit will be lifted by 2013, thanks to new detectors that will be deployed by then. I wonder what this will do to the burgeoning sales of bottled beverages at airports. [Source: Focus via Marianne Busch]
Flattr
Update 2010-10-05: Looks like the 100ml limit will be lifted by 2013, thanks to new detectors that will be deployed by then. I wonder what this will do to the burgeoning sales of bottled beverages at airports. [Source: Focus via Marianne Busch]
Flattr
Killer new GoodReader feature: PDF annotation
GoodReader is an iOS application for transfering and reading files, especially PDFs. The lastest version supports PDF annotation which is great when you have to give feedback on someone else’s work.
السبت، 2 أكتوبر 2010
Finally! JavaFX script is dead
I never fully understood JavaFX script. It seemed like a nice enough language, but it neither completely replaced Java nor integrated well with it. Furthermore, some of the features of its library were sorely missing from Java, but not accessible from it. This is why it is refreshing to see the new JavaFX Roadmap. Its main tenet is that JavaFX script is being discontinued and that JavaFX becomes a framework for Java with many exciting features:
Update 2010-12-15: Why the new JavaFX makes sense
- Binding API: Well, OK, yet another one. Here is hoping that it will not be too cumbersome and find broad acceptance. The API will include observable collections (which are handy for GUI lists and tables).
- Media framework: for audio and video. About time.
- HTML5 support: parsing and display. Also desperately needed in Swing (SWT already has reasonable HTML display support).
- New table control: Apart from better looks, combining it with observable collections should get one the comfort offered by Glazed Lists.
- New rich text control.
Update 2010-12-15: Why the new JavaFX makes sense
الخميس، 30 سبتمبر 2010
الأحد، 26 سبتمبر 2010
The sound of one hand touch-typing
I’ve often wondered, if it would be possible to keep one hand on the mouse and just use a single hand for typing. This would especially speed up pointing-intensive tasks such as editing graphics. Matias actually sells a keyboard called the “Half Keyboard” that allows one to do so. As the name implies, it is half a keyboard with the mapping of the left hand that allows you to switch to the right hand mapping via Shift. You still type with your left hand, but can use the muscle memory of your right hand. This post has details on how well this works:
Unlike many purported "solutions" to typing problems, Half-QWERTY has actually been tested – at the University of Toronto Input Research Group (with which Matias is affiliated). After about ten hours of practice, most test subjects were typing with one hand at over 50% of their two-handed typing speeds; one subject hit 88% of her two-handed rate. Errors, however, were about twice as frequent as in two-handed typing.The post also mentions a few caveats, notably the problem that if you do not already touch type, usage might be a bit difficult to pick up. For touch-typists it would obviously make a great keyboard for mobile devices. For more on the idea of “one hand clapping”, you can look up Koan at Wikipedia.
Multi-touch versus keyboard
For recent travels I bought an Apple bluetooth keyboard (following the lead of my brother). It is a joy to have a real keyboard for typing longer texts (such as this one). Arrow keys are great for moving the cursor and for selecting text.
Apple has done an awesome job of supporting Bluetooth keyboards on the iPad. This surprises, because I don’t think there are many people who use one. Examples: All keys work, even strange ones like curly quotes. The same holds for the function keys (next track, pause music, screen brightness etc.). Selecting text with shift and arrow keys and the shortcuts for cut, copy, paste work, too. Furthermore, when the iPad is paired with a keyboard, the soft keyboard does not pop up, any more, saving screen space. The only current drawback is that I would love to have an English spell check while using the German keyboard layout (also know as “kezboard lazout” in the exotic circles that have this need).
Yet, the user experience is also a bit strange. It is liberating to have the iPad screen propped up in front of oneself and to be able to move around with the keyboard. But once I do that, I switch to “remote control mode”. Then a trackpad attached to the keyboard makes more sense than having to reach for the screen and touch. This might point to a new kind of hybrid notebook: The screen not being clamshell makes the iPad quicker to operate in most situations. For typing, an external keyboard is perfectly usable (I wish it didn’t need batteries, but at least they last long). But it probably needs to be foldable and have a trackpad. Then future user interfaces would be designed to be operated both by keyboard and by touch. Android’s use of cursor keys is exemplary in this regard.
Update:
Apple has done an awesome job of supporting Bluetooth keyboards on the iPad. This surprises, because I don’t think there are many people who use one. Examples: All keys work, even strange ones like curly quotes. The same holds for the function keys (next track, pause music, screen brightness etc.). Selecting text with shift and arrow keys and the shortcuts for cut, copy, paste work, too. Furthermore, when the iPad is paired with a keyboard, the soft keyboard does not pop up, any more, saving screen space. The only current drawback is that I would love to have an English spell check while using the German keyboard layout (also know as “kezboard lazout” in the exotic circles that have this need).
Yet, the user experience is also a bit strange. It is liberating to have the iPad screen propped up in front of oneself and to be able to move around with the keyboard. But once I do that, I switch to “remote control mode”. Then a trackpad attached to the keyboard makes more sense than having to reach for the screen and touch. This might point to a new kind of hybrid notebook: The screen not being clamshell makes the iPad quicker to operate in most situations. For typing, an external keyboard is perfectly usable (I wish it didn’t need batteries, but at least they last long). But it probably needs to be foldable and have a trackpad. Then future user interfaces would be designed to be operated both by keyboard and by touch. Android’s use of cursor keys is exemplary in this regard.
Update:
- 2011-01-20: The three contexts of device interaction
السبت، 25 سبتمبر 2010
18 common phrases to avoid in conversation
Fun. Includes the classic faux-pas “are you pregnant?” which is better asked indirectly as “you look great” (you can also borrow the addendum from an earlier tip, “what’s your secret?”).
Guides for watching TV series
There are many great TV series out there, but some of them take a while to become watchable (“Star Trek: The Next Generation” comes to mind) or have some awful episodes in them. Thankfully, there are people out there who are willing to protect the general public. For example, “How to get into 20 classic science fiction shows” helps with
Now, I’d really appreciate it if someone did the same for “Fringe” which has some weak episodes, but also some great ones (and more great ones the more it progresses).
Update 2011-04-17:
- Star Trek: The Original Series
- Star Trek: The Next Generation
- Star Trek: Deep Space Nine
- Star Trek: Voyager
- Star Trek: Enterprise
- Doctor Who
- Torchwood
- Red Dwarf
- The Prisoner
- The Twilight Zone
- Mystery Science Theater 3000
- The X-Files
- Buffy the Vampire Slayer
- Angel
- Dollhouse
- Babylon 5
- Highlander: The Series
- Battlestar Galactica
- Lost
- The Stargate Franchise
Now, I’d really appreciate it if someone did the same for “Fringe” which has some weak episodes, but also some great ones (and more great ones the more it progresses).
Update 2011-04-17:
الجمعة، 24 سبتمبر 2010
George Clooney on the Iraq war when it started
You can’t beat your enemy anymore through wars; instead you create an entire generation of people revenge-seeking. These days it only matters who’s in charge. Right now that’s us – for a while, at least. Our opponents are going to resort to car bombs and suicide attacks because they have no other way to win. [. . .] I believe [Secretary of Defense Donald Rumsfeld] thinks this is a war that can be won, but there is no such thing anymore. We can’t beat anyone anymore. [George Clooney in 2003]Quoted from the IMDB page on Clooney’s bio. Be sure to also check out his retelling of the fight he had with David O. Russell (just search for this name on the page).
Usability: phone numbers and special characters
Why do so many web sites insist that, when entering a phone number, you not type any non-digits such as spaces, hyphens, parentheses or slashes? The structure that these characters bring to phone numbers help humans considerably and computers can easily filter them out. So what is the harm of allowing them? I would even store phone numbers in a database as they were entered.
الأحد، 19 سبتمبر 2010
Touch user interfaces benefit the blind
The blind profit from accessibility features that are possible because of multi-touch. This seems counter-intuitive, because multi-touch conjures up the image of user interfaces that are sometimes almost too visually rich. Apparently, Apple’s implementation is very capable. You can, for example, point your finger at the screen and the computer speaks out what is there. It’s obvious that the same feature would not make sense with a mouse. Gestures are also great for blind people. Daring Fireball points to two moving stories of a blind guy who is very happy with what multi-touch allows him to do.
الجمعة، 17 سبتمبر 2010
Seven don’ts for websites
Source: xkcd |
- Intro page where you have to choose your location or language. If I go to foo.com then the .com indicates that I want to see the American version of the Foo Inc. website. I do not want to see a map of the world where I need to click several times to finally get to my destination. Example: gilette.de. A better solution is to put a link somewhere that allows you to jump to other versions. Flag icons work well here, because you don’t need to understand the language of the current version to jump to a different one (e.g. finding “Germany” on a Chinese website is difficult if you don’t read Chinese).
- Site version determined by IP location. If you use a web browser, the websites you are visiting know your IP address (five digits such as 127.0.0.1). In principle, this address is completely abstract (as opposed to, say, ZIP codes which can be mapped to a location), but there are databases that allow you to map it back to a location. This works pretty well, but is sometimes abused to automatically switch to the language of your location. But what if you are an American who is abroad and wants to access an American website. Or if you are German and want to check out an American website (not its German version). Example: eonline.com. Solution: A small note in the language the site thinks it has detected. Something like “Click here to see the English version of this page”.
- Skippable intro page. Often such a page shows a movie that tells you what the website is about. By all means, link to introductory information on the home page, but don’t force me to watch/read it, every time.
- Complete site implemented in Flash. I don’t particularly like Flash. It still has its uses for video, but most other things can now be done in HTML5. With Flash, you cannot bookmark pages or copy text. The website’s content cannot be found via Google and it won’t work on (most) mobile devices. Furthermore, most Flash websites make up strange new ways of navigation. Why change something that people know and that works well? Example: gilette.de.
- Ugly URLs. URLs should be compact and easily understandable by humans. That is, one should be able to figure out what a page is about by looking at the URL. Thus, if the page ever goes away, one has a greater chance of finding out where it went. Amazon is both a sinner and a saint here. Some Amazon URLs have a lot of ugly pieces in them (“ref” and such). On the other hand, book URLs sometimes include the ISBN and an abbreviation of the title. This is a great practice, because the ISBN is a unique ID that is useful to both machines and humans and because the title allows humans to figure out what is there. Lazy programmers sometimes let the fact that there is a single script that displays all web pages show up in the URL: www.example.com/display.php?page=start. Even worse are meaningless page IDs (?page=17). Both can be avoided by putting in a little more effort.
- Content is hard to find. Often, a website shows all kinds of details, so that the things that people are most frequently looking for are hard to find. Especially expert-designed web pages suffer from this, because it is often difficult to focus for experts (in their area of expertise). Examples are bank and government websites. But food websites are also often problematic: I don’t want to play a game, I want to find out about the products and/or their ingredients. Example: See picture above.
- Error page discards original URL. This is fortunately rare, but every now and then, I discover an error page in my browser that says “page does not exist”. The problem is that the original URL is nowhere to be found: The error page URL has replaced it in the browser address bar (=history cannot be used) and it isn’t displayed on the error page. If there are many tabs open then it’s really hard to figure out what went wrong.
الخميس، 16 سبتمبر 2010
Idea: simple check-in for small items that are illegal on airplanes
Boy is it ever becoming complicated to fly these days: Because airlines want to save costs, you usually have to pay for checking in luggage on short-distance flights. But what you can bring in your hand luggage is extremely limited: no lighters, no sprays (as in deodorants), no pocket knives, etc. It would be nice if there was a way to quickly check in these small items without having to pay for them. They could be handed in at the security check and would be transported in the cabin, but locked away from passengers. Alas, considering how many passengers there are on even mid-sized airplanes, this is probably not feasible. But I’m sure it would be a competitive advantage for the first airline that does this. Maybe just for business class and first class?
Additional idea: a pocket knife without blades so that it can be carried in one’s hand luggage.
Additional idea: a pocket knife without blades so that it can be carried in one’s hand luggage.
الاثنين، 13 سبتمبر 2010
iPad tips and tricks
Keyboard pop-up keys: If you hold some keys a bit longer, a menu pops up with additional keys. Rules for these menus:
Buttons
Scrolling
Miscellaneous
Flattr
- If you hold and then let go, a default key in the pop-up menu will be pressed. In some cases this key is the same as the original key (“n” on the English keyboard), in other cases it is different (on the German keyboard, “u” leads to a “ü” and a comma leads to an apostrophe).
- If you hold and then slide to a key in the pop-up menu, that key will be typed.
- If the default key in the pop-up menu is different from the original key, you can also slide up starting in the original key and the default key will be typed. This is quicker than holding.
Buttons
- Shut down: press and hold Sleep/Wake button until red slider appears.
- Reset (forced restart): press and hold both Sleep/Wake and Home button.
- Force-quit an application: press and hold Sleep/Wake button until red slider appears. Then press and hold home button.
- Mute the sound: Hold the volume-down (=less volume) button.
Scrolling
- Scrolling nested areas in Safari: Sometimes there is a scrollable area inside a (scrollable) document. If you try to move the smaller area with your finger, all of the document moves. Solution: Use two fingers to scroll the smaller area. To try it out, you can go to this page and scroll the text areas.
- Vertical scroll lock: If you start scrolling straight down or up, a view locks into vertical scrolling and prevents accidental horizontal scrolling.
- Scrolling to the top: As mentioned before, tapping on the status bar scrolls to the top.
Miscellaneous
- Download a URL into GoodReader: Just prefix a “g” to the URL (so “http://...” becomes “ghttp://...” etc.). This allows you to copy a URL, paste it into a browsers address bar, prefix a “g”, and download it. Or you can download the current page by prefixing a “g”.
- The first day of the week in the calendar: can be configured in iCal, but unfortunately not on the iPad. Details: macbitz.wordpress.com/2010/07/08/ipad-little-known-difference-between-uk-and-us/
- Download the iPad user guide: at support.apple.com/manuals/ipad/
Flattr
What’s up with all the toolbars on the web?
Why are people always such mindless copycats? Facebook has a toolbar, so their web page needs one, too? I find such toolbars a major nuisance, they are distracting, take up screen real estate and every one of them has a different way of being hidden.
الأحد، 12 سبتمبر 2010
iPad wishes
After having used the iPad for a while now, I can now give a more definitive wish list. This post rehashes some of my earlier iPad post; read that post for a wider context.
Coming in iOS 4.2 (among other things):
Open issues:
More ideas:
Flattr
Coming in iOS 4.2 (among other things):
- Multitasking: Thank god for this one. Even though Apple’s version of multitasking is limited, it does practically everything that is needed while saving battery power. A biggie will be the ability to directly switch between applications, program-switcher style. No more detour to the home screen. Also having any app play music in the background is great. I hope they also make alarm clock apps work. Right now, alarm clock apps must be active to go off and if they wake up from sleep, they cannot turn on the display, you have to do that manually.
- Unified inbox: Using to email accounts in parallel is currently painful. One has to constantly navigate up and down the tree of mailbox folders to access the different inboxes.
- App folders: Giving names to groups of applications should help with finding them quicker.
- Printing: Never missed this, but I’m sure many people do.
Open issues:
- Unobtrusive notifications: In Android, the phone status bar contains a summary of important past and ongoing events (call missed, new email received, etc.). More information is also always accessible. This includes things such as the song currently being played and the phone being connected via USB. This is the one missing piece for completing the illusion of multitasking. If I compare the iPad with my desktop experience, I don’t mind that I can only access one application at a time (quickly switching them without losing state is another thing, see above). I do mind that I don’t see if I’ve received new email. Apple has hired the webOS notifications architect, so it seems that they are aware of the issue. The iOS 4 switcher that comes up after a home button double-click could be easily extended to provide more notification functionality. It is already used for printing and to control sound tasks that run in the background.
- Keeping web pages in memory: Currently Safari usually completely reloads a pages that are in the background and become active again. This is terrible, because it takes a long time. Couldn’t one use the flash storage to cache that data?
- Universal file system: File management is already possible, but only per application. This leads to a game called “where is my PDF”? In my Dop Box? In iBooks? In GoodReader? Ideally, such a file system could be mounted on the desktop and directly accessed. I would also love to have tags, possibly even instead of folders. To make the difference clear: A file can be in at most one folder, but could have zero or more tags.
- Cursor navigation: I still find the magnifying glass to slow. Roughly positioning the cursor with a tap and then using arrow keys for precise positioning would be great.
- More key on keyboard and/or a function key: Having to switch keyboard layouts just to be able to type numbers sucks.
- Hitting links in web pages: Links are often too small and zooming just to go to a link is time consuming. Android allows one to traverse links with a physical key. It might make sense for Safari to introduce a virtual key for this.
More ideas:
- More screen space for the app switcher:
- Could be used to show on/off switches for airport mode, Wi-Fi, etc.
- Use two apps side by side: The one-app-at-a-time approach of the iPad works in most cases, except when you have to, say, transcribe something from a web page in a text editor. Nothing more than a 50/50 split of the screen between two applications would be ever needed.
Flattr
الجمعة، 10 سبتمبر 2010
Great idea: the power supply as a mini docking station
Interesting product from Lenovo: Its “Power Hub” is a combination of a powered USB hub and a power supply. The HP Voodoo Envy did something similar and had an Ethernet port in the power supply. Taking the idea further, power supplies could become small docking stations in the future and contain larger not as frequently used ports such as VGA. On the go, without the power supply, you won’t need these ports and have a more compact notebook. But if you do want them, you only bring the power supply; no other adapters needed. Apple is bad with adapters (=there are too many), so this might be a solution for them, especially for the MacBook Air.
A vision for the future of New York City
Well, actually this blog post title is a bit tongue in cheek: A vision for the future of NYC is how it looked in the past.
For a long time, cars were high tech and cities mainly focused on accommodating them. This has been changing and other concepts are taking priority such as more modular city layouts, where you live close to you work place and/or telecommute so that you don’t need a car. Urban agriculture similarly avoids having to transport produce over long distances.
For a long time, cars were high tech and cities mainly focused on accommodating them. This has been changing and other concepts are taking priority such as more modular city layouts, where you live close to you work place and/or telecommute so that you don’t need a car. Urban agriculture similarly avoids having to transport produce over long distances.
الخميس، 9 سبتمبر 2010
VLC video player coming to iPad
This is good news for iPad users: VLC is coming to the iPad. VLC has always been a kind of killer application, because it allows you to play almost any video without the need to install plugins. Having it on the iPad is great. [Source: Mac Rumors]
Update 2011-01-08: “VLC: gone from the iOS app store”
Update 2011-01-08: “VLC: gone from the iOS app store”
الأحد، 5 سبتمبر 2010
Foreign languages: four ways to avoid learning vocabulary
Learning a foreign language is hard. The main tedium is to learn the vocabulary and the grammar. This blog post explains how to largely avoid these two steps. The methods for doing so are based on two observations. First, children manage to learn new languages really well. Second, songs in a foreign language can be seen as a lesson in that language. And one that you remember well, in contrast to many textbook lessons. Let’s use these observations to first dispel three myths about language learning and then develop four methods for more efficient learning.
Three myths about language learning
It boils down to whether you can push the knowledge down to your subconscious, whether you can automate it. And for that process, the intellect is often in the way. If you do tests, you strengthen uncertainty and thus the intellect. Later on, if you are already proficient, tests can be fun, but early on they often do more harm than good.
Four methods for more efficient language learning
Flattr
Three myths about language learning
- Myth: You need to test to activate your knowledge. Instead, there is evidence that beginners fare much better if they can remain passive. Otherwise, they would be asked to build on something that they don’t understand and that decreases confidence. I admit that this one is a bit counter-intuitive, but if you think about how long children stay relatively mute and mainly observe, it makes more sense.
- Myth: You need to learn vocabulary. Instead, it’s best to learn words in context. Learning individual words is hard, learning words in context is easier. The best example is how much text one remembers from songs in a foreign language. One “learns” the song as a whole and not the words, but one remembers their meaning, too, as a byproduct. Context and (less painful) repetition seem to help with recall.
- Myth: You need to learn grammar. Instead, it’s best to learn building blocks. If you know a language well, you don’t apply grammar rules, you use pieces you know. If something is grammatically incorrect, it “sounds wrong”, finding out why is much more complicated. That is, you have an intuitive feeling instead of explicit knowledge of the grammar. Backpedaling a little, I do think you should learn grammar (e.g., I find conjugation tables helpful), but its role is to support the building blocks and not the other way around.
It boils down to whether you can push the knowledge down to your subconscious, whether you can automate it. And for that process, the intellect is often in the way. If you do tests, you strengthen uncertainty and thus the intellect. Later on, if you are already proficient, tests can be fun, but early on they often do more harm than good.
Four methods for more efficient language learning
- Bilingual text: Take a short text in the foreign language and read it aloud many times. Most traditional textbooks contain this kind of text. Before you start reading, make sure that you understand the text. You should also listen to it being read by a native speaker. If a word is difficult, you write the translation above it (this is where the text becomes bilingual). The translation should be word by word, even if there is a better (non-literal) translation. This makes sure that you stay in the foreign language as much as possible. The repetition leads to the sentences being memorized and saying it aloud is speaking practice (without any uncertainties). [I’ve used this method for years, but have also later encountered it in the great German book “Sprachen lernen leicht gemacht” by Vera F. Birkenbihl.]
- Audio immersion: Download an MP3 in the foreign language and listen to it without actively trying to understand it. This is a complementary measure to other ways of learning a language and makes the sound of the language more familiar to you. It is best to start when you already understand a little. Repeating the same material several times is also beneficial. Thankfully, the internet now provides us with all kinds of MP3 material: news, podcasts, etc.
- Bilingual audio: It was just the other day that I’ve heard about a new auditory method for learning a language that is called “No-Work Spanish”. You listen to an audio book where each sentence in Spanish is followed by the translation in English. This method is the auditory analog of (1) and could obviously be adapted to other foreign and native languages.
- Pimsleur also provides auditory language courses.
- Learning with pictures: This is my abbreviated name for the Rosetta Stone language course series. It is obviously a simplification and you should read their web pages for an accurate description. Rosetta Stone (RS) simulates a child’s experience of adults pointing at things. It does so via a computer program that shows and names pictures with things, activities etc. You have a choice between ordering a CD with the program or of running the program online. In both cases it is the same program (a web application, including Flash technology). RS also employs voice recognition to check your pronunciation. All of RS is technically really well done: You can click on almost anything to hear it spoken; there is an alphabet with example words that is always accessible (I tested it with Russian); etc. Alas, it wasn’t for me. The words that I learned with RS did not stick, whereas I have no such problems when using method (1). But I’ve always found that I needed to see a word in writing if I wanted to remember it (RS is not all about pictures, but enough so that I prefer method (1)). So if you have a different learning style, this might well be the perfect solution for you. To find out if it is, you can check out the free test drive at their web site. You also have to see if you can afford it (=it is not cheap). As an aside, it would be nice to see their technology (such as clicking on a word to hear its pronunciation) applied to method (1).
Another visual way of learning new words are picture dictionaries. Googling for “picture dictionary” turns up great resources, many of them free.
Flattr
الأربعاء، 1 سبتمبر 2010
Addendum to the Apple 2010 fall event
Background information on the Apple 2010 fall event:
- iPod nano: is probably not based on iOS, but rather the old Pixo iPod OS.
- Ping...
- turns iTunes into even worse of a kitchen sink than it already is. Thinking about how iTunes could be broken up, it is interesting to note that on iOS, the corresponding functionality (play music, play videos, buy music/videos, ...) is already available via several apps.
- is great for Apple, because it allows them to data-mine (which they can’t risk with the Genius feature).
- is currently music-only, would make great sense for movies, too.
- AirPlay: works with compatible devices other than Apple tv. It is not sure, if it will work with Macs, though (as receivers as opposed to senders).
Two observations about the new iPod nano
Apple today presented a new iPod nano which is really small and has a touch user interface. Two predictions:
- The iPod nano makes the iPod shuffle meaningless. It is almost as small and has a display. Psychologically, it might be important for Apple to keep the shuffle, though, because cheaper options help sell more expensive devices. The shuffle could retain its usefulness if it still were a USB stick (as it was in the beginning), but I doubt that will ever happen.
- The iPod nano should become a watch. Steve Jobs already mentioned that one of the board members will strap it to his wrist. A nano watch would have many of the innovations of the Mutewatch (charge via USB, touch interface, etc.), but be more versatile. All that is needed is a “watch mode” where a single tap on the surface shows the time. Otherwise, the display would not be switched on, which should lead to the battery lasting long enough for comfortable watch use.
الأحد، 29 أغسطس 2010
3 TED talks on education
This blog post summarizes the content of three interesting TED talks on education:
Meyer argues that math textbooks prevent mathematical thinking and creativity by offering everything in small steps.
It is cool to see how he rewrites textbook exercises to make them more compelling and instructive.
Charles Leadbeater: Education innovation in the slums
In slums, education has to be pull, not push (as in mandatory, forced), because it competes with easy sources of money such as drug trafficking. Payoff has to be quick, what you learn has to make you productive immediately. In the industrialized world, education payoff and productivity are often postponed for years. In the developing world, there is a shortage of teachers, thus it becomes important to support peer teaching. One of the most important technologies is the cell phone. It should thus be used to support education.
Sugata Mitra: How kids teach themselves
Mitra did a “hole in the wall” experiment: He put a computer in a rural Indian area (accessed via a hole in a wall), left for 3 months and came back. The computer did not even have internet access, just a few CDs. When he came back, he talked to two children (8 and 12 years old) who played a game on the computer. They told him: “We need a faster processor and a better mouse”. Mitra, surprised: “How did you find that out?”. The children: “It was on the CDs”. Mitra: “How did you understand all this?” (the CDs were in English, but there was no English spoken in this area). Children: “Well, you left this machine which only talked English, so we had to learn English.” The children used 200 English words, not only with the computer, but also in their day to day conversations.
In later incarnations of this experiment, the first thing children did was to look for a web site that taught them the English alphabet. The overall result was that a computer enabled all children to teach themselves (regardless of any measurable factor such as economic wellfare, etc.). It had to happen in groups: Usually one child operated the computer and was surrounded by 3 children who advised. These children were again surrounded by 16 children who also advised, often incorrectly. The first 4 children had the same level of expertise and all children would pass a test on the topic learned via the computer. Adult intervention was not important. All these factors combined make this kind of education very affordable.
- Dan Meyer: Math class needs a makeover
- Charles Leadbeater: Education innovation in the slums
- Sugata Mitra: How kids teach themselves
Meyer argues that math textbooks prevent mathematical thinking and creativity by offering everything in small steps.
It is cool to see how he rewrites textbook exercises to make them more compelling and instructive.
Charles Leadbeater: Education innovation in the slums
In slums, education has to be pull, not push (as in mandatory, forced), because it competes with easy sources of money such as drug trafficking. Payoff has to be quick, what you learn has to make you productive immediately. In the industrialized world, education payoff and productivity are often postponed for years. In the developing world, there is a shortage of teachers, thus it becomes important to support peer teaching. One of the most important technologies is the cell phone. It should thus be used to support education.
Sugata Mitra: How kids teach themselves
Mitra did a “hole in the wall” experiment: He put a computer in a rural Indian area (accessed via a hole in a wall), left for 3 months and came back. The computer did not even have internet access, just a few CDs. When he came back, he talked to two children (8 and 12 years old) who played a game on the computer. They told him: “We need a faster processor and a better mouse”. Mitra, surprised: “How did you find that out?”. The children: “It was on the CDs”. Mitra: “How did you understand all this?” (the CDs were in English, but there was no English spoken in this area). Children: “Well, you left this machine which only talked English, so we had to learn English.” The children used 200 English words, not only with the computer, but also in their day to day conversations.
In later incarnations of this experiment, the first thing children did was to look for a web site that taught them the English alphabet. The overall result was that a computer enabled all children to teach themselves (regardless of any measurable factor such as economic wellfare, etc.). It had to happen in groups: Usually one child operated the computer and was surrounded by 3 children who advised. These children were again surrounded by 16 children who also advised, often incorrectly. The first 4 children had the same level of expertise and all children would pass a test on the topic learned via the computer. Adult intervention was not important. All these factors combined make this kind of education very affordable.
Trucks that ignore “low clearance” signs
...make for cool videos. I can’t believe that no one has come up with a solution for preventing this kind of accident. Should not be too hard. For example: Measure the truck height in advance and extend tire-killing spikes if it exceeds the limit (admittedly, this might cause other kinds of accidents). Or a GPS-based gadget that emits a warning sound if a low clearance location is close, to be installed in large trucks. [Source: Boing Boing]
السبت، 28 أغسطس 2010
The power of sweating the small stuff
Recommended: Rory Sutherland’s talk “Sweat the small stuff”. He posits that small things and encouragements are often more conducive to changing people’s behaviors than large projects and threats. As an example, Sutherland cites traffic signs that display your current car speed together with a smiley or a “frownie” (depending on whether your are within the speed limit). These are actually more efficient at preventing traffic accidents than speed cameras (which come with the threat of real punishment).
Unfortunately, powerful people often have large budgets and favor grand strategies. Instead, he would prefer powerful people with little money which would have to sweat the small stuff. He describes the four quadrants of a coordinate system with the axes “cost” and “effect”:
Unfortunately, powerful people often have large budgets and favor grand strategies. Instead, he would prefer powerful people with little money which would have to sweat the small stuff. He describes the four quadrants of a coordinate system with the axes “cost” and “effect”:
- costs much, has a big effect: strategy
- costs much, has a small effect: consultancy (partially tongue-in-cheek). He also mentions mergers which often change little for both employees and customers of companies.
- costs little, has a small effect: trivia
- costs little, has a big effect: these are things that usually escape politics and companies. He suggests inventing a word for this category and hiring “chief detail officers” (with small budgets) that are responsible for it.
Can gaming make a better world?
Jane McGonigal certainly seems to think so. She argues that gaming is becoming increasingly wide-spread and that gamers exhibit the following positive traits while gaming:
- Urgent optimism: in a game, every problem can be solved. Conversely, solving problems in reality can be impossible and frustrating.
- Social fabric: gamers must form a team to solve a problem. One is forced to socialize, which is also the reason for multi-player games being so appealing.
- Blissful productivity: Gamers put in a lot of time and work quite hard to achieve their goals. Compare this to universities where students frequently complain about a lack of motivation.
- Epic meaning: McGonigal mentions the “World of Warcraft wiki” being the second largest wiki after Wikipedia. I’m not sure what her point is here. It seems related to the previous point, because without the meaning that games provide, gamers would not be motivated.
- World without oil: simulates an oil crisis. Participants apply oil-saving habits that they have acquired in the game to the real world.
- Superstruct: Ups the stakes by simulating a reality where a computer predicts that humanity only has 23 years to go.
- Evoke: A game designed to elicit social innovations from participants.
- There is not enough problem-solving in the world. Not true. The problem is that there is too much optimization, but it all happens locally and/or at the wrong place (investment bankers maximizing their profits, politicians looking for votes, etc.). Many people try to “save the world”, but it often involves fighting someone else and increasing conflict (of which there is already too much). So my guess is that most of the (industrialized) world would profit from people taking it easier and letting the big picture seep in.
- Analysis is the best tool to solve the world’s problems. Many hard problems are based on emotions: wars, discrimination, racism, obesity, etc. Rational thought is often the wrong tool to solve these problems. Otherwise, rational people would not be obese or alcoholics. On the other hand, the social component of games can be used to influence people on a more emotional level. Compare this to how having more black role models on TV and in the movies must help with reducing racism. Some of the older Hollywood movies were atrocious in this regard... Visualizing something is a powerful first step towards making it a reality.
- Everyone’s contributions are similar. Expert contributions have a different quality from grass root ideas how everyone can contribute. The “global extinction awareness system” game seems to factor in expert knowledge, but fully integrating such knowledge into game play seems quite challenging to me.
الجمعة، 27 أغسطس 2010
Call centers: 3 ideas for improving the experience
Call centers are everywhere these days. And they have already much improved: Outsourcing is less common, voice recognition is used, etc. Here are 3 things call centers could do to further improve their user experience:
- Let the caller know how many people are “standing in line”. This gives you a feeling for progress and tells you whether you should wait or try another time.
- Let the call center operator know how long a person waited in line. This gives him or her a rough indication what mood he or she will be in.
- I’m not sure if this makes sense, but one could also pair callers and operators based on where the caller is currently located or on where the caller is from. This can facilitate the communication. For example, dialects from one part in Germany can be very hard to understand for people from other parts.
الثلاثاء، 24 أغسطس 2010
Multilingual spell check
In Apple Mail you can mix different languages and the spell check still works as expected (see above). I wonder how they do this. Probably by assigning that language to a sentence that produces the least errors. I also remember from a cryptography lecture that one can compute a numeric index for a text (from letter frequency) that indicates the language. Incidentally, this index is relatively robust with regard to encryption.
الاثنين، 23 أغسطس 2010
Lost in translation: the Suntory scene translated
This page translates the Japanese part of the dialog. Really funny. Incredibly, Sammy Davies Jr. actually did commercials for Suntory Whisky in the early 1970s. Francis Ford Coppola, Sophia Coppola’s father, also appeared in a Suntory commercial in Japan, which inspired her to write “Lost in translation”. [Sources: Daring Fireball, Wikipedia]
الأربعاء، 18 أغسطس 2010
The internetification of TV
The LA times has an article titled “Google TV plan is causing jitters in Hollywood”. I don’t envy Hollywood. They can either turn to the control freak Apple or the lazy curator Google (for example, in the Android market place, someone was recently able to upload and charge for an application that was actually someone else’s). The added competition is certainly good for the consumer. It is also currently far from clear who will make this race. Other options include Hulu and Netflix. Because all the necessary technology is so readily available, there is little lock-in and start-up costs are relatively low. Ironically, Google’s plans might also be good for Apple, whose TV-related project is rumored to be faced with difficult negotiations. If Hollywood is scared of Google, things might go smoother.
الثلاثاء، 17 أغسطس 2010
DVD: Il y a longtemps que je t'aime (2008)
This movie is called “I've loved you so long” in English. It is really good French cinema, starts with a convincingly dark secret and ends quite sad, but uplifting. The movie makes many acute observations about society’s difficulties with outsiders. Kristin Scott Thomas is great in it. Her excellent French reminded me of the fact that she lives in Paris and appears in many French movies. IMDB tells us that she dubbed herself in the French version of “Four Weddings and a Funeral”. And that her first feature film was the 1986 Prince movie “Under the Cherry Moon” (those really were different times...).
الأحد، 15 أغسطس 2010
iTunes MP3s: remember playback position
Handy for long MP3s: In the information dialog, under “Options”, you can enable “Remember position”. Then, like PodCasts, whenever you revisit an MP3, play resumes where you last left off.
الخميس، 12 أغسطس 2010
Politicians: Google Streetview is where you put your foot down? Really?
Google Streetview is causing quite an activity in Germany: Many politicians ask Google to blur their houses and suggest that citizens do the same. So it does not bother them that Google reads all your emails or takes away your data, nilly-willy, but storing pictures that anyone can freely take, anyway, is a problem? I suspect that many people do not understand what is going on, are scared, and have a knee-jerk reaction. I would be scared to, if I thought that Google was constantly filming my house and publishing the result on the internet, for everyone to see. Note that there is a downside to the opt-outs, because the blurs have made Google Streetview less useful, at least in Munich. Other Google threats are much more serious. Or am I missing something?
الأربعاء، 11 أغسطس 2010
الاثنين، 9 أغسطس 2010
Mutewatch: new ideas for watches
The Liquid Pencil
New from Sharpie: The Liquid Pencil. Writes like a pen, erases like a pencil, becomes permanent after 3 days. [Source: Daring Fireball]
Update: Engadget has already tried one.
Update: Engadget has already tried one.
السبت، 7 أغسطس 2010
Is Bill Gates really altruistic?
Warren Buffet and Bill Gates have recently made headlines when they announced that they were going to donate half of their fortune. Bill Gates tried to convince German billionaires to do the same. But they are hesitant and I find the justification interesting. Peter Krämer says that U.S. fiscal law allows billionaires to basically decide between donating and paying taxes and argues that no single human should have the power to control that much public money. He has also been quietly donating a lot of money, in addition to paying taxes and is in favor of the rich having to pay more taxes. Quite impressive. The Bill Gates Foundation has in the past been questioned for investing its money into “unethical” companies. It might come with the territory, but it shows the pitfalls of this approach.
الجمعة، 6 أغسطس 2010
Nokia’s VP answers some questions
Suggested reading at Engadget. It took them long enough, but Nokia just might be able to pull off a turn-around. The hardware of the N8 looks nice and the MeeGo OS is built on the solid foundation of Linux and Qt. The Nokia Vice President also seems aware of the challenges they are facing and gives refreshingly non-marketing answers (such as Symbian’s menu-based navigation not being a good match for touch interfaces).
Coolest photo bomb ever
A couple wanted to take a self-time picture at Banff and a ground squirrel got in the way. [details, original source]
الخميس، 5 أغسطس 2010
Clark on cluelessness, Clarke on what is possible
I think this law has psychological applications, too:
Also fun—Clarke’s three laws:
Sufficiently advanced cluelessness is indistinguishable from malice. [J. Porter Clark]
Also fun—Clarke’s three laws:
- When a distinguished but elderly scientist states that something is possible, he is almost certainly right. When he states that something is impossible, he is probably wrong.
- The only way of discovering the limits of the possible is to venture a little way past them into the impossible.
- Any sufficiently advanced technology is indistinguishable from magic.
الأربعاء، 4 أغسطس 2010
How to board a train that never stops?
Answer: You enter a capsule that is dropped on top of the train as it enters the station, while another capsule that was previously on top of it stops at the station. Check a YouTube video for details. Presumably, such a train would be more energy efficient than one that has to stop at every station. It reminds me of Arthur C. Clarke’s idea (in “Profiles of the future”) of having running strips as public transportation. One enters an outermost strip which runs at a low speed and proceeds to inner strips that become increasingly faster. [Source: Der Spiegel]
A light rail train that drives around cars
Cool idea: China is working on a light rail train that has a hole inside so that cars can drive through it. That means that it can use the same roads as cars, without occupying additional space. And even while it stops, cars can continue to drive. Compared to a subway system, routes are much cheaper (10%) and quicker (1 year versus 3 years or more for 40km) to build. But how is this better than a single-lane light rail train (in Munich, some of them share a road with cars)? No tracks in the road? I’m sure that could be fixed by using non-track wheels and some sort of automatic guidance.
[Source: Huffington Post]
Google Wave is dead
It was bound to happen: Google Wave is dead. Google Wave has always been a problematic product: What does it really do?
(*) What is wrong with email, instant messaging, forums, and collaborative editors? Why do they need to be merged into a single product? It was a typical Google product: Technologically very impressive, only for technical people (I have yet to meet a non-technical person that has used it), abandoned after a short while.
By the way: If anyone has an answer to (*), I would love to hear about it.
Update 2010-12-25: Google Wave has now become an Apache project.
I’ve thought about it some more and there is something intriguing about continually updating information and tracking the changes that are made. But a wiki that allows one to follow changes should be enough for that. Instead, Wave conflated this kind of documentation with instant-messaging-style brainstorming. I suspect that keeping brainstorming fully documented does not make sense and goes against the human tendency to maintain order by throwing stuff away and/or transforming it into something new.
(*) What is wrong with email, instant messaging, forums, and collaborative editors? Why do they need to be merged into a single product? It was a typical Google product: Technologically very impressive, only for technical people (I have yet to meet a non-technical person that has used it), abandoned after a short while.
By the way: If anyone has an answer to (*), I would love to hear about it.
Update 2010-12-25: Google Wave has now become an Apache project.
I’ve thought about it some more and there is something intriguing about continually updating information and tracking the changes that are made. But a wiki that allows one to follow changes should be enough for that. Instead, Wave conflated this kind of documentation with instant-messaging-style brainstorming. I suspect that keeping brainstorming fully documented does not make sense and goes against the human tendency to maintain order by throwing stuff away and/or transforming it into something new.
الأحد، 1 أغسطس 2010
Why we are actually writing getters and setters in Java
I now often hear the opinion that writing getters and setters has something to do with better encapsulation, that using “naked” fields is bad practice. To find out if this is true, we have to look at Java history. In the mid-nineties, Sun developed the Java Bean Specification as a component model for Java. This model was supposed to help with tool support for Java, e.g. when connecting a graphical user interface with domain objects. In this case, it is useful if one can observe changes made to fields and react to them (e.g. by updating the text displayed in a window). Alas, while there are some languages that allow this kind of meta-control (Python and Common Lisp come to mind), Java does not. Thus, Java Beans introduced standardized naming that allowed one to implement a field as a pair of methods which then would manually implement the observation.
I usually code as follows: If I need just a field, I use a public field (no getters and setters), because it helps me to get started quickly and introduces less clutter. If I later change my mind, I let Eclipse introduce the indirection of the getter and setter. That means that there is no penalty for such a change and no need to think ahead! Granted, having both public fields and getters/setters affects uniformity, but the added agility is worth it for me.
Obviously, it would be nice if Java had true observable (and optionally computable) fields. This feature was initially on the table for Java 7, but did not make the cut. Maybe IDEs could help by displaying getters and setters as if they were fields. Their source code would be hidden, with visual clues indicating if such a pseudo-field is read-only etc. Additionally, auto-expansion would be improved, because pseudo-getters (such as Collection.size()), getters/setters, and fields would all be part of the same category. No more typing “.get” and hoping that the information that you are looking for is available as a properly named getter. The same kind of grouping should also be made in JavaDoc. Lastly, one could display foo.setValue("abc") as foo.value = "abc". But I’m not sure if that makes sense.
Addendum (2010-08-07): I think I did not make my point clear. It was not “use public fields”, it was “don’t use getters and setters blindly”. I’m applying the coding style mentioned above during an exploratory phase of coding. IDEs such as Eclipse allow you to do this kind of quick and dirty exploration because real getters and setters are always just a refactoring away. I do agree that, as soon as the API and its client code are not in the same code base, you cannot do these refactorings, any more. Thus, you have to think ahead and freeze some things.
As for generating getters and setters: Yes, Eclipse does that for you. It even expands getFoo into foo getter source code and setFoo into foo setter source code. And it can also rename the setters and getters for you while renaming a field. Even then, getters and setters still add clutter.
I usually code as follows: If I need just a field, I use a public field (no getters and setters), because it helps me to get started quickly and introduces less clutter. If I later change my mind, I let Eclipse introduce the indirection of the getter and setter. That means that there is no penalty for such a change and no need to think ahead! Granted, having both public fields and getters/setters affects uniformity, but the added agility is worth it for me.
Obviously, it would be nice if Java had true observable (and optionally computable) fields. This feature was initially on the table for Java 7, but did not make the cut. Maybe IDEs could help by displaying getters and setters as if they were fields. Their source code would be hidden, with visual clues indicating if such a pseudo-field is read-only etc. Additionally, auto-expansion would be improved, because pseudo-getters (such as Collection.size()), getters/setters, and fields would all be part of the same category. No more typing “.get” and hoping that the information that you are looking for is available as a properly named getter. The same kind of grouping should also be made in JavaDoc. Lastly, one could display foo.setValue("abc") as foo.value = "abc". But I’m not sure if that makes sense.
Addendum (2010-08-07): I think I did not make my point clear. It was not “use public fields”, it was “don’t use getters and setters blindly”. I’m applying the coding style mentioned above during an exploratory phase of coding. IDEs such as Eclipse allow you to do this kind of quick and dirty exploration because real getters and setters are always just a refactoring away. I do agree that, as soon as the API and its client code are not in the same code base, you cannot do these refactorings, any more. Thus, you have to think ahead and freeze some things.
As for generating getters and setters: Yes, Eclipse does that for you. It even expands getFoo into foo getter source code and setFoo into foo setter source code. And it can also rename the setters and getters for you while renaming a field. Even then, getters and setters still add clutter.
السبت، 31 يوليو 2010
The slides from the JVM language summit are online
The slides from the JVM language summit (summary) are now online. There is some good stuff, for example: “Engineering Fine-Grained Parallelism in Java” by Doug Lea.
الخميس، 29 يوليو 2010
Microsoft Street Slide: Like Google Street View, only better
Microsoft research does great work (Photosynth, Courier, Surface, ...), it’s a shame that it so rarely contributes to actual products. “Microsoft Street Slide” (MSS) fixes a problem that Google Street View has: While you can move around in your virtual surroundings, it is difficult to get a sense of context (“what is around me?”, “where am I?”). MSS helps by allowing one to zoom out and get a look at a whole street.
الثلاثاء، 27 يوليو 2010
The new Blogger editor is great
In case you haven’t noticed: Blogger has a new editor (you have to explicitly enable it). And it’s great: No more window-global dialogs (e.g. to enter the URL of a link). True previews of a post. Bullet lists that can be indented. Breaks between the introduction and the main article. A resizable editor field. Shortcuts for applying font styles. Etc. In short, it fixes most of my complaints. A few wishes remain:
- Touch support: WYSIWYG composing is not supported on iPhone/iPad and dragging the corner of the editor to resize does not work.
- Navigation (between posting, settings, etc.) could be more streamlined: Some operations should be easier to reach, others should be harder to reach (e.g., how often do you change the design of your blog?), there is some clash between the tabs and the bar at the top, etc. Mozilla has performed a user interface study to solve this kind of problem for Firefox.
- Paste without formatting should be the default.
- Leftovers from my past wishes: Smart quotes, tables, inserting symbols, wider layouts (mentioned in the comments), paragraph styles (headings, pre, ...).
Apple, please give us a wired trackpad!
This is one instance where I hate Apple’s minimalism: They have just introduced “Magic Trackpad” as an alternative to the “Magic Mouse”. And both input devices are cordless. The less wires, the better, you say? In general, I agree, but in this case, having a wire means that one doesn’t have to rely on batteries. And as long as batteries age and are bad for the environment, that is a big plus. Furthermore, Apple has already largely fixed the problem of input device wires, by making their keyboard a USB hub. Then, mouse or trackpad connect directly to the keyboard and only need a relatively short wire which almost never gets in the way. To summarize: not needing a battery = magic. I understand that some people prefer Bluetooth devices, but having a wire should still be an option.
Do you agree? Then let Apple know.
As an aside: Trackpads for input are great and will probably replace mice long-term. With gestures, one takes the idea of the scrolling wheel (an action, directly accessible) and extends it to many kinds of operations: zooming, going to the next page, etc. Trackpads might also be the way to add multi-touch to desktop devices.
Related post:
السبت، 24 يوليو 2010
iPad video: original and spoof
The iPad video is truly annoying (in contrast, the commercial is good). College humor has done a spoof on it.
Smart furniture
I’ve previously written about “Furniture for easier relocation” and just found one more web site that is related to this topic: “Smart Furniture”. If there are any others, let me know.
Teaching RDF
I recently held a 90min lecture on RDF. In it, I’ve followed the obvious path of explaining the usefulness of RDF by showing how it can be interpreted in several ways (set of triples, resources, graph). For a hands-on session, I needed a way to interactively create and query RDF, so I’ve added functionality to Hyena: In the “Query” zone, one can edit a graph in Turtle Syntax and query the repository with SPARQL. It turned out that there was a nice synergy between this zone and the rest of Hyena, because the encoded wiki pages plus attached tags provided nice “real-world” example data. As an exercise, I asked my audience to express in SPARQL the query “all wiki pages that are tagged with ‘Todo’”.
Update: More RDF shells
Update: More RDF shells
- sparql-query: A shell for accessing SPARQL endpoints. [Source: Mischa Tuffield]
- OntoWiki has an interactive query shell with SPARQL syntax highlightning, saved queries and other features. [Source: Sebastian Tramp]
- The SparqlTrainer is an e-learning tool to practice SPARQL interactively. [Source: Sebastian Tramp]
الخميس، 22 يوليو 2010
Inconsistent information in your database
The blog post “Rethinking Form Validation” describes an interesting idea (apparently inspired by one of Alan Cooper’s books): While developers are fond of only storing information that is fully validated, it may help end users if they can store inconsistent data. Related examples include forms that force you to only enter digits for phone numbers (no spaces, dashes, parentheses, etc.) or some obvious characters being forbidden from passwords. Validation should be unobtrusive, because there are always going to be unforeseen cases where rigid control works against the user. Eclipse’s handling of Java syntax errors is exemplary: You are warned about them, but you are not prevented from continuing your work.
الأحد، 18 يوليو 2010
Great TV: Friday night lights
I don’t understand American football and usually don’t like sports-themed movies. But Friday night lights (FNL) is different, because it offers a compelling portrayal of the people involved in football and how it affects them and their relationships. Furthermore, many other topics are also covered, in a manner typical of good American TV: while the “classics” are there (doping, alcohol, first sex), FNL stays fresh, avoids preachiness, takes its time to tell its story and does so with well-developed characters. Recommended and currently relatively cheap on Amazon UK.
الأربعاء، 14 يوليو 2010
A USB stick that can be plugged in both ways
Cool idea: This USB stick is completely symmetrical; it can be plugged in either way. The plug has always been one of USB’s weak points, so it is nice to see progress on this front. Right now, we are in a kind of bus standard limbo, as Intel is still trying to prevent adoption of USB 3 until Light Peak is ready. I like Light Peak, but hate having to wait for it.
الأحد، 11 يوليو 2010
Use a single version number for Ant and Java (bonus: GWT)
Problem: If your application has a version number, it should be accessible during run time from Java (e.g., to display it in an “About this application” dialog) and during build time from Ant (e.g. to include it in file names). The solution is as follows.
Access the version from Java
Create the following properties file src/de/hypergraphs/hyena/core/client/bundle/BuildConstants.properties and put it into the class path.
Access BuildConstants.properties as a Java resource. I usually construct the resource path relative to a Java class (a sibling of the file). That way the path to the properties file will always stay up-to-date, as long as I move the Java class with it.
Ant
Ant can read external property files as variable with the following statement.
Additionally, you can insert the value of $buildVersion into a file while copying it, by using a filterset.
GWT
For client-side GWT, you can use constants. Then the version number is compiled directly into the JavaScript code. To do so, you add the following interface as a sibling of BuildConstants.properties.
Access the version from Java
Create the following properties file src/de/hypergraphs/hyena/core/client/bundle/BuildConstants.properties and put it into the class path.
buildVersion=0.2.0
Access BuildConstants.properties as a Java resource. I usually construct the resource path relative to a Java class (a sibling of the file). That way the path to the properties file will always stay up-to-date, as long as I move the Java class with it.
Ant
Ant can read external property files as variable with the following statement.
<property file="src/de/hypergraphs/hyena/core/client/bundle/BuildConstants.properties">
Additionally, you can insert the value of $buildVersion into a file while copying it, by using a filterset.
<copy file="${data.dir}/index.html" todir="${version.dir}">
<filterset>
<!-- Replace @VERSION@ with the version -->
<filter token="VERSION" value="${buildVersion}">
</filterset>
</copy>
GWT
For client-side GWT, you can use constants. Then the version number is compiled directly into the JavaScript code. To do so, you add the following interface as a sibling of BuildConstants.properties.
package de.hypergraphs.hyena.core.client.bundle;
import com.google.gwt.i18n.client.Constants;
public interface BuildConstants extends Constants {
String buildVersion();
}
الجمعة، 9 يوليو 2010
Running Tomcat on port 80 in a user account
If you already have a servlet container and also need a web server, there is usually no need to turn to a dedicated web server such as Apache. Instead, your servlet container can easily perform double duty, by putting your HTML files into the “ROOT” web application. If you run Tomcat on Linux, you have two choices: First, run it on a user account. Then you can only use “non-privileged” ports which start at 1024 (this is why Tomcat’s default is to use port 8080). Second, run it on a root account, but that poses security risks. There are many solutions out there for running Tomcat on port 8080 on a user account. The simplest solution that I have found is to use authbind. To do so, you need to perform the following steps:
Flattr
- Install authbind
- Make port 80 available to authbind (you need to be root):
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown glassfish /etc/authbind/byport/80 - Make IPv4 the default (authbind does not currently support IPv6). To do so, create the file TOMCAT/bin/setenv.sh with the following content:
CATALINA_OPTS="-Djava.net.preferIPv4Stack=true" - Change startup.sh
exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"
# OLD: exec "$PRGDIR"/"$EXECUTABLE" start "$@"
Flattr
الاثنين، 5 يوليو 2010
RDF (almost) is the next generation of relational databases
I love RDF and SPARQL, especially their elegance and simplicity. They surely deserve a lot more attention and not just as a formalism for ontologies and semantics, but also as a next step for relational databases. Especially with the “No SQL” movement becoming popular, RDF could be an alternative that builds on the achievements of the relational database community instead of shunning them. Note that the No SQL implementation Couch DB offers JavaScript-centricity and is a little bit simpler than RDF, so one might prefer it for some scenarios. On the other hand, RDF is not much more complicated and offers other features (composable data, standardized symbols, a general-purpose query language, etc.) that Couch DB cannot match. Alas, some of the basics are still complicated in RDF, such listing properties in a table. My paper “Using RDF for social information management” has more on this topic.
السبت، 3 يوليو 2010
Cloud-sync your iOS calendars (bonus: PC/Mac)
Scenario: You have an iPhone or an iPad and would like to collaboratively edit calendars. You probably want both web and offline access. Thus, neither syncing with iTunes on your PC/Mac nor using a web application such as Google Calendar is an option.
This leaves you with the following alternatives:
This leaves you with the following alternatives:
- Mobile Me: Allows you to sync your iOS device over the internet and provides a web application to manage the calendars. Pro: I’ve heard good things about the web application. Con: Costs.
- Microsoft Exchange: You need an exchange server. I don’t know more about this solution, so I cannot comment on pros and cons.
- Google Calendar: There are several ways of syncing your Google Calendar account with iOS. Pro: free, nice web app. Con: You depend on Google which is often slow to fix bugs and completely shuts itself off from customer requests.
- Google Sync: Allows you to sync your Google Calendars as an MS Exchange account.
[Old, does not work any more, all calendars are always synced] If you want to sync more than one calendar, you need to configure this via Google Sync at http://m.google.com/sync/ Warning: works only from an iPhone. On other devices, you need to fake the iPhone as the browser user agent. - Google Calendar CalDAV: Uses the CalDAV protocol for synchronization. By default, only the default calendar is synced, if you want to synchronize multiple calendars, you need to configure this via www.google.com/calendar/iphoneselect (source: Google).
- Calengoo: Is an app for the iPhone/iPad that directly accesses Google Calendar and also works offline. Has a nice user interface, many people seem to prefer it to the built-in calendar. Con: Costs.
- (1) and (2) are compared in a thread on Google’s support forums. Summary: Google Sync is currently better (uses less battery, does push).
- Calendars that you sync between your PC/Mac and iPhone/iPad can be unsubscribed either before or after adding the calendars from Google Calendar. In the latter case, don’t remove anything existing when adding the new data (there is an option to do so when adding an account). In either case, iTunes offers you to remove the calendars from your iOS device when you unsubscribe.
- iCal/Sunbird: CalDAV.
- Outlook: Google Calendar Sync.
- Mac-only: BusySync (bought it in pre-CalDAV times, works really well). Pro: You only pay once.
- Mac-only: Spanning Sync. Con: Yearly subscription.
Why isn’t “paste without formatting” the default?
I can’t even remember when the last time was that I wanted to keep the formatting when pasting something. Thus, “paste without formatting” should be the default, keeping the formatting should be an option. Microsoft Office 2010 does it this way, why doesn’t everyone else, too?
الجمعة، 2 يوليو 2010
Making sense of the iPad
When I went to a workshop in California, I made the experiment of leaving my notebook at home and only taking my new iPad with me. This gave me more insight into the nature of this slightly perplexing device. The first part of this post will describe this insight. The second part will go into detail about things that I liked and disliked about the iPad.
Part 1: What is the iPad?
The iPad is very closely related to a notebook. One has to use it for a while to notice the differences:
Naturally, the iPad also has limitations. Even if typing is easier than on a cell phone, it is nowhere nearly as efficient as touch typing on a true keyboard. This includes the iPad’s relatively slow way of placing the cursor. Navigating multiple web sites and applications is also not very efficient (see below). And while there are some intriguing new applications for the iPad, many old standbys from the PC world won’t run, probably ever: Firefox, Gimp, Java, Eclipse, Emacs, ...
Part 2: Likes and dislikes.
The main weakness of the iPad is that Apple gave it comparatively little RAM. With 256MB, it only has half as much RAM as the iPhone 4. This becomes an issue when working with Safari, where the second concurrently open page is usually not kept in RAM and thus must be reloaded every time it is brought from the background to the foreground. Let’s hope that this can be remedied by a different caching strategy (=in software). Only the most recent Macs are able to charge an iPad while it is running. Sync over WiFi will be coming eventually and largely solve this problem, because the iPad won’t have to be connected to a USB port, any more.
The user interface is generally intuitive, but some functions are difficult to discover. Labels under icons would help, as would indicators whether an icon is a button or a menu. Non-touch GUIs use tooltips for this purpose. Maybe touch GUIs should introduce a standard help mode. The iPad should also steal Androids universal back button, that works like in a web browser, but also between applications. For example, if you open a link in mail, you can’t go back directly, you need to find mail again on the home screen. A definite improvement will be the iOS combination of true and pseudo multitasking, where one can jump directly between applications, without home screen detours. Safari would benefit from true tabs, the current way of switching pages makes sense on the iPhone, but less so on a large screen. Safari could save space by letting one scroll the address field away. There already is the shortcut of tapping the status bar to scroll back to the top that would complement such a feature well. Another frequent operation is to switch between 3G-only and WiFi-only. WiFi-only is the airport mode plus WiFi, switching to 3G means turning the airport mode off. This correctly disables WiFi. Alas, the switch back is not as efficient and involves two steps. Lastly, the centralized settings management is showing its limits. Settings should be accessible directly from each application.
When typing, placing the cursor is intuitive, but time-consuming. I miss cursor keys (and forward delete). This might end up being Apple history repeating itself. The 1984 Mac pioneered the mouse, but did not have cursor keys, mainly because they were not strictly needed. Apple eventually added them. Typing special characters such as dashes on the iPad also tends to slow one down. One possible fix for this would be to bind multiple symbols to the same key. For example, the TouchPal keyboard on Android accesses alternate bindings by putting the finger down on a given key and then swiping to the left, top, etc. I can handle one additional keyboard layout (numbers, parentheses in addition to characters), but 2 levels are definitely too much. Depending on what I type, I find myself frequently switching automatic correction on and off, so a quick way to perform this switch would be nice.
Summary.
The iPad is the perfect travel companion, if you can live with its limitations. You can use it for brainstorming, say, to sketch slides with Keynote, but you will often want to apply the final touch on a PC or Mac. I’ve created this blog post the same way: Started and largely finished it on the iPad, polished it on a Mac. When it comes to media consumption, the iPad is hard to beat. For example, I’ve found an interesting book in a Palo Alto bookshop and bought it an hour later from my hotel room, as an ebook via Amazon’s Kindle for iPad. Reading ebooks or in fact any PDF is fun. Paper is still slightly more pleasant to read, but navigation is easier on the iPad. The vibrant app community of the iPad is one of its greatest assets, as they constantly come up with new amazing uses. Apple really needs to communicate more clearly why it sometimes rejects applications, as the current situation is very unpleasant for developers. Gruber has written an insightful post on this.
Related posts:
Flattr
Part 1: What is the iPad?
The iPad is very closely related to a notebook. One has to use it for a while to notice the differences:
- Battery capacity: This sounds minor, but is a paradigm shift. The battery lasts over 10 hours even when watching movies. Thus, you stop worrying about power outlets and just recharge over night.
- Weight: While it is not as light as it looks, it still weighs only 730g (3G, WiFi-only is a bit lighter); less than a third of my notebook. Additionally, you rarely need to bring a power supply, further reducing the weight. As a consequence, bringing it along is relatively painless. The 3G version allows you to go online almost anywhere. This gives you more freedom to choose where you want to use the internet, while making relatively small compromises (compared to a notebook).
- Robustness, shape, and touch interaction: The iPad partially owes it’s robustness to Apple’s solid manufacturing, partly to the non-existing keyboard. Together with its shape, it enables you to use a computer in new locations: You can read on the couch, in bed, or look up things in the kitchen, while worrying relatively little about dirt and other hazards. In public places, the iPad’s shape makes you look less awkward than with a notebook and unpacking or stowing away is quick. Shape and touch also enable new uses. You can use it as an (albeit crude) keyboard, join with others to play a board game, roll dice by shaking it, etc. The iPad works well for reading ebooks and PDFs, the paper formats letter and A4 can be displayed well on its screen. Additionally, there are great applications such as Instapaper that help with making content available offline.
- Simplicity: The limited capabilities of the iPad make it easy to use for beginners. Where else do non-technical people install numerous apps and seem to genuinely be in control of the device? This is the positive effect of Apple’s (otherwise negative) tight control of the platform: order, cleanliness and safety.
Naturally, the iPad also has limitations. Even if typing is easier than on a cell phone, it is nowhere nearly as efficient as touch typing on a true keyboard. This includes the iPad’s relatively slow way of placing the cursor. Navigating multiple web sites and applications is also not very efficient (see below). And while there are some intriguing new applications for the iPad, many old standbys from the PC world won’t run, probably ever: Firefox, Gimp, Java, Eclipse, Emacs, ...
Part 2: Likes and dislikes.
The main weakness of the iPad is that Apple gave it comparatively little RAM. With 256MB, it only has half as much RAM as the iPhone 4. This becomes an issue when working with Safari, where the second concurrently open page is usually not kept in RAM and thus must be reloaded every time it is brought from the background to the foreground. Let’s hope that this can be remedied by a different caching strategy (=in software). Only the most recent Macs are able to charge an iPad while it is running. Sync over WiFi will be coming eventually and largely solve this problem, because the iPad won’t have to be connected to a USB port, any more.
The user interface is generally intuitive, but some functions are difficult to discover. Labels under icons would help, as would indicators whether an icon is a button or a menu. Non-touch GUIs use tooltips for this purpose. Maybe touch GUIs should introduce a standard help mode. The iPad should also steal Androids universal back button, that works like in a web browser, but also between applications. For example, if you open a link in mail, you can’t go back directly, you need to find mail again on the home screen. A definite improvement will be the iOS combination of true and pseudo multitasking, where one can jump directly between applications, without home screen detours. Safari would benefit from true tabs, the current way of switching pages makes sense on the iPhone, but less so on a large screen. Safari could save space by letting one scroll the address field away. There already is the shortcut of tapping the status bar to scroll back to the top that would complement such a feature well. Another frequent operation is to switch between 3G-only and WiFi-only. WiFi-only is the airport mode plus WiFi, switching to 3G means turning the airport mode off. This correctly disables WiFi. Alas, the switch back is not as efficient and involves two steps. Lastly, the centralized settings management is showing its limits. Settings should be accessible directly from each application.
When typing, placing the cursor is intuitive, but time-consuming. I miss cursor keys (and forward delete). This might end up being Apple history repeating itself. The 1984 Mac pioneered the mouse, but did not have cursor keys, mainly because they were not strictly needed. Apple eventually added them. Typing special characters such as dashes on the iPad also tends to slow one down. One possible fix for this would be to bind multiple symbols to the same key. For example, the TouchPal keyboard on Android accesses alternate bindings by putting the finger down on a given key and then swiping to the left, top, etc. I can handle one additional keyboard layout (numbers, parentheses in addition to characters), but 2 levels are definitely too much. Depending on what I type, I find myself frequently switching automatic correction on and off, so a quick way to perform this switch would be nice.
Summary.
The iPad is the perfect travel companion, if you can live with its limitations. You can use it for brainstorming, say, to sketch slides with Keynote, but you will often want to apply the final touch on a PC or Mac. I’ve created this blog post the same way: Started and largely finished it on the iPad, polished it on a Mac. When it comes to media consumption, the iPad is hard to beat. For example, I’ve found an interesting book in a Palo Alto bookshop and bought it an hour later from my hotel room, as an ebook via Amazon’s Kindle for iPad. Reading ebooks or in fact any PDF is fun. Paper is still slightly more pleasant to read, but navigation is easier on the iPad. The vibrant app community of the iPad is one of its greatest assets, as they constantly come up with new amazing uses. Apple really needs to communicate more clearly why it sometimes rejects applications, as the current situation is very unpleasant for developers. Gruber has written an insightful post on this.
Related posts:
- iPad wishes
- iPad tips and tricks
- Recommended iPad apps: the basics
- Amazon Kindle DX ebook reader: review and iPad comparison
Flattr
Free text book on RDF (foundation of Semantic Web)
My dissertation is online. While many chapters are specific to the topic of the dissertation, some chapters of it should be very readable introductions to RDF and related ideas such as Linked Data. While RDF is the foundation of the Semantic Web, there are two communities using it:
- RDF as a knowledge representation: This community is concerned with semantics, ontologies, etc.
- RDF as data: This community uses RDF as next-generation relational database
- Part I: Background. Explains RDF, Linked data on the web, folksonomies, ontologies, schema and ontology languages.
- Part VI: Related work. Mentions work that is related to Hyena: information management, hypertext, etc.
السبت، 26 يونيو 2010
iPad: scrolling to the top
If you tap the status bar in, for example, Mail and Safari, the currently displayed information scrolls back to the top.
الخميس، 24 يونيو 2010
True roaming
Daring Fireball has a nice post on what Apple’s iPhone 4 video chat application “FaceTime” means long-term: That we get more alternatives to cellphone networks. With FaceTime, you currently need a cellphone connection to get started, but afterwards, all communication continues on the internet, via a WiFi connection. This is especially appealing in apartments such as mine where cellphone reception is bad. We are thus slowly progressing towards true network roaming. Another piece of the puzzle is the universal inbox (which integrates cellphone voice box, SMS, fax, and email).
الثلاثاء، 22 يونيو 2010
Simple cooking: chunky scrambled eggs
If you want something simple to cook, you can try this way of preparing scrambled eggs:
- Per person, use 2-4 eggs
- Put all the egg content in a bowl, use a fork to rupture the yolks. Don’t do much more. Not mixing the yolk and the egg white prior to moving the eggs into the pan gives the final result its chunky consistency and makes sure that you don’t destroy the protein.
- Heat the pan at medium heat.
- Melt butter in the pan (you can also use oil or margarine). The butter is for both limiting how much the egg sticks to the pan and for adding flavor, so you can adjust the amount according to your taste.
- Put the eggs into the pan. Stir by constantly removing the more solid bottom layer to make way for the softer top layer. Don’t let the eggs become too hard, you want a softer consistency than sunny-side up. Feel free to experiment with any hardness between soft-boiled and sunny-side up.
- Only salt afterward, to preserve the eggs.
السبت، 19 يونيو 2010
How to display CVS log messages chronologically
Yes, I sometimes still use CVS. And I just found out that it is incapable of displaying the logged commit messages in chronological order. It can only show them for each file, with the resulting duplicates and all-around chaos if you do this for every file in a module. Thankfully, there is a way around this. A tool called cvs2cl.pl converts the cvs log output into something readable.
الجمعة، 18 يونيو 2010
Fan-financed TV series
The idea is brilliant: Find enough people willing to pay for your TV series pilot, distribute it via BitTorrent and hope that that will get more people to pay for a complete season. Considering to what lengths fans go to prevent TV networks from canceling “their” show, this seems like a viable option. In fact, VODO has already been able to create the pilot episode of “Pioneer One” this way.
Servlet sessions and automatic login: standard Java EE might not be enough for you
Java servlet session management works well for basic requirements, but has limits when it comes to advanced features:
- There is no standard global view of all the sessions, since HttpSession.getSessionContext() has been deprecated. If you want access to all sessions, you have to set up your own registry.
- You have relatively little control of when the session expires. For example, there is no standardized way of accessing the session cookie and extending its lifespan beyond browser restarts.
- Any kind of server access keeps the session alive: Long-pull is still a common technique for sending events from the server to the client and prevents a session from being inactive.
- Store user name and password in a cookie: This is inherently unsafe and should never be done.
- Let the browser remember user name and password: Firefox does this, but only for forms the exist at page load time. It is thus very complicated to get to work for Ajax dialogs.
- Keep the session around longer: One needs to control session timeout (after a given period of inactivity) and possibly cookie expiration (the session ID is normally removed once one quits the browser).
- During login, ask for the period of time one should stay logged in (if there is no activity).
- On the server, use HttpSession.setMaxInactiveInterval(). Beware: Some servlet containers seem to create a new session when this method is invoked.
- Problems: (1) Long-polling is registered as usage. (2) You cannot extend session lifespan beyond the next browser termination (because the cookie with the session ID will be removed).
- Manage your sessions yourself. The client initially receives a session ID from the server and then sends it with each request to the server. The login security FAQ [1] has more details.
- It would be interesting to integrate this kind of session management with Google Guice which currently supports servlet sessions via a dedicated scope.
- [1] Google has a nice login security FAQ.
- [2] HttpSessionListener allows you to get notified of session creation and destruction.
- [3] HttpSessionBindingListener can get you notified when a session expires (and is simpler than HttpSessionListener).
- [4] “Google goodness: using GWT with Guice” (mentions session management with Guice).
الاشتراك في:
الرسائل (Atom)