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

[REBOL] Re: Selling REBOL scripts

From: reichart:prolific at: 8-Jan-2002 19:04

1. Q: PETR WROTE: Eh, difficult to read even for me now A: That is funny :) 2. Q: BRETT WROTE: I'm curious what techniques, idioms, conventions, etc have you used towards attaining such goals - particularly in reference to modularity? Anything you can share for the betterment of all Rebol developers? A: Sure. The most important thing is to consider the breadth or scope of a routine. But before I start let me note that I will be using Pseudo code (not Rebol) for my examples). Consider a routine from a graphics package that renders a circle: Circle(x,y,r) Where xy are coords, and r is the radius. The screen cords are assumed and are taken from some global define or data statement. This function is "closed" and after written is actually useless. However, image the same function as: Data = Circle(x,y,r) Where the Circle function is not designed to render, but rather to spew out data. Data would now read something like: 123,10 124,11 125,11 126,12 etc. Now you could do plot( circle(x,y,r) ) This is better way to write code (could be a little slower), but allows for some amazing tricks. As an example. Image grabing every other data term to created a dotted line. Or feeding the output to the input of the next xy, to create spirals. You get the idea. Currently we are writing an FTP client. An FTP client shares something like 90% of its functionality with a general File Manager. It also shares a different 90% with a peer to peer or peer to server file sharing util (like Napster). All three of these apps are a great front end for batch building and for system maintenance, such as a util that looks for viruses, or does a Grep, or does archiving. Or consider a util that keeps an eye on your system, and tells you when files are accessed or changed. Or when a directory gets full. Or something that cleans cookies. These are all brothers, or at the very furthest kissing cousins. So here are several key high level functions we are trying to I.D. early on in our software development, that can be used by other apps (that we create): Drag and drop (a file, or selected files from window to window, and once implemented by RT, from Rebol/App to Local/App). Search down directory building file list with all details (file creation date, size, checksum, etc.) Password protect user's settings, and allow settings to be stored or retrieved from a website, or FTP site (this is a cool one, where you can set things up the way you like it, and have those same settings at work and home). We try to think of the part of the program as reusable, and we are looking for ways to build our library more intelligently. Most of this is just discipline, and focus, with a good dose of architecture. Back to the original issue. I want to do my best to protect our hard work. This is why I want to encap. If someone is smart enough to steal our code, cool. Maybe they will come work with us one day :) I met two of my team members at Pirate meetings. One has been with my company for 14.5 years! The other on a Pirate BBS, he has been here for 15 years. None of us pirate though. I used to go to these meetings...to find programmers! People who don't buy software don't buy software. Reichart... Care [Reichart--Prolific--com] to contact me. www.SereneScreen.com for an amazing product. www.Prolific.com to see what is happening in my life.