Monday, July 25, 2005

China needs Tom Cruise

China facing epidemic of suicide, depression | Reuters.com

Humor Warning: The following post, while referencing a tragic article, is made using a sarcastic and/or ironic voice. This post is intended solely for amusement purposes. If you are offended by humor/irony/sarcasm or have trouble distinguishing parody from fact, do not read the following post or the associated story. Click Here to avoid anything even remotely amusing.

Now here is a place where Tom can put his expert knowledge of depression, psychiatry and Scientology to work.

Maybe all that developer outsourcing for $2.60/hour isn't as great as the multi-national corporations would have us think.

Tuesday, July 19, 2005

Adobe set to unwittingly kill Flash?

From the AP article: Justice Wants Info on Adobe Acquisition

"Adobe wants to combine the Acrobat document-sharing program with Macromedia's Flash software for creating and viewing interactive content on Web sites."

If I'm reading this correctly and we can expect a bloated, sluggish application combining the Acrobat Reader and Flash (and of course the Yahoo Toolbar), I can imagine those Flash penetration figures plummeting like they went over Niagra Falls in a barrel.

Now, if the Acrobat Reader would just disappear from the web and we got a newly branded Adobe Flash Paper as the tool targeted for document presentation on the web, that would be interesting. The reader could be relegated to internal corprate usage and help maintain that Adobe image as an enterprise player.

We know that very similar documents can be prepared in either FlashPaper or PDF (thank you CF). Maybe Acrobat could be changed to allow the creation of both formats.

If on the other hand we get the first scenario, I think that will do some serious dammage to the newly coined "Flash Platform" before it really gets out of the gate (marketing wise, that is).

A lot of people think being big is a really good thing. It lets you compete with Microsoft. On the other hand, being big makes Microsoft want to compete with you.

I wouldn't be suprised if Bruce Chizen is the next Carly Fiorina. He'll be more than happy to take his multi-million dollar severance package and then take a position with Coke or Nike. The next ceo to take the helm will of course have to trim the fat (15,000 hp layoffs) and "reposition" the company.

It's a shame that more companies aren't run like SAS.

Sorry for the negativity, but I just have no confidence in Adobe's ability manage a campaign against Microsoft, develop good web technologies or keep their products affordable. I'll be very happy if I'm wrong.

Thursday, July 07, 2005

Macromedia responds to Flex pricing rant

All I can say is Wow! Thanks for not letting us down. I think maybe one of the reasons the Flex pricing has felt so painful for a lot of us is that we have been champing at the bit for a product like this and want to start using it sooner rather than later. Obviously there isn't a whole lot of concrete information here, but at least we know that Macromedia is hearing us.

"We can't wait to see what you build"

Check out David Mendels' comments in my previous post.

Wednesday, July 06, 2005

Avalon good for Macromedia customers

WARNING: mild rant follows.

There is one statistic that Macromedia seems to wish would go away every so often and then it seems to come back and hit them. Microsoft is well aware of this statistic and uses it to great advantage in many ways. Sometimes MS uses it as a way to gain market share. Other times they use it to create demand. Rarely do they disregard it.

Allaire always kept this statistic in the front of their minds, and we loved them for it. Macromedia USUALLY pays attention to it, but you can tell they don't want to and occasionally have to be reminded of it. So, what is the statistic?

98% of all business in the US have less than 100 employees

So when you decide as a company to pursue "Enterprise" software as a model, you've just eliminated all but 2% of your potential market. You concentrate your risk. Your product can be quickly dismissed as a non-option for many businesses without even an evaluation.

Macromedia has done this a few times that I can remember. Once, horribly, with Spectra. Recently with Breeze which they realized and changed course and added per minute pricing (kudos). And most recently with Flex.

I would love to see Flex become a huge success. I think it is the product that corporate America has been dreaming of since the beginning of the internet when our applications became stateless. We're just catching up to the interactivity we had ten years ago across the network.

The problem with Flex right now is that standing up a single production box is quite expensive.

