Brandon's Blog

1/9/2009

We Got It!

Our negotiating instincts are improving.  We got our beloved apartment in Sisli for our lowball bid, essentially equivalent to our (revised) housing allowance.  Woohoo!

This actually compensates for that devastating Sooner loss that I woke up at 3 AM to see.

1/8/2009

We Have a House! ... We Think

Our apartment drama appears to be coming to a close.  We have found a much less expensive alternative literally next door to the first apartment we wanted to rent.  This one is almost entirely covered by our allowance.

It’s 1 bed, 1.5 bath and in a gorgeous location.  Obviously it’s a step down in size from a 22, but the price makes it a no-brainer.  We’re in the process of negotiating for it through a realtor right now.

It’s very exciting to be so far along toward getting settled in.  We really need to work on getting our stuff shipped on the sea freight, but five things at a time, I suppose…

1/7/2009

Blogs Are Born of Boredom

I’ve been remiss not to post for so long, but therein lies the paradox of the blog: the most newsworthy times offer the least chances for reflection.

Turkey is great, and interesting, all the time.  Settling in at work, I’m feeling the personal style adjustments I will need to be making.  Everything here is fast-paced and last-minute.  But somehow things always seem to order themselves and work out okay in the end.  Even being as tight as I am, I’m adjusting alright.  It’s nice to be here, so my whole situation operates under this style.  Before, the mix of US and Turkey was very stressful to manage.

With chaotic execution befitting newly-adjusted residents of Turkey, Kristin and I both managed to get local cellphones today: mine from work (!) and hers from the local storefront in a nice mall (Astoria) near my office.  See what I mean?  Work furiously and everything will happen in proper order, with little management.

The phones are with the same provider, so we’re getting a steal on her pay-as-you-go plan.  Something like $0.03 per minute mobile-to-mobile.  The account setup fee was a whopping 5 YTL ($3.33).  We went the way of the tariff-laying chicken.

Phones are everything over here.  You can add minutes to your prepaid plan within the Metro (subway) system, even.  The contracts seem to range from reasonable to brutal ripoffs.  Even exploring the option of an invoiced plan is out of the question until we get a “permanent” mailing address!

The weather has been completely miserable since we got here, until late this morning, when the sun came out — literally for the very first time since Saturday.  I’ve been under said weather, with a fairly persistent cold that has me wishing it wasn’t considered impolite to blow one’s nose in public here.  Lots of trips to the restroom for scratchy paper towels.

At work we type on localized (okay, localised) Turkish keyboards, with the key mapping remaining US.  This means about every form of punctuation is reached by pressing a button with a different symbol on it.  It’s like setting the keyboard to Dvorak for punctuation only.

Non-touch typists are in perpetual hell.  I’ve seen people using Caps Lock as Shift and many other crimes of inefficiency.  Some people do use the Turkish mappings, but for me this would require re-learning where “i” is on the keyboard, as an undotted I “uh”not“ee”-sound key lies in the normal spot.

The language thing is much better now.  Verbs in this language are an orderly mess, meaning they are regular but daunting in quirks and complexity.  I’m quite close to attaining a level of proficiency that will at least allow me to express desires when attempting to buy things.  I know some numbers, and I have a good “street sense” for the language, meaning I know “pharmacy,” “street,” and advertising things like “bargain.”

I can limp through a newspaper picking out connective words, familiar suffixes, and the occasional noun.  Things are coming along, and Rosetta Stone should vastly accelerate the progress.

I have officially traded laptops with Kristin, giving her the Macbook and I taking the Sony Vaio (which feels like a boat anchor after carrying around a 12” lightweight around for a year or so).  I always knew I would end up with the Vaio somehow, and it seems to be working fine.

I’m in the limbo period of an emotional buying experience, this time with the Asus EEE PC.  I’m thinking they need another version or two to get the right mix of aesthetics, features, and usability.  So, I’m just going to enjoy not spending money on computers for a while and use what we have.  I hope to expand my use of the Palm TX to complement a few of the other portable devices I have on the roster at this point.  One thing I’m missing (Kristin has it with her new cell) is the ability to Skype over 802.11g with a device palm-sized or so.

I would wholeheartedly recommend the Sansa clip to just about anyone, but especially for justly DRM content like online-downloadable library books.  Now if I could only improve my blind instincts picking out authors of books to download.  The general poor quality of sci-fi/fantasy always stuns me…

