SlideShare una empresa de Scribd logo
1 de 25
Open Source Software: A Case Study
Scott A. James,
President
Computer Consulting Specialists, Inc.
Sarasota, Florida
Scott James Computer Consulting Specialists, Inc.
What is Open Source Software
• www.opensource.org says 10 things, but we summarize as:
• Software in a community that is:
• Freely Used (no warranty, no limits on usage)
• Freely Extended (must share source, represent original works and
owners)
• Many varieties of licenses, they ARE different.
Know what they mean.
• Check out www.opensource.org for large list and details of each.
Scott James Computer Consulting Specialists, Inc.
Summary
A case study of a project created with open source technology.
• Project analysis: Goals & Resources
• Technology: TCO, Evaluation & Decision
• Implementation: Building the project
• Lessons: What was learned
• Resources
Project Analysis
What are we doing? What do we have?
Scott James Computer Consulting Specialists, Inc.
Project Analysis: Goals
• Project – functional, scalable, simple.
• Timeline – when will each phase roll out?
• Budget – how much money do we have?
• Longevity – short term utility or long term application?
• Equity – invest time in ourselves, or dollars in outside vendors?
Inexpensive, Build Fast, Quality: pick any two.
Scott James Computer Consulting Specialists, Inc.
Project Analysis: Resources
• Staff Knowledge – what is current ability of staff?
• Time – how long do we have?
• Money – how much do we have?
• Technology – what is already in use?
Technology
An Evaluation of Open Source Software
Scott James Computer Consulting Specialists, Inc.
Technology: Total Cost of Ownership (TCO)
• Startup Time: days or weeks?
• Development Time: weeks, months, years?
• Startup Money: cost of acquisition
• Development Money: recurring costs and time.
• Equity: $ pay to outside, vs. pay to ourselves
• Risk: Dependency on outside trends?
• Support: availability? Cost?
Scott James Computer Consulting Specialists, Inc.
Technology: Investigation
• LAMP: Linux, Apache, MySQL, PHP
• Windows: ASP/ActiveX, .NET, SQL Server
• IBM WebSphere, Sun ONE, HP
Scott James Computer Consulting Specialists, Inc.
Technology: Evaluation for TCO
• Tech staff has both Windows and UNIX background
• We have time (several months ok)
• Low budget, little money to spend.
• Prefer to invest equity in ourselves.
• Would like to reduce risk from outside tech trends.
• Need solid, reliable server that requires little maintenance.
• Need development questions/problems solved, but not real time.
Scott James Computer Consulting Specialists, Inc.
Technology: Decision to use LAMP
• This is a new project (no migration necessary)
• Our staff has UNIX (Linux) experience
• Large user support community for core technology
• Invest into own technology equity
• Reduce risk of reliance on technology trends
• Low cost to entry (no license or hardware fees)
Implementation
Putting Open Source Software to Work
Scott James Computer Consulting Specialists, Inc.
Implementation: Development Environment
• Linux server, Windows 2000 & XP workstations.
• Apache, MySQL and PHP.
• CVS & e-mail/IM for configuration management.
• Smarty template engine (smarty.php.net)
• PEAR application framework (pear.php.net)
• SafeSQL - PHP Class to prepare SQL statements
Google to find. Written by author of Smarty.
Scott James Computer Consulting Specialists, Inc.
Implementation: Linux Server Preperation
• Linux Mandrake (www.mandrakesoft.com)
• Apache 2.0 (www.apache.org)
• MySQL 3.23 (www.mysql.com)
• PHP 4.2 (www.php.net)
Scott James Computer Consulting Specialists, Inc.
Implementation: Development Preparation
• CVS for version control on Linux server
• SAMBA for windows networking.
• TortoiseCVS on Windows (www.tortoisecvs.org)
Better than WinCVS (it’s a powerful shell extension)
• Language syntax sensitive editor (Ultra Edit, Multi-Edit, vim, etc.)
• Apache and PHP on local workstations for unit testing (Linux
version on server, Win32 versions on workstations).
Scott James Computer Consulting Specialists, Inc.
Implementation: Development
• Data model with subject matter experts, talk through 1-to-Many
relationships, sanity check.
• Design PHP class hierarchy for business N-tier layer.
• Create shim PHP classes for web designers to use while building
and testing HTML templates. This provides ability to develop GUI in
parallel.
• Smarty template syntax can be HTML syntax compliant for use with
Dreamweaver.
Scott James Computer Consulting Specialists, Inc.
Implementation: Open Source value, case in point
• We found a useful PHP class for preparing SQL statements called
SafeSQL.
• However, it did not provide all the functionality we wanted.
• In about 2 hours we modified the source to add our features.
• We then e-mailed a copy back to the author; that these features
may be included in future versions (as he my decide).
• We enjoy similar features added by other developers.
Scott James Computer Consulting Specialists, Inc.
Implementation: Use the Support Channels
• Docs (www.apache.org, www.php.net)
Save time with on-line look-up (MySQL, PHP)
RTFM (Read The Fine Manual)
• www.google.com - Best way to search the Internet.
Search for specifics like: functions, methods and error numbers
• Forums (www.phpinsider.com, www.devshed.com)
Register early, try to skim articles regularly.
• Wiki – web page self regulated by community, very useful.
The Smarty template engine has a great Wiki.
• Plan for time to interact with open source community
-- support is usually not real time.
Scott James Computer Consulting Specialists, Inc.
Implementation: Flexible environment for unit testing
• Perform unit testing on local Windows workstations using Windows
versions of Apache, PHP and MySQL.
• Regression testing is desirable, use automated methods as much
as possible.
• CVS provides “hooks” to execute scripts on files as they are
committed to repository.
Scott James Computer Consulting Specialists, Inc.
Implementation: Deployment on servers
• Deploy using automated script – fewer human actions means fewer
mistakes.
• Look at using SSH, TAR, RSYNC for ways to move software
between hosts.
• Use CVS to ‘tag’ releases for consistent software bundling. Avoid
temptation to copy individual files.
• Adopt versioning nomenclature like: 1.2.4.0-beta1
(major.minor.fix.build)
• Batch bugs/features into small groups of changes for frequent
(sometimes weekly) updates.
Lessons Learned
What have we learned from our experience?
Scott James Computer Consulting Specialists, Inc.
Lessons Learned: Support
• Subscribe to on-line newsletters early on. Look for digest versions
and skim for understanding of product and current support.
• Plan time for support from open source community. Response time
may be days.
• Don’t be afraid to ask for help. Be courteous to the open source
community.
Scott James Computer Consulting Specialists, Inc.
Lessons Learned: Development
• Do a small project (a prototype) to test development staff and
environment. Set goals, and track progress.
• Schedule tasks in parallel to allow for workflow snags and
interacting with open source community.
• Use in-source documentation tools (www.doxygen.org,
www.phpdoc.de) to aid staff and to monitor progress.
• Tap into local support network early in the project:
user groups, business associates, consultants.
Scott James Computer Consulting Specialists, Inc.
Lessons Learned: Configuration Management
• Frequently commit (check-in) files to CVS and tag frequently
(release).
• Goal: Only commit working code, and never tag broken code.
• Use CVS for all files, including docs, libraries, binaries. Makes for
easy reproduction of whole environment for reliable testing.
• Do unit testing on local workstations with Apache & PHP running
locally. Build this into the design.
• Have fun, and learn a lot!
Scott James Computer Consulting Specialists, Inc.
Resources
• Philosophy & Legal:
www.opensource.org
• Fun:
www.slashdot.org
For these slides and more visit:
Computer Consulting Specialists, Inc.
www.computercsi.com
Scott@computercsi.com
941-320-7937

