Saturday, December 10, 2011

But should you use Google Translate for Your Software?

Doug wrote recently on using Google Translate to localize applications, giving step by step instructions on how to get translations automated from their online API.

Rick Strahl had also posted about this earlier in November with ways to do this without needing the API.

So we know it's possible - the question is : should you use it?

Automated translations have come a long way from years ago when you had to use either specialized CDs or babel fish.

Still, the big challenge with localizing internally is ensuring your translations are accurate for its audience. Like Doug, I live in Canada where most government software must support our two official languages: English and French. Sounds easy, right? After all, both languages have been around for centuries - translation must be pretty straight forward. Not so much.

Many moons ago, I worked for a company was delivering the same basic software to two separate government departments. The software needed translations for several terms, one of which was the word "Browse". We asked around, went to the official translation group within each department, and received.... four different translations, all of which could be used, but only one of which would make a different person happy.

Also, consider how the terms are used. On a standard menu, we have File, Edit, Cut, Copy and Paste. A few interface guideline books I've read suggest that menu items should be treated as verbs but in the imperative sense, as though you are telling the computer to do something. Hey computer, "Save"! "Copy!", "Quit!" It makes sense.

However, when translated to French, if I used the imperative, you might see terms like Sauvegardez! Copier! Quittez! (a sample of using imperatives can be seen here).  Using Babel Fish, Cut becomes Coupe ( as in "he cut the tape"). Google suggests Couper. But for the word Save, Google offers Enregistrer, whereas French software typically uses Sauvegarder.

But, according to translators, in French, you rely on the standard verb. So the terms should appear as "Sauvegarder", "Copier", "Quitter". I'm not sure what the practice is in Germany or China or Mexico, but the problem likely recurs there.

Heck, in 1995, when I was in Paris, while Canadian french software used the word "Aide" for Help, French applications there were simply using the ? to indicate the Help menu.

This hasn't changed over time. I'm currently involved in a project where once again, one term comes up with at least 2 or three different possible valid translations.

What's the right answer? If you rely on Google Translate too much, you'll find you run the risk of being Ford offering the "Pinto" in South America, or the LaCrosse in Quebec. Your best bet is to find someone who speaks the language natively to ensure your translations make sense.

Of course, then you might find two people to help to do the translation and STILL end up with 5 possible translations for a single simple word.

It's great that a company like Google (and Yahoo) offer translation sites we can all use. Thanks to the posts from Doug and Rick, FoxPro developers can easily take advantage of it through code. The Google translation API looks like it's making headway especially for menu style terms. But be sure to run it by some native speakers before releasing - it may save some embarrassment later on.

I wonder if it would have been easier on that guy in the Geico ad if he had simply looked up the guinea pig term for "row".

Monday, December 05, 2011

SitePoint eBook Sale for Developers

Over on the MadFox list, Jim noted a great sale over at SitePoint:

"SitePoint has an interesting 24 day, digital download Christmas Sale at: http://www.sitepoint.com/sale/ 

Books are mostly available as PDF, .epub, and/or .mobi downloads. 

You can purchase the daily bundle or individual books."

Check it out.

Monday, November 14, 2011

VFP Entity Framework 4 Provider

Tom Brothers pointed me to a new project he's working on:  the successor to his LINQ for VFP work: an VFP entity framework 4.0 provider. 

This means using the VFP OLEDB driver, you can easily access FoxPro data in VS 2010 Entity Framework solutions.

The project is on Codeplex but the post noted here gives full details.

Great job, Tom!

Saturday, October 15, 2011

Review: Version Control by Example

It isn't surprising that most FoxPro developers think of one primary tool when version/source control is mentioned: Visual SourceSafe. After all, this was the Microsoft tool that was heavily promoted when version control integration was first promoted in VFP. (I recall YAG and Flash introducing their Multi-User Project Manager for FoxPro which was my first introduction to how to let multiple developers work on the same project, absolutely needing some kind of version control)

But if you, like many other VFP developers, were geographically remote, you quickly discovered SourceGear's SourceOffSite, a SourceSafe client that made working remotely fast and easy. SourceGear's founder, Eric Sink, has written on version control for years and SourceGear moved from assisting SourceSafe to Vault, a SQL Server based alternative and additional tools, such as bug-tracking.

