| My stuff is out there to be used... |
[Jun. 23rd, 2009|10:59 pm] |
Want to see what I've been slaving on over at the YouTube? There are a few reasons why it hasn't been announced yet, and I'll not say why, but I'm all about building communities at YouTube. My work may not change the world, but maybe the communities that are built with it could make it a better place.
See the future of YouTube Groups... er... I mean Collaborative Channels... oh wait, that branding hasn't happened yet :P . It's a completely re-done back and front end for a video-centric forum. You can discuss videos, post videos, rate videos, and even watch as those ratings alter a video's location in group playlists automatically.
There are really only a couple things about the implementation that are really innovative, but there are some nifty ways to interact with discussions and videos that I think makes them far easier to use than the old groups implementation.
See them now at: http://www.youtube.com/channel/ Also, welcome back Spinal Tap: http://www.youtube.com/channel/spinaltapcontest
If you find a bug, I probably already know about it, but go ahead and comment here (they are all screened).
This is totally not an official release statement, but my main project at YouTube is switching in the next week or two, and I didn't want to *not* tell people.
Also, my team lead is leaving for a new startup, so I've got a bit of a mental block this week while I sort out not working with a great engineer and great guy every day. We'll miss you, Nick. |
|
|
| (no subject) |
[Jun. 6th, 2009|04:51 pm] |
For years I have wondered what it sounded like to be on the receiving end of my vocal stylings. I did some karaoke, rock band, and other singing games a bit this past fall, which was a 10 year hiatus in singing. I couldn't tell you what I sounded like back when I finished high school; maybe I sounded better, maybe my singing voice had less of a breathy quality, maybe I was more confident; I don't know. But listening to some recordings I just made of myself is quite disappointing.
Seven Mary Three? Oy. Incubus? Vey. Dave Matthews? Oy vey! Danzing? Bleh. Billy Idol? Eh...
Realizing that you are not good at something that you enjoy doing sucks. I guess it'll have to stay an "in the car alone" or "when I'm drunk with friends" thing.
It does make me wonder why the hell my choir director kept me in the choir.
small update: I should point out that it's not that my pitch is off (I'm solid on pitch), it's other qualities.
On the upside, I also discovered that my speaking voice is actually somewhat pleasant. It's not James Earl Jones :P, but it's also not Gilbert Gottfried. Hopefully others find it closer to the former than the latter. |
|
|
| email client |
[Jun. 3rd, 2009|12:37 am] |
It would seem that someone wrote an email client that duplicates much of gmail's functionality (in terms of searching, labels, discussion grouping, etc.). http://postbox-inc.com/ To be fair, if I were writing an email client, it would be very similar to PostBox (I had written a sqlite + Python backend for email storage, labeling, and indexing a couple summers ago).
Kudos to them for beating me to it. I hope it's actually fast (last time I used Thunderbird...it was a bit slow). |
|
|
| Capitalone FAIL |
[May. 18th, 2009|07:35 pm] |
I've had a Mastercard with Capitalone since I was a freshman in College. It's got a nifty tie-dyed pattern on it.
Recently (like in the last month) I've received no less than 5 envelopes with "convenience checks" included. Previously, I would receive an envelope every 3-6 months. These checks are not convenient for me. In fact, because I have literally no use for them (I've got a higher balance in my checking account than I do a limit on the card), I have to take the time to turn on my paper shredder and pass the checks through it.
I just called them up. It took me 10 minutes to have them stop sending the checks. That's definitely 5 minutes too long (they kept wanting to confirm that I wanted to stop receiving this shit), and arguably 10 minutes too long (I should have to request that they send me stuff, not request that they stop sending me stuff).
What's awful is that they say it may take up to 8 weeks for me to stop receiving this stuff in the mail.
So as the subject says, Capitalone FAIL for wasting everyone's time and money.
Thankfully, my Visa with US Bank has never sent me such crap in the mail (which is part of the reason why I use their card more often). |
|
|
| compiler.ast vs. _ast vs. ast |
[May. 12th, 2009|06:17 pm] |
I had recently re-written PyPE's parser stuff to use compiler.ast, and found it to be pretty convenient.
I then did some more reading and remembered that the _ast module added in Python 2.5 was the proper thing to use (it's 2x faster, ...). In 2.6, they added some nice bits around _ast as ast.
So, what's the problem? In order to support Python 3.x and beyond, I need to switch to _ast/ast. Thankfully, there are only 2 functions that I need to rewrite, and I can use most of my old stuff. The annoying part is that one thing that used to be terribly convenient (discover all assignments in a scope) became difficult, because what used to happen with bare names regardless of context (functions, lambdas, for, with, list comprehensions, generator expressions, ...) now have contextual 'target', 'targets', or 'optional_vars'.
I've not even looked into imports yet (which was trivial with compiler.ast), nor pulling the signature for a function/class :/ . |
|
|
| A quick PyPE update |
[May. 6th, 2009|10:47 am] |
I don't know if PyPE is ready to be packaged, but it's been a year and a half since the last release. Rather than letting it go another 6 months :P, I just posted it on sourceforge svn (I use PyPE on a daily basis, and will be doing svn commits as I change things from now on). I also posted every non-test/beta source version that was in my archive. History is good.
If you've never looked at PyPE's source...you probably shouldn't start now ;) . When I first started writing it, "design" wasn't a concern; getting something built that did the job that I wanted it to do was. As a result, there are a lot of things in there that are interesting hacks based on what I was interested in or curious about at the time.
I've also got an interesting idea for obfuscating data that a coworker says I should expand into a paper (I'm thinking tech report). More than anything, it's cute.
Quick update: The subversion url is: http://pype.svn.sourceforge.net/svnroot/pype/ , which you can view in your browser as http://pype.svn.sourceforge.net/viewvc/pype/ . |
|
|
| Keeping up... |
[Apr. 28th, 2009|10:33 pm] |
I don't know how everyone does it, but I'm not really able to keep up with people on Facebook. I don't have a huge number of friends, but I have to go back 3-4 pages every day. And if I miss a day (because I'm busy at work or otherwise), those days are like they've never existed. An acquaintance from HS got married about a year ago (last time I heard, she was engaged), I've missed countless birthdays, some births, ...
On the upside, at least it's not nearly as fugly as myspace.
And combining a special effects budget with an old asian legend (of any kind) does not necessarily make a good movie. This is a steaming pile of poop. No, really. |
|
|
| TWC and bandwidth caps... |
[Apr. 16th, 2009|10:00 pm] |
A while ago I posted about Time Warner's attempt to cap internet connections.
Recently, Time Warner had started to count data transfers so that they could institute caps in a couple months, which they would then use to advise people the proper plan they should be on. They ended up scrapping the plan due to outcry from the internet.
First off, I'm personally not averse to caps, my concern (like others) is a matter of pricing. Generally their caps were pretty low, which irked me. Then they were charging something like $1/gig if you went over your allotment, which is on the order of 5-7x what it actually costs them for the data (ignoring potential infrastructure costs, which vary, but not typically by what user X downloads).
I'm not able to find the reference at present, but if I remember correctly, the only plan that I saw that was reasonable was a $15/month 5 gig cap plan with relatively low speed (256kbit down, 64kbit up). For anyone who just checks email or rarely watches video, that's actually a pretty reasonable plan. It's faster than dial-up, always-on, you can get your OS updates, check your email, read your friends' blogs, hit facebook, even post some pictures. For a fairly substantial minority (or even a majority) of internet users, that's probably sufficient for their needs.
For the rest of the plans, I actually wouldn't even argue with caps on a business front. As long as the prices aren't screwing the consumer, caps are not a bad idea. On the other hand, what pisses me off about cell phone billing, which is essentially what bandwidth caps are, is that you pay some flat fee for a limited amount of access per month. You go over, you get charged hefty overage fees. You go under, you don't pay any more...but you also don't pay less. The entire "roll-over" minutes thing is actually a very nice way of doing it, but those that I know with any roll-over minutes have typically maxed them out and lose them on a monthly basis. But if you reduce the cost of your service because users aren't using it (giving people money back instead of roll-over minutes), then people will not use the service in order to save money (which reduces communication, reduces money made by the companies, and ultimately, stifles innovation).
There is no winning in the current marketplace.
The only way for people and companies to win is to change the marketplace. Municipalities can partner with telephone/internet/cable companies to build fiber out to every home and business, throw away everything that doesn't run across the fiber (recycle!), and after a modest 5-year monopoly on the infrastructure (to recoup investments, pay back the municipality for its investments, ...), put the service and maintenance up for bidding. Multiple companies provide their proposed rates, regions vote on their preferred provider, providers are limited in size, and the only people who can be blamed for shitty service is the consumer for choosing a shitty provider.
Corporations should jump on this because it shares the infrastructure build-out risk with government, and people should jump on this because it gets them better service for better prices without the current no-choice vendor monopolies that currently exist. At least with this system, you *choose* your monopoly provider. With standards-based equipment, maintenance costs are reduced. Maintenance can be provided by local service personnel who know the system, and are "contracted" by the company providing the service (which is actually how a lot of cable companies handle it now anyways).
There's absolutely no reason why we aren't sporting 100mbit connections to every major metropolitan area (like Sweden), and 10mbit+ to moderately populated rural areas, except for greed and/or lack of vision. For long-distance last-mile concerns, 802.11n-like spread-spectrum 1m band could get you 50 miles at 10mbit (latency may be high, but it's better than a satellite round-trip).
I'm not the smartest person in the world, but that I've not read of ideas similar to the above astounds me. Telecommunications companies really need to get off their asses.
P.S. http://googleblog.blogspot.com/2009/04/will-it-lens.html (if you see a "blog" t-shirt, or some brown and orange shoes, a black hoodie, that's me ;) ).
Update: here's a link disucssing the costs and access speed for municipal internet connections... http://cis471.blogspot.com/2009/04/why-is-connectivty-in-stockholm-so-much.html |
|
|
| Parsing Python |
[Apr. 11th, 2009|11:42 pm] |
As work continues on the next version of PyPE, I've discovered a few cases where having the AST for the module being edited is actually the most convenient way to discover information about the document.
In the past, any time I've needed some new nifty functionality, I've written custom parsers. I've got one to pull tags, another to look for function definitions and docstrings when my parser.suite()-based compiler fails, another compiler.ast-based unrepr function such that unrepr(repr(obj)) == obj, one for latex, and even one for C/C++. One of the (many) reasons why I don't add Java support to PyPE is because I don't want to write another parser.
If I remove the need to be able to display information about a document when it's syntax isn't correct, then I can remove one of my custom parsers. If I swap to using the AST directly (rather than doing a token match over parser.suite() output), then basically all of my other needs are covered by taking a pass (or 3) through the AST of a parsed document...which is *really* tempting. Why don't I do it straight out? Parsing pype.py using compiler.parse() brings the memory of a Python console from 4M to 25M, even after deleting the output. Thankfully, it doesn't leak when I parse/delete in a loop regularly (hanging around 25-30M), but enabling psyco leaks roughly 3M/cycle. parser.suite() only brings memory use to 11M, and with psyco, actually uses less (9M after parsing finishes).
At this point, I'm basically damned if I do (memory use goes up), damned if I don't (I have to write *even more* custom parsers to add functionality). This wouldn't be that big of a deal, but I've got a feature request to auto-parse imported files to be able to autocomplete and show calltips. I'm "meh" on that one, but one of my coworkers suggested something that is *quite* useful: autocompleting on local variable names (not their methods, except for self). How many times do you scroll up and down to try to find the right variable name? Diito for globals and imported modules.
I'm thinking about only supporting this new and nifty functionality for people with Python 2.6 or later, as then I could use multiprocessing to just pass the parsing off to another process, cycling that secondary process every once in a while.
It's late, I'm tired. We'll see. |
|
|
| Python AES |
[Mar. 31st, 2009|12:00 am] |
I've recently found myself in desire of a pure Python AES implementation. I had started writing one a while ago, but I dropped it because the conversion from the initial Rijandel version in C was horribly tedious.
After looking around, I found a few different implementations, and picked one that wasn't too horrible, pyAES.py from http://brandon.sternefamily.net/articles/aestutorial.php (it has a padding bug that can crop up on decryption, can you discover it?). After cleaning up the interface, I benchmarked it at just under 4k/second encrypt/decrypt speed. We're not going to be breaking any records with that one ;) .
Tweaking pieces here and there (replacing galoisMult with table lookups, not re-expanding the encryption key over and over, etc.) got me to just under 30k/second encrypt/decrypt speed. Psyco doesn't help a whole lot, getting us up to about 70k/second.
I also went and implemented ECB (I have it raise an exception on call; it's a fundamentally broken mode, but it was so simple, why not), CBC, and CTR modes, in addition to the OFB mode included in the original source. I've got a CFB implementation, but something just isn't working right, and I'm a bit too sick to work through why.
I need to verify that it is as correct as the original implementation (which has a huge security hole with the consistent use of an initialization vector of nulls, btw), maybe tomorrow... |
|
|
| PyPE... |
[Mar. 14th, 2009|04:21 pm] |
So, I was going to write a blog post about some new features I'm going to be releasing in the next version of PyPE (which I hope to release by the end of April), but I started to ramble and I realized that I wasn't even all that interested in writing it :P . Talk about it in person and be nerdy? Ok. Write? No.
Suffice it to say, there are some bug fixes, performance improvements, a variant implementation of a feature from TextMate (http://manual.macromates.com/en/working_with_multiple_files#moving_between_files_with_grace, only mine doesn't hang the editor when it's re-indexing your files :P), ... Some of these features also make PyPE more usable on OS X. I blame the poor quality of the OS X platform (see my previous blog posts on the matter) for any/all remaining issues in PyPE on OS X.
Otherwise, things are going pretty well. |
|
|
| (no subject) |
[Mar. 4th, 2009|10:30 pm] |
So, at some point I'm going to go on a rant about social security, kind of like I did for the "abolish personal income tax" thing I did a week ago, but this post isn't that.
Imagine for a moment that you were Microsoft. And imagine if you wanted to create a "web drive" in which files are stored on the internet somewhere, available for sharing, private use, etc. Well, they did. It's SkyDrive, and it stores 25 gigs. Ok. The punch line? It's one of those web dropbox thingies that have been around for over a decade. They didn't even use their own "web folders" interface that uses WebDAV.
The reason why you don't really get anyone writing filesystem drivers, remote filesystems, etc., for Windows is because it's expensive (licensing issues) and it's insanely complicated. Apparently it's so complicated that people who already work for Microsoft don't even use it. But why didn't they use WebDAV? I mean...it's been in since Windows 98, it's supported on Linux and OS X (yay, multi-platform!), and the spec is relatively easy to implement.
Heck, they could have even written the front-end against WebDAV, had the backend use whatever special storage methodology they wanted, and have been done with it! Anyways. |
|
|
| Eliminate income tax? |
[Feb. 23rd, 2009|09:29 pm] |
While browsing digg this evening, I happened upon a link where people talk about a proposed bill to eliminate the federal income tax. If you care, you can go to digg.com, I'll not link any of it.
One of the things that struck me was how short-sighted people were. To pay for all of the things that the government provides*, the money needs to come from somewhere. Either it is funded by taxes, or we print money that doesn't exist.
(* Let us not argue about social security, roads, medicare, welfare, armed services, ... Talking about changing those things are outside the scope of this conversation.)
Firstly, let's talk about "progressive income tax". Progressive refers to the idea that as you earn more money, your tax rate is supposed to increase. The goal is that those who earn more money are more able to pay more, and thusly will feel less of a pinch. In the US, there are bits here and there whose goals are to reduce the tax burden on those who are (presumably) less able to pay. Little things like deductions per child, home loan interest deductions, education tax credits, ... These go a long ways towards making the effective income tax rate for households earning less than the median income (~$44k/year) about 4%. As incomes increase, deductions aren't scaling with income, and people pay more taxes. That's the way the current system works.
A regressive tax system, effectively, is one in which people who are less able to earn become disproportionally less able to live. Sales tax, as an example, is a regressive tax system. People with higher incomes don't worry very much if they pay an extra 5% on groceries or clothing, but those with lower incomes start having to choose whether they are going to skip a meal or not buy a pair of socks (if you think this is hyperbole, you obviously haven't had to pay rent, feed, and clothe yourself on $1k/month, which over 8.5% of US households have to live with).
As I was saying earlier, the money to fund things that we take for granted needs to come from somewhere. If we eliminate the federal income tax and, for example, replace it with a sales tax (as is proposed), what happens? Those 50% of Americans on the bottom (as well as many people quite a ways up) pay more taxes, trivially. Now wait a second...wouldn't that be fair? I mean, if everyone pays the same fixed rate, isn't that fair? Maybe in the strictest sense of fair, but when you lose $200/month of your $1000/month income...you stop being able to afford little things like food, or rent, or shoes. Yeah.
But let's pretend for just one moment that you don't care about human suffering. Let's say that you only care about yourselves and maybe your immediate family. That's fair (though I reserve the right to call you a dick).
Looking at numbers from http://www.census.gov/compendia/statab/tables/09s0464.pdf, in 2005 the US government collected ~$935 billion in personal income taxes on ~$5.14 trillion in taxable income, and ~$7.42 trillion in total personal income (notice the difference there? that's deductions at work). Let us imagine for 2 seconds that taxable income reasonably represents money that is spent on taxable retail goods or services, and 100% of this is spent on retail goods or services for which the "federal sales tax" would be applied (despite the fact that this is an *insane* idea, as people invest, buy homes, and don't buy taxable retail goods or services with 100% of their taxable income...). That would require a flat sales tax rate of 18.2%* (even on other taxes!). For a household making median income, that is about $667/month you no longer have to spend (or $200/month if you were making $1k/month). For those of you earning at or about that, what would you do if *you* lost $667/month? According to http://www.cbo.gov/ftpdocs/98xx/doc9884/12-23-EffectiveTaxRates_Letter.pdf, at a 18.2% tax rate, people would be paying ~5-423%** more taxes (it is 1-14% in absolute effective rate calculations) than they were before in total effective taxes (including social security, excise, etc.) for *everyone* in the "bottom 80" of US households earning less than $90k/year.
(* tax_rate = ($935 billion / ($5.14 trillion x actual_taxed)) (** tax_rate_increase = 18.2 / bottom_row_rate ; from bottom row of the top table of table 1 of the cbo.gov liink above)
But it would be *far* worse than that. You trim off even a modest 10% for savings and currently existing state sales taxes (set actual_percent_taxed=.9 in the above function), and your tax rate increases to 20.2% (or 16-470% more taxes than before for the bottom 80), which makes it suck for people *now* up to the "bottom 90" who make less than ~$125k/year (this is estimated with a linear function from the chart http://en.wikipedia.org/wiki/Household_income_in_the_United_States ). Would you pay 20% more for exactly what you are getting now? Of course not!
But that's what, effectively, some of these people are advocating.
And the worst part about it is that those who are saying "down with the federal income tax" are shills without even knowing it. The *only* people who would benefit from the abolishment of the federal income tax system and the institution of a "sales tax" like system are those in the upper 10% of personal income earners. But who is ranting and raving? People who haven't actually looked at the numbers. People who surely aren't earning more than $125k/year. People who would be *fucked* by the system in which they are advocating.
Similar "y'all would get fucked" conclusions can be drawn from running the numbers for "let's abolish corporate income tax". |
|
|
| dd bs=? |
[Feb. 2nd, 2009|11:15 pm] |
Let it be known that when writing to an external USB drive via dd (to clone a drive to be used for a virtual machine later), using the bs option to set the blocksize for read and write is actually useful.
Prior to setting bs=1M I was getting about 5M/second, which for a 32 gig drive runs around 2 hours. Now it's humming along at around 15M/second. Which is much better; the source drive runs at around 23M/second, the destination USB drive runs around 25M/second. For reference, passing the data through gzip (-1 or -9) then back through dd or even a redirect into a file is slower than just letting dd do it's business directly. I don't know whether to suspect bad pipe performance, context switch times, or what, but stick with dd.
This is all really just to satisfy my own personal curiosity as to whether virtualizing an old XP laptop is really as easy as people claim. |
|
|
| Lunchtime Shenanigans |
[Feb. 2nd, 2009|09:45 am] |
Over the last week, a few of us have been getting together for some fun activities we like to call, "will it lens". My colleague Alan has posted about it here.
Point of fact: if it's got a hand holding something melting/burning, it's my hand (except for one picture in the flickr photostream). |
|
|
| A little evening adventure... |
[Feb. 1st, 2009|01:18 am] |
So...after leaving a hot-pot party 5 minutes away from my apartment at 12:15AM, I decided that an hour detour up the highway and into the canyons for a ride would be a good way to have a bit of fun without a bunch of idiots driving 15 in a 45. There were three flaws to my plan.
1. The drunks were already starting to leave the bars. 2. It was about 50 degrees, I didn't have gloves, I was only wearing jeans, a leather jacket, and a helmet. 3. Unknown to me, the previous owner had somehow knocked the headlights and ruined the mount, pointing them ~15 degrees down from where they should be pointed, giving me all of 40' of headlights in front of me, even on high beam.
After buzzing up the 405 into the valley, then across the 101 to Topanga Canyon, I dropped south and stopped off at a Rite Aid to see if they had any leather gloves. Sadly no, but I did pick up a pair of nylon gloves that helped a bit.
Continuing south into the canyon, it was pretty cold. I cannot remember being that cold on a motorcycle before. On a Snowmobile, yes, but not on a motorcycle.
So...I'm minding my business, keeping it at most 5mph over the speed limit (warning signs and all), and some r-tard in a pickup essentially runs me off the road (he took a left to go in my direction, initially pulling into the oncoming lane, but swerving into the proper lane as I approach). I manage to get stopped without issue after pulling onto the gravel shoulder, and I continue on...but it seems a little sloppy in the rear.
I pull over, check the tires, and they seem ok, but when I shake my hips, I can feel the bike slide around. Great...a flat rear tire. I'm only 15 miles away from home, and the tires don't actually squish even without air, so I'll be able to get home as long as I don't try to go too crazy with the corners.
Fast forward another 20 minutes and I'm home.
Well...2500 miles on this set, it was about time to replace them anyways. I'm going to have to do a burnout to finish them off when I take it in for tires and an oil change. ;) Hopefully they have time to service it this week.
Serves me right for going on a ride after midnight :P |
|
|
| My extended weekend... |
[Jan. 25th, 2009|08:49 pm] |
Update: Pictures.
I know, blogging about a trip before it's even done is...premature? Eh, whatever. (I only got 3/4 of the way through the post before needing to drive home, the remainder being written after I got home) If you're uninterested in reading about my last few days, skip this entry. Well...it was pretty uneventful overall...so it may make sense to skip the entry regardless.
The drive up was fairly uneventful. We left work on Thursday more or less on schedule at 3PM, getting out of LA well before rush hour. We did stop off in Bishop at BBQ Bill's for dinner, which was quite good. I would suggest it as a lunch/dinner stop for future travelers through the area. We were checked in, had our stuff in the room, and even picked up our lift tickets by 10PM. The remainder of the evening was generally filled with light-moderate drinking and carrying-on. I was told by a Swede that I looked very Swedish and would be mistaken for a local if I were to travel there (much of my ancestry is straight-up Scandinavian, so that wasn't a surprise). What was a surprise was that despite my look, he thought I was Australian because of my mannerisms, attitude, accent, etc., and in particular the content of the emails he'd been reading over the months (site-wide mailing lists). Huh. I've never gotten Aussie before*.
Friday I was woken at 7 by my suite mate's alarm going off. I had to poke him to get him to turn it off, but by then I was awake and ... eh? I grabbed a few things and headed down to the lobby for free internets and to wait for the rental place to open. An hour or so later, it was open, so I got some skis, went back to the room, put everything on, and was on the slopes by 8:45 or so. On my 3rd or 4th run, I saw some other Googlers doing the last bit of prep, said hi, and went on my way. A run or two later I saw some other people, BSed on the slopes a bit, and continued on my merry way. Some time after noon I decided that my legs and back had enough for the morning, so I went in, showered, and started relaxing in the room and doing a bit of work. Relaxing was far too nice, and I didn't get back out Friday. Working, relaxing, and later, a bit of eating chili, moderate drinking, and carrying-on filled my evening.
My Saturday started with the best of intentions. We got up at 9AM due to the previous evening's activities, got some water, food, and I was ready to go at 9:20AM...when I noticed something unfortunate after getting geared up. The ski lift at our lodge wasn't moving. Shit. There was a line for the bus easily 100 yards long (I didn't know that they used *real* busses, I thought they were just small shuttles), so I said "fuck it" for the morning. Heading back to my room, I notice that the wireless signal was gone. Ah well, there's always House (I brought a couple disks). By 11AM or so, the lift was working, but I didn't want to head out before lunch, so I relaxed. Then lunch passed. And I lacked the motivation to leave.
Around 2PM I realized that I hadn't been to the summit yet to take pictures, so I hopped a bus to get to the first stage of the gondola ride that should have taken me to the top. Sadly, the second stage was closed. I only got a handful of pictures from the halfway point, and a few on the ride back down. :( I think I got maybe a dozen pictures in total.
When people got around to being done skiing, the hot tub was the place to be. Of course you toss a bunch of people in some hot tubs, some booze, and snow...and what resulted was an inter-tub snowball fight, some face washing, and even the occasional 'grab some snow and run it over to the other tub' raids. A bit of dinner, followed by further moderate drinking, carrying-on, and watching the tail end of X-Men 3 ( :/ ) followed by Van Helsing ( :( ), and my evening was done.
Sunday was pretty non-eventful. My suite-mates got up early to ski, but I turned in my skis Saturday afternoon, so I just relaxed and caught up with emails. When everyone got back, we packed up the van and headed out after I burned a couple mp3 cds for the drive home. After dropping 3 of my passengers in Santa Monica, and Chris at his place on my way home, I pulled into my driveway about 6 hours after leaving Mammoth.
All in all I had a decent weekend. It was good to hang out and BS with coworkers, people in other groups, and get outside into the snow for a while. I didn't spend a whole lot of time on the slopes, which is unfortunate, but I did get to spend time with cool people. We'll see if I go again next year.
* On a very related note, I've noticed a huge contingent of Australians about the Mammoth Mtn. area. Damn near 1/3 of the lift operators and staff at the other lodges I visited (I bussed around Saturday a bit) are Aussie, never mind the *few dozen* people I talked with at different points over the weekend. If you are looking for Skiing Australian guys, Mammoth is the place for you :P. |
|
|
| 8 years of bush... |
[Jan. 17th, 2009|05:50 pm] |
It's a little depressing, but at least we know we can do better.
|
|
|
| In other news... |
[Jan. 13th, 2009|09:22 pm] |
I had injured my left middle finger on Sunday in a tragic skimboarding accident...but it seems to be strictly joint related (it's swollen, a bit sore, and a bit stiff). My grip is strong, and there is no pain as long as I limit the knuckle joint's range of motion. That's great news, as I can probably ride my motorcycle while the weather is awesome out here (I'm sorry that the weather sucks in Minnesota, I've been thinking warm thoughts for you!) Yay for injury recovery!
Nothing else really going on with me at the moment.
Buy stuff from Samm, she's awesome and makes awesome stuff. Seriously. |
|
|
| navigation |
| [ |
viewing |
| |
most recent entries |
] |
| [ |
go |
| |
earlier |
] |
| |
|
|