35
Open Source Tools for Freelancers Christie Koehler Open Source Bridge June 2009 Friday, June 19, 2009

Open Source Tools For Freelancers

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Open Source Tools For Freelancers

Open Source Tools for Freelancers

Christie KoehlerOpen Source Bridge

June 2009

Friday, June 19, 2009

Page 2: Open Source Tools For Freelancers

Agenda

• Hosting

• Backups

• Version Control

• Time and Money

• Actually Working

Friday, June 19, 2009

Page 3: Open Source Tools For Freelancers

Part 1: Hosting

Friday, June 19, 2009

Page 4: Open Source Tools For Freelancers

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

Page 5: Open Source Tools For Freelancers

4 Types of Hosting

• Shared Hosting

• Virtual Private Server

• Dedicated Server

• Cloud Hosting

Friday, June 19, 2009

Page 6: Open Source Tools For Freelancers

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

Page 7: Open Source Tools For Freelancers

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

Page 8: Open Source Tools For Freelancers

Dedicated Server

• You have your own server. More control, more power.

• Managed and unmanaged.

• Most expensive option.

Friday, June 19, 2009

Page 9: Open Source Tools For Freelancers

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

Page 10: Open Source Tools For Freelancers

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

Page 11: Open Source Tools For Freelancers

Part 2: Backups

Friday, June 19, 2009

Page 12: Open Source Tools For Freelancers

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

Page 13: Open Source Tools For Freelancers

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

Page 14: Open Source Tools For Freelancers

rsync example

Friday, June 19, 2009

Page 15: Open Source Tools For Freelancers

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

Page 16: Open Source Tools For Freelancers

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

Page 17: Open Source Tools For Freelancers

Duplicity Example

Friday, June 19, 2009

Page 18: Open Source Tools For Freelancers

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

Page 19: Open Source Tools For Freelancers

launchd + lingon

Friday, June 19, 2009

Page 20: Open Source Tools For Freelancers

Part 3: Version Control

Friday, June 19, 2009

Page 21: Open Source Tools For Freelancers

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

Page 22: Open Source Tools For Freelancers

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

Page 23: Open Source Tools For Freelancers

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

Page 24: Open Source Tools For Freelancers

Subversion Example

• checking out: svn co http://svnurl .

• commiting changes: svn commit -m “commit message”

• updating: svn update .

• get status: svn status

Friday, June 19, 2009

Page 25: Open Source Tools For Freelancers

Subversion Example

Friday, June 19, 2009

Page 26: Open Source Tools For Freelancers

Trac Example

Friday, June 19, 2009

Page 27: Open Source Tools For Freelancers

Part 3: Actually Working

Friday, June 19, 2009

Page 28: Open Source Tools For Freelancers

Alternatives

• There are open source alternatives to nearly every propriety software product.

• See http://www.osalt.com/

Friday, June 19, 2009

Page 29: Open Source Tools For Freelancers

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

Page 30: Open Source Tools For Freelancers

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

Page 31: Open Source Tools For Freelancers

Part 4: Time and Money

Friday, June 19, 2009

Page 32: Open Source Tools For Freelancers

Time Tracking

• timebook: python script for time tracking

• kimai: web-based time-tracking

Friday, June 19, 2009

Page 33: Open Source Tools For Freelancers

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

Page 34: Open Source Tools For Freelancers

Invoicing

• bamboo invoice

• simple invoices

Friday, June 19, 2009

Page 35: Open Source Tools For Freelancers

Questions & Thanks!

[email protected]

• @christiekoehler

• christiekoehler.com

Friday, June 19, 2009