I have been terribly busy recently shoveling pixels and clearing out the tubes that make up the Internet, so I haven't had a chance to tweet recently. I am truly very sorry about this, so with just a bit more prodding I'll update as soon as possible.
Ethan Brown grew up in rural Virginia, where he spent many bucolic days sailing on the Chesapeake Bay. As the son of an electrical engineer, technology is in his blood. He received undergraduate degrees in Computer Science and Mathematics from Virginia Commonwealth University, which is also where he learned to fence. Today, Ethan transfers his passion for fencing to the students of the Portland State University Fencing Club. His work history spans defense contractors to some of the biggest names in the software business: Informix, IBM, and Oracle. Still, he prefers the energy and community of small companies, and is thrilled to be a member of the Pop Art team.
Everything should be made as simple as possible, but no simpler.- Albert Einstein
BS, Computer Science, Virginia Commonwealth University
BS, Mathematics, Virginia Commonwealth University
- Playing guitar (badly)
- Art (painting & photography, primarily)
- Nebraska – Bruce Springsteen
- Closing Time – Tom Waits
- Car Wheels on a Gravel Road – Lucinda Williams
- Soul Journey – Gillian Welch
- Life’ll Kill Ya – Warren Zevon
- Fight Club
- The Jerk
- Dr. Strangelove
- The Music Man
- A Day in the Life of Ivan Denisovich – Aleksandr Solzhenitsyn
- The Secret History – Donna Tartt
- Bluebeard – Kurt Vonnegut
- Double Star – Robert Heinlen
- My Uncle Oswald – Roald Dahl
Posts by Ethan Brown
After touring Fortune Data Centers' new data center in Hillsboro, Oregon, I have a renewed appreciation for the infrastructure of our world. Join me in a celebration of the giants and ants that make our modern world possible.
Email changed the world, which is possibly why we cling on to it. Which is too bad, because it is terrible for most of the things its used for, and there are better solutions. This blog post discusses the pitfalls of email, and what you should be using instead.
In our industry, we don't work in a vacuum. We work closely with professionals in various but related disciplines, and communication is usually more important than genius. What is a great idea worth, if it can't be communicated? Don't underestimate the power of a consistent shared vocabulary, of the cost of a inconsistent, confused one.
You know what I love? CSV files. Now stop rolling your eyes and trying to come up with Luddite jokes. I like XML and JSON too, but you know what you can do with a CSV that you can’t do with XML and JSON? Append to a file! You can’t append to a XML or […]
Deferred (or lazy) loading is a great feature of IEnumerable<T>, especially when dealing with databases, or potentially slow data sources (like a third-party API). Most developers have enthusiastically embraced the rule of thumb “use IEnumerable<T> unless you specifically need more functionality.” Usually you don’t. However, we’ve also learned that deferred loading can get you into […]
I’m afraid I’m going to be letting down some old friends with this post, and I will certainly be opening myself up to mockery. What can I say? I have no fear of admitting I was wrong about something. And I was wrong about GUIDs. And with this post, I’ll make my apostasy public. For […]
A question at Stack Overflow caught my eye today: how to “max out” a number. That is, if you’re given the number 1234, return 9999. If you’re given 12345, return 99999, and so on. Most of the answers were fairly practical: converting to a string representation, counting the digits, then constructing a string with that […]
The headline is self-referential. Like many people over 25 in the tech industry, I have spent a lot of time using Subversion. I liked Subversion: it got the job done, it was a lot better than CVS, and it was pleasantly ubiquitous. Over the last couple of years, though, it’s been harder and harder to […]
This will be the first in an series of blog posts on Git. I doubt that anything I say here can’t be found elsewhere on the internet, but maybe my explanation for things will be the one that clicks for someone and if so, this won’t be a wasted duplication of effort. These are not […]
One of my pet projects involves creating a “direct elimination table” — the tables that are used in sporting competitions to match up teams or competitors until only one is left. The logic behind a direct elimination table is based on a very boring “ideal” competition: one where there are no surprises. The first seed […]
Here’s a common situation for you: you have geocoded data in a database (store locations, for example), and you want to provide a way for users to search for locations near their address. Of course you can’t store a “distance” field in the database, because the distance will be different for each query, so it […]
In this blog, I endeavor to be as factually correct as possible, but nobody’s perfect, and things always slip through. Just going back and correcting my posts isn’t good enough, because those changes won’t show up on your RSS aggregator, and it pains me to think about you walking around with false information that came […]
Time to put another year to bed…fare thee well, 2011! In a lot of ways, I shan’t miss you, but professionally, you’ve been very good to me. I’ve always been a resolution maker; I haven’t always been a good resolution follower, but I’ve always liked the ritual and, you know, sometimes I do succeed in living […]
Our fearless leader Steve asked me recently “do 80% of programmers think they’re in the top 20% of good programmers?” I certainly think I’m in the top 20%. Heck, I think I’m in the top 10%. Putting aside my not-inconsiderable ego for a moment, though, it begs the question “what makes a good programmer?” In […]