Oasis Software

The software we should have used for the conference is called PPV. It’s an old software, only written for single monitors, and is a reasonably lame shell for PowerPoint itself.

What I did was that I wrote a new program, dramatically increasing the capabilities of PPV, which I called OasPresentation. It contained the ability to search for files (by file name only), controlling the presentation through buttons and F11/F12 keys instead of the usual, a chat capability for remote connections, and dual-monitor support. It worked fantastic, but contained a few limitations; for instance, you couldn’t see multiple slides simultaneously. It was necessary to open up the presentation on a secondary laptop to get a good overview.

Now I’m browsing through the OLE Automation API for PowerPoint, and I think I’ll be able to increase the capabilities of my program substantially until the next year. With any luck, I hope to be able to publish it as either open-source or for public binary download, so more people can benefit from it. The advantage to this program (in this particular context) compared to other worship software, is that this still works through PPT files, but uses Automation to enhance the presentation capabilities dramatically.

I don’t have any time-plans for it, but it looks like we’ll be running the Oasis conference next year as well. It’ll be finished well before that.

Oasis Reflections

Random highlights for myself:

  • Anders from Kristnet didn’t at first recognize me behind the computer desk at the conference, but then he saw that I was compiling a program in Delphi, and he realized it had to be me. :)
  • The guy with all the flags (forgot his name) who suddenly took off running full speed through the hall carrying a banner high over his head. So anointed, so enormously impressive! The King is here!
  • Lisa, the worship leader (one of them) singing Adon Hakavod solo.
  • The worship team singing “Kyrie eleison, Kriste eleison” during the mass!
  • The procession as the priests came in to the mass, with a woman carrying an enormous bible over her head. What a reverence for the word.

Oasis, Part III

I’ve finally managed to delegate some of the tasks to my “helpers”. Right now, I’m sitting at home and taking a break from the services. Eva and Emil are handling the current seminar, and there’s only one meeting to go now: The final service this evening.

It’s been a long week. I’ve worked from early morning to late at night every day and it’s nice to take a break. Tomorrow we’re going to tear everything down and then the conference is over. What a ride.

We have lunch every day for the conference volunteers; free lunch tickets have been handed out to us so we can eat lunch for free. But I find that I haven’t used a single one of them; instead, I like to sneak away and hide out in a little nearby restaurant which is almost empty most of the time. There I sit (in the sweltering heat, unfortunately), in quietness, with no one to bother me, and enjoy a nice, hot meal. It’s become my little sanctuary, or haven of rest, in this crazy week.

But everything has worked out, the conference seems to be a smashing success. Some people downtown were probably taken aback by the size of it; I heard of at least one restaurant that ran out of food trying to accomodate all the participants. And it’s been all over the news, and the reports have been very nice.

Most of our time is spent handling the worship. We have two large projectors running the worship texts on big screens; and as soon as the worship team appears on stage, we spring into action. Using run lists prepared in advance – and with a little chat program I whipped together – we’re able to synchronize excellently. The worship team can take off in any direction, and we’ll be right behind with texts and information presented on the screens.

It does get a little tricky though, especially when the hub had a power lapse and knocked out the communication temporarily. And when the phone is ringing at the same time as the worship is going on, or people jump up from everywhere with messages that need to go up on the screens, at the same time as Lisa, our fantastic worship leader, takes off in a new direction. A high stress tolerance is suggested, for sure.

It’s strange how panic and crisis can appear before every single meeting, but it always does somehow. Some guy jumps up 30 minutes before and says “hey, we’re going to do this song, can you put it up during the meeting” and we don’t even have the song text. Or when some other guy comes in with a video and says “can you run this a few times before the service” – which means very, very hastily trying to find a program that can play it (or at least figure out why WinAmp can’t run things on screen #2), trying to get an audio line from the computer all the way over to the sound guys, coordinating with everything else and hoping to dear God that everything will work out. Somehow it does. Maybe it’s the angels around us.

I think this conference has had a large impact on our town. Skövde is on the map now. Lots of interesting things happen. Whether it’s effected us profoundly remains to be seen though… but I have a feeling that those running the prayer behind the scenes won’t let people off that easily. It’s going to continue out from our little Arena.

Well, now it’s less than six hours to go till the end. Busy week. This must be how it feels to work for Dan. :)

Oasis, Part II

So another day is over. This is now the evening of Day 2 of the conference, although this is more like day four or five for me, since we’ve been up since Monday morning working on all the practical stuff for the conference.

