http://qs321.pair.com?node_id=184523

Sitting here at my desk in abject boredom, lingering somewhere in the black void of inactivity between "the last project" and "the next project", I am left with a sizeable chunk of time at my disposal; waiting for meetings upon schedules upon meetings to line up so that work may trickle down to my desk. To most, this would be an ideal time for a few 8-hour coffee breaks.

I however, seek something else. Inspiration. The longer I sit in this chair without coding something meaningful, the harder the coushion becomes, and the longer the day wrangles on.

My mind is drawing an absolute blank. I have learned a few new tricks from PM as of late, and thanks to map, perl is getting a lot more interesting as of late. However, I can't put any of this to use because I can't think of a single thing to code.

Where do you guys go, or what do you do, when you just cannot come up with a new project that sparks your interest enough to work on during downtimes? Are there any websites, any forums, any books... any ANYTHING (rituals possibly included) you do to get the mind-butter churning when you can't think of anything to do?

"Falling in love with map, one block at a time." - simeon2000

Replies are listed 'Best First'.
Re: Inspiration comes to the inspirable?
by dws (Chancellor) on Jul 23, 2002 at 18:50 UTC
    My mind is drawing an absolute blank. ... I can't think of a single thing to code.

    Maybe your subconscious is trying to tell you that now is not a good time to code. We all need occassional downtime. It sounds like you're thinking about filling your downtime with uptime. Resist. Instead, consider spending some time adding to your bag of tricks. Dig through PerlMonks -- there's a lot of really good stuff buried in the archives. Read an advanced Perl book. Or mine for ideas from further afield. Inspiration will return in its own due time.

Re: Inspiration comes to the inspirable?
by dragonchild (Archbishop) on Jul 23, 2002 at 18:28 UTC
    Personally, I take those 8 hour coffee breaks. :-)

    I often have a few projects brewing in my brain, like my Go program or learning how to effectively use Quantum::Superpositions.

    I know that my next downtime, however, will be used in refactoring this pile my partner and I had to put out to meet the deadlines. (Mmmm... more frustration!)

    ------
    We are the carpenters and bricklayers of the Information Age.

    Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

      We get only 2 10 minute coffee brakes at my place of work here ;/.

      I normally spend the time reading Perlmonks in search of my next inspiration. From time to time I come across an interesting discussion, question, or other post and it triggers my imagination.

      Also, I've noticed that most of my inspiration comes from projects being assigned to me at work. More often then not, they'll be my major motive to really dig into various hidden places of the Perl programming language and other technologies.

      _____________________
      # Under Construction
Re: Inspiration comes to the inspirable?
by hsmyers (Canon) on Jul 23, 2002 at 20:09 UTC

    If in fact you are not in burn-out mode™ (and should therefore not be doing anything) there are some things you can think about that might get you started:

    • What was the last thing you did with a computer that annoyed you? Fix it!
    • What was the last thing someone else did with a computer that annoyed them (or your)? Fix it!
    • Are there two (or more) disparate pieces of software that do not play well together? Write glue!
    • There can never be too many small languages. Write another one!
    • Learn Parrot. Note: if you do this on a Win2k box, let me know, configure dies on me...
    • Dust off your copy of Knuth. Pick a starred exercise and solve it in Perl.
    In pseudo-code, you might think of this as:

    while(problems exist) solve;

    Now I suppose it is possible that you exist in a problem-free space. If that's the case then you don't need more code, you need more meditation!

    --hsm

    "Never try to teach a pig to sing...it wastes your time and it annoys the pig."

      I want to expand on:

      while (problems exist) solve;

      The word I want to focus on is "problems". I think programmers in general have a bad habit of limiting the scope of the word "problem" to mean "problems in computing" when in fact, this world is filled with problems -- real problems that can negatively affect the lives of the people around you.

      Seriously, with all that's wrong with the world these days, there are many, Many, MANY opportunities to take action and make a positive difference in someone's life. Even if you can't see the opportunties, I urge you to keep looking. But here's a hint: don't look with your eyes -- look with your heart.

      A Meditation From The Monastery

      Peace and Blessings

      hsmyers says:

      Now I suppose it is possible that you exist in a problem-free space.

      If you do, could you draw a map for all us others who don't?

      --cs

      There are nights when the wolves are silent and only the moon howls. - George Carlin

