[kw-pm] "beer money" perl/shell scripting position
Andrew Kohlsmith
akohlsmith-pm at benshaw.com
Thu Aug 19 14:57:07 CDT 2004
The contract support I've been doing for the past few years is going nicely
but I am finding myself more and more time constrained; I would like to focus
on the higher level stuff (keeping the ideas going, keeping the customers
happy) and find someone who is able to code and meet the following
requirements:
- able programmer in Perl and BASH scripting (maybe Python)
- experience with web forms and basic CGI
- maybe has some experience in XMLRPC/SOAP and DB
- does not need to be babysat
- works relatively quickly
I have a number of (very) small projects which I need done up. Certainly not
enough to be even classified as part-time work, which is why I called it
"beer money" -- just extra cash for someone with more time and skills than I
have.
Examples of the kinds of things I need done up:
- Squid user/pass web based management interface
- Much smarter SquidGuard webmin module
- Squirrelmail feature enhancements (ok this is PHP but still)
- IPTables firewall configuration/logger management interface
- Webmin modules for similar things mentioned above
The rules are simple:
- Create, augment or replace existing FOSS projects, so long as you abide by
the author's wishes regarding code reuse and contribution
- Be available via email, IRC or IM (Jabber preferred) and maybe the odd phone
call
- Resultant scripts, apps or whatever are GPL and otherwise unencumbered
- Resultant code is neat, clean and reasonably documented
Payment terms are flexible but will generally be based on task completion (or
milestones for large projects) and not hourly rate. I've been burned in the
past on straight hourly rate and won't do it again. If you know your stuff
you will have a good idea of how long a project will take based on the
requirements spelled out in the contract. Besides, as our business
relationship grows you will have a growing base of code that you will be able
to reuse and again, if you're good your perceived hourly rate will only go
up. :-)
Payment can be made via paypal, money order, mailed cheque or cash if you're
close. I'm easy.
I am going to stress that payment is upon my acceptance of the completed work.
If I'm not happy with it ("happy" meaning it satisfies the goals set out in
the project contract), I ain't paying for it. Don't give me something that
shines my shoes and cleans the cat's litter box but doesn't meet the
requirements of the contract. (Mind you, a script that shines my shoes and
cleans my cat's litter box would be very impressive!)
Example project: the Squid user/pass web-based management system.
I perceive a generic user/pass/group manager. Create from scratch or grab any
FOSS project that already has something similar and make it do the following:
- Read and write a plain text file which contains the username, cleartext
password, enable status, group membership, date created, date modified and
plain-text note field. One user per line, one group per line, very similar
to /etc/passwd and /etc/group.
- Login screen just has a user/pass login and a banner that says "Proxy
Authentication Manager" with the software version.
- If you're not part of the managers group, logging in brings you to a screen
where only a new password and new password verification field is given, laong
with apply and cancel buttons.
- If you're a manager you get two lists: users and groups
-- ideally I'd like this to be in two "panes", using JS or CSS to make the
panes visible with a mouse click on the appropriate tab (see
http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/sms95/keypaw/index.html
for an example of the display tech I'm looking for, not specifically the
artsy-side of it)
(BTW I consider that URL an AMAZING example of clean HTML, CSS and JS -- that
is the kind of code I'm looking for! On some projects I would be willing to
pay a premium to get that kind of visual quality as well, but it depends on
the client and specific job involved.)
- Each user and group has a radio button where you can select whether to
enable or disable the account (or group), checkbox to delete the account or
group and a button to edit the specific account (real name, password and
group membership). Each group also has buttons "toggle enable" and "toggle
delete" for all users in this group which do what the names imply. These
button do not affect the status of users not in the group.
- At the bottom of the users and bottom of the groups list there would be
"cancel changes" and "apply changes" buttons. The apply changes button
writes the new configuration file, creates a new squid passwd file and then
the script restarts. The cancel button just restarts the script.
- Basic niceties like file locking to make simultaneous use safe, HTTP headers
which prevent caching, logging of logins and actions and clean, basic UI are
a must.
That's it. I don't require fancy graphics, flash or anything like that. I do
require the code to be clean and maintainable. By that I mean:
- #!/usr/local/perl -wT
- use strict; # is a must.
- "smart" use of existing modules -- Foo::WallyWorld may be undeniably cool
but if a simple regex does the job and doesn't require that I install X11,
GTK+ and libvorbis, I would prefer to use the regex.
- No, I am not short on hard drive space; I don't want the script on one line.
- No, I am not a Perl genius, nor do I possess any kind of ESP; I want basic
function summaries (one or two lines is fine, explain what input is going in
and what is coming out)
- Copyright block at the top of the file with basic summary of what the script
does and revision history.
- I require that the script look to a set of variables at the top of the file
for the locations of the database file, squid passwd file, logfile and so on.
No hardcoded paths in the script proper.
For something like that I'd probably set the price at $150 or so. Haggling is
allowed. If you utilize something you've already done or someone else's
project and can make it in 30 minutes, you just got paid $300/hr. In an
hour? Well that's $150/hr, still great. If it takes you 6 hours to get
working... well that's not my problem, now is it? :-) You should have
either negotiated a higher price or not accepted it.
Anyway that's a basic idea of what I'm trying to achieve and I'm looking for
someone who can work with that. Anyone interested feel free to contact me.
Feel free to pass this along to anyone you know who might be interested or
who might know people who might be interested.
Regards,
Andrew
email: akohlsmith at mixdown.ca
jabber: akohlsmith at jabber.benshaw.com
msn: akmixdown at hotmail.com
phone: contact me via one of the mechanisms above first, please. :-)
More information about the kw-pm
mailing list