William Adams' WebLog

Esoterica for a new Millennium

  • Logs and Blogs Laughing like Frogs

    What the heck?

    Well, I'm making a statement about blogging.  How does a frog laugh?  I'm sure you can fing it on someone's blog somewhere.  I can tell you that the frogs in a backyard pond in Hawaii make a more raspy croaking sound when they think they can attract a mate.  Now I bet if you go search Google for laughing frogs, you'll come across this posting.

    I have a new job.  And since blogging is nothing more than the dumps of our brains to an audience of one (our own minds), I'll talk about my thoughts ont he matter.

    I joine Microsoft almost 6 years ago.  At the time I joined what was then the newly formed MSXML team.  Their job was to ship XML technologies (the very first from Microsoft).  In the intervening years, I've had the pleasure of helping drive the XML strategy and technologies for Microsoft, ranging from what to put into the System.Xml managed code, what to do with XQuery, when to create XML tools, and how to incoroporate XML and data programming into our core languages (C#, VB).

    As we used to say in the group "Webdata is at the center of the universe, and it's hot at the center of the universe".  You can't imagine getting an angry email from the likes of Brian Valentine, or worse David Cutler telling you how some mistake in your little component is costing the company millions of dollars because it has haulted the smooth functioning of the build system for Windows.  Or better yet, trying to survive the onslaught of seething hatred stired by the admission that the cause of the slammer virus, and subsequent shutdown of the Korean internet, or Ford Motor company assembly line, was all your fault.

    Yes, it's hot a the center of the universe, but, from within such a furnace are forged the most awesome and effective components that have had more impact on shaping data access and data interchange than any other components in recent programming history.  So, although it was challenging in the extreme, I loved almost every minute of it.

    What now then?  Well, here at Microsoft, we have this little team known as "Engineering Excellence".  Identifying, developing, consolidating, disseminating, and otherwise synthesizing best practices for engineering, to improve the engineering process across all of Microsoft, that's what we're about.

    What a job!!  I get to help program Microsoft itself.  Much more than writing code for a small component that is part of a larger component, which is in turn a part of a larger component, which ships in Windows, I'm engaged in engineering the very DNA of Microsoft.  What does success look like?  Well, that we ship fewer bugs to begin with.  That we ship products in a predictable and replicatable way.  That our customer satisfaction is the highest in the industry, and we are held up as a beacon for innovation as well as quality much as Nasa had been in the past as they created the space program.

    So, with my new job, I have a new tablet PC, a nifty new office (half the size of my old one), and a new level of energy and excitement about changing the world (at least Microsoft) through better software development.  That's whta's on my mind, so that's what I'm sharing.

  • It's that time of the month again!

    This was the headline on an article I read at “The Register”.  It's funny how the mind works.  My first thought after I read that was, “hay, Anand Tech probably has the new buyers guide for the mid-range system of the month online now”!  Are those geek thoughts or what.  So, I immediately went on over to Anand Tech, and sure enough, the new mid-range system buying guide was just released!

    These guides are great, for those of us who are interested in building the occasional system just to show that we can.  Why, I'm happily typing on the little Shuttle system I built a couple months back.  Feels good to hear the gentle pur and hum of the tiny titan of a machine that I built with my very own hands.

    Now, I'm going for something a bit bigger.  I'm back at the “Ultimate Media Server” project.  The idea being, I have all my CDs, DVDs, JPEG images, and the like stored on one machine in my house.  I want to get at that data from multiple 'clients' and do various interesting things with it.  Surely this is something I'm doing to understand the user experience around dealing with terabytes of personal data, and how I can change the programmer's experience based on that...  Well, alright, really it's just because I like to think that although my hair is beginning to recede, my knowledge of low down high tech is not going with it.  Was that a bit, and byte, or a buzzword?

    At any rate, this weekend is father's day.  I'm going to browse AnandTech, figure out the ultimate AMD64 system that I want to build, and then give Yasmin the money to 'buy' me said machine so we can do some father daughter bonding to build the beast and play with it.  Ah yes, fatherhood is bliss, and once I build the machine, I'll share the experience.

     

  • Internet Incents Inactivity In Industry

    Right now I'm listening to the local radio station http://www.kuow.org online.  I could just as easily be listening to some Brazilian music from half way down the other end of the planet.  I only have a lowly DSL connect at 384K download.  I could have a high speed cable internet connection at 3Mb, but hay, the current speed is just fine for listening to voice, and even music, over the internet.

    Why would I ever buy another radio receiver in my life?  The last one I bought, a nice Denon amplifier with the radio receiver built in, seems quaint.  I probably never listened to the radio receiver part anyway.  Now, I'll never even bother to fire up that side of the 'receiver'.  So, Denon, you might as well stop including that part of the receiver, and lower the price.  As a matter of fact, you might as well cut receivers out of the loop completely because I can get it from the internet now.

    I'm on the verge of getting my videos that way as well.  Comcast digital cable/internet, offers video on demand.  I can watch whatever I want, whenever I want, almost.  No more wasting time with DVDs, NetFlix, BlockBuster, nothing.  I'll just get it all over the internet.

    Oh, and QWest communications?  I'll be getting my phone calls through VOIP with my Comcast connection as well.  So, you might as well just take down those phone lines and get rid of all those employees manning those empty buildings, because I won't be needing you anymore.

    And, Fry's Electronics, as much as you've been a part of my geek upbringing, I'm now getting my stuff through J&R Electronics, because they offer two day delivery, with no taxes, and they have everything in stock, at lower prices.  So, roll on back with your unknowledgeable sales people, take away your mega stores, and turn those parking lots into nice parks will yah?

    The internet is an industry killer!  Whole towns will begin to shut down as the internaut's all consuming economic wrecking tentacles squeeze every last ounce of efficiency out of those little fiber optic wires running all over the planet.

    It has been sneaking up on us slowly, but I see it for what it is now.  The internet causes inactivity in otherwise thriving sectors of our world economy.  Well, of course there's Vonage, and they're making money, and they're a new business, and there's the coffers of UPS and FedEx which will be ever expanding.  And who knows how many J&R Electronics distributers will sprout up to claim the mantle of best internet electronics retailer.  And don't even get me started about what's going to happen to the music recording industry.

    Yes, the internet killed the radio star, but in it's place, there is emerging a new constellation of opportunities and possibilities.

     

     

  • DNA Construction Set

    It's funny how life has a way to throw inspiration our way from the oddest directions.

    We bought Yasmin a ton of computer gear recently because: a) It was her birthday, b) she had a science project to complete, c) I want her to grow up to be as geeky as I am.

    So, we put the gear to good use for her recent science project.  She was doing a display board on RNA.  She learned a few wonderful things through the process.  First, she learned that she can type her own stuff, and print it out on her own printer, without much help from me.  Not only that, but she actually likes doing it.  I think this will increase her desire to actually peform her own tasks, and remove the tedium of hand printing from various processes.   It will encourage her to type in stories.

    The other thing she learned is that she can fairly easily compose music on her midi keyboard, and have the score print out from the computer.  Another boon to her creativity.

    One more thing she learned is that Encarta has a ton of answers to almost any question you care to ask.  She's a reader, and she'll be perfectly happy sitting in front of Encarta just seredipitously exploring from one topic to the next.  She even found the learning game, and started in on that.

    Next, she will discover the internet, and then all heck will break loose.  I'll have to debate whether to get parental lock, or to just spend even more time explaining how the world works and why she should not click on things labeled “XXX”.  I won't even bother show her how to get into chat rooms.  We'll save that bliss for the teenage years.

    Well, during the RNA project, we discovered a couple of cool pictures out on the web to describe the process by which ribosomes build polypeptide chains by joining amino acids.  It talks about the basic mRNA, the tRNA, and the rRNA.  Neat stuff.  The best thing about it was that I came up with a good analogy for Yasmin to explain it.

    Is said, the mRNA is basically like knitting instructions.  The individual triplets are just like saying “knit”, “pearl”, and what have you.  The ribosomes are like little knitters.  They read the instructions, and the “knit” the amino acids together to form the polypeptide chains (proteins).  This analogy worked great because we even found a picture that looked like that's what was going on.  A good analogy is worth a thousand words!

    From there, I got to thinking, “hay, those ribosomes are pretty darned nifty.  They're like little nano assemblers.  They're reading this 'code', and assembling little lego blocks, that self assemble into larger structures”.  Of course any molecular biologist is saying “duh”.

    Well, I'm a computer software guy, so I'm thinking, 'how is this like massively parallel computing?'.  Well gee wiz.  Talk about the ultimate RISC architecture.  There are only 20 amino acids.  They form into triplets.  This is a much smaller instruction set than the x86 architecture, so surely using an x86 CPU, we should be able to easily assemble a human?  No?  Why not?  Oh, I see, we don't understand the beauty and simplicity of the chromosonal based 'computer/assembler'.

    In his book “A New Kind of Science”, Stephen Wolfram suggests that the whole of the universe is simply a program.  I suggested to him that the trick is not in deciphering the program, but how the 'computer' operates.  In the case of RNA, the 'computer' is the combination of a very simple assembler, the ribosome/RNA, and a very complex model, the protein folding.

    This inspired me to think of many things from massively parallel computing, to simplified 'computers' that could be the size of cells.

    Then I thought, “what is web services all about?”  Well, it's nothing more than the communications substrate that is required to begin to get systems to communicate with each other.  At some point, enough systems will be able to talk to each other easily such that there will be a sudden emergence of some form of computing that doesn't currently exist.

    My next thought was, “any form of computing that relies on strict communications protocols is bound to be leap frogged by any system that relies on more flawed, but resilient communications protocols”.  Take biological systems for example.  DNA is flawed, there are many redundancies, and the systems aren't static, but dynamic, forming out of 'best fit' energy states between folded proteins and multiple interactions between various molecules.  The whole system is flawed, and we're only held together by some insanity of brownian motion that keeps the whole jumbled mass from falling apart and leaving us as a bag of particles on the floor.

    So, what's the next leap frog in computing?  I think I'll look to the lowly ribosome and mRNA and see what I can find there.

    In the meanwhile, Yasmin and I continued to discuss the science fair project, and how proteins work, and the fact that their function is governed by their shape, and that shape is determined by the sequence of amino acids that were strung together.  We talked about the fact that the mere shape of the proteins helps determine whether they stitch together as skin, or eyeballs, or bone.  This was fascinating to her.  As she went to bed, I said, “I found this site on protein folding simulations at Stanford”.  She got pretty excited, and demanded that I write it down so that when she hits the internet tomorrow, she'll know what to look for!

    Now, that's discovery.  I'm banking on the fact that children are even more curious and tenacious in their search for knowledge than most adults.  With that tenacity, and the wealth of knowledge tools available at her fingertips, I'm sure she'll be able to come up with the DNA construction kit by the time she has to present her high school science fair.  I can't wait to use it.  But, that's another story.

  • Little Legs Like Little Eggs

    Say that a few times fast, and you begin to understand the fun you can have with a 9 year old with just 5 words of English.

    So, build vs buy.  Recently I decided to build a PC for Yasmin.  I had purchased her one a few years back.  It was from a British company I think “Tiny PC”.  No longer in business, at least no longer in the mall.  It wasn't particularly cheap at the time, and it took a week for them to produce it.  That was before the existance of Fry's in the great Pacific Northwest.

    That machine was way noisy, not particularly powerful, and I think Yasmin used it a total of less than 10 times in her life so far.

    Enter the modern age.  Now there's these tiny machines like the Shuttle PC.  So, a couple of weeks ago, Yasmin and I headed out to Fry's Electronics and we purchased one of their barebones systems.  It was nice because the basic systems is about the size of two shoe boxes stacked atop each other.  Maybe smaller depending on your shoe size.  We bought the Memorex DVD burner, one of those multi-card readers, and AMD 2600, and 512Mb RAM.  We topped it off with a Maxtor 160Gb HD.

    This was Yasmin's first build.  I let her put some screws in, and she got to see all the various parts of the machine.  She was quite proud of her accomplishment, then we turned it on.

    The darned thing didn't work!  It would come one, then after a couple of minutes, it would just shut down.  I checked the bios for the heat shutoff timing, I set that to never shut off.  But, the thing just kept shutting off.  After a while, it wouldn't even stay on for more than about 30 seconds.

    I stayed up all night with this thing.  Literally, I didn't get to bed until about 4am.  Given my going rate of $50/hour, this thing cost me about $400, and I got nothing to show for it.

    Alright.  I took it all apart, packed it all nicely back into the boxes, instead of dropping it from my roof, and returned it to Fry's.  The return guy said “it's probably a bad power supply, you should just go get another one”.  After I got over my frustration, I figured it was worth another try, because I truly am a geek, and I did want Yasmin to have the pleasure of assembling her own PC.

    Second time around, no real problems.  It all went together nicely, and it just worked as soon as I turned it on.  I loaded Windows XP onto it, and then proceeded to download about 100 Windows updates.  Yasmin found this rather amusing because the whole process took much of the night, into her bed time, and it caused lots of reboots.  It's so amusing that even a child laughs at the process.

    But, then we loaded Encarta, MS Works, a Midi Keyboard thing, and a couple of photo editing pieces.  Then I topped it all off by giving her my office desk, and the new Canon i900D printer we had recently purchased, and my very own Canon S50 digital camera (yah, it was her birthday recently, and yes she's daddy's little girl).  I figure with all that gear, she should be set for producing college quality papers and science fair projects for her third grade class.  Never can be too prepared.

    Of course, without an office disk, I don't have enough room for the very large PC and CRT that now need to share the smaller desk that are still in my office, so what am I to do?

    Buy another one of those Shuttle systems I guess.  So, this past weekend we did.  We had quite a runaround trying to find the right Sony monitor with speakers, and I finally had to just get it online.  It was cheaper by $30, and will ship within a couple of days.  That's after going to Fry's and buying their last unit and having exactly 1 pixel not work on the blasted thing!

    So, now I have another of those Shuttle PCs sitting on my desk waiting for it's mated monitor to arrive so that I can toss the ViewSonic17PS off the room.  I've had this monitor for about 10 years, but when it's time has come, it's time has come.

    This is actually a part of the decluttering process.  I got rid of a desk (or at least put it into alternative service).  I'm getting rid of two CRTs.  I bought Yasmin one, and I'm getting one to replace my monitor.  That will save on power and waste energy.  I'm getting rid of two under powered PCs, and replacing them with two modern day units that consume less power, make less noise, take up less room, and simply look better.

    It's like the path in my back yard.  Sometimes you've got to build a little to get rid of a little.

    I'm sure there's a story in here about software... Oh yah, sometimes you've got to add to your APIs a little to get rid of a little bit of clutter.  How can we create the perfect API without introducing the new thing in its perfected form?  Trouble is, once you introduce the new one, you can't simply toss the old one off the roof.  If only we could...

    At any rate, I have a new standard workhorse PC for the home.  I can truly see these little boxes popping up all over the house with their attendant wireless mice and keyboards.  Some wired, some wireless.  Some with TV tuners, some with DVD drives.  Some with 5.1 speakers hooked up, some with nice big monitors or projectors hooked up.  It's a wonderful world we live in, and all this technical complexity can not match the simplicity of “Little Legs Like Little Eggs”, but that's another story.

     

  • Build or Buy?

    That is the question.

    Be it nobler to pull up your sleeves than to bow to the will of the component provider?

    So, here's the deal.  This past weekend, Yasmin and I finished the path around the back yard.  It took 20 bags of bark hauled from the hardware store to the back yard.  Pouring the bags out, and raking them smooth was a much more enjoyable task than hauling the border bricks, or digging  up the grass.

    All told, this project cost... I don't know, at least 16 hours of hard manual labor.  About $300 in various materials, and quite a few gallons of sweat and peanut butter sandwhiches.  If I put my time at about $50/hour, that's another $800.  So, a path around the perimeter of my back yard, $1,100.  Path around back yard, $1,100, time with Yasmin... Priceless. 

    I could have hired a landscape person to come do the same thing, and it probably would have cost about $400 or so, but hay, it's my design.

    Then, the 18th was the nanny's birthday.  Recently Yasmin and I have been taking picutures with the digital camera.  This past weekend we went out to Mt Vernon and took a bunch of pictures of tulips.  Yasmin's actually pretty good at taking pictures.  She's probably better than me, and I attribute it to the fact that she's shorter, so she captures more unique perspectives.

    At any rate, we thought we'd use the pictures to make a calendar for the nanny's birthday present.

    Build vs buy... Let's see, I can go to Barnes and Noble right now and buy a calendar on sale for about $4.  OK.  So, that's a starting point.

    First, we had to buy a printer that could print nice high quality photos.  I have a Canon S50 camera, so I thought I would get a nice Canon printer.  Of course I had to have the one that I could plug the CF card into directly.  the i900D, cost $250.  Then of course the extra paper, ink, and extended warranty... That's another $100 or so, for a grand total of $350.

    Alright, now I can print nice pictures, in sizes from 4x6 to 8.5x11.

    I need to be able to print monthly calendars.  Luckily, I have Calendar Creator, so I didn't have to write that piece of software, although I could have if need be.  Now there's assembly.

    This is no ordinary calendar.  With the high quality pictures that Yasmin took, and the good calendar job, we can just staple the job together like some grade school project.  Nope, this will require one of those nice binding jobs like you get with presentations at work.  OK, off to OfficeMax/Depot/Staple/Supply center.  I just need one of those binders thingies that punches a bunch of holes and helps you put on that plastic spiral thingy.  Of course the $50 one is no longer available, so I have to bump up to the $135 model!  Just put punch uniform holes and put in that platic binder thing.  I am now the proud owner of the GBC Combind C100.

    Quick total:  Printer and accessories $350, Binder, $135, 12 images at $.50/ea = $6.  Time, well, it was around midnight when I finished, and I started at around 7:00, so 5 hours == $250.  Grand total... $741

    It bit pricey for a calendar, but hay, it's my design darn it!

    I know there's a lesson to be learned here about software development, but I'm in sticker shock, and too worried about what else I can print and bind to recoup my recent purchases.

    The one good benefit of staying up late night working on high end crafts is that I get to watch the likes of Monster house, Monster garage, and American Chopper.

    But, that's another story.

     

  • Trouncing Trash Takes Time and Tenacity

    During the winter in my neighborhood, the begetation looks pretty baren.  Things become really simple.  Everything but the evergreens, loses it's leaves, dries up, and kinda disappears.  You can see everything clearly without all the clutter in the way.  Without the leaves, it is relatively easy to see the broken and dying branches.  You go in with your pruning shears, saw, and whatnot, and you just clear everything out that doesn't look like it belongs.  Order is the word for the day, and I am happy.

    Spring comes along, and all the plants decide to take on new “features”.  All the little blooms are blooming.  The grass begins to grow again, the leaves, following the blooms, start poking out again.  Soon enough, the inner branches of the trees and bushes will be hidden, their stark simplicity replaced by a cacophony of colors and a blanket of clorophyll producing/consuming energy systems.  It all looks good, but man!  What a mess!!

    Just so you can understand what follows, I will give you a brief inventory of the flora around my house:

    5 50 foot pine trees.  Always shedding needles, year round.  1 Giant Poplar.  2 dwarf Cherry (Rainier, Bing).  1 Prune plum, 3 large Bogenvalia, 1 large Cherry blossom, several Rhododendron and Azalia, ground cover here and there, raspberries, Rhubarb, a full vegatable garden, some large hedge type bushes (non descript), holly, this that and the other thing... And that's just the back yard.

    The front yard is similarly equipped, although the trees are dogwood, magnolia, 20 roses, several fruit trees (apple, plum, pear), and again with the nasty ground cover I'd like to rip out.

    The sides of the house feature more Rhodies, bamboo, of a couple different varieties, japanese maples, juniper type stuff, and some pretty flowering weed that I don't know, but they look like peas.

    Now.  It's almost a full time job to keep up with all this stuff.  At least on the weekends.  Oh yah, and there's a full complement of grass in both the front and back.  Anyway, keeping up with this stuff is a full time job.  I have two large 50 gallon “yard waste” cans, and they find themselves full every week.  They only get picked up every other week, so there's no way to keep up really.  You have to fill up extra bags and put them out, or take them to the dump separately.

    What's striking about all this stuff is, during the winter, it's all completely ignored.  I mean zilch, zip, nada.  After about October, everthing just shuts down.  The temperature drops, the plants die off or go dormant as they see fit, and I turn my attention to wood working, and selling off books.  But come spring time, Padow!!  There it all is.

    This weekend, in order to tame some of the beast, we decided to take out some of the grass in the back yard and build in a perimeter walkway.  A very nice idea indeed.  Since we want to have strolling brunches sampling of the various fruits and veggies in the garden, we might as well have a nice walking path to make the stroll a pleasant one.

    Well, this of course takes a trip to Lowe's.  We have to look at what type of path trimmings are available that we like.  We decide on these scalloped brick things, because Yasmin thinks they will look cool and are more instresting that the plain old ordinary bricks.  OK, we don't buy them immediately, but we do buy a ball of twine to mark the path.  Then, back home, stake the path, get out the tape measure, mark it all off.  Turns out to be about 130' worth of walkway.  This all happened after I used the weed wacker and lawn mower to essentially cut the grass down to dirt so we could actually see what the path might look like.

    While I'm busy with this process, Yasmin is clipping some of the the bushes away from the path.  It's one of the giant non descript bushes that generates white flowers, then red barries later in the summer.  That, and the prune plum tree.  This generates another pile of twigs and leaves, that of course won't fit into the already full yard waste container.  So, they'll have to be stuffed into bags.  But, we have a new feature now, it is a staked out path that almost looks like a path.  One or two or three more milestones may be needed to finish the task.

    Having staked out the path, we went off to Costco to buy a dvd, and then made a side trip to Home depot to see what they had going in the pavers department.  Not as wide a selection as Lowe's so back to Lowe's.

    Alright.  We need exactly 128 of the 1 foot scalloped things, and 24 of the curved ones to make our curves.  Just a little more than we need to account for breakage, and design changes.  The nice thing about Lowe's is that they help you with “load out”.  That is, the nice guy helped me put all those bricks into the back of my truck so I could get home quickly...

    And then... All by myself, I had to take all those bricks and move them up a staircase from the driveway, across the front lawn, up the path, into the back yard, and stack them all nice and neat like.  Tenacity, perseverance, perspiration, and a sheer determination, and I had the task done in about an hour.

    Now what do we have?  In order to clean up the trash, that is, in order to eliminate a bit of green from my back yard, I've increased the yard waste, but chopping down some bushes, generated some grass clippings from clearing out the path, put a huge amount of brick dust in my car, and deposited a number of bricks in a pile to be dealt with.  Not to mention the introduction of 20 or so stakes and the accompanying twine.

    After the next milestone, this stuff will all be put in its proper place, and all the trash will eventually get cleaned up, even if it does take a couple more seasons.  In the end, we'll have a wonderfully organized yard with minimized waste, all nice and tidy and orderly.

    As I tucked Yasmin into bed tonight, we started thinking about the things we'll be doing with our newly organized space.  Word of forts, with water features dividing them.  Park benches, with arbors, gazebos, and waterfalls.  In the fullness of time, we'll actually implement all these features.  For now, we're just going to have to deal with all the trash we've just generated. 

  • My Media Muscle Machine Might Make Masculine Movies

    I didn't actually watch the whole super bowl.  I watched some of the first half, and walked away as soon as the half time show started to make a phone call.  The call lasted through the half time show, and pretty much through the second half, and I got busy doing other things anyway.  Luckily, I taped the whole 5 hours though.

    Tonight, I'm actually exercising a whole other aspect of my media explorations.  I'm taking the tape of the super bowl, and saving it digitally.  If I were smart, i would have recorded it digitally in the first place, but I simply didn't think there would be any reason to waste hard disk space on it when it started.

    So, I used the video capture capabilities of my ATI All-In_Wonder, and turned the roughly 5 hours into 20Gb of data.  Do you ever wonder how a game that has 4 quartes of 15 minutes apiece could turn into 5 hours of boredom? 

    Anyway, using Sonic's “MyDVD”, I'm importing the whole video in to do some editing.  It's a neat program because it will automatically do scene detection, and automatically turn those scenes into chapters for your DVD.  You can take scenes out, add your own scene boundaries, and play them in whatever order you want.

    I think I'm going to make 7 main chapters: Pre Game, 1st Quarter, 2nd Quarter, Half time, 3rd Quarter, 4th Quarter, Post Game wrapup.  I might pull the half time show out separately and further break it down into its own chapters.  I'm going to remove all the commercials, and create “special features” out of them, eliminating the duplicates and not so special ones.  That should leave me with quite a nice little packaged up super bowl experience.

    The one thing I missed was capturing the closed captions.  But, wait a minute, maybe I did capture them, and I just need to turn them on... I'll figure that out.  If I did capture them, then I'll add them to the database.  Of course I can add my own caption information anyway.

    So, let's see.  I'm hoping that without commercials, half-time, cutaways to the booth, I might actually end up with 1.5 hours of pure football in all it's glory.

    My home machine is not very fast, and this whole process will take quite a few hours.  It will consume a lot of disk space, eat up CPU, and make my machine bleed for speed and want of more memory.  But, I can see this is what a lot of people might be doing with their machines in the future.  With more digital photography than ever, the digital shoe box will beg to have the media futzed with.

    Disk drives sales will continue, the march for faster machines will continue, the barrage of DVD/Videography software will continue, and the world will be a better place.

    I'm going off the St Thomas to fill up 512Mb of compact flash with my camera.  But that's another story.

     

  • I think I know why computers don't work, that is, epistemologically speaking of course

    As Jimmy Carter used to do, I consult my daughter Yasmin on many an issue of great and deep importance.  The subject this weekend was why computers crash, have bugs, and all that sort of stuff.  I made a bold statement because I wanted to see where we could take it.  I said “they have problems because they have no sense of identity“.

    A while ago, she raised the question “Who is the 'I' that says 'I'“.  We've gone into philosophical and religious discussions based on this very topic.  Today, she basically said, “that's a lot of difficulty caused by a single letter“, and then she went back to reading “Dragon Singer“, which isn't about a singing dragon at all.

    At any rate, we went on about our day, and on the way over to Krispy Kreme, we broached the subject again, “why don't computers always work?“  This time, I had an even better angle.  I said the following.

    “This car is transporting us to Krispy Kreme.  Without using the words “I“, “We“, or “Us“, can you describe why this is happening?“.  She struggled mightily, figuring, refiguring, recasting, and in the end came up with “it's too hard“.  I thought to myself “just like when the WHOPPER figured out that there was no good end in thermonuclear war“.  That was just the hook I needed.  I said, computer programs are like us in the car without identity.  The car is like the computer itself.  Or visa versa.  It's doing whatever it's doing, no matter what.  I said, if the car suddenly veered off course, and went off the side of the road, we wouldn't care, and the car would do nothing to correct its course.  We're just along for the ride.  Without identity, we can't say things like “NO!!  We want to go to Krispy Kreme!!“, and recorrect the errant path.  There's no “We“ to express such a thought, and the car has no real will of its own.  It's only because I have strong desires to get to the donut place that I will make corrections to the car along the way, accounting for adversities of all sorts as they come up.  I am adaptable, and I have desire.

    Similarly, I said, there's no sense of identity in the computing system, so when a virus comes along and messes with the program, the computer happily continues to execute the infected program because it has no sense or desire to do anything else, because it has no identity of its own.  It's just going wherever the code takes it.

    To go further, I described the current state of computing as working very hard to make the car more reliable.  Random acts are less likely to take us off course.  A popped tire is unlikely.  An overheated radiator, a tweaked steering system.  But, a random asteroid, or drunk driver can always hit us, and since we're merely passengers, we're not going to do too much to correct our course, because we have no desire other than to ride along with wherever the car is going to take us.

    We then worked out that it would be nice to put some amount of knowledge/mind into the machine such that it can make some basic decisions.  That's when we stumbled on the word “epistemology“.  How do you remember such a word?  Well, I said “epi“ can be remembered because it's at the center of things, like “epicenter“ of an earthquake.  Then there's stem, which is the center of a plant.  Then, ology is easy because she already knows things like biology as being the study of something.  So, now Yasmin knows the word epistemology as the study of things that are at the center.  Good enough, we'll get to the theory of thinking and knowledge soon enough.

    Having planted this seed, I'm assuming that Yasmin will come up with the method and aparatus for infusing machines with a mind.  Perhaps we'll follow Freud and create an Id, Ego, and Superego system.  Who knows.  All I know is that in the past (when she was 4) when she was asking the questions like “why is the sky blue, why does the moon appear larger when it's low in the sky“, and the like, I had to turn to the “Handy Physics Answer Book“.  I figure by turning these problems over to her early, we'll get a generational head start on solving them.

    Well, we got our donuts, we headed home, and Yasmin finished the “Dragon Singer“ for the fifth time before turning in.  I'm glad she's on my side, and I hope the pity she feels for the poor dumb computers leads her to answering the “who am I?“ question for them.

     

     

  • Legacy Lags Listlessly Lurching towards the future

    What is “legacy data”?  I thought about this because at work we talk about 'legacy data' all the time.  As if the data being stored in the future will be current, and the data stored today is old crufty and undesirable.

    Having installed another 120Gb in my machine, I rapidly filled it up with some more legacy DVD data.  Storing the data itself is relatively painless.  A full DVD takes anywhere from 7-20 minutes to archive, depending.  Then there's that extra step of trying to get the subtitles turned into text from their bitmap form.  That takes another manual tedious 20 minutes.

    The sad thing is, I'm sure there are other people in the world who are doing this last tedious step, and in the spirit of friendliness, they've probably uploaded the subtitles in text form somewhere.

    Sure enough, there is a site that allows you to search for subtitle files: http://www.allsubtitles.exits.ro They have a web interface, and produce a program called “SubsFinder”.  It's a nifty thing because you just type in the title of the movie, what language you want it in, and press 'Go'.  If they have it, you download it, and you're all set.

    So, now my process for archiving just became that much easier.  I archive the disk, which doesn't take very long at all.  I do a search on allsubtitles to see if they have the text.  If they do, then I'm done.  If not, then I spend the extra time later to transcode the subtitles to text.

    But, this is all legacy data isn't it?  I mean the disks have already been manufactured.  Certainly it can't be valuable information.  Certainly if it were interesting it would be stored in some database quickly accessible.  Certainly we'd have products available already that would seamlessly integrate this information into our lives showing how pertinant it is to our very existance.

    I've come to the conclusion that everything on my hard disk is legacy data.  No sooner do I archive some content, than someone else somewhere on the planet has already done the same exact thing.  Yes, I will have a terabyte of storage, but “my data” won't all be on my machine.  In the future, all the data of the world will be 'my data', and I will be able to access it all through the internet.  I may store some of the vast pool of human knowledge on my machine locally, but realistically, that's just so that it can serve as a local cache for performance reasons.

    There's no such thing as legacy data.  There is just data.  Whether it was created long ago, or in the future does not matter.  What matters is I want to get to it in intelligent ways.  I don't want to always move it forward as the 'legacy' label might suggest.  I want to access it as it is, in place, using intelligent tools and agents.

    I've archived all my CDs.  I've made it through almost all of my DVDs (I'll need another 100Gb to make it all the way).  Now I'm looking at buying a high resolution scanner to capture my old photo negatives that existed before the dawn of the digital camera age

    “Legacy Data” is the world's memory.  Making that memory readily available in relatively easy fashion is going to be very interesting.

     

  • Archived Media Makes Marvelous Movies

    I've archived a large number of DVDs to my hard disk.  If you have non-copyrighted material, say weddings and whatnot, on DVD, you can use DVDDecrypter to store the content on your hard disk.  It has this neat mode (ISO Read) that pretty much just copies the entire disk to your machine as an ISO image.  You could then write that image file out to a DVD Writer, and you'd have a duplicate of your most precious wedding DVD.

    The interesting thing to me though, is the other things you can do with your content.  For example, using the same program, you can demux the DVD into its constituent parts.  In particular, you can split out the video as MPEG-2, and the audio as .AC3, or whatever the encoding so happened to be.  Once you do that, you can do other things.

    Now, I'm trying to make my media content available over my home network so that I can watch a movie or play music from anywhere in the house.  I want to store it all on the “media server”, which is to be a fairly beefy machine running Windows 2003 Server, with Media Services enabled.  The media services basically allow for media streaming, either as broadcast, or unicast.

    If I can turn my content into Windows Media Video 9 format, then I'll be golden.  It turns out that part of the free downloads for Windows Media 9 is the Windows Media Encoder program.  This is a really neat piece of machinery.  You simply indicate where your audio is stored, and where the accompanying video is, and tell it what data rate, video sight, and other parameters you like, and start encoding.  At the end of what may be a very long session on an underpowered machine such as mine, you will get this nice .wmv file that will be a nice representation of your content in streaming media format.

    This is way cool.  There is one step you have to perform once you get your content from your original DVD though.  You have to convert the .AC3 stream into a .wav file, but there's a utility program called AZid that helps you do that part.

    So, I've got a strategy.  Copying the original content of my DVDs to the hard disk in the entirety seems like a good idea.  It's a permanent record that's a bit more easily accessible than the original DVDs.  Since my hard disk is faster than my DVD drive, it makes further processing much faster.  It's also a legitimate archiving mechanism because if I lose, break, burn, or otherwise destroy one of my $15 DVDs, I can press a new desk from my desktop.  That seems like a good thing.  Also, whenever  I want to create a movie of a specific size for a specific purpose, I can always transcode from the original sources.

    Now, I'm looking back at the 100 or so CDs that I've archived, and I'm thinking I will go through the whole process all over again.  When I first archived them, I used one of the lossy compression ratios.  I was thinking I would be archiving them for playback.  But, after doing this little job on the DVDs, I'm thinking it would be good to have the CDs as pristine copies of originals as well.  it takes up more space, but that's why I keep buying 100Gb disk drives.

    At the same time that I'm archiving my wedding DVDs, I'm getting the sub title information off them at the same time.  I plan on putting those into a database so that I can do content searches to find interesting stuff.  Given that the DVDs will be available online, it begins to get interesting.  I can imagine being able to archive some National Geographic, or Discovery Channel DVDs and pull up scenes by content for Yasmin's various reports.  That will be way cool.

    Basically, I'm turing my media into searchable content that can be used for more than just entertainment.  This is a good thing for book/learning people such as ourselves, we have ready access to a library of Congress amount of information right here on our little server at home.

    So, that's how it is.  Rip snortin fast archiving and retrieval of massive amounts of information.  I wonder if I can query and present this information in a better way...

    I guess that's another story.

     

  • The Prince - Presents Positively Passionate Political Platitudes

    Niccolo Machiavelli - The Prince

    Penguin Classics - ISBN 0-14-044752-0

    I've been reading this of late.  It's interesting.  This Machiavelli guy (1469-1527) is talking about statecraft, and makes many observations as to how things have come about in the Europe that he lived in.  Lots of tales of Papal pontiffs, politicians, patriarchs, and the like.  If it were an operate, there would be many patricians in tights singing in Italian with plenty of blood and guts.

    It's interesting because it's old stuff, yet it is new again.  There are interesting section headings such as “How a prince should organize his troops”, “How cities or principalities which lived under their own laws should be administered after being conquered”, and the like.

    It's like a training manual with case studies on how various princes should go about ruling their principalities depending on how they came to them in the first place.  “New principalities acquired by one's own arms and prowess”.

    In modern terms, I think the precepts and concepts can be applied to modern business situations.  Tonight I read about the Michael being dismissed as the Master of Mickey.  Certainly a coupe in the making.  Since spring is in the air, there are certainly a round of mergers and acquisitions, reorgs, and whatnot across the computer industry.  It will be interesting to see what patterns these various machinations appear to be following.  Having recognized the beginning of one pattern, I'd like to read to the end of the associative chapter in the book to see how it's going to end.

    A more modern treatment of a similar subject is “The 48 Laws of Power”, Rober Greene.  Also from Penguin ISBN- 0-14-028019-7

    This one has such sage advice as “Win through your actions, never through argument”.

    41 - Avoid stepping into a great man's shoes

    46 - Never appear too perfect

    47 - Do not go past the mark you aimed for; in victory, learn when to stop

     They each go into great detail with case studies to prove the point, and teach how to avoid the pitfalls.  Interesting stuff.

    So, I look at my modern landscape with “The Prince” and “48 Laws” as guiding lights.  I see what we are doing in the computer industry, and I simply think “interesting”.

  • Coax Capabilities Come to Computer

    So,

    This past weekend, I pushed further ahead with my home office rearrangement project.  Having detreasured the downstairs, and having move my center of computing upstairs, there was just one more thing to move.  I left one of the computers downstairs (the media archiving PC) because that's where the cable was running.  There, and into my bedroom.

    I really had no other reason for having the PC down there other than the fact that the cable was available down there.  So, I endeavored to install a cable line into my new office space.  Seeing as how I did so well while installing the phone line, I figured this would be a piece of cake.

    Well, I didn't drill a hole through any existing cables this time, but I did have my challenges.  I went to Fry's Electronics because I figured they have everything.  I thought I'd pick up the coax cable, the connectors, and the special crimping tool.  Well, they had the cable, but it was expensive.  They had the connectors, but not the crimping tool.  Ah well, why don't I pick up a DeskStar disk drive while I'm here... Nah, it's a wash.

    So, off to the Fremont district to look into some hydroponics equipment.. But, that's another story.

    So, I eventually went to the hardware store.  I was able to get 500' of cable for $38, and they had the connectors, and the special crimping tool.  Fry's has dropped in my estimation as the be all end all destination for electronics.  I got the cable, drilled a hole in my garage wall, ran the cable up top, into the hole that I drilled, up into the closet.  Sounds easy yes?  Well, yah, except I initially had the wrong connectors, I cut the cable too short, I didn't have an extension fitting to finish the job, and the computer was downstairs.

    Well, today, all is well.  I moved the computer upstairs, I connected the extra length of cable that was needed, and now my archiving PC sits, humming peacefully, in the closet, with it's cable attached.

    This is really cool because the way things are setup, I can be busily typing on my computer while Yasmin's using the other one at the same time.  I can easily watch TV while I work if I like (I could already do this with the laptop anyway), and my basement is devoid of computer equipment.

    Now that the basement is more open, having stripped the shelves of aging books, and removed the computers, and other various and sundry items, what will I do?

    Well, now it's time to get one of those projectors, some nicer movie couches, and beef up the whole entertainment system with large scale noisy speakers and the like.  That, or I'll increase my investment in exercise equipment, adding a rowing machine, and universal weight machine to the bike rollers.  That, or rent the space out to a starving artist.  That, or setup the hydroponics down there and start growing stuff during the non-sunny season.

    Who knows.  For now, I have my computing center setup in one place.  I have that room nice and decluttered.  I'm happy as a pig in slop, and I want to write some code.

  • Scheming with Schema

    Pokemon; Ed, Edd, and Eddy; Masters of the Universe; Zoids.

    These are the cartoons you get to watch, either because you woke up at 6am, or so happen to be watching at 9pm like I am. 

    Why am I watching TV right now?  Because I was typing some schema code while sitting on my bed in my room, and my battery said it was getting low.  My laptop's power cord is downstairs plugged in next to the couch in front of the TV, so here I sit and type.

    Laptops are great because they're powerful enough to actually get some programming done these days.  I don't have to be sitting at my desk any more.

    Speaking of sitting at my desk, as my laptop sat on my desk last week, I wiped out the various source trees, and internal installations of Visual Studio, and loaded Visual Studio 2003 Professional.  I debated a long time between this particular release, and putting the latest Whidbey release on my machine.  I ended up with this stock version because it's what everyone in the public has.  I want to do some coding samples, and I want those samples to be accessible to more people than Whidbey insiders.

    In our group, we spend most of our time looking forward.  VS 2003 represents code that we first released in 2002, which was originally designed in 1999/2000.  But, what does it look like?  I was part of the team which this stuff was designed.  It seemed like it was all so terrific at the time.

    The two most primary design centers were XmlReader and XmlNavigator.  Other pieces of the puzzle include DOM, XSLTTransform and the like.  XmlSchema came later in the cycle as the XML Schema standard was ratified.  That's a whole other story that I'll have to relate some time.

    What I'm looking for in particular is how to use the XmlSchema Object.  I'm mainly concerned with how I can turn my newly inferred book schemas into working program code for a simple librarian application.  There's plenty of fertile ground for this application.  I'll let you know how it goes.

    In the meanwhile, I was actually trying to use the Schema Object Model, and all I can say is... I'm sorry.

    The conclusion I've come to is, using the C# editor to create schemas is not quite the right tool.

    What I mean is this.  When your schema looks something like this:

    <?xml version="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:group name="testGroup">
      <xs:choice>
        <xs:any namespace="##any"/>
      </xs:choice>
      </xs:group>
      <xs:element name="myElement" >
      <xs:complexType>
        <xs:choice maxOccurs="unbounded">
          <xs:group ref="testGroup" />
        </xs:choice>
      </xs:complexType>
      </xs:element>
    </xs:schema>

    It's probably easier to write the following:

            string xsd = "example.xsd";

            FileStream fs;
            XmlSchema schema;
                fs = new FileStream(xsd, FileMode.Open);
                schema = XmlSchema.Read(fs, new ValidationEventHandler(ShowCompileError));

                schema.Compile(new ValidationEventHandler(ShowCompileError));

    In this case, Notepad has been used as the schema editor, and C# simply loads the result.  To create this schema programatically is a lot more involved, and not really that fun.  That method is good for tools that are generating schema on the fly.  It's not really the interface that I would recommend for programmers who are consuming schemas.

    So, maybe it's not that bad.  You don't have to use the API to create the schemas, but what about reading it?

    Wha?  Is that Samurai Jack?  Nope, X-Men.  Sorry, gotta go!

    I'll get back to you.

  • On the cut list

    Through the closets and shelves downstairs, what do I find?  Selective issues of  Dr. Dobb's Journal, dating as far back as 1993, to 1998.  At some point I think I had a subscription, and I thought I'd be referring to these things over time.  Turns out that you can get it all online, on CDs, and various other venues.

    Interesting headings:

    Unlocking Encryption Algorithms - Well Bruce Schneier created a few books on the subject, and runs Counterpane Software (http://www.counterpane.com).  I bought his “Applied Cryptography” book (1st and 2nd Editions).  Then of course there's the TwoFish book.  Now I'm ready to recycle them because the work has advanced and these references can all be had online.  Bruce Charges a lot of money to get his software on a CD, but, you can find it all online if you're industrious.

    Morphing Magic - Became a book, I bought it, then replaced it with a more rigorous book later.

    Visual Programming - Used to be big, and there were probably big conferences on it.  Nowadays.  With the advent of Java and sloppy programming, we can produce many more bugs more quickly with a simple editor, so we don't need this visual assistance.  I'm thinking Intentional Programming will actually be the next big breakthrough in this area.

    Object Oriented Programming - Now that's gotta be hot.  I wonder if I should keep that one?

    Oh, and look, there's one on this thing called XML.  That one might be hot one day.  I better hold onto it just in case I need to refer back to that complex syntax they talked about.  And on and on it goes.  10 years of magazines that seemed extremely interesting at the time, but are nothing more than online references at this point.

    Well, I'm a programming guy, and I'm sure there's some sort of programming analogy I can draw here.  One trend I see by investigating this past is what turned out to be truly important, and what turned out to be more short term fads.  Undocumented NT and Netware core protocol?  Net What?

    How about Persistence for C++, Distributed computing and component objects?  And my favorite, Optimizing VRML!!

    I guess the point would be, when things get really good, they get preserved.  Yah some things that aren't particularly good get preserved some time too, but in general I think this is true.

    Since I work on XML, I wonder, what parts of it will be the parts that I'll be throwing away as esoterica, and which parts will be getting preserved in a more permanent form, perhaps as part of a language.  Looking into this crystal ball, and making good choices for the future is what our jobs are all about.

    SGML, the genesis of XML, has a lot of crufty esoteric stuff.  If it didn't, there never would have been a need for XML.  XML itself is even starting to get some cruft.  There is now this 1.1 thing, namespaces, XSD, and whatnot.  What do you make of it?  What parts of this will be the Dr Dobb's 1993 issue on the beauties of Netware, and which parts will be longer lasting?

    Only time will tell for sure, but in the meanwhile, we'll influence and shape the outcome, doing enough things right such that history will have plenty to choose from in determining how foresightful we were today.

     

More Posts Next page »

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker