Features, Quality, Speed – Choosing Technology

Apr 24
2012

A few years ago, I put out a series of articles on tech forums describing some of my thoughts on building social networks, and choosing the best technology. I made some comparisons between Rails, Django, and PHP Frameworks, off the shelf CMS like Drupal or WordPress. Not all statements, I would say were accurate at the time ( I may be jaded from bad experiences ), or even today – but the general idea was in the right place.

A few years have gone by ( too fast ), and many of my philosophies have, hopefully matured, changed a little. I tend to slander technologies less, for starters, unless your Drupal, and do more looking at the problem domain and explore what technology can elegantly solve for to get me there, instead of brute forcing my favorite technology and hoping it will keep me there.

Tonight, I received an email from a fellow startup enthusiast, Michael, seeking some further thought on the matter, as he is embarking on a project. After editing my response to him, over and over, I decided, it was worth sharing.

Michael, in his quest to choose the best technology for the job, was stuck between choosing an off the shelf solution, BuddyPress or going completely custom from scratch with CodeIgniter (CI) to build a social network. BuddyPress didn’t quite have all the features he wanted, but did have some, and CI, of course, would be a mostly from scratch endeavor.

Michael stumbled upon one of my notes on the CI forums, and sent me an email asking “How does he choose which will be best?”

My response:

Hi Michael,

Thanks for reaching out to me. I have to say, I’ve received a lot of feedback on my thoughts about this, and I will first admit, I wrote that note on the CI forums several years ago, if I were to write it again, I think I could do you one better. However, I think a lot of the motivation behind it still holds true in my experience, so let me give you some of my thoughts from today, and you will have to task yourself in choosing which specific technology meets your requirement.

Lets spark some thoughts:

  • Are you hiring a team or programming yourself?
  • What types of resources do you have available to achieve a finished product ( either that be your own graphics and programming skill, friends helping, a hired team, skill level, experience ).
  • What type of timeline are you looking at?
  • If you have a hired team, do you have the budget and buffer for when things don’t come out the way you expected? Going custom can have it’s unexpected draw backs and expenditure, while an off the shelf solution might get you to market faster at the cost of not being “quite” what you want in the big picture.

All Code is Throw Away

“All code is throw away” – Peter Meulbroek. A dear friend of mine, mentor, and also former boss, taught me this concept over the course of about 3 years. It’s one of my biggest take aways from working closely with him.

Be ready to try again. To not get it quite right. To give a little, so you can take a little more.

Often, the best thing you can do, is build a beta or prototype. See if it catches. Don’t spend all your resources in one basket and hope it’s the next best thing. If you can get a prototype, you can gauge what to do to sustain, maybe pursue further investment, or decide to throw it out! Going with an off the shelf solution is often a “fast” way to go and provides this sort of testing ground with low expense. Then when the concept is proven, rewrite it on a more customizable platform with all those features you dream of, ramp up infrastructure, resources, budget, etc.

I’ve rewritten entire projects with tens of thousands of lines of code, in different technologies, languages, platforms, you name it, in some cases, 3-4 times in a year. Some of the reasons generally being:

  • the requirements evolved
  • the budget increased or decreased
  • we pulled and added features that we found more or less important
  • users hated it and nobody used it
  • users loved it so much we hit a technical wall or limitation
  • overhead was not worth investment for particular features

Famous Last Words

Think about these items, and then ask yourself what is important to you in this first iteration ( attention to the word “first” ):

  1. Features
  2. Quality
  3. Speed

Take a combination of 2, and choose which framework/platform gets you that. Then, be prepared to change your mind, evolve, and throw away a little code ( or all of it sometimes ) in favor of what gets you to the big picture in the end.

Your fellow startup enthusiast,

Chris Page

AdKeeper to Launch Keep.com

Nov 22
2011
Keep.com

AdKeeper's latest product, Keep.com

As you many of you already know, I’m a proud member of the AdKeeper team. We’ve been laying a little low for a few months, and here’s part of the reason: We’re launching a new product, Keep.com!