The morning service gave me more time to work on my program. The worship team is easy to follow once we’ve got the communications up and running, and once you learn how they sing and function. It’s been a while for me … the last time I was heavily involved in stuff like that was at Bible School, Europaporten, back in 1995.

Things went easier today too, because the afternoon service was no service but a seminar, with no worship or powerpoint involved, which brought me some much-needed relief. Time to take a moment off, have a bite at a restaurant and cool down. Not that cooling down is easy in this heatwave, but good ol’ Eva prayed for rain, and sure enough, towards the evening service, we were served some pretty hefty Cumulonimbus clouds which brought a heavy rainfall and some lightning and thunder.

I spoke with Paul Anderson today, the preacher from Minnesota. He’s a preacher! He rebuked us all for unbelief and sleep with his heavy California accent. I wonder what strange plans of God that’ll bring me to Minneapolis next week – just in time to catch the end of a conference they have in their city.

They’re cutting out the lights in the Arena right now. Time to turn off the program, pack up and get some shuteye.

Oasis, Part I

The Oasis conference rolled in today. We’ve been preparing since Monday morning, of course, but the first meeting was today.

Sooo many things to do, so much to consider… and the sweetness of seeing it all work out in the end. It’s cool. I had to coordinate with the worship leader to get songs and flows in the meeting right, and we tried a completely new solution, which amazingly enough worked. We’re running a PowerPoint application wrapper that’s been developed completely new for this conference, and it’s never funny to stress-test an application like that in front of 2000 people, when every other detail is also uncertain.

When soldiers jump into battle, the anxiety and stress levels vary greatly between different types of soldiers. New soldiers typically have increasing stress levels throughout the whole battle, and they don’t know if they’re doing anything right, if it works, they’re not accustomed to the sounds of the battlefield yet and they make mistakes. So did I. The good part is, it worked out.

The second level you come to as a soldier is when it all suddenly starts making sense. You have a feeling of “it works”. You keep firing in the right direction, you slip up here and there but somehow it all works out. I came to that stage about halfway through the meeting.

Experienced veterans have very different levels of stress. Typically, they show high stress levels before and after a battle, but once they step into it, they calm down, focus, and do their thing. This was the stage I was entering towards the end of the first meeting. And when it all was over, I looked over at the worship leader, and we sort of looked gratefully at each other with the attitude of “it worked!” She actually said more things than that, but that was the summary of it.

Now it’s late at night, and the next meeting start tomorrow at 10:00. I’ll probably try to be there at 08:30 to head up my team again. I’m not sure they’re ready to take over my part just yet, so I have to carry the thing a bit further, I think.

Anyway, hooah.

Reflecting upon Reflections

I like to think.

Thinking is a way of life to me. I think. I reflect. I look at the world, see cars passing by, people walking down the street; and I think – what if? What if there was a better way to do things? What if we could make cars just totally different, or turn stores upside down, or build large machines that do things in radically different ways. I like to take the entire world and just shake it real hard for a moment or two, like a little angry kid who shakes his jar with ants, just to see if anything looks different, and why, and whether that different is better. I have the idea that we haven’t done really, really great things, as a society, because we just haven’t thought hard enough yet.

The software process is like that. I like to ponder how we develop software. Sometimes it strikes me as stupid that we still do things the way we do. That’s why I like to watch Star Trek, because someone in a Hollywood studio had the liberty to sit down and think about what a future starship might look like, and the first thing he did was build computers that didn’t crash. And that makes me wonder, how do we build computers that don’t crash? It’s like taking a paintbrush, stare at a plain, untouched canvas and say to myself: What shall I paint today?

Anyway, I’m ranting. My point is, I like to reflect.

Some of my ideas come to me late in the evening. That’s when you’ll find me walking around, pondering and dissecting the future, or what we do, or what we don’t do. And I argue to myself the merits or non-merits of the case. I tear everything inside out to find the heart of the matter, the pearl of wisdom hidden inside.

Some ideas are good. Some are great, and then I have to remind myself to write them down or blog about them or write a long email to my boss. My former boss, Tom, will be the first to tell you about some emails I sent him, usually some time after midnight.

And then there are those ideas, where I lie down on my bed, staring into the ceiling, and shouting in excitement “of course! that’s why! that’s how we should do it!!” And those thoughts are a little bothersome, because when I wake up in the morning I usually don’t remember what was so darn great about them.

And that bothers me a little, because I have the nagging feeling that those may actually be my very best ideas, it’s just that somehow I don’t realize it.

