Thursday, May 29, 2008

What's in a name? ....er, everything and nothing

Craig Bailey blogged recently about a new product, Elcom, had introduced with a name of Elcom TrainingManager.Net. In his post, he briefly mentioned they were talking about renaming it and one of the responses was from a company named Igor that talked about the importance of naming.

By now, I think everyone has seen the Microsoft iPod parody where it shows what Microsoft marketing might have done with an iPod and certainly, while it was done as a joke, the reality is Microsoft's product naming conventions can be a bit tedious.

How many different versions of Vista are there? And they all start as Windows Vista. And don't get me started on Microsoft Visual Studio Team System for Database Designers (they did clean this up slightly in 2008) - it's almost as if marketing gets paid by the word when they come up with a product name.

Craig has done a nice job with his CLARITY posts that attempt to explain certain products and his post on Microsoft's online offerings (Live=Consumer, Online=Business, Hosted=Third party) does shed some light on it (one could argue that if your product lines needs CLARITY posts, you need to rethink your naming).

But the entire naming issue got me thinking about who's doing it right and who's doing it wrong? OK - based on above discussion, we don't need to know everyone who's doing it wrong - a few examples suffice.

I think Apple, without a doubt, is one of the leaders in product naming. It's not the Apple Mac, it's simply Mac. It's an iPod, an iPhone, an iMac - yes, they do Need to get out of the whole "i" thing soon but consider the Newton. I think the only product Apple has out now that actually says Apple is the AppleTV. And they have brand recognition. No one thinks twice about the company you are referring to when you talk about one of these devices. They *know* it. If someone started talking about a very cool and revolutionary technology product, one of the first major companies that would spring to mind would likely be Apple.

So do you really need to put your company name in your product name? Even more to the point, is it necessary for your product name to tell everyone what they are supposed to do with it? When I talk about spreadsheets, I just have to say "Excel" and people know what you are talking about (this is one case where Microsoft won the product naming issue but then lost it with the different versions of Office). PowerPoint now is the defacto word for doing presentations on a computer. iPod is the defacto word for MP3 players. Sometimes I think that "Smart Phones" or "PDAs" aren't all the rage because someone (RIM) came up with a single word that encapsulated everything they were supposed to be (Blackberry). (and Microsoft did have a good thing with HotMail but now that's become Windows Live HotMail or something to that effect).

Let's look a bit further at Internet-based companies.

Both Google and Yahoo! had similar sounding names in that they were almost nonsensical names based on what they were doing (and yes, I do know that Google was supposed to be Gooogle based on the big number but that doesn't help me make my point). AdSense is Google's product and while some do refer to it as Google Adsense, it's almost not needed. But here, Google is certainly falling into a trap. Almost everything Google does includes the word Google. Google Earth, GoogleDocs, GoogleMail (gMail), Google Health. They might be better off trying to take a strip from Apple and just use the letter 'g' instead. At least with gMail, it looked like they were doing that. And now, it's GoogleMail for Business.

To be fair, Google does have Blogger, Picassa, SketchUp, YouTube and Orkut.

But what about the embattled Yahoo? At least they have Flickr, a term which more and more defines sharing photos but in many cases, they suffer the same problem (YahooMail, Yahoo Finance, etc)

When someone says Basecamp - I don't think "oh that's right, it's 37signals Basecamp project management solution for small business" , I just think "Basecamp" and KNOW what I'm referring to. dBase was a clever way of shortening database, but FoxPro didn't relate at all to databases, except that it became known as the way to make them faster. And while SPSS may be an acronym to do with statistics, most would be hard-pressed to descramble that acronym (it's actually Statistical Package for the Social Sciences)

I think it's fair to say no one would ever have thought of "Monster" as a term for job search 20 years ago but nowadays, it's pretty common. Does Twitter actually explain what the service does?

Try to connect the products below and the market they serve. Do any of them make sense?

Quicken                 Web Site development
Freelance               Email Manager
Dreamweaver         Personal Finance
Thunderbird           Presentation Software

You know your product is a success, when your product name becomes synonymous with that market. (Heck, you may even want to change your company name to match your product as Satellite Software did with WordPerfect)

Which brings us back to the Elcom naming discussion above. Does adding .Net to your product name make it a better product? No - but it certainly endears you to the IT department in the fortune 500 company who thinks so and who may have a hand in deciding your product's fate in that company. Do you need to put your company or other brand name in front of your product name? Only if you don't think it can stand on its own. It's like the companies who make a big deal about ensuring you say "Inc" or "ltd" when discussing the company as if it makes it appear more professional. When you are writing for legal purposes, it may be required but otherwise, get rid of all the crap that doesn't make any sense. Apple did it last year when they removed Computer from their company name. It was superfluous.

