Archive

Categories

Full Post List

Mar 29, 2025: Vote No On Anti-DEI Shareholder Proposals One small way I’m pushing back against the anti-DEI tide is voting no on every such shareholder proposal for companies held in my retirement accounts. …

Feb 7, 2025: The Cavalcade of Cowardice Grows According to this Wall Street Journal story, Google is the latest company to join the bandwagon of anti-blackness sweeping the tech industry in the …

Feb 2, 2025: Blaming Joe Biden for a Government He No Longer Runs This Franklin Foer piece is useful in a few ways: it makes clear that the destruction of the administrative state currently in-progress is a …

Jan 30, 2025: How My Plan to Blog About a Great Podcast Episode Landed Me on Micro.blog I’d just finished listening to episode 981 of the Hanselminutes podcast on Blogging for Developers on my way home from work and felt inspired to write …

Jan 20, 2025: A Foolish Nation Repeats Its Folly Like a dog that returns to its vomit Is a fool who repeats his folly. --Proverbs 26:11 There may not be a better symbol just how thorough this …

Jan 19, 2025: Marcus Garvey, Posthumously Pardoned On this last full day before leaving the White House, President Joe Biden granted a posthumous pardon to Marcus Garvey. A letter written by Yvette D. …

Jan 10, 2025: Farewell To Threads, And What Comes Next I deleted my Threads account today. Meta's previous announcements about the end of third-party fact-checking and changes to moderation rules (to …

Dec 28, 2024: Charitable Giving in 2024 (Part 2) This will wrap up my annual charitable giving post that I began on Christmas Eve with a Part 1. Other Charitable Giving (continued) Additional …

Dec 24, 2024: Charitable Giving in 2024 (Part 1) My final post of last year talked about charitable giving, but this I'm starting a bit earlier. This annual post is as much of a self-reminder to …

Dec 9, 2024: The Return of White Impunity for Black Death Merriam-Webster defines impunity as exemption or freedom from punishment, harm, or loss. With their acquittal of Daniel Penny on the charge of …

Dec 6, 2024: A Nation Without Mercy, Revisited Yesterday, a mutual on Bluesky shared this news: How can you be deadlocked when HIS HAIR PROBABLY SPEAKS AFRIKAANS BY ITSELF?!! [image or embed] — …

Nov 9, 2024: We Are Going Back I hated the "zombie Palpatine" storyline for awhile on social media, but the United States of America willingly chose to reenact this in real-life by …

