About this blog:

Ego-stimulation spot. [3dGfx,Maths,AI,Coding,...]
Blog plan: no plan.
It will be an archive of thoughts, ideas, discoverings and experiences in the various fields I find intresting. That's all, nothing special but I'm publishing this stuff because mabye there's someone that could find this stuff useful... Hahaha, well no I think that's not the reason. It's an ego-stimulation site... [more about e-s]

bout me

My name is Angelo Pesce, I'm Italian and I was born in 1981. I'm currently studing at the University of Salerno. That's enough for bio. My main interests are 3d graphic research (used to be realtime rendering but now I'm much more interested in raytracing stuff), 3d graphic modelling (sometimes I play with Lightwave or Rhino), mathematics, art, music, coding, demoscene. I'm not good in every field, but I'm curious, I enjoy learning new things.
Philosophically I'm an atheist and a mechanicist.


Math world
3d Gfx Deathfall
Grafica obscura
Karl sims evolving creatures
Photography - Man Ray
Graphics research
Mozilla browser
Demoo scene
many other things...

Hacker Kulture
Microsoft C# and CLR
Microsoft directX
Microsoft Messenger
mIrc scripts
almost everything...


July 2003 / August 2003 / September 2003 /

Using blogBuddy

Powered by Blogger Pro

Feedback by backBlog


thi s i
  menge r  
  spong e    
Blasphemus (latin): blasphemer, [adj.] reviling



                                .Monday, September 1
