Saturday, August 24, 2013

Traffic peeve #76

(Peeve number scientifically chosen by hammering my number keys)

So yes, there is a story behind this.  I was stuck in the shit-tastically designed parking lot of a shopping center that was built here a while back.  In the process of turning around and GTFOing, I ran across one such asshole as depicted in the comic.  Driving an SUV, of course.  He did leave enough room for me to get by, thankfully.  As I turned past him I honked, to which he replied "thank you!".  I instinctively responded "You're welcome!" and drove on.

Tuesday, August 20, 2013

PowerShell 2.0 Type Accelerators

So at work I've been using PowerShell for things, because it's a fairly easy to learn scripting language that's grafted to the hip of .NET.  Specifically, PowerShell 2.0.  Yes, I know PowerShell 3.0 is a thing, and that there's a beta for 4.0.  I don't care.

One of the things in PowerShell 2.0 you might have noticed and/or used are the type accelerators.  Normally when you want to make a new object, you have to do something like this (using a stopwatch as an example):
$sw = new-object System.Diagnostics.Stopwatch
If there existed a type accelerator for System.Diagnostics.Stopwatch, that could be as easy as this:
$sw = new-object stopwatch
Well, the good news is, you can add your own type accelerators.  The doubly good news is, a type accelerator is a type of its own, so you can use a type accelerator to make adding type accelerators easier as well.  Sup dawg, I heard you like type accelerators.

The following doesn't apply if you use the PowerShell Community Extensions, where this already exists.  This is just a way for you to get equivalent functionality in vanilla PowerShell 2.0.

So, as implied above, we want to make a type accelerator for type accelerators.  This task is actually pretty simple.  Just plop this in your PowerShell profile (do echo $profile and create the file that comes up):
if( !( [type]::gettype( 'System.Management.Automation.TypeAccelerators' )::get.containskey( 'accelerators' ) ) ) { $_accel_type = [type]::gettype( 'System.Management.Automation.TypeAccelerators' ) $_accel_type::add( 'accelerators', $_accel_type ) remove-item Variable:_accel_type }
I will now proceed to explain it line by line.  The first line checks to see if there's a type accelerator called 'accelerators' already.  If it already exists, nothing will happen.  The whole point of this is so you can add other stuff to your profile and rerun it in the same session without getting errors.  The second line grabs the System.Management.Automation.TypeAccelerators type and stores it in a temporary variable.  The third line uses that variable's add static method to make a type accelerator for, you guessed it, type accelerators.  The fourth line simply removes our temporary variable.

After this has run (either restart PowerShell, or just run . $profile), or if you're using the PowerShell Community Extensions, the following is now possible:
Run that and PowerShell will poop out a list of all your available type accelerators.  Further type accelerators can be added using this type accelerator.  Returning to our example at the top:
[accelerators]::add( 'stopwatch', [System.Diagnostics.Stopwatch] )

Saturday, August 17, 2013

The Simpsons: Hit and Run

Yes, I finally started playing this game.  After moving out and not having internet for a bit I found time in my schedule for gaming, so here we go.

First impression: the game is good and makes a lot of references to a lot of the best episodes of the show, while at the same time having its own story.

As far as the gameplay goes, it's almost GTA but with The Simpsons.  You can run around and take any car you want, but it's more mission-focused than GTA.  There are fewer side things to do, and no weapons.  You can build up a meter by hitting people and cars and things, once it gets high enough the police chase you until either they bust you, which basically only takes 50 coins from the game's infinite supply of coins, or you get away.  Sometimes depending on where you are or what you're doing when they start chasing you it's easier to just get busted, since once they get their money, they neglect to take you to the police station.

In place of GTA's "hidden packages" are cards you can find, and wasp cameras to find and kill.  You can take side missions occasionally, as there are bonus missions you can find that unlock vehicles, and races that are fairly unforgiving in difficulty.

The game is severely missing a full map you can bring up.  The compass in the corner only shows so much, and it's all different shades of green, so it all blends together.  On this minimap are little icons indicating where various things like stores, races, and your current objective are, but it's kind of pointless because it has such a short range around your current location.  At least have a map I can buy at the Kwik-E-Mart or something...

Graphically the game is nice to look at, and handled the 2D->3D transition pretty well.  One thing I noticed relatively quickly was the tearing, which indicates that the game doesn't use VSync.

One thing that detracts from the gameplay is how much the game relies on timed missions.  This would be more acceptable if the time limits started out forgiving and got more and more strict as you progress through the game, but the time limits are strict from the start.  Throughout each area of Springfield you play in, there are shortcuts you can take, and to have any kind of ease with the timed missions you need to memorize their locations so you can drive through as fast as possible.  The "mission failed" screen even suggests that you do this.  While I like the addition of the hidden shortcuts, I don't think the time limits should have been set so strictly as to require their use.

Now, on to the game's overall progression.  Leaving the story out for the most part so if there's anyone else remaining who hasn't played this game and wants to, they can read this without spoiling themselves.  Anyway.

The game starts out with Marge ordering Homer around, and you do a set of missions as Homer.  These range from taking a science project to Lisa at Springfield Elementary to having to beat Smithers in an impromptu race from the power plant to Mr. Burns' mansion.

