2. Technology
Trends
Development Methodology
Modern scripting languages
Continuous Integration
Frameworks
Node.js and JavaScript
Cloud Computing Browsers - Not IDE
Application
Containers
DevOps
Social Code
Sharing/Distributed
version control
Libraries and API’s
Big Data
Internet of Things [IOTS
3D-Printing
No SQL DB’s
AGENDA
3. Software Development Methodology
Agile Development
Current/Future
Water-Fall Development
Iteration
–1
Iteration
0
Iteration
–1
ReleaseIteration –1Constructio
n Iterations
Start work on release N+1
Deliver a working
system which meets
the changing needs of
stakeholders
Deploy
Release N
into Production
Operate and
Support
Release N
Remove
the system
completely
from
production
Old /Fading
Select
the project
Initiate
the project
Production
Retirement
<--Agile--> <--Iterative--> <--Waterfall-->
<----|-------------|----------------|----->
Adaptive Predictive
4. Agile Software Development
Agile software development is a conceptual framework for software engineering that promotes development iterations
throughout the life-cycle of the project.
Software developed during one unit of time is referred to as an iteration, which may last from one to four weeks.
Agile methods also emphasize working software as the primary measure of progress
Characteristics
Modularity
Iterative
Time-bound
Incremental
Convergent
People-oriented
Collaborative
What Is Agile ?
Agile --readiness for motion, nimbleness, activity, dexterity in motion
Agility
The ability to both create and respond to change in order to profit in a
turbulent business environment
Companies need to determine the amount of agility they need to be competitive
Existing Agile Methods
Extreme Programming (“XP”)
Agile Unified Process
Scrum
It is an Agile S/w development
method for project management
Characteristics:
Prioritized work is done.
Completion of backlog items
Progress is explained
Agile Software Development
Scrum
5. Node.Js -Server Side JavaScript
Node.js was created by Ryan Dahl in 2009.
Event-ed I/O for Server Side Java Script.
Runs on Google's V8 JavaScript Engine [ Same Used By Chrome ]
JavaScript used in client-side but node.js puts the JavaScript on server-side
thus making communication between client and server will happen in same language
Servers are normally thread based but Node.JS is “Event” based. Node.JS
serves each request in a Event-ed loop that can able to handle simultaneous requests.
platform for writing JavaScript applications outside web browsers.
no DOM no other browser capability can’t run on GUI
Runs on POSIX like terminal [ UNIX derivatives ]
In a normal process cycle the web-server while processing the request will have to wait
for the IO operations and thus blocking the next request to be processed.
Node.JS process each request as events, The server doesn’t wait for the IO
operation to complete while it can handle other request at the same time.
Platform Requests/Second
PHP ( via Apache) 3187,27
Node.js 5569,30
6. Shipping Application Containers –ships bundles of right libraries Test Machine
server.
Eliminates incompatibilities between our desktops and the server .
Application Containers Docker
Internet of Things [IOTS]
•called The Internet of Objects, refers to a wireless network between objects, usually the
network will be wireless and self-configuring, such as household appliances.
•From any time ,any place connectivity for anyone, we will now have connectivity for anything!
RFID
Sensor
Smart Network
Nano Tech
7. Social Code Sharing/
Distributed Version Control
GitHub
Source Forge
Visual Studio
Online[VSO]
Git is a Distributed Version
Control System that was
developed initially as part
of the Linux development
initiative, and later on as an
independent open source
project
Git forces the user to clone
the server repository on the
user’s machine. In this
way, the user gets all the
versions of all the files of
that software in a local
repository.
VSO is an implementation of TFS on the
cloud maintained by Microsoft.
Microsoft Team Foundation Server
included Git from its version TFS 2012.2.
1) Team Foundation Version Control (TFVC) is a
centralized version control system.
2) It stores all the versions of software at a central
repository; the database of TFS.
3) Whenever a request comes in, either the latest
version or a specific version of files is given to
the user by transferring over the network from
TFS.
4) All the other versions remain on the central
repository only.
9. 3D Printing
3D printing creates three-dimensional objects via various processes. Also
known as additive manufacturing, 3D printing relies on computer control to
form an object by printing successive layers of a material. Materials currently
in use include thermoplastics, advanced nickel alloys, carbon fiber, glass,
conductive ink, rubber, modelling clay, and biological matter.
Definitions Back
No SQL is a class of database management
system identified by its non-adherence to the
widely used relational database management
system (RDBMS) model with its structured query
language (SQL).
NOSQL has evolved to mean “Not Only” SQL
NOSQL has become prominent with the advent
of web scale data and systems created by Google,
Facebook, Amazon, Twitter and others to manage
data for which SQL was not the best fit
10. What is Continuous
Integration?"Continuous Integration is a software development practice where members of a
team integrate their work frequently, usually each person integrates at least daily -
leading to multiple integrations per day. Each integration is verified by an
automated build (including test) to detect integration errors as quickly as possible"
--Martin Fowler
Definitions
Back
• Source Control - Git & Subversion
• Scripting - NAnt (will briefly see Rake, PSake, & Phantom)
• Unit Test - NUnit
• Build Server - TeamCity
13. Big Volume
With simple (SQL) analytics
With complex (non-SQL) analytics
Big Velocity
Drink from the fire hose
Big Variety
Large number of diverse data sources to integrate
Big Veracity
The Meaning of Big Data - 4 V’s
Detecting and correcting noisy and inconsistent data are important to
conduct trustable analysis. Establishing trust in big data presents a huge
challenge as the variety and number of sources grows
14.
15. In cloud computing, hardware and software capabilities are a pool of virtualized
resources provided over a network, often the Internet. Businesses and employees have
access to applications and IT infrastructure anywhere, at any time, and on any device
CLOUD COMPUTING PLATFORM
16. Trending Languages-2016
Google Go:Google’s Go Programming Language was created in 2009 by three
Google employees, Robert Griesemer, Rob Pike, and Ken Thompson. The language’s
success can be seen clearly by the fact that BBC, SoundCloud, Facebook and UK
Government’s official website are some of the notable users of Go. It is faster, easier to
learn and does the same job that C++ or Java has been doing for us. As the creators said,
“Go is an attempt to combine the ease of programming of an interpreted, dynamically typed
language with the efficiency and safety of a statically typed, compiled language.
Hack
Swift:-According to Apple, Swift brings the best of Python and Ruby together and adds
modern programming fundamentals, to make it more effective and fun. If you’ve been
using or were planning on learning Objective C to develop iOS apps,
Rust
Julia
Dart:-Given that Google Go has garnered such unprecedented success, the other language
from Google – Google Dart – has been in its shadows for the past 7-8 months. However, now
that app development is gaining pace, people are realising how useful Dart can be in
implementing high performance architecture and performing modern app development.
Unveiled as a substitute for Javascript for browser apps, Dart is finally realising its true
potential and is expected to continue its rise in the coming years.
17. Julia is a high-level dynamic programming language designed to address the
requirements of high-performance numerical andscientific computing
Stable Release :19 June 2016
Influenced byMATLAB, Lisp, C, Fortran, Mathematica[4](strictly its Wolfram
Language), Python, Perl
For generating and running Turing machines, creating graphics and audio, analyzing
3D models, matrix manipulations, and solving differential equations
Delivering Hadoop style parallelism, Julia’s stock in the tech industry is rising. The
Julia Language is highlighted as one that is destined to make a major impact in the
future. Described as a high level, high performance, dynamic programming
language for technical computing
http://julialang.org
18. R is a programming language and software environment for statistical computing and
graphics supported by the R Foundation for Statistical Computing.[4]
The R language is widely used among statisticians and data miners for
developing statistical software[5]and data analysis
Filtype Extensions: .r, .R, .RData, .rds, .rda
r-project.org
Jasmine (JavaScript testing framework)
Jasmine is an open source testing framework for JavaScript.[2] It aims to run on
any JavaScript-enabled platform, to not intrude on the application nor
the IDE, and to have easy-to-read syntax. It is heavily influenced by other unit
testing frameworks, such asScrewUnit, JSSpec, JSpec, and RSpec.[3]
http://jasmine.github.io/
19. In 2010, Kaggle was founded as a platform for predictive modelling and analytics
competitions on which companies and researchers post their data and statisticians
and data miners from all over the world compete to produce the best models
Kaggle has run over 200 data science competitions since the company was founded.
It is best known as the platform hosting the $3 million Heritage Health Prize. Other
competitions have looked at improving gesture recognition for Microsoft Kinect,[5] or
at improving the search for the Higgs boson at CERN
https://www.kaggle.com
Feedzai was founded by data scientists and aerospace engineers with one powerful mission: Make commerce
safe for business customers and create a better experience for their consumers through artificially intelligent
machine learning.
Pulse QL
Pulse QL is a data query language created by Feedzai to meet the rise in the volume of data stored about
users, events and objects as well as the ultra-high frequency in which this data is accessed. Together with the
other technologies, Pulse QL enables data systems that are non-relational, distributed, open-source and
horizontally scalable.
20. The Phantom Language is a powerful, robust scripting language used to
automate interaction with windows and controls in Microsoft Windows
operating systems. The language supports common scripting capabilities such as
variables, flow control, and user defined functions coupled with a large set of built-in
functions designed specifically for automation.
Phantom is very stable, providing a platform for reliable, repeatable automation. With
over 200 built-in functions and the ability to create user-defined functions, there is
virtually no task that cannot be automated using Phantom.
The following are just a few examples of how Phantom can be used:
Automated Testing - Phantom can be used to automate the testing of Microsoft
Windows based applications. Phantom test scripts are a valuable, repeatable addition to
any manual testing process.
Regression Testing - Phantom scripts can be used to perform automated regression
testing of your product. This is a cost-effective way to ensure new changes to an
application dont introduce defects in existing features.
Process Automation - Phantom can be used to automate complex processes requiring
user interaction between many different kinds of applications. By using Phantom to
automate processes, manual error input errors are eliminated, resulting in a more
efficient, stable process.
21. Latest: Preprocessors
Old: Full language stacks
Hot: JavaScript MV* frameworks
Old: JavaScript files
Hot: CSS frameworks
Old: Generic Cascading Style Sheets
Hot: SVG + JavaScript on Canvas
Old: Flash
Hot: Almost big data (analysis without Hadoop)
Old: Big data (with Hadoop)
Hot: Spark
Old: Hadoop
Hot: Single-page Web apps
Old: Websites
Hot: Android
Old: iOS
Hot: GPU
Old: CPU
Hot: Web interfaces
Old: IDEs
Hot: IaaS
Old: PaaS
Hot: Node.js
Old: JavaEE, Ruby on Rails
Hot: PHP 7.0
Old: Old PHP
Trending Hot Vs Old -2016
22. DevOps
Tools such as Docker (containerization), Jenkins (continuous
Integration), Puppet (Infrastructure as Code) and Vagrant (virtualization platform) among
many others are often used and frequently referenced in DevOps tooling discussions