Last Lisp Post (I hope), the functional language Scheme, static typing and other rants.
It has been quite a long time since my last post. I would like to say that I've enjoyed a long summer holiday, but that isn't true. I've just been idling most of the time. [Update: my holiday is over and I don't have a girlfriend anymore. Not much pain at the moment, we'll see what it has to happen next]. No work for my thesis (I don't know for sure if I can do what I planned to do), no graphics work, almost no programming, not much reading (just a Leibniz and Von Neumann bio by "le scienze" and a few of the usual graphic research papers). I've started another blog, it's in italian and its truly about random, non-technical trougths (read "bullshits"). Mhm, no maybe it's more some kind of sociological experiment on how people are attracted by bullshits, but I do think that you have to believe in what you write to be really influencing so I might fail. By the way, I've discovered more about lisp, but not everything is pleasing. The first thing I have to talk about it's Scheme, one of the two major Lisp dialects still in use (the other one is Common Lisp). I've found a good tutorial for it but also its specification is quite readable (one of the major features of Scheme is its compact and orthogonal definition). Scheme is quite popular too (sourceforge hosts 158 scheme projects versus the 261 lisp ones), but to say the truth it's mainly used as an embedded extension language (the gnu extension language guile is based on scheme for example). Most CL advocates will tell you that Scheme is only good as an educational language, lacking a good library and striving for minimality. Don't listen to them, while it's true that most commercial development tools are built for CL, Scheme is actually quite good. You just have to use an external library like SLib and you're ready for real development. Scheme also has quite good compilers (check out bigloo, it has a score of 730 vs 734 of CmuCL Lisp compiler on CLS) but it's true that CL ones are still a bit more advanced (I really like CmuCL and its spinoff SbCL with their type inference system and good optimizer). What I like most about Scheme is that's actually what CL had to be (in my humble opinion). It has all the elegance and power of a Lisp language (with some extensions over CL) and it has a clear, elegant, coherent function library (I love the ! and ? convention of side-effecting constructs and
predicates). CL instead (to maintain backward compatibility with older lisp) is all clobbered with strange function names, and it's really hard to learn its library or to find the right function when you need it (even if you really "fell" that such function should be there). While CL advocates say that's hard to have such elegance and a complete, real-world, production system, SLib is clearly an example of the opposite (and actually SLib is more complete than the standard CL library too, and it's almost as cross-plattform as it is). So is Scheme the "perfect language"? I have to say, no. It completelly lacks (as far as I know) any form of static typing (while it's just hard to do it with CL) nor do compilers support it (again, afaik), its core is really too minimal (according to the specification for example an implementation needs only to have floating point numbers and there's no defined code-data equivalence) and while almost every Scheme compiler supports all the optional features (and many of them extend the language too), the fact that they aren't required is a clear problem for cross-plattform development. But for me the "static typing" question is the most important one, I do believe that's needed for a robust language for "real world" development. I've talked of this issue with a lisper that was helping me with my GP system and he tried to explain me that static typing was just unuseful. You had only to replace them with dynamic type checks, and then do the correct action if a wrong type was found (for example, throw an exception). I don't want to talk about the performance issues there because Lisp doesn't care much about performance, and maybe we shouldn't too, computers are fast enough nowdays. But that stuff still seemed like saying "To avoid bugs in Lisp code, just write bugless code". Now it's true that writing bugless code is easier in lisp than in other languages, and it's also true that's easier to check if a single function is well written or not. But this doesn't mean that static (compile time) checking is not good and it doesn't make it less useful. Also it's easier, cleaner and faster to use it instead of dynamic type checking, when all you really want is it. It's like the imperative versus functional style debate, it's true that functional one is more powerful but when all that you really need is a "simple" imperative function, then it's good to have a way to do that (and lispers do know that, they actually use a lot of imperative constructs, and they keep the functional elegance by keeping functional "interfaces" and using imperative code just inside single functions). By the way, debugging in general seems to be harder with functional languages than with imperative ones, just because you can't sit and watch how your function modifies the global environment step by step. But maybe that's only my problem, because I'm mostly and imperative programmer, and because most lisp implementations are not as good VisualStudio :) Also debugging alone does not matter, you have to benchmark the entire development process, and I doubt that here functional languages loose.
Ok, enough for now, there's just some time for the "other rants" I've promised in the title. I have experienced various different computer communities now. Graphicians, demo coders, sceners, programmers, amiga fans, c64 enthusiasts, linux users, java programmers, and so on. I'm very curious, and as I can't learn everything from the web or from the books I take from my university, I just happen to annoy people here and there searching for help, hints, links or just for talking. While doing that I have observed a trend. An obvious one I admit, but it's still worth some words. The trend is "frustrated communities tend to be angry ones, angry communities tend to be closed ones, closed communities tend to damage their product". Amiga users where angry because PC was considered worse than their pupil, and still was the market leader. Guys on the italian amiga irc channel used to ban me just because I joined with a PC, even if I were and am a big amiga demoscene fan, and if I know "enough" about amiga itself. I think you've got it. Lisp users are angry, they fell that they have the best of all languages, but people just don't seem to want to use it. At least that's my experience, maybe I'm wrong, and I'm not talking just of irc guys. Will that improve the language? Spread it more? And as they think they got the best language, they are also pretty radical. Java is bad. C++ is bad. ML is bad. But also Scheme is bad for CL fans, and what about the new lisp-like languages (check out arc and goo)? Now we can't say anything, but when they are finished, they will be bad. If you want to enjoy elitness without having to be "pure", join #c-64 (ircnet) and tell them that you're trying to learn 6510 assembly with Vice and Dasm on a Windows XP box. Most of them will still help you.
                                .Thursday, August 14
Is lisp slow?
Yes, I've said that lisp is slow. I still believe in this, or better, that if you want to write fast lisp code you have to write ugly lisp code (this is quite true for java too, but java has less variance). That's mainly because lisp is more "high level" so writing low-level optimized code requires messing up the language quite a bit. The fact that lisp doesn't matter about hardware numerical support (integers in lisp are usually in infinite precision) and that it has a "bad" support for static variable scoping also helps... BUT there's something that can make lisp very fast in some projects, and I forgot to mention it, it's its capability to view functions as data, and to compile them on the fly. This gives you the possibility to create new functions in runtime and to compile them. I plan to use this feature in my genetic-programming inverse mixed-polar-ifs solver, to evolve mixed-polar-ifs descriptions and then compile them to have a fast way to evaluate the resulting iterated function fractals to establish a fitness measure for the description itself.
You can find this stuff and much more in the On Lisp book by Paul Graham. It's a GREAT lisp book, read it (it requires just a very basic lisp knowledge to be followed and enjoyed).
                                .Tuesday, August 12
Some time ago I installed the famous Seti@home background number-cruncher. For the few ppl on the net that still don't know it, it's a tiny toy that "steals" your idle (wasted) cpu cycles to help finding extraterrestial intelligence. The project was intresting, but it's too hard to have any success and so it seemed to me that I was still wasting my cycles. There are a pletheora of such projects on the net, but you'll hardly find a "useful" one. The most intresting ones are the pharmaceutical research projects but reading a bit here and there I've found that in most cases the property of the drug, if one is found, will be of the (usually private) sponsoring association. And I don't want to give my cpu cycles so others can make much money without having to spend a lot in research.
Currently I'm running foldingAThome, it's good, non-intrusive, it doesn't crash and it seems to be promising too.

If you don't want to share cpu cycles, but your knowledge, check out mindpixels or the (really good) wikipedia-
                                .Monday, August 11
My new cat
                                .Friday, August 8
Fountain pens

Lots of posts today... and if I manage to finish my new GP system they won't finish here... By the way, I was thinking that I'm talking about computer languages and programming a bit too much, as this should be a random blog and not only a programming one! Sometime I'll post something about graphics too, but for now I want to give a couple of links about another hobby of mine, fountain pens. Well to say the truth I haven't found many good sites about that, so I hope that someone can help me finding new spots too! Enough saied, now the links: grinding your own italic nib (I've tried that, it's not hard), Glenn's pen page, Pen Hospital, a never updated foutain pen page, PaperPenalia.
The picture above is the pen I currently use most of the times, I hate montblanc pens but for that one I made an exception, it's really nice. I also love the mont blanc agatha christie, but it's way too expensive for me at the moment.
Languages for the .NET CLR
Good news! Microsoft started a SML/OcaML compiler for its new .NET plattform, this could give functional programming a new boost. I really HATE .NET, as I hate every Microsoft attemp to pick up a mature, robust, widespread standard (JavaEE) and copy it making its own proprietary version. But this is really good news, mabye something will change and more people will start using those more high-level languages. Also check out other microsoft language researchs and to be fair the currently available languages for the Java plattform too.

While searching for a good image for that topic (and I haven't found anything decent as U can see) I spotted this one:

nothing to do with the topic, but HEY! Usually my images do NOT have anything to do with the topic anyway!
Languages for computer programming
Lame title for a lame post. Better if I put a good image here, to compensate...

Ok now, what I wanted to do is a little review of the programming languages I know and use, something like the Alex Champandard one on flipcode, just worse :)

Basic Hahaha, this one is funny. I learned it on the glorious commodore 64 when I was 9. It's not usefull for anything, it used to be a beginner (all-purpose symbolic instruction code) language. Nowadays I wouldn't recommend it for any task, even not for learning or for elementary schools. You will learn to code the bad way, doing spaghetti code and it's not really that easy by the way. It's better to start with a real language (C) or with some "educational" one (Logo, Pan#, Haskell, Scheme). I don't want to talk about Visual Basic at all. After c64 basic (made by Microsoft) I used microsoft QBasic/QuickBasic (good ide, good library) and PowerBasic. PowerBasic had an 8086 (only realmode) inline assembler, so I switched to:

Assembly I started to use 8086 assembly as I wanted to code realtime graphic effects and PowerBasic was simply too slow for that. Nothing to say, it's the most low-level language in the world, I used it only to squeeze some more cycles from my old hardware, and I learned to optimize it very well for the 80x86 family of processors mainly thanks to the Agner Fog's tutorial. Nowadays asm optimization is the last thing to do (if even), and noone writes 100% asm programs on a Pc anymore. It's still kinda usefull for small devices, with low performance or memory. After 80x86 asm I learned c64 asm (6510), mips asm for the university (and I wrote a mips assembler/debugger/virtualmachine), a bit of z80 and 68000 asm and java bytecode (!!!) Advantages: Speed, Size, Lowlevel hardware access - Disadvantages: Difficult to learn, code, read, debug, maintain, extend

C This is the first REAL language I learned. It's the most widespread language in the world (with C++). There should be a reason (and in fact there is, maybe it's not a GOOD reason btw). Definitely it's a must-know, you'll find a C compiler everywhere. It's still a very low-level language, it's easy to learn, as easy as Pascal (and that is considered by many people an educational language), VERY fast and it has a decent syntax. You will learn imperative programming with it, but I would not use it for a big project as it's unsafe, hard to maintain and basically it's not really much more advanced than assembly. Good to learn imperative style of programming and how a computer works, good if U have to make fast code or have lowlevel hardware access, bad for everything else.

Pascal If U know it maybe the only real use you can make of it is with Delphi (an object pascal rapid application development environment by borland). Otherwise, don't learn it, is as easy as C, as powerful as C, but much less used.

C++ Surprise, surprise, this is the language i learned after C. Some people think that C++ is just like C with a couple of feature added (C++ is backward compatible with C), and so it's not hard to learn C++ if you know C. Maybe it is, I learned most of C++ syntax in a week. But learning its syntax is not the point, with C++ you'll get an Object Oriented language, and this is the BIG step, starting to think in OOP. More advanced C programmers tend to write in and OO style even if they use a non OOP language, because this is the only way to make big programs in C without going mad. Learning C++ is not that hard, learning it WELL it's REALLY hard. C++ is big, complex and powerful, do not underestimate it. It's also a "new" language, the C++ Ansi standard is recent and still many compilers aren't 100% standard. However this one, like C, is a must-know. Advantages: Object Oriented, Powerful, Fast - Disadvantages: it's not a pure OO language, it's complex, it's still kinda low-level and unsafe

Java Java is a language that I really love. It's simpler than C++ (much simpler, it's even used as a beginners language), it's almost as powerful as C++ (it still lacks templates-generics but they will be added soon) and it's much more safe. If you learn Java after C++ it may seem that it isn't really a different language, it's just like C++ but less complex and more secure (java is much less low-level than C++). But when you start coding in java you'll find that those little differences make it a much easier and more productive language. Java has some unique features too, it's a portable language, java applications are not compiled to machine-code, but to an intermediate form called java bytecode, this bytecode is then compiled just in time by a java virtual machine (and now most JavaVMs are mature enough to not cause big problems between different implementations), it's designed for internet, it's secure (there's no way to have a direct hardware access, so the only hacks that are possible are the ones based on some bugs in the virtual machine) and safe, it runs on many different plattforms (from enterprise servers to celluar phones), it has an automatic memory management (garbage collection or GC). Some people still believe that Java is slow, well that's not true anymore, I have made many benchmark and with recent JVM/JITs you'll get an executable that's usually only 25% slower than the pure-C version. Of course it's not a language for the ones that need to squeeze every cycle out of the CPU, but it is fast enough for most uses, even for many realtime applications.Advantages: purely OOP, Secure, Safe, Easy, Mature, Portable, Internet support, GC - Disadvantages: No lowlevel hardware access, it's still a purely imperative language

ML family Now those are good. When I learned about functional programming I tried many different languages but nothing seemed as good as ML ones. ML is a family of languages like most functional programming ones. The best members of this family are SML/NJ and OcaML and those are the one I used most. If you already know C/C++/Java you have to give a try at functional programming, even if you won't use a functional language for any serious project (there's no reason to not use them, it's just an example) the knowledge of functional programming will change your style of thinking and coding. It's not something that I can fully explain there but this is really a better way of coding. Imperative programming is limited by the fact that it works just like the underlying computer, using instructions that modify the environment (side-effects). This is NOT how we think about computations, that's what the VonNeumann style of computers do to compute things (this is to say, that ALL imperative programming languages are really low-level ones, because even if they abstract from a specific hardware, like Java, they still work like the hardware does). Nowadays we should abstract from how the machine works, and start thinking about how we can code better, because we have to find different paradigms imho, the current ones show clearly their limits. It's impossible to make a bug-free program, it's impossible to make a secure program, it's damn hard to extend and maintain code. We are developing some complex techniques to push our actual language technology further (like OOP and GC) and make our life easier, but those are only "addons", not really new ways to do things. If you want to know something more about that, start with why functional programming matters and then try to learn SML or OcaML. OcaML is more used, it's one of the best known functional languages (after lisp and scheme I think) and it has a very good library and a good compiler (it generates code that's actually faster than the Gnu C Compiler!), also it's not a purely functional language, it still allows some side-effects (imperative programming). Advantages: Fast, High-level, Nice syntax, Safe (strictly typed with type inference), GC - Disadvantages: A bit hard to learn for an imperative programmer (that's why you don't have to learn just a new syntax, but a new way of thinking), not much used, it's not a lazy functional language (check out Haskell for that)

