Re: Wiki, logo

2010-01-12 Thread Eugene

Hi Boh,

No apology required.  The choice of a logo is a community effort.

In these early stages, brainstorming is encouraged. 
Thank you for sharing your ideas.




Boh Yap wrote:

hi alex,  all

althoug I've been following this picolisp list, I have not been very
active, largely because my current work load has prevented me from
learning/using picolisp, which is something I wanted to do ...

I am struck by its elegance, and it deserves a good logo.

With all due respect to Eugene and others,... here is my rendition of
a (prospective) logo.

It is based on the Greek chars on my Mac OS X, I traced over the
characters and modified it.
The pico (ro) has a break it in, and the lambda has an extended 'right
foot' making it look more like a 'L', .

The left foot is greyed out, and extends into the background of the
ro, sort of hinting at a Lambda.

There are 4 versions,

1. ignore, exported by mistake!

2. has a slight shadow, looks good but may be difficult to overlay on
top of other images/color background..

3. has no shadow

4. a monochrome version

the colours can be changes of course, I chose brighter versions of the
red and blue...
The logo is done in Omni Graffle, a Mac OSX drawing app, with Bezier
curves, it can as export to Photoshop, so if anyone wants to tweak the
logo pls contact me and I can pass you the file...
  

--
UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe


Re: Wiki, logo

2010-01-11 Thread Eugene

Very strange  !!!
Maybe it's a over zealous outgoing mail filter at my end.
It was only a very simple image.

Here's a fixed width courier font rendition.

   \
\
 \
 /\
//\\
   //  \\
  //\\
  /
 /
/

Basically, it's like the three colour logo but with a bit more 
separation between the 'p' and lambda parts of the symbols.  Someone 
with better graphics tools could pimp it up.


Cheers,
Eugene


PS:  I use ThunderBird. For this message I changed the format to plain 
text only. Maybe that'll help.


--
UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe


Re: How XML Threatens Big Data

2009-08-24 Thread Eugene
Couldn't resist digging up a bit of CS History from none other than John 
McCarthy http://www-formal.stanford.edu/jmc/cbcl.html


He wrote the paper in 1975, got it published in 1982, revisited it in 
1999 and 10 years later it's still as applicable as it was decades ago.


Enjoy!

TC wrote:

On Mon, 24 Aug 2009, TC wrote:



On Mon, 24 Aug 2009, Henrik Sarvell wrote:


 I'm currently fetching data from a Java source which is giving me back
 XML (one of the world's biggest poker networks), it looks something
 like this:

 xml
 headerfieldname1;fieldname2/header
 datadata1;data2::data1;data2/data
 /xml

 Everyone who really has to send A LOT of data back and forth ends up
 doing something like the above ;-)


No matter what, I still twitch when I see people reinventing the 
wheel the wrong way like with xml, json and stuff. S-exps are way 
more efficient and easier to parse than all that crap, and pre-date 
(If only it were predate...) them. Yet people keep messing with 
xml, html, json, etc, and


Oops, I was trying to say predate as in predatory, but ended up 
discovering (too late) that predate is the same as pre-date (antedate).


when one brings s-exps to the discussion, they say lisp is dead, 
forget it or some bullshit like that, or just disregard the comment 
silently and keep doing things the way they have been doing them so far.



 Anyway, given the above it made me smile reading that article.

 It's annoying that good marketing can impose such bullshit on our
 industry, I mean we're supposed to be more rational than most people
 aren't we?

 /Henrik


 On Mon, Aug 24, 2009 at 10:47 AM, Randall Dowr...@randix.net wrote:
  Must reading for anyone designing data storage!
How XML Threatens Big Data
  http://dataspora.com/blog/xml-and-big-data/
   (and I will add, little data, too.) Anyone for WSDL? What a 
catastrophe.

   Flame bait:
  --
  Java was invented (mainly marketed) by Sun in order to increase HW
  sales. Most of the big business where I have worked (banks, mobile
  telecoms) could do with less than 1/4th (1/10th??) of the HW they 
have
  today, if they used reasonable software. It is all Java, XML, 
Oracle,

  and SOAP. =A0It is very appropriate that Sun is being eaten (for
  dessert) by Oracle. Sun started by trying to change the world with
  unix but has fallen prey to the mass Java marketing that they 
started.
  (ok, I didn't get all of that out of the article above, but it is 
my   opin=

 ion.)
  --
  Flame off!
   Alex, I like picolisp and its data storage!
  --
  UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=3dunsubscribe

 --
 UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe






--
Eugene Doma
Level 3
Information Technologies Building
1 Cleveland Street
Graduate School of Engineering  IT
The University of Sydney, NSW 2006
(J12 - 3W 54)

eMail:   eug...@ee.usyd.edu.au
Web:http://www.eelab.usyd.edu.au/PEOPLE/Eugene
  http://usyd.academia.edu/EugeneDoma
