aaronfulton's blog

Powers of 10

Here is a new take on the classic 'powers of 10' video.
http://htwins.net/scale2/

RST backdoor

I had to deal with a Drupal site which had been taken down by a RTS backdoor attack.

Lessons Learned:
* Securing Drupal is easy with the script from: http://drupal.org/node/244924

* Its not too hard to clean

find ./ -name "*.php" -type f | xargs sed -i 's#<?php /\*\*/ eval(base64_decode("aWY.*?>##g' 2>&1
$ find ./ -name "*.php" -type f | xargs sed -i '/./,$!d' 2>&1

Source: http://blog.sucuri.net/2010/05/simple-cleanup-solution-for-the-latest-wo...

* Sanity check can easily be done

grep -r --include=*.php -PHn "(eval\(.*\);)" .

Email server test

With this service, and email is sent to their server. It is checked through the standard email checks (SPF, domain keys, spam servers etc) and "bounces" a report back.
Before testing a webserver ensure that root@domain.com and www-data@domain.com forward to an email address.

The service is highly recommended.

http://www.allaboutspam.com/email-server-test

Programming for kids

MIT have developed a tool which allows kids to do actual programming and make their own games. It's called scratch. http://scratch.mit.edu

Good XML parser

This is the best XML parser I've found to date: http://gaarf.info/2009/08/13/xml-string-to-php-array

<?php
/**
 * convert xml string to php array - useful to get a serializable value
 *
 * @param string $xmlstr
 * @return array
 * @author Adrien aka Gaarf
 */
function xmlstr_to_array($xmlstr) {
  $doc = new DOMDocument();
  $doc->loadXML($xmlstr);
  return domnode_to_array($doc->documentElement);
}
function domnode_to_array($node) {
  $output = array();
  switch ($node->nodeType) {
   case XML_CDATA_SECTION_NODE:
   case XML_TEXT_NODE:

The Fateful Fact

by Dick Williams
 
If there is no reason behind the universe,
then that is a fact, and it is a fact I need to know.
For if I knew that,
I should know that whatever reason
I can construct for living will be sheer invention,
having no authority whatever,
save that of my own mind.
 
But if there is a reason for everything,
that too is a fact,
and it is even more important that I should know it.
 
For to be alive for a purpose
and to be ignorant of it,
would be a tragedy beyond imagination.

Puretext

Ever wanted to have a shortcut key to "Paste Unformatted Text"? I frequently find myself having to go edit -> Paste special -> Unformatted Test which is very slow. Recently I found this neat little app called puretext that adds a "Windows-V" shortcut to past unformatted to and from anywhere in windows. http://www.stevemiller.net/puretext

The Christmas game

Several years ago my family decided to do Christmas gift giving differently. We came across a Christmas Gift-giving game which has now become tradition.
I was asked by a work mate of mine to blog the rules for this game, so here it is:

1. Every person buys ONE gift up to a set amount (eg $30). It works best if the gift is something fun and would have wide appeal to the people playing the game.

2. Everyone wraps their gift and places it in a pile in the middle of the room

3. Everyone draws a number from a hat to determine who gets to go first.

Population growth models

A friend of mine recently made a comment about the "calculated" population of the world, pre-flood. The estimate was in the billions of people. I thought this must be wrong, after all, the genealogy from Adam to Noah is not that long. When discussing this with some friends, I was shown this website: http://ldolphin.org/morris.html which explains population models and gives predictions on population growth given a number of factors and circumstances . Many of the examples cited are from the biblical period.

Syndicate content