December 07, 2013
Robert O'Callahan -- Why I Don't Worry About Global Warming (Much)
I don't worry about global warming or any other threat whose most important effects are several decades out. Technology is going to change everything by then: either we'll kill ourselves in more immediate ways, or at least destroy most of civilization (which would do a lot to reduce carbon emissions!) --- or we'll make a lot more technological progress, probably developing brain uploading, strong AI, or other game-changing capabilities we can't forsee yet. Probably the former.
People who worry about what will happen when the sun burns out in five billion years are the worst.
December 07, 2013 09:51 AM
One Day The Luddites Will Be Right
Whenever a person proposes that technological advances might reduce human job opportunities in the long term, someone responds with the Luddite Argument: "the Luddites thought the Industrial Revolution would destroy their jobs, and they were wrong, so you're wrong too" . Some go further and explain that the Luddites were wrong because technological productivity improvements are balanced by finding new uses for human labour. Wikipedia has a good summary. However, it seems obvious to me that at some point technological advance will --- or at least could --- be a net destroyer of jobs. All you have to do is imagine a world where robots can do everything a human can do, at lower cost than maintaining a human life. Clearly, there are no economically rational job opportunities for humans in that state , so at some point of technological advance short of that state, there's net job destruction.
The only question is whether and when we will reach that point. It seems inevitable we'll reach it unless something halts technological progress or some very strong flavor of Cartesian dualism holds. Economic arguments that human labour will still be worth something at that point are just wrong.
 Actually the Luddites were right; the Industrial Revolution did destroy their jobs, and drove them into misery. But they were wrong in that they did not forsee the net benefits to future generations.
 There could be sinecures to keep humans occupied, but they would not be economically motivated.
