Ruby's Lisp features

01 05 2006

Not too long ago, Edward Kenworthy inquired about ‘Ruby’s lisp features’ on ruby-talk. Matz’ answer was as follows:

Ruby is a language designed in the following steps:

take a simple lisp language (like one prior to CL).
remove macros, s-expression.
add simple object system (much simpler than CLOS).
add blocks, inspired by higher order functions.
add methods found in Smalltalk.
add functionality found in Perl (in OO way).
So, Ruby was a Lisp originally, in theory.
Let’s call it MatzLisp from now on. ;-)

Is it just me, or does that really sound like “I took a Lisp dialect, removed most of the cool stuff and added some things from other languages”? Don’t get me wrong, I still think Matz has done a really amazing job when he created Ruby, and it still is one of my favourite programming languages. I just find it amazing how Lisp doesn’t have more exposure, when apparently some of the “cool” languages of today are trying hard to incorporate some of its (less powerful) features.

Further references:
Why Ruby is an acceptable Lisp
‘Ruby aka MatzLisp’ on comp.lang.lisp

Sweetmorn, Discord 48, 3172 YOLD


Links for free

22 01 2006

I just noticed that I haven’t blogged much lately, so the least I can do is put together one of my random link dumps for you:

Tech Stuff:


  • FLPR:
    Sure, LAMP (Linux, Apache, MySQL, PHP) has proven itself to be a pretty neat platform for web development. However, there are people who disagree with one or more of the choices implied by the acronym, and yours truly is one of them. If you want to learn a little more about alternative technologies head over to FLPR to read up on web development with FreeBSD, lighttpd, PostgreSQL and Ruby on Rails.
  • Speaking the Lingo:
    A nice presentation on creating domain specific languages with Ruby
  • Why Good Programmer’s Are Lazy and Dumb:
    Ok, almost everybody already knows that good programmers exactly know when to be lazy and dumb, but the article is still a good read for poor folks like me who are lazy and dumb without being overly good programmers…

Fun:


  • Semapedia:
    Hyperlinking Wikipedia articles in meatspace is what this cool project is doing. Interesting stuff, as soon as time permits I’ll have to play around with this a little more!
  • What’s My Pirate Name?:
    Everyone should have his own pirate name…
  • ColdPizza:
    A nice parody of Coldplay’s recent DRM-EULA.

Boomtime, Chaos 22, 3172 YOLD


Loads of links

10 12 2005

I haven’t blogged for quite some time now, so I decided I could at least entertain you with one of my semi-regular link dumps until I’m motivated enough to write a proper entry again…

Ruby

RadRails: From a rather recent mail on ruby-talk I learned about RadRails, an IDE for (who would’ve guessd) Ruby on Rails which was built using the Eclipse RCP. Unfortunately I didn’t have too much time to play with it yet, but so far it seems to be quite nice and if you’re into Rails you maybe should have a look at this project.

eigenclass: Recently RedHanded kept talking about Mauricio Fernandez’ new blog called “eigenclass”, which talks about a lot of really interesting and advanced Ruby stuff. Definitely an interesting read for every serious Ruby programmer and everyone who wants to become one.

try ruby!: As I found out on poignant-stiffs why is at it again, which means there’s something cool coming up. Despite not involving cartoon foxes or chunky bacon, try ruby is still a really neat project, giving you the opportunity to interactively test Ruby from within your web browser. There’s also a little tutorial, so this site may very well become the first stop to send Nubies to…

Disobey

The Hacktivist: Instead of summing up what the Hacktivist is all about, I’ll just give you the self-description of the project: “The Hacktivist is dedicated to examining the theory and practice of hacktivism and electronic civil disobedience while contributing to the evolution of hacktivism by promoting constructive debate, effective direct action, and creative solutions to complex problems in order to facilitate positive change.“ – Involve yourself!

The World’s Most Populated Countries: Sometimes a new look on things helps changing your perspective in a positive way. That’s why it’s important to take a minute or two to think about this map of the Earth, where all the countries got resized in relation to their population.

Church of the Flying Spaghetti Monster: This comes from an open letter to the Kansas school board: “ I am writing you with much concern after having read of your hearing to decide whether the alternative theory of Intelligent Design should be taught along with the theory of Evolution. [...] Let us remember that there are multiple theories of Intelligent Design. I and many others around the world are of the strong belief that the universe was created by a Flying Spaghetti Monster. It was He who created all that we see and all that we feel. We feel strongly that the overwhelming scientific evidence pointing towards evolutionary processes is nothing but a coincidence, put in place by Him“. Ramen!

Do you believe?

Relax

Unintentionally sexual comic book covers: Part 1: If you know The Best Page In The Universe you either love or hate Maddox. No matter to which group you belong, check out this collection of unintentionally sexual comic book covers and have a good laugh! (via hoodwink.d onslaught)

The Website Development Process: Learn everything important there is to know about the process of developing a professional website from platic figurines. (via BoingBoing)

Squidoo: The developers of Squidoo thought that “Everyone’s an expert on something”, so they decided to give all of us the opportunity to share our knowledge in the form of “lenses”. For all of you who are to lazy to look at the FAQ to find out what a lense is, here’s the answer: “ A lens is one person’s (lensmaster’s) view on a topic he cares about. More specifically, a lens is a single web page filled with information and links that point to other web pages, to continually updated RSS feeds, or to relevant advertising. It’s a place to start, not finish. “. Interesting concept, and there are some pretty cool lenses already. (via teemow).

Setting Orange, The Aftermath 53, 3171 YOLD


