The tertiary effects of actions are really hard to predict in advance. The return of apex predators here substantially revitalized the ecology of Yellowstone.
That best sums up my feeling on presentations. Slides are one prop in a presentation, they are not the presentation themselves. Unfortunately, it’s really easy to fall into the trap of making the slides “the presentation”.
A script is not the same thing as a movie. Slides are not the same thing as a presentation.
“Read, read, read. Read everything—trash, classics, good and bad, and see how they do it. Just like a carpenter who works as an apprentice and studies the master. Read! You’ll absorb it.”
– William Faulkner
Icehouse 3 is upon us, and as someone that is on a bunch of core review teams, it means a steady drum beat of everyone asking how do they get core reviewers to review their code. My standard response has been “make sure you are also reviewing code”.
Understanding implicit style
While most projects use the hacking program to check for trivial style issues (wrong formatting), there are a lot of other parts of style that exist inside a project. What’s a good function look like? When is a project handling exceptions vs. doing checks up front. What does spacing inside functions look like. What “feels” like Nova code, and what feels foreign and odd.
This is like when you are invited to a party at someone’s house for the first time. You walk in the door, and the first thing you do is look to the host, and the guests, and figure out if people are wearing shoes in the house or not. And follow suit if there looks like there is a pattern. It’s about being polite and adapting to the local environment.
Because unless you read other people’s code, you’ll never understand these things. There are lots of patches I look at briefly, realize that they are in some whacky style that’s so foreign to the code at hand, that I don’t have the energy to figure out what the author means, and move on.
Taking load off review teams
As a core reviewer, I currently have about 800 patches right now that I could +2 or -2. Given the rate of code coming in, that might as well be infinite. And it grows all the time.
By reviewing code, even when you don’t have approval authority, you’ll be helping the review teams weed out patches which aren’t in any way ready to move forward. That’s a huge time savings, and one that I appreciate.
Even if it’s something as simple as making sure author’s provide good commit messages, that’s huge. Because I’ll completely skip over reviews with commit messages that I can’t understand. That’s your opportunity to sell me on why I should spend the next 30 minutes looking at your code. A good commit message, being really clear about what problem this code hits, and what this solution is, and why this implementation is the right approach, will make me dive in.
A terrible or unclear commit message will probably just make me ignore the code, because if the author didn’t care enough to explain that to me in the commit message, there are probably lots of issues in the code itself. Even if you and I had a conversation about this code last week, don’t assume I remember all of that. That was probably 50 code reviews ago for me, which means the context of that conversation has long since flushed from my brain.
If you review a bunch of code, you’ll understand how these things impact your ability to review code, and will naturally adapt how you write commits (including the message) to make life of a reviewer easier.
Seeing the bigger picture
People tend to start contributing in just one corner of OpenStack, but OpenStack is a big, interconnected project. What you do in one corner can effect the rest of the project. If you aren’t reviewing code and changes happening at other layers of the project, it’s really hard to know how your piece fits into the larger picture.
Changes can look fine in the small, but have a negative impact on the wider project. If you are proactive in reviewing code more broadly you can see some of that coming, and won’t be surprised when a core reviewer -2s you because you were going in a different direction than the rest of the project.
Becoming a better programmer
When I started on the OpenStack project 2 years ago I hadn’t done python in a real way for years. My python was very rusty. But one of the first things I did was start reviewing a bunch of code, especially by some of the top people in the project.
There are some really smart and really skilled people in the OpenStack project. There are people that have been part of the python community for 15+ years. People that live and breath in python. Just reading their code makes you realize some of what can be done with the language, and what the “pythonic” way of doing things is. Nothing is better training for becoming a better python developer than learning from these folks.
Some times you’ll find a real issue, because no one is perfect. Some times you’ll find something you don’t understand, and can leave a comment as a question, which you’ll probably get an answer to. But all of it will be learning. And you will become a better developer.
It does make a difference
I’ll be 100% honest, with 800+ reviews I should be looking at, I play favorites. People that I see contributing a lot on the review side (not just volume, but real quality reviews that save me time) are people who’s code I want to review, because they are contributing to the whole of the project, not just their little corner.
So that’s why you should review more code in OpenStack. It will really contribute to the project, make you a better developer, and through all this you’ll find your code is naturally aligning better with OpenStack and gets reviewed more often. Realize this is not an overnight fix, but a long term strategy for aligning with the community and becoming part of it.
Third, and perhaps the best argument against OpenStack needing a leader, is the open nature of the beast itself. It’s precisely because there’s no dominant leader that OpenStack remains so transparent and competitive – everyone’s contributions can be seen by everyone else, and this drives people to do even better.
Most likely, those who say that OpenStack needs a leader do so because of history – previous open-source projects like Java, Linux and Android have all had a ‘dictator’ at the helm, but that doesn’t necessarily mean it’s the best path for OpenStack.
If you remember correctly, Linux’s leadership and development model was largely dismissed by pundits, until it had 15 years of success under it’s belt. Then it became gospel of how Open Source projects should run.
But everything evolves over time. It doesn’t really surprise me that the pundits see OpenStack’s leadership model as different, and immediately dismiss it. We’ve got 3.5 years under our belt. Maybe at 5 or 6 everyone will now say all Open Source projects need to run like OpenStack.
Which would of course be wrong. While there are certain common threads between different Open Source communities, every community is different. Why? Because Communities are made of real people. Real people with different passions, strengths, weaknesses, biases, loves, constraints, and moments of brilliance. This isn’t something you can model with spheroid approximations of upstream developers. Replicating another project’s leadership model might be easy, but in most cases isn’t what your community actually needs.
Are there areas for improvement? Sure. There always are. But improvement is a watch word for OpenStack, something we apply everywhere: to code, to process, to communication.
So I agree, we don’t need a single leader. And the evolution that continues in OpenStack will be a key strength, not a weakness as the project goes forward.
For the past 20 years, IBM has been an avid, methodical buyer of its own stock. In 1993, it had 2.3 billion shares outstanding. Today it has 1.1 billion, shrinking at more than 1% per quarter over the past few years. At that pace, there will be no more publicly traded IBM shares left by 2034.
This was a key reason that I decided to leave IBM. The current focus on earnings / share at the expense of all else isn’t becoming of a company with a 100 year tradition of innovation. In the quest of this it also looks like there will be another massive layoff in the next couple of months.
Still makes me sad, as there are tons of great people doing great work at IBM. But it’s more in spite of the executive leadership than because of it.
Chalk one up for the enemies of patent trolls: The Supreme Court on Monday threw out a request for trial from alleged patent troll Soverain Software.
The case, called Soverain Software LLC. v. Newegg Inc., is one of three such cases the Supreme Court is expected to consider this year. While the Court will likely hear the remaining cases, which deal with finer points of patent law, its dismissal of Soverain speaks to the potential frivolousness of its claims.
Remember, Newegg took the hit to go and fight this in court, which very few entities have been willing to do, and that made the world better for all of us. Consider that next time you are considering purchasing computer equipment.
How distorting are map projections? Here’s what four commonly used systems of projection do to a human head.
Mercator really is that terrible. It’s a shame that’s what most people think our world looks like.
I grew up in rural Michigan, 45 minutes away from any freeway. I’m the first male member of my family in three generations never to have worked in front of a lathe, and aside from one uncle, I’m the oldest with all of my fingers intact. The university had given me some grandiose ideas like “true solidarity with the oppressed,” and I figured “the oppressed” lived in Detroit, never mind the patrimony. I thought I was making a sacrifice. I thought moving here was staying home when everyone else was leaving the state. I thought I was going to change the world and had some vague notions of starting a school. I cringe at how naive I was. I first rented an apartment in the city, sight unseen, that didn’t have a kitchen sink, so I did my dishes in the bathtub.
Aside from bidding jobs, I spent my days like everyone else: sanding floors in cheap rentals for $8.50 an hour, which got me thinking: I could buy a house and fix it up myself. Not that I was sure how to go about buying, let alone renovating a house. It was just an inexplicit dream, some trick that would keep me from leaving like everyone else, make me a true Detroiter.
A really interesting long read about a guy that decided to buy and fix up a house in Detroit. As we’ve now, as a country, expanded into all the places we can, our next century is going to be as much about rebuilding and reclaiming as anything else. This is a great micro lens for the macro picture of what that means.
As part of this, I just converted the two websites that I run, dague.net and mhvlug.org to SSL only. I’d had an SSL cert on the admin portion of dague.net for a while, but decided there was no reason to not make all traffic SSL.
You can get certificates tons of places. I had bought a $12/yr cert for dague.net through namecheap. For mhvlug.org I used startssl, which provides free 1yr certs for individual hosts. They have a process for signing up, doing some automatic verification that you own the domain in question, and then you are off to the races. Their process is about as easy as SSL management tends to be, and there are good instructions for installing the cert into Apache.
SSL comes from a time when the IPv4 namespace looked small, but manageable. Before it became clear that the median # of IP addresses per human on earth would be 5 – 10. Oh how naive we were.
As such, the base protocol has no equivalent of vhosts, which means 1 hostname == 1 ip address. dague.net and mhvlug.org live on the same linode, which means I need to carry a second IPv4 address for compatibility.
In 2006 there was an approved extension to TLS call SNI (Server Name Indication), which would bring SSL to the world of vhosting. It’s largely supported, however there are some substantial holdouts, including:
- Android < 3 – there are enough Android 2 devices out there yet that I don’t want to kill that off
- Python < 3.3 – fixing this in 2.x was considered a “feature” and rejected, which means Python 2.x automation tools are directly an impediment to SSLing the web, as any python web service clients will fail unless they are on Python 3.3. (We seriously need a Python 2.8)
Both of these domains are IPv6 enabled. In Apache this means you need to duplicate the SSL configuration for IPv6 as well. Oh, and you need a couple more IPs (I only had 1 on the box). Linode helpfully allocated me a /64 for my box, so now I can IPv6 to my hearts content.
What stands behind us and an all SSL internet?
SSL setup is a little harder than just throwing up a web server. That being said, it’s not that bad. I realistically think the IPv4 shortage and the failure by thing like python to fix the issue in the version people have deployed, is a real problem. Because basically bots won’t be able to find these sites, they’ll fail back to the default site.
At this point I’m not going to launch anything new that’s not SSL enabled. SSL should be our default as the internet community, and right now it only costs a small amount of time and an extra IP address.
The Thinkpad X1 Carbon is Lenovo’s stab into the ultrabook market. Made of carbon fiber (hence the name), it’s very light. The last 6 months with my Samsung chromebook has made me appreciate lightness when it comes to laptops.
I’d been lusting after one of these for the last year. I decided with new job it was time to treat myself to one for my personal laptop.
A great Linux machine
First off, this is about the best experience I’ve had with a Linux machine. Everything works, and is completely rock solid. It showed up right before Christmas, I did an Ubuntu install with full disk encryption, then went about restoring my 50G home directory onto it (which takes a few hours even over ethernet).
The hardware is an i5 with Intel graphics. Over the years I had gotten so used to nvidia graphics, which are fast, but fail to suspend on about day 4. Which was typically fine, because they were work machines and Lotus Notes would crash Unity around day 3 anyway, so a restart was in order. But with Intel graphics this has been rock solid. I’m on my 3rd boot since I got it (did actually decide to take a kernel update the other day), with me suspend / resuming on average 6 times a day. Never an issue. Oh right, this is how a laptop is supposed to work.
Everything I’ve tried so far as worked fine. Displayport is fine, fingerprint reader has a pam module, which I used for about a week, then found it was requiring a few more swipes than I liked, so uninstalled it.
Battery life is consistently 5 – 6 hours. So my charger stays in my office, the laptop rarely does. What’s even better is it’s a new kind of battery tech which means it does a fast charge to 80+% in < 45 minutes. So when I’m actually down to less than an hour of battery I’ll take it up to the office, and call it a break (or jump on my desktop).
The X1 carbon is the new style Thinkpad keyboard, which you’ll also find in things like the T430. While it isn’t the old reliable Thinkpad keyboard, I’m actually very happy with it. It has a slightly different feel, but you get used to it over time. It has nearly the same throw of the old thinkpad keyboards, not quite the same, but close. I find the feel on the individual keys is actually nicer than the old Thinkpad keyboards. The surface just feels nice.
It’s still the generation that has real mouse buttons, which are actually now a think of the past, and a contributing reason to getting this versus a newer thinkpad.
Realize, I’m about as invested in Thinkpad keyboards as anyone. My desktop keyboard is the USB Thinkpad keyboard, and I just ordered 2 more of them as backups given that it’s a discontinued item.
1600×900 at 14″ is respectable. Importantly, it’s a matte screen, which means it’s usable around bright lights. It’s not a great screen, especially compared to what I’m using on my desktop, however it’s a comfortable one to work on. There are versions with touch screens, which would add weight and gloss, neither of which I was interested in.
Slightly Older Hardware
The X1 carbon came out about a year ago, so it’s an i5 2 core processor. Ram is 8G max (it’s soldered on, so you want to get the max). SSD maxes out at 256G. It’s field replaceable, but not in a standard package, so max that out as well.
In an ideal world
This would have a better screen, and I could get it with speed and feed bump in the underlying hardware. That being said, I’ve got a nice new Haswell desktop with a ton of memory and SSD. This laptop is a joy to use, so I’m ok with slightly less speed on it. I did build a powerful workstation 6 months ago for a reason.
And then Lenovo went all Crazy Pants
At CES they announced a new X1 carbon. Faster processor, better screen… and a completely scrambled keyboard. No more function keys, instead a capacitive “touch region” . Caps lock removed and turned into a split home / end key. Tilda key moved over to between the right Alt & Ctrl keys. It also removes the mouse keys, which makes the touchpad non disableable. Complete crazy pants.
Which blows my mind. When Lenovo got the Thinkpad franchise, they got a keyboard design which was loved by millions. There were reasons why they needed to touch the keyboard once, because the old one won’t fit in an ultra book. It takes up too much depth. However the level of scrambling they are doing to it now is just out of control. It makes me sad.
But back to Linux…
As a Linux laptop, this is a joy. This generation of X1 carbon is going to disappear soon with the big windows 8 push on their new version. So if you were ever thinking about it, now is the time to act.