Vigor: Putting new limits on productivity

Vigor

Current Version: 0.016

Vigor (pronouced like "Igor", Dr. Frankenstein's assistant), the popular Unix editor vi with the addition of the Vigor Assistant, has arrived.

Recent News

Vigor Training Program Initiated

After seeing the success of similar industry efforts, we at Piquan Software, the developers of Vigor, have initiated a certification and training program to give industry professionals the skills needed to use Vigor most efficiently.

The various levels of training available are as follows:
Certification Level Prerequisites Skills Price
Vigor Evildoer Specialist (VES) - About 90 percent of the Unix industry uses Vigor, or its inferior precursors, so chances are very good that you are one of the many people using Vigor to get your work done. Now you can prove it, and give yourself and your organization a competitive edge. $2000.00 US
Vigor Certified Evildoer (VCE) - The VCE program allows you to demonstrate to your victims that you have the specialized knowledge required to perpetrate evil with particular Vigor features. $2000.00 US
Vigor Certified Evildoer + Internet (VCE + Internet) VCE The VCE + Internet program gives you the skills needed to successfully use and support specific features of Vigor in today's Internet-demanding world. Information on composing spam emails, fly-by-night .com web pages, and other critical Internet tasks for the modern evil dispensation professional, using the Vigor platform, are covered. $3000.00 US
Vigor Certified Evil Scheme Engineer (VCESE) Six VCE certifications obtained within the last one (1) week For evildoing professionals, Piquan Solutions offers the VCESE credential. VCESEs are qualified to plan, implement, maintain, and support plots to take over the world, mind-control schemes, destruction of enemies, and other evil schemes, using the Vigor environment. Study materials will center around "Things To Never Do As An Evil Overloard". Graduates will have access to beta versions of Vigor in a schedule as approved by Piquan Solutions. $5000.00 US
Vigor Certified Trainer (VCT) VCESE VCT's play an important role in Piquan Industries' re-education process. VCTs are qualified instructionally and certified technically personally by Piquan to deliver training to evildoers everywhere. Study materials center around Anthony Burgess and Stanley Kubrick's A Clockwork Orange. $9000.00 US

All certifications include a certificate suitable for framing, an official and individual certification number (while supplies last), and a Vigor Evildoer button to wear at conferences, to let everybody know that you are a certified Vigor Evildoer. VCESEs also receive a secret decoder nose ring.

Since Piquan Enterprises is constantly updating our curriculum and programs based on industry input, all training and certification is on an as-available basis, and is subject to change, cancellation, or expiration without notice. Piquan is not responsible for the conduct of certified Evildoers. Thanks to Garrett Moffitt for the idea.

Vigor Goes Mainstream!

The first mainstream-mag review of Vigor has been released! That's right, Salon, a general-interest magazine, has run a short blurb on Vigor and the chilling implications it could have on the free software movement. Or something.

Vigor Revived

It's been a month and a half since the last release of Vigor. One would think that I'd be willing to leave well enough alone. Well, I'm not. I got a bit of free time, and the LinuxCare review sparked some interest, so I am now getting ideas for future improvements.

As always, bug fixes are my highest priority, but some new features would be nice too. Some of the things I'd like to see in future versions are:

  • Improved graphics. I use XBMs in Vigor because it was the quickest drawing method to implement, and I wanted to get the first release out during the Vigor storyline on User Friendly. Now that I've got some time, I'd like to improve the graphics handler and the artwork.
  • More hooks! More confirmations, more annoying helpful hints (like the ones given when you start insert mode), more random popups, more!
  • More animations! At present, there are precisely two animations (count em!) in Vigor. This is not nearly insideous enough. Naturally, with animations, you lead into...
  • Sound effects (via Network Audio System). This naturally suggests...
  • Speech (via Festival). This isn't that hard to do using Festival's server mode. (Thanks to my coworkers at HP for the idea, the deranged loonies!)
  • Microsoft Windows support. Judging by the feedback I get, people who aren't Unix devotees just don't get the point of Vigor, but strangely enough I've gotten multiple requests to port Vigor to Windows. Well, I suppose I may as well... Kinda one of those "full circle" things.

    This by no means is an exhaustive list. If people send me patches, then I'll add just about anything. These are just some of the things that I might do over the next few weeks, months, whatever.

    About Vigor

    Based on the User Friendly comic strip storyline from 4 January to 14 January, Vigor brings all the features of traditional Unix vi, plus the friendly and helpful Vigor Assistant. (If you aren't familiar with User Friendly the Comic Strip, quit bothering with Vigor and go out and look there first. It's well worth the trip! Don't worry, we'll wait.)

    Enter the world of Vigor! Come, join us, watch the paperclip, don't be afraid... *cough* Sorry, where was I?

    Vigor is based on the open-source nvi program, for which I apologize to the nvi authors. The Vigor assistant was bolted on using the Tcl facility that nvi had, and a bit of my own C code to cope with Tk.

    I'm improving(?) Vigor based on suggestions from the user community. Send ideas, bug reports, and patches to joelh@gnu.org, and watch this page for updates. New versions have been released at a rate ranging from several each evening to once a week, depending on user comments and free time.

    Press Coverage

    I am always suprised when somebody mentions Vigor. I really didn't expect it to spread by word-of-mouth at all, let alone people write about it. Keep telling your friends, your enemies, your coworkers, everybody, about Vigor.

    Particular thanks to Illiad for putting the original release announcement and multiple subsequent announcements in the User Friendly News, not to mention the original inspiration!

    Vigor Review and Interview

    Rado has written a review of Vigor and conducted an interview with me about Vigor. The interview also covers general topics like the free software community, Pitr, and what Sun Tzu teaches us about a certin other paperclip-using company. The full version is availible at LinuxTicker, and if you speak Croatian, look in PC Chip magazine (broj 57, veljaca 2000).

    Vigor Goes Mainstream!

    The first mainstream-mag review of Vigor has been released! That's right, Salon, a general-interest magazine, has run a short blurb on Vigor and the chilling implications it could have on the free software movement. Or something.

    Vigor App of the Week

    LinuxCare's Brett Neely wrote up a short review of Vigor for his App of the Week column.

    User Comments

  • You are a sick, sick person, and I admire that greatly. - Illiad, author of User Friendly
  • AUUUUUGGGGGHHHHHH!!!!! - Keith Bostic, author of nvi
  • I haven't laughed so hard in a long time.- Arnold Robbins, coauthor of Learning the vi Editor
  • Congratulations, Brother Piquan... how diabolically clever of you...- Eric S. Raymond
  • The entire open-source movement is, of course, a Discordian creation.- Amphigoricus the Turgid, K.S.C.
  • Why ? - Sander Nooy
  • I am laughing in an inapropropriate manner for an office building like this... - Nathanael Lierly
  • By reading this message, you have agreed to stand on your head while gargling water and proclaming "Weird Al Yankovic is Lord of the Universe!" - J.J. Ramsey
  • "I am wishink I had Unix system instead of this silly VMSstation so I too could be experiencing pain of vigo directly rather than vicariously!" - Atlant Schmidt
  • The following addresses had permanent fatal errors... - Mailer-Daemon
  • On behalf of evildoers everywhere, I thank you for your heroic efforts in bringing The Assistant to such a long-standing bastion of the opposition. You will be remembered when The Time comes. - Michael Jinks

    Author Comments

  • "I just thought I was writing a weekend hack; I had no idea what I was unleashing!" (Said after noting over 20,000 web page hits.)
  • The way I figure, after you take into account all the victims who have used it, Vigor is single-handedly responsible for immeasurable amounts of lost productivity. In this, I think I have captured the true nature of the original.
  • It's amazing how a weekend hack can take up all your free time for a month.
  • (When asked to confirm that Vigor is not a productivity app:) From its inception, Vigor has been designed to be utterly useless, not to mention a pain to use. While building the interface, I double-checked everything to ensure that I didn't accidently add a useful feature. [Note: See below for an example of how that didn't work.] People have suggested making Vigor useful; my reply is that it would then cease to be Vigor. I'm sure you can think of other examples of popular, yet useless, editors. Besides, I don't even use vi... Who am I to decide how to improve it?

    Revisions

    Vigor was rushed out in order to be released during User Friendly's Vigor storyline. It originally had several bugs, and several unimplemented features. I've been fixing bugs and adding features since the day Vigor was relelased. There are presently no outstanding Vigor bugs that I'm aware of; let me know if you find something!

    There is one remaining problem that we've only seen on two systems: Vigor, when it starts, exits with the message unknown floating-point error, errno = 84. Eivind Tagneth, who first reported this, traced it down to a bug in Tcl, and submitted a patch to the Tcl maintainers.

    Even if you're not seeing bugs, it's good to hear how much success/failure people are having on different platforms. Let me know how things work for you!

    Version 0.016 (May 2 19:36)
    Enable
    Version 0.015 (Mar 25 15:17)
    Disable by default built-in curses, db, and re libraries. Most OS's these days have proper libraries for these, and I was seeing conflicts (particularly on SuSE under Vigor 0.014). This may break things on some other OS's, probably older ones. If so, try using --enable-curses --enable-db --enable-re on the command line.
    Version 0.014 (Feb 8 14:50)
    Remove the hack to the EULA that produced the Jumping Vigor Bug.
    Version 0.013 (Feb 5 11:53)
    Fix to configure.in: it looked for Tcl on Debian systems when it was supposed to look for Tk.
    Version 0.012 (Feb 4 00:28)
    Updated EULA, made dialog box move along with assistant
    Version 0.011 (Feb 2 00:10)
    Look for libtcl8.2 etc (as opposed to libtcl82 etc); handle select() calls prior to assistant initialization
    Version 0.010 (Jan 19 23:16)
    Modified EULA, changed fractional cm screen specs to pixel counts, use libtcl82 if found, look for uint8_t etc
    Version 0.009 (Jan 18 15:11)
    Improved Tcl/Tk detection, added EULA, detect -ldl
    Version 0.008 (Jan 17 21:20)
    Added new comments, touched up comment probabilities, made sure that comments don't overlap with animations, modified configure.in to look for libtcl80.a
    Version 0.007 (Jan 17 12:25)
    Fixed make install to install vigor instead of vi
    Version 0.006 (Jan 16 12:42)
    Further touch-up of "confirm" dialog's probabilities; rename executable to vigor
    Version 0.005 (Jan 16 01:01)
    Fixed make install; write Tk error messages to stderr before vi initializes the screen
    Version 0.004 (Jan 16 00:21)
    Updated configure to match configure.in (oops!)
    Version 0.003 (Jan 15 23:45)
    Added random quotes and animations; compiled vigor.tcl into executable
    Version 0.002 (Jan 15 20:16)
    Updated graphics; touched-up "confirm" dialog
    Version 0.001 (Jan 14 01:05)
    Initial release
    Vigor assistant

    Screenshots, Graphics, and Other Goodies

    The most frequent request I've had since releasing Vigor recently is for screenshots. I've made a separate page with a few for those who don't have the time or tools to compile Vigor; enjoy!

    Tom Mulder created the Vigor logo at the top of the page, and the logo on the screenshots page as well. Thanks, Tom!

    And, if you just can't get enough paperclip action (you sick puppy you), svo (aka Viacheslav Slavinsky) has created a brief Vigor MPEG, an excellent bit of artwork. For those who can't see view MPEGs, he has also created some stills: still 1 and still 2. Yay, svo!

    Downloading Vigor

    Source tarball (0.016)

    Get the source at http://www.red-bean.com:8080/vigor-0.016.tar.gz and have fun with it! You may want to read over the section "Installing Vigor" below, though. I release by source tarball, so this is usually the most up-to-date version. It's also the only one that I can help with install problems on, since I am not generally familiar with the other formats.

    Debian (0.014)

    Colin Watson has made an unofficial package of Vigor for Debian 2.2. He's graciously providing both the diffs and a i386 binary package. (Later versions may also be available; check his dist site.)

    FreeBSD (0.014 at last check)

    There is now a Vigor port in the 4.0-current port tree. I use FreeBSD myself, but I'm not the one responsible for the port (and I don't have commit privs), so it may fall out-of-date without my knowing it. Thanks to Bill Fumerola for committing this! (And I had been told that Vigor should be committed...)

    NetBSD (0.010 at last check)

    There is also a Vigor port in the NetBSD -current package tree. The NetBSD package system has binaries for i386 (1.4.2 and 1.4S), macppc, ofppc, and powerpc (1.4.2), and of course the usual source distro. Thanks to Hubert Feyrer for submitting the package (at 0.009), and Jaromir Dolecek for updating it to 0.010!

    RedHat RPMs (0.010)

    RPMs are available in source, Redhat 6/i386 binary, Redhat 5/i386 binary, and Redhat 6/Sparc64 binary formats. Thanks to Ganesh Sittampalam for making these available!

    Windows

    I'm looking into building a Cygwin+native Tk port for Windows, but I'm not yet sure if that will happen. Watch this space for details!

    Installing Vigor

    At present, some parts of Vigor are in a somewhat primitive state, particularly as far as the build is concerned. Suggestions for how to make things build on various OS's are gratefully accepted. For the most part, compiling vigor usually goes something like this:

    gunzip vigor-0.016.tar.gz
    tar -xvf vigor-0.016.tar
    cd vigor-0.016/build
    export ADDCPPFLAGS="-I/usr/local/include/tcl8.2 -I/usr/local/include/tk8.2"
    export ADDLDFLAGS="-L/usr/local/lib"
    ./configure
    make install
    vigor
    Substitute your locations for tcl.h, tk.h, and libtcl.a on the ADDCPPFLAGS and ADDLDFLAGS lines. If you still have problems building Vigor, read the suggestions below, look in the build/README file, and if all else fails, drop me an email describing the problem.

    Vigor does not support nvi's Tk interface (and configure doesn't give you that option), and may have trouble compiling in the Perl interpreter (which is not included by default). [Update: I think that I fixed the problem with the Perl interpreter.] You will want to read build/README to get the skinny on building nvi. Vigor will always build in nvi's TCL interpreter.

    Vigor is written in C and Tcl/Tk. You must have Tcl/Tk installed to use Vigor. I'm not sure what versions work. I wrote from Ousterhout's book, so I think anything after 7.3 is fine. Most people seem to have been using Tcl/Tk 8.0 or 8.2, and things seem fine there.

    OS Notes

    You may want to look over whatever systems are similar to yours.

    LinuxPPC Redhat GNU/Linux 5

    I've heard reports of trouble building on this system. Has anybody successfully compiled Vigor on LinuxPPC Redhat GNU/Linux 5, or any other LinuxPPC platform?

    Redhat GNU/Linux 5.2

    You may need to set the environment variable ADDLIBS to "-ldl" before running configure. (I've heard a report that "-lm -ltermcap" are also needed, but the reporter now believes that to be incorrect. Adding them won't hurt anything, though.) UPDATE: As of Vigor 0.009, this should no longer be necessary; configure will look for and use -ldl on its own.

    Even so you may still get this warning:

    ex_script.o: In function `sscr_pty':
    ex_script.o(.text+0xf63): warning: revoke is not implemented and will always fail
    This warning (and many others) are completely ignorable.

    Sven Winnecke, who reported this, also notes that the program builds fine on Redhat 6.1 systems.

    HP-UX 10.20 (and probably 11.00)

    On HP-UX 10.20, using the binary installs of Tcl and Tk from the University of Utah's HP-UX software site, I had to create a symlink from /opt/tcl8.3/tk8.0 to /opt/tk8.0/lib/X11. (I may have the version numbers wrong; I'm typing this from memory.) Also, after making running configure, I had to change "-ltcl" in the Makefile to /opt/tcl8.3/lib/libtcl.a or the compile would fail. I don't yet know why.

    FreeBSD (and possibly others)

    tcl.h, tk.h, and friends must be in the cpp include path. If they are in some directory like /usr/local/include/tcl8.0, I suggest setting ADDCPPFLAGS to "-I/usr/local/include/tcl8.0" before running configure. (Note that configure does not check for tcl.h, although it does look for -ltcl.) The same goes for Tk. Again, see build/README for details, and bear in mind that I haven't edited it for Vigor's differences from nvi.

    A few OS's (notably FreeBSD) install Tcl with the version number appended to the library. On such an OS, you must make a symlink to libtcl.a or libtcl.so (with the appropriate extention for shared libraries on your OS); same goes for libtk.

    Solaris 2.5.1

    The u_int8_t problems on Solaris have been fixed as of Vigor 0.010. Thanks to John West for providing the information to fix it!

    Cygwin

    When configuring for Cygwin, create a directory /var/preserve/vi.recover and make it world-writable. (See the comments in configure.in for alternative directories.) (I haven't yet received confirmation that it works after that, though.)

    Jumping Vigor Bug

    Some users have reported that Vigor 0.013, after starting up, jumps around the screen as fast as the system can go. This is not correct behavior. I haven't yet figured out why it happens, but as of Vigor 0.014, I've disabled the code that made it happen. I would welcome ideas from Tk wizards about why this was happening! (It was related to an ugly hack at the top of vigor_eula... see the comments there.) If you see Vigor jumping more than once a second, you've probably rediscovered this bug; please let me know!

    In Case Of Trouble

    If you're having trouble building Vigor and are writing for help, please send me as much of the following as possible. If you don't have everything, write me anyway, but this information will help me figure out the problem.

    If the trouble is happening when you run configure, send me the file config.log (or at least the final bit of it).

    If the trouble is happening when you run make, send me the last several lines that make produced.

    If the trouble is when you run Vigor, send me a description of the trouble you're seeing. "It doesn't work for me" is not a bug report.

    I'm glad to help out as I can. Vigor has lots of bugs, and I'm constantly trying to find them and clean them up. Sending me complete information will help me fix Vigor sooner.

    Old News

    Vigor Useful?!?

    One user actually found Vigor to be useful! After all that time and effort I put into making a totally useless app, somebody has to go and get some benefit out of it.

    The user in question had been trying to learn Vi for some time. However, his manual neglected to mention the difference between the Insert mode and Command mode. (What kind of tutorial was he using?) His confusion was lifted when he saw the prompt from Vigor:

    You have not entered insert mode before. While you're in insert mode, remember that you need to return to command mode before entering Vigor commands!

    Before Vigor's public release, I had changed that prompt once because I deemed it "too useful" (it mentioned the Esc key by name). Apparently, I just didn't make it useless enough.

    I'll tell you, some people just don't know a bad thing when they've got it.

    Vigor Scooped?

    Yes, it's true, the open-source vi clone VIM already has its own smiling face.

    Apparently, there is an option to VIM called VimBuddy, which will display an ASCII smiley (eg, ":-)") on your status line for different status reports. The Windows version of VIM will also update the icon with a face as well!

    I still won't say what my motives for writing Vigor were, but I think you can be sure they weren't the same as the ones that prompted the creation of VimBuddy.

    (Note to the interested: I don't have any other information about VimBuddy; you may want to do a search on egroups. That shows up a few discussions, some code, and the author's name.)

    Acknowledgments

    Vigor would never have been had it not been for these people's efforts.

    (Note: If I put your name on this page, I probably didn't include the email addresses, because I don't want spammers to pick it up. If you don't mind, let me know and I'll add your email address.)

    Release Announcement

    FOR IMMEDIATE RELEASE
    Mountain View, CA. In a recent fit of madness, hacker Joel Ray "Piquan" Holveck has released Vigor, a version of the popular Unix editor vi featuring the Vigor Assistant. Holveck declined to comment on his true motives for creating the program, although it has been confirmed that he was inspired by Pitr of User Friendly the Comic Strip. A supporter of the Free Software Foundation, Holveck denies rumors that he created the program as part of a plot to encourage the use of Emacs based on Greg's 10 Jan comment. Vigor is currently available online at http://www.red-bean.com/~joelh/vigor/ and is expected to undergo daily improvements based on user input for the next several days.