For an explanation, I’ve decided to simply quote our CEO ( with permission, of course ), as he wrote it best in an email earlier today:

Not a change of course/emphasis – but something new/incremental. We’re very happy with the core biz.

Since we began beta in Feb. we’ve rolled out 10+ Billion buttons across the web. Making this tech easy and seamless was the first order of business – and you may have noticed our deal with Safecount last week that now lets us take a single line of code and drop it into ad tags with partners. This is the beginning of spreading buttons wider and is very exciting. We very much believe Keep buttons will be on “all” ads.

We now not only have the biggest, best group of advertisers for a new media property, ever… we’re certified on every web site in the world and now we make ad tagging/ops way easier. Eric Schmidt’s recent comment about how hard it is to do ad tech resonates with all of us.

And, to top it off – fresh research shows that 23% of users feel better about a brand just seeing the button that let’s them “Keep ad for later”… and we’re getting 50x clicks and 20x view time on Kept ads. That’s the button side of things.

On the destination front (which is where Keep.com plays), some of our guys fell in love with a tweaked metaphor for deeper engagement with Brands. I told them to have at… our version of Google’s 20% “do what you want program.”

I liked what they’re doing so much that I gave them one of our fun parked URL’s… Keep.com. We’ll be working it for a bit before going wide – but needed to start getting some folks in to kick the tires… thus the proverbial velvet rope. Sign up… maybe we’ll let you in :)

– Scott Kurnit, AdKeeper CEO
 

All of that stated, if you’re interested in checking out the new product the day it launches ( very soon ), sign up at our launch page and… maybe we’ll let you in :)

Happy Keeping!

Best 2011 Super Bowl Commercials

Feb 06
2011

Living right outside Pittsburgh right now, it’s only natural that I’ll have atleast a mention of the 2011 Super Bowl! Go steelers!

Right now I’m at a friend’s bar with my laptop hammering out some tasks for work and keeping tabs on the game. So far the Dorito commercials have sparked the most laughs, here is one John Washam sent over ( who is also hammering from Seattle ):

I think this was spot on — the finger licking goodness is truly the best part! Too funny!

I’ll save the best overall commercial posting for after the game, as better ones are already rolling in faster than I’ve been able to post this – that optima commercial was pretty sweet btw. The Eminem Brisk commercial.. comeon man, I like Eminem as an artist – but that was most-lame.

How to Fix Netflix Error N8156-4001 and Silverlight on Mac OS X

Jan 21
2011

This will be a short post in effort to help others. I was streaming Netflix tonight, or attempting to, and kept getting an error code N8156-4001 with a message to call support if it doesn’t go away. This was not a happy good feeling, nor was I going to call customer support – I’m far too lazy to wait in line.

So, I did a little research and found tons of others experiencing the same problem, and that it’s related to the Microsoft Silverlight Plugin. I found that many people said re-installing or downgrading Silverlight was doing the trick. Though I couldn’t find just how to do that as they rarely posted instructions for Mac OS X, hence this post.

The steps I finally came up with are dirt simple and hopefully work for others too. I’m not sure what remnants I left on my computer by installing over top like this, but frankly, I could care less – it works! :-)

The steps:

  1. Go to the Apple Silverlight download page, and download Silverlight 3.
    http://www.apple.com/downloads/macosx/development_tools/silverlight.html
  2. Unpackage the download
  3. Click through the friendly wizard
  4. Restart firefox

Wallah! I logged back into Netflix, and the error was gone. I’m now about to fall asleep to a sci-fi.

If others have tips, please post in the comments.

Fun Android/iPhone Game – Storm8′s World War

Jun 20
2010

World War - By Storm8

A CTO recently made a comment that some oddly high % of people above a particular salary range play N amount of video games a week.  I thought it was interesting, as I couldn’t disprove it, ha!  So, in effort to keep this page a little active, and not having the time to write out a well-thought-out technical tutorial, I decided to write about something fun, a video game I got into this week:  Storm8′s World War ( picture on the left ).  It’s a dice-based massively multi-player phone game for both Android and iPhone.

