31/07/2007

Microsoft SoftGrid App-Virtualization

Microsoft's SoftGrid App-Virtualization seems like a very over complicated technology

I bet it will do really really well in the enterprise. It's almost like a standalone desktop intranet (If that makes any sense).
"This allows companies who want to make available a single image of Office or even a custom line-of-business application to multiple users to push it out to them without having to touch each desktop. It also will aid companies in deploying application patches, as only the changed/updated bits will be streamed to users’ desktops (rather than all of the bits, including those which haven’t changed), she said."
Q: My major wonder is what benefit does this service serve within the internet application space? A: It keeps us on the Windows OS (and if that is an answer then ...).

As outlined in the following blog,

"“SoftGrid just pull (the bits) that are needed,” said Gavriella Schuster, Senior Director of Product Management of the Desktop Optimization Pack team.”IT doesn’t have to do all the regression testing it normally does. It doesn’t need to check in advance for potential application conflicts and crashes. It’s especially good for users with lots of custom business applications.

SoftGrid also allows users to work offline, since the bits that are installed on a user’s desktop remain there, Schuster noted, even when the machine is disconnected from the corporate network.

SoftGrid application virtualization version 1 (which is part of the current MDOP) allows users to stream applications to any desktop inside their firewall, Schuster explained. But the next version will allow users to stream any application that can be virtualized to their desktops or the Web, she said."

My question remains, how is this any different from hosted rich internet applications?
  1. Regression Testing: isn't required with RIA's at the machine level.
  2. Application Conflicts: isn't an issue with RIA's, they reside on different servers and run within a web browser.
  3. Lots of Custom Business Applications: it's easier in many cases to build RIA's than custom stand alone business applications, further with RIA's that leverage a modular design pattern (think gadgets / widgets) it's possible and easier to X-Integrate RIA's than stand alone applications.
  4. Work Offline even when machine is disconnected from corporate network: this has to be one of the biggest sales gimmicks of the digital era. RIA's can already work offline (AIR / AJAX + Cookies + iFrame Storage Layers + Greasemonkey).
  5. Stream Applications to any desktop inside firewall or on the web: I'm sorry but isn't this the basis of Markup Language over HTTP? Isn't this the underlying nature of WWW? Why would we over complicate again?
Seems to me like this product will do well because it's basically being forced on administrators. Seems to me like every software developer will hate this technology because it adds unnecessary complexity to an already defined and evolved internet based operating environment.

As an enterprise I'd love this as I get to keep my data on my network. But if that is the largest limitation of say "Google Premier Apps" success, then it's just a matter of time until they build a corporate network data connector, and sell you a GDA (Google Data Appliance) that will snap into your hosted RIA's.

Over and Out

26/07/2007

Response: By 2010, will Windows 'Seven' (or any desktop OS) really matter?

The following is a discussion between myself and a friend in response to David Berlind's article: By 2010, will Windows 'Seven' (or any desktop OS) really matter?

Assumption: Internet OS implies: Internet, Intranet, and Extranet
"People that are engrossed in technology tend to overestimate the timeliness of the impact that new technology brings to the market. For example, fewer than 40% of the developed world who owns PCs have broadband internet right now and even if they have it they probably don't have it outside of their work or their home - obviously that would have to change dramatically if the world is going to become that dependent on the internet to make their PCs useful. Windows could prove to be the most important OS in a long time because potentially it could become the first OS that makes more use of internet services to improve productivity. People want to be able to use their computers online and offline, on the road and in the office, with and without rich editing capability and many people like the privacy of their own PC - maintaining their own private documents, desktop and settings. I don't really know you have to think that with 6 billion people in the world and only 1 billion on PCs with less than 40% in internet access and even fewer on mobile solutions that the world would have to advance fairly fast in the next two and a half years for Windows to not matter anymore..."
Overestimated timeliness: this is something that started 3 years ago and is here today. Look at the clients Google Premier Apps / SalesForce has built up already. And don't underestimate the headaches involved in managing a hardware infrastructure / licensing agreements in the non-techy enterprise. Enterprise is entrenched in their current technology, but as this tech becomes obsolete, companies will start realizing the cost savings of moving to 100% online. Especially when they can translate reduced licence costs into a competitive advantage against their competition. Basic Economics will play a role in these decisions.

