* The competition is about "showing off" your newlisp quality's
* Everyone can join in
* To contribute your newlisp-work you must be a member of this forum.
* Forum users will vote the best contribution
* There is a maximum of 2 contributions per contributor.
* There will only be 3 winning contributions in this competition. (a first, second and third place)
* Your contribution aka. newlisp-work may be anything, as long as the newlisp language is involved.
* The contribution does not have to be multi OS. But make sure the newlisp-functionality can be verified by the voters. (forum users)
* It is adviced to have a contribution in the english-language but is not required.
* Contribution can be commercial or non-commercial
* You dont have to display your code, but the voters must be able to verify that newlisp-code is involved in your contribution. how? thats up to you.
* The contribution may be GUI or none GUI based.
* Team work is allowed
* Any binding to newlisp is allowed from programming languages to hardware (i.e. a newlisp coffee machine..ofcourse this is allowed ;-)
* The competition ends on 29th of December 2007 at 23:59 GMT!
* Votes must be submitted befor the 29th of december 2007 23:59 GMT!
* Contribution must be submitted in this forum-topic by LINK-TO-URL befor the 29th of December 2007 23:59 GMT!
(users can download and test your contribution, make sure you post your contribution in time and not on the 29th of December at 23:58 GMT..:-)
* Contributions after 29th of december 2007 at 23:59 GMT do not count.
* Shorty befor the 29th of December a time-released VOTING post will open on this forum where you can vote for the best contributions.
* The Winners will be announced in the first week of January 2008.
ENJOY! the competition has started !!
what's the prize?
But seriously - I think this is a great idea. If it's not too hard, I'll have a go...
My contribution for 2005 was a real world project from my job.
http://www.alh.net/newlisp/phpbb/viewtopic.php?t=917
So what sort of competition material is accepted for 2007?
Only open source?
Academic fun coding?
The followup project from that product configurator 2005 is in the works now, but far more complex and bigger.
I am not sure if it will meet the deadline (I hope so) but I will not have much time to code for fun-projects.
(Ok, newLISP programming is always fun ;-) )
So when it would be acceptable, it may be possible to put it into the new competition.
See also above...
(1) free format newlisp code, every one does its own thing?
or
(2) By assignment, we all work on a simmular project but individual
or
(3) someting else..your input please...
Its up to the users to make up "what" and "how we do this contest this year...
I think if enough people reactie on this topic we will have a competiton target by the end of this month.. ;-)
The Price ..Well I think i have to have a chat with Lutz about this again ;-)
PS: Hereby I also invite Lutz to join in too for the competition ! ;-)
I think a newlisp-only backup solution would be great to have. copy a directory structure to another directory structure with the new one all gzipped. With error checking, and maybe the ability to make an iso, or store remotely...
Nice idea tom.. its noted as an "assignment option" ;-)
Btw, to all, keep in mind that newlisp will have a new GUI this year,
probably also with 2d effects! Thus the challange is perhpas even bigger ;-)
Quote from: "tom"
I think a newlisp-only backup solution would be great to have. copy a directory structure to another directory structure with the new one all gzipped. With error checking, and maybe the ability to make an iso, or store remotely...
cp -r $src $dest
find $dest -type f -exec gzip {} ;
Also there is rsync and tar for similar purposes ;-)
More seriously, in a real production backup system the most major will not be a short algorithmic thigs, but a strategical things such as incremental/differential methods, media pools, media types, etc., which are requires a good practical backup competition.
No! Not gzipped, but spread across several hard disks. Like FreeNAS with a JBOD software RAID-Z2. With encryption.
That's a mouthful to say, but I think it would be an eminently-doable, killer app. People would love to use their old hard disks for failure-resistant backup. I sure would!
To me, there is a "pre-competition" here:
Quote from: "newdep"
So My question to the public?
(a) what shall we do... (1) or (2) or something else...
(b) If (2) or something else, what assigment do we target?
The winning entry here will be the guidelines for the main competition. Maybe we should think about a prize for this one too. :-)
Here's my entry for the pre-competition: let's do a combination of (1) and (2), i.e. let some people compete for the same or similar goals, others will do something unique. We should also allow for individual entries *and* collaborative, or team, entries. We don't even have to have separate categories of prizes for these -- teams can compete against individuals or other teams (make it a simple administration). What do you think?
--Ricky
P.S. -- My project ideas for the main competition will follow soon.
Quote
* The contribution does not have to be multi OS. But make sure the newlisp-functionality can be verified by the voters. (forum users)
The competition rules are very flexible, but how does a MAC only forum user verify a win only solution and vice versa?
Yes good one ;-)
The same goes for Unix only and Windows only applications..
I dont want to rule-out specific applications so we might need to think
of a honoust solution for this..
Its not easy to check that..although forum users can vote I think we need
an independend person per OS to verify indeed that the application works on a
specific OS..Screendumps are welcome and perhaps good documentation if
the application is too difficult to track from a screendump..
Norman.
I think that the obvious subject for a competition is "design something cool with the gui-server"... New features need lots of examples and cool demos.
I also think that the newlisp/gui/server stuff needs a nice name for reffring to it. Perhaps that's another competition?
My suggestion: "Aeshna". It doesn't stand for anything. Although it could do: "advanced environment supporting high-level newlisp actions".
Quote from: "cormullion"
I think that the obvious subject for a competition is "design something cool with the gui-server"... New features need lots of examples and cool demos.
Whoa! Not so fast, cormullion. :-) Considering that you were asking about how best to configure or change the wiki, how about designing a plugin framework for the wiki? Now that would be cool. It would make adding functionality, like calendars, image/file uploads, spam control for posting, etc., a LOT easier. What do you think?
Yup - that's a great idea! It would certainly be useful...
Would anyone else find a Lint (//http)-like tool for newlisp useful? ("newLint"?) I can't think of a tool that I could want more than that.
* Ensure proper data is being passed between functions
* Check for use of uninitialized symbols
* Check for unintended global variables
* etc...
That would be a nice to have indeed ;-) But i dont think its easy to build...
But if you build it, perhpas a "Profiler" like tool is also great... It grabs the bottle-necks from the code and advices where to update for speed ;-)
Norman.
Hey Norman!
Here is a good idea for a project for the competition: //http://www.alh.net/newlisp/phpbb/viewtopic.php?t=1612. :-)
The GUI front-end can be coded using the new guiserver.
Haha..yes yes newlispRobot is still in progress but im currently at a dead-end..
The idea was to have somekind of a Virtual-Machine running where the robots
could be executed inside, but thats impossible at the moment...Which makes the
project a little more Client-dependent..
The project is still on my desktop :-)
So, is anyone going to enter this competition... ?! :-)
I hope that it's about to awake from summer hibernation (not characteristic of dragonflies, it's true, but holidays perhaps...)
I can't vote for anybody else, so I'll have to start by entering two of mine and hope that encourages you lot! :-).
I'm going to enter them for the 'Not Very Lisp-y But Possibly Useful Category'.
-------
1: Markdown-interactive (//http).
This is based on the version of Markdown which I'm using to write entries for my site. It's a kind of testing setup which I'm using.

(//%3C/s%3E%3CURL%20url=%22http://farm3.static.flickr.com/2316/2002362031_d4ec6bac94.jpg%22%3E%3CLINK_TEXT%20text=%22http://farm3.static.flickr.com/2316/200%20...%206bac94.jpg%22%3Ehttp://farm3.static.flickr.com/2316/2002362031_d4ec6bac94.jpg%3C/LINK_TEXT%3E%3C/URL%3E%3Ce%3E)
This is still a work-in-progress (I try to fix one bug every month :-)!
(Note that this file didn't seem to be processed correctly by syntax.cgi so it's a direct download link...)
-------
2: RegexTester (//http)
In the same vein, I'm afraid, here's another testing thing I've used a lot. It's called RegexTester, or Grepper, or Tyrannosaurus Regex. Something.

(//%3C/s%3E%3CURL%20url=%22http://farm3.static.flickr.com/2333/2002362049_23dc4370cd.jpg%22%3E%3CLINK_TEXT%20text=%22http://farm3.static.flickr.com/2333/200%20...%204370cd.jpg%22%3Ehttp://farm3.static.flickr.com/2333/2002362049_23dc4370cd.jpg%3C/LINK_TEXT%3E%3C/URL%3E%3Ce%3E)
--------
Both these should work on all platforms, and they're obviously free and un-commercial.
Next time, I hope to have left regular expression hell behind, and moved on to more Lisp-y adventures...!
Countdown:
(println
(format "%02dd %02dh %02dm %02ds"
(letn
((t (- (parse-date {2007-12-29 23:59:59} {%Y-%m-%d %H:%M}) (date-value)))
(d (% (/ t 86400) 86400))
(h (% (/ t 3600) 24))
(m (% (/ t 60) 60))
(s (% t 60))
)
(list d h m s)
)
)
)
Edit: URL updated. If you want a painted version of markdown-interactive, go via the main page (//http). And I'm still working on this script off and on, so it doesn't always work... :-)
Fantastic applications !!!
Now lets see who will join in, (I will :-)
PS: I had troubles commenting on you Blog website! some html mixup error it seemed...
Sorry about the commenting. It ought to work, but sometimes doesn't...
Another chear!
..you can jump what you want but I havnt seen many applications
this usefull around for years!!!.... I like the them both!! great job.. I hope
you keep them tuned ;-)
Quote from: "cormullion"
1: Markdown-interactive (//http).
This is based on the version of Markdown which I'm using to write entries for my site. It's a kind of testing setup which I'm using.
I've written something similar to this, by re-writing Lutz's format-line function in the wiki. I changed it to a bunch of transforms that act on the whole page, not line-by-line. However, after looking at Pete's code, I may just have to purloin it, and use it instead of mine.
Actually I have started already. Here is a picture of me getting ready to steal his code.

(//%3C/s%3E%3CURL%20url=%22http://www.tektonics.org/hamburglar.gif%22%3Ehttp://www.tektonics.org/hamburglar.gif%3C/URL%3E%3Ce%3E)
I actually can't bring myself to steal anything, unless I put the outfit on. :-)
I exactly know what you mean.. Ill take your advice when stealing code (although i never tent to do that this is a great workaround ..hahahah)
Quote from: "rickyboy"
I actually can't bring myself to steal anything, unless I put the outfit on. :-)
rofl that's the funniest thing I've seen all week XD
Now i have a dilemma ;-)
I need to pick 2 files for the competition, not easy as there are some files/tools I like but perhpas others dont at all.
Difficult selection, for me, perhpas for you not at all. So i go for the most common divisor called "enjoyable tools" ;-)
So my First contribution is Pinballs, because of its hyphnotic infuence ;-)
(load "//http://www.nodep.nl/downloads/newlisp/pinballs.lsp")
or can be found inside your newlisp distribution when using GS! ;-)

(//%3C/s%3E%3CURL%20url=%22http://www.nodep.nl/downloads/newlisp/pinballs.png%22%3Ehttp://www.nodep.nl/downloads/newlisp/pinballs.png%3C/URL%3E%3Ce%3E)
My second contribution is (although still in progress)
(load "//http://www.nodep.nl/downloads/newlisp/nlist.lsp")

(//%3C/s%3E%3CURL%20url=%22http://www.nodep.nl/downloads/newlisp/nlist.png%22%3Ehttp://www.nodep.nl/downloads/newlisp/nlist.png%3C/URL%3E%3Ce%3E)
Ah, the floodgates are opening... :-)
Quote from: "newdep"
My second contribution is (although still in progress)
(load "//http://www.nodep.nl/downloads/newlisp/nlist.lsp")
Wow, I just spent some time using that to go through the newLISP files on your server, they're amazing! My favorite has to be worm.lsp!
Great job! :-D
And I love how you can load them just by using them as an argument to newlisp:
$ newlisp http://www.nodep.nl/downloads/newlisp/worm.lsp
http]")
We Enjoy ;-)
Congratulations and my best wishes for you, and your growing family. Lets hope little Norman (what is his name?) leaves his amazingly creative dad some time for making more wonderful programs :-)
Lutz
Since Lutz has expressed it so well already, let Melissa and I just say: Congratulations on your new boy!
m i c h a e l
P.S. I wonder if your son will one day appreciate that his birth announcement was written in newLISP :-)
Thanks ! ;-)
Although not a complex piece of code, the following is quite useful when you have to sort lists the way most real people think of sorting.
(define (natural-key s)
(set 'strs (parse s "[0-9]+" 0))
(set 'nums (find-all "[0-9]+" s))
(if nums (set 'nums (map int nums)) (set 'nums '()))
(filter if (flat (transpose (list strs nums))))
)
(define (natural-sort l)
(sort l (fn (x y) (< (natural-key x) (natural-key y))))
)
(set 'foo '("i19n" "i17n" "z40" "40a" "50" "foo" "z4000" "z30"))
(natural-sort foo)
which returns
("40a" "50" "foo" "i17n" "i19n" "z30" "z40" "z4000")
Based on Human Sorting (//http)
But doesn't the plain newLISP 'sort' do this already?
(set 'foo '("i19n" "i17n" "z40" "40a" "50" "foo" "z4000" "z30"))
(sort foo) => ("40a" "50" "foo" "i17n" "i19n" "z30" "z40" "z4000")
Lutz
ps: but the difference will show up with a different example:
(set 'foo '("i19n" "i17n" "z40" "40a" "50" "foo" "z4000" "z80"))
; natural sort
("40a" "50" "foo" "i17n" "i19n" "z40" "z80" "z4000")
; plain sort
("40a" "50" "foo" "i17n" "i19n" "z40" "z4000" "z80")
Good point Lutz. I should have provided a better example.
Here's the basic case
> (natural-sort '("a10" "a2" "a1" "a14"))
("a1" "a2" "a10" "a14")
> (sort '("a10" "a2" "a1" "a14"))
("a1" "a10" "a14" "a2")
and the embedded case
> (natural-sort '("i30z" "i3n" "i20n" "i18z"))
("i3n" "i18z" "i20n" "i30z")
> (sort '("i30z" "i3n" "i20n" "i18z"))
("i18z" "i20n" "i30z" "i3n")
Of course there's always the edge cases ...
> (natural-sort '("i1" "i03" "i5"))
("i1" "i03" "i5")
> (sort '("i1" "i03" "i5"))
("i03" "i1" "i5")
To me having the zero first seems better. But to most non-programmers it doesn't. Hopefully whatever you're sorting in this case will have consistency on leading zeroes.
a little too short to get my vote (:-) but it's certainly nice to see you back on the board!
Quote from: "cormullion"
a little too short
I also noticed that in 9.2.5 or higher I can make it even shorter! :)
(define (natural-key s)
(filter if (flat (transpose (list (parse s "[0-9]+" 0) (map int (find-all "[0-9]+" s)))))))
Folks,
It's time for my contribution: a comicbook (//http) reader.
It is able to handle .cbr, .cbz and .rar formats, reads JPG, PNG and GIF files. Written with GTK-server (//http) because I am porting the newlisp code to another language as well.
Runs in Unix/Linux/Win32. Users of the infamous Win32 platform need to download 'unzip.exe' and 'unrar.exe' separately. See the header of the program for details.
Free comicbooks can be obtained from FlashbackUniverse (//http), FreeComicBooks (//http) and many other places, including torrentsites (if you have the original copy yourself, of course ;-) )
The code is here: //http://www.turtle.dds.nl/newlisp/comic.lsp
The corresponding configfile here: //http://www.gtk-server.org/gtk-server.cfg
This is a screenshot of the program running in windowed mode, after pressing the right mouse button:

(//%3C/s%3E%3CURL%20url=%22http://www.turtle.dds.nl/newlisp/comic.jpg%22%3Ehttp://www.turtle.dds.nl/newlisp/comic.jpg%3C/URL%3E%3Ce%3E)
The program also handles key events. Pressing the <SPACE> key moves forward to the next page, also <CURSORRIGHT>. The <CURSORLEFT> moves back, and with the 'F' key fullscreen mode can be toggled on or off.
Enjoy!!!
Looks great, but...

(//%3C/s%3E%3CURL%20url=%22http://farm3.static.flickr.com/2110/2117667406_22a4f5eb86.jpg%22%3E%3CLINK_TEXT%20text=%22http://farm3.static.flickr.com/2110/211%20...%20f5eb86.jpg%22%3Ehttp://farm3.static.flickr.com/2110/2117667406_22a4f5eb86.jpg%3C/LINK_TEXT%3E%3C/URL%3E%3Ce%3E)
Quote
Runs in Unix/Linux/Win32.
I do not own a Mac so I cannot support MacOSX.... sorry! If you want me to support MacOSX, please donate €600,= so I can buy one :-)
From your error it seems newLisp is unable to load the GTK-server DLL. Did you compile it from scratch? It should be possible to run GTK on MacOSX, but again, I have never tested it myself...
Peter
You have to admit that's the best "something's wrong" post ever, no matter what the problem is...
There is a long drawn out procedure to compile the GTK libraries for the Mac (natively, not X-Windows) and I tried it twice, but never could get it to work.
Before OS X 10.5 Leopard, there was a rumor that GTK would ship with Mac OS X, but unfortunately this did not come true.
Lets just hope then one day GTK offers binaries for OS X, just like they do for Windows.
Lutz
Quote
You have to admit that's the best "something's wrong" post ever, no matter what the problem is...
That's true! I fully agree :-)
Quote
Lets just hope then one day GTK offers binaries for OS X, just like they do for Windows.
Indeed, I hope so too... as soon as it happens I'll support MacOSX as well.
Cheers
Pete
Quote
as long as the newlisp language is involved
I am just curious what the word "involved" means. Does my newLISP syntax highlighting mode for Vim (written in vimscript) qualify? Not that I am pretending to be a winner, but may I at least enter the competition with this contribution?
Hi Cyril,
Sure...you may post anything (upto 2 contributions..etc..) Its up to the users to descide what they vote ;-)
And even extentions like yours or even Modules are contributions and welcome ofcourse..
Regards, Norman.
Hi Pjot, Nice work the comicbook reader ;-)
Quote from: "newdep"
Sure...you may post anything (upto 2 contributions..etc..)
So, let me start. My first contribution is newlisp.vim -- the newLISP syntax highlighting plugin for the Vim text editor. You can load it...Oops! You don't need to load anything, it is already on you computer: look into 'util' subdirectory of your newLISP installation. Russians have came! ;-) But, is you insist, it is script #2067 (//http) at the Vim site.
My second contribution is vidirect.lsp -- a small script that helps to download videos from sites like YouTube and some others. It is small because it does nothing by itself: it queries the site vidirect.ru (//http) to obtain the downloading url, it runs wget (windows version) to perform download, it even works with windows clipboard with an external program. Unfortunately the documentation is in Russian language -- the script is targeted not to lisp hackers, but to end users. The full distribution (source, binary, Russian documentation, two accompanying third-party programs) is here (//http), and the source alone is here (//http). Enjoy!
For Win32 users I made a ZIP package with the full application.
Installation:
1) Install a GTK Runtime Environment from here (//http) or here (//http) (either one will do).
2) Unzip the ZIP file (//http) in a directory of your choice.
It is assumed you have the newlisp binary in your PATH, and if not, copy it to the same directory.
Now run 'comic.exe' and enjoy!
Peter
Here's my contribution for this year (windows only):
http://hpwsoft.de/anmeldung/html1/newLISP/newLISP_contest07.php
(I am not ready in time, so I post what I have so far.)
;-(
(Project is far bigger than last contribution, so newLISP in heavy duty)
Merry christmas to all newLISP'ers!
Edit: The fact that I can not publish the source is that it contains technical and price data of my employer.
(I get a special permit from Lutz to do so. Thanks to Lutz!)
Quote from: "HPW"
Here's my contribution for this year (windows only):
Currently around 42600 lines application lisp sources (1357 KB)
Wow! That's heavy duty...!
Presumably it runs quickly enough? One day you must tell us about how newLISP works for big projects.
Good luck with its development!
Quote
Presumably it runs quickly enough?
At least there are lots of very big and complex conditionals.
All gets embedded in the virtual file-system of the delivered EXE.
The EXE gets loaded very fast in one swap and the lisp-stream gets feeded on demand into newLISP with good performance.
Quote
One day you must tell us about how newLISP works for big projects.
Since I use autolisp for big projects, why shouldn't newLISP can not do the same?
;-)
[size=150]7 DAYS LEFT UNTIL CLOSURE ;-)[/size]
[size=200]- 3 - [/size]
[size=200]- 2 -[/size]
[size=200]- 1 -[/size]
With my usual procrastination, I present my entry of the FOOP video series.

(//%3C/s%3Ehttp://www.neglook.com/images/FOOP-00-01.png%3Ce%3E) (//http)

(//%3C/s%3Ehttp://www.neglook.com/images/FOOP-02.png%3Ce%3E) (//http)

(//%3C/s%3Ehttp://www.neglook.com/images/FOOP-03.png%3Ce%3E) (//http)
There are so many worthy entries that choosing one will be difficult. Good luck to everyone!
m i c h a e l
[/b]
[size=200]The voting will start shortly after.[/size]
[size=200]The winners will be announced on the 5th of January 2008.[/size]
The comic reader has been improved. List of changes:
- when changing pages always scroll up
- dragging of picture while mousebutton is pressed
- mouse scrollbutton to turn pages
- some code cleaning because of fixed bugs in newLisp interpreter
- escape key now exits program
- fixed wrapping around the last page
- cursor up/down: scroll page up/down
- added HELP dialog with keybinding explanation
- improved embedded GTK routines
Win32 users can download the complete package here (//http). Also a GTK environment should be installed.
Unix/Linux/BSD users can obtain the source here (//http). It is required to download and install GTK-server 2.2.2.
Enjoy!
Peter
[size=150]
contest postings is now closed.
voting will start shorty on this forum.
thank you for joining in ;-)[/size]
Can anybody explain how the votes will be counted? What is the idea behind the separate voting for the 1-st, 2-nd and 3-rd prices? I always believed that the common practice is to establish one poll, then the entry received the majority of the votes became first, the second one is second and so on. If, for example, entry A received ten votes for 1-st price, entry B -- five votes for 1-st price, and entry C - one vote for 2-nd price, which entry will be second -- B or C, and why?
Last time I had problems with the ammount of entry's in the voting option
when creating a Voting on the forum I just did it automaticly this way again..
No special behaviour behind it, Just stupidity of me ;-)
Correction!
because the users may vote for 1 , 2 3th place you need to vote 3 times.
The voting mechanism on this forum only allows 1 vote per entry..
(that was my stupidity ;-)
Hmm... I have typed an answer yesternight, and now I do not see it. Strange. Probably I just haven't pressed "Submit?". Second attempt...
I am feeling myself dumb, but I still don't understand the logic behind three separate polls. Consider an example:
1 place: A:6 B:4 C:0
2 place: A:2 B:3 C:5
A is definitely the winner. But which is second: B or C? C has more votes for 2-nd place, because most B supporters have given 1-st to it!
every user is allowed to vote for the 1st 2nd and 3th place..this is just fair but they dont have to...
The forum does not allow us to vote 3x per vote so you can only vote once
per 1st 2nd or 3th place..
If B has more votes then C then people voted more in vote B
A, B, C are all independent votings per place.
We could put weight on votes for each position:
1st -> 3 points
2nd -> 2 points
3rd -> 1 point
This way:
1st place: A:6 B:4 C:0
2nd place: A:2 B:3 C:5
A = 6*3 + 2*2 = 18+4 = 22 points
B = 4*3 + 3*2 = 12+6 = 18 points
C = 0*3 + 5*2 = 0+10 = 10 points
Now it is more clear and I think also fair.
Fanda
Yes it keeping me thinking too, Cyril's option and yours are logical.
.. Still thinking ;-)
Quote from: "newdep"
Yes it keeping me thinking too, Cyril's option and yours are logical.
.. Still thinking ;-)
My option? What my option? I have no option, I have a confusion only! The idea of having just one poll can be considered as option, but it is too late -- votes are already collected. So Fanda's algorithm is probably the best one. At least it is easy to explain and understand -- the real advantage.
In fact I have some alternate algorithm in mind, but it is probably not worth to explain -- the discussion of which method is better is the very last thing we need now. ;-)
The comicbook reader was updated to newLisp 10 :-)
Grab it from here:
http://www.turtle.dds.nl/newlisp/index.html#comic
Greetings,
Peter