Skip to main content

Posts

Showing posts from 2013

Made For Each Other

I've been playing with Node.js and MongoDB and have been having fun.  I can see right away the attraction of this pair (and other related) of technologies.  The low bar of entry, the common JSON thread, the perfect fit for specific types of problems.  Very nice. It's this technology that I'll be using (unless something better comes along) for my son's business site and mobile app (native w/REST services).  The document aspect of much of the data where CRUD transactions are not required, the natural flow of JSON through the stack, just makes this nice. MongoDB is not a solution for all problems, but for my needs it will work very nicely.  Then comes building the REST services for the apps.  Node.js is just the right fit.  An issue that some may have with Node.JS is finding a free or low cost hosting service for it.  Because of the way Node.js binds to the port, it appears virtual servers do not work well with it.  Not an issue if you have your own server, it&#

Abstraction to a Point

Architecting and implementing software is a constant balancing act.  First the design has to work in the end but the underlying implementation can vary greatly, event during development. Re-use existing classes that almost fit, or create a new or derived hierarchy for just what is needed.  Abstract out the needs in base and helper / utility classes, but not too complex to not allow modification for the ever changing requirements.  Is the abstraction clear to others that will be maintaing the code, months or years later?  Should the abstraction only existing for the main feature / operational aspects of the application or should they extend to the smaller aspects of the operations as well. It's a constant battle of decisions during implementation. The abstraction point is not isolated to development as the cost associated with these decisions can increase the code and timeline of the implementation and even place a project at risk. During sprints for adding new features th

Simple Pleasures == Helping == Business Model

OK, I do like simple pleasures in life.  Especially if there is a connection to helping others. There are a number of business models that combine a product that everyone needs with also providing benefit to those that may need it.  Businesses like Tom Shoes , Harry's and Warby Parker have created a business model with a goal of helping others. I had heard about these companies but had not ordered from them till lately.  My first order was with Harry's where I bought a "Truman" version of their razor.  I got it this week and gave it a go.  OMG was it nice (this is where the simple pleasure came in).  After decades of using electric and then cheapo razors, I did not know what a real nice shave was like.  I enjoyed it and I felt good about ordering from the company.  Other companies could learn from how there packaging is done.  Very nice, personal and clear.  A pleasure. Moving on to Warby Parker for new glasses.  It's been a couple of years and it was ti

Side Effects

In a perfect world I could keep track of what my code touches and the effect my decisions have on others, but I can't. Just like playing chess, the human mind can only track so many steps down the different choice paths that at some point you just have choose a path and go and sometime you may never know. Choosing a new tools set for development is not unlike that.  An engineer may make their best guess, the it must be understood that it is just a guess that may be driven by 1) knowledge, 2) desire or 3 ) whatever.  There will always be side effects. A classic case of side effects is (as it turns out) from a chemical engineer from the middle 1900's.  He had the dubious distinction of solving 2 very complex problems that turned out to have extremely serious side effects decades later.   He solved the knocking of gasoline engines by introducing lead into the fuel and also of using freon as a refrigerant.  Great solutions with worse side effects.   Thomas Midgley. Jr. Our

Mono-Culture -vs- Strength

There was the potato famine of Ireland, there was the Wintel consortium.  Both examples of mono-culture where the majority share holder of a segment (food and tech) is owned by a single player.  Sound good, easy to get used to, lots of benefits and, for a while stable.  Also very fragile and prone to sudden collapse. The Irish had it's potato blight.  The Wintel consortium has fought off virus and malware (see a pattern?) to a draw only to be quickly overtaken by a new evolutionary animal (mobile / tablets).  No external asteroid needed, it's just a mono-culture, it's going to happen. You see the same desire in the mobile OS market share today.  Android was all the market share, iOS fans want the market share for them, and Window, well Windows would like to be in the game. But the truth is that the complete market is stronger with a mix of OS's in the market.  Each with their own strength and weakness.  This a plus for everyone.  Each being the favorite in diffe

Stopping to Smell the Flowers

I've been busy doing things for a while.  It can seem that being busy and being productive are the same things.  But my definition of "productive" has changed of late.  Productive in what sense? I fight my mind for which direction I should be going, want to go or am going.  All do not lead to happiness.  As of late, programming / designing as not been my happiness trail.  I'm sure it will be later, but my needs now are on a different path. It being spring may be the motivator for this, but doing little jobs around the house, painting, performing fixes on my neglected car "rattles" and getting the garden ready has brought me pleasant rewards. Sometimes you just need a break from all the media in our lives.  The quick sound bites, images and headlines that never truly satisfy.  In no field is this more true than in the software field.  So much information, ideas and products that are just out of reach, for now.  Time and energy can be filled up with ju

Believing Your Own Hype

Being a software engineer of a certain age, I get to see the same patterns repeat themselves in this field. One of the patterns is companies repeating statements that sound like they are true, want to believe they are true and try to convince others they are true, when they are not. - Visual Basic is object orientated. - Aspect Orientated Programing is the next big thing. - C (or C++) is dead. - Ruby on Rails is the best for web development. - HTML can handle your mobile app needs. Each has it's strength and segment of truth but have reached beyond their domain.  There is a natural desire the share ones enthusiasm with others but this can be taken to extremes where one starts believing in aspects that are not true and believe their own hype. I've been commenting on the Linkedin forums and have found great benefit in helping others and commenting on questions and issues.  It's nice place.  I use Linkedin web site but not their mobile app.  The web site asks about

Spartans & The Perfect Process

I just watched a PBS documentary on the  Spartans.   Interesting at time and always informative.  But it wasn't till right at the end where the narrator Bettany Hughes wrapped up the reason for the downfall of the Spartens.   In a nutshell " The Spartens fatal flaw was that in the pursuit of perfection, they made a enemy of change itself ". What a powerful statement! Looking at current events in the software industry I can see instances of this with the the resent staffing changes at Apple and Microsoft.  High level staff, that was thought to be core to the company, have been let go.  Their dogma that used to be OK for the times, now appears to be so harmful that they needed to go.  Times change, change is powerful can not be denied. This can be seen on the smaller more personal scale in the form of language and process dogma that can be held so tightly.  Statements like "your not doing it right if you are not using X".     You may have se