I think of the poll the FoxPro community had when determining what to name the community driven VFP project. Many were torn to call it VFP.Net but I have to say VFPX was the right choice (buy this product a vowel please).

Naming your product and space is important - but it's not necessarily about clarity. If people are confused about what your product does, it MIGHT be the name but it might also be the PRODUCT itself.

Saturday, May 24, 2008

Soulhuntre's rules to code by

I don't typically post items directly from Twitter but Soulhuntre hits upon something that I believe many developers have to deal with every day, regardless of the platform.

Twitter / Soulhuntre: Ok. Rules to live by 1) don...

Monday, May 19, 2008

The End of the Web? Not Even Close.

Everyone's got their tin-foil hat on today, it seems.

Scoble posted this morning on twitter - http://twitter.com/Scobleizer/statuses/814823578

That if Microsoft buys Facebook and Yahoo search - the end of the web is coming.

There will be a lot shaking out from that but I wanted to reply specifically to this post on Herd Watching - Special Microsoft / Facebook Edition - The End of the Web?

where the statement is made "first off, Microsoft is just evil".

Really? I started to comment directly there but then figured it would be best as a separate post.

First off, MS buying Facebook/Yahoo search doesn't mean the end of the web. To me, Facebook and other "closed" platforms (as they are referred to) remind me a lot of CompuServer, AOL and even MSN in their infancy. The goal was to keep everyone inside their environment.

As the web grew, that changed. This is NOT about being locked into a platform and if it is, it's not going to be good for those involved.

But moreover, I disagree that Microsoft is evil.

(that said, their lawyers and some of their business practices are definitely questionable - but this post is about PLATFORM)

They are a company struggling to come to grips with a slowly crumbling platform in the current world of technology - which is hard to deal with when you were the former giant. (I say former with tongue firmly in cheek - they are still the #1 software company in the world, - at least I'm pretty sure they are. )

So they are clinging on to what they know best - the closed platform. Windows is a closed platform - but because it's everywhere, it doesn't feel like one. But guess what? The Mac is a closed platform - both hardware and software wise. iTunes/iPhone? Yup - all closed. Very few platforms are completely open.

It’s ironic because so many of the great people at Microsoft are very open - and want to share - but MS also knows that to stay successful in business, you DO want to keep people in your platform (hence the reason why they kill off product development on non-important platforms or EULA you to death).

Google is exactly the same but they fight it differently because they are open to where you want to go - they just want you to START with them and ensure that wherever you go, you see them there.

This is the web "platform" of today. (Scoble has actually said as much before so I'm surprised he's jumping all over this - although I just can't find it right now).

Struggle may be a strange word to list next to Microsoft but it is a struggle that I definitely see. It has to do with upgrades in the face of new applications. Another case in point - last year, I would look for a photo editing package to do basic photo fixes like RedEye, etc. Today, I'll use picnik or something like it.

Microsoft isn't evil - they are protecting "their own". If you own or distribute your own product, you likely do the same - and I don't think you're evil.

The main point here is that if they do buy Facebook and try to keep it closed off, they are simply prolonging the inevitable.

Even MS developers don't use ONLY MS products - they use the best tools they can get their hands on. And if that's NOT a MS product , then they try to find ways of bringing similar functionality in those products.

If you make the best products, eventually everything will/should fall into place. Because the end of the "closed platform" era is upon us. And as Ted Roche's blog originally put it, as long as the mission is "Interoperable. Competition breeds Innovation. Monopolies breed stagnation. Working Well with Others is Good.", every company (including Microsoft) will play a part.

Sunday, May 18, 2008

Craig Kills off an entire generation

Craig posts his thoughts on The Death of Gen Y amid the upcoming poor economic times. It's a good read but be sure to get down to the bottom for his four key points of how to survive.

These aren't sure-fire ways to stay employed but they are good guidelines:

a) Work for a company that focuses on benefits rather than features (and I would suppose that if you were a consultant, YOU would focus on benefits rather than features - but don't consultants do that already?)

b) Work for a company that invests in R&D (or invest in your *own* R&D)

c) Work hard and smart

d) Be a solution provider

So how did he kill off an entire generation?  You'll have to read it to find out...