Prolog I don't know this one much. I know the basics and I have read a few books about it but I can't really code in Prolog. It's hard to understand for an imperative programmer and hard for a functional one too. Give it a try, and if you don't find it good for anything, give it another try. It's a logic programming language, it's extremely easy to use for some tasks (IA stuff and everything that requires searching or that implies logic), but it's hard for other ones. It doesn't have a true arithmetic support too. Why I tell you to try this one? Because it's a good approach to declarative programming, and declarative programming is a true high level paradigm. That's to say, it's something that in a perfect world we should use to do everything, you don't say what the computer has to do, but what the problem it has to solve, declaring the properties of the solution. It's the basis of the Japanese fifth generation language project.

Lisp Phew, this is the last one, as U can also see as most of my recent posts are about that language. It's a functional language, but it's a "strange" one. At first it seems to be really weird, it has an horrible syntax with pharentesis everywhere! But there's a reason for that, and a good one too. In Lisp data and code are expressed in the same, unifying syntax, using lists. Everything is a list. Why? Because doing so you can make code that manipulates code, modifying itself. It's something really powerful when you learn how to do that (and if you have to do that by the way). But that's not the only advantage, as there's only one kind of syntax for everything you can extend the language easily, and your extensions will be no different from the core language itself. In fact when you write lisp code you are not only writing your application, but you'll see that you'll start to actually modify the language to suit your needs, adding new features and functions. This is completely natural, and that's due the particular mix of features that make the Lisp language, so this one is another "enlightening" language, even if you won't use it for real work, it will change your mind. But be warned, it's a bit difficult to make this step, in my older posts you will find some basic tutorials that will help you, but at first is completely normal to think that Lisp is just crap. What else to say? Lisp in a symbolic language (it's better suited to manipulate symbols than number, for example it's easier to write computer algebra system with it than a numerical library), it's one of the oldest languages still used (with fortran), it's the first functional language ever made, it has a great OO system (the first one to have an ANSI standard, and for many people the most advanced one in the world) written in Lisp itself (as lisp is so flexible, there is no need to write a "Lisp++" to get an OO system) and it's much used for AI stuff. It's really a BEAUTIFUL language, after learning it in the "right" way you'll know what I mean (and if U search for a more beautiful one, but less production-ready, try Scheme). It's Slow. You'll find on the net many tutorials, benchmarks etc that say that Lisp is not slow, it's comparable in speed with C and faster than Java etc... Don't trust them this is not true. Well it's half-true. With lisp you CAN make fast code, but you have to code in a really ugly way, loosing many of lisp advantages and using weird declarations to turn it into a strictly typed language. This is also true for other languages by the way, for example if you want to optimize Java to the max you have to write bad code, doing by hand all the optimizations that current java compilers don't do and studying the transformations done by your target JavaVM, if you want to write OcaML code that is faster than C you have to use OcaML as an imperative language etc... Advantages: Code as Data, Flexible, Powerful, Mature, Safe, GC, Symbolic - Disadvantages: Slow, not suited for numerical computations

