This page provides information about ProgClub's free software computer programming and systems administration projects. See TODO for ideas about what to work on. For information about ProgClub domains, see Domains. For information about member services, see Services. For information about hosts on the ProgClub network, see Machines. Check out our Forums to get in touch.
Looking for something to do?
If you're looking for something to do you can browse our projects below, or there's a section on the website: TODO. The TODO section is there to give you a few ideas about things that it would be nice to get done. It's not comprehensive. If you have ideas feel free to make a note of them.
Starting a ProgClub project
If you want to start a project, then: give the project a name, reference the project from this page (put it in the active projects or prospective projects section as appropriate) and copy the project template to get you started. You might also like to know about how to create your project in pcrepo.
You should know that we have a spec concerning versioning of our projects.
There are some handy notes in How to safely open-source internal software - Some best practices.
Software configuration management
You can read about ProgClub's Software Configuration Management.
Current ProgClub projects are:
- Mudball, John's web framework/toolkit.
- Hostsgen, for generating /etc/hosts files for replaced hosts.
- Bugslist, the ProgClub TODO thingo.
- Svnman, the ProgClub Subversion project management utility.
- Text tables (TTB), the ProgClub structured data format.
- PcLog, the ProgClub event logger.
- PHPBOM, the PHP Ball Of Mud (a PHP web-framework and toolkit).
- x2maths.web, a maths website.
- Migration 2016, a sysadmin project to upgrade the ProgClub infrastructure.
- Pcformcheck, for validating/testing your HTML forms.
- Pchtmlcheck, for validating your HTML.
- Pccipher firefox addon, for Firefox crypto fun.
- Pcwebstats, to collect HTTP stats.
- Pcsvnrelease, to provide version and release management for projects.
- Pcweblink, to private a HTTP redirection and linking service.
- Slib, to provide the PHP framework for Sgen. Sgen is a Blackbrick product.
- Pcad, to provide a daemon that can be asked to do things on behalf of non-privileged users.
- Pcphpjs, to provide the CMS for JsPHP.
- Pcmnet, to provide MemberNet and MobileNet.
- Pcwiki, to provide the ProgClub wiki.
- Network administration, to provide network services.
Projects that ProgClub are helping with that are not ProgClub projects:
Projects that are only in their planning phase are recorded here. Maybe one day they'll make it to real live active projects, but until then we won't kid ourselves.
- MyInternetShortcuts, manage your shortcuts across all your devices.
- WebDefinitions, a personal assistant.
- Gitweb hackathon, to migrate ProgClub svn to git.
- Pddr, to provide a dance school membership management system.
- Pcsymbol, to document and explain mathematical symbols and Unicode character codes.
- Pcloan, to record details of who has borrowed what. Maybe integrate with Pcbook?
- Pcbook, to manage and document our collective library of books.
- Cweb, to make a distributed search-engine.
- HackTrap, to create a website designed to trap and find hackers. But not users. Really, just hack hackers. (OK, I'll see what we can do. JE)
Stuff that's finished. Latest on top.
- JJcode, for key management in your applications.
- QuitFirefoxAtTime, for closing your Firefox tab after a timeout.
- cdr, change directory with regular expressions.
- rdfind.php, redundant data processor in PHP.
- SAK2014, Standard Access Keys for web browsers.
- img2data, for converting image files to Data URIs.
- Pcforever, a caching HTTP gateway.
- Pcrego, to provide web-based ProgClub registration.
- Jsrun, for Shawn's JScript.NET utilities.
- Pcdate, the ProgClub date scheduler.
- Pcpics, for the ProgClub photo gallery.
- jj5-test, for John's experiments.
- Pcwebmail, to provide webmail facilities at ProgClub.
- Pcweb, to provide the ProgClub web-site.
- Email, to get email and the mailing lists functional.
- Pcmail, to provide email administration.
- Pccipher, to provide compatible encryption libraries for many platforms.
- Single sign-on, to get user logins working.
- jj5-bin, to provide administration and utility scripts.
- Pcview, to provide a web-based svn viewer.
- Pcldap, to provide LDAP administration.
- Pcblog, to provide blogs.
- Pcma, to provide database administration.
- Kerberos, to provide authentication services.
Stuff that we're not doing. Latest on top.
Contributing to ProgClub projects
Contributions to ProgClub projects are covered by the Copyright policy. Generally in order to contribute to a ProgClub project you need to be a member. That is unless you are only planning to contribute to a forum such as the project page on the wiki. Contributions to ProgClub forums are also covered by the Copyright policy. If you are a member and you contribute to a ProgClub project a link to your user page will be added to the Contributors section of the project page. If you contribute to a ProgClub project and your are not a member, then you can optionally include your details (a link to your user page if you have an account on the wiki (you don't need to be a member to have one of these), your email address, or a link to your web-site) along with your name in the Contributors section.
Releasing ProgClub projects
About half of ProgClub's projects have source-code in the subversion repository. Projects that don't have code in the repository don't really need to be released, for them you just have to update the project documentation on the wiki. Projects in svn do need to be released, however. There is a process for releasing projects in svn, and it's detailed on the Subversion page.
In addition to doing a subversion release (which tags the release and updates the latest tag) you might also like to deploy the software. To do a deployment use the project-specific release script in /home/jj5/bin. At the moment that is any of:
- release-pcwiki, for releasing pcwiki
- release-pcblog, for releasing pcblog
- release-pcldap, for releasing pcldap
- release-pcma, for releasing pcma
- release-pcview, for releasing pcview
- release-pccipher, for releasing pccipher
- release-pcweb, for releasing pcweb
- release-pcmnet, for releasing pcmnet
This list will be added to as time goes by, and as there is a need for doing new project releases.
When calling a project-specific release script you pass a single parameter; that being the 'comment', or 'release notes', for the release you are doing. You run these scripts on charity, and after doing the subversion release the web software in /var/www/ is updated appropriately.