Broadband PC users / Internet Service OS: How is productivity going to get better by introducing Internet Services at the OS level? The only thing I can see is grid computing / shared computing resources (OS Cloud for more processing power for R&D / Science). Internet Services become useful at the Application level. Internet Applications already consume Internet Services and have for 3+ years. If that is the goal for 2010 then MS would be about 6 years behind the rest of the world (10 years before mass adoption). Who knows, possibly Microsoft can't divulge half the info about that anyway.

Online / Offline: One can already build online / offline web applications.

Productivity: I have seen nothing recent from Microsoft that makes me more productive. Everything I've seen / heard about (Office 2007 / Vista) actually decreases productivity because of the learning curve. They totally ditched super users in favour of making it easier for beginners - and that's just stupid in a mature market where loyalty is a two way street. This learning curve is pushing people into the internet application space (Google Premier Apps / Salesforce / Zoho /...). Just keep in mind this P word's biggest limitation is human nature - and technology can't do much about that.

Portability: In the era of the Internet as an OS I don't need to sit at the same desk, office or even be on the same network to be productive nor to collaborate. All I need is access to the internet and I have everything I need. Google doesn't even have assigned seats in their office - they just have floors with computers. They spend their money on other things like hot tubs, sports and 20% time - that leads to employee retention. I bet the cost of each Google employee is about 1/2 the cost of each MS employee should MS actually have to pay licenses for software and infrastructure they consume.

Saturation: People who want PC's / broadband already have it (at least the people that matter EX// not Coboconk). As people better understand WHERE and WHAT they WANT to do on their PC's they will realize they don't need to spend $500 on an OS when everything they do is in a browser (exception: image & video editors, gaming and game programming). The internet is mature and is evolving into the OS that Microsoft predicted when they won the Internet Explorer anti trust case earlier this decade. I'm purchasing a Fedora laptop with the equivalent power as my current laptop for $150 USD brand new. Would cost $650 with Vista. I don't know if Vista is really worth the cost of 4 internet only Linux boxes.

T-1 Adoption: Windows 7 will be adopted in 2015 no earlier. It may be released in 2010 but even after a year you'll only have early adopters and people that were forced to have it because they bought new PC's (as is the case with Vista). Because the enterprise is the only customer that will see value in Windows, they will adopt Vista no earlier than when Windows 7 is released. Hence Windows 7 will actually be 10 years behind when adoption rates are significant, and if history repeats, will only come with another HUGE learning curve that organizations don't want to pay for in productivity losses.

Collaboration: Is the buzz word in the age of internet applications. Our consulting firm could win more bids if we didn't try to push Sharepoint (have still not seen a decent implementation of that beast). Sharepoint is required to link all the MS parts together. It costs $30K to brand and deploy in an organization plus volume licensing of the parts. All of this functionality is included in the $50 per year per user Google Premier Apps package without the need to manage hardware. In an economic era of big boxes vs. bootstrapped startups how can any org compete with costs like that?

Privacy: Is legislation not technology. Is enforceable in a court of law. Any company seeking to house user data will be subject to privacy regulation. In that their systems will be more secure than a basic Windows OS installation or else their business will be shut down by the courts (or repairs will be made and distributed to everyone immediately rather than VIA service updates). I can customize my Social Web OS EX// Facebook to look like I want it to with the privacy that I want. I can specify who to share documents with in my Google Collaboration suite. The company cannot share my data without a court order, and because of this enforceability - their systems are less subject to intrusion than even my own PC. If my home PC was hacked I could do nothing, if my web data account was hacked tI could sue.

Mobile: Is the fastest growing segment of the internet and will drive the Internet as an OS theory. Regardless of what the numbers are today, mobile devices will increasingly consume internet data sources. The single largest factor prohibiting mobile internet usage is platform. These limitations push developers further into the internet space. The iPhone's Safari browser is a key differentiator that other companies are trying to copy and will lead the charge in this arena. AJAX is here to stay, even on mobile phones!

