Ok, a while back when TekTonic (A’tuin’s ill-favored hosting service) crashed and had all kinds of problems in general, this caused a reboot of my system. Quite understandable that. Unfortunately, the box had been up for a while (probably 3 months or so of uptime) and they must have applied some kernel patches or something to their system because it has been unstable ever since.

Most notable among these problems is a heinous memory management problem – new processes segfault in stead of making something else swap out. Only slightly less notable is the fact that TeamSpeak ceased to work at the same time.

ammon@atuin:/usr/local/tss$ ./teamspeak2-server_startscript start
starting the teamspeak2 server
Runtime error   0 at BFFFFBB8
./teamspeak2-server_startscript: line 92: 27874 Segmentation fault      ./server_linux -PID=tsserver2.pid

Yeah. Fun stuff. Over time, the only difference in the output tends to be the memory address at which it borks out on me ;) Didn’t really bother me much since I wasn’t actually hosting any chat services – I had actually only installed it on a whim in the first place anyways.

I’m also not the only one with this problem. Before they mysteriously vanished, the TekTonic support forums had at least 3 or 4 threads complaining about this exact problem.

Well, earlier this week, I had a discussion with guild leader on CoV where we talked about possibilities for voice chat. I brought up A’tuin and its currently functional Ventrilo setup – but the Vent license only allows 8 clients to connect to a non-pro account… and they’re very picky about with whom they will do business (pro accounts supporting a minimum of 1000 clients at once spread across multiple servers and stuff).

Our SG has more than 8 members now, and it would be a shame if people were getting rejected just because Vent refuses to sell me a license. So, I started looking back into TS again today. It still crashed.

Using the trick taught to me back during my first Google tech interview, I applied strace to the binary. Lo and behold, the trace reveals that the crash occurs whilst trying to open /usr/lib/locale/en/LC_CTYPE. I checked, and sure enough… my machine seemed to have a broken installation of the locales package… and along with it, a rather old version of libc.

So… patching these up gives me progress. I’m going to see what else needs to be done to bring things up to speed, but I might actually get TS running on this monster tonight.

Update – 12:30am, Feb 22

After updating glibc and locales (and practically every other system library), I am still getting the following output from strace:

...snip...
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=1583760, ...}) = 0
mmap2(NULL, 1583760, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40170000
close(4)                                = 0
pipe([4, 5])                            = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
rt_sigreturn(0)                         = 136425499
...snip...

Blech. So… it’s closing the locale archive document and then trying to pipe it somewhere else? Don’t know if this is actually the problem though. I really need to learn how to use this utility better. Mumble, grumble. I’m gonna dig through ML and forums and stuff to see if I can come up with anything further.

Update – 7:30am, Feb 23

Well, fooey. I looked at man pages online (since I can’t seem to locate which Debian package actually installs the syscall man pages for me…) and aside from discovering that there is apparently nothing fishy about the pipe call, noticed something else in the sigreturn man page:

sigreturn never returns.

Well, not terribly interesting. If the machine is segfaulting, the kernel is well within its rights to make whatever syscalls are necessary to recover and report error messages to me and stuff, no? So that might be a dead end.

Looking further up through the entire stack trace, I noticed that attempts to read from this /etc/ld.so.nohwcap file that I’d never heard of were all failing. Google turns up this blog entry. So, I created the file and nothing really changed except that the program doesn’t fail on those particular reads any more. I’m assuming that the access to /etc/ld.so.preload is also harmless, so will ignore this one.

So, I figured I’d try to force a segfault of my own to compare the two straces for any similarities. Not much there, eh? But when I do an ltrace on my file – it clearly specifies what’s crashing.

The ltrace of the TS binary is way too verbose to put online anywhere, so yeah. It looks like it’s dying on some assortment of pthreads mutex calls, which I guess is entirely possible and realistic.

Update – 8:50am, Feb 23

The TeamSpeak forums seem to have a handfull of threads dealing with this exact sort of problem – which seems to have affected people on multiple distros (including Debian). A German thread is the longest discussion of the problem and seems to have an answer.

They use setarch to fool the machine into thinking that it is something it is not… Erm, ok, I guess. It sounds like problems with architecture-specific behaviors failing when run on the wrong kind of box. That makes some sort of sense.

It especially makes sense on my machine – a VPS on dual Opterons. Not the most normal architecture out there. When you run uname -m, it just says i686… so shrug.

Of course, setarch isn’t available for Debian. The solution given in the german thread is to use alien to turn an RPM into a DPKG for installation ;) I’ll try that out later and see what it does to me.

