Home
Lots of bitching and narcissism!
20 most recent entries

Date:2009-11-26 22:42
Subject:RSS test
Security:Public

Time to move into the 21st century.

post a comment



Date:2009-09-01 03:52
Subject:A little more mileage from Winamp 2.x
Security:Public

Winamp. If you're relatively new to the Internet world, or if your participation 15 years ago wasn't obsessive compulsive, this name might have eluded it completely. If you've tried it recently, it might as well stand for "Windows Media Player part deux." However, once upon a time, those of us who searched for a reasonable music player to play the assortment of audio formats beginning to proliferate the web found Winamp, at that point 1.x, and later 2.x, and loved it. It was small, fast, and got the job done.

I found it so incredibly tailored to my needs, that to this day, I have a Windows machine for almost unitary purpose of running Winamp 2.80 to talk to my speakers and give me music.

Winamp 2.80 has a few drawbacks though, namely, its MP3 decoder comes from back in the stone age, and has some annoying troubles decoding variable bitrate (VBR) MP3s, particularly in computing their running length, as well as reading back ID3v2.4 tags, particularly ones which use a character encoding which isn't either ASCII or UTF-16.

Well, for those of us running Winamp 2.x, there is still some friendliness in the world.

As I discovered recently, when I attempted to give my Winamp some ability to properly read back my ID3v2.4 tags (since I tag all music using UTF-8 encoded tags, and ID3v2.3 doesn't support UTF-8 encoding) Winamp 2.x has the same plugin architecture used by newer versions of Winamp, specifically, as I discovered using a bit of the ol' binary search, Winamp versions <= 5.22 still use the same identical plugin format.

What does that mean for you, the savvy Winamp user? It means that you can go grab Winamp 5.22 (disgusting though it is), and rip out its in_mp3.dll file from the plugins/ subdirectory, then go back and replace the old in_mp3.dll that shipped with your Winamp 2.x. Restart, and voila! Now you can benefit from many of the improvements to said .dll made by Nullsoft during your refusal to upgrade, without compromising the quality of your music player!

The in_mp3.dll which ships with 5.22 also isn't perfect; sadly it still mangles genres and dates in ID3v2.4, and occasionally (I don't quite know why this is) can't find the artist name. However, it certainly works *better*, and has much less trouble with VBR files.

Winamp 2.x. Still the best, since its faults are still miniscule compared to every other competing solution.

4 comments | post a comment



Date:2009-07-29 02:28
Subject:Words of wisdom, kids
Security:Public

For reference, only *actual insane people* think they're smarter than mktime().
Do not attempt to replicate its behaviour under any circumstances.

  -- apenwarr

Had I known this a few hours ago, I would have saved myself a few hours.

post a comment



Date:2009-07-20 16:24
Subject:Lost again, somebody tell me how to get there
Security:Public
Music:Some commercial trance crap good for work

I haven't updated in a very long time, and that's unlikely to change, as I've been fairly busy lately, and the busier I get, the less interesting my personal anecdotes, so the less to write about. I did come back from 2 months in Europe though, and I'm still alive, so I guess that's something.

