With NodeJS and server-side Javascript becoming a very prominent technology in web applications today, I figured Id give an introduction to NodeJS to get everyone up and running. "But how can Javascript run in a server environment, I thought it required a browser and was only used to make my website interactive". NodeJS allows you to build applications written in Javascript with the help of Google's V8 Javascript rendering engine that is at the heart of the Googl...
Recently while I was working on a site that Im creating, I needed a way to easily send email out to users. Like a lot of people that have domain names and dont want to run their own mail server, I have decided to let Google Apps handle all of my email and app related needs. Now way you dont have a mail server and dont want to maintain one. Maybe you dont know how or just dont want to deal with maintaining such a service. Well as it turns out, you can use Google ...
Recently I finally decided to take some time to learn Python. So I figured the best way to learn something new is to dive right in and write an application. This application happened to be a new server for Computer Science House's networking vending machine(s) 'Drink'. The general idea behind Drink is that it's a 'communal refrigerator' for CSH that the members 'donate' money to in order to stock it with delicious drinks (such as Coke products since RIT is exclusively a Pepsi campus). Being the ...
Every time I make a new website with a user registration, I usually end up using a reCaptcha somewhere in the process. A while ago, I discovered a reCaptcha library on the Codeigniter forums. And since then, Ive modified it a little bit to work with Codeigniter 2.0 and have placed it on Github where everyone can access it....
So after putting a few months of work into it, I have finally launched ClientMeetFreelancer.com. In short, Client Meet Freelancer is a site dedicated to bringing freelancers and potential clients together without the fees and hassles of other freelancer job boards. I decided to take an Agile/Lean approach to it and have launched it with the minimum features I thought were necessary for the site to get off the ground and still be very useful. Other fe...
When it comes to web application performance, often times your database will be the largest bottleneck and can really slow you down. So how can you speed up performance when you have a site or application that is constantly hitting your database to either write new data or to fetch stored data? One of the easiest ways is to cache the data that is accessed the most. Today, I cam going to show you a brief example of how to do this with Memcached using PHP and th...
When it comes to scaling a web application, one of the easiest ways to boost performance is with an asynchronous queue. Since web apps have started to become as complex as native desktop applications, users are expecting them to perform like such. This is where using asynchronous queues comes in to play. Typically with high traffic sites like Facebook, digg, twitter, et al, not everything needs to happen instantaneously, it just needs to look like it. For example, when you choose to send a mess...
Search Engine Optimization is an interesting topic since it seems that everyone and their brother
has a different idea on how it actually works. Today I hope to demystify some of the ideas around
SEO and show you some ideas that have worked for me in the past and even some other techniques
that are rather effective.
One of the first things that people immediately want with a website is having it on the front page
of Google. I mean, who wouldnt want that? With Google dominating the sea...

Barcamp Rochester 5 is fast approaching, scheduled for April 3rd, 2010. This year is gonna be just as awesome if not more awesome than last year. We are currently in the planning process and are making great progress to bring you an event that you will never forget that will make you come back for more next year.
I recently had the pleasure to redesign the the Barcamp website, bringing us away from the...
All this time, Ive been creating libraries for Codeigniter and talking about its features and whats so awesome about it, but Ive never actually explained what Codeigniter is. So some of you might be looking at the GCal Library I wrote and be like "what the hell is this guy talking about??". So Ive decided that I should probably do a mini series of blog posts, introducing the Codeigniter Framework and even do a couple of tutorials on how to start developing with it.
First of, what is Cod...
Back a few years ago I decided that I wanted to set up my very own web server so that I could do your typical web stuff. Granted this was before the days of twitter, Facebook, and before everyone started releasing API's for their applications, so the web was a simpler place. Well back then I knew nothing of Linux let alone how to use a terminal to get anything done, and there was no definitive guide for installing a web server on a dedicated machine. So that's what I hope to solve. So today we w...
When it comes to application development, Apple makes it vary difficult (well, not difficult, but rather costly) for you to even load your own applications that you have written on your iPhone. In order to even load them on your iPhone, Apple makes you buy their $99 Developer Package. The Developer Package allows you to put the apps that you have written on your iPhone and up to 20 (I think?) other iPhones for testing. Having the developer package also allows you to put your app on the iTunes Ap...

Being Thanksgiving break and all, I figured Id work on my CMS a little more and add in some features. One of the features that Ive been thinking of implementing has been one that tweets your blog post when you publish it. Being that twitter limits you to 140 characters and my URL's are rather long, I figured Id make a mini Codeigniter library for URL shortening. I started out by checking out the two more popular services, Bit.ly and TinyURL. As i...