December 07, 2013 09:34 AM
December 06, 2013
Robert O'Callahan -- WebRTC And People-Oriented Communications
Tantek had an interesting blog post about making people rather than protocols the organizing principle of communication apps. I like his vision quite a lot. One neat extension of his post would be to introduce WebRTC. With WebRTC it would be relatively easy to have the "Robert O'Callahan" app check if I'm currently logged into the appropriate receiver app, at any WebRTC-capable endpoint, and if I am, establish a voice or voice+video session with me (with peer-to-peer transmission, naturally). If I'm not logged in, WebRTC lets you record a message for later delivery. This would be very cool.
December 06, 2013 01:53 AM
December 03, 2013
Robert O'Callahan -- Another Knee-Jerk Reaction To International Rankings
Predictably the OECD "Pisa" report ranking countries' education results has caused a stir in New Zealand. New Zealanders, or at least their news media, love international rankings of all kinds --- especially if they can be portrayed negatively for New Zealand. As often, the latest report, and the discussion around it, has some major problems.
For starters it's interesting to compare the initial NZ Herald story with the more nuanced reporting from the AP wire story. The Herald chose the completely fallacious headline Significant drops in NZ educational achievement --- fallacious because a drop in ranking does not necessarily mean a drop in actual achievement (and in this case, there is no evidence of a drop in achievement). (PPTA president Angela Roberts gets this right here.) The Herald story (and its followups) simply ignores the issues with the Pisa report which are touched on by the AP story, and better explained in Slate (mainly, it's invalid to compare city-states with entire countries, especially including Shanghai but no other part of China!).
Apart from that, some of the reactions to the report are ridiculous. There's this:
But Labour says any drop in the rankings should be sheeted home to an excessive focus by National on "testing" over the past five years. Although National Standards does not actually involve national testing, Labour's education spokesman Chris Hipkins said, "It shows that the last five years' focus on test-taking has been a disaster and it has actually narrowed the focus of our system and it has actually decreased the level of achievement within the education system".NZ's ranking drop is mainly due to Asian countries increasing theirs. Those countries' education systems are far more focused on testing than NZ's has ever been, which is probably why their ranking is increasing: if you focus on testing (and teach to the test), you do really well on tests, which is of course what studies like Pisa measure, since tests produce data and other educational activities don't. Chris Hipkins, if you really think Pisa is important you should advocate a big increase in national testing.
I actually think national standardized testing is important, but it's not the only important thing and the Asian education systems ranked highly in the Pisa report have massive problems despite producing good test results. My wife and many other people I know went through those systems and describe how they're focused on rote memorization and discourage any kind of learning other than school and after-school coaching on their core subjects. For example, I taught myself computer programming in my copious spare time after school, but for most children in Hong Kong that simply wouldn't have been possible. People talk about how in exams you "give it back to the teacher" --- cram for exams, do well, and then forget it as you prepare for the next one. I think it would be very interesting to re-test children three years after they left school to see what they've retained.
It's really important to avoid over-optimizing for the things we can measure at the cost of the things we can't as easily measure. It's also really important to not overreact to every international ranking report. We have to think critically about these things. I wish the media would.
December 03, 2013 10:33 PM
Does John Banks Only Do Good?
I read this rather unusual statement by John Banks:
"I've spent a lifetime of doing good, a lifetime of trying to balance my family ledger, a lifetime of making a difference for people, and a lifetime of contributing to this country. I only do good. I don't do bad things."Reporters like to take quotes out of context so maybe Mr Banks didn't really mean to say this, but for the sake of argument I'll assume it's accurate.
What strikes me about this statement is that in the past John Banks has portrayed himself as a Christian, and I don't think a Christian can make that statement or anything like it. A bedrock truth of Christianity is that we are all sinners, and bad ones. We've all done bad things and we all keep doing bad things. We generally don't realize it, because we're good at self-justification and our standards are lower than God's, but we are all desperately in need of forgiveness. This holds no matter where we are on our spiritual journey --- "forgive us our sins", as Jesus taught his disciples to pray.
So, for a self-professed Christian to say "I only do good, I don't do bad things" is an egregious error, no matter how it was meant. I hope that any Christian genuinely practicing their faith would try to steer away from saying anything like it under any circumstances, lest they give a false impressions of what Christians believe.
December 03, 2013 08:30 PM
December 02, 2013
Robert O'Callahan -- Wanaka
Last week my wife and I celebrated our wedding anniversary by taking a few days off in the lakeside town of Wanaka in the South Island. The weather was unexpectedly delightful. As is our wont, we spent a lot of time walking during the day and refueling at night.
We arrived on Tuesday. In the evening we walked through the town to Iron Mountain and walked up it (it's small). On Wednesday we ascended Roy's Peak. That walk has a 1200 metre elevation change but the views are definitely worthwhile. On Thursday we drove out to Mt Aspiring National Park through Matukituki, to do the Rob Roy Glacier walk. This is a really beautiful walk, through pasture, into the bush, up the Rob Roy valley, emerging in an alpine meadow at the head of the valley with stunning views up the mountain-face to the Rob Roy glacier --- snow gleaming in the sunshine, and about a dozen meltwater waterfalls streaming down the face. On our last day we drove out to Haast Pass and then back to Queenstown.
The whole area is very beautiful. It's quite special to sit by the lake and watch people sailing, swimming and fishing, surrounded by ice-capped mountains. The Department of Conservation's Mt Aspiring activity centre is in Wanaka and well worth a visit. The number of day walks and multi-day tramps in the region is just staggering; there must be a couple of dozen different huts. No wonder the town is beseiged by tourists :-).
December 02, 2013 09:20 PM
November 18, 2013
Robert O'Callahan -- Mozillians At The Tongariro Crossing And Orakei Korako
Last weekend some local and visiting Mozillians (visiting for a Gecko media work week), plus assorted loved ones (such as my children), drove down to Tongariro National Park to do the Tongariro Crossing on Saturday.
The weather was reasonably good --- cloudy, but mostly dry. As often, there was thick fog up on the mountain, clearing as we descended the northern flank. Even though the fog eliminates some of the amazing views, it's still very atmospheric and fun in its own way. It does help conceal the other thousand people doing the hike :-).
I've done the TC several times before but this was the first time I've done it since last year's eruption from Tongariro's Te Maari crater. That has made the TC even more interesting! On the descent past Te Maari you can now see large quantities of steam venting from the crater --- quite impressive. The Ketetahi Hut was hit by boulders from the eruption, and overnight stays are now forbidden there for safety reasons. Two decent-sized holes punched in the hut roof have been preserved and make an excellent argument for following the rules :-). An even better argument is just down the track from the hut: a sizable impact crater, with the impacting boulder mostly buried at the bottom of it. No-one was at the hut on the night of the eruption, but if they had been, it would have been a terrifying experience!
Near the end of the track, it crosses a stream. Lahar activity associated with the Te Maari eruption has blocked the original course of the stream, so the existing bridges are over dry streambeds. Now the stream spreads through the bush in other places and we had to splash across.
We finished the walk in just over seven hours, and a good time was had by all.
On Sunday some of us drove back to Auckland via Orakei Korako. I hadn't been there since I was a child, even though I really enjoy geothermal areas. I very much enjoyed Orakei Korako! It has an excellent mix of features --- geysers, silica terraces, hot pools, boiling mud, and a cave --- all in a lovely bush setting, plus you cross a small lake in a boat to get to it. This is my second favourite geothermal area in New Zealand, after Waimangu Valley. Waimangu's Frying Pan Lake is hard to top :-).
November 18, 2013 10:00 PM
November 09, 2013
Asa Dotzler -- moving blog to http://asadotzler.com
After more than a decade of blogging at mozillaZine.org, I'm moving my active blogging to http://asadotzler.com. Thank you, Kerz, for providing this hosting service to me and many other Mozillians for so many years.
If mZ is willing, this archive of articles will remain here for some time but new blogging will be happening over at the new domain http://asadotzler.com.
If you were subscribed to this blog's feed, the new feed is http://asadotzler.com/feed/.
Thank you all for your participation here and I hope to see you over at the new digs.
November 09, 2013 06:52 PM
November 03, 2013
Robert O'Callahan -- A Tale Of Two Cities
The week before last I was in Paris for the "Web rendering" work week. It went reasonably well. The Paris Mozilla office is as amazing as it looks. Benoit Jacob gave us an excellent walking tour on Sunday. Brian Birtles and I split off and attended Trinity International Church, which seemed really good. It's great to see what God is doing in different places and be a tourist in God's kingdom. The actual work was good. It was a mix of briefing each other on what's going on, brainstorming new directions, and thrashing out problems. It was particularly good to have Gaia and Shumway hackers there to talk about their issues.
Due to some combination of jet lag and God's grace I woke up at 7am sharp every day and went for a run, training for the Auckland half-marathon. It was a lot of fun to run from the hotel down Rue de Louvre to the Seine, along to the Eiffel Tower, back along the Seine, and then on a good day do a lap of Île de la Cité and Île Saint-Louis. However it was a bit strange to be running at 8am with the sun not having risen yet!
I got back to Auckland on Monday and had an extremely hectic few days before I head out to San Francisco today (Sunday). The biggest thing on my mind was the half-marathon, which was today, but I only had time for a couple of 10km training runs. There's a nice 10km circuit from my house to the summit of One Tree Hill and back. This takes me through city streets to the bucolic charm of Cornwall Park and One Tree Hill --- especially charming at this time of year, with cows and calves, sheep and lambs, verdant pastures, blooming trees, and excellent views from the summit of all of these, as well as the Waitemata and Manakau harbours. Entirely different from Paris but to my mind even more delightful!
I really enjoyed the half-marathon today. Not having done one before, I wasn't sure what to expect, but was pretty pleased with my result. I ran faster than I did during my solo runs; I think the crowd helped motivate me, especially towards the end. I didn't want to try it barefoot, at least for the first time, so while in Toronto last month I bought some Vibram foot-glove-type footwear, by asking for the closest thing to barefoot they had. These seem pretty good. Interestingly though, every other person I saw during the race had regular footwear on. In fact several people at the starting area were curious about my footwear and asked me various questions. It's a bit awkward since I don't really know anything about running!
Now I'm heading off to San Francisco for Mozilla's LEAD program. This is the last session so hopefully after this week my travel and the rest of my life will return to relative normality. Though we do have the media work week in Auckland in a couple of weeks, with a trip to the Tongariro Crossing thrown in, and after that a trip for our wedding anniversary, ... so it goes.
November 03, 2013 05:31 AM
October 15, 2013
Asa Dotzler -- A Mozilla Lesson from Mos Def
One of my favorite artists of the last couple of decades, Yasiin Bey, made a killer point about Hip Hop and the Hip Hop community back in his debut solo album from late 1999, a thought that resonates a lot with me and my involvement in the Mozilla movement over the last 15 years.
Talking about the Hip Hop scene at the turn of the century, here's some of what then Mos Def had to say in "Fear Not of Man", the first track on "Black on Both Sides."
It's a lot of things goin on y'all
21st century is comin
20th century almost done
A lot of things have changed
A lot of things have not, mainly us
We gon' get it together right? I believe that
Listen.. people be askin me all the time,
"Yo Mos, what's gettin ready to happen with Hip-Hop?"
"Where do you think Hip-Hop is goin?"
I tell em, "You know what's gonna happen with Hip-Hop?"
"Whatever's happening with us"
If we smoked out, Hip-Hop is gonna be smoked out
If we doin alright, Hip-Hop is gonna be doin alright
People talk about Hip-Hop like it's some giant livin in the hillside
comin down to visit the townspeople
We are Hip-Hop
Me, you, everybody, we are Hip-Hop
So Hip-Hop is goin where we goin
So the next time you ask yourself where Hip-Hop is goin
ask yourself.. where am I goin? How am I doin?
I've been feeling and saying this about Mozilla since before "Black on Both Sides" was released and I'm certain it's more true today than it ever was before.
If you're a part of the Mozilla community and you're asking other people where Firefox is going or where Firefox OS is going, take a minute to ask yourself, where am I going?
Mozilla has a bright future ahead of it, one that depends on all of us and the many, many more yet to join our movement. Where will you take Mozilla today?
October 15, 2013 07:30 PM
October 04, 2013
Robert O'Callahan -- Summit Day Zero
It was pretty good. Lots of fun talking to people old and new. A few embarrassing incidents where I didn't recognize someone I should have. I brought down Settlers of Catan from my room --- Rob Arnold won, but only because Doug Sherk kept stealing my road. I also brought down Citadels and some other people played that. I should have brought more games! If we're still short of games tomorrow night we can call in reinforcements from the Toronto office.
October 04, 2013 04:48 AM
October 03, 2013
Robert O'Callahan -- Prescriptive Vs Descriptive Frameworks
People love to create taxonomies. Just about the first thing that Adam does in Genesis is to name the animals. Classifying and naming things is valuable because it helps us to understand relationships between entities and communicate with other people about them. However, there is a common error where people come to believe that entities that don't fit easily into the taxonomy either don't or shouldn't exist, or solve problems by searching the taxonomy when that's not the best approach.
Design patterns are a great example. They are a very useful vocabulary for explaining code. However, it's usually a mistake to tackle a programming problem by finding the design pattern that best fits and applying that pattern to the problem. Instead, we should always analyze the problem on its own merits, applying all the information we have about the context, and come up with the best solution specific to that problem. (I'm assuming here that we're interested in producing the very best code for a solution, which is true for something like Firefox but not for throw-away code or for projects with a small audience.) But since design patterns are easy to teach, and selecting a design pattern is easier to systematize than finding the best solution ex nihilo, and it's easier to tell your boss that you're using the Fridge Magnet pattern than to explain a bespoke solution, it's easy to see why a lot of people made design patterns their Procrustean bed.
This observation generalizes beyond programming. In areas as diverse as personality tests and politics, there is a drive to describe complex entities with simple categories. Entities that don't fit easily into a single category are implicitly or explicitly discouraged, to disastrous effect. I find it extremely frustrating.
We need to make a clear distinction between descriptive frameworks, which provide vocabulary to talk about common features (often not mutually exclusive), and prescriptive frameworks, which demand that reality be describable with a fixed vocabulary (generally with mutual exclusion). A taxonomic framework is very useful for describing what exists. It should not be used as the search space for solutions to problems, although it may be useful by inspiring you with options you haven't considered.
October 03, 2013 12:21 PM
Mozilla has lost some good people due to burnout. I suspect working for Mozilla carries greater risk of burnout that working for "normal" organizations. A lot of people are motivated to work for Mozilla because of our mission. This motivation is powerful and persists through unhappiness. Thus, people drive themselves to work hard at the expense of their happiness and mental health. This is a recipe for burnout.
That is very true for me. There have been long periods of time when I have been frustrated with my work, feeling I would be happier doing some other work, and in fact feeling that I'm struggling to cope. But I've survived in this job a long time, I don't currently have those feelings, and in fact I feel pretty good even though I'm currently going through some travel madness. Here's a few things that have helped.
Acknowledging the ebb and flow. When I'm feeling burned out, I slack off. I think that is OK as long as it's temporary --- and as long as I'm not using it as an excuse to be lazy. For me, it's natural to have periods of time when I'm energized, followed by periods when I'm tired and I need to back off while I rest and rekindle my enthusiasm. Per my earlier post, this is not a sign I need to change jobs.
A sense of perspective. When I feel my job sucks, it's important to take a step back and think about what I'm comparing it to. Objectively, my worst weeks at Mozilla have been worldly bliss compared to most weeks of most people over most of human history. It is critically important to never lose sight of this fact. (There are a few Mozilla people for whom this is not true; you know who you are and I tip my hat to you.) Whenever I feel like a heroic martyr, it's simply ridiculous.
Changing focus. When I'm sick and tired of working on something, it's very helpful to work on something different --- "a change is as good as a rest" (which is mostly but not entirely true). Mozilla does a lot of important things and there are a lot of very different ways to contribute to Mozilla's mission, so it's not a problem to rotate people in and out of particular roles.
Family. My wife and children are a vital anchor for my mental health. My commitments to them --- and their policing of those commitments --- prevent me from going too far overboard with work. Spending time with them, giving and receiving love, is the best tonic I have.
The Sabbath. I often struggle to rest and relax because I feel burdened with work projects and guilty for not working; this contributes to burnout. I find that compulsory downtime, decreed and ideally enforced by an external source, is extremely helpful in dealing with that guilt: I don't need to feel guilty about not working when someone is making me do it. My family is one source of that compulsion, and my Christian convictions about not working on Sunday (not always observed :-( ) are another.
Relinquish responsibility. Feelings of being irreplaceable can be extremely draining and contribute to guilt, anxiety and the difficulty of resting. Therefore it's very important to break those feelings --- forcing oneself to step aside, at least temporarily, and see what happens. It's usually not as bad as you think. We also need to keep in mind that we are only responsible for what we do; as individuals we are not responsible for Mozilla's ultimate success or failure. We have to let go and not worry about what we, as individuals or as a group, do not control. Over the years I've developed a little bit of apathy, which has been valuable.
Remember the mission. Sometimes, when enthusiasm fails, I must ask myself whether there's any work I could be doing that's more important than my work at Mozilla. So far, the honest answer has always been no, and so I know what I must do. As I suggested above, this can be a scourge, but it can also be liberating. There's a certain exhilaration in knowing what one should do, and throwing yourself into it with nothing but grim determination.
Jesus. Sorry to my irreligious readers, but this true and important. Many times I have felt myself to be running on empty, and my only recourse has been to pray to the Lord for strength to do what I know I should do. Many of those times I have been quickly refreshed in a way that feels miraculous. Apart from that immediate relief, my identity in Christ provides logical and emotional support to many of the items above: my commitment to my family, my sense of duty, my sense of perspective, my sense that God is ultimately in control, and the obligation to periodically disengage from work. Had I not been a Christian, I don't think I would have survived.
October 03, 2013 11:08 AM
I am currently in the middle of the most intense travel burden that I have ever experienced. In the week starting September the 8th I was in California for the LEAD leadership training program. Then I was home for two weeks before flying to Toronto for 8 days for the Mozilla Summit. After that I'll be home for a week and a half before flying to Paris for the "Web rendering" work week. After that I'll be home for a week before flying to California again for LEAD.
I know a lot of people fly more frequently than this, even at Mozilla, but for me this is extraordinary. Also, because I live in New Zealand, the distance of these trips is especially great. For the nine weeks starting September 8, my average speed is over 65 kilometres per hour.
I still like travel! It's fun to visit different places and people. The problem with travel is that it takes me away from my family, my closest friends, and my church. It's not good for the environment either. Also I don't sleep all that well when I'm travelling. I'm not sure why; I think it's not so much jet lag as being away from the comforts of home, and tending to be too busy to do my normal work, so trying to catch up on my normal work at nights.
Fortunately this will come to an end soon. LEAD ends this year so next year I can expect things to return more or less to normal.
October 03, 2013 10:01 AM
September 27, 2013
Robert O'Callahan -- The Forge Of Disappointment
I think New Zealanders have reacted to Oracle's stunning victory in the America's Cup very well. There's very little opprobium or anger, but instead a lot of praise for Team New Zealand and respect for Oracle. A lot of people are bitterly disappointed --- hopes were, rightfully, very high when TNZ was 8-1 up --- but I don't sense the doom-and-gloom that descends whenever the All Blacks fail to win the Rugby World Cup. This is probably because TNZ was, in the long run, always the underdog, whereas the All Blacks never are.
Like Rugby World Cups, this event has been unifying for large swathes of New Zealanders. It's gratifying to know that many of your friends and neighbours, and people around you that you don't even know, are sharing this intense experience. Shared enthusiasm and disappointment, joy and despair, all contribute to building our feelings of community. This is old news: historians traditionally see World War I as a key catalyst in the development of New Zealanders' national identity, especially the ANZAC deployment at Gallipolli, which was a horrible disaster militarily.
Being much more cerebral than sportsmanly, I used to see professional sports as ridiculous and wasteful, but now I think I see one way they can be genuinely valuable. We need events, even artificial ones, to rally around. My Canadian pastor observes that Quebecois separatism subsides dramatically while the Canadian hockey team is playing during the Winter Olympics. This sort of thing forges people into nations.
September 27, 2013 09:13 AM
September 26, 2013
Asa Dotzler -- Oracle, AVG, Ask, Norton, & Others
The proliferation of software installers designed to trick Windows users into adding unwanted applications to their systems is horrifying. How can so many "legitimate" companies participate in such scammy and evil practices?
The animation above shows one installer with it's 9 unrelated software opt outs.
Why are we allowing this? Why is it OK for major brands to use these tactics and face no repercussions?
It's past time for all of us to start registering our dissatisfaction with these crummy distribution practices that are eroding confidence in personal computing and driving people away from rich and participatory experiences and towards easier and more consumption oriented experiences.
Oracle, AVG, Ask, Norton, others, you all have to stop this. You have to stop paying for scammy distribution for your toolbars and you have to stop taking money for scammy distribution through your installers. This is not acceptable behavior for such respected software companies. It's user-hostile and it needs to stop.
September 26, 2013 09:14 PM
September 22, 2013
Robert O'Callahan -- A Tip For The Surivial Of Humanity
Let's assume that at some point in the future we'll be able to build computer systems capable of behaving just like a human brain. There are three obvious ways to get there. One way is to build a system that emulates an actual human brain, bootstrapped by copying the brain of an existing person. Another way is to emulate a human brain, but bootstrap via a learning process as children do. The third way is to build a system that doesn't work like a human brain but reimplements the functionality in whatever way seems most suitable to the hardware we have built. I believe that copying the brain of an existing person is by far the best path; the other options are much greater threats to the survival of humanity, and indeed intelligent life.
Fully reimplemented intelligence would be very hard to predict and control. Reliably engineering for virtue will be extremely difficult. In its early stages the system would likely be narrowly focused on specific goals (perhaps military or corporate), and there is great potential for catastrophic bugs, such as runaway goal seeking that accidentally devastates or exterminates organic humanity. Even if you think a complete transition from organic to machine intelligence would be a good thing, we could easily by accident end up at a dead end for intelligent life, for example if humans die off before all aspects of machine self-reproduction are automated.
On the other hand, if we copy an existing brain, we will know roughly what we're going to get: a disembodied human mind in a machine. We can even choose particularly virtuous people to copy. The process will no doubt be lossy, but people with severe disabilities cope with sensory and motor deprivation without going mad, and our emulated minds probably will too. We can be confident that a benevolent, thoughtful person who cares for the welfare of humanity will still do so after transcription.
The emulation-from-infancy approach falls somewhere in between in terms of risk. The result would probably be more like a human than fully reimplemented intelligence, but it's hard to predict what kind of person you would get, partly because they would grow up in an environment very unlike what we would consider a favourable environment for children.
I'm optimistic that an emulation approach is more likely to succeed technically than a full reimplementation approach at producing a self-aware general-purpose intelligence. Futurists tend to imagine that mere aggregation of computing power will bring on intelligence, but I think they're quite wrong. A great truth of computer science is that hardware scales but software remains hard. Porting existing software is expedient. However, copying an adult brain may be a lot harder than bootstrapping from infancy.
I'm not sure that any of these things will happen in my lifetime, or ever. There is great potential for God or man to frustrate our technological advancement.
September 22, 2013 11:17 AM
September 13, 2013
Asa Dotzler -- Google and the NSA
If you have something that you don't want anyone to know, maybe you shouldn't be doing it in the first place. If you really need that kind of privacy, the reality is that search engines -- including Google -- do retain this information for some time and it's important, for example, that we are all subject in the United States to the Patriot Act and it is possible that all that information could be made available to the authorities.
That was Eric Schmidt - Google's then CEO, just a few years ago.
There's been spying for years, there's been surveillance for years, and so forth, I'm not going to pass judgement on that, it's the nature of our society,
And that was Eric Schmidt - Google's Executive Chairman, today.
So, it's just the nature of our society that Google amasses troves of personal data on billions of people from all over the world and is then compelled to hand that over to the NSA.
Nothing to be done about it.
That's our nature, you see. It's inevitable.
September 13, 2013 09:19 PM
September 05, 2013
Robert O'Callahan -- Unexpected Visitors
Today I was working at home when two Korean women knocked on my door. They were from a "Bible study group" and wanted to "conduct a survey". They were obviously evangelists so, not wanting to waste their time, I said I was a Christian already. That obviously was covered in their script, since they immediately asked if I knew about "God the Mother", and when I said no, whipped out a Bible, turned to Genesis 1:26-27 and explained that since God created men and women in his image and uses the plural personal pronoun, he must therefore have male and female sides. I explained why "the image of God" clearly cannot mean God is like us in every way, and the plural "us" in verse 26 is a royal plural, and then we went on a merry tour of Bible verses cherry-picked to support various unusual doctrines. They seemed to focus a lot on verses in Revelation mentioning the bride of Christ (something to do with "God the Mother" I suppose), and on verses to do with "living water". (They were interested in the source of it; no idea where they were going with that ... not the filioque controversy at least :-).). Suffice it to say that I did not agree with their interpretations.
One woman was somewhat older than the other, and obviously mentoring the younger, since the younger took the lead initially but when she started to flounder the older woman took over. When she finally tired of me she accused me of following my own ideas and not the text, and took her leave. Before they left I managed to hand them a card for ACPC and invite them to my Bible study at 7:30pm tonight. I genuinely hope they'll show up, though I'll be surprised if they do. (Then again, wouldn't they want the opportunity to convert more than one person at a time?) Funnily enough the only thing that really knocked the older woman off her stride was when she discovered I go to a Chinese church.
A quick search suggests that they belong to the World Mission Society Church of God, a pseudo-Messianic Korea-based, Christian-based cult, er, minority religious group.
In the excitement, there are things I wish I'd done differently:
- Known something about their organization during the conversation
- Pulled out my study Bible to get more background on some of the verses they were using
- Had at my mental fingertips verse references for key concepts such as the church as the bride of Christ
- Made a better case for them to visit our Bible study or our church to explain their ideas more fully
- Gotten some contact details from them
I have immense respect for these women. They probably sincerely believe that their door-to-door evangelism is helping people reach salvation, and are willing to overcome fear, shame, a language barrier and demands on their time in pursuit of that. I think they're wrong about some critical issues, but they get more right about Jesus than the average person who rejects him completely. I'm impressed.
September 05, 2013 02:35 AM
September 02, 2013
Robert O'Callahan -- Debugging Transient Rendering Issues With GNOME Shell Screencasts
Debugging transient issues like flickering can be a real pain because it's difficult to see exactly what's happening when it only affects a few rendered frames. Enabling paint flashing in Firefox is useful for detecting unnecessary repainting but again it can be difficult to use when there's a series of consecutive interesting frames --- e.g., when you're trying to figure out why something has repainted many times in a row instead of just once. But now I have found an excellent solution to these problems!
Andrew Overholt recently pointed out to me GNOME Shell's built-in screencasting ability --- just press Shift-Ctrl-Alt-R to start recording, and a WebM file is dumped in ~/Videos. As far as I can tell, this file contains exactly one video frame per frame rendered by the desktop compositor, which is perfect for analyzing rendering issues. (Video frame timestamps are correct, so playing the file normally works as expected.) Loading it up in gmplayer, you can press '.' to advance one frame at a time. The video quality is high, and overall it's absolutely brilliant for frame-by-frame analysis of what was rendered.
September 02, 2013 11:43 PM
September 01, 2013
Robert O'Callahan -- Servant Leadership
Every so often the principle of "servant leadership" is mentioned in discussions about management. Sometimes it's portrayed as something new and radical. It's definitely radical, but not at all new. It goes back as least as far as the New Testament, in which Jesus spells out the necessity of servant leadership among his followers. For example:
"Jesus called them together and said, 'You know that the rulers of the Gentiles lord it over them, and their high officials exercise authority over them. Not so with you. Instead, whoever wants to become great among you must be your servant, and whoever wants to be first must be your slave — just as the Son of Man did not come to be served, but to serve, and to give his life as a ransom for many.'"
"A dispute also arose among them as to which of them was considered to be greatest. Jesus said to them, 'The kings of the Gentiles lord it over them; and those who exercise authority over them call themselves Benefactors. But you are not to be like that. Instead, the greatest among you should be like the youngest, and the one who rules like the one who serves. For who is greater, the one who is at the table or the one who serves? Is it not the one who is at the table? But I am among you as one who serves.'"
"When he had finished washing their feet, he put on his clothes and returned to his place. 'Do you understand what I have done for you?' he asked them. 'You call me "Teacher" and "Lord," and rightly so, for that is what I am. Now that I, your Lord and Teacher, have washed your feet, you also should wash one another’s feet. I have set you an example that you should do as I have done for you.'" (This is of course the origin of the tradition of the Pope washing people's feet.)
It's not surprising people forget this, since these instructions have been followed poorly over the centuries. In general it seems very difficult to sustain servant leadership as organizations (of all kinds) grow vertically; unity across ranks diminishes, and greed, vanity and ambition take over. It's less of a problem when leaders are driven by shared belief in a mission more than desire for personal status and gain --- as tends to be the case at Mozilla, and the churches I've known. It has also helped that the churches I've attended have all been fairly small, with loose ties (if any) to higher levels of hierarchy.
September 01, 2013 11:49 AM
August 28, 2013
Robert O'Callahan -- Indoi
Indoi is a new Indian restaurant on Short St in Newmarket, very close to the Mozilla office. It's my favourite Indian restaurant in Newmarket. The non-vegetarian thali lunch special is $15, which is a very reasonable price for a very nice meal. I've concerned about their longevity though; I almost never see customers there other than our lunch group. It's probably partly the location; a lot of restaurants have come and gone there, Short St doesn't get much foot traffic, and the restaurants on Lumsden Green probably snap up a lot of the customers heading in that direction. My advice is to eat at Indoi before it shuts down!
August 28, 2013 01:10 AM
August 20, 2013
Robert O'Callahan -- Creating Screencasts On Linux
I had great difficulty creating a good screencast for the previous blog post. Various tools I tried all had horrible flicker problems in the captured video. I think the problem is related to the GNOME compositing window manager I'm using in Fedora 18. After various tools failed, I solved the problem using vncserver to set up a separate X11 display in which to run the demo app, and using ffmpeg to record the video like so:
ffmpeg -f x11grab -s 1024x768 -i eternity:2 capture.webm
(where 'eternity:2' is the DISPLAY for the vncserver)
Update: Ignore the above solution. Andrew Overholt pointed out that GNOME Shell has screen-casting built in: just press Ctrl-Alt-Shift-R to start and stop, and .webm files are dumped in your Videos directory. It works perfectly for me! Somehow in all my Internet searching I never discovered this feature.
August 20, 2013 03:05 AM
SVG-In-OpenType Progress Update
TypeCon is coming up and there's going to be a discussion there about competing proposals for advanced glyph rendering, especially coloured glyphs. That was an incentive for me to knuckle down over the last couple of days and fix some issues in our implementation of the Mozilla-Adobe proposal that adds an "SVG" OpenType table to render glyphs in SVG format.
I had to update our implementation from our original prototype to use the format defined by the merged Adobe-Mozilla proposal. Then I had to track down a bug in the calculation of glyph extents for SVG glyphs --- this turned out to be a generic bug affecting any font with egregious glyph extents, so I'm glad we've caught it. The last and most interesting part of the Gecko work was to enable animation in SVG glyphs. This is tricky because we need to map from a font whose glyphs have changed back to all documents and text that using that font, so we can ensure the text is properly repainted, and we've never needed this mapping before. gfxFont.cpp is gnarly but the code worked out OK.
Creating fonts with SVG glyphs has required hacky scripts so far, and I was getting tired of that, so before I did the Gecko changes I wrote a small Web app to help: SVG OpenType Workshop. You can open an existing OTF/TTF font file (sorry, no WOFF support yet), create/edit an SVG table document, see the results on (editable) sample text live as you type (generating a new font file at every keystroke), and save the generated font. I found it very useful, and it shows that you can have live font editing in Web apps without an SVG font DOM or other dedicated browser APIs. To render the fonts, the application requires browser support for the SVG-OT draft mentioned above, so for now only experimental Firefox builds will work.
Check out this screencast of animated glyphs in action.
August 20, 2013 02:55 AM
August 08, 2013
Robert O'Callahan -- Mozilla Code Reviews Talk On Air Mozilla
In Taipei in May, as a followup to the engineering culture discussion, we had a session about code reviews, covering the topic from both the point of view of the code reviewer as well as the code author. This session is now online at Air Mozilla. Similar to the engineering culture talk, this wasn't originally intended for public consumption, so is rather unpolished, but you get an honest look at what Mozilla developers talk about amongst themselves :-).
August 08, 2013 05:39 AM
Prepare To Stop
August 08, 2013 05:34 AM
August 05, 2013
Robert O'Callahan -- Mozilla Engineering Culture Talk Now Online
At the Mozilla "Web Rendering" work week in Taipei in May, I led a discussion of "Mozilla (really, Gecko) engineering culture". This was partly for the benefit of all the new developers in Taiwan but I think it was interesting for many of the old hands too. The talk is now available on Air Mozilla. It's excruciating to watch myself talk, but people may find it interesting.
It wasn't initially intended for public consumption, but after reviewing it I thought "why not?". So it's a pretty honest snapshot of Mozilla developers explaining what we do.
August 05, 2013 05:25 AM
July 28, 2013
Robert O'Callahan -- A Shock Of The Ordinary
Last night I watched a scene in an episode of the second season of Downton Abbey in which two sympathetic characters visit a church together and pray. That's it --- no plot devices, no subtext, no ulterior motives, no mockery; it was just showing what some ordinary people sometimes do. I was shocked, because I basically never see Christians just being Christians in movies or television. Soon afterward I was flipping through the catalogue of the New Zealand International Film Festival, and there it seems one is more likely to see a serial killer being portrayed sympathetically than a Christian. This is not surprising --- "it's 'the world', stupid", as someone once put it to me --- but it's sad nonetheless. No wonder people have such distorted ideas about us.
July 28, 2013 09:29 AM
July 20, 2013
Robert O'Callahan -- Happy Days
I gave permission from a writer to use an old wedding photo of ours for a story.
We got married in Sydney because that's where my wife was living at the time --- I was at CMU in Pittsburgh. We had the ceremony in the morning and the reception in the evening so we had several hours in between to just roam around Sydney taking photos and having a good time. I think a lot of weddings are for the benefit of guests and the couple doesn't have such a great time, but we bucked that trend. It was definitely one of the best days of my life.
A lot of things have changed since then. Our marriage has had its issues but I'm very thankful that in most ways it's better than it's ever been, as we keep learning to be better at being married. We'll need to, for the challenges ahead!
July 20, 2013 12:40 AM
July 17, 2013
Robert O'Callahan -- Avoiding Copies In Web APIs
The Web platform has matured to the point where avoiding data copying is often an important optimization to reduce running time and memory usage. Avoiding data copies often requires careful API design. The Web has two facilities that are very useful for writing such APIs: Blobs and ArrayBuffer neutering.
A Blob is a chunk of generic immutable data, optionally with a MIME type. Its contents are not directly byte-addressable, enabling browsers to easily offer multiple implementations of Blob under the hood. For example, in Gecko we support Blobs backed by in-memory buffers, Blobs backed by files, and Blobs that reference lists of other Blobs they are the concatenation of. Because Blob contents are immutable, it's easy for multithreaded or multiprocess browser implementations to safely share Blob contents in any situation without copying (including, for example, Blobs being passed between Workers via structured cloning). Any Web API dealing with generic data chunks that don't need to be byte-addressable or easily mutable should probably use Blobs, or at least support Blobs as an option.
ArrayBuffer is part of the Typed Arrays spec; it represents main-memory data that is directly addressable and mutable. Because preventing in-memory data races is an important principle of the Web platform, ArrayBuffers cannot be directly shared between Workers. Therefore we added to the Web the ability to transfer ownership of an ArrayBuffer's data between workers (and the main thread) via the Transferables abstraction. An ArrayBuffer is normally represented as a small JS object containing an internal pointer to a (usually much larger) buffer containing its elements. When an ArrayBuffer is transferred from one thread to another, the ArrayBuffer on the origin thread is neutered --- i.e. its length becomes zero; its element buffer is detached and ownership transferred to the destination thread; and on the destination thread a new ArrayBuffer object is created wrapping the transferred element buffer. The contents of the element buffer are not copied.
ArrayBuffer neutering is potentially useful for more than just transferring ownership between Workers. Some Web API methods take ArrayBuffers or typed arrays as parameters, and have to copy the data internally for later use. For example, WebGLRenderingContext.bufferData has to validate its ArrayBuffer parameter's contents and copy the data for later use --- otherwise the caller could modify the ArrayBuffer after the bufferData call has returned, and defeat any validation that was performed. If it's helpful for performance, we can add a version of bufferData that neuters its ArrayBuffer parameter and takes ownership of the data instead of copying it.
Web Audio is an interesting case. Web Audio AudioBuffers contain ArrayBuffers containing audio samples. AudioBuffer samples are made available to an audio processing thread. The question is, what happens if those sample ArrayBuffers are modified by the main thread while the audio processing thread is using them? If the memory is naively shared, the answer is "data races", which are unpopular with many people (including me). One way to fix this without adding copying is to allow an AudioBuffer to neuter its ArrayBuffers, taking ownership of their element buffers and making them immutable so no copying is needed but there's also no possibility of data races.
When designing new Web APIs, if copy avoidance is important, we should keep ArrayBuffer neutering and Blobs in mind as possible solutions.
July 17, 2013 10:38 AM
Last updated: December 12, 2013 07:30 AM