[Seaside] [Article] Reddit.st - In 10 elegant Smalltalk classes

laurent laffont laurent.laffont at gmail.com
Fri Jul 30 19:48:22 UTC 2010


Hi Sven,

I've enjoyed reading your tutorial, good work !

** I've tried to add a link on http://caretaker.wolf359.be:8080/reddit, it
always throw this error:

GlorpDatabaseReadError: ERROR: relation "reddit_links_id_seq" does not exist
at character 16

Your request could not be completed. An exception occurred.


** About code formatting, could you put the class name in front of methods ?
Like this:

RedditLink>>initialize
    self points: 0; created: TimeStamp now

or

RedditDatabaseResource class>>login
    DefaultLogin ifNil: [ DefaultLogin := self createLogin ].
    ^ DefaultLogin


Sometimes I've been lost....


** from Common Lisp to Phyton. -> Python

I've never used GLORP so it was the hard part for me. Indeed I'm not sure
about this sort of code:

WAReddit>>voteUp: link
    self session glorpSession inUnitOfWorkDo: [ :session |
        session register: link.
        link voteUp ]

Can WAReddit be independent from persistence solution ? In ActiveRecord way
I would expect something like:

WAReddit>>voteUp: link
    link voteUp; save.


Anyway I will try to code it and see, it's a good opportunity for a
screencast :)


Cheers,

Laurent Laffont

http://pharocasts.blogspot.com/
http://magaloma.blogspot.com/


On Fri, Jul 30, 2010 at 3:05 PM, Sven Van Caekenberghe <sven at beta9.be>wrote:

> Reddit.st - In 10 elegant Smalltalk classes
>
> Implementing a Reddit style web application in Smalltalk
>
> Using Seaside, Glorp and PostgreSQL
>
> http://homepage.mac.com/svc/Reddit.st
>
> This is a tutorial showing how to implement a small but non-trivial web
> application in Smalltalk using Seaside, Glorp and PostgreSQL. Reddit, is web
> application where users can post interesting links that get voted up or
> down. The idea is that the 'best' links end up with the most points
> automatically. Many other websites exist in the area of social bookmarking,
> like Delicious, Digg and Hacker News.
>
> In 2005 Reddit switched their implementation from Common Lisp to Phyton. As
> a reaction I published a Lisp Movie (screen cast) called Episode 2:
> (Re)writing Reddit in Lisp in 20 minutes and 100 lines also known as
> Reddit.lisp - In less than 100 lines of elegant code. Although the title was
> provocative, to get attention and for fun, and this was lost on some people,
> the key message was just to show that it is perfectly possible to write nice
> web applications in Lisp and to give an example of how to do so. The reasons
> for their switch were social, not technical.
>
> Reddit.st is yet another variant of this example, reimplementing the
> example in Smalltalk. It adds persistency in a relational database, unit
> tests as well as web application components to the mix.
>
> The 10 main sections of this article follow the development of the 10
> classes making up the application. The focus of the Smalltalk version is not
> so much on the small size or the high developer productivity, but more on
> the fact that we can cover so much ground using such powerful frameworks, as
> well as the natural development flow from model over tests and persistence
> to web GUI.
>
> Reddit.st is running live at http://caretaker.wolf359.be:8080/reddit
>
> Source code is in the Reddit package of
> http://www.squeaksource.com/ADayAtTheBeach.html
>
> Feedback and remarks are welcome.


> Enjoy,
>
> Sven_______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20100730/5906f865/attachment-0001.htm


More information about the seaside mailing list