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.

Shell

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 diffMUSIC.$DATEMUSIC.CURRENT`

if["$MUSIC"=""];then

echo"No Change">MUSIC.$DATE

else

cpMUSIC.$DATEMUSIC.CURRENT

fi

tree/media/hdb1/Torrents>TORRENTS.$DATE

TORRENTS=`eval diffTORRENTS.$DATETORRENTS.CURRENT`

if["$TORRENTS"=""];then

echo"No Change">TORRENTS.$DATE

else

cpTORRENTS.$DATETORRENTS.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)

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…

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.

Shell

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: