Category Archives: Web

Mirrored Bitmap Graphics in Flex SDK 4.1 Anyone?

A few days ago I decided to upgrade my PosterMyWall* Flash/Flex development environment from Flex Builder 3 to the latest IDE, Flash Builder 4 (Adobe can’t seem to decide on a name …). Flash Builder 4 comes with the latest version of the Flex SDK, 4.1.*.

When I compiled and ran the poster maker with the new SDK, I was appalled to notice that all my BitmapImage’s were mirrored horizontally. After Googling around for a bit, and going through Flex bug-fix logs, I came across this bug which gave me a clue as to what might be wrong.

The culprit is the default value of the layoutDirection property of some elements. Sometimes, based on how an element is located in the DOM, the value of layoutDirection might not be set properly. You’ll need to manually set it to LTR (or RTL) so that your images show up correctly.

*If you haven’t checked it out already, PosterMyWall is a great online poster maker that allows you to create posters and collages from your photos, which you can share online or get printed as large high quality posters.

Tagged , , , , ,

Brainstorming a Tech company name

Brainstorming a name for a software company that I’m a part of (well, as soon as we sign an LLC with this name). A post on 10 company name types on TechCrunch is useful.

Tagged , , ,

Encouraging User contributions online – the Community Activity Awareness pattern

As part of a homework for a Social Web course, I had to consider factors that research showed had an effect on user contribution on social websites (contribution can be anything from commenting, to rating, to making edits on a wiki page), and link them with popular design patterns used for crafting the user experience for such websites.

We primarily looked at the Yahoo! Design Pattern Library and tried to enhance patterns with more details, rationale for why they work, and more importantly, back our claims with credible references.

I didn’t find an equivalent design pattern in Yahoo’s library for the method of encouraging contribution that I was thinking of. I’ve seen this pattern used a lot on the Internet. I thought it might be good to give it some rigor and analyze why it works, in what situations it would work well, and how can it be improved. Below is the description of the Community Activity Awareness design pattern that I proposed (yes I know, I’m not good with names). The gist of the pattern is “When providing a user with the opportunity to contribute to the website, show information about how other users have responded (positively) to that particular contribution action”.

Continue reading

Tagged , , , , ,

The complete solution for implementing a deep-copy clone() method in ActionScript 3

When I started out to write a clone method for a few of my AS3 classes, I looked online and didn’t find any official information about cloning classes from Adobe. There were however a few solutions that were hacked together to provide the same functionality (here and here). These solutions have one big problem though, they don’t work with classes which have non-primitive properties.

My solution mostly builds on top of these solutions but it also provides the ability to clone classes which have properties that are custom class. And it also works with inheritance.

I’ve placed all helper methods in a CloneUtility class for better modularity. We’ll be using these methods in the code examples below.

Continue reading

Tagged , ,

Evolution of the PC – Where are we headed?

I’m reading In Search of Stupidity: Over 20 Years of High-Tech Marketing Disasters these days which talks about some high profile and some not to high profile blunders in the early days of the tech industry. It feels so unreal to read about the early incarnations of the ‘computer’, which supported at most 640KB and were heavy enough to induce back pains.

I remember seeing and touching some of these old dinosaurs, and it’s amazing how fast we’ve progressed. I was wondering what people 20-30 years down the line will think of our Macbook Pros, our Netbooks and our HP Dragons. I wonder how quaint our operating systems and software will look to them.

Even today we can see change happening as the concept of the PC being the sole repository for everything is becoming antiquated as more and more things are getting pushed to the cloud. I’m really impressed by some of Microsoft’s new Live services, particularly Live Mesh. It will be interesting to see what role Windows 7 plays in this transition of everything to the Web and how Windows as an operating system will evolve over the decades.

Exciting times indeed.

Rant ends here. Now I’m going to enjoy spring break!

User Experience Design – Thinking out of the box

GreenWhite recently posted a Google talk, Don’t make me click (sound familiar?) by Aza Raskin. Although his Wikipedia page has all the details, but this amazing guy (apparently a year younger than me) gave his first talk on user interface at the age of 10. I guess it helps if your dad is the visionary behind the Macintosh.

Anyway, the talk was pretty interesting. He spoke about how engineers and designers succumb to the ‘seduction of interaction’ in trying to making their UI’s ‘look cool’. The point that he was making was that UI’s should strive for the least bit of interaction possible. No interaction is the best interaction.

This is not something that is really surprising, since this concept was present way back in classics such as Don Norman’s Design of Everyday Things (if you haven’t read this, and you’re a software engineer, read it now before you write another line of code). A good tool is almost invisible. The user doesn’t need to think about the tool when using it.

He showed off some pretty cool interaction concepts, some of which have already been implemented in existing features. I really liked the automatic loading of content in an RSS reader as the user scrolls down (its called ‘river of news’, go ahead and Google it for a demo). I thought it was a pretty good example of doing what the user wants without having them interact with the application, i.e. reducing interaction.

