Writing ... or Just Practicing?

Random Disconnected Diatribes of a p&p Documentation Engineer

  • Writing ... or Just Practicing?

    Does Online Shopping Deliver The Goods?


    It's fairly obvious that the Internet is changing everything. For those of us involved in the computing industry, that's no surprise - we're the people driving most of the changes. But it's recently become even more evident just how far-reaching the changes are; driven in part by the global financial crisis and the resulting effect on corporations, businesses, and retailers.

    For some while now, software product sales have been dominated by digital download rather than as boxed product. Now that you no longer get proper manuals or documentation in the box (just a CD and a quick-start guide), most people see no advantage in paying for the box. You only need to stroll around a large computer store to see the effects of this. Where there used to be whole shelves full of boxed software, now there's books, accessories, and consumables instead.

    And, of course, digital delivery is having a big impact on both the music industry and the wider publishing industry. Just this week Pearson (international publishers of a huge range of newspapers and books) reported that less than half of their income now comes from printed materials; the largest earner is digitally delivered content. And David Levin, chief executive of United Business Media, wrote an article explaining how - in his words - "software has eaten their business". UBM publishes close to 100 magazines and periodicals, but printed versions now account for only about five percent of their earnings.

    David also acknowledges how the Internet is changing another area of commerce, namely retailing. OK, so it's been obvious for many years that selling over the Internet was a massive opportunity for many, and the annual growth in online purchasing is quite remarkable. Available figures vary, but increases of around fifteen percent a year seems to be realistic, despite recession in many countries and regions.

    One effect of the continuing move away from traditional retailing must be a decrease in the number of bricks and mortar retail outlets, and personal experience is already demonstrating this. For example, a friend has been investigating buying an astronomical telescope, and I've been helping to gather information about the types available and the prices. However, while I'm quite happy buying computers online, mainly because I know enough about them to make the appropriate judgments on quality and features, I know nothing about telescopes.

    My initial suggestion was to visit and buy from a knowledgeable retailer who can explain the technicalities, has comprehensive varied stock of different types, and where you can try them out to make a decision on features and price. However, it appears that there is no such shop within a reasonable travelling distance. Yes, I know that we live out in the country and far from London; and maybe we didn't find any because we were just searching for them on the Internet. Mind you, even a printed trade directory (Yellow Pages) fails to list any. In the end my friend joined a local astronomical society to get advice from like-minded but expert stargazers, and then bought online from a specialist supplier.

    I suppose you could argue that it's a chicken and egg situation; buying online kills off local retailers, but lack of local retailers drives sales online. Yet my daily purchasing activities are probably partly to blame for this move away from traditional purchasing. There's rarely a week goes by when I don't receive a delivery from Amazon; it's somehow managed to worm its way into my life so that almost anything I need initially prompts a search in the UK online store.

    So when I needed a one metre length of ribbed tubing to repair my garden fishpond pump I didn't bother driving six miles to the local aquatic store, but had it delivered for less than the cost of the petrol I'd use getting there. And, of course, there's no guarantee they'd have the diameter I needed when I got there anyway. And in addition to the usual selection of books and videos, I've recently used Amazon to buy food for my fish and the garden bird feeders, networking cables and peripherals, car accessories, batteries and electrical items, a kitchen waste bin, phone accessories, birthday presents, and numerous other items.

    In fact, I suspect the only time that physical rather than virtual shopping occurs at our house is when my wife buys groceries (or cars). Whereas I'd probably be tempted to take advantage of Internet grocery shopping - like most other people on our street judging from the number of different delivery vans that appear every day - she resolutely insists on the traditional "push a shopping trolley and feel the goods" experience.

    Though, considering the hugely varying list of Amazon associates that actually deliver all the goods I order online, it looks like I'm supporting a whole network of suppliers all around the country. Many, I suspect, work from a back bedroom, a lock-up garage, or some faceless unit somewhere on a back street industrial estate. However, what is heartening is that an increasing number appear to be actual bricks and mortar shops that are extending their reach and turnover through online sales. Perhaps this is the saving grace that might allow at least a proportion of retailers to maintain a High Street premises. Perhaps Amazon should consider categorizing their associates when displaying products they sell so that I can choose to support local retailers.

    Even if they are somebody else's local retailers, because there are none left where I live...

  • Writing ... or Just Practicing?

    Hybrigation Complete, Feedback Required...


    So at last we've finished the Windows Azure hybrid applications guide, and it's out there ready for anyone interested in integrating cloud-hosted applications with on-premises services and partner applications. OK, so it's taken a little longer than originally planned but it is more comprehensive than originally envisaged, and incorporates a great deal of input from teams inside Microsoft, and advisors and reviewers outside the company.

    One thing we discovered is that hybrid application integration (which I'm still resolutely referring to as "hybrigation") is a more complicated topic than we originally imagined. Not that it's hard to do - the tools and services in Windows Azure make the implementation really easy - but deciding how to approach it and which technology to use seem to be the key factors that contribute to a successful outcome.

    We originally defined seven areas of concern for hybrigation, and concentrated on providing guidance on each one. These topic areas are:

    • Deploying functionality and data to the cloud. It is likely that you will need to modify the code in your existing on-premises applications to some extent before it, and the data it uses, can be deployed to the cloud. At a minimum you will need to modify the configuration, and you may also need to refactor the code so that it runs in the appropriate combination of Windows Azure web and worker roles. You must also consider how you will deploy data to the cloud; and handle applications that, for a variety of reasons, may not be suitable for deploying to Windows Azure web and worker roles.
    • Authenticating users and authorizing requests. Most applications will need to authenticate and authorize visitors, customers, or partners at some stage of the process. Traditionally, authentication was carried out against a local application-specific store of user details, but increasingly users expect applications to allow them to use more universal credentials; for example, existing accounts with social network identity providers such as Windows Live® ID, Google, Facebook, and Open ID. Alternatively, the application may need to authenticate using accounts defined within the corporate domain to allow single sign on or to support federated identity with partners.
    • Cross-boundary communication and service access. Many operations performed in hybrid applications must cross the boundary between on-premises applications, partner organizations, and applications hosted in Windows Azure. Service calls and messages must be able to pass through firewalls and Network Address Translation (NAT) routers without compromising on-premises security. The communication mechanisms must work well over the Internet and compensate for lower bandwidth, higher latency, and less reliable connectivity. They must also protect the contents of messages, authenticate senders, and protect the services and endpoints from Denial of Service (DoS) attacks.
    • Business logic and message routing. Many hybrid applications must process business rules or workflows that contain conditional tests, and which result in different actions based on the results of evaluating these rules. For example, an application may need to update a database, send the order to the appropriate transport and warehouse partner, perform auditing operations on the content of the order (such as checking the customer's credit limit), and store the order in another database for accounting purposes. These operations may involve services and resources located both in the cloud and on-premises.
    • Data synchronization. Hybrid applications that run partly on-premises and partly in the cloud, run in the cloud and use on-premises data, or run wholly in the cloud but in more than one datacenter, must synchronize and replicate data between locations and across network boundaries. This may involve synchronizing only some rows and columns, and you may also want to perform translations on the data.
    • Scalability, performance, and availability. While cloud platforms provide scalability and reliability, the division of parts of the application across the cloud/on-premises boundary may cause performance issues. Bandwidth limitations, the use of chatty interfaces, and the possibility of throttling in Windows Azure may necessitate caching data at appropriate locations, deploying additional instances of the cloud-based parts of the application to handle varying load and to protect against transient network problems, and providing instances that are close to the users to minimize response times.
    • Monitoring and management. Companies must be able to effectively manage their remote cloud-hosted applications, monitor the day-to-day operation of these applications, and have access to logging and auditing data. They must also be able to configure, upgrade, and administer the applications, just as they would if the applications were running in an on-premises datacenter. Companies also need to obtain relevant and timely business information from their applications to ensure that they are meeting current requirements such as Service Level Agreements (SLAs), and to plan for the future.

    So our first task was to investigate each of these areas and create good practice guidance around the scenarios and use cases for each one, then complement these with descriptions and detailed implementation information for the appropriate technologies that can satisfy the use cases in a variety of scenarios.

    However, at the same time we wanted to provide a realistic example application that demonstrates as many of these technologies as possible (and without too cumbersome setup requirements). And it soon became clear that the decisions we made when designing and building the application would be of considerable use to readers, as well as the description we include of the code our development team created.

    The result, therefore, is that our guide has two distinct sections. The first is a description of the fictional company and the application they (we) built, including the design decisions and implementation details. The second section is a series of use cases, and relevant high-level solutions, for each of the main areas of hybrigation concern. This section provides more information about where and how you might apply the Windows Azure integration technologies in your own applications.

    And the nice thing is that there is a direct mapping between each of the chapters in the first section and the corresponding area of concern and appendix in the second section. It somehow feels like we really did get it right! Of course, its the readers and users of the guide that will provide the final confirmation (or otherwise) of this.

    So now it's over to you: please tell us what you think of the guide, and which areas and sections you found the most or least beneficial. Did we hit the target? What makes it useful, and what should we have killed off during the final edit process? And, most important of all, what did we miss out that would have made it even better?

    You can comment directly on this blog, or send me email using the link at the top of the page...

  • Writing ... or Just Practicing?

    So Where Does Stuff Come From?


    You regularly hear about the disconnect between real life and people's perceptions of it. For example, it seems that two thirds of inner-city school kids don't realize that the contents of their beef burger comes from cows, or that they make bread out of the tall, pale brown, grass-like stuff growing in fields. However, is this really a problem? Do we need to know where stuff actually comes from?

    If you popped into your local DIY store and ordered ten bags of concrete for delivery, there's a fairly good chance the van that brings them came from that store. But if you order a book from Amazon, you probably have no idea where it will come from. Here in the UK, it will probably come from a warehouse in England, or Starfish in Jersey, or some distributor in continental Europe. Or is might, like a book I bought recently from Amazon.co.uk, come from an associate who sells through Amazon and ships from his spare bedroom in the village next to where I live (which is annoying because I paid £2.70 for postage and packing).

    And then there's the "How on earth do they do that" stuff you buy. I get my electricity from a company that I discovered later are in France. But I can easily switch to buying it from any of a dozen other suppliers. Yet they don't deliver it in a van, and there's only one wire under the street. So how do they know which volts and amps came all the way from France and are mine, and which ones the nice couple next door bought from a different supplier in Scotland? I suppose there's really only one main supplier, and all these others companies just buy rights to it at wholesale prices and then sell me permission to use my share; a bit like buying CALs for SQL Server or a 25 seat license for Microsoft Office.

    Strangely, however, this doesn't seem to work with water. If I phone Severn Trent plc (my local water company) and say that in future I want to buy my water from Anglian Water Company, they'll just tell me to move to Norwich. If I want water in Derbyshire, I have to buy it from Severn Trent. Ah, but the Government are talking about building a national water grid, just like we have a national electricity grid, so maybe then I'll be able to buy water from anybody. It will be interesting to see if Scottish water tastes different to London water.

    Though here's the question: why should the Government pay for a national water grid? They want one because London and the South East are so dry there's a risk of forest fires and they'll soon have to ban people from cleaning their teeth, while where I live we're splashing around in flooded gardens and hoping for global warming. But if the water companies own the water and sell it to us, why don't they pay to deliver it to where the people are who want to buy it? Unlike electricity, they actually can deliver it in a van.

    But I suppose the most impenetrable delivery conundrum is where web pages come from. Rather than the glib answer of "a web server, stupid", I'm thinking geographically and technologically. For example, when I open a web page at Amazon, where do all the various bits come from? I know that it's probably all in Amazon's "cloud", in much the same way as I guess Hotmail is in Microsoft's cloud (a.k.a. Windows Azure). Yet there's dozens of images that seem to come from other places. And there always appears to be several bits of the page filled with whirly "please wait" things where it can't make up its mind what to fetch, or where to fetch it from.

    The same, of course, applies to adverts and the various twiddly bits on other sites (such as all the social networking icons, which are fetched from the social network sites so that they can track your journey around the web). And even typing a URL doesn't guarantee your deliverance to a specific site any more. Most large corporations redirect you to your local site based on your IP address or browser language setting. If you are outside the U.S, just hit www.google.com to see how.

    And now, if you host your websites in Windows Azure, you can use the Traffic Manager Service to do the same routing confusion thing for your visitors. Traffic Manager knows about IP addresses and the latency of connections between all of the worldwide locations and all the Azure datacenters, as well as which deployments of your site have fallen over, and so it can reroute users to the appropriate deployment. So when I next order a book that I think is coming from the guy in his spare bedroom in the next village, it may be that it will actually be dispatched from Australia.

    And the whole point is that, unless I take the trouble to read the small print on the back of the package, I'll probably never realize where it came from...

  • Writing ... or Just Practicing?

    Prequally Empirical Numeric Confusion


    Our son went to the cinema this week to see Star Wars Part 1 in 3D, and I was tempted to go with him. I can remember seeing the original Star Wars movie when it was released in 1977, and I thought it would be fun to see it again. Except that it seems I'm out of touch with the way movies work these days because the one I saw isn't actually Part 1 any more.

    My wife sometimes compares me to Sheldon from The Big Bang Theory. I'd like to think it's just because I'm a bit of a geek, but I suspect it's more because I ramble on about all kinds of off-topic stuff, and act as a know-all, when she asks me a simple question. Though, compared to the encyclopedic knowledge our son seems to have of movies (and cars), I'm well out of his league in geekiness.

    For example, he can rattle off the cast list, directors, and plot of any movie you mention; from the original James Bond films, through any number of horror films, to anything concerned with science fiction and comic heroes. Including most other block-buster films released in the last twenty years. Together with knowing the performance figures, engine size, and cost of any car that is capable of more than 150 mph, I'm amazed at where he keeps all this in-memory data. I struggle to remember what day it is during most of the week (I even had to buy one of those radio-controlled wall clocks that tells you the day and date).

    Anyway, as far as I can gather from the somewhat tortuous explanation he offered, Star Wars Part 1 is now Part 4 and there are three prequels. Or, rather, there is a prequel which got prequelled twice more. It's a good thing I don't own the boxed set or I'd be forever sticking new labels over the numbers.

    And why have a prequel at all? Why not just carry on making more that follow on from the end of the previous one? It worked for Sherlock Holmes and for Harry Potter. Though I suppose after a number of years your "boy wizard" has to turn into at least an "adolescent wizard" if not an adult one. Maybe it happens when directors think that they've done all they can with the main characters and kill them all off in the supposedly final episode? Perhaps I can find a technology Microsoft have killed off recently, and write some prequels for that: "Windows XP Embedded - Before the Beginning".

    In the end, I decided to give the Star Wars movie a miss. I'm afraid that if I go and see Part 1 I'll get hooked and then I'll have to go and see the other five as they are re-released in super high quality, digitally re-mastered, 3D format. Mind you I understand that the original one (which is now the fourth one) has eleven seconds of stunning new content where the squadron of X-Wing fighters turns in formation to attack the Death Star. Hmmm ... maybe I will be persuaded after all. Though, with my propensity to seasickness, I'm a bit worried about how I'll cope with all that intense on-screen action in 3D. I only have to look at a photograph of a boat to feel a bit queasy.

    Perhaps the new Muppets movie is a safer choice...

Page 1 of 1 (4 items)