Stylish Backgrounds

VladStudio: I love summerI’m becoming more sensitive to my desktop wallpaper. Gone are the days when I could download thousands of images from Webshots and cycle them as wallpaper.

The ideal wallpaper should, in my view, be minimally intrusive, non-disturbing almost to the point of mono-chromatic – but yet with lively color; it should be very nice-looking, somewhat abstract, draw attention from a distance and yet fade nicely into the background. Not easily pulled off.

There are some. VladStudio is a site I’ve found recently that has some interesting wallpapers, of which the image with the green grass – no doubt inspired by Vista – is my favorite. Apart from that, some images of Coralie Clément lend themselves nicely to desktops; not only because she looks nice, but also because of the romantic and monochromatic appearance of the photos.

Growing Pains

For the past few weeks I’ve been increasingly engulfed in preparations for the Oasis conference here in Skövde. I’m heading up the computer group which is a rather small part of it, but it’s the first time I’ve been the leader of such a project. It is interesting, but also rather a lot of work.

It’s the first time we hold this conference in town. Because of that, the organization isn’t entirely together – there’s an awful lot of coordination going on, and questions raised back and forth, and a lot of people are working hard. While I’ve studied organizations in theory, it’s sure a different thing to see everything like this, hands on. For instance, there’s the question of materials – do we have everything? what’s on the inventory list? where are my things, they’re not here – who did you say has them again? he’s on vacation??

Running the projectors is a small part, but a lot of people will notice if it goes wrong. Kind of like my day job. Not too many understand what I do; but if things ever went really wrong, I guess they’d hear about it.

Today was the first time I got my group together. Actually it’s only half my group – the other half is away on vacation. That’s another lesson to learn: It’s very difficult to drag people together, especially if it’s a volunteer project and in the middle of summer. But I think it went well. I wasn’t as prepared as I’d hoped to be; but at least we went over the details and it seemed to go over well.

On the whole, it’s a lot of work I haven’t done before. It’s all about emailing, calling people, coordinating – and it takes a lot of time, and it’s a lot of new people to deal with. I have traditionally been rather bad at doing those things, but I find that I’m being pushed here into doing better. And you know what? Once you push past that barrier of not really wanting to talk to people, it’s pretty cool. Putting in a lot of hours and all of that stuff is growing on me. It’s fun, actually – I’d be calling people already if the time wasn’t a quarter to eleven at night.

In military boot camp, people are pushed beyond what they think they can do. Their legs want to give up, but their mind tells them to keep going. So they push through walls – physical and mental. I guess, in a way, that’s what’s happening over here.

I think Dan would be proud of me. ;-)

Massive Parallellism

Ever since computers were developed in the early 1950′s, there has been a chase for speed. The first computers, large as an entire living-room and containing tens of thousands of vacuum tubes, had about the computational power of a solar-cell desk calculator today. Since then, computers have shrunk enormously, while their processing speed has increased exponentially, to such degrees that a computer which would have been a miracle of engineering twenty years ago is now essentially worthless. The ageing process for computers has probably best been expressed in Moore’s Law, a law dictated by Gordon Moore in the 1960′s, saying that the average number of transistors on a CPU chip doubles every 18 months – with respective increases in processing power as well, naturally. It’s been upheld remarkably accurately even during the last few years.

My first computer had a processor of 8 megahertz, that is, its internal clock ran at a speed of eight million ticks per second. With one single computer instruction taking typically between one and three ticks to execute, it could race ahead at a blazing speed of several million instructions per second. More was to come. A high-performance computer today might run at a clock speed of 3 gigahertz, and with better instruction pipelining and optimization a computer instruction might now take only one or even half a clock tick, it can now execute perhaps five billion instructions per second. That is – at least – a thousandfold increase in processing power. To put it into everyday terms, a task which would have taken one hour to complete in 1986, will now take about three seconds.

The speed race was on, then. As Intel battled Motorola, AMD, Cyrix and a few other vendors, the processing speeds grew from 8 MHz, to 25 MHz, to 133 MHz and beyond. Then they broke the 1000-MHz barrier and become GHz instead. Clock speed was the holy grail.

However, engineers are stumbling into physical limits. The higher speed you have, the more power is leaked from electronic components, building up residual heat and demanding more wattage. And we can even see the end on the horizon in terms of signal speed: If a processor would run at 10 GHz, then the electrical signals – which travel at the speed of light – would only have time to travel about an inch in the timeframe of one clock tick. That’s just barely enough time to make it from one end of the CPU chip to the other.

