2007 Jul 31 elly-miang

Guy Blade Guy Blade---03:54:00

Last Chance: Failure
Today, I gave Python its last chance. I know some people who are very strong advocates, and it is apparently rather popular at JPL. I have decided, however, that it is not worth using. This isn't due to the difficulty in programming in it--the simple things that I was trying to make today all worked fine--this is due to the idiotic language design choices made in it.

  • Implicit scoping - This has always been my main problem with the language. Today, my opinion was only reinforced by learning that Python defines the width of a tab character to be 8 characters. I am aware that this is the Unix standard width, but it is also completely unreasonable when most text editors created in, say, the last decade use a tabstop closer to 4 or 5 characters.
  • No ternary operator - The ternary operator is generally of the form ( condition ? trueval : falseval ) and is amazingly useful in the right situations--most notably for its ability to be used in other conditionals or as part of a compound assignment. There are work-arounds in python to get ternary style operation, but some require evaluation of all arguments (i.e., the (trueval, falseval)[conditional] method) and the new language construct added in Python 2.5 is ( trueval if condition else falseval ) which is just out of order.
  • No increment operators - These are simply your ++ and -- friends. The explaination for their absence is something along the lines of "they let you write code that's hard to read". Unfortunately, it is my firm belief that it is always possible to write code that's hard to read and one shouldn't throw out language constructs on that basis alone.
  • No explicit support for abstract classes - You can create things that are similar to abstract classes by creating methods without bodies. The problem comes in the fact that you can still instantiate a class with such methods and in fact you can call the methods without bodies. This leads to errors. I understand that the language is dynamically typed, but that doesn't mean that I should be able to instantiate anything willy-nilly.
  • print is not a function - print is a syntactic form with strange syntax. For instance, if you want to write a line without a carriage return, you have to end the print statement with a comma. Why? Who knows? You can use it like C's printf, but then its syntax becomes even stranger
  • Every function in a class must take the class as its first argument - That's right, when you declare a class function, it must take at least one argument, the instance of the class calling it. When you call the function though, you only provide it with values for the remainder of the arguments. For example, the function declared as def foo(self, blah, thing): would be called as foo(blahval, thingval). I'm sure there is a very good reason why they require every class function to have this argument, but whatever it is, the result is stupid.

There were other things that bothered me that I can't remember now, but I think this list is sufficient to get my point across. The language isn't a total wash--it at least has lambda expressions, but they alone are not sufficient to make me want to write anything in the language given its current handicaps.

Published by XPost

Permalink to this post     Com/0

2007 Jul 28 peach

Guy Blade Guy Blade---13:09:00

Old-style D and D
So, today I played my first game of the CalTech version of Dungeons and Dragons. This particular version of the game grew out of the original first edition of D&D and has been evolving since then. It is interesting in that it represents a divergent evolution compared to 3.5.

There are several things that make this particular D&D distinct. Firstly, you can see the first edition shining through--elves and dwarves are classes and there are no explicit races. Furthermore, classes have explicit stat requirements that dictate whether or not you can use such a class. The game also provides for explicit multiclassing in the form of 2, 3, etc class characters. The only requirement is that such characters must meet the stat requirements of both classes and often have some other stats rather high.

Another major distinction is that the armor and weapon rules are much more complex. The target number of any strike is based upon a combination of the weapon being used, the armor being worn, the attack number of the attacker and defense number of the defender. This results in common references to matrices.

The game makes use of 8 different statistics instead of the usual 6. Added to the list are agility and size. There are also interesting rules for rearranging points in stats. Generally speaking, it seems as though you can trade two points in one stat for one point in another so long as you don't drop the stat below 9.

The game also is played somewhat differently than I am used to D&D being played. Each player maintains (usually) 3 characters and runs two of them per session. They do this because character deaths are rather common. Unfortunately, needing more than one character significantly increased the burden of initial creation for me. Also, there are two character creation "modes". One of these modes is for the "design character". The DC character can have rolled stats rearranged in any way and get a few bonus points/free rearranges.

My DC was a Mage/Fighter with an 18 in strength and a 17 in IQ. Because of when I started in the yearly cycle (the universe resets every August), I began at level 12. This let me pick from the selection of spells which had been researched by the various players over the course of the year. One spell that quickly became my favorite was "Str X 1-5". This spell was a level 5 spell which multiplied the user's strength by 1d5 for 1d10 turns (1d10 * 6 phases). My character managed to roll max on both of these at the beginning of combat, giving me a 90 in strength for essentially the entire combat. The bonuses given by my absurd strength gave me 8 attacks per round which did 20d6+18 each if they hit. I would consider this something of an "edge case." Unfortunately, my character rolled poorly on her hit dice, and was at one hit point for nearly all of the combat due to a critical hit from an archer (while she was invisible) during the second phase of the first turn of combat.

My secondary character (a cleric) was able to keep my main character from taking any further damage, and the mage/fighter eventually found a good way to both attack and defend--she ripped the door to the fortress off its hinges and used it as a combination weapon and full cover. Good times.

Two characters in the party died, one we were able to resurrect. All in all, I think it was a good session and I'll probably stick with the game for a while.

