Category Archives: Theory

2011: Year in Review

The New Year has arrived, I wasn’t quite prepared to sum up my year on December 31st because I was busy spending time with the kids during my, well deserved, one week off for the holidays.  This last year was probably the hardest year of my life.  At my current job, I stepped up and took on a big management role while being lead developer on multiple projects – for some reason I made this mistake again…

Even though this was a hard year, there certainly were big rewards.  I dove into some new technology with the Photon Socket Server from Exitgames; got back into C# and .NET; released two books and currently editing my third; watched my kids walk for the first time; visited Seattle twice and met one of the now former lead developers of MVC .NET; launched a new website (Webistrate – Draw your own conclusions) – very happy with the creative name on this one!; and many, many more things.

What did I learn this year?  Don’t bite more than you can chew!  Don’t make a major platform change during an extremely tight deadline!  Don’t carry your anger with you everywhere – the world truly isn’t out to get you, well maybe sometimes it is!  Interviewing people is not an overly enjoyable process, mostly because it takes 3 bad interviews for even 1 mediocre one.  However, the one that’s really good is always easy to pick from the bunch.  A few late hires were made at the end of the year that will be starting soon, hopefully all the hard interviewing will truly pay off and more fantastic people will join the team we are building.

That’s quite a bunch of negatives up there, but we do typically learn from our mistakes, so what about some positives?  Writing books are hard work; but a lot more fun than doing day-to-day development work.  When I write books, I find that I really take my time and think more about how I want to accomplish something because my solution will be used by many people in many different scenarios.  Blogging is also a lot of fun, but is probably more time consuming than book writing, blogs are typically successful because of repeat, good, quality content – hence why this blog is not allowing me to stay home every day and write (not that it’s not good quality of course :p that I unfortunately do not blog as much as I would like too!).

So what can we look forward to in 2012?  Well another book from me, this time on PhoneGap.  Mobile development and more specifically the adoption of HTML5 in the main stream (Microsoft, Adobe, etc…) will make it extremely important for us developers to focus more on attempting to build one codebase for many different platforms, not just the web anymore.  Instead we will need to develop for mobile devices (the one million and one different kinds of course), pad devices, even Windows 8 devices!

Hopefully from all of the lessons learned in 2011, this New Year will be a lot less stress free!

 

Share

Webistrate.com – Draw Your Own Conclusions

I’ve been working on a new web site recently.  I’ve enjoyed doing my blog; however, I find that blogging is different from what I want this new web site to be.  The goal of Webistrate is to provide full code solutions oppose to what I often times do with my blog.  My blog has always contained a lot of personal opinions or short little tidbits that I learned.  With Webistrate, I’m beginning by working with some of my existing articles and converting them to this new style.  A problem and a solution.

You can see this now with a new approach to an existing post I have on my blog: CakePHP: Login System using the Authentication Component.  This post goes from using partial code blocks, building up the solution, to presenting a full solution and complete description.

The site is still pretty new right now, so there are only a few posts, but more on the way!

Share

Creating AJAX Pagination WITHOUT The Pages

You may have noticed some changes in the way a few websites work.  For example, if you go to Google Images and do a search, there is no pagination (1, 2, 3, Next, Previous) anymore.  Instead Google loads the images as you need them, e.g. when you scroll down.

Another example is Facebook’s newsfeed.  I read an excellent article a few months back on their developer blog about this design decision.  By default, Facebook will only load a “full screen” of information with minimal scrolling.  However, as soon as you start scrolling they begin to fetch and display more content.  In the article, Facebook described this decision as a bandwidth saver.  They found that a lot of people would navigate away from the newsfeed before ever scrolling down or only looking at the top content.  By only showing 10-15 posts, they can keep the size of their newsfeed down oppose to loading 30+ posts that are never going to be read!  File size can easily go down 100s of KBs per page view and when you’re talking about millions of page views per second, that’s a significant number. Read more »

Share

IBM’s Watson on Jeopardy, The Final Saga

