25
Roles of Open Source in Entrepreneurship in Development wanleung - 2nd Dec 2013

Ice dec05-04-wan leung

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Ice dec05-04-wan leung

Roles of Open Source in Entrepreneurship in Development

wanleung - 2nd Dec 2013

Page 2: Ice dec05-04-wan leung

This talk is for Who?

• Newbie in the Open source world

• Startups

• For those who want to start a new software

project

• For those who want to work in the software

development field.

Page 3: Ice dec05-04-wan leung

This talk is for Who?

For those, Who think writing Software is just a

piece of cake,

something like just clicking a button,

a Facebook clone or Whatsapp clone will be

come out

in 60 seconds =P

(joking)

Page 4: Ice dec05-04-wan leung

About Me

● Vice-Chairman of the HKLUG

● Over 10 years experience on Linux

● Experience on Backend services, website,

web API development

● Experience on virtualization and Cloud Farm

building

● http://about.me/wanleung

Page 5: Ice dec05-04-wan leung

About Me

● Co-founder of LinkOmnia

● http://www.linkomnia.com

● Providing services on Consultancy and

Customized Products

● Strengths on Cloud Computing and Big Data

Page 6: Ice dec05-04-wan leung

What is Open source?

open source as a development model

promotes

a) universal access via free license to a

product's design or blueprint, and

b) universal redistribution of that design or

blueprint, including subsequent

improvements to it by anyone

From WIKI

Page 7: Ice dec05-04-wan leung

Why use Open source?

● Free Licenses (MIT, Apache, LGPL...)

● Cost effective

● existing solutions / similar solutions - need

not to reinvent the wheel

● Have Rights to modify and fit into the

business models / the requirement of the

clients.

● Helps are all over the world

Page 8: Ice dec05-04-wan leung

What can we use?

Database:

• (SQL) PostgreSQL, MySQL...

• (NoSQL) Redis, Cassandra, MongoDB...

• (Graph DB) neo4j, Rexster…

File base:

SQLite, BDB...

Page 9: Ice dec05-04-wan leung

What can we use?

Common Web / API Frameworks:

• Dancer, Catalyst... (Perl)

• Django, Grok, Pylons, TurboGears...

(Python)

• Kohana, cakephp… (Php) • Revel, go-restful... (Go lang)

• Ruby on Rails (Ruby)

• mojito, blueprint (node.js)

Page 10: Ice dec05-04-wan leung

What can we use?

• Nginx, Apache, Tomcat (webserver, reverse

proxy)

• haproxy, pound (reverse proxy)

• squid (web proxy)

• ImageMagick, GIMP, OpenCV...(Image

Processing)

• RabbitMQ, ActiveMQ (Message Queue)

• Postfix, exim (Mail Server), dovecot

(IMAP,POP3)

Page 11: Ice dec05-04-wan leung

What can we use?

• LibreOffice, KOffice, Abiwords,

Numeric(Office Tools)

• VSFTPD, ProFTPD (FTP Server)

Bootstrap (CSS), jQuery (Javascript),

Prototype (Javascript)

And More, and more...

Page 12: Ice dec05-04-wan leung

What can we use?

• Google is your good friend

• Github is your good friend

• Forums are also your good friends

• Join the local Open source communities

Please Don’t hesitate to ask questions

And

Please Don’t hesitate to answer questions

Page 13: Ice dec05-04-wan leung

How to use them Right?

What is the aim of the project?

What is the scope of the project?

How many time or stages to commit?

How many users you want to support on each

stage?

Page 14: Ice dec05-04-wan leung

How to use them Right?

Does the product need servers?

Does the servers need high-availability?

How important of the data?

How frequent of the data update?

How frequent of the data request?

How large of the data set?

What is the relations between each data?

How many dimensions?

Page 15: Ice dec05-04-wan leung

How to use them Right?

Think about the behavior of the user.

How many request and update on the user on

each time using?

Does the user accept the down time?

How long?

Page 16: Ice dec05-04-wan leung

How to use them Right?

The user has to see the update “Instantly”. The other users also have to see the update

“Instantly”. What is the meaning of

“Instantly/Now/Present”?

Does it accept delay?

What will happen if the user saw an Error

page or waiting for the request for a long

time?

Page 17: Ice dec05-04-wan leung

How to use them Right?

Those questions you have to ask yourself

before you start your project.

Software is not totally virtual, Software is also

limited by the physical hardwares.

Different Answers will affect the use of

technology, tools, design, UX,

Development Time & Cost.

Page 18: Ice dec05-04-wan leung

How to use them Right?

Security is Important. Do it first. It is hard to

change afterward.

Hacking is everywhere.

Don’t think small site won’t get attack. Beware SQL injection, API/CGI injection

Use the Right security method, especially in

Password store and Password Recovering.

Page 19: Ice dec05-04-wan leung

How to use them Right?

System Design: Think Large

But execute in small scope first.

Large system = many components

= complicate

= Time

= Money

Page 20: Ice dec05-04-wan leung

How to use them Right?

Think Large = Prepared how to scale up

Start in small scope = few components

= Less code

= Less bug

= easy to fix

Page 21: Ice dec05-04-wan leung

How to use them Right?

Less is More

Get feedback from users and change much

easier.

Time == Money

Page 22: Ice dec05-04-wan leung

How to use them Right?

Database is not just a Data bin.

A good data structure

= better organise

= better indexing

= better performance

= faster

Repacation == High availability

Backup == Data Recovery

Page 23: Ice dec05-04-wan leung

How to use them Right?

Web server:

Concurrency User

Connection Pool

Proxy

Cache

Message Queue

Deployment tools

Monitoring tools

Page 24: Ice dec05-04-wan leung

How to use them Right?

• Google is your good friend

• Github is your good friend

• Forums are also your good friends

• Join the local Open source communities

Please Don’t hesitate to ask questions

And

Please Don’t hesitate to answer questions

Page 25: Ice dec05-04-wan leung

Q & A

Thanks.