الأحد، 30 أغسطس 2009

A kinder, gentler philosophy of success

This is a great talk on how modern ideas about success put us under a lot of stress. Many of the points the speaker makes is how chance and fortune relativize many of our unforgiving ideals:

  • “Everyone can do anything” has to take into account that while some people do become very successful, it is also highly improbable that you will be one of them. The current prevalence of this idea is directly correlated to equally prevalent low self-esteem.


  • “You are responsible for yourself” puts many people on a constant emotional roller coaster because they own their successes as well as their failures.

  • In middle age England, poor people were considered “unfortunate” (=fortune played a role) whereas nowadays, they are often called “losers”, with far more (negative) personal connotations.

  • Great quote: “A snob is anyone who takes a small part of you and uses it to come to a complete vision of who you are.”

  • The answer to the question “what do you do” will often determine how much you are respected. So it is no surprise that people take career choices very seriously.


Incentives are bad for performance

The talk “The surprising science of motivation” by Dan Pink makes a great case that incentives lead to worse performance for any moderately complicated task. Instead of this (extrinsic) motivation, Pink suggests to encourage intrinsic motivation via: autonomy, mastery (get better at what you do), purpose.



This is similar to the findings reported in the article “Praise Children for Effort, Not Intelligence, Study Says”:

“Praising children's intelligence, far from boosting their self-esteem, encourages them to embrace self-defeating behaviors such as worrying about failure and avoiding risks,” said Dr. Dweck, lead author of the study. “However, when children are taught the value of concentrating, strategizing and working hard when dealing with academic challenges, this encourages them to sustain their motivation, performance and self-esteem.”
Praise of intelligence makes talent and success seem like magic, leading to a defeatist attitude when failing. Praise of effort gives you the feeling that things are fixable.

الجمعة، 28 أغسطس 2009

Resizing the Blogger editor

Update 2010-07-27: This problem is solved by the newest Blogger editor.

