Archive for the ‘Web Development’ Category
March 6th, 2011
When I discovered that my grad school, ETH, offered a free website to all students, I immediately had to design a quick personal profile to put up. I recently came across a site called about.me that makes it easy to create a nice-looking personal profile website. I like the concept and design of this site, and I figured it wouldn’t be too hard to implement it myself. The site is basically one large background image with a semi-transparent text area overlay. I utilized some of the new CSS3 features to deal with the gradients and opacity. After less than a day, the site was ready to go and seemed to be rendering correctly in all the modern browsers.
See the final result: http://n.ethz.ch/student/tchurch/

Category: Web Development
No Comments |
Permalink
January 2nd, 2009
Some long overdue updates to this site, timothyrchurch.com, are finally complete. The biggest and most needed fix was for the layout: the right column would overlap the content of the left column on smaller resolution screens (or smaller windows). In order to fix this, I used the “holy grail” css technique from A List Apart. Other updates included improvements to the projects and profile pages, as well as removing some pages that have never been implemented (resume and portfolio).
Keep your eyes out for improvements to the homepage (lifestream) soon.
Category: Web Development
No Comments |
Permalink
June 19th, 2008
Quick update on my custom lifestream project – I finally got the automatic updates working. After months of manually updates, and big lags/gaps in between updates, the automatic process is now working. The logic of my update script was all correct, which is why the problem was so hard to spot. It turned out that the issue came down to timezones. The PHP and MySQL instances were set to different timezones by default, which caused all the date comparisons to be off. Now that this is fixed, I have the script running as a batch process to check for updates every hour.
As a sidenote, another way I could have implemented the lifestream would be to pull the RSS feeds from each site every time it is loaded. I decided against this approach for the rather obvious performance benefit of caching the feeds locally, as well as maintaining the history of the feeds.
I hope to make a few more updates to the lifestream project soon to try to finish the next development cycle/iteration – v1.0. Stay tuned…
Category: Web Development
No Comments |
Permalink
March 31st, 2008

On Saturday I attended my first ever SuperHappyDevHouse (SHDH). So you are probably wondering, what is the SuperHappyDevHouse? Well, that is hard to explain; in fact, I’m not sure I completely understand yet. This is the description from the SuperHappyDevHouse website:
SuperHappyDevHouse has become the Bay Area’s premier monthly hackathon event that combines serious and not-so-serious productivity with a fun and exciting party atmosphere. Come to the DevHouse to have fun and get things done!
We’re about rapid development, ad-hoc collaboration, and cross pollination. Whether you’re a l33t hax0r, hardcore coder, or passionate designer, if you enjoy software and technology development, SuperHappyDevHouse was made for you.
DevHouse is not a marketing event. It’s a non-exclusive event intended for passionate and creative technical people that want to have some fun, learn new things, and meet new people. In this way, we’re trying to resurrect the spirit of the Homebrew Computer Club. We also draw inspiration from the demoscene as one of the only intentional getting-things-done computer events in the world.
Basically, someone opens up their mansion and provides free food and hundreds of techies gather together with their laptops and other tech toys. It is a very friendly, relaxed atmosphere with a combination of people who only want to talk and people who are really focused at their computers working on projects. And not just basic web development projects either. It was a pretty diverse group of people with a wide range of interests; I met or heard about people working on robots, mobile gaming, Ruby on Rails, and wikis just to name a few.
SHDH is a good chance to meet some fellow developers in the area. This is the San Francisco Bay Area/Silicon Valley after all — the heart of the internet/tech industry. You can write code from anywhere, but one of the benefits of living in this area is the proximity of so many other talented programmers. I think I’ll go back again. Although next time I probably won’t show up alone and I’ll have a better idea of what to expect.
Category: Web Development
1 Comment |
Permalink
March 25th, 2008
I know I have been slacking on the blog posts lately, but that hasn’t stopped the comment spammers from finding my blog and inundating me with junk comments to sort through. Luckily, today I just discovered a wonderful, free comment spam WordPress plugin: Askimet. Apparently, it has been here the whole time and I never realized it. Askimet comes pre-installed with WordPress, you just have to activate it and enter an API key (which you can get for free at WordPress.com, even if you don’t have a WordPress.com blog). And that’s it! Just by activating it, it immediately marked 212 comments as spam so I don’t even have to worry about them. Even though I have only been using it for an hour, I would already highly recommend the Askimet plugin to anyone with a WordPress blog.
Category: Web Development
No Comments |
Permalink
February 18th, 2008
So I’ve been a bit discouraged with my progress on this website lately. The development of this site, my personal website, has taken much longer than expected. I mean, it has been almost 6 months since I began, and I have yet to really tell anyone about it. But then, when I stopped to think about it, I realized that this site is doing exactly what I had hoped it would; it is serving its purpose as a sandbox for me to try out various web development techniques and get a breadth of experience with a number of webdev skills. Though it may be slow going now, as I become more familiar with these technologies and techniques, it will speed up my development in the future. Basically, I am getting the learning curve out of the way now.
Since I started this website in September 2007, here is a list of all the things I have had to learn/figure out:
- How to create and customize a Blogger blog
- How to convert a Blogger blog into a WordPress blog
- How to install WordPress and create a custom WordPress theme
- How to install “Google Apps for Your Domain“
- Create a custom search engine using Google Co-op
- Google Analytics
- Setting and reading cookies
- RSS feed specifications (how to build and parse a RSS 2.0 feed)
- How to syndicate an RSS feed through FeedBurner
- JQuery - Javascript framework
- Ajax – How to dynamically load part of a page through an Ajax call
And, hopefully, I will soon add these skills to my repertoire as well:
- XML Sitemaps
- Create a transparent favicon
- Dynamic RSS feeds (using PHP)
- Microformats - hResume
Category: Web Development
No Comments |
Permalink
February 5th, 2008

