Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

Jobs/projects list?

 [1/7] from: webmaster::siliconspecies::com at: 28-Aug-2000 17:17


Is there a jobs/projects needing help, talent available list for Rebols (Rebol programmers)? Jeff Rubin, CTO & Co-Founder Audiopia Shutup and Listen... http://www.audiopia.com also check out my personal site Brainbyte! http://www.brainbyte.com

 [2/7] from: ryanc:iesco-dms at: 28-Aug-2000 15:21


> Is there a jobs/projects needing help, talent available list for Rebols > (Rebol programmers)?
No, not thats been announced. Why, do you want to start one up? --Ryan Ryan Cole Programmer Analyst www.iesco-dms.com 707-468-5400

 [3/7] from: alfred_pang:inetco at: 28-Aug-2000 15:30


This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_000_01C0113F.9CB50136 Content-Type: text/plain; charset="iso-8859-1"
> Is there a jobs/projects needing help, talent available list for Rebols > (Rebol programmers)?
Why yes!
> The Third Annual ICFP Programming Contest > http://www.cs.cornell.edu/icfp/ > > 'On Saturday, August 26, 2000 at 5PM EST a challenge task will be > posted on the Internet and mailed to all registered participants.' > > Anyone daring enought to take on the challenge with REBOL?
I have finished up a good chunk of the GML parsing (grammer.r) and started work on the renderer (renderer.r and threed.r). However RealLife and WeakMathSkills is preventing me from finishing it up. 'do %render.r' should create a tiny 'testing.ppm' file containing a picture of a rendered plane. --- Although I wasn't able to finish it, I had a lot of fun with the parsing. REBOL parses like a hot knife through butter! My problem is that I've never written any 3-d code in my life so that bit was going to be out of my reach for a while. If there are any enterprising programmers out there, feel free (no strings attached) to use this code as you please. There are still about 20 hours left till the deadline. Top prize is $1000US and unlimited bragging rights! ------_=_NextPart_000_01C0113F.9CB50136 Content-Type: application/octet-stream; name="grammer.r" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="grammer.r" REBOL [=0A Title: "GML grammer"=0A Date: 25-Aug-2000=0A]=0A=0A;--------------------------------------------------------------------------=0A;parse stuff=0A=0Adigit-char: charset "0123456789"=0Aalpha-char: charset abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_ =0Awhitesp-char: charset " ^(tab)^(line)"=0Aspacers-tok: [ some whitesp-char ]=0Aoperator-tok: [=0A copy o=0A [=0A "acos" |=0A "addi" |=0A "addf" |=0A "apply" |=0A "asin" |=0A "clampf" |=0A "cone" |=0A "cos" |=0A "cube" |=0A "cylinder" |=0A "difference" |=0A "divi" |=0A "divf" |=0A "eqi" |=0A "eqf" |=0A "floor" |=0A "frac" |=0A "getx" |=0A "gety" |=0A "getz" |=0A "get" |=0A "if" |=0A "intersect" |=0A "length" |=0A "lessi" |=0A "lessf" |=0A "light" |=0A "modi" |=0A "muli" |=0A "mulf" |=0A "negi" |=0A "negf" |=0A "plane" |=0A "pointlight" |=0A "point" |=0A "real" |=0A "render" |=0A "rotatex" |=0A "rotatey" |=0A "rotatez" |=0A "scale" |=0A "sin" |=0A "sphere" |=0A "spotlight" |=0A "sqrt" |=0A "subi" |=0A "subf" |=0A "translate" |=0A "union" |=0A "uscale" ]=0A (tgml join "[gml-op " [ o " ]" ] )=0A]=0A=0Aident-rul: [=0A alpha-char 0 128 [ digit-char | alpha-char ]=0A]=0A=0Aident-tok: [=0A copy i ident-rul (tgml join "[gml-ident " [ i " ]" ] )=0A]=0Abinder-tok: [=0A "/" copy b ident-rul (tgml join "[gml-binder " [ b " ]" ] )=0A]=0Aboolean-tok: [=0A copy b ["true" | "false"] (tgml join "[gml-boolean " [ b " ]" ] )=0A]=0A=0Ainteger-tok: [ opt "-" 1 48 digit-char ]=0Aexponent-tok: [ [ "e" | "E" ] opt "-" 1 48 digit-char ]=0Areal-tok: [ opt "-" 1 48 digit-char "." 1 48 digit-char opt=0Aexponent-tok ]=0Anumber-tok: [=0A [=0A copy r real-tok=0A (tgml join "[gml-real " [ r " ]" ] )=0A ] |=0A [=0A copy i integer-tok=0A (tgml join "[gml-integer " [ i " ]" ] )=0A ]=0A]=0Astring-tok: [=0A copy s "^"" thru "^""=0A (tgml join "[gml-string " [ s " ]" ] )=0A]=0A=0Acomment-rul: [ "%" [ to "^/" | to end ] ]=0A=0Atoken: [=0Aoperator-tok ( comment { print "operator" }) |=0Aboolean-tok ( comment { print "boolean" }) |=0Anumber-tok |=0Astring-tok ( comment { print "string" }) |=0Aident-tok ( comment { print "ident" }) |=0Abinder-tok ( comment { print "binder"}) |=0Acomment-rul ( comment { print "comment" }) ]=0A=0Atoken-group: [=0A [=0A token |=0A [=0A "[" (tgml "[ gml-array ")=0A spacers-tok any token-group "]"=0A (tgml " ]")=0A ] |=0A [=0A "{" (tgml "[ gml-fn [] [" )=0A spacers-tok any token-group "}"=0A (tgml " ] ]")=0A ]=0A ]=0A [ spacers-tok | to end ]=0A]=0A=0Agml: [ any whitesp-char any token-group ]=0A=0A=0A=0Acomment {=0Aprint "test1:"=0Aprint parse/case/all test1 gml=0Aprint "^/test2:"=0Aprint parse/case/all test2 gml=0Aprint "^/test3:"=0Aprint parse/case/all test3 gml=0A}=0A=0Atgml: func [ str [string!] ] [=0A append gml-program str=0A append gml-program " "=0A]=0A=0Aparse-gml: func [ str /local parseok ] [=0A gml-program: copy "["=0A parseok: parse/case/all str gml=0A if not parseok [ throw 'gml-error-parse-problems ]=0A tgml "]"=0A do gml-program=0A]=0A=0A;---------------------------------------------------------------------=0A=0Acomment {=0A=0A[ gml-boolean true ] ; true/false=0A[ gml-integer 1 ] ; integer numbers=0A[ gml-real 1.2e10 ] ; real numbers=0A[ gml-string "alfred" ] ; strings=0A[ gml-op addi ] ; GML operators=0A[ gml-binder inc ] ; binder operation=0A[ gml-ident x ] ; identifier=0A[ gml-point 1 2 3 ] ; point=0A=0A[ gml-fn ; function=0A [ x [ gml-integer 1 ] y [ gml-integer 2 ] ] ; environment=0A [ [ gml-ident x ] [ gml-op addi ] ] ; code=0A]=0A; note that we don't have environment for the function at parse time=0A; so we will get something like this=0A[ gml-fn ; function=0A [ ] ; what environment?=0A [ [ gml-ident x ] [ gml-op addi ] ] ; code=0A]=0A; when our interpreter hits gml-fn, then we will duplicate the environment=0Afor the function=0A=0A[ gml-array [ gml-integer 1 ] [ gml-real 1.2e3 ] ] ; array=0A=0A[ gml-light [ 1 1 1 0 ] [ 1 1 1 ] ] ; direction and color=0A=0A}=0A=0A;---------------------------------------------------------------------=0A=0Agml-env: make object! [=0A env: copy []=0A get: func [ ident /local ret ] [=0A ret: select env ident=0A if none? ret [ throw 'gml-error ]=0A ret=0A ]=0A set: func [ ident val /local exist ] [=0A exist: find env ident=0A either none? exist [=0A append env ident=0A append/only env val=0A ] [=0A exist: next exist=0A remove exist=0A insert/only exist val=0A ]=0A ]=0A]=0A=0Agml-stack!: make object! [=0A=0A stack: copy []=0A push: func [o] [insert/only stack o]=0A pop: func [ /local h] [=0A if len == 0 [ throw 'gml-error-empty-stack ]=0A h: copy first stack remove stack h=0A ]=0A len: func [] [ length? stack ]=0A=0A return-real: func [ r ] [=0A gml-stack/push reduce [ 'gml-real r ]=0A ]=0A return-integer: func [ i ] [=0A gml-stack/push reduce [ 'gml-integer i ]=0A ]=0A return-boolean: func [ b ] [=0A gml-stack/push reduce [ 'gml-boolean either b ['true]['false] ]=0A ]=0A return-point: func [ x y z ] [=0A gml-stack/push reduce [ 'gml-point x y z ]=0A ]=0A pop-real: func [/local r] [=0A r: gml-stack/pop =0A if r/1 <> 'gml-real [ throw 'gml-error-not-real ]=0A r/2=0A ]=0A pop-integer: func [/local i] [=0A i: gml-stack/pop=0A if i/1 <> 'gml-integer [ throw 'gml-error-not-integer ]=0A i/2=0A ]=0A pop-boolean: func [/local b] [=0A b: gml-stack/pop=0A if b/1 <> 'gml-boolean [ throw 'gml-error-not-boolean ]=0A b/2=0A ]=0A pop-array: func [/local a] [=0A a: gml-stack/pop=0A if a/1 <> 'gml-array [ throw 'gml-error-not-array ]=0A next a=0A ]=0A pop-point: func [/local p] [=0A p: gml-stack/pop=0A if p/1 <> 'gml-point [ throw 'gml-error-not-point ]=0A next p=0A ]=0A]=0A=0A=0Amake-gml-stack!: func [] [=0A make gml-stack! []=0A]=0A=0Agml-stack: make-gml-stack!=0A=0A; note that this guy could be recursive=0Agml-eval: func [ env program /local tk ] [=0A while [ 0 < length? program ] [=0A tk: first program=0A; foreach s ss [ prin [ s/1 "," s/2 ] ]=0A; print ""=0A switch/default to-word tk/1 [=0A gml-boolean [=0A gml-stack/push tk=0A ]=0A gml-integer [=0A gml-stack/push tk=0A ]=0A gml-real [=0A gml-stack/push tk=0A ]=0A gml-string [=0A gml-stack/push tk=0A ]=0A gml-point [=0A gml-stack/push tk=0A ]=0A gml-op [=0A use [ f o ] [=0A switch/default tk/2 [=0A apply [=0A f: gml-stack/pop=0A if f/1 <> 'gml-fn [ throw 'gml-error-cannot-apply ]=0A gml-eval f/2 f/3=0A ]=0A if [=0A use [ b f1 f2 ] [=0A f2: gml-stack/pop=0A f1: gml-stack/pop=0A b: gml-stack/pop=0A either (b/2 == 'true) [=0A gml-eval f1/2 f1/3=0A ] [=0A gml-eval f2/2 f2/3=0A ]=0A ]=0A ]=0A ]=0A [=0A o: tk/2=0A gml-opeval/:o=0A ]=0A ]=0A ]=0A gml-binder [=0A env/set tk/2 gml-stack/pop=0A ]=0A gml-ident [=0A gml-stack/push env/get tk/2=0A ]=0A gml-fn [=0A tk/2: make env []=0A gml-stack/push tk=0A ]=0A gml-array [=0A gml-stack/push tk=0A ]=0A ] [=0A print "don't know"=0A ]=0A=0A program: next program=0A ]=0A]=0A=0Agml-opeval: make object! [=0A=0A addi: func [] [=0A gml-stack/return-integer (gml-stack/pop-integer + gml-stack/pop-integer)=0A ]=0A addf: func [] [=0A gml-stack/return-real (gml-stack/pop-real + gml-stack/pop-real)=0A ]=0A acos: func [ /local r1 ] [=0A r1: gml-stack/pop-real=0A if any [ r1 < -1 r1 > 1 ] [ throw 'gml-error ]=0A gml-stack/return-real (arccosine r1)=0A ]=0A asin: func [ /local r1 ] [=0A r1: gml-stack/pop-real=0A if any [ r1 < -1 r1 > 1 ] [ throw 'gml-error ]=0A gml-stack/return-real (arcsine r1)=0A ]=0A clampf: func [ /local r1 ] [=0A r1: gml-stack/pop-real=0A if r1 < 0.0 [ gml-stack/return-real 0.0 return ]=0A if r1 > 1.0 [ gml-stack/return-real 1.0 return ]=0A gml-stack/return-real r1=0A ]=0A cos: func [] [=0A gml-stack/return-real (cosine gml-stack/pop-real)=0A ]=0A divi: func [ /local i1 i2 ] [=0A i2: gml-stack/pop-integer=0A i1: gml-stack/pop-integer=0A if i2 == 0 [ throw 'gml-error ]=0A gml-stack/return-integer to-integer ( i1 / i2 )=0A ]=0A divf: func [ /local r1 r2 ] [=0A r2: gml-stack/pop-real=0A r1: gml-stack/pop-real=0A if r2 == 0.0 [ throw 'gml-error ]=0A gml-stack/return-real ( r1 / r2 )=0A ]=0A eqi: func [] [=0A gml-stack/return-boolean (gml-stack/pop-integer == gml-stack/pop-integer)=0A ]=0A eqf: func [] [=0A gml-stack/return-boolean (gml-stack/pop-real == gml-stack/pop-real)=0A ]=0A floor: func [] [=0A gml-stack/return-integer (to-integer gml-stack/pop-real)=0A ]=0A frac: func [ /local r1 ] [=0A r1: gml-stack/pop-real=0A gml-stack/return-real ( r1 - to-integer r1 )=0A ]=0A lessi: func [ /local i1 i2 ] [=0A i2: gml-stack/pop-integer=0A i1: gml-stack/pop-integer=0A gml-stack/return-boolean (i1 < i2)=0A ]=0A lessf: func [ /local r1 r2 ] [=0A r2: gml-stack/pop-real=0A r1: gml-stack/pop-real=0A gml-stack/return-boolean (r1 < r2)=0A ]=0A modi: func [ /local i1 i2 ] [=0A i2: gml-stack/pop-integer=0A i1: gml-stack/pop-integer=0A gml-stack/return-integer (i1 // i2)=0A ]=0A muli: func [] [=0A gml-stack/return-integer (gml-stack/pop-integer * gml-stack/pop-integer)=0A ]=0A mulf: func [] [=0A gml-stack/return-integer (gml-stack/pop-real * gml-stack/pop-real)=0A ]=0A negi: func [] [=0A gml-stack/return-integer ( - gml-stack/pop-integer )=0A ]=0A negf: func [] [=0A gml-stack/return-real ( - gml-stack/pop-real )=0A ]=0A real: func [] [=0A gml-stack/return-real ( gml-stack/pop-integer )=0A ]=0A sin: func [] [=0A gml-stack/return-real ( sine gml-stack/pop-real )=0A ]=0A sqrt: func [ /local r1 ] [=0A r1: gml-stack/pop-real=0A if r1 < 0 [ throw 'gml-error ]=0A gml-stack/return-real ( square-root r1 )=0A ]=0A subi: func [ /local i1 i2 ] [=0A i2: gml-stack/pop-integer=0A i1: gml-stack/pop-integer=0A gml-stack/return-integer ( i1 - i2 )=0A ]=0A subf: func [ /local r1 r2 ] [=0A r2: gml-stack/pop-real=0A r1: gml-stack/pop-real=0A gml-stack/return-integer ( r1 - r2 )=0A ]=0A=0A getx: func [ /local p ] [=0A p: gml-stack/pop-point=0A gml-stack/return-real p/1=0A ]=0A gety: func [ /local p ] [=0A p: gml-stack/pop-point=0A gml-stack/return-real p/2=0A ]=0A getz: func [ /local p ] [=0A p: gml-stack/pop-point=0A gml-stack/return-real p/3=0A ]=0A point: func [ /local x y z ] [=0A z: gml-stack/pop-real=0A y: gml-stack/pop-real=0A x: gml-stack/pop-real=0A gml-stack/return-point x y z=0A ]=0A=0A get: func [ /local a i ] [=0A i: gml-stack/pop-integer + 1=0A a: gml-stack/pop-array=0A if i > (length? a) [ throw 'gml-error-out-of-bounds ]=0A gml-stack/push (pick a i)=0A ]=0A length: func [ /local a ] [=0A a: gml-stack/pop-array=0A gml-stack/return-integer (length? a)=0A ]=0A light: func [ /local dir color ] [=0A color: gml-stack/pop-point=0A dir: gml-stack/pop-point=0A append dir 0=0A gml-stack/push reduce [ 'gml-light dir color ]=0A ]=0A]=0A=0Atest1: {=0A1 2 addi % adding 1 and 2=0A2.0e10 1.0 addf % blah=0A}=0A=0Atest2: {=0A { 1 } /id % the identity function=0A { } /id % the identity function=0A}=0A=0Atest3: {=0A ^{ 1 addi ^} /inc % the increment function=0A ^{ /x /y x y ^} /swap %swap the top two stack locations=0A}=0A=0Atest4: {=0A1 /x=0A{ x } /f=0A2 /x=0Af apply x addi=0A}=0A=0Atest5: {=0A { /n /self=0A n 2 lessi=0A { 1 }=0A { self n 1 subi self apply n muli }=0A if=0A } /fact=0A fact 4 fact apply=0A}=0A=0Atest6: {=0A ^{ 1 addi ^} /inc % the increment function=0A ^{ 5 inc apply ^} /bb=0A bb apply=0A}=0A=0Atest7: {=0A true { 1 } { 2 } if=0A false { 2 } { 1 } if=0A}=0A=0Ass: func [] [ gml-stack/stack ]=0A=0Agml-eval gml-env parse-gml test7=0A=0Agmle: func [ str ] [ =0A gml-eval gml-env parse-gml str=0A]=0A=0Ard: func [][do %grammer.r]=0A=0A ------_=_NextPart_000_01C0113F.9CB50136 Content-Type: application/octet-stream; name="ppm.r" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="ppm.r" REBOl [=0A Title: "PPM handling routine"=0A]=0A=0Acomment {=0A An object to create a PPM file and write it to file.=0A}=0A=0Appm!: make object! [=0A filename: %test.ppm=0A width: 100=0A height: 100=0A image: array/initial ( 100 * 100 * 3 ) 0=0A getxy: func [ x y /local i ] [ ; x and y from 0 to 99=0A i: (y * width * 3) + (x * 3)=0A return copy/part (skip image i) 3=0A ]=0A setxy: func [ x y color /local p ] [=0A i: (y * width * 3) + (x * 3)=0A p: skip image i=0A p/1: to-integer (color/1 * 255)=0A p/2: to-integer (color/2 * 255)=0A p/3: to-integer (color/3 * 255)=0A color=0A ]=0A writeppm: func [] [=0A write filename join=0A "P6^/# Alfred Pang^/" reduce [ width " " height "^/255^/" ]=0A write/append filename to-binary image=0A write/append filename "^/"=0A ]=0A]=0A=0Amake-ppm!: func [ w h f ] [=0A make ppm! [=0A filename: to-file f=0A width: w=0A height: h=0A image: array/initial (w * h * 3) 0=0A ]=0A]=0A=0A ------_=_NextPart_000_01C0113F.9CB50136 Content-Type: application/octet-stream; name="render.r" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="render.r" REBOL [=0A Title: "Renderer"=0A]=0A=0Ado %grammer.r=0Ado %threed.r=0Ado %ppm.r=0A=0Asphere!: make object! [=0A texture: parse-gml { { /v /u /face 0.8 0.8 0.2 point 1.0 0.0 1.0 } apply }=0A]=0A=0Aray!: make object! [=0A vector: make-unit-vec [ 1 1 1 0 ]=0A point: [ 0 0 0 1 ]=0A rayt: func [ t /local rt ] [=0A rt: copy point=0A rt/1: rt/1 + (t * vector/1)=0A rt/2: rt/2 + (t * vector/2)=0A rt/3: rt/3 + (t * vector/3)=0A rt=0A ]=0A]=0A=0Amake-ray!: func [ dir pt ] [=0A make ray! [=0A vector: dir=0A point: pt=0A ]=

 [4/7] from: allen:rebolforces at: 29-Aug-2000 9:05


----- Original Message ----- From: <[webmaster--SILICONSPECIES--COM]> To: <[list--rebol--com]> Sent: Tuesday, August 29, 2000 8:17 AM Subject: [REBOL] Jobs/projects list?
> Is there a jobs/projects needing help, talent available list for Rebols > (Rebol programmers)?
<<quoted lines omitted: 4>>
> also check out my personal site Brainbyte! > http://www.brainbyte.com
Hi Jeff, A list of REBOLs for hire and job listings is on my list of things to do for the REBOL Forces site. Until I get the process automated, I will manually accept submissions stating. Name, Country/Region, prefered work/projects, contact details, and short blurb to sell yourself. send to [listing--rebolforces--com] Cheers, Allen K Website http://www.rebolforces.com Rebsite do http://www.rebolforces.com

 [5/7] from: rchristiansen:pop:isdfa:sei-it at: 28-Aug-2000 18:09


OK. What kind of application can I use to view a .ppm (portable pixel map) file?

 [6/7] from: alfred_pang:inetco at: 28-Aug-2000 16:47


Practically all file viewers on UNIX/Linux can view .ppm. I used to have a viewer for Windows but I can't find it anymore.

 [7/7] from: bhandley:zip:au at: 29-Aug-2000 22:41


IfranView is a great little freeware (non-commercial use) viewer for Windows that can handle more image formats "than you can poke a stick at" including PPM. Does batch conversions as well. Worth checking out. http://www.irfanview.com/ Brett.

Notes
  • Quoted lines have been omitted from some messages.
    View the message alone to see the lines that have been omitted