There are 8 posts tagged with lisp.

There is an Atom feed for posts tagged with lisp.

mini-fract 0.6

2009-12-09 Tags: , ,

I just released mini-fract 0.6, the mostly standalone version of fract. This is a minor update to make it use ZPNG, the supported successor to salza-png that I was previously using. Adam Majewski wrote some introductory notes on how to get started for someone with very little experience with the Common Lisp programming environment. Enjoy!

Tail call elimination is good in C too

2008-04-09 Tags: , ,

All recursive algorithms can be converted into an iterative version. They teach that in school. They teach it as something that should be done, and it used to be true. However, we a living in a wonderful time and old wisdoms sometimes cease to be true.

Some algorithms are much more elegant when written recursively; the recursive version is also easier to prove. On the other hand, the iterative version will avoid many stack manipulation operations. Theoretically, any tail recursive function can be converted into an iteration transparently by the compiler without performance penalty compared to the hand written iterative version. Theoretically.

When I wanted to prove that Common Lisp had really fast implementations, I did my best to use the iterative version of the Mandelbrot formula. Unfortunately, there was no way around it, the iterative version would always run a bit faster. "So be it," I said to myself in resignation.

Fract static gallery

2008-01-19 Tags: , ,

Fract was recently mentioned in a review of cl-pdf. This reminded me that I had promised something: a static gallery of the most popular regions. Enjoy!

update: I just uploaded a bunch of fractal movies.

Programming Languages

2006-09-28 Tags: ,

In The Hundred-Year Language Paul Graham pretend that the language that we will use in 100 years would be great to have now. I think he is wrong. He probably also think he is wrong because he seems to have stopped working on Arc. In Worse is Better, Richard Gabriel argue that Unix and C came to lead because implementation simplicity is as important as interface simplicity. Every now and them you read a post on Planet Lisp about how we should fix Lisp. Since Paul Graham isn't likely to do it lets look at what it means and how someone could do it

Lisp is more or less a family of programming languages with a few key features though some may argue about the exact minimal set to be called a Lisp: simple sexp syntax, dynamic typing, macros, garbage collection, first class functions, closures and few other things like built-in linked lists and programming in the ast instead of line oriented command lists. There are two members of that family that still have a decent community and who can be used for general programming: Common Lisp and Scheme.

Torrent Full of Lisp Porno Movies

2006-03-31 Tags: , , ,

The Mandelbrot Set is the index of the parameters for which there is a connected Julia Set. Seeing how the two are related is quite interesting. Especially with animations. And if you like the little sample, there is a torrent full of them.

The complete source code is included, of course. The walks along the main cardioid and the main bulb are pretty neat. From this we can guess that a walk along some secondary bulb would especially nice. Now, I have to ask for help on that one. The point of intersection of the secondary bulbs are know, they are

   (/ (- 1 (expt (- (exp (* 2 #c(0 1) pi (/ p q))) 1) 2)) 4)

The main bulb is p=1 and q=2. The first person who tell me how to find center of the secondary bulbs will win a custom rendered movie! Isn't it a good deal?

update: the torrent is gone. Bittorrent is great for large files with flash popularity. Without it hosting large files like that would have been really difficult. The catch is that you need seeds and you can't hold on them forever. The movie pack was downloaded 75 times for a total of 19 gigs. Wow! Thanks to all the seeds! I'll pay you back with more fractal stuff soon.

Lisp porno movies

2005-07-29 Tags: ,

In one of the chapter of The Mythical Man-Month you see the menu of a restaurant and the caption "Faire de la bonne cuisine demande un certain temps. Si on vous fait attendre, c'est pour mieux vous servire, et vous plaire" which would translate to "Good cooking takes time. If you are made to wait, it is to serve you better, and to please you". It is true that a quick snack can help you to wait and I hope that my fractal zooming movies helped you to wait. Now, the real meal is ready. David Steuber finished rendering his Xeno's Xomo movie! This movies is made with Common Lisp, it took months to render. It is a complete movie with a soundtrack and all.

I hope that this kind of movie stimulate your curiosity for Common Lisp. You are lucky to start now, Marco Baringer just made a great demo of SLIME, the Common Lisp interaction mode for Emacs. In this demo you'll learn some of the tricks that make editing Lisp such a pleasure. After that you'll probably want to code you own web based fractal zoomer so why not grab Marco's demo of UCW, a package for developing web applications in Common Lisp. We are not done yet! You think that Common Lisp is the perfect language already ? You are wrong, but the good news is that making the perfect language for a particular job is pretty easy if you use Common Lisp. Rainer Joswig made a really good demo of a domain specific language using Common Lisp.

Now you must have started your downloads and while you are waiting you think that you should do some googling for a good Lisp tutorial. You can stop searching since Peter Seibel was kind enough to put Practical Common Lisp online for your reading pleasure. "Are we done yet ?" you might wonder. Well... no, I'm afraid there is still more porn to download. Rainer Joswig managed to find some Symbolic Lisp Machines and made some lisp machines videos! That should be enough for now, I'll keep the rest for the desert.

Fractal Zooming Movies

2005-04-25 Tags: , ,

I had to opportunity to have a chat with David Steuber, a truly dedicated fractaler. David have been rendering frames for his new fractal movie for the last few months. After I watched his first movie, I wanted more so I added the movie support to Fract. It's basically the same thing as the zoom trail but with many times more frames and a file numbering that helps the encoder. The Fract generated fractal zooming movies are from spots in the scoreboard, I may add automatic movie rendering for the top rated regions in the future.

Anti-aliasing and Takeover

2005-04-21 Tags: ,

I added anti-aliasing to Fract. For regular images, anti-aliasing is best done by averaging a grid of sub-pixels. For the Mandelbrot Set, dividing a pixel into sub-pixels actually increase the probability of falling into a punctually detailed region. A solution found by SunCode on sci.fractals is to keep only the minimal escape value of all the sub-pixels. The result is great! Unfortunately a 3x3 sub-pixels grid is 9 times slower to compute so I'm not likely to add anti-aliasing to the Web interface unless I receive some hardware donations.
; )

In the mean time someone called Lahvak decided to take over the top 10. In the last few days he submitted several great regions. Many of them made it to the top 10. Lahvak now rules more than half of the top slots. Congratulations Lahvak!

With the trail feature, I could notice a trend. Many of the best regions originate from the tail or somewhere behind a random cardioid. Also, most of the top 10 is dominated by the funky-2 color map. This either means that this one is particularly great or that all the other maps are really ugly. I fear the later case so I'll try to make a few other maps.