Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Project ideas

by Trag (Monk)
on Mar 17, 2004 at 16:27 UTC ( [id://337389]=perlquestion: print w/replies, xml ) Need Help??

Trag has asked for the wisdom of the Perl Monks concerning the following question:

I'm not sure if this is the right place to post this request, but I need a project to work on with Perl in order to keep up my interest in it.
I've already looked for Sourceforge projects, and asked in the chatterbox a couple of times about this, but I still haven't found anything that really interests me. I can't do work on CGI, as my ISP doesn't allow you to run webservers, which limits my options somewhat. I don't really know what I'm looking for (maybe something that interacts with hardware) so any suggestions would be good.



Replies are listed 'Best First'.
Re: Project ideas
by pboin (Deacon) on Mar 17, 2004 at 16:41 UTC

    Even though your ISP doesn't allow you to run a public webserver, there's no reason not to run one locally!

    It's fun to do, the software can be had for free (the best price), and the response time is as good as it gets.

    Like I said: Running a local webserver is real easy, and there's no better way to learn... You can do CGI to your hearts content.

Re: Project ideas
by dragonchild (Archbishop) on Mar 17, 2004 at 18:08 UTC
    I know I can use help with PDF::Template, Excel::Template, and Graph::Template.
    • Graph::Template simply needs to have hooks for all the features GD::Graph allows.
    • Excel::Template has two major pushes
      1. finishing out the formatting options
      2. allowing back-references that are auto-resolved in formulas.
    • PDF::Template has two major pushes
      1. adding in iterative formatting (ala Excel::Template)
      2. removing the need for the most common context calls.
      Plus, I'd love to remove the requirement of using PDFLib and allow you use use PDF::API2 as well.

    The main sticking point in E::T and P::T is the design of the template layout. It's not that I don't know how to add the capabilities, it's that I can't figure out how to get the capabilities to be easily used by the template writer.

    In addition, there are a ton of commonalities with how I've built the three distributions (PDF::Template was the base for the other two), so I'd like to pull that out into a common distribution that all three depend on. (I just had to fix the same bug in all three cause it was in some shared code, then I had to fix the bug I introduced in all three.)

    Plus, the documentation and testing needs a lot of work to bring it up to some set of usefulness.

    In other words, I'd love some help. And, even though the distributions were originally designed to be used with HTML::Template, they're not CGI-specific distributions.

    We are the carpenters and bricklayers of the Information Age.

    Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.

Re: Project ideas
by sulfericacid (Deacon) on Mar 17, 2004 at 16:37 UTC
    I only use CGI, I really don't like programming for the command line. But here are a few projects that I find interesting.

  • HTML parsers/code analyzers
  • Image manipulations with ImageMagick (very fun!)
  • System analyzers (calculate RAM, CPU information, OS information, etc)
  • Create an FTP client in Perl..not sure WHY, but it would be something I'd personally be impressed with!
  • Games are always fun-- Guess a numbers, Hangman, Tic Tac Toe with AI!

    "Age is nothing more than an inaccurate number bestowed upon us at birth as just another means for others to judge and classify us"

Re: Project ideas
by blue_cowdawg (Monsignor) on Mar 17, 2004 at 17:29 UTC

        but I need a project to work on with Perl in order to keep up my interest in it

    Just look around Trag. There are opportunities everywhere! Think of a problem that needs a solution and write some code to solve it. Grab e broken module from CPAN and fix it. (Make sure you let the author know you fixed it)

    If you download something from Source Forge most projects have a TODO file in them with a list of things that need doing. Jump in.

        I can't do work on CGI, as my ISP doesn't allow you to run webservers, which limits my options somewhat.

    Nowadays I wouldn't accept an answer like that from an ISP. I'd take my business elsewhere. Vote with your wallet and find a new provider. (just my opinion and advise of course) There are plenty of ISPs that are inexpensive, allow CGI and some even provide MySQL or other database access. If your current provider isn't answering your needs (and it sounds like your current one is not) then I'd move on.

    Specific project?

    You really want a project? Here's one that will require some research on your part: a recipe database program that calculates dietary information based on the ingredients. That would be a good candidate for a project to put up on Source Forge and if you don't do it I am likely to in the future...

    Peter L. Berghold -- Unix Professional
    Peter at Berghold dot Net
       Dog trainer, dog agility exhibitor, brewer of fine Belgian style ales. Happiness is a warm, tired, contented dog curled up at your side and a good Belgian ale in your chalice.
Re: Project ideas
by Limbic~Region (Chancellor) on Mar 17, 2004 at 16:41 UTC
    While discussing this in the CB with arden, he mentioned getting a book. I thought, that's a great idea. The Perl Cookbook is filled with solutions to the most common problems. Perhaps you will find your problem by looking at the answers.

    Cheers - L~R

Re: Project ideas
by pzbagel (Chaplain) on Mar 17, 2004 at 16:49 UTC

    I have learned the most by attempting to apply Perl to various tasks I perform at work. I've had the chance to use Perl for data-munging, reporting, web-scraping, XML generation, job-scheduling and many other things. I've learned the use modules like YAML, XML::Simple, Spreadsheet::WriteExcel, HTML::TokeParser, Net::SSH::Perl, GD::Graph, PDF::API2, and many others just by solving problems that I had at work. My scripts are not extraordinary, but they get the job done and that is what counts.

    So if you are looking to expand your Perl knowledge, start small and look for problems to solve in your immediate sphere or responsiblity. Not only can you make your job easier but your boss will recognize your initiative and ingenuity.


Re: Project ideas
by flyingmoose (Priest) on Mar 17, 2004 at 18:36 UTC
    I always find games fun problems because they allow the use of various complex programming idioms all together. AI, efficiency, GUI design, OO design, etc, etc, etc. Obviously some are more complex than others. Seeing the Linux community doesn't have one, I have half a mind to build a Perl/Tk SimCity clone (and of rather high quality) right now... I like hard problems. You might also have luck with OpenGL, SDL, or something like that (esp if you run Linux). Perl isn't just for boring cmdline stuff and CGI!

    When I am new to languages, I typically write Conway's game of life as a first program, mainly because it offers similar challenges of (how do I manipulate these efficiently? how do I do graphics? etc). Chess is another good big project. Ok, so everyone reinvents the Chess wheel every now and again, but doing something from the ground up (often without the help of domain-specific modules -- if you want to learn) is a great way to keep interest.

    Other good ideas might include web spiders that comb your favorite message board, or something to play with algorithmic musical composition (see MIDI::Simple), Neural Nets, or anything that is off on the edge and is unlike anything you'd have to do for work and/or school.

    Shake things up. Live dangerously. Don't stop short and pick easy problems. Pick something impossible -- and achieve it. I'm still begging for hero status myself, yeah, it's hard to find time to play after work, but there are an infinite supply of projects as long as your imagination is there. This is why I like games more than business/useful stuff -- imagination is fun.

      Algorithmic music composition sounds pretty neat, but I don't know where to start. Do you have any suggestions?
Re: Project ideas
by bl0rf (Pilgrim) on Mar 17, 2004 at 18:22 UTC
    Trag a lot of times programmers just have no new ideas - the first time this happened to me I was concerned - but when you live a bit without programming you come back with twice the zeal.
    The best projects are the practical ones, what do you need fixed? Decide and then come up with a solution/improvement. I totally agree with the other monks about running a local webserver; it's very easy and administering Apache was one of the most pleasurable computing experiences for me...

    My main advice is: go onto the net and get exposed to as many concepts and ideas as you can, when you know about a variety of computing fields you can either work on one of them or combine two to create something brand new.
    To get your spirits up with Perl download a file containing a lot of English words ( a "Dictionary file" ) and write some small scripts to do statistics on the words etc. quick and fun.

Re: Project ideas
by simonm (Vicar) on Mar 18, 2004 at 00:16 UTC
    Consider contributing to the Perl QA / CPAN Kwalitee efforts.

    The Phalanx effort is a good example. Following their suggestions, pick a module from the list of 100 target CPAN modules, study it, and look for ways to improve its documentation or tests.

    Many modules don't have sufficient testing, and so you can just review the documentation, and write new tests that confirm that the module does what the documentation says it will. Writing tests can serve as a good exercise to ensure you've understood the piece of code you're working on.

    Plus, you'll be working on a genuinely helpful community effort.

Re: Project ideas
by b10m (Vicar) on Mar 17, 2004 at 16:40 UTC

    Well, you could always look into some FTP Proxy. I'd like to see a FTP client that speaks b0rked evox FTP better than a proxy though, but a proxy might be more challenging ;)


    All code is usually tested, but rarely trusted.
Re: Project ideas
by Popcorn Dave (Abbot) on Mar 17, 2004 at 19:12 UTC
    My suggestion is to take something you use now that's not a perl program and see if you can do better. Or fix what you think is missing. And yes I know Perl isn't always the best language for everything, but I think you're expanding your horizions and honing your skills by doing that. YMMV.

    One I'm working on right now is a Stock ticker using Perl/Tk and eventually I want to use the Win32::GUI. I'm not particularly strong in Tk, so I figured it was a good opportunity to play with it, and I've never used the Win32::GUI, so even better.

    The reason I'm doing this is that I used to use a freeware program that did the same thing, but for some reason it doesn't work anymore, and the author's web page is down. So after looking at a few freeware solutions, I rolled up my sleeves and decided to do it myself.

    Currently I've got it refreshing cleanly, so now it's off to a more elegant interface and a few pop up windows for looking up symbol names and adding/deleting stocks.

    With any luck, it's going to be in CUFP in a week or so. :)

    There is no emoticon for what I'm feeling now.

Re: Project ideas
by amrangaye (Friar) on Mar 17, 2004 at 16:43 UTC
    Hi Trag, Lately, I find I've been facing the same problem. Having worked through the llama book, as well as Beginning Perl, I'm looking for some way to apply my perl knowledge. Perhaps there are monks in the monastery who can give us a shove in the right direction. In the meantime, I'm watching this node.
Re: Project ideas
by Zero_Flop (Pilgrim) on Mar 18, 2004 at 03:35 UTC
    Do you have a web site the does not support CGI. Well me too. One thing I always wanted was a script that would localy produce web pages ( photo galleries, blogs etc) and then FTP the site up to my web site.

    Actually I ran across CityDesk which looked great until I looked at the price.. I would think that with http::daemon, net::FTPa little javascript and perl a free version could be made.

    http::daemon - Gui interface and preview features.
    net::FTP - posting to the real web site.
    JavaScript - dynamic features of the Gui, ex file/directory tree
    Perl - paste everything together, apply templates etc.
Re: Project ideas
by eric256 (Parson) on Mar 17, 2004 at 16:44 UTC
    How about converting project gutenburgs king james bible into XML. :-) Fun, exciting, XML practice, file practice, multiline records!

    Eric Hodges
Re: Project ideas
by diskcrash (Hermit) on Mar 18, 2004 at 06:15 UTC

    The world could use much more connectivity between Perl and a wide range of USB devices. In some cases drivers exist, but there is not easy access to them from Perl. This is somewhat OS dependent so don't expect high portability. A TK based tool for scraping data from an interesting web site, with frequent updates might be fun. (weather, stocks, news, Mars Rover updates...)


    A reply falls below the community's threshold of quality. You may see it by logging in.
Re: Project ideas
by zentara (Archbishop) on Mar 18, 2004 at 16:21 UTC
    Just listen to your own wants and desires. What have you thought recently along the lines of "man I wish I had something to do that programatically?". Then ask yourself how could you do it in Perl? Someone in a recent node just asked for a way to search text and display them in a Tk text box with the "search words" colorized. Thats a cool project, which alot of people would find useful. Maybe you could even make a module of it.

    It can be hard to get these ideas, because we often "subconciously" dismiss them as IMPOSSIBLE. But there is nothing impossible with Perl...(given enough time and energy :-) )

    OOOOH OOOH, I just had another good one. How about a GUI to display your position on a map based on GPS data?

    I'm not really a human, but I play one on earth. flash japh
      OOOOH OOOH, I just had another good one. How about a GUI to display your position on a map based on GPS data?
      Do you need such a program? I can provide something which runs with a Garmin eTrex and iPAQ 3650 under Linux and Perl/Tk...
        No, I don't need it, but it would be cool. :-) I wonder if those failed Robotic vehicle racers last week were using Perl. They could use it. :-)

        I'm not really a human, but I play one on earth. flash japh
        That would be cool, but I'd need a GPS unit first (and I would have to switch to linux). Thanks anyways though

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://337389]
Approved by Limbic~Region
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (4)
As of 2024-04-15 00:06 GMT
Find Nodes?
    Voting Booth?

    No recent polls found