Tuesday, May 13, 2008

Say No to Feature Creep

Chris Saad has a great post over on his blog: Leadership includes saying no « Paying Attention

Not sure if he just went through a specific scenario to inspire the posting but it's a great read, especially for technical managers.

One of my clients had a problem: they have a list of over 397 enhancement requests to their product. Now, to be fair, some of those are fairly cosmetic and but at least 200 of them require some kind of review for someone to say "no - we are not doing this"

So why don't they? Because when they get in front of their customers, "no" is the hardest thing to say. And I'm a terrible accomplice but because if they ask "can it be done?" , the answer is "yes, it can". The real question should be "SHOULD it be done?"

When some people think about feature creep, they tend to think of it in relevance to a particular function - but in this post, think about feature creep being about the entire product line.

As a result, the client has about 30 open projects that have yet to be prioritized and when they return from customer visits, there might be some more.

Why not add more developers to get them all done?
Before you do that, you have to ask the question : are they all really needed? And then, are they all needed tomorrow?

So we tried to devise an easy way of identifying a real priority. I used to take a listing of all the issues and sorted it based on how many calls we had for a particular feature. The problem with that is that customers tend to be focused on the "issue of the day" as opposed to the "vision for the future", a vision that typically appears as a high priority a few days after we've put our heads down and gotten all the "issues of the day" done.

1. Narrow your focus, for at least a single release.
2. Publicize that focus - make sure no one is unaware of what your current focus is, and make sure no one takes you aware from that.
3. Make that release a short one (no, I don't mean in the sense of Agile with a two week turnaround, although that might not be a bad idea)
4. Have the managers who continually try and re-prioritize items start planning the NEXT release, instead of throwing more irons on the current fire.

There are a lot of benefits to this approach:
a) you have a "focused" release that can be easily marketed.
b) you can deliver a "focused" message (instead of one that's all over the map)
c) there's a finite list of items to work on.

The problem with this approach?
It requires managers who are able to do that - in short, managers/clients who are able to say "no", even if all they have to say is "no - not just yet"

Certainly, hearing "No" is something VFP developers have heard for a while. "64-bit?" no. "VFP 10?" No. "Open EULA?" No. "Access to core code?" No. But we haven't been told no about stopping what we're already doing. There's certainly a limit to what's possible in the "no" world but one "no" does not mean no more "yesses".

What about you?
Have you ever turned away a client or turned off a feature? How did you say No?   What thought pattern did you go through?

Dynamic Languages Strike Back

Garrett pointed over to this post Stevey's Blog Rants: Dynamic Languages Strike Back
which is really a transcript of a speech Steve Yegge gave at Stanford.

Very interesting read/video whichever you prefer.

When reading about half way through (I've marked to come back to but it's definitely a good read) , I immediately thought of the TIOBE index and how excited VFP developers (including myself) got when we had broken the top 20 - why?

because of this quote

"So that brings us full circle back to the point of this topic, which is: the languages we have today, sorted by popularity at this instant, are probably going to stay about that popular for the next ten years."

(and yes, technically while VFP is still at 20), there really isn't much change between the top 5 or 10 on the TIOBE index.

Which is simply a fun way of saying "people stick with what they know".

Sunday, May 11, 2008

Tweet, tweet, twitter , twitter

Rick Strahl writes up his thoughts on Twitter - Twitter this, Twitter that... - Rick Strahl's Web Log

I've been on Twitter for a while as well (started for keeping up with Newsgator and BuzzOutLoud items) and completely agree with his quote:
"Since I'm a single developer shop and live in sort of a bubble on a far away island (or a small town on the mainland when I'm back there) Twitter is  providing a little more sense of being a part of greater community to me."

(albeit, I'm not on an island but then...we all can't be so lucky)

For those who aren't familiar with Twitter, it's a microblog (limited to 140 character posts) where you follow (and are followed) others.  Just as blogs have their "if I was a tree" posters, they also have some really insightful "twitterers".

People post just about anything on twitter so it can seem weird in some cases. I typically identify with those posts about "checking in lots of code" or the feeling of triumph "I am an XML god" after resolving a particular problem.

( someone did note that I was particularly "busy" twittering when in fact, I had only posted a few times - but to those who are unfamiliar with updating their "state" regularly, it does appear as you are "busy" - especially on tools like Facebook where your latest twitter can appear.)