Re: Inspiration comes to the inspirable?
by FoxtrotUniform (Prior) on Jul 23, 2002 at 18:29 UTC

    I have a massive (seems like countably infinite) backlog of books that I haven't gotten around to reading, so in moments of mind-death I can pick through the mountain, find an interesting book, and start reading. Many of those books are technical in some sense, so it's not too far-fetched to expect that I'll find an interesting problem somewhere in whatever tome I pick up, which leads to coding.

    I highly recommend trolling through used and remainder/overstock book stores. You can usually find some good books for very low prices (around here, they seem to be mostly Dover math books for around CDN $5).

    --
    The hell with paco, vote for Erudil!
    :wq

Re: Inspiration comes to the inspirable?
by Aristotle (Chancellor) on Jul 23, 2002 at 18:52 UTC

    How about trying to think of an itch to scratch? There has bound to be some task you always wished to have a tool or module for; something that you sorely miss during your daily work routine, or which would just be handy to have. I can always think of four or five of these, and while they're usually not very complicated to implement, doing so properly with a solid generic interface (whether commandline or API) typically takes a bit of effort. Using downtime to write one of these sounds like a good investment.

    Maybe, if that's your inclination, you can even donate it to the world as free opensource software; if you choose to do so however, be sure to check your contract with your employer. It may restrict the rights you have on software written at work or even in your spare time (flashbacks from the tilly incident.. sigh).

    Makeshifts last the longest.

Re: Inspiration comes to the inspirable?
by ichimunki (Priest) on Jul 23, 2002 at 19:16 UTC
    Have you read Code Complete, Mastering Algorithms with Perl, the Perl Cookbook, or Pragmatic Programmer yet? If you don't know *what* to program, maybe now is a good time to simply do something thinking *about* programming.
Re: Inspiration comes to the inspirable?
by mstone (Deacon) on Jul 23, 2002 at 23:51 UTC

    Go back and reread some of your old code.

    Look for places where the code is annoyingly intricate, and ask yourself, "what does this code do?" I don't mean "what are the steps of this process?" I mean "what is this code responsible for?" or "what problem does this code actually solve?" Code often becomes complicated because you're trying to solve the wrong problem.

    Case in point, though this comes from the world of engineering: when the US space program first started, the astronauts had problems writing reports in space, because the standard ball-point pen relies on gravity to push the ink into contact with the ball. So the engineers of the space program invented a pen with a pressurized ink cartridge. Then they had to find ways to keep the ink from squirting out when it wasn't supposed to. In the end, they had a device that relied on an intricate and elegant balance of mechanics and chemistry.

    The Russians, OTOH, just used a pencil.

    The US engineers did a great deal of work to solve the problem "how do we make a pen operate in zero-G?" The Russians spent two seconds finding an alternate solution to "how do we make marks on paper?"

    Inspiration is the art of finding the right problem to solve. To do that, you have to look at your solutions and decide what problems they actually solve.

Re: Inspiration comes to the inspirable?
by seattlejohn (Deacon) on Jul 24, 2002 at 01:55 UTC
    Lots of good suggestions here, and I can't help but add a few of my favorites, in no particular order:
    • Go on a (preferably strenuous) hike. Somehow, the physicality of that, combined with the literal change of scenery, really seems to break my mind out of whatever rut it might be in.
    • Use the time for introspection rather than coding. By that I mean things like: What did I learn from my last project? How could I have done it better? Are there tools I could learn or build that would make my life easier in the future? How can I lay the groundwork to make me more effective on my next project?
    • Stop by a big bookstore and browse through some of the non-computery sections: architecture, history, biology, etc. Pull out an interesting-looking book or two, grab a cappucino from the cafe, and curl up on one of those comfy chairs for a couple of hours of skimming and contemplation about something outside my usual frame of reference.
    • Visit CPAN. Look over a couple of modules that I've never had occasion to use before. Read the documentation, read the code, build something (even something trivial) using those modules.
    • Talk to coworkers (including nonprogrammers!). Find out what they really do. Learn what makes them tick. Learn more about the business your company is really in and who your customers are.
    • Visit some sites that talk about programming languages I don't use every day. Learn a few things about Lisp, Prolog, Smalltalk, whatever. Maybe try doing something I've done in Perl in one of those languages to see how the thought process and implementation differs.

    I also keep a running list of little projects and tools that aren't important enough to do right away, but that I'd like to write someday. Then if I'm got some time on my hands and I'm raring to code, I've always got a few things to choose from.

    But at the same time, I'd urge you to look at downtime not just as a chance to actually do something new, but as a chance to improve your ability to do things in the future -- by learning new tools, interacting with new people, and thinking about new topics. Even if none of them have any direct relationship to what you're working on now or in the immediate future, I think you'll see benefits in the long run.

