Brandon's Blog
5/7/2010 #
Server Crashes, Sigma, and the Distant Past
When we get back to the States (what a day of rejoicing that will be! When we all see Target, we’ll shop and buy quality things) [wow, a hymn joke and it’s only 10:05 AM], I’m going to try to performance tune my wee Linode server. While mod_wsgi is a lot better than mod_python as far as I read, the performance just can’t handle these little mini-DDoS attacks and Chinese/Russian search engine crawlers. I hope nobody got a bunch of 500 errors, but I discovered this morning I got hammered again by the commies or something.
It’s very hard to do that type of thing here, because the trans-oceanic latency on the connection makes it slow torture to make any significant changes. This may mean implementing caching in efendi (I don’t want to do this), and taking my RSS updates (the feature that brings you Sigma updates and Picasa pictures) outside the webserver as a periodically run job. Right now, every fifteen minutes or so the server queries the RSS sources before serving you your page. You may notice one page has a big ol’ lag before loading and then everything else goes pretty fast. This is why. In the Drupal world (a content management system), they call this technique “poor man’s cron,” because it’s normally used when you don’t have permission to run a scheduled script (cron job) on the server. I have this capability, so I should enable it as a standalone feature.
My theory is that the server instance that gets tapped to do the RSS updates freezes the server for a second or two (while it’s waiting on mostly various Google sites to respond), the crawlers pile into the queue and overload the server, which I believe is single-threaded right now, and so is taking it one request at a time. Server-side caching is something I’ve never done, and it always feels chancey to me. But I think I can pull it off. Somehow. My third-party templating engine supports it, so it may not be so bad.
But, I’m not doing any brightlamp or efendi work right now, because Sigma Designer is fully kicked off and a load of fun to write. It’s a perfect GUI project. Rewarding, relatively simple, some fun little features that make things interesting, and still do-able in Python.
Sigma Core pushes on, with Meta boldly taking things past my little self-congratulatory exercise in framework builing and into a real playable, entertaining thing. Watching the rebuilding of Ravren (maybe we should have something in the back story about it being a rebuilding, by the way!) has a fun throwback feeling to me of sitting in 10th grade study hall getting chastized for talking while building up the plans for Sigma/Circle (who begat Sigma/C++, who begat the short-lived and feeble Glamdring [I know], who begat the successful and growing Sigma/Python of now).
Those were simple times back then, when I was just learning about dynamic DNS (and routers didn’t support it automatically) and you couldn’t rent a root account on a virtual server for $19.99 per month. We can now deploy on my own little forty acres with little to no muss and fuss.
Designer will probably be rough but deployable within a week or two, and Sigma will be easily patched to deal with the various eccentricities and improvements introduced by Designer’s implementation. Once Designer hits the streets we would much appreciate some area-creation help for those feeling creative and a bit medieval. More on this soon, but get your story-telling neurons firing. We need you. That means you.
When I next call the ball on direct Sigma coding, there will likely be a push to implement Captain Xavier, at which point – no matter how rough combat and stats and weapons and magic are, no matter how small the game world is, no matter how limited the command vocabulary is – the game will be emotionally finished for me. “Captain X” runs the Ravren ferry. In Sigma/Circle, most of the infrastructure was pre-made, so all I had to do was hack the source a bit and add a scheme where you could buy tickets from the captain and he would let you on the boat. The rest was some mad David Copperfield skills to fool you into thinking the fixed, ordinary room you were standing in was a moving ferry.
We won’t have shopkeepers and money will likely be a bit shaky, so the ferry will be free for a while, but it will still be a simply fantastic feeling to make that work again. It might seem a silly thing, but this achievement means our framework will have similar capabilities to one that was running major systems with hundreds of simultaneous players. At least in one area.
That was ten years ago!
4/21/2010 #
The Remnant
Lurking through Facebook sometimes reveals the outcomes of a lot of childhoods you never thought you would hear about.
A few of those “that kid” kind of guys that you heard teachers warning each other about in the first week of school.
And, if it was any concern at all, the force of heavy metal music is strong in these ones. I didn’t know ripped jeans and long wavy hair were still fashionable in some circles.
4/21/2010 #
Social Security
I’m starting to think that it would be best to convert Social Security from an entitlement program to an “underfunded retirement insurance” program.
Much like we do with unemployment insurance, we pay into it hoping we will never use it. For those well above the labor class, this eventually becomes more of an exercise in Joe Biden’s tax-patriotism than true bank-and-hope “investment.” We realize that those folks employed swinging hammers and waving in the wind of volatile construction and manufacturing environments will be in more need in bad times, and those better off could very well be in a need-not apply situation anyway.
Many if not most responsible successful retirees are not even considering social security in their retirement calculations. The good planning websites pretty much tell you not to. If it’s so negligible and uncertain for you, take yourself out of the game.
Once Social Security is converted to under-savings insurance, we can basically see it as another form of welfare. And what’s a better governmental policy toward welfare than preventing people from going onto it?
So start a jobs program for retirees. You have an increasingly well-educated population retiring earlier with a longer life expectancy. Work might help out with the health insurance, reducing some burden on the system there, and who knows how much dementia and other maladies could be averted by keeping mental activity high in the sunset years.
This makes Social Security yet another income tax for those better off, but the regressiveness of the current situation has it halfway there already.
4/21/2010 #
Oh, And
If you’re ever in the position to internationalize a web app, please do not auto-select language based on location. Or, if you do, make it darn easy to reverse the choice.
Despite being a fully authenticated heavy user of nearly everything Google, Blogger is unwilling to accept that I am not a fluent Turkish speaker. Which unfortunately leads me to çabuk çabuk çıkış yapmak, if you know what I’m saying.
But then again, you probably don’t, and I barely do. So stop serving me Turkish pages, Blogger!
4/20/2010 #
Wordsback
Just found the perfect example of how backwards Turkish is:
SCMS’den aldığımız rapora istinaden.
Means:
Referring (istinaden) to (-a) the report (rapor) we (-ımız) took (aldığ) from (-den) SCMS.
4/19/2010 #
Dust in the Wind
Eurotravel is pretty screwed right now, obviously, and it’s really crimping the weekend for us. We’re supposed to be hosting a guest, but it’s looking doubtful that a flight by way of Heathrow would really happen at this point.
This is a three day holiday weekend in Turkey, so in lieu of original plans it would be nice to plan a trip or something, but it’s either too cold or too dusty or too packed with vacationing Turks to go anywhere interesting. Lisbon was a thought, and well outside the ash-stream at this point, but who wants to take a chance on something like this? Train travel here is limited but is a possibility.
Clearly, as a function of very meaty cultural travel choices last year, a lot of places on the list for 2010 have a utility pretty much proportional to sunlight and high temperatures. It’s still remarkably cool up to the north, so Germany and the like would be Houston winter conditions. A weekend escape to somewhere colder (and ashier) is not too attractive.
4/3/2010 #
Adventuring Update
I really have a lot to reflect on regarding Dragon Warrior II. It’s so bad, actually, that it’s making me completely rethink my opinion on Square versus Enix. I had always said, “Enix doesn’t do insta-death spells, Enix doesn’t yoink magic points, Enix balances its combat.” Dragon Warrior II reverses all of these.
Now that I am in the final sequence of the game, a minor randomly encountered enemy can wipe out your entire party with a single spell automatically, with no way to defend against it.
Enemies can dance a “strange jig” and knock off perhaps 10%-30% of your total available magic in one unpreventable shot. And you can’t recover magic anywhere but an inn.
You go from tarring bosses in one shot to getting knocked off by basic cave monsters.
I’m not really venting here. I’m enjoying playing through the game. If I wasn’t playing sped-up with instant saving/restoring capability, I might honestly have quit by now.
Actually, I would have been less risk-taking, earning up more levels once things started looking bad. Being able to save state and restore allowed me to get too far into the game, as I was under the assumption the grass would get greener. It did not.
Also, the basic RPG plot grease of cause-effect (questing for the item you need to quest for to open the door to the quest area where you get the magic rock that opens the cave door that lets you get the moon cookie which unlocks the spaceship that takes you to the planet where you… okay, that’s not exactly how it worked) is so undocumented, you would find yourself sailing all around the world asking random people in towns for tips, which are handed out in seemingly inverse order throughout the game.
I would also make the point that players guides weren’t exactly as common in this era, nor was the internet, so getting stuck was a much bigger deal. You better have a pad and paper to write down all the clues if you’re playing without help.
While this review is a bit angry, it pretty much encapsulates my feel of the game versus the classic first edition.
I’ll end with a quote I’m seeing a lot lately:
“No pulse, no breath, cold as a cod. Yes, thou art truly dead.”
4/2/2010 #
A Strange Thing
As I’m preparing to leave for an extended break, I thought about a funny phenomenon here in the office.
Things are very ad hoc and often hectic here, and there aren’t always enough chairs around to seat people in conference rooms and around desks. There is never really an excess of things in this country, so stuff like this is normally run on the bare metal.
But when you’re gone for a day or two, it’s almost inevitable that somebody will steal your chair and not bring it back. Or at the very best, they’ll bring back a chair that isn’t yours.
Since I’m on the tall side here, I almost always have to adjust all the settings (height of armrests, etc.) as soon as I sit down.
Chairs are kind of personal in the States. It feels kind of strange to have your chair gone when you walk into the place after a few days off. It’s like the world completely moved on around you. In some ways, I guess it did.
4/1/2010 #
Excitement Turns Bad
I was pumped this morning to find a can of green tea actually bottled in the Far East. All natural and stuff.
Took it back to my desk, and it tastes like grass clippings. Enjoy your Lipton with the NutraSweet. They dress it up real nice.
3/31/2010 #
Regarding the Proxy
I just realized today that any criminal with $20 in a Paypal account could replicate my proxy strategy for overseas credit card usage. Linode takes minimal personal information and lets you choose the location of your server.
This isn’t in itself scary (you shouldn’t count on location for credit card security), but it does make it especially stupid that some companies are trying to use this as a fraud detection agent.
It’s one of those nets that only catches the good guys.
> Newer Posts
< Older Posts