Time Until Wedding
Days
Hours
Minutes
Seconds
 
Navigation
 
Search
 
My Usable Projects
 
Reading...
 
Listening...
 
Random Image
00042.jpg
 
Archives
 
Me. Elsewhere.
 
Feeds and Such

Google Reader or Homepage
Add to My Yahoo!
Add to Technorati Favorites!
Bookmark del.icio.us
Bookmark Furl
Bookmark Spurl
 
Darcy
 
Things I Like
boingboing
 
License
 
Noooooo…..kinda

My beloved last.fm has been sold to CBS. Not cool, but at least it will still be run by the same people.

Posted May 31st, 2007 - Permalink
Categories: Uncategorized
No Comments »
 
It’s A Trap!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <signal.h>
#include <unistd.h>
#include <iostream>
 
void theShieldIsUp (int param) {
  raise(SIGABRT);
}
 
void ackbar (int param) {
  std::cout << "It's A Trap!" << std::endl;
  exit(1);
}
 
int main () {
  signal(SIGTERM, theShieldIsUp);
  signal(SIGABRT, ackbar);
  while(true)
    sleep(1);
  return 0;
}

This was really funny to me earlier when I jotted it down. It’s a signal trap that calls a function that raises a process abort signal. Get it? Yeah, not as good as it was when I was working on it…

Posted May 25th, 2007 - Permalink
Categories: C - C++ - Programming
No Comments »
 
Really, really, bad.

So my little freak-out post about my hard drive just proved itself true. WDE, my 320GB drive full of movies, music, books, and (ironically) backups just gave up the ghost. It actually froze up my machine in it’s dying gasps.

I know it wasn’t full of content, but that’s a big hit. It’s also the newest drive in my machine, lasting one day under 8 months. Thats silly. Plus I voided the warranty on it, so no replacement for me. Oh, bonus note, I bought 100 DVD blanks yesterday to start backing things up on from it.

This little fiasco is going to implement some new procedures. I’m making weekly tree listing of my media folders so I can know what I lose from here on out, and I’m going to back important stuff up to disc. This really sucks.

Update (05/24/07)
Here’s a little sample of the script I wrote for my tree listings.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
 
DATE=`eval date +%F`
 
tree /media/hdb1/Music > MUSIC.$DATE
MUSIC=`eval diff MUSIC.$DATE MUSIC.CURRENT`
if [ "$MUSIC" = "" ]; then
  echo "No Change" > MUSIC.$DATE
else
 cp MUSIC.$DATE MUSIC.CURRENT
fi
 
tree /media/hdb1/Torrents > TORRENTS.$DATE
TORRENTS=`eval diff TORRENTS.$DATE TORRENTS.CURRENT`
if [ "$TORRENTS" = "" ]; then
  echo "No Change" > TORRENTS.$DATE
else
  cp TORRENTS.$DATE TORRENTS.CURRENT
fi

As much as all of this sucks, I really enjoyed learning that much bash scripting.

Another Update (05/24/07)
So, I dug back into the machine and tried the old “hit it with your hand” method, and lo and behold, the drive works again. Dunno why or how, but it’s alive again, and all of that data is coming off of there. (Eeep! 195.21 GB -> 42 DVD’s)
Posted May 24th, 2007 - Permalink
Categories: BASH - Dangit - Programming
No Comments »
 
Dangit, dangit, dangit….

One of my hard drives is making a nasty noise at regular intervals. I’m not sure which one it is either, I can’t work that out. Anyway, I’m backing up everything important right now, I just hope it survives that long…

Posted May 24th, 2007 - Permalink
Categories: Dangit
No Comments »
 
Disappointed In SimpleXML

So I’m a little disappointed in PHP5’s SimpleXML object. Don’t get me wrong, it works great for accessing XML, but it’s terrible for deep manipulation. The biggest problem is that you can’t append SimpleXMLElement objects to each other.

For instance, I was working on a little project tracker that would use all XML for storage. Here is the var_dump of my XML file.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
object(SimpleXMLElement)#1 (1) {
  ["project"]=>
  array(3) {
    [0]=>
    object(SimpleXMLElement)#4 (5) {
      ["idstring"]=>
      string(10) "1180050874"
      ["name"]=>
      string(22) "Example Project Bottom"
      ["created"]=>
      string(19) "2007-05-24 17:57:29"
      ["modified"]=>
      string(19) "2007-05-24 17:59:44"
      ["contact"]=>
      array(2) {
        [0]=>
        object(SimpleXMLElement)#5 (3) {
          ["name"]=>
          string(10) "John Hobbs"
          ["title"]=>
          string(12) "Project Lead"
          ["email"]=>
          string(20) "j0hn@velvetcache.org"
        }
        [1]=>
        object(SimpleXMLElement)#6 (3) {
          ["name"]=>
          string(9) "Mom Hobbs"
          ["title"]=>
          string(3) "Mom"
          ["email"]=>
          string(19) "mom@velvetcache.org"
        }
      }
    }
    [1]=>
    object(SimpleXMLElement)#3 (5) {
      ["idstring"]=>
      string(10) "1180050874"
      ["name"]=>
      string(19) "Example Project Top"
      ["created"]=>
      string(19) "2007-05-24 17:57:29"
      ["modified"]=>
      string(19) "2007-05-24 18:57:44"
      ["contact"]=>
      array(2) {
        [0]=>
        object(SimpleXMLElement)#7 (3) {
          ["name"]=>
          string(10) "John Hobbs"
          ["title"]=>
          string(12) "Project Lead"
          ["email"]=>
          string(20) "j0hn@velvetcache.org"
        }
        [1]=>
        object(SimpleXMLElement)#8 (3) {
          ["name"]=>
          string(9) "Mom Hobbs"
          ["title"]=>
          string(3) "Mom"
          ["email"]=>
          string(19) "mom@velvetcache.org"
        }
      }
    }
    [2]=>
    object(SimpleXMLElement)#2 (5) {
      ["idstring"]=>
      string(10) "1180050892"
      ["name"]=>
      string(22) "Example Project Middle"
      ["created"]=>
      string(19) "2007-05-24 18:45:06"
      ["modified"]=>
      string(19) "2007-05-24 18:45:06"
      ["contact"]=>
      object(SimpleXMLElement)#9 (3) {
        ["name"]=>
        string(10) "John Hobbs"
        ["title"]=>
        string(12) "Project Lead"
        ["email"]=>
        string(20) "j0hn@velvetcache.org"
      }
    }
  }
}

Long, I know. The point is that even though the structure looks pretty normal, you can’t do this, in this case in a sort function:

1
2
3
$temp = $projects->project[0];
$projects->project[0] = $projects->project[2];
$projects->project[2] = $temp;

You get the error message:

Warning:  sortProjects() [function.sortProjects]: It is not yet possible to assign complex types to properties in /var/www/timetracker/index.php on line 63
Warning:  sortProjects() [function.sortProjects]: It is not possible to assign complex types to nodes in /var/www/timetracker/index.php on line 63

That, my friends, is a bummer. You can’t assign sub-elements into the tree. Bummer. Now I have to switch back to my normal MySQL.

Posted May 24th, 2007 - Permalink
Categories: PHP - Programming - Projects
No Comments »
 
More Posts
« Older
Newer »