While there definitely can be a lot of noise,  I find Twitter particularly useful for connecting to other things that are of interest where a blog post would be overkill.
Some examples:
  I found jquery.com based on Rick's single tweet "this is how it should be".
  Evernote - found via Rhonda Tipton  - as opposed to the various media reviews
  a number of great links on innovative writing , development videos, development concepts ( I follow devs who do just about every kind of dev, not just VFP) and hey, you can even help others with their writing.

It's also a great way of announcing posts of interest to others that may be outside your direct circle.

Many people like to keep their blogs very specific to a particular topic - twitter allows those people to still point to items that are out of that specialty but may still be of interest.

As a client - Myself, I use twhirl, which has made using Twitter very fast and easy.

I think I may start reducing the number of "noise" blogs I subscribe to since those "noise-makers" typically "tweet" as well.

Can it be a time-waster? Yes - but that's what discipline is for. For me, it sits in the background (I don't use the SMS features - part of what makes Twitter so popular) - but if someone posts to me directly (which they can with an @akseloft), I am told about it - and otherwise I can just quickly review.

140 characters also forces you to be fairly succinct in your posts...now please excuse me while I tweet that "I am posting a post on twitter" <bg>

Friday, May 09, 2008

Finding movie information with IMDB.DLL

OK - I don't know how long he'll be able to continue calling it IMDB.DLL - but this DLL totally rocks.

Samir has created a very easy to use DLL that retrieves movie information directly from the IMDB database.

As easy as:
REGSVR32 IMDB.DLL
oIMDB = CREATEOBJECT("imdb.imdb")
oIMDB.Login('andrew@aksel.com','Password123')
? oimdb.Search("Smallville")
? oimdb.Search("The Fountainhead")
? oimdb._GetWriters() && Returns a string of values


My Story with IMDB (imdb.dll)


Now - do we have one like this for music?

Thursday, May 08, 2008

Techdirt: Ideas Are Everywhere... So Why Do We Limit Them?

Dave Winer pointed to this article over on Twitter and it's a great read on the foibles of patent protection on ideas.

I hadn't heard of what Myhrvold was doing before but when I read it, I cringed at the thought and how those people were just screwed simply for discussing ideas.

Makes me glad that Da Vinci wasn't around to get all of his ideas patented - then where would we be?

Techdirt: Ideas Are Everywhere... So Why Do We Limit Them?


Too bad Gladwell didn't get it.   i

Wednesday, May 07, 2008

Poll: When do you do your best development work?

So after being up way too late watching primary results (political junkie - go figure) and then waking up early to get some new updates moved into our Fleet Management product, I was struck with a thought and wondered...when do developers do their best development work?

Poll

Monday, May 05, 2008

Comparing Web Framework platforms

Found via Michael Foord, the summarized screencast is fun to watch but the results are even more interesting. The Result? ASP.Net pretty much more than 3 minutes.

Screencasts | BetterWebApp.com

Perhaps just as interesting, the interactive Dar tool,comparing a variety of factors including speed of development, deployment cost, community, productivity among others.

What companies plan their purchases strategically?

Craig Bailey posted this link on Twitter regarding Sun's lacklustre performance last quarter -
Jonathan Schwartz's Blog: Our Q3

Choice quotes:

"Why don't you just stop giving your software away?

Because we prioritize developer adoption. Let me give an example....the MySQL team had scored a design win - ahead of the proprietary competition. What should we have charged them beforehand? No matter what it was, they wouldn't have used the product - startups and developers don't pay for software...We didn't pay them, the MySQL team earned their adoption."

"Why does Sun's CEO waste time writing that blog?
Because I believe in providing clarity surrounding our strategy and operations - not just once a year in the Annual Report. I believe clarity behind our direction is useful for our shareholders, customers, partners and employees."

It's a great post, full of honesty (as far as I can tell) about what's going on at Sun and it contrasts with the Microsoft/Yahoo debacle.

The most disappointing thing I have heard regarding the proposed (now dropped) merger was Balmer's assertion that he wasn't buying Yahoo for the technologies but rather simply for the online advertising business. While I can appreciate that to some extent (there was a fair bit of overlap) , it's also a bit strange because both companies are now getting known for their ability to scoop up companies and then let them languish. I think Microsoft does a far better job of integrating their purchases into their entire system (consider FoxPro into SQL and other technologies) but some obviously don't think so.

Microsoft does a great job with their development tools and getting the message out (Rock the Launch was a great example of that) - but their direction can be spotty or there is a rush to get something out and then to correct it later.  And yet, there are lots of technologies within Microsoft just dying to see the light of day, be they internally-developed or purchased.