Published by XPost

Permalink to this post     Com/0

2007 Jul 26 namine

Guy Blade Guy Blade---10:15:00

So, today was a weird day. All morning, I was dragging. It was all I could do to stay awake, and that was just barely working. I have no idea why, either. I didn't stay up especially late or anything like that, but everytime I blinked, it was a struggle to open my eyes again.

After lunch, I was able to get myself going and did some productive work. Unfortunately, the most productive thing I did this afternoon was discover a nasty corner case in an algorithm I was supposed to be implementing. If the psuedo-code was translated literally into C, then the code would read outside of the bounds of an array under certain very specific conditions. In C, this is especially nasty because it might result in reading invalid (or random) data instead of crashing like a Java or C# would. I sent a big email explaining the details to the author of the spec, but he's been on travel for almost two weeks, so I doubt that I'll see anything soon.


I think that I'm going to have to take my bike into the shop where I bought it. On the way back, the back gear kept slipping while I was going uphill. It was only a tiny slip each time--the chain didn't disconnect or anything--but the slips were happening every 1.5 to 6 full rotations at one point. That is simply unacceptable.

I also finally got my new CA driver's license in the mail today. The thing seems to be made out of the same kind of plastic as those discount card you get at Kroger--very flimsy stuff. This inspired me to finally go get the smog check done on my car. There is a place to get smog checks done directly adjacent to my apartment, which was handy, so it only took about 20 minutes to get the whole thing done. Most of that was spent trying to determine if my car was 2 wheel or 4 wheel drive, though.

Only one other thing of note happened today, I beat Jade Empire. It is probably a 25 hour game, maybe 30. I only started playing it late last week, but when you really have absolutely nothing to do in the evenings/weekends, you can spend a great deal of time on a game in just a few days.

Published by XPost

Permalink to this post     Com/0

2007 Jul 24 peach

Guy Blade Guy Blade---09:36:00

So, for the last few days, I have been playing Jade Empire. It is a pretty good game, but it is making quite clear how old my gaming computer is. I am routinely seeing framerate drops to less than 10 fps.

I've priced out a new machine to replace my old one and it is less than $1500. The whole spec includes a quad cord Xeon, 4 GiB of RAM and even two 8800GTS cards in SLI mode. Hopefully, that will be enough to play Bioshock when it comes out. I'll probably order once I've paid August's rent.

In other news, I got my first credit card today. I had applied for it when I got a new checking account a few weeks ago. The thing I find most rediculous about it is that I have a limit of $500. I have more than six times that in each of two checking accounts. Somehow, I doubt the validity of whetever method they used to decide my limit.

Published by XPost

Permalink to this post     Com/0

2007 Jul 19 anthy

Guy Blade Guy Blade---06:23:00

Midweek Review
This week has been long and its only Wednesday. On Monday, I went to the Pasadena DMV. I was trying to register my car and get a California driver's license. I was doing this because, in California, you have to get a new license within 10 days of moving to the state and new registration within 20 days.

So, apparently you have to take a written driver's test every time you get a new license in California. I passed it, which was nice, but they punched a hole in my Indiana license and gave me a piece of paper as a temporary license until I get my real license in the mail. As for my registration, although you don't have to get a car checked for smog for the first 6 years after the car is built when you buy it in state, you do have to do a smog check when you bring a car in from out of state. I believe that smog checks take a relatively small amount of time, and I can mail in my documents to get the registration now that I've already been to the DMV.

Once I got to work that day, I found the east parking lot completely full. There wasn't a single free space in it. Instead, I parked about a quarter mile away at the entrance to the nearby national park. The walk took almost half an hour.

Finally arriving at my office, I found that the laptop that I'd been using since I got there (an old Compaq n600c) had begun to suffer disk failure. Luckily, Knoppix and a flash drive saved the work that I had been unable to back up on the previous day.

On Tuesday, I finally bought a bicycle. It is a pretty nice bike. The thing that sealed the deal, though, was the shifter on it. It has a very high quality shifter that I can only describe as being...ratchet-like. Basically, you press one of two buttons to shift up- or down-gear. If you press harder, you go through more gears and it falls back to the current gear plateau when you release. I rode it to and from work that same night to make sure that I could. It seems like the way there will be a lot easier than the way back since it is mainly downhill. I was pretty exhausted by the end, but I made it.

Today, I went to the Pasadena Apple store because my iPod had been acting up. It wasn't recognizing that it was being plugged in to computers, so I couldn't put more music on. After waiting 25 minutes past when my appointment was, they took a look at it and gave me a replacement.

Tomorrow, I will ride my bike to work for the first time. I didn't ride it today since I had the appointment at the Apple store and wasn't sure I could ride back home and drive to Pasadena in time.

Oh yeah, one other thing. Go buy and play LEGO Star Wars. It is amazing.

Published by XPost

Permalink to this post     Com/0

2007 Jul 11 garnet

Guy Blade Guy Blade---07:22:00

Relatives from Out of Town
So, my mother and brother have come out to California to visit me and help me "settle in." There isn't a great deal left to be done with regard to moving in; there are a few boxes (like 2) that need to be unpacked, a few things lying about that need to be put in their place. Unfortunately, unpacking is not something that can be easily placed in someone else's hands.

