Archive
You are currently browsing the archives for the Technology category.
By scott
I am not one to usually complain on my blog, mainly because I think the people reading my blog could give a rats ass about my problems. However, this time I feel I need to complain because a) it has to do with online user experience (something I am passionate about) and b) pizza (something every developer is passionate about ;).
The other night I went online because my wife and I decided we wanted to order from Red Brick Pizza. Originally the plan was to just look up the phone number. Once I got to the site I remembered you can order online. Last time we ordered from Red Brick this is exactly what I did and it worked out fine so I figured I would try again.
The initial experience is standard, you hit the homepage and you are greeted with a massive shot of a mouth watering pizza that looks to be the size of the Millennium Falcon. From there I clicked on the “Menu” link in the top menu, again very standard for a restaurant site. Once I am in the menu I can use the left side navigation to browser their menu and below the menu is the “Order Online” button.
Little did I know the hell that awaited beyond that “Order Online” button.The first screen you are presented with inside “Order Online” is a Red Brick’s “Location Search Utility” (so official, geez). OK, I entered my ZIP code and clicked “Show Locations”. Ok, first problem, did anyone catch it? Earlier I mentioned that I have ordered online from Red Brick before. Why didn’t they remember my information. Hello, marketing opportunity, make me create an account, that way it is convenient for me next time I come, and it is convenient for you because you can mail me crap that I won’t read. Instead now I have to go through, enter my zip code, and select the restaurant that is closest to my house. That’s right, I have to select the restaurant closest to my house. Dear Red Brick, geo-location isn’t anything new. How about you suggest the restaurant that is closest to my house? Or pre-select it. I realize 2% of the time users may want to select a different restaurant because they are going to be on the other side of town or are picking it up en-route to a friends house, have you heard of a “Change Pickup Location” button?
Their “Location Search Utility” results page has a few issues too. When I entered my zip code, the results came back with two restaurants but only one restaurant is plotted on the Google map, the furthest one from my house (this may explain a few things…keep reading). Being extremely hungry I wasn’t in the mood for reading, and because the map was so zoomed out, I clicked the map plot, and clicked the “Go To Store Page” link in the map point call out.
Finally I made it to the online ordering page. Again, they show me the zoomed out, view from pluto, map with the map point again, not entirely necessary on this page. Below that is their entire menu listed with three columns to the right of each available item. In each column is a large, medium, and small number ticker and the corresponding price for each size. In Firefox, the layout of this page was horrible, none of the number tickers lined up with the corresponding items, sometimes the number tickers wrapped to the next line so you had no idea which item you were selecting. Luckily the two items I was ordering were at the absolute top of the list and the absolute bottom so it didn’t take much to figure out if I was using the correct number ticker.Well, there are so many things wrong with this page. Even in 1996 this page would have been horrible. The largest complaint, why isn’t this page merged with the menu they already have? I massive scrolling page with no categorization is just horrible user experience.
Ok, this may be because they are using an off the shelf e-Commerce solution and they were unable to incorporate it with their existing site. Nope, if you check the url, the same query string schema is used in the marketing type pages so we are still in the same system, we didn’t switch to https (you’ll see why shortly). I think it just comes down to laziness, someone, somewhere probably created an excel spread sheet with the prices and sizes available and gave it to a developer, that developer then cut and pasted that content into Dreamweaver (check the source, lots of MM_, not difficult to figure out they were using DW).Next issue, you can’t click on any of the items in the scrolling list? I see “NEW! Pizza Bianco”, however, I have no idea what a Pizza Bianco is. As a user, if I really want to know, I have to click on menu, then click on signature pizza, and find Pizzas Bianco. Then when I find it and navigate back to online ordering page my session was wiped and I have to start over, right back to the location selector…UGH! A simple solution would be to store the session and make each item clickable so the user can check out what each item is. The ideal solution would be to incorporate the ordering and menu sections but I already mentioned that. A middle of the road solution would be to have a mouse over div created that showed the image and description of the product. I assume all this data is stored somewhere since the site is running on Cold Fusion, there must be some sort of back-end?
Also, what is up with all the number tickers? Why aren’t they just using combo boxes, each combo box would contain the three sizes and the price. This would make the page look less daunting, would fix the layout issues, and personally I feel it is more standard and what users are used to. Not 16 thousand number tickers. Oh ya, if you click the number tickers too quickly the price in the top right doesn’t update, without looking at the code there must be some interval set up which isn’t catching the change event when you click fast.
Wow, this blog posting is getting a little long. I could go on and on and on about this horrible experience. Before I wrap it up I want to mention one more, and this one is the kicker. Once you have magically figured out what you want and possibly selected the correct size and quantity from the slew of number tickers and figured out that the “Proceed” button is way up in the top right of the browser you are redirected to the “Your Order” page. Once again I am asked to enter my location information. Didn’t I do this already? Note to developer <cfset session.zipcode = #FORM.zipcode#> does wonders for usability. Oh ya, I hope you don’t want to change anything, because if you click back at this point the number tickers don’t reset but the box in the top right that displays the current price of your order does so it appears that nothing is selected. Ok, now for the real fun. Fill in your contact information, click Submit (mmmm, I can already taste my pizza), and you are greeted with message “A pizza ambassador will contact you within 10 minutes to verify your order”. WHAT?!?!? call me? I just spent all this time online for nothing? I still have to deal with the phone.
Oh ya, so I lied, one more huge thing. After the pizza ambassador called me and confirmed my order, I went to pick it up and bingo, it wasn’t at the restaurant 1/2 mile from my house that I selected. It was at the restaurant on the other side of town. Interesting how the only restaurant that showed up on the map was the restaurant on the other side of town, however, the text results showed the restaurant 1/2 a mile from my house. So frustrating!
Red Brick, if you are going to offer online ordering, truely make it online ordering, don’t make users do a ton of unnecessary work and eventually end up on the phone with them anyway. Aixen Solutions, you may want to go back to the drawing board on this one.
Just my 2 cents, and in case anyone was wondering, the food was great, a little cold cause I had to drive so far to pick it up, but still tasty! They can’t make a website but they do make a decent pizza.
By scott
Chrome has only been out a few hours and I have to say I already love it. My largest complaint is there isn’t a Mac version of it yet. 90% of my work is done on a Mac, of the 10% of the time I spend on the PC about 5% of that is spent in a browser. So what is so special about Chrome?
- Extremly small download, 7mb (which includes 40+ languages)
- Fast, fast, fast.
- Virtualized JS engine (courtesy of V8 - no not the veggie drink), which I have heard is much cleaner thank Tamarin or Spidermonkey (haven’t had a chance to look myself yet).
- Offloaded cache and processing using Gears.
- Task Manager specific to the browser processes THANK YOU Google!
- Geek mode THANK YOU again, however I do miss Firebug already.
- Supplied developer tools work great, just need more.
- Crashing doesn’t take down the whole browser, instead it only blows away the specific tab. This is due to multiple processes, one per tab to be exact.
- And of course, searching Google is just that much easier.
The first thing I did was test the Disney suite of sites, better we catch the bugs before the evil QA department does (just kidding Eric, don’t assign me more bugs because of that last comment). The only major bug I have noticed so far is some redraw issues when AVM1 content is running inside of AVM2. Play some of the games on the Disney site and you will notice that the redraw hangs unless you scroll to the bottom of the page and back up. It seems to happen once AVM2 content is layered over top of AVM1 content. If no AVM2 content is layered over the AVM1 content everything seems to work fine. Sounds like more of a Flash Player bug then a Chrome bug.
The second issue I just noticed (which actually may be a feature) is multiple alpha tween animations seem to not animate, instead the content all pops on once all the tweened instances are complete.
I am not a huge fan of the default text rendering, probably one of the many reasons why the pages draw so quickly. IMHO the text looks like ass.
The other major problem is penetration, what is it going to take to get the world to download this browser. Sure the developer world is a buzz right now, but I don’t think the average joe is pumped about a new browser. Hopefully Microsoft and Mozilla learn or thing or two about browser development.
By scott
Now that H.264 video is supported in Flash Player 9.0.115 and FMS 3 is on the horizon we are getting ready to flip on the HD switch in our video player. We have been lucky enough to try out a few beta releases of FMS 3 and have had great success with streaming H.264 video without too many changes to our core video player component (both AS2 and AS3). However, I ran into an issue yesterday with progressively downloaded H.264 video. The video would play but it was not progressively downloading, it would download the entire file before it began playing. Not the user experience we were looking for. The files played fine in Quicktime, and they played fine in Flash when streamed from FMS 3, just not progressively.
Time to hit Google. I found a few postings, not many, probably not too many people using H.264 yet (so I thought). Turns out the problem lies within the encoding of the file and where the “moov atom” is stored. The moov atom is essentially the header information of the file. To progressively play a file this data is needed before the first frame of video can play. This data contains the appropriate meta data the NetStream class looks at when determining the length, size, etc of the video. The moov data in my .mov files were stored at the end of my videos and that is why the video wouldn’t play until the entire file was downloaded. The moov data needs to be at the beginning of the file in order to progressively stream video.
I figured others must have run into this issue and someone must have wrote a utility to move the header bytes from the end of the file to the beginning. Byte manipulation isn’t rocket science, close, but not quite. While searching I found an interesting tech note on the Adobe site and it turns out Adobe’s own video editing software is to blame for this. The quote below is pulled directly from the tech note explains the issue.
“One important thing about playing an H.264 video file as progressive download is that the moov atom needs to be located at the beginning of the file, or else the entire file will have to be downloaded before it begins playing. The moov atom is a part of the file that holds index information for the whole file. Unfortunately, tools such as Adobe Premiere and After Effects place this information at the end of the file, but Adobe is working to fix this in a future update to the CS3 video production tools. This isn’t an issue for streaming the H.264 video files, however, so Flash Media Server users can breathe easy.“
Why didn’t Adobe address this issue? Obviously they rushed this feature to market, Silverlight supported H.264 video and everyone was raving about it. I don’t know if Silverlight progressively streams H.264 video when the moov atom is at the end of the file or not. Can anyone confirm? Or maybe this was some sick marketers ploy to entice users to buy FMS 3, i doubt that but conspiracy theories are so much fun.
Scouring the web I did find a utility that moves the moov atom to the start of the file. Renaun Erickson ported a C app to AIR that moves the moov atom and resaves the file. Very impressive! Unfortunately it didn’t fix my issues, Renaun’s app only works with .mp4 files and the files I was working with are .mov files. Using Quicktime Pro I exported one of the .mov files to a .mp4 to see if Renaun’s app would then move the moov atom. Still no luck. As a last resort I tried a simple Save As from Quicktime to see if it would restructure the bytes so the moov atom was at the beginning of the file. Guess what, it worked! My progressive downloads now worked. I created a simple batch and saved out all my progressive videos using Quicktime.
It baffles me that Adobe would not have put more thought into this problem especially when their own software is the culprit. They talk about CS3 suite integration and this is the furthest thing from that. Adobe mentions that they will be releasing a CS3 update to address the issue, hopefully sooner than later, unfortunately this does not help people (like me/us) who already have hundreds of H.264 assets with the moov atom at the end of the file. Re-encoding the video would be a huge process, we are already using the video assets for other streaming services, now that Flash supports H.264 we were hoping for an easy switch to our Flash video player. Most of our video is streamed, and that works great, unfortunately the progressively downloaded video wasn’t an easy switch.
In the end, the video looks great! Watching 1.2mb and 3mb fullscreen video in Flash is unreal. Now if we could just get support for variable bitrates!!
By scott
Well it’s a new year and I have held off posting anything. I didn’t really have a lot to say and I am not one to blog about nothing. A TV show about nothing was a huge success, but I can’t see a blog about nothing doing as well.
The past year has been a roller coaster for me and my family to say the least. We moved twice (4 times if you count corporate housing stops), one move was into a completely different country, I started 2 new jobs (Yahoo! and now Disney), my son went to 2 different schools, and somehow my wife found the time to get pregnant with our third child. So that means we won’t be resting anytime soon.
Looking back I wouldn’t of changed a thing as crazy as everything was. I learned so much professionally and personally. Professionally I have grown, my coding has improved greatly, for the most part I have been strictly working in AS3 and have absolutely no desire to turn back, unfortunately legacy code exists and AS2 will never go away, not for a long time anyway.
One of the best things of last year was working with Papervision, it has opened up a whole new world (or dimension) to me. I am a developer but I do have a creative side and being able to merge both halves of my brain using something like Papervision is truly amazing. Introducing the third dimension into interface design improves user experience because as humans we are trained to work with objects in 3D space and building everyday metaphors into the UI of our apps will make them that much better. Now if we could just get rid of the keyboard and mouse it would make obtaining those metaphors a lot easier. I think we are going to see a lot more 3D in the RIA space in 2008.
Last year we were all introduced to the iPhone, I am not going to drone on about it, but it truly is a great piece of hardware and software. Sure it is missing a few key things, but it is only a first release. Early this year Apple is releasing the iPhone SDK, you know engineers will be all over this SDK and it will only be a matter of time before some really cool apps and extensions are released for the iPhone. There is already a GPS extension in the works, GPS is the only thing I miss about my old LG phone.
So what else do I see happening in 2008. This is not a political blog so I won’t go into how I see the global economy switching from the U.S. dollar to the Euro, and I won’t go into the recession that everyone seems to be poo pooing which personally I think has already started. I also won’t go into how the Big 3 American car companies are digging their own graves and how the auto Unions are holding the biggest shovel. My all Chrysler employed family may disown me if I talk down the unions, oh wait, I think I just did.
2008 should be an interesting year from an RIA standpoint. There is a lot coming down the pipe. AIR is the first thing that comes to mind. Adobe has done a great job with AIR, I am just not sure how well it is going to take off out of the gate. In its current state it is a cool toy. I don’t think it is going to flop, I just think it will take a little time to fly, and maybe another major release. Personally I don’t agree with the whole AIR run time. I have used both mProjector and Zinc in the past to wrap swfs and create desktop applications. Both of these products allow you to create cross platform (Mac and PC, no Linux love) stand-alone apps with the Flash player included in the executable (if need be). These products had more hooks into the OS and file system, what they didn’t have was an embedded version of Webkit and a JS API. They also didn’t have the ability to interact with PDFs. So yes, AIR has it’s advantages, I just don’t agree with the runtime, it just adds a level of unnecessary complexity and doesn’t easily allow for easy deployment. IMHO. The apps should be stand alone so you can burn them on a CD and have them just work.
I mentioned the iPhone SDK already, this will be huge, of course people are going to try and monetize off of this, why wouldn’t they. What I am really hoping, as are most who are reading this blog, is the iPhone Flash Player we’ve been all dreaming about. There are rumors, lots of them, unfortunately only one guy (and probably a few hundred others) know for sure, Mr. Jobs, please enlighten us. The Internet on your phone is still a little watered down, you promised me the real internet in your ads, where is it? I know there would be memory issues, let’s face it, there are some very heavy flash sites out there. Already I have seen Safari on the iPhone close/crash when an image heavy page is loaded. By now I am sure most of you have heard about QVM or tamarin-tracing, could this be the beginning of something huge?
What else, Flex 3, all I have to say is wow. If you haven’t played with the beta do so now. The profiling and refactoring alone will blow you away. Flex has taken off big time, the one thing that puzzles me though is the number of recruiters who contact me with Flex work yet I still don’t see a ton of it out there in the tubes. Some of the jobs are with Fortune 500 companies. Either they are taking their sweet time to launch their “next big thing” or they gave up on using Flex because they couldn’t find the talent.
This year we will also see the Flex framework fully open sourced. Thank you Adobe, this is really going to change the landscape. Maybe we’ll finally see an AS3 decompiler.
EcmaScript 4, this is going to be an interesting one to watch. There has been a lot of rumblings from a few of the big players. Microsoft doesn’t like it. Once again, Microsoft and Adobe will be at each others throats.
IE8 will be released, yawwwwwwn.
Thermo, Astro, Buzzword oh my. H.264, Google Gears, WPF, it’s shaping up to be a good year. I have even heard some rumblings from the Cold Fusion camp, sounds like there is going to be some cool stuff coming from them.
I am not one to make resolutions, I believe if you have to wait till the beginning of the year to make a resolution you’re not very motivated. But this year I want to expand my horizons. I want to get into other technologies, I have played with a lot of things but I want to go beyond playing. Things like Ruby, Gears, Python. I want to get dirty with SQLlite. I also want to contribute more to the Open Source community. I also don’t want to move, don’t want to start a new job and maybe want to take a vacation for the first time in 4 years. We’ll see how much of this list I get to, with a third child on the way it could be tricky.
In closing, Happy New Year to all, I hope you and your families have a great 2008.
Filed under:
AIR,
Actionscript,
Adobe,
Apollo,
Apple,
Disney Internet Group,
Family,
Flash,
Flex,
General Programming,
Papervision3D,
Technology,
Whatever,
Yahoo
By scott
Google defines Thermo as “Two bars or wires of dissimilar metals joined at one extremity which Couple develop a current (thermoelectric current) when heated.” I define it as a major accomplishment for Adobe that is reinventing the term “Deseloper“. Aral Balkan has posted videos from the sneak peak at Max, too cool.
This is a very early sneak peak, possibly even some smoke and mirrors, but still, Adobe has hit the nail on the head and may have finally beat the Flex Project workflow issues. Watching these videos do bring up a few questions.
Are Thermo projects bound to the original assets? If the developer are working on a project together and the designer changes something in the design will Thermo automatically update the MXML. Obviously within reason, but say the designer moved the Favorites album list above the top list. Whould Thermo recognize this and make the change without the developer intervention?
All of the styles appear to be inline in the demo, can they be extracted into CSS for runtime styling? For larger applications this is mandatory for projects that are multilingual or are available under multiple brands.
What about working the other way? Open MXML in Photoshop? I don’t know how many times I have had designers take a screengrab of something I am working on, hack it apart in Photoshop just to show me what they want. Obviously they could do some of this in Thermo but I doubt Thermo will have every tool that is available in Photoshop and if it is a quick change a designer doesn’t need to learn Thermo, they can make the change, hit Save and the workflow isn’t interupted. This would also allow designers to skin existing components or even a prototype that a developer whipped together to show a concept.
With other WYSIWYG development tools the code output is usually something I wouldn’t want to hang on my fridge. MXML is pretty clean but there are optimizations that can be applied to ensure quicker compilation and easier access via Actionscript. I hope this will be considered. In the end it is all compiled so the output is usually not an issue but as a developer I have opened many files a designer has created with a WYSIWYG applications and have almost fallen out of my chair.
I am sure I will have more questions as I let this sink in. Coming from a design/creative background developer/designer workflows are something I have worked on at most companies I have worked at. I think this is a huge step in the right direction. As long as Adobe doesn’t create a visual tool for creating business logic my job will be secure when Thermo hits the market
By scott
Well it says a lot about Silverlight when Microsoft is still rolling out Flash sites (only targeting Flash Player 8, AS3 must be too tough for them ;). I know Silverlight is still in beta and obviously not ready for primetime, but I still find it a some what humorous, maybe you will too, maybe not. I am sure I will get flamed for this post, but isn’t that part of the fun of having a blog? http://www.syncmyride.com
I will admit they have almost implemented a nice SEO (Search Engine Optimized) Flash site. If you view the source you will notice all of the content is written in xhtml, the swf then parses that same xhtml and uses it as its datasource. I said “almost implemented a nice SEO’d Flash site” because if you turn off javascript the content is not displayed. Certain Search Engines will still parse the mark-up but others won’t. They should of made the site fail more gracefully and display the raw XHTML for those Search Engines who ignore javascript like Google.
As a side note, another thing I found interesting is they show an image of an iPod on the site next to their (crappy) Zune player. Understandable I guess since iPod is the number one portable music player. Microsoft isn’t going to deny that.
By scott
Well that didn’t take long, Adobe posted the latest Flash Player penetration rates and 84% of users in the US and Canada are now equipped with Flash Player 9. In the past it usually took 2 years to reach 80% penetration, it only took 10 months for Flash Player 9. Amazing.This is the first time we will actually be able to publish something with the latest version of the Flash IDE and be confident that most people will be able to see our “stuff”.
Great work Adobe, and take that Microsoft.
By scott
Adobe has announced that they are planning, over the next year, to open source the Flex SDK. Using the Mozilla Public License developers will now be able to contribute and enhance the Flex SDK including the Flex framework classes, the Flex components, the Actionscript debugger, the Actionscript 3 compilers (including the mxmls and compc compilers).
Starting in June 2007 Adobe will be posting daily builds of the Flex SDK and providing open access to a bug database online. In December of 2007 after the release of “Moxie” (Flex 3) Adobe will be posting all software assets into a public Subversion repository for public access.
What this means is development models and methods can now be drastically improved or invented. If you want to develop a Flex app using Rails, go for it. If you want to use .NET to build your Flex app, be Adobe’s guest. What this doesn’t mean is open source of the Flash Player, nor should it be (IMO) open sourced. While you are still limited to the capabilities of the Flash Player, your development process is now not limited to the existing SDK. In fact, any software developer can now make their own IDE, Flex Builder and Flash CS3 need not apply.
Flex has seen extraordinary growth in the past 6 months. Enterprise applications are popping up all the time. And with the launch of Silverlight (worst name ever by the way) the RIA arena just got a little more crowded. Personally, I feel that opening up the SDK will help attract a whole other breed of developers, ones that feel tied down to a corporate development environment. For the same reasons developers were staying away from .Net in its early day, they are staying away from Flex. Corporate controlled development environments and languages are always limited to the limits of the compiler, languages, and/or authoring environments. Back in the day, the open source arena exploded with the likes of PHP, Apache, Tomcat, etc. all open sourced and equally as powerful (or more so in my eyes). Suddenly .Net or Java was limited to developers or companies with very deep pockets. Open sourcing has worked for PHP and it is the reason it wasn’t gobbled up by corporate backed languages such as .Net or Java, <sarcascm>take a look around, you may notice a few PHP sites on the good old interweb.</sarcascm>.
Will Flex be the next PHP? Will the community take Flex development to the next level? Will Flex development now be the defacto when it comes to RIA, is it already? No one knows, only time will tell. A colleague of mine just had an interesting quote. “There are no open source millionaires.” I don’t think Adobe cares about that, that’s Microsofts attitude. Adobe just wants to provide the best possible solutions for their customers. They’ll keep making money from products like Photoshop
By scott
Today at work we ran into another flash player / browser inconsistency. When using MovieClipLoader to load an external asset, the onLoadError event doesn’t fire in Firefox when trying to load an asset from a non-existent domain. In fact, the onLoadStart event doesn’t even fire. The other MovieClipLoader events don’t fire but they shouldn’t, there isn’t any progress and the load never reaches completion or initialization.If you attempt to load a non-existent asset from a valid domain the onLoadError event fires fine in Firefox. In IE and Safari the onLoadError event fires in both scenarios. These are the only browsers I tested but I would be interested in seeing what happens in the others.
So let me break it down. This code doesn’t fire the onLoadError event in Firefox. It just fails silently:
var mLoader:MovieClipLoader = new MovieClipLoader();
var mObj:Object = new Object();
mObj.onLoadError = function(ev:Object):Void {
getURL('javascript:alert("onLoadError")');
}
mLoader.addListener(mObj);
mLoader.loadClip('http://kaljdflkasjdf.com/image.jpg', this);
However, this code and domain do fire the onLoadError event.
var mLoader:MovieClipLoader = new MovieClipLoader();
var mObj:Object = new Object();
mObj.onLoadError = function(ev:Object):Void {
getURL('javascript:alert("onLoadError")');
}
mLoader.addListener(mObj);
mLoader.loadClip('http://www.scottgmorgan.com/image.jpg', this);
Thought I would share this knowledge with the world. Last thing I want is others pulling out as much hair as I do
By scott
This video is truly inspirational and really demonstrates how digital media has changed and is changing our lives daily. It also looks like a screen cap of my monitor on a good day.
Hats off to whoever created this piece, nice work!