Seven Languages in Seven Weeks: Day 1

I picked up Seven Languages in Seven Weeks after Martin Fowler recommended it. After half an hour of reading I wrote one whole Ruby program!

i = rand(10)

puts "I'm thinking of a number x ∈ [0,9]. Can you guess it?"

while true do
    print ">> "
    guess = gets.to_i

    break if guess == i
    puts "Too low." if guess < i
    puts "Too high." if guess > i
end
puts "Good job :-)"

(I may have known a little bit of Ruby before I started ;-).

On Bandwidth

While I was in Vegas for MIX, I used my phone's built-in wifi tethering rather than pay the hotel $15/day for shitty wifi. Surprised by how good it was, I posted something to that effect on Facebook:

"quot;Is is a bad thing that the 3G I'm getting by using my Nexus S as a hotspot seems faster than my wired internet at home?"

Once I got back home, my internet was being difficult so I decided to conduct an experiment:

0.65 Mbps 1.58 Mbps

Can you guess which one's my wired internet connection? That's right: The slow one. So yeah, this is obviously not okay and I'm going to have to do some digging.

MIX '11 — In Review

The Good

The Bad

  • There were a couple sessions I went because I cared about JavaScript best practises, ASP.NET performance, jQuery, or whatever that turned out to be elementary re-treads of things I already knew but didn't know to avoid because the titles sucked.
  • Bits of the first keynote and huge swaths of the second veered into "Don't care" territory. I guess somebody cares about Silverlight, but for better or worse, Flash is still the king of the hill and Silverlight has been unable to unseat it in five major releases.
  • There were a couple of really show-and-tell-y sessions that would have been much better as lightning talks so we didn't have to watch them fiddle around in Visual Studio after they made their point.

The Ugly

  • The repeated gloating about IE 9's performance. Yeah, I'm harping on it a bit and it's good that IE team is back in the game, but Microsoft doesn't get to decide whether or not they've set the bar the way Chrome did (... and Firefox did before them). Only time will tell on that front, besides there's still the nasty issue of when "Supporting IE" will actually mean IE 9+ and not IE 6, 7, or 8.
  • The "Native HTML 5" nonsense from the first keynote. It's nonsense.
  • The dancers from the attendee party. I've never really felt the "Technology is a boys club" message that comes up whenever you talk about gender disparity in technology, but hiring a bunch of girls in corsets and garters sends that message loud and clear. I'm a little disappointed that Microsoft chose to do what it did at an event that is supposed to cater to a non-trivial chunk of the industry.

MIX '11 — Day 3

Today was the last day of the conference. There were sessions.

Bigger, Faster, Stronger: Optimizing ASP.NET Applications

The title to this talk was a little misleading as I was kind of expecting a talk about server-side performance, but it turned out to be pretty much exclusively about client-side performance. So yeah, Y-Slow and Page Speed are both great tools and you should use them, but I already knew that.

Oh yeah and if you're interested, you should read Steve Souders' book.

One comment, the guy doing the talk did a lot of packing/minification/etc. dynamically with HttpHandlers. Don't do that. Do it in your build step.

Miguel de Icaza: State of the Mono

Given that Mono is kind of important to the stuff I get paid to work on at the moment, it seemed like a good idea to go see Miguel's talk.

Right now he seems to be pretty focused on iOS/Android tables/phones and he talked about:

It was good to find out what Miguel was focusing on. It was less good to find out he was focusing on things completely unrelated to the way we're using Mono.

UX Lightning Talks

  • Magicians Get Design
  • Extending Human DNA with Design
  • On Brains, Football and Hobbits
  • Farming for Ideas

I think "Farming for Ideas" was the best talk with a message along the lines of "You can cultivate ideas by realizing that ideas beget ideas and letting them happen." Kind of along the lines of "Sketching is great because you can prototype lots of things without overcommitting to the first idea you bump into in a bar."

Good JavaScript Habits for C# Developers

This was the second talk of the day about stuff I already knew of. There's this guy called Douglas Crockford. He wrote a book. You should read it. He wrote a tool. You should use it. He did some videos. You should watch them.

Want a little more than that? I will assert that JavaScript is actually a pretty damn good language and that you actually have to learn it rather than trying to hobble along implementing C#/Java/whatever idioms. Crockford's work has a whole bunch of arguments to back up that assertion, so I won't.

Final Session

I totally bailed as there wasn't anything wort attending in the final slot.

Evening Session

  • I ventured off the strip, went to a gun range and fired an M16, MP5, SIG Sauer .45 Cal and Colt 1911. It was awesome.
  • I ate a steak. It was delicious.
  • I walked the strip (drink in hand), as I had to take advantage of the "You can totally walk around with open alcohol" nature of Las Vegas.

MIX '11 — Day 2

Today was the second day of the conference: Keynotes, sessions and the attendee party.

Keynote the Second

Windows Phone 7, Silverlight and Kinect were the topics of today's keynote. As far as WP7 goes, there was talk of the NoDo update, WP7 getting IE 9 and the upcoming "mango" update. Ars Technica has a good write up. One thing to note, they couldn't resist pitting an iPhone and a Nexus S against some dev WP7 phone in the speed reading demo. You know the deal: blah blah blah contrived, blah blah blah childish, blah blah blah we'll see if anybody cares when it ships. At least they didn't dwell on it the way they did with IE9 benchmarks yesterday.

... and then some guys came out and talked about Silverlight and Kinect and I didn't care (but at least no one talked about SharePoint). Oh yeah, and we got free Kinects. Yay, I guess.

Douglas Crockford on ECMAScript 5

It was great to see Crockford talk given that he has had a such profound impact on the way that I, personally, write JS as well as having a huge impact on the evolution of the language (he's on the ECMAScript committee). He talked about the approach the committee took to ECMAScript:

  • No new syntax.
  • Library improvements.
  • Not trying to save stupid people from themselves (It's too hard).
  • Strict mode.

He also made some interesting offhand remarks:

  • Something to the effect of "If IE6 is still relevant when the ES6 standard is published then we're doomed."
  • Something about the W3C being really hard to work with (... which given the whole WHATWG thing isn't all that surprising).

Knockout.js

Knockout.js is a JavaScript library for binding data models to UI elements. It looks kind of cool.

Building Data-centric N-tier Applications with jQuery

The title kind of gives away that this was a complete snoozefest, but the slot really sucked and there wasn't anything interesting to go to.

Script#

Script# is a library/complier that lets you write your JavaScript in C#. "Why do you want to write your JavaScript in C#?" you might ask. I don't know... this feels like yet another attempt to fix JavaScript by someone that doesn't get that JavaScript is actually a pretty good language.

  • Closure tools is a much more straight-forward approach to error checking and optimizing your hand written JS.
  • Coffee Script at least gives you very concise closures and list comprehensions while still letting you interact with JS libraries directly.
  • GWT has the same kind of "let's fix JavaScript by not using it" vibe, but at least lots of people are using it and it's old enough that the whole "JavaScript is actually kind of good" idea hadn't caught on yet when it got-going.

Phil Haack on ASP.NET MVC 3

Phil demoed Entity Framework code-first, Razor, scaffolding and NuGet. Suspiciously similar to Hanselman's demo from yesterday, but maybe a little deeper. Razor is definitely cool, but see my comments from yesterday a long the lines of "Yeah that's cool, but tell me again why I'm not just using django/Rails?"

Evening Session

  • Went to a buffet, which is a thing I guess. Not as delicious as steak.
  • I went to the attendee party. Free beer at some nightclub, plus some Zettai Ryouiki dancers which was kind of surprising. Yeah this is Vegas, but the highly sexualized atmosphere weirded me out a little.