How it works?:

You pick your faction ( one of 5 global super powers ), each with their own benefits.  You then complete missions, earn money, buy bigger and badder units, and compete with other players.

What’s fun about it?:

One thing I particularly enjoy about World War is that it’s simply addictive – there are few controls and few options, so I don’t really need to deeply involve myself in the game to have fun with it. I play here and there.  I like this, because I’m so very busy these days – I haven’t really had time to join my buddies in the Starcraft 2 train, and I can only play my Wii in small dosages.  So phone games that I can carry around and play here and there is quite fulfilling.

Tips?:

I’ve only been playing for about a week, but like many other multi-player phone games, World War continues while you are offline.  So, it’s probably a good tip to build a lot of defense, so that other players don’t loot your cash flow while you’re gone!  When it comes to attacking, the best thing you can do is have a couple friends join your alliance.  The bigger your alliance, the more effective your attacks and defenses are.  Ie, if you are in an alliance of 4 people, you typically almost always win against an enemey from an alliance of 2 ( though not always, just usually ).

Join my alliance!:

If anybody wants to join the game, post your alliance code in the comments or shoot me an email — I’ll invite you to my alliance!

Enjoy,

Life in Pittsburgh during the G20 Summit

Sep 24
2009
Troopers in Lawrenceville

Troopers in Lawrenceville

What a strange day! This may be a tad ignorant, but I really don’t know what the G20 is truly all about. I’ve only caught bits and pieces from other people – needless to say, it’s a big event. The office is just a few blocks from the convention center where the meetings are being held, and there are more cops, S.W.A.T. teams, and state troopers marching the streets than a small army.

Driving around, we’ve been behind vehicles tagged “diplomat” more than once, hit a few road blocks, and she had the unfortunate event of protesters banging on the car down Penn Avenue. I’ve caught rumors of tear gas being used, our office building was on lock down towards the end of the day, and on the way home the radio said President Obama was making an appearance in Oakland, just around the area we were staying for the last 2 months!

So, WTF is going on?! Ha… something good better come out of this ( aside of the awesome food Lockerz provided today to keep it’s employees safe during lunch ). We had to drive through Wilkensburg to get home, and that’s just no treat – cab driver once told us that Wilkensburg doesn’t get city funding, so it’s falling apart… crack whores calling out to their suga daddies – no lie. Though, given my ignorance to the world changing event downtown, perhaps I’m no better, ha.

Attached is a picture Drew Zhrodague‘s mom took on her way for coffee.

Exciting Updates! Contrary to popular belief, Pittsburgh Rocks, not Cleveland – Period.

Aug 07
2009
Lil Wayne In Pittsburgh

Lil Wayne loves Pitt too!

Two weeks down, this blog is due for an update – time has been flying!

As far as home life in Pittsburgh goes – ROCK. I’m currently staying roughly between one of Carnegie Mellon and Pittsburgh University’s campus intersections – the architecture is gorgeous. I enjoyed a meal at the famous Primanti Brothers down the street, learned the public transit ( a work in progress… ), and discovered a few open mic hot spots I’ll be hitting up eventually – oh, and Lil Wayne at the Post Gazette Pavilion was also ROCK! I’ve had numerous other experiences and visited quite a few restaurants, but won’t detail all my eating habits here :-)

As far as Lockerz goes… ROCK ON! I’ve made some new friends, thoroughly enjoyed many philosophical discussions, and am getting knee deep into working on the next best thing. Today was a moment for Lockerz history – as we saw an incredible traffic increase this morning – ranking 4 on Google Trends around 10 a.m.

The boost seemed grass roots in nature, as people are catching wind and telling their friends, who are telling their friends. The most personable for me was Amber’s friend made a comment about needing a Lockerz invite to join the site, not even realizing I work there. Small world? Needless to say, he got the invite.

I won’t detail much else about the job – you’ll have to keep tabs on the site! Need an invite? Let me know.

