Open Source – & The MEAN Stack



Open Source – & The MEAN Stack

0 1


presentation-open-source-and-the-mean-stack

Presentation: Open Source and the MEAN stack

On Github lirantal / presentation-open-source-and-the-mean-stack

Open Source

& The MEAN Stack

Yonder Meet-up 2017

Created by Liran Tal / @lirantal

Today...

* No intense free software vs open source philosophies war or licenses * Collaborating on open source projects through GitHub platform for Code Reviews, Comments, Workflow

Short Quiz

Do you have a GitHub account?

Short Quiz

Have you contributed to Open Source in the past?

Short Quiz

credits: superdad picture from paurian's flickr account: https://www.flickr.com/photos/paurian/3727982365

Short Quiz

About Me

R&D Team Lead at HPE Live Network

The enterprise content marketplace for HPE Software

HPE Live Network

About Me

We do a lot of NodeJS, Java, AngularJS, MongoDB, ElasticSearch, and our own HPE UI Showcase

About Me

Actively contributing to Open Source projects

About Me

Core Team and Top Contributor to MEAN.JS framework

About Me

Contributing Open Source code to HPE Software products

Subtle Introduction to

Open Source

image source: tinyfishy flickr account: https://www.flickr.com/photos/tinyfishy/442112564

It all starts in the 1980s

Credits to PC Magazine for the image

Free Software Foundation

Free Software Foundation

Freedom to run the program, for any purpose, to study and change it, and to re-distribute copies of it as is or modified, all without requiring any consent" * Free Software is a Social Movement * Ideology of free software

GNU - GNU's Not Unix

  • The GNU Project
  • The GNU Hurd OS
  • The GNU Emacs editor

image credits to an1r0n from http://an1r0n.deviantart.com/art/Linux-Communism-66194392

image credits to wikipedia

2001 interview:
Linux is not in the public domain. Linux is a cancer that attaches itself in an intellectual property sense to everything it touches. That's the way that the license works image credits to wikipedia

image credits to https://www.flickr.com/photos/lifes__too_short__to__drink__cheap__wine/454738605

Open Source Initiative

promoting the development methodology of open source software * Coined the term Open Source * Open Source as a development methodology image credits to https://en.wikipedia.org/wiki/Open_Source_Initiative

What is Open Source?

Open Source describes a software license that ensures certain freedoms

source: J Aaron Farr - http://www.slideshare.net/jaaronfarr/making-open-source-work-presentation/30-Whats_the_differencebetween_free_software image source: https://en.wikipedia.org/wiki/Open_Source_Initiative

Benefits of Open Source

Benefits of Open Source

  • View and Modify the Software
  • Free Distribution of the Software
  • Learn from the code
  • Fix the software and extend it on your own

Benefits of Open Source

  • Activisim is important

based on Open Source Jobs Report 2016

Benefits of Open Source

  • Elevated sense of joy

Benefits of Open Source

for Companies and Products

the more widely available the source code is for public testing, scrutiny, and experimentation, the more rapidly all forms of bugs will be discovered

How much impact can you make?

with an open source project?

How much impact can you make?

source: wikipedia's history of linux

How much impact can you make?

1991, Linus Torvald's e-mail on his new OS...

source: https://www.cs.cmu.edu/~awb/linux.history.html

Linus Torvalds's

(1995) An infinite number of monkeys typing into GNU emacs would never make a good program.

Linus Torvalds's

(2007 on hardware) Is "I hope you all die a painful death" too strong?

Linus Torvalds's

(2010) Every time I see some piece of medical research saying that caffeine is good for you, I high-five myself. Because I'm going to live forever.

Linus Torvalds's

(2001) In short: just say NO TO DRUGS, and maybe you won't end up like the Hurd people.

Linus Torvalds's

(1996) Software is like sex; it's better when it's free.

How much impact can you make?

Back in 2007, I was doing a lot of embedded wireless development.

We were missing an open source, web-based, Wi-Fi management solution

How much impact can you make?

  • No GitHub...
  • SourceForge and SVN (god forbid!) were the go-to open source toolset

How much impact can you make?

The birth of daloRADIUS PHP, web-based management system for FreeRADIUS and MySQL

My first significant, enterprise-scale open source endavour

How much impact can you make?

daloRADIUS Web Interface

How the product looks like

How much impact can you make?

daloRADIUS SourceForge Project

The "GitHub" of 2007

How much impact can you make?

daloRADIUS A decade later

  • 1000 weekly downloads
  • 300,000 downloads

daloRADIUS on LinkedIn

You can make an impact too

You can bring change