I was playing around with the CoH/CoV Character Builder yesterday and decided to duplicate my current (and planned builds). And since I was re-creating/planning things in the builder, I figured I may as well dump them here, eh? I’ll prolly go through and link all of the powers to their appropriate descriptions on GameAmp or something.

URL for the character builder is: http://home.comcast.net/~SherkSilver/index.html, but for some reason, b2evolution is blocking the URL – probably some sort of spammish history with Comcast or something :P

Kikichikki

Kiki is the character in limbo. His name comes from my FFXI WHM/BLM Taru result of the random name generator (For some obscure reason that I forget, it wasn’t letting me choose a name to use). I had always planned on making him a summoner whenever I got high enough, but the level treadmill on FFXI is so slow and unforgiving that he never really made it past 20.

He was the first CoH char I ever created, but has been purged and re-created (both as a hero and as a villain) no less than 6 or 7 times now.

If I do ever get around to re-creating him, I’m torn. I would like to preserve some taste of his FFXI class history, but with Tetris already being a healer/summoner/passable nuke – that slot is kind of already taken on the hero side of things.

I’ll prolly post something once I make up my mind as to an appropriate build to live up to Kiki’s name

Update:

Ok, on Feb 19, I finally decided to sit down and come up with a tentative build that I’m going to play with until level 10 to see if I like it.

Kiki will be an Energy Blast/Dark Miasma corruptor with Super Speed and Medicine. This gives him rather potent damage, crowd control, and evac/wipe recovery capabilities. He gets good healing, two rez abilities (one for in combat, one for out), and picks up a summon at level 38.

Archetype: Corruptor
Primary: Energy Blast
Secondary: Dark Miasma

01) --> Power Bolt==> Acc(1)  Dmg(5)  Dmg(5)  Dmg(13)
01) --> Twilight Grasp==> Acc(1)  EndRdx(3)  Heal(3)  Heal(13)  Heal(19)  Rechg(19)
02) --> Tar Patch==> Slow(2)  Slow(7)
04) --> Power Blast==> Acc(4)  Dmg(7)  Dmg(9)  Dmg(27)
06) --> Hasten==> Rechg(6)  Rechg(15)  Rechg(37)
08) --> Sniper Blast==> Acc(8)  Dmg(9)  Dmg(27)  IntRdx(33)  Range(33)
10) --> Howling Twilight==> Range(10)  DisDur(11)  Slow(11)  EndRdx(36)  EndRdx(37)
12) --> Aim==> TH_Buf(12)
14) --> Super Speed==> EndRdx(14)  EndRdx(15)
16) --> Shadow Fall==> DefBuf(16)  DmgRes(17)  DmgRes(17)  DmgRes(21)  EndRdx(21)  EndRdx(33)
18) --> Stimulant==> IntRdx(18)  Range(37)
20) --> Fearsome Stare==> Acc(20)  Fear(39)  TH_DeBuf(39)
22) --> Aid Other==> IntRdx(22)  Heal(23)  Heal(23)  Heal(25)  Heal(25)  Rechg(39)
24) --> Resuscitate==> Rechg(24)  IntRdx(40)  EndRdx(40)  Heal(40)
26) --> Explosive Blast==> Acc(26)
28) --> Petrifying Gaze==> Acc(28)  Hold(29)  Hold(29)  Hold(31)  Rechg(31)  Rechg(31)
30) --> Power Push==> Acc(30)  KB_Dist(34)  KB_Dist(34)  KB_Dist(34)
32) --> Nova==> Acc(32)
35) --> Black Hole==> Acc(35)  Intang(36)  Intang(36)
38) --> Dark Servant==> Heal(38)

Update:

On March 6th, and in the wake of Vomes, I deleted Kiki (who was only level 3 at the time) and will probably be creating him again as a Hero char after all – likely with the same power sets as mentioned above.

Tetris

Archetype: Controller
Primary: Illusion Control
Secondary: Kinetics

Tetris is/was my primary character. I must have created him back during I4 or so (back long before I was paying attention to patch notes and such). He’s incredibly low level for the amount of play-time I’ve put into him – currently only 18.

