Archive for the ‘Software’ category

Is your project scalable?

August 17th, 2010

I was talking with a friend today about his project.  He’s been brought in to a project where the dev environment is pretty tightly couple with physical machines, there’s no good repeatable build process or docs on how to make things work, and many unwritten assumptions that he only finds out after trial and (much) error.

It struck me then (and possibly in the past) that the entire way that project is set up is not *scalable*.  Scalability is a big buzzword, and it often focuses on performance.  While faster performance is generally a good goal, it’s often not the only requirement on a project.  In the case above, a new developer coming in may spend *weeks* trying to get things working which should only take hours.  And the process of getting him up to speed is not a documented, repeatable process either.  So when he leaves, and they bring in someone else, they’ll go through the same process all over again, probably not even realizing there’s a problem.

What steps do you take to ensure your project (or perhaps your project team) is itself scalable with respect to the human resources it requires?

Zend Framework starter kit – zfkit.com

June 9th, 2010

So.. I’ve finally gotten around to publishing the first draft of my ZF starter kit.

More will be at zfkit.com in the future – right now it just links over to the github project home.  Feel free to fork it and send me pull requests.  There’s a load of things I’d like to do to/with it, including a default basic authentication and user mgt system, a basic forms generator, some menu stuff on the side, and some other small stuff.

It’s got Doctrine built-in, and ready to go with a sample book/author object set, although no sample *data* yet, nor any examples of how to use the code specifically.  Maybe I’ll add some of that soon.

Curious to see what, if anything, people are interested in seeing this do or can contribute back.

Enjoy!

Silverlight on Android?

June 7th, 2010

I just read a quick blurb about Android’s inventor suggesting they’d welcome Silverlight on the Android.  A quick search around showed there was some activity on this topic in March, but it seems to have died off.  Is this actually coming?  It’d be interesting to see if MS could pull it off and make it run in the JVM.  That would have larger implications for non-Android devices (better support under Linux, perhaps?) certainly, but also be a strategic threat against Flash.

Right now “flash on the iphone” is still (for some reason) some big meme in the webosphere.  Well, I get the reasons, and I think it’s more to do with Jobs’ aggressive stance than it is people actually missing the tech in most casses.  Were Silverlight to be available on Android devices, there would be a much stronger case for people to consider developing in Silverlight in the first place.  As cool as SL is from a pure geek standpoint, there’s still little reason for most people to learn it unless you’re targetting a pure MS-deployment environment.  Yes, there’s a Mac plugin, but it’s just something we rarely see outside of MS shops writing for their own, or basically not caring about web-standards and cross-platform accessibility all that much (any modern SL app will automatically preclude Linux and non-Intel Macs).

So, will MS join forces with Google (metaphorically speaking) to do battle for mobile-dev mindshare against Apple?  Having a cross-device RIA stack won’t do the trick on its own, but certainly does add a bit more complexity to the mix.

The independent web developer blog

April 28th, 2010

I’m launching a new blog over at http://www.webdevindie.com to focus more of my ‘web development’ topics over there.  I’ll likely still post some here, but if you want more of my web-related stuff, I suggest that you subscribe to webdevindie.com.  Yes, it’s the same theme as this blog for now, so it might be slightly confusing at first, but it is different.  :)

Palm on the ropes? Here’s what they can do to survive (and thrive)

March 19th, 2010

Screen shot 2010-03-19 at 10.55.59 AMJust read some bad news for Palm over here.

The company shipped a total of 960,000 smartphones during the third quarter ended February 26, but sell-through — which reflects how many devices actually end up in consumers’ hands — totaled 408,000 units, lagging the 600,000 units or more many analysts expected.

Sounds bad.  While I don’t have a Palm Pre myself (lack of GSM made me go to iPhone), I’ve loved the concept of webOS, and the freedom to write native apps using JavaScript.  The problem as I see it is an ever-increasing one in the smartphone market – the carriers themselves.

