Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Project Recommendations and Recollections

by CubicSpline (Friar)
on Oct 23, 2001 at 06:49 UTC ( #120685=perlmeditation: print w/replies, xml ) Need Help??

While contemplating the zen of a blank text editor screen, programmers block seized hold of me and I could only sit there, wondering what I should do. It made me wonder, how many of us are out there with Perl skills (of all levels) and nothing to work on? It doesn't seem right that, with such a resource as PM, perl coders should be wanting for projects to work on.

I spent quite a bit of time searching PM for well-defined examples of projects that an aspiring perl programmer could jump on. Here are a few nodes that I found:

But what are some of the projects that you've embarked on that were interesting/rewarding/meaningful to you? If you're willing to share a detailed description or a vague idea for a project, please do. It can be a large-scale project, a simple utility you found useful, or an idea for a new module. Your experience and ideas may prove to be inspiration for aspiring members of the monastery. Even if it's been done before, a challenging and interesting project is a great way to reinforce what you have learned as a programmer.

I'll kick it off with a program that I was fairly happy with. I was moderately interesting in Ham radio a year or so ago and I wanted to learn Morse code. So I coded up a Morse code training appliction to help me with the memorization and improve my speed. The application simply printed out sentences is Morse or English and I entered the corresponding translation and it told me what I got right and what I got wrong. It was a fun weekend project and I still like to load it up every once in a while and test myself.

  • Comment on Project Recommendations and Recollections

Replies are listed 'Best First'.
Re: Project Recommendations and Recollections
by Starky (Chaplain) on Oct 23, 2001 at 11:50 UTC
    There was a project called Peep: The Network Auralizer that when I first came across it I thought was priceless. It takes virtual events and turns them into unobtrusive, organic sounds such as the call of the hermit thrush.

    I enjoyed playing with it so much that I started extending things here and there just to hear what kind of sound montages I could make and to monitor some machines I looked after. After awhile, I was having some problems because the client modules (the clients are written in Perl and the server in C) were in need of some reorganization. So I decided to rewrite them.

    After the rewrite, alot of possibilities started opening up with the code. I continued to refine it and add things that I wanted and improved the stability. (I was pleasantly surprised what can get done putting in a few hours here and there!) The original author was also making strides on the server side.

    The product of the effort is now the Net::Peep module on the CPAN, and I'm quite pleased with it. We got 115 downloads from SourceForge in a single day a few weeks ago and there's been some discussion of it going into an upcoming Debian release (nothing definite yet).

    All told, it is nice to see that others find useful what I wrote for fun. It's kind of like cooking a superb meal: You might cook one for yourself once in awhile if you're into cooking as I am, but it's especially nice when you can share it with others.

(IT Support Centre Knowledge Base): Re: Project Recommendations and Recollections
by osfameron (Hermit) on Oct 23, 2001 at 13:39 UTC

    I was involved in setting up a knowledge base for our IT Service Centre - that is, a database of articles with 1st line solutions, and information about customers and applications etc.

    We were using Remedy's Action Request System as our Call logging/workflow tool, and had been using its internal Knowledge Base, which is very limiting - poor search facilities, limit on size of text, no formatting, attached files or hyperlinks. Plus, it's extremely slow.

    We had a plan to buy an industry standard "knowledge solution" from somewhere... but these things take time... and we needed the solution now

    So I wrote a Perl script to turn a report from Remedy into a set of HTML formatted documents. Then I wrote "my first Perl CGI script" to allow the user to search the documents, vote on their usefulness, and show which have been most recently accessed by other Service Centre users.

    It's probably pretty noddy stuff - because I didn't think we'd have enough clout to get access to a database, I knocked up something based on the feature about creating a search engine using Search::Dict and plain text files. It works pretty fast for the number of documents we have (about 2000) but I'm sure it won't be scalable, and of course the data format needs serious munging if you want to do anything else with it. Also the search facility doesn't do boolean searches, and though the ranking of documents tends to give the best documents first, it will also often return a list of 100s of others...

    But it works, and more importantly it gets used. Also, because we had a really good manager working on it, it spawned a whole set of processes to discuss and improve the solutions that go into it. Good work Perl!

    So... a nice project might be to create a Knowledge Base system with:

    • A real database (DBI::mysql ?)
    • Boolean searching
    • Better filtering of returned solutions
    • Creating / editing / approving solutions online
    • ;
      Actually, someone is writing a perl-based KB system. :-)

      The primary developer is James G. Smith, and it will be used for the mod_perl 2.0 docs & KB. The project homepage is

      If you're interested in what he's doing, search the mod_perl list archives from the last month or so and you will find the relevant threads. The current release doesn't do anything yet, but the framework is there and I expect that something useful will be there shortly.

