- The OpenAjax Alliance has voted on a browser wishlist that includes a lot of interesting details. This wishlist is supposed to guide browser vendors towards features that make sense for the Ajax community. Not suprisingly, layout issues rank high on that list.
- The Future of CSS and the end of 3.0: This article is almost one and a half years old, but it still rings very true to me.
- XUL is a Firefox-based widget toolkit that can be programmed in JavaScript. It avoids many of the Ajax CSS problems, because it has specifically been designed for applications (and not for hypertext). Firefox-only, but it should not feel alien to Ajax developers because it does not stray to far from browser technologies. While some test code for using XUL via GWT is out there, I wish there was something more usable.
الأحد، 21 ديسمبر 2008
The future of Ajax
GUI layout in Ajax goes like this: You are fine as long as long as you have absolute values (“this sidebar is 300 pixels wide” etc.), but when it comes to relative sizing (“I want the toolbar to be as small as possible and the content to take up the remaining space”) one is in for a world of pain. After having spent way too much time in that world recently, I wondered when web browsers are finally going to implement better layout features. After all, this problem has been largely solved (really nice layout managers for Java are JGoodies Forms and MiG Layout). Here is what I found:
الأربعاء، 10 ديسمبر 2008
Switching to Mercurial
So far, I've stuck with CVS, with occasional excursions to SVN. Both CVS and SVN are centralized version control systems. But I like the idea of distributed version control systems (DVCS) and it seems that the SVN developers agree. With a DVCS, everything is a repository. You don't have a working copy that you check out, you have a local repository that is cloned from another one. Changes are always pushed from one repository to another one. This means that you can use any number of intermediate repositories with the following advantages:
Quickstart:
- Offline use: You can check in and have the complete history even when you are not connected.
- Branches: If you have something that is not yet finished (say, when moving from your work computer to your home computer) or want to try out things, you can always introduce an intermediate repository. If you are not happy with where you ended up, you can discard this repository, otherwise you push its changes.
Quickstart:
- Install: a binary (easy_install works really well)
- Test on command line: hg debuginstall
- If the test fails on Mac OS X: In Terminal, uncheck the option “Preferences -> Settings -> Advanced -> Set LANG environment variable on startup”.
- Eclipse: Merclipse plugin (simpler than Mercurial Eclipse).
- After installing it, check its section among the Eclipse preferences and make sure that it finds the “hg” command.
- If not, there are two ways to fix things under Mac OS X: Start Eclipse from the command line (where it uses the same environment variables as during the debuginstall test). Or set the GUI environment variables in ~/.MacOSX/environment.plist
- Netbeans: support is built in
- Authentication under Merclipse: work-around via user:password@http://hosting.org/repo/
- Cannot group several projects in one “module”, need a repository for each.
- Mercurial files are only in the top-level directory: .hg/ and .hgignore
- More information: at the Mercurial web site.
cd mydirFirst steps (downloading)
hg init # turns the directory into a repository
hg stat # check what files are visible to Mercurial, edit .hgignore accordingly
hg add # add all files that are visible to Mercurial
hg commit # commit the changes to the local repository
hg push http://hosting.org/repo/ # push change (URL only needed for the 1st time)
hg clone http://hosting.org/repo/Mercurial hosting: There are many great options if you want to host your Mercurial repository on a public server. Free examples:
# perform changes
hg commit
hg push
- freeHg.org: Only hosting, nothing else (issue tracker, wiki, ...)
- Bitbucket: Nice clean interface, adequate free plan.
- ShareSource: For open source projects, a bit more complicated than Bitbucket.
الثلاثاء، 2 ديسمبر 2008
Synching Google Calendar with iCal and Thunderbird
Via the CalDAV protocol, Google now supports bi-directional(!) synchronization between Google Calendar and iCal or Thunderbird. Details [source: fscklog]:
Related post: Cloud-sync your iOS calendars (bonus: PC/Mac)
- Get Started with CalDAV
- Calaboration, the tool linked to above
Related post: Cloud-sync your iOS calendars (bonus: PC/Mac)
الاثنين، 1 ديسمبر 2008
Apple pushing Mini DisplayPort through no-fee licenses
Good. This makes the display plug that Apple will use exclusively in its future machines a little more like a real standard.
الأحد، 30 نوفمبر 2008
Buying unprotected music in Germany
I hate DRM. And I also think that as long as legal downloads are simple and cheap enough, people will not bother with piracy. In the United States, one already has quite a few options for downloading unprotected (what a strange word in this context) music. But for the internationally available iTunes, it's more complicated: From what I've read, record labels were scared of Apple getting too much power, so they withheld unprotected versions of their content (which is on Amazon.com). Thus, only a few songs are available in a DRM-free format (hopefully this will change soon). Fortunately, there are online music stores that can be used from European countries and that have more unprotected music:
- eMusic. Pros: all songs DRM-free, cheaper than iTunes. Cons: subscription-only (14.99 EUR per month for 30 songs, 16.99 for 50 songs, 20.99 for 75 songs, 29.99 for 100 songs).
- PayPlay. Pros: all songs DRM-free, cheaper than iTunes, no subscription. Cons: Billing happens in chunks of $5.
- iTunes. Pros: precise billing, no subscription, cheaper than CDs. Cons: many songs are DRM-only.
New video editing ideas
A video about “Interactive Video Object Manipulation” demonstrates research done by Adobe. One can for example, draw a rectangle on a moving object, type text into it and the text stays attached as the object moves:
Or, with several people in a video, one can create a picture where shots from different times appear side by side, thus increasing the probability that all of them look good. [Source and picture: Engadget]
If you want to see more technology in a similar vein, look at these videos:
Or, with several people in a video, one can create a picture where shots from different times appear side by side, thus increasing the probability that all of them look good. [Source and picture: Engadget]If you want to see more technology in a similar vein, look at these videos:
- Image Resizing by Seam Carving: Resizes images without them looking distorted. By marking areas, one can remove these areas when compressing the image.
- Microsoft Photosynth: Places images in a 3-dimensional space allowing one to do all kinds of cool zooming etc.
الجمعة، 28 نوفمبر 2008
Firefox tags and parent folders
For version 3.0, Firefox got a new SQLite-based bookmarks mangement. While I'm sad that they completely dropped RDF (even prior to that, it was used in strange ways), the new system is cool, especially how tags are handled—each tag is a folder (in a backup to a JSON file, the folder contents are even stored redundantly). This makes bookmark management really simple:
- Show all bookmarks with a given tag: look at the contents of the tag folder. Wish: a “child counter” in the folder title so that one does not have to open the folder to see how many bookmarks are in it.
- Remove a tag: remove the tag folder.
- Merge two tags: move all bookmarks from one tag folder to another; Firefox makes sure that there are no duplicates.
- Show Parent Folder: Shows the name of the parent folder in lists.
- Go Parent Folder: Go to the parent folder of a bookmark via its context menu.
الاشتراك في:
الرسائل (Atom)