I’m pretty certain that I like this plan for his development – that he become a primary healer, pick up his future summons as they are made available, and round the whole thing off with a bunch of Ice Mastery.

01) --> Spectral Wounds==> Acc(1)  Dmg(3)  Dmg(5)  Dmg(9)  Rechg(11)  EndRdx(11)
01) --> Transfusion==> Acc(1)  Acc(7)  Heal(7)  Heal(15)  Heal(15)  Heal(19)
02) --> Deceive==> Acc(2)  Acc(3)  ConfDur(5)  ConfDur(23)
04) --> Repel==> EndRdx(4)
06) --> Hover==> DefBuf(6)  DefBuf(46)
08) --> Superior Invisibility==> EndRdx(8)  DefBuf(9)  DefBuf(46)  DefBuf(46)
10) --> Flash==> Acc(10)  Acc(23)
12) --> Blind==> Acc(12)  Dmg(13)  Dmg(13)  Dmg(17)  Hold(17)  Hold(19)
14) --> Fly==> Fly(14)
16) --> Siphon Speed==> Acc(16)  Rechg(43)
18) --> Phantom Army==> Dmg(18)  Dmg(21)  Rechg(21)  Rechg(34)  Rechg(43)  Acc(43)
20) --> Speed Boost==> EndMod(20)  EndMod(25)
22) --> Increase Density==> DmgRes(22)  DmgRes(40)  DmgRes(40)
24) --> Stimulant==> IntRdx(24)  IntRdx(25)  Rechg(27)  Range(27)
26) --> Spectral Terror==> Acc(26)  Fear(31)  Fear(31)
28) --> Aid Other==> Heal(28)  Heal(29)  Heal(29)  Heal(31)  IntRdx(37)  Rechg(40)
30) --> Resuscitate==> Rechg(30)
32) --> Phantasm==> Acc(32)  Dmg(33)  Dmg(33)  Dmg(33)  KB_Dist(34)  Fly(34)
35) --> Transference==> Acc(35)  Acc(36)  EndMod(36)  EndMod(36)  EndMod(37)  Rechg(37)
38) --> Fulcrum Shift==> Acc(38)  Rechg(39)  Rechg(39)  Rechg(39)
41) --> Hibernate==> Rechg(41)  Rechg(42)  Rechg(42)  EndMod(42)
44) --> Frozen Armor==> DefBuf(44)  DefBuf(45)  DefBuf(45)  DmgRes(45)
47) --> Ice Storm==> Acc(47)  Dmg(48)  Dmg(48)  Dmg(48)
49) --> Ice Blast==> Acc(49)  Dmg(50)  Dmg(50)  Dmg(50)

Update

Tetris finally got around to using his free respec (awarded back around I3 or something). He’s since dropped repel in favor of group invisibility and is most likely not going to pick up the medicine power set. No further plans exist for him yet.

Columns

Archetype: Mastermind
Primary: Necromancy
Secondary: Poison

Columns is currently level 23 and holds the distinction of being the first char that I actually planned for more than a level in advance. At 15, I sat down with a pencil and plotted his skill choices through 38.

Future levels are waiting for I7’s Patron Powers to be announced, since I’m probably going to be choosing one of them for my remaining 4 abilities.

01) --> Zombie Horde==> Dmg(1)  Dmg(3)  Dmg(5)  Acc(25)  TH_DeBuf(33)  Heal(33)
01) --> Alkaloid==> Heal(1)  Heal(9)  Heal(9)  Rechg(15)
02) --> Gloom==> Acc(2)  Dmg(3)  Dmg(11)
04) --> Dark Blast==> Acc(4)  Dmg(5)  Dmg(15)
06) --> Combat Jumping==> DefBuf(6)  DefBuf(7)  DefBuf(7)  EndRdx(37)
08) --> Enchant Undead==> Rechg(8)
10) --> Life Drain==> Acc(10)  Dmg(11)  Heal(25)
12) --> Grave Knight==> Dmg(12)  Dmg(13)  Dmg(13)  Acc(19)  TH_DeBuf(19)  Heal(33)
14) --> Super Jump==> Jump(14)
16) --> Elixir of Life==> Range(16)  Rechg(17)  Rechg(17)
18) --> Swift==> Run(18)
20) --> Health==> Heal(20)  Heal(21)  Heal(21)  Heal(40)  Heal(40)
22) --> Stamina==> EndMod(22)  EndMod(23)  EndMod(23)  EndMod(31)  EndMod(31)  EndMod(34)
24) --> Stealth==> EndRdx(24)  DefBuf(36)  DefBuf(36)  DefBuf(37)
26) --> Lich==> Immob(26)  Hold(27)  Heal(27)  Heal(29)  Dmg(29)  Dmg(34)
28) --> Paralytic Poison==> Acc(28)  Hold(31)  Hold(39)  Rechg(39)  Rechg(39)  EndRdx(40)
30) --> Soul Extraction==> Rechg(30)  Rechg(34)
32) --> Dark Empowerment==> Rechg(32)
35) --> Poison Trap==> Acc(35)  Sleep(36)  EndMod(37)
38) --> Noxious Gas==> Rechg(38)

