Category Archives: System Administration

Parasitic SEO is not a Victimless Crime

Having been hacked too many times for parasitic SEO, I have decided that it’s time to upgrade our admittedly outdated wordpress installation. In the process, we lose quite a bit of functionality because of incompatibilies. Right now I am very short on time due to thesis writing and so I don’t know when I will be able to fix these problems. The one I really miss is the event calendar since I actually use it myself!

Frankly, I have considered “folding” completely since at this moment of my life I really don’t have the time, but then I figured that some of the existing content may be useful to others and so I decided to spend my time this way. Hope this is the right choice!

Another Calendar Update

Following the suggestion of Mike Dinitz, I have started to investigate Google Calendar. As some of you already know, this blog server exports an ICS file that can be used for many calendar clients. I have just made it easier with a non-https URL:

(There is a long story behind why this was in https in the past. Now all you need to know is that this is no longer the case.)

I see that there are still some space quoting issues to be fixed, but at least it is already in a somewhat usable stage. Also, note that Google Calendar seems to update remote calendar once a day or so. Therefore, you don’t see new events that are entered very recently.

I thank Mike for the suggestion. Maybe I will switch to Google Calendar soon. Currently I still use Rainlander on my X40 Tablet but Google Calendar has been growing on me, except that it doesn’t seem to allow me to maintain a TODO list…

Subversion Server Rollout

After several months of beta-testing, our Theory group’s Subversion server is now open to host any of our projects. If you want to start using this server for a project, please contact me via email so that I can open a repository for you and setup its access control. Note that our server has been configured to support non-SCS collaborators (anyone who doesn’t have an account in the SCS) and so it is very easy to host your papers.

To download and install the required Subversion client, start from this page.

Please read Chapters 1 to 3 of this online book if you are not familiar with the concept of version control and concurrent development. And even if you are already familiar with the basic operations of CVS, it may help to refresh your memory and learn the subtle (but usually not important) differences between Subversion and CVS. If you have questions, feel free to post a comment here.

P.S. My strategy for this rollout is “let it be” for the first couple months. In the past I have struggled to get the beta-testers do everything “right” when none of these seemingly arbitrary subtleties is critical. Therefore, it seems wiser to let everyone use the server and correct the common mistakes later (in future posts and talks).

Calendar Update

In the past, the ics file exported by WP-iCal would sometimes crash Rainlendar. Well, I just found out that the latest version of Rainlendar 0.22.1 seems to have fixed this problem.

The content of the ics file still needs some tweaks, but it’s already quite usable.

Mini Project Wikis

I have installed Instiki on Abu. Instiki is a wiki server intended for simple wikis. The server itself is written entirely in Ruby and is extremely extensible. In its lingo, a server hosts a list of “webs”, each corresponding to the wiki of a project. To see the current list of webs hosted by Abu, use this URL:

So far we have two sandboxes for playing and two actual webs. There is a web unofficially used by the FOCS 2005 local arrangements (I guess we really just use it as a notepad online). There is also a web called Papers Illustrated, which is Dan Golovin‘s brain child if you recall the Town Meeting we had in the beginning of the semester. PI is password protected for the moment, but most CMUers know the password anyway. I imagine that when PI gets more content, we will publish the web so that Google can crawl it.

I have also patched Instiki a bit to add ASCIIMathML to it. Now you have another way to play with ASCIIMathML by going into the Sandbox.

Finally, since we have the server software set up already, if you want to have your own simple wiki hosted on Abu, let me know. Instiki is not as industrial-strength as MediaWiki, but it is probably adequate for most small projects.


Events Section

I have modified the Event Calender locally so that it works with the event metadata stored by WP iCal.

Now the Event section on the frontpage will show you a list of posts that contains future events. Post a comment here if you have suggestions.

Threaded Comments

I have installed Brian’s Threaded Comments and patched it a bit to work with SecureImage (CAPTCHA for anonymous comments). Now you can reply to a particular comment and have the comments threaded together. If you want, please feel free to try it out with this post.

Have fun!

P.S. In case you are running WordPress 1.5 and also want to get both Threaded Comments and SecureImage working, what you need is to patch Threaded Comments to rename the \$image array. Both packages use it and so they overwrite each other. Lovely global variables.

