• http://www.illogics.org - resume
  • http://www.slowass.net - personal site
  • http://wiki.slowass.net/?ScottWalters

    Each of these pages has a number of perl projects and resources.


    Perl Experience: Strong Perl job interviewing skill, questionable on Perl skills
    Perl Strengths: Strengths: Leeching knowledge from PM chapter members, reading entire Perl
    books without buying them.

    Several projects of mine are listed on LLPerlProjectsLL.

    I'm working on some ongoing LLPerlMongersLL lectures and some non-recurring ones. On-going topics: OO, Security, Graphics. Graphics, I've done X11::Protocol and a Perl spirograph, shared memory with Mmap() to implement mutli-user Conway's game of life on the web. Next I'd like to do something with GL, but I'll have to learn GL first!

    Non-recurring lectures, I have a Fuzzy Logic module. This could evolve into a recurring thing. I have a substring indexing module that makes database searching much quicker as opposed to using % wildcards which would result in a linear pass through the entire table.

    I want to do some contest thingies, both there at PM and as homework assignments, similar to LLCoreWarsLL. Details on LLCoreWarsLL page.

    Working on LLPerlMongersIdeasLL with LLDougMilesLL and LLKurtVonTiehlLL.


    Edit this page and list your Perl related projects!

    DougMilesL is apparently starting a company.

    LKurtVonTiehlL is possibly hosting a GURPS campaign. GURPS is a set of rules for role playing adventures in any world or your own custom fantasy-scifi world. Steve Jackson Games, ISBN 1556343574. Kurt is also helping with meetings. See LPerlMongersIdeasL.

    WilliamLindley is working on AutoSite, a program that generates finished websites given a collection of pages, infering the structure from the "rel" attribute of "a" tags. AutoSite works but is under constant revision - of course.

    LScottWaltersL sometimes has people over to play Steve Jackson Game's "Hacker", ISBN 155634564X. "Over" means Fountain Hills. Also working on several ongoing presentation series for PM: details on LPerlMongersIdeasL. Working on http://wiki.slowass.net/?TinyWiki (this Wiki forum software) and Gnumb, a GNU servent designed to be configurable or run as an indexing server. I'm also working on several CPAN modules which are linked off of http://www.cpan.org/modules/by-authors/id/S/SW/SWALTERS/ . ImplicitThis.pm gives you $this without having to manually read it and makes instance variables look like regular variables - no funky hash dereference syntax. interface.pm does simple abstract interface checking. I'm also working on a publisherless book, which is on the http://wiki.slowass.net Wiki.

    AndrewJohnson is working, as ever, on web-based database applications in Perl, both for himself and the $DayJob. More info as it becomes available on http://www.transformedplanet.com

    Other LPerlMongersL are working on other things, and when I find out what they are, I'll nark on 'em.

    p.s. :-) it works!



    A Perl monger is one who trades or collects, uh, Perl, presuambly meaning Perl knowledge, or atleast Perl lore.


    Two or more programs run in a single address space in a vm that simulates a strange computer, and each program tries to disable all instances of the other. Replicating around memory, trashing memory randomly, overwritting every nth byte were all fair play. Each program got exactly one machine cycle (each instruction took one) before the VM moved to the next thread. You won when all of the other threads crashed. Winning solutions tended to be brilliant combinations of all strategies but even simple permutations were fun.

    It would be fun to do something like that with Perl. Perl 5.8 threads would work well enough for time sharing. I'm just not sure what metaphor to use for addressable memory since Perl's bytecode tree is a tree. Also the only way I can think of replicate code around memory is eval(), since assinging globs and creating closures don't actually copy bytecode tree, only bump refcounts.

    Using the name table in place of the memory of a bytecode tree would be an obvious guess, but a thread can keep running with an empty symbol table once it starts - the code just has to not try to call other functions, which is easy with a busy spin loop, making the ultimate winning solution while(1) { }, which is pretty lame.

    Hrm. On second though, taking B::Generate (my favorite module) to the AST and duking it out there sounds like a lot of fun... each thread could be handed the root nodes of the AST and let loose.

    The key parts of B::Generate could be posted to the list with a note that the upcoming contest will require understand of them. Cheat sheets for perl ops and B::Generate syntax would be provided at the meeting. Sample programs that demonstrate basic replication and basic annihilation behavior could be provided as a starting point.

    Obviously I don't have time to put this together for this week, but is this something that you would consider for future meetings? It would be exclusive in that newbies would be completely lost and there wouldn't be enough time for anything more than a simple solution but people take things home and work on things at home for future contests without ruining the sport.


    Ideas for Future Meetings

    Presentations are always welcome. They can run from 2 minutes to 2 hours.

    Edit this list to add your meeting ideas and meeting fragment ideas. Some of these things are the basis for an entire meeting, some fun components of some or every meeting.

    PerlCalendar for more information on meeting format, topics, locations, times, and how to get announcements.


    But I think you would be really good doing something like taking a random question from perl monks and answering it interactively with the group (q__ via IRC)

    LScottWaltersL has a Bards Tale-esque 3D maze renderer implemented as a fairly simple recursive algorithm.

    LScottWaltersL wants to get a Perl 5 Porter down to give a presentation on on... Perl 5 Portering... such as, how to get started... portering.

    LScottWaltersL saw some mind-blowing, just-released Perl 6 stuff at YAPC where Perl 5 runs Perl 6 programs by punting to Pugs where Pugs compiles the code, translates it to Perl 5 on the fly, and then Perl 5 takes over again. Holy shit, batman...

    LScottWaltersL needs to do his TransientBaby talk -- things have progressed in these 6 long years and he's ready for a CPAN release >=)

    LScottWaltersL can present the Illuminati card game server, based on the Continuity module, which makes implementing multiplayer games infinitely easier by virtue of all users running out of the same persistant process, complete with datastructure sharing and even event queues that hold up execution contexts until variables are written to. The root lexical context contains all shared game data, and a lexical context is created for each user. Continuity automatically maps each incoming request to the correct per-user lexical context, and resumes its execution, providing it with the fresh input data. Various server-push techniques can be used to keep the various players privvy to the latest game state. One technique is JavaScript that does an AJAX-ish request in a loop, firing off the next as soon as the current one completes, combined with the server delaying answers to the queries until something in the game has changed or a certain amount of time passes. Something similar can be done with a plain old HTML frame and a meta http-equiv refresh directive.

    Symposium: Mail a topic to the list - templating, database UI, etc - and ask that anyone who has done that before prepair a brief (10m) presentation on how *they* solve the problem. Kurt, in a previous email, suggest several topics like this that each programmer does their own way - it would just be a matter of picking between them. How one person does something has limited merit, but a smorgasbord of solutions has far more. Next time after this meeting, a series of 2, 3, 4, or 5 10m "how I solve this" presentations and took the rest of the time with social/contest, we should do okey. "Something that everyone rolls their own of" discussions: Kurt said, "Sounds good; another might be file-transfer/file-synchronisation scripts. If I had a dollar for every file-transfer script I've hacked together, I'd... well, I'd have well over $15 ;)"

    Coincide meeting with Slashdot meetup, Java users group, PHP UG, Linux UG, etc. Essentially, socialize ourselves with other programming language user groups and free software user groups in town. It has been suggested that this be done as bonus or alternate meetings in addition to our current schedule, beyond the two meetings a month we're sustaining now.

    More contests: Most people show up without laptops, but I like the idea of little code challenges in general. The ICFP was lots of fun this year - write a client to control a robot that shuttle packages around and push other robots into the water. Its a bit much for an hour or two assignment, but avoiding rote chores like fetching web pages is good sense. Perhaps breaking people up into teams and taking along a few extra laptops. Perhaps follow the Iron Chef - "todays theme ingredient will be global substitutions with the execute flag!". Solutions need not be done using Perl - the Perl community has just as much to learn from solutions in other languages as ones done in Perl. Whether the assignments are to write programes designed to compete based on usefulness or obscurity, live people writing code on the stop is exciting =) Kurt: "*grin* I like the Iron Chef idea.. "Next challenge, Sienna Camel says you must code using only characters found in hex!" (0-9 & A-F) Besides, some of these could very well be a 'write it at home' kind of thing, and people can team up if they like or go it alone."

    Sienna Camel: Specific version of coding contests: like Iron Chef: program with some theme - lack of paranthesis, do something that a module normally does, demonstrate the best use of a module, and anything else we can think of. Anything with a theme that is judged subjectively.

    Peer help hour: code reviers, bug workarounds, debugging, brain storming, resource location, and so forth will be provided at no charge as part of the standard meeting format, even when PM joins other user groups. Just bring your question or listing and mention to Doug or whomever else has hair in strange places and it'll be scheduled in.

    Bring-in-a-module: assign everyone to show up with a CPAN module that may or may be known to the group but B found interesting for whatever reason. It could be something that everyone seems to know about but you that you wish you knew about earlier, or it could be something in Acme::, or it could be some interseting module floating around elsewhere. Useful, silly, mind bending or just plain cool, everything goes. You don't have to actually bring the module in, just briefly describe what it does, why you like it, and what it's called.

    LDougMilesL suggested http://search.cpan.org/src/AUTRIJUS/Games-AIBots-0.03/doc/aibots.html which sounds awefully cool to me. I'll have to play with this to see what it has in store for us. See Games::AIBots - LScottWaltersL

    LScottWaltersL promised a 3rd part of the FuzzyLogic series, this time an expert system.

    LScottWaltersL has some interesting Segway-like control code in C. The theory is really nifty. Could be a presentation basis.

    Coro - LScottWaltersL did a Coro presentation. Coroutines are essentially cooperative threads. Compared to an event driven system, you don't have to return out to yield the CPU, so programs have normal structure, with while loops and subroutines rather than a series of tiny subroutines. Perl 6 will feature coroutines in core, and Perl 5 has an excellent CPAN module adding them. Coro is easier to use, safer, easier to grasp, and far more stable than threads on Perl 5. (The Web scraping presentation used Coro, but there's another Coro presentation in the works that uses it for network servers in replacement of POE. Maybe he'll get lazy and just use the fingerd and Perl-shell examples from Perl 6 Now.)

    http://perldesignpatterns.com/?GodObject - LScottWaltersL wants to do a presentation on code refactoring. The GodObject discussion is a good introduction to useful OO programming for an OO novice. People experienced with objects in Perl who have never worked on a large program will take their knowledge to, er, the next level.

    Perl 6 101. 'nuff said. - LScottWaltersL (This presentation was done as a series, but the series will probably be re-run.)

    LScottWaltersL wants to show how to make an upload progress bar in Perl. Done.

    LScottWaltersL wants to show off his stealth-DNS idea -- to avoid bandwidth associated with repeatedly denying RBL'd spammers, check for RBL *before* returning the authoratative DNS information for your mail server -- don't even give them your IP address!

    LScottWaltersL wants to do a presentation on his Perl6::Contexts module. The presentation will introduce the new reference, number, string, and object contexts in Perl 6, and how they make Perl much clearer, more powerful, more expressive, and generally saner, and how much of this is now available in Perl 5 thanks to this module. Done.

    LScottWaltersL wants to talk about the process of writing a technical book, and his particular adventure in doing so. Okay, Scott has since forgotten all of his good stories.

    LScottWaltersL would like another stab at his presentation on constraint systems, a topic from Structure And Interpretation of Computer Programs.

    LScottWaltersL could do a redux of his TinyWiki presentation.

    Someone did a Perl Best Practises (Book) presentation.

    Brock did his ICFP presentation.

    Intro to OO has been requested. LScottWaltersL is willing to do the presentation -- unless someone intercepts! --- Brock wants to do an Intro-to-Modular Perl Programming, as a ramp-up to OO. Done.

    LScottWaltersL: Oh, if anyone is interested, I now have an IRC<->MUD proxy that pretends to be an IRC server so people can MUD from IRC clients. It's up on and off as I work on it, but http://weehours.net to create a character, then /server weehours.net to connect. Could do a presentation on that, too.

    LScottWaltersL: And if people wait a while, I'll have an alternative front-end to Perl, so you can run Logo in Perl along side your Perl 5 code and using Perl 5 modules.

    BrockWilcox: AJAX! Cooperation with javascript in various ways to make rich web applications. Could go in several different directions. Done, at least once.

    LScottWaltersL: Visualizing large object oriented Perl codebases using GraphViz, the PostScript poster utility, aspect/wrapped functions, a laser printer, and scotch tape.



    Job/Position: Phoenix.pm Ex-Head Honcho,
    Webmaster/Programmer at Bowne of Phoenix
    Perl Experience: 7 years
    Perl Strengths: Death Rays
    Hobbies/Interests: Classified.



    About Me: Perlish guerilla tactics as needed.
    Perl Experience: 5+ years of Perl
    Perl Strengths: core functionality and most modules