Oct 27, 2024: My First YouTube Video [youtu.be/fE71ttWBu...](https://youtu.be/fE71ttWBuwo?si=0uOoP_H8zP8KAJM-) A hastily-made tutorial for sharing your screen and sound in Zoom by yours …

Aug 30, 2024: Past Tense We are reaching and surpassing dates in real-life that were formerly part of our science fiction. The screenshot which leads off this post is from …

Aug 24, 2024: Toxic Fandom Keeps Winning Commentary: Can the Best of Star Wars Survive the Worst of Its Fans? Before Star Wars can have another successful show, some vocal parts of fandom …

Aug 4, 2024: Gatekeeping Blackness is the New Birtherism "Kamala isn't black" is the latest lie dividing black folks (and uniting those seeking to discredit her). I take personal offense at this particular …

Jul 14, 2024: Reaping the Whirlwind For they sow the wind and they reap the whirlwind. The standing grain has no heads; It yields no grain. Should it yield, strangers would swallow it …

Jun 29, 2024: The Real Problem with Biden's Bad Debate The response to President Biden's subpar debate performance against Donald Trump creates an opportunity to talk about the poor choices black voters in …

Apr 29, 2024: How to Protest a War Machine: Thoughts on Campus Protests In recent days, we have seen many university leaders of various titles (president, chancellor, etc) resort to calling the police on their own students …

Apr 21, 2024: Migrating My WordPress Database from a Lightsail Instance to a Standalone Database Last year, I moved this blog off of a EC2 instance running a too-old version of PHP to a Lightsail instance. I had to restart that instance in order …

Apr 6, 2024: "I have no time for foolishness." The function, the very serious function of racism is distraction. It keeps you from doing your work. It keeps you explaining, over and over again, …

Apr 3, 2024: Now Sharing to the Fediverse, My Threads Account When I checked in on my Threads account recently, I saw that the Fediverse sharing feature was available and turned it on. As you can see above, …

Mar 28, 2024: Blaming the Victim: The Shoddy Press Coverage of the Dali Destroying the Francis Scott Key Bridge I've noticed a nasty trend in the way the press is covering the recent destruction of the Francis Scott Key Bridge when a freighter named the Dali …

Mar 26, 2024: Grand Opening, Grand Closing Ronna McDaniel's tenure as an NBC contributor has ended far more quickly than expected. Depending on which source you choose, it was either 4 days …

Mar 21, 2024: How the U.S. Waged a Global Campaign Against Baby Formula Regulation The following story was originally published by ProPublica, written and photographed by the contributors listed below. I’ve been donating to …

Mar 3, 2024: Is the Alabama embryo ruling pro-life or pro control? That's the title of this op-ed by Solomon Missouri, pastor of a rural church in eastern North Carolina and an Alabama native. While he is perhaps best …

Feb 3, 2024: Woodrow Wilson Needs to Stay "Cancelled" The Atlantic chose the second day of Black History Month to publish this piece by David Frum to advocate for the "uncanceling" of Woodrow Wilson. In …

Jan 22, 2024: Idolatry of Innovators Can Lead You to Foolish Places Here's an insane thing I read on social media today: Post by @inspiringselfcompassion View on Threads The fellow who blocked the account above, …

Jan 15, 2024: Farewell to the Last of My 40s Today is my 50th birthday, and looking back on my 40s from this vantage point, they were *a lot*. I became a dad (to twins). They're now in 3rd grade. …

Jan 6, 2024: Insurrection? What Insurrection? It is January 6, 2023 and in an even more depressing turn than I could have imagined, numerous so-called liberals joined the crowd of conservatives …

Jan 5, 2024: What We Left Behind in 2023: Mint Intuit decided and announced last year that Mint (an excellent personal finance app that I've used since 2009) would go away. They've pushed …

Dec 31, 2023: Charitable Giving in 2023 The number of hours left in 2023 is down to single digits as I write this. This year as in past years, the majority of my charitable giving is to …

Dec 31, 2023: Looking Back at Highs and Lows of 2023 Highlights: Expanded scope at work 2 stand-alone teams versus one large one New area of responsibility Managing (and delegating to) team lead and …

Dec 28, 2023: The American Dream is Still Achievable--But Far from Easy One of my mutuals on social media takes special glee in puncturing strongly-held beliefs. His latest target: the belief in America's upward mobility …

Dec 27, 2023: Great Customer Service Smoothes Out Bad Self-Service Success at switching to a truly bundled Disney+ and Hulu experience (both with no ads) from the janky status quo where both services were billed …

Dec 19, 2023: Flipboard Renewing Its Relevance With the Fediverse Flipboard is jumping into the fediverse with both feet, according to a piece from The Verge. While the fediverse isn't where I saw the piece first …

Dec 19, 2023: (Tech) Education Should Be Free (and Rigorous) Free tech education is the reality being created by Quincy Larson, the founder of FreeCodeCamp. I've been seeing their posts on Twitter for years, but …

Dec 15, 2023: Last Day of Work Until the New Year I've signed out of my work laptop for the last time in 2023 (as long as no emergencies come up that require me to log back in). So until next year:

Dec 10, 2023: Duke University Libraries Drop Basecamp I was glad to see Duke University Libraries in-depth explanation of why they're dropping Basecamp for managing projects. It reminded me of previous …

Dec 3, 2023: Peter Gabriel Is Why I Love Stop-Motion Animation Back in October, I was reminded exactly when I became a fan of stop-motion animation. A friend in one of my Slack groups shared this Jason Kottke …

Nov 22, 2023: Recent Grenadian History Revisited Going deeper down the Grenada rabbit hole I fell into just a week ago, I recently learned of a limited series podcast titled The Empty Grave of …

Nov 19, 2023: The Muscle Memory of Surrender: A Brief History of the Modern GOP All of these smart Republicans who frankly did not understand how thoroughly corrupted their party had become, or the fact that if you cave in over …

Nov 12, 2023: Grenada: Nobody's Backyard I learned a lot from this episode of Throughline about an invasion that happened when I was just 9 years old. It provides a ton of context and …

Nov 10, 2023: Rhymes with 9/11 History doesn't repeat itself, but it often rhymes Mark Twain I could not have anticipated that what I wrote on the 22nd anniversary of the 9/11 …

Oct 15, 2023: What I’m Reading and Listening to About Palestine A friend of mine asked what I’ve been reading about the war between Israel and Gaza to help him understand what was going on. So I’m writing this post …

Oct 8, 2023: Ahsoka Fell Victim to the Marvelization of Star Wars via GIPHY I hate to say this about my oldest fandom, but Ahsoka wasn’t good. I'm not here to set Dave Filoni's entire filmography on fire. Contrary …

Sep 24, 2023: Why I Pay for Email (and Domains) In a world where you can get free email accounts seemingly anywhere, I recently decided to pay for an email service. This doesn't mean that I don't …

Sep 14, 2023: Postmarks Revisited Since my initial post on Postmarks, I made two minor changes to my bookmarking site: I edited src/pages/layouts/main.hbs to eliminate the Login link …

Sep 11, 2023: Remembering 9/11 It’s hard to believe 22 years have passed since the terrorist attacks of that day. I still remembering being on the way to work when I heard the news …

Sep 10, 2023: Unremarked Corners of Social Media: Substack Notes Edition It's been about 5 months since Substack introduced Substack Notes. Some Googling to refresh my memory regarding the timing of the announcement and the …

Sep 8, 2023: Everything Old is New Again: Social Bookmarking Edition According to this TechCrunch article, a Fediverse-powered successor to del.icio.us is now available. Back in the olden days of the web, I regularly …

Jul 26, 2023: The Presumption of Belonging In my occasional attempts to learn from people I disagree with, I watched an episode Briahna Joy Gray’s Bad Faith podcast. Her guest last week was …

Jul 19, 2023: The Social Media Shakeup Continues: Bluesky & Threads Over six months have passed since I first started exploring Mastodon. I've switched servers (to hachyderm.io from mastodon.cloud), updated this blog's …

Jul 14, 2023: GOP state officials threaten legal action over company diversity policies A group of Republican U.S. state attorneys general on Thursday warned the country's largest companies that certain workforce diversity policies could …

Jul 3, 2023: Religious Freedom is a Poor Cloak for Prejudice One thing I have noticed in the rightward lurch of the federal judiciary over the years, especially the Supreme Court (and rulings that appear …

Jul 3, 2023: What The End of Affirmative Action in Higher Education Means (and Doesn’t): Addendum Finally (for now), the end of affirmative action is far from the end of anti-black rulings from this court. Affirmative action in employment will …

Jun 29, 2023: What the End of Affirmative Action in Higher Education Means (and Doesn't) [twitter.com/michaelha...](https://twitter.com/michaelharriot/status/1674424753929732106?s=61)&t=0X9xP3RDF7HBiXc9UdtMfg Michael Harriot clarifying …

May 29, 2023: Memorial Days, Past and Present According to this article by Dave Roos, the earliest Memorial Day commemoration took place May 1, 1865. Formerly enslaved people and white …

May 13, 2023: A Nation Without Mercy Yesterday, Daniel Penny was charged with second-degree manslaughter for the death of Jordan Neely from his chokehold. In response, Florida governor …

May 8, 2023: Murder on the F Train: Vigilantism is America's New Normal On May 1, 2023, Jordan Neely breathed his last breath on the floor of the F train after another passenger, Daniel Penny, held him in a chokehold for …

Apr 21, 2023: Will AI Change My Job or Replace It? One of my Twitter mutuals recently shared the following tweet with me regarding AI: …

Mar 26, 2023: Reading The South Through the Lens of Caste I recently finished reading Adolph L. Reed, Jr’s memoir of life in the Jim Crow South and afterwards. Having read Isabel Wilkerson’s Caste just before …

Mar 2, 2023: Is American Christianity Due for a Revival? Timothy Keller believes renewal is possible. He laments the decline in church membership and the closure & repurposing of former churches he first …

Feb 25, 2023: GenXJamerican.com Moves to Amazon Lightsail, A Follow-Up One change I missed after migrating to Lightsail, was ensuring that all the posts with images in them were displaying those images on the new site the …

Feb 18, 2023: Salman Rushdie Talks Writing, Democracy, History & More I recently listened to David Remnick's interview of Salman Rushdie--his first since barely surviving attempted murder by a young man not even born at …

Feb 15, 2023: Exploring Mastodon Continued: Moving to Hachyderm.io After almost 4 months of using Mastodon, I found the community on Hachyderm.io (and its administrator, Kris Nóva) so interesting that I decided to …

Jan 25, 2023: From "Quiet Quitting" to Loud Layoffs One of the more loathsome inventions of the business press in this pandemic-impacted era of work is the term "quiet quitting". Ed Zitron is far more …

Jan 9, 2023: GenXJamerican.com Moves to Amazon Lightsail Before last year ended, I moved this blog off its EC2 instance running a too-old version of PHP to an Amazon Lightsail instance in a new region. The …

Jan 6, 2023: Insurrection Anniversary On this day, the second anniversary of the attempted insurrection at the U.S. Capitol, I took a look back through what I posted on Facebook on that …

Jan 3, 2023: Jamaicans Doing Big Things in America: Susan M. Collins Susan M. Collins is the new president and CEO of the Federal Reserve Bank of Boston. Per the bank's press release, Collins is just the second woman to …

Jan 2, 2023: Owning My Words, Revisited A few years ago, I wrote this brief post, after Scott Hanselman re-tweeted one of his blog posts from 2012. In the wake of last year's takeover of …

Dec 31, 2022: 2022 Year in Review Some highlights from this year: Very strong year-end review (best ever at my current employer) Substantial pay raise RSUs added to my compensation …

Dec 27, 2022: Charitable Giving in 2022 As the end of this year gets closer, and more non-profits reach out for charitable donations, I thought it would be a good time to look at the …

Dec 26, 2022: Linux on the Desktop: Google Pixelbook Edition A friend of mine recently shared this post in our Slack group marking 2022 as the year of Linux on the Desktop. While my own days of running Linux of …

Dec 8, 2022: For Black Families in Phoenix, Child Welfare Investigations Are a Constant Threat by Eli Hager and Agnel Philip, ProPublica, and Hannah Rappleye, NBC News, photography by Stephanie Mei-Ling, special to ProPublica and NBC News …

Dec 4, 2022: The [Tech Bro CEO] Strikes Back What Elon Musk is doing to Twitter right now is what happens when someone with the same ideology and worldview as James Damore has enough power and …

Nov 20, 2022: Tell Me About Yourself--Engineering Leader Edition The following tweet starts an excellent thread of questions that I’m taking as a starting point for this post looking back over the past 5 years with …

Nov 19, 2022: 2FA/MFA Revisited Seven(!) years ago, I wrote a bit about security breaches and how two-factor authentication mitigates that risk. Today is as good a day as any to …

Nov 10, 2022: Your Mastodon Experience May Vary--And Not Always in a Good Way While my own experience on Mastodon has been a positive one so far, my experience is by no means universal. As more prominent accounts from Twitter …

Nov 9, 2022: Exploring Mastodon Continued: Timelines and Federation While checking out the Mastonaut desktop client for Mastodon, I came across the following diagram explaining the visibility of a toot: The Visibility …

Nov 6, 2022: Exploring Mastodon Continued: Verification As I mentioned at the end of my first post on Mastodon, I’ve been following Martin Fowler’s notes on his own journey. His November 1 memo on …

Nov 4, 2022: Navigating the Latest Social Media Shakeup: Exploring Mastodon In the wake of Elon Musk closing a deal to buy Twitter (after trying and failing to back out due to buyer’s remorse), the scramble to explore …

Oct 30, 2022: Churches Are Breaking the Law by Endorsing in Elections, Experts Say. The IRS Looks the Other Way. by Jeremy Schwartz and Jessica Priest ProPublica is a Pulitzer Prize-winning investigative newsroom. Sign up for The Big Story newsletter to receive …

Oct 8, 2022: African-American Evangelicals and their November Dilemma Pastor Dwight McKissic, founder and senior pastor of Cornerstone Baptist Church in Arlington, Texas, sees the dilemma of African-American evangelicals …

Sep 5, 2022: Waiter, there's a [brown person] in my [fictional world] The Lord of the Rings: The Rings of Power finally debuted on Amazon Prime, and right on cue came the complaints from white fans of Lord of the Rings …

Aug 27, 2022: Who Is Worthy of Forgiveness? Plenty of people aired (and are still airing) their opinions regarding this question in the wake of President Biden's long-anticipated decision to …

Jul 2, 2022: An Ironic Independence Day In two days, this country celebrates 246 years since the Declaration of Independence from Great Britain, after a Supreme Court term that has seen the …

May 17, 2022: What Do Black Americans Think About Roe v. Wade—and Why www.thebulwark.com/what-do-b… Another excellent piece by Dr. Ted Johnson that makes sense of the disconnect between the voting patterns of black …

Feb 13, 2022: Our Dishonest Discourse About "The Hard R" A controversy that began with this open letter asking Spotify to "take action against the mass-misinformation events which continue to occur on its …

Jan 30, 2022: Social "Firsts" and the Supreme Court A few days ago, Stephen Breyer announced his retirement from the Supreme Court of the United States at the end of the current term. Because Joe Biden …

Jan 29, 2022: Two Tales of Tech Recruiting [embed][twitter.com/jstTECHch...](https://twitter.com/jstTECHcharge/status/1487209360883339264)[/embed] In an industry that has had (and continues to …

Jan 17, 2022: MLK Day 2022 The third Monday in January is here, and once again people who oppose everything Dr. King stood for are abusing the one line they know from the I Have …

Jan 8, 2022: 1/6 and 9/11 Absent from much of the written commentary I've read about the insurrection at the US Capitol last year has been any mention of how much the nation’s …

Aug 20, 2021: Is a College Degree Worth It? Public discourse has turned (again) to the question of whether or not a college degree is "worth it". I say again because in the tech industry, this …

Aug 16, 2021: Thoughts on the Many Shades of Anti-Blackness A friend shared the following tweet with me not long ago: twitter.com/meredith_… Whoever Jen Meredith is, she is hardly alone in sharing these …

May 1, 2021: Thoughts on Diversity in Tech On April 28, I participated in a panel and Q & A on the intersection of race & technology. My 2 co-panelists and I each had 15 minutes for a monologue …

Jan 21, 2021: False Unity and “Moving On” is Dangerous Even before yesterday’s inauguration of Joe Biden and Kamala Harris as the new President and Vice President of the United States, there were calls for …

Jan 17, 2021: The Minimum Wage Debate is Too Narrow and Small Recently I've found myself having variations of the same conversation on social media regarding the minimum wage. Those to my political left have made …

Dec 16, 2020: Why Conservatives Are Anxious About America Rahmaan Mwongozi (@TheRocsWorld) recently had one of the few good-faith conversations I've heard in recent memory regarding the anxieties among those …

Dec 7, 2020: Only a Little Forgiveness for Old Debts I came across this parsimonious student loan forgiveness proposal in a tweet earlier today. The author, Beth Akers, even had the nerve to call this …

Nov 29, 2020: Life and Religious Liberty for Me, But Not for Thee With Amy Coney Barrett now on the Supreme Court and weighing in on cases, the payoff to the evangelical right for their unstinting support of Donald …

Nov 29, 2020: Rest In Peace David Prouse I’ve loved science fiction and fantasy for as long as I can remember. But I hadn’t thought much lately about exactly where that love began until a …

Nov 8, 2020: Empathy Now Predictably, the calls for empathy for “the other side” have already begun. This tweet from Ian Bremmer is one example: …

Nov 4, 2020: 2016 Was Not an Anomaly As of this writing, we lack certainty regarding the outcome of the 2020 presidential election. But we know enough to be sure that 2016 was not an …

Aug 15, 2020: Kamala Perhaps unlike most people of Jamaican or West Indian descent, I was somewhat conflicted by Biden’s selection of her to be his vice president. During …

Jul 10, 2020: Thoughts on "Cancel Culture" On Twitter, I'm one of those guys who tweets "At-will employment" every time someone loses their job because they did something stupid enough publicly …

Jun 27, 2020: An Imperfect Dividing Line for Honor America still wrestles with names, symbols and statues. But in the wake of George Floyd’s murder, some of the nation’s idols are falling faster than I …

Jun 19, 2020: My First Juneteenth Today marks the date in 1865 when General Gordon Granger read General Order 3 to the people of Galveston Bay, Texas, informing the enslaved there and …

Jun 11, 2020: New MacBook Pro The untimely death of the mid-2015 MacBook Pro that had been my primary machine the past few years meant I forking over for another laptop. Given the …

Jun 6, 2020: COVID-19 Doesn't Care About Our Politics A friend on Twitter asked the following question: Does the shortage of ventilators/mask[s] show the cruelty and inefficiency of capitalism? If so, …

May 18, 2020: Puerto Rico was a harbinger of the botched response to covid-19 In reading this excellent Financial Times piece, I was struck by this paragraph in particular: People often observed during Trump’s first three years …

Apr 28, 2020: Philanthropy is Marketing This post is the product of a conversation with some friends on Slack, on the topic of billionaires and their philanthropy. What kicked off this …

Apr 25, 2020: (Stay) Inside [embed][youtu.be/mKzVc0rTh...](https://youtu.be/mKzVc0rThK8)[/embed] I came across a shorter clip of this great video thanks to a group called the …

Feb 19, 2020: Résumé Shortening (and other résumé advice) I saw a tweet from one of the best tech follows on Twitter (@raganwald) earlier today about the difficulty of shortening your résumé to five pages. …

Feb 18, 2020: Jamaican Anatomy I remember having a good, long laugh about this particular image when one of my cousins shared it on Facebook awhile back. It reminds me that my …

Jan 18, 2020: Does Diversity & Inclusion Disadvantage Poor Whites? I came across a Twitter thread today (it begins here) which argued that diversity & inclusion is “systematically marginalizing disadvantaged people …

Dec 27, 2019: Does Your Business Card Run Linux? Mine sure doesn’t, but George Hilliard's does: https://www.thirtythreeforty.net/posts/2019/12/my-business-card-runs-linux/ Though I've spent the …

Nov 28, 2019: What I'm Thankful For I have plenty to be thankful for this year. My 4-year-old twins are doing well--healthy, happy, and eating everything in sight. My parents, sister, …

Nov 28, 2019: Owning My Words After Scott Hanselman retweeted this blog post recently about owning your words, I've decided to get back into blogging (and hopefully spend less time …

Jul 24, 2019: A Thought on Black American Culture and the Racial Wealth Gap I listened to this conversation between Dr. Glenn Loury and Coleman Hughes with great interest. I found it to be at times thoughtful, challenging, …

Apr 3, 2019: The JavaScript Guide to Clean Code This is a great presentation with numerous examples of clean JavaScript (and the much worse alternatives). Highly-recommended for refreshing your …

Feb 10, 2019: Retroactive Repudiation Unless you’ve been living under a rock, you’re aware that Virginia’s Democratic Party has been trying and failing to navigate a controversy about …

Dec 24, 2018: The Virtue Signalers Won’t Change the World A piece well-worth the time to read, regardless of your ideology. I disagree with Dr. McWhorter’s characterization of anti-racism as religion (a …

Dec 9, 2018: Ta-Nehisi Coates isn't Voldemort I'm no Harvard-trained historian like Leah Wright Rigeur (https://www.hks.harvard.edu/faculty/leah-wright-rigueur). I'm a 40-something black man with …

Nov 22, 2018: Calling Out Racist Voters Is Satisfying. But It Comes at a Political Cost. theintercept.com/2018/11/1… I’m not sure what took so long for the “broad political left” to conclude that Trump is a racist. Before he even ran for …

Sep 15, 2018: Thoughts on America’s Need for a Healthy Conservatism nymag.com/daily/int… The link above is Andrew Sullivan’s latest diary entry for New York Magazine (his regular gig since “unretiring” from blogging). …

Sep 12, 2017: Nulls Break Polymorphism, Revisited Steve Smith wrote this post regarding the problem with null about two years ago. It’s definitely worth reading in full (as is pretty much anything …

Aug 11, 2017: Thoughts on the Damore Manifesto I’ve shared a few articles on Facebook regarding the now infamous “manifesto” (available in full here) written by James Damore. But I’m (finally) …

Aug 9, 2017: Entity Framework Code First to a New Database (Revised Again) As part of hunting for a new employer (an unfortunate necessity due to layoffs), I’ve been re-acquainting myself with the .NET stack after a couple of …

Mar 29, 2017: Podcast Episodes Worth Hearing Since I transitioned from a .NET development role into a management role 2 years ago, I hadn’t spent as much time as I used to listening to podcasts …

Dec 13, 2016: Best Practices for Software Testing I originally wrote the following as an internal corporate blog post to guide a pair of business analysts responsible for writing and unit testing …

Oct 24, 2016: Software Development Roles: Lead versus Manager I’ve held the title of development lead and development manager at different points in my technology career. With the benefit of hindsight, one of the …

Sep 20, 2016: Getting (and Staying) Organized During the past year-and-a-half as a software development manager for a local consulting firm, I've tried a number of different tools and techniques …

Jul 29, 2015: Security Breaches and Two-Factor Authentication It seems the news has been rife with stories of security breaches lately. As a past and present federal contractor, the OPM breach impacted me …

Apr 21, 2015: Bulging Laptop Battery Until yesterday, I’d been unaware that laptop batteries could fail in a way other than not holding a charge very well. According to the nice fellow at …

Apr 7, 2015: Which Programming Language(s) Should I Learn? I had an interesting conversation with a friend of mine (a computer science professor) and one of his students last week. Beyond the basic which …

Feb 24, 2015: Reflection and Unit Testing This post is prompted by a couple of things: (1) a limitation in the Moq mocking framework, (2) a look back at a unit test I wrote nearly 3 years ago …

Nov 14, 2014: Pseudo-random Sampling and .NET One of the requirements I received for my current application was to select five percent of entities generated by another process for further review …

Sep 12, 2014: RadioButtonListFor and jQuery One requirement I received for a recent ASP.NET MVC form implementation was that particular radio buttons be checked on the basis of other radio …

Aug 6, 2014: Complex Object Model Binding in ASP.NET MVC In the weeks since my last post, I’ve been doing more client-side work and re-acquainting myself with ASP.NET MVC model binding. The default model …

Jun 29, 2014: XUnit: Beyond the Fact Attribute (Part 2) One thing I initially missed about NUnit compared to XUnit (besides built-in support for it in tools like TeamCity) is attributes like SetUp and …

Jun 19, 2014: Everyone is Junior at Something--Even You Hanselminutes #427 was an excellent interview with Jonathan Barronville, the author (perhaps the most intelligent and articulate 19-year-old I've ever …

Jun 12, 2014: XUnit: Beyond the Fact Attribute After using XUnit for unit testing the past couple of years, I finally got a bit tired of the cut-and-paste-and-modify cycle of expanding test …

Jun 5, 2014: Learning New Programming Languages Important advice from The Pragmatic Programmer (page 62): "Learn at least one new language every year." It's advice I've been trying to follow more …

May 29, 2014: When Third-Party Dependencies Attack Last week provided our office with an inconvenient lesson in what can happen when third-party dependencies break in unanticipated ways. PostSharp is a …

May 22, 2014: Another Tale of a Developer Interview Loop There are literally millions of links on the internet about interviewing developers–interview questions, posts on why the way you do it is wrong, and …

May 20, 2014: Farewell RockNUG! Last week was the final monthly meeting of the Rockville .NET User Group (aka RockNUG) after a seven-year run. I greatly appreciate the leadership of …

May 15, 2014: Managing Your Tech Career Episode #980 of .NET Rocks was an excellent 52 minutes on career management for developers. Since turning 40 this year, I’ve been thinking a lot more …

Mar 19, 2014: Code Generation with LINQPad 4 Today I encountered a task at work that offered the prospect of some pretty dull development work–code that needed to be written that was almost the …

Mar 7, 2014: How to Debug Small Programs This brilliant post by Eric Lippert is one I wish I’d had available to point to last month when I spoke to some software engineering undergrads.

Mar 2, 2014: Infinity, Epsilon and NaN I inadvertently learned some new things about the .NET double struct while refactoring some code over the past couple of days. A large set of test …

Feb 27, 2014: Advice for Aspiring Software Engineers Last night, I gave a talk at Towson University to a section of software engineering students (a friend of mine is their professor). The goal of the …

Feb 12, 2014: String concatentation Yesterday, Bill Wagner (author of a number of excellent books on C#) wrote a post on string concatenation, string.Format, and StringBuilder. I found …

Jan 12, 2014: Europe in Winter: Barcelona, Spain (Day 2) The bus mentioned in yesterday’s post was the Barcelona Bus Turistic. It turned out to be a lot of fun and would have been an even better value if …

Jan 11, 2014: Europe in Winter: Barcelona, Spain Barcelona is the first stop on our trip to Europe (hotels courtesy of my lovely wife, flights courtesy of me). In our first 36 hours here, we’ve …

Nov 28, 2013: Candied Sweet Potatoes 2013 Since the first time I posted a candied sweet potato recipe, I’ve made it a few more times. What follows is the 2013 version I made this past …

Nov 6, 2013: Re-Introducing NuGet (and introducing Chocolatey) Last month, I presented on the topics of NuGet and Chocolatey at RockNUG as the lead-in to David Makogon’s Polyglot Persistence talk. Since the time I …

Sep 11, 2013: Reducing Duplication with Interfaces, Generics and Abstracts The parts of our application (a long-term service and support system for the state of Maryland) that follow the DRY principle best tend to start with …

Aug 20, 2013: How can I become a world-class coder in under three years? I came across this question on Quora today and decided I would answer it. There were enough up-votes by people following the question that I’m …

Aug 8, 2013: Book Review: Building Interactive Queries with LINQPad Any new technical book has the challenge of adding value above and beyond what’s available for free on the web. A new book on LINQPad has the …

Jul 23, 2013: Binding Redirects, StructureMap and Dependency Version Upgrades Dealing with the fallout in failing unit tests from a code merge is one of the most frustrating tasks in software development. And as one of a (very) …

Jul 15, 2013: Not Surprised, But Still Disappointed After being told the composition of the jury considering the case against George Zimmerman the week before, I said he wouldn’t be found guilty. I also …

Jul 9, 2013: Word Games I love word games. Whether it’s old-school ones like Scrabble and Boggle or the increasing number of iPhone word games (Words with Friends, Scramble …

Jun 6, 2013: The App Store Economy Ain't Broken (So Don't Fix It) I came acrossthis article via Daring Fireball, and figured I’d post my two cents about it. I disagree with the both the premise of the article and …

Apr 17, 2013: The Dreaded CISPA is Back

Mar 22, 2013: My 2 Cents on SXSW 2013 Size I hadn’t been to a conference so large (whether you’re counting people or land area covered) since Microsoft’s PDC in 2001–and that was held at …

Feb 14, 2013: Replicating Folder Structures in New Environments with MSBuild I recently received the task of modifying an existing MSBuild script to copy configuration files from one location to another while preserving all but …

Jan 24, 2013: Fixing MVC Sitemap Errors When attempting to manually test a .NET MVC application, I got the following exception from Visual Studio: Looking at the inner exception revealed …

Jan 18, 2013: Identifying All Bad Mappings with AutoMapper One of the long-running annoyances we’ve had with our test of AutoMapper configuration validity on my current project is that a test failure only …

Dec 28, 2012: Ours At Last After about two weeks of homelessness (a.k.a. living in my wife’s condo and hotels), we finally completed the settlement process on our shiny new …

Nov 27, 2012: Fastest Realtor in the East? I didn’t think a house could be sold in just 4 days, but I was wrong. We got a list price, all-cash offer on the house yesterday. Many thanks to our …

Nov 25, 2012: First-Time Home Seller Since my wife and I are buying a new place together, I’m selling the townhouse we currently live in. If you’re looking to move into Montgomery County, …

Nov 15, 2012: How to Be Black I finished reading this provocatively-titled book a couple of days ago. I expected Baratunde Thurston’s memoir to have its funny moments (he worked …

Oct 8, 2012: Visual Studio & TFS Behavior Tweaks One of a few long-running annoyances I’ve had with every version of TFS is one of the default behaviors on check-in. The default is to resolve an open …

Sep 7, 2012: Freedom From Default Color Themes in Visual Studio 2012 I finally joined the ranks of those who’ve installed Visual Studio 2012 this week. The default Light color scheme is way too bright. The Dark color …

Aug 26, 2012: Tim Cook Should Ignore Ars Technica (Almost) Completely I came acrossthis article by Jacqui Cheng and thought I’d add my two cents on each of the suggestions. License OS X. Despite the article’s …

Aug 23, 2012: Help Build a Tesla Museum One of my favorite cartoonists, Matthew Inman, is using his unique brand of humor tohelp raise funds to buy the site of Nikola Tesla’s old lab. As of …

Aug 13, 2012: Introducing AutoPoco I first learned about AutoPoco from this blog post by Scott Hanselman. But it wasn’t until earlier this spring that I had an opportunity to use it. …

May 18, 2012: The Perils of Renaming in TFS Apparently, renaming an assembly is a bad idea when TFS is your version control system. Earlier this week, one of my co-workers renamed an assembly to …

May 17, 2012: Please Learn to Code (Continued) A couple days ago, I wrote a post on why Coding Horror is wrong to suggest people shouldn’t learn to code. Here’s a much better post on the same …

May 15, 2012: Please Learn to Code I came across this post from Jeff Atwood in my Twitter feed this morning. It even sparked a conversation (as much of one as you can have 140 …

Apr 27, 2012: Thanks Again StackOverflow! About a month ago, I wrote a brief post about starting a new job. In it, I tipped my hat to StackOverflow Careers, for connecting me with my new …

Apr 23, 2012: From Web Forms to MVC In the weeks since my last post, I’ve been thrown into the deep end of the pool learning ASP.NET MVC 3 and a number of other associated technologies …

Mar 26, 2012: New Gig Tomorrow will be my first day with FEi Systems. They design, build and maintain healthcare IT systems, including health information exchanges and …

Mar 16, 2012: Retraction Just came across this story relating to my January 25th blog post on Mike Daisey’s story of his visits to factories in Shenzhen. As it turns out they …

Feb 15, 2012: Inserting stored procedure results into a table Working with one of my colleagues earlier today, we found that we needed a way to store the results of a stored procedure execution in a table. He …

Feb 3, 2012: Saving Changes is Not Permitted (SQL Server 2008 R2) We just upgraded our development VMs at work, and I got bitten by one of the more annoying default settings in SQL Server Management Studio again. I …

Jan 29, 2012: A Brief Introduction to LINQPad I presented a brief talk on LINQPad at RockNUG a couple of weeks ago. This post will elaborate on that presentation a bit, since the 30 minutes I had …

Jan 25, 2012: Mr. Daisey and the Apple Factory If you haven’t already heard this episode of This American Life, it’s definitely worth your time. I won’t look at any of my “iStuff” the same way …

Dec 13, 2011: Ninja UI Since yesterday’s post about my goals for next year, I heard from my friend Faisal about a jQuery plugin he’s been working on called Ninja UI. It’s on …

Dec 12, 2011: Another Year Gone It’s annual review time again, which means this year has gone by even more quickly than usual. Filling out my self-assessment was a good reminder of …

Oct 4, 2011: LINQ Aggregate for Comma-Separated Lists of Values A couple of days ago, while pairing with my colleague Alexei on bug fixes to a new feature, we came across a bit of code that attempted to take an …

Jul 25, 2011: AppleScript + RSVP Emails = Weddings Guests Address Book Group I’ve been using Macs as my primary home computers for about seven years now, but hadn’t developed an interest in using AppleScript until very …

May 21, 2011: About that rapture thing It’s May 21, and we’re all still here. Not that I expected a different outcome, but there’d been a lot of buzz in the press lately about the latest …

May 19, 2011: Introducing NuGet Today at work, I gave a presentation on NuGet. I’ve suggested they consider it as an option to ease management of the open source dependencies of our …

May 15, 2011: Practical MVVM Last Wednesday night, I attended a talk at RockNUG on MVVM by Joel Cochran. It’s the best explanation of the Model-View-ViewModel design pattern that …

Mar 4, 2011: Wedding Website Up Here it is: http://ebandscott.tying.the.knot.org/ Thanks again to my friend Sandro for setting this up.

Feb 6, 2011: Ballet This year is the second in a row I’ve gotten to go to a Kennedy Center performance. Last year, my girlfriend (now fiancée) and I went with another …

Feb 6, 2011: .NET Reflector--No Longer Free, But Still Worth It Those of us who registered with red-gate.com after they bought Reflector from its creator, Lutz Roeder, got an e-mail on February 2 saying the next …

Feb 5, 2011: (Finally) Engaged Back on January 14, I turned my girlfriend Ebony into my fiancée :-) The next day, we went cruising for a week in the eastern Caribbean with some …

Jan 24, 2011: Introducing .NET Reflector I gave a presentation on .NET Reflector at the January 12 meeting of RockNUG. I took most of my time demonstrating the product and answering …

Nov 26, 2010: Candied Sweet Potatoes Last month (for Thanksgiving), my dad, sister, a few cousins and I cooked so mom could have a break. The food turned out so well, she asked us to do …

Nov 9, 2010: The problem with exit interviews The biggest problem with exit interviews is that they’re too little, too late. I had an exit interview recently (since I accepted an offer to go …

Oct 20, 2010: Deleting TFS Tasks I changed the state of a TFS task I was working on recently, only to discover the workflow wouldn’t let me return it to it’s prior state. Until today, …

Sep 23, 2010: Filtering Heterogeneous Arrays in .NET One of the bugs I was recently asked to fix for an application required me to determine whether or not to display one of the members of a list. This …

Sep 10, 2010: PowerGUI and .NET Framework 4.0 On my current project, we use PowerShell scripts to automate our UI testing. We’ve been writing and running the scripts in the PowerGUI Script Editor, …

Aug 20, 2010: New MSBuild 4.0 Features My current assignment has me working with the application build again. MSBuild 4.0 got a number of new features which I’m only now getting to take …

Aug 10, 2010: ScrollViewer+ItemsControl vs. ListView One of my most recent tasks at work was determining the cause of slow performance in one part of an application and coming up with a fix (if …

Jul 23, 2010: Bloatware happens when you aren't the only customer This article in Ars Technica reminded me of one of the things I never liked about PCs you bought from Dell, HP, or any major vendor–bloatware. Every …

Jun 29, 2010: My First PowerShell Cmdlet We’ve been using PowerShell to write automated tests of the UI on my current project. One of the tasks I took on today was creating a custom cmdlet to …

Jun 15, 2010: In non-iPhone 4 news Apple stealthily revised the Mac mini. Get the full story here, but the part I think is the most interesting is that they designed in a removable …

Jun 10, 2010: When default settings attack When you first install SQL Server 2008 Express, the TCP/IP protocol is disabled by default. Be sure the protocol is enabled (which requires restarting …

Jun 3, 2010: To Curacao and back I spent the past 7 days vacationing in Curacao with my girlfriend Ebony and another couple we’re friends with. In this post, I’ll talk about how it …

May 21, 2010: Going beyond files with ItemGroup If you Google for information on the ItemGroup element of MSBuild, most of the top search results will discuss its use in dealing with files. The …

Apr 8, 2010: From enthusiast to user My friend Sandro read this Slate piece yesterday and wrote this blog entry in part about enthusiasts and users. I think his concern that today’s …

Apr 3, 2010: An update on SCO Though I wished them dead years ago, SCO still lives. With any luck, this latest court ruling will finally finish them off.

Apr 2, 2010: Adventures in e-commerce I’m working on an e-commerce site for the first time in about 10 years. The site is Trés Spa, a skin care products company in northern California. …

Mar 31, 2010: More on migrating partially-trusted managed assemblies to .NET 4 Some additional searching on changes to code access security revealed a very helpful article on migrating partially-trusted assemblies. What I posted …

Mar 30, 2010: Upgrading .NET assemblies from .NET 3.5 to .NET 4.0 Code access security is one area that has changed quite significantly between .NET 3.5 and .NET 4.0. Once an assembly has been upgraded, if it allowed …

Mar 8, 2010: Why GDP Matters for Schoolkids Planet Money, one of many podcasts I listen to in Beltway traffic, had a great episode recently attempting to explain why GDP is important. The …

Mar 5, 2010: When 3rd-party dependencies attack Lately, I’ve been making significant use of the ExecuteDDL task from the MSBuild Community Tasks project in one of my MSBuild scripts at work. Today, …

Mar 4, 2010: Continuous Integration Enters the Cloud I came across this blog post in Google Reader and thought I’d share it. The idea of being able to outsource the care and feeding of a continuous …

Feb 1, 2010: Set-ExecutionPolicy RemoteSigned When you first get started with PowerShell, don’t forget to run ‘Set-ExecutionPolicy RemoteSigned’ from the PowerShell prompt. If you try to run a …

Jan 20, 2010: Can't launch Cassini outside Visual Studio? This may help ... I’d been trying to launch the Cassini web server from a PowerShell script for quite awhile, but kept getting an error when I tried to display the …

Jan 17, 2010: Can Google Find You? Recruiters use Google. Whether you’re actively seeking a new job or not, it’s important to use this fact to your advantage. My friend Sandro gave me …

Nov 27, 2009: Transforming Healthcare through Information Technology Back on November 20, I attended a seminar at the Reagan Building on how healthcare in the U.S. could be improved through information technology. As an …

Nov 13, 2009: Unit testing strong-named assemblies in .NET It’s been a couple of years since I first learned about the InternalsVisibleTo attribute. It took until this afternoon to discover a problem with it. …

Nov 13, 2009: Figuring Out Google Wave I recently received an invite to Google Wave (thanks Rory). From the few minutes I’ve played with it so far, it seems to be Google’s next offering in …

Nov 2, 2009: A visit to Iowa City Last weekend, I visited my cousin Kevin at the University of Iowa to sit on his Ph. D defense. For the past five years, he’s been working in …

Oct 28, 2009: StackOverflow Dev Days DC In this case, DC = Falls Church, VA. I went to the State Theatre to attend this conference. Considering the cost ($99/person), the conference turned …

Oct 22, 2009: A .NET Client for REST Interface to Virtuoso For my current project, I’ve been doing a lot of work related to the Semantic Web. This has meant figuring out how to write SPARQL queries in order to …

Oct 9, 2009: Adventures in SPARQL If this blog post seems different than usual, it’s because I’m actually using it to get tech support via Twitter for an issue I’m having. One of my …

Sep 23, 2009: Adding File Headers Made Easy One of the things on my plate at work is a macro for adding a file header and footer to all the source files in a Visual Studio solution. The macro I …

Aug 30, 2009: Snow Leopard: Days 1-2 Thanks to a pre-order from Amazon on August 3, a copy of Snow Leopard arrived on my doorstep August 28. The install was uneventful–typical of Mac OS X …

Aug 25, 2009: Random SQL Tricks (Part 2) In my previous random SQL tricks post, I discussed how to generate random alphanumeric strings of any length. A slight variation on that idea that …

Aug 24, 2009: A long overdue upgrade I’m finally running the latest version of WordPress (I’ve been way behind on upgrading). I’d be curious to hear from those of you who visit regularly …

Aug 24, 2009: Build Server Debugging Early in June, I posted about inheriting a continuous integration setup from a former colleague. Since then, I’ve replaced CruiseControl.NET and …

Aug 17, 2009: Random SQL Tricks (Part 1) One of my most recent tasks at work has been generating test data for integration tests of a new application. We don’t have the version of Visual …

Aug 16, 2009: Introducing Doxygen Last Wednesday evening, I gave a presentation on Doxygen at RockNUG. I didn’t actually bother with slides in order to give as much time as possible to …

Jul 30, 2009: Converting MSTest Assemblies to NUnit If you wanted to convert existing test assemblies for a Visual Studio solution from using MSTest to NUnit, how would you do it? This post will provide …

Jun 12, 2009: MSBuild Transforms, Batching, Well-Known Metadata and MSTest Thanks to a comment from Daniel Richardson on my previous MSTest post (and a lot more research, testing, & debugging), I’ve found a more flexible way …

Jun 5, 2009: Detect .NET Framework Version Programmatically If you need to determine what versions of the .NET Framework are available on a machine programmatically, you’d ideally use a C++ program (since it …

Jun 3, 2009: Calling MSTest from MSBuild or The Price of Not Buying TFS When one of my colleagues left for a new opportunity, I inherited the continuous build setup he built for our project. This has meant spending the …

Jun 1, 2009: CruiseControl.NET, MSBuild and Multicore CPUs When I was trying to debug a continuous build timeout at work recently, I came across this Scott Hanselman post about parallel builds and builds with …

May 6, 2009: The unexpected home of IsHexDigit I was about to write a method that checked to see if a character was a hexadecimal value when it occurred to me that I should google for it. I was …

Apr 23, 2009: Implementing Mouse Hover in WPF We’ve spent the past couple of weeks at work giving ourselves a crash course in Windows Presentation Foundation (WPF) and LINQ. I’m working on a code …

Apr 1, 2009: Gotta love this April Fool's Day gag from Google Here’s the e-mail home page. They’ve got a little announcement, technical specs, even a blog with annoying, cutesy music.

Mar 29, 2009: Free Software for Your New Computer If you’ve bought a new PC or Windows laptop recently, it probably came “bundled” with a bunch of free software. It is a near certainty that the …

Mar 29, 2009: Recommended Listening: Derivative Dangers If you want to know how long ago the seeds of the current financial crisis were sown, definitely listen to this episode of Fresh Air. Terry Gross' …

Mar 27, 2009: Sometimes, I really love the web I’m at the airport to pick up a couple of friends, just back from a week in Spain. Adam asked me last week if I could pick him and his fiancée up from …

Feb 23, 2009: Alternative PDF Readers According to an article I got from my boss, there is a flaw in Adobe Acrobat and Adobe Acrobat Readers that will allow hackers to take over your …

Feb 20, 2009: Las Vegas Sites and Attractions Photo Republished One of my Las Vegas photos from a trip last year got picked up by a little online travel guide. I originally posted it on Flickr …

Feb 5, 2009: Microsoft Gets It Wrong Again According to this story, there’s no direct upgrade from Windows XP to Windows 7. Given all the stories of people “downgrading” from Vista to XP, or …

Jan 20, 2009: The rest of the inauguration day story The group of us that went down (my sister and I, plus two of our friends), secured our spot on The National Mall (close to 12th St NW and Madison …

Jan 20, 2009: So close, but so far away We were making great time until we tried to get to L’Enfant Plaza. Even though we caught the first train that showed up, we spent over 20 minutes …

Jan 20, 2009: On the train to downtown We got on the train at Wheaton around 6:40am. There was a bit of a crowd on the platform, but we all got on the train with no problem. Once we got to …

Jan 19, 2009: Headed downtown Of course it’s crazy for me to brave the cold and the crowds to see Obama’s inauguration on a jumbrotron far from the actual swearing-in–but I’m still …

Jan 14, 2009: Windows 7 Beta Here are my brief impressions of it so far: Installation Requires that Vista be on the machine in order to upgrade to Windows 7 Beta. Otherwise, you …

Jan 13, 2009: World of Goo For years I’ve been more of a console gamer (XBox 360) than a computer gamer, but World of Goo is trying very hard to change that. I don’t normally …

Jan 6, 2009: In Search of Wireless Internet Recently, I’ve gotten a couple of questions from family about where they can get wireless internet access. People usually mean wi-fi when they ask …

Jan 2, 2009: Alternatives to Microsoft Office My dad asked me yesterday if there were any free alternatives to Microsoft Office. The one that came to mind right away was OpenOffice.org. Writer, …

Jan 1, 2009: Free Tech Support For family and friends of mine who don’t work with computers, I often act as free tech support. To bring something a little different to this blog in …

Dec 17, 2008: Free Test Data If you find yourself in need of test data (and if you write software for a living, you’ve got that need pretty often), pay a visit to …

Dec 8, 2008: Another use for RSS feeds Caphyon, the vendor of Advanced Installer, has a feed for updates of the software. A brief look at the feed shows a pretty regular schedule of …

Dec 4, 2008: Clever Twitter Client Some googling for Mac OS X Twitter clients revealed this clever one. I wasn’t aware of Fluid, Hahlo, or site-specific browsers (SSBs) before checking …

Dec 3, 2008: Finally joined Twitter Being part of The Borg Facebook wasn’t enough–I joined Twitter a couple of weeks ago. At least so far, it has succeeded in connecting me with the few …

Nov 19, 2008: Comparing XML Strings in Unit Tests Comparing two XML strings is painful. So of course, my current project required me to come up with a way to do it in .NET. I could only use version …

Nov 11, 2008: Flu tracking, courtesy of Google According to this story in the New York Times, Google can detect regional flu outbreaks up to 10 days ahead of the Centers for Disease Control and …

Nov 10, 2008: Converting File URIs to Paths I spent most of this morning looking for a replacement to Application.ExecutablePath. The reason for this was because certain unit tests that depended …

Nov 5, 2008: It's morning again in America The U.S. is certainly a different place today than it was yesterday. The commentary I’ve seen that sums up best just how different things are is this …

Nov 4, 2008: Election Day I got in line a little over 30 minutes after the polls opened. According to the poll worker who came out to see how everyone is doing, the line was …

Oct 29, 2008: Mark Cuban, Keeping an Eye on the Bailout If you’ve been listening to NPR’s Planet Money, you already know about BailoutSleuth.com. But in case you don’t, it’s a creation of Mark Cuban (owner …

Oct 21, 2008: My Two Cents on Reinventing the Wheel Yesterday, I came across a spirited defense of reinventing the wheel in a recent post from Jeff Atwood. Dare Obasanjo stands firmly in the “roll your …

Oct 21, 2008: Why Performance Reviews Don't Work This morning, I came across this interesting post about why performance reviews don’t work. The alternative that stood out was weekly one-on-one …

Oct 10, 2008: More Financial Crisis Info I heard about this site on the financial crisis during an episode of the Planet Money Podcast. They interviewed Simon Johnson (one of the co-founders) …

Oct 10, 2008: Understanding collateralized debt obligations The best explanation of collateralized debt obligations (CDOs) I’ve heard so far comes from the latest episode of the Planet Money podcast. I was …

Oct 9, 2008: Bailout Price Tag Continues Rising According to this story in the Wall Street Journal (it’s subscriber-only, sorry), AIG just got another $37.8 billion from the Federal Reserve. That …

Oct 8, 2008: More Financial Crisis Education The reporters who did the Giant Pool of Money story have followed up with Another Frightening Show About the Economy. Like the first show, this one is …

Oct 1, 2008: Planet Money Podcast The “Giant Pool of Money” episode of This American Life I blogged about in May has apparently spun off an entirely new podcast called Planet Money. If …

Sep 25, 2008: Grand Canyon, North Rim After the Antelope Canyon tour, we pushed on to the north rim of the Grand Canyon. The north rim doesn’t get the kind of attention that the south rim …

Sep 25, 2008: Antelope Canyon This morning, we rode into Navajo Nation land to see Antelope Canyon. It’s one of a number of slot canyons in the area. Unlike other canyons, this one …

Sep 25, 2008: Arches National Park A couple of days ago, we left Torrey and headed for Castle Valley, UT. Our purpose there was to visit Arches National Park, especially the famous …

Sep 23, 2008: Bryce Canyon After breakfast at the Spotted Dog Cafe, we bid farewell to Springdale, Utah (and an excellent hotel, the Desert Pearl Inn) and headed to Bryce …

Sep 21, 2008: Zion National Park We spent most of the day inside Zion National Park (in Springdale, Utah). The centerpiece of it is a large canyon made mostly of sandstone. Even …

Sep 17, 2008: Need An Icon For Your Application? Visit ASP.NET Icons and download what you need.

Sep 15, 2008: Stack Overflow is Live Stack Overflow is a great new programmer Q & A site from Jeff Atwood and Joel Spolsky. I (and about 500 other developers) got a 5-week headstart on …

Sep 12, 2008: Now I'm Blogging for Work Too In addition to the entries I post here, I’ve started blogging for my employer, along with some of my colleagues. If you’re interested in blog posts …

Sep 7, 2008: New Toy Vacations and holidays are my primary excuses for buying new toys. Since I’ve got a trip to the American southwest (at least the Utah and Arizona …

Sep 3, 2008: Granting full permissions to all tables and views in a database One of my assignments is to write a script that will grant CRUD (create, read, update, delete) permissions to a database role. SQL Server Management …

Sep 3, 2008: First Impressions of Google Chrome I started using Google Chrome (hereafter referred to as just “Chrome”) yesterday to see how it compared with Firefox 3 (my current browser of choice). …

Sep 2, 2008: Google Gives Us a Browser Even though Google Chrome is open source, I wonder what will happen to Firefox (my current browser of choice). Its extensions (like FlashBlock) and …

Aug 26, 2008: Reflector Update When I originally posted about the purchase, Red Gate hadn’t added a product page to their site yet. Today’s blog post from Richard Hundhausen …

Aug 25, 2008: smallestdotnet.com Scott Hanselman came up with this site that tells you what version of .NET you’ve got and your shortest path to .NET 3.5. I’ve tried it from a couple …

Aug 20, 2008: Red Gate Buys Reflector I just came across the news this morning. I used Reflector a lot when I was first learning .NET. Lately, I’ve been using it with the Graph and …

Aug 15, 2008: Other People's E-mail Lately, I’ve been getting e-mail at my Gmail account that are clearly intended for other people. I thought “Scott” and “Lawrence” were fairly common …

Aug 15, 2008: My iPhone Review I picked up a white 16GB iPhone 3G on July 13. After a month of use, I can add my 2 cents to the tons of reviews already out there. Battery Life I …

Aug 14, 2008: An Alternative to NUnitForms I first heard about Project White from someone at the Agile 2008 conference last week. I haven’t had a chance to play with it yet, I’m very curious to …

Jul 24, 2008: More frustration with Alienware Today I come into the office to work, and find that my machine blue-screened overnight. I figured it was Vista acting up (again), so I restarted. Once …

Jul 21, 2008: XML Schema Gotcha This is probably old hat to XML experts, but it’s new to me–the default values of the minOccurs and maxOccurs attributes of <xs:element>…</xs:element> …

Jul 3, 2008: My VW Passat and the Check Engine Light I took mine in for service this week for its regular 5000-mile service, and a check engine light that has been going on and off intermittently for the …

Jun 26, 2008: Writing the contents of a string to a text file I should have assumed this existed, based on Ed Poore’s comment on this post, but here’s the actual command: System.IO.File.WriteAllText There are …

Jun 23, 2008: NDbUnit Revisited I first wrote about NDbUnit back in 2006. Unfortunately, it doesn’t appear much new has happened with the project since then. The current version …

Jun 18, 2008: Loading text file contents into a string While working on some XSD validation code today, I found that I needed to load a couple of text files into strings to unit test. I’d forgotten how I’d …

Jun 17, 2008: A couple of "old-school" CS principles Robert Martin is a guy our CEO and architects really respect when it comes to software design and development. Somehow, I managed to not have heard of …

May 31, 2008: iPhoto Archiving When I bought my MacBook Pro a couple years ago, I didn’t get the largest hard drive available for it (in retrospect, a mistake). Between my music …

May 28, 2008: The Giant Pool of Money For a great explanation of the current meltdown in mortgages, definitely check out this podcast. The two reporters put together a narrative that …

May 14, 2008: Hello WordPress 2.5.1 Finally upgraded to the latest version, so I figured I’d change themes too. The upgrade process turned out to be far easier than I expected. If I …

May 7, 2008: Strongly-typed DataSets in Subversion Strongly-typed datasets are the default option for creating a data access layer (DAL) with the various .NET versions of Visual Studio. From the XSD …

Apr 21, 2008: Paintball I spent part of my Sunday running through the woods shooting at friends and strangers. The place: Outdoor Adventures Paintball. The occasion was a …

Apr 13, 2008: Macbeth, Teller-style I saw this production of Macbeth this afternoon with my friends Jen and Alban. We were rewarded for our wait in the freezing cold (for standing room …

Apr 6, 2008: Upgraded to Leopard I installed it last Wednesday. My first upgrade attempt failed, so I paid a visit to the Tyson’s Corner Apple Store to get some help from the Genius …

Apr 2, 2008: Changing Primary Keys from "int" to "uniqueidentifier" I’m in the process of doing this for a project that uses Microsoft SQL Server. One of the “gotchas” I came across was that once you’ve switched from …

Mar 31, 2008: Back to the trenches Instead of management and code, I’ll just be writing code (at least for now). Today, I started a new job at a small consulting firm in Virginia with a …

Mar 28, 2008: Stockholm, Sweden Yesterday, before our concert at Ekebyholmsskolan, we got to tour Stockholm. We arrived there from Finland via a Viking Line ferry named Isabella. Two …

Mar 26, 2008: Scandinavia Tour I’m writing this from a school dorm at Toivonlinna, a Seventh-day Adventist school in Finland. I’m one of a number of chaperones for a high school …

Mar 19, 2008: A More Perfect Union Barack Obama spoke at length yesterday on the issue of race in general and his former pastor in particular. If you haven’t already seen and heard the …

Mar 18, 2008: $1.67 That’s how much one (1) euro cost me yesterday when I was converting currency with Chevy Chase Bank for an upcoming trip. You know things are bad when …

Mar 17, 2008: The truth about usability I came across this via Daring Fireball today. There’s a lot more than a grain of truth to what it suggests about how what most user interfaces look …

Mar 16, 2008: Time to buy an iPhone? I went to the barbershop on Friday. During my haircut, I ask my barber how he likes the iPhone. He doesn’t just like it, he loves it. I got quite a …

Mar 13, 2008: Refactoring Last night, I went to a presentation on refactoring by Jonathan Cogley. My notes are below: refactor - improve the design of existing code …

Feb 18, 2008: Wireless Mighty Mouse I saw one of these as a clearance item at MicroCenter yesterday, so I picked one up to try it out. In the tiny bit of time I’ve used it so far, the …

Feb 12, 2008: Taxes For the first time in a number of years, I had a professional do my taxes. I’d been a TurboTax Online user for the past 6 years, but got a referral …

Feb 8, 2008: Null Coalescing Operator I didn’t know about this C# 2.0 operator (??) until ReSharper suggested it as a replacement for a particular use of arithmetic if (?:) that I’d added …

Jan 30, 2008: Fixing Computer Science I’ve been reading a lot of complaints about the current state of computer science education lately. This post makes a reasonable attempt at …

Jan 18, 2008: TeamCity 3.0 Now there’s a freeware version of it that supports up to 20 users and build configurations. We were looking at setting up CruiseControl.NET again for …

Jan 17, 2008: Apple Stuff iPod nano The iPod I mentioned yesterday is the 4th (!) one I’ve owned. Each of the previous ones was sold to help fund the upgrade to the next one. I …

Jan 15, 2008: Birthday I turned 34 today. I suppose I’m officially in my “mid-30s” instead of my early 30s now. Other than that, it doesn’t seem different at all from any of …

Jan 9, 2008: The trouble with using strongly-typed datasets Apparently, if your database-driven website is under heavy concurrent user load, the Adapter.Fill method in the .NET Framework (called by code …

Jan 1, 2008: Welcome to 2008 If a single word could define my 2007, it would be “travel”. I suspect it’s the biggest reason I enjoyed the year. The places I had the chance to …

Dec 27, 2007: Digital Cameras, and another Adobe Lightroom Plug This time, from a much higher-profile blogger than me–Tim Bray. The bulk of the post is actually about digital SLRs (DSLRs), more specifically, Bray’s …

Dec 25, 2007: Happy Holidays I wish all my readers a happy holiday season!

Dec 24, 2007: Lightroom: Day 24 My earlier plan of a longer series of posts on the ins-and-outs of Lightroom was devoured by work, holiday stuff, etc. In this post, I’ll talk briefly …

Dec 23, 2007: Sight and Sound Theatre My sister and I spent the weekend with my parents and an aunt to watch the Christmas shows at Sight and Sound Theatre, in Strasburg, Pennsylvania. We …

Dec 20, 2007: Are Exceptions Always Errors? It would be easy enough to assume so–but surprisingly, that’s not always the case. So the following quote from this post: "If there's an exception, …

Dec 7, 2007: SourceForge to the Rescue I’d been hunting around for awhile trying to find a tool to automatically convert some .resx files into Excel so the translation company we’re using …

Dec 7, 2007: Google Webmaster Tools I just started playing with Google Webmaster Tools yesterday. I was very interested to find out where this blog has been showing up in search results. …

Dec 5, 2007: Aftermath: The Failure of Virtual Case File The FBI awarded Lockheed-Martin (my former employer) the lead role in implementing Sentinel, a follow-up effort to the failed VCF project, in March …

Dec 5, 2007: Lessons Learned: The Failure of Virtual Case File I came across this article about the failure of the Virtual Case File project about a week ago. I read things like this in the hope of learning from …

Nov 30, 2007: .NET Developers Search The latest podcast of Hanselminutes mentioned a custom search engine focused on .NET topics. It’s using Google Custom Search, and at least for a …

Nov 30, 2007: Lightroom: Day 1 If you love iPhoto, I warn you–stop reading now. Once you read even a little about what Adobe Lightroom can do, you’ll want to try it. Once you’ve …

Nov 26, 2007: URL aliasing After dealing with a few of the gigantic URLs to SharePoint documents in e-mail, a custom version of TinyURL seems like a good idea. It looks like …

Nov 21, 2007: Outlook Lookout While I wait for Google to fix their desktop search bug, I’m using Lookout (version 1.2.0.1924) to search Outlook. I was under the distinct impression …

Nov 21, 2007: Google Desktop Bug It looks like Google Desktop 5.5 has a bug that prevents users from opening forwarded e-mail attachments. There are more details in this Google Groups …

Nov 20, 2007: A brief note on version control, labeling, and deployments One thing I didn’t realize about CruiseControl.NET until recently was that it automatically labels your builds. It uses a ... naming scheme. The way …

Nov 7, 2007: Exposing InnerException This week, an application I work on started logging an exception that provided no help at all in debugging the problem. My usual practice of running …

Nov 6, 2007: App_Code: Best In (Very) Small Doses When I first started developing solutions on version 2.0 of the .NET Framework, I saw examples that had some logic in the App_Code folder. For things …

Oct 31, 2007: First earthquake I was at the San Jose Airport waiting on a flight to Los Angeles when this earthquake hit. It didn’t register with me that an earthquake was happening …

Oct 28, 2007: Chocolate Sunday at Cacao Anasa I spent a few hours this afternoon making chocolate at the Cacao Anasa kitchen. My friend Peter invited me to the third of these events since I’m in …

Oct 24, 2007: Defending debuggers (sort of) I came across this post about debuggers today. I found it a lot more nuanced than the Giles Bowkett post on the same topic. The part of the post I …

Oct 18, 2007: What tests are really for Buried deep in this Giles Bowkett post is the following gem: "Tests are absolutely not for checking to see if things went wrong. They are for …

Oct 12, 2007: Quick fix for "Failed to enable constraints" error If you use strongly-typed datasets in .NET, you’ve encountered the dreaded “Failed to enable constraints …” message. I most recently encountered it …

Oct 11, 2007: Multiple meanings of test-driven development This Roy Osherove post surprised me because I hadn’t been aware of so many different interpretations of the idea before. Because I’ve always believed …

Oct 10, 2007: Reactions to inherited code This entertaining Phil Haack post on inherited code definitely tells the truth when it says: "Here’s the dirty little secret about being a software …

Oct 9, 2007: Between in T-SQL isn't truly inclusive for dates I’d forgotten this when writing a stored procedure to provide access to log entries in a database table. This older post describes the problem, and …

Oct 5, 2007: Theory D or Theory P? Earlier today, I came across this excellent post by Reginald Braithwaite on the management of software development. It does a great job of explaining …

Oct 4, 2007: I really hate SQLDataSource What I said about hating ObjectDataSource doesn’t count. SQLDataSource is worse. At least ObjectDataSource gives you error messages when it isn’t …

Sep 26, 2007: Don't forget to Google prospective hires One of my colleagues reminded me of that today. The developer we’re interviewing tomorrow was the #1 result from Google when I searched on his name, …

Sep 26, 2007: NCover goes corporate I was on vacation when this happened, but NCover has become a product you pay for. The rationale for the change is a fair one, and I’m impressed by …

Sep 25, 2007: Lessons from failure It’s an older Reg Braithwaite post, but an excellent one. His four most important causes of failure are all painfully familiar. The paragraphs he …

Sep 20, 2007: Back from vacation While I haven’t made much headway on my other four resolutions for 2007, I just accomplished the fifth one–a two-week vacation. From September 5-19, I …

Aug 30, 2007: I hate DTS I’ve spent a good chunk of this week trying to revise some DTS packages to account for changes in how MapQuest provides access to data they’ve …

Aug 30, 2007: Windows Software "Best Of" Lists Scott Hanselman updates this list every year. I use 4 of his top-10 utilities on my work laptop (my personal machine is a Macbook Pro). I use …

Aug 27, 2007: Universal vs. Apple on DRM-free Music A very interesting take on Universal offering DRM-free music directly instead of through iTunes. I think the writer is on target in describing the …

Aug 24, 2007: Improving developers Scott Hanselman posts a number of great tips for improving development teams. The technical brown bag idea is one we’ve been following at work since …

Aug 22, 2007: To rewrite, or not to rewrite? This question comes up rather often in my job, and this post by Adam Turoff answers the question by including “when” as a variable. In short, the …

Aug 21, 2007: Leading by example I found this post on technical leadership particularly useful because it’s my role at work. Humility, discretion, tact, and willingness to “walk the …

Aug 15, 2007: No parameterless constructor defined for this object. This error message started showing up during testing of some code changes I made to an application. It took me awhile to figure out precisely what the …

Aug 13, 2007: Die patent troll, die! Thanks to Judge Dale Kimball, we may finally be rid of SCO. Since he ruled that they never owned UNIX patents, they owe Novell 95% of the money they …

Aug 13, 2007: Refactoring An excellent post by Julian Bucknall of Developer Express on refactoring–more specifically the eight refactorings he uses most. Of the ones he names, …

Aug 9, 2007: SQL Server Table Properties I needed a T-SQL statement to get the created date of a couple of tables as part of a project. One of my colleagues came up with this query: SELECT …

Aug 6, 2007: Jeremy D. Miller on Software Teams His top three preferences in brief: internalized discipline over externally-enforced discipline coaching over enforcement collaboration over …

Aug 3, 2007: Is Fit Testing Dead? Jeremy Miller asks that question in this post. I haven’t had a chance to use it on any projects, but I really like the idea of customer-facing tests. …

Aug 3, 2007: Implementing IDisposable One of the FxCop rule violations I found in one of my projects had to do with IDisposable not being implemented. My search for examples of how to …

Jul 31, 2007: Comma-delimited strings in SQL with COALESCE I came across a nice how-to post this morning. When it comes to databases, I’m a fan of anything that eliminates the need to use cursors.

Jul 30, 2007: ALT.NET-->NOT.NET? I came across this James Avery post via Mike Gunderloy’s blog. Avery attempts to make a similar point to one Martin Fowler puts forward about the best …

Jul 30, 2007: Strongly-typed datasets and queries without matching select clauses I learned an annoying lesson about these late last week. I’d created the dataset by dragging and dropping the necessary tables from SQL Server in …

Jul 18, 2007: Programming Language Wars Scott Westfall, a member of the SlickEdit development team, weighs in with three “theorems of programming languages”. The second theorem (If …

Jul 17, 2007: Subversion and Team Foundation Server There’s a Codeplex project that enables developers to use their Subversion clients with Team Foundation Server (TFS). It’s certainly an interesting …

Jul 16, 2007: Ruby on Microsoft This piece by Martin Fowler interests me more for his contention that the best technical leaders are abandoning .NET than for what he writes about …

Jul 13, 2007: "Rails.NET" Revisited It’s been almost a year since I learned about the .NET Action Pack. Since then, the project has changed names (to SubSonic) and switched to using …

Jul 11, 2007: Fun with Settings.settings Apparently this is where Visual Studio 2005 stores connection strings when you add strongly-typed datasets in an application. Even though I had an …

Jul 2, 2007: My 2 cents on the iPhone This Sunday’s Opus comic strip captures the hype perfectly. I did get to play with one for a few minutes at an Apple store in Maryland yesterday. It …

Jun 25, 2007: Unlocking Value at Microsoft I came across this article, via a post from Mini-Microsoft. I wouldn’t necessarily expect a software product manager to be able to write code. I would …

Jun 21, 2007: Validation for Windows Forms I don’t do much WinForms work. So when I was trying to find out how to get the equivalent of ASP.NET validator controls for WinForms, this article by …

Jun 19, 2007: VSS Shadow Folders We still use Visual SourceSafe at my job for version control. I inherited the administrative duties (for one VSS database and a TFS installation) …

Jun 17, 2007: .NET Utility Classes I just came across this great post on overlooked .NET utility classes. I prefer to buy functionality or use open source rather than build from …

Jun 14, 2007: Guiding principles for developers This list comes courtesy of Patrick Cauldwell, an architect at Corillian Corp. I’m definitely in favor of most of their list, especially test-driven …

Jun 13, 2007: Slimming down the FxCop rule set I asked a group of consultants currently working in my office for advice on which FxCop rules were actually applicable to our environment. One …

Jun 12, 2007: Safari on Windows I’m trying it out on my laptop at work to see how I like it (I’m all Mac at home now). In regular use, the speed advantage Safari is supposed to have …

Jun 11, 2007: Index Seeks versus Index Scans We were pointed to this blog entry by one of the DBAs at work today. I didn’t fully understand the difference before I read this post. The bottom …

Jun 11, 2007: Use code coverage Eric Sink wrote this post in favor of code coverage. I wasn’t terribly familiar with the concept before two years ago, and my current job is the first …

Jun 8, 2007: Requirements Eric Sink’s post on requirements is the best and most concise treatment of the subject I’ve read yet. The document vs. database treatment of …

Jun 8, 2007: TFS: Scenario Coverage Analyzer We use TFS at work, so I found this blog post on scenario coverage rather interesting. I especially liked the Project Traceability Matrix which …

Jun 8, 2007: I hate ObjectDataSource They’re ok if all you want to do is display data in a GridView control (and sort it, page it, etc). They become a pain in the neck the moment you …

Jun 3, 2007: A use for XCode that has nothing to do with writing software I came across an old MacWorld tip while searching for a quick way to compare an iTunes folder on a backup drive with one on my new laptop. FileMerge …

Jun 1, 2007: Richard Stallman on Software Patents I came across this opinion on software patents via the programming reddit. It makes a great for why software patents are a problem without even …

May 23, 2007: Quick Data Access Layer While trying to find information on what exceptions a table adapter could throw, I came across this blog post from Scott Guthrie on how to build a …

May 22, 2007: The Obsolete Attribute One of the consultants I work with told me about an alternative use of the Obsolete attribute last week. Its original intent was to identify methods …

May 18, 2007: Don't Derive from ApplicationException According to this blog entry (or rather, the annotations), deriving from Exception is the correct course to take. ApplicationException apparently …

May 17, 2007: Hackers and Fighters I found this post on "street programmers" and computer scientists quite interesting because I manage a staff where the former outnumbers the latter …

May 16, 2007: .NET Progress Bar I’d managed to avoid all .NET WinForms work of any consequence until today. We’ve assigned one of our developers to fix an application in need of a …

May 16, 2007: Microsoft vs. Open Source--Don't Worry That’s the gist of this rather comforting post at groklaw.net about Microsoft’s claims of Linux patent infringement. It baffles me that a company …

May 3, 2007: UML Sequence Diagrams Intro I came across this link on UML sequence diagrams via Mike Gunderloy’s blog. While the site is pitching a product (TraceModeler), it does a nice job of …

Apr 23, 2007: Another MacBook Pro Owner I picked up my Intel Mac last week. It will soon replace the Mac mini I bought in February 2005, and the Dell PC I bought a couple of years before …

Apr 19, 2007: Resetting passwords with .NET membership provider Say you have a user with no password question and answer. It turns out that calling ResetPassword() on that user will throw an exception. There’s an …

Apr 18, 2007: Classic OO Anti Patterns I started reading programming.reddit.com not long ago. Today, I came across Classic Oo Anti Patterns. It does a great job of describing many of the …

Apr 18, 2007: GUID vs. Identity Column for Primary Keys From the time I started using databases (Sybase 10, Microsoft SQL Server 6.5), I’d always used identity columns for primary keys in tables. So when I …

Apr 16, 2007: Recursive FindControl with Generics Came across this via Larkware. I’ll have to make sure this code finds its way into our custom base pages.

Apr 4, 2007: Unit testing framework for BizTalk solutions I didn’t know such a thing existed before today, but thanks to a couple of consultants in my office, now I do. The cleverly-named BizUnit is available …

Mar 30, 2007: Unit testing assemblies with internals How do you unit test an assembly if the vast majority of its methods are declared “internal” (in C#)? Before today, I had no idea. Fortunately for me, …

Mar 21, 2007: A rant on programmers who can't program I came across this post today and wasn’t sure what to make of it. In my current job and my previous one, interviewing potential hires for programming …

Mar 13, 2007: Working with virtual machines A few weeks ago, my employer updated the RAM on a bunch of our machines to 2GB. The reasons was so we could do our development using virtual machines. …

Mar 7, 2007: What Makes a Good Software Developer? TSS.NET posed this question in one of their newsgroups on March 1. Here are the comments I added to the thread: - They only write what they need to. …

Mar 5, 2007: App_Offline.htm I came across a couple of useful posts from Scott Guthrie about App_Offline.htm. This page appears and disappears automatically when the “Publish Web …

Mar 5, 2007: The Honest Boss Some friends of mine on a mailing list I belong to are having an interesting dialogue on ways to deal with co-workers when they make mistakes. One of …

Feb 22, 2007: SQL Server Cursors Personally, I dislike them. I avoid using them whenever possible. But I came across this excellent post that talks about cursors, alternatives to …

Feb 21, 2007: Getting rid of ThreadAbortException We came across this on one of my current projects. It didn’t prevent the application from working, but I didn’t want a bunch of instances of it in our …

Feb 19, 2007: ApexSQL Diff I first heard about this tool from my friend Greg at work. I’ve been using it the past couple of weeks now as a free trial and it’s awesome. Compare …

Feb 15, 2007: Daimler-Chrysler: Another Failed Merger? Today’s news brings word that Daimler may be looking to break up with Chrysler. I find this particular merger interesting because it came up more than …

Feb 11, 2007: Short circuiting in .NET Last week revealed an interesting difference between C# and VB.NET. C# operators like “and” (&&) and “or” (||) do it automatically. The VB.NET …

Feb 1, 2007: New Monitor (At Last) I’ve been using a 19" Hitachi CM751 monitor for a long time–until today. FedEx delivered a refurbished 24" widescreen from Dell this afternoon. Even …

Jan 31, 2007: Agile vs. Waterfall It seems clear enough to me which approach is the best way to develop software, but not everyone in my office seems to agree. So I thought I’d do a …

Jan 30, 2007: Visual Studio 2005 Default Browser Changes I’m a big fan of Firefox. So it’s the default browser on every machine I have access to. Unfortunately, Visual Studio 2005 didn’t continue using IE as …

Jan 24, 2007: Coding Guidelines Another free e-book, this time on C# and VB.NET development standards. Fair warning, you do have to provide an e-mail address to download it. We’ve …

Jan 23, 2007: Free .NET Book Charles Petzold has written a book titled .NET Book Zero. It’s a guide to implementing application in C# targeted at C and C++ programmers. I haven’t …

Jan 19, 2007: Sandcastle Rant I came across this excellent post on the problems with Sandcastle, the Microsoft offering for generating help documentation for .NET 2.0 assemblies. …

Jan 15, 2007: More on VSI files A bit of “googling” turned up these links: An MSDN entry on the subject This link to a Power Toy for automating the creation of VSI files

Jan 15, 2007: Visual Studio Templates for Test-driven Development I came across this blog post earlier today via Mike Gunderloy’s Larkware.com. One of the comments requested .VSI files (the templates are for NUnit …

Jan 10, 2007: India Skills Gap I came across this article in one of the e-mail newsletters I subscribe to. It’s highly relevant to my current role because we use a lot of offshore …

Jan 10, 2007: Yet another xUnit testing framework I wasn’t aware of the existence of SPUnit until a consultant mentioned it yesterday. I’m not sure how deeply I’ll look into it (if at all) because of …

Jan 4, 2007: Visual SourceSafe Tidbit I administer my employer’s VSS and Team Foundation Server (TFS) instances as part of my job. As a first-time administrator of these sorts of systems, …

Jan 3, 2007: The SHAPE command is the bane of my existence I inherited some classic ASP code not long ago that needed some enhancement. The look-and-feel of the site is pretty nice, but under the covers …

Jan 2, 2007: 10 Years I was in the middle of writing my self-evaluation for work (review time is coming up) when I realized that the end of 2006 marked my 10th year of …

Jan 1, 2007: Goodbye 2006, Hello 2007 First, to my readers (all three of you), I hope that 2006 treated you well and that 2007 is even better. 2006 treated me pretty well as years go. I …

Dec 14, 2006: More on databases and business logic This particular entry in the “forever war” of whether to use object-relational mapping or stored procedures does a better job than most in these ways: …

Dec 13, 2006: Source Code Control I came across this post from Joel Spolsky last week (though I’m just now getting around to blogging about it). We’re using Team Foundation Server for …

Dec 4, 2006: Common causes of the System.NullReference exception I came across this blog post today while researching a problem with one of our applications. The most interesting thing I found about this article was …

Dec 3, 2006: Working with IT agencies I have to deal with IT agencies a lot more now as a software development manager than I ever did in previous roles. So coming across a blog post …

Nov 29, 2006: Training IT managers I came across this post in a rare break between meetings. Since I’m an IT manager now, I found it good reading (and a good ego check as well).

Nov 19, 2006: The right penalty for breaking a software build Maybe I should institute this at my office on Monday.

Nov 19, 2006: String.Format is your friend One of the consultants that works for me was trying to figure out the best way to format strings for writing messages to the event log for a Windows …

Nov 5, 2006: SQL Injection It’s one thing to know that SQL injection is bad, and quite another to have some stats to back it up. I came across a Michael Sutton blog post on the …

Oct 30, 2006: NDbUnit I’ve been a big fan of test-driven development (and unit testing) since I first learned about it a few years ago. It wasn’t until this month that I …

Oct 30, 2006: Home computer backups Some friends of mine in California have been discussing backup strategies over the past few days. They came across a post by Jeremy Zawodny on using …

Oct 11, 2006: Continuous Integration The practice is well-defined in a couple of articles on Wikipedia and on Martin Fowler’s website. But as long as I’ve been reading about this best …

Oct 5, 2006: Stop users from double-clicking Submit buttons I came across this tip via 4GuysFromRolla.com. It’s some JavaScript to disable a form’s Submit button once it’s pressed. This extended post talks …

Sep 28, 2006: Leaving Lockheed Martin I’ve left to join APS Healthcare as a manager of software development. My last day at Lockheed Martin was September 20. In nearly two years at …

Sep 1, 2006: Aston-Martin & Jaguar Changing Hands There’s been quite bit of buzz in the press about the possibility of Aston-Martin (and possible Jaguar and Land Rover) being sold lately. It interests …

Aug 29, 2006: Why Unit Test I came across a great post on unit testing today that provided not just why to unit test, but what to unit test. Differentiating software into …

Aug 24, 2006: MyGeneration and Gentle.NET After last week’s post about the stored procs vs. ad-hoc SQL debate, I decided I’d take a look at MyGeneration and Gentle.NET if I could think of the …

Aug 22, 2006: Inspired by Ruby on Rails Instead of vegging out on TV after work today, I decided to veg out on the web. Between reading and IM I managed to kill about 2 1/2 hours before I …

Aug 22, 2006: Visual Studio 2003 Service Pack 1 Somehow I completely missed this announcement about the Visual Studio 2003 service pack being released. Our group at Lockheed Martin won’t be …

Aug 15, 2006: Stored Procedures vs. Ad-hoc SQL Redux I’ve written on the never-ending stored procs vs. ad-hoc SQL debate before, but there are quite a few more perspectives on both sides of it than I …

Aug 15, 2006: C# versus VB.NET I decided to post on this topic today because of an article I saw on the printer at work this morning. You can check out the entire article yourself …

Aug 14, 2006: Open Source on the .NET Platform (part 2) Back in April, at the end of my first post on the topic of “open source .NET”, I’d written that the next post in the series would be about Community …

Aug 10, 2006: Downtime I haven’t blogged in awhile since finishing my latest project, pushingback.com. My employer sent me off to Cognos 8 training last week. I’ve spent the …

Jul 26, 2006: ASP.NET 2.0 Membership Today I’ve been spending a bit of time fiddling around with Visual Studio 2005, particularly the ASP.NET 2.0 membership functionality. When I visited …

Jul 18, 2006: Effective Bug Reporting This has been a real problem at work lately. I’ve decided to write a document to send to people who report bugs to try and stem the tide of useless …

Jul 13, 2006: Community Server 2.0 Quick Image Buttons The blog I’m building for a client at work needed an image button to trigger searches instead of the standard link button. After my ill-advised …

Jul 7, 2006: A "Most Viewed Blog Posts" control for Community Server 2.0 The Code Project is one of my favorite sources for finding out how to do things on the .NET platform. Since my blog was down for a bit a couple days …

Jun 23, 2006: Adding static pages to Community Server 2.0 I was actually searching for information on how to add dynamic pages to a Community Server 2.0 installation when I came across this post. While I …

Jun 16, 2006: Changing File Upload Limits in Community Server 2.0 I wanted to see how much effort it would take to replace this RSS feed with a CS 2.0 blog. It’s currently being generated by an old ASP application …

Jun 12, 2006: Browster I came across a story about this nifty little plug-in just this morning in MIT Technology Review. While the story was about companies trying to change …

Jun 8, 2006: Windows Vista: The Incredible Shrinking OS According to this article, Windows Vista is losing yet another feature. Reading further, PC-to-PC Sync doesn’t sound like much of a feature, since it …

Jun 7, 2006: RSS Publishing It shouldn’t be a big deal at all with apps like Community Server 2.0 or WordPress available, but budget and/or personnel constraints often conspire …

Jun 5, 2006: Dad wants an MP3 player, but not an iPod :-( Since I own 2 iPods (the 2GB nano that came with my new Passat, and a 20GB I bought myself), I hope to dissuade him from a non-Apple music player …

Jun 1, 2006: ASP.NET Calendar Customization My latest assignment is to help redesign this website into a true blog for the office of the drug czar. We’re using Community Server 2.0, and one of …

May 31, 2006: A general theory of design “Design consists of creating things for clients who may not know what they want, until they see what you’ve done, then they know exactly what they …

May 30, 2006: Community Server 2.0 Patching Telligent sent out an e-mail last Friday afternoon about a critical security patch. These were the patch instructions: Directions for installing the …

May 30, 2006: Paging in Microsoft SQL Server stored procedures Today I found out that an old boss of mine at Ciena Corporation has a blog (thanks to Plaxo). I learned a lot about ASP.NET, C#, and Plumtree through …

May 24, 2006: IntelliSense for SQL Query Analyzer Red Gate Software is giving away a tool called SQL Prompt until September 1, 2006. If you work with SQL Server at all, definitely visit Red Gate and …

May 22, 2006: Amazon "1-Click" Patent Challenge According to this article, Amazon’s patent is being reviewed because it looks like the U.S. Patent & Trademark Office granted a similar one 18 months …

May 19, 2006: Stored Procedures vs. Ad-hoc SQL I saw this insightful article on the subject in a “most popular articles” list. The author, Douglas Reilly, acknowledges at the beginning of the …

May 16, 2006: Apple's business model beating Microsoft's So says Walt Mossberg, the man with the job I envy most in technology. I agree with what he says for the most part on the advantages of the end-to-end …

May 15, 2006: Removing time from a datetime field in SQL I’ve got a small project at work that required me to use the date, but not the time in a datetime field for retrieval of certain rows from a table in …

May 9, 2006: ASP.NET Configuration File Handling One of things I like the least about working with multiple development, QA, and production environments is messing around with configuration files to …

May 3, 2006: Downside of Certification According to this eWeek article pay premiums for skills that don’t have a certification grew three times faster than pay premiums for certified …

May 3, 2006: Amazon.com and A9.com switch to Microsoft Search I hadn’t noticed this until yesterday, but Google is no longer the guts of A9 & Amazon search. According to this article, A9’s contract with Google …

May 2, 2006: Mac OS X gets its first virus According to this article in MIT Technology Review, the Apple operating system got it’s very first virus this year. I suppose the “virus-free” label …

Apr 30, 2006: .NET Social Security Number Validation Writing code for work on a Sunday is certainly not my idea of a good time. Especially when our approaching deadline is inspiring panic and all manner …

Apr 26, 2006: Ether Beta Test Awhile back, I read a blog entry (probably from Robert Scoble) about a venture called Ether. If memory serves about how he described their goal, …

Apr 25, 2006: VS.NET 2003 Annoyance VS.NET really annoyed me today. When I changed my custom page base class to be abstract, the web forms that inherit from it could only be seen in HTML …

Apr 24, 2006: Ads coming to iTunes I came across the article today in Advertising Age (via a Wall Street Journal link). The article hints that this is the first step toward advertising …

Apr 21, 2006: Open Source on the .NET Platform (part 1) Open source on the .NET platform is a topic I’ve been thinking about for awhile. My current boss has made it a point to try and use open source …

Apr 21, 2006: First bilingual application In the nearly 11 years I’ve been writing software for real money, I haven’t had any internationalization projects until now. The project I’ve been …

Apr 20, 2006: We need heroism These are the words I least want to hear, especially when it comes to my job. I heard them today from one of my bosses because I’ve been writing code …

Apr 20, 2006: Akismet Rules Akismet is a ruthless comment spam killer :-) Moderating comments is super-easy now (since I’d been getting nothing but comment spam lately). And …

Apr 4, 2006: iPodding my car (part 3) According to Antwerpen VW, Volkswagen says that the way the iPod adapter hooks into the stereo disables the channels that display additional …

Mar 31, 2006: Buying my car I should have written this back in February, since I don’t have nearly as many recommended links as I should. Anyway, here are a few notes on my most …

Mar 31, 2006: iPodding my car (part 2) The ugly continues :-( The sound on the satellite radio is back, but now some information on my radio display is missing. The next visit to the shop …

Mar 29, 2006: iPodding my car Last month, I bought a new VW Passat from the folks at Antwerpen VW (who gave me a great deal on a demo model). So far, it’s been a great ride (better …

Mar 14, 2006: The acquisition continues Lockheed Martin’s deal to buy Aspen Systems was finalized back in February, but until this week, the change hadn’t really manifested itself in a …

Mar 9, 2006: Windows Live Again This morning I came across an article that asks whether Windows Live is better than Google. I blogged about Windows Live late last year and thought …

Feb 22, 2006: Blogging and Podcasting for ONDCP Yesterday, I gave a presentation at the RSS, Podcasts, etc! workshop along with a colleague. Our presentation isn’t available on NOAA’s website yet, …

Jan 26, 2006: .NET User Groups are Good Before yesterday, I didn’t know what I was missing. I’d always gained my knowledge about .NET (and any other technology for that matter) from …

Jan 24, 2006: Bosses 'are deluded' over success of deals An interesting title for this story I read in the Times this morning. The acquisition of my current employer (Aspen Systems) by Lockheed-Martin falls …

Jan 23, 2006: What Corporations Know About Us This morning, when I was listening to the umpteenth radio story about the Justice Department subpoena of Google, it occurred to me that Google might …

Jan 20, 2006: Advice from Warren Buffett Buried deep in this article about the dangerous size of the U.S. trade deficit was this bit of advice to MBAs: “The one piece of advice I can give you …

Jan 15, 2006: 32 Today is my 32nd birthday. To me, it doesn’t seem like a particularly special birthday. It isn’t like turning 13, when you’re finally a teenager, or …

Jan 10, 2006: .NET Development Tools Richard Slade came up with a great list of free tools he thinks .NET developers should be using. I first found out about test-driven development and …

Jan 9, 2006: Ruby on Rails Progress I finished Curt Hibbs' first Rolling with Ruby on Rails tutorial today. After getting phpMyAdmin installed, doing the database parts of the tutorial …

Jan 5, 2006: Trying out Ruby on Rails I made it one of my resolutions to learn Ruby this year, so I took a bit of time yesterday and today to try and get something working on my work …

Jan 5, 2006: Who got money from Jack Abramoff The entire list is here. It includes how much he gave and when.

Jan 2, 2006: Goals for 2006 Improve My Health Exercise 3 times a week Cook 3 times a week Maintain My Hobbies Shoot 36 film and/or digital exposures a week. Post 3 shots on …

Dec 29, 2005: Teaching the Clinton Presidency I admit it–I’m a C-SPAN junkie. The purpose of the open phones topic this morning was to air people’s opinions on how the Clinton presidency should be …

Dec 22, 2005: Windows Live Beta vs Google Homepage My office gives us the day off tomorrow, but it’s pretty much a ghost town already. I had a bit of time today to play with the Windows Live Beta. I …

Dec 20, 2005: Busier Ads from Google :-( This article from the NY Times (free subscription required) tells us that those of us who use Google will soon have to contend with graphical ads. I …

Dec 19, 2005: Acquired Last Friday, just before the end of the day, I found out that my current employer had been acquired. The buyer: Lockheed-Martin, the multi-billion …

Dec 12, 2005: Skiing Yesterday, I got on a pair of skis for the first time since 8th grade. A friend and I went to Wisp to enjoy their cheap rentals and lift tickets (part …

Nov 22, 2005: Microsoft doesn't get Test-driven Development That’s what Scott Bellware contends in this blog post. He does a very thorough job of explains what test-driven development in meant to accomplish and …

Nov 14, 2005: Gmail signature graphic I came across an application that generates signature graphics for Gmail, Yahoo, and other e-mail providers courtesy of this blog entry.

Nov 11, 2005: When clients (and bosses) go bad ... I came across this article via the Signals vs. Noise blog. While the entire piece is 100% on target, this passage really spoke to my current …

Oct 3, 2005: Bush's Latest Appointment: Harriet Miers Trying to find some information about Bush’s latest appointee to the Supreme Court, I found two comments especially troubling: "The reaction of many …

Sep 9, 2005: Debugging With two of the projects I’ve been working on finally out the door, I’ve finally got some downtime at work. To make use of the time, I’ve started …

Sep 3, 2005: $44.92 That’s how much it cost me to fuel up the Volkswagen Jetta I drive today. $3.59 a gallon, and only because I drove past stations charging nearly $4 a …

Sep 2, 2005: Refugees? I was listening to C-SPAN on the way into work and one of the callers had an interesting question: why are the people suffering in New Orleans being …

Sep 1, 2005: Taking Time to Think Came across this blog post via digg.com. The management tips seem quite reasonable in isolation. But when I try to map them to my current workplace, I …

Aug 30, 2005: A Leap of Faith I had a chat with a former co-worker at Ciena Corporation yesterday. I was surprised to discover that since one of the layoffs there, he and his …

Aug 11, 2005: Robin Curry - AJAX and ASP.NET Resources When my employer moves to the latest version of VS.NET, this article will get a lot more “hands-on” use.

Aug 10, 2005: VB.NET Coding Guidelines My current project is the first one where I had to write a substantial amount of VB.NET code (I chose C# as the .NET language I’d try to learn back in …

Aug 9, 2005: 4GuysFromRolla.com - Retrieving the First N Records from a SQL Query Our development team found this article quite helpful during development of a custom portal. Unfortunately, the project is on indefinite hold.

Aug 8, 2005: Housing Bubble Burst? Paul Krugman seems to believe so. Check out his complete column in the New York Times online (free registration required). I live in what Krugman …

Aug 4, 2005: 188 Megabytes All the papers, projects, PowerPoint presentations and spreadsheets of three years in the University of Maryland part-time MBA program fits comes to …

Aug 4, 2005: Map Hacking A friend of mine came across this page with a bunch of interesting googlemaps-related hacks. I haven’t sprung for one of those GPS gadgets yet, but …

Aug 3, 2005: Bush Jumps into "Intelligent Design" Fray I wrote about “intelligent design” at length back in March. If anything it’s taken Bush longer than I expected to come out on one side or the other of …

Aug 3, 2005: Never expected to see a cellphone here ... I finally dragged myself to the gym for the first time in awhile. The combination of business school and full-time work made a somewhat reasonable …

Jul 4, 2005: Goodbye Blogger, Hello WordPress A quick note of thanks to the author of the illustrated tutorial, and Andy Skelton, the author of the import script.

Apr 12, 2005: Exceptions in .NET Hunting for best practices info on creating custom exceptions, I came across a post titled Systems.Exception and System.ApplicationException. I found …

Apr 7, 2005: Configuring multiple files in web.config I was hunting for information on security settings in web.config files when I came across this link. I had no idea you could pull external files into …

Mar 16, 2005: Battle on Teaching Evolution Sharpens I first read about the Discovery Institute in a Wired magazine article last October. At the time, I considered the piece rather alarmist. Seeing this …

Mar 9, 2005: Fixing the C# IssueTracker SDK Beta My boss wanted to use it to track issues with projects we develop internally and for clients. So I downloaded it, installed it, and began testing. So …

Mar 7, 2005: Giant Steps, Animated Came across this via Scobleizer (who came across it via Tim Bray). It's a recording of John Coltrane's "Giant Steps", with animation set to it. If you …

Mar 5, 2005: "Free" Project Management Software I was looking for information on the right way to modify the ASP.NET Issue Tracker starter kit to handle Windows Authentication. One of the things …

Mar 5, 2005: Mac OS X Address Book Once I got over trying to import a CSV file into it (silly me), getting contacts out of my Yahoo address book into the Mac was easy. I exported it as …

Mar 4, 2005: The mini has landed The Mac mini I ordered online back in February finally arrived tonight. The only real problem I’ve encountered so far is that it had trouble detecting …

Mar 2, 2005: "Free" Project Management Software I was looking for information on the right way to modify the ASP.NET Issue Tracker starter kit to handle Windows Authentication. One of the things …

Feb 24, 2005: Why Your Broadband Sucks A good column by Lawrence Lessig on a problem with Wi-Fi access in the U.S. In short, lobbyists are spending money to convince lawmakers to prevent …

Feb 18, 2005: White House Turns Tables on Former American POWs I came across this story late, but it has to be one of the most bizarre and sad stories I've read in awhile. It's worth subscribing to the LA Times …

Feb 15, 2005: More Mac mini Ideas 1. Make it a low-cost recording studio. 2. Make it a media center. I've already got a digital piano at home, so I'll probably try option 1 first. …

Feb 13, 2005: Howard Dean: DNC Chairman Even though I haven't been a registered Democrat for some time now (switched to independent 5+ years ago), I'm very interested in this turn of events. …

Feb 11, 2005: Cult of the Mac Membership++ About half an hour ago, I purchased a Mac mini. If you've read anything in the press about the "iPod halo effect", I'm one of those buyers. Before …

Feb 10, 2005: Gmail Invite Anyone? Google recently dumped 50 each on current members. I plan to donate some to our troops overseas, but I'll give away one to the first 35 people who …

Feb 7, 2005: Blog Mapping I across a Scobleizer post about this and thought I'd give it a try: An interesting use of MapPoint to say the least.

Feb 1, 2005: Three Paper Town? To the Washington Post and the Washington Times we can add another paper: The Washington Examiner. In this age of the Web, blogs and other forms of …

Jan 24, 2005: Solution Spheres: How To: turn your Mac mini into a Media Center PC Some very interesting ideas on what you can do with a Mac mini.

Jan 18, 2005: Yahoo! News - NFL Game Broadcasts Coming to iPods Interesting news for current and future members of the cult of iPod (I'm in the former category). I wouldn't expect to be a huge moneymaker for …

Jan 14, 2005: Forbes.com: When IPod Sales Run Out Of Steam Not exactly a doom-and-gloom piece for Apple, but it does project a time when the gap between the iPod and other digital music players has narrowed. …

Jan 4, 2005: Social Security Formula Weighed (washingtonpost.com) If I'm reading this article correctly, it sounds like Social Security benefits are certain to be reduced, and these personal accounts are intended to …

Dec 21, 2004: Feasibility of Missile Defense This study from a trio of physicists does an excellent job of highlighting the incredible difficulties of developing a system that can credibly defend …

Dec 16, 2004: DC Baseball in Doubt Whoever reads this should take my comments with a grain of salt. I've worked in DC on multiple occasions, but I've never been a resident. Local …

Dec 7, 2004: Unconventional Wisdom on Staying Put Instead of Off-Shoring This article from McKinsey Quarterly takes a look into why some companies continue to manufacture in California--one of the world's most expensive …

Nov 26, 2004: A Fight for Shiites You can read Charles Krauthammer's whole commentary to get the context, but he essential begins his column by using the elections that happened during …

Nov 17, 2004: Situational Ethics Defined According to this article in The Hill newspaper, the House GOP will change a rule they enacted in 1993 requiring leaders to step down from their posts …

Nov 17, 2004: Gonzales' Secrecy Thing Eric Umansky, sometime author of Slate's "Today's Papers", gives another reason for concern about the prospect of Alberto Gonzales as attorney …

Nov 14, 2004: Dispelling Malpractice Myths For anyone concerned about the state of healthcare in this country (which is probably just about anyone), this column by the president of Johns …

Nov 12, 2004: Loyal to a Fault? This excellent piece by Phillip Carter, author of the Intel Dump weblog, is a very worthwhile read for anyone interested in the man President Bush has …

Nov 10, 2004: Yet Another Technology Plug--Bloglines Bloglines is a wonderful service that allows you to keep up with all your RSS feeds without having to install anything on a particular computer. Once …

Nov 10, 2004: My plug for Mozilla Firefox I've been using this browser since version 0.7, and it's great. No random pop-up advertising from websites and tabbed-browsing were just the …

Nov 7, 2004: My 2 cents on the election It's easy enough to say it now, but I didn't see Kerry winning this election against George W. Bush. Kerry held too many positions on a number of …

Oct 22, 2004: Afghanistan, Iraq: Two Wars Collide Excellent analysis of the actions of our government in both countries.

Jul 21, 2004: Next Stop: Iran? Dr. Cole seems to believe so. Read the whole post. It's worthwhile if only to get the historical background of the different branches of Islam …

Jun 2, 2004: For Some Soldiers the War Never Ends Very interesting commentary on the Defense Department's use of stop-loss orders and activation of the Individual Ready Reserve. Captain Exum does a …

May 24, 2004: Gen. Anthony Zinni's Remarks at the Center for Defense Information Board of Directors' Dinner He lays out a series of excellent ideas to be considered for solving the mess that Iraq has become. If only the current administration would listen …

May 21, 2004: Tax and Drill Now here's something you don't read every day--a conservative columnist arguing in favor of a gasoline tax. "[Oil] is now $41 a barrel. We had a …

May 13, 2004: No Flinching from the Facts Very well-written column by George Will that touches on the actions at Abu Ghraib, the lead-up to the war, and Donald Rumsfeld's role as secretary of …

May 9, 2004: Moral Clarity, Courage Needed, Bush Aide Says From the article: America needs people who have “the moral clarity and courage to do what’s right, regardless of consequence, fashion or fad,” Karl …

May 8, 2004: Casualty of War A fascinating piece in GQ about Colin Powell.

Apr 26, 2004: How to get out of Iraq This feature by Peter W. Galbraith makes a compelling case for how the U.S. can extricate itself from the disaster that Iraq …

Apr 16, 2004: The U.S. reaps a whirlwind in Iraq This article does a good job of laying out the mistakes that both the U.S. and the UN have made. Especially …

Apr 16, 2004: Iraq duty deters re-enlistment We can only hope this is a one-time blip instead of a signal of a longer-term problem. I'm only a civilian, so it's not …

Apr 16, 2004: Moody's cuts Ciena Corp ratings to B2 This provides perhaps the best summary I've seen anywhere of the current & future prospects of my current …

Apr 14, 2004: Our Last Real Chance Excellent column by Fareed Zakaria on how the situation in Iraq might be salvaged. Especially interesting is the parallel he …

Apr 2, 2004: Self-serving Gasoline Complaints Good column on the current debate over what to do about the high price of gasoline in the US. Not only does he talk …

Apr 1, 2004: Bush Admits Misleading Nation April Fools' Day column by Gregg Easterbrook.

Mar 18, 2004: Killing Iraq with Kindness Excellent column on the unintended consequences of armed intervention, even with the best intentions. There is much irony …

Mar 16, 2004: O'Reilly, O'Franken, oh no! | csmonitor.com A thoughtful piece that talks about the downsides of "opinion journalism".

Mar 4, 2004: Avoiding attacking suspected terrorist mastermind This story from MSNBC indicates that the White House passed up three opportunities to kill the man …

Mar 1, 2004: VoIP - Plan A vs Plan B Article by Clay Shirky on possible outcomes in the voice-over IP market. He includes a service I'd been completely unaware of …

Feb 26, 2004: Radio Hosts to Pay for Lewdness I'm not sure how I feel about this. On the one hand, I'm not a Howard Stern fan. But if he didn't break the law or violate his contract, I'm not sure …

Feb 17, 2004: Prosecutor in Terror Case Controversy Sues Ashcroft This can't be good news. Even with the expanded powers they've received due to the Patriot Act, the government isn't playing by its own rules. Also …

Feb 13, 2004: Secret Report Warns of Iraq "Balkanization" Financial Times scoop on a secret report indicating fears of Iraq dividing into multiple regions (most likely a Kurdish north, Shia south, and Sunni …

Feb 9, 2004: Bush on Meet the Press: A Rebuttal from Juan Cole Fantastic analysis and rebuttal to President Bush's statements on "Meet the Press" this Sunday. Definitely worth reading, and forwarding to anyone …

Feb 3, 2004: The CIA: Method and Madness Ok column by David Brooks in the NY Times today about the problems with the way the CIA analyzes threats against the US. In general, the points he …

Jan 30, 2004: Scott Ritter was Right All Along I heard him this morning on C-SPAN with Brian Lamb. It's very interesting that he was perhaps the only one before the war who consistently stated …

Jan 20, 2004: An Absence of Legitimacy Excellent commentary by Fareed Zakaria on what's happening in Iraq. The point that he makes at the end about the transition plan being accelerated to …

Jan 16, 2004: NASA Cancels Trip to Supply Hubble, Sealing Early Doom NASA Cancels Trip to Supply Hubble, Sealing Early Doom It figures. One of NASA’s most effective projects ever will be dumped in the ocean sooner or …

Jan 16, 2004: The Troublesome, Vote-loving Ayatollah The troublesome, vote-loving ayatollah This story from The Economist covers a lot of ground on America's adventure in Iraq. They do a good job of …

Jan 14, 2004: Teach Yourself Programming in Ten Years Teach Yourself Programming in Ten Years Great essay by Peter Norvig that begins by talking about the “Learn topic X in Y Days” publishing phenomenon, …

Jan 13, 2004: Fiber to the People Fiber to the People A Lawrence Lessig article on customer-owned networks. He uses examples from Boeing Corporation and the city government of …

Aug 14, 2003: USB FM Radio I wasn't even aware such a thing existed until my friend Rob told me about it. The one I bought is a discontinued model from D-Link (the DSB-R100). …

Jun 1, 2003: Stored Procedure Naming Don't name your stored procedures with sp_ I found the following note: Note: Do not preface your stored procedure names with sp_, because doing so …

May 23, 2003: Presenting Data and Information Presenting Data and Information (a 1-day course by Edward Tufte) I attended this presentation last Wednesday. If you ever do presentations for work, …

May 21, 2003: Presenting Data and Information Notes from Presenting Data and Information A basic Google search will reveal all kinds of pages of information about Edward Tufte and his …