Re: Inspiration comes to the inspirable?
by cowens (Beadle) on Jul 23, 2002 at 20:04 UTC
    In addition to the fine suggestions already made (do nothing, read docs, read books, etc), try reinventing the wheel. There is no great need to reinvent the wheel, but occasionally you will do it better and you almost always learn something new.
    For example: I am currently rewriting the popd, pushd, and dirs builtin shell commands as a Perl module. No particular reason except that someone on beginners@perl.org asked if such a thing existed. I didn't feel like doing my work load today, so I am taking his/her query as a challenge. I don't particularly care if such a thing exists on CPAN or not; functionality is not the goal: coding is. I have set the following requirements for myself:
    1. it must conform to the original syntax as closely as possible (-n can be '-n' but that is it)
    2. it must be %100 Perl
    3. I must avoid modules
    4. it must be thoroughly documented with POD
    5. I must be able to upload it to CPAN if after I am done I don't find anything that already does this
    So far I am having a ball.
Re: Inspiration comes to the inspirable?
by aersoy (Scribe) on Jul 23, 2002 at 18:36 UTC

    Hello,

    You might also want to check this and this node to see other valuable answers.

    --
    Alper Ersoy

Re: Inspiration comes to the inspirable?
by redsquirrel (Hermit) on Jul 23, 2002 at 19:00 UTC
    Other than Perl Monks, another place I like to wander around in is here.

    --Dave

Re: Inspiration comes to the inspirable?
by rinceWind (Monsignor) on Jul 24, 2002 at 13:01 UTC
    Besides the advice I gave a few months ago, here, I would also suggest the following:

    Review your existing codebase. How many modules are used? How many CPAN modules are in use? What scope is there for improvement and coding standards?

    As suggested by seattlejohn, have a GOOD look around CPAN. Find some modules which are work related, or find some modules which tickle your curiousity. Then download them and have a play. I guess your employer can't have that bad a policy about downloading open source code, if you are using Perl.

    My $0.02 -- rW

Re: Inspiration comes to the inspirable?
by kodo (Hermit) on Jul 24, 2002 at 07:07 UTC
    Hi Simeon!
    I personally use that time to write little things that aren't needed but would be usefull like my ftp remote-editing script. I also spend time then to read/browse things like Perl Paraphernalia, YAPC talks, WT Columns by Randal/merlyn or The Conway Channel: Diary for example.
    Of course there's lots of stuff to read/learn here at perlmonks, too.

    Besides of that I also love it to simply do "nothing". Refresh your brain, relax, concentrate on your breath and think about non-thinking. I think it's very important to have those timeouts during the day to get new inspiration etc. It will get a true source of new ideas one you get used to it.

    giant
Re: Inspiration comes to the inspirable?
by andye (Curate) on Jul 24, 2002 at 10:48 UTC
    simeon2000, you have been struck down with ennui. You need a holiday, a change of scene. Forget about the desk for a while. Go home early.

    Go to the park, smell the flowers. Go to an art gallery, or the theatre. Read a book on an entirely new topic - learn a new language (a human language, or a computer one if you must).

    Do some sport - you'll be suprised how much better you can think when extra blood's pumped to your brain. Go sailing, sailing's fun.

    simeon2000, my prescription is a long lunch with a friend and a bottle of Merlot. Inspiration has to take you by suprise, and that won't happen if you're waiting for it.

    andye :)

Re: Inspiration comes to the inspirable?
by Popcorn Dave (Abbot) on Jul 24, 2002 at 15:52 UTC
    I ran in to a similar problem after I took some Perl classes. Well, actually I ran in to that problem for my final projects for those classes. : )

    My teacher's suggestion was to do something that YOU wanted to do - that was of interest to you. This caused me to write a program that culled headlines off newspapers in Scotland. Completely useless to most people I know but it REALLY gave me a good education in regular expressions and parsing web pages by hand ( and yes I know that there are modules to do that, but that wasn't the point ).

    Originally I was looking at about 25 newspapers, mostly small town ones, but it was at least fun. Now I'm currently in a rewrite encompassing about 92 papers.

    The other thing I did was to write an image map program in Perl/Tk. That was interesting, but a pain for a while -- just ask my wife.

    My point is, find something somebody's either done that you like, or do something YOU like in Perl. Something for yourself, not for the office.

    I honestly think what you may be experiencing is a mild post code depression ( well that may be a bit strong, but I don't know how else you'd put it ). There's a certain euphoria that you get when you finish a project, but after a few days that glow tends to wear off and you're looking for the next "fix".

    Go and do something fun. That's my 2 cents.

    Some people fall from grace. I prefer a running start...

