Ready to Move!

How bad can respiration really get in air like this?  This feels like a record-breaking year for low air quality in Western Washington.  It has me wanting to move to some place like Hawaii.  All of us in the Oye house are ready for the air to clear up!

Advertisements

Three (FIVE?!) Year Update (Abridged)

Technology has changed quickly in the last 10 years and blogging is no longer en vogue (people don’t have the attention span for it).  I share more on Facebook than anywhere else and just in short blurbs.  I have been meaning to come back and re-write my blog but still haven’t gotten around to it.  So what’s been going on in my life? Here’s the brief summary:

  • Met and married a wonderful woman!
  • My wife and I had a baby girl!  I know have two+* amazing daughters and two impressive step-sons.
  • Traveling with the family when possible!
  • I was a delegate for Bernie Sanders!  I have never been so involved in politics.  I was crushed when he didn’t win the nomination.

There are quite a few things I have *not* made progress on, though.  My social network is still nowhere close to being done.  I’ve been working on this damn thing since 2006.  The ugly divorce years set it back but now that I’m through that I don’t have any other excuses (well, aside from being a full-time dad again;-).  I’ve also added a life goal of buying a blue water, ocean-going sailboat and to sail around the world (I just have to sell my wife on it).

Hope you are well, readers!  (Hi, Melmo!)

March Madness (Month in Review)

Not sure why, but this March seems chaotic (not just in terms of basketball upsets). It’s been a good month overall, though. I found someone I like, but the dork gene seems to get in the way 😉 I’m nearly free of all unsecured debt again (after the “Big D” snowed me in for a few years). I got away to Spokane this last weekend for J&R’s babyshower. Got to visit my friend Carrie. I bought a “new” hot tub. Life is getting good again.

Oh, and since she’s not on Facebook anymore, Happy Birthday Jenny Rose!

Congratulations J&R!

On February 3, 2012, my friends to the East had their first, lil’ bundle of joy! Congratulations J&R on the birth of your son!

First POST!

After slaving away for a couple of weeks, my fledgling .NET-based browser has performed it’s first search on Google:

            WebBrowser browser = new WebBrowser();

            browser.EnableCLR = false;
            browser.EnableDebug = false;
            browser.EnableJavascript = true;
            browser.Timeout = 15000;
            browser.Agent = UserAgent.Firefox9();
            browser.GoTo("http://www.google.com/");

            browser.SetValue(
                Find.ByName("q"), 
                "headless browser");
            browser.Click(
                Find.ByName("btnK"));

I had completed the basic Level 3 DOM implementation in the first weekend and I thought I was nearly done then, but have come to realize just how much goes into a browser. O-M-G! So far, I have:

  • Basic DOM Level 3 support
  • Basic HTML Level 2 support (most of HTML 4.01 and some HTML 5).
  • Some CSS / CSS2 / CSS3 support (including most CSS3 selectors)
  • Basic JavaScript support. I still have to comb over the DOM to see what features are missing. I just added localStorage and sessionStorage today, which I had not seen until some script blew up after not finding it).
  • Basic DOM events and HTML events (DOMDocumentLoaded, load/onload, click/onclick, etc)

Yet Another Project

I have way too many projects as it is, but I keep adding to the pile.  For quite some time, I’ve been lamenting the fact that there is no good headless browser for the .NET runtime (IMO).  There are ways to drive a full-fledged browser (Watin), there are simple implementations (SimpleBrowser, etc), and then there is the option of trying to host a Java-based browser inside your .NET app (HtmlUnit).  I have written plenty of web automation using existing libraries like this, but they usually run into issues.  Using Watin in a multi-threaded content crawler, for example, usually results in memory exhaustion or a bunch of COM/Interop exceptions when trying to walk 90,000 pages.

So this prompted me to finally take the plunge and take a shot at writing a purely .NET, headless web browser.  Sounds crazy, but after a day into it I am a lot further along than I thought.  The great thing about modern software development is that a lot of the components you need are usually already out there.  My goal:

  1. Develop a fully-functional, fully-compliant, purely .NET Level 3 Document Object Model.  I think I’ve managed to achieve Level 1 compliance in the first day and I am attempting to add Level2 and Level 3 compliance today.
  2. Fully support JavaScript and CSS.  JavaScript support is achieved through the use of the Jint library.
  3. Retain a small memory fingerprint.

After one day the browser is able to perform simple requests and perform simple JavaScript tasks (jQuery support is still a way off, though):

var WebBrowser = new WebBrowser()
{
EnableJavascript = true,
EnableDotNet = false,
Timeout = 15000,
UserAgent = new Firefox9Agent()
};

Browser.NavigateTo("http://www.google.com/");
Browser.CurrentDocument.Forms[0]
.Populate(f => f.SetValue(f.FindById("q"), "KLF Web Browser"))
.Click(e => e.id.Equals("btnG"));

Sorry, Target, but you have no right!

I am all for stores asking a customer for ID to verify age when buying tobacco, alcohol, or other age-restricted products. But stores should only have the right to look at a valid document for the purposes of verifying this information. They should not have the right to record every bit of your personal information. But that is what the Target corporation is asking for when they scan your ID card. The information contained in the barcode probably varies by the issuer, but take a look at what is contained in the Washington State driver’s license information. Would you let someone take a copy of all this information to the backroom copy machine just to make a $10 purchase? I won’t, and furthermore, I don’t think they should have the right to ask for it in the first place.

You want to look at my ID to verify my age? Great! You want to record all my biometric data? Kiss my … and while you’re at it, put all the stuff in my cart back on the shelf because I won’t shop at a store that believes they have the right to ask for such information.

If you think I’m just being irate… well, you could be right, but there are plenty of other people who feel the same way (Google “target scanning your ID”).

Fred

pissedconsumer.com

Consumerist.com

Papers Please!