P.S. If U found this post interesting (lol) you can enjoy The Win32 Great Computer Language Shootout and the original Shootout
P.S. The image is taken from Back orifice 2000 propaganda
P.S. I hope I won't be flamed too much for this post...
                                .Friday, July 25
Searching the WWWorld

Sometimes I happen to think about the power of the WWW. I mean its ability to retrieve information. It's simply astonishing! In the old days, the problems where how to get information, it was difficult to find and expensive, now I get so much interesting stuff for free that the real problem is where to find the time to read all the things I download!

By the way if you want to become a better searcher, you HAVE to visit this site. It's Fravia's homepage, mabye you want to check out his older page too (nowdays it's offline but you should find some mirrors here). It's about software and reality cracking, and it's VERY good.

Ah, last but not least, if you're searching about scientific papers (articles, publications) check out citeSeer, I use it almost daily.

Two images this time, I could not decide which was better.
My blog is getting "mature". If you find it intresting, please link to it, spread the word. Thanks (it's an ego-stimulation spot...)
Lisp for 2d/3d graphics?

I asked Ben Fry (one of the author's of proce55ing, there's an earlier post about that language and the Mit A+C group) why he used an imperative language like java instead of a more powerfull, easy to learn, explorative programming oriented declarative one (like lisp). Obviously he told me that it was to make the transition from the language they curently use (java) to the new one as easy as possible and he did not care about creating "the definitive" or a good language for 2d/3d graphics. In fact proce55ing is "only" an easier 2d/3d graphics library for java, made to speed up programming at Mit A+C. As there is quite a flow of people from the lemonodor lisp weblog to this one, I wonder if anyone knows about a good lisp-like language for graphics programming. I know only AL, the animation language that is capable of generating renderman compatible scenes. It's really a good work, but it seems a bit incomplete and I don't think it's actively developed anymore...

p.s. If you like the image above, check out its author's homepage. He is the author of AL too.
Going crazy for MC?
In those days I'm reading more articles than I use to do, as I want to make order and find the missing pieces in the puzzle that I call my master's thesis. I'm testing development environments to choose the one that better suits my needs (I think I'll use Microsoft VisualStudio2003.net, but I'm also testing the really good C/C++ compiler and VTune from Intel using renderBitch as a test source). I thinked about using java, but as I have to write some cache-sensitive code, that doesn't seem to be a good choice. Also I have to have the possibility to use SIMD instructions. I still don't know if I'll use STL (and mabye Boost) or not.

By the way something that I'm exploring in depth is Monte Carlo integration and its derivates (QuasiMonteCarlo, MCQMC-rQMC). I also made a cd with truly random numbers (look here and here)for MC simulations!!! Now THIS is something geek. Other random numbers links: lavarnd (that's NOT lavarand, the random number generator that used lavalamps as entropy source), hotbits, Agner Fog. I also checked many random/quasirandom number generators, random sequence testers and other stuff, but that's really too many to post all the links, mabye in another post...

What else? Well I'm really working hard (nah, that's not true, I spend most of my day sleeping and playing diablo, AGAIN! :/), I'm reading a lot. I'll keep you informed of significant progresses. Gotta go now.