VFP's integration of source control isn't perfect - most of it due to its use of the DBF/FPT format for MNX, VCX, SCX and FRX - and the existing SCCTEXT has been improved in the past with alternate SCCTEXT and GenXML.

More recently, however, he's written on open-source version control systems, and no surprise, SourceGear has written its own distributed version control system, Veracity (also open-source). His new book, "Version Control By Example", however, isn't just about Veracity - it's about making Version Control even more accessible than before.

He takes the reader from the history of version control (v1 - SourceSafe , v2 - centralized version control, v3 - distributed version control) and then plunges into perhaps, one of the best examples of learning Source Control in recent memory.

Eric walks us through exactly the same development scenario, using Subversion, Git, Mercurial and Veracity as the version control tool. With Harry and Sally, two developers separated by an ocean and culture, we start with the creation of a software project and go all the way to its version 1.0 implementation, with the challenges of code conflicts, spelling changes, commenting and of course, the inevitable, "I'm going to work alone" mentality.

But the book also describes how different software (web, commercial, etc) implement version control and the internals of how each VCS handle some of the details. While Veracity is discussed, it isn't heavily promoted - this isn't your "here's why my product rocks" book - this is a discussion piece on the strengths and weaknesses of each tool.

Eric's writing style is fun and easy to read. With most developer books, readers pick and choose what chapters you read, and while you can do this with Version Control By Example, I read it cover to cover. You might think going through the same example four times would be boring - but Eric's minor changes make it a breeze (if you're looking for the many different ways Brits can say "happy" or "angry", this is just the sprig in the thicket!) Highlighting the differences in culture helps show the "real" development process.

My favourite chapter is the Best Practices where there are gems that even experienced software developers may not consider:



3) Don't Comment Out Code. (throw it away! - as some developers know, I just hate unnecessary comments comments!)
Version Control By Example is available free online, for purchase, for download, for ePub and more.

If you're looking for a new version control system, read it. If you've never heard of version control before (hello students!!), read it. If you're looking at changing your version control system (some of my clients are still using VSS), read it. If you're looking for a great dev book, read it. I received a copy and after reading it, the best thing I could do, as I do with all the best developer books, is share it.

Version Control by Example

Wednesday, September 21, 2011

Steven Black Speaking at Southwest Fox 2011

Yet another great reason to go to Southwest Fox (coming next month) - Steve Black will be speaking.

As Doug says, Steve's sessions are always lively, thought-provoking and entertaining.

He's speaking on Techniques and Niche Marketing - two topics he certainly knows well.

Southwest still has about 70 openings left (25 of which are discounted) so be sure to book now if you plan on going.

Doug Hennig: Steven Black Speaking at Southwest Fox 2011

Monday, September 05, 2011

Glad we spent all that time on OLE DB


As the SQL Team notes:
"The next release of Microsoft SQL Server, Code Name “Denali,” will be the last release to support OLE DB. OLE DB will be supported for 7 years from launch, the life of SQL Server Code Name “Denali” support, to allow you a large window of opportunity for change before deprecation. We encourage you to adopt ODBC in any future version or new application development.

Making this move to ODBC also drives more clarity for our C/C++ programmers who can now focus their efforts on one API."

They forgot to mention "and make all of their efforts over the past few years wasted on supporting a technology that we would eventually kill"

Microsoft's promotion of OLE DB over ODBC is similar to their enthusiasm behind WPF and Silverlight.

WPF's Browser implementation reminds me of the old ActiveX Document technology - it looks like a Browser but it downloads a WPF core to the client - technology that has its roots over 10 years ago.

When it comes to frustrating developers, Microsoft's actions in the past few years is fast becoming the gold standard.

When WPF was promoted as the upcoming technology, I asked a number of developers if new .Net programmers should skip learning WinForms and move right to that technology. "No" - I was told. Yet, with the exception of the code behind work, WPF is so different that WinForm developers face a steep learning curve - so much so that many keep on building these solutions.

WPF leans into Silverlight, which is on as slippery a slope as OLE DB (in my opinion). WPF's saving grace is XAML, which hopefully Microsoft keeps around for 10 years, 3 years longer than OLEDB.

One of the big pushing points for developers moving to VFP 9 was OLE DB, which fits into Visual Studio and .Net.

What was the point?

Imagine what would have happened if those developer resources had been moved to other benefits from the FoxPro platform. Politics win, developers lose.