Más contenido relacionado

La actualidad más candente

DevSecCon Tel Aviv 2018 - Security Testing for Containerised Apps by Omer Levi
DevSecCon Tel Aviv 2018 - Security Testing for  Containerised Apps by Omer LeviDevSecCon Tel Aviv 2018 - Security Testing for  Containerised Apps by Omer Levi
DevSecCon Tel Aviv 2018 - Security Testing for Containerised Apps by Omer LeviDevSecCon
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL DevelopersIke Ellis
 
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL DevelopersIke Ellis
 
WTF is Penetration Testing
WTF is Penetration TestingWTF is Penetration Testing
WTF is Penetration TestingNetSPI
 
Lares from LOW to PWNED
Lares from LOW to PWNEDLares from LOW to PWNED
Lares from LOW to PWNEDChris Gates
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentationLois Patterson
 
How to adapt the SDLC to the era of DevSecOps
How to adapt the SDLC to the era of DevSecOpsHow to adapt the SDLC to the era of DevSecOps
How to adapt the SDLC to the era of DevSecOpsZane Lackey
 
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya JancaDevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya JancaDevSecCon
 
Zane lackey. security at scale. web application security in a continuous depl...
Zane lackey. security at scale. web application security in a continuous depl...Zane lackey. security at scale. web application security in a continuous depl...
Zane lackey. security at scale. web application security in a continuous depl...Yury Chemerkin
 
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?gagravarr
 
