Ted Tso has a nice little article up titled "Reflections on a complaint from a frustrated git user", where he comments on another series of blog posts about problems using git to publish changes. We're using git where I work now, and while it's a wonderful source control system, the change from centralized to distributed SCM does require wrapping your head around some new concepts, and this article is a nice starting point in understanding the differences between the two models.
Why Johnny Shouldn't "git push"
Slowly getting back into the habit of blogging...
Best. Function. Name. EVAR.
Digging around in the FreeBSD source code for the shutdown utility, I came across what is probably the best function name I've ever seen:
void die_you_gravy_sucking_pig_dog() {...}
As I've been dealing with process lifecycle management code for the past few days, this name really, really, really resonated with me.
9th Annual Robb Family Bonfire
Pyrotherapy — Is It For You?
(aka: 9th Annual Robb Family Bonfire)
(aka: 9th Annual Robb Family Bonfire)
“Oh, yeah. These guys know how to start a fire.”
— Red Adair
“As a long dead historical personage with a great personal interest in the field, I give them two thumbs up!”
— Nero
“Heh. Burny.”
— Mell W. Kelly
“That Accounts for a Good Deal. It Explains Everything. No Wonder.”
— Eeyore
“Eight years ago, I was in a dead-end, do nothing career that had left me cold. Pyrotherapy inspired me to change my life. As a result, I’m in a new dead-end, do nothing career - but at least now I’m warm!”
— A. Gore
— Red Adair
“As a long dead historical personage with a great personal interest in the field, I give them two thumbs up!”
— Nero
“Heh. Burny.”
— Mell W. Kelly
“That Accounts for a Good Deal. It Explains Everything. No Wonder.”
— Eeyore
“Eight years ago, I was in a dead-end, do nothing career that had left me cold. Pyrotherapy inspired me to change my life. As a result, I’m in a new dead-end, do nothing career - but at least now I’m warm!”
— A. Gore
Sam and Shari Robb have been practicing pyrotherapists for nine years [1]. Their proven techniques for stress relief through pyrotherapy [2] has helped countless people find pleasure [3] in the warmth and light that a big ol' honking pile of flaming wood can bring. By engaging all of the senses [4], Sam and Shari work to warm all those under their care. The sight of the fire, the crackling wood, the warmth of the flames [5], the smell of the smoke and cooking hot dogs, the taste of hot, fresh apple cider...all work together to help you forget the stresses of the day and simply enjoy the pleasure of the moment. [6]
And, let's face it. With the current round of political mudslinging, the mortgage bailout fiasco, and the Red Sox loosing their shot at the world series (again), there's nothing quite like the satisfaction of knowing that whatever your cares happen to be, you can always set them on fire.
So come help us celebrate our consistent record of autumn arson by joining us for the 9th Annual Robb Family Bonfire! If you're reading this, and saying, "Whoa... I gotta get me some of that!", but you haven't yet received an invitation, don't despair! Just get in touch with Shari or I, and we'll fill you in on the details (or send you a real, genuine, certified actual email containing the information, which is the same thing, really...)
[1] Not really. I mean, we’re just joking. The lawyers are making us say this, by the way. Not our lawyers, mind you. It was a roving horde of freelance lawyers that stopped by our house one day. We gave them some donuts and promised we’d mention them.
[2] i.e., burning stuff.
[3] Pleasure provided by pyrotherapy (see note [2], above), while nice, is transient. If you are interested in attaining persistent joy, regardless of circumstances (bonfires, roving bands of lawyers, annoying pontificating by political analysts, etc.), please consult with your local Bible-believing pastor or grab a copy of the Bible and look up Romans 3:23, Romans 6:23, Romans 5:8, and Romans 10:9-10 and 13.
[4] Some sense may not be engaged. Please check your owner's manual for more information. Not responsible for failures to engage senses caused by people who close their eyes or put their fingers in their ears and sing “La-la-la-la-la!”. Those people annoy us.
[5] Caution: fire may be hot. Seriously, dude. We’re lighting, like, a whole tree on fire. We don’t do anything by half measures. Unless you literally want to be “part of the bonfire”, watch out. (Those lawyers made us say this, too, by the way.)
[6] Not responsible for stresses induced by worries that you don’t have enough stress in your life. If that’s all you’ve got, man, then we probably can’t help you - in fact, we envy you.
Leadership 101: Followship, Part 2
What does it mean to be a follower? In modern English, we sometimes use the term to mean "interested". We speak of someone following a political campaign, or the career of an athlete or television personality, or a musical performer. In the coming weeks, you might encounter someone - or you might be someone - who is following the Olympics.
In talking about leadership, we're not interested in interested. Someone can be interested in Christianity, for example, without being a follower of Christ. Someone can be interested in a political campaign without being a follower of the ideals espoused by a particular politician. You can be confident that both Obama and McCain have individuals on their staffs whose sole job is to be completely interested in the campaigns of their opponent. These folks may be following, but they are not followers.
Let's consider what it means to follow - to be a follower.
Rule 1: Followship is Personal
To follow - to be a follower - implies that there must be someone providing you with directions. It all comes back to a person. Even if someone claims to be a follower of a political ideal, or a religious or social movement, that ideal or movement has its roots in some person. A person who says they are a follower of Marxism is, in fact, a follower of Karl Marx. A person who says they are a Christian is, in fact, a follower of Christ.
The personal aspect of followship has important implications. The primary consideration is that you simply cannot follow more than one leader. You may think that you can manage it, but in reality, it's impossible. Head out to the mall, pick two people at random, and try to follow both of them. They may travel in the same direction for a while, but sooner or later, they'll split... and you'll have to decide which one of them you will continue to follow.
Jesus made this point when he told his disciples, "Ye cannot serve God and mammon." (Mt 6:24). If you try to follow two leaders, sooner or later, you will need to decide which one of them you are really going to follow, because followship is personal.
Rule 2: Followship is Intelligent
Have you ever heard the term "sheeple"? It's a derogatory term used to describe people who don't give any thought to who they're following. It's an interesting slur, because it gets to the heart of a truth about followship: to be an effective follower requires being an intelligent follower.
My wife and I have spent some time with our girls teaching them what it means to be an intelligent follower - though not quite in those terms. We have tried to teach them to be discerning in choosing who they will follow. If you're a parent yourself, you've probably done the same thing, with the goal of teaching your children about "stranger danger". I want my children to be aware of the fact that not everybody is a nice person, and that they need to be careful and above all think about who it is they are going to follow. This is a good lesson for children to learn, and for adults to reconsider - to be an effective follower means that you need to be a thinking follower.
Deciding who you will start to follow is an important choice, and one that requires thought and consideration. Effective followship demands more than that initial consideration, though; it requires constant re-evaluation of the position of the leader, the position of the follower, and the direction in which both leader and follower are headed. An effective follower knows where they want to go, and chooses to follow a leader because doing so will get them to their final destination. An intelligent follower will realize when they've gotten off course because they're focused on getting to their destination, and not just on following someone blindly.
As a practical example, let's say that I find someone who says they are heading somewhere I've never been before - maybe Chicago. I've got a vague idea where Chicago is, relative to Pittsburgh, but I've never been there, so the idea of following someone makes sense to me. We hop in our cars, set out, and a few hours later, I see a sign that says, "Welcome to New York".
What do I do at that point? Well, if I'm an unthinking follower - one of the sheeple - then I continue following them, wherever they may be headed. However, most people at that point would probably either turn around, or stop and ask the person they're following, "Do you really know where you're going?" An effective follower is one who is is thinking not just about who they're following, but where they're going and how they're getting to the final destination.
In the book of Acts, Luke commends the Berean believers for being thoughtful, intelligent, and discerning followers of Christ. They earned this reputation because they were careful to check and make sure that what Paul was teaching them lined up with what they already knew about God and the Messiah (Acts 17:11). They knew where they wanted to go, spiritually, and were careful to make sure that the leaders they followed were taking them there.
Rule 3: Followship is Active
So - let's say you have some idea of what your final destination is. You also know that you can't get there on your own, so you've be careful and discerning and looked for someone to lead you to where you want to be. You find what looks like just the right person, and say, "Yes - this is the person I'm going to follow."
And then, you sit there, and wait. And wait. And wait some more, because the person you've decided to follow is just sitting there, going nowhere - and now, you're going nowhere with him.
To be a follower implies motion and activity. If a leader isn't moving, he can't be leading; and if a follower isn't moving, he can't be following. There's something very wrong in the relationship between a follower and a leader if one or the other isn't doing their particular job. Imagine a major league baseball pitcher who was unwilling to throw the ball, or a catcher who was unwilling to catch the ball once it was thrown! A leader who is unwilling to or unable to lead isn't a leader, no matter what they might call themselves; and a follower who is unwilling or unable to follow isn't a follower, no matter what they might want to think.
Whether you are walking along behind someone or following them spiritually, there must be some form of activity on both your parts before you can actually claim to be leader and follower. Unfortunately, while we desire excitement and interesting activities in our lives, the day-to-day activity of leadership and followship is often mundane. In crossing the continental United States, Lewis and Clark overcame hostile Indians, endured harsh weather, and made their way through seemingly impassible wilderness. While doing all this, they and each one of the men with them each took about 9 million steps. If they had ever lost their will to take that next, boring, mundane, stupid step, then they never would have completed their journey. An effective follower needs to recognize that while activity is neccesary, it is often routine - and that it is the dedication to the routine activities that is critical in followship.
The book of Nehemiah tells the story of the rebuilding of the walls of Jerusalem. One of the key verses in the book is Nehemiah 4:6, where Nehemiah simply notes, "So built we the wall... for the people had a mind to work." Nehemiah was the leader of the effort, but their achievment - the building of the wall - was the result of the fact that both the leaders and the people had a mind to work, and were willing to take all the mundane steps that were required in order to reach their destination.
In the next few posts, I'll be expanding on these three rules of effective followship, and we'll look at what the Bible has to say about Christians and followship in particular.
In talking about leadership, we're not interested in interested. Someone can be interested in Christianity, for example, without being a follower of Christ. Someone can be interested in a political campaign without being a follower of the ideals espoused by a particular politician. You can be confident that both Obama and McCain have individuals on their staffs whose sole job is to be completely interested in the campaigns of their opponent. These folks may be following, but they are not followers.
Let's consider what it means to follow - to be a follower.
Rule 1: Followship is Personal
To follow - to be a follower - implies that there must be someone providing you with directions. It all comes back to a person. Even if someone claims to be a follower of a political ideal, or a religious or social movement, that ideal or movement has its roots in some person. A person who says they are a follower of Marxism is, in fact, a follower of Karl Marx. A person who says they are a Christian is, in fact, a follower of Christ.
The personal aspect of followship has important implications. The primary consideration is that you simply cannot follow more than one leader. You may think that you can manage it, but in reality, it's impossible. Head out to the mall, pick two people at random, and try to follow both of them. They may travel in the same direction for a while, but sooner or later, they'll split... and you'll have to decide which one of them you will continue to follow.
Jesus made this point when he told his disciples, "Ye cannot serve God and mammon." (Mt 6:24). If you try to follow two leaders, sooner or later, you will need to decide which one of them you are really going to follow, because followship is personal.
Rule 2: Followship is Intelligent
Have you ever heard the term "sheeple"? It's a derogatory term used to describe people who don't give any thought to who they're following. It's an interesting slur, because it gets to the heart of a truth about followship: to be an effective follower requires being an intelligent follower.
My wife and I have spent some time with our girls teaching them what it means to be an intelligent follower - though not quite in those terms. We have tried to teach them to be discerning in choosing who they will follow. If you're a parent yourself, you've probably done the same thing, with the goal of teaching your children about "stranger danger". I want my children to be aware of the fact that not everybody is a nice person, and that they need to be careful and above all think about who it is they are going to follow. This is a good lesson for children to learn, and for adults to reconsider - to be an effective follower means that you need to be a thinking follower.
Deciding who you will start to follow is an important choice, and one that requires thought and consideration. Effective followship demands more than that initial consideration, though; it requires constant re-evaluation of the position of the leader, the position of the follower, and the direction in which both leader and follower are headed. An effective follower knows where they want to go, and chooses to follow a leader because doing so will get them to their final destination. An intelligent follower will realize when they've gotten off course because they're focused on getting to their destination, and not just on following someone blindly.
As a practical example, let's say that I find someone who says they are heading somewhere I've never been before - maybe Chicago. I've got a vague idea where Chicago is, relative to Pittsburgh, but I've never been there, so the idea of following someone makes sense to me. We hop in our cars, set out, and a few hours later, I see a sign that says, "Welcome to New York".
What do I do at that point? Well, if I'm an unthinking follower - one of the sheeple - then I continue following them, wherever they may be headed. However, most people at that point would probably either turn around, or stop and ask the person they're following, "Do you really know where you're going?" An effective follower is one who is is thinking not just about who they're following, but where they're going and how they're getting to the final destination.
In the book of Acts, Luke commends the Berean believers for being thoughtful, intelligent, and discerning followers of Christ. They earned this reputation because they were careful to check and make sure that what Paul was teaching them lined up with what they already knew about God and the Messiah (Acts 17:11). They knew where they wanted to go, spiritually, and were careful to make sure that the leaders they followed were taking them there.
Rule 3: Followship is Active
So - let's say you have some idea of what your final destination is. You also know that you can't get there on your own, so you've be careful and discerning and looked for someone to lead you to where you want to be. You find what looks like just the right person, and say, "Yes - this is the person I'm going to follow."
And then, you sit there, and wait. And wait. And wait some more, because the person you've decided to follow is just sitting there, going nowhere - and now, you're going nowhere with him.
To be a follower implies motion and activity. If a leader isn't moving, he can't be leading; and if a follower isn't moving, he can't be following. There's something very wrong in the relationship between a follower and a leader if one or the other isn't doing their particular job. Imagine a major league baseball pitcher who was unwilling to throw the ball, or a catcher who was unwilling to catch the ball once it was thrown! A leader who is unwilling to or unable to lead isn't a leader, no matter what they might call themselves; and a follower who is unwilling or unable to follow isn't a follower, no matter what they might want to think.
Whether you are walking along behind someone or following them spiritually, there must be some form of activity on both your parts before you can actually claim to be leader and follower. Unfortunately, while we desire excitement and interesting activities in our lives, the day-to-day activity of leadership and followship is often mundane. In crossing the continental United States, Lewis and Clark overcame hostile Indians, endured harsh weather, and made their way through seemingly impassible wilderness. While doing all this, they and each one of the men with them each took about 9 million steps. If they had ever lost their will to take that next, boring, mundane, stupid step, then they never would have completed their journey. An effective follower needs to recognize that while activity is neccesary, it is often routine - and that it is the dedication to the routine activities that is critical in followship.
The book of Nehemiah tells the story of the rebuilding of the walls of Jerusalem. One of the key verses in the book is Nehemiah 4:6, where Nehemiah simply notes, "So built we the wall... for the people had a mind to work." Nehemiah was the leader of the effort, but their achievment - the building of the wall - was the result of the fact that both the leaders and the people had a mind to work, and were willing to take all the mundane steps that were required in order to reach their destination.
In the next few posts, I'll be expanding on these three rules of effective followship, and we'll look at what the Bible has to say about Christians and followship in particular.
Leadership 101: Followship
"Be ye followers of me, even as I also am of Christ."
— 1 Corinthians 11:1
The world is focused on leadership. You can find training classes for leaders, books on leadership, entire web sites devoted to essays on and analysis of leadership teachniques. A quick search on Google for "leadership" turns up around 187 million results.
A similar search on Google for "followship" turns up less than 30,000 pages.
In everyday life, it is far to easy for the concerns of the world to leak into the life of the believer. If everyone around us says that leadership is important, and if our own experience is that leadership is important... well, then, studying leadership must be an important subject, right? When we fall into this way of thinking, we forget that God's ways are not our ways (Isaiah 55:9), and that man often sees things very differently from the way God sees things (1 Samuel 16:7, Matthew 20:16).
God has made it very clear that followship, not leadership, is vitally important in the life of every believer. In the garden of Gethsemane, Jesus prayed to His heavely Father and said, "...nevertheless not as I will, but as thou wilt." We call ourselves followers of Christ (1 Peter 2:21), and yet, as a group, we spend more time and effort trying to find or create leaders than we do trying to teach people how to be followers.
"Sure," you might be thinking. "We spend that time worrying about leadership, because leadership is hard! Anybody can be a follower." The reverse is certainly true as well, though. Anybody can be a leader. The focus on leadership is not to teach someone how to lead, but to teach them how to lead effectively.
Similarly, if we want people to be effective followers, we need to take the time and effort to teach them about what that means. Even more importantly, since all Christian leaders, by definition, must be followers of Christ, you can see that a believer must be an effective follower before they can be made into an effective leader.
I'm going to spend the next few blog posts examining what it means to be a follower of Christ. Before I get into that, though, let's look at what it means to be a good follower in general. Later on, we'll take these principles, and see what the Bible has to say specifically about those aspects of following Christ.
The Linux Kernel Boot Process
A nice little article on what actually happens when the Linux kernel boots, courtesy of Gustavo Duarte.
Online Biblical Language Resources
Since I posted a bunch of embedded Linux links earlier today, I feel like the "theologian" part of the blog is feeling a little anemic. With that in mind, here's some links for online Biblical langauge resources.
- Mechon Mamre includes parallel Hebrew and English texts, grouped according to Torah, Prophets, and Writings. It also includes links to audio files of the passages being read in Hebrew. I've not had the chance to use this very much, but I want to. Hebrew is a wonderful and interesting language, and I don't want what little skill I have with it to atrophy.
- A parallel Hebrew OT is avaialble via the HTML Bible. There is also a parallel Greek NT as well. Oddly enough, the Hebrew includes both Hebrew and transliterated texts, while the Greek only includes transliterated text. Odd.
- There's also online versions of the Septuagint, the translation of the Hebrew OT into Koine Greek, available from the Bible Database.
- Biblos.com includes a lot of different langage translations online, including four Chinese translations. It also includes a parallel Greek, Hebrew, and Latin translation for both the OT and NT.
- All of which are nice, but my workhorse of online Bibles is the Blue Letter Bible. It's a bit on the slower side, but the amount of data it provides - verse-by-verse links to translations, original text, lexical definitions, commentaries, cross references, and the like - are all presented very nicely.
Embedded Linux Activity
There's a lot going on in the embedded Linux community these days. Just some points of interest:
Aaaaand that's it for today. Enjoy!
- There's a new official linux-embedded mailing list, linux-embedded, that's seeing quite a bit of activity. Very encouraging. Lots of participation from the likes of Tim Bird, Mike Frysinger, Matt Mackall, Rob Landley, Wolfgang Denk, Robert Schwebel, Sam Ravnborg, Bill Gatliff, Paul Mundt... if you recognize any of those names, you know this is a list you want to keep track of. To quote Matt Mackall, "Linux-embedded is the place to be, folks. It's intended to be the catch-all list for embedded kernel work."
- Rob Landley's Firmware Linux project is plugging along. Firmware Linux uses qemu to build systems natively under emulation, though version 0.4.0 includes support for using distcc to accelerate a native build by calling out to the cross compiler. Supported platforms include arm, mips, ppc, x86, and x86-64, and Rob's stated goal is to support all the emulation targets that qemu supports. Neat stuff.
- Once again showing that mere mortals can't hope to keep up with his pace, Rob is also working on toybox, a set of standards-compliant command line utilities in a single binary. Rob was involved with busybox , and was the maintainer of that project for a while, so toybox is definitely interesting in light of the "let's start from scratch and do it better" approach he's taking.
- Fedora has several architecture-specific projects going on, including Fedora for ARM, SPARC, and PPC. My former boss-man at TimeSys, Manas Saksena, now works for Marvell, and is apparently involved with the Fedora on ARM project.
- If you've ever built a toolchain using crosstool, you may want to look into crosstool-ng, an attempt to take the ideas behind crosstool and re-implement them in a more user-friendly way.
Aaaaand that's it for today. Enjoy!
From the "What were they thinking?" Files
When I shut down my laptop, there are - inevitably - one or two programs running in the background that do not shut down properly. I haven't investigated what they are, but I suspect they're tray notification applets or something similar. In any case, I get a nice little Windows dialog telling me that the system is trying to shut down those programs, but gosh darn it, they just won't listen! A progress bar slowly fills, and when it reaches 100%, Windows (probably with much regret, and maybe just a little glee) kills off those unruly processes so it can finish shutting down my computer.
This is a momentary annoyance. If I'm waiting for the laptop to shut down, I can just click on the button that says "Go ahead and kill these processes now", and everything is OK. If I'm not waiting, then the timer runs out, and Windows does my dirty work for me.
What got to me as I did this - for the Nth time this morning, when I shut down my laptop to pack it away and head to work - was that this is absolutely insane.
Not the way Windows handles things. That's (shockingly) pragmatic. There's a recognition that not everything will work perfectly, and sometimes, you might need to apply a little brute force to smooth out the rough edges. What annoys me is that somewhere, there are apparently software developers - corporate software developers, folks making and selling software for a living - that have apparently managed to design, implement, build, debug, and test their stuff without ever shutting down their computers.
Because, you know, if they had ever shut down their systems, they would see that their software doesn't work.
What were they thinking?
This is like having a car where, when you turn off the engine, you need to pop the hood and disconnect the battery to finish turning off the radio. I mean, sure, it works, sort of. The car manufacturer has dealt with idiot radio designers long enough that they include a specialized bit of machinery that will even automatically disconnect and reconnect the battery for you so you don't accidentally leave your radio playing all night. So it all works, kind of.
The sloppiness and sloth involved in not even bothering to make sure that your software reacts properly when the computer shuts down is staggering to me. There are guidelines for this kind of stuff. Windows messages to handle. SDK examples galore about how to do it properly. And yet, professional software developers still manage to get it wrong.
I'd like to blame it all on management - the idea that someone, somewhere, decided to ship this software, even though there were some "non-critical" bugs, like, oh, not shutting down properly. Unfortunately, I think it's probably more likely that someone got sloppy, spent a few minutes poking at the problem, and said, "Oh, that's just the way Windows is. It's good enough."
So my annoyance doesn't really come from some software that doesn't shut down properly. It comes from the fact that there's someone, somewhere, in my chosen profession who just doesn't care enough about good software to bother fixing a glaringly obvious problem in their code, even though that's what they're paid to do.
That's just plain disheartening.
This is a momentary annoyance. If I'm waiting for the laptop to shut down, I can just click on the button that says "Go ahead and kill these processes now", and everything is OK. If I'm not waiting, then the timer runs out, and Windows does my dirty work for me.
What got to me as I did this - for the Nth time this morning, when I shut down my laptop to pack it away and head to work - was that this is absolutely insane.
Not the way Windows handles things. That's (shockingly) pragmatic. There's a recognition that not everything will work perfectly, and sometimes, you might need to apply a little brute force to smooth out the rough edges. What annoys me is that somewhere, there are apparently software developers - corporate software developers, folks making and selling software for a living - that have apparently managed to design, implement, build, debug, and test their stuff without ever shutting down their computers.
Because, you know, if they had ever shut down their systems, they would see that their software doesn't work.
What were they thinking?
This is like having a car where, when you turn off the engine, you need to pop the hood and disconnect the battery to finish turning off the radio. I mean, sure, it works, sort of. The car manufacturer has dealt with idiot radio designers long enough that they include a specialized bit of machinery that will even automatically disconnect and reconnect the battery for you so you don't accidentally leave your radio playing all night. So it all works, kind of.
The sloppiness and sloth involved in not even bothering to make sure that your software reacts properly when the computer shuts down is staggering to me. There are guidelines for this kind of stuff. Windows messages to handle. SDK examples galore about how to do it properly. And yet, professional software developers still manage to get it wrong.
I'd like to blame it all on management - the idea that someone, somewhere, decided to ship this software, even though there were some "non-critical" bugs, like, oh, not shutting down properly. Unfortunately, I think it's probably more likely that someone got sloppy, spent a few minutes poking at the problem, and said, "Oh, that's just the way Windows is. It's good enough."
So my annoyance doesn't really come from some software that doesn't shut down properly. It comes from the fact that there's someone, somewhere, in my chosen profession who just doesn't care enough about good software to bother fixing a glaringly obvious problem in their code, even though that's what they're paid to do.
That's just plain disheartening.
Sawdust Shock and Waterbeds for Cows
Via Marginal Revolution, a link to a WSJ story on the economics of sawdust, and... cow waterbeds. No - really.
Subscribe to:
Posts (Atom)