geez, I noticed a big boost in that little page hit counter :) ... after a bit of investigation I found it was due to the link on lemonodor. I have to say thanks to John Wiseman for that.
R.E.M. in concert

Yesterday I went to a R.E.M. concert here in Naples (Bagnoli-exItalsider). Dunno if I'm getting too old, but it wasn't a pleasing experience. We (my girlfriend, I and another couple of friends) had to wait many hours (It was a kind of festival so various groups had to perform before REM) and it was just too hot (we even reach 40° in this period) and humid. Also the group was late (as usually, but I don't care about that when I'm seated and fine) and when Stipe started to play I was only thinking about going home. I'm not a big fan of Rem too, I think they're doing the same kind of music for too long, but they're so good at it and they came so near that I couldn't resist. I started enjoying the concert only when I gave up and went far from the crowd. It was easier to see them too (!!!). After all it was a good concert.
An easy way to learn 3d graphics?

Some days ago I met a friend of a friend (It-Alien, he is a kinda good musician too) of mine, that wanted to learn 3d animation. She never did any 3d graphics, she knows how to use a pc well, but she was really discouraged by the size of the "introductionary" book I gave her: Inside Lightwave 7 by Dan Ablan. Anyone know other "easy" ways to start doing 3d animation without much effort?
                                .Monday, July 21
                                .Saturday, July 19
