Introducing: Treb – A simple framework for PHP

August 31, 2012

I announced this on twitter yesterday, but figured I should blog about it a bit more today.

As of yesterday, I published a new PHP Framework on github: Treb

Yeah, I know, the world really doesn’t need another PHP Framework, there are tons of them out there.  So why did I create this new one?   Well honestly, I didn’t set out to do so.   You see at numerous previous jobs: Digg, TripAdvisor, HiiDef, mojoLive — I’d ended up building or extending custom frameworks for those specific applications.

In all of those cases, a ‘stock’ framework just didn’t end up making sense.  They locked you into specific ways of doing things, which may not have been what you needed to do in order to scale.  While at the same time, while they provided a lot of structure, they didn’t provide certain features that I felt were necessary (such as built-in write through data caching).
So in each case, something custom got built from scratch (or something existing got customized).   After doing this essentially 4 times.  I was tired 🙂   With mojoLive I got the ability to take the framework that I’d written for mojoLive, to scrub it of anything specific to mojoLive, and open source it.  So I did.

The moral of the story?  It’s just that in the future now, when I need to start a new custom framework for another site, I don’t have to start from scratch again.  I can start from Treb now that it’s open sourced.   Granted right now it’s very rough as it was part of a bigger system and was just ripped out.  But it’s a good starting point.

Will anyone else end up using it?  I dunno, and that wasn’t the goal of releasing it.  I will say that of others that have used this, they enjoyed it, in it’s simplicity.  And new coders to mojoLive were committing code against it on the first day.  So that’s gotta say something.
If you’d like to know more, you can read up about it on Treb’s home, and start reading it’s documentation as well.

NOTE: I’ve already been called out for Treb not having tests.  No, it doesn’t, I wouldn’t argue if it began acquiring them, but it doesn’t have tests written for it because it’s a child of a rapid-startup-culture web application.  I plan on writing up another blog post about that soon.

No longer fun-employed: MojoLive

June 10, 2011

So it appears that the ‘cat is out of the bag’ so to speak, as one of my future coworkers, Sandy Smith, has already blogged about it.

But Sandy, myself and a few others (Who I won’t name yet) … are getting together to start up a new company called MojoLive.  As Sandy mentioned in his post, he is the CPO (Chief Product Officer) and I’m coming onboard as the CTO.

I’ve been working on seeing this happen for a while now and I’m really exited that it’s finally happening.

I’ll share more details as I can, but things are in early spinup mode right now and there isn’t much to say.   What I can share, is that we are going to be working on create a revolutionary new career management platform on the web.

Stay tuned here for more future updates!


Baby Boomers & Millennials – What about Gen X?

March 24, 2011

Perhaps this revelation that I came to, everyone else realized a long time ago.  But while recently attending SXSW I was in the closing keynote, where the speaker was talking about the future.  Specifically about how the future was in the hand of the Millennial generation (roughly, those born 1982 or later), who are taking up the charge, “owning” Web 2.0, starting all sorts of new companies and overall driving society forward right now (at least technologically, according to this speaker).  He specifically said for the Baby Boomers to step aside, and to follow the lead of the Millennials.

Interestingly enough, I had just seen the documentary “Something Ventured”, talking about the ‘old way’ of doing business, and the first venture capitalists that started changing the rules of the game.

Oh, plus I’d attended some talks throughout the week that constantly spoke, of course being SXSW, of people founding companies, getting out there, taking risks, etc.

The thing that clicked to me, when in the closing keynote, was that at least from my own point-of-view, Generation X (that’s me) has been put in a slightly odd place.  At least in the industry that I’ve become connected with, that of ‘The Web’.

The Baby Boomer (and earlier) generations, were brought up with the mindset of finding a good company to work for, working long, moving slowly up the corporate ladder and eventually retiring.  I know that’s what my parents did, as did everyone else around me during that time.  In the documentary, there was this clear understanding (until it began to change, with the likes of Apple Computing), that people didn’t just go and found companies.  Or at least if they did, they were already well established in their field before they considered doing so.  Most of the people in that film that founded companies, had a lot of experience first, were older therefore and then went off to found a company as the next step for them.

Now, I think it’s safe to say, that almost every kid in college in a technical field (if not in high school), is firmly considering the idea of starting their own company with their friends as soon as they graduate.  It’s the ‘new way’ of doing business.

Which is where Gen X got left in an awkward state.  We had the rug pulled out from under us.  We were brought up with the world preparing us for ‘find a job, work your way up the ladder’.  Now suddenly the tables have turned, and we’ve spent so many years of our life doing that, trying to work our way up.  To realize that all the Millennials are just going out and starting their own companies, short-circuiting the process.