Ruby: All your web are belong to us

06 11 2005

When it comes to Ruby, I’ve recently mostly been blogging about Nitro, which I think will be a really great framework for writing web applications once it matures a little more. For the next version (0.25.0) the developers plan to concentrate on bug fixing, code cleanup and refactoring, as well as documentation. The current development version – which following my suggestion is now called Glycerin – can be fetched from a Darcs repository, so there shouldn’t be anything stopping you from valuable contributions! ;-)

Ok, after my usual Nitro evangelism, it’s time to finally talk about the other excellent web framework Ruby has to offer: Ruby on Rails. I haven’t used it for quite some time now, but when I got bored a few days ago, I decided to once again start playing around with it. I’ve done some googling and found some nice articles, so here’s my suggested reading list for the aspiring Rails programmer (please note that this list doesn’t include docs from the official site, because they’re easy enough to find):

1. MVC: The Most Vexing Conundrum: Befrore you do anything with Rails, head over to Amy Hoy’s blog, and read her explanation of MVC, the design pattern Rails is following. I think it’s really important to wrap your head around the underlying principles of a framework before you start to use it, so make sure you really understand what Amy’s trying to tell you.

2. Rolling with Ruby on Rails: Once you got the basic principles, it’s time to visit ONLamp to read Curt Hibbs nice introductory article. It doesn’t really go into much detail, but I’m sure it will wet your appetite…

3. Really Getting Started in Rails: Now that you’re rolling with Rails, it’s time to go back to Amy’s site. There you’ll find this nice article that is meant as an addition to the previously mentioned “Rolling with Ruby on Rails”, explaining some of the whys and hows Curt had to leave out to keep his text short and to the point.

4. Rolling with Ruby on Rails, Part 2: Do you start to see a pattern here? Correct, it’s Curt’s turn again. In the second part of his introductory Rails article, he finishes off the cookbook application from the first part, before giving pointers to some of the more interesting features of Rails, like caching, transactions, testing, generators and so on.

5. Four Days on Rails: Now that you should have a basic understanding of how Rails works, you should definitely check out this excellent HOWTO by John McCreesh: “It’s about 40 pages formatted for double-sided printing on A4, and by the time you’ve read it, you should have a useful toolbox of Rails techniques and a good idea of where to look on the web for more information“.

If you take your time to carefully read this stuff, you should be pretty much up to speed in Rails development in less than a week! Don’t be passive while reading the articles, but start writing you own little app and constantly improve it while you learn. Once you feel comfortable with the basic principles, you can read some of the more advanced stuff, like Ajax on Rails, REST on Rails, Ajaxariffic Autocomplete with Scriptaculous or the Rails articles why the lucky stuff publishes on RedHanded. Have fun!


C#/Mono: first impressions, IDEs

03 09 2005

Now that I’m working through my Mono Developer’s Notebook, I thought it’s time for some first impressions on C# and Mono. Ok, they are not really first impressions, as I’ve played with the framework before. But not until now have I done so methodically, with the aim of really learning C# and the class libraries.


Continue reading "C#/Mono: first impressions, IDEs"


Gentoo/FreeBSD documentation, Mono

28 08 2005

This week I not only had time to finally install Gentoo/FreeBSD on one of my machines again, I also completed the long overdue update of the related documentation. What bothers me a little is that the pre-tags (and the comments inside them) look a little odd, but maybe the guide.xsl I use is just too old (I used the one from swift’s webspace mentioned in this doc)... However, the long term goal is to finally make this document conform to the documentation team’s coding style and make this an official doc, and I guess these problems will go away then.

On a somewhat unrelated note I recently bought a copy of Mono: A Developer’s Notebook. I really like this book, and working through it is a lot of fun, I’d just wish I had a little more time for it!


Mono: A Developer's Notebook

24 08 2005

Yeah, today my copy of Mono: A Developer’s Notebook finally arrived! I ordered this book because I’m a fan of Mono pretty much since I’ve first heard about it, and examples like this tutorial on writing a web browser show that the framework is quite capable. Additionally there are all this cool new GNOME apps like Blam!, Beagle, f-spot, Tomboy etc., that demonstrate the possibilites of Mono.

That’s why I ordered this book that has gotten pretty good reviews everywhere and which was modelled after the important FOSS mantra “Show me the code!”. Instead of long-winded syntactical explanations, the author uses lots of annotated examples to get his point across. I hope that this weekend I’ll have some free time to get started with reading…. :-)

A last note: it’s incredibly cool that Amazon gives you the possibility to buy books from alternative dealers via their site! I can go to Amazon, look for the books I’m interested in, read the reviews etc. and then compare if it may be cheaper to buy this book somewhere else. And if it really is, I can still buy the book as if I would have bought it from Amazon. But guess what? Of all the books I’ve ordered there, only 2 so far were from alternative dealers, because most of the time the extra shipment costs make the book more expensive than the ad itself makes you believe. But for the “Developer’s Notebook” it really made sense to buy it from Caiman, because it was not only cheaper, I also got the book after 7 days (from Florida!) compared to 10 to 13 days Amazon.de states as delivery time for this article.

P.S. I’m tired. My English probably sucks because of that. Live with it.


Getting brainf*cked

13 04 2005

After knowing Brainfuck for quite a while alreay, I today have decided to write my very first “program” in this funny little language. It does nothing more than displaying the string ““CARGAL”:http://www.cargal.org!” followed by a newline, but nonetheless it was good excercise for getting used to BF.


Continue reading "Getting brainf*cked"