After you complete Homer's missions, you assume control of Bart for a completely different set of missions that culminate in you helping Professor Frink build Truckasaurus Rex and then take out a series of cell phone-using drivers so that Truckasaurus Rex can actually be controlled.  After Bart's missions, you assume control of Lisa.

Lisa's section is absolutely brutal with the timed missions.  They give you so very little leeway in the time limit that you have to know where all the shortcuts are AND not run into any traffic.  Or, you can do what I did and cheese the timer.  Essentially, it gives you some time to get somewhere, so get there and satisfy the first timer.  Once you get within a certain range of your objective, the timer goes away and it tells you to talk to the person.  Instead of talking to them, drive to (or at least, much closer to) your next objective, then get out and walk back.  Talk to the person, get what you need, and then walk allllllll~~~ the way back to your car.  Yes, this takes longer than driving, but you don't have to deal with the damn time limit, and it's what I found myself doing after failing the same mission about four or five times in a row because of said time limit.  The game really could have done without the time limits.  I come from the Vexian school of game balance, which carries the de facto motto of "If it's not fun, what's the point?".  You know what's not fun?  Failing the same mission over and over due to a strict time limit.  Also, to quote AVGN: "All it makes me do is have to do the same monotonous stuff over and over again, and it's not fun, it's boring."

After Lisa's section, you get Marge's.  It's more of the same shit with the time limits, except this time they're even stricter.  Basically, if you screw up at all, you'd better just restart the mission or you're wasting your time.  There was a nice time limit-less section of Marge's section, but for that it gives you one of those "follow the car" missions where if you get too far away you lose the car and fail the mission, and the leash they put you on is incredibly short.

Even though the game is divided up into missions by character, it's not the end of the world if you miss things, because you can go back to any mission and get what you missed.  The method of doing so is a little weird, but it works.  You have to go into the pause menu and select "Mission Select".  This also lets you easily re-play a section of the game that you may have taken a liking to, or try to legitimately get through a section you skipped.  "Skipped?" you say, perhaps raising an eyebrow.  Yes, in my rage-inducing attempts to finish some of Marge's missions, the game revealed a "skip" option on the failure screen.  According to the internet (and the internet is never wrong!) you can skip your way to the end of the game if you want to.

It's kind of a shame that the time limits ruin the gameplay so much, because without them, or if they were relaxed a bit, it'd be a really good game.  I really do see what they were going for, but I don't remember quite this many timed missions in GTA 3 when I played through it.  They weren't absent, but they also weren't EVERY. SINGLE. MISSION.

I haven't finished the game yet, but I feel confident sticking with the overall opinion I've established thus far.  If everything changes massively in the remaining gameplay, I'll do a follow-up post.

Wednesday, August 7, 2013

Switching to 24 hour time, Day 1

Well, Day 1 was yesterday.  But whatever.

I want to switch over because 24 hour time is less ambiguous than 12 hour time.  You don't have to read the time twice to tell what time it is, essentially.  Plus, I've been switching everything I possibly can over to ISO 8601 dates, and ISO 8601 uses 24 hour time.

(ISO 8601 organizes the date/time fields in the order of "changes the least often" to "changes the most often", from left to right.  Today would then be 2013-08-07 07:35.  This is less ambiguous for a human to read, and it can be sorted by computers very easily since strcmp will always report that a later date is "bigger" than an earlier date.)

However, I had a bit of a panic yesterday when I looked at my watch to see if it was about time to go to bed and there were numbers I didn't expect.  I had to do the old "subtract 12" thing to see that I still had another hour before I really needed to go to bed.

It seems like I can't configure my phone (an LG 420G) for it, and a Google search returned nothing useful.

I really just need to get myself used to using new numbers in the latter half of the day.  I get off work at 17 and go to bed at 22, not 5 and 10, respectively.

(also, side note, I'm going to be leaving the timestamps alone on this blog)

Saturday, August 3, 2013

Moving On With Life

Yeah, I'm finally getting the hell out of my parents' house.  It's been long overdue.

Move-in day at the apartment is the 9th.  I'll have two of my friends as roommates.  I don't know how long it'll take to get myself moved in, I'm expecting the process to take the entire weekend, mostly for little fiddly organizational bits.

To be honest I'm kind of nervous, and this is entirely to be expected.  I mean, I did go off to college and live in a dorm for the one semester I was actually there, but this time I'll truly live independently of my parents.  It'll be a new adventure, I guess.

I mean, I'm so nervous that I haven't actually told my parents yet.  I just can't find a good way to bring it up.  Having the social anxiety I have, it's difficult for me to start a conversation about a topic as big as this just out of the blue, even though it's my parents I'll be talking to.

I was initially keeping it secret because I know that if I'd brought it up they'd try to get involved somehow and then question how independent I really am.  I was planning on bringing it up after I'd signed the lease and it was a done deal.  Then after signing the lease I realized another reason to maybe keep it hidden for a bit longer: my dad is an asshole when it comes to all things financial.  I can completely picture him going "you're moving out?  Okay, here's your car insurance bill, your health insurance bill, and by the way, buy the car from me".  I'm not saying I don't want to pay for my own shit, but I don't want all that dumped on me immediately.  I'm not entirely sure yet that I could handle a sudden spike in monthly expenses, and I'll already have ~$400/month of rent to pay.  Keeping it secret longer gives him less time to carefully plan out how much of an asshole he'll be.

You can also be sure that when I do mention it, it will be to my mom.