He also showed off Social Helix’s calendar (check it out, it’s pretty cool!), which has a pretty smart interaction design. Effective use of a simple zoom-in/zoom-out allows the user to access all events in the entire 21st century with a few simple mouse movements. He contrasts this with regular implementations of calendars (Google Calendar in specific) in which the number of clicks that you need to make to go to a certain date is directly proportional to how far away that date is from the current date on your calendar (which is sometimes a lot).

During the QA session he mentioned something that I’ve been studying/reading/working on a lot these days, which is to design an effective UI, you need to start really early in the project lifecycle. Usability needs to be addressed right from the requirements phase. I had meant on writing a few posts on this in time for World Usability Day (I’m exactly a week behind :p) for GreenWhite, but yet again I proved to myself how incredibly lazy I can be.

Anyway, check out Aza Raskin’s blog, its got some pretty interesting stuff. I’ve actually read some of his stuff up on ALA without knowing who he was. And I’m pretty sure he’s got a hand behind the cool stuff going on at Mozilla labs.

Google ups the Ante with Chrome

2820302020_eb39fa50e0 Google has officially entered the browser market as of yesterday with their Google Chrome browser. It’s a completely new take on browsers (especially some of the technical aspects unknown to normal users) with a focus on making the browser a faster and safer platform for web applications and to move the focus from the browser to the web site.

I’ve moved to Chrome as my primary browser from the awesome Firefox 3. There are some features lacking in Chrome that I was used to in Firefox 3, but comparing a mature browser like Firefox with a first Beta isn’t really fair. And I’m sure plugins for Chrome will make up for any feature deficiencies, like they did for Firefox 1 and 2.

So far my Chrome experience has been exceptional. The browser loads really quickly and is very responsive. The one feature I absolutely LOVE is the omnibar, great job on that Google! I won’t talk about the features of Chrome in detail, since that’s been done already by a lot of people here (John Resig), here and an article on Internet News.

But before you check out any of those be sure to read the comics introducing Chrome (by Google), they’re very insightful.


It’ll be interesting to see how the browser market share shifts. Will Chrome take the users away from Firefox or Internet Explorer? I’m guessing Firefox, since the user base of Firefox is most likely to consist of early adopters. Majority of the people who use the Internet Explorer family of browsers hardly know of any other browser.

I’m very excited, as a web developer, about the paradigm shift that Chrome will undoubtedly bring in the browser market. And with other exciting projects like Prism, IE8 and the awesome stuff going on at Mozilla labs, we’re all set to change the face of the web as we know it.

P.S. check out these Javascript performance comparisons between Chrome and the other browsers. They’re insane!! The V8 JavaScript Virtual Machine incinerates the competition!

Firefox 3 – Why so few pledges from Pakistan?!

Firefox 3 is coming out tomorrow, and this time around Mozilla is going for a Guinness Record for the most software downloads in a day.

So far there have only been 1971 pledges from Pakistan. That puts us in the same category as countries like Ecuador, Belarus, Sri Lanka, Algeria and Egypt. Iran has a whopping 8684 pledges! And they’re right next door to us. (there’s no point in drawing comparisons with India)

Wasn’t Pakistan supposed to have one of the fastest growing tech industries? I thought our software industry and our ‘techies’ in general were a lot more enthusiastic about technology and generally well informed.

And Firefox is more than a web browser, for us web developers it’s a full fledge IDE. I simply can’t imagine web development without Firefox and Firebug. I shudder when I remember the days when we developed applications using Internet Explorer, and pretty much guessed what was going wrong with markup rendering.

So what’s wrong with us? Why are there so few pledges? What factors determine the level of participation in such events? Are we Pakistani’s inherently insular?

UPDATE: At least some Pakistani’s are doing the right thing. The awesome people at WCCFTech have put up a banner and I’m sure they’ve been the source of many pledges.

LUMS Comics

Yaay! We finally get our very own comic strip!

LUMS Comics

Funny stuff from a very gifted artist. The drawing style is somewhat similar to phd comics, which are my all time favorite web comic.

Added to pakdoc as well. Keep up the good work Bilal!


GeniDo – Granting your first wish (Offline Basecamp)

It was rightly predicted that the next big thing on the Web would be offline support from the web applications that we know and love. More and more offline apps keep popping up everywhere. The latest one to roll out is GeniDo (click to see demo video), a product by GeniTeam (founded by LUMS alumni).

I think it’s a great product idea, given the huge user base of Basecamp (more details at G&W). It’ll be great to see similar products for other web applications like rememberthemilk, backpack etc.

Regarding offline support for web apps, Flex and Google Gears have helped a lot in providing the infrastructure. I personally am really excited about Firefox 3’s offline app support (demo). Will finally have a reason to consider building Firefox only apps …