Displaying 1-5 of 30 result(s).
Sort by:

The first six months of 2011 have been thoroughly enjoyable and challenging.

Here are some of the transformative personal software discoveries thus far:

The year is half over, but another half remains. How will you grow in the next six months?

Software develompent is filled with repetition. Some say that repeating old projects is reinventing the wheel. Wheels have been mastered, so making them could be called a waste of time.

Reasoning against developing software to solve problems that have already been solved might include statemens like these:

  • Almost anything that can be done in software has already been attempted.
  • There are very few truly original products.
  • Existing solutions are available for almost every computational need.
  • New code presents many opportunities for inserting errors.

Why, then, should new solutions to common software problems be attempted?

  • New versions of old ideas help to develop personal software development skill.
  • A better understanding of how things work can be developed by building things.
  • Building new implementations of known systems can yield new insights.
  • Skill in building and implementing software should start with known systems.

Reinventing the wheel is useful if it helps you understand how wheels work.

Building simple systems that are well understood provides a solid foundation for future excellence in developing non-trivial software constructions.

Working on custom implementations of these systems can yield tremendous benefits in the development of personal expertise, even if future projects make heavy use of existing software solutions:

  • blog systems
  • shopping carts and online stores
  • general-purpose content management systems
  • contact management applications
  • microblogging platforms
  • and many others

Familiarity with existing code and ability to work with it is very important, but completely neglecting original development and the learning experiences it provides will destroy potential software development expertise.

The general public sometimes confuses computer science with careers that deal with computers (such as information technology), or think that it relates to their own experience of computers, which typically involves activities such as gaming, web-browsing, and word-processing. However, the focus of computer science is more on understanding the properties of the programs used to implement software such as games and web-browsers, and using that understanding to create new programs or improve existing ones.

(From Wikipedia's entry on computer science.)

Should websites use the subdomain www by default or not?

The www was originally used to designate an address on the world wide web, as compared to other types of networks. Now it is understood that addresses are connected to the world wide web, making the www seem redundant.

Some developers avoid using www altogether. At the time of this writing, paulstefanort.com forces a non-www URL.

While I am attracted to minimizing the number of characters required for a URL, I am seriously considering reverting back to a policy of using the www subdomain for websites.

Here are some of the strongest reasons I see for doing this:

  • Other services (including webmail, calendaring, and document sharing) use subdomains.
  • The use of the m subdomain has become a standard practice for providing a mobile web version of a site.
  • Security certificates are generally associated to a particular subdomain, making e-commerce projects easier for www-prefaced URLs.
The following subdomain scheme is highly attractive to me:
  • www.somesite.com — for the standard ("desktop") web interface
  • m.somesite.com — for mobile devices
  • mail.somesite.com — for webmail
  • docs.somesite.com — for documents
  • calendar.somesite.com — for calendaring
  • somesite.com (without domain) — automatically redirecting to www.somesite.com or m.somesite.com, depending on the device in use