I use exclusively open-source software

Software freedom is important to me ethically, so I am very intentional about using only free, open-source software.

Here are some of the tools that I use regularly.

Content management systems

  • Drupal: to create public websites that are editable by clients directly from within a web-browser
  • CiviCRM: to give clients methods for doing things like: storing lots of information relevant to non-profit business models, sending bulk emails, receiving online donations and pledges, and much more!
  • MediaWiki: to share information among a group of people
  • TWiki: to share information in a more complicated way

Services

  • Linode: to host virtual servers
  • Google Apps: to obtain free email hosting and document/calendar sharing
  • CiviSMTP: to reliably send bulk emails through CiviCRM
  • Dreamhost: to host websites
  • BaseCamp: to collaboratively organize project information
  • GitHub: to host git repositories
  • Assembla: to host git repositories and Trac installations

Programing languages frameworks

  • Symfony: to make custom web applications for specific needs
  • jQuery: to add rich user interactivity to web pages
  • Google Maps: to embed interactive maps within web pages

Administration tools

  • Git: to keep track of changes made to text files in a complicated, collaborative fashion
  • SVN: to keep track of changes made to text files
  • Apache: to serve web pages
  • SSH: to communicate with remote computers
  • rsync: to transfer files in a sophisticated fashion
  • lftp: to transfer files

Programing languages

  • PHP: to dynamically generate XHTML
  • MySQL: to store information on a webserver
  • HTML/XHTML/XML: to format information for viewing within a web browser
  • CSS: to style the display of information
  • JavaScript: to add realtime user-interaction to content displayed in a web browser
  • SVG: to create complicated graphics
  • Python: to script complicated processes and create desktop applications
  • Ruby: to elegantly script complicated processes
  • Bash: to interface with the operating system in an automated fashion
  • Regular Expression: to manipulate text

Applications

  • Eclipse: to edit PHP code and manage PHP projects
  • NetBeans: to edit Ruby code and manage Ruby projects
  • Vim: to edit text files
  • GIMP: to create raster graphics
  • Inkscape: to create vector graphics
  • FireBug: to inspect and manipulate web pages for design purposes
  • phpMyAdmin: to inspect and manipulate databases
  • Trac: to keep track of project-related information, collaboratively
  • Redmine: to keep track of project-related information, collaboratively
  • GNU Mailman: to create and manage mailing lists
  • Webmin: to administer a webserver from within a web browser
  • OpenOffice: to create documents, spreadsheets, and database interfaces

Platforms