Archive for the ‘Computing’ Category.

How stupid…

I’ve just received a mail with nothing but an executable file for Windows attached. The mail even seams to come from no other than myself :-) What exactly is it, that people expect me to do with such a mail? Should I just blindly trust anything that is sent to me from “me”? I don’t get it — are there really people out there, that just thinks “Well, I don’t remember sending this file to myself, but it could happen, that I send a file with a strange name for a strange operating system… Let’s try it out!”

A Long and Exciting Day

Yesterday was a rather long day — or to put it more precisely, it became a long day, when Manitou (Jérémy) and I decided to attend a lecture about Models and Logic (the course is called dModLog at DAIMI). We had started our day at 8 O’clock and was finished five hours later. But then we decided to go to the lecture — it lasted for another three hours.

The lecture was really interesting, we heard about Finite Automata, which I believe is also called Finite State Machines. We heard about languages and how to define a Finite Automata in terms of five parameters: Q, Σ, δ, q0, and F:

  • Q is a finite set of states. The states are the memory of the machine, and in any given moment, the machine will be in exactly one of the states.

  • Σ is a finite input alphabet. It could be binary digits, the ASCII characters or another finite set of symbols.

  • δ is a transition function δ: Q×Σ → Q. δ is the function that makes the machine act on it’s input.

  • q0 ∈ Q is the start state of the machine, and

  • F ⊆ Q is the set of final, accepting states. If the machine is in a state in F, then it will answer “Yes”, if not, then it will answer “No”.

You can take a look at the slides that were used if you want to know more. I hope to be able to follow the lectures loosly, as they’re going to prove Gödel’s incompleteness theorem later. Ever since I first heard about it, I’ve wanted to understand what it really says — I’ve only heard the informal explaination of it, namely that it says, that there are things in every closed system that cannot be proved, although they’re known to be true. That sounds like a very fundamental theorem, and I’m really looking forward to learning about it — if not this year, then definitely next year, where dModLog will be part of our mandatory courses.

It’s working!

Screenshot of a Rubik's Cube I showed you a 3D cube the other day — a cube modeled in OpenGL. I’ve now refined the cube so that it looks much better, and I have combined 27 of them into a Rubik’s Cube. You can rotate the cube as a unit, and you can rotate the individual sides. It’s actually pretty cool :-)

The cube is fully illuminated by a single light in the scene, and the individual cubes have their normals defined for all vertexes, so that they can reflect the light faithfully. The colored sides doesn’t shine very much, whereas the black, rounded edges have more intense highlights. At first I was somewhat confused by all the parameters that control the lighting in OpenGL, but it turned out to be pretty easy to work with.

Screenshot of a Rubik's Cube You can download the source right here: /downloads/rubik/. You should be able to compile the code if you have a C++ compiler (such as g++) and the OpenGL library together with GLUT which is available for both Linux (that’s what I’ve been using) and Windows.

The program is still in a kind of pre-alpha state :-) It is my first attempt at learning OpenGL and C++. So far, I really like both OpenGL and C++. I’ve been very positively surprised by C++ — it behaves just as you would expect, and it has all sorts of advanced and cool features like template functions and classes, full support for object-oriented programming and the Standard Library.

Happy New Year to everyone!

We had a good New Years Eve yesterday — the weather was a bit foggy at first, but it cleared up just around midnight, so that we could see all the beautiful fireworks. We have a really nice view of the city from the first floor — it was spectacular!

A thumbnail of a cube with rounded corners The Party was really cool! thoooms gave me a crash-course in OpenGL programming — I have now made a program that builds and illuminates a nice cube with rounded corners — take a look at the picture at the right. The idea is that this cube should one of 27 cubes that would make a Rubik’s Cube. I think it would be really cool to have a real three-dimensional Rubik’s Cube — one that you can rotate and solve using your mouse…

When I told thoooms about my plans, he looked a little uneasy. He showed me a huge book, that he had got this Christmas, and turned to a chapter about something called picking. It turned out, that it was far from simple to figure out which object the user actually points at in the 3D world — the book had a whole chapter devoted to that subject alone! So it’ll probably take a while before my program will be able to do that :-)

But that doesn’t matter, as it’s really fun to play with OpenGL. I’ve also gained a better understanding of all the hard work that lies in the fancy games we see today — there’s a really long way from my simple cube to that! :-)

A Printer-friendly Version of the tutorial

I’ve finally made a Printer-friendly Version of my PHP Tutorial. I’m sure, that some would say that it was about time :-) The page is build from the actual pages that make up the tutorial, so it will always stay current — it’s actually pretty cool.