We had a nice little advertising campaign not long ago in Switzerland. Today I stumbled across this website and.. is this bloody ad so much stamped into my head that I can’t look at sheeps anymore without thinking of it, or do those sheeps have some intruded similarity? See for yourself:

 

It’s very cool and interesting to see that kind of things. Much progress has been made with this kind of multitouch interface, both from a technical and a user interface view. Things got much more responsive and start to make sense.. with that kind of data (especially data that’s hard to manage with keyboard). So, in my opinion, it’s a great replacement for most things that we do with the mouse… but hey, in a productive environement, we deal a lot with language input, don’t we?

And while a virtual keyboard on an iPhone makes sense (switching languages, improving functionality via sw update, not taking any space where not much space is), i’m less than sure that this would work on a desktop device. Sure, writing on a keyboard is nothing easy to learn, but once you have it, you can write much faster than by hand, and everybody who has to write a lot knows about the importance of some good tactile feedback.

Anyway, I’m more than interested where this will lead to. I’m pretty sure we’ll first see this kind of things in (productive) environments that have to deal with (3D) imagery (like in medicine). Hmm hmm.

Today I stumbled across a cool feature in the new iPhone software. What makes it even cooler is the fact that I invented it myself – God aka Mr. Jobs has just listened!

So what’s the deal? When you press the headset button twice while listening to music, it will skip to the next song. That’s it. Isn’t that just awesome?! I think so :-)

So Flash Player 10 is on its way. Soon, very soon, we’ll be able to enjoy 3D effects on every other website, youhaa. While some are eagerly waiting for this or the enhanced drawing API, I’m very much looking forward to the speed enhancements.

Visual Speed

While Flash Player 9 or more precisely the underlying actionscript 3 interpreter have lead to great speed enhancements on the logic side (meaning much faster data manipulation), it’s still rather slow when it comes to rendering. In a project I’m currently working on there’s quite some stuff going on here, but when I check speed performance with the Flex Profiler, most time is spent for rendering. Significant time. And it’s not some freaky Papervision 3D stuff ;)

So with Flash Player 10 this will be better. Adobe finally improves rendering speed, and the good thing is that every exisiting project (at least >= f9, all?) will profit without republishing. I had done some little tests with a beta, and though I don’t remember the results, they looked quite promising (even on a Mac). I’m not sure though when they’re gonna use the graphic card to speed up – I don’t think it made use of that in my tests. Most people mention the hardware acceleration (some rendering tasks can be offloaded to your graphics card), but in my understanding the overhauled the entire rendering system, so everything and everyone should profit.

Vectors

Vectors are simply typed Arrays. A limited array. Ha! why would we want that?! For two reasons:

  • Developers have more feedback while coding: the IDE will be able to tell you when you put some wrong stuff in an array – as for now you could mix whatever data in an array, the compiler wouldn’t complain. But above all, the IDE will be able to provide you help while typing: no more casting all the time to get to the methods of an array item!
  • Speed. A typed array can be much faster. And it will be.

It looks like this:

var vector:Vector.<int> = new Vector.<int>();

I’m not too much a fan of the definition syntax – something like this would look better, I think:

var vector:Vector::int = new Vector::int();
// or
var vector:int[] = new int[]();

But I haven’t thought of it much. Adobe certainly thought about it. Or some ECMA comittee. (Copy-pasting in Wordpress HTML mode also won’t work anymore.. pfff) Also I personally would have preferred not to have another class for that (just enhance the good old Array), but there are reasons for that too (backward compatibility, I guess, I can sing a song about that too). So anyway, I’m eagerly looking forward to use that stuff. I just love speed.

More infos here: Using Vectors in ActionScript 3 and Flash Player 10

Update: Ok, I can’t make to appear the new Vector syntax in Wordpress. Now I like the syntax even less ;-)

SVN is definitely cool. So I use it for quite all of my projects. Being able to jump back, having a versioned backup, share-coding with others – awesome.

But most of my projects are to run on some kind of webserver. Usually I use my local webserver to test, so I can symlink directly into the projects (and then upload to productive manually). That’s okay for me. But for a recent project I have to test on some remote ftp. So shall I each time commit/update then upload to FTP? And all other team members too? Come on, we are humans, that is stupid repetitive computer work!

So I discovered SVN hooks. These are kind of scripts that can be called each time a SVN repository is changed. Find the directory in path/to/repos/hooks. I found this for my FTP hook: svn2web – it’ll give you all you need to setup the hook. The real cool thing is that you can define the ftp/sftp-behaviour in SVN properties:

svn propset svn2web "sftp:username:password@machine:/path" .

My pre-commit hook looks like this:

#!/bin/bash
export PATH=/usr/local/bin:/usr/bin:/bin
svn2web $1 $2 >> /tmp/svn2web.log || exit 1
exit 0

Be aware of two things:

  1. Install svn2web commands in /usr/local/bin – now you have to export the path variables in the hook script, because it will be called without any path variables (for security reasons)
  2. If the ftp upload fails for whatever reason, the commmit will fail too. That’s what we want, usually, because otherwise we wouldn’t get any feedback on comitting. If you don’t want, just setup the hook as post-commit.

For some reasons my ftp-upload hook wouldn’t work on this stupid test server. I spent quite some time figuring out why and what. It seemed that whenever ftp tried to PUT, the ftp server tried to change to some extended passive mode and would hang there. I found out that when calling the command

epsv

before ftp operations, this wouldn’t happen. So, cool :-)