The national championship game, from our point of view, is at 3 AM on Friday morning, so that’s not going to happen.  And, there’s no 980 here, so I work every workday.  We’re so spoiled to that in the US Shell world.  We’re happy Orb users, so we can watch various family Media Center computers’ recordings and live feeds over the internet costlessly.  So, don’t mention a score until Saturday morning!

12/17/2008

About Time!

I am finally getting the chance to post a brief blog!

Before I started working, I was so busy exploring and taking pictures that I didn’t write.  Once I started working, I was so busy with work that I didn’t write.  So it goes…

Things are going very well.  I have decided there is something especially stressful about being in a location where maybe 2% of the things you hear are in a language you understand.  I have also noticed that this distress tends to increase as mental fatigue sets in, and that the stress itself feeds back to increase the fatigue.

I offset this by learning as many words and phrases as I can.  I can count to nineteen, greet, thank, and recognize functional things like “enter” and “exit.”  I know random words from the Internet and newspaper like “information,” “search,” and “private.”  I am starting to get used to typing on a keyboard with a left shift about the size of a normal key, pushed away to the far left edge of the keyboard.

So, it went from big things early on (eating, getting into the hotel, etc.) and has progressed to little things, like saying “twelve” (on iki) or “goodnight” (iyi something).

My pictures are all uploaded and mapped at http://picasaweb.google.com/bmccalip.

It really has been a great trip.  I’ve had many surprises, both good and challenging.  The most challenging was that the office is not really English-speaking as a matter of convention (most people are able to speak very well but mostly choose not to unless required).  I’m just taking this as an opportunity to learn a lot more about the sounds and stresses of the language, which helps me pronounce words correctly when I read them.  But it presents difficulty with fatigue as I said before.

I should get going soon, but I did have one thought about this fatigue phenomenon.  Last night I compared it conceptually with static from a poor or malfunctioning television connection.  If you try to compress this random data, the file comes out much bigger than would a normal picture with orderly, shapely things like football helmets or leopard spots.

This is because randomness (entropy) is the ultimate source of “information” (not in the “useful data” sense but in the “unique idea” sense).  Compressibility is mainly determined by lack of information (like patterns, which are predictable to some extent).  Orderly things are more expected (a flying football tends to move in an arc rather than all over the screen, etc.), so it takes less horsepower to describe them.  Randomness cannot be described briefly, because the presence of meaningful patterns really discounts the randomness (monkeys and typewriters aside).

Anyway, I think the mind works the same way: on assumptions.  If you hear “I love” on TV, there is probably a 40% chance or something that “you” will be the next word.  Who knows, but what it means is that if you hear “oo” you can probably assume it was “you.”  When there’s this meaningful but unintelligible rattle going on all the time in your brain, you are trying to hard to decode the signal you max out and wear yourself down.

Anyway, getting back to it…

12/2/2008

It's Been Such a Long Time

The timing and terms of Turkey are very up-in-the-air right now.  Updates to follow when I know something!  So, instead of thinking about all that, I’m very much enjoying Project Jimbo as a pleasant distraction.

On that note, it looks like using Google SketchUp and then importing to Blender would be the best way to create models for the 3D environment.  I never have been able to understand how to draw well in Blender, so perhaps SketchUp (and the associated massive library of free 3D models to get started) would be an interesting way to start.

For one reason or another, I spent quite a bit of Thanksgiving holiday time driving in my car alone.  During this time I spoke audibly to myself regarding the governing rules necessary to render a field of hexagons that ulimately keeps a rectangular board-like shape, as well as allowing for height changes across the surface.  What came out of these monologues may best be described as my 20 Theses of Hexagons, which currently encapsulate what I’m trying to do from a conceptual viewpoint.

Bringing in Google’s fabulous Protocol Buffers pretty much means I have taken care of the “Cell Properties” section.  Board Layout and Coordinate System are next.

Being the “3-D Guy” on a project is exceptionally odd for me, and it’s a nice stretch to not be an architecture astronaut for a while.  I am impressed on two different poles regarding 3-D programming: in one sense, it is incredible how much even at a low level is abstracted away and fairly simple to accomplish, and then from the artistic side I am floored to observe with more awareness the intricacy and detail that goes into selling a texture, model, fog, water, or shadow using sublime yet somewhat primitive tooling and architecture.

