Software Development

warning: Creating default object from empty value in /home/campusac/public_html/blog/modules/taxonomy/taxonomy.module on line 1387.

AJAX and Online Networking

I think AJAX will be widely adopted by websites and lead to fundamental changes. Basically it allows you to eliminate the need for switching from one page to another, and thus reduces the pauses due to page refreshing/reloading.

Instead of loading a page, your browser requests data from the server and uses it to react to the user requests.

Google Maps, notably its scrolling features, is the best example of this.

I've been wondering what would this look like for CampusActivism.org? When displaying a list of results (from browsing or searching) you could fetch 200 rows - instead of just 20, so if the user clicked on the next page (or any of the next 10 pages) it would display the results without a significant pause. You could let the client sort things in alphabetic and reverse alphabetic order.

Refactoring

So over Christmas I finished reading Code Complete 2 and Refactoring. Both are good books and very highly recommended for anyone doing software development. Code Complete 2 is the more accessible of the two. It's good because it doesn't follow any specific school of software development. So instead of giving you hype about "extreme programming" it provides you with best practices that are based on surveys and studies done by researchers.

I also ordered most of the books recommended at the end of Code Complete 2 in the reading list for developer's. So that's more than 12 books I hope to read this year.

Categories or Tags?

From the beginning, I figured that using a limited number of categories was the best way to organize the listings on CampusActivism.org.

However recently, there has been a growing movement towards tagging as an alternative method of categorization.

Flickr lets users upload images and give them any tag they want. Livejournal lets you give any name you want for your interests. del.icio.us lets you choose any tag you want for your website bookmarks (which are shared with other users). Similarly, Google, the best search engine, doesn't use categories (whereas its poorer counterpart, Yahoo, does).

Optimizing MySQL - strings vs integers

I've been logging my slow MySQL queries, with "slow" being defined rather harshly as anything that takes more than 0.01 seconds. However, when you are only dealing with 1000-30,000 records and simple selects, they shouldn't take much longer than that.

One thing I've noticed is a MAJOR difference between how MySQL treats integers versus strings in the WHERE clause.

For instance, if I do
SELECT *
FROM zipcodes
WHERE Zip=19104

This works fast if Zip is stored as an integer. If you want to store Zip as a string (to support codes like 00213, or because you are using a 7 character field to also support Canada which uses a mix of letters and numbers), then you can run into problems.

International Geocoding

I created an international geocoder using the GNS data. It converts a city, state (optional), and country into a longitude and latitude.

It has about a 90% success rate.


Geocodes and Maps the Result


Geocodes


Google Maps API thread

Taking Friendster and MySpace Down - Building a Noncommercial Alternative

MySpace was recently purchased as part of a $550 million deal. I think part of its value lies in trying to build profiles of people so that corporations can sell them products and target online advertizing.

We need a noncommercial/free/open social network that won't sell out to corporations and that will end the need of having to maintain a profile on seperate commercial networks so as to stay in touch with friends.

I believe I have a good idea to make it work. The technical aspects of creating a friendster or myspace is relatively easy. A good programmer or team could crank it out in a year or so. The trick is publicizing it.

Find Radio Stations

I'm creating a website to Find Radio Stations using the FCC database and a Google Maps interface. Pretty basic stuff so far, except the innovative use of Google Maps to show where stations are located.

And, where Google has good satellite data, you can actually see the antenna towers!

Advocacy Developers Conference II - July 11-13, San Francisco

I hope to attend and meet people. Yay networking!

Aspiration is pleased to host AdvocacyDev II. The second in a series of events that began with the first Advocacy Dev gathering in June 2004, Advocacy Dev II will convene organizers and activists using free and open
source (F/OSS) online advocacy tools, and developers and designers
building those tools.

Activism Network - Internationalization

Currently the Activism Network software will only work well for users in Canada and the US (or other countries that are really really small).

The major limitation that is stopping its productive use in English-speaking countries is that I'd need national databases of zip/postal codes that would include a longitude and latitude.

For instance, I would love to expand this software to work in the UK, Ireland, Australia, New Zealand, and perhaps the Phillipines (note: the Phillipines has one of the highest rates of use, however it also might require bilingual support) - however I need to get postal code databases for these countries. Ideally I'd like to get free databases, but if they can be obtained for a small cost (<$100) then I might be willing to do it, especially if one or more activists in those countries expressed interest in using the software.

Activism Network - Another Progress Report

I've decided that I need to stop "crying wolf" by trying to estimate when I will have a piece of software done because I have constantly missed my own deadlines by embarassing amounts. But on the other hand, I should practice creating deadlines so that in the future I will be able to make accurate predictions.

Here goes! I'm going to predict that I'll release an alpha client for the Activism Network by June 15. This is aimed at website developers who want to help me customize/improve/test it, and to generate excitement within the CivicSpace community. Then a beta/production worthy release will follow in a month or so (depends on whether I take a badly needed vacation, and whether I start working more on creating a board of directors, found an official organization, and fundraising.).

Syndicate content