I’ve just found a gov.uk site describing how to design stuff. It’s ten simple points that gets often forgotten. Hearing this from government agency makes me happy I’m going to pay my taxes in UK soon. This is the way to think about your users, customers or citizens!
When designing a solution usually we need to show some slick and simple pictures showing user interface we plan to implement. This seems to be the only language both developers and customers seem to understand. Or maybe let me rephrase it to be more specific – screenshot has the highest likelihood that its interpretation by all parties will be similar. Preparing such images takes a long time – the most popular approaches I’ve seen so far are:
- use your favorite graphic editor – e.q. Gimp, Paint.net, Photoshop, Illustrator, etc. The result usually looks good, but is a nightmare to maintain, especially when you need big chunk of text or new large field.
- mock the UI in Word – get a ugly wire-frame of the window only to forget to group the boxes and see them flying around the document after any change
- … or Excel – Excel is good for everything, isn’t it?
- create a form in html – happy styling, call me next week when you’re done!
The process was usually time consuming, but not any more! This week I’ve seen three smart prototyping approaches:
- Balsamiq UI modeler – application to create any UI layout using drag&drop. The web-based demo (functional!) version is available
- Microsoft Visual Studio Express – free, fully drag&drop RAD environment. It seems like an overkill to use it only for this reason, but consider the price tag!
- Microsoft Visio – especially 2010 edition – nice, easy and integrated with Microsoft Office Suite
All above applications let you create both static window images and interactive UI prototypes. Next time you talk with your customer show him a “working” demo next day after you got first requirements – he will love you! And hopefully he will understand what you are actually trying to achieve.
I’m currently preparing to become “a lawful wedded husband”, which involves buying tons of stuff. I was comparing various offers and one pattern emerged: if a thing X is renamed to “Wedding X” it automatically becomes at least two times as expensive. See for yourself: wedding photography costs 295-1500 GBP while corporate event photography 75-180 GBP for comparable time and effort. Wedding cakes are priced at 250-850 GBP vs event/birthday cake which can be bought for 10-80 GBP. So I decided: from today on I’m charging wedding software engineer rates!
You may ask what is a Wedding Software. I’ve analysed the differences between normal and wedding items and I found some common elements, which I intend to apply to software.
- basic wedding offers are mediocre, so they enforce customizations and add-ons. For cakes you get a plain sponge cake with a white icing. You want some taste, maybe chocolate? No problem – just add +30% to the price :) Do you want some decorations? No problem, 25 milk chocolate stars pressed into the icing – +20 GBP! Or maybe you’d like to write something on the cake? No problem, …
- customizations of wedding items are charge more for. The same text written on a birthday cake costs less than half of the price of the same text on wedding cake. Oh why?
- you get a ribbon with everything. It’s a customization, but everyone is willing to provide you with this one for free.
- you are not allowed to buy non-wedding items for wedding. They may fit, they may suit your needs, you may love it, but still your forced to buy something with a “wedding” tag
- wedding items tell you that they are prepared for “your special day”, “most important day of your life” etc.
So, applying the same rules should improve our margins dramatically. What’s more we it should increase customers satisfaction level. So:
- wedding software should be usable, but ugly and limited as possible. Create a blackAndWhite.css and doNotScaleForMobile.css and apply it to any page you release. Basic version of apps should run up to 800×600 and play sound in mono only. But plan ahead for at least 2 customizations for each feature, including (mostly) irrelevant ones like ALHMMO “Advanced Left-Hand Mouse Movement Optimization”.
- customizations are sometimes called “extras” for a reason, they should be extra pricey. Just remember to tell the user that the extra stands for extraordinary usable and smart.
- excel kills millions of lines of custom code a year, wedding software should not allowed users to use multi purpose tools like that. All data should be exported in unportable formats and all 3rd party imports virtually impossible. Or at least customers should be educated that doing so it a very nasty behavior and they should never do it. Hint: avoid question “why?”.
- software should no longer be commodity or necessity. Wedding software should be luxurious and exclusive. Buying software should be advertised as a transition from the dark times to enlightenment. People live to buy software. It will take some time for them to understand that, the only way is constant repetition.
It worked for wedding industry, it will work for software also!
ps. I still haven’t found what the software counterpart of a free ribbon may be…
New features in version 1.4 include:
- “Speak!” function, which uses amazing Google’s TTS to read text
- Translate (detect language) function, which tries to guess language of the phrase before translating it to your selected language
Today British police made available their new service – a complete street level map of crimes in England and Wales. The webpage made to all possible headlines in daily papers, tv and radio. The effect is that the service is virtually down and won’t be usable until the novelty wears out.
All web pages have a peak from time to time. It can by due to various reasons – PR publication, Facebook craze, advertisement campaign, algorithm change at google or change of cosmic radiation. You can predict some peaks, some will come as a total surprise. In both cases the effect is the same – the system overloads and you’re starting losing users. That’s bad, really bad.
What could site owners do to prevent this? There are couple of options:
- Scale IT infrastructure to handle the traffic during peaks. This sounds good until you start calculating cost. If you scale for a peak 10 times larger than normal traffic, you will spent 10 times more money. And how can you be sure the peak won’t be 11 times normal traffic? Or 101 times? Or 1001? And what would you do if when the peak is over? You can donate unused computing power to Seti@Home, but I doubt your CFO will appreciate this.
- Deploy to a cloud. When your application is running in a cloud and you foreseen incoming peak, because you’ve bought nation wide TV ad campaign for exmaple, you allocate more resources for some time (for example start some new instances on Amazon EC2). And when the peak is unexpected? You allocate more resources when it happens! Or if you set up the cloud to allocate additional resources automatically for you, you just sit and monitor if everything works smoothly. When the traffic calms down, you just switch off unwanted resources and stop paying for them.
“What’s the catch?”, you may ask. There is none. The whole process just requires some planning in advance. Designing application for scalability is slightly tougher, but it’s not a black magic. And it’s not even rocket science. There are many infrastructure scalability patterns detailed on web. You will have to make some technical decisions on load balancing, session sharing, fallback procedures. The testing is also bit more complicated, but only due to fact of additional features. The rest will be exactly the same as normal design and development job.
I have always known that police is a useful force ;)
Exploiting errors in software and firmware is actually more fun that using the device in first place. Recently I’ve discovered that HB354BS has an error that let’s one skip unskippable parts on dvd. No more annoying ads when I want to see next episode of ‘Allo! ‘Allo!.
When you put dvd in the reader, the player starts with first title. You can’t stop, fast forward or pause it, but the firmware let’s you go to device’s main menu – using home button on remote or playing with Simplink on TV. When in Home menu press “play” and the devices skips to first title after menu. You can now sit and watch or move to dvd title menu!
Out of the box, command prompt (cmd) in Windows 2003 Server has the auto-complete (tab-complete) feature disabled. To fix the problem open regedit and create following DWORD keys:
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor] “CompletionChar”=dword:00000009 “PathCompletionChar”=dword:00000009
Open new command window and your TAB completion is working!
I just invented An Ultimate Scrambled Eggs. Here comes the recipe:
1/2 red grilled pepper
1 slice of ham
100g of king prawns
Green Jalapeño peppers
1/2 lrg red onion
1 lrg carrot
1 lrg tomato
Chop veggies and ham and fry with prawns and three drops of Tabasco until carrot is tender. Add eggs and fry a bit more.
For those of us who have some experience with MySQL exporting the data to sql just just a normal way of working. No big fuss, just start phpmyadmin, select export and it’s done. With Oracle is not as easy – you can create dump using exp and import it using imp. Which is useless if you need to modify some data in between.
Google suggests many shareware tools to do the export, which will cost you at least $49. I, on the other hand, suggest using Free and supported SQL Developer from Oracle. It has tons of great features, one of which is Database Export. Just follow a simple creator and you’re done!
Today I run into problem running Oracle Database Control Service on Windows 2003 Server. When I was trying to run it using Administrative Tools->Services I got an error:
“Windows could not start the OracleDBConsoleWIND on Local Computer. For more information, review the System Event Log. If this is a non-Microsoft service, contact the service vendor, and refer to service-specific error code 2”.
Quick look in the Event Viewer proved it usless:
The OracleDBConsoleWIND service terminated with service-specific error 2 (0x2).
The solution came when I tried to run the service using console:
C:\ptc\PDMLink>emctl start dbconsole
OC4J Configuration issue. C:\oracle\ora102/oc4j/j2ee/OC4J_DBConsole_winddev1_wind not found.
In C:\oracle\ora102/oc4j/j2ee/ directory I had only:
After some network reconfiguration the host started to appear using only host name, not fully qualified host name. Fair enough, I had just copied the folder to match current host name and the console is working again:
C:\ptc\PDMLink>emctl start dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
Starting Oracle Enterprise Manager 10g Database Control ...The OracleDBConsoleWI
ND service is starting...............
The OracleDBConsoleWIND service was started successfully.