"Save Work" project, organizing learning materials, J Wiki, big files, packaged tools
Meeting Agenda for NYC JUG 20050712
1. Group project: assignments->examples a. Harteg - perhaps look at grid control to organize and present data? Look at "Farpoint Spread" grid control (see messages on J Forum from 7/9/05). b. Dan - save & restore for: screen states, search lists, etc.: interface? c. Jim - indexer on "parseDir"? d. John - "inert" command used on initial "save work" screen e. Devon - review some design choices, e.g. should we build .BAT file to copy files? 2. How to organize modules? Use J projects? Look at Project Manager documentation. 3. Learning materials: what are our categories and what do we have in each? 4. Web site as repository: who can help set it up? Pay a designer? Website design recommendations or admirable sites to copy? [From Gerry Lowry on the J Forum: Another request, to all web designers, read Steve Krug's "Don't Make Me Think!" (http://www.sensible.com/). ] 5. Miscellaneous: has anyone used "bigfiles" for anything real? Take a look at "buildBigNumdFl.ijs" and my version of Dave Mitchell's "bigFiles.ijs". Quadratic solver? Matlab (and even Excel) has things like this packaged up and ready to use: this is an enormous advantage.
This was our last meeting until September as we will take August off.
Each member received a CD with everything we've worked on so far this year.
We discussed some issues with our group project "Save Work", discussing things like using the grid control to organize and present data: how would this control handle a load the size of an entire hard disk directory? What could we do to minimize this load? The existing stub of "Save Work" creates a data structure with all directory information - this takes up several megabytes (say 10-12 for files on a 100 gigabyte hard disk). Can this easily be loaded into a grid and used handily? Such a module could add immensely to the useability of a backup program.
We also need to put more work into save & restore for things like screen states, search lists, etc. Why can't our software remember everything we do every session and arrange itself to ease our most common tasks?
We briefly reviewed some design choices. Specifically, the existing code copies the files to a backup area by creating a large .BAT file and running it - is this a good way to do this? We generally agreed that this had some advantages of modularity and providing an intermediate file to help debugging.
We did not decide how we should organize the project overall - if we should use J projects or what source code control we should have.
The next two items on our agenda are closely related: what are our categories of learning materials (how do we organize them) and should we start work on a Web site as a repository for this information?
We discussed some of what we'd need to know to set up our own Web site and what URLs are available. [This project was subsequently abandoned at a more recent meeting in favor of taking advantage of the J Wiki].
On miscellaneous topics, I asked if anyone has used the user-supplied "bigfiles" modules for anything real? I provided a toy application called File:BuildBigNumdFl.ijs ; see Scripts/Working with Big Files#head-f1fc85cad96b711fa66d4fcb7109798b23e440c9 for explanation.
I also showed my version of Dave Mitchell's module in which I added some explanations and a couple of tools. The initial problem I had using this module was using integers greater than 2^31 as J uses signed integers. This means that we need to supply 2 integers, one or both of which may be negative, to specify large file sizes and positions. See Scripts/Working with Big Files for a fuller exposition of this.
On one other miscellaneous topic, I presented an example where I found tacit definition actually necessary: in a function "nameExists". This function returns 1 if its argument is a known defined name, 0 otherwise. The problem with my original, explicit version was the possibility of local shadowing of a name. See File:TacitExampleFirstTimeNecessary.txt .
Another item I shared was some code I had written for my daughter to roll dice for the game "Dungeons and Dragons": see File:D&D.ijs . This was a failed attempt to interest her in J.
We didn't really cover the agenda item of packaged tools that J ought to have. One advantage a language may have is the availability of well-documented, easy-to-use packages or tools to accomplish narrowly-defined tasks. For instance, Microsoft Excel has a quadratic solver, as does Matlab. Such a package would be easy to implement in J but, as far as I can tell, no one has.