Re: Inspiration comes to the inspirable?
by oakbox (Chaplain) on Jul 24, 2002 at 15:37 UTC
    I spend it hacking on my web site and trying to come up with new toys. I wrote a web mailer script 2 years ago and there is always ONE MORE FEATURE that I would like to stick into it. Then I try to make my updates cleaner so that I can distribute the code.
    When all else fails, I look to Slashdot.org for interesting articles and once that is exhausted, flip to Sourceforge to see if there is anything interesting to contribute to. Just trying to FIND something in Sourceforge's huge selection can suck up a couple of hours all by itself.

    oakbox

Re: Inspiration comes to the inspirable?
by PhiRatE (Monk) on Jul 24, 2002 at 22:15 UTC
    Wow. You guys are all so motivated. One person was even talking about a hike...

    When I have nothing to code, I sleep :)

      What's sleep? ;)

Re: Inspiration comes to the inspirable?
by gmpassos (Priest) on Jul 25, 2002 at 03:34 UTC
    Man, when you can't think about codes, or see the screen, take a breaks, always! Don't wait your mind be in pain!

    You have to know that our product is not codes, web sites, dev tools, etc... Is creativity!

    This is the reason that I always sing my nodes with this:
    "The creativity is the expression of the liberty".
    Because our mind only works when she wants. And the big problem is that we can't control our moments of inspiration, our moments to discover the fire!

    And thinking about this is why I live near the beach. The best breack is open the door and run to the cea! Because here 1h of work is the same of 10h in the center of the city.

    Graciliano M. P.
    "The creativity is the expression of the liberty".
Re: Inspiration comes to the inspirable?
by atcroft (Abbot) on Jul 25, 2002 at 07:46 UTC

    To add what little I can to this, I recently found myself in this position myself. My job and my hobbies (unfortunately) correspond (too) closely, and while I had projects for work, I no longer felt the same drive. Get it done, out the door, and out of my hair, and good riddance-and don't ask me to do it whatever way was easiest for me, because for a while, I stopped caring. In some cases, I even started to feel discouraged, such as when I looked at my postings here and saw how poorly they seemed to compare to other postings, or tried to read the code of others.

    I still consider myself as recovering, but what triggered the start of this process was getting a chance to see a guest speaker at the June meeting of the perl group closest to my location. To be honest, I found the talk fascinating, and the speaker's enthusiasm for perl infectious.

    I guess other than that, I have tried to walk away from the computer once in a while, tried a module or two just to see what they did or to see if they might help with something I might need to do, and have started going out from time to time just to do something different (in my case, to try to learn to play pool, among other things).

    I hope your recovery is successful, and I look forward to the comments and suggestions of others, as I assume it to be a common, if personal, affliction.

Re: Inspiration comes to the inspirable?
by Steve_p (Priest) on Jul 29, 2002 at 17:46 UTC

    What I do in a situation where I can't find something new to write, I write something old. Being a consultant, I have a boatload of old shell scripts I regularly have used, so I have been slowly writting Perl version.

    I also used to have the strange habit of finding things to work on while I bombarded with work, but couldn't think of anything to do when I didn't have work. After the last time this happened, I started to keep a list of projects, scripts, books, articles, or other things I really needed to look into in more detail. This has provided me with a never ending list of things to do. It does get a little intimidating when going over the list, but after keeping continually busy for a long time, I've been very happy with the results.

Re: Inspiration comes to the inspirable?
by danichka (Hermit) on Jul 25, 2002 at 08:05 UTC
    I see others have already mentioned Sourceforge and CPAN, but I would also take a look at the Perl Apprenticeship Site. It's rather new so there is not too much there, but working on something listed there might be what you are looking for.

    use Your::Head;
Re: Inspiration comes to the inspirable?
by Anonymous Monk on Jul 25, 2002 at 14:46 UTC
    How about reviewing other people's code and improving it? Dive into CPAN, there's a thousand modules that could be improved dramatically.