Many people flocked to the iPhone *despite* the lock-in to AT&T.  Personally, I’ve not found AT&T service to be any *worse* than Sprint or earlier Cingular or other companies I’ve been with in the past.  They all are crappy in their own way, all have draconian lock-in contracts, and overcharge for basic services.  That’s a given, and with only a handful of competitors, and service available in many regional areas by only one or two companies, there’s no effective competition.

BUT.. that’s not the reason for the post.  I first owned a Palm VII back in 1999, and have been a moderate Palm user or follower on and off for years since then.  Others in my family were avid Palm users for many years, and I’ve known other people who loved theirs.  The internet functionality over the past several years was an added bonus, but people loved the functionality of the Palm first and foremost.  So Palm, here’s what you can do to start making money.

Sell and Palm Pre Plus or Palm Pixi Plus *without phone functionality*.  Sell it for $199, push your app store and start making money from that.  For some reason you felt it was OK to launch the original Pixi *without wifi* but included phone support – you got it backwards.  I’ve been dying to get a Palm Pre, but I’m not giving up my current phone.  Sorry.  I want the device for a PDA and developer device, not for a phone.  Keep wifi in it and you’ve got a killer device to rival the iPod touch.  Get out of your relationships with the carrier, get in to bed with Skype and start pushing the limits on wifi-enabled apps.

I’d get people low-end Pixis as gifts if it didn’t require getting people to sign up for phone service as well just to get a ‘discount’ on the outrageous ‘retail’ prices of several hundred dollars.

Yes, location-based stuff is pretty slick, and ‘go anywhere’ web service without wifi is nice too, but they’re not requirements.  iPod Touch sales should show that.  Get on the ball – get this device in to as many people’s hands as possible.  You can’t go head to head with the iPhone – it just ain’t happening.  But it also doesn’t need to happen.

  • Cut the price to $99 for a Pixi Plus
  • quit the phone service requirement
  • get back to making killer PDAs first and foremost, with the ability to distribute via a first rate appstore experience.

In the short term this will get the inventory off the books, help spur demand for new inventory, and get more devices in people’s hands and get the experiencing a revitalized ‘new’ Palm.  The phone stuff can come later.  Or wifi-service will become more ubiquitous and Palm can take advantage of full-on VOIP without carriers demanding they disable this functionality consumers demand.

Get with it Palm.  I’d like to see you around for a lot longer.

UserFly Usability Checking via Screen Recording

March 9th, 2010

UserFlyI recently found UserFly.com, a service which will record videos of the visitors to your site, allowing you to play them back and watch where users go (and how they move their mouse around on the screen).

I was flabbergasted at how easy this was to use – I tried the free version and had recordings going in 2 minutes. It was that easy. It has to be seen to be believed.

As a techie, I’d tried to build something similar 4 years ago. Owing to my own limitations, as well as the much more fractured browser landscape 4 years ago, I never got this working to the level that I liked. Having attempted just a small portion of what userfly is doing, I can truly appreciate the engineering that went in to this service.

If you’re interested in testing it out, please follow my referral link (yes, it’s an affiliate link). They offer a free version to get going, and paid versions start at $25/month $10/month. The $50/month plan would be what I’d recommend if you have any ecommerce or security, as it will handle SSL pages. But the free or $25/month packages might be fine for basic sites.

Who I use for domain name registrations

January 21st, 2010

I get asked this on a fairly regular basis, often by people new to the domain and hosting scene.  I’ve got a lot of domains at GoDaddy that I’ve purchased over the years, but for most new domain purchases I’ve found omnis.com, and I’ve been very happy with them so far (just over a year).  (yes, that’s an affiliate link, so I’ll make a bit o’ cash if you click that and purchase something from them).

I don’t recommend their hosting plan, nor godaddy’s, nor anyone else’s for that matter.  I’ve managed my own dedicated servers for 10 years, and would have a hard time recommending any shared hosting plan for anyone, mostly because of the restrictions of freedoms I’ve found.  Many people may not need it, but I do, so I can’t specifically tell you to use omnis.com for domain *hosting*.  However, purchasing domains through them and pointing the name servers anywhere else (which they let you do easily) is fine (and what I do).  To be fair, I’ve not tried their hosting plan, so I can’t comment on it, which is why I don’t recommend it.

