[Mas 500] Prototype to Product
Upcoming SlideShare
Loading in...5

[Mas 500] Prototype to Product






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

[Mas 500] Prototype to Product [Mas 500] Prototype to Product Presentation Transcript

  • MAS.500 - Software Module - Rahul Bhargava Various Topics 2013.11.27
  • Topics ❖ Homework Share-back ❖ Servers / CLI ❖ NecSys w/Buffy ❖ Security ❖ Product vs. Prototype ❖ Web Technologies
  • Servers / CLI
  • Servers ❖ Virtual Server vs. On-Demand Cloud Server vs. Physical Server ❖ Lots of unix options ❖ ❖ ❖ APT: Debian, Ubuntu RPM: Redhat, CentOS, Fedora Decide based on ability to get help ❖ most folks I know in the lab use Ubuntu os S3
  • CLI ❖ Commands: ❖ ❖ ❖ each command does one thing commands can be chained together by piping them Permissions ❖ users can be in one or more groups ❖ permissions can be set for owner, group, other ❖ read, write, and execute are controlled independently ❖ super-user can do anything, let users pretend to be root via “sudo” ❖ Cron is useful to schedule things ❖ live tour of Ubuntu
  • An Example To Think With Realtime Signage
  • Security
  • Security ❖ key-based login demo ❖ never commit passwords in code ❖ database, api, etc. ❖ config via template file ❖ security audit - have someone outside the team do it ❖ ssl certificates for secure communications with clients
  • Product vs. Prototype
  • Servers: Client/Server The Old Way Open a custom socket and send data back and forth in some format Client Data The New Way a) ASync: Client make HTTP request, your app returns JSON. b) Sync: Client opens a persistent WebSocket, data is sent back and forth. Your App
  • Servers: Development Architecture Your App Built-in Framework Server (Flask, Rails, Django etc) Server (Windows, Mac, Linux, etc.) Hardware (your computer, VM, etc.) Zero-configuration, opens its own port and handles requests
  • Servers: Production Architecture Your App Gateway (mod_php, fastCGI, WSGI, passenger) Server-specific application settings Web Server (Apache2) Configuration files Server (Ubuntu) Hardware (VM)
  • Deployment: Ideas ❖ Release Early, Release Often ❖ ❖ Managing like a Product ❖ ❖ ❖ Extreme Programming is one methodology Have development, staging & production copies Follow a release process Automate so you don’t mess it up
  • Deployment: Managing a Product Local Machine ❖ ❖ ❖ Development System ❖ ❖ Staging System ❖ Production System ❖ Playground to develop code Commit when code works Resembles the production system Updated frequently with latest code as an integration point between multiple developers Duplicate of the production system When ready to release: freeze/tag code, push to staging Once verified on staging system, push to production and test again
  • Homework ❖ Beginner - Processing: ❖ ❖ Intermediate - Processing: ❖ ❖ read and do the first 3 Processing tutorials recreate your OpenFrameworks application with Processing Advanced - D3 tutorials: ❖ read “Introduction” and “Three Little Circles” ❖ do “Lets make a bar chart”