Cucumber jvm best practices v3
Cucumber jvm best practices v3Cucumber jvm best practices v3
Cucumber jvm best practices v3Ahmed Misbah
 
Introduction to LavaPasswordFactory
Introduction to LavaPasswordFactoryIntroduction to LavaPasswordFactory
Introduction to LavaPasswordFactoryChristopher Grayson
 
Dbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo PiairoDbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo PiairoAgile Connect®
 
CISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development SecurityCISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development SecuritySam Bowne
 
My tryst with sourcecode review
My tryst with sourcecode reviewMy tryst with sourcecode review
My tryst with sourcecode reviewAnant Shrivastava
 
Root the Box - An Open Source Platform for CTF Administration
Root the Box - An Open Source Platform for CTF AdministrationRoot the Box - An Open Source Platform for CTF Administration
Root the Box - An Open Source Platform for CTF AdministrationChristopher Grayson
 
Owasp joy of proactive security
Owasp joy of proactive securityOwasp joy of proactive security
Owasp joy of proactive securityScott Behrens
 
DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...
DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...
DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...Freek Kauffmann
 

La actualidad más candente (20)

DevSecCon Tel Aviv 2018 - Security Testing for Containerised Apps by Omer Levi
DevSecCon Tel Aviv 2018 - Security Testing for  Containerised Apps by Omer LeviDevSecCon Tel Aviv 2018 - Security Testing for  Containerised Apps by Omer Levi
DevSecCon Tel Aviv 2018 - Security Testing for Containerised Apps by Omer Levi
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly DavidoffDevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
DevSecCon Tel Aviv 2018 - End2End containers SSDLC by Vitaly Davidoff
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
WTF is Penetration Testing
WTF is Penetration TestingWTF is Penetration Testing
WTF is Penetration Testing
 
Lares from LOW to PWNED
Lares from LOW to PWNEDLares from LOW to PWNED
Lares from LOW to PWNED
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentation
 
How to adapt the SDLC to the era of DevSecOps
How to adapt the SDLC to the era of DevSecOpsHow to adapt the SDLC to the era of DevSecOps
How to adapt the SDLC to the era of DevSecOps
 
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya JancaDevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
DevSecCon Tel Aviv 2018 - Security learns to sprint by Tanya Janca
 
Zane lackey. security at scale. web application security in a continuous depl...
Zane lackey. security at scale. web application security in a continuous depl...Zane lackey. security at scale. web application security in a continuous depl...
Zane lackey. security at scale. web application security in a continuous depl...
 
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
 
Cucumber jvm best practices v3
Cucumber jvm best practices v3Cucumber jvm best practices v3
Cucumber jvm best practices v3
 
Introduction to LavaPasswordFactory
Introduction to LavaPasswordFactoryIntroduction to LavaPasswordFactory
Introduction to LavaPasswordFactory
 
Dbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo PiairoDbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo Piairo
 
CISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development SecurityCISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development Security
 
So You Want to be a Hacker?
So You Want to be a Hacker?So You Want to be a Hacker?
So You Want to be a Hacker?
 
My tryst with sourcecode review
My tryst with sourcecode reviewMy tryst with sourcecode review
My tryst with sourcecode review
 
Root the Box - An Open Source Platform for CTF Administration
Root the Box - An Open Source Platform for CTF AdministrationRoot the Box - An Open Source Platform for CTF Administration
Root the Box - An Open Source Platform for CTF Administration
 
Owasp joy of proactive security
Owasp joy of proactive securityOwasp joy of proactive security
Owasp joy of proactive security
 
DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...
DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...
DevOps Security Coffee - Lazy hackers who think out of the box, but stay in t...
 

Similar a Case study

Agileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarAgileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarRoberto Jr. Figueroa
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with djangoYann Malet
 