Chris Page Joins New Venture – Lockerz LLC

Jul 22
2009
Night shot of Pittsburgh, PA - our new home city!

Night shot of Pittsburgh, PA - our new home city!

I’ve been quite busy lately!  Amber and I decided to leave Morgantown, WV to pursue better opportunities wherever we may fall.  We bunked up with family for a few weeks… a grueling thing with a 2 month old.  Thankfully, it didn’t take too long to stumble upon the next big thing!  Spending so much time increasing my online presence has paid off – as I received a call a few weeks ago from Lockerz CTO, Peter Meulbroek.

Peter and I exchanged a few phone calls – I could tell there was something “right” about the vibe I gained.  Three weeks later I drove into Pittsburgh for a lengthy yet fun and relaxing 5 stage interview – their idea is spectacular and the team was very talented and cool with a work hard and play harder mentality, perfect.  I realized “I’m going to make this happen”.  Thankfully the team at Lockerz shared that realization, and I’m very proud to announce that as of July 27th 2009, I will begin my first day as a ground floor Lockerz technical team member!

This proves it… I’m a startup junkie!

Things are moving very quickly, with only a week to relocate, and it reminds me of one of Amber’s favorite sayings:  “Good things take time, Great things happen all at once.” – this seems to hold true for me, a man of extremes to say the least!

Everybody involved in the process made it feel absolutely “right”.  I’m super psyched about the challenging workload ahead, and Amber and I both have never been so happy with the direction life is taking us!

Go check out Lockerz.com!

<a href=

Choosing the best platform for the job: CMS Solution, PHP MVC, Django, or Ruby on Rails

May 14
2009

I see this all the time:  “I’m building a website, but I don’t know what the best technology to use is?  This guy says PHP,  that guy says Ruby.  What’s better?”.  While there are definitely a handful of developers that will quickly jump to share my point, there are far too many that have biases for certain technologies and will quickly defend them with a bullet list.  Avoid those guys with biases – their tool belts are smaller.

Some things to Consider

Choosing the best technology really depends on what it has to do.  You wouldn’t hit a screw with a hammer?  Well, you can… but you shouldn’t.  Choose your website technologies based on what it has to do and what it takes to create and support it.  Some things to consider:

  • Budget and Market Cost
  • Continued Support and Development
  • Scalability – meaning, when new problems arise, will the solution be able to meet and defeat those problems?
  • Demographics – how well does the workforce powering your technology cater to your product’s needs?

Simple Sites

Say, perhaps, you want to build a small website to advertise a product or yourself.  It needs a few dynamic options, like a contact form, and maybe a shopping cart. I highly recommend exhausting service oriented solutions before going custom.

You could quickly find a web developer, blow a few hundred bucks, spend several weeks customizing and tweaking, and there you have it – no real support, you may or may not have a scalable back-end to manage it, and future expansions become expensive.  Or…

You could throw up a wordpress.com site for your landing page, link it to an inexpensive shopping cart service like e-junkie.com, and have significantly more bang for FREE by gaining access to thousands of plug-n-play plug-ins to extend your site with gallery applications, feeds, sharing tools, SEO management tools, as well as all the support of a service like e-junkie on call for your every e-commerce need.

See where I’m going with this?

More Complex Project

Lets envision you need something more complex than a personal page.  How about, a niche social network?  You want your own version of Myspace, and white label solutions just don’t have what it takes.  So you’ve raised thousands of dollars in angel investment, got your business plan, and are perplexed by the question of this post, “What technology?!?!”.  In this case, I would suggest considering the labor force and scalability behind each technology in correlation to what that is going to mean for your budget.

PHP Frameworks

While PHP has a huge work force, and many success stories, the language itself is rather controversial, as are philosophical differences in it’s “thousands” of frameworks.   A handful of frameworks are well-known, such as Symfony, CakePHP, Zend, CodeIgniter, KohanaPHP; though being an expert level PHP developer, I can tell you that many of the PHP frameworks, well, quite frankly, suck.  It’s new and easy to learn, and bloated with newbies making decent money, but not deploying consistent theory or solid code.  This is not always their fault, PHP lacks as a new language.

