Does Santa Exist?

This post is a favourite of mine, so I’ll try to keep posting it every year it when Christmas is getting closer.

Just a few months before Christmas! But be prepared when your children start asking you whether Santa really exists or not. It’s not as easy to convince them as it once were. The solution to convincing today’s enlightened children is of course to be very rigorous. We need to prove to them that Santa really exists.
So, let’s be pretty formal, and assume that S is the sentence “If S is true, then Santa exists”. That’s just a definition; nothing unusual going on. Seems that if we prove that S is true, then we’ll be done. But we’ll see. Now, the actual logical proof starts.

Suppose S is true. This is just an assumption.
By the definition of S, we can just replace S by its definition, and we get
“If S is true, then Santa exists” is true.

Well, not much gained yet. Probably we’re just warming up. But we can in fact use the assumption, “S is true” once more, together with that. Then we get “Santa exists”. Not bad! But this is of course only because we assumed that S is true. So we’re not there yet. Let’s summarize what we got from the assumption:
“If S is true, then Santa exists”. OK, well, this is the same as what S itself says. Finally something; we’ve proved S itself to be true!

But wait, if S is true, and “If S is true, then Santa exists” is also true, then obviously Santa exists. Done!

So, just sit down together, the whole family, a few days before Christmas, and carefully go through this proof, and you have removed one uncertainty from the celebrations. Also you need to know that there are also grownups who haven’t understood this fact yet.

This is my contribution for the people out there who still want to celebrate that old-fashioned Christmas!
(The proof freely from Boolos and Jeffrey, “Computability and Logic”.)

Advertisement

Probably a Working PIM Syncing Solution

After using OggSync for ten days, as reported in my previous post, I believe I can say that my complete PIM syncing solution works pretty well. I haven’t had any problems with OggSync, actually, even though I’m using the beta version. It’s installed on home computer, work computer, and on my Windows Mobile 6 phone, and all of them sync to Google Calendar, using two different calendars; one for private and one for work. Both are synced to the home computer and the phone. Have a look at my previous post for the complete syncing solution, using LapLink PDAsync and Windows Mobile Device Center (the ActiveSync of Vista). As a bonus, I can sync my contact list with Gmail, too!

Next attempt at PIM syncing

Now I’m trying OggSync for syncing my calendar. The professional subscription wasn’t that expensive, and a colleague of mine was using it without problems, so I’m giving it a try. Works well after two days’ of use!

So, now I’m syncing my two Outlook calendars with Google Calendar using OggSync (different calendars for private and work), my mobile phone directly with Google Calendar using OggSync, my tasks and contacts for my work computer using LapLink PDAsync (contact sync in OggSync doesn’t support categories), and tasks, contacts and notes for my home computer using Windows Mobile Device Center (Vista’s ActiveSync). What a mess! I haven’t found a better (that is, working) combination, though.

I’ll be back with a review later of whether this works over a longer period of time or not. My feeling is that OggSync is very stable indeed.

Syncing Solution was Unstable

In a previous post, I suggested that I’ve found a syncing solution that works for syncing tasks, calendar and contacts involving a PDA, a work computer and a home computer, so that I can filter out what items are synced to my work computer, while all items exist on my PDA and home computer. Unfortunately, today I ran into the same problem that I had initially, when I tried to use LapLink PDAsync for syncing to both computers, although now I use it only between the work computer and the PDA (for the filtering functionality).

So unfortunately, I can’t recommend that solution anymore. I’ll be back when I find something better, or a manageable workaround.

GUI Responsiveness in Google Chrome

Over at the Chromium Blog, there’s a post about Google Chrome’s I/O principles. Finally an improvement in GUI responsiveness from the prevalent industry standard. What if Microsoft implemented this in their Office suite, too? I’ve always argued that GUIs should be responsive at all times, thus showing the state of the application, instead of just hanging.

Service vs. Function part II

I just came up with a pretty good explanation of the difference between a service and a function, to clarify on a recent post. It kind of explains why it is difficult to reach an agreement, since people are discussing on different levels. So, watch this: Suppose that you’re a consultant, and you have a contract to perform a certain task, with certain deliverables and other agreements on what’s included. Then the service is the contract, and what you actually do is the function. This works for software services as well as for services of an enterprise that are comprised not only of software, but also of people and organizations.

A Software Development Q&A that Could Work

Joel Spolsky has set up a new Software Development Q&A, called Stack Overflow, together with Jeff Atwood of Coding Horror. If you’re used to the common kinds of web forums that turn up when you have a programming question, you’ll like this one. It’s content is completely user driven (digg-like), so that good answers get voted up by the users, and bad ones are voted down. No discussion is possible (because of this reordering), so the Q&A will only contain questions and answers. Sounds like a really good idea. Take a look!

How to Agree on the Difference between a Service and a Function

In this post, I’ll establish exactly what’s the difference between a service (SOA parlance) and a function. Just joking, no, I won’t. I participated in an animated discussion today about the topic, and the discussion just went on and on. The participants were very bright people, and everyone was right in some way. We just couldn’t move the discussion forward! (Although some progress was made; I admit that.)

So at first, I thought that I’d better write a post to settle the issue. But soon, I realized that then I’d just take my part in the “I know best” game, so I simply skip that, and attack the more abstract problem of how such a problem should be addressed. That is, if you have a disagreement about a concept, and everyone is talking about it from different positions of understanding, and with different levels of abstraction in their understanding, and varying confidence in themselves, how would you settle the discussion with everyone reasonably satisfied?

I’m afraid I don’t have a complete solution to that, so I’ll try to outline some ingredients.

  • Try to make everyone listen and understand the others’ points of view.
  • Try to make everyone understand the structure of the others’ model of the concept.
  • Try to see what differs between those views, and those structures.
  • Then argue in a structured way using that knowledge, for example, argue on compatible levels of abstraction, and on compatible scenarios.
Is this possible at all? Any better ideas for getting to consensus on important concepts?
Maybe Edward de Bono‘s Six Thinking Hats could help?
The context in this case is modelling an enterprise using the MODAF modelling framework, which is nice in itself. But since it’s very strict in how things should be modelled, it seems that it’s even harder to make people agree on how to model things.