Hacker Newsnew | past | comments | ask | show | jobs | submit | mrfabbri's commentslogin

Another interesting book on implementing Lisp (from a C perspective) is http://www.buildyourownlisp.com/.

Also, Lithp from fogus http://fogus.me/fun/lithp/ is a nice and brief exploration of implementing Lisp in Python and good example of literate programming.


Another interesting lisp is Maru http://www.reddit.com/r/programming/comments/157xdz/maru_is_...

from I. Piumarta (Inria, VPRI), sophisticated yet beautiful C code.


1750 lines of fascinating C [encompassing an garbage collector and user-level implementations of user-defined types and structures, single-dispatch object-oriented "messaging", and generic "multimethods"]


"It's Satoshi all the way down"


Nah. For example, this isn't Santoshi.

..... or is it....


Another option could be transmission daemon web ui (forwarded over ssh)


Yep, you learn little by "writing code", you learn a lot by developing an ass kicking product/service in a very constrained environment, working with great people and pushing yourself to the limit. It's about the people, the [human] experience not just the code.


The code above doesn't provide a Singleton implementation, you can test it by using the expression mySingleton() == mySingleton() which should evaluate to true, while it evaluates to false. The problem is that the function returns an object literal but every time the function is called it creates a new one (i.e. {} == {} evaluates to false). You can find a sound definition of a Singleton in JavaScript which makes use of the (quite tricky) Lazy Function Definition here: http://stackoverflow.com/questions/1895635/javascript-single... . EDIT: Took a deeper look at the "book" and the singleton section and I think it somewhat misuses the term Singleton (or it uses in a "broad" sense): the example you reported provides some information hiding but no single instantiation restriction, which it is instead provided by the final example/iteration.


he definitely meant Rhino, as in Rhino on Rails http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html


It reminds me of Rob Pike's "Notes on Programming in C", where Pike takes frequency into account as guideline, i.e. "A global variable rarely used may deserve a long name, maxphysaddr say" [http://doc.cat-v.org/bell_labs/pikestyle - Variable names paragraph - a nice and suggested read].


Here is a quote from that essay that says it much clearer than my pithy 'guideline':

"I prefer minimum-length but maximum-information names, and then let the context fill in the rest. Globals, for instance, typically have little context when they are used, so their names need to be relatively evocative. Thus I say maxphysaddr (not MaximumPhysicalAddress) for a global variable, but np not NodePointer for a pointer locally defined and used. This is largely a matter of taste, but taste is relevant to clarity."


Huh, why not MaxPhysicalAddress[1]? "maxphysaddr" looks like my cat walked across the keyboard.

[1] or seperated by underscores or dashes in up- or lowercase wearing earmuffs


for what concerns capital letters, from the essay I cited before [http://doc.cat-v.org/bell_labs/pikestyle]: "I eschew embedded capital letters in names; to my prose-oriented eyes, they are too awkward to read comfortably. They jangle like bad typography". As Pike acknowledges this is just a matter of taste.


- E-mail/calendar/docs: Google Apps standard edition

- Hosting: DreamHost

- Analytics: Google Analytics

- Project management: Email (lots of), Google Spreadsheets

- File-sharing: WebDAV, Dropbox

- Version control: Mercurial

- Backups: rsync

- Istant messaging: GTalk, Skype


This mirrors my macbook setup [which I enjoy pretty much] with the external monitor: [mouse][keyobard][macbook trackpad] :-)


It's a "weak AI" approach http://en.wikipedia.org/wiki/Weak_AI (i.e. demonstrate intelligence) but it's definitely fair to call this an AI library. Subsumption architecture http://en.wikipedia.org/wiki/Subsumption_architecture is the cognitive architecture underlying reactive AI.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: