How to passively track file downloads

June 29, 2009

Posted by: Tom

Category: Development, How To...

Tags:

How to passively track file downloads

Keeping track of web site visitors is trivially easy especially with services like Google Analytics. I enjoy elaborate graphs, charts, and content drill-down statistics as much as the next person, but such applications can occasionally go beyond the scope of what I need, or don’t provide the type of detail I’m looking for with regard to certain information.

For example, I like to keep track of download trends for certain utilities I’ve made available online. Setting up my own tracking system has made it trivially easy to tailor the data such that I can get a glimpse at reports more relevant to what I want. After all, I define the database so I can tailor the schema against the type of queries I’m going to want to run on it in the future.

In this post, I’ll explain how I setup a simple, passive system for recording file downloads in my own database. The article is based on my own experience and is targeted at Apache, PHP, and MySQL, but the techniques are [or at least should be] platform agnostic.

Benchmarking JavaScript’s for and jQuery’s each()

Considering the last three posts were all about JavaScript, I was planning to move on to something else; however, I came across an interesting article comparing the performance of JavaScript’s standard for loop with jQuery’s each() method. I think that it provides some good quick-reference material, but it got me interested how another variation of the for stacks up against each(). I wrote a small set of tests based on the same setup provided in the article.

Getting Started with JavaScript: Books, Sites, Tools, & Twitterers

June 15, 2009

Posted by: Tom

Category: Development

Tags: , ,

Getting Started with JavaScript: Books, Sites, Tools, & Twitterers

In the last couple of articles, I’ve outlined some resources geared towards learning JavaScript, as well as popular utilities that are beneficial for advanced JavaScript developers. In this final article, you’ll find various books, authors, blogs, and tools that are useful and/or interesting for anyone serious about JavaScript programming.

Getting Started with JavaScript: Developer Resources

Once you’ve got a relatively strong grasp of JavaScript, you quickly discover that diagnosing bugs, writing code that works across the most popular web browsers, and page performance can quickly become issues. Below are some of the more popular tools for managing the typical speedbumps along the way of developing JavaScript applications.

Getting Started with JavaScript: Beginner’s Resources

Over the past few years, JavaScript has become the language of the web. Because of it, web applications have begun to blur the lines between desktop software and web-based software. As such, it is becoming more and more of a requirement for web-based software developers to understand client-side development and the JavaScript language. Of course, JavaScript is not without its pitfalls. Amazing things can be done with the language and modern browsers, but it’s also important to understand some of the problems that arise when developing JavaScript applications.

In the next series of articles, I’m going to be highlighting various resources to help you get started learning JavaScript, its relationship to the document object model, and various websites, tools, and books available to help get you up to speed on the language and technologies surrounding it.

Navigation & Searching (Chrome got it right)

May 11, 2009

Posted by: Tom

Category: Personal Opinion

Tags: , , ,

Navigation & Searching (Chrome got it right)

When it comes to web browsers, it seems as if there is one thing that is consistently inconsistent: the address bar. Each browser has its own philosophy on how powerful that single text box should be. For example, Internet Explorer views it as nothing more than a place for a URL. If it fails to find the site, it funnels it through Live Search. Similarly, if Opera fails to find the requested, it attempts to guess the correct address.

Out of all the browsers, my favorite utilization of the address bar is Google Chrome’s omni bar.

Instant Code Reviews via Instant Message

With the exception of sites such as Refactor My Code, it’s difficult to actually review the code that goes into your personal projects. As you develop your projects, you begin to adopt your own set of conventions, styles, and other little idiosynchrasies that ultimately become your own personal standards.

On the other hand, in a team-oriented environment, each person will bring their own set of standards to the table. Permitting that the developers actually care about good software engineering, coding standards will begin to emerge. Conventions for organizing the code, defining classes, naming methods and variables, and other best practices begin to form. At that point, it’s not unusual for some type of review process to arise to help enforce the standards.

When it comes to development, code reviews are useful for a number of reasons. Getting more than one pair of eyes on the code is beneficial in that potential problems can be exposed, opportunities for improvement may be found, architecture improvements (such as design patterns) may be discovered, and so on.  Aside from all of this, code reviews can also be useful in helping to enforce conventions.

My Thoughts on 960gs

Over the past few years, grid-based layouts have become increasingly popular in web design. The trend has grown with good reason – grids support organized relationships among page elements, help leverage whitespace to an advantage, and contribute to creating a consistent look and feel across the pages that compose a site or application.

Though there are numerous frameworks and tools available to help with prototyping grid-based layouts, the 960 Grid System, or 960gs, is my preferred framework. Through the use of a set of predefined styles as well as a set of optional stylesheets and tools, 960gs seeks simplify the web development process by making it exceptionally easy to put together a grid-based design.

My Daily Grind: Desktop Enhancements

April 20, 2009

Posted by: Tom

Category: Development

Tags:

My Daily Grind: Desktop Enhancements

Over the past three weeks, I’ve discussed several of my favorite applications for getting stuff done on the job. In this final post, I’ll be talking about a couple of things that don’t directly relate to productivity, but still make the desktop a little more enjoyable to use for eight-or-so hours at a time.

My Daily Grind: Utility & Maintenance Applications

For the past couple of weeks, I’ve been talking about some of the various tools and applications that I use at my 9-to-5 to help me get stuff done. Aside from tools that help facilitate actual work, there are also a couple of utilities that I use that help streamline my work flow and that help keep my system as clean as any Windows-based system can be.

« Older Entries