I did go to Target with my mother and picked up some household essentials such as a vacuum cleaner. I also picked up a rice cooker, so that should add a bit more variety to my meals (or perhaps revert them to the old summer style).

Published by XPost

Permalink to this post     Com/0

2007 Jul 10 elly-miang

Guy Blade Guy Blade---06:22:00

Things that are Irritating
Things that are irritating:

  • Trying to reverse engineer a binary file format from Fortran source code that is commented in French.
  • That adding another network card to eve makes it unable to read from the 1TB raid array.
  • Having to move said raid array into another computer because the problem seems to persist regardless of which network card is installed or which PCI slot it is installed into.
  • Arrays with dimensionality higher than three.
  • Having to get a new registration and license because I was supposed to have them two weeks ago.
  • That the closest Steak 'n Shake is in Texas.
  • That Darker than Black was licensed.
  • That the PS3 dropped in price by $100 yet I still can't think of a reason to get one.

  • Published by XPost

    Permalink to this post     Com/0

    2007 Jul 08 garnet

    Guy Blade Guy Blade---08:46:00

    Moving In
    Today, I checked out of my hotel and moved into my apartment. I finally have cable and an internet connection, so I figured that moving in was a viable option. I'll have to go out and pick up a few things tomorrow, but that shouldn't be too big of a hastle.

    Hopefully, I'll be able to get DSL service started sometime next week and bring back online.

    Published by XPost

    Permalink to this post     Com/0

    2007 Jul 02 aya

    Guy Blade Guy Blade---04:02:00

    Security Controls
    About an hour ago, I decided that I wanted to print off some BESM character sheets. I don't have a printer myself, but my hotel does, so I went down to the public-use computer which has a printer. I browsed to the White Wolf website and loaded the character sheet. The thing about BESM character sheets, though, is that they are actually designed to fill one-half of an 8.5 x 11 sheet of paper. Because of this, I wanted to print both halves of the character sheet on one page. This is usually accomplished by setting the printer to print two sheets per page. This particular computer, however, would have none of it. Whenever I opened the properties page to set the printer into two pages per sheet mode, a window popped saying "Unauthorized Function", and the properties window would close.

    I found, though, that the amount of time the properties window stayed open was not constant. In fact, it seemed like whatever watchdog program was keeping the window from staying open was simply polling all of the processes and looking for things it did not like. Thus, I kept opening the window and attempting to change the setting before it closed until I was finally successful and printed off 5 properly sized character sheets. Luckily, the program closed the properties window by simulating a click on "OK", so all I had to do was select the appropriate number of pages per sheet. This particular choice was bad design.

    The real difficulty came when I tried to change the setting back. I didn't want to inconvience others, so I tried to change the setting back. I had no luck at this, and after a few dozen tried, the machine locked me out with a "Sabotage cooldown". I found this humerous as what I was attempting to do was reset it to standard operating conditions. Apparently, the sabotage-prevention mode reset the page setup on its own, so I didn't have to worry about it.

    All in all, I consider this program's behavior to be primarily annoying and not particularly effective at controlling access.

    Published by XPost

    Permalink to this post     Com/0

    2007 Jul 01 garnet

    Guy Blade Guy Blade---08:44:00

    Today, I had to get up at 6:45 just as I do during the week. I was up this early because I needed to be at my apartment by 8 am so that my things could be delivered. It only took about 2 hours to actually move everything into my apartment, but I expect it to take quite a bit longer to actually get myself unpacked.

    So far, I have unpacked perhaps a dozen boxes. I have unpacked all of my clothes, most of my computers, and my dishes. Unfortunately, there is little point to moving in as of yet. I will not have power until Tuesday and I won't have internet/cable television until Saturday.

    Speaking of the internet, I have decided to take a two pronged approach to my internet connection needs. Since I need to have a service that gives me static IP addresses (at least 2) and decent upload in order to continue to host, I have decided to get some form of business class DSL for my hosting needs. Unfortunately, this leads to ugly and slow download speeds which always come with DSL connections. As such, I have decided to also get residential class cable modem service through Charter. My current plan is to set up my network such that the two external machines (freasha and eve) are connected to both the DSL and Cable service. Eve, my current router, will also serve as a router for my internal machines which will remain behind a NAT.

    This setup will likely require a fair bit of fiddling with iptables rules in order to get functioning correctly, but I do not believe it is impossible. I will likely have to buy a few more network cards in order to get everything going, however.

    I've also been working on a monthly budget. So far, I have put in numbers that I know (such as rent, cell phone, etc) as well as numbers that are less certain (power, gas, food). Not counting Renter's Insurace (because I haven't bought it yet), It seems like my monthly budget is something like $2900. I expect this to be a gross over-estimate as I'm putting in very large numbers for some of the expenses (such as over $320 for gas per month when I plan on biking to work or $400 a month for electricity).

    We'll just see what happens, I suppose.

    Published by XPost

    Permalink to this post     Com/0

    Copyright 2002-2020 Blade Libergnosis//Powered By Blogger