Monday, August 29, 2011

On Modern Day Games

You see them advertised and they almost seem like a desperate attempt by companies like Parker Bros and Hasbro to recreate an era gone by: that of the family game night and the board game.

In some ways, they have returned. Note the popularity of Games with Friends on iPhone - but many of the games espoused are games that SHOULD rightfully still be popular because they are unpredictable.

While everyone who has ever played Monopoly always has a favorite game piece and property, the way the game unfolds is almost always a game of chance. Like playing with a deck of cards, each game is unique.

Come forward (or back) to the 80s' and the introduction of Trivial Pursuit. While there are some diehards who would play TP using the board and the little pies, the game evolved into more of a "pull out a card and let's see what you know" type of game.

Moving further into the 90s, and you see more of these games. SongBurst (one of my favorites) tests your music ability based on songs from a particular era (50s - 80s - note this was BEFORE the Singing Bee TV show)

The thing most of these games suffer from is "age". Not just the age of the players but rather when they came out. Playing a game of Trivial Pursuit Family Edition requires that the "kids" group be in their 30s now. A question like "how many planets are there" suffers from days gone by.

Heck, going back in time, my parents had a game of Shakespeare where you had to complete the sonnets (try playing that with the kids today).

Think of the fad a while back: the Murder Mystery sold in a box. You could only ever play the game once - after that, it was spoiled.

Some games have tried to recapture the glory of the game of chance but with some silliness: Pictionary, Cranium (which combined a bunch of games including Charades). One particular favorite is Scattergories - where you write down words based on a category. If the categories don't really fit or you're tired of the same basic answers, why not create your own? It's a game designed to be "improvised"

This takes me to my main post. Many games these days have become computerized, offering DVDs of data or the like. So they all use some kind of storage device for their questions and answers. So my question is: are they using storage devices from the 80s?

Our daughter bought the game CatchPhrase, where you try to get the other player to say the word or phrase without saying it. Sounds like a classic game, right? And now that it's computerized, you know you aren't going to get the same questions repeated regularly. Heck, Trivial Pursuit would give you 1000 cards with 8 questions each and only if you played it every night for a year would you begin to remember them (and you know who they are, if you have ever played with them).

Even with a 1GB memory stick and averaging a phrase with 100 letters in it, you should easily have over 10,000,000 phrases - while you may get a few repeats, simply because of random polling, it's highly unlikely you would get the same set of questions in one sitting.

CatchPhrase has approximately 11 categories and phrases Everything from words like "Spill the beans" and "hot potato" to "Dick Cheney", "Weapons of mass destruction" ,"Hannah Montana" and "Top Chef". Yet, in the two times I've played the Food category, 90% of the phrases are the same. So maybe it's just Food, right? Nope - same thing with Everything. They say it contains 10,000 words. That means 910 words per category. So it doesn't really matter if they have a 1000 new words for the current generation.

You'll run out sooner or later.

Is a 1GB stick really that hard to put into a game like this?

Better yet, can't they put a Wifi card in them and get updates online?


Fun in the SQL Transaction Log

I've written about the SQL Transaction log before and since some of my clients don't have some of the great logging tools, I often find myself going back to the

select * from ::fn_dblog(NULL,NULL)

Recently, at one client, I've come across a bizarre problem that defies easy analysis.

The VFP application uses cursor adapters to talk to the SQL Server and in one of the processes, updates one table while adding a record to two other tables. In certain circumstances, the two new records were being added but the update of the other table would not.

While I'm still tracking down what is actively going on, I wanted to note some of the interesting aspects of the SQL Log and pose some questions

A great post in SQLServerCentral broke down the various operation types but it wasn't clear on others:

LINQ to VFP

When asked about the state of Visual FoxPro, I often point developers to the VFPX site on CodePlex. After all, that's where the majority of VFP source code is and where many members of the VFP community place the most of funkalicious work they do (Jim Nelson continues to amaze with his PEM Editor, which should likely be renamed IDE/X, because he's now covering far more than just Projects, Events and Methods.)

But there are OTHER places to find great VFP Code.

Foxite continues to get posts with very cool samples and there are other codeplex sites as well.

But recently, I was looking for ways to work with VFP Data in .Net and came across:

LINQ to VFP

Yep! Tom Brothers has built an iQueryable toolkit for FoxPro. Started in 2009, the latest version was updated on January 9th, 2011. 

