TED Talks
Two fascinating talks by people that you may not think are that fascinating. Make sure you have about 35 minutes. It'll fly by
Adam Savage comes across on "Mythbusters" as "the goofy one" you get occasional flashes of what makes him interesting, but nothing quite as interesting as listening to him talk about what he's interested in.
Mike Rowe is the narrator of "The deadliest catch", and the host of "Dirty Jobs". In both shows he displays so much respect for the subjects of the shows. This gives you an idea why. Also, why "follow your passion" is the worst career and life advice
Glenn Gould
Broken gets fixed, shoddy lasts forever.
Most of what we work on is either giant new features or critical bugs that prevent installations from succeeding. What gets lost in all this is the pile of very small, very simple, but very annoying bugs that don't cause anaconda to fail but don't make it look good either. You know the kinds of bugs I'm talking about - deprecation warnings, messages getting printed to tty1, dialogs that either don't go away or don't display in the right place, progress bars that don't move, etc.and then a link from kottke here:
One of the developers I work with said this after I complained about a lingering issue in one of our products. It rings true. When deadlines are tight, and there is more work to get done than there are developers or hours in the schedule, it’s not the squeaky wheel, but the jammed one that gets the grease. The lesson, then, is to make sure it gets done right the first time. You never know when you’ll have the opportunity to revisit it.It's a constant irritant at my work. I put something in that works, but doesn't work perfectly, I think I'll get around to fixing it later. Later never comes. If it's not done right the first time, it's going to hang around and irritate you forever. Lesson: Do it right the first time.
Ruby Gem Abuse.
So, I figured that if I was setting up a cron job to tweet XKCD, I figured I might as well broadcast to everyone when I put up a new blog post. If you find this annoying, message me and I can turn it off. I swear to god, I only blog every once in a blue moon, so it shouldn't be a big deal...
#!/usr/bin/env ruby require 'rubygems' require 'open-uri' require 'hpricot' require 'httparty' require 'atom' class XKCD def initialize @url = 'http://xkcd.com' @hp = Hpricot(open('http://xkcd.com')) end def comic info = (@hp/"h3").collect{ |inf| inf.inner_text.split(': ')[1] } return info end end class Twitter include HTTParty base_uri 'twitter.com' basic_auth 'mattrose','password' def initialize(user, pass) self.class.basic_auth user, pass end def post(text) self.class.post('/statuses/update.json', :query => {:status => text}) end end class Folkwolf def initialize @feed = Atom::Feed.load_feed(URI.parse("http://blog.folkwolf.net/xml/atom10/feed.xml")).entries end def latest latest = @feed.entries[0] return latest end end image_url = XKCD.new.comic feed_url = Folkwolf.new.latest.links[0].to_s feed_updated = Folkwolf.new.latest.updated ffile = '/tmp/.folkwolf_latest' `touch #{ffile}` if feed_updated != open(ffile).read open(ffile, 'w') { |f| f.write("#{feed_url}") } Twitter.post('/statuses/update.json', :query => {:status => "New Blog post: #{feed_url}"}) end file = "/tmp/.xkcd_latest" if RUBY_PLATFORM !~ /mswin32/ `touch #{file}` end if open(file).read != image_url[0] if RUBY_PLATFORM !~ /mswin32/ open(file, 'w') { |f| f.write("#{image_url[0]}") } end Twitter.post('/statuses/update.json', :query => {:status => "d mattrose #{image_url[1]}"}) end
The Linux Hater's blog
We hate Linux, and you should too.
It's not often I advertise that I found a new blog, but this post convinced me that this blog was something special. I think it's actually a sign of the maturity of the Linux Community. Though some people don't have a sense of humour about it, and write pages-long screeds in response, the general response of the community is positive. It's funny, and it's true.
Here's a snippet that is remarkably true.
Here's the difference: Take a software product from some commercial company. If you ever get a chance to get through the marketing folks and talk to their devs, chances are that they know exactly all the ways concerning how their products suck. They'll have a huge list of reasons of why they can't implement some feature that you, non-paying, ass-hat, non-customer, wants. And then they'll tell you what they should, "Show me the money, or bugger off. We're working here." And then they'll talk shit behind your back about how you have no idea what it takes to ship reliable working complex software. What do you get in the Linux world? Actually, most of the devs are the same. They wrote the code. They know how it sucks. They wrote it for fun, and they don't give a fuck. But some fucktard user who thinks his limp dick is great software comes along and starts talking like it is the shit. And he has to tell everyone else. And if you don't agree? fuck, you must be in that other camp. But really, thanks for that comment. Sometimes it does take someone to shit on my front porch before I can really describe the stench to you.
UPDATE:
I've been working on a Mac port of Terminator recently, It's written in Python, so it would be easy you would think. Except I haven't gotten past the font-rendering conundrum. The Linux Hater feels my pain. I'm going to have to figure out how to hook vte into the mac font renderer.
why RMS is a jackass
This guy says it better than I could.
Keeping that in mind, Richard Stallman's missive on the subject just riled me up:Oh, for fuck's sake. You really just employed a simile comparing a proprietary OS to addictive drugs? You know, ones causing actual bodily harm and possibly death? Really, Stallman? Really?Proprietary software keeps users divided and helpless. Its functioning is secret, so it is incompatible with the spirit of learning. Teaching children to use a proprietary (non-free) system such as Windows does not make the world a better place, because it puts them under the power of the system's developer perhaps permanently. You might as well introduce the children to an addictive drug.If proprietary software is half as good as free software at aiding children's learning, you're damn right it makes the world a better place to get the software out to children. Hell, if it doesn't actively inhibit learning, it makes the world a better place. The problem is that Stallman doesn't appear to actually give an acrobatic shit about learning, and sees OLPC as a vehicle for furthering his political agenda. It's shameful, the lot of it. </blockquote
ipod tip from the well
just so I don't forget, and in case anyone wants to know, i found this tip for showing voltage on an ipod
WRT checking battery life, you can ask the current owner to do this on
a Mac:
touch /Volumes/iPodname/iPod_Control/Device/show_voltage
Or on a PC, create a file named show_voltage (no file extension) in
iPod_Control/Device via notepad or something.
This will force the iPod to display a numeric readout of the battery
voltage ranging from 0 to 519. If you ask the owner to fully charge it
and then let it play for 10 minutes to see how much it depletes, you'll
have a good idea of the quality of the battery.
Source Code Control Zen
one of my main responsibilities at work is source code control and integration. This could be considered a somewhat trivial work, but these horror stories keep me motivated. moblog: The Windows Shutdown crapfest
In small programming projects, there's a central repository of code. Builds are produced, generally daily, from this central repository. Programmers add their changes to this central repository as they go, so the daily build is a pretty good snapshot of the current state of the product.Joel on SoftwareIn Windows, this model breaks down simply because there are far too many developers to access one central repository -- among other problems, the infrastructure just won't support it. So Windows has a tree of repositories: developers check in to the nodes, and periodically the changes in the nodes are integrated up one level in the hierarchy. At a different periodicity, changes are integrated down the tree from the root to the nodes. In Windows, the node I was working on was 4 levels removed from the root. The periodicity of integration decayed exponentially and unpredictably as you approached the root so it ended up that it took between 1 and 3 months for my code to get to the root node, and some multiple of that for it to reach the other nodes. It should be noted too that the only common ancestor that my team, the shell team, and the kernel team shared was the root.
A young Windows engineer writes:prior to the restart effort of Longhorn, there were about seven [branches], reverse-integrating into one main branch every two or three weeks perhaps. Now, imagine several thousand developers checking in directly into seven branches. This will lead to two things:
you check in frequently, and there's a very high chance of either breaking the build, or breaking functionality in the OS, or 2., as a counter-reaction, you don't check in very often, which clearly is bad, since now you don't have a good delta history of what you did.
So this clearly didn't scale. As part of the restart effort, we decided that each team would get its own feature branch, each feature area (multiple teams) would go up to an aggregation branch, and those would lead up to the final main branch. (As such there's now north of a hundred branches in tiers, leading up to about six aggregation branches.) Teams were free to choose how many sub-feature branches they wanted, if any, and they were free to choose how often they wanted to push up their changes to the aggregation branch. As part of the reverse-integration (RI, i.e. pushing up) process, various quality gates had to pass, including performance tests. Due to how comprehensive those gates ended up being, this would take at least a day to run, plus perhaps a day or two to triage issues if any cropped up; so there was a possibly considerable cost to doing an RI in the first place. However, these gates were essential in upholding the quality of the main branch, and had they not existed, the OS would have never shipped. I suppose it's one of those 'what doesn't kill you...' type deals.
I'm inordinately proud of this
This is a Screen shot of the GIMP, a program designed for the X Windows system, running natively on Quartz, on my beloved MacBook. I of course take all the credit here, but it's all due to the good people at Imendio, who are porting GTK over to Quartz. You can read about their efforts here