I have had a bit of time to write up articles in my more technical (yes, it's possible) blog over on http://www.navarra.ca/blog, though, if you're into that sort of thing.

post a comment



Date:2009-03-11 00:39
Subject:Personal update and Ender "trilogy" reflections
Security:Public
Music:Absolutely soulless new-age crap by Enya.

It's been a while since my online self has gone and written up one of my usual stream-of-consciousness blunderpieces about my recent experiences, so, being sick for the second week in a row and ejecting kilograms of phlegm onto my keyboard every half-hour, I figured today was a great day to do little-to-no work and feel better by talking about myself.

I've been very busy in the last while, for starters.

For those not 'in the know,' ie. who don't live with me or interact with me on a daily basis, my startup-starting life has taken a turn for the repetitive, as I've gone and co-founded a new shop; EQL Data. Rather, the shop is the same, a room in my house, but the premise is new. Rather than my usual system of yelling loudly about 'the system,' why it sucks, and attempting to disrupt people's habits and way of life, the premise here is to improve and simplify something that they grapple with yet find necessary due to its significant benefits; that mysterious 'something' being Microsoft Access. That's right, that Access, the one that mysteriously shows up in your copy of Office, and that you've either used on a daily basis for the last several years of your life, or have never touched because it's confusing and you like Excel better.

For those latter people, consider Access as Excel's bigger brother, when a single spreadsheet with a number of rows isn't enough, you can switch to multiple spreadsheets all linked to each other. The neat thing about Access is, unlike all of its competing products, you can use it without ever knowing how to program. The significantly less-neat thing is that Access has a lot of downsides, mostly completely unrelated to lack of programming, but annoying to the user nonetheless. Do you like to lose your data if multiple users are poking at your database? Access has that feature covered.

For years now, Microsoft and other entities have been 'solving' this and other shortcomings of Access by suggesting migration paths and tools to move you to other technologies, and then conveniently letting you field the price for this migration. It's expensive, it's time consuming, and it suddenly has people finding that their once-simple database operations need programming expertise.

No longer. EQL Data. Check it out.



That mostly summarizes the abstract of what I'm doing. Specifically, at least lately, my part in this fine adventure has been spreading the good word, educating my common man, and implementing a translator and generator for web-viewing Access queries. Check it out: one of the features EQL Data wants to provide is the ability to display your Access database on the web. Throw it into EQL and suddenly it's all there for you to view; want to show inventory information, particular tables, customer data, columns, or query results to friends, business connections, or customers? No problem! One button click and it's all there.

The tricky part is that Access queries are basically formatted as a configuration file with a whole bunch of parameters, and there doesn't exist a parser into some sane format for this, nor a translator from said format to the back-end we've concocted to store data. My work has gone pretty well... though it's taking significantly longer than I expected, I can translate the vast majority of Access query objects I've encountered now. In the process, I've learned some things about tokenizing and parsing, and designed a whole wackload of new datastructures for testing and storing intermediate data. It's been fun. Only a few more things to go.

I've also met with a lot of people to spread the love. Want to hear more? That's what coffee meetups are for my friends.



That part said, it isn't why I decided to make this entry. The reason I decided to write this is because I just finished reading the 'original' Ender Series (read; "Ender's Game", "Speaker for the Dead", and "Xenocide"), again, and have drawn new conclusions from my last reading years ago. Since my dear friends [info]skonakov and Katya bought me the entirety of the series (including new books I hadn't even heard of) for my last birthday, I feel compelled to re-read the whole series as a token of my appreciation. That included re-reading the books I had read long ago and had come to forget.

Now, why is this entry important. Well, some years back, I remember having an argument with either Mr. Samir Patel or [info]icedrake, I can't remember who, where I argued that Xenocide is a better book than Ender's Game. I completely disagree with my claim, though I still agree with the arguments I presented, ie. that Xenocide was a far more expansive imagination at work, a more concrete tying together of science-fiction ideas, and generally a more difficult, philosophical novel to grasp.

The problem is that I don't necessarily care about that anymore.

When I made this argument, I must have been 19, maybe 20. Maybe I was even 18... second-year sounds about right. Regardless, I was very young, impetuous, egotistical, and I was still sponging up tons of new ideas to juggle around my brain. I was still forming my ideas of what relationships between humans mean and how they function, and more importantly, I didn't really care, I was entering a stage of life where all relationships seemed transient, and every day that I woke up I felt that my past self was inconsistent with my beliefs and values.

As I write today's entry, I'm 25. Sure, in the scale of human experience, I've just barely entered real adulthood, I've only recently joined the quarter-century club, and I've only just left the coveted 18-24 statistical age group. That said, a lot of things change between 18 to 25. For one, you change far more gradually as a person, every morning that you wake up is not a wild shift of being and personality; it's a slow evolution where any new information you receive only minutely impacts your core tenets. You don't grow drastically, you're not driven purely by hormones, you understand more about long-term goals and how to strive to gradually achieve them. Your life is less a set of jerky motions of a steering wheel to attempt to keep the vehicle going straight instantaneously, it's more looking to the horizon and gently orienting the wheel to point towards it, eventually.

My perspective on relationships has been molded by many more years of varying interactions, by both applied and theoretical understanding of humans, by interactions at soccer games, Starbucks, in markets, on trains, in the emergency aisle on an airplane, sharing laughs and beers, and between the pages of works by Erich Fromm, Robert M. Pirsig, and many others.

My perspective, therefore, on the Ender series, has shifted significantly. The punchline? I think "Speaker for the Dead" was the best book of the series. Here's why, in a lengthy exposition.

"Ender's Game" was a monumental work. Not only for my developing science-fiction mind when I read it, but in general. It centred around a protagonist who, unlike the brazen, teenage heroes present in other works, those striving for personal success at the cost of their own stability, willing to uproot themselves and fight for a goal throughout the galaxy, was merely a child in his formative stages, shaped by others and ultimately, used by them for a goal he never would have reached for himself. Its character development was unique and special, one might wonder if Shinji Ikari of Neon Genesis Evangelion was at all influenced by Ender, the child in question. Like books written by the Strugatsky brothers, the science-fiction components, while brilliant in their own right, served as a backdrop for the wonderful human drama which played out in the book. "Ender's Game" received critical acclaim. It built whole communities of people who could truly identify with the protagonist and the essence of his struggles, who absorbed the book and made it their own. It prompted science-fiction to be better.

What made Ender's Game so amazing to me was that it was merely a precursor, a set-up to Speaker for the Dead. I should be clear; even the first time I read the series, I thought so, I was shocked that something so compelling as Ender's Game could be merely an introduction, a precursor for a work so involved that it needed an entire novel as an introduction. The first time I read Speaker, I thought it was 'good.' It was more conservative, more reserved in its science fiction, and that's why I didn't readily latch on to it, that's why, as an 18-year-old looking for punch and catharsis, it didn't mesh and didn't register in my mind. All these reasons are also exactly why Xenocide did impress me.

But, that was years ago, and the parties with whom I had my verbal spar already know what I said, or have long forgotten.

The point is, this time, as I read Speaker, I was enthralled by how real every single sentence of the book felt, and how it flowed so naturally and subtly that only when you put down the book for another coffee did you, the reader, realize that the book talked about a distant human colony on a planet far out of our solar system, surrounded by a deadly mutating virus and a culture of extraterrestials, in a universe set several thousand years past our own.

The characters were so beautifully done, so human. As I read in an excerpt of Orson Scott Card's after the fact, he himself realizes exactly this. He realized, through some stroke of genius, that what makes characters be truly real is not what they ponder in their internal monologues, it's how they act in relation to others. Speaker centred on several characters; Libo, Pipo, Novinha, Ender, Miro, Ela, Ouanda, Olhaldo, and Grego. And one other boy, whose name I can't immediately recall. I blame Enya, whose music has insidiously creeped onto my playlist. The point is, we've got nine characters here. Let's eliminate the first two, because what I'm about to say concerns primarily the last seven - what Card found is that a character is defined in the mind of the reader by how they bounce off of their relations when surrounded by others. For example, say we have characters A and B. We have only one relationship to describe, with two perspectives; the relationship between A and B, from each of their viewpoints. If we have three characters, A, B, and C, we suddenly get up to four relationships- A & B, B & C, A & C, and all three of them together. As you can see, the number of relations and viewpoints increases exponetially with the number of characters. Seven characters (as those seven were caught interacting frequently) mean a lot of potential relationships and viewpoints to consider, yet, Card did this without hesitation, without trepidation, he wrote this absolutely fantastic novel where the relationships were characters were so fluid that I completely forgot I was reading a work of fiction. That my friends, that is writing genius. That is the level of writing proficiency I would love to achieve one day. To have the interactions between the characters so amazingly natural that the background setting, the flight of fantasy which the author is allowing me to experience, seems like a walk in the park rather than interstellar travel to other planets.

Here, however, is where the fourth wall is broken - Xenocide. While I accept the author's claim that he never really intended to write a trilogy, and that his agent basically asked him to write a third book because she had already sold the "Ender trilogy," it in no way excuses what I consider the absolutely sub-par writing that I was presented with in Xenocide. Let me explain; compared to many other works I've read, the work was brilliant. Visionary. Calculated. Well-argued, fundamentally supported. By all rights, it was genius. However, when it came to the pawns playing out their roles in the Universal framework Xenocide provides, I found that, more often than not, those pawns seemed like caricatures of their former selves in Speaker for the Dead, undeveloped manakins juggled by the hands of a skillful author. Key; I no longer saw them as human beings depicted by the author, I saw them as actors in a play scripted by the author. Perhaps it was the lack of experience, Orson Scott Card is only 57 himself, yet he was writing about adults in their sixties, people who have an outlook and reflection on life which he himself did not yet possess. Truthfully, though, I think even this is an excuse, the characters who were children in Speaker for the Dead are in their twenties and thirties here, and they are just as poorly drawn out as the adults. They are no longer real, their interactions don't seem to match their personalities half of the time, and I find that their descriptions are rushed, unbelievable, and inconsistent with their ages and even internally inconsistent with their prior descriptions. Bricklayers turn out to be philosophical geniuses from tender young ages, siblings who have grown up with each other for 20 years turn out as vile and embittered with each other as young teenage siblings. There is no growth, they seem confined to their childlike characters in perpetuity. Ender himself seems to have experienced stagnation; he seems much the same at 60 as he did at 20, except that less of the book focuses on him, and so glimpses of him almost seem annoying, distracting, as while reading them I remembered the brilliance of Speaker, and was constantly reminded that I am reading a book which is failing to capture the essence of its predecessor. Jane, an entity with so much experience in her memory that a mere 30-40 years could hardly change its personality, is, by contrast, so vastly different from her description in Speaker that I could barely tolerate her portrayal.

I don't know how I failed to see these things the first time I read this trilogy, but the fact that I did fills me with a certain glee and a brooding understanding that, if I ever needed proof that age does indeed change a person's outlook and viewpoints, this is it.

To whomever I made arguments defending Xenocide; I humbly concede the point. You were right. Ender's Game is a better book. If, however, you wish to attempt to convince me that Ender's Game is a better book than Speaker... well. We've got a new argument on our hands :)

post a comment



Date:2009-02-12 12:22
Subject:Things you should know about Humane Societies in Toronto
Security:Public

I just spent 20 minutes on the phone waiting to talk to a clerk at the Toronto Humane Society. During the time I was on hold trying to get instructions for what to do with a house sparrow that I found outside with either a dislocated wing or tail, the sparrow got away and was lost in a sea of people going to lunch. I wasn't able to locate it anymore.

I am not terribly impressed with a society that apparently has $10.7 million or more to spend annually, given that they care for approximately 9000 animals. Assuming, say, 4 months of care and rehabilitation per animal, you're talking just short of $10/animal/day, which, given the tendency of shelters to put animals in the same cage, buy food in bulk, and have caretakers service many cages, is actually a fair bit of money.

I'm pretty sure that though Marta (my dog in BC) is 15 years old, care for her costs substantially less than $10/day.

You could really afford another receptionist, Toronto Humane Society, so that I wouldn't have to stand outside trying to figure out what the best procedure to save a wounded sparrow is.

Catharsis:
As I've discovered with more research, the Toronto Humane Society seems very well publicized, but is perhaps not such an awesome idea. The city of Toronto manages its own shelters, apparently having pulled the contract away from the Humane Society in the '80s. I didn't know about these shelters at all, but will definitely contact them instead in the future.

Yes, I'm bitter, but hopefully you learned something.

post a comment



Date:2008-12-16 17:18
Subject:No updates in a while; travelling again
Security:Public
Music:ABBA - Knowing Me, Knowing You

I've been slacking on posting here, replying to emails, or generally being social outside of Toronto. It's holiday season; time to change that.

Extended trip to BC from the 17th (tomorrow) to the 9th of January.

Tons of time to visit Victoria, Portland, Seattle, and maybe... San Francisco?

Related people will be hearing more.

In the meantime, if you want a Vancouver postcard, you know who to email with your address.

2 comments | post a comment



Date:2008-10-28 11:55
Subject:OMG Fallout 3!
Security:Public
Music:DJ Tiësto - Magik 7 (Live From Los Angeles)

OMG! Fallout 3 is available on Steam in 2 hours!

I've got my finger on the trigger.

post a comment



Date:2008-10-26 03:02
Subject:... on a completely unrelated (food) note...
Security:Public

Today I decided to cook something fancy, because, you know, I'm sick and at home and have lots of time to spare before dinner, for once.

My choice was lamb chops braised in a mixture of red wine, tomatoes, and olives. I used a derivative of this recipe, if you're interested.

The result was quite good indeed... the lamb turned out much more tender and juicy than I've ever managed to make lamb before, the sauce was quite excellent (though I found that I had to reduce it for significant periods of time to get the desired thickness), and the meal went over deliciously with mashed potatoes.

Two issues:
- though I found a nice dry table wine to use here, I think a shiraz was a poor idea. I settled on a 2004 Ruitersvlei (South Africa) Shiraz, and it turned out to have a slightly smoky flavor which was at odds with the kalamata olives and succulent tomatoes I chose.
- Also, I added a few too many olives, and, coupled with the added time I allowed the mixture to simmer and reduce, this made the resulting sauce a little too salty.

All notes for next time...

post a comment



Date:2008-10-26 01:04
Subject:S.T.A.L.K.E.R. Clear Sky Part 2 - long overdue
Security:Public
Music:Moby - My Beautiful Blue Sky

OK, so I was going to do this shortly after playing the game for the first time, and that failed miserably, because I was a combination of too lazy, and preoccupied with other things.

However, it's now 1:10 AM on a fine Saturday night, and I'm sick as a dog avoiding playing videogames or doing actual work, so I figure updating my Stalker review seems reasonable. I also happened to be too sick to attend [info]uwmathgal's birthday, which is unfortunate, nor my friend A.'s loft-warming party. Oh well. Instead, you get a follow-up to S.T.A.L.K.E.R. Clear Sky review part 1.

I left off on the previous review by discussing the stupid machine gun at the Cordon.

I'm going to ignore most of that review, as I played the game again, with patch 1.5.0.5, and it fixed a lot of the things I bitched about, while introducing only a few things which pissed me off.

Notably, the hard 50 kg weight limit (no matter what weight limit you actually had via suit and artifacts) was fixed, a whole fuckton of crashes were fixed, and distribution of ammunition was significantly amended (to the point where it's almost feasible to use 5.56x45 mm rounds for most of the game, though I still didn't), not to mention the fact that I actually managed to get a Heckler & Koch G36 this time around... and join the bandits.

OK, let's get back to discussion here. My sole (read: only) objective this time around was to join the bandits. I hadn't been able to do it before, and I wanted to see how this would play out. Let me break the tension here by saying that I did succeed, but I quit the game a mere 8 gameplay-hours afterwards, because I was so frustrated with it.

First of all, one of the things 1.5.0.5 changed was that, when coming into the Cordon, it's no longer possible to escape the auto-firing chaingun of bullet death by just heading North throughout the swamps, and heading over to Sidorovich by crossing the train tracks. The Stalkers protect the train tracks, and they now dislike you (as they're supposed to, I guess, though they sure didn't when I played the game the first time). They will fire on you if you get too close. Take a deep breath and get ready to use those bandaid/medkit buttons, because you'll need them to survive that gun.

As in 1.5.0.4, the Stalkers on a hill in the Cordon by the vehicle factory offered to help me get all those crates of ammo supposedly stored there by the military for 500 RU, but sure enough, just as in that patch, whether you give them money or not, they're sure as hell unhelpful and don't move at all. Whatever. Fuck you guys, I'll keep my 500 RU and use my MP5 to mow those fuckers down. Oh, right, they have AK-74s. Well, a few loads and saves later, I have your ammo, bitches.

Anyway, yada yada, you do the Stalker mission, you go wipe out the military base and steal the NPR-21 medkit (and get yourself 2 AN-94s, as I mentioned in the previous article, my choice weapons for the game), and then you head up to the Garbage. Play out the storyline elements there, and you've now hit the actual QA boundary of the game, since after this point everything still fucks up... just not as badly as in 1.5.0.4. The Freedom dudes at the north entrance to the Dark Valley from the Garbage no longer give you a mission (which you auto-fail) every time you enter the Dark Valley, only the first time. However, they still won't talk to you, ever, and don't actually move, so if you want Freedom to succeed in killing Duty, you'll have to mow them down, though you're on their team, since they're not getting with the program and capturing any control points.

But... the story is mostly unimportant. I thought about what I would say about it, and other than some things which are irrelevant in 1.5.0.5 (though they sure pissed me off in 1.5.0.4), there are only a few comments I have about the ending... OK, what the fuck, you're entitled to my opinions:
- Sakharov: He'll give you the coolest quest in the game; go meet up with some Stalkers and wipe out Zombies. Holy fuck *yes*. Give it to me baby. Lemme rip those fuckers apart. This will, refreshingly, be the only time in the game you're paired with A.I. that doesn't make you want to cut the programmers' balls off for being so dumb. These guys work as a team to kill more zombies than you yourself can. Anyways, that's not the comment, the comment is that, once you complete this mission, his dialogue will forever be "Please go to Lefty (Lefty is the leader of said Stalkers)." Hm. OK. Why don't I trade with you instead, given your insanely low barter prices on high-end armours? Stupid.
- The Red Forest: Try entering it with an armor that isn't the Bulat armor, the SEVA suit, or the Exoskeleton. I dare you. Come on. Do it. Guaranteed death from radiation, psy, whatever. Given the fact that the Stalkers/Duty members around you are wearing nothing but rags, and old Forester has that cheesy Russian winter hat, this pissed me off to no end. Repairing a SEVA suit is expensive.
- Upgrading any gun that was given to you pre-upgraded, or that you found in such a state: notice how you couldn't do it? OK, in 1.5.0.5 you can, lucky devil, but 1.5.0.4 meant that you'd never be able to upgrade those guns past the state which you acquired them in.
- The "Flame" quest: At the Army Warehouses, you really, really want to talk to the Freedom dudes lounging around there picking their asses. One of them will give you a quest to give him a "Flame" artifact, and though you'll lament losing such a nice artifact, he'll give you an FN F2000 as a reward. Booyeah (since I was unable to buy this gun anywhere).
- Limansk: Sucks balls. Seriously. It looks so cool when you look at a map of it, and there's all these guys firing at you everywhere... but when you've gone through it all, why the hell is it really just one linear path? Give me back the Prypiat of the original Stalker! Fuck that bullshit.
- The helicopter at the abandoned hospital: oh fuck! It's attacking me with side-mounted barbette miniguns, and all I have is this assault rifle! How the fuck do I take it down? Oh... I shoot at it. With my assault rifle. Good thing its minigun doesn't actually damage me much. Stupid.
- Machine gunner shooting at your Clear Sky dudes as they run around a building: The scripting here is pretty neat. The fact that GSC put an actual dude behind the machine gun which is mowing you all down tells you a lot though... while you're supposed to let your scripted dudes take out the gun with a grenade or whatever, they actually suck at it and keep dying, so it's probably in your best interests to just take off the machine gunner's head and silence the nest yourself.
- The ending: sucks. This was the worst part of the game for me, as I had poured hours into playing it, and expected a tough but winnable final battle replete with explosions, squads pelting each other left and right, great team-play, and a captivating ending. What I got was random gunfire all around me (ineffectual), while all the enemies who spawned near me shot at me immediately. I got (with no explanation) Strelok running around with some kind of psy armor? Which my gauss rifle was supposed to weaken? I got no squad support whatsoever, and I got guys from something like 3 stories down lobbing the usual grenade with pin-point accuracy at my feet while I was hidden behind some crates avoiding a hail of bullets from team Monolith. Worst of all, and I really mean worst, the script governing how Strelok moves sure didn't anticipate him being hit by a grenade and flipping over the side of the railing of the platform he was on, and hitting the ground. He stood there, motionless, with his psy-shield nearly full, health full, convulsing like he was having seizures, and it gave me no satisfaction to just deliver headshots to him with the Gauss rifle while he didn't even move. Sigh. I felt utterly robbed of my victory.

Anyways, those are my thoughts on the actual story itself. Forget that shit. Let's talk about why I played the game again - the bandits. I'll give you my definitive version of joining the bandits and doing work for them. Hopefully, you don't run into the same scripting bugs I ran into joining them, but, if you do, this may be of some use to you.

So, obviously, don't join the Stalkers. Don't join Duty (as they are immediately hostile to the bandits even though they have no objectives which involve explicitly killing them). Freedom is cool, they're so laid back that they don't really care about the bandits. Oh, Freedom. I joined them too. That made for a real problem when you're an enemy with the Stalkers... I'll get to that shortly.

If you talk to Yoga (bandit leader) when you get to the Garbage, you'll be able to do all the prerequisite tasks for joining the bandits, kill some dudes, take over the Flea Market (only to have the bandits lose it when you walk off the map... idiots). Then, you'll ask to join... he'll give you some crap about checking your background before contacting you. I checked the forums for this, and it appears to be a hack by GSC to prevent you from joining the bandits too early... people have said you have to do Duty's quest (clearing the underground) and then come back to the Garbage before Yoga contacts you and allows you to join the bandits.

.... not so for Luke here. I cleared out the underground. I went back to the Garbage... nothing. I tried talking to Yoga... oh oh. He won't talk to me. No dialogue button, I don't get a "talk" option looking at him. Maybe it's a temporary bug... leave to the Dark Valley, come back, same thing. Go to Yantar, complete Sakharov's objectives, come back... same bug.

I was pretty devastated. No communique, and I was pretty sure I was just fucked.

Well... not entirely. Some circumstances (which I don't fully understand) cause Yoga to leave the bandit base. He just kind of... walks around the map for no reason? As he runs around the map, two interesting consequences follow: you can kill him. In the Bandit base, you can't draw your gun, but while he's outside, he's unprotected. Killing him seems to produce nothing positive for you, though... I killed him once while being a member of the bandits; my popularity with them didn't drop at all, but the bartender doesn't take over control of the clan at all... nothing seems to happen, except Yoga is gone. Sigh. The other consequence is that, while he's running, he's not buggy and will talk to you. So, I found him running around outside at one point, talked to him, and sure enough, he lets me in. And... holy shit! 20000 RU for joining! Giddy up boys, I'm all yours. Let's kick some ass!

I found that kicking ass with the bandits, however, is very difficult. They want to take superiority in the garbage, while Freedom, the Stalkers, and Duty are piling into it. You don't want to piss off Freedom (since, hint hint, if you're friendly with both the Bandits and Freedom, you'll be able to fully upgrade every gun in the game except the machine gun. That's right, between those two technicians, you'll have everything. So, don't piss off Freedom), so you've got to kill Duty and the Stalkers, but... Duty is constantly sending squads into the Garbage. It's a relentless stream. Your bandit friends will try to shoot at them from 300 metres with shotguns... useless clods. Duty with their assault-upgraded AN-94s will mow down your bandits and keep beating you back unless you're there... which gives you precious little time for expansion. Tons of bugs regarding the usual point-ordering in which you have to grab points also doesn't help... needless to say at one point I just let Duty run amok while killing Stalkers (who, since they seemed to have recaptured the Flea Market, were sending reinforcements at me from both sides; the Flea Market, and their base in the Cordon), and when the Stalkers were sufficiently weakened, I ran back and forth between the barricades by the Bandit base and southern control point which leads to the Agropom... in this fashion, I somehow managed to get the Bandits to get into the Cordon. This was HOURS of gameplay. I ran into the Cordon after them, and took out the Stalker base by myself, knowing all too well that I had very little time before the Bandits lost some control point they needed for an objective and this mission would disappear. For 3-5 seconds (I didn't really keep track), I had the Stalker base. Then, the Bandits indeed lost some point, and though for another 9 hours of game time, I tried replicating this feat, I was unable to.

For once in their miserable lives, the game designers seem to have properly concocted a reward for this seemingly impossible task... Tooth at the Bandit base will give you a whole fuckton of Rubles, a GP 36, and a Bulldog 6 (real-life RG-6 grenade launcher) stocked with VOG-25 grenades! Wow! I thought this was amazing, and the GP 36 truly lives up to being an amazing sniper-assault rifle... other than that pesky 5.56x45 mm ammunition it needs. Not only is it still rarer than the 5.45x39 mm ammo, it also damages your gun far more to fire it... and the GP 36 isn't cheap to keep repairing. Disappointing, though inevitable.

Regardless... bandits. If you really want to waste hours of your life; worth joining. Will frustrate you so much (especially if you join Freedom later, and realize that without killing bandits - who you don't want to kill because you want access to their technician - it's impossible to effectively take control of the Garbage) that you will finally uninstall this game to play Bioshock.

OK, I'm getting massively tired, and I only have a few more comments anyways. M209 grenades... more plentiful (though not by much) in 1.5.0.5. Finally, you can use those NATO assault rifles, which is great because, though no rifle in the game matches the AN-94 (fully upgraded) for rate of fire, the SG 550 comes close, does more damage (important in a close-assault rifle where going for the head may be prohibitive), is more accurate, and uses the SUSAT scope rather than the PSO-1 (personally, I prefer the PSO-1; it's more universal since my assault rifles and sniper rifles use a derivative of the same scope, and it allows you to do rangefinding and precision shooting, though really that only matters if you use it to shoot targets at above 800 m - below that just use the top chevron and you're fine - which is unlikely with an assault rifle, however, the SUSAT works better in low-light shooting since it has superior illumination).

Next, why, WHY did they seemingly remove all the helpful artifacts which increase my carrying capacity more than 10 kg?! Finally, with 1.5.0.5, the extended carrying capacity actually works. However, I wasn't able to find a single artifact which increases it more than 10 kg... and believe me, I remember running through this game the first time and finding many. Huge piss-off when I've got the Bulat armor and I see a bunch of AN-94s I can sell for cash sitting in front of me.

Lastly, since you've made it this far in my reviews, you get a bonus: a much more concise and entertaining review of Clear Sky than my own: The Zero-Punctuation Review! (thanks [info]cpirate!)! Yay brevity!

OK friends, I'm sure I have more to rant about in this game, but let's just pretend I don't and move on with our lives.

2 comments | post a comment



Date:2008-10-08 23:55
Subject:Rushed update as always...
Security:Public
Music:Caribou - The Milk of Human Kindness (the album, not sure what track)

OK, so I haven't finished the previous update yet. Lots of reasons involving inebriation are responsible.

Regardless, I'm heading off to New York city again this Friday morning, and will be there until Tuesday night. That means if you want a postcard, you know who to email with your address.

See you peeps later!

post a comment



Date:2008-09-29 23:46
Subject:S.T.A.L.K.E.R.: Clear Sky - not for pussies comments and suggestions
Security:Public
Music:About 10 albums as I was writing this

I just completed S.T.A.L.K.E.R.: Clear Sky, the fairly long-awaited expansion to the Gamespot "Special Achievement Best Atmosphere 2007" award-winning game, S.T.A.L.K.E.R.: Shadow of Chernobyl.

Since I've posted up the links regarding these games, I won't say much more about the basic premises and all that cal... the idea is awesome, it's a System Shock 2-like interface coupled with a world created by the Strugatsky brothers. The game itself was... well... epic. Epic in that it was long (took me over a week to beat, playing several to many hours per day, sometimes the entire day), but the length wasn't only attributed to the storyline and possibilities therein, but also to the enormous amount of bugs I encountered trying to beat it.

This game was a pinnacle to lack of QA testing of your software. Seriously. I'm using the latest patch here (which is the fourth patch to come out in like... a week?), and if I weren't brilliant, or good at Googling (which I should have tried first, really), I would not have finished this game thanks to crashes and bugs preventing my progress.

This LJ post, being very Googleable, is intended for people who are frustrated with this game. It's not really a walkthrough, though you may find some parts are total spoilers. If you don't want any spoilers, don't read it. If you want to offload your frustration on a beer and someone else's writing, then you've come to the right spot. Additionally, you may find some of the stuff I post here is useful to you in actually finishing the game. Some is also just discussion. By the time I scrolled back up to this paragraph, this had gotten fucking LONG. So by now I feel it's also a good primer regarding the question "do I want to play?" Read the article. See how involved it is. Without further ado, I'm going to get to typing about my impressions and such in the game, feel free to chuckle along. Oh, this isn't organized at all, I just realized. Oops.

First of all, difficulty. If you're starting a new game, it's pretty much the only decision you have to make. I played the game on the hardest difficulty, Master. That's right, lower difficulties are for nursing babies and pregnant mothers, and if you're reading an article about a videogame, chances are you're neither. The difficulties' descriptions represented nothing to me, laid out on four lines of text, anyway, so I figured start right at the top. I kept this on the highest difficulty for the whole game (yes, as innovative as it is, Clear Sky - from now on abbreviated CS - allows you to modify the difficulty while you're playing). Sometimes, I wish in retrospect I hadn't, because I might have enjoyed some portions of the game more. Let me discuss this in some detail.

If you've played the first S.T.A.L.K.E.R. - from now on referred to as Stalker, even though it's actually an (idiotic) acronym, because the periods and capitalization piss me off - you know that the gunfights in the game are astoundingly cool. Enemies move as squads; they have leaders who give orders, grunts who move up and flank you. They use cover. They duck. They go prone (even though you can't, how lame). They alert their buddies to your location. They are hard to kill. This is exacerbated by the fact that the game developers rightfully decided to make you equivalent to your enemies; what kills them kills you. No more Jedi Knight-like "you take about 100 blaster rifle hits but a Stormtrooper goes down in 2" hypocrisy. Here, a headshot just kills you. If you're not wearing armor, which, at least in the beginning, you practically won't be, prepare to be owned by any enemy with a remotely reasonable weapon (at least, given what range he engages you at).

With all this in mind, you'll want to seriously consider the 'hard' difficulty. I had a few problems with this:
- First of all, I should mention that CS gives you the ability, unlike the original Stalker, to mod your weapons. This is mighty insanely cool. Depending on the weapon, different mods are available, though very generally, there are two 'classes' of mutually exclusive mods (ie. the mods in one class make some of those in the other class inaccessible; you can only get one type of 'barrel replacement' for instance): 'turn your weapon into a close combat behemoth' or 'turn your weapon into a precision sniper rifle.' OK, for shotguns there is just 'make it slightly more accurate at the cost of not being able to use 12x70 shot rounds' or 'make it the lethal monster it's supposed to be.' Depending on the weapon, the modifications might be minimal or extreme; ie. with the "SGI 5k" rifle (real-life SIG SG 550), turning it into a sniper rifle reduces your rate of fire by something like 30%, with something like 100% accuracy. Pretty sweet.
- OK, that point being made, on the Master difficulty, I wouldn't bother investing too much into the 'close range assault weapons' upgrades. This is a bit sad, as the idea of heroically charging into a fray blasting bullets seems like a pretty cool idea; however, thanks to some idiotic decisions, this won't really be happening. The programmers seem to have decided that, in order to make the AI difficult, they would greatly increase its ability to lob grenades at you. While (thankfully, dear god thankfully) they added an indicator on-screen to show you where, relative to you, a grenade is landing, this doesn't really address the fact that the AI throws with pin-point accuracy directly under your feet. Grenades are lethal. If they land within a few metres of you, you will die. My observations suggest that the AI will throw them at you while you're within about 200 metres of them, especially, of course, when you use cover. This is perfectly fine, again, I do the same thing to them. That said, in the heat of battle and given things like night conditions, I just make the best estimate I can and throw. The AI throws it right at my feet. The only solution for this, of course, is to immediately start running one way or another when the grenade is thrown (usually you'll know this by audio cues like "here's an artifact for you!" or "Why don't we all say hello to my GRENADE!"), and watch it harmlessly explode off to one side. This will be made more difficult when you think you're safe, but in fact, the AI launched 2 grenades 2 seconds apart, the second one detonating much closer to you. D'oh.
- The AI also has ridiculous accuracy. You'll get to a point in the game where, in the "Duty" base, you'll find a mini-game where you get to shoot at targets with certain weapons, and you need to reach certain scores by hitting bullseyes. Try this game with the PMm pistol (real-life Makarov PM). See how you keep missing those targets, because the Makarov is just that damn inaccurate at ranges over 20 metres? Well, just because you can audibly detect that an opponent is using a Makarov, doesn't mean you should engage him unless you've got armor that can stop 9x18 mm or 9x19 mm rounds. The AI has absolutely unnerving accuracy with all weapons (except, empirically, shotguns at above 30 metres or so, as it should be), and will take off your head if they can get a clear shot.
- Keeping all of the above in mind, it basically means you'll be hitting the AI from 200 metres most of the time, controlled burst-firing and aiming at their heads (if you're a cheap bastard like me, you'll be using the cheap, non-armor-piercing variants of 5.45x39 mm rounds for the vast majority - read: near-entirety - of the game, you'll need to aim for the head or waste entire clips with armored baddies staying on their feet). This means that assault weapons are pretty much out; I'll discuss my personal weapon selections later, as the rationale for them is probably pretty good. Use a scope for those headshots. Upgrade your weapons' trajectory flatness and accuracy. The only real loss of this upgrade path is that, on most guns, you'll be lamenting over the lack of grenade launcher. I'll be honest; I didn't even really consider that until the third-to-last map of the game. That's right, I didn't use a grenade launcher at all by that point. Hint to the wise (!!!SPOILER!!!) if you look with half-an-eye open on said map, you'll find a Bulldog 6 launcher anyways. Get those VOG-25 grenades ready and forget about modding your guns to carry launchers.
- You'll still get hit a lot... and this means you'll be using tons of bandages. At least, at first. You'll eventually find artifacts to help you stop bleeding, but until then, stock up on a very healthy (always carry 20 ) bandage count. This is no fun sometimes, especially when you have to shell out money for the crap.
- Despite this, you'll still load the game a lot. Yep. You will get killed. You will get grenaded. You will fall down a cliff. You will run into a billion bugs. The reasons are endless. I wish I had kept a counter of the amount of loads I did, but let me tell you... having a tea kettle handy? Oh does it ever improve your mood.

OK, so now you've started a game. I think I'm done talking difficulty. Let's talk about things that deviate from the original Stalker game. As you'll (hopefully) find on the very first level, you can find artifacts in this game too. Hurrah! However, the effort required to do so? Much higher. Skirt close to those anomalies and pick the suckers out, using your detector to find them. The detector, while a sweet-ass idea, is kind of Doom 3-ish. I mean... you can't duct-tape the sucker onto the side of your gun? It's a little nonsensical that you have to run around in a zone sporting cutthroat bandits, mutants, and other shit that could kill you in an instant brandishing only a pistol and a detector, when you could mount it onto your shiny assault rifle and feel safe in your sleep. M'eh. On the very first level, you'll be rewarded with a Jellyfish (which, you'll note, has totally different statistics than in the original Stalker, as they reworked the artifact system entirely). Eventually, I strongly suggest you just buy the better model detectors... ones that can actually show you which direction (not just proximity) to go in, and eventually, ones with LCD displays which can show you very specific information and pop up multiple artifacts on the display. Handy.

You'll also find yourself embroiled in a "Faction war." Hmm. Faction wars sound pretty cool on the outside, I mean, you have these factions, and you know Duty and Freedom hate each other; so you presume that if you join them they'd have some dreams and domination goals? I think the idea is pretty cool, though the implementation turned out shoddy. First of all, every faction only fights one other faction. What the crap? Lebedev's opening speech to you is that Clear Sky, the faction you start working with, doesn't like and actively avoids the other factions. However, they only ever fight a faction called the Renegades (who are not the 'Bandits' though they seem to have very similar properties). Second of all, I experienced more bugs here than in any other system in the game. I'll talk about those in short order. Well, no. Maybe I'll talk about them now.
- The factional warfare system basically means you get a set of objectives to fulfill so that your current faction maintains dominance over another one. There are (sigh) only 5 factions in the game, and you can't join one (the Renegades), since you start hostile to them and therefore can never get in their good graces. The objectives are always of the following type: 'protect our base,' 'capture all the outposts around our base,' 'capture random territory between our bases,' 'capture routes to their base,' 'capture their base.'
- The system is buggy because, though you might think just fulfilling all of these objectives is a good idea, in truth, you have to be very careful what order you fulfill them in, in order to get anything done. Let me be more detailed:
-- Every one of the 5 'objective types' has a set of points associated with it. Let's say, for example, you're aligned with Freedom, and your objective is "Gain a foothold at the Agropom (where Duty's base is in CS)." There are two points, both on trails leading to the Garbage, which satisfy this bullet. Let's call them "south" and "north", since those happen to be the geographical locations of said points.
-- The game maintains an ORDERED LIST of the points somehow. You can't see the order, and I wasn't able to find it anywhere within the files I extracted, but trust me, it's there. What this means to you is that you have to capture all the points that you're expected to in order, or else the AI will get confused and have no clue what to do.
-- Let's give an example of how the game can screw up. Let's assume (because I discovered this emprically) that you have to capture "south" before "north." You're the ignorant player, and the missions you get is "capture and hold south" and "capture and hold north." Since you've been playing for a bit, you translate "capture and hold" as "I go and wipe out all the guys, and pray that the game scripts aren't buggy and a squad is actually dispatched to hold this point."
-- So, you come charging into the Agropom, and wipe out the squad at "south." Yay! You notice, when you hit your PDA, that the game AI is actually working, and though they take a few real-life minutes to get there, sure enough a squad takes control of the point and you get the credit.
-- Alright! Let's move on to North! Duty.... eliminated! Squad... coming! Yes! But... wait. While that squad is enroute to my point North, Duty counter-attacks south, and with you swiftly running (but ultimately unable to make it) to try to help your Freedom fighters, eliminates them. The squad moving for North makes it there. You get the credit. You wipe out Duty at South and... fuck. There you have it, no squad will ever be sent to South, since you already control North, the follow-up. UGH.
-- The sad solution to this problem is to KILL YOUR OWN MEN AT NORTH. That's right. Go shoot each of their heads off. They'll turn hostile, but your clan (assuming you've already helped them out a bit) will still love you, so not much lost. Killing them will re-set the list of points, and a squad will be sent down to South again, and another one to North.
-- This is of course just one variation of problems that can happen, and I ran into it. You'll sometimes get wonderful bugs like squads helping other squads and then just piling up on their point, not moving to the point they were supposed to, which will require murder. You'll get squads which run in circles between two points and never get any shit done. The friendly squads will be a nightmare. Then when you've finally slaughtered enough (friend or foe) to capture an enemy base, prepare yourself for when the enemies eventually just respawn (at least, in the case of the Duty base, there was an in-game justification that they "came in on their choppers and killed everything at the Agropom". This won't be the case, with, say, the bandit base.).
-- Moral of the story? The point-capturing system is very much one of "jiggling the handle" where by "jiggling" I mean "opening fire on" and the "handle" is "your clan-mates."

More hints regarding the factional system: You can join non-opposing factions. That means that you can join up to 3 factions in the game; Clear Sky (at first, you start on them), and then Stalkers (I wasn't able to join Bandits; hitting "I want to join you" on their boss resulted in a blank screen of text, and the dialogue option never came up again. I'm told that if you let the bandits rob you once, it does work, though, but who wants to be robbed? I'm also not convinced that after joining Bandits, you can join another faction), and then one of Duty or Freedom. I joined Freedom. Every faction gives you something for joining; the Stalkers give you a detector that you can buy for pretty cheap anyways, so they kind of suck, and they also don't reward you with much money for completed objectives, but it's better than nothing. Also, you'll have access to much better buy/sell rates at their trader at the Cordon, which is good because you'll want a lot of money to play with your weapon loadout and armour. Freedom gives you their "Guardian of Freedom" armour, which is better than your standard bulletproof suit, therefore excellent. They also give you a modded SIG SG 550, which is cool though it suffers from a particular modding problem... I'll talk about that in equipment later. Duty gives you their basic Duty armour, which sucks, and some other crap, so forget them. However, in retrospect, I shouldn't have joined against them so fast. Let me discuss another annoyance: mechanics.

If you want to upgrade your stuff or repair it (yes, thank fucking Christ you can finally repair your armour and weapons in CS), you have to find a mechanic. Every faction has one (the Stalkers actually have 3), and every mechanic in the game can upgrade a different set of stuff (note: they can all repair everything). As long as you're neutral or friendly with a faction, you'll have access to their mechanics. That might be important. Let me describe what I mean: the mechanic for the Bandit faction is, as far as I've been able to tell, the only one that can fully upgrade an SEVA suit. The Duty mechanic and Freedom mechanic can upgrade almost all of the suit, but the "psy protection" upgrade is unavailable with them. Ergo, if you piss off the bandits, you'll be unable to upgrade your suit to the max. Not that this matters, since there are only two or three points in the entire game (and not even at the end) where you're bombasted with psy attacks and need medkits. Only one 'controller' to kill in CS, and you're close enough that you can unleash on him semi- or full- auto.

OK, why don't I talk about equipment a bit. I'm getting tired.

Armour:
When you start off, you'll have a leather jacket. Oh boy. Stick around and do some missions for Clear Sky. They'll give you their own custom armor, which, honestly, you'll probably hold on to for a while. With the option to slot in kevlar plates up to 2 times, it can have a bullet protection value of 45 (out of a maximum 100), which isn't anything to snort at until near the end of the game. It won't protect you from anomalies much, but hey, that's what quick-load is for, assuming you get stuck inside one. Artifacts can help with this too.

OH! I should mention: in CS, artifacts can only be worn in 'slots' in your armour. Depending on your armour type, you'll have different amounts of slots. For instance, the "Bulat" military suit (the "Military armoured suit" in Stalker), can't carry any artifacts, while the SEVA suit can carry 2, and can be upgraded to carry up to 3 more. This, if you find useful artifacts (I searched a lot, and yes, I found useful artifacts; I'll talk about those later), can make or break your suit choice.

I was dumb and bought a Stalker ("Sunrise") suit. I thought this was a great idea, but if you actually compare it to the Clear Sky suit, you might as well save the money. You can carry some more artifacts, it's marginally better anomaly protection, but you waste so much money. Use it to upgrade the Clear Sky suit and keep the change for your next big purchase...

A military jacket. OK, let's discuss my ideas on armour. I'm a big fan of having 2 different kinds of armour: one to handle radiation anomalies, one to handle gunfights. In the original Stalker, this wasn't that necessary, because your SEVA suit had reasonable protection, throw some artifacts on there that increase your bulletproof cap, done. Here, the SEVA suit, while naturally protecting you from radiation, etc., only has a 15/100 bullet protection value. No good. For the better part of the game, therefore, I had a SEVA suit and and a Berill-5M armoured suit for gunfights. Really, though, pick your poison here:
- With a 2-suit system, you're switching armours, they have different maximum artifact numbers, etc. Lots of mouse clicking and hassle.
- You can't have a non-bulletproof suit for most of the game. You'll just keep loading all the time since stray bullets will kill you.
- If you only have a bulletproof suit which doesn't protect well from radiation and can't carry enough artifacts to help you with that (hint: Berill-5M), you're going to be using extra medkits and radiation packs at stupid times, frequently.

Like I said... pick your poison. Whatever time-wasting function you want. The advantage of the armoured suit anomaly suit approach is that the only one in the latter category that you want is the SEVA. Everything else sucks (there doesn't appear to be a nice and cheap SSP-99 Ecologist armour in this game). Once you have that, you know you're only going to be upgrading your bullet armour.

If you join Freedom, you'll just get a Guardian of Freedom jacket, which is better than the Berill-5M in all respects, including artifact carrying. Thus, if you plan on joining Freedom, just do it sooner rather than later, so that you don't keep loading due to stray bullets. If you don't join Freedom, you won't be able to get said jacket; it's not lying around anywhere that I can see, and their trader won't sell it to you unless you join them.

The Bulat armour can't carry artifacts, thus, I didn't use it. I needed 2 artifacts minimum; one to lower radiation, another which adds radiation but increases my carrying capacity. While I applaud the game not allowing me to carry an infinite amount of items, this was so tedious as the game went on. Ferrying guns between the field and store back and forth to sell for cash. Is there anything more worthy in life?

Naturally, I got an exoskeleton when it came out. The exoskeleton is the shit..... very bullet-resistant while being "quite" good at dealing with anomalies. Not quite as good as the SEVA though, so I kept the latter as well. It also increases your carrying capacity. After upgrading, my capacity (with no artifacts on) and an exoskeleton was 100 kg. Whee! Like guns, armour in the game can be upgraded, and usually has two kinds of upgrade path: 'bullet resistant and tough' or 'anomaly/radioactivity/poison/etc. resistant and weak.' Naturally, since I suggest you have two armours, I suggest you upgrade one against bullets, the other against anomalies. The exoskeleton is slightly unique in that it allows you to mix and match your choices a little (it's not entirely clear what the optimal mix for the exoskeleton is), but I still ended up choosing a purely bullet-resistant path, and saved some cash since upgrading that way allows for the same upgrade to be applied twice via two different tech paths; forget wasting money on the second one!

Let's talk about what you're going to fill up that capacity with.
- A lot of people I've found online either couldn't find artifacts (chumps) or found them useless. Not so. Want to save medkit money when running through psy/fire/poison/electricity? Use artifacts. I kept two around of every anomaly resistance type and, lo and behold, I could just run through fields of poison completely untouched. This is super useful when you're hunting for more artifacts, and just for running around at night when you're too lazy to use bolts to see where the extent of an anomaly is.
- Your guns. Duh. More on those soon.
- Medkits, rad packs, bandages, tons of bandages, extra ammo, a whole slew of flash cards with weapon upgrade data that you'll find and bring to mechanics (speaking of those, I found several which no mechanic could use, all to do with sniper rifles. Meant for some unfinished mechanic who never appeared in the game?), grenades, token food.
- Loot. After all of the above, you'll have surprisingly little left over for this. Specifically, weapons and ammo will dominate your inventory.

Weapons:
Yay, CS still has a whole bunch of real-world weapons, except called by made-up names so that they wouldn't have to pay royalties! Yay! Some stupid things about the weapons in CS vs. Stalker were: they included a few more pistols (yay?) that basically meant you had to choose between a bunch of pointless side-arms all the way, since all of them were fairly close to each other (and naturally, the Black Kite - aka Desert Eagle chambered to fire .45 ACP rounds - is the weapon of choice here anyway). Also, while they claim the GP 37 (real-life Heckler & Koch G36) is in the game, I was unable to find it in CS, which resulted in interesting weapon choices. Unlike the original stalker, I managed to get an FT 200M (real-life FN F2000) this time around, in fact, twice, since for some reason on the last level an extra one just appeared in my inventory. That was dumb, since I was overweight as a result, couldn't move, and was being fired on. Great going, guys.

They also added a weapon which I did make some use of, the RP-74 light machine gun (in real-life, the PKM general-purpose machine gun), the game developers even put in a cheap variant of the 7.62x54 mm ammunition for this puppy, which is great because otherwise I'd be ranting about how the SVDm2 (real life Dragunov SVD) does not use the same cheap ammo as a GPMG.

So... now let's talk about how the game restricts your weapon selection.

Upgrades cost money. Armour costs money. Fixing your stuff costs money. Finding caches costs money (you can buy cache information from some guys in CS). One thing you won't have a lot of throughout the game, especially if you're eagerly following the storyline and have a lot of unspent money at the point where you get robbed by bandits and all your stuff and money is gone (the game developers actually introduced, in the latest patch, the ability to get back your stuff so that you're not set into the stone age for equipment, but taking my money too? Seriously.), is money. So, one thing that you won't want to spend it on is ammunition. Let me break down all the ammo types in the game, and roughly how much I found of it.

- 9x18 mm rounds: Everywhere, naturally. You'll find them at every point in the game, except the last few levels, where they're more sparse, but by that point, you've probably found like 10000 rounds.
- 9x18 mm P rounds: Rare. Didn't find them much. By the point at which they were common, I didn't need them at all.
- 9x19 mm rounds: Stupidly, about the only time you want them in high quantities is when your main weapon is a Viper 5 (real-life Heckler & Koch MP5), which is on the first level, where they're pretty hard to come by (of course, one of the cool things you can do is chamber an MP5 to fire 9x18 mm rounds. So yeah, that's pretty neat.). Obviously, most of your early pistols will use them, but I just didn't find pistols terribly useful at Master difficulty until I finally got the Desert Eagle, and even then only when I ran out of ammo, there was one guy left, he was already wounded, and I was close to him. In other words, past where you actually care about 9x19 mm rounds, you'll have plenty, too many.
- 9x19 mm PB1s rounds: Pretty rare, though you could buy them from traders if you wanted to waste money. I didn't really pay attention too much.
- 12x70 shot: You'll never want for this. It's everywhere. Shotguns, however, are of fairly limited use. Will discuss that more later.
- 12x76 slugs: See above. Of course, this is also pretty useless ammunition. More later.
- 12x76 darts: Just like the original Stalker, this ammo is harder to come by, most traders don't sell it, it's rare to find on corpses, but you get it for a bunch of quests... you get a lot of it. More than you'll ever need, since, let's face it, you just don't use shotguns against baddies at range. I had much more of this ammo than I'd ever need.
- .45 ACP: Especially later, when the enemies are using Kora-919 pistols (real-life Browning M1911 pistol), this ammunition is plentiful. You'll never want for it.
- .45 ACP Hydro-Shock (read: Hydra-Shok) rounds: Impossible to find. There is one cache which I didn't go to which purports to have some, and other than that, I found 48 rounds throughout the entire game. Use very sparingly. Unfortunately, lack of these makes all .45-chambered pistols less useful in the game, though they don't really help with armor piercing anyway.
- 5.45x39 mm rounds: Unloading any baddie's Akm-74/2U (real-life AKS-74U), Akm-74/2 (real-lfe AK-74), or AC-96/2 (real-life AN-94 "Abakan") will get you tons of these. You'll find tons. I had over 1000 spare rounds by the end of the game, and I used these all the time.
- 5.45x39 mm BP rounds: AP version of the standard 5.45x39 mm round. Also very plentiful, though almost never in guns, rather just on bodies you loot. Found in some crates. I had over 1000 rounds left by the end of the game.
- 5.56x45 mm rounds: Not nearly as plentiful as the ol' Warsaw Pact 5.45x39s. Near the end of the game, more baddies tend to have 'em, but in general, except for random crates you find at outposts which are stacked with this, there is not too much of this lying around.
- 5.56x45 mm AP rounds: Strangely, you'll find a lot of this lying around in crates. I thought I had relatively little NATO AP ammo left over, and so my weapon selection for the game was... interesting (outline of that to come soon). However, it turns out I had over 1500 of these rounds, when I checked my last cache before running off to finish the game. Oops. I guess, therefore, it's a pretty good round to finish the game with, especially as the FN F2000 uses them, and I wasn't able to find a mechanic to mod the gun to use any other ammo (or mod it at all, in fact), though this may have been since, by this point in the game, I had killed 2 of the better mechanics in the game.
- 9x39 mm PAB-9 rounds: While I believe Sakharov will sell them to you for ripoff prices, they're otherwise surprisingly hard to find. Uncommon even on baddies, who will much more likely carry the 9x39 mm SP-6 round.
- 9x39 mm SP-5 rounds: I did not find a single one, trader or elsewhere, throughout the entire game. Apparently CS has a strict superset of items over the original Stalker, so maybe they exist? Who knows.
- 9x39 mm SP-6 rounds: By the end of the game, I had a mere 300 of these, after scrounging out the cores of every Vintar BC (real-life VSS Vintorez) and VLA Special Assault Rifle (real-life AS VAL) I came across (and in CS, unlike original Stalker, quite a few baddies are using the Vintorez rifles). While it's kind of fun to do subsonic sniper rifling with the Vintorez, you just don't have enough bullets to make these guns (or, much more sadly, the Tunder S14 - real-life OTs-14 Groza-9/40) feasible common-purpose guns.
- 7.62x54 mm 7N1 rounds: Ah, so you've somehow obtained a Dragunov SVD and want to play with it (though I didn't miss it much, I was unable to find an SVUmk2 - real-life Dragunov SVU - throughout the entire game.). The good news is that there's enough ammo lying about that you can play with the gun. The bad news is that if you actually want to use it in combat, you'll have to buy 60-90 rounds, and you can only buy it from the Freedom trader, and only if you join Freedom. Of course, you can only buy the SVD from him, and only if you join Freedom, so that's somewhat moot, but you'll get to kill at least one Freedom guy holding an SVD if you fight them. I'm told that what traders carry depends on the 'resources' that a faction has, but I was unable to confirm this with anybody other than the Stalker faction (who did admittedly get SEVA suits when their resources jumped).
- 7.62x54 mm 7N14 rounds: Didn't find any, same as the SP-5 rounds. Oh well, the 7N1 does the job.
- 7.62x54 mm BP rounds: Same thing. Didn't find any. Not too much of an issue, since, if you've got the SVD, you might as well aim for the head.
- 7.62x54 mm round: The 'cheap' version (priced at 10 RU/round vs. the 7N1 at 15 RU/round) for machine guns. Sells in boxes of 100, so you can see it's quite expensive. Thankfully, once you reach the Red Forest, if after the (!!!SPOILER!!!) gunfight you have with mercenaries who try to take you down right after you reach the level, you veer right, save the Stalkers there from being killed by mutants, and talk to them, you'll get a quest for the 'Tank Machine Gun'. Now, chances are you won't want to complete this quest since the Stalkers who gave it to you will undoubtedly be wiped out a few minutes later by mutants anyways, the Tank Machine Gun sells for 67000 RU, and... you can use it :) This gun is semi-useful... I later found a PKM and used that instead since this one sold for tons of money, and the only difference between a PKM and the Tank Gun (not even appearance, sigh) is that the Tank Gun will hold up to 2000 rounds, while a PKM will only hold 100. Whatever. Not like you're going to ever unleash 100 rounds without reloading. The point regarding this spiel is that, where you find the tank gun, you'll also find 4000 rounds of 7.62x54 mm machine gun ammo. Fire away.
- VOG-25 grenades: You'll want these for the GP-25 "Kostyor" grenade launcher, if you actually plan to use assault rifles and mount said launcher, or the OTs-14 that you'll sniff at and not use, or the Bulldog 6 which you might use just for fun 2 levels before the end of the game. I had a GP-25, and I used it only after I had already found the bulldog. Hence, the fact that I 'only' found 50 of these grenades all game didn't matter.
- VOG-25R grenades: Another one of those things which I suppose should have been in the game, and I never found a single one? Bouncing grenades are awesome.
- M209 grenades: For the M203 grenade launcher you'll undoubtedly acquire from Freedom if you wish to make your NATO rifles true assault weapons, and the integrated grenade launcher in the FN F2000. I found five (5) in the whole game. Just not practical. Blech.
- OG-7V grenades: Used only with the RPG-7u (real-life RPG-7). I found 5 of them in the whole game, but that's fine since you're not really expected to use the RPG often. I never used it. There was never a situation where it was better than any weapon; any situations calling for grenades often meant an obstruction was in the way, and so the RPG was useless. They also weigh 2.0 kg each. Avoid.
- RGD-5 grenade: Plentiful, of course, since one of the major features of CS was that super-annoying habit of the AI to whip grenades at your feet. Almost all bandits and baddies will have either one of these, or the F1 grenade.
- F1 grenade: See above. Not as common, but if you were collecting them you'd still be in heaven.

What does this breakdown tell you? A healthy mix of RGD-5 and F1 grenades for flushing baddies out of cover, plus rifles firing 5.45x39 mm ammo, optionally with a handgun firing .45 ACP (you could go for the 9x19 mm if you really want, but all of those do less damage, so...) seems to be the optimal mix for me. Hence, my weapon selection, boring and pragmatic as it was, is probably different than your average Walkthrough writer... I used a Desert Eagle (fully upgraded) as a sidearm - I found this on exactly one (1) baddie before Limansk, which is kind of crucial if you want to use it, since (!!!SPOILER!!!) once you get to Limansk, you won't be able to go back to upgrade anything - two AN-94s; one fully modded as a sniper rifle, and one 'mostly' modded (I wasn't able to get the last upgrade, since no mechanic could do it) as an assault rifle. Yes, I didn't know better, and it was semi-useful on the last levels. I'll explain shortly. You'll also note that VOG-25 grenades are fairly plentiful, so it didn't hurt that I carried 10 of those around, and my close-assault AN-94 GP-25 could be turned into a hose of fiery grenade death at any moment.

The reason I say that the close-assault weapon is 'semi-useful' is that, as I've described before, you really can't get close to baddies. Well, except for mutants. However, mutants are unarmoured, and I strongly suggest that, for them you carry around a shotgun (I personally carried first a Chaser 13 - real life Mossberg 500 with no stock - and then a SPSA14 - real-life Franchi SPAS-12 - throughout a lot of the game.) and 20-30 12x70 shot rounds. This will even take out a bloodsucker in 2 or 3 hits, and the only upgrade money I'd throw into it is slightly upgrading the rate of fire and lowering the weight. Eventually, you'll probably get the PKM machine gun or Tank Gun, and at that point... well. You might as well ditch both the close-combat rifle and the shotgun, because the machine gun replaces both. Mind you, I did not do this; I carried both AN-94s and the PKM to Limansk, and used all three up to the last level. You're quite free to experiment with what works best for you, but this combination was quite fine by me, since the assault rifle has far less recoil and more accuracy than the machine gun at the expense of damage; but I aimed for the head anyway.

I also joined Freedom. Another gun I carried with me from that point on (yes, that means I was carrying at least 4 guns at any one time) was the Dragunov SVD. 90 sniper rounds for comfort. I didn't use this gun too much, since I was a fairly good shot with my sniper-modded AN-94, but sometimes, it was useful to get a guaranteed one-shot kill from a ridiculous range before engaging at 200-300 metres.

A lot of people online seem to love their TRs 301 (real-life Z-M Weapons LR 300), and sure, if you prefer that, and feel like modding it to use the 5.45x39 ammo, or just using it for the end-game in conjunction with a 2000F, sure, that makes sense. I didn't do this, purely I think because the AN-94 was lighter, and I was already carrying a lot of weight. In addition, while the LR 300 is slightly more accurate, and handles better (they really did get that "gun does not do upwards recoil" thing right in the game, as in real life, I'm told), it does less damage. Pick your poison here.

That's enough masturbation about the all the stuff I played with and liked in the game. Let's talk about the gameplay.

The game has "lean left" and "lean right." Buttons I remember from System Shock 2, but which, in that game, weren't too useful given its fairly bad combat semantics (to be fair, it wasn't really about combat). Here, you will use them. Want to hit those baddies without OUTRIGHT DYING. Hide behind a tree. Lean out from behind it and fire, rather than side-stepping. You'll want that. Besides these lean buttons, it's really a first person shooter with very poor binds. VERY poor. Remember how System Shock had the ridiculous amount of bind keys which allowed you to do every conceivable necessary action quickly? Well... no. Here, you can use medkits and bandages quickly. There are 3 types of medkits, and the game seems to fairly arbitrarily select what type it will use if you use the hotkey... which is really dumb, since chances are I'm saving my good medkits for when I need them, for instance the end of the game. What about vodka/radpacks for radiation? Food? Nope. Forget about it, for that, you have to go to your inventory and right-click and use... very frustrating if you're in combat in a radiation zone. Another reason to get an SVD.

I initially liked the idea that, if you were carrying more equipment than your maximum weight (and you could only carry 10 kg over), you couldn't sprint. Or rather, you could, but only for 50 metres or so before you became exhausted. However... the fact that the original '50 kg' limit seems to be the hard limit for such sprinting restrictions throughout the whole game is a real piss-off. So, you eventually find juicy artifacts that raise your maximum weight by 30 kg. Does that mean you can sprint with another 30 kg on your belt? Well... no. You still can't sprint once you're past 50 kg carrying weight. Sigh. This slows down the game a LOT. Of course, to mediate this, they put 'guides' in at various points in the game that can ferry you between one location and another. Except the guides charge money. As I pointed out before, you need that; wasting 4000 RU for a trip just isn't going to cut it. This really need to be fixed.

The stupid Cordon military base. Oh my fucking god. You finish up working for Clear Sky at the Great Swamps (level 1) and you prepare yourself to finally move to the Cordon (level 2). You come out and... BAM. Military machine gun mows you down. You try again... same result. I eventually discovered that, without enough speed and tons of wasted medpacks, you can make it past the gun. Alternately, you can come back to the Great Swamps, travel on foot all the way up to the top of the map, and take another exit out to the Cordon. Except... all this takes about 20 real-time minutes of walking. Ugh. What a waste of my time. Seriously, that machine gun added nothing to the game except a lot of frustration. Of course, what made it worse is that there wasn't even an AI manning it for you to kill. Unlike later mounted machine guns (all 1 of them) in the game, where you can actually kill guys manning them (though even that is only as of the latest patch), this one has no actual gunner, and thus, is impossible to disable. It also fires mighty quickly, and doesn't need to reload. I even went so far as to go into the military base and kill everyone in it and when I ran around behind the base later, naturally, that gun opens fire on me and kills me. What the fuck?

OK seriously... I'm going to continue this later. I've wasted a half a damn day writing this, and now I feel like getting some shit done. Expect the rest soon.... ish.

UPDATE: Part 2 now actually written and found here. Enjoy.

6 comments | post a comment



Date:2008-08-13 20:05
Subject:Ah! So much to do, so little time!
Security:Public
Music:Energy 52 - Cafe del Mar 98 (Nalin & Kane Mix)

I have much to write about, some political, some just fun, apparently I have comments to respond to, and tons of work to do, in addition to a bachelor party and wedding to hit in the next two weeks.

THERE IS NO TIME LEFT OMG!

Alright, seriously, so instead of doing anything I was supposed to do today, I decided to re-caulk my kitchen. The purpose was threefold; to stop water from leaking into the cupboard below the sink, insulation, and to keep out insects that crawled over the pipes through my wall.

HOLY MOTHER OF FUCK? Have you ever tried caulking?! It's the most grueling experience ever.

I'd done parts of the house before when I was helping my dad fix up the bathtub, etc., but that had always been in accessible, easy spots.

Now, here I am underneath shoddily constructed kitchen cupboards, at impossible angles along walls... completely unprepared. For your information, here's how I suggest you prepare for your own caulking ordeals (if this is ever necessary and just hiring someone to do it for you is not an option).

  • Crouch down and put tension on your thighs, such that you're low enough that it's uncomfortable.
  • Now rotate your hips as close to 90 degrees (pi/2 if you prefer) as possible, such that you're looking at a right angle to where your legs are. You should be more uncomfortable.
  • Hold up your arms in front of you. As you're holding them there, you should begin to feel tension in your shoulders and triceps.
  • crane your neck so that your face is at right angles to its normal orientation, with your face looking upwards.
... now hold this pose for 15 minutes.

If you do this successfully without breaking a sweat, you're ready to re-caulk your kitchen... well except that that will actually take hours as you're scouring the place for any cracks and slowly filling them. Bonus preparedness points if you also blow dust in your face the entire time you're holding this ridiculous pose.

I had to re-do sections because I had missed them on the first pass. 24 hours to harden; then I'll see if I missed any more

I need a beer.

3 comments | post a comment



Date:2008-08-08 00:16
Subject:Luke is pissed at house music, less so at Bob Rae
Security:Public
Music:NOTHING in protest of this stupidity

So today I pop in the newest Gatecrasher CD, "Gatecrasher Summer Sound System 2008," expecting to hear a slew of funky new house tunes.

Man was I disappointed.

Remember back to 1999, when Eiffel 65's song Blue was big, and house music suddenly became popular again in North America? That was the golden age of house. Suddenly, all those "obscure" DJs from the Seattle, the Detroit, the San Franciso, the New York, etc. scenes started pumping out tracks that made it to house music compilations, and everything was great.

The music never really changed since then. In fact, I feel it's regressed.

Check this shit out, and by "shit" I don't mean the slang word for "stuff," I mean "pile of rancid monkey fecal matter shoved onto two CDs and packaged by a dying English house music label into plastic garbage."

Chicane's "Saltwater"
Hello? 1999 is back again? Haven't I heard this song something on the order of a million times before, keeping in mind here that it got included on Gatecrasher Wet, the third Gatecrasher CD, because it was a big hit that year? Oh look, another unimaginative remix. Gebus, sign me up on the braindead "I hate innovation and support Bill C-61" wagon.

Mauro Picotto "Lizard"
This makes the inclusion of "Saltwater" paltry. This song came out in 1998. I remember hearing it on "Clubbers Guide to Trance" (note: producers of commercial house and trance music obviously don't understand the grammatical function of apostrophes in English, since "Clubbers" should clearly have an apostrophe following the word), which came out in April of 1999 as North America's introduction to "modern" club and dance music. Ridiculous.

Tyga & Zyntherius "Sunglasses at Night"
I'm done with this shit. Seriously. This is just a stupid, worthless cover of Corey Hart's 1984 pop song.

Motto for this album? "Fuck it, let's just throw whatever on there, repackage it, and call it a 2008" album. Gag me with a spoon.


On a completely unrelated note, tomorrow I'm finally going to talk to Bob Rae, my illustrious MP, about Bill C-61. I'm leaving here in approximately 8.2 hours, which means, with a shower and shit, that I have very little time to sleep. Gah.

Good night world.

2 comments | post a comment



Date:2008-08-06 18:49
Subject:Luke's an idiot? Perhaps so
Security:Public
Music:Less than Jake - 107

Another day, another way I find I'm an idiot.

Great day for programming, lots of ideas and code produced.

Poor day for laundry.

I've searched my entire apartment and flipped it upside down; I found letters I haven't finished writing from months ago, a single sock that completes one of my 'lost pairs,' and $3.87 in assorted change, but I can't find my god damn laundry smart card!

ARGH!

It's like $50 to replace that bastard.

I'm pretty pissed.

1 comment | post a comment



Date:2008-07-26 01:21
Subject:Short entry - ain't ya relieved?
Security:Public
Music:Gouryella - Gouryella

I've been slacking really bad with work today, so I'm going to cut this one short to get back to it.

Come November, I'm very likely going to move.

Due to my seeming inability to focus well in an apartment where my personal and professional space intertwine, I'm specifically interested in a place with n + 1 rooms, where n is the number of inhabitants.

Having also found that living alone makes for some pretty boring cooking, and in fact turns me off of this art (I already know what my own cooking tastes like), I'm looking for at least one housemate.

Interesting developments here are with how many housemates this could work. With 3 or 4, you suddenly start looking at an entire house, not just apartments.

Toronto or Montreal, I haven't decided yet, but it will likely be in one of these cities.

Any interested parties interested in an arrangement such as this, or similar, come November?

Let me know. I'm much more interested in living with people I know and can trust not to walk off with my stuff (no longer a student, remember!) than with complete strangers :)

5 comments | post a comment



Date:2008-07-25 01:49
Subject:Michael Geist - Impressions and Actions
Security:Public
Music:None - it's 4:00 AM

Today, I got to see Michael Geist give a presentation on the 'wonders' of Bill C-61, the "Canadian DMCA," put before Parliament and to-be discussed following resumption of parliamentary proceedings September 15.

I'm going to reproduce the notes I took on the entire presentation, so that all of you can see what you missed. Yes, outside of Paul "the man" Nguyen, everyone else, had they committed to come or not, didn't show. It was quite disappointing.

Michael discussed the following (I'm paraphrasing and adding my own commentary in here. Live with it.):

  • He felt that C-61 was a "betrayal."
    There were several reasons given.
    • One, the lack of public consultation on a copyright law that represents the interests and habits of Canadians. Laws are supposed to be ideals and rules that a society decides it wants to live by, and the government enforces. This bill appears to be created by the corporate lobby for such associations as the MPAA and RIAA, and forced upon Canadians. The last public consultation about copyright law was in 2001.
    • Two; the requirement in Bill C-61 that requires teachers to destroy some of their educational materials and lesson plans 30 days after their creation. This is a terrible waste of time, and stifles the reuse and teaching of aids and knowledge.
    • Three; the provision that certain digital material copyrights be enforced by librarians, who will have to ensure that certain materials expire automatically after 5 days, adding to their workload and turning them into prison keepers.
    • Four; the provisions preventing consumers from moving media they've paid for to certain mediums, and to access certain legally purchased objects (such as region-locked DVDs).
    • Lastly, five; that many options explored and even implemented by other nations were completely overlooked and ignored at the behest of the U.S. corporate lobby.

  • He discussed the various actions taken to fight the corporate evolution of copyright law in Canada, and described three stages:
    • "Copyfight 0.9"
      In May of 2004, the notorious Sam Bulte, along with the rest of the Standing Committee on Canadian Heritage, published what became the basis for the Canadian DMCA - the Interim Report on Copyright Reform. Produced in 12 days with the help of our notorious corporate friends in the U.S., this report was the justification used for the failed Bill C-60, in March 2005. Though far less draconian than C-61, C-60 was the first version of the Canadian DMCA, and was brought to the public's attention, and ultimately scrapped, thanks to the efforts of Geist and 18 co-authors, who produced In the Public Interest: The Future of Canadian Copyright Law (available at the given link in full, under the Creative Commons license).
    • "Copyfight 1.0"
      Again, the notorious Sam Bulte strikes. As her campaign to get elected in 2006 begins, she's the forerunner for being the Canadian Heritage Minister. However, her campaign is heavily endorsed by American and Canadian movie and music industry lobbies, who even sponsor a fundraiser for her at $250 CAD/plate. She's called on this by Geist and bloggers across the country, as this is far from being impartial in a world of upcoming copyright reform. At an all-candidates'-meeting in her riding, she outright refuses not to take funding from major record labels and and related lobby groups. She ends up losing the election and not being voted in. Phew.
    • "Copyfight 2.0" - right here, right now
      Bill C-61 is being opposed on many fronts. Artists, privacy commissioners, consumer rights groups, and other organizations are speaking out. MPs like Charlie Angus are decrying the report published by Bulte in 2004, and encouraging Canada's political parties to reject it. Against lobbying by the U.S. Embassador to Canada, David Wilkins, in favour of DMCA-style copyright reform, we have groups such as the one that organized this talk; Fair Copyright for Canada. The members of this group, through personally expressing their concerns in person to Industry Minister Jim Prentice in his riding at a party 3 days before the intended introduction of the bill (December 10, 2007) caused its delay and the subsequent lack of any introduction at that time. Although it's now being shitcanned by the CBC, Search Engine's interview of Jim Prentice helped start the press backlash against C-61. Google's "Business Coalition for Balanced Copyright" publishes its critique of the bill. In polls, Canadians seem to be against the bill, particularly, and overwhelmingly so, in the young male demographic - the one that the Conservative party wants to target. The fight is on, Mr. Prentice.

      The Vancouver Chapter of "Fair Copyright for Canada" meets weekly. In Alberta, members crashed Jim Prentice's breakfast party during the Calgary Stampede. Montreal set up a wiki in both of our country's official languages answering questions about the copyright reform. Shirts are on sale to support the ongoing fight. Via the C61 in 61 seconds competition, Facebook, Friendfeed, Twitter, etc., the pressure is on for MPs to launch "Town halls" to grab constituent input on Bill C-61. In Guelph, copyright reform is a significant by-election issue.


The fight is now in our hands. Write to your MPs, or better yet, meet them in person before parliament resumes in the fall. Write to Mr. Jim Prentice. Write to Stephen Harper.

Help create a copyright law that doesn't make criminals of Canadians, that doesn't line the pockets rich lobby groups with more money, and that isn't perceived as draconian by most of the civilized world. Have input in the laws that govern our lives as Canadians, and help to create a law that protects the rights of creators while at the same time serving the public good.

Did I make this a bit preachy at the end? Sure. But it's now 4:00 AM. You can be sure that I'm in the process of organizing a visit to my dear MP, Mr. Bob Rae to have a chat with him about Bill C-61. You should do the same.

1 comment | post a comment



Date:2008-07-23 20:42
Subject:Time to get back to it... here's a partial list of "it"s
Security:Public
Music:Push - Universal Nation (Ferry Corsten 99 Remix)

Luke here. Still remember me guys? I hope so.

I've been out of it for a while, and I think that restoring some semblance of structure to my day-to-day life will hopefully improve my throughput and efficiency at task completion. I used to write in LJ fairly regularly. This might be a good thing to start hitting again.

My last post was in December. Many things have happened in the ensuing... holy fuck 7 MONTHS? I'm neglectful. Rather than describe life in the preceding amount of time, I'll bullet out some important things going on in my life right now, and comment on them. Feel free to skip over what you don't care about. It feels pretty good to be back to writing. Oh yeah. Ooooohhhh....yeah....

So, without further ado:

  • Contingencyworks:
    Ever since [info]eddiegeorgejon (Jon, since I really don't feel like quoting this dumb tag over and over) left, ContingencyWorks was in turmoil. Originally, when he decided to move on with his projects in September, I was enthralled, not so much that he was leaving, but that I'd have 100% creative control, and more so that now 100% of the company was enthusiastic. I think Jon is a fantastic fellow, but we totally screwed up with working/living together, and being friends. While I think we did a better job sorting out our issues than the two of us did with [info]binarytree, it was straining. I'm not going to discuss the debacle that ensued with Silicode Software and [info]binarytree's departure to go work in Boston, but needless to say Jon and I weren't looking to go through that again. As it turns out though, it was inevitable, because of a simple rule you must know (and probably already figured out if you're an engineer): work, friends, living together. Pick 2.

    With [info]binarytree, we picked the first and third. Not out of malice, not really with such an intention either, but we lived together, and we resolved to work together, so the friendship part had to get dropped. Hindsight is 20/20. With Jon, we consciously or otherwise decided that no, we wanted to remain friends. Jon dropped the work. Well, so did I, since I spent the last few months of Jon's stay in Canada drinking, travelling to New York, Connecticut, and BC, and playing Wii games and marveling at ideas like "Paper Mario."

    I resumed work on ContingencyWorks in late December. I met with a guy whose name I'll keep confidential, but he was interested in pushing the project along, fronting some money, and helping to sell it. He didn't want much control. An Angel. Talks with him seemed to go well, except as his wife developed cancer, he (understandably) decided to focus his effort and energy on taking care of her. We never really reconnected after our huge break in communications at that point; I was a bit demoralized, I had just moved into Toronto, and I was broke.

    If you recall, I had spent most of 2007 working on ContingencyWorks'. That didn't net me a dime. Travelling, and the failure of my contract employer that year to actually pay me (this was eventually resolved, but I don't want to get into that), as well as constant rent (which increased when [info]binarytree left, since Jon and I were now paying for a three-person house between the two of us) left its toll. I was in debt again, having paid almost all of it off in the last few months of the preceding year. It was pretty hefty.

    I decided to do contract work "for a while." I'm still doing it. ContingencyWorks is totally on the back burner, but recent interest from a number of very cool parties is sparking my own desire to take it up again. It's not dead, even if the website really looks it. The software is still awesome. The backup algorithms still unmatched in the market. The programmer behind it still amazing and dashingly handsome at the same time.

  • Contracting:

    So I ended up doing contract work. My first contract of 2008, rather appropriately if you follow the history of Luke, was with NITI. I don't wish to discuss it. While working with Tim, Hiep, Drew, and a bunch of new people I hadn't ever met was somewhat fun, the work I was doing could well be considered poorly-practiced infanticide. I was a butcher with a shotgun, and I was asked to somehow chop meat into 1" goulash cubes. I wanted to quit at the end of February, but Tim asked me to stay on for a short while longer, and I agreed out of my friendship to him. I made some money.

    I then participated in Montreal's Blitzweekend, which spawned a beast of its own, that required more work than we'd initially budgeted for, but also turned out quite awesome. I now own some potentially useful and cool software. It's a little weird.

    For a much longer while than I anticipated, I ended up working for Semacode, on very hush hush stuff. Initially, I had a simple task that should have taken a month, but I suppose given where my strengths in programming lie, and Simon's (he, like, runs the place yo) keen eye to the necessity of these things, I was given a bunch of tasks which preempted the main goal of my work. In the end, I didn't get to finish it before I had to jump to other obligations. I feel pretty bad about that, but I guarantee you will see this work in the future. Hint - iPhones were involved.

    After that, the most significant development I've gone through is the co-founding of yet another company - The Navarra Group. A computer programming co-op based in Montreal, and featuring most of the former "NITI Montreal Star Team." OK, there wasn't such a team, but the point is the founders all have a NITI connection, and decided that the following sounds cool: "A group of expert and quick programmers who can design and complete requirements really well and fast working together." Think NITI Montreal, except we work for multiple companies, instead of one. Pretty neat deal if you ask me.

    My first contract since then has been employment for Versabanq. That's right a software company that makes banking software. I took this contract for a few reasons, most of which centered around my knowing the VP of Software Development (and him being an amazing person to work for), being totally burned out from the Semacode contract and wanting to cool things down a bit, having sane requirements, and of course, a great paycheque. Has Luke sold out? If I told you what I was doing, you wouldn't think so. Most of the stuff I'm working on is open sourced anyways, so if you're lucky enough to be using WvStreams in your daily life, you can expect my fixes to propagate into it :)

    Yep. I'm coding again. Feels great, if I wasn't a bit toasted. But I'm working on getting over it.

  • Pets:
    This section needs to be here, because of "Rabbit." Rabbit was an experiment and a pet, both of which I failed in, and it cost him his life. I feel pretty miserable about it.

    Rabbit was a house gecko. His name was actually "Ravenous Bugblatter Beast of Traal", but when I condensed that it was "RBBoT," which, similarly to my University days of putting vowels into building acronyms (initialisms, if you want to be pedantic), sounded much better as "Rabbit."

    I had very little interest in owning a reptile before him, and the backstory to why I got him is a bit convoluted. Let me begin with this: there are German cockroaches in my building. Before you recoil in horror or make a "so what?" face, let me finish my story. I don't really mind cockroaches. They're annoying, and they reproduce a lot, but they normally come out when you're sleeping, they don't actually carry any notable diseases (contrary to popular belief), and really they only seriously affect asthmatics (as the shell cases they discard when they molt tend to complicate the breathing tracts of such people).

    The normal encounters one has with cockroaches involve silliness like turning on your kitchen light at night and seeing the buggers scatter. Yes, it's a little gross, but so is that black film in your bathtub, your hair stuck to your soap, and your toothpaste stains around your sink. Moving right along... the problem here is that the cockroaches in my building don't scatter.

    The exterminating company that my building hires (and provides free of charge once a month to any tenants who wish to have their problems alleviated... all you have to do is contact the management. I found this out through some prolonged arguing. If you live in my building, you might want to investigate that :)) uses two compounds when dealing with cockroaches, hydramethylnon gel baits, and boric acid dust. The former is a strong poison which not only kills roaches (it's a very strong metabolic inhibitor, thankfully not harmful to humans), but gets passed through their digestive systems into their droppings, which their young eat, also dying. It takes about 72 hours for a dose of hydramethylnon to kill a roach. The latter is a dust which chews very slowly through a roach's stomach, depending on the quantity ingested, it can take a long time to do its work. When it has penetrated the stomach, the roach dehydrates. Alternate theories to how it works are that it cuts through the chitinous skin of a roach, also causing them to lose internal fluids and dehydrate. Again, this process can take a while.

    Why do you care, and how does all this tie in together?

    Well, I stay up until 2:00 or 3:00 in the morning. As roaches tend to begin foraging about 8:00 or 9:00 PM, this means I've cut into their foraging time by 5-7 hours already; they don't like coming out when you're walking around and the lights are on. Smart buggers. There is much more that I could discuss about them, actually, but... anyways. The point is that when they do come out, those that have ingested boric acid, that is, they are starving and thirsty. They are weak, and what I found gross, is that they don't run when you come into the room or flip the lights on. They simply need nutrients so badly that they will no longer flee, and I'm forced to kill them. That's disgusting.

    I had the exterminator come in in February to put in the gel baits, but, since there are holes in my unit that undoubtedly lead to the elevator shafts and other hiding areas, the roaches came back by April. Boric acid, by the way, was previously sprayed (by me and previous tenants) all behind the fridge, stove, cupboards, etc... it's not coming out, and so my roaches tend to behave in this gross "don't run away" mode frequently. I decided I'd had enough of that.

    I wanted a solution. Insecticides seemed poor, as roaches tend to resist them better than humans (a lot of insecticides cause liver damage), and I had new roaches coming in. I started looking at natural predators that would take care of the problem.

    Enter... the house gecko. It's small. It's super fast. It has similar behavioural habits to roaches (it doesn't like silly humans, and will run from you). Its droppings are odorless, small, and dry. And it eats roaches. Its moisture requirements seemed pretty high, but after discussions with reptile experts at three different pet stores, they were certain that if the gecko just discovered the condensation and water runoff below the fridge, that should be sufficient. I bought Rabbit, and decided that in exchange for his freedom (no cage, I just let him go in the middle of my kitchen), I might have peace of mind by his eating cockroaches.

    Well, I was wrong, and Rabbit paid the price. Rabbit survived in here for 8 weeks. I'm fairly certain that his demise is my fault.

    First of all, he did indeed find water. When I found him dead on the floor (poetically about 10 cm from the place I had initially released him) his skin was still vibrant and moist. Whether from the fridge or somewhere else, he had his moisture. The roaches, after all, also have high moisture requirements, and they survive in here, even with my fascist-like clamping down on all the faucets and using towels which I hang from the light fixture to soak up excess moisture anywhere.

    He also found food. I found piles of his droppings behind my bookshelf, but already, I was worried. The bookshelf has boric acid behind it. I had failed to take this into account. I looked online and discussed this with pet store owners, but nobody has done any research into gecko/boric acid interaction. I can tell you right now that I understand where ethics boards in animal testing come in now.

    The pet store owner believes he died of starvation. Indeed, though he wasn't emaciated, he was thin, and all of his (well, technically, I think he was a she, based on an inspection of the region between his legs, but as I'm not an expert, I will continue using 'he' to save that one character) fat deposits were drained. But, I believe that while he was feasting on boric-acid covered roaches, the acid did the same thing to him as to them - it ate through his stomach, and eventually he was unable to process food. I found light blue discoloration on his chest, where his stomach should be, on his outer skin. While I conducted no autopsy, this is a likely postulate for his death.

    My experiment in gecko freedom and happiness failed.

    I'm now considering getting some caged pets (as the only 'free' pet I'd consider is a dog, and my apartment isn't large enough for the kind of dog I want). Looking into parakeets and more reptiles. Will update if anything significant develops on that front.

  • Social life:
    Lots of people getting married these days.

    First, Avery went off the market, and his wedding involved everything you'd expect at a gathering of former Montreal NITI-ites, sneaking in alcohol, cross-dressing, people laughing at me for something I didn't realize was funny, ordering pizza because there's nothing to go eat in London at 3:00 AM, and tree planting. You know it's authentic because I got mentioned in the photo.

    My good friend Adam Philip's bachelor party just came and went; we spent the weekend kayaking down the Elora Gorge, crashing a beer and rib festival, go-karting, and getting drunken silly. In other words, a great time. Early August is the commencement of his marriage to my friend Emily; a union which seemed like a great idea for a long time now.

    Shitbag is getting married too, later in August. That should have an open bar, which neatly summarizes my probable activities at that wedding. Shitbag has also pronounced that, should I not grab the mic to "say a few words" about him, he guarantees he will not cut me off at the bar. It's an attractive proposition, and it means I have a good reason not to humiliate a good friend of mine at his wedding. That must be pondered over.

    My brother is in Ontario! Ever since January, he's started his last work term (he's still a student at UBC), and now works for RIM in Ottawa. He's been down several times, notably to see Toronto FC, the local MLS soccer team, tour the city, and also tour Montreal. More on that later.

    [info]skonakov and I are going canoeing/portaging for labour day weekend, and we've gone rollerblading a fair number of times this summer. That's pretty much been it for my physical activities, as I still can't find a reasonable soccer league to play in, and Mr. Lapchuk has failed to help me secure a berth in his hockey team. By the way, I'm using names of people I've probably never introduced in here, or if I did, it was a long time ago, and worse, it might be in former friends-only posts. Sorry. If I keep up writing again, you'll know who these people are soon enough.

    [info]eddiegeorgejon visited from California a few weeks' back, and himself, Christine, Heidi, and I had a blast at the CN Tower. It totally makes sense to go have dinner there, if you're interested in visiting. Going up costs $25. If you order a main course at dinner (the cheapest one, of which there are 3 options, is $35), the ride up is free, which means you get some fine-ass food for $10, assuming you don't splurge on something else. I got a $55 meal which included an appetizer and dessert, and experienced the wonder (it was quite awesome) of a $12 vodka martini. Yum.

    There have been two LAN parties at my good friend Tom Harvey's house. The first one is very memorable, as the only food I had that weekend was a good share of 240 bottles of beer and 2 kg of bacon.

    My friend Katya, with assistance from my new friend Christian and the previously-mentioned (from way back when I lived in Montreal) Greg Langford, convinced me to go clubbing once. I ended up throwing two cigarettes on the ground, getting cigarette burned, major hangover, and all the good stuff that goes with that. I'm getting too old for this shit.

    Of course, hangovers are still a big part of my life. More on that...

  • Soccer:
    I've avidly participated in Toronto's fairly ravenous (for a North American city, anyway) appetite for soccer. As I mentioned above, Toronto has a team that participates in MLS, the highest league in North America. Though seats are difficult to come by (BMO Field, the home stadium for Toronto FC, has a capacity of merely 20 000, and that's clearly insufficient for the rabid soccer fans in this city), Craigslist usually has enough for my needs, at reasonable prices. I've been to a few games, and though I quite liked them, I wish Toronto was better.

    First of all, let me describe the Canadian Championship they were competing in this year, and my thoughts on it. There are only three teams eligible to be champion of Canada; Vancouver (Whitecaps), Toronto (TorontoFC), and Montreal (Impact). Whoever is the champion of a round-robin tournament between the teams goes on to play the Nicaraguan champion in the qualifications for the group stage of the newly-formed CONCACAF Champions League.

    I wanted Vancouver to win. That gives me pride, and I honestly still believe Vancouver is the strongest team in Canada. Suffering from the loss of several players to European clubs though, Vancouver was not at their best. They lost their two openers to Montreal (both games 0-2), which effectively meant that they needed to win their remaining two games, and (given that Toronto had beaten Montreal 1-0 in their opening game), Toronto would have to beat Montreal once more. Each team would then have a 2-2-0 record, and goal difference would decide who would advance. Well, when [info]mattz0r, my brother, visited, we got to see the Whitecaps neatly beat Toronto 1-0, in Toronto. We were wearing Vancouver blue, and though the Toronto fans pelted us and our team, the victory was great. There is no better feeling in life than cheering for the away team, and having them win. In your exhilaration, you get to piss on 20 000 people who were cheering for the team that just lost, and no matter what they do, their wounds will not be salved.

    Unfortunately, when Toronto played Vancouver at trusty Swangard Stadium, the game ended in a 2-2 draw, eliminating Vancouver.

    Toronto was my next, best hope. If they could beat Montreal, they would be 3-1-1, Montreal would be 2-2-0, and Toronto would advance; thus allowing me to see CONCACAF Championship games here in Toronto! It was an exciting idea, but a 1-1 draw at BMO Field with my tears ruining my facepaint ruined that plan, and Montreal advances. Oh well, I'll have to see about busting my ass down there to see some fine soccer.

    Toronto FC's season games are great fun to go see as well, but as I mentioned above, I wish Toronto was better. Though we have the fourth-highest scorer in MLS history on our team, he's on a bit of a slump (and doesn't start regularly), and our best striker sucks. He can't run, he can't pass, and he can only really shoot from within the 18-yard box, which has limited him all season in getting any goals. Tactically, I guess, he plays like a very poor version of Jan Koller, in that Jan Koller can do everything this guy can't, and also scores great header goals. At 202 cm tall, you'd damn well better.

  • Poland:
    I considered rolling this into the 'soccer' section, but I feel it's important enough to put up on its own. As some of you may know, Poland qualified for UEFA Euro 2008 this year. I went nuts. Facepaint, jersey, scarf, seeing every game in pubs, yep, that was me. My brother participated similarly.

    For the heartbreaking first game against Germany, my brother and I found ourselves in Montreal, in a bar full of Germans. It was a 2-0 loss, made worse by the fact that Lukas Podolski scored them both. Does that sound like a German name to you? Me neither.

    Our subsequent robbery by referee Howard Webb during our game with Austria (which resulted in a 1-1 tie, feel free to read about how this happened and how Howard Webb was involved, and is now hated by over 37 million people, if you're so inclined) disheartened me more, and the 0-1 loss to Croatia to end our Euro 2008 dreams was, at that point, expected.

    As my good friend David Misa put it, though, "changes need to be made, and quick! Qualifying for Africa starts soon! Orły do boju! [Eagles to action!]" Not only must we prepare for this, but also, of course, for Euro 2012. Nope, you didn't misread that URL, Poland and Ukraine are co-hosting it. I'm already making plans with [info]mattz0r and [info]skonakov to attend games in both countries.

  • Travel:
    This is getting very, very long. But, I've got a little more information to convey.

    This year is pretty quiet for traveling, as I'm preparing for two significant trips next year; my brother and I are planning to hit Europe (Western Europe, this time) in May, and Coach, David Misa, and my good friend Julian are in initial talks over going to L.A., buying a jeep from a used car lot, and driving it down into Brazil. I don't wish to discuss this too much until it's finalized, but it's the greatest idea I've ever had.

    My brother and I did some traveling while he's here in Ontario. We went to Canada's Wonderland, the first time for me. It totally whips Playland's ass. We went to Montreal, wherein on his first day there, my brother had the following: smoked meat at Schwartz's, wine and several bottles of Maudite at pz0wn's house, 70% liquid dark chocolate at Juliette & Chocolat, famous La Belle Province poutine, and pitchers of beer at the infamous Foufounes Electriques. Day 1. Day 2, sadly, was the Poland/Germany disaster. Oh well.

    I've had a few more trips to Montreal, but that's it so far this year. Gotta save money sometime.

  • Music:
    If you've been following along for years, you'll know that in 2006... or was it... 2005... I started a project to finally consistently tag and keep inventory of my gigantic music collection. Well, I'm somewhere at 'R' now. It's gone very slowly, compounded by the fact that there still doesn't exist an ID3-tagging library which correctly handles all ID3 tag aspects when you use UTF-8 encoding with ID3 v2.4. I now use a Python script combined with a C program, both of which (using eyeD3 and libtagc - C bindings to libtag) combined will write me correct tags. No such faults with ogg files, and recently, m4a (Apple's silly MP4 files). Ugh.

    Been listening to trance again recently. Nothing really new to report there, though I did download the vast majority of the Gatecrasher compilations, and most of them are pretty damn good.

    I've seen a small number of shows too... New Model Army with [info]wlach, Mogwai with [info]mattz0r, going to see Propagandhi with Paul Nguyen, as well as Rancid, and then there's hopefully the "Spite House" (my Waterloo residence 2003-2006) reunion for the Reel Big Fish/Less than Jake, with (hopefully, crossing my fingers here!) the Planet Smashers. Oh man, I want to pee my pants.

    That's a pretty short music section, I guess. I'm not really going into detail on my frustrations with tagging and concert reviews, mostly because by now it's 12:38, and I started doing this (with interruptions for food and an episode of the original 1978 run of Battlestar Galactica. None of that newfangled 2003 bullshit.) at 11:00 PM. Garr.


  • Misc:
    Michael Geist, the notorious copyright and political activist from the University of Ottawa, is coming to Toronto to speak tomorrow! He will be at the Edward Day Gallery (Ste. 200, 952 Queen St. West) from 7:00 - 9:00 PM! I'm quite excited, and will surely be in attendance. You should be too!


OK, I'm officially pooped. Sleep time for Luke.

3 comments | post a comment



Date:2007-12-05 02:24
Subject:Things you don't want to see before bedtime
Security:Public
Music:U2 - Bullet the Blue Sky

11:00 PM. I've got a cup of tea, I beat my record in Desktop Tower Defense (3018 now, biatches), and I figure I'll just 'do a little bit' of hacking before sleep.

What was my plan? Oh, you know, to upgrade the version of libc that EpOS (that's my new and very clever name for the EpochBox OS) uses to 2.6.1 from 2.5.1! Well... here's something you don't ever, ever, under any circumstances, want to see as you're doing this "before bed." Or, in fact, really, ever:

i686-unknown-linux-gnu-gcc -shared -static-libgcc -Wl,-O1 -Wl,-z,defs -Wl,-dynamic-linker=/lib/ld-linux.so.2 -B/somedir/toolchain/build/built-glibc/csu/ -Wl,--version-script=/somedir/toolchain/build/built-glibc/libc.map -Wl,-soname=libc.so.6 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -nostdlib -nostartfiles -e __libc_main -L/somedir/toolchain/build/built-glibc -L/somedir/toolchain/build/built-glibc/math -L/somedir/toolchain/build/built-glibc/elf -L/somedir/toolchain/build/built-glibc/dlfcn -L/somedir/toolchain/build/built-glibc/nss -L/somedir/toolchain/build/built-glibc/nis -L/somedir/toolchain/build/built-glibc/rt -L/somedir/toolchain/build/built-glibc/resolv -L/somedir/toolchain/build/built-glibc/crypt -L/somedir/toolchain/build/built-glibc/nptl -Wl,-rpath-link=/somedir/toolchain/build/built-glibc:/somedir/toolchain/build/built-glibc/math:/somedir/toolchain/build/built-glibc/elf:/somedir/toolchain/build/built-glibc/dlfcn:/somedir/toolchain/build/built-glibc/nss:/somedir/toolchain/build/built-glibc/nis:/somedir/toolchain/build/built-glibc/rt:/somedir/toolchain/build/built-glibc/resolv:/somedir/toolchain/build/built-glibc/crypt:/somedir/toolchain/build/built-glibc/nptl -o /somedir/toolchain/build/built-glibc/libc.so -T /somedir/toolchain/build/built-glibc/shlib.lds /somedir/toolchain/build/built-glibc/csu/abi-note.o /somedir/toolchain/build/built-glibc/elf/soinit.os /somedir/toolchain/build/built-glibc/libc_pic.os /somedir/toolchain/build/built-glibc/elf/sofini.os /somedir/toolchain/build/built-glibc/elf/interp.os /somedir/toolchain/build/built-glibc/elf/ld.so -lgcc
/somedir/toolchain/build/built-glibc/libc_pic.os: In function `__libc_fork':
/somedir/toolchain/build/glibc-2.6.1/posix/../nptl/sysdeps/unix/sysv/linux/i386/../fork.c:76: undefined reference to `__sync_bool_compare_and_swap_4'
/somedir/toolchain/build/built-glibc/libc_pic.os: In function `__nscd_drop_map_ref':
/somedir/toolchain/build/glibc-2.6.1/nscd/nscd-client.h:320: undefined reference to `__sync_fetch_and_add_4'
/somedir/toolchain/build/built-glibc/libc_pic.os: In function `nscd_getpw_r':
/somedir/toolchain/build/glibc-2.6.1/nscd/nscd_getpw_r.c:232: undefined reference to `__sync_fetch_and_add_4'
/somedir/toolchain/build/built-glibc/libc_pic.os: In function `__nscd_drop_map_ref':
/somedir/toolchain/build/glibc-2.6.1/nscd/nscd-client.h:320: undefined reference to `__sync_fetch_and_add_4'
/somedir/toolchain/build/built-glibc/libc_pic.os: In function `nscd_getgr_r':
/somedir/toolchain/build/glibc-2.6.1/nscd/nscd_getgr_r.c:307: undefined reference to `__sync_fetch_and_add_4'
/somedir/toolchain/build/built-glibc/libc_pic.os: In function `__nscd_drop_map_ref':
/somedir/toolchain/build/glibc-2.6.1/nscd/nscd-client.h:320: undefined reference to `__sync_fetch_and_add_4'
/somedir/toolchain/build/built-glibc/libc_pic.os:/somedir/toolchain/build/glibc-2.6.1/nscd/nscd_gethst_r.c:400: more undefined references to `__sync_fetch_and_add_4' follow
/somedir/toolchain/build/built-glibc/libc_pic.os: In function `__nscd_get_map_ref':
/somedir/toolchain/build/glibc-2.6.1/nscd/nscd_helper.c:357: undefined reference to `__sync_val_compare_and_swap_4'
/somedir/toolchain/build/built-glibc/libc_pic.os: In function `*__GI___libc_freeres':
/somedir/toolchain/build/glibc-2.6.1/malloc/set-freeres.c:39: undefined reference to `__sync_bool_compare_and_swap_4'
collect2: ld returned 1 exit status
distcc[18238] ERROR: compile (null) on localhost failed
make[1]: *** [/somedir/toolchain/build/built-glibc/libc.so] Error 1
make[1]: Leaving directory `/somedir/toolchain/build/glibc-2.6.1'
make: *** [lib] Error 2
scons: *** [part_of_somedir/toolchain/build/.stamp-install] Error 2
scons: building terminated because of errors.


Whenever you get shit like this, you hope and pray Ulrich just made a mistake in a linker invocation in the glibc Makefile. Unfortunately, this was not the case here. A quick look using nm between 2.5.1 and 2.6.1 (on the file I bolded above) shows the following in 2.6.1 which wasn't there before:

...
0000000000044940 T __swscanf
000000000009e740 T __symlink
U __sync_bool_compare_and_swap_4
U __sync_fetch_and_add_4
U __sync_val_compare_and_swap_4

00000000000000c0 D __sys_errlist_GLIBC_2_0
00000000000000c0 D __sys_errlist_GLIBC_2_1
...

Well, uhh.... I guess there is the source of the problem. Debugging and fixing shit like this is very annoying, especially when you discover that those symbols are found in none other but cc1, the C compiler portion of gcc, and not some missing .o file or something else easily fixable with one command-line argument addition. As such, this is more complicated than a simple linker error.

Sigh. Comparatively speaking (minus, say, testing) upgrading the Linux kernel is bloody easy. You pop in a new binary. Decompress it, throw in your old .config file, make oldconfig.

You've just solved 90% of the problems. If you're using a stable kernel, pretty much every single possible build configuration has been tested, so people have already caught a lot of the compile problems for you. Moreover, the kernel relies on ridiculously little outside of its own microcosm of existence, so you can be fairly sure where to look where the problem arises - the kernel. Usually, it also has to do with your own changes.

Anyways... I'll look at this tomorrow. Maybe. If I really care to update libc if it requires any effort.

UPDATE 05.12.07, 2:28 PM:
I fixed the above problem. After staring at the names of the functions that weren't linking, I began thinking along the lines of those being some hardware-specific optimizations. I started tracing through libc code starting from '/somedir/toolchain/build/glibc-2.6.1/posix/../nptl/sysdeps/unix/sysv/linux/i386/../fork.c:76,' to have a look at what libc was calling. Turns out that it was a macro, passing through a bunch of other macros, one eventually being defined in glibc/sysdeps/i386/i486/bits/atomic.h.

When I had a look at that macro, what did it do? It generated a bunch of assembly code! So why did this fail?

Well, I was more thoroughly confused, but this got me on the path of "well, I'm compiling libc for an i686 machine, thus it's enabling all possible x86 optimizations." This got me thinking that it's perhaps finding ways to explicitly invoke these gcc builtins ("intrinsics" as supplied by the anonymous poster below), and gcc is saying no because without being told to explicitly, it doesn't generate architecture-optimized code, it generates code that should run on all 386 and above boxes. So, I merely passed CFLAGS+="-march=i686" to the libc configure script. Problem solved, all linker errors went away. I rock.

14 comments | post a comment



Date:2007-12-04 00:37
Subject:Daily life on the 15th floor
Security:Public
Music:The Mighty Mighty Bosstones - Think Again (yes, they covered Minor Threat!)

When you work with (and for) yourself, you tend to find a great many things, usually on-line, to mimic the human interaction you would otherwise have working anywhere else. Normally, the distractions tend to be 15-minute ventures on the CBC, or comparing Vancouver Canucks' stats to other (mediocre) teams. Once in a while though, you find something so awesome that it consumes a long chunk of your mind before you can expunge it and proceed with life. In the most recent case for me, it was Desktop Tower Defense. Unlike most things linked off of uncov, DTD was Ted-approved (Ted being the primary contributor/writer). After a 5 minute game on the 'easy' setting, I could see why. This game is insanity. Within 15 minutes it can test my strategic and mouse-clicking mettle in a way StarCraft never could. Try it for yourself and see... I guarantee being hooked. My current high is 2927 points on the Medium difficulty setting. It's not that high, but then, I try to use this as a distraction and not my entire day.

A distraction from what, you may ask? Well, while I want to rant about electrical grids and especially the idea of 'policies' in a corporate environment, this is going to precede it because the last week (and, I guess, today) has been one of the longest sustained pains in the ass I've ever had, and I've had hemorrhoids.

What was this monumental task I was trying to accomplish? What wonderful pieces of technology was I taming? Well my friends, prepare to be humbled. I was trying to set up a web/phone/Subversion server.

Now you must be reeling (or confused, depending on your background). How the fuck could this possibly be difficult, right? Grab a machine, throw Apache, Subversion, and Asterisk on there, tweak some config files and you're good to go! Well... let me describe the wonders of what went on around here.

First of all, let me quickly introduce you to the ContingencyWorks server. Meet Fivegrand:



Fivegrand is a Dell Poweredge 1950, with two dual-core (and Hyperthreaded) Intel Xeon 3.00 GHz processors, 1 GB of 533 MHz RAM, and an 80 GB SAS drive. In other words, for the computer-not-entirely-literate, this machine is pure sex. Infinity G35; step aside bitch, there's a new sheriff in town.

Fivegrand was originally purchased by Silicode Software back in the days when we thought to use it as a phone server for a fledgling VoIP service we were looking to provide... man that seems like so long ago.

Anyways, the moral of the story is that it was purchased with the idea that it would handle a boatload of phone requests, loaded with the (then-) sleekest Linux version available (which was Ubuntu Edgy), and thrown into a datacenter - the excellent Waterloo Data Fortress in north Waterloo for a crapload of money per month.

[info]eddiegeorgejon and I developed a bunch of call tracking and rate-updating applications for it, as well as a management suite for looking at customer records, etc. and then of course Vonage was sued by Verizon, which ended in a big loss for Vonage, thus showing that Verizon was willing to crack down on anyone doing anything big in the VoIP market.

Since neither [info]eddiegeorgejon or I thought there was really that much money in coming up with a non-Verizon-patented system for VoIP phones to connect to the PSTN, we abandoned the idea, and fivegrand was mostly relegated to handling our own VoIP system, while still costing us a boatload of cash to keep in the datacenter.

With the end of November (and the lease of datacenter space) approaching, it was clearly time to save this cash and move it indoors. That is, into the ContingencyWorks office. That is, into my apartment. The first thing that I noticed - or rather, remembered - about the Poweredge 1950's is how fucking loud they are. This beast is clearly audible over my music, and if you've ever spent 10 minutes in my house you know that's difficult. I used to think leviathan (my 65 lb. Opteron 175 machine in an old, noisy Antec server case) was loud, but now I could jam sandpaper and a loudspeaker connected to a fire alarm into leviathan's fans and have it scream and whine and I wouldn't be to hear it over fivegrand.

The second, thanks to a timely email from [info]eddiegeorgejon, was that the website was running off of fivegrand. Well... fuck, guess I gotta get it running then! There was a secondary goal there, which was to run Asterisk on it so that once my VoIP peer finally gets me my toll-free number (to be posted when it's actually activated, or not posted so you leeches can't save pennies to call me), I have a voicemail and extension distribution system handy. Asterisk provided an interesting challenge, due to [info]eddiegeorgejon's quote that he's "never been able to get Asterisk to work behind a NAT."

I'm usually pretty good with figuring out new pieces of technology (with the exception of, amongst other tidbits, sendmail), but given the ridiculous disparity in Asterisk know-how between [info]eddiegeorgejon and myself (a disparity not in my favour), I decided to take his word on this and abandon any idea of NATed Asterisk.

Instead, I decided to figure out how to give fivegrand a public IP address.

Let me explain... as an Internet user, my setup for the last 10 years has been (and I imagine most of your setups have been) to have a single public IP either through PPPoE (using a DSL modem) or DHCP (on cable). Clearly, this wasn't going to work with fivegrand... there isn't really a good way to have a single IP address, some machine to which some ports pass through, and the rest of the action going to the NAT. Or rather, there is such a way, but it involves fivegrand also being my router, and that wasn't terribly desirable given that I wanted to use it as a storage of my source code, and I felt leaving this machine as the first line of defense between my network and the outside world would be thoroughly irresponsible with source code stored on it.

Instead, I have a small system based around a VIA Epia CN10000EG board and 1 GHz VIA C7 processor, and I figured I'd use that as a router. When I initially discovered, to my delight, that my awesome ISP offers subnets of public IPs, I figured that the method they would do this through is to have multiple machines form PPPoE links through a DSL modem to their server, receive their IPs, and off you go. So, this little machine having only enough space for 2 different network cards (one being onboard... that's right, it has one PCI slot), I figured I'd use this router to protect and form a NAT over my machines, and let fivegrand PPPoE as well... I'd work out the firewall over fivegrand another time.

I bought another switch (so that I could have two devices connected to the DSL modem itself), tested that I can do PPPoE through said switch (which wasn't terribly intuitive; at first I was like "how will it know where to route the packets... what destination IPs would they have?!" I then figured that the ethernet encapsulation probably just broadcast the motherfuckers.) and called up the ISP. After some misunderstandings, I discovered that, in fact, Teksavvy did not do multiple PPPoE logins to their server, instead, they routed the new subnet of public IPs you were paying for to your old static IP. This inconvenienced me a bit, since, having a dynamic IP with them, I first had to shell out for a static IP, and then for the extra /30 subnet which would be routed to it, thus giving me 3 IPs when I wanted two. Actually, I did want 3. But I'll get to that.

Anyway, The logistics of what I had to do to get this set up were escaping me at the moment. The logistics of this article are starting to escape me because as usual it's very late as I write it and I'm becoming less and less coherent. The beer isn't helping. Oh, and Mr. D. Misa, if you read this, remember that Tiger beer we had on the train going to Beijing from Hong Kong? Yeah... the domestic version of that beer is somehow much better than the export. Fuck this bottle tastes like ass buffet.

So... back to the router. 2 network interfaces. One had to be configured for the modem. That leaves 1. Given that I wanted to have one machine with a public IP, and the rest (an indeterminate number of clunkers, test bots, and dev machines) behind a NAT, I didn't really know how to pull this together. Then, [info]eddiegeorgejon gave me a great idea - VLANs! The idea would be to create a VLAN on the LAN-facing interface, give it one of the public IPs I was getting from Teksavvy, and use it as a gateway for fivegrand, which would be on the same VLAN. The other devices would use the 'normal' address assigned to that interface while being none the wiser of this other network created on it.

The trick with this set-up really came with the firewall rules available in my router. Originally, the router box was loaded with FreeBSD 4.11-based m0n0wall, and then the FreeBSD 6.1-based pfsense. Thankfully, these pieces of software come pretty well equipped to do whatever I wanted them to do. The idea (also for anyone who ever wants to set up a public IP subnet behind a router on a single-PPPoE-link DSL connection running either of these pieces of sofware) is as follows now:

- create a VLAN on the LAN interface.
- set the WAN interface to PPPoE to your provider.
- set your usual NATed network (in my case the usual 192.168.1.0/24 network) on your LAN interface, give it DHCP or whatever.
- set one of your public IPs on the VLANed interface (so that you can use it as a gateway for other devices hooked up via a switch to this interface, which is actually your LAN interface).
- enable 'advanced outbound NAT' on the router. This took me a long time to find out, but by clicking that option, it actually (rather cryptically, I would say) actually disables all NAT, forcing you to manually re-enable NAT on the network/device you actually want it on.
- add a firewall rule on the VLAN to permit traffic from the IP subnet sitting on it to reach the outside world. This took me a stupid amount of time to figure out as well, because I'm a moron.

........... after this effort (and the requisite amount of trial and error which I haven't really bothered describing here) to figure out how to do all this, you can sit back and watch it fail. That's right, fail.

To this moment I still have no real clue why this setup didn't work, but basically the moral of the story is that no incoming packets were actually routed correctly to fivegrand, or the actual VLAN interface itself. Outgoing packets would leave, never to be heard about again. I have no hypothesis to back up why this failed. [info]eddiegeorgejon suspects it may be because the network card I was using for the LAN interface (admittedly, an old Realktek 8139B. No, not C+, and not C, the usual culprits. B. Yes, it's old, so sue me.) didn't properly implement IEEE 802.1q (VLAN spec). As such, something went wrong.

Since I'm now ranting, I'm going to finish up this tale of suspense and mystery by saying that I took Mr. MacPherson's old Pentium II 233, threw in 3 network cards, and did the exact same setup as above (obviously less a VLAN and plus one physical interface), and everything works (other than the fact that transferring data between the LAN and behind-firewall public IP subnet consumes all the CPU power of the router. Bollocks. I need a dual-port card to throw into that little box again.)

The website is back up, and I... imagine Asterisk will work, once I finally get my phone number.

The other part of my story involves Subversion. So, today I was trying to set that fucker up, and for some reason, it was failing inexplicably. By this, I mean that I did what I had always done in the past:
tar cf svn.tar /path/to/svn/repository
scp svn.tar to:my/new/machine
ssh new_machine tar xf my/new/machine/svn.tar /path/to/new/svn/repository

Well... to my great surprise, svn rebasing my checked-out trees, pointing them at this and trying to svn up, or in fact svn checkout any new trees, just hung the 'svnserver -t' tunnel process on the server machine.

I investigated this for a few hours, pretty much evaluating every single shared library used by Subversion (one-at-a-time recompiling them from scratch, seeing if that made a difference, it never did, moving on, etc.). Moving on... kind of like with this writing. I noticed that the quality has decreased and the pace increased proportionally as I keep writing. The Bosstones' tunes have also gotten faster, I'm now listening to the "Live From the Middle East" album, and man those fuckers have energy. Anyways...

Anyways, nothing seemed to help, and I even went as far as stracing the calling process, figuring out what strings it was passing to svnserve -t, and replicating them until I found the one that was causing the hang.

After a few hours, I was angry (and of course playing Desktop Tower Defense to cool myself down), and I decided, hell, why not see if [info]eddiegeorgejon has an idea. He went over everything I had already done, before asking "are you throwing it from a 32 to a 64-bit machine? Is db4.3 [Subversion's database format] sizeof(long) agnostic?" Very good question. To this moment, I don't actually know the answer to that question, because although the machine the repository was on before, trusty old nirwana, is 32-bit, I did try checking out off of 64-bit hermes, and that worked fine.

Regardless, I did manage (courtesy of this ingenuity) to just figure out the proper way to move a subversion repository:

svnadmin dump /path/to/repository > svn.dmp
scp svn.tmp to:new/machine
ssh new_machine
svnadmin create /path/to/new/repository
svnadmin load /path/to/new/repository < svn.dmp

PERFECT. 5/5. Subversion works again. And the webserver does. And maybe Asterisk. And maybe you learned something. And maybe that funky smell isn't me. I really need to shower. And sleep.

More coming up relatively soon about my trials and ordeals with everybody and everything. And then a pile of nothing, since I will be heading back to BC for the holidays.

11 comments | post a comment


browse
my journal