Why do I like omnis?  Price.  GoDaddy has lower initial pricing, assuming you can find a coupon code (and they’re all over the place if you look for them).  This can often get a .com domain name down to $7 from GoDaddy for the initial registration period.  Yes, if you buy 5 years up front, you’ll get the $7 price for 5 years.  However, most people don’t do that (I don’t – I try too many domain names every year).  So, purchasing for one year at GoDaddy is $7 (with coupon) and $8.95 from omnis.com.  Almost a $2 difference!  However, come renewal time, GoDaddy has steadily gone *up* for me year after year, and omnis.com hasn’t (so far).  Renewing that $7 .com for me at GoDaddy jumps to $10.69 plus some ICANN fee.  So, for 2 years, I’m at almost $18 with GoDaddy, and pretty much the same at omnis.com.  Following year, I’ll be saving money.

Is is worth it to try to save money on a 2-3 year time horizon?  Strictly by the numbers, no.  However, I’ve felt GoDaddy has become a bait/switch operation with respect to the higher domain name renewal fees.  Coupons or special deals might help in some cases, but I’d prefer to give my domain business to someone who doesn’t bait/switch or need to rely on massive promotions.  Yes, omnis are smaller, and yes, I might have problems with them at some point, but I haven’t in over a year, I don’t get upsold a huge amount of junk trying to check out, and the support I’ve had for the few questions I’ve sent in has been reasonable (typically answered by a human via email within a few hours max).

So, if you’re looking to help support a smaller domain registrar with decent service and decent prices, give omnis.com a spin.

Next magazine topic survey – winner announced

December 23rd, 2009

A few weeks ago, I posted a survey asking for input on the next magazine topic for Web Dev Publishing to pursue.  The results were interesting, but unfortunately the results were not definitive, and I’m left with the same quandry as before – which topic to choose.

The winner of the survey, selected at random, was Mark McDonnell.  Congrats Mark, I’ll be sending your Amazon Gift Card over today.

The top vote getters were (in no particular order)

  • MySQL
  • NoSQL
  • JVM Languages (jruby, jython, scala, clojure, etc)
  • Zend Framework
  • Database technologies

The votes were pretty evenly split between all of these topics, which leaves me with no clear direction as to which, if any, of these topics would make sense to pursue (from a demand standpoint).   There already was a MySQL PDF magazine, which has transitioned in to a “open source database magazine”, covering more technologies than just MySQL.  NoSQL, while interesting, has been criticized as just a ‘flavor of the month’ (though the interest shown in this survey was significant).  Zend Framework and JVM Languages are the two that seem the most promising.

Do you have any thoughts on this?

Learning new languages harmful?

December 22nd, 2009

After having spent much time with Groovy/Java, and a bit with Ruby and a bit with C#, I have a newer perspective on learning new programming languages.  Much of my thoughts are summed up by this post from Gustavo Duartes.  I liked his choice of words at the top – “language dabbling” – which largely describes my C# and Ruby experience.  I’ve done a little bit in them – some paid in C#, some not – but the bulk of my work is in PHP, with a small but growing bit in Grails.

It’s interesting to note his acceptance of “more than one”, but focusing on the “minimal required set”.  We tend to think of languages as Java,C#, Python, etc., but competent web developers need to have a handle on SQL and JavaScript as well.  Many also get into Flash/Flex/Silverlight too, and while CSS isn’t a *language* specifically, it’s something most web developers should be acquainted with.  So, regardless of your serverside language of choice, there’s going to be 2-4 other technologies you need to be at least competent, if not proficient, with.  This may be more the realm of small shop and independent developers – people working on larger teams or in companies with divided responsibilities may be able to get away without knowing any SQL or JavaScript, for example.

