arpit.net : Technology and other shots...

Wednesday, February 06, 2008

An offline video application using AIR

I just saw a video featured on this month's Edge. It talks about Flash Player's new video capabilities. However, I have a question with respect to Video and AIR.

I have been recently doing a prototype of a video application which needs to play HD videos for long durations continuously. Its a complete offline app and almost mission critical for the time its used.

The setup consists of a PC connected with 2 monitors, one of them a big 50 inch plasma configured with a resolution of 1280x720, the same size of the video. The other monitor is a normal screen with video lists and options to control the video to playback.

I am quite impressed with the way you can control native windows in AIR, even if you have multiple screen setup. The functional aspect of the application was simple to execute since it was all done using Flash, and you feel very much at home doing AIR development.

Now to the main question:
Do you think its a bit too much to play videos for really long durations in Flash? Should we stick to more traditional approach - Windows Media player / Quicktime player?

I am slightly worried about how long video can be played without application crashing out. Some of us have faced various memory issues if Flash applications run for very long durations. I know most of this is due to bad coding practices like persistent event listeners etc, but are difficult to pin down.

With my tests I have been overall satisfied by the experience, of both using the application and building it so will like to stick to AIR if anything serious hits me. I have noticed that when you are low on memory, the AIR runtime itself has problems and closing few apps fixes it.

Would love any information or issues I should be looking in particular while working with HD video and AIR, I am sure lot of you would have done something similar already!

Tuesday, January 22, 2008

Starting AIR development - Update your software!

With Adobe working on so many things around the Flash platform and releasing new stuff at breakneck speed, its hard time updating your software with every release specially if you work on multiple machines.

Here are few updates which you should be installing to start developing AIR apps with Flash CS3.

  1. Adobe Flash Player Update for Flash CS3 Professional (9.0.2):
    This update includes a new Video Playback component supporting H.264. Most importantly this should update the debug and release versions of the Flash Player.
  2. Adobe AIR update beta 3 for Flash CS3 Professional:
    This update will allow you to package and preview .air application files directly within Adobe Flash CS3 Professional
  3. Flash player versions (debug included)
Note that you will need to install the Flash CS3 9.0.2 update to be able to install the latest AIR update.

And a nice article introducing AIR to Flash developers.

Monday, January 21, 2008

Duplicating a database using SQL Server Management Studio Express

I recently started playing around with Asp.Net and SQL Server 2005. Though we have Visual Studio 2005 Professional, I still use SQL Server Management studio's express edition for administration of the databases. It is a great and easy to use tool, but it lacks few basic features.

One of them is copying a database - Both to a remote machine or locally.

However, with another free download from Microsoft, you can easily do this. You will need to download the tool called: Microsoft SQL Server Database Publishing Wizard


Here are the steps to accomplish this:
  1. Download, install and run the SQL Server Database Publishing Wizard
  2. Provide the server and login information for the server where the database resides and click next. Once the connection is established, it will list all the available databases.
  3. Select the required database and click next
  4. The next screen will show you the option to script the database to a file or publish it to a remote server. In this case, you can script to a file and click finish.
  5. Now, launch SQL Server Management Studio express and connect to the server (where you want the duplicate version of the database to be created)
  6. Create a new database, which will be the duplicate one.
  7. Go to Security and set this as the default database
  8. Run the script we just saved using the Database Publishing Wizard
  9. Thats it! You should now have a duplicate database with all the database objects and the data itself.
For more information on Database Publishing Wizard and its uses, consider reading this article.

If you know a better way of doing this, feel free to comment upon!

Thursday, September 28, 2006

Google's approach on Agile

Someone in the office forwarded me this link on Agile by Steve Yeye (Google Developer).

Some of interesting points on Google's approach to Agile:
- There are managers, sort of, but most of them code at least half-time, making them more like tech leads.

- Developers can switch teams and/or projects any time they want, no questions asked; just say the word and the movers will show up the next day to put you in your new office with your new team.

- Google has a philosophy of not ever telling developers what to work on, and they take it pretty seriously.

- Developers are strongly encouraged to spend 20% of their time (and I mean their M-F, 8-5 time, not weekends or personal time) working on whatever they want, as long as it's not their main project.

- There aren't very many meetings. I'd say an average developer attends perhaps 3 meetings a week, including their 1:1 with their lead.

- It's quiet. Engineers are quietly focused on their work, as individuals or sometimes in little groups or 2 to 5.

- There aren't Gantt charts or date-task-owner spreadsheets or any other visible project-management artifacts in evidence, not that I've ever seen.

- Even during the relatively rare crunch periods, people still go get lunch and dinner, which are (famously) always free and tasty, and they don't work insane hours unless they want to.

Read the entire article here.

I have recently started with the Agile way of development, mainly Scrum, and I must say its the most developer friendly way of approaching software development.

Also check out Control Chaos for heads up on Scrum.

Sunday, June 25, 2006

Working for the BBC

Well, it has been quite a roller coaster ride since I arrived in the UK last year. Changing countries can be daunting! So, After working for around seven months in hardcore product development (which I would say is quite rare for a Flash Developer...) I have taken a job with BBC as Technical Project Manager. One of the advantages would be I'll be moving to London now, and would be able to attend user group meetings. Have missed almost all of them this year.

The role involves less coding, and more of all round skills, also deep understanding of a complex system, so it should be a massive learning curve for me.
As a developer you are never sure as to when is the right time to take plunge to the next level and may be more difficult for Flash Developers.

Would love to get some advice and experiences from fellow developers...

Tuesday, May 23, 2006

BBC's Developer Network

I came across Backstage. Its BBC's Developer Network program and lists free APIs and services to be consumed for non-commercial use.

They also have Ideas and Prototypes sections where you can share your stuff. Some are interesting, and will really benefit from Flash/Flex based user interface.

Check them out...

Monday, May 22, 2006

Flex's Hour Glass Functionality

First, I have not been using or developing with Flex at all, but being Flash Developer for over 6 years, it keeps me fascinated. Developers obviously take learnings from newer, better applications, and try to implement the good, which also help maintain consistency, and often with time become more of standard way of doing things.

Anyway, I have been viewing Flex 2 demo applications showcased at the Adobe Labs, and really like the hour glass (nice clock animation) implementation within Flex applications. Its a really nice way of letting the user know that something is happening in the background, mostly some data being loaded from the server. I have been using a similar practice in my application, as it has to make lots of calls to webservices.
Well, you can call it a rip off if you want... :)

But there is a difference. Doing so I realized, completely hiding the mouse becomes a bit of a worry. Since the pointer is still functional, wouldn't it be a good idea, if instead of hiding the pointer completely (and showing the hour glass), let the pointer be there and add hour glass next to it? I mean, most desktop applications do not hide the mouse completely if something is happening in the background. When the applications stop responding completely, pointer is completely replaced by hour glass. I know, its a small thing, but Flex is definitely bridging the gap between online and desktop applications, the way they function, so it should behave as closely as they do...

How does this work in Flex? Does it have any way of configuring these options?

Lists in applications also have drag and drop functionalities which I have seen, I don't know if the components with Flex have these capability, but here too, replacing the complete pointer is a bit of a worry.


Here is what I have seen in applications currently:




shouldn't this be better:



Screenshots taken from the following application demos:
BrightPoint Dashboad
StatPods