About Jeremy Bowers

posted Apr 15, 2011
in Administrative

jerf.org is a website where I partition off the part of my life that makes for boring real-life conversation. In real life, you can go a very long time without hearing me ramble about politics or the other things I go on about on this website. Going on about those things is the entire purpose of this website, whereas my music, TV, work life, and family life are saved for real life. (Though my wife has started a family blog.)

But as long as you're here, you ought to be given some context about who I am.

Personal/Identity

My name is Jeremy Bowers, I was born in 1978, and am a Michigan native in all but fact; born in Kentucky but moved to Michigan when I was two and remember nothing else. I obtained my Bachelor's and Master's degree in Computer Science from Michigan State University, and have been working in the computer industry since the end of my freshman year. I'm married, have two young boys, and am currently employed as a software engineer at Barracuda Networks.

I am:

Github hopefully coming soon (nothing to show yet).

Anything else may or may not be me. I am not jerf.com, jeremybowers.com, or any other top-level domain, nor am I the only Jeremy Bowers on the Internet, or even the only programmer with that name. I am also not on Facebook or any other social site.

Computers

I've known ever since I was very young that I was going to go into computing. In the early 1980s, my father read the tea leaves correctly and believed that computers were going to be an important part of the future. That may seem obvious now, but even computer professionals of the time would not have believed how it turned out; I think he scored pretty well for the time. He bought a Commodore 64 and a magazine subscription to COMPUTE!'s Gazette, and I was eventually hooked, not only on the game playing (as some of my peers were) but on the actual computer itself. I typed programs in from the back of the magazine, even wrote some dinky BASIC programs of my own.

What follows is pretty much the standard computer geek story, terminating in the aforementioned Bachelor's and Master's degrees, and several programming jobs. For a (necessarily abbreviated) skills list, consult my resume, which by the time you read this is almost certainly out of date yet again; I'm one of those people who tends to pick up skills on a whim. The latest acquisition has been Haskell, which I hope to re-implement this website in over the next few months.

I have learned that I am a pretty good holistic software engineer. I can be handed a very large task (i.e., on the order of years) and in reasonable periods of time put together an architecture and implementation that solves the problem very well, and I've found I have a well-above-average ability to predict what the problems will be before they occur and solve them in the design phase. I am also fairly good at refactoring my way into a solution if at all possible, rather than rewriting from scratch. There are people faster than me on a defined task, there are those who are more detail oriented, there are those who can hold more information in their head at once than me, but I have found my skills as a software "architect", who is also implementing the design, are relatively strong.

I believe this arises from the fact that I have always straddled the border between "theory" and "practice", the two major branches of the computer world, and I've been able to put this fact into extremely practical use in my jobs. Neither of the two really reach their full power until married to the other.

Here are all my programming posts.

Interest in the Law and the Internet

This blog actually started in January 2000 as "iRights", a blog focused on the intersection of the law and the Internet. It is likely that this is technically one of the first 100 blogs in the world, though it might have been a close thing.

Like most people, I was virtually oblivious to the intellectual property, free-speech, censorship, and other assorted controversies swirling around the internet (other then a small high-school paper on the topic, predating my actual access to the Internet), until one day I met a now-defunct program called Third Voice. Third Voice allowed users to leave "notes" on any web page that other Third Voice users could access. If you didn't use Third Voice, you would never know these "notes" were attached to the page. My initial reaction to the software was one of cautious approval. . . the idea certainly has a certain kind of "stick-it-to-the-man" appeal to it, which was the motivation for its creation.

But my approval quickly soured as I started digging a little deeper into the program. At the time, I was working for Michigan State University's Human Resources department, and just that day had been working on a system that contained potentially sensitive information like Social Security numbers and work attendance patterns. I had just finished working with some moderately complicated client-side Javascript (do you know how hard it was to write Javascript that works in Netscape 3.0, 4.0, and Internet Explorer 4+? IE6 is a paragon of the browser form by comparison to either of those... but I digress...), and I was well aware of the capabilities of Javascript in the browser Third Voice was running in. Third Voice had closed the most obvious security flaws (by forbidding users to embed <SCRIPT> tags in their comments), but there were some slightly less obvious holes that I was able to exploit to cause arbitrary script codes to execute, which would allow nearly arbitrary capturing of information entered on the web if people clicked on a "poisoned" note. Which people would and did, as another group who independently discovered another hole found out. (See the Wired article Third Voice Rips Holes in the Web.)

That discovery made me take a second look at the program, and as a result I got my first practical introduction to the issues surrounding the Internet. As I learned about things like copyright law to further refine my opinion about Third Voice, my interest expanded to include the impact of law on all aspects of the Internet. . . and the eventual inevitable impact of the Internet on the law.

That's why I started iRights. iRights was meant to track news, identify trends, theorize about what's happening, and it even spun off into a bit of research on ways to communicate on the Internet, when I developed a program somewhat similar to what would eventually become Trackbacks, though my approach had several flaws that precluded it ever succeeding on the Internet at large.

While I still care about these issues, I have stopped writing about them extensively for two reasons. First, I started iRights right at the beginning of the popularization of weblogs, and there were no weblogs tracking those issues. While I'm still not aware of a weblog dedicated to such issues, there are many weblogs where the author takes an interest and it is no longer an uncovered field.

Second, I wrote an essay detailing my conclusions about the ethics of communications in the Internet age. This essay turned out to be pretty much everything I have to say about the topic. It was published in 2003, and while I have been tempted to go back and take a pass at simply improving the writing and updating the examples, I have not seen any need to change the conclusions themselves. I think that actually says a lot about the quality of the idea, if perhaps not the presentation.

Blog

My weblog posting frequency is now pretty low. This has partially been life circumstances making it hard to post, and partially been because I really don't like simply repeating myself over and over. And, let's be honest, isn't that what a lot of blogging is? In fact one of the primary purposes of this website is to put stuff up here I keep repeating. I post as I have things to say.

On a technical level, the archives get to be a bit of a mess as you go back in time as I have used three distinct web log software packages: Manila from Userland Software, PyDS, and my own home-grown package in Django, which I expect to follow up with my own home-grown package in Haskell soon. At that point I intend to go clean things up.

 

Site Links

 

RSS
All Posts

 

Blogroll