What to do? Well, since the 90′s we’ve been adding more CPU’s, simply. CPU means Central Processing Unit and is the heart of the computer, much like the engine in a car. Without the engine, nothing happens. An engine alone is not enough to drive a car, but it is the heart of it. So if you want to double the speed of computer, what can we do if not increase the clock speed? We can add another CPU.

Which is exactly what is happening today. With magical words like hyper-threading, dual core technology, the vendors of CPU’s are doing just that: Increasing the number of processing units in a computer, whether logically or physically. But that also means problems.

The main problem is that computer programs – for the most part – is designed to run in a single thread of execution. The computer takes one instruction, executes it, and returns the result. Then it takes the next instruction, and so on. Thus, to convert an two-megapixel image from your camera to black-and-white instead of color, the CPU simply looks at each pixel in turn, turns it into a black-and-white pixel using a color-weighing algorithm, and repeats it two million times.

Adding a CPU to this doesn’t immediately speed things up. The CPU’s must find a method to divide the work between them; which CPU is going to do what. Unfortunately, they are not yet so intelligent as to figure that out themselves – they have to be told specifically. We have to divide our program into two separate threads of execution. In this simple example, we could tell the two CPU’s to work on either the upper or lower part of the picture. But with increasing complexity, and in many cases results that depend on each other, memory access becomes troublesome. Ways have to be devised such that the CPU’s don’t accidentally bump into each other – such as both CPU’s accessing the same object at the same time. Interesting situations can emerge where one processor moves an object to a different place but doesn’t tell the other CPU it did so (the responsibility of the programmer) and then the other CPU comes looking for an object that is no longer there. And then the program crashes.

These problems are only going to increase. Rumor has it that Intel is planning a CPU with 32 cores – that is, capable of doing thirty-two things simultaneously. And beyond that, we may see scaling that is similar to Moore’s law. A future with thousands and thousands or processors in a single computer is not unthinkable at all.

There are two implications from this. First of all, we need new computer languages that are suited to this. Secondly – and more interestingly – computers will now start to mirror a radically different form of topology; namely that of biological life. A flower does not consist of a single cell operating incredibly efficiently, that would never work. But it does consist of millions or billions of cells, each limited in power, but operating together. Likewise, an anthill consists not of one single ant simultaneously searching for food, building the anthill, protecting against invaders. Life is broken down into populations and ecosystems, where individuals take part, but invariably contribute towards a greater whole. This is the kind of topology that computers will have to mirror in the future.

Scientists are already experimenting with “dumb robots” – tiny, non-complex robots that can cooperate together to perform bigger tasks. Sending out a swarm of inexpensive robots could accomplish certain tasks much better than one large. It may turn out one day, that focusing less on the power of a single CPU and instead adapting our problems to a large number of CPU’s – massive parallellism, as it’s called – may be the single most important shift in technology since the transistor was invented.

In the Heat of the Night

Recent temperatures have been above normal, if I have anything to say about it. Which I do, because this is my blog and I can say anything I want. The official statistics may of course lean whichever way.

Maybe it’s because of my office. Where I work right now, we have a constant indoor temperature of about 27 to 28 degrees Celsius (about 80-82 Fahrenheit). There’s supposed to be A/C, but it is woefully inadequate, even in normal weather. Temperature dropped to “normal” levels just as we had a large fan installed, which oscillates between providing a cool breeze for me and my colleague in our room. But our room is comparatively cold — the guys down the hallway probably have 29 or 30 degrees to work in on hot days.

My apartment is not much better either. Temperatures rarely go below 27 degrees. It’s probably because I’m living on the top floor (the seventh), and all the heat generated by the apartments below me tend to end up in my place. Usually I have to open the balcony door to vent out the excess heat, and if I don’t keep it open, then I usually wake up at 3 or 4 o’clock at night and suffocating from heat.

I don’t know what it is, but I’m taking cold weather much better than warm weather nowadays. I kind of long for those -20 Celsius we had this winter (-4 F). Part of that, I think, is because it’s easier to warm up by adding more layers of clothing, than it is cooling down. There is only a certain amount of clothing you can remove before pure modesty sets in and blocks the path, whether in private or in public.

The only right thing to do, in those cases, is to turn on the fan, crash in the chair in my living room, and play Ray Charles’  “In the Heat of the Night” on the stereo. At least that makes me feel like I’m in Georgia.