Naming considered MOSTLY harmless 305

Posted by Venerable High Pope Swanage I, Cogent Animal of Our Lady of Discord 20 June 2014 at 08:10PM

This is a continuance of a thought that I'd briefly mulled over on twitter to some reaction. No point in summarizing as it's only a few characters: "In I find it best to try and avoid naming anything except for the tools (fns and constants) used to construct a running system."

The reactions were great, as I would more or less expect, namely trying to drive at the thrust of why I would say such a thing. "What are examples of things I would avoid naming?" "By naming do I mean assigning to a Var, or something else?" and "My examples are primarily stateful things, is this to cure live programming woes?"

I'll do my best to expound on my reasoning in more detail, become more crisp in defining what I mean, and perhaps persuade you to strive in the vicinity of this same goal.

Fun With Maths

Posted by Venerable High Pope Swanage I, Cogent Animal of Our Lady of Discord 10 June 2014 at 08:13PM

I have lived in Baltimore County, Maryland exclusively since November of 2004.

In that time I have only received one Jury summons, it was for tomorrow, and my call in number was 365. I ducked getting called, as they only wanted 1 through 225.

Looking at the call in messages for today and for tomorrow, it appears that ~400 individuals are chosen each day. If one presumes the courts are only operating on standard business days, that yields about 248 days of 400 individuals. Each year, then, 99,200 individuals are randomly summoned to appear as jurors.

Presently the population of Baltimore County is approximately 817,455. If the proportion of summoned jurors to population held constant over the past ten years (a groundless assumption), then each year an individual has a ~12.13% chance of being summoned. Consequently your odds are ~87.87% of not being selected in any given year.

The odds of successfully avoiding summonses for 9 years in a row are ~31.22%. By purely random chance, one could expect to get a Jury Summons once every 5 years (.8787^5 = .5238). The odds of getting summoned two years in a row are ~1.5%.

nil, null, let's call the whole thing off. 1

Posted by Venerable High Pope Swanage I, Cogent Animal of Our Lady of Discord 04 June 2014 at 01:30AM

Apple has recently announced the Swift programming language, along with language specifications and documents to support it. I'm not particularly interested in learning much about this language, in no small part because it seems like it's tightly coupled to Apple's walled garden. However, I am interested in discussing nil and/or null, which I will call nil from now on, because Swift calls it that, Clojure calls it that, and Ruby calls it that.

Swift promises to disallow the use of nil in a variable except in those cases which someone has specifically allowed for nil; be it a parameter, a variable declaration or what have you.

Having written 0 Swift programs, my opinion on this is tangentially valuable at best, but I have written many programs in many other languages, and each of those languages has always had some concept of nil, and many of them were entirely birthed after nil was well explored and people understood the costs of nil, and chose to include it anyway. I'd like to discuss some arguments about why I don't find Swift's approach valuable. Additionally I'd like to discuss some other ways languages have approached the problems nil introduces.

"What the hell is going on with everyone?" - Our increasing awareness of misogyny

Posted by Venerable High Pope Swanage I, Cogent Animal of Our Lady of Discord 24 March 2012 at 01:42PM

My CEO/friend/person who's fired me twice Justin Gehtland exclaimed on the twitters yesterday: "What the hell is going on with everyone? Boston API Jam, Belvedere Vodka, Santorum. Is it National Misogyny Month and I missed the PSA???" I glibly replied: "People started paying attention to misogyny and calling it out. The misogyny didn't increase, your visibility into it did."

I find this basically true and explanatory, but after a few hours of reflection and home improvement I'd like to discuss it in further length than 140 characters allow.

Typo needs to work on their migrations...

Posted by Venerable High Pope Swanage I, Cogent Animal of Our Lady of Discord 06 February 2012 at 09:54PM

I use Typo, because I like Rails, and it's free, and the feature set is pretty nice. But often I find that migrating between major versions sucks.

I just upgraded to 6 from 5, and experienced a problem every time I tried to read an article imported from 5. The failures looked something like:

ActionView::MissingTemplate (Missing template /articles with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths "/blog/themes/scribbish/views", ...)

After digging around a bit I found the culprit.

REE has a special trick...

Posted by Venerable High Pope Swanage I, Cogent Animal of Our Lady of Discord 16 January 2012 at 03:22PM

If you're trying to install REE with RVM, and you just, for example plug in the following

rvm install ree-2011.03

It doesn't work terrifically under OS X

It also serves as a local minima of functionality, in that it will get caught with the failure condition even if you remember to add something like:

rvm install ree-2011.03 -C --with-readline-dir=/usr/local

after having done the wrong thing.

You need to do the following:

rvm cleanup all
rvm install ree-2011.03 -C --with-readline-dir=/usr/local

Try not to BCrypt so much.

Posted by Venerable High Pope Swanage I, Cogent Animal of Our Lady of Discord 13 August 2011 at 10:14AM

At Relevance, one of our favorite tools to use is Devise. It has become the de facto standard for authorization when we need a solution, and with good reason. It solves a specific problems and plays nicely with others.

However, it can totally ruin your test suite's performance.

Kicking butt with CoffeeScript, Underscore, and Backbone

Posted by Venerable High Pope Swanage I, Cogent Animal of Our Lady of Discord 23 May 2011 at 03:22PM

I've recently had the opportunity to work with some really exciting JavaScript tools that make developing apps that run in the browser much more powerful and managable than I've been accustomed to working with in the past. The trio of tools I am specifically interested in is CoffeeScript, Underscore.js and Backbone.js. I am specifically targeting technical audiences for this work, I will be assuming a good deal of comfort working with JavaScript, the DOM, and jQuery already. Additionally I will assume you understand Rails well enough to build a trivial app in it.

BAMFCSV - BAMF, your data's here!

Posted by Venerable High Pope Swanage I, Cogent Animal of Our Lady of Discord 06 May 2011 at 10:02AM

Rivaling the amazing transitive powers of Nightcrawler, Jon Distad and I decided to tackle the problem of parsing CSV rapidly under Ruby 1.9. "Aha!" you might be saying, "FasterCSV was already rolled into the stdlib in Ruby 1.9! Why would I need a gem to handle it?" Well you have a very good point there, FasterCSV was a good response to the performance of the old 1.8 stdlib CSV parser. However there are still cases where it doesn't quite go fast enough.

First Cut of Cleavage

Posted by Venerable High Pope Swanage I, Cogent Animal of Our Lady of Discord 04 March 2011 at 11:24AM

I've been playing with the last few days of my 20% time at Relevance working with Michael Feathers' ideas about Code Turbulence, specifically with a mind for being able to examine it through time.