There was a FoxPro devcon quite a few years ago when the mantra was not "Fox Rocks" but rather "Challenge Me" - the premise being that you could do virtually anything with FoxPro.

Microsoft continues to do that but it seems, to me at any rate, that it's in areas that they are already behind the curve. As a result, it's seen as a "me too". Consider that Yahoo introduced Pipes before PopFly and even though they are different, they are also similar enough to let people make a connection.  As Joel Spolsky wrote, even Mesh seems like something that's been done before.

Where is the Excel 3.0 of the next generation of web apps?

Microsoft - don't just challenge me - challenge yourself. You've done it before - show us you can do it again.

Friday, May 02, 2008

Quick VFP Developer Shortcut: Tables into clipboards

Developers create a lot of little "snippets" that help them in a lot of different scenarios. Some of them evolve into larger tools; others turn into hidden gems that get shared among a small select few.

(hmmm....SET TANGENT ON ....sounds like an interesting idea for a VFPX project - a snippet sharer - damn! don't they have that in VS? - I DIDN'T think of that when I was first writing this - why can't I think of something that VS DOESN'T have? - OK - SET TANGENT OFF - I do think we DO need an IntellisenseX manager that allows others to post useful Intellisense snippets)

However, here's something I had to quickly build today and others likely have other ways of doing this but....

Problem: I wanted to quickly take the content of a small query subset table and dump it into a document (text) for easily review. (no, not everyone deals with XML)

Update: YES -> you COULD do all the silly code I have down below here but Steve Black, guardian of all cool hidden things in VFP, reminded me of :

_VFP.Datatoclip()

In my efforts at least, a VERY underused feature that would have saved me a bunch of time today (ok, so maybe only the 2 minutes it took to write the stuff below, but still)

Original Post:

While I could certainly say

CURSORTOXML () and then be done with it - I wanted it to be a little more readable.

** Function to copy current alias to a clipboard using tabs
lc = ""
    FOR lni = 1 TO FCOUNT()
        lc = lc + TRANSFORM(FIELD(lni))+"    "
    ENDFOR
    lc = lc+CHR(13)
SCAN
    FOR lni = 1 TO FCOUNT()
        lc = lc + TRANSFORM(EVALUATE(FIELD(lni)))+"    "
    ENDFOR
    lc = lc+CHR(13)

ENDSCAN
_CLIPTEXT = lc

Of course, you could further enhance this more for HTML purposes:

lc = "<table><tr>"
    FOR lni = 1 TO FCOUNT()
        lc = lc + "<th>TRANSFORM(FIELD(lni))+"</th>"
    ENDFOR
    lc = lc+"</tr>"
SCAN
    lc = lc + "<tr>"
    FOR lni = 1 TO FCOUNT()
        lc = lc + "<td>"+TRANSFORM(EVALUATE(FIELD(lni)))+"</td>"
    ENDFOR
    lc = lc+"</tr>"

ENDSCAN
lc = lc + "</table>"

_CLIPTEXT = lc

(hint: you can past raw HTML into things like Word and Excel and it's automatically formatted)

Yes, I know this isn't elegant but it worked exceptionally well for what I needed.

I would run a quick query on some data, run this function and then just paste it.

Quick and Dirty - just when you need it.  

Southwest Fox 2008 - Make Plans Now

So registration is now open for Southwest Fox 2008. I think it's always hard for a conference web site to do it justice. You can show either pictures of the speakers
, the facilities or the food - repeat the testimonials from previous years - but the question remains:

How best to sell 3-4 days of intense FoxPro developer community interaction?

For as much as I am a "let's blog everything so it's available everywhere" type of person, I definitely get the value of attending the conference - so I'm really happy that I'm able to be there this year (I plan on doing some fun stuff on the road with the FoxShow as well for the show)

I find Bud Wheeler's (of Visionpace) comment particularly fitting for this year: "You can't afford to miss this opportunity to learn what is new and exciting in VFP."

At the most recent Rock the Launch event in Ottawa, many were saying "what's new with a product that Microsoft isn't doing new stuff with?" - THAT'S our challenge - to show that FoxPro has always been able to rely on its fantastic community just as much as its software maker to create the innovation that VFP offers businesses.

This year should be particularly exciting - since it's the first year that the direction of VFP is completely in our hands!

Register today or if you need someone to convince you more, call me (415-578-4496!)

Southwest Fox - Home

Thursday, May 01, 2008