By Greg Ferrell » August 17, 2010

Last week we released a new design for Solspace. Everything went over pretty well, aside from some small hiccups. Not bad for a new site design launch. I am quite proud that we have a new face as we are very dedicated to our work and our old website just didn’t reflect that. Good change.

Like the blog post about the redesign suggests, it is hard to work on your on self image when you are spending all of your time trying to make sure everything else is taken care of. Customer service, bug fixes, and fresh products are first and foremost, because that’s what’s most useful to customers. However, a good face is very important.

Read Full Article...

By Greg Ferrell » May 15, 2010

So, I finally decided to take the time to update my website to the ExpressionEngine 2.0 Beta.

This means that some of my stuff is going to be broken, but I can live with that. Going to improve how things are done and use better components this way. But the transition had a couple of small hiccups…

Read Full Article...

By Greg Ferrell » September 26, 2009

In many other interpreted programming languages like: Python, PHP, ActionScript 3.0, etc., you can have defaults to arguments that do not get passed to functions. In the three a fore mentioned languages, it's as easy as saying arg = 'default' inline in the function definition. This however is not available in the JavaScript interpreter. (It might be in ECMAScript 5, though.) But that can easily be remedied with a simple helper function.

I have met other programmers that find it ridiculous that you have to create features in JavaScript that are built into other languages. They use that to put down JavaScript and call it a terrible language. However, I think that's part of what makes JavaScript so great. JavaScript, though not as powerful in features as some other languages, offers enough flexibility and expressiveness that you can create what you feel that you are missing. Lets take a look at the problem and see how easy we can remedy it.

Read Full Article...

By Greg Ferrell » September 09, 2009

If you like art at all and you don't already follow Frank Peak on twitter, or visit his website, I would highly recommend it. He periodically has "Almost Daily Drawings" that are his random doodles and concept drawings. His portfolio is also very, VERY good.

Frank is a very skilled illustrator and 3D artist who recently held a contest on Twitter for people who would retweet him. I was one of the fortunate winners of the contest.

Read Full Article...

By Greg Ferrell » April 13, 2009

Many newcomers to web development may not be used to how web implementations of JavaScript execute. Namely, in what order it executes. This can be the source of many errors that are difficult to pinpoint if you aren't experienced with it. I think this also affects people who are very experienced with other programming languages and fosters a lot of undeserved hate towards ActionScript and JavaScript. (It's important to note that not all implementations of JavaScript are the same, and that some may in fact defer from what is said below. This article concerns browser and Flash based ECMAScript.)

The thing to understand about JavaScript is that it isn't compiled for the most part. (This is not exactly true for ActionScript because of the introduction of classes in ActionScript 2.0, however, the runtime script remains the same. You might argue that it compiles into a *.swf file, but in reality, that is the combination of everything that has to do with the Flash file. The ActionScript still remains live.) It's good that it isn't compiled though, because this allows for much more dynamic, expressive coding.

Read Full Article...

By Greg Ferrell » January 10, 2009

In JavaScript the typeof operator reports an array as 'object'. While this is technically correct (an array in JavaScript is really just a specialized object), it's a pain in the neck when you are type checking a variable.

There are a number of ways to identify an array in JavaScript. Checking for properties of an array isn't totally accurate because you can add any named member to an object to imitate an array. Checking for 'instanceof Array' works most of the time but could be tricky in some implementations of JavaScript.

Read Full Article...