PHP also brings a lack of legacy support with each new version.  Consider the lifespan and size of your project.  Does this site need to run code for several years?  How difficult might it be to migrate old code to new versions of the language as they are released?  Just an example:  When  PHP5 released, it left thousands of web hosts outdated and incapable of updating without major financial and time expense due to the fact that PHP5 had changed syntax to introduce OOP, which broke PHP4.  To simply upgrade to PHP5 would break millions of websites without those webmasters first learning the changes in the language and making updates to their scripts.  Such scenario meant serious problems for web hosts that wanted to support latest technologies for new clients while maintaining legacy technology for existing clients.  PHP6 bodes better, but will still admittedly face similar problems.

As for the workforce, it’s just too easy to get into PHP.  The skill level required to create a PHP site is significantly less than that of other languages.  It’s the nature of PHP – Hypertext Pre-Processor, which, to many, is code (pun intended) for HTML on steroids.  Your average MySpace fanatic knows a bit of HTML these days, PHP is just the next informal step for many.  If you can find a skilled Object Oriented Programmer (OOP) – you’re well off, but the work force powering PHP is predominately less read into computer science theory and less likely to deploy best practices.  Why should they? – that’s all part of the beauty of the language.

Not to say a quality website can’t be developed in PHP, but I haven’t worked with any particular PHP Framework that really nailed it for me as a perfectionist.  You’ll find many like me in the PHP work force:  “just another php framework author”.  There seems to be an abundant number of us that find it difficult to produce quality code in popular frameworks, causing us to resort to building our own.  Mine is coined Typhoon.

Though, don’t get me wrong, I LOVE PHP and have developed numerous websites in the language.  I also look forward to the great new benefits in Version 6.  When you come down to picking PHP for your choice as a platform tool, just be sure the scope of your project is small to medium sized, speed of development being important, and ongoing support of the project being minimal.  Past that, the coding standards recognized by the PHP community are just too flexible and inconsistent for me to feel comfortable  spending significant time and expense on a bigger PHP site.

Django

“Developed four years ago by a fast-moving online-news operation, Django was designed to handle two challenges: the intensive deadlines of a newsroom and the stringent requirements of the experienced Web developers who wrote it. It lets you build high-performing, elegant Web applications quickly.” – from the creators of the Django Project

Now Django is a cool framework built in the Python language, and perhaps the premier web framework of Python. Unlike PHP, Python is a general utility language. It’s usage can be found in many aspects of computer science from desktop applications, to video games, to web development – and it has been around awhile.

Lets keep in mind the quote above though.  It was developed by-and-for the newsroom.  As such, it caters VERY well to companies that have a similar infrastructure.  While you can develop many applications regardless, that fundamental purpose gives the framework an overall flavor that may not be quite as flexible in every problem domain.

The built in content management system (CMS) feature of Django is really quite a gem.  It’s effective at allowing developers to rapidly generate applications for non-technical people to manage.  Would I use it for a social network?  Probably not as my first pick.  Would I use it for news syndication site?  Hell yes.

Python has been around since the early 90′s and has had sufficient time to incorporate advanced computer science theory and stabilize.   The workforce powering Django applications is also significantly more well-read than the PHP workforce ( I say this loosely, of course ), as the Pythoon workforce has been around longer in general.

Django can sleep safe at night knowing it was built on a stable language that doesn’t anticipate significant change year after year, making it a great platform for websites requiring long term support and development.

Ruby on Rails ( Soon to merge with MERB in Rails 3 )

Talk about some BUZZ!  I’ll admit I did not want to learn Ruby on Rails at first.  I love learning technology, but when Rails was just gaining it’s hype, I was getting deep into PHP and tended to stay in the PHP world.  Mistake at the time, on my part.