Multiple Class Implementations

I'm doing a variety of work in both C# and VB.Net these days (as well as VFP).

Every now and then, I come across helpful concepts in the languages that are likely obvious to most developers but may not be known by all of them. If I find something that is of particular interest, I'll put it under these types of posts.

Today, I had a class that implemented multiple interfaces. Both of these interfaces had a similar method: SetReadOnly. So you have two choices:
1. Create a new interface that this class can implement that has the SetReadOnly interface so I only have to implement the one

2. Create two methods that implement that particular method.

Most people are used to VB.Net's handling for Select Case statements where you can put multiple conditions on one line:

Select
Case "A","B","C"
End Select

What I wasn't aware of was that you can use it for Implements as well.

When you add the "Implements xxxx", VS automatically adds the various functions that you have to implement. So in this case, I received TWO methods:

Public Function SetReadOnly() Implements Interface1.SetReadOnly

and then

Public Function SetReadOnly1() Implements Interface2.SetReadOnly

I asked around briefly if this was necessary. As it turns out, it's not. You can easily do:

Public Function SetReadOnly Implements Interface1.SetReadOnly, Interface2.SetReadonly

End Function

Handy way of reducing code.

Wednesday, August 24, 2011

Southwest Fox 2011 Giveaways

Nothing like good products for attendees. Doug reports that Southwest Fox will have draws for three copies of DBi Technologies Studio Controls for COM.

As someone who has covered the dbiTech controls for many years, this is an awesome product offering. The Appointment Scheduling alone is a great reason to have this in your toolbox but there's a lot more where that came from.

Doug Hennig: Southwest Fox 2011 News

I wonder what other goodies are in store for attendees.

Sunday, August 21, 2011

UI Evolution vs Revolution (Part 1): Scroll Bars

(this post started as a comment so I might come back to it - or I might just start a series on UI changes)

I read
Why Windows 8 Might Fail | John C. Dvorak | PCMag.com ,typical Dvorak, whom I've been reading for , ouch, just about my entire life in computers. That seems strange to write. But every article I read on Lion and Windows 8 seems to talk about this strange trend of removing scrollbars. (Comment starts now):

The proof is scrollbars? Really?!?!?

How many of you actually use scrollbars? I'm not talking about moving up and down through a page, I'm talking about using the scrollbar as a tool instead of just a means of identifying where you are on a page.

If you're on a laptop, chances are you either a) use the keyboard or b) have gesture support which means you gesture "up" to move the page down.

If you're on a PC, I still say the above still counts. New users will be confused initially but they will get it.
If you're on a Mac, you're used to multi-gesture already.

Scroll-bars work as a tool to indicate where you are. They aren't gestures - get over it. Granted, if they changed the visual clue (the thumb being at the top of the page meaning they were at the bottom), then it's a big thing. But no one is talking about this.

If you believe in gestures, pulling something to the right makes the left move visible. Pulling something down shows the top of it. (try it). A scroll bar on a book would mean moving the thumb to the right would take you to the end. But with gestures, you would PULL the page to the left.

Getting rid of scrollbars makes sense only if you start using Up and Down arrows on the page to indicate there is more or less text.

But Letting the user choose how scrollbars work is about as idiotic as letting users reverse what mouse buttons do what. How annoying is it when you are used to using a Right mouse and then go to someone who uses a left mouse? We're not talking about moving to a different country and seeing the wheel on the different side of the car or reading right to left instead of left to right - we're talking about letting the user decide that the reverse method of doing something is the right way. Apple had this right years ago - put your mouse on whatever side you want but don't change how the mouse works.

The idea of an "evolutionary" interface is tough to build - because users all "evolve" at a different pace. That is why it's taken 10 years for people to start getting over XP.

Apple's approach has always been to revolutionize the interface and then slowly evolve certain aspects of it but then revolutionize it again. (System 1-7, Newton, OS/X, iPod, iPhone/iPad). Don't go to the "Apple steals what works" argument - this is their history.

Microsoft's biggest successful contribution to revolutions was Excel but I'm sure there are others. The Office Ribbon wasn't a revolution but it came close. How successful is it really? What Microsoft "revolution" do you like?


[Update: Yes, I would say Kinect makes a pretty good case for interface revolution, especially in how it allows developers to make it better.]



Thursday, June 16, 2011

