Easy Access

By mOrPhie on Tuesday 5 October 2010 10:09 - Comments (6)
Categories: software engineering, techrelated, Views: 4.373

iOS 4, iPhone's OS, added the feature to put applications in a folder. After I upgraded, I immediately began organizing my apps. One of the folders I created was the "often used" folder. After two days of use I realized that this wasn't such a great choice, because now I had to open up the folder before I was able to start the app. Right next to the folder are some apps that I don't use at all. I didn’t bother putting them in a folder. But now I know: that should have been the other way around.

As a software developer, let's learn from this. There are two lessons:

1) Often used functionality should be easy to access. Rarely used functionality doesn't have to be easily accessed so it can make room for often used functionality.
2) Users can make up their mind, because they started to use the product.

Try something different

By mOrPhie on Thursday 30 September 2010 10:45 - Comments (10)
Categories: software engineering, techrelated, Views: 8.507

Sometimes a software developer makes a fundamental decision without even realizing it. A C# developer almost always chooses MS SQL Server as the preferred database. What does that decision imply? The data is stored in a relational manner. The data isn’t easily transferable. The model is fixed. You need a license. To install the software, you need to install a SQL Server. The database must be maintained in some sort of way, ect... The implications of such a decision are so big; only an architect should make that decision, shouldn’t he? And he should be very explicit about it.

The reality is that in most C# projects the choice of RDBMS isn’t a logical decision, but based on what the team is used to. That concerns me. Think about it. What if SQLite would fit my needs just perfectly? That would save me the time of installing the server, I am able to copy the database as a file and it is free. I’m not saying you should use SQLite in all of your projects. I am saying you should consider alternatives and ask yourself why you should use it and what part of your software problem it fixes. Maybe XML could fit your needs. Maybe you don’t need a relational database and a document-based database like MongoDB is something to consider.

I’m sure you can imagine this can be applied to more than just databases. The language, the framework, the runtime, the tooling, the software architecture… Surprise yourself and maybe, just maybe you’ll find yourself doing an IronPython project with Django, the .NET DLR, persisting your data in MongoDB. Although I highly doubt that you’ll come up with that combination through a logical decision process ;), it helps you think about the “way to go”.


Subconscious prototyping

By mOrPhie on Tuesday 21 September 2010 18:30 - Comments (3)
Categories: software engineering, techrelated, Views: 2.916

If your software development is slow and painful and productivity drops every day, consider this: Are you fixing the problems caused by development that was actually prototyping because you didn’t understand the problem you needed to solve just yet? If this is the case: start over and use your new found knowledge to create a better base and dodge the productivity problems you faced earlier.

What happens here is what I call “subconscious prototyping”. If you are faced with a project in which specs are vague and development is somewhat unstructured, you might find yourself developing software, while solving a problem at the same time. Those who are able of doing just that without problems are a very rare breed. Or, of course, the problem to solve is a very simple one.

Even better is to understand the problem and its solution before you start typing away. So, the lessons learned: 1) Nominate problems and concepts that are hard to understand for prototyping, detailed design and design reviews. 2) If you still get stuck, notice “subconscious prototyping” as soon as possible and consider re-planning before it’s too late.

This might sound obvious to you, but some projects need this reminder every now and then.


The Software Quality Poem

By mOrPhie on Tuesday 14 September 2010 22:49 - Comments (10)
Categories: business, software engineering, techrelated, Views: 5.241

Bugs, faults, errors and defects
They are all the same to me
Please ignore the name
Value the severity

Feature popularity
Specification compliancy
And customer satisfactory
All define the priority

Unit testing, code review
Architecture and design
Prevent a list of bugs to grow
And make the software shine

So, if you find yourself
Fixing a bug or three
Think of this poem before moving on
And improve software quality



IE on Windows Phone 7 lacks html5 features

By mOrPhie on Monday 2 August 2010 22:39 - Comments (18)
Categories: software engineering, techrelated, Views: 8.176

Windows Phone 7 will come out this October. Right now, developers have the opportunity to develop software and websites for it, using the Windows Phone 7 SDK beta. The SDK features a nice emulator, which includes their mobile version of Internet Explorer. That is great, because it will help us build mobile versions of our websites.

What worries me though is that this browser does not support any html5 feature currently used in many sites to make their sites compatible with iPhone, iPad and Android devices. For example, youtube offers a fully functional html5 version of their site for iPad and iPhone users. It features the video-tag, which the iPad and iPhone already support. The canvas tag, another html5-feature, is included in both the Android browser as in Safari for iPhone/iPad.

But what happens if we put IE for Windows Phone 7 to the test:


We get a whopping 12 points out of 300. That’s even less than the 27 points IE8 is getting on that test. Most of the popular html5 features seem unsupported in IE for WP7. The video-tag is not supported. The audio-tag is not supported. The canvas tag is not supported.

If we test video using the sublime video player, we get the following:


It says: “Html5 video mode not fully supported in your browser. Switching to flash…”. Of course, there is no flash support yet, but for now we are unsure whether WP7 will get flash support at all, since the app platform is, well, Silverlight.

I was hoping, as a side-step, the browser would support Silverlight video, but when you visit a webpage containing Silverlight video, the site asks you to install Silverlight. I am not sure if this is a Silverlight problem, a browser problem or a website that checks for Silverlight-support the wrong way. Either way, it won’t work:


Let’s conclude. The iPhone supports the video and audio tag from HTML5. This helps with mobile browsing on many video-sites. Android 2.2 seems to support the video-tag, but users report that the support is quite minimal. Android, iPhone and iPad support the canvas tag. Android 2.2 has a lot of performance improvements for the canvas tag, which makes it impressively speedy. I don’t know about Opera mobile, but I know the desktop versions support video, audio and the canvas tag.

IE on the emulator of Windows Phone 7 lacks all popular HTML5 tags. With IE9 supporting many aspects of HTML5, one would expect that IE for WP7 would adopt the engine improvements. HTML5 is a big part of the mobile browsing space. Let’s hope Windows Phone 7 can live up to that expectation. But with even less points on html5test.com than IE8 is getting, I guess the browser is more or less an IE7 fork.

If rumors are true that the core of WP7 will be the core of the Windows tablets Microsoft is aggressively working and marketing on right now, then that doubles the expectation for HTML5 in the mobile browser.

I like that Microsoft will get on par with the mobile market with Windows Phone 7. I dislike the possibility that it will feature an HTML5-less browser in early versions. Microsoft could be ahead of both Android and iPhone by supporting more HTML5 features than them. That would be very nice.

No standards-based modern browser on Windows Phone 7: a real turnoff.