Rails identifies itself as a “web framework”.  Unlike Django, Ruby on Rails was developed to tackle many more of the standard problems developers face on a much broader sense of web development.  This by itself should not be translated as “Rails is the creme de la creme” for your web project, but it does make it a strong candidate to initially consider.

When to Consider Rails

  • You have a project with many developers, possibly several contractors that will come and go as needed.
  • You need fast scalability and flexibility due to a multi-faceted problem domain, ie:  niche social networks tend to start simple and then tack on lots of complex features.

Some Pros

In terms of computer science, 9.9999 times out of 10, problems we face in development are problems we’ve answered time and time again, either in theory or practice.  Thankfully, the Rails community innately conforms to the DRY Principle ( don’t-repeat-yourself ).  The community also drastically alleviates extra invention faced by developers, simply by embracing, building upon, and reinforcing community accepted solutions.  The now famous Rails motto:  “Convention over Configuration” sets a tone where the community expects eachother to follow a standard set of approaches versus relying on the individual’s limited resources to reach the same conclusions others have already reached.

Not only is it a motto, it’s an obstacle for “do-it-my-way” programmers, as it’s rather difficult to make a Rails application without doing it the “Rails way” – things will just not go smoothly if you attempt to break standards.  As developers tend to think differently about the same problem domain, Rails lends itself as a great framework to conform the result of their different approaches to the same represented solution.  In identifying conventions and standards, developers of the rails community spend significantly less time “re-inventing the wheel”, and more time knocking out features and drinking beer.

Some Cons

It’s memory intensive/innefficient.  MERB is merging with Rails 3 – which promises to improve performance, though in the meantime, I have several Rails applications running for small sites where I should have deployed PHP, I’m noticing I’m low on memory due to such, which ultimately costs me more money to keep my servers up to par with my Rails demands.

Windows users tend to have a more difficult time with Rails whereas the PHP community has gone through a few more lengths to make development in windows fairly painless.  Rails is significantly is better to develop on unix-based platforms, like Linux and Mac.  Windows users will need to go through extra hoops to keep up with dependencies largely created and maintained by the unix-based users – though, if you’re a serious web programmer using windows as your primary platform, you should consider weening off sooner than later anyways.

Rails isn’t THAT light weight.  It incorporates a lot of functionality and sub framework patterns that you just may never use on some projects.  Again, Rails 3 promises to improve in this area as well.

[Conclusion Pending]

Sprint Rumor LG, Drunkguy.com’s Wedding, and a new job!

May 03
2008

It’s been a hectic few weeks, and I’ve hardly had extra time to keep up with my blog. While I’m supposed to be taking a Saturday away from the computer, I couldn’t help myself this evening.

This afternoon I decided it was time to upgrade my phone. I’ve had the same phone for almost 5 years now. Needless to say, the upgrade was *free* — it would have been completely free, but I tossed in the 2 year warranty, which scored me a nifty belt strap-able case and blue tooth ear piece to boot.

I went with Sprint’s Rumor by LG. I didn’t go all out like you’d expect a technology buff to do, but I’m satisfied with it. It’s a sleek little phone with a 1.3 mega pixel camera/video recorder, a slide out keyboard, a nice interface and some pretty lights.

I also went to Matt O’Donnell’s wedding, which was absolutely beautiful! I picked up my wonderful girlfriend, Amber, in PA, drove god knows how many hours to Virginia Beach, then spent 3 amazing days at a beach house drinking it up with the guests and man/woman of honor. The only downside was the driving… on the way home we got a bit lost in D.C., which was a nightmare to get out of — though we saw an amazing hotel that we’re definitely going to make a trip to sometime.

Final report is I picked up a second part time job. It’s another startup! You know me! I feel they have a GREAT idea and the fact that they have some venture capital to back it really helps. So, now I’m officially a lead architect for 3 web based startups, hence the long delays in between blog posts… What do you think? 6 figure income, 1 year? 2? Wish me luck!

More to come, stay tuned kiddos.

Visit Other Sites!

Find me on other sites...

Archives

All entries, chronologically...

Pages List

General info about this site...