Update

Columns has completed the respec trial and will be dumping his nukes in exchange for debuffs. No other plans have been finalized yet. When I do decide upon how to spend the respec, I’ll post the details in a new post.

Kin’iro

Archetype: Stalker
Primary: Energy Melee
Secondary: Energy Aura

Kini is currently level 7 and isn’t planned quite as seriously as Columns is. It doesn’t really look like any of the stalker nrg powers are not worth having, so the decisions aren’t as clear-cut as they were in the previous case.

The only decisions that I’m really confident about are those made up to level 14 – and possibly that of grabbing super speed some point later in her career. And ditto to Columns’ indecision on levels 41+, as they’re pending I7.

01) --> Energy Punch==> Acc(1)  Acc(9)  Dmg(11)  Dmg(13)  EndRdx(15)  DisDur(15)
01) --> Hide==> EndRdx(1)  DefBuf(3)  DefBuf(31)  DefBuf(31)
02) --> Bone Smasher==> Acc(2)  Dmg(3)  Dmg(7)  Dmg(13)  EndRdx(17)  Rechg(17)
04) --> Kinetic Shield==> DefBuf(4)  DefBuf(5)  DefBuf(5)  EndRdx(9)
06) --> Assassin's Strike==> Acc(6)  Acc(7)  Dmg(11)  Dmg(19)  Dmg(21)  Rechg(21)
08) --> Build Up==> TH_Buf(8)  Rechg(37)
10) --> Recall Friend==> Rechg(10)
12) --> Placate==> Rechg(12)  Rechg(37)
14) --> Teleport==> EndRdx(14)  EndRdx(23)
16) --> Energy Protection==> DmgRes(16)  DmgRes(23)  DmgRes(36)
18) --> Power Shield==> DefBuf(18)  DefBuf(19)  DefBuf(25)  EndRdx(25)
20) --> Entropy Shield==> EndRdx(20)
22) --> Teleport Foe==> Acc(22)  Acc(40)
24) --> Hasten==> Rechg(24)  Rechg(29)  Rechg(29)
26) --> Energy Transfer==> Acc(26)  Dmg(27)  Dmg(27)  Dmg(31)  EndRdx(34)  Rechg(34)
28) --> Energy Drain==> EndMod(28)
30) --> Super Speed==> EndRdx(30)
32) --> Total Focus==> Acc(32)  Dmg(33)  Dmg(33)  Dmg(33)  EndRdx(34)  DisDur(36)
35) --> Conserve Power==> Rechg(35)  Rechg(36)  Rechg(37)
38) --> Overload==> DefBuf(38)  DefBuf(39)  DefBuf(39)  Heal(39)  Heal(40)  Heal(40)

Ok, so it’s 4am and I’m awake. Nothing new there. I was scrounging sites and looking for some bit of information obscure enough that I’d actually forgotten what my original goal was. Thus, it was only natural that I get sidetracked by whatever shiny object floated past me as I clicked URL’s at random.

I landed on a French anime wallpaper site. I’d not been there before, and I started looking at a decently sized collection of images that I’d also never before encountered. Naturally, I decided to acquire them – but the sheer scope of the site lended a non-trivial amount of difficulty to this. At least, it did until I realized that their images were stored in sequentially numbered files in sequentially numbered directories. No zero padding or anything.

This led to the following script, which is currently quite happily churning its way through the 36th directory – whatever show that may actually happen to be ;)

