Search This Blog

Tuesday, June 21, 2016

What are your Developers doing?



I recently wrote this article and published on LinkedIn.  I've reproduced the article here after obtaining permission from the author (that's me)...

There's no argument.

If you are building a business application today, then it must be a web application.  Not a web site, but a web application.

I found this tongue-in-cheek article on the web (tilomatra.com)...

I agree, I can’t keep up. I just finished learning backbone.js and now I’ve found out that it’s old news, and I should use ember.js, cross that, it has opinions, I should use Meteor, no, AngularJS, no, Tower.js (on node.js), and for html templates I need handlebars, no mustache, wait, DoT.js is better, hang on, why do I need an HTML parser inside the browser? isn’t that what the browser for? so no HTML templates? ok, DOM snippets, fine, Web Components you say? W3C are in the game too? you mean write REGULAR JavaScript like the Google guys? yuck, oh, I just should write it with CoffeeScript and it will look ok, not Coffee? Coco? LiveScript?  DART? GWT? ok, let me just go back to Ruby on Rails, oh it doesn’t scale? Grails? Groovy? Roo? too “Springy?” ok, what about node.js? doesn’t scale either?? but I can write client side, server side and mongodb side code in the same language? (but does it have to be JavaScript?) ok, what about PHP, you say it’s not really thread safe? they lie?? ok, let me go back to server coding, it’s still Java right? no? Lisp? oh it’s called Clojure? well, it has a Bridge / protocol buffers / thrift implementation so we can be language agnostic, so we can support our Haskell developers. or just go with Scala/Lift/Play it’s the BEST framework (Foresquare use it, so it has to be good). of course we won’t do SOAP and will use only JSON RESTful services cause it’s only for banks and Walmart, and god forbid to use a SQL database it will never scale...
Whilst it is obviously a humorous article, the underpinning facts are true - there is a myriad of web technologies available and the rate of change is not slowing.  So building a business-grade web application is very challenging because you require developers with many skills (see infographic below) and once the application is in production, it will need to be maintained and that's where I see massive cost.  Why?  Because developers like to have new stuff to learn and use.  Once an application is in Production, its technology profile is set and, in a year's time, the developers will be using the latest shiny hubcaps - so the business is faced with "instant legacy systems" and perhaps a lack of developers with the requisite skills.


The above infographic is from http://www.skilledup.com/articles/web-developer-job-descriptions-skills-they-require based on a study of over 28 million online job postings from the period of May 2013 to September 2014.

So it's no joke, web developers need up to a dozen languages/technologies to do their job.  Or do they?

But maybe there is a different approach...

I work for LANSA, so I'm putting that out there.  However, LANSA has always produced development tools that provide "technology insurance" for the business.  This means that with the one technology - Visual LANSA - you build your modern, business-grade application for the web.  This will not be popular with web developers, who will argue until the cows come home that they absolutely must have this widget or that framework - it simply is not true.

Developers who want to deliver the best outcomes for their business - fast, robust, modern and maintainable - will see the value in this approach.

On the business side, the answer has been to outsource the problem - sometimes overseas.  This may address cost, but not time-to-market, high quality, maintainability, etc.

Take a moment to think outside the box about what your business needs when developing and maintaining their applications - whether it's for use within the organisation or with their customers.

nuff sed...


Monday, October 26, 2015

Configuring a network printer on Linux

I have a printer (in my case a Brother MFC-990CW) - a combined printer & scanner.

I did the usual things - went to the Brother Support site, followed the pre-installation steps, downloaded the shell script and ran it.