DevOps: Automate all the things
DevOps: Automate all the thingsDevOps: Automate all the things
DevOps: Automate all the thingsMat Mannion
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation ProjectsAmazon Web Services
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practicesCode Mastery
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFxThomas Daly
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)Oursky
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAdam Getchell
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk UpdateESUG
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationNick Josevski
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinMatt Tesauro
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Clark Everetts
 
Making security-agile matt-tesauro
Making security-agile matt-tesauroMaking security-agile matt-tesauro
Making security-agile matt-tesauroMatt Tesauro
 
Unit Testing in JavaScript
Unit Testing in JavaScriptUnit Testing in JavaScript
Unit Testing in JavaScriptRob Scaduto
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web ApplicationMichael Choi
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeededm00se
 
Malicious File for Exploiting Forensic Software
Malicious File for Exploiting Forensic SoftwareMalicious File for Exploiting Forensic Software
Malicious File for Exploiting Forensic SoftwareTakahiro Haruyama
 

Similar a Case study (20)

Computer software specialists wikki verma
Computer software specialists   wikki vermaComputer software specialists   wikki verma
Computer software specialists wikki verma
 
Enterprise PHP
Enterprise PHPEnterprise PHP
Enterprise PHP
 
Agileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarAgileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinar
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
 
DevOps: Automate all the things
DevOps: Automate all the thingsDevOps: Automate all the things
DevOps: Automate all the things
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
 
Making security-agile matt-tesauro
Making security-agile matt-tesauroMaking security-agile matt-tesauro
Making security-agile matt-tesauro
 
Unit Testing in JavaScript
Unit Testing in JavaScriptUnit Testing in JavaScript
Unit Testing in JavaScript
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
 
Malicious File for Exploiting Forensic Software
Malicious File for Exploiting Forensic SoftwareMalicious File for Exploiting Forensic Software
Malicious File for Exploiting Forensic Software
 

Más de karan saini

Thestoryofmylife 140221061604-phpapp01
Thestoryofmylife 140221061604-phpapp01Thestoryofmylife 140221061604-phpapp01
Thestoryofmylife 140221061604-phpapp01karan saini
 
Thestoryofmylife 140221061604-phpapp01 (1)
Thestoryofmylife 140221061604-phpapp01 (1)Thestoryofmylife 140221061604-phpapp01 (1)
Thestoryofmylife 140221061604-phpapp01 (1)karan saini
 
Snrg2011 6.15.2.sta canney_suranofsky
Snrg2011 6.15.2.sta canney_suranofskySnrg2011 6.15.2.sta canney_suranofsky
Snrg2011 6.15.2.sta canney_suranofskykaran saini
 
Risc and cisc eugene clewlow
Risc and cisc   eugene clewlowRisc and cisc   eugene clewlow
Risc and cisc eugene clewlowkaran saini
 
Py4inf 05-iterations
Py4inf 05-iterationsPy4inf 05-iterations
Py4inf 05-iterationskaran saini
 
Py4inf 05-iterations (1)
Py4inf 05-iterations (1)Py4inf 05-iterations (1)
Py4inf 05-iterations (1)karan saini
 
Helen keller-1226880485154369-8
Helen keller-1226880485154369-8Helen keller-1226880485154369-8
Helen keller-1226880485154369-8karan saini
 
Final 121114041321-phpapp01
Final 121114041321-phpapp01Final 121114041321-phpapp01
Final 121114041321-phpapp01karan saini
 

Más de karan saini (20)

Topology ppt
Topology pptTopology ppt
Topology ppt
 
Tibor
TiborTibor
Tibor
 
Thestoryofmylife 140221061604-phpapp01
Thestoryofmylife 140221061604-phpapp01Thestoryofmylife 140221061604-phpapp01
Thestoryofmylife 140221061604-phpapp01
 
Thestoryofmylife 140221061604-phpapp01 (1)
Thestoryofmylife 140221061604-phpapp01 (1)Thestoryofmylife 140221061604-phpapp01 (1)
Thestoryofmylife 140221061604-phpapp01 (1)
 
Snrg2011 6.15.2.sta canney_suranofsky
Snrg2011 6.15.2.sta canney_suranofskySnrg2011 6.15.2.sta canney_suranofsky
Snrg2011 6.15.2.sta canney_suranofsky
 
Science
ScienceScience
Science
 
Risc and cisc eugene clewlow
Risc and cisc   eugene clewlowRisc and cisc   eugene clewlow
Risc and cisc eugene clewlow
 
