June
Alright, I hate these once a month updates. But at least it’s something, right?
Activity at work has been steadily increasing. After a brief slump towards the end last month I have been tasked to several projects, many of which are actually *gasp* interesting.
Site Map generation and broken link testing
One of the projects I came up with for other people to do was build a site map for each of our two servers – I suppose the name server map would be more appropriate. After I realized the task was being avoided simply because the term was not as well known as I assumed I decided to scrummage for a way to do it myself. Or rather a program to do it for me.
Behold, these things are everywhere. Sure some cost a hundred dollars, but many are free and just as competent. The beautiful thing about automated site map generators is that they also double as broken link detectors and reporters. Who would have thought that two critical tasks – both potentially time consuming – could all be done by a single free application? Note, there are also a lot of programs that generate a Google site map (which is an XML file I believe). This was not what I did, I wanted something visual and printable, but a Google map is our next step as you can make it accessible it to a particular search engine…
Anyway, this was a rather cool find as (a) our boss was having people manually find broken links and (b) it produced a lot of easy tasks for the less experienced.
Great Firewall of China
For those not in the know, the government of China has built a massive proxy firewall and subjugates its population to its censorship.
One of the major themes of this year in the Berglund Center is Internet censorship, so you can imagine how this fits in. My boss tasked me to make a program that monitors how accessible our material is from China. To do this you use sites like this and this. So I wrote a program that actually goes to the later page automatically and literally clicks through the site and fills in forms to check each URL and then collects the results and writes it to a little XML database. This was really cool for me because I essentially learned how to control a web page from a C# program.
Back in the day I used to play stupid little text-based MMO’s that depended on clicking through pages to buy armor and weapons and programs called “auto-buyers” which literally automatically purchased items so that people couldn’t steal your money while you sleep were really powerful. So now I could easily write one those! (although I wouldn’t know why).
Oh, and the final piece of the application I wrote is a PHP page that reads the XML database and outputs a simple table with the information. The page is nothing spectacular nor is it large, but it is also the first time I ever had PHP read from XML. Normally I use MySQL.
Culturally Appropriate Materials
This is the big one. And I can’t write a whole lot about it because (a) my boss has a dream that this application becomes commercially viable and (b) I only started it today.
Basically we want a database driven application that prompts a user when the content about to be viewed has potentially “culturally objectionable material.” The ideal deployment would be a search-engine or browser extension that compares search terms and the page in question to generate the message. Because of the before-mentioned commercial aspect it must be portable (i.e. not physically connected to our site) and scalable. I can’t go into too much details because I only started the research phase but our current idea is to write a Firefox extension that interacts with a MySQL database.
Because Firefox extensions are really just JavaScript programs this leads into an interesting side-effect: I will be learning how to write AJAX scripts. Wait, did I mention I will try to write a Firefox extension? So, evidently, there are two cool new things I will be doing in this initial phase. Even if these strategies don’t end up working, AJAX is definitely something I want to learn how to do. Right now I have already written a simple AJAX page and am excited to continue.