Woot! Get it while it's hot. And yeah, Astro did seem to move a lot of compositioning to the GPU!
|
Yeah! We just received word that UPM Forest Life won the Corporate Communications category Webby Award. Webby - check. Now the only big one still missing is the CyberLion. We've got a new opening. We're now also looking for senior web developers. Check out the requirements. In addition to that we're still looking for Concept Designers, Game Developers, Game Designers, Flex Programmers and Project Managers. Flash Media Server 3 includes functionality to verify that a connecting SWF has not been modified by a third party:
This feature works only in FP 9.0.115, so I guess the Player performs some kind of checksum on the running SWF when a certain AMF3 connection is opened (or the server requests for the checksum to be computed). The great thing about this is that this cannot be spoofed (if the user does not modify the Flash Player itself). This means that you can be absolutely sure that the SWF connecting to your server has not been modified in any way, making it very easy create a trusted relationship with the client. Now, how the hell do we implement this absolutely fantastic feature in non-media server projects? It has to be in the AMF3 protocol somewhere. Anyone? Adobe? Just wanted to post a quickie to say how much I love FireBug. It has made my day about a million times. Big thanks to John Barton (and anyone else involved). You've made programming JavaScript 1000 times more enjoyable. The Adobe User Group Finland is hosting a special live event to share exciting new information on Adobe's platform tools and technologies for building RIAs. You'll see an exclusive user group video presentation by Adobe Chief Software Architect, Kevin Lynch, hear some important product news, plus get your hands on some exclusive schwag and other giveaways. Be part of the fun and excitement and join the rest of the Adobe developer community by participating in this very special event.
When: Wednesday, February 27 at 18pm Jup, its out, and it's gorgeous. But what? 2GB of memory and not upgradeable? They certainly had a lot of squeezing to do to fit all into such a tiny shell, but once I upgraded to 3GB on my MacBook Pro I made an oath never to go back to 2GB again. I would have never believed it, but adding memory really is the best thing to do if you want to increase the your productivity. The difference is like night and day, even if you're working only in a few apps (ok, thats CS3 apps I'm taking about). So no MacBook Air for me... :(
So I got me an iPhone from the US a week ago. Unfortunately I did not visit the hackint0sh forums beforehand, otherwise I would have known that you no longer can SIM-unlock it since new models got a new boot-loader. Fortunately there are some inexpensive hardware-hacks around, so no big deal. But reading through the forums at Hacint0sh, it struck me how much frustration and anger silently Apple's move to silently disabling existing software-hacks has caused. Don't get me wrong, Apple's move to stop hackers from SIM-unlocking their device was expected and in my mind also just. In the end they are a public company and they're doing everything to increase their cash-flow. Someone at Apple - who probably is much smarter than any of us - has calculated that locking down a device to one operator and getting a share of the operators revenue is more lucrative than selling the device to anyone who wants it. Therefore they're just acting like any sane business would. However, I most ponder what the hell has happened that locking down a phone to a certain operator even is possible. Think about these cases for a while: What would you say that when you buy a new car that you have to agree to use only gas-stations from BP (all other stations would be incompatible with the tank's nossle). Or that when buying a new PC, you'd also had to subscribe to two year expensive ISP contract? Sounds really stupid, doesn't it? But hey, binding a device to a certain Telco operator is in my mind the same thing. Ok,ok. I live in Finland. A year ago it was illegal to bundle a phone with a subscription. And now it's only possible for 3G devices (apparently our legislators bought the idea that 3G phones need to be pre-configured by the operator to be useful. My arse!). Living in such a free country I get a rash whenever I hear of U.S. telcos. When we launched WidSets news started come in that Sprint restricted socket connections to "3rd party services". My initial thought was "OMG, another great internet-wall of china". The same thought came to mind when a month ago T-Mobile restricted mobile access to Twitter overnight. Next morning they explained "that Twitter was not a supported service"... If my operator did the same thing I probably would sue them just for the principle. Since when does the free (as if) world tolerate censorship? Come on guys, revolt!
Meanwhile we're closing the year with many competition successes. Fressis, a campaign we did with Hasan&Partners (unfortunately they totally "forgot" to mention us) got bronze at Eurobest and silver at Epica. UPM Forest Life also got silver at Epica and won at the European Excellence Awards. Kännissä olet ääliö won the campaign-category at SIME a few months ago. Now bring on the new year!
The devil is truly in the details. Leopards visual changes are so small, but yet make a huge difference. The OS just feels much more modern compared to Tiger, and all it took was some settle changes here and there instead of throwing out all the visuals out and designing from scratch. As a user I hugely appreciate this kind of design. I feel comfortable and familiar from the first second, yet still there is a welcome freshness to the UI. There are however a few things which I would have liked to see implemented. I don't know why Apple has made the decision to implement a slight delay when highlighting menu items. It's been there since 10.0, but in my mind it downgrades precision when navigating a large menu. When quickly moving the mouse over, say, 20 menu items, only a few items are highlighted along the way. This makes my Mac feel slow. The other thing is that UI controls still lack any rollover indication. I don't want the Windows christmas tree treatment, but a small, settle highlight when rolling over controls would again add some precision to daily UI tasks.
And since I've created some Flash apps for them I can finally say that I've done some work for Google. Sort of at least;) By now you've probably heard and seen the news from MAX. Custom filters, fills and blend modes using the Adobe Imaging Framework and coded with Hydra. Nice. But... Why not go further? AIF certainly makes use of the GPU to very quickly manipulate bitmap graphics by passing in one or two images to the graphics card and a compiled hydra-script which instructs the GPU to basically create a pixel shader and apply that to a textured rectangle. Now it seems that the good stuff ends there. While fast image manipulation (and we're talking realtime fullscreen image manipulation as opposed to Flash 8's slow software filters) certainly is cool, why not go all the way? I wold guess that only the image manipulation is done on the GPU and that the Flash Player then retrieves the rendered texture from the GPU to pass it back to the Flash Players software rendering pipeline. I would have really loved to see all (or most) rendering taking place on the GPU. Tinic, how about one of your great technical posts on this subject?
I've been optimizing the performance of one of our larger site productions the last week and took quite good care at making page elements cache correctly using expiry dates for each element type individually and gzipping any content that would benefit from it. Well, today was time to test the performance of the front-page on multiple browsers. The site is really very complex. Initially we load 130kb of (unzipped) JavaScript and make 2200 method or function calls before anything is rendered. I tested the overall performance with and without a primed cache and must say Safari's performance blew me away. For instance, IE7 takes 300 milliseconds to run the initialization procedures of the JavaScript classes. Safari: 28 milliseconds. What? Ten times faster? Even Firefox, which I to this day thought to have the best JavaScript engine of all browsers, takes 89 milliseconds. Initial page load times on Safari seemed to be a little better than on Firefox, although lacking extensions like Firebug, I was not able to test that scientifically. But what most impressed me was page load times with a primed cache. The site is designed so that all static elements like CSS or images have expiration dates, so essentially all that needs to be loaded when navigating back to the front-page would be the dynamically generated HTML. And looking at the server logs I confirmed that none of the browsers actually requested or revalidated any of the static elements. Still Firefox and IE take about one second to render the page. Safari: Instant. Really, you have to experience it to believe it. I've never experienced anything like it on any browser before. You hit the link and boom - its there. No delay whatsoever (well, ok, maybe the 28 milliseconds which it executes the JS in). And the best part? I'm running Safari on Windows Vista on my MacBook Pro. Yep, hell has frozen over. Once again one of these posts... We're looking experienced Flash & Flex developers to join our team of brilliant people. I can without hesitation say that we've got the best Flash developers in Finland and we're looking for more! So if you're are, or are looking to become one of the leading Flash and/or Flex developers in We offer good compensation, great projects, even better colleagues and definitely great challenges and a fantastic learning experience. The next Adobe User Group Finland gathering will take place next Friday at our brand new office café. This time the subject is ColdFusion and presented by Tero Pikala, a CF guru and Flex developer. Tero will give us an overview of ColdFusion and tell us about the integration possibilities with Flash and Flex. Time: Friday 7th of September at 17.00 Join in on the fun! There's a lot of hate-mail on diverse websites from people who have upgraded to iLife '08 and found that the totally revamped iMovie lacked a lot of features from earlier releases. While that's totally true (although I really didn't care for the features people are now whining about), I think what they did with the interface is again something every UI designer should take a look at. Taking the gesture of selecting a block of text and applying that to video clips sounds weird a first, but oh boy, it works! Skimming is again a first for Apple. A really simple idea which no-one thought of but everyone is bound to imitate. I know I will. I'm done using Cairngorm. It's just too much boilerplate code to write. Today I started to create my own In Cairngorm when you want to create a new Command you have to do three things: Create the Command class, register it in the Controller and create a Event class which eventually fires the command. Now, what's the reason to separate the event from the command, since the event always fires the command to which it has been registered, i.e. the event transports data (attributes) into the execute-method of the command. After some thinking I came to the conclusion that it's easier to bend the spoon itself rather than to bend yourself around the spoon. GrainCorn gets rid of the Event, and actually the Controller as well. That leaves us with one Command-class to create for every feature we'd our application to have. You issue a command by simply instantiating a new instance of a command, passing any parameters in the constructor:
new LoginCommand(username, password);
It's not necessary to store the command in a variable, since registering itself with the framework is handled by the command itself (every command extends GrainCornCommand). Also no controller is needed to bind Events to Commands, since we've removed Events altogether. Any thoughts? Am I missing something? Again shortlisted at Cannes this year, and still no Lions. UPM Forrest Life, which was one of the two finalists, is in my mind one of the best productions we've done in the past year, so I was a bit disappointed that we didn't get a Lion to bring home. But what the heck, this just leaves us even more hungry for next year. Growl. And yeah, only two projects were shortlisted from Finland, and both were made by us. So either we're really good or then the overall quality of Finnish interactive agencies is quite bad. I would actually guess its both. Huh, Ted revealed that Flex 3 will launch synchronously with a new minor release of the Flash Player. New features? Script caching! Visit a site that uses a specific Flex framework and the framework gets downloaded. Visit a second site that uses the same Flex framework and the framework will be loaded from cache, and only the application is downloaded. And if you're developing Flex (and Flash) projects for a number of domains under your control, you can use the script caching to deploy a single, only once downloaded runtime shared library for all your apps. Script caching is something we've been talking about with Lari over oh so many Gin & Tonics. Luckily in this case, the walls must have had ears. We are organising a meeting on Wednesday 30th of May at 18pm at Valve. We're excited to have Flex Evangelist Ben Forsaith speaking at the event. Ben will give a talk about Flex and Apollo. After his presentation we will continue with free discussion about the same subject (and a few beers maybe?). As seating is limited, please use the contact form on the AUG.fi-site to let us know if you are going to attend! Our company is looking for a senior web developer (Helsinki, Finland). Candidates should have at least 5 years of experience using ... jada-jada-jada ... you know the drill. Seniority. Superb markup- and programming skills. Great projects to work on. Fantastic people. Drop me a mail at tuomas.artman(at)valve.fi if you're interested. Wow, the PR department at Apple is really, really good. First they turned their problem with the EU over DRM to their advantage by having "Steve" write an open letter to the community, and now they've done it again, with Apple going green, err, Apple being green, oh wait, no that's not the way it went. Well at least Apple is the greenest of the bunch already - or are they? Nice brainwashing. You've heard the news (in case you didn't, it's all about Flex going Open Source). Very good move from Adobe, and not only for the community, but for Adobe itself. The Flex SDK and compiler have already been freely distributable, so Adobe's money is coming out of Flex Builder and server products. On the other side, money is spent on creating those freely distributable products. So why not kill two flies with one stroke. By open sourcing the SDK and compiler, the community gets a better product (more frequent updates, better performance, more features), which increases interest in Flex and drives sales and resources can be pulled (well, at some point) from the SDK and compiler teams because the community is doing all the heavy lifting. Now people of course start going "c'mon, the only thing you haven't open sources in the Flash Platform is the FlashPlayer (apart from the AS3 engine), how about opening it up?". Dare not wish things you really don't want to see, say I. It's ok to let everyone contribute to the Flex SDK, and have millions of builds flying in each direction, since in the end, a flaw build only crashes one single application. But imagine a community driven FlashPlayer out there. New releases and branches every week. Some group would add 3D Hardware acceleration immediately, others would work on MOD-player support, and both would be distributed and not compatible and we would loose the most important aspect of Flash - ubiquity. Ted has a great post on the shortcomings and mistakes of Silverlight. Some of the things he points out are obvious (Having 0% penetration is really problematic, although MS is of course going to bundle it with Windows/IE, but who uses them anyhow ;) ) , but there were a few big surprises (at least to me). For example, Silverlight does not stream. Ok, that makes sense, since it's not binary. But to me the killer was: Silverlight does not have a scripting language built in, but uses the browsers JavaScript capabilities. Yeah, WTF? Welcome to debugging hell! Of course, modern browsers are quite compatible, but to me it still means that I'll opt for my sanity and keep my hands of Silverlight (well, at least until it supports hardware-accelerated 3D on Mac)
I just put MillionClouds into production (it's only a soft launch, so pardon the dust, I know it's there...). It's my first public Flex application and I've enjoyed working on it every minute. MillionClouds is a joint venture between our company and Christian Yakowlef , a renowned finnish photographer. The idea behind it is that whenever you arrange a photo shoot the only thing that you cannot control is the sky, so advertising agencies very often require replacement skies. Now you could go out and wait for the perfect weather or try your luck with any of the major image banks, but searching for just the right sky is really a drag if you have to use keywords (blueish cumulus clouds with 20% overcast on a nice day won't get you any results ;) ). MillionClouds gives you a very nice and intuitive user interface to search for exactly the sky you need, and IMHO it's working beautifully. We've not yet tagged most of the images, but I just wanted to put this baby live. Oi, Christian, how about pulling yourself together and tagging the rest of the images, now that it's live? ;) Try out the color sort functionality, found under the Global Filters panel. It produces some great looking results.
A few days ago, the Nokia N95 went on sale world wide and I got mine. Today, I got a newsletter from Nokia Forum with an interesting topic; Widgets go mobile. Apparently it's a framework to Web driven applications for the S60 platform, much in the same way as Apple's widgets or Microsoft's gadgets. Both from a user and developer perspective it totally makes sense. Use technologies you know (html+javascript) to develop connected application rapidly and launch them like they were applications on your mobile. But! I just bought the newest, coolest and most expensive God! It only took 4 days to make my shiny new device an old fart. Huh, don't know where the count goes, but Amazon has once again released product details a little too early, thanks a bunch;) Their CS3 product page contains pricing, screenshots and most important features. One thing which caught my eye was the inclusion of Acrobat Connect (a.k.a. Breeze) in every package. Surely this can't be the real deal, but some sort of launcher application where you still need to purchase a separate account? UpdateDidn't notice it earlier, but the site also says that CS3 will ship April 20th, far earlier than has been speculated.
The first thing that I thought was weird is that Sony does not ship the PS3 with any hires cables. No problem, i thought, just pay a few bucks more... As it turns out, Sony also does not sell any DVI-cables (my TV is about two years old and thus does not come with HDMI. Also the component input only allows for 576i). Luckily HDMI is just DVI+sound with a different plug, so I buy a HDMI->DVI cable. Now how do I get decent sound of my shiny PS3? With optical audio, of course. Unfortunately my amplifier does not support optical audio, so I head to a Hi-fi store and buy a new amplifier and optical wires. At last I have everything I need to enjoy superior picture quality. I connect everything, select HDMI mode and.... nothing. F*ck. I mess around a bit but the screen remains blank. Googling around a bit I notice a lot of problems users are having with some HDTV's. A term that I've not heard before is in most posts: HDCP - High Bandwidth Digital Copy Protection. I've always thought of a TV being just a bloody stupid enhancement of the oscillator. A signal comes in and images are displayed. Boy have I been wrong. HDCP is a copy protection for the "last feet". The signal that comes out of your Blue-Ray or HD-DVD is still encrypted, so that swappers have no easy way of recording that data-stream, and HDCP encrypts it just before it hits the screen. Ok, this surely is something that a mere mortal does not need to know, does he? Well, he does, if he has bought his LCD HDTV a few years ago. As it turns out my f*cking LG RZ-32LZ50 does not support HDCP. Err, I'm quite certain that the store that sold me the LG said that the TV is HD-Ready. HD-Ready is a strandard which basically says that the TV has at least 768p resolution and supports HDCP (since most HDTV services, be it satellite or blue ray require HDCP). So what happened? Well, the store actually did not use the term that described HD-Ready standard, but they had a sticker on the TV which said "HD-Valmis". "Valmis" is a finnish word which translated into "Ready". So they did not user the standard HD-Ready, which would have given me something to complain about (they promised me something that was incorrect, which by Finnish consumer law would have given my complaint quite a bit of leverage). But because they just said "You know, this TV is ready for some of the future services because it has good resolution", I doubt I'll ever be able to have them refund anything. The point of this story? If you're an early adapter of any technology, be sure that you know all the pitfalls involved, even if it's a simple consumer electronics product such as a TV, Microwave-oven or toaster. Now that I've had a little time to play with Apollo (mostly lovin' it) I can't shake the idea of how great it would be to have proper (x)HTML support within the Flash Player. You know, Flash is really, really bad at laying things out (as in layout ;)). Basically you have to define and code a heck of a lot to create something really simple. Flex does this a lot better, of course, but having spend the last 2 months with it I must say that I really do miss the elegance and simplicity of xHTML & CSS. Flex does a good job at laying out and controlling UI controls, but a really lousy job at making it easy to display structural information. And that's the beauty of Apollo. It's inbuilt browser. Whenever you need to display a ton (or even less) of information, there's no better option than HTML. So in effect you get the best of both world, a very powerful application framework and a great way to display structured information. So I wonder, what would be the size of a stripped down version of the Web-Kit be? Small enough for FP10? Forget JavaScript, XML support, AJAX. Just implement a decent subset (or all of the specification) of XHTML and CSS2 (ahh, if not 3) into the Flash Player and I will be your friend for life. You've already done it for Apollo, all you now need to do is remove two thirds of the code you have in there ;) So it's out. I'm sure it will keep me really busy until CS3 is released. I'm trying to search for images based on color. In theory this is somewhat simple: When images are uploaded to the service, I create a histogram of rgb values from the image. When the user then commences a search with a certain colour I go though all histograms, look up the value for r, g and b and look to see if it is greater than the threshold. Now, how the heck do I translate this into a MySQL structure? I certainly don't want to have an own column for all values of r,g, and b (768 columns, huh), but a BLOB is not (quickly) searchable. Has anyone tried anything like this (storing somewhat large amounts of data, that is still searchable in MySQL) before? Any help would be greatly appreciated. I earlier had the problem of slow responses to resizing the browser window and having the Flex Framework layout stuff with constraints. I revisited the problem, since our app is making it's way to beta and I wanted to fix this bummer. As it turns out, it was really easy (there's a lot of documentation in Flex, so it sometimes can take a while before you find what you're looking for). Anyhow, Flex2 does indeed throttle measure and layout passes (components get layout for every tenth or so resize event in my case), but using validateNow - method of the UIComponent class you can force measurement and layout of a component and all it's children. Placing this:
private function init():void {
stage.addEventListener(Event.RESIZE, resize); } private function resize(e:Event):void{ this.validateNow(); } into the application class wil make things resize aaahso smoothly. Ahh, March. The long and dark winter (you don't know how dark it really is untill you've visited Scandinavia) is about to give way to spring and we'll see the sun once more (for my fellow Scandinavians, it looks like a big fireball and is extremely bright). And March will hopefully see the unveiling of yet the biggest software release from Adobe. CS3 in all its glory is speculated to be released around March 27th. In related rumors Leopard will also most likely see a March release. Cant wait to spend 55.000€ upgrading our software ;)
There's been a lot of buzz around 3D in Flash since Carlos Ulloa decided to decided to go Open Source with Papervision 3D (as a side-note, if you plan on going Open Source, why wait to release the source code and enable anyone to contribute?). And as promising as it looks and as much as the guys earn respect for creating something as complex as PV3D I must say that everybody is a little too excited. I'm not saying that PV3D wouldn't find it's way into many projects down the line. It'll definitely find it's place in a number of cool (yet simple) UI's. Aral Balkan even went as far as to say that we finally have PlayStation quality 3D in Flash. Now quality in my mind means speed, when you talk about 3D. Although the original PlayStation was not equipped with a GPU for 3D drawing to what we're used today, it did have a Gemoetry Transformation Engine, which increased the speed of 3D calculations required to draw flat, shaded or textured polygons and was able to draw 180.000 texture-mapped and light-shaded polygons per second. Thats still 6000 polygons if you want everything to run 30fps. PV3D is not going to be able to come even close to that (with the average PC that's out there). Now jump back quite a few years to almost the beginning of the century and look at one of the most popular graphics cards: The GeForce 4 MX series. Even in its lowest configuration its able to paint 31 million triangles per second. And all with anisotropic filtering, pixel shading, multitexture rendering and lot of a heck more that wouldn't be possible (and is never going to be possible) to achieve with CPU rendering. What's my point? Well, my point is that we are Flash developers (at least the ones still reading...). We're amazed by what guys like Carlos are doing, since we know what we're up against. We know we don't have hardware acceleration. We know that AS3 is still a scripting language. That's why we tend to go whoaaa whenever a new 3D engine or C64 emulator sees the daylight. But our end-users, the ones that use the end-result of our projects and in the end truly matter, don't know what constraints we have. They use hardware accelerated 3D all the time. And they will pitifully laugh at any 3D game created in Flash we can throw at them. The engine that turns us on will look embarrassing in the eyes of someone who has played a few 3D games. What we need is a hardware accelerated Flash Palyer, because with the introduction of AS3 the bottleneck in the player is again graphics rendering. Not only will hw-acceleration give us awesome 3D, but accelerating vector & bitmap rendering should also give the Player a performance increase that'll blow your mind (You know, bitmap rendering with a decent gfx-card should increase performance some 10 000%). I'm sure the the Flash Player team is looking closely what Microsoft is doing on that front, and am quite certain that we'll see a fully accelerated Flash Player 10. Come on by if you're interested. We'll hold a AUG Finland meeting on Flex tomorrow at 18 pm at Valve. We will have a speaker from IT Moon, who'll show us some real world projects they've done with Flex 2. We will also raffle some Adobe stuff and start (hopefully) the first AUG Finland competition. I'm working on a fluid Flex application and ran into a small problem. Whenever the user resizes the browser window, Flex seems to wait for a small while to see if the window continues to resize and only renderes the view when resizing stops for about 50ms or so. If I hook up to the resize-event of the application instance, it gets fired almost every frame when I resize the browser window. I also tried to invalidateSize() on the resize-event, but that does not help. Any ideas? 2 years of chatter, and now it has finally been announced. The coolest gadget the planet has yet seen. I knew Apple would put out something spectacular, but boy, I had no idea... This must be the end of an era (The "smart-phone" era). It's still half a year till this baby comes out, but I don't think that the top three phone manufacturer trio will be able to deliver anything equally great, even if they had two years time to develop it. I'm counting the days till I get one...
Their idea is simple: They want to give meaning to each and every picture with people posing. In effect, they want to recognize each person of each photo on the web, and having seen their presentation at SIME a few months ago, I must say, they really might succeed. A number of services have tried this before, but in my mind they were not really successful because of the labour the user would have to go through in order to tag each person. Polar Rose uses unique face recognition algorithms and the collective intelligence of our users to tag all pictures on the web. The only problem they are going to face is that their technology relies on a browser plugin (probably because they want to harness the collective data processing power as well, otherwise they could and would have built their front-end with JavaScript or as simple extensions), which they will have a hard time to get out to all users. But very interesting indeed, be sure to sign up to their beta on the pages. Yeah, finally a Universal build of Photoshop. Adobe has announced that Photoshop CS3 (with additional beta stuff like the Adobe Device Central and Bridge) are going to be launched on Adobe labs today. Point your browsers there and keep hitting that refresh button. Update: Still no frontpage coverage, but you can dowload PS CS3 here. |

Whoa, what a busy years end. I've been working like crazy to get my projects finished before the end of the year... Still one more week to go.


Check out
Man, technology sometimes just moves too fast.
So I bought a PS3 two days ago. I was looking forward to finally use my somewhat old HDTV to enjoy 720p action. Ok, I have had some decent action with my XBox360, but you know, that's still analog VGA.
One of the most interesting companies of the next year must be