ASCIIMathML Installed

After reading a comment at Lance Fortnow’s blog, I suppose I should write more about Computer Science. :P To do that, first I followed the steps of our friendly alumus Andrej Bauer and installed ASCIIMathML.

The actual syntax of ASCIIMathML is not exactly LaTeX as the author Peter Jispen wants a syntax that is

  1. close to standard mathematical notation
  2. easy to read
  3. easy to type

Oh well, so much for the dollar signs. (But let me note that LaTeX syntax is supported to some degree.)

If you are using IE, then you need to install MathPlayer. If you are using Firefox, you want to visit the MathML page at In particular, you will need to install the fonts from their Fonts page.

Here is an example copied from the ASCIIMathML page for testing.

Solving the quadratic equation.
Suppose `ax^2+bx+c=0` and `a!=0`. We first divide by `a` to get `x^2+b/ax+c/a=0`.

Then we complete the square and obtain `x^2+b/ax+(b/(2a))^2-(b/(2a))^2+c/a=0`.
The first three terms factor to give `(x+b/(2a))^2=(b^2)/(4a^2)-c/a`.
Now we take square roots on both sides and get `x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a)`.

Finally we move the `b/(2a)` to the right and simplify to get
the two solutions: `x_(1,2)=(-b+-sqrt(b^2-4ac))/(2a)`

Now we are one step closer to make this blog more relevant to its title. :P

System Upgrade In Progress

This weekend (today till July 4th) I will be upgrading the software installations on Jasmine. Many upgrades will be done during this period and so you will see some intermittent down-time. For those of you that aren’t involved in maintaining Jasmine, this machine actually hosts many services for our Theory group.

Of special note is the upgrade to Subversion 1.2. Once this is done, we can finally self-host and we can also roll out the Subversion server for other projects. (I know, you may not know what Subversion is or how you can use it. But if you actually visit this blog, you will notice that there is already a Subversion category in this blog except I have not started writing about it. :P )

P.S. This morning I just spent an hour upgrading Apache from 2.0.53 to 2.0.54 because I forgot to take away the custom configuration files between the removal and re-installation. If you run Apache on Windows, this is the proper upgrade procedure:

  1. Uninstall the old version. You will be left with files that you manually put in the Apache2 directory. Among those files are your configuration files in the conf directory.
  2. Move the conf directory to somewhere else.
  3. Install the new version. (If you don’t do the previous step, Apache may not be able to register itself as a service. You will see an error message “no installed service named Apache2″, indicating that the service registration has failed. You may try to outsmart it and manually do Apache -k install -n Apache2, but that will not work either in my experience.)
  4. Start Apache with the default configuration files.
  5. Verify that it starts well by looking at the log files.
  6. Stop Apache.
  7. Restore the conf directory that contains your custom files.
  8. Start Apache and be happy that you saved an hour of your life.

CAPTCHA Installed for Anonymous Comments

I have installed a CAPTCHA plug-in to allow comments without requiring the poster to register and login first. Hope this will make it easier for those that don’t read this blog regularly to leave comments.

Note that if you have already logged in, you will not see any change. You only see it when posting comments anonymously.

Calendar Plugin

I just installed a calendar plugin. If a post is in the Calendar category, it will appear in this ics:

Later on I will try to enable file sharing on Diamond for those ics clients that don’t do http.

Spell Checker Installed

All authors can add words to the site-wide custom dictionary. Let me know if you have problems.

Service Guide to Jasmine

If you didn’t notice, there is a page under the main page called the Service Guide to Jasmine. I am still writing it, but it’s growing.


If you have any suggestions on how this site can improve, please leave a comment here.

In particular, feel free to comment on things like:

  • How can we use this blog to help build our commuity? (For example, are there topics that you think we should discuss more?)
  • Related to the above, are there categories that you think is interesting but I missed? (Currently, if your account can publish entries, then you can manage categories. But let’s first discuss about it before making the change since it can affect others.)
  • What services do you you want, now that we have our own server? (For example, maybe you believe we should setup a wiki for some purpose that you see fit?)
  • Right now, whenever a comment is posted, the original author will be notified by email. Do you think we should turn this feature off?
  • Does this blog look good? (You can suggest other themes from here. Sometime over the summer I will see what I can do about it.)