Basically we were born too late, to have lived in the world of ‘stability’.  We were born too early, to have been indoctrinated into a world encouraging risk early in your life/career.  Now we are all middle aged, with kids, families, commitments.  While millennials do exciting things that we wish we’d have had the ability to do when we were that age.  But noone was.

PS.  I wish the Millennials well, Please go out there and make amazing things!  I realize that this post may have sounded like a rant, or jealousy.  It wasn’t meant to be.  It was sadness inspired, I guess, at looking back and realizing at how the timing of life causes interesting side effects on it.

My take on the Mac App Store

January 9, 2011

There’s been a lot of discussion lately about the newly released Apple Mac App Store. (Especially with the recent blow up about how GPL licensed apps conflict with the App Store restrictions, and therefore can’t live on the App Store). But that’s another story.

I wanted to give my own thoughts at the moment. Personally, as I started browsing through the store, I realized, that I really loved the idea of this. Primarily for two reasons:

  1. I’ve lost licenses in my day, and hate trying to keep the copies of software I own, in the versions I own, with the licenses I own, all organized, and then upon every new machine install, it’s a painful cycle of physical media swapping, installing, and digging for downloaded software through folders of junk.   The idea of a single place where all my updates are handled, my licenses are always carried/remembered, is a dream come true there.  (See caveats later)  Plus all of my dread of getting a new computer, or doing a fresh wipe/install would disappear.  As it would be a breeze to install a new computer, then go into the App Store and install everything.
  2. Looking in the store, you see tons of Apps that probably wouldn’t have ever existed before.  Having an easy path to create $1 to $5 small apps and games and directly sell them, is going to inspire creativity, just like it did on the iPhone.  For example you couldn’t find $5 games for the Mac in the past, and if you did, it was a painful process buying/installing them, and you always questioned their value anyway.

Now, as I say that, and bask in the glow … I think that the App store has a serious chance of completely flopping.  What?  Yeah, I do.  And it’s a case of the devil being in the details.

As it stands, there are a number of problems with the current setup, that actually could be painful enough to kill it, if Apple doesn’t move fast enough to ‘fix’ these.  And honestly, Apple isn’t known for moving fast in response to feedback.

So what are the biggest issues?  From what I can see, they are:

  1. For my utopia mentioned above to come true, everyone must be in the App Store.  As long as Apple has licensing restrictions that keeps some people out (GPL), then that can never be realized, and it can be a worse situation where some software you’ve downloaded/installed otherwise, and some via the App Store.
  2. There is a pain right now, because software you currently own, can’t be marked as owned in the App Store, and in turn follow it’s free updates path.  Worse, it’s broken, as in many cases it sees that you have the software installed, and it marks it as owned.  But it’s my understanding that updates won’t work, since it wasn’t installed by the App Store.  They need a way to clean this up.  Not only because of the current situation (as that will solve itself over time, as you keep buying newer versions in the App Store).  But also because of future situations.  What if someone gave you software (on a disc) as a present?  If everything you owned was via the App Store, and you couldn’t ‘sync’ that disc to the App Store, that would be a painful situation for you.
  3. Lack of ‘upgrade’ discounts.  In the current model of desktop software, people always go and create new versions of the software, and then offer a discount for people upgrading, versus new purchases, to keep their customer base loyal.   There is no way to do this in the App Store.   So if you have a new Major release, you only have 2 options.  Release it for free as an update, or submit it as a new app in the store (MyWidget v3), and charge a single set price.   There isn’t a mechanism to provide a discount if someone already owned v2.   This breaks the model that’s been used for over a decade in the software industry, and therefore is a major pain point I’ve seen discussed by software developers.   Apple really needs a mechanism to provide these verified discounts.