This past Thursday Google made public the source code to its new operating system, Chrome OS. Chrome OS is based on Linux, and based on some poking around under the hood, that flavor of Linux seems to be a mix of Debian's unstable and testing versions "squeeze" and "sid". But more on tha...
Being that I am always looking for projects to do and looking for things to improve (even for my own enjoyment), the other day I was looking at the current BarCamp Rochester website and thought, "how could this be improved?", and immediately opened up Photoshop and started to map out a new layout. Little did I know, some of my friends who are on the planning committee would get wind of my design and actually want to use my new implementation...
So this week kicked off the first of the (hopefully) many installments of the CSH Seminar Series. This week we were gracious enough to have Kevin Purdy one of the senior editors of Lifehacker.com give us a talk on comments on the internet and how sites like Lifehacker and other blogs and social bookmaking sites deal with user comments, especially the really bad ones. We even got into a little bit of a discussion of...

This tutorial will walk you through the process of getting Gitorious installed on your server. The steps in this come from two other tutorials that didnt quite work on their own. So Ive compiled together the correct steps that will get you up and running. I have gone through the steps multiple times and as long as you follow them sequentially, it should all just work.
Firstly, get a fresh installation of Ubuntu 9.04 Serve...
So being I was so excited about Apples new iteration of OSX, Snow Leopard, I made a pit stop at an Apple store on my way back to RIT for the fall quarter. So far I absolutely love it. Some apps are a little buggy and are just awaiting an update, but most everything works without a hitch. That is except for my one favorite, Macfusion. Macfusion is essentially a front end for the versatile package

gdgt (pronounced "g-d-g-t" or "gadget") is where social networking meets the gadget world. Gadget lovers alike simply make an account then from there they can search through the gdgt database and find and add the gadgets that they own, gadgets that they want, or even those that they have had in the past. Can't find it? Gdgt allows users to add new gadgets to their database so that others ca...
So I was playing around with the Google Calendar portion of the Gdata API the other day and did some searching and found that there wasnt a Codeigniter library for it, probably because it seems that Google has teamed up with the guys that are working on the Zend Framework to bring Gdata to the PHP world. So I took the ZendGdata API for Google Calendar and implemented it in Codeigniter so that you just need to make a few simple function calls to gain authorization to a calendar, add events, query...
So recently a couple of my friends from back home have decided to try out twitter but seem a little lost and don't exactly know how to use all of the features that may not be all that clear at first.
Firstly, we must clear up a common misconception. Whenever I talk about the use of twitter to other non twitter users all they do is complain and say "twitter is for losers. I don't want to know what you are doing every second of your life. I dont wa...

A spinoff of O'Reilly's FooCamp, an annual invitation-only participant driven conference, BarCamp is an Ad-hoc conference born of the desire for people to share and learn in an open environment. Participants prepare ahead of time, but all presentations are scheduled the day of the conference on a giant white board schedule. This year will be the fourth consecutive yea...

When it comes to web development on the Mac, there is a very wide selection tools available all the way from a full fledged IDE to simple plain text editors. Lately we have begun to see these ?one window development? suites cropping up. Mac app developer Painc decided to build Coda, an all in one app that combined a web development environment complete with the tools that would normally occu...
Today I have finally my CMS has reached a deployable state. Right now it has all of the functionality that a basic blog CMS will have. And when I say basic I mean extremely basic. Right now I can currently add posts, edit/delete posts, people can leave comments, you can edit the personal settings for the sidebar to the right, and you can upload pictures (even though they just sit in a directory on the server). Some things design wise are not quite done, but they are independent of the CMS. The s...
Because Drupal is just far too slow and I wanted to practice the art of web design, I have decided to completely overhaul my blog. I have ditched Drupal and the theme that I was using and am now in the process of migrating to a new content management system that I am in the process of developing. Currently you are looking at the raw HTML, hand coded, completely static version of my site because the CMS is still in the development stages. So in the next week or so I should have a basic working ve...
So I finally decided to suck it up and make myself a blog from scratch that shows off my skills (well, maybe not necessarily my design skills, but more of my coding skills and back end web development skills), work, and whatever else I decide to put on it. To take a look at it head over to my other web server http://euler.csh.rit.edu/ to take a look at how its going. Right now Ive almost finished the design and Im beginning to code the first live web mock u...