In yesterday’s article I focused mainly on Watson.  So, in case you missed the episode last night, BIG SPOILER ALERT, Watson won.  Ken was actually pretty close after Double Jeopardy; in fact he was leading after the Jeopardy round.  If Ken would have bet bigger in Final Jeopardy it wouldn’t have been a gigantic blow out…

Now, in today’s article I wanted to focus specifically on how incredible Google’s search technology is.  Below are the 5 categories from the Jeopardy round and a sample of questions from each category.  Beneath the question is the answer and whether Watson was wrong.  Beneath the answer is the result of a Google search and how easily and where the answer could be found. Read more »

Share

IBM’s Watson On Jeopardy!

I’ve been a fan of Jeopardy! for quite some time now.  Even more so over the past year.  Now that I am the Father of twins, going out at night just isn’t as easy as it was!  When I first heard about Watson being on Jeopardy, probably about 3 or 4 months ago, I was extremely excited.  Actually watching it over the past two nights has been just as thrilling.

Learning about the technology behind it, being a geek and trying to think and understand some of the algorithms used, watching it think and tell you it’s best guess and a little bit about the process to find it has been nothing but entertaining. Read more »

Share

Building A Scalable Queueing System With PHP

In today’s article we are going to cover building a queueing system with PHP.  Before we begin, let’s define what a queueing system is.  The best place to start is the dictionary:

“to line up or wait in a queue”

Now that we have our definition, let’s define why we would want to build a queueing system.  A queueing system is an excellent tool that will allow us to take a specific process and perform the functionality “offline”, e.g. the process will line up and we will process them one at a time at a later date.  This will probably be easier to explain with an example.

Imagine an admin area of a website that allows the administrator to send out a mass email to all of their users.  The simple process to building this functionality would be as follows:

1. Build a form that accepts a subject and a body for the email.
2. Retrieve the list of users from your database.
3. Loop through the users and send each person an individual email.

The above example works nice and fast when there are only a few hundred users.  However, imagine trying to send this email to 10,000 users.  The administrator would be waiting a long time for this process to finish.  Not only that, if they closed the browser, it probably would not finish properly.

So, the goal of our queueing system is to remove a specific process from running “online” (in a web browser) and running it “offline” with a scheduled task. Read more »

Share

Maintaining a session in a session-less environment

Confused?  I know I was at first, but let me explain.  First, why would there be a session-less environment?  I thought this was a HUGE plus to server-side development languages over basic HTML that is session-less?  Well, you would be right in that sense; however, as I mentioned in a recent blog that I’ve switched careers and I am currently doing server-side game development for large Facebook Virtual Worlds.  The client/server relationship in these games are completely session-less.  Each time the client performs an action, the server doesn’t “know” who they are because it’s not a consistent relationship like a browser and a web server.

Don’t worry, there is a simple solution to this problem, let’s explore it now. Read more »

Share

AJAX, can there be too much?

Like any problem, there is no one right solution.  There are always many different solutions that work for different reasons.  Some solutions require the best solution; some solutions require the more optimized solution; other solutions just need to “get done”.

As a developer, I like AJAX.  It’s easy to develop and it makes for a really good user flow.  No more loading new pages to add comments or view the description of a product.  It can all be done with a smooth interface and less waiting.

But, can you have too much AJAX?

Read more »

Share

Developer High Fives (in honor of Barney Stinson)

Last night was the premiere of my current favorite TV show “How I Met Your Mother”.  If you are not familiar with the show, former childhood star Neil Patrick Harris (Doogie Howser), plays a character named Barney Stinson.  Barney is known for several catch-phrases as well as special high fives.

Borrowing some of the more popular high fives, I have created a top five high fives for developers.

Without further adieu, let’s begin the countdown. Read more »

Share

Fastest Top Five FREE Ways to Gain New Traffic

Today’s article is going to discuss my top 5 ways to gain new traffic, did I mention that they are all FREE! Because each are free, they all take a few minutes of work on a regular basis. After a short while, you should hopefully gain a following and not require doing them anymore.

The top 5 reasons are:

  1. Submit your content to social network sites
  2. Share your content with article directories
  3. Create a Twitter following
  4. Submit to Blog Carnivals
  5. Comment on other relevant blogs or forums

Read more »

Share

Buy one of my books