You figure about $6,500 for a solid web server (3.6GHz, 2Gigs memory, dual 72 Gig drives w/ raid 1, Windows SE), 2cpu jrun: 1799, 2cpu enterprise version of cf: 5999, 2cpu version of Flex: 15000. Total: 29,298. A very hard nut to cover for a small business even with some discounting that would be available. Double it to stand up a staging server, triple it to add a development server (although I generally don't do that, workstations work just fine).

In most small and midsized businesses, time and effort is often substituted for cash. This means that many non-large businesses will spend lots of effort trying to roll Flash based apps instead of realizing the benefits of a flex based solution. I think this is unfortunate because the time spent developing the Flash apps is time where the product is not being used and showcasing the Macromedia product line.

With the impending release of Avalon, maybe Macromedia/Adobe will rethink their pricing policy. Since Bruce Chizen says
"Microsoft is the competitor, and it's the one that keeps me up at night", Adobe should really adopt some of Microsoft's strategies. In particular, MS almost always has some sort of "Small Business Edition" that provides a migration path to their more capable products as the company grows.

I like the fact that MM has created a non-commercial license that is essentially free. A huge move in the right direction, but it still leaves a gaping hole in the pricing model. I have confidence that MM has something on the drawing board to address this issue. MM is probably one of the best companies around when it comes to listening to their developer community. It's probably the single biggest reason I've been a MM evangelist for so many years. However, I don't have that level of trust with Adobe. It wouldn't surprise me if the powers that be at Adobe scuttle many of MM's plans.

Why the rant about Flex pricing? It's all been discussed before, even before the price went up. Well, because it's now impacting MY decision process. I've been working on a speculative RIA off and on for the last six months. Flash apps are hard. They take a lot of time and can be really flaky. I see Flex as a great solution to my problem, but the price tag makes the decision REALLY hard. Do you pursue a project that you may not be able to monetize because of high startup costs and an unproven business team? At what point do you have enough confidence to put everything on the line? I'm not sure my project instills enough confidence in me to take that risk. In the mean-time, I'm stuck trying to bludgeon developers into using Flash as a development platform. I hope there is another option around the corner.

Friday, July 01, 2005

Managing developer datasources

If you're like me, you wind up working on lots of different projects with all sorts of datasuppliers. If you work on a laptop, you may be connected to several networks at different times. This creates an irritating little problem when you go to crank up a development session. ColdFusion doesn't ignore all of those datasources you created to work on other projects that you currently don't have a connection to.

Waiting for the timeouts while RDS is looking to fetch descriptions can feel like an eternity. In the past, I've just gone into the administrator on my workstation and added and deleted them as needed. That works if you only have to deal with a few, but it quickly becomes a big waste of development time.

Well, there is a neat way to manage the datasources in a heartbeat.

Inside each application I'm working on, I create a file like this and bookmark it:

<html>
<head>
<title>MyApp Datasources</title>
<body>
<h1>Manage Datasources for MyApp</h1>
<!--- try not to destroy the production server --->
<cfif cgi.HTTP_HOST eq "127.0.0.1" or cgi.HTTP_host eq "localhost">

<!--- Login --->
<cfinvoke component="CFIDE.adminapi.administrator" method="login">
<cfinvokeargument name="adminPassword" value="your_cfide_admin_password"/>
</cfinvoke>

<!--- Get a list of existing datasources --->
<cfinvoke component="CFIDE.adminapi.datasource" method="getDatasources" returnvariable="getDatasourcesRet"> </cfinvoke>

<!--- Delete all of them --->
<cfloop index="dsn" list="#structKeyList(getDatasourcesRet)#">
<cfinvoke component="CFIDE.adminapi.datasource" method="deleteDatasource">
<cfinvokeargument name="dsnname" value="#dsn#"/>
</cfinvoke>
</cfloop>

<!--- Create your datasource(s) here --->
<cfinvoke component="CFIDE.adminapi.datasource" method="setMSSQL">
<cfinvokeargument name="name" value="your_dsn_name"/>
<cfinvokeargument name="host" value="your_server_name_or_ip"/>
<cfinvokeargument name="database" value="your_db_name"/>
<cfinvokeargument name="selectmethod" value="direct"/>
<cfinvokeargument name="username" value="your_db_username"/>
<cfinvokeargument name="password" value="your_db_password">
</cfinvoke>
<p>Datasource(s) added.</p>
<cfelse>
<p>You can only manage datasources on the localhost</p>
</cfif>
</body>
</html>


All of this is now possible with the (relatively) new cfide api that cf exposes. You will have to use the setDB method that is appropriate for the type of db you are using. I'm only using a minimum of the available properties here, but everything in administrator is exposed.

Take a look at the component browser for details about other functions
http://localhost/cfide/componentutils/componentdoc.cfm

They are contained in the CFIDE.adminapi package.

Note: if you may not be able to put the file in a part of your application that is controlled with user authentication that uses the datasource to validate usernames and passwords. In that case, you may want to set up a little app that just has these files in it and name them for each app.

Note #2: Dreamweaver won't acutally update the datasources shown no matter how many times you hit the refresh option. Trust me, they are not there. The new list will show up the next time the program is restarted. Your new datasources will show up with a refresh though.