Want to design your own alphabet?

Try the alphabet generator. A cool application of genetic algorithms used to evolve new forms of writing. You can even export the results as a truetype font!!!
                                .Friday, July 18
Coders: MUST READ!

Must read! Everything. Expecially the worse is better?/! stuff (Richard P. Gabriel's homepage)
                                .Thursday, July 17

In those days of nonsense, you'll find the Zen way more meaningful: Random Mummon's koan

Lisp Machines (lisp in hardware)

Another very good lisp introduction: Pascal Costanza's Highly Opinionated Guide to Lisp
                                .Wednesday, July 16
Bad exam...good Site
NetArt@Whitney discovered from Ben Fry@A+Eg|MIT
                                .Tuesday, July 15
Boring exams and prime numbers
Tomorrow I have an exam (Probability Theory), but I'm too lazy to study it well. My girlfriend has an exam too, but something happened and she's very edgy. It's rather hard to speak with her at the moment, tomorrow I'll see. So I'm writing this post, and I've discovered some good sites too, so mabye I'll end up with some useful links.

Here they are: A very easy prime numbers tutorial A blog about the connection between prime numbers and physics, and well I reached those by browsing Mathworld (a section of TreasureTroves) Wikipedia-Maths. What else? This may be intresting too devlin.pdf, it's an historical explanation on how Euler discovered the Zeta function.

Ah, I just forgot... While doing my last exam (Artificial Intelligence) I brought a book by Amir D.Aczel (I had to wait much before actually doing the exam) about the Fermat's last theorem. It's really good and very easy to read, even for a non mathematician (90% of the book speaks about the history of maths, or a little part of it, and it's really funny to read). Buy it, it's also very cheap!
                                .Thursday, July 10
Diablo II is not that good... :)
After finishing it at normal level, my interest in it is much lower. It's repetitive, trading is hard, it's not that fun. I'm not addicted to it anymore!!! (well mabye just a bit...). I've installed GhostMaster it seems to be very funny, I hope it doesn't catch me like diablo. Well to say the truth everything catches me when I should study, mabye this is the reason of that gaming-fever.
a better diablo

Yesterday night I was trying to fall asleep, but that wasn't so easy because my girlfriend had to sleep in my house, and as I still live with my parents, I had to leave my bed. While trying, I started thinking about my master thesis project. I want to write about a "new" raytracing rendering framework, that seamlessly integrate raytracing with renderman, trying to retain all the good features of reyes. It's an open, robust framework fast enough for pratical use but generic enough to permit experimenting with various solutions in every important field (shadows, shading, global illumination, sampling, spatial/temporal coherence etc...). The framework *should* work well, but it's in pre-alpha-planning phase, I haven't even defined well the modules and the various classes I need. Inside this stuff I also had an idea about global illumination via photon mapping and importance sampling. I noticed that all the importance sampling methods for photon mapping use some importron maps to modify the storing probability of shooted photons. This is good, but wastes lots of work by discarding many shooted photons. Moreover importons are the dual of photons, and so they could be importance sampled by the photons and so on. All that stuff lead me to think along the lines of an iterative photon-importron shooting and about a method to "guide" the shooting, instead of shooting blindly and then discarding unuseful information. Well, all this stuff just to say that... yesterday I found a flaw in my previous algorithm and also managed to fix it! This time it should work, but I have to recheck it again and again to be sure.
                                .Wednesday, July 9
Diablo II is evil!

Shit! I'm not studying and I'm not doing anything else. I've become a "sir" in diablo 2 online, I'm spending too many hours playing that game. I'll have to remove it from my hd.


I hate web design. I hate web design. Made with Macromedia DreamWeaver MX. Web design hates me. Tested with IE and Mozilla under WinXP@1280x1024. I hate web design.