I finally found a work-around for one of Blogger's biggest annoyances, the small editor window:

  • This bookmarklet adjusts the editor size to the current size of the browser window.

  • If you add a keyword to the bookmarklet, it does not even have to be directly accessible anywhere: Lifehacker explains the basics of keywords, Mozilla describes the "add a keyword for this search" feature.

    الاثنين، 24 أغسطس 2009

    32bit Java 6 on Mac OS X Snow Leopard

    This is great news and confirms my prior suspicions. Finally, one can safely target Java 6 on the Mac, as I expect PPC Macs to become slowly irrelevant and most users to upgrade to Snow Leopard.

    Update 2009-08-29: We finally have more reliable confirmation that 32bit Macs will be able to run Java 6 on Snow Leopard. This is a big deal and I don’t understand why Apple hasn’t made this more public.

    Update 2009-09-02: More information on this topic, including how-tos for getting Eclipse running with Java 6.

    Update 2010-12-05: Java on Mac OS X Lion: the redux. News on what will happen to Java on Mac OS 10.7.

    الأحد، 23 أغسطس 2009

    A few things that bug me about Blogger

    Update 2009-09-02: The blog post “Best 17+ Blogger Hacks Of All Time” describes work-arounds for some of the complaints listed here.

    Update 2010-07-27: Blog post “The new blogger editor is great”.



    Don’t get me wrong: I love Blogger, otherwise my content wouldn't be here. The web application for managing posts is nearly perfect. But there are a few things that regularly annoy me. I list them in this blog post.

    User interface

    • Resizable editing area: This is the simplest to fix and the most annoying non-feature. Editing long posts becomes quite challenging when the editing area is so small. If you search for this issue on the web, you’ll find that people have been asking for this for quite some time now.

    • Shortcuts: Having shortcut keys to, say, turn text bold speed up editing. If one does it via access keys, it is relatively painless to implement.

    • Navigation: After editing a blog post, it makes most sense to directly return to that blog post (or, even better, to where one invoked editing). Right now, especially because I sometimes publish a post to see what it looks like, I need too many clicks to get where I want to.

    • Make “Edit Posts” more accessible: it is a frequently used feature (much more so than “Settings” or “Layout”).

    • Insert images at the current cursor position: Right now, one usually needs cut and paste to move them to their correct place, because the are always inserted at the top.


    • Smart quotes, smart apostrophes: "smart" turns into “smart” and don't turns into don’t. This would be awfully nice to have, especially if it was configurable for different languages.

    Markup

    • Tables: WYSIWYG editing for tables would be very useful.


    • Nested bullet lists: While nested bullet lists can be overdone, they are necessary, especially for shorter posts that need to be scanned quickly. Indenting an item via tab, outdenting it via shift-tab is how this is typically done.

    • Paragraph styles: pre, headings. pre is especially cumbersome when done directly in HTML, as the “Compose” editor changes pre content in unexpected ways (removes spaces etc.). It is an essential feature when writing about source code. Headings are relatively simple when adding them in HTML (you need to start at h4), but should still be GUI-accessible.

    • Breaking up long posts: Often it is nice to initially show a brief introduction and then continue into the full blog post by following a link. For feeds, having control over where content is broken up is handy, too.

    • Captions for images: With
      figure and legend
      in HTML 5, there will soon be standard markup for this. Blogger can already prepare for this by supporting captions now.


    • Special symbols: →, ⇒ and © come to mind, but there are many others that should be simple to insert.

    • Spoilers: Hiding text and revealing it only on demand is a nice feature for quizzes and such. A work-around is to draw text in white. Then one needs to select it to see it.

    Bugs

    • Special HTML characters: are handled strangely in round trips between “Compose” to “Edit Html”. Sometimes they are escaped, but brackets are not escaped when going from WYSIWYG to HTML and thus cause problems when going back. If one manually escapes angle brackets in HTML, the HTML entities are escaped and show up as ugly HTML code in WYSIWYG mode.


    السبت، 22 أغسطس 2009

    Five cool features of Eclipse 3.5

    (1) Block selection mode: works for cut, copy, and paste.


    (2) Go to the implementation of an interface method (control-click/command-click).

    (3) Better completion of inner interface implementations: When completing an interface such as Runnable, stubs for the methods are created immediately (instead of on demand, via a quick fix, as a second step).
       public static void main(String[] args) {
    new Runnable() {

    public void run() {
    // TODO Auto-generated method stub

    }
    };
    }

    (4) “Invert if” quick fix (when the cursor is on the “if” keyword). Turns
       public static void main(String[] args) {
    if (args.length == 0) {
    System.out.println("Need at least one argument.");
    } else {
    processArguments(args);
    }
    }
    into
       if (args.length != 0) {
    processArguments(args);
    } else {
    System.out.println("Need at least one argument.");
    }

    (5) Improved systrace for inner classes. Completing the word “systrace” inserts a system.out.println() with the name of the current method (if you do println debugging, you’ll always find where the printing happens). Prior to 3.5, this did not work well for inner classes. This has been fixed:
       public static void main(String[] args) {
    new Runnable() {
    public void run() {
    System.out
    .println("SidebarPanel.main(...).new Runnable() {...}.run()");
    }
    };
    }

    [Source of (2) and (4): Philip Mayer]

    الجمعة، 14 أغسطس 2009

    Likes and dislikes about Eclipse E4

    Update 2009-08-22: discovered Java2Script, added an item about it below.

    E4 is the next generation of the Eclipse Rich Client Platform and brings numerous improvements in a bid to stay relevant as a platform. In this post, I’ll first summarize what I have already written on E4 and then make several suggestions as to where I think E4 should be heading. It is an extended version of a comment I added to the artice “Eclipse has a future” which explains what E4 is and how it improves on prior versions. The author finishes with the sentence “I really am psyched!” (regarding Eclipse’s future). I share that excitement, especially after I found out that Eclipse is looking at all kinds of technologies (RAP, Flex, Dojo) for web-enablement.

    What happened so far

    First, a recap of what I’ve already blogged about E4 (directly or indirectly), listed in chronological order:

    More suggestions

    Next, I’ll mention the main things I would tell the Eclipse team were I ever to communicate with them directly. Due to developing Hyena and Facetator, I have experience with the following platforms: Dojo, GWT, Eclipse RCP, jQuery. This puts my in a good position to judge were Eclipse wants to go.
    • GWT: Talk to the GWT people as much as possible. They are doing incredible work, GWT version 2.0 is going to be amazing, also as a platform. They’ve already managed to make web programming in Java more comfortable than web programming in JavaScript. But GWT misses things that Eclipse could provide. I’ll list those things next.
    • Client-side modules: One big thing that GWT is missing and that Eclipse has (via OSGi) is true modularity. Very useful when collaborating with other people on a project. Some kind of client-side modularity mechanism plus server-side modules would result in a great platform. As a starting point, this page surveys existing JavaScript module systems: Spidermonkey, Dojo, etc. Even E4 is mentioned.
    • Browser widgets: Not enough standard widgets is another GWT problem. If GWT had the Eclipse community behind it, I’d suspect that that would quickly change.
    • GUI layout: For SWT browser edition, the thing to watch out for is GUI layout. It is what bothers me most when using GWT. Help is on the way, until then, drawing to Canvas (like Bespin does) is intriguing. Unfortunately, MS Internet Explorer does not support Canvas, yet.
    • More GWT wishes: More of my unfulfilled GWT wishes and a brief overview of 2.0 are posted here.
    • Java2Script: looks like an interesting alternative to GWT that is already Eclipse-based. I’m not too fond of how the widgets look (especially on Mac OS X Firefox). But the technology is sound and the widgets can (and probably should) be replaced by a standard widget toolkit such as Dojo.
    • RAP (a server-based technology that makes it relatively easy to add a web interface to an SWT application) is technically impressive. But the resulting applications are a bit slow, there is a limit of running only one application per browser and server at the same time, and you cannot do browser-only things like offline applications. As you can already guess, I would like E4 to focus on browser-centric technologies like GWT and Bespin and not on server-centric technologies like RAP.
    • Take a look at server-side JavaScript: They are doing exciting stuff such as modules, file system access, and binary data objects.
    • Client-side extensions: I would expect server-side plugins to provide client-side extensions. How can this be done? One possibility is to let the server-side plugin register a JavaScript URL with the server-side framework. This URL is sent to the client which downloads the script and executes it. The script then lets the client-side framework know about its services.

    الخميس، 13 أغسطس 2009

    Check out my link blog

    I often come across interesting web sites for which a whole blog post does not make sense. I will post those to my new link blog.



    Update 2011-02-17: I now publish my links as rauschma, on Twitter. An extra page details other ways of subscribing to things I publish.

    الأربعاء، 12 أغسطس 2009

    Mobile HTML: dial a phone number via a hyperlink

    As HTML5 is becoming a really cool way of developing applications for the major smart mobile platforms (iPhone, Blackberry, Android, Palm Pre, all of them Webkit-based), it would be nice if one could invoke the dialer. It turns out, you already can, via URLs such as tel:+49/89/12345. Dots, slashes and a prefixed plus are all handled corrrectly. SMS URLs and Skype URLs are also possible.

    الأحد، 9 أغسطس 2009

    MVV und MVG fürs Handy

    Es gibt mittlerweile zwei ganz nette mobile Auskünfte für den Nahverkehr in München.
    • www.efa.mobi: Die MVV-Auskunft, mobil.
    • mobil.mvg-live.de: Hier wird angezeigt, welche Verkehrsmittel demnächst an einer bestimmten Haltestelle abfahren. Zeigt leider nicht die S-Bahnen an. Beim MVV gibt es den „Abfahrtsmonitor“, der alles anzeigt.

    السبت، 1 أغسطس 2009

    Two great cross-platform mind-mapping applications

    These two mind-mapping applications are written in Java and thus run on all major operating systems (Mac, Linux, Windows).

    FreeMind

    FreeMind is completely free. It has made some great progress in recent years. Tips:
    • Switch on “Format → Automatic Layout” in the menu bar. It formats the mind map nicely.
    • The default is for nodes to be selected on hover. I prefer having to click to select a node. This behavior can be enabled via “Preferences → Behavior → Selection Method → By Click”.
    • Check out the shortcuts in the “Insert” and “Navigate” menus. They really speed up mind map creation.

    XMind

    XMind has a slick user interface, the basic version is free. Unfortunately, PDF export is a professional feature.