In the upper right hand corner of this website, I’ve added 4 color themes (ok, they’ve been there for a while now, but I haven’t gotten around to writing about it until now). As I was designing this website, I had trouble deciding on a color theme so rather than deciding on one theme, I wanted to figure out a way to have several different color options. As I was researching different ways to implement these dynamic stylesheets, I came across a Javascript style switcher on A List Apart and then a PHP implementation.
My implementation is basically a modified version of the PHP code from the article. I decided to use PHP over Javascript for a number of reasons, but mainly because PHP is processed on the server side and will work even if the user turns off Javascript in their browser. The changes I made from the code in the original article are mostly just extra validation before setting the cookie. Both implementations use cookies to store the selected color theme so that the selection persists between pages and between sessions.
To try it out just click one of the colors in the upper right corner. Let me know which theme is your favorite.
Category: Web Development
No Comments |
Permalink
January 12th, 2008
When I started designing this website, I had the idea to make a combined feed of all my online activities for the homepage – kind of like a Facebook-style newsfeed covering the whole internet rather than just one site. When I started looking into this, I discovered that my brilliant idea was not quite as original as I had originally thought. These master feeds are commonly known as “lifestreams”, I discovered, and can be implemented in a number of different ways. I first thought about using Yahoo! Pipes to merge the RSS feeds into one master feed, and I also considered using one of the several pre-made solutions out there such as FriendFeed. In the end, I decided to make develop my own custom lifestream so that I could have complete control over the content and display of the data.
I’ve just released the alpha version of my lifestream, which can be seen in action on my homepage.. This is the first of many web development projects. For this initial version of my custom lifestream, I’ve implemented the following features:
Archives all rss feeds locally for performance and longevity
One of the problems with a solution like using Yahoo! Pipes to merge your RSS feeds is that you have no control over how many items are in each feed. You are stuck with the default settings from each site’s feed, which are not necessarily the same. By default, most RSS feeds only include the most recent 15-20 items because that is the way that RSS was originally intended to be used. However, I want to be able to use my lifestream as personal archive for all of my online activity over time. The solution for this is to store the feeds locally and merge the new items into the local copy of the feed whenever the original feed is updated. Feed readers such as Google Reader use a similar approach so that they can both keep the history of each feed and keep track of additional data such as if/when you read a particular item in the feed.
In this alpha version, I am storing the local version of the feeds as xml files. However, parsing these files with SimplePie seems a bit slow and will only get worse as the size of these files increases over time. Therefore, I plan to switch from XML to a MySQL database to store the feeds for the next release. This approach will give additional benefits as well, such as easier pagination.
Aggregates certain feeds by date
For aesthetics and readability, I prefer to aggregate certain types of feeds, such as bookmarks and photos, by date. I think this helps to keep the lifestream manageable, and prevents any one or two feeds from completely dominating the lifestream.
Manipulates feed item titles
The title to every item in the feed is updated into a uniform format that describes the action performed and links back to the source feed.
Customizes feed item content and display
For most items, only the title is shown in the lifestream, but certain items, such as the aggregated bookmarks and photos, also display the content. This content is customized into a standard format for display purposes.
Future updates:
- Improved performance/load time(via a major change in the way feeds are archived locally)
- Load lifestream through AJAX call to improve page responsiveness
- Automated process to keep feeds up to date
- RSS feed of lifestream
- Allow user to choose which feeds to view
- Backload archive with older data
- Endless Scrolling
Category: Web Development
1 Comment |
Permalink
November 25th, 2007
I’ve been working on designing a new layout for my website for the past couple weeks months. What began as a custom Blogger template has turned into a complete custom WordPress theme. It was an overly drawn out process, but I finally achieved the look I was going for. Web design is not exactly my forte, but it is fun to play around with. I was basically just going for a simple, basic layout for the site, nothing too fancy.
Hope you like it!
Category: Web Development
No Comments |
Permalink
November 20th, 2007
WordPress has a nice import feature for moving an existing Blogger blog. However, I ran into a problem getting WordPress to log into my Blogger account. Every time I would enter in my Blogger login info, I would get an error message “Trouble Signing In” that told me to try again. The problem was a bad reference in the blogger.php file.
Simply replace all references to www2.blogger.com with www.blogger.com in /wp-admin/import/blogger.php and it should work properly.
Category: Web Development
No Comments |
Permalink