Developer's Code

Lessons, advice, and unadulterated opinions on web development - The Developer's Code

Great document on a variety of lessons learned from development. My favorite (so far): #4 - The "Ivory Tower" Architect is a myth.

Even if it was written by a young whippersnapper (KA WAI CHEUNG) at the age of 32. Someone should have suggested putting a year in the copyright, though. It was first posted around March of this year.


Wednesday, June 01, 2011

Southwest Fox 2011 Speakers and Sessions Announced

Doug Hennig made a post of this but SW Fox looks like it will be really blast this year!

True to form, it's like a diving board for FoxPro developers to explore new software development techniques and technologies in all their glory.

VFP Techniques sessions include Class Design, subqueries, event-binding, Windows 7, cursor adapters, legacy code, multi-threading.

New Technologies: Thor, Lightswitch, Cloud Storage, GoogleFy, Mercurial , jQuery and Silverlight.

As many have posted before, Southwest Fox is a whole series of conferences in one: there's the "actual" conference, the pre-conference, the post-conference, the "practice run session" previews that you can see as speakers practice their talks and then the "networking" conference, where you can talk with other FoxPro developers about how they do what they do.

But also exciting are the Pre and post shows: MVC3, SmartPhone and FoxInCloud. The annual Web Connection conference is being held right before the show and then there's a SilverSwitch World Roadshow right after.

Sounds like October 26-29th, FoxPro developers should look to vacation in Arizona --- Gilbert, Arizona to be exact.

Sunday, May 08, 2011

Why The New Guy Can’t Code - Really?!?!

Thank heavens Jon Evans posted Why The New Guy Can’t Code, an explanation for all software development shops to read before hiring someone. This article explains that the evils of all poor hirings are:
a) Microsoft's fault
b) old systems
c) hungarian notation
d) not female

It's not the fault of poor HR, a bad interview, or even the lack of the supervisor's ability to explain a problem - no, the above are the reasons that the new developer "can't seem to get up to speed", "shows basic ignorance", and produces work that "is so kludgey that it...must be rewritten"

OK, I'll agree with a few points:
1. The brain-teaser questions.

Sure, they're fun - HR loves them because they can remember them - but ultimately, they were designed to show how people think about problems and how people arrive at solutions. They aren't actually a bellweather, especially as most of them are posted online.

Can you imagine a MacGyver interview? "You're on a plane plunging to the ground, you have a paperclip and a coat-hanger and 10 people to save, how do you do it?"

How do you test knowledge? Yes, you ask them to solve a basic problem. Really though? The best interviews I've ever had or even given involved giving a real world scenario. "We're building such and such a system, how would you do it?" If you're what the company wants, you'll likely be describing the same system they are building. If you're good, you'll give some ideas that they may not have thought of (not that they would let on). If you're great, they'll simply walk out going " I have to hire this person".

2. Old Systems.
Yes, we all get that the new systems provide features that no one had when growing up and learning systems. That doesn't mean those skills are not valuable. Maybe it's just me but I wonder how I would get along if everything changed and we lived in a world where electricity was banned or forgotten.

I'm not saying that you have to know how to forge an steel but I remember years ago someone arguing for procedural programming over OOP and guess what? Today there are people who will argue for MVC or MVVM patterns or writing 1s and 0s over 0s. The fact is, learning programming is the same - the tools make it easier, but they are still just tools. Learning good programming techniques is the same, whether it be C+ or Python and Ruby.

3. Hungarian notation.
OK, I know Jon didn't go after hungarian notation as a concept - he merely used it as an example of someone making tons of money from an idea implemented by Microsoft but still, is hungarian "the dumbest widely-promulated idea in the history of the field"? While I'm sure a**hole programmers like to think that code should be unreadable except by themselves, MOST developers recognize that code should be read-able. While a variable named CustomerPhoneNumber is obviously a string even though it's named Number; if your newest hire is from a foreign country, they may not know that SocialSecurityID should be a string but EmployeeID is a numeric field because of the way a system was designed.

Hungarian notation does solve a particular problem for any language. Is it perfect? No. Is it overused? Yes ; but then so is any naming convention that results in a variable named TableWasRetrievedByInvalidNumber (while a fabrication, naming variables descriptively have been taken way too far).

In retrospect, it's crazy to think that some people still have horses to travel, when there are cars or Segways. Despite the fact that roads were only built the size they are to accommodate them.