If Internet Explorer is brave enough

to be your default browser

You are brave enough

to start an Open Source project

Why start an Open Source project?

To scratch an itch

  • Missing tool or library
  • You create something of value that other users find useful
  • You thought of a better way to do something

Why we do open source?

Linus interview in 1998

In the extreme case, if it was just you doing all the code, and the rest of the world quietly used it, would it make sense to give it away free?

It might be true in certain niche areas, but almost any project will give a developer that "feel good" feeling when he has users and he feels he is doing something worthwhile. most of the good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

Where do we start?

GitHub

The cyberspace of scratching itches with other people

GitHub

"we make it easier to collaborate with others and share your projects with the universe"

Tabs vs Spaces

The Ultimate Debate

Winnie's got her own GitHub page!

Winnie actually commits space indentation fixes

My Personal Itch

Back in 2014 my itch was NodeJS and the JavaScript ecosystem that took the web by storm

Everyone was talking about being MEAN

What does it mean to be

MongoDB - NoSQL Database

Document Storage

ExpressJS – web application framework

Ties the middleware, Takes care of HTTP

AngularJS - Client-side frontend framework

MV* Architecture from Google home-base Testable, data bindings, reusable components

~2009 NodeJS – Server-side multi-purpose JavaScript platform with async nature

Web Servers, Command Line Tools SMTP Servers, Control an Arduino board

The Benefits

The Benefits

Shared Language = JavaScript Shared Objects = JSON

The FullStack Developer

The Benefits

Shared ecosystem

  • test tools
  • build and automation tools
  • code linting

Too good to be true?

Romanian gymnast Nadia Comaneci 1976 Olympics in Montreal Judges computers were not programmed to a perfect score she was awarded the highest possible score of 10 she won 3 gold medals
JavaScript is here to stay but it brings some challenges

Challenges with the JavaScript Ecosystem

legacy web development sauce not working anymore

Challenge

How do you tie all of these JavaScript components to work together?

JavaScript is here to stay but it brings some challenges

Challenge

The JavaScript ecosystem is a messy place

MongoDB

or ... CouchDB Cassandra Redis

ExpressJS

or ... Hapi Koa Restify

AngularJS

or ... EmberJS KnockoutJS BackboneJS ReactJS

http://www.nodeframeworks.com

What about the tooling ecosystem?

Build tools:

  • Lint your code
  • Compile your SASS to CSS
  • Minimize your CSS and JS assets
  • Optimize your static image assets
  • Run your tests
  • Unit tests, integration tests, E2E tests
  • Nock, jshint, nodemon, livereload
  • Manage your package dependencies, and their security status

Back in 2014 - MEAN.io was the trend for a FullStack JavaScript framework

Getting involved is the best way to learn!

vs

"Two roads diverged in a wood, and I —I took the one less traveled by, And that has made all the difference" Robert Frost

image credit to blog source: http://heldermachado.com
image source: http://www.keepcalm-o-matic.co.uk/p/keep-calm-and-love-alyssa-496

Why I love MEAN.JS?

  • Light-weight
  • Opinionated yet configurable and extendable
  • Framework and boilerplate vs Platform
  • Community-oriented

I love it so much that I became the lead maintainer for the project

I love it so much that I started using it at work

  • hackathons
  • dashboards
  • small projects

freeboard

an opportunity to grow technology

HPE Live Network in numbers:

600,000 unique users

3,000,000 page views

1,500,000 downloads

5 years old LAMP stack

5 years in software is like 700 Chewbacca years

image source: flickr https://www.flickr.com/photos/hyku/3614259239

key strategic technology decisions:

  • Build on existing expertise
  • Consolidating our platform to Java & JavaScript
  • Micro-services architecture

Why contribute to Open Source?

  • It feels good to give back
  • Be a part of something bigger than you
  • Establish actual real life experience
  • (sometimes) Better than a resume
  • Great way to make connections
  • Gain exposure and personal branding

How to contribute to Open Source?

  • File a bug report
  • Do a screencast or demo for a feature
  • Write a tutorial
  • Contribute to documentation
  • Get involved in the issue queue

This slide deck is Open Source too

How?!

This slide deck is Open Source too

It was created using a project called reveal.js

You're welcome to fork my slides at presentation-welcome-to-github and suggest improvements, modifications, and updates as you see fit.

Let's Give Some Love

source image: https://www.pexels.com/photo/sun-warmth-heart-love-7544/

Multumesc!

ping me at liran.tal@hpe.com

Open Source & The MEAN Stack Yonder Meet-up 2017 Created by Liran Tal / @lirantal