Justin's profileJustin Ronco's SpacePhotosBlogLists Tools Help

Blog


    January 14

    Windows Online goes live!

    http://windows.microsoft.com

    I’ve been working on this site and the platform driving behind it for over a year now.  It is so great to see it going live!  Go check it out and learn about Windows 7.

    We currently have only a small set of stuff there, but now that the system is live we'll be pushing out more and more…

    January 07

    The long coming demise of EGM

    Via Gamasutra: http://www.gamasutra.com/php-bin/news_index.php?story=21759

    “Ziff Davis has sold its 1UP division to Hearst's UGO Entertainment, and is shutting long-running print magazine EGM in the process.”

    I started reading EGM as a teen back in the 1990’s.  It was the 16bit era and I was eagerly following along all the incredible new games and the battle between the consoles.  This was probably the golden age for the gamer magazine, and EGM really was king.  They had the news, the guides, great reviews, interesting gossip, screenshots galore – and plenty of pages of it!

    The next generation of consoles, however, is where I started to see the path we’ve completed.  I had gotten out of gaming a bit toward the middle of the decade, but was pulled back in by the lure of the “Ultra 64” – Nintendo’s newly planned monster console.  This brought me be back to EGM, but it was also at this time that I first got onto the “world wide web”.  In particular, there was a fan run website for Nintendo enthusiasts tracking the developing details of the new console.

    The lesson I learned here was that a monthly print magazine just couldn’t get info out as fast as a little website run by a few dozen fans.  I’m pretty sure EGM was getting the exclusive interviews, really detailed press releases, and (honestly) the well written content – but they couldn’t match the speed the web had to disseminate the info.

    And so it’s been for over a decade now.  I’d long since given up on getting real news out of the magazine, but I’ve always kept it around as that connector to my childhood.  Even now, when I’m just not into the big name games like I used to be I would still read my favorite monthly gaming mag.

    But it looks that not keeping up with the news exclusives or being able to feed the minute-by-minute content addiction of today’ gamers the mag lost them their audience.  They couldn’t keep up with the online sites, so that’s where the advertisers went.  The magazine then deflated – eventually hitting pretty much rock bottom in terms of page count – until it’s final cancellation.

    Goodbye EGM.  You’ll be remembered fondly.

    December 04

    Still Alive

    I still exist and I'm aware that I haven't posted anything in awhile.  That's all for today.  Hot
    September 14

    Cool .Net Becomes Real

    I've been following the odd "cool" thing for Microsoft .Net for years now.  I need to write about Futures (awsome), Ajax.Net came true, I'm seriously hoping for Asp.Net MVC, and then there are the dynamic languages coming down the pipe.

    But F# is the talk of the day.  F# is a functional programming language targeting the .Net platform.  So it interacts with all the standard stuff you see in C#, Asp.Net, and VB.Net while pumping in the functional style/paradigm.

    Functional, particularly pure functional, have had pocket support within industry for years - but they've had trouble crossing over to the mainstream.  I think it's mainly because of the level of abstraction.  Programmer tend to think in terms of "how do I get there" while functional programming (much like SQL or regular expressions) ask you to think in terms of "what do I want to have at the end".

    Hm, that's not a great introduction to the functional model is it?  OK, go read Wikipedia.

    OK, now I just need something interesting to do with the language.  I can hit the console and compute basic arithmetic just fine - but let's do something with some depth.  I want to explore the truely functional features of the language first, and then see how... well how polluted it becomes when you hit state based libraries common to .Net (sorry mscorlib & system, but you weren't originally designed for this were you?).  Also, lex and yacc?  I haven't seen you guys in awhile.

    August 06

    Great service from Verizon Wireless Support

    I canceled my Verizon Wireless account back in May.  Canceled meaning that I no longer use the service and I no longer pay them - so complete cancellation.  It was an interesting an experience and I thought I'd comment on it a bit.

    First, some history.  I opened the account in early 2004 when I first moved out to Washington state.  I needed a cell phone and my primary concern was getting something decent with a good coverage plan.  At the time Verizon Wireless had a much better nationwide plan than most other providers, and it appeared to work relatively well in general.  So I that's what I got.

    That was several years back.  Since then having top of the line nationwide has become less of an issue as the other providers have caught up.  I've also come to realize that I mostly just need the phone to work in a few hotspots: my home and my office.  Verizon Wireless always failed both of those, which makes it pretty difficult to be happy as a customer.  I tend to get poor reception in the places I tend to be.  And I pay them for this monthly.

    So I decided to cancel the account, but I knew I'd be in for some struggle.  I have some knowledge around how CS agents are trained to handle account cancellations, so I went in prepared for a fight.  As far as an agent is concerned you are doing the wrong thing.  They have an account that, especially from a customer like me, is pure profit.  They don't want that account to close and the money to stop, so it's in their interest to save the account regardless as to what I want.  In particular, the actual phone agent is often rated and paid on a scale based on their ability to save accounts from cancellation.

    So I called this morning and went through the termination process.  I had my information ready - account number, phone number, recent bills, credit card info, general billing info (address, phone).  I was "emotionally prepped" to struggle my way through.  And it wasn't necessary.  At all.  I went through voice recognition for about a minute providing basic info and was then transferred to "Jill".  Jill did ask a few leading questions around why I was canceling the account (answer: "I just want to cancel"), but she appears to have completed the cancellation without giving me any gruff.  In fact, the entire call took - I timed it - less than four minutes.

    Let's repeat that.  It took less than four minutes to cancel my Verizon Wireless account.

    I was very clear that I was cancelling the account, and I really wasn't giving the agent a hook to argue.  I suppose they have some numbers around the probability of convincing someone like me to keep the account.  So if I'm categorized as "just not reasonable" it may be the case that the agent is trained to give up and to move on.  Rather than having them stay on the phone with a lost cause they can probably minimize costs by cutting the call short and moving on to the next case.

    Still, this was a surprise to me.  Yea Verizon Wireless - great job with support!  Even though I won't be using the service, it makes me comfortable recommending them and, perhaps someday, returning to the service.

    July 07

    Skeptical comic...

    Longer post in the making, but for now I'm just reading through this comic.  So far it's been pretty good.  :)

    Also, I get the reference here...

    April 20

    AmazonFresh Hates You

    AmazonFresh delivery crates blocking my door Or at the very least, thinks you should spend more time indoors (let me out!).  Honestly, I've used the service (fresh.amazon.com) before and have found it to be excellent.

    To step back a second, here's how AmazonFresh works.  You go to their website and login with your Amazon.com account.  You then search or browse through their grocery catalog for the items you want.  I find that they've got a pretty full stock of standard grocery items; I tend to buy soda, grains, and fresh vegetables.  Select what you want, add the items to your cart, and click checkout.

    It's a normal checkout process with the addition of selecting a delivery time.  Deliveries are done in a couple of ways, but I always go with unattended delivery.  For this I just pick a ~4 hour time window sometime within the next 24-48 hours.  After I complete my order Amazon loads up a truck with my stuff, sticks and seals everything into those yellow/green/blue crates, and drops them off on my front porch.  Usually not blocking entry or exit.

    Safeway runs a similar service which I have used for a little over a year.  They run a good service and do tend to have a fuller selection of groceries, but I've found them to fall a little short in comparison.  They don't offer unattended delivery, which is highly convenient.  Their website won't generally tell you when an item is out of stock; you won't find out until the item is missing from the delivery.  The website is a bit more difficult to work with.

    So AmazonFresh is good.  This was just a funny one time thing.

    March 15

    0x58028E44000 ticks

    XKCD

    (As for the post title, I'm thinking in TimeSpan)

    February 03

    Yahoo?

    Sweet something of... someplace, Microsoft Proposes Acquisition of Yahoo! for $44.6 billion.

    I'm nowhere near qualified to talk to the business action here, but as a developer this is pretty cool.  Yahoo! has put together some nice web technology that I find interesting.  One of the most notable of late is YSlow which helps you figure out what's wrong with your properties.  And then there's YUI, a promising browser side UI platform.  I'll be playing with those, so what other Y! stuff should I be investigating?

    January 30

    Jungle Disk Followup 1

    I recently posted about a bit of Online Backup Software - Jungle Disk.  My experience so far has been pretty positive.  I have daily backups running, which is overkill for actual archival purposes but helps me explore the system.

    The backup basics appear to be there.  Every day at 9:00 AM the software copies my Documents folder over to the backup.  The backup runs pretty smoothly and appears to be relatively stable.  I've loosely verified that the data is backed up correctly by dumb, binary file comparison.

    Some minor issues:

    • This does require that my PC be on at 9:00.  If it isn't then you just miss the backup, which would be a real problem if you were only running weekly or monthly backups.  With dailies missing one or two runs isn't too bad.
    • The backups are not transactional.  It is possible for some, but not all, data to be updated in a backup.
    • Deleted files do not appear to be deleted on the server.  You need to run a "cleanup" to complete the mirror.

    The two big remaining things I need to investigate are the encryption and multi-versioning.  More on this at a later date.

    January 09

    Gamerscore 10,000

    As of today my Gamerscore is just over 4600.  In response to Major Nelson & co I'm setting my own goal: reach 10,000 by the end of the year.  That means I'll need to more than double my accumulation rate.

    In general I find it's fun to have goals to shoot for, but really this is an attempt to change my gaming habits.  As I don't have as much time to play these days I tend not to get too deep into any one game.  I'll play game A for awhile, but then some other interesting title - game B - is released and I'll move onto that.  I may intend to get back to game A at some point, but before I can really even dig into B something else - game C - is released.  And so on and so on.

    I want to change this habit because I feel like I'm missing out on the full experience.  I think I'd rather experience one good game fully than to skim two or three.  Though this does mean that there will be many more quality games I just don't get to play.  Oh well, that's the opportunity cost.

    Anyway, I should go play some Mass Effect now.

    (Aside: JungleDisk's automatic backups appear to be working.  I should be trying out a data restore from JungleDisk this weekend, and if that works I think I can declare myself a happy customer.)

    December 28

    Online Backup Software

    Backup your hard disk.

    Hard disks die, so you always want a backup of your data.  A good mental practice is to assume that your drive could die at any moment; what would you do if your hard drive died right now?  What would you loose?  What would you be unable to recover?  Would you loose photos?  Tax documents?  Code?

    I haven't had a drive die recently, but I was inspired to play around with some backup software in part due to Steve Gibson's podcast "Security Now!".  Gibson specializes in information and identity security, hence the podcast, but also in hard disk technology.  In a recent episode (#123) Steve and Leo were essentially selling Jungle Disk.

    From JungleDisk.com:

    Jungle Disk is an application that lets you store files and backup data securely to Amazon.com's S3 ™ Storage Service.

    • Store an unlimited amount of data for only 15¢ per gigabyte
    • No monthly subscription fee, no startup fee, no commitment
    • Your data is fully encrypted at all times
    • Data is stored at multiple Amazon.com datacenters around the country for high availability
    • Access files directly from Windows Explorer, Mac OSX Finder, and Linux
    • Automatically backup your important files quickly and easily

     

    I normally do backups manually.  I either burn disks or copy (robocopy/rsync) my documents to a USB hard drive.  I have tried using actual backup software (see: Windows Backup and Restore Center), but I've personally not had much success.  So, I'm now trying out Jungle Disk.  Let's see how this works out...

    October 29

    w00t?

    I just setup a stereo surround system purchased from w00t!.  Cheap ass system:

    RCA RT2770

    All in all I'm pretty happy with it.  The quality isn't great, but it's much than your average TV speakers.  Much better than my TV's speakers.  But better still it would be if I could get the satellites positioned correctly.  The major issue, then, is what to do with the wires?  Right now I have the rear speakers up front (angled to reflect and simulate surroundocity), but I'd like to move them to the rear of the room.  I can do this, but I'm not sure what I'd do about the wires.

    My plan now is to place a runner rug in front of the sofa and then run the wires under them.  This will still leave some cabling exposed on the carpet, but it should be relatively minimal.  Just a short run from the TV stand to the rug, and then from the back of the couch to the wall.  I'll have to evaluate how I feel about that, but it should be OK.  If not I may try to cover it a bit more with some cable covers.

    I should call out that there are a few other options that I've considered:
    • Run the cabling under the carpet - not an option in this apartment
    • Run the cabling along the walls - not an option given the layout of the room
    • Run the cabling over the ceiling - could work, but it would be a hassle to setup.  Still, if the "under rug swept" system doesn't work out this is how I'd likely go.

    Are there any other strategies I should consider?  Any tips?

    September 30

    Time for an HDTV?

    I'm considering it.  HDTV-ness has been on the back of my mind as something into which I should look for the past few years - say, since 2005.  It's definitely a good thing - just a matter of price, stability, and value.

    At this point I'm relatively happy with the current standards.  For as best as I can see any TV with the following looks great:

    • 1080 vertical lines - interlaced is fine
    • Decent refresh rate - 12ms is OK
    • Good source - DVD is fine for me, but games look even better
    • Good connections - component/hdmi, and enough ports that I don't need to do a lot of swapping
    • Diagonal measure 35-50 inches

    That's not too hard to do.  There's all kinds of TVs and setups that match or easily exceed those specs.  So then it just becomes a matter of cost and percieved longevity.  Is the price right?  Do I think I'll still be happy watching it in 2012?

    Right now I'm thinking about the Westinghouse TX-42F430S.

    • 1080p
    • 8ms refresh
    • 4 HDMI, 2 component inputs
    • 42 inches
    • Costs about $1100-1200

    I'm pretty convinced this would be a good set for me.  Now, were I to buy it the question becomes one of when.  With the holidays coming up it may be a good idea to hold off for same competitive sales pricing.

    Or I could just forget the TV and get a new laptop.  But I suppose that's a different post.

    September 16

    Much Nintendo Goodness

    muchfun2 As of last week I obtained:

    Nintendo Wii - Fred Meyer had a stack of them.  It was the first time I'd ever seen them in the wild, so I bought one on impulse.  I'm playing Super Paper Mario right now (fun) and got Metroid for later.  I really just wanted Zelda, but that was out of stock.

    Super Nintendo - I'd won an E-bay auction a week previous and this guy arrived just a few days after I got the Wii.  I do know about Virtual Console, but this just has that perfect nostalgic feel.  And I do now get to play some Zelda!

    Along with Bioshock I'm now doing a ton of console gaming.  I've been a very casual gamer for the last year or two, so this is a kinda fun return for me.  <grin/>

    September 04

    I chose Rapture (Bioshock)

    I really haven't felt hyped over this game as, apparently, everyone else has been.  With a few exceptions (well, Halo) I'm generally not interested in first/third person shooters anymore - just due to shooter burnout.  But the peer pressure and high review scores won me over, so I picked up a copy over the weekend.

    BioShock is the best console game I've played this year.  The soundscape is amazing; this is the first game for which I've ever wanted surround sound.  The environments are gorgeous, even in standard def; and the text is even rendered at a readable font size (looking at you Crackdown).  Rapture, the city in which the game takes place, has that great "60's PC" feel with the whole utopia gone awry thing well executed.  And you have to love the Rand-ian, ethical egotism motif.

    The game's concept of a moral choice is a little disappointing.  You're given the option to murder mutated little girls for personal profit... or to help restore their full humanity.  It's one of the most unambiguous moral choices I can imagine; I think I'd have preferred some more variation in the moral choices (though maybe more will show up later on) and something with a little more depth.

    So, for those that know me, how do you think I'm handling the little girls?  Harvesting them for profit?  Saving them?  Or maybe some balance (flip flop?) of both?

    July 14

    Vegetables you should try 2: Bok Choy

    Bok choy is a popular form of Chinese cabbage, though the term "cabbage" may give the wrong mental image. By looks one is tempted to call it white celery. Though that isn't accurate as the leaves give it a bit of a lettucey flare.

    As for taste, I'd describe it as slightly sweet. It's actually a very watery vegetable, which probably accounts for a lot of that particular flavor.

    Bok choy is most often used in stir fry. It goes well with sliced bamboo shoots, broccoli, water chestnuts, and the like. I avoid sauces (which is a rant of its own), never the less I can say soy sauce compliments bok choy very well.

    It can also be steamed or boiled. In this case you generally want to start cooking the stalk first and add in the leaves a minute or two later. I'd say about 5 minutes for the stalk and 3-4 for the leaves is more than enough.

    Nutritionally bok choy is a pretty easy choice. It's high in vitamin C, vitamin K, and calcium while being low in calories. It's a pretty good source of vitamin A as well. Easy.

    OK, that's all for today - go eat some veggies.

    July 09

    Vegetables you should try: Broccoli

    I'm a vegetarian working on becoming vegan.  Talking to a friend of my recently I realize that many people are confused by this type of diet?  What do I eat?  Is it healthy?  Do you get enough protein/calcium/vitaminX?

    I figured I'd take some time in this space to talk about some of the foods I consume.  In particular, I want to provide my feelings towards some healthy vegetables.  My intent here is to provide some information about myself, but also to promote some good veggies that you may to try out.

    broccoli

    I'll start with something easy: Broccoli.  Broccoli is already a pretty popular - I'd bet it's one of the most commonly consumed vegetables in the USA today.  But hey, I'll promote it anyway.

    What's in Broccoli for you?  Well, here I have a really good source of vitamins A, C, and K - plus folate and fiber.  It's also a good place to get the ever worrisome calcium.  So we're looking at a really nice set of healthy vitimins/minerals.

    As to food preparation, Broccoli is pretty easy.  Like many vegetables about which I'll probably speak, Broccoli is nicely served raw.  Although you'll generally store vegetables refrigerated, if you let them warm up a bit you shouldn't have any problems eating raw. 

    Broccoli works excellent in stir fry or boiled.  In this case you probably just want to cut the vegetable into "bit sized" pieces and cook for (say) 2-5 minutes.  If you're starting from frozen Broccoli (which is OK in a pinch), 5-7 minutes is probably a little better.

    OK, that's it for today.  Go try some broccoli.

    Links:

    July 01

    A question around .NET, XmlSerializer, enum, and versioning

    Here's a fun serialization issue I've come across a few times.  Lets say I have some data types defined like this:

    public enum Enum1
    {
        Value1,
        Value2
    }

    public class Class1
    {
        public string Property1 {...}
        public Enum1 Property2 {...}
    }



    I want to have a Soap web method return instances of Class1.  OK, not a problem.  I can use an XmlSerializer on Class1 instances without a hitch.  Because it Xml serializes I can return instances of Class1 across Soap just fine.  That's all great.

    Now, lets say a year passes and some things change in how I define my enum.  Let's say I need to change it to this:

    public enum Enum1
    {
        Value1,
        Value2,
        Value3
    }

    OK, not a problem.  I recompile my code and test out the serialization.  It works just fine -just like it ever did.  I rebuild my web service and client and try it out - everything works fine.

    Almost.  Although I'm changing the code on my end I have clients of this service that I can't control.  They've been running against my web service for the last year and, unfortunately, aren't able to roll out an update to handle this new "Value3".  That is, they're running old code that uses proxy types which were produced by running WSDL.EXE against the old version of my wsdl (which didn't have Enum1.Value3).

    Well, after talking to their team we figure out that their code doesn't require Class1.Property2 anyway.  They use it to control the color of a button, but they're will to live with the button showing up in the wrong color.  It isn't mission critical.

    My web service starts returning instances of Class1 with Property2 set to Enum1.Value3 (are you with me?).  What happens to that client who didn't take my newest WSDL and rebuild his proxy types?  He gets a SoapException.  It's data that isn't really relevent to him, but because the serializer can't handle it the client code is unable to handle the returned object at all.

    Why is this?  Well, my new web service is sending back Xml something like this:

    <Class1Object>
        <Property1>Important stuff</Property1>
        <Property2>Value3</Property2>
    </Class1Object>

    The client side deserializer then attempts to reconstruct the Class1 object and its properties.  When it gets down to Property2 it finds that it's unable to parse "Value3" into an actual value (that it knows of) for Enum1, so as far as it knows it's getting back garbage from my service and it throws an exception.

    This behavior makes sense, but it's pretty unfortunate.  So now the question is, as a client what can I do to work around this?  I know my code doesn't actually care that much about a particular property, so I'd like to make sure that deserialization failures on this one particular property don't prevent me from getting at the rest of the data returned.  Ideally serialization problems around that property should be visible to me but should not prevent me from getting at the data in the other fields.

    What do I do?