Mobile:  +61 (0)418 251 385

In theory
there is no difference between theory and practice
in practice there is !



--
UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe


Re: Cutting a circular list.

2008-10-14 Thread Eugene
From my experience, trying to come to grips with pioLisp, I would argue 
in favour of showing the simple example to explain the concept AND then 
showing the complex, safe example and explaining why it is more robust 
and suitable for production use.  I agree that there's way too many 
cases, for other systems, where the examples are trivial and thus lead 
users to premature complacency.


Cheers,
Eugene

konrad Zielinski wrote:

I've been thinking about the issue of needing Transient symbols.
On the whole I think it will be better to use transient symbols where necesary.

My line of though is that using destructive operators is exactly where
this is an issue. And that is what I'm trying to write about. I have
to say I'm always annoyed when I've spent a while examining a sample
program in some book, and getting to the Ahh so that's how you do it
moment, only have the author tell me, well that's not how you really
do it because we haven't considered X, Y and Z.


As such I think a more complex but actually safe example is more
valuable, even if in reality you would just use the built in fifo. How
do other people feel about incomplete teaching examples?

regs

Konrad.

On 15/10/2008, konrad Zielinski [EMAIL PROTECTED] wrote:
  

Thanks Alex,

I had misgivings about using eval in my code, and a feeling that there
must be a better way.

The inability to add NIL is something I completely missed, though.
True not somthing that you would ordinarily do at the prompt but quite
likely deep inside application code.

As to useing Transient symbols. I think  I will note it in my
description as you have. As far as I know Inadvertant variable capure
is a problem somwhere in most Lisp dialects. I know it can be an issue
in Common Lisp as well. Granted the circumstancs are different, but
the problem seems to keep cropign up.

regs

Konrad.

On 14/10/2008, Alexander Burger [EMAIL PROTECTED] wrote:


Hi Konrad,

  

I decided to re-implemtn the fifo function using these primitives.


Good idea! This will give a lot of useful and practical examples.


  

(de my-fifo (Fifo Item)
(let RealFifo (eval Fifo)
  (if Item
(if RealFifo # Adding to a Fifo
  (let NewHead (cons Item (cdr RealFifo))
(con RealFifo NewHead)
(set Fifo NewHead)
Item)
  (prog # Creating a new fifo
   (set Fifo (list Item) 'RealFifo (eval Fifo))
   (con RealFifo RealFifo)
  Item))
(if (== RealFifo (cdr RealFifo))
  (prog1 # Returning the Last Item
(car RealFifo)
(set Fifo NIL))
  (prog1 # Returning an Item
(cadr RealFifo)
(con RealFifo (cddr RealFifo)))

Questions, Comments, Suggestions ?


There are some minor changes I would suggest:

1. The 'Item' argument is used as an indicator whether a value is going
   to be inserted into the queue (non-NIL), or removed from the queue
   (NIL). The problem is then that NIL itself can never be inserted.

   Therefore, I would suggest to make 'Item' an optional argument, by
   using the '@' notation, and use retrieval functions like (args) and
   (next).


2. Instead of (eval Fifo) I would use (val Fifo). While this makes no
   difference if 'Fifo' is bound to a symbol, it also allows cell
   arguments (see also the 'var' discussion shortly ago):

  :  (setq L (need 3))
  - (NIL NIL NIL)

  : (my-fifo (cdr L) 1)
  - 1
  : (my-fifo (cdr L) 2)
  - 2
  : (my-fifo (cdr L) 3)
  - 3

  : L
  - (NIL (3 1 2 .) NIL)

  : (my-fifo (cdr L))
  - 1

  : L
  - (NIL (3 2 .) NIL)


3. The 'prog' (Creating a new fifo) is not really needed, as it is
   implied in the 'else' part of 'if'. It does no harm, though.


With these changes, my version would be:

   (de my-fifo (Fifo . @)
  (let RealFifo (val Fifo)
 (if (args)
(if RealFifo  # Adding to a Fifo
   (let NewHead (cons (next) (cdr RealFifo))
  (con RealFifo NewHead)
  (set Fifo NewHead)
  (arg) )
   # Creating a new fifo
   (set Fifo (list (next)) 'RealFifo (val Fifo))
   (con RealFifo RealFifo)
   (arg) )
(if (== RealFifo (cdr RealFifo))
   (prog1  # Returning the Last Item
  (car RealFifo)
  (set Fifo NIL) )
   (prog1  # Returning an Item
  (cadr RealFifo)
  (con RealFifo (cddr RealFifo)) ) ) ) ) )


However! Now one ugly detail remains, and I would probably not put this
into such an educational example. But it is one of the sore spots in
PicoLisp:

4. To make it absolutely correct, all locally bound symbols (i.e. Fifo,
   RealFifo and NewHead) should be transient symbols