4. Not Female
Not even going there. I'm sure there are female programmers that suck, even if Jon's never met one.

I don't know Jon Evans, a fellow Canadian, but he calls himself a software engineer yet his history shows very little software engineering. He graduated from Waterloo and spent most of his time writing novels. While I'm sure he's done some software development, most of it appears to be in order to scrape by while writing. I'm sure the post was written with the best of intentions..actually, I think it was written more to incite than to explain.

Maybe the real message got lost in the wording: "Don't interview anyone who hasn't accomplished anything." As he accurately states: there is no excuse for software developers who don't have "something" that they can point to and say "I did this, all by myself!"

That isn't something new, though. If you hired someone without seeing what they could do, for ANY field, except maybe theoretical physics, you likely shouldn't be hiring. I wouldn't hire a writer without asking them to write something. I wouldn't hire a tester without either a) seeing them test or b) know their testing work.

And this isn't just about the new guy - there are lots of "old" guys who have gotten to the point where they rest on their laurels and don't improve.

The comments on this post are what make this article:
a) Pair program a recruit with your top engineer for 30 minutes. (hell, I'd say any engineer)

b) train before you hire

c) hire them to produce

If the purpose of the article was to generate conversation (and is there any other reason?), then it succeeded.

Tuesday, April 19, 2011

7 dirty consultant tricks (InfoWorld)

InfoWorld had a neat article a few days back called
7 dirty consultant tricks (and how to avoid them)

Those of us who are consultants should know that these are being done and should be pretty angry about it. Most of the practices listed here are the reasons why the right consultants (that would be us) don't get the jobs we bid on.

Those who run consulting firms should know about these and know that they are the best way to stay in business.

I wrote an response to this on my own web site more but thought I would share some of the immediate takeaways here:


1.  If you (as a client) aren't starting your project with a measurable result by a specific date, then you need to break your project INTO those results first. Otherwise, assemble an internal team and maybe ask for some guidance but keep the deliverables in mind at all times. If you don't, it becomes a money pit.

2. I often look at my work as a consultant as being similar to a good plumber: if you want me to fix a problem, I'll do it as quickly as possible so I can move onto the next problem. If you want me to re-design or identify possible improvements to your plumbing system, it will take longer but I'll do it right.

3. Best thing to do is MEET with the actual team who will be doing the work.

4. When dealing with fixed prices,
I always think it's in the best interest of the client to look at per-diems but with a cap. It allows the consultant their opportunity to shine through but also limits the company's exposure.
We once had our floors done by a company who looked at the floor and said "about $1600 labour based on x/day". By the end of the project, it was over $3400 because they didn't account for it right. This was a per-diem project and I should have thought first to put a cap on it. At the end, they still tried to weasel out of finishing the work and left us with a half-ass job.

It's an interesting article - typical of InfoWorld who often target consultants in their columns but it's also an opportunity for consultants to identify and address them head-on, especially when dealing with new clients (who may read InfoWorld).

Friday, April 15, 2011

WP7/IE9 Developer Bootcamp - Ottawa

Something for the local Ottawa group...Microsoft Ottawa is doing a Developer Bootcamp on May 11th.

While some things don't sound that exciting ("Enhancing Pinned Sites with IE 9"), the HTML 5 session does look pretty cool. Despite Hachamovitch's recent statements of "native HTML5", IE9's improved support for web standards is a good thing all around.

I look forward to building web sites that every browser can support.

That said, look to the FoxShow next week for an interesting interview with the FoxInCloud guys.

WP7/IE9 Developer Bootcamp - Ottawa

Wednesday, March 09, 2011

Southwest Fox 2011 Looking for Speakers

Doug Hennig: Southwest Fox 2011 Call For Speakers

Southwest Fox is gearing up for the 2011 conference season by issuing an open call to speakers.

Go to the Speakers page for details.

As with last year, they are looking for a wide variety of topics from core VFP, extending VFP, new technologies and becoming better developers. 

This year's SW Fox is October 26-29, 2011
SanTan Elegante Conference & Reception Center/Legado Hotel
Gilbert, AZ

Session proposals are due by March 28.

Thursday, March 03, 2011

Note to Microsoft: Focus on Software, not tablets