I am making one assumption here, that they haven’t divided things up into more than 500 directories. I could just as easily have done the sort of while loop as I did on the inside on the outside, but this is also meant as demonstrative code for future reference.

#!/usr/bin/bash
for DIR in `seq 0 500`
do
        mkdir $DIR
        cd $DIR
        IMG = -1
        while [ $? != 1 ]
        do
                ((IMG += 1))
                wget -c host/$DIR/$IMG.jpg
        done
        cd ..
        rmdir $DIR

        if [ $? == 0 ]
        then
                echo "removed $DIR, assuming we're done"
                exit
        fi
done

Why not just use wget’s spider functionality? I have in the past, but not for something this fun. Besides, this way I don’t have any cleanup to do (other than identifying shows and renaming their folders when all is done).

It’s working on directory number 45 now ;)

Tonight I wound up partying with a pair of rather cool players in CoV. On a whim, I asked them about their supergroup (CoH/CoV guild) and was invited to join. I am now a member of Malefactors Anonymous. Our colors are … pink and purple. It’s absolutely hideous on my character. Is humorously bad.

Founder(?) of the group’s name is Sweet Sakura – and naturally, she chose colours that worked with her outfit. Other guy is big robot looking thing, so it’s funny on him, but not as bad as on my necromancer. I am strongly considering putting together some sort of group photo (with before and after versions) just to prove how bad the transformation is.

It’s kind of funny how I happened to hook up with them. All three of us were on the same mission – and Sakura and I were both incredibly annoyed at it. Talking back and forth over public channel whether or not we should group to do it I wound up bumping into her as we both searched for our quarry (ie, we both landed on the same rooftop to regroup and get our bearings). So, yeah.

This should increase my general level of enjoyability in the game. They’re cool kids. I also got my stalker alt into the group (catgirl with pink energy punch of doom – Penny actually selected the costume). And, unsurprisingly, she looks good in the pink/purple combo.

If I don’t hear any more about my attempts at creating a web page for my WoW guild, odds are high that I’ll just scrap it and use the space for something for the CoV group :P

In addition to this group, earlier today, I wound up in another good party – a duo – with a guy who mentioned that he was dissatisfied with his SG, so I might try recruiting him to the pink side as well. Bwahaha!

Update – Mar 6

Apparently it wasn’t Sakura’s idea to go with the pink… so one can only assume that Kernel is to blame. Shrug. I’ve since spent a lot of time tweaking my costumes to make them look less ugly in pink/purple and am more or less resigned to my fate.

However… the thought of gradually shifting the purple to a shade of blue (since I do have that much access to the group’s settings…) is very tempting in deed :)

Ok, I know this has been around for a while, but I was listening to Mur Lafferty’s Geek Fu Action Grip today and she mentioned it. Which reminded me… It really is the ultimate geeky love song out there.

So, for those of you who aren’t familiar with Jonathan Coulton (and those of you who’ve simply forgotten), or if you’re just having a hard time getting into the spirit of the holiday, do yourself a favor and cruise on over to his site and listen yourself to some good old fashioned Skullcrusher Mountain. It’ll cheer you right up ;)

(I’m not linking directly to the MP3 as per the artist’s wishes – it’s not hard to find the download, just scroll down a bit)

A few other recommended Jonathan Coulton songs for today:

  • A Laptop Like You
  • Millionaire Girlfriend
  • My Monkey
  • Shop Vac
  • I Crush Everything
  • The Future Soon

Grin. So I discovered today that I had been sent some criticism about my recent little hunter rants. Apparently somebody I had pointed at them turned around and relayed them on to his hunter friend.

The consensus passed on to me that the text was ‘worthless’ and that it didn’t contain anything not already said by Blizzard.

I guess I should respond to this somehow, but I’m not entirely motivated to do so. My intent was not so much as a re-education of existing hunters – but as a bit of a preview of the class for those who’re considering rolling one. Of course, any hunter who did find enlightenment in these mumblings… probably needed a good bit of help ;)

As far as the notion that Blizzard has said any of this stuff… *heh* They list skills and general numerical effects of the abilities, but don’t ever talk about side-effects or admit that some skills are useless, etc…

*shrug*

I am still planning on writing something actually targeted at hunters. The idea being some suggestions on how to deal with retarded parties and take back your role as an essential member of an effective group.