20130717

Making life difficult for SLOT-VALUE

In a current thread on c.l.l. there was a discussion about how to "hide" bits and pieces of a data structure (the discussion was really about mutable strings). That got me thinking about how to provide more "hiding" than what you can achieve with the package system and with CLOS.

The following is a cute - I believe - hack to make the life of the slot-value user much more difficult. Remember that slot-value is just a function.

CL-USER 7 > (defclass foo ()
              ((#.(gensym (random 42)) :reader foo-slot :initarg :slot)))
#

CL-USER 8 > (describe (make-instance 'foo))

# is a FOO
G21      #

CL-USER 9 > (describe (make-instance 'foo :slot 42))

# is a FOO
G21      42

CL-USER 10 > (defclass foo ()
               ((#.(gensym (random 42)) :reader foo-slot :initarg :slot)))
#

CL-USER 11 > (describe (make-instance 'foo :slot 42))

# is a FOO
G5      42

So, the trick is to generate random slot names, which can be accessed only via CLOS accessors (readers and writers). Plus, in order to make life difficult for any program "inspecting" the guts of a class, you can just redefine it at random times during your application's lifetime.

Not foolproof, but, as I said, cute.


(cheers)

20130709

A few fixes to XHTMΛ

Just added a few fixes to (X)HTMΛ (thanks to Colin J.E. Lupton for finding the bugs). There may still be an issue with my use of ASDF befor asking for inclusion with Quicklisp. In any case, more cleanup coming up soon.



(Cheers)

20130628

XHTMΛ on common-lisp.net

Finally got around to put XHTMΛ on common-lisp.net.  Check out common-lisp.net/project/xhtmlambda; for the time being, send me an email for instructions about how to get to the git repository.

Enjoy

(cheers)

20121229

CL-UNIFICATION and CL-ENUMERATION doc fixes


I just fixed the docs of CL-UNIFICATION and CL-ENUMERATION.  Mostly minor fixes and copyright updates, but I took the chance to go back and have a second look at the implementations.  A couple of nice tweaks are in my personal version and I will upload them to CVS "very soon now" (yes, I know! I should switch to git or something similar).


(Cheers)

20121210

Priority Queues in CL


There is a new CDR by Ingvar Mattsson proposing the specification of a simple heap (priority queue) interface for CL: CDR 12: Generic extendable heaps for Common Lisp.
The question in this case is how to support the INCREASE-KEY (or DECREASE-KEY) operation mentioned by CLRS.  It is known that such support is application-dependent, however, it would be nice to make it explicit.
Just to show my age, about 20 years ago, I did write a priority queue implementation that is still available in the CMU AI Repository.  In that ancient implementation, a hash table was used internally to support the INCREASE-KEY/DECREASE-KEY operation and I always wondered whether there is a better interface to aid the maintenance of the heap invariants while keeping the performance guarantees.
Any suggestions?




(Cheers)

20120416

ELS 2012 Zadar, Croatia: Call for Participation

European Lisp Symposium 2012, Zadar, Croatia, April 29th - May 1st, 2012

Call for Participation.

Web site: european-lisp-symposium.org

The purpose of the European Lisp Symposium is to provide a forum for the discussion and dissemination of all aspects of design, implementation and application of any of the Lisp and Lisp-inspired dialects, including Common Lisp, Scheme, Emacs Lisp, AutoLisp, ISLISP, Dylan, Clojure, ACL2, ECMAScript, Racket, SKILL, and so on. We encourage everyone interested in Lisp to participate.

The main theme of the 2012 European Lisp Conference is "Interoperability: Systems, Libraries, Workflows". Lisp based and functional-languages based systems have grown a variety of solutions to become more and more integrated with the wider world of Information and Communication Technologies in current use. There are several dimensions to the scope of the solutions proposed, ranging from "embedding" of interpreters in C-based systems, to the development of abstractions levels that facilitate the expression of complex context dependent tasks, to the construction of exchange formats handling libraries, to the construction of theorem-provers for the "Semantic Web". The European Lisp Symposium 2012 solicits the submission of papers with this specific theme in mind, alongside the more traditional tracks which have appeared in the past editions.

Registration:

Until April 15th the registration fee will be reduced. Use the form on european-lisp-symposium.org to register.

Preliminary Program schedule:

Sunday April 29.

  • 11:00 Sea & Sun & Coffee (meeting place: The Sea organ & Greeting to the Sun)
  • 19:30 - 21:30 Welcome Cocktail at the Garden Bar

Monday April 30.

  • 8:30 - 09:00 Registration
  • 09:30 - 10:00 Welcome
  • 10:00 - 11:00 Juan Jose Garcia-Ripoll, Instituto de Física Fundamental, CSIC, Spain
  • 11:00 - 11:30 Coffee Break
  • 11:30 - 13:00 Session 1
    • 11:30 - 12:15 Laurent Senta, Christopher Chedeau and Didier Verna. Generic Image Processing with Climb
    • 12:15 - 13:00 Giovanni Anzani, An iterative method to solve overdetermined systems of nonlinear equations applied to the restitution of planimetric measurements
  • 13:00 - 15:00 Lunch Break
  • 15:00 - 16:30 Session 2
    • 15:00 - 15:45 Alessio Stalla. Java interop with ABCL, a practical example
    • 15:45 - 16:30 Nils Bertschinger. Embedded probabilistic programming in Clojure
  • 16:30 - 17:30 Pascal Costanza, ExaScience Lab, Intel, Belgium
  • 17:30 - 18:00 Lightening Talk (1)
  • 18:00 - 20:00 Buffet at the University of Zadar

Tuesday May 1.

  • 10:00 - 11:00 Ernst van Waning, Infometrics, Netherlands
  • 11:00 - 11:30 Coffee Break
  • 11:30 - 13:00 Session 3
    • 11:30 - 12:15 Marco Benelli. Scheme in Industrial Automation
    • 12:15 - 13:00 Gunnar Völkel, Johann M. Kraus and Hans A. Kestler Algorithm Engineering with Clojure
  • 13:00 - 15:00 Lunch Break
  • 15:00 - 16:30 Session 4
    • 15:00 - 15:45 Irène Anne Durand. Object enumeration
    • 15:45 - 16:30 Alessio Stalla. Doplus, the high-level, Lispy, extensible iteration construct
  • 16:30 - 17:00 Lightening Talk (2)
  • 17:00 - 18:00 Announcements & Wrap-up

Venue:

Zadar is one of the enchanting cities on the Adriatic coast rich in history. It still preserves a very old network of narrow and charming city streets, as well as a Roman forum dating back to the first century AD. In addition, Zadar region encompasses many natural beauties, most prominent among them is the Kornati National Park, the most unusual and indented set of small islands in the Mediterranean (89 islands, islets and reefs) located only 15 nautical miles south of Zadar – a visit to Kornati is planned as a part of the conference.

Accommodation:

Participants are responsible for their own accommodation arrangements. Reservations should be made directly to the hotels.

When making reservations in hotel Hotel Kolovare, please indicate that you are with ELS 2012 / University of Zadar and you will get a discount. Due to the popularity of the location in spring, an early reservations is recommended.

  • Hotel Kolovare * * * *: www.hotel-kolovare.com, +385 23 211 017, +385 203 200

Other accommodation options:

  • Hotel Bastion * * * *: www.hotel-bastion.hr, +385 23 / 494 950, info [at] hotel-bastion.hr
  • Falkenstiner Hotels & resorts – (Funimation)* * *: www.falkensteiner.com, +385 (0)23 206 400, +385 (0)23 332 065, sales.borik [at] falkensteiner.com
  • Hotel Mediteran * * *: www.hotelmediteran-zd.hr, info [at] hotelmediteran-zd.hr
  • Hotel Porto * * *: www.hotel-porto.hr, +385-(0)23-292300, hotel.porto [at] zd.t-com.hr
  • Hotel Villa Nico * * *: www.hotel-villanico.com, +385 23 331198, +385 23 331960, nico.moric [at] villanico.t-com.hr
  • Hotel President * * * *: www.hotel-president.hr, +385 23 337 500+385 (23) 333 696 , info [at] hotel-president.hr
  • Hostel Zadar: +385 331-145

20111117

European Lisp Symposium 2012, Zadar, Croatia, April 30th - May 1st, 2012

Site: http://european-lisp-symposium.org

The purpose of the European Lisp Symposium is to provide a forum for the discussion and dissemination of all aspects of design, implementation and application of any of the Lisp and Lisp-inspired dialects, including Common Lisp, Scheme, Emacs Lisp, AutoLisp, ISLISP, Dylan, Clojure, ACL2, ECMAScript, Racket, SKILL, and so on. We encourage everyone interested in Lisp to participate.

The main theme of the 2012 European Lisp Conference is "Interoperabilty: Systems, Libraries, Workflows". Lisp based and functional-languages based systems have grown a variety of solutions to become more and more integrated with the wider world of Information and Communication Technologies in current use. There are several dimensions to the scope of the solutions proposed, ranging from "embedding" of interpreters in C-based systems, to the development of abstractions levels that facilitate the expression of complex context dependent tasks, to the construction of exchange formats handling libraries, to the construction of theorem-provers for the "Semantic Web". The European Lisp Symposium 2012 solicits the submission of papers with this specific theme in mind, alongside the more traditional tracks which have appeared in the past editions.

We invite submissions in the following forms:

  • Papers: Technical papers of up to 15 pages that describe original results or explain known ideas in new and elegant ways.
  • Demonstrations: Abstracts of up to 4 pages for demonstrations of tools, libraries, and applications.
  • Tutorials: Abstracts of up to 4 pages for in-depth presentations about topics of special interest for at least 90 minutes and up to 180 minutes.
  • Lightning talks: Abstracts of up to one page for talks to last for no more than 5 minutes.

All submissions should be formatted following the ACM SIGS guidelines and include ACM classification categories and terms. For more information on the submission guidelines and the ACM keywords, see: http://www.acm.org/sigs/publications/proceedings-templates and http://www.acm.org/about/class/1998.

Important dates:

  • Jan 31st 2012: submission deadline
  • Feb 21st 2012: acceptance results
  • April 30th, 2012 Conference opens

Program Commitee:

Chair:
Marco Antoniotti, Università degli Studi di Milano Bicocca, Milan, ITALY

Local organizers:

  • Damir Ćavar, Eastern Michigan University
  • Franjo Pehar, University of Zadar
  • Damir Kero, University of Zadar

Members:

  • Giuseppe Attardi, Università degli Studi di Pisa, Pisa, ITALY
  • Pascal Costanza, Intel, Bruxelles, BELGIUM
  • Marc Feeley, Université de Montreal, Montreal, CANADA
  • Scott McKay, Google, U.S.A.
  • Kent Pitman, Hypermeta, U.S.A.
  • Christophe Rhodes, Department of Computing, Goldsmiths, University of London, London, UNITED KINGDOM
  • Robert Strandh, LABRI, Université de Bordeaux, Bordaux, FRANCE
  • Didier Verna, EPITA / LRDE, FRANCE