26 Apr 2012, 11:04am
gwt:

leave a comment




  • Anzeige
  • Improving Canvas Performance

    1. Time­out instead of Scheduler

    Sur­pris­ingly, using com.google.gwt.user.client.Timer seems much faster then rely­ing on com.google.gwt.core.client.Scheduler. I did not yet eval­u­ate the dif­fer­ences in detail but the lower CPU work­load speaks for itself.

    2. Ani­ma­tion­Sched­uler

    I am not really sure if this helps a lot, but you will find a lot of online doc­u­men­ta­tion explain­ing that you should use this:
    com.google.gwt.animation.client.AnimationScheduler.get(). requestAnimationFrame(callback, element);. The ele­ment para­me­ter is optional but said to improve per­for­mance as the browser can decide when to ren­der opti­mally.
    So when­ever your timer kicks in, and you are ready to ren­der the results, use the Ani­ma­tion­Sched­uler instead of call­ing your ren­der­ing rou­tines right away. It will only take very few mil­lisec­onds (depend­ing on the users screen frame rate—which is 60 Hz or more usu­ally) for the call­back to return to your code.

    3. Caching

    This parts requires much more effort and depends on your soft­ware archi­tec­ture and require­ments. The basic idea is not to redraw things that did not change. To do so we can draw each item on a hid­den can­vas once and then reuse this ren­der­ing dur­ing every draw­ing cycle.
    As the process is a bit more com­pli­cated, I will ded­i­cate it a sep­a­rate post—comming soon!

    4. Save on effects

    Yes, effects is what the can­vas is all about, but some­thing like a shadow can cost quite some CPU power. So if you run into prob­lems check if some of the effects can be achieved cheaper or even be removed.

    12 Mar 2009, 10:05pm
    projects:

    leave a comment




  • Anzeige
  • flickTrick

    The flickr Ser­vices API is quite amaz­ing. So I made a lit­tle appli­ca­tion called flick­Trick using phpFlickr.
    tI is capa­ble of pro­duc­ing either image mosaics on the basis of pub­lic pho­tos of a given flickr account, or it it can gen­er­ate a col­lage as the one you can see in the header part of this page, by sim­ply adding fol­low CSS to it.

    background-image: url(http://svenbuschbeck.net/flickTrick/collage.php?username=sven%20buschbeck&width=500&height=200&size=square&shuffle=true&maximum=24&alpha=40);

    — edit 2009/03/15 —
    As cre­at­ing a col­lage can take sev­eral sec­onds, I imple­mented a caching ver­sion. It firstly returns the last image stored for the given para­me­ters and then cre­ates a new image. This ver­sion can be accessed by using “fast-collage.php” instead of “collage.php”.

    » try it (alpha version) »

    21 Jan 2009, 11:21am
    jobs projects:

    leave a comment




  • Anzeige
  • oidviz

    What we do here in the Okkam project, is cre­at­ing an global infra­struc­ture, allow­ing to give an unique name to any­thing. We called it ENS (Entity Name Sys­tem), inspired by the DNS (Domain Name Sys­tem). Why? Because hav­ing every­thing named and all occur­rences in a doc­u­ment anno­tated with this name makes data inte­gra­tion as easy as pie. But names in a com­puter sci­ence envi­ron­ment are URIs and those are not human-readable by default. For exam­ple http://www.okkam.org/entity/ok923bf64b-3edf-4d0a-baf8-592db9f55689 is my name! :) — for sure no one is able nor will­ing to mem­o­rize this. As a first approach to this, I cre­ated a lit­tle PHP script, that can pro­duce an image rep­re­sent­ing those names, or ENS iden­ti­fiers or Okkam IDs (in short OID)  as we call them. This result­ing image should be much eas­ier to be remem­bered an recognized.

    representation for http://www.okkam.org/entity/ok923bf64b-3edf-4d0a-baf8-592db9f55689, that is me
    representation for http://www.okkam.org/entity/ok42fe5511-c177-435a-8cf7-18b6a881d8b7, a friend and colleague of mine

    The upper one rep­re­sents me and the one below Ste­fano Bor­toli, a friend and col­league of mine. Sev­eral dimen­sions have been used, like color, size, posi­tion and line-width. As a next step, besides improv­ing cre­ation speed, pat­terns and shapes could be intro­duced and even motion by exchang­ing the PNG image either with an old-fashioned ani­mated GIF or a Flash ani­ma­tion. Inte­gra­tion is kept as sim­ple as it can be, e.g. by sim­ply insert­ing <img src=“http://okkam.dit.unitn.it/oidviz/?oid=[put your ID here]”/> into your XHTML page. The PHP script returns a bit stream, as if you would load an exist­ing image directly from a server but instead it is cre­ated on-the-fly.

    17 Apr 2007, 10:10pm
    projects:

    2 comments




  • Anzeige
  • magnet v0

    Screenshot of the current version.I fin­ished the first pro­to­type imple­men­ta­tion of mag­net, a generic tool to visu­al­ize coherences/similarities between eni­ties of any data set.

    » user test & more info »

    6 Mar 2007, 7:50pm
    projects:

    leave a comment




  • Anzeige
  • sign selector

    While test­ing some ideas for a juke­box appli­ca­tion for my “media cen­ter” com­puter, I came to a point, where the user should be able to select an inter­pret or song from a huge list. If he knew the exact name, scrolling through a sorted list should be ok, but still a way to nar­row the list by typ­ing some ini­tial let­ters would be much faster and con­vinient. This should not be dif­fi­cult on a thouch screen, but as I also wanted  this appli­ca­tion to work on mouse-only devices, as a key­board was for exam­ple too space con­sum­ing in my con­fig­u­ra­tion. So I ended up try­ing to find an inter­face com­po­nent, allow­ing an user to enter a view let­ters with a point­ing device like a mouse or a track ball.

    It is basi­cally a pop-out tech­nique, but mak­ing use of mov­ing the mouse pointer in two dimen­sions, than the com­mon lin­ear approach. Oper­ati­ing this first pro­to­type ver­sion on the left is still a lit­tle rough though.

    7 Dec 2005, 12:22pm
    projects:

    leave a comment




  • Anzeige
  • Content and navigation as zoomable UI and masked floating layer

    See the Zoomable UI/floating layer navigational approach of my old (unmaintained!) home page

    See the Zoomable UI/floating layer nav­i­ga­tional approach of my old (unmain­tained!) home page (in german).

    This ver­sion of my home­page fea­tures a new nav­i­ga­tional con­cept com­bin­ing the idea of zoomable inter­faces and a masked float­ing layer. I cre­ated this appli­ca­tion as exper­i­ment while search­ing for con­cepts and idea about how to inte­grate con­tents and nav­i­ga­tional layer.

    After infor­mal feed back of user i asked to give it a trail, I had to find, in the end, this RIA will stay more an exper­i­ment than a easy to use infor­ma­tion portal.

    The text and media con­tained is in ger­man and has not been update ever since, addi­tion­ally the guest book is deac­ti­vated. There­fore give it a trail but do not take the con­tent seri­ous :) .