WordPress theme hacked!

Wednesday, March 25th, 2009

I was just digging around my theme editor trying to insert a piece of HTML from my hosting service that says that my site is Green, because the hosting service Carbon Neutral. I decided to add the HTML to the footer of my theme. When I looked at the file there were tons of links embedded in a div that had a style of ‘display:none’ !!! I looked at the header and same thing, there were tons of hidden links. I of course deleted the divs from each file and all is well now.

It turns out that people’s WordPress themes are getting hacked for some reason. Here’s an article about it.

“Cause Related” online games.

Sunday, March 15th, 2009

Here’s a game on par with the Rice Game that donates/takes action when you play the game.

MVC and Actionscript

Friday, March 13th, 2009

I have to admit that I’ve tried to use the MVC pattern for coding projects in the past and have never committed fully to using it for all UI objects in the project. Sometimes MVC just seems like too much work for a simple button, for example. Maybe, I just don’t understand how to apply the pattern, but I’m pretty sure I understand the concept. To me, the MVC pattern still has points of tight coupling. For example, your View subscribes to Model events. The Controller holds onto references to the Model and the View.

I’ve just found PureMVC and am trying to understand their implementation. It seems like their architecture is based on really loose coupling. Objects subscribe to messages (not tied to an object at all), and other objects broadcast messages. Subscribers and Publishers don’t know about each other. It sounds like a good idea to me. I’ve seen examples out there of eventmanager objects (subscribers and publishers interact with the eventmanager via the subscribing and publishing of messages) and have used them in projects before and PureMVC sounds like it’s built around this flexible way for objects to communicate with each other. One down side could be that there may be too many message flying around the system. I’m still trying to get my head wrapped around this so let’s see how well this works. I’m following this tutorial.

Drupal, Mulitsite, CVS

Sunday, March 1st, 2009

Drupal has a multisite feature that allows you to run multiple sites under the same code base.  I found a great tutorial here which uses CVS to install Drupal.  The advantage of using CVS is that if you want to update/upgrade your Drupal install, it’s as easy as issuing a single command in your shell.

First I setup my Dreamhost UNIX directory structure by following this wiki entry.   The wiki entry goes into a lot more detail but the important part is to keep your directory structure clean and put all of your websites under ~/www.

Then I followed the instructions from the above mentioned tutorial.

Here are some highlights…

Checkout Drupal verision 6.10 from the CVS repository, by using the tag DRUPAL-6-10, to your directory…here it’s ~/www (here is a list of valid tags):

$ cd ~/www
$ sudo cvs -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal checkout -r DRUPAL-6-10 -d drupal drupal

This will create a directory called ‘drupal’ and place all the checked out files in that directory.  Create all the other directories following the tutorial..including one for each domain you want to host.

Since, I don’t have access to my web server’s configuration files, I used Dreamhost’s control panel to point the two domains to the drupal install directory (if you’re on Dreamhost, you can find it under Manage Domains…click on the Edit button under Web Hosting for the domains you want to run on Drupal).

You can also checkout contrib modules using CVS. Here’s an example of how to grab the admin_menu module. To find the tag to use for the version(-r) parameter, here it’s DRUPAL-6--1-3, click on the Release Notes link that accompanies each release. At the top of the page you should see the tag in all caps.

$ cd ~/www/drupal/sites/all/modules/drupal-contrib
$ cvs -z6 -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal-contrib checkout -r DRUPAL-6--1-3 -d admin_menu contributions/modules/admin_menu

Later, to update your core and contrib modules, you just have to run this (of course, make sure you backup stuff, turn off modules, etc. before updating. Basically follow appropriate upgrade instructions):
$ cvs -nq update -dP