I’m sure there are more issues, but those are the big ones that I see holding adoption back at the moment.  We’ll see what the future holds, I’m optimistic, but Apple’s got some changes to be a-making.

    West Virginia is ‘Off the Grid’

    November 28, 2010

    I recently spent a week in West Virginia, my birthplace, for Thanksgiving. It’s actually the longest time I’ve spend in a ‘chunk’ like that in a while. At least, when there wasn’t other reasons for being in (IE, a relative in the hospital) that was vying for my time.

    Since I was just there for ‘vacationing’, and since I’m currently on the job hunt with people trying to get ahold of me … Just how deeply WV is ‘Off the Grid’ was driven home. I mean, I know that Internet & Cell access is going to be highly restricted when I go in. In fact I have troubles often explaining it to people, especially those that live in Cities and just can’t fathom the idea of not having signal 🙂

    But I ran into some bigger issues this time. Primarily based around the fact that the ‘world’ at large now, assumes that everyone has a high speed internet connection. So, at my mother’s house, she has dialup only (All that she can get, while she could have satellite internet, she can’t find anyone willing to drive out to her place to install it).

    Her dialup only connects at 26400 (Yes, 26kbps), because that’s all the phone lines there can handle. I’ve often went and browsed from there, and well knew the twiddle-my-thumbs version of browsing.

    But this time, it was worse. Far worse. Because every website in existence has gotten HUGE. I remember back in the days where modems were king, working at Hubble Space Telescope, where we made sure that every webpage we created, in total was under 35k. That included all HTML, Images, CSS, etc.

    Nowadays, well, the homepage of weighs in at 525k when I just checked. is 456k. And loading a gmail screen to check your email came in at 325k. Suddenly any browsing is extremely painful, sometimes downright impossible to do.

    This is made worse by the fact that since so much software assumes you have an internet connection, that it is wasteful with the bandwidth. I found that Firefox, Windows Update, and Java, were all trying to concurrently download updates to my mother’s computer in the background, while I was trying to just hit a few webpages to research something for her.

    It doesn’t help, that this is just the tip of the iceberg. There is no cell phone service at either my father-in-law’s house, nor my mother’s house. In fact, while as you travel to local towns/cities, you start to get cell phone service, and can at least make phone calls. Internet over cell is still lacking. Only in the biggest of cities, there does 3G exist. In even medium sized areas you’ll only have an EVDO connection. And I found the EVDO to be extremely spotty. The phone would often claim to have an EVDO connection. But quite often you’d never get a connection to anything.

    Overall, what’s my point? Not sure I really have one. It’s just that this trip specifically really brought home the point to me, of just how ‘off the grid’ WV has become. It’s so much more painful now, as the world becomes more and more connected, that the ‘gap’ in technology is becoming severe. 10 years ago WV was on ‘equal footing’ with the world when it came to the internet, since everyone was using a modem in the first place. But now with the world assuming high speed …

    WV is getting left behind, and disconnected.

    Switched from Gowalla to Foursquare

    July 21, 2010

    So for a long time, I’ve been a Gowalla fan for all my ‘location tagging’ social needs. In fact, some might have called me a fan of it. You see, ‘many years ago’ when I worked at, Foursquare came out. It seemed like a neat service and concept and tons of my fellow Digg employees loved it.

    Thing is, they lived in San Francisco. Foursquare only worked if you where in one of a certain set of big metropolitan areas. I live in the boonies comparatively and so it was completely useless to me. I shrugged and went back to a ‘location tagging-less’ world.

    Now, Foursquare wasn’t the first service out there either, Dodgeball and Brightkite both come to mind as services that ‘tried’ before. But Foursquare was starting to get traction.

    Fast forward a year, and Gowalla comes out. It has a really nice clean interface, works well (more on that later), adds in the ‘game’ aspect of collecting/dropping items, but most importantly, it allows any user (me) to create any spot.

    This is amazing and I become a fan. Suddenly I can start creating spots all around me, I go back to their website, I curate them, tweak their position, adjust their radius, and have a grand time of it. During this time, Foursquare gets bigger, more marketshare, and they quickly ‘catch up’. By the time I realize tons of my friends are on Foursquare and I try it again, they’ve got the whole ‘points system’ game going, Mayorships are ‘the thing’ and even special deals are being offered by companies to their Mayor. But most of all, they fix the problem of ‘boonies’. It works near me. In fact, they ‘one-upped’ Gowalla, and appear to have auto-inserted every business name that you could possibly google for.

    Now, I didn’t bother considering switching, who cared, I used Gowalla and I liked it.

    Until recently. What happened? Simply put, Gowalla stopped working for me. I constantly started running into the fact that I couldn’t check in at the location I was physically at. I’d be sitting in a restaurant, half-way through my meal, and go “Oh yeah, I should check in”. I’d pull up Gowalla, but since it couldn’t get a GPS lock indoors, it would do cell tower triangulation. Now Gowalla thought I was 0.5 miles farther away than I really was. This is a problem since Gowalla requires you to be on top of the location to check in. The only way I could check in, would be to walk outside, check in, then go back into the building.

    That’s crazy.

    Not to mention that it had a similar issue if there were lots of locations near you. It would only let you scroll 2 pages or so of locations, so go to an airport where there is a location for every store, every gate, every everything. And you’d gamble as to whether the place you wanted to check into actually came up.

    Simply put. They broke the ONE thing that you are supposed to do with the service. Check in at the location you are at.

    I got so frustrated at one point, and some friends of mine at HiiDef were talking about Foursquare again, so I tried it out, and fell in love. I can always check in at whatever location I’m at. It presents a nice simple list, and I can even search for it by name. I’ve never had an issue checking in. And that’s the ONE thing you want to work.

    So if you recently got a friend invite from me for Foursquare, now you know why. I bought in hook/line/sinker, and removed Gowalla from my phone.

    Why I want an iPad

    February 24, 2010

    There has been much talk in the tech-sphere lately about the iPad.  Primarily from people honestly putting it down and ragging upon it.  Saying how it doesn’t have <insert feature they wanted>.  Or saying how it’s a toy because you can’t hack it, put your own unapproved software on it, hook up a USB keyboard, etc.

    I don’t disagree with those statements actually.  There are some features that I wished it would have had, I might have been excited to have seen it run OS/X instead of the iPhone operating system, so that I could have used it more like a real computer.

    But in the end, I think that starts to miss the point.  It’s not a ‘real computer’, it *is* something new, and the more I think about it.  The more I end up wanting one.  Perhaps I’m an edge case, I can accept that.  But ever since the announcement, I keep thinking to myself: “I’d love an iPad right now”.

    So why do I want one?  What are the situations where I find myself wanting one?  Typically they are situations where I’m wanting to stay ‘connected’, do some computing and/or online things.  But I’m not wanting to be tied to a laptop.  Afterall, a laptop is actually an intrusive thing.   Try sitting at the breakfast table with one.  It’s there.  Projecting itself into the space.  Acting as a wall between you and anyone else at the table.  However, sit down with a magazine, or a newspaper, or even a cell phone / iPhone, and it’s not in the way, it’s laying flat, you are picking it up to view things, you can easily lay it back down.  You are using technology but staying more connected to the people around you.

    Plus there are just places where a laptop is awkward to use.  For example, in your lap strangely enough.  At a doctor’s office, on the airplane, etc.  It’s all these times, when I sit back and start thinking: “You know if I had an iPad right now”.  So many of these situations come up, such as:

    • The aforementioned breakfast table, checking the morning news/twitter/email.  (Heck, just doing email in general with something less intrusive than a laptop, but better built for it than an iPhone)
    • Sitting on the couch with family watching TV while also checking things online.
    • While playing video games and needing to look up some information online.
    • While at a non-profit meeting, wanting to look something up.
    • When spending a ‘short time’ at a coffee shop, relaxing while wanting to stay on top of things.

    In general, I think that an iPad is going to be superior in use to a large laptop, because of it’s form factor, as well as to a netbook, because honestly I agree with Steve Jobs about netbooks.  I have one, I rarely use it, and when I do I wonder why I didn’t just grab a real computer instead.  Tiny screen, bad interface, etc.

    Plus the iPad is going to add functionality that I can only imagine how I may want to use it:

    • As a book reader (I’d been debating about getting a Kindle, now, to me, this is a no-brainer that I’d rather have an iPad)
    • As a video playing device (just the right size to hold in lap)
    • As a new way to share photos with family.

    In the end, I kinda don’t want to be excited about the iPad, since I have many of those geek tendencies to dislike it solely because it didn’t have X/Y/Z.  But in the end, I keep finding myself back at that “If I only had an iPad right now” stage.  I see myself using it.   Interestingly enough, 90% of the time I see that use being Wifi only based.  So dropping the extra $130 plus $30 a month for a separate data connection, I don’t see.

    Which does bring me to my one complaint though, and the one reason I don’t want an iPad:

    • Price

    Really that’s it.  I know, I realize, that $499 is an amazing price for a product with a 10″ touchscreen, massive battery life, etc.  But in the end, it’s still more than I want to pay for this device, given how I know I’m going to use it.  That is, as a device to use when my iPhone is ‘too small’ for the job and when pulling out the laptop is overkill.

    To that end, I wish it was more like $199

    That being said, I still want one, and I’m going to have a mention struggle between now and release date as to whether I can justify buying one.  The one biggest thing (other than price) that is holding me back at this moment, is that I’m unsure how easy it’s going to be to use the ‘bigger onscreen keyboard’.  Because honestly much of the use I expect out of the iPad, is going to involve typing, which is slow on the iPhone.  I expect the iPad to be ‘slower’ than a real keyboard.  But I’d hope that I could put it in my lap, and semi-touch-type on it.  If I can’t really do that.  If typing is going to be at ‘cell phone thumb speed’.  Then that’s a problem for me.  That may become the killer.  Because if I can’t type easily-enough on it.  I’m going to get frustrated.

    In summation?  I dunno, I’m still torn.  I want an iPad, but I have a couple concerns.  Let’s see if I can resist when the day comes.

    DVD versus Download – Movie Rentals

    January 27, 2009

    Ok, someone needs to explain this to me. It makes no sense how expensive digital movie rentals are. It truly boggles my mind. I have a number of ways to rent them, and they are all expensive, a quick sampling of ‘recent releases’ gives:

    iTunes: $2.99 – $3.99
    Xbox Live: $4.00 – $5.00
    Comcast onDemand: $4.99 – $5.99

    Given that on all those you are just downloading and/or streaming it, there is no physical medium, etc. Why is it so expensive?

    Especially when I can go to a Redbox machine at any number of stores near me locally, and pay $1 to get a physical DVD rental.

    That’s right, all these other companies are charging $3 to $6 to rent a movie electronically, but Redbox someone manages to do it for $1, while handling physical disks, having to replace them as they wear out, sending people out to restock with new movies, pay for and maintain a rather complicated machine, and give kickbacks to the store they sit in.

    Something is very wrong with this picture. By comparison alone, electronic rentals should be at MOST $0.99, and possibly a fair bit less.  Is there some part of the big picture I’m missing here?  I’d love to know.

    PHPAdvent entry: Commenting on Commenting

    December 8, 2008

    Today’s blog post brought to you by PHPAdvent 🙂   I was asked to contribute, and so did, polishing off a post I had planned for my own blog and submitting it to PHPAdvent instead.

    It’s all about commenting & documenting your code, and you should go read it at the PHPAdvent website.

    Interviewing Programmers

    December 4, 2008

    As anyone who reads this blog knows, a few months ago I went through the process of finding a new job.  That of course included a number of interviews.  Which got ‘interviewing’ on my mind and encouraged me to write this article.  Now, months later, I finally got around to it.

    I’ve interviewed my fair share of programmers over the years, and I find personally that how you interview a ‘junior’ versus ‘intermediate’ versus a ‘senior’ programmer needs to change.  Specifically in regards to one topic.

    What’s that topic?   It’s giving a coding test (as well as just whether you ask coding questions in the interview)

    I personally find that asking a coding test of junior programmers is a GREAT tool for helping to evaluate them.  Typically just a very simple test, a basic CRUD application.   Looking at what they create not only gives you insight into how they think and code (did they do MVC?  a simple single .php file?  handle web security? etc).  It also gives you a great starting point to begin discussions with them in person, asking them about why they did (or didn’t) do certain things.

    It’s also worthwhile to go into great depth with junior folks just to make sure that they understand some basics of programming.  Recursion?  Object Oriented? etc.

    That starts changing somewhat when you start interviewing folks who are more at an intermediate level.  At the that level, asking for the coding test is fine, but I like to offer for them to instead just provide some code they’ve written before if they wish.  From looking at their code, you may come up with a few directions that you want to guide the discussion with them in an interview to understand certain parts of their knowledge.

    This completely switches over in my mind when it comes to interviewing a senior person.  Someone who is ‘senior enough’ (use your own definition) should have their experience speak for them enough that there is no reason to ask for a code sample, let alone giving them a coding test.  Typically looking at their experience and asking them a number of probing questions about their experience should rapidly inform you if they know what they are talking about.

    Now that’s not to say, that if after doing an initial interview, if something seems fishy, or if you are concerned about their experience, then go ahead and ask for a sample/test after the fact to dig deeper.

    But my point is this, when interviewing for senior candidates, you should be spending time researching their experience, their history, what they’ve publicly done, presentations/articles/etc they’ve done and more.   You should take the effort to learn enough about the candidate that it should make most questions about their ‘coding skills’ a moot point, and leave you instead asking more about bigger picture questions, and to see how well they fit within your team.

    Also I highly suggest that any coding test you give be a ‘take home’ test.   Let them take their time to do the problem in their own environment.   Asking someone to do a live coding test in front of you is asking for failure.  Are you going to be standing over them watching their every keystroke when they are working for you?  no?  Then why would you test them in that environment?  It doesn’t give a good indication at all as to how well they code (and the style in which they code) when given the freedom to do so.