One of Gustavo’s points was that you lose momentum on your main language when you start dabbling with others.  There may be a point there, but I suspect some people end up looking at other languages when they reach a plateau in one.  That was certainly my point I reached with PHP.  Having used it since early 1996, there’s only so much more I feel I can do with it.  Yes, the language is evolving slowly, and I’m not keeping up with the ‘best practices’ of namespacing and such in 5.3, and I could probably architect my apps somewhat more strictly using some of the bigger frameworks out there.  However, one of the things you end up learning when you look at other languages is where some of the defects are in your primary language.  You may start to see the new ‘best practices’ as work-arounds in language deficiencies.

It’s easy to point at PHP and talk about how “it sucks” and all that, but I’ve had experiences with some friends who’ve moved from Java over to PHP.  While this was a somewhat unwelcome move at first, given PHP’s reputation amongst the ‘enterprise crowd’, at least one of my friends is really enjoying being able to be much more productive – more functionality in fewer lines of code – and rethinking some of his approaches to web development.  Moving from any statically typed language to a dynamic one is certainly a shift for people to make (and the reverse movement is true as well!), and rethinking those problems we’ve taken for granted can be a real eye-opener.

In the short term, yes, it’s a productivity loss, as Gustavo points out.  In the longer term, it can really provide you with many more tools in your toolkit for attacking new problems.

One caveat I’ve noticed to this is the old saying “choose the right tool for the job.”.  Great in spirit, but my experiences have borne out that rarely is the definition of “right” able to be agreed on.  ”Right” for who?  The DBA?  The sysadmin?  The developers?  I had a project I’d recently prototyped in Grails (after an initial first pass prototype in PHP 6 months earlier).  The Grails environment allowed for much more rapid prototyping and modeling of data, relationships, screens, and so forth.  However, when it came time to accept it, I was told we could *only* build the app on a traditional LAMP stack (I was looking forward to using PostgreSQL on this project as well).  Why?  Because the limited system administration staff didn’t have the time to learn new skills to manage the new technology choices.

While initially I was bummed out, I can understand the decision making process.  I was able to take the db tables from Grails and wrap another PHP ORM layer around them so I didn’t lose all my work, but it certainly put to rest the maxim “right tool for the job.”  Who gets to decide?

So, even if you learn new languages and technology, you might not always be able to use the most appropriate tool from a pure technology/productivity standpoint.  And sometimes knowing that there are better options out there that you *can’t* use for various reasons adds a level of frustration to the mix that you wouldn’t have.  Perhaps we should all stick to just knowing one language and one language only, right?  :)

Cloud computing – still a bit too pricey for the average project

December 22nd, 2009

I wrote this to Brian Hitney after we’d briefly touched on cloud computing in my podcast with him last week.  I thought I’d post it here for any reaction from the rest of the internet…


Another point on the economics that isn’t brought up is the cost of data transfer and data storage in the cloud, which is often more than you’d pay for ‘normal’ equivalents.

I’ve got a server that I lease and pay $84/month for.  Included in that I get 750 gig of transfer.

With azure, 12 cents per compute hour for 24 hours x 30 days = $86 - about the same base rate.  But… let’s say I’m pushing out between 150 and 200 gig of bandwidth per month.  200 gig at .15 cents extra is $30.  Factoring in I store about 40 gig of data on that server, that’s another $6.  To replicate my setup on Azure (or Amazon) would cost me about $38/month more, which is a 40% premium over what I can get in the ‘non-cloud’ marketplace. As my data needs scale up, the differential gets bigger.  EC2 pricing is roughly equivalent for storage and xfer, but the base computer rate is cheaper for linux images than for windows images.

There’s a big play to push ‘cloud’, and given the markup, I can see why.  The hardware is commodity, and is essentially a one-off investment, but the data xfer is the lifeblood, and I’m actually a bit fearful of putting so much reliance in the hands of just a few monolithic companies who will then charge us a premium to move our own data around.

If I had a huge amount of number crunching to do, without much data storage or xfer needs, current ‘cloud’ offerings make sense.  And for potential adjunct service in a pinch, or for testing.  But as a long term strategy investment, the pricing needs to change and/or there needs to be more value in the mix for my taste.