iPad 2 was announced yesterday and the business and technology world (and mainstream media who bends over backwards for Steve Jobs) stopped and gazed at the double rainbow that is Apple.


I responded there but I thought I would take the opportunity to drill down a bit further.

First, Microsoft should stop trying to be a hardware maker. Their expertise is in software - so they should attempt to provide the BEST applications available in the App Store, even out-doing Apple. Microsoft's forays into hardware with the exception of the xBox have been fairly laughable - not many people recommend their webcams or mice without offering just as good alternatives.

Imagine what would happen if Microsoft actually GAVE businesses a reason to buy iPads or other tablets? Because Microsoft felt that their focus should be on the software - the BUSINESS software.

Where is the MS CRM iPAD client ? That could be Microsoft's killer intro into this marketplace. If they did it right, they could crush Salesforce. Oh, I know, CRM is a web-based product - but it has a terrible mobile interface. Why? Because it thinks it is still in the Windows desktop world.

Apple rebuilt iWorks for the iPad to try and show it as a great "office" tool - Microsoft should take Office and show why Office is the king of Office tools. Excel defined the office spreadsheet - should Apple's Numbers define the mobile spreadsheet?

Microsoft has to realize that the days of their owning the desktop hardware due to licensing is over. Projects like WinPhone 7, Kin and possibly moving to tablets should be treated for what they are - hobbies, much like the AppleTV was. Build the best software for the devices and people will use them (provided you don't kill them with licensing).

Microsoft's greatest strength (and profits) are in tools like Office, SharePoint and others. Their developers rock at this.

Jobs had it right in that Apple's strength is that they have always tried to be the cross-roads between Technology and the Liberal Arts. Microsoft has never been that - they make business software. Period.

So Microsoft should get their own developers making the best damn business software for the platforms they want to support. If they don't want to support the devices that are becoming more popular, then it's a losing business and they should realize they are eroding their customer base.

Consider the Server Tools market, That's a battle with Linux and Unix - and while it's a tough one, it's one that Microsoft currently does arguably well. The majority of small to mid-sized businesses run on a Microsoft back end.

The desktop? I think even the biggest Linux proponents would just as soon say "take it" - the new battle is on the mobile devices. But the one thing we've seen is that what matters on these devices are the "apps".

Want an instant way in here? Find a way to build "Lightswitch" apps for these next generation mobile devices ON the devices themselves. (focus on getting that trademark from someone where you can bully them). Corporate developers would fall over themselves if they could build it - and think of how cool it would be to be able to "build" the application on the device itself. (as long as Apple or other device makers allow you to do this, of course - but there's the in).

If Microsoft wants to keep relevant, they should focus on their strengths, not their weaknesses. This being my last year as a Microsoft MVP, I really wish I had gone to the MVP summit to promote this attitude.

They have started a little bit - the latest contest is to build great HTML5 applications. Great - we already know that Silverlight is not the end game for web-based applications.

And another thing, Microsoft - really?!? "App Store" is a generic term - much like "Windows"? Grow up. They beat you to it - you should have trademarked "Tablet" when you had the chance.

Wednesday, January 05, 2011

Southwest Fox 2011 is on!

Saw a tweet come through on SW Fox - the dates have been booked with Southwest Fox 2011 on from October 26th-29th with a post-con going through to the 30th.

Twitter / SWFox Conference: Southwest Fox 2011 is offi ...

It doesn't look like the main SW Fox site has been updated yet but I'm sure it will be shortly.

Visual FoxPro History at Microsoft

Ken Levy has an interesting post up on his MashupX site since early last month.
Ken Levy's Blog _ MashupX Visual FoxPro Strategy at Microsoft

The post goes into some fascinating details as to the history of Visual FoxPro at Microsoft. Most of it is well-known or obvious (making VFP.Net would break backward compatibility - which is what MS did with VB.Net as well)

I guess more details can be shared now - when VFP 9 was released, "the amount of sales for all versions of VFP combined annually was less revenue than Microsoft sales of Visual Studio in only one day"

It would be interesting to know however if some of those companies who were out there working on a VFP-like language in .Net were "persuaded" to stop their efforts, as some have suggested in various forums.


Well worth the read. The FoxPro community is what keeps VFP alive (thanks to VFPX and other initiatives) - and there were some members of that community inside of Microsoft at one point.
As he notes at the end "Only developers who have used FoxPro really appreciate it for what it was and still is."