Opened up System Tools>Printers (I'm using Lubuntu on the netbook involved).

Added a network printer, it finds the printer as shown below:



Then I go on to select the driver and it looks hunky dory - except, it doesn't print.  I get jobs on the print queue saying cannot connect to printer.

So what gives?

In my case, after trying quite a few things, it turned out to be very simple.

It wasn't resolving the network name - BRN001BA96E9A3A

I have the printer on a fixed IP address, so all I had to do was replace the printer network name with the IP address - then it all worked.

I hope I save some people some time.

Friday, October 23, 2015

Integration Discombobulation

“The state of confusion brought on by the overwhelming challenge of the flow of data between disparate applications both within and without your organization.”

There is a growing concern among organizations of all sizes, that things may be “falling through the cracks” – why is this so?  From my experience, there is the pressure from business to “just get it working” – which we do.  Sometimes we have the luxury of a reasonable budget, ample time to elicit full requirements, design the outcome and create the solution… Sometimes…

But that is not always so, particularly when things change AFTER the solution is in place, as the business tries to slim down on operational costs to maintain profits.

This leads to a variety of bespoke solutions.  Have you ever seen any of the following solutions?

¤         People create “macros” in tools such as Excel to “manipulate” data into a desired format.
¤         Data is sent/received as attachments in emails.
¤         Data from files/reports is entered “by hand” into your systems of record.
¤         Information is sent to the wrong party – which can be embarrassing or worse, breaching a commercial confidence.

And when things go wrong, as they invariably do, what happens?  Sometimes the consequences have minimal business impact, a simple re-sending of an email may suffice.  But what happens when the excrement hits the air movement device?  There can be business costs, penalties, even loss of clients.  Lawsuits, loss of confidence in your organization’s products or services – the list goes on.

It is high time that organizations realize that the flow of data – either within (between an organization’s applications) and without (with your trading partners) needs to be managed and controlled in a standard, reliable and robust manner.  There have been many tags given to this, one of which is the Enterprise Services Bus or ESB.  However many of these types of solutions do not capture the “lower level” manual processes and automate them.

Several popular tools purport to address this problem space.  Unfortunately, these solutions become more complex than the problems they are attempting to resolve.  The solution you require must allow Business Analysts to create process flows without the need for programming.

Let’s take a look at the 4 key areas that such a solution must provide…

1.     Transportation – by what means will the data move from application to application; organization to organization?
2.     Transformation – what data format is required so the recipient can process it without error?
3.     Orchestration – how will process flows with multiple steps/stages by managed, and what happens if there is a failure?
4.     Administration – how will process flows by designed, created and deployed? Who can update process flows? Who manages the operational aspects?

Transportation must be able to handle modern methods such as RESTful web services as well as older methods such as File Transfer (FTP), email (POP3, SMTP), etc.
Ideally, we should be able to create a profile for each trading partner, or internal application, that defines the method of transport they use.  In this way we can have multiple trading partners sending data using different methods of transportation.

Transformation must allow the business analyst to map the data format of the trading partner to that of the receiving application.  And there are 2 aspects of this:


1.     The format of the data may be different – for example the incoming data may be in an XML structure, but the receiving application requires it in a table in a RDBMS (Relational Database).
2.     The actual incoming data elements need to be mapped to their receiving counterpart.  There may be other functions required to manipulate the data element.  There may also be the need for data augmentation or enrichment.
All this needs to be done without programming by Business Analysts.

Orchestration must control the steps in a process flow.  This may mean that the flow needs to fork and perform multiple parallel flows, or it may be a simple, sequential series of steps.  It also needs to handle exceptions or error conditions, when (not if) something goes awry.  Although not strictly Orchestration, the solution should – where possible – allow a process flow to be resumed at the point it failed, once the issue has been resolved.

Administration must provide a management framework to secure the creation and amendment of process flows.  This includes the deployment into Testing, Quality Assurance, User Acceptance Testing and Production environments.

Summing it all up

Integration means that data flows from the provider and it is delivered to the recipient in the format and method such that the recipient can process it.  And human intervention must be removed from this process flow – it must be automated and managed.

If you like, it is Business Process Integration and Business Process Automation rolled up in one.


Wednesday, June 24, 2015

Business Process Automation & Integration

There is a heap of information on Business Process Automation - so I'm not going to go into great lengths to talk about the different nuances.

Instead I'm going to talk about a few hypothetical cases...


Case 1 - incoming orders


Let's suppose you work in a business that provides some form of product.  Some of your buyers send through orders via email.  Usually the email has an attachment.  It could be an Excel spreadsheet, a CSV file or some other format.  You need to get this information into your company's ERP or in-house application - henceforth let's just call it ERP for simplicity's sake.  Perhaps you have set up an special email address to which your clients can email their orders - let's call it orders@mycompany.com

So it's somebody's job to periodically check this Inbox to see if there are orders to be processed.  If there is an email, then the attachment is saved.  Then you edit the attachment into a specific form that will allow it to be loaded into your ERP for processing.  You need to check that the load process worked OK and maybe you have to send an email back to your client to advise them that their orders were accepted and perhaps even give them tracking information.

There's a lot that could go wrong.  But the main problem is that we are relying on a person to manually tend to the whole process of getting the data into shape, loading it, checking the result and communicating back to the client.

There are 2 major processes involved here - the automation of multiple manual steps and the integration into your company's ERP.

Let's deal with the automation side of things first.

In Case 1 we need to first handle how the data gets to our company.  At a high level, we call this Transportation - how the data is moved.  We see that email is the method of transportation, or more technically it is SMTP & POP.

Next we have to consider the data "payload".  And there are 2 aspects to this:
  1. What file type is being used, and
  2. What data format is being used
In Case 1, let's assume it is a simple text file using CSV data formatting.

So we need to create a process that reads emails coming into a specific Inbox, then detach the file for further processing.

However, it is unlikely that the incoming format is exactly what we need in order to load into our ERP.  So we need to munge it into shape.  Quite often this is a very manual process and prone to errors.  We need to map the incoming data elements to the format required by our ERP.  This involves the Transformation of the data.  It is also where the Integration part of this blog's heading comes into play.  In a Transformation process we are concerned about getting the data into the right shape and moving it to the right data element on the receiving side.  Now this too may vary just as the incoming data varied.  We could be loading it into a flat file that is read by a loader program.  Or we could be directly updating an Incoming Orders table in our ERP, where it will be processed by an existing mechanism.

In some cases we may need to create the flat file, and then invoke the loader program as a subsequent step.

As you can see from Case 1, we have a few steps that need to work together, much like the separate musicians in a band - so we call this Orchestration - ensuring that the process steps work together in a flow that produces the desired outcome.

And to control the creation of these Processing Sequences and who can access them, we need the management layer - or Administration

Case 2 - Outgoing Notifications

In much the same way as we handled Incoming Orders, we will handle Outgoing Notifications.  We need to create a Processing Sequence that handles transportation, transformation and orchestration.  Our ERP may have finished processing some orders and we want to notify the client of the outcome.  The client expects us to FTP an Excel file to a specific folder.  Our ERP creates the XML files in specific client folders - each client has its own folder.  The process will watch for files being created in this folder.  When a file is detected, it is transferred to the client's remote folder via an FTP connection.  We may have agreed to convert the XML into an Excel spreadsheet for this specific client.  After successfully moving the file, we move it to an Archive folder for this client and we send the client an email advising them that a file has been FTP'd to them, along with any other pertinent data.

Case 3 - Application to Application Integration

In our last case, let's look at intra-company process flows.  Quite often a company will end up with multiple applications running on different platforms.  Some will be older, perhaps authored in-house, but comprising the very core of the company's systems.  New applications may be acquired - sometimes through acquisition.  Rarely do these applications work together without some form of integration.  What we need is something that can handle both older methods of exchanging data (like file transfer) with newer methods such as web services - both SOAP and RESTful.

However, your business processing sequence will still need to have the same building blocks - handle the transportation method from one application, transform the data (for the receiving application), transport it into the receiving application and then kick off the processing.

Summary

To wrap it up, you want a solution that a business analyst can use to define your business process flows - think of it as workflow for applications.  You don't want to be writing bespoke programs that provide point solutions, as these will just add to your maintenance overhead.  You want a centralised, secure, code-free solution that handles multiple platforms, data formats, transportation methods in a secure, repeatable fashion.

If this sounds like something your company needs, then I suggest you have a look at LANSA Composer and automate your manual processes.









Friday, January 10, 2014

SmartWatches - Geek to Mainstream in 2014?

They won't look like the watch from the old cartoon series Dick Tracey - they'll be better!


There is a growing wave of SmartWatches out there.  Kickstarter has the Pebble watch
and the Agent watch

and the Geak 



And every man and his dog are releasing them - like Sony, Samsung, etc.

But nobody seems to have cracked it yet.  They all want you to touch the itty bitty screen with your blobby finger - hmmm.  I think it needs to mature and perhaps be gesture based or voice driven - but it will need to recognise your voice AND understand what you are saying.  Think about if a stranger says "delete all emails" and your watch says - "yes sir, right away!"

So I think there is some maturing yet, but with today's crazy-fast innovation cycles, it shouldn't take too long - over and out!

Monday, May 6, 2013

Application Mining

There's much talk today about Data Mining and Big Data.  What I don't see discussed much is Application Mining.

OK, so what is it?  Well in my thinking, it's where you have applications that are effectively performing 1 or more business functions for your organisation.  They aren't the "rising star" applications - more the "cash cow" applications.  You have already invested in them, you maintain them - they just do the job. Some people call them Legacy Applications.

Quite often they are the "green screen" applications - great for data entry, built in a time when GUI sounded like something sticky that you didn't want to accidentally sit on!

The value here is the data AND function.

So how do you leverage this corporate asset?

Intelligent Screen Scraping

Sounds awful - scraping the screen.  Let's use another phrase to cover this - "screen interception".  There's a few products that can intercept the information from the server that was normally displayed on a dumb terminal or in some form of terminal emulator running on the user's PC.

After intercepting the screen instructions, the software can display this to the user in a browser.

This "out of the box" transformation already delivers a benefit of not having to install any special software on the user's machine.

The next level of sophistication is to re-model the browser pages to leverage the power of using the browser and form objects such as date pickers, drop-down lists, etc.  At this point we should also be contemplating how we could revamp the process so that the user interaction is streamlined and designed for ease of use.

We can do this by marshaling multiple "green screens" behind the scenes and presenting a single web page to the user.  This more than compensates for the lack of "data entry speed" that some consultants claim is lost when moving from a character-based screen to a modern web page.

It is also possible to set up a framework that allows you to move some functions out into a web template and better utilise the server functionality.

Delving Deeper Into the Application

Once we have mapped our screens in this way, we can extend their use past the browser.

This can be done by combining screen interactions under a function and making it available in a SOA environment.  There are various approaches in making the function available - it could be by exposing it as a Web Service with a SOAP interface or, more likely, a JSON interface.

It could even be made available to less sophisticated systems running on different operating systems or even different networks.  This is where a product like LANSA's Integrator comes in handy.  LANSA have done a lot of good work in continuing to refine, and add new functionality to, LANSA Integrator.

Of course there are other products out there - so it's a case of "horses for courses".  But is you have an IBM i (aka AS/400) environment, then Integrator is the go.

Saturday, March 16, 2013

Removing Thule Roof Racks from Toyota Corolla - Rapid System 317

OK, this is Not an IT post, but I hope it helps anyone that is in the same position that I was.

I bought a Toyota Corolla Ascent 2004 (through work) and optioned it up to include a Thule roof rack.  The guide for installing the roof rack can be found here.

Even this guide didn't help that much.

You get keys to unlock this roof rack.  One set has the wavy edge you expect to see on keys.  In my case I had 4 of these in the pack (don't know why as they were all the same).  But there is also a slightly larger key with straight edges - it is important.

Most of the Thule roof racks have the keyhole in the "base" - the bit that sits on the roof of your car, but not this system.  It has the keyhole in the end of the rack.

I removed the whole key assembly buy:
  1. unlocking it with the wavy edge key
  2. pulling that key out, then inserting the straight edge key - all the way in
  3. then I pulled the black end, with the keyhole in it, outwards away from the body of the car - this allowed me to push the inside of the key mechanism and it just pops out
You probably don't have to remove the key mechanism like I did.

With the black end bit pulled out a few centimetres, but still in the rack,  start turning it counter-clockwise like you are unscrewing a top or a nut off a bolt. The whole mechanism starts to loosen.  Do this on both sides, then pick one side to loosen off enough to clear the edge of the roof and then lift to remove.

OK, so when you "get it" - the process is easy.  But I couldn't find any instructions on how to remove it on the web - and believe me I tried.

I hope this helps someone out there that searches for an answer!

Friday, March 1, 2013

The 3D Printing Revolution

So pretty much every day I'm reading another article about 3D printing.  For those not up to speed, it means you can print solid objects from a plastic like compound.

This used to be a very expensive exercise, but the price is tumbling as more players enter the market (competition) and we get more people wanting to buy the technology (scale).

I predict (actually, I predicted this about 10 years ago - check with my now-adult children...) that 3D printing would become fairly mainstream in most homes - and here's why.

A while back, a small plastic component in my fridge broke.  It was like a little bracket thingy that held up a shelf in the door.  Now I had 3 options (well 4 if you count "do nothing"):

  1. Drive to the outlet where you can buy this component,
  2. Ring up, order it by phone and pay for it to be delivered, or
  3. Order it via their web site and pay for it to be delivered.

What if I could go to their web site and pay to download the component to my 3D printer?  Problem solved in a few minutes and for far less as I'm only paying for the "design" of the part - I'm providing the physical substance and there's no delivery fee.

OK, let's take a breath and start to continue this line of thinking...

What about all the "add on" products like smartphone cases, little clips, frames, hooks...

People can design things to be printed, then you pay to simply use this design to create the physical object.

Now at the moment, the size of the object is restricted to fairly small - but it is increasing slowly.

Let's start designing!

Monday, November 12, 2012

Low cost Tablet - Disruptive Pricing

With the announcement of the Aakash 2, we see the first usable super-low priced tablet running Android.  The tablet is sold commercially as Ubislate and here's a picture of it.
So it looks OK and has some reasonable grunt.  It has a processor as powerful as the first iPad and twice as much RAM memory. It uses Google’s Android operating system.

Pricing

The Ubislate comes in 4 flavours as shown in the table below:


To give you an idea of the price range, the low-end 7Ri model is about AU$60 and the high-end 7C+ is about AU$85.

There are options to upgrade the RAM if you need it.

So it's very important for companies to consider how they will leverage this type of opportunity.  One way is to be able to punch out app content quickly and securely - where you can control the speed at which the app is updated.

The LongRange product from LANSA looks a good bet.  You can build mobile apps that link back to your server infrastructure so that the server drives the mobile experience.  Instead of having to learn a plethora of new technologies and techniques, LongRange uses the languages on the server.  So for Windows and IBM i servers - you can create apps by using the LANSA development environment.  On the IBM i servers, you can also use RPG & COBOL which are widely used on this platform.

Thursday, August 30, 2012

Organising Your Life With Evernote



When I first started to use Evernote I thought that it was a simple way to record notes - was I ever wrong!

Evernote has done a fantastic job of providing a ubiquitous platform for storing, organising and accessing information - the information you need to get things done (I've specifically chosen the last three words).

Some years ago, I read a great book by David Allen called "Getting Things Done".  The concepts in David's book just rang true to me and I implemented some of the advice in my work and private life.  But over the years, I started to drift away from these foundational practices as things got busy and a bit chaotic (circa 2009 GFC and other big life moments).

Recently I downloaded an eBook from the Kindle store called "Getting Things Done must read Summaries" by David Allen for my adult son so he could  learn the basics of GTD.  I read it too and it kindled (pun intended) a desire in me to see what solutions were around in the marketplace that would help me to pull together a GTD solution using today's technology.  I found another eBook from the Kindle store called "Evernote: The unofficial guide to capturing everything and getting things done." by Daniel E. Gold.  Now you can see where Evernote is coming into the fray...

One of the underpinning tenets of GTD is that you need a system (system means a set of processes, not necessarily a computer or application) to handle all of the things in your life.  Your work life, your personal life.  You need to handle what things to address now, what to file/store, what to get rid of.  By handling all of the calls on your time, and having a system on which you can rely, you free up your brain (both conscious and sub-conscious) to "flow like water".

Evernote runs just about everywhere - Windows, Mac, Android (Smartphone & tablet), iPhone & iPad, Blackberry (does anyone still use these?) and using a browser.  On Linux you can use an open source solution called Nixnote (used to be known as Nevernote).

OK, so it runs in a lot of places - that's good.  But what do you do with it? You store notes, files, pretty much anything that you can store on a computer.  Notes are stored in Notebooks.  Notebooks can be grouped in Stacks.  A note can have any number of tags (that you define).  When you install Evernote on Windows it has nifty integration features like browser add-ins that allow you to clip information on web pages.  There are several ways in which you can clip information on a web page; the URL, the whole page, a selection and the auto-select option.

Evernote also provides hooks in Outlook and in the right-click menu on files under the "Send to" option.

One feature I find particularly impressive is when you add an image as a note.  I've purchased a portable scanner so that I can scan items like receipts, warranties and other documents.  I then upload the image to Evernote as a new note - give it a title and tags.  But the clever stuff is that Evernote has automatically OCR'd the image and I can find the image based on its content.

Oh, did I say that Evernote is free?

I have chosen the premium edition (which provides some extra functionality and storage).  It's very cost-effective when you consider the benefits I am deriving from it.




Monday, August 27, 2012

Rediscovering the IBM i Platform

Back in 1988 IBM announced the OS/400 operating system that is now known as IBM i.  This operating system, running on the AS/400 hardware platform, provided a TCO (total cost of ownership) that, to this day is unrivaled (in the author's opinion).  For a brief history of this platform, click here.

Although today other platforms have pushed IBM i out of the spotlight, many companies running this platform continue to leverage their investment on a platform that offers tremendous scalability and stability.  It comes with the database "built-in".  Applications can be written in a variety of languages such as RPG, COBOL, LANSA and Java.

I have recently joined LANSA and I can see the tremendous opportunity for organisations running production applications on the IBM i to leverage a new technology that LANSA has brought to the table - LongRange.  LongRange allows programmers to use RPG, COBOL or LANSA on IBM i and build applications that connect and run on most of the popular mobile platforms such as Apple's iPhone and iPad as well as Android SmartPhones and tablets.

Up until now, to unlock the investment in IBM i applications, it was necessary to learn a number of new technologies such as Objective C, HTML, etc.  And the more mobile platforms you want to support, the greater the complexity of your solution which increases your TCO.  You also get the problem of "re-integrating" your technology "supply chain" when any of the components brings out a new release - more cost!

So LongRange is designed in keeping with IBM i's low TCO goal.  Code mobile apps in your native IBM i language once, then deploy it to all of the mobile platforms mentioned above.

I know that I have a vested interest in LongRange, but it resonates with so many of what I look for in a solution, that I believe it is something that all IBM i users should seriously consider.


Tuesday, June 21, 2011

Touchdown - Android Exchange support made easy

Connecting to Microsoft Exchange from Android

I was recently trying to connect to an Exchange server. I got mostly there, then I was told that my phone didn't support the security method required - blast!

I searched around the web a bit and found this to be a common problem.

Like a grizzly old prospector, I finally found that speck of gold at the bottom of the pan - and it's called Touchdown from Nitrodesk.





I installed the free version (30 day trial) to ensure it worked. If you have the required information; it is extremely easy to set up. Once I had it working, I upgraded to the paid version. It's a little pricey when you compare it to other Android apps, but it is a fully-featured product, not just a simple one-function tool.



Highly recommended!

Monday, May 9, 2011

Ubuntu 11.04 "natty narwhal" - my verdict


I'd have to say that upgrading from Maverick Meercat to Natty Narwhal has not been a delightful experience.

It's not because of the new Unity interface - on the usability side, it's because I think they took it out of the oven too early.

I have found at least 2 major shortcomings:

1. Unity window management stability is below par. Unity doesn't seem to work well with a number of Compiz settings. I have found odd behaviours such as the mouse-click not working intermittently; the top bar of windows disappearing altogether; etc. The advice is to restart Unity or restart Compiz - how about fixing it instead?

2. LibreOffice. Now you would have thought the LibreOffice team would like to have really shown up OpenOffice - particularly as Canonical now packages their suite instead of OpenOffice. However, if you edit the newer format Microsoft file formats such as .docx - then beware! I have found that LibreOffice is very limited in reproducing what the content looked like when open with the relevant Microsoft Office function.

There may be other limitations or improvements, but the above problems stand out for me in that what I have is a backwards experience when compared to the previous release.

What do I suggest?

If you want to stay on Natty, then simplify your Compiz settings. The next action is to remove LibreOffice and install OpenOffice. I strongly suggest you install OpenOffice by downloading the Deb package from here. Then follow the installation instructions from here. Although the installations instructions are for a previous release of OpenOffice - they still work fine with 3.3.

Let's hope Canonical addresses the Unity shortcomings quickly and that LibreOffice lifts their game!

Wednesday, March 16, 2011

Designing in Supportability

This post is a bit of a rant.


I'm not continually amazed by what I'm about to describe - because I have seen it too often.  What I find hard to understand is why corporations continue to fall into the same trap.


And what is the trap I'm talking about?


It's failing to cost for the non-functional or operational features of a solution.  Most IT projects are either building a solution, or customising a product, to meet some business requirements. Up front, someone has prepared some form of Business Case that has demonstrated that there will be a positive return on investment - maybe even fully costed it over say 5 years and calculated that the NPV (Nett Present Value) is greater than zero.


The trouble is, most of these business cases tend to not adequately cost in the non-functional aspects of operating the solution once it goes live.


Here are some of the things that are quite often underdone or totally overlooked:


General Housekeeping
This includes the cost of operators, backups (& restores), database reorganisations, patch management, upgrades (both software & hardware), data management (like archiving), etc.


Monitoring
The level of monitoring depends on how critical the solution is to the business.  A minimum level would be that the solution is running and producing the desired results.  This may be a simple checklist performed by someone in the company at a set interval.  More critical solutions may have multiple real-time points to ensure that users are receiving the service experience desired by the business.


Help Desk
Larger organisations may have a Help Desk or a Customer Service Desk whose goal is to receive calls about service anomalies and, where possible, either fix them during the call or ensure that they gather information and pass it on to the relevant area that will resolve the issue.  In order to perform this function well, the personnel on the Help Desk need adequate training and even a list of known problems and how they can be overcome.


Capacity, Performance, Availability
Like a stool needs three legs to provide a stable platform - so does an IT solution!


These three aspects of an IT solution are interlinked and need to be planned.  ITIL has the term "Patterns of Business Activity" or PBA.  This is where you capture the way in which the business intends to use the solution.  Different businesses will have different patterns such as:

  • daily usage profiles (peak and off-peak)
  • weekly usage profiles (weekday and weekend)
  • monthly usage profiles (start/end of month, special day of the month)
  • quarterly, half-yearly & yearly (end of calendar/tax year)

Apart from the above, you need to understand how the solution will be accessed by the intended users - local LAN, over the Internet, Mobile, etc.  What are the volumes by access method?  What response times do I require?  What are the expect transaction volume peaks?


Sometimes, the above information is not exact.  Whether it is, or is not known, prior to launching the solution for general use it is advisable to put it through a "break test".  This means you push transactions through the solution until it breaks.  Monitoring should be in place during a break test to determine where the solution will fail and what the lead indicators are.  This information is extremely useful in determining what needs to monitored to ensure the solution is operational.


WIth Capacity there are 3 main aspects to consider:

  1. BAU (Business As Usual) growth - meaning how the solution will grow in its use of IT resources without major change.  This should incorporate PBA information.
  2. IT Project growth - this may mean a once-off step change, or it may alter the BAU growth profile.
  3. Business Project growth - this is where the business runs a project without any of the IT components being changed.  A good example of such a project is where the business decides to run a marketing campaign to increase the number of applications for new accounts.

The solution's usage of the underlying IT infrastructure must be monitored and tracked, with predictive analysis ensuring that adequate resources will be in place.  The diagram below shows a simplistic view of how to calculate the predictive analysis horizon for a given resource.




There, I feel a bit better now - perhaps I'll add to this or write a supporting blog entry a bit later...







Saturday, January 1, 2011

Is 2011 the year of "Being Digital"?


Back in the mid-1990's, Nicholas Negroponte authored a book entitled "Being Digital" in which he discussed some of the challenges we will face when "virtually unlimited" bandwidth becomes widely available.

One of the points he put forward was how should we utilise this bandwidth. He argued that it would be better for us humans to pursue the holographic path and develop 3D personas through which information would be delivered. He (correctly) predicted that mankind would not take this path (initially), but instead push for the simpler achievement of higher and higher levels of picture definition/resolution. His reasoning for this is that the human brain "creates" a lot of what we think we see. Providing it with fantastic visual detail may not necessarily deliver a superior picture in our minds. This is also true for hearing.

Instead, Negroponte proposed we deliver holographic 3D images, because that is what human beings are best suited to interact with.

IBM Predictions
A recent news article here, provides IBM's view on the emerging capabilities we should expect to see over the near future. Sadly, they have omitted one of my favourite emerging technologies - racetrack memory.

In one of their predictions they talk about is holographic communications - hence the reference to "Being Digital". I think this is a great step forward because we humans work better in 3D (we were designed to work that way!) There is also a lot of work in being able to "interact" with 3D holographic objects. Have a look at this video clip - it's early days, but what does this mean? Interacting with characters whilst "watching" a DVD? Actually feel an object that comes out of a movie?

I'm going to add more to this post, but I thought I'd get what I've done so far up for people to read.

Wednesday, October 27, 2010

What Android Apps Should I Have?

Overview
Lots of people are seeking the "top 10" or "best ever" Android apps. However, the old saying "one man's meat is another man's poison" really applies when seeking an answer.

In this article I list the apps I use on my Motorola Milestone, with a brief explanation of why I have selected them. Unfortunately, I haven't kept track of the apps I've tried and removed...

Email
There are quite a few email apps for the Android. I use K9 for a few reasons:
- it allows me to have as many email sources as I like
- it provides a Unified Inbox feature that has all of your emails accessible in one list
- it is very easy to use and quite intuitive
- it has never Force Closed on me - so it's pretty reliable

SMS
ChompSMS is my choice here.
- it is very configurable
- has the conversion bubble UI like the iPhone
- and once again, is pretty reliable

Weather
I have the Accuweather widget installed. This gives me enough information by simply viewing the widget, but allows me to click on the widget for more information, and ultimately launch the browser with my location pre-selected in the Accuweather web site.

Task Manager
I've just recently installed this app. My main reason for selecting it was to have an easy-to-use Task Killer. I have tried other task killers and found minor irritations with them. It's a bit too early to say this is a "keeper", but it's doing it for me right now.

Astro
My file manager. Easy to use, reliable, functional - what more do you need?

Evernote
Just recently installed this as another app can sync with the Evernote web environment. Also installed Nevernote on my Linux laptop (Ubuntu). This means I can work with whatever device is at hand and access it on any other device I use - nice.

Cadre Bible
This is quite a good resource, with 3 translations available in the base install. It can sync information with Evernote and provides an easy-to-read white on black display.

eBay
If you are an eBay user, then this app is great. You can do most eBay functions with this app and it can keep you informed as to how your actions are progressing.


Aldiko
This eReader is quite good. I have read a few books using it. I'm running the free version but you can upgrade to a premium version with more content. My advice? Use the free version, read a few books, then YOU decide whether this is a medium through which you want to read more books. I think I'll be waiting for an Android tablet for that.

Adobe Reader
What else? View PDF files.

AndroidVNC
I've already written an article on this excellent VNC client. You can jump straight to the article here.

Apps Installer
Lets you install apps from your storage card.

Barcode Scanner
Allows you to scan barcodes on products then look up prices and reviews. You can also scan Data Matrix and QR Codes containing URLs, contact info, etc.

Facebook
Access your Facebook using this app.

Got Sydney
Provides timetable for Cityrail services

ICE Bot
Essential if you receive calendar invitations via email. Open the .ics attachment and ICS Bot will create/update your calendar.

NubiNews
A simple and easy to use news reader/aggregator.

Remote RDP Lite
RDP into your Windows machine.

Swype
Great text entry app. I've written an article previously on it here.

Tuesday, September 28, 2010

Tablets - Android, Linux, the iSlab?

Why Do You Want A Tablet?
OK, the first thing to ask yourself is why you want a tablet because, let's face it, you don't need one.
Things that you could use a tablet for:
  • viewing videos
  • surfing the web
  • note taking
  • entertainment
Viewing Videos
Well, the iPad (I call it the iSlab) certainly allows you to do this. It's display is a little under 10 inches (diagonal) and it has a 024-by-768-pixel resolution at 132 pixels per inch (ppi). The display is a back-lit LCD. So if you are looking for a comparable viewing experience, then you need to match this kind of display characteristics.
The iSlab supports H.264 video up to 720p, whereas a lot of the HD devices are up to 1080p.
You also need to consider whether you want your tablet to potentially output to other video devices - like your HD TV...


Surfing The Web
The iSlab boasts a lot about the surfing experience, but it doesn't (and won't) support Flash (from Adobe). Their argument is that HTML 5 will provide a better solution for animation, but the fact is, there is a lot of current content out there in Flash format and it may not be cost-effective for content providers to convert current Flash objects to HTML 5.


Note Taking
You have to understand what your note taking needs will be. In another of my blog entries, I talk about Swype - it's a breakthrough text input application that I believe will make it into most Android-based phones and tablets. You can then use something like Evernote or 3banana Catch Notes to synchronise your notes with the web (or cloud). These applications also provides integration with other applications - so check out what gives you the best overall results.


Entertainment
You'll want to watch videos on your tablet. So how do you get them there? One solution is to download content from the web - which can prove quite expensive depending on your data plan. Another approach is to load a DVD on to your tablet. With this approach you'll need to consider the amount of on-board storage available on your tablet AND whether it supports either a built-in DVD player or has USB support. Then there's also the question of whether you'd want to output video from your tablet. Does the tablet support HDMI? Some do, so again it's up to you.


Summing It Up
Sit down with a beer/glass of wine/hot beverage, a pad (paper pad that is) and a pen, then note down all the things you THINK you want in a tablet. When you're finished, read the list again (at least a day later) to reassess your requirements. When you've firmed them up, then that's your "shopping list". My advice is to wait until 2011 (at least mid year) because there will be a huge number of tablets released as some of the vendors are waiting on Android 3.0. Also consider other operating systems like Linux. Once again, it depends on how you use to use the tablet. Before the final purchase, clearly think through how you will incorporate the tablet into your day-to-day business. The golden rule with adopting new technology is to make a firm commitment to using it in the way you planned - otherwise it will quickly turn into an expensive piece of shelfware.



Friday, August 13, 2010

Swype - the next level of input on mobile devices

Problem: typing on touchscreens is a pain

But there is a solution - Swype.

I was fortunate enough to get into the beta program for Swype. At first I thought "oh great, another company claiming to make entering text on touchscreens a breeze." So I installed the app on my Milestone with fairly low expectations; and I was completely surprised by what I found...


It's Almost Like Magic

I watched the videos, then started to "play around' with it. Whilst there are tips and techniques that come with use, Swype makes you far more productive from day1. Let's say you wanted to enter the word "won't". With normal touchscreen keyboards it requires tapping on w, o and n, then having to switch to the symbol keys for the apostrophe, then back to the letter keys for the final t. With Swype, you simply start on w and trace over o, n and t. It knows most contractions, so it simply puts the apostrophe in for you. You teach it new words by tapping on the keys to form the word, then a space - that's it.

I'm not sure whether Swype will be releasing this as a paid-for app or whether they are going after the telcos to get it baked into their releases. Have a look at some of the videos on their web site, it really makes entering information on a touchscreen an absolute pleasure.

Friday, June 11, 2010

Processing Calendar Invitations in Emails - Android

The Problem
I use K-9 Mail for email on my Motorola Milestone running Android 2.1.  I sometimes receive Calendar invitations by email and K-9 shows this as an attached .ics file.  If you try to open this, there is no base application to handle the file type, so nothing happens.


The Solution
Download and install the ICS Bot app from the Android Market.  Now when you open an email with an attached .ics file, simply click on the Open button on the file and it will bring up a new Calendar entry with the information pre-populated. Simply save the new Calendar entry and voila! It's in your Calendar.

Friday, May 28, 2010

WorkLight: Develop Once, Deploy Everywhere


I know the guys that have developed this technology.  For large corporations that want to leverage their applications into multiple channels and form factors - WorkLight makes a lot of sense...


The following information is a summary from their web site. 


Development

The WorkLight Solution provides companies with a robust, cost-effective mechanism that delivers ease of development and secure deployment of custom-built applications across a variety of mobile devices, desktop and web interfaces.
 
Using the WorkLight Ajax SDK, developers can quickly develop a custom-built application by employing commonly found web development skills such as JavaScript, CSS and HTML. Once deployed onto the platform, the code will be automatically packaged to generate additional instances, each optimized per the supported environments and designed to deliver optimal user experience.

For example, from a single application design, the system will easily generate a Vista gadget, a Yahoo widget, a Facebook application, an iGoogle gadget, an iPhone and an Android application. While these interfaces are quite different in their technical characteristics, the platform generates the appropriate native code for each environment.

Some client environments have unique capabilities, such as the mini "docked mode" of the Vista Sidebar or the ability to capture photos via an iPhone camera. Leveraging WorkLight's multi-channel approach, applications can be securely extended to utilize such capabilities without compromising their cross-environments portability. For example, the application can display only the current account balance when docked, or leverage the iPhone's camera to scan a bar code.

Today's proliferation of devices, operating systems and development tools would challenge any organization attempting to roll-out a single application across multiple channels. Using the WorkLight Solution, developers can create native applications without any familiarity of the technical aspects of the different environments.

The WorkLight Solution is future-proof. As new channels become popular, WorkLight will automatically provide support for these new services allowing organizations to further extend their reach of customers, partners and employees. Application developers will not have to retro-fit their applications to add support for the new interfaces.

Security
Online and mobile consumer channels are not designed for sensitive and personal information. Typically, these services do not incorporate security mechanisms of any kind, and are not suitable for sensitive data delivery. Syndicating sensitive and proprietary business and enterprise application data in these channels poses many unique security challenges.

The WorkLight Solution addresses these challenges, meets the strictest requirements, and is field-proven at global companies. This includes user authentication and access authorization, secure application provisioning, protection from client vulnerabilities, phishing prevention and protection from many new threats inherent in consumer interfaces. WorkLight-powered applications adhere to existing security policies and regulation and are designed to leverage existing security infrastructure whenever possible.

WorkLight addresses the following critical security aspects:



Authentication – Every connection to the platform via any online channel is encrypted and authenticated. This is typically achieved by integrating with existing enterprise authentication facilities for which WorkLight provides a library of connectors. Single Sign-On (SSO) is facilitated across all channels for transparent user experience. Multiple authentication schemes are supported for widgets, including in-widget, pop-up and redirection to login page. The platform also supports strong multi-factor authentication, and multiple authentication schemes for the same application, e.g. depending on the transaction type.

Secure Provisioning – When using consumer channels, users expect to install and use applications in a familiar way, e.g. adding an iGoogle gadget or bookmarking a Facebook application. The platform includes a secure provisioning server that seamlessly integrates with existing aggregation sites, and facilitates the familiar "add to" experience is a secure manner. For increased security, the platform generates a unique application instance per user, and verifies the association on every access to prevent unsanctioned duplication and distribution.

Attack Mitigation – With the advent of new online channels like widgets and social networks, new attacks become possible and familiar attacks require special consideration. The WorkLight Application Platform addresses all these attacks so that consumer online channels become as secure as well-protected traditional web applications. This includes thwarting impersonation, framing, XSRF, JavaScript Hijacking, SQL Injection and XSS.

Client Protection – Applications syndicated by the platform are consumed via a variety of client runtime environments, such as a browser-based personalized homepage, desktop widgets and the iPhone OS. Those runtime environments expose the application to an additional set of vulnerabilities, such as easy access to JavaScript source code and services shared between multiple widgets on the same page. The platform addresses these vulnerabilities by providing an SDK that ensures isolation of the application code from the host environment and facilitates secure connection with a set of server-side runtime services.

Anti-Phishing – New types of consumer online channels potentially open the door to new phishing schemes, such as widget impersonation. The platform addresses this by extending the SSL trust model to encompass off-portal artefacts. Users are directed to look for the same authentication procedure and visual trust components they are familiar with today.

Access Control – WorkLight's patented technology enables controlled access to data via multiple channels without duplicating existing access control logic or requiring credential caching. WorkLight accomplishes this by integrating identity and role information from user directories and back-end systems. The platform associates this information with retrieved data items and with known user records to efficiently determine whether a user is allowed to access a data item.

Integration

The WorkLight Solution is designed to easily fit in any enterprise environment and channel its inherent services and processes to end users regardless of its level of complexity.

The system includes rich capabilities that support an efficient integration with a wide variety of backend systems and security infrastructure components, enabling the productive access and interaction with enterprise applications, middleware products, databases and directories.

Our solution provides XML-based configuration tools and a developer UI that facilitate sophisticated mashups incorporating multiple information sources using server-side JavaScript and automatic Ajax client-side code generation.
WorkLight integration is based on pluggable adapters, configured via XML.

Adapters can be both synchronous and asynchronous, and can support both retrieval of data and transaction issuance. Further customization of adapters is possible using server-side JavaScript. If needed, the platform can be extended with additional adapters using an adapter development SDK. Some of the standard adapters that are provided with the system include Web Services, XML/HTTP, SQL, LDAP, SAP, MS SharePoint, JMS, RSS and IBM MQ. 


Scalability

Enabling transactional capabilities to end-users by allowing access to backend systems via multiple channels can deliver real business value to existing customers as well as attract those interested in such innovative offerings. But companies planning on doing so must be prepared to support high volumes of transactions at extremely high frequency. This situation typically occurs due to the "always-on" nature of mobile, desktop and web applications which enables users to constantly access current and relevant information.

The large number of requests generated by Ajax clients and RSS polling coupled with increased user-base and the variety of access channels can result in higher processing loads and resource consumption of backend systems, a situation that can lead to overall performance degradation.

The WorkLight Solution addresses these issues, scaling to support millions of users and multiple applications while maintaining predetermined performance and load levels. This is achieved by decoupling back-end information retrieval from actual client serving and utilizing a flexible cache scheme.

Configurable policies define maximum load permitted on back-end systems, possibly varying by day and time, concurrency limits, expiration of cached items, and granularity of data retrieval.