Open Source Tools For Freelancers

3,506
-1

Published on

As a freelancer, you must be your own IT department. You are responsible for website hosting, backups, version control, project/time-tracking and invoicing. Finding inexpensive and maintainable solutions for these needs can be quite daunting. In this session, I will present an overview open-source solutions for these needs.

Published in: Technology, News & Politics
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,506
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
86
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Open Source Tools For Freelancers

  1. Open Source Tools for Freelancers Christie Koehler Open Source Bridge June 2009 Friday, June 19, 2009
  2. Agenda • Hosting • Backups • Version Control • Time and Money • Actually Working Friday, June 19, 2009
  3. Part 1: Hosting Friday, June 19, 2009
  4. Open Source Hosting • LAMP (Linux/Apache/MySQL/PHP) is the most common • Webservers: Lighttpd, Nginx, Mongrel • Databases: PostgreSQL, Firebird, Drizzle, CouchDB • Languages: Ruby/Rails, Python, Perl, etc. Friday, June 19, 2009
  5. 4 Types of Hosting • Shared Hosting • Virtual Private Server • Dedicated Server • Cloud Hosting Friday, June 19, 2009
  6. Shared Hosting • Cheap, ready-to-go, no technical expertise needed • Often over sold, not much control, not very scalable • Distributed vs. Traditional Friday, June 19, 2009
  7. Virtual Private Servers • A chunk of a server is virtualized and made available to you. • More power/control than shared hosting without the cost of dedicated server. • Managed and Unmanaged. • Many options: verify that resource allocation, options meets your needs. Friday, June 19, 2009
  8. Dedicated Server • You have your own server. More control, more power. • Managed and unmanaged. • Most expensive option. Friday, June 19, 2009
  9. Cloud Hosting • Dynamically scalable and virtualized hosting. • Pay for what you use. Scale up/down very quickly. • Technologies vary. • Google App Engine (java/python), Amazon EC2, RackspaceCloud (Mosso). Friday, June 19, 2009
  10. Local Hosting • Your laptop/desktop can act as a web host • Great for developing, designing and testing • Not really suitable for a live site • XAMPP an easy way to start Friday, June 19, 2009
  11. Part 2: Backups Friday, June 19, 2009
  12. Keys to Success • Should have both on-site and off-site backups. • Automated (if you have to think about it, it won’t happen regularly) • Test your system *before* you need it. Friday, June 19, 2009
  13. Local Backups • rysnc to external drive • Carbon Copy Cloner on Mac • Other full-drive backups for Linux • Complete local backup every week Friday, June 19, 2009
  14. rsync example Friday, June 19, 2009
  15. Offsite Backups • option 1: backup to external drive, then take offsite (storage, office, friend’s house) • option 2: backup to online storage (s3, another server, etc.) Friday, June 19, 2009
  16. Duplicity (+s3) • Cross-platform (OSX and Linux at least) • Can use any remote or local store, but I like Amazon s3 • Duplicity creates encrypted tar-format volumes and uploads to local or remote server • Need gpg and other libraries • http://duplicity.nongnu.org/ Friday, June 19, 2009
  17. Duplicity Example Friday, June 19, 2009
  18. now automate it • cron on *nix, osx < 10.4 • put in script in /etc/cron/{daily/weekly/monthly} • or use crontab • launchd on osx >= 10.5 • Lingon, by Peter Borg • http://tuppis.com/lingon/ Friday, June 19, 2009
  19. launchd + lingon Friday, June 19, 2009
  20. Part 3: Version Control Friday, June 19, 2009
  21. What is it? • Stores your project files and manages changes to those files. • Makes deploying your projects much easier. • Maintain a complete history of your project. • Just as important as backups. Friday, June 19, 2009
  22. Version Control Software • git: http://git-scm.com/ • subversion: http://subversion.tigris.org/ • others: bazaar, mercurial, cvs • lots of software integrates with VCS Friday, June 19, 2009
  23. How to Set up • Server and client components. • Can set up on own server. • Or, use one of many hosted options (github, devguard, unfuddle, etc.) • git gui clients: git k, git gui, GitX (mac) • subversion gui clients: rapidSVN, svnX (mac), TortoiseSVN (win) Friday, June 19, 2009
  24. Subversion Example • checking http://svnurl svn co out: . • commiting changes: svn commit -m “commit message” • updating: svn update . • get status: svn status Friday, June 19, 2009
  25. Subversion Example Friday, June 19, 2009
  26. Trac Example Friday, June 19, 2009
  27. Part 3: Actually Working Friday, June 19, 2009
  28. Alternatives • There are open source alternatives to nearly every propriety software product. • See http://www.osalt.com/ Friday, June 19, 2009
  29. Apps for Working • Office/Accounting: OpenOffice, AbiWord, GnuCash • Graphics: GIMP, InkScape • Code Editing: vi/vim, jEdit, Netbeans, Amaya • Media: vlc, audacity, songbird • Files: cyberduck, ssh (putty), filezilla • Communication: xchat, thunderbird, pidgin, psi, qute • Virtualization: VirtualBox Friday, June 19, 2009
  30. Remember • Open source isn’t perfect and isn’t necessarily going to fit all our your needs • Sometimes you’ll have to go with a proprietary product Friday, June 19, 2009
  31. Part 4: Time and Money Friday, June 19, 2009
  32. Time Tracking • timebook: python script for time tracking • kimai: web-based time-tracking Friday, June 19, 2009
  33. Timebook Example $ t switch writing $ t in document timebook $ t out $ t display Timesheet writing: Day Start End Duration Notes Mar 14, 2009 19:53:30 - 20:06:15 0:12:45 document timebook 20:07:02 - 0:00:01 write home about timebook 0:12:46 Total 0:12:46 Friday, June 19, 2009
  34. Invoicing • bamboo invoice • simple invoices Friday, June 19, 2009
  35. Questions & Thanks! • christiekoehler@gmail.com • @christiekoehler • christiekoehler.com Friday, June 19, 2009
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×