Free software basics

34
Profitable Free Software Vitor Pamplona

Transcript of Free software basics

Page 1: Free software basics

Profitable Free Software

Vitor Pamplona

Page 2: Free software basics

Free Software

• Freedom

Page 3: Free software basics

Free Software

• Freedom– To Use

Page 4: Free software basics

Free Software

• Freedom– To Use– To Study

Page 5: Free software basics

Free Software

• Freedom– To Use– To Study– To Change

Page 6: Free software basics

Free Software

• Freedom– To Use– To Study– To Change– To Distribute

Page 7: Free software basics

Free Software Environment

• Recurse!

Page 8: Free software basics

Free Software is coolbut where is my money? ... profit? ... I need food to live! ... not sustainable

Page 9: Free software basics

Rewards for Players

• For Companies– Low-cost goodies– Market evaluation and campains– Easy of training and incentives for schools– Creation of standards– Easy to widespread and grow its use– Motivational skills for the best developers– Modularization culture– Quality assessment– Competition annihilation

Page 10: Free software basics

Rewards for Players

• For Developers– Hobby and fun– Networking for hackers– Curriculum improvement– Responsibility assessment– Knowledge of the whole development cycle– Leadership development and evaluation– Community knowledge for hiring– Talks :)

Page 11: Free software basics

Open Source is cooland it helps you to make money ... it is profitable ... it is fun ... it is sustainable

Page 12: Free software basics

Open Source vs Free Software

• Open does not mean freedom

Focus on Business

Focus on People

Page 13: Free software basics

Open Source vs Free Software

Capitalist Communist

Page 14: Free software basics

Open Source vs Free Software

Guaranteed on Free

Software Only

Page 15: Free software basics

Project Roadmap

Page 16: Free software basics

Capture an Idea

• Use linux to know how people work• Homeworks/Your Needs• Crazyness/absurds• Keep it simple, fast and VERY small• It’s OK to copy• You don’t like something? Create it again• Forget about competitors• Fork and Improve

Page 17: Free software basics

How to Compute Ideas

neXt

X + Y

X ++

Xd

X

X

X

Page 18: Free software basics

How to Compute Ideas

Display3D

X + Y

X ++

Xd

X

X

X

Page 19: Free software basics

How to Compute Ideas

Display3D

Glasses-FreeContext-AwareUser-Sensible

Displays 4D?Multi-focal Displays

Holograms

Display 1D?Sound 3DSmell 3DTouch 3D

NETRACATRA

Projector-based 3DWave OpticsRay Optics

Marketing, SportsGames, Movies

Medicine

Page 20: Free software basics

How to Compute Ideas

Touch Screen

X + Y

X ++

Xd

X

X

X

Page 21: Free software basics

How to Compute Ideas

Touch Screen

Multi-touchUltrafast

Low bandwidth

Sensing + DisplayingWeight

Untouch screenTouch unscreen

Broken Bone DetectorMice Tracking

CapacitiveResistiveBiological

FingerprintWind Screen?

Page 22: Free software basics

Ownership VS Licensing

Copyright Holder

GPL

LGPL

Apache

CreativeCommons

BSD

Public DomainRoyalty-FreeCopyleft

Share Alike

Microsoft Reference

License

Shared Sources

Page 23: Free software basics

Creative Commons

Page 24: Free software basics

Open Source License ComparisonGPL Apache BSD LGPL MIT Public

Domain

Can Non-free Soft

Can Private Changes

Can Change License

Can Endorse

Can Warranty

Can Charge

Can Sell

Free Software Open Source

Page 25: Free software basics

Prove it: Demo or DIE

• An idea alone is worthless– Everybody has good ideas

• Implementation matters!• Interface matters• Social network matters• Spreading matters– Easy live demos, videos, screencasts, blogs, twitter– Code snippets, documentation, tutorials– Business pitches, fund raising, foundation grants

Page 26: Free software basics

A Little Secret on Starting

Code

GithubFriends

Page 27: Free software basics

Project Check-list

• Project page– Documentation / User Manual– Installation Notes– License

• Repository / Version control– SourceForge– GitHub

• Feedback Page – Wiki– Discussion Group / Forum

• News Channel– Blog - Best– Twitter

Page 28: Free software basics

Project Page Anatomy

• Goals– Future of the project? – What expect from it?

• Features and flaws– Be sincere

• TO-DO List & Contribution– Keep always updated

• Download• Documentation

– Installation Notes– Use– Uninstall

• Snapshots and Screencasts

Page 29: Free software basics

Quality-Based Software

• Make sure you are doing the best• Minimum bugs, beautiful code• Test driven development helps a LOT• Unit test, Unit test, Unit test!! • Feel free to release many beta versions• Make nice videos and screencasts– Believe me, you need them

Page 30: Free software basics

Releasing and Feedback

• On releasing a version: – Binary code and instructions – Source code and instructions – Detailed change-log and high-level news item– Make packaging: .deb, .rpm and .yum

• Ask friends to test the software and instructions• Be kind• People will make critics. Don’t go ofensive. • Good documentation and fast feedback action

Page 31: Free software basics

Language and Internacionalization

• Source code: – Always in english. Translate everything!

• Webpage: – Start in portuguese. – Make a first draft for an engligh website – Other people can review it.

• Learn how to i18n of your environment– Translation is the MAIN source of collaboration

Page 32: Free software basics

Open Source Funding

• Saving time and money • ONGs are usually awesome• Allow donation– Vakinha, Paypal, and others

• Adsense• University partnerships– They can provide servers and infrastructure

• Search for incubators• Focus on corporate market. – Who can get a lot of money from your software?

Page 33: Free software basics

Open Source-based Company

• Your own company– Customization services and support– Documentation and training – Warranty– Plugins or paid improved version

• Award the best commiters• Talks, talks and talks– Pay for the best commiters go present

• Reward plan and gifts

Page 34: Free software basics

Project Discontinued

• Projects die. Accept that. • Let other people continue your work• Keep the code on-line– People can fork it – Or learn from your mistakes

• Publish!– People are relying on you, they need to know