I haven’t had to do so much coordinate system math in ages.  One of the most computationally interesting aspects of my hexagon plan involves the scales of the coordinate systems, which actually have become slightly non-Cartesian from an academic standpoint, as the scales on the two axes are proportional but not equal.

This allows the code to “walk down a side” of the hexagon without having to go outside of natural numbers to describe the coordinates.

In other words, a line between (0, 0) and (5, 5) on a Cartesian plane would be 45 degrees above the x-axis.  In my program the same measurement would be 60 degrees to account for the natural angle of a diagonal (regular) hexagon side.

It’s all pretty neat.  Hopefully I can make some decent strides toward actually rendering contoured terrain soon…

11/5/2008

Wellll...

Don’t really know what direction the country is headed now, but I do know that Brit Hume is completely and totally hammered at about 11:21 PM CST.

11/3/2008

The Last Man

Putting on The Fountain soundtrack during work is kind of counterproductive.  Something about music that makes you pause, close your eyes, and tilt your head upward while chills proceed to rattle through your shoulders doesn’t really promote good PowerPoint productivity.

11/3/2008

The Clincher

At what point does the boredom induced by creating a presentation foretell the boredom of the finished product?  …Though explaining database star schema using anthropomorphic smiling clouds holding balloons was a strong point against boredom, in my view.

10/29/2008

Run Around

I was handed a 2,405 page PDF today (tabular gate log data) and asked if I could convert it into an Excel file.  Now, it’s safe to say I’m a lame duck at work with no direct responsibilities.  Because of this, a project such as this might actually appear both interesting and do-able in the current environment.

As one might fear, the data is not pure within the PDF.  There are page numbers, various column headers, and other stuff that make this even more non-trivial than the ideal base case.  It might be possible to copy-paste data such as this directly into Excel, but not really for 112,999 individual records (almost twice Excel’s per-worksheet row limit).

So, first off one must pretty much eliminate the work computer as the problem-solving vehicle.  We’re brutally locked down and only capable of invoking VBScript at best.

Up comes PuTTY connecting to Joey back home.  Up comes the Linux terminal.  Tilde, sweet tilde.  We have Python.

Up comes WinSCP also connecting to Joey.  Push the file across the net and into my home drive.

Okay, so let’s bust up the file: pdfminer to the rescue.  Extracted the tarball and ran the test script with success.

Now, this tool outputs some really filthy HTML (CSS absolute positioning to make the webpage look like the original PDF).  It might be possible to re-invent the wheel and create a better output template, but no time.  So, what I ultimately got was a bunch of HTML-tag-separated tokens from the file.  This is a tabular file, and pdfminer seems to read top-down-left-right, so what I got was a sequential listing of each column on each page, one after another.

So, in comes sed, the dirty old stream editor from early UNIX history.  Google revealed an HTML tag-stripping script for the program, so out comes a reduced tokenized version of the original PDF-turned-HTML, in a somewhat predictably scrambled order.

On to the real Python processing.  I hate writing parsers.  I hate writing code that interfaces with parsers.  Ugh.

So, I think, what’s the best way to do this?  I say, well, the column headers (actually ordered below the specified data, go figure) are signals that we’re changing “state,” meaning I can control my interpretation of the data using the trash that was tokenized along with the data.

This was miserable but tantalizingly half-successful.  So, I end up like some 10,000 rows short of complete, off-by-one errors all over the place, first two pages won’t process for anything, etc.

I then realize I’m writing a general case for a fixed subset.  Each page happens to have 47 rows with predictable garbage in between.  Hack in a special case for the 11 row final page, and you have an isolated, predictable set.  This solution took about a fifth the time of the original failed general case solution.  And it worked to the row.

Let this be a lesson to me: once-off means don’t worry about next time!

So, the output of my script was a tab-separated de-junkified version of the original unordered tokens.  But, well over the 65k limit for Excel.

So, send the file back over with WinSCP, import into Access.  Make it all pretty and set up custom filters to split the data into four subgroups based on first letter of last name.  Paste and enjoy.

What’s really brutal about this is that it probably came out of a SQL Server database to start, and the vendor just doesn’t offer raw data formats.  But, it was a heck of a way to spend a day, ugly parser code or not.

10/25/2008

How Can You Have Any Pudding If You Don't Eat Your Meat?

…Somebody isn’t following the party line.  So much for “Mavericks.”

> Newer Posts

< Older Posts