Re: Project Recommendations and Recollections
by jeroenes (Priest) on Oct 23, 2001 at 14:01 UTC
    My own experience

    I have the luxury (ahum) that I need and write my own projects for my research. So whenever I need something, I just sit down and start to write in perl. I need these projects right away, so the satisfaction comes immediately after the first succeful test. The downside is that there is little use for these projects outside my own research.

    Nevertheless, I start to get a selection of modules that may be interesting for more people. I eventually will clean them up and present them to the community, starting with perlmonks. My first module that had a potential to be generally useful, SuperSplit, unfortunately wasn't very enthousiastically received by the CPAN maintainers, so it still dangles somewhere without being referenced. I don't mind too much though, as it is really useful in my own everyday work.

    A project for you?

    If you want to take on a new project, try to do one that either can used by yourself or can be used by the community. Preferably, a combination of the two.

    Maybe you could start off with making an interface to tidyhtml, as suggested in the Perl Web browser thread. Making an XS interface requires new skills, is a nice thing to do (my own experience) and the results would be generally useful. Moreover, it is a project that won't turn into a decade of work.

    Have fun,

    "We are not alone"(FZ)

Re: Project Recommendations and Recollections
by Caillte (Friar) on Oct 23, 2001 at 14:44 UTC

    I came to perl programming after programming for a few years (7-8) in c. My hobby then - and now, though to a lesser extent - was online gaming, particularly MUDs. Amongst the things I had done was work as a coder on a couple of existing projects, including one that is now becoming a 'standard' MUD type before going off to write one from the ground up on my own. 150 thousand lines of c code later, coupled with the lack of planning that usually goes with such projects I was struggling with a number of problems, particularly rogue pointers ;)

    At about this time I got a job as a web programmer and started writing CGI scripts in perl. On a whim I tried rewriting my MUD in perl, jsut to see how far I could get. While I never finished the code, I managed to get an average of 90% reduction in code written, thanks to modules like IO::Socket and the like and ended up with a program that would confortably let 150 or so people connect and talk without any problems. This required about 5_000 lines of code. I was so impressed that I rarely write anything in c these daya ;)

    $japh->{'Caillte'} = $me;

Re: Project Recommendations and Recollections
by George_Sherston (Vicar) on Oct 23, 2001 at 12:40 UTC
    It's a predominantly graphics-oriented wheeze, so I'm not sure if it's a perl project, but I'd love to see this put into action.

    And of course if you're a really public-spiritied genius there's always this

    George Sherston
Re: Project Recommendations and Recollections
by FoxtrotUniform (Prior) on Oct 23, 2001 at 20:19 UTC

    Two projects that I have on back burner right now (too busy with work) are a fractal/coherent noise Perl module that I occasionally rant about on PM, and an L-system based random building modeller. Thanks for reminding me.

    The first Perl project that comes to mind as concise and satisfying is a little script I put together to play around with influence maps (poke around on for more info on these). I had it working inside twenty minutes, and it was cool to see my assumptions being shown right. A few weeks later I came back to it and added more knobs and switches, and spent more time playing around with it. Maybe one of these days I'll use it to write a basic GEV player.


Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://120685]
Approved by root
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2022-06-30 05:08 GMT
Find Nodes?
    Voting Booth?
    My most frequent journeys are powered by:

    Results (97 votes). Check out past polls.