Py4inf 05-iterations
Py4inf 05-iterationsPy4inf 05-iterations
Py4inf 05-iterations
 
Py4inf 05-iterations (1)
Py4inf 05-iterations (1)Py4inf 05-iterations (1)
Py4inf 05-iterations (1)
 
Periodic table1
Periodic table1Periodic table1
Periodic table1
 
Maths project
Maths projectMaths project
Maths project
 
Lecturespecial
LecturespecialLecturespecial
Lecturespecial
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
 
Lcd monitors
Lcd monitorsLcd monitors
Lcd monitors
 
Lab3
Lab3Lab3
Lab3
 
L11cs2110sp13
L11cs2110sp13L11cs2110sp13
L11cs2110sp13
 
Helen keller-1226880485154369-8
Helen keller-1226880485154369-8Helen keller-1226880485154369-8
Helen keller-1226880485154369-8
 
Hardware
HardwareHardware
Hardware
 
Gsm cdma1
Gsm cdma1Gsm cdma1
Gsm cdma1
 
Final 121114041321-phpapp01
Final 121114041321-phpapp01Final 121114041321-phpapp01
Final 121114041321-phpapp01
 

Último

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 

Último (20)

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 

Case study

  • 1. Open Source Software: A Case Study Scott A. James, President Computer Consulting Specialists, Inc. Sarasota, Florida
  • 2. Scott James Computer Consulting Specialists, Inc. What is Open Source Software • www.opensource.org says 10 things, but we summarize as: • Software in a community that is: • Freely Used (no warranty, no limits on usage) • Freely Extended (must share source, represent original works and owners) • Many varieties of licenses, they ARE different. Know what they mean. • Check out www.opensource.org for large list and details of each.
  • 3. Scott James Computer Consulting Specialists, Inc. Summary A case study of a project created with open source technology. • Project analysis: Goals & Resources • Technology: TCO, Evaluation & Decision • Implementation: Building the project • Lessons: What was learned • Resources
  • 4. Project Analysis What are we doing? What do we have?
  • 5. Scott James Computer Consulting Specialists, Inc. Project Analysis: Goals • Project – functional, scalable, simple. • Timeline – when will each phase roll out? • Budget – how much money do we have? • Longevity – short term utility or long term application? • Equity – invest time in ourselves, or dollars in outside vendors? Inexpensive, Build Fast, Quality: pick any two.
  • 6. Scott James Computer Consulting Specialists, Inc. Project Analysis: Resources • Staff Knowledge – what is current ability of staff? • Time – how long do we have? • Money – how much do we have? • Technology – what is already in use?
  • 7. Technology An Evaluation of Open Source Software
  • 8. Scott James Computer Consulting Specialists, Inc. Technology: Total Cost of Ownership (TCO) • Startup Time: days or weeks? • Development Time: weeks, months, years? • Startup Money: cost of acquisition • Development Money: recurring costs and time. • Equity: $ pay to outside, vs. pay to ourselves • Risk: Dependency on outside trends? • Support: availability? Cost?
  • 9. Scott James Computer Consulting Specialists, Inc. Technology: Investigation • LAMP: Linux, Apache, MySQL, PHP • Windows: ASP/ActiveX, .NET, SQL Server • IBM WebSphere, Sun ONE, HP
  • 10. Scott James Computer Consulting Specialists, Inc. Technology: Evaluation for TCO • Tech staff has both Windows and UNIX background • We have time (several months ok) • Low budget, little money to spend. • Prefer to invest equity in ourselves. • Would like to reduce risk from outside tech trends. • Need solid, reliable server that requires little maintenance. • Need development questions/problems solved, but not real time.
  • 11. Scott James Computer Consulting Specialists, Inc. Technology: Decision to use LAMP • This is a new project (no migration necessary) • Our staff has UNIX (Linux) experience • Large user support community for core technology • Invest into own technology equity • Reduce risk of reliance on technology trends • Low cost to entry (no license or hardware fees)
  • 13. Scott James Computer Consulting Specialists, Inc. Implementation: Development Environment • Linux server, Windows 2000 & XP workstations. • Apache, MySQL and PHP. • CVS & e-mail/IM for configuration management. • Smarty template engine (smarty.php.net) • PEAR application framework (pear.php.net) • SafeSQL - PHP Class to prepare SQL statements Google to find. Written by author of Smarty.
  • 14. Scott James Computer Consulting Specialists, Inc. Implementation: Linux Server Preperation • Linux Mandrake (www.mandrakesoft.com) • Apache 2.0 (www.apache.org) • MySQL 3.23 (www.mysql.com) • PHP 4.2 (www.php.net)
  • 15. Scott James Computer Consulting Specialists, Inc. Implementation: Development Preparation • CVS for version control on Linux server • SAMBA for windows networking. • TortoiseCVS on Windows (www.tortoisecvs.org) Better than WinCVS (it’s a powerful shell extension) • Language syntax sensitive editor (Ultra Edit, Multi-Edit, vim, etc.) • Apache and PHP on local workstations for unit testing (Linux version on server, Win32 versions on workstations).
  • 16. Scott James Computer Consulting Specialists, Inc. Implementation: Development • Data model with subject matter experts, talk through 1-to-Many relationships, sanity check. • Design PHP class hierarchy for business N-tier layer. • Create shim PHP classes for web designers to use while building and testing HTML templates. This provides ability to develop GUI in parallel. • Smarty template syntax can be HTML syntax compliant for use with Dreamweaver.
  • 17. Scott James Computer Consulting Specialists, Inc. Implementation: Open Source value, case in point • We found a useful PHP class for preparing SQL statements called SafeSQL. • However, it did not provide all the functionality we wanted. • In about 2 hours we modified the source to add our features. • We then e-mailed a copy back to the author; that these features may be included in future versions (as he my decide). • We enjoy similar features added by other developers.
  • 18. Scott James Computer Consulting Specialists, Inc. Implementation: Use the Support Channels • Docs (www.apache.org, www.php.net) Save time with on-line look-up (MySQL, PHP) RTFM (Read The Fine Manual) • www.google.com - Best way to search the Internet. Search for specifics like: functions, methods and error numbers • Forums (www.phpinsider.com, www.devshed.com) Register early, try to skim articles regularly. • Wiki – web page self regulated by community, very useful. The Smarty template engine has a great Wiki. • Plan for time to interact with open source community -- support is usually not real time.
  • 19. Scott James Computer Consulting Specialists, Inc. Implementation: Flexible environment for unit testing • Perform unit testing on local Windows workstations using Windows versions of Apache, PHP and MySQL. • Regression testing is desirable, use automated methods as much as possible. • CVS provides “hooks” to execute scripts on files as they are committed to repository.
  • 20. Scott James Computer Consulting Specialists, Inc. Implementation: Deployment on servers • Deploy using automated script – fewer human actions means fewer mistakes. • Look at using SSH, TAR, RSYNC for ways to move software between hosts. • Use CVS to ‘tag’ releases for consistent software bundling. Avoid temptation to copy individual files. • Adopt versioning nomenclature like: 1.2.4.0-beta1 (major.minor.fix.build) • Batch bugs/features into small groups of changes for frequent (sometimes weekly) updates.
  • 21. Lessons Learned What have we learned from our experience?
  • 22. Scott James Computer Consulting Specialists, Inc. Lessons Learned: Support • Subscribe to on-line newsletters early on. Look for digest versions and skim for understanding of product and current support. • Plan time for support from open source community. Response time may be days. • Don’t be afraid to ask for help. Be courteous to the open source community.
  • 23. Scott James Computer Consulting Specialists, Inc. Lessons Learned: Development • Do a small project (a prototype) to test development staff and environment. Set goals, and track progress. • Schedule tasks in parallel to allow for workflow snags and interacting with open source community. • Use in-source documentation tools (www.doxygen.org, www.phpdoc.de) to aid staff and to monitor progress. • Tap into local support network early in the project: user groups, business associates, consultants.
  • 24. Scott James Computer Consulting Specialists, Inc. Lessons Learned: Configuration Management • Frequently commit (check-in) files to CVS and tag frequently (release). • Goal: Only commit working code, and never tag broken code. • Use CVS for all files, including docs, libraries, binaries. Makes for easy reproduction of whole environment for reliable testing. • Do unit testing on local workstations with Apache & PHP running locally. Build this into the design. • Have fun, and learn a lot!
  • 25. Scott James Computer Consulting Specialists, Inc. Resources • Philosophy & Legal: www.opensource.org • Fun: www.slashdot.org For these slides and more visit: Computer Consulting Specialists, Inc. www.computercsi.com Scott@computercsi.com 941-320-7937