Andrew Oberstar

linkTesting...

November 19, 2016

Just testing the feed after migrating from Squarespace to GitHub Pages.

...

technical sample

linkDrinking the Clojure Kool-Aid

November 06, 2014

As with Scala, my first experience with Clojure was the 7 Languages in 7 Weeks book. That merely gave me a flavor of Clojure’s syntax, but didn’t lead me to the deep philosophical underpinnings behind Clojure. More recently, I’ve been watching a lot of Clojure talks and have found Rich Hickey (creator of Clojure to be a very inspiring speaker. His Simple Made Easy talk is easily my favorite, where he lays out a clear distinction between the concepts of simple (as opposed to complex) and easy (as opposed to hard) and how certain programming constructs contain an inherent complexity. That talk also popularized the term complect (to intertwine or braid) within the Clojure community as a way of emphasizing the precise type of complexity that Clojure intends to avoid.

...

technical clojure programming languages

linkQuick Gradle Tip - Setting Bintray Attributes for Gradle Plugins

September 28, 2014

As part of the new Gradle plugin portal, you need to set some attributes on the version of your plugin package in Bintray.

...

technical gradle build

linkGradle Test Organization

August 23, 2013

Guest post for Safari Books Online.

...

technical gradle build

linkGradle Task Ordering

August 19, 2013

Guest post for Safari Books Online.

...

technical gradle build

linkUsing Gradle Init Scripts for Developer-Specific Configuration

July 24, 2013

Guest post for Safari Books Online.

...

technical gradle build

linkRaspberry Pi as Server - DNS and DHCP

December 30, 2012

In my previous post, I mentioned I’m trying to set up my Raspberry Pi as an LDAP and DNS server.

...

technical raspberry pi

linkRaspberry Pi as LDAP and DNS - Introduction

December 30, 2012

For those of you unfamiliar, Raspberry Pi is an inexpensive computer that can run Linux and is about the size of a credit card. I think it was primarily designed for educational purposes, to get kids into computers, though it works well for a lot of other use cases. When I got mine, I started off with Raspbmc, the XBMC install for the Pi. I had a few issues and decided to stick with my existing Boxee Box for now.

...

technical raspberry pi

linkGradle > Sliced Bread

December 20, 2012

I’m not really convinced that sliced bread is that much of an improvement over uncut bread, but Gradle is definitely better. Considering how much I’ve been using Gradle over the last 2 years, I’m surprised I haven’t written anything about it yet.

...

technical gradle build

linkLetter to Representatives - Fiscal Cliff

December 02, 2012

I wanted to post the message I sent to my representatives (Representative McCollum, Senator Franken, and Senator Klobuchar) and urge everyone, regardless of your position, to contact your representatives to let your voice be heard on the significant issue of our national debt and the upcoming “fiscal cliff”.

...

political deficit debt

linkIf This Then That

September 14, 2012

I heard about If This Then That on Tech News Today a couple weeks ago and just started playing around with it today. It’s basically a way for you to automate all kinds of tasks based on different web services (mostly social networks) that you use. Some examples:

...

technical

linkAdventures in Scala/Lift Part 1

April 01, 2012

After completing 7 Languages in 7 Weeks, I decided to start working on a project to get my feet wet in Scala. For the past couple weeks I’ve been reading through Programming in Scala, which is seemingly the definitive Scala book and is written by the language author.

...

technical programming languages scala lift

link6.5 Languages in 12 Days

March 20, 2012

I’m all done with the 7 Languages in 7 Weeks book. Overall, I was very happy with it and recommend it to anyone looking to broaden their programming horizons.

...

technical programming languages 7 Languages in 7 Weeks

link7 Languages: Haskell

March 19, 2012

The final language of 7 Languages in 7 Weeks was Haskell, the only pure functional language in the book. This is the only chapter where I completely gave up on most of the exercises. More on that later…

...

technical haskell programming languages 7 Languages in 7 Weeks

link7 Languages: Clojure

March 18, 2012

Oooooo…. Clojure. Along with Scala, this was one of my most anticipated languages (mainly because of the JVM integration). Clojure is a dialect of Lisp, which is a very old family of programming languages. Most of the syntax is just parentheses.

...

technical clojure programming languages 7 Languages in 7 Weeks

link7 Languages: Erlang

March 18, 2012

Chapter 5 of 7 Languages in 7 Weeks is on Erlang. Erlang is a functional language with a strong focus on concurrency and reliability. Its syntax is based on Prolog (i.e. it’s weird). The author described it as a language that “makes easy things hard, and hard things easy”.

...

technical erlang programming languages 7 Languages in 7 Weeks

link7 Languages: Scala

March 13, 2012

Just crossed the halfway point of 7 Languages in 7 Weeks with Scala. This is a hybrid object-oriented and functional language. It’s a JVM based language, and provides interoperability with existing Java code. Like, Java it has strong static typing. Unlike Java, Scala can infer types in many cases, removing a lot of extra typing. For example in Java:

...

technical scala programming languages 7 Languages in 7 Weeks

link7 Languages: Prolog

March 10, 2012

Next up in 7 Languages in 7 Weeks was Prolog. This is a logic programming language. Your “code” defines facts and rules, and then executes queries on them. It’s all declarative, you don’t ever see the algorithm that Prolog uses. It’s a very different way of thinking, since you are just describing the problem, and asking Prolog to solve it for you.

...

technical prolog programming languages 7 Languages in 7 Weeks

link7 Languages: Io

March 10, 2012

Chapter 2 of 7 Languages in 7 Weeks is on the Io programming language. Io is a prototypical (like JavaScript) object oriented language. JavaScript usually gives me a bad taste in my mouth, because the prototype style just doesn’t feel right. However, now that I have more experience with Io’s prototyping, I can see the power. I wouldn’t want to build an application with prototypes, but I see now that they have their place.

...

technical io programming languages 7 Languages in 7 Weeks

link7 Languages: Ruby

March 08, 2012

I did end up buying Seven Languages in Seven Weeks. This book covers the following languages:

...

technical ruby programming languages 7 Languages in 7 Weeks

linkRelearning PHP

February 28, 2012

Very little of my programming life has been outside of the JVM world. Java was the primary language at my college, and is the primary language at my workplace. Recently, I’ve gotten into Groovy, which is a dynamic language for the JVM. I dabbled a small amount in C++ and PHP, but didn’t stick with them.

...

technical php programming languages

linkUnit Testing Legislation

January 12, 2012

Just think how cool it would be if you could run unit tests on legislation…

...

political

linkCivility

January 12, 2012

Jon Stewart had a great interview with Senator Jim DeMint (R-IL) on last night’s The Daily Show. You can watch the full episode here. You should really watch the extended interview (about 25 minutes) that’s linked on the page.

...

political

linkAbolish Daylight Savings Time

November 04, 2011

I don’t have anything particularly interesting to say about this, but I just saw this blog post in my Google Reader. Not my favorite article on the stupidity of Daylight Savings Time, but it’ll do.

...

political daylight savings time

linkLetter to My Representatives

July 23, 2011

Below is the letter I just sent to my representatives. Please send one to yours, regardless of your opinion.

...

political budget debt ceiling deficit

linkSharing on Google+

July 16, 2011

For those not aware, Google+ allows you to share your posts publicly or to any number of circles, which are user-defined collections of people that they follow the posts of. This was meant to allow for privacy where, for example, if I have some family photos I want to share, I could share them with my family circle rather than publicly (as in Twitter) or with all of my connections (as in Facebook).

...

technical google google+

linkNetflix and Recommender Systems

June 11, 2011

This was written as a speech for a training class at work, so the tone is a little odd for a blog post, but oh well.

...

technical netflix prize

linkThe Budget and The Gang of Six

April 17, 2011

I was reading the Star Tribune today, which had a few budget related articles. One was related to the Gang of Six who is trying to get a bipartisan budget deal going. (Note: this is actually an NY Times article) They also mentioned the NY Times budget calculator from November. I played around with it for a while (here’s my plan), which surprising to me required less tax increases than I thought I would have picked. One thing is clear to me after using the tool; something is wrong with Medicare. Admittedly, I have no knowledge of what the effect of the cuts or taxes I chose would beyond the numbers the Times gives. Obviosuly, it’s also a very simplistic view of a complex issue. But it’s good to give the public a taste of what those choices are like.

...

political budget

linkAndroid... Open?

March 31, 2011

BusinessWeek posted an article last night about Android’s openness. Rumor is that Google is trying to restrict manufacturers ability to tweak the platform. Considering there isn’t anything from Google at this point it’s hard to say whether this is any more than grumbling by execs at the device manufacturers. I understand their desire to differentiate their phones from their competitors by customizing the UI. However, as a an Android consumer myself, I don’t want their customized OS when it comes at the cost of being stuck on the same version of Android for the life of my phone. I’m a little confused as to how some of these restrictions would work. For example, there is supposedly a “non-fragmentation clause” that Google wants everyone to agree to. Admittedly, I am not an open source, nor Android, expert, but considering this is Apache licensed softare we are talking about, how can they restrict people’s use of it? Are they going to be delaying the source drops? I’ve never liked this idea that Android gives a manufacturer early access to the source code. It seems like it should be developed in the open like many of the big open source projects. This seems like an unfortunate direction for Google to go down.

...

technical android google open source

linkAT&T and T-Mobile... Net Neutrality?

March 20, 2011

So the big story today is the AT&T aquisition of T-Mobile. Here’s the announcement.

...

political AT&T T-Mobile net neutrality regulation

link2nd Prize Cancelled

March 14, 2010

Netflix has officially nixed Netflix Prize 2 over privacy concerns. So I guess that’s it for this blog.

...

technical netflix prize

linkNetflix Prize Part 2

November 06, 2009

So…

...

technical netflix prize

linkProject Over

June 19, 2009

Haven’t posted in a while, but last call for the Netflix Prize has been out for nearly a month. There may finally be a winner. I’m wondering if the site will be shut down after that or if it will keep going. They would of course have to come up with some new reasoning for the project, since they’ve already got a 10% improvement over their algorithm.

...

technical netflix prize

linkProject Over

May 03, 2009

I finished up my project last Monday with my senior seminar presentation.

...

technical netflix prize

linkNSVD1 Failure

April 07, 2009

I went through my NSVD1 code many times, rewriting it completely four or five times, modifying it countless times, but never beating that 1.013. I even redid the math in that paper to make sure there weren’t typos, and I don’t have time to try and figure that out anymore.

...

technical netflix prize svd

linkNSVD1 Grr...

April 03, 2009

So I tried to work on Gravity’s training algorithm for Patarek’s NSVD1 recommender. And utterly failed. I’m either reading it wrong, typing wrong, or not understanding the notation, but it’s supposed to give me a RMSE of 0.9344, but mine has gone between. 1.013 and 2 something. Yeah…

...

technical netflix prize svd

linkProgress Without Perfection

March 24, 2009

Initially, I thought that given the nice detail in the Gravity team’s papers, I would be able to implement these and get very close scores. It has turned out not to be the case. As the models get bigger and more complex my results have moved farther away from theirs: not terribly far, but far enough. This could be a factor of details they didn’t include in the papers, details I missed in the papers, or my misinterpretations (or programming errors) in implementing them.

...

technical netflix prize matrix factorization

linkDon't Rush Your Math

March 17, 2009

I’ve been trying to implement Gravity’s BRISMF#250 model but have been getting much higher RMSEs. I had no idea what was wrong so I decided to move on and start implementing the code to retrain features after the initial training. To test I had to rerun my BRISMF#1 model which resulted in an RMSE 0.01 higher, which made no sense. I looked through my code for changes I’ve made since I initially ran that and came across an error.

...

technical netflix prize matrix factorization

linkSuccess (Relatively)

March 13, 2009

So now that the data is sorted by date as the Gravity team describes in their paper everything worked according to plan. It ran in 13 epochs instead of 50-ish and got a .9217 RMSE instead of 1.0014.

...

technical netflix prize matrix factorization

linkMatrix Factorization

March 13, 2009

The idea behind matrix factorization (which is similar if not the same as what the Netflix community is calling SVD, singular vector decomposition or something) is that you can estimate an I x J matrix R (the ratings matrix) by multiplying two smaller matrices: an I x K and a K x J. Each of those K rows/columns is known as a feature and the matrix factorization (MF) algorithm will estimate the scores for each user and movie.

...

technical netflix prize matrix factorization

linkThings I've Learned About Java

March 13, 2009

Doing a project with this scale of data (100 million ratings, by 480189 users, on 17770 movies) shows a person just how much they don’t know about programming yet.

...

technical netflix prize

linkMy First Attempts

March 13, 2009

I’ll preface this by saying I have no hopes, expectations, or anything else of actually competing in this prize. I came into this hoping to learn about recommender systems.

...