Conclusion:

Unfortunately I don't think that this has anything to do with the rate of technology progression. I say this because it started drizzling about 3 years ago, started to pour in the last 18 months, and we now sit in a very mature Internet Application Space. YouTube is mature, iTunes is mature, Ring Tones are mature, Office Productivity is mature, and VOIP and Social Networking are nearly mature (also adoption rates are much faster for web apps over desktop apps). It's not about reinventing the wheel here - it's about making the wheel easier to produce, use and maintain - all the while keeping it the same. It's about developing a rubber that works as well on ice as it does on asphalt as it does on concrete. It's about giving the driver the same feel of control over his vehicle in every type of driving condition such that they can focus on what is really important: getting to where they are going.

Having said this I do recognize that this is a huge mindset shift for people at the CTO level and directly below, and in this you could turn several of these arguments against me. But as the CFO's start tightening the purse strings as the US goes into recession, technologies largest opponent becomes cost. And in time's like that the Board of Directors are more inclined to listen to the CFO over the CTO, especially when companies like Google are setting up aggressive corporate sales teams who's job it is to make people appreciate just how much cheaper their product really is.

It's nice to think that technology is the savoir of business, but it's actually the other way around. Without a business need, there never would have been a technology developed to fit the hole. It's important to recognize that business dictates this change, not technology companies. It just becomes a bit insulting when status quo is a superior route of action than action it 'self.

P.S., Gaming, Video Editing, Image Editing, and general media consumption are outside the scope of this posting. Should Microsoft decide to include media services in the base Windows 7 install they will face another anti-trust case. It's tough being Microsoft right now - but I'm rooting for them. At least they have Virtual Earth, Silverlight and control over the best darn CLR on the market. Their future is still bright, I just question if they will see continue to see ROI's similar to previous Windows releases after the Vista generation.

Over and Out

14 Rules For High Performance Web Sites

Steve Souders, in his job as Chief Performance Yahoo!, collected these best practices while optimizing some of the most-visited pages on the Web. 14 specific rules that will cut 20% to 25% off response time when users request a page. Even sites that had already been highly optimized were able to benefit from these surprisingly simple performance guidelines.

Having read these blog posts I'm sure you will appreciate - and if you do, you should certainly pick up a copy of his book: High Performance Web Sites: Rough Cuts Version.

Below are links to the 14 topics Steve has blogged about on the Yahoo! Developer Network blog.

I hope that helps.

Over and Out

25/07/2007

Export MS Access Table Description to CSV

Sometimes I'm forced to use Microsoft Access. In this case it's MS Access 2007. It's usually a bad day when this happens (thunderstorms, earthquakes, or wild fires). And I usually smash something when I get home to make me feel better.

I imported some CSV files from Microsoft Dynamics AX and proceeded to enter field descriptions for each field. My feeling was this way I'd have a list of column names and could use MS Access documenter to export the meta data to excel for our business analysis. But Access has no easy way of simply copying the table design and pasting it into excel. In fact as the below screen shot shows, Access even gives you the Copy option in design view yet it will not actually copy anything to the clipboard when you select it.




So I kicked an screamed and then decided to Get er Done in VBA and the following is what I came up with. For the time being I am only grabbing column name and description but you could add anything you wanted to this output CSV file. Keep in mind if the description is missing this code will fail with an error. I trust you are bright enough to put in some checks if you actually want to use this.

Option Compare Database

Const ROOT_PATH As String = "C:\Royal Canadian Mint\ERP Data File Descriptions\"

