new site();

Notes from MLconf 2017 in NYC (part 2)

Evan Estola from Meetup gave probably the second-best talk of the day (I have to give the best talk to Corinna Cortes) talking about our responsibility as wranglers of these learners to protect them from learning bigoted or otherwise harmful patterns. He noted that while some people believe that anything the learner infers from the data is somehow pure and bias-free, it is more accurate to say that while we are tinkering with every other constraint and parameter of a model we might as well fix the stuff that yields socially unwelcome inferences. He said it more elegantly of course, but it was neat that he kind of spanked everybody with that.

Continue reading →

Notes from MLconf 2017 in NYC

When Ben Hamner from Kaggle came up to the stage everyone in the room kind of straightened up and made little waking-up sounds, since Kaggle was recently acquired by Google, and because having the guy from Kaggle in a room full of ML people is a bit like having the guy from Easy Mac in a room full of undergraduate students. He didn't really get into that much in terms of the practice of machine learning, but did mention that winning learners are nearly always ensembles.

Continue reading →

OMSCS tip: how to keep yourself from accidentally pushing to a public Git repo

Periodically during the semester you will need to get updates from the class repo, so you have to maintain your connection to it. But you also really should be pushing your work somewhere, especially if you wind up getting accused of plagiarism--it's wise to have a paper trail, just in case. What you want is to be able to keep your connection to the class repo, but make it pull-only, and at the same time have a second connection to your private repo, where you can both push and pull to support a typical workflow.

Continue reading →

Creating stubs in F# for unit testing

One of the most important things to get right with my regexModeler application was the test suite, because I made several breaking changes many times along the way and would have been dead in the water without one. Because of all the random aspects of the program, it was an early challenge to get something for the unit tests to reliably measure. Now, if this is something you need to do too, bear in mind that object expressions can do much the same thing, but the limitation is that you need to define all of the methods for your solution to build. By taking the approach I outline below, you have more flexibility to define just the behavior you need to, while safely ignoring the rest. Also, if you want to take it a step further to add features similar to mocking libraries, you can do that.

Continue reading →

How to get SciPy working in Windows

Everything I read online suggested that to fix this situation I needed to build it from source, which meant installing compilers for C++ and Fortran, Cygwin, MinGW, and other stuff, none of which I actually want on that machine. There are Python distributions that already have SciPy working, but if you already have Python installed and are happy you may not want to mess with those. The answer for my situation wound up being that I had to dump the version of NumPy I was using and get the NumPy-MKL package instead, which contains the libraries mentioned in the above errors thanks to Intel's Math Kernel Library. So, here are the steps I eventually found to allow me to use SciPy with my existing Python environment without building it from source.

Continue reading →

Exit code 4 running xcopy to a network location in post-build step in Visual Studio

Our Visual Studio project contains a build step in which it copies files to a mapped drive, and we got funky behavior after the team upgraded to Windows 10. This behavior basically made it look like the destination wasn't there or that we didn't have access to it.

Continue reading →

Handling presentation anxiety

Your brain and body have positioned your audience as potential threats and have prepared you to either fight them or run in panic from the room. Since you shouldn't do either of these things, some adjustments are in order.

Continue reading →

Agile new years' resolutions

In much the same way that the Pomodoro method is like miniature Scrum for time management, I find that Scrum can also be used effectively for personal change.

Continue reading →

Resolutions that worked for me: bringing in lunch

If, for you, a turkey sandwich can't compete against General Tso's, then bringing in that sandwich is setting yourself up to fail. So, there are two ways to resolve the problem: either find a way to exclude all those other delicious, convenient options, or make your lunch better. The first way is doomed to fail, because we can rationalize anything when we are hungry. The second way, however, is actually pretty easy, and to illustrate, here are the strategies I've found helpful in doing just that.

Continue reading →

Computer science education is not vocational training

So why does it matter? Because by expecting a computer science education to make you a good programmer, you are both asking too much and too little of the experience. It is too much to expect that you could learn all these skills in a classroom, and too little to expect that software development would be the sole aim of computer science.

Continue reading →