Public Function ExportTableDetailsToCsv(strTableName As String) As Boolean
On Error GoTo Err_ExportTableDetailsToCsv
   Dim intCnt As Integer ' create an iterator
   Dim intMax As Integer ' create a max len variable
   Dim OutputFile ' create a long int to hold file pointer
   Dim strFilePath As String ' create variable to hold file path info
   strFilePath = ROOT_PATH & strTableName & ".csv" ' assign file path
   OutputFile = FreeFile ' get the long for a free file
   If Dir(strFilePath, vbNormal) <> "" Then Kill (strFilePath) ' if the filepath exists then kill the existing file
   Open strFilePath For Output As #OutputFile ' open the output file
   intMax = CurrentDb.TableDefs(strTableName).Fields.Count - 1 ' get max length
   For intCnt = 0 To intMax ' note we do this rather than for each because CurrentDb.TableDefs("").Fields cannot be for each looped over
' add whatever meta data that we want to the file
     Print #OutputFile, Chr(34) & CurrentDb.TableDefs(strTableName).Fields(intCnt).Name & Chr(34) & ", " & Chr(34) & CurrentDb.TableDefs(strTableName).Fields(intCnt).Properties("Description") & Chr(34)
   Next intCnt
   Close #OutputFile
Exit_ExportTableDetailsToCsv:
   ExportTableDetailsToCsv = True
   Exit Function
Err_ExportTableDetailsToCsv:
   MsgBox "Error Duder: " & Err.Description & " (" & Err.Number & ")"
   On Error Resume Next
   Close #OutputFile
   ExportTableDetailsToCsv = False
End Function




Good Luck!!!

Over and Out

20/07/2007

MS Office 2007 = MS Office Mac = iOffice (the complete idiot edition)

Wow ... What happened to my productivity suite.

Read this CNET Opinion.

What I find funny with that review is the difference between the editors rating and the users rating: 7.8 by the editors, and 2 out of 10 by the users. I guess someone paid someone off for a good review ;)

If I was MSFT I'd be grinding to get a version out with the classic skin! I hate this UI so much that I actually got a Google Apps account so I don't have to use it.

To be frank, the Office 2007 UI is so condescending that it actually offends me. The only reason I'm getting anything done is because I can remember the shortcuts.

MSFT should have called it Office Mac to convey how it is built for people of lower intelligence (like Mac users).

Possibly it could be called Microsoft iOffice (where the i stands for idiot and conforms to Apple's i for idiot philosophy).

19/07/2007

Microsoft Office Sluts 2007

Okay,

After using Microsoft Office 2007 it is apparent to me that Microsoft has totally fucked up one of their best products.

I'm an integrator, I've been programming for a decade and there isn't much I can't figure out. The things that I don't know are things that interest me and I take the time to learn them no matter how challenging. I don't want to have to relearn things I've already learned and mastered. I especially don't want to have to relearn something that I consider a trivial part of my work day.

I don't want to have to think while typing a document: "how the fuck do I indent this paragraph" I want to select that paragraph and press tab. I don't want to have to explore a new fucken ribbon bar to figure out how to build a query in MS Access (I know that says something in it'self that I'm doing anything in MS Access).

It doesn't make sense that anyone would make an update to their application to make it so different from their previous releases. I wonder if they thought of an intermediary release? And what does it say to their customers when they force another learning curve on them?

MICROSOFT OFFICE 2007 IS AN EXCUSE TO ADOPT OTHER OFFICE PRODUCTIVITY SYSTEMS.

There is no reason to be loyal to the Microsoft Office platform - they change it up on users like this - and they very well could do it again. I'd rather use Office 2003 than the plethora of other options out there - but I certainly don't want to use Office 2007.

I've written many posts on many sites that talk to this being the last successful release of Office and I've even defended Microsoft in market share arguments saying there is a lot to be said for students etc. who have used the productivity suite and are comfortable with it.

There are many dumb people out there. Many more than we think. Are these dumb people going to figure out the Ribbon? After all, what percentage of users actually recognize those icons? The ribbon is cluttered and messy.

MS should make an option to switch back to the old MS view where all my toolbars can be hidden and I can exclusively use keyboard shortcuts. I just asked my firm to uninstall 2007 and reinstall 2003. I cannot and will not put up with slowdowns caused by this new GUI.

And fark all the Microserfs who designed this. What did we learn from the Wheel again?

Over and Out