SlideShare a Scribd company logo
1 of 76
TechShift: There’s
light beyond LAMP




Stephen Tallamy
New Initiatives, NDS
?
typedef const struct {
     int mode; // 0 for I/O, 1 for in only -1 for out only
     unsigned char volatile *addr;      // address
     unsigned char volatile *ddr;}port; // direction reg
port PortJ={
  0,
  (unsigned char volatile *)(0x0028),
  (unsigned char volatile *)(0x0029)};
int MakeOutput(port *ppt){
  if(ppt->mode==1) return 0; // input only
  if(ppt->mode==-1) return 1; // OK, output only
  (*ppt->ddr)=0xff; // make output
  return 1;}
int MakeInput(port *ppt){
  if(ppt->mode==-1) return 0; // output only
  if(ppt->mode==1) return 1; // OK, input only
  (*ppt->ddr)=0x00; // make input
  return 1;}
unsigned char Input(port *ppt){
 return (*ppt->addr);}
void Output(port *ppt, unsigned char data){
 (*ppt->addr)=data;
}
void main(void){ unsigned char MyData;
  MakeInput(&PortJ);
Photo by George Rex.
Light beyond LAMP
Light beyond LAMP
Page
        jQuery
                 Ajax

Linux   Apache
        PHP
        MySQL
Kafka
Keyspace ( ~ Schema )
 Column Family ( ~ Table )
  Row ( ~ Table Row)
    Row    Column ( ~ Table Cell )
    Key      Name       Value   Time
7pm   8pm
Schedule['BBC1-2012-10-16@1900']['title']
    = 'The ONE Show'



     Column Value
                         Column Name

 Column Family          Row Key
Schedule['BBC1-2012-10-16@1900']['title']
    = 'The ONE Show'
Schedule['BBC1-2012-10-16@1900']['genre']
    = 'News'

Schedule['BBC1-2012-10-16@1930']['title']
    = 'Cash Britain'

Schedule['BBC1-2012-10-16@2000']['title']
    = 'EastEnders'
Schedule['BBC1-2012-10-16@2000']['genre']
    = 'Drama'
title        genre
BBC1-2012-   The ONE      News
10-16@1900   Show

             title
BBC1-2012-   Cash
10-16@1930   Britain

             title        genre
BBC1-2012-   EastEnders   Drama
10-16@2000
7pm   8pm
Schedule['BBC1-2012-10-16'][1900] =
'{"title": "The ONE Show",
         "genre": "News"}'

Schedule['BBC1-2012-10-16'][1930] =
'{"title": "Cash Britain"}'

Schedule['BBC1-2012-10-16'][2000] =
'{"title": "EastEnders",
         "genre": "Drama"}'
Column Range Slice


         1900        1930        2000
BBC1-    {"title": {"title": {"title":
2012-10- "The ONE "Cash      "EastEnde
16       Show",    Britain", rs",
         "genre":    "genre": "genre":
         "News"}     "Document "Drama"}
                     ary"}
7pm   8pm
20,000,000 data
                                           points/day
250,000 viewers




Viewing Activity
   Simulator           Real Time         NoSQL Data Store
                   Computation Cluster
Channels      Channel
                        View
Template     Template

Channels     Channel    Controller /
  View        View      Presenter


 Channel     Channel
                        Model
Collection    Model
define([                        Channel
  'backbone'                     Model
],function(Backbone) {
  return Backbone.Model.extend({
    getLogo: function() {
       return this.get('logo');
    },
    getNowImage: function() {
       …
    },
    getNowTitle: function() {
       …
    },
  });
});
Channel
                               Collection
define([
  'backbone',
  'models/channel'
],function(Backbone,Channel) {
  return Backbone.Collection.extend({
    model: Channel,
    url: 'http://api.com/channels.json'
  });
});
define([                        Channel
  'underscore',                   View
  'backbone',
  'text!templates/channel.html'
],function(_,Backbone,template) {
  return Backbone.View.extend({
    render: function() {
      var html = _.template(template,
                           this.model);
      this.setElement(html);
      return this;
    }
  });
});
Channel
                               Template
<li class="channel"
    style="background-image: url(
          <%= model.getNowImage() %>)">
  <img src="<%= model.getLogo() %>"/>
  <span class="title">
    <%= model.getNowTitle() %>
  </span>
</li>
Channels
initialize: function() {           View
   this.collection.bind('add',
                        this.add, this);
},

add : function(item) {
  var view = new ChannelView({ model :
                               item });

    this.$el.append(view.render().el);
}
initialize: function() {
   this.collection.bind('add',
                        this.add, this);
},


finalize : function() {
  this.collection.off(undefined,
                      undefined, this);
}
-webkit-transform:
translate3d(250px, 0px, 0px);
opacity: 0.99;
$('#myDiv').append();
$('#myDiv').stop().animate(
  {property: 450},
  {duration: 500,
   step: function(pos) {
     $(this).css('-webkit-transform',
     'translate3d('+(pos)+'px, 0px, 0px)');
   }
});
                    vs
-webkit-transition: -webkit-transform 500ms;

$('#myDiv').css('-webkit-transform',
            'translate3d(450px, 0px, 0px)');
The Modern JavaScript Application
        Andrew Appleton
 15:10 – 15:50 – Porter Tun Stage
Cookbook
 Recipe
  Resource

 Attributes
 Templates
- cookbooks
  - mybook
    - attributes   knife
    - recipes
    - templates


     Chef client

                   Chef client
# Install nginx package
package "nginx"

# Register nginx as a service
service "nginx" do
  supports :status => true, :restart
            => true, :reload => true
  action :enable
end

# Set up nginx config
template
"/etc/nginx/conf.d/default.conf" do
  source "default.conf.erb"
  owner "root"
  group "root"
Ironfan.cluster 'fowa' do
  cloud(:ec2) do
    availability_zones ['eu-west-1a']
    flavor              'm1.small'
    image_name          'base_ami'
  end

  facet :web do
    instances 2
    recipe "web_server"
    cloud do
         security_group :HTTP_PUBLIC
    end
  end

  facet :cassandra do
[me@chef]$ knife cluster show fowa
+-------------------------+-------+-------------+------------+
| Name                    | Chef? | State       | InstanceID |
+-------------------------+-------+-------------+------------+
| fowa-web-0              | no    | not running |            |
| fowa-web-1              | no    | not running |            |
| fowa-cassandra-0        | yes   | running     | i-1234abcd |
| fowa-cassandra-1        | yes   | running     | i-5678defa |
| fowa-loadTest-0         | yes   | stopped     | i-9123bcde |
+-------------------------+-------+-------------+------------+

[me@chef]$ knife cluster launch fowa-web
--bootstrap

+-------------------------+-------+-------------+------------+
| Name                    | Chef? | State       | InstanceID |
+-------------------------+-------+-------------+------------+
| fowa-web-0              | yes   | running     | i-4567fabc |
| fowa-web-1              | yes   | running     | i-8901defa |
| fowa-cassandra-0        | yes   | running     | i-1234abcd |
| fowa-cassandra-1        | yes   | running     | i-5678defa |
+-------------------------+-------+-------------+------------+
| Name                    | Chef? | State       | InstanceID |
+-------------------------+-------+-------------+------------+
| fowa-web-0              | yes   | running     | i-4567fabc |
| fowa-web-1              | yes   | running     | i-8901defa |
| fowa-cassandra-0        | yes   | running     | i-1234abcd |
| fowa-cassandra-1        | yes   | running     | i-5678defa |
| fowa-loadTest-0         | yes   | stopped     | i-9123bcde |
+-------------------------+-------+-------------+------------+


[me@chef]$ git pull

[me@chef]$ knife cookbook upload mybook

[me@chef]$ knife cluster kick fowa-web-0

[me@chef]$ knife cluster kick fowa-web

[me@chef]$ knife cluster stop fowa
Kafka
Light beyond LAMP
@StephenTallamy

More Related Content

What's hot

Mnesiaで分散ノードに入門してみた
Mnesiaで分散ノードに入門してみたMnesiaで分散ノードに入門してみた
Mnesiaで分散ノードに入門してみたTakahiro Kobaru
 
Building and Incredible Machine with Pipelines and Generators in PHP (IPC Ber...
Building and Incredible Machine with Pipelines and Generators in PHP (IPC Ber...Building and Incredible Machine with Pipelines and Generators in PHP (IPC Ber...
Building and Incredible Machine with Pipelines and Generators in PHP (IPC Ber...dantleech
 
EcmaScript 6 - The future is here
EcmaScript 6 - The future is hereEcmaScript 6 - The future is here
EcmaScript 6 - The future is hereSebastiano Armeli
 
Kotlin Coroutines. Flow is coming
Kotlin Coroutines. Flow is comingKotlin Coroutines. Flow is coming
Kotlin Coroutines. Flow is comingKirill Rozov
 
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵Wanbok Choi
 
Introduction to kotlin coroutines
Introduction to kotlin coroutinesIntroduction to kotlin coroutines
Introduction to kotlin coroutinesNAVER Engineering
 
How CPAN Testers helped me improve my module
How CPAN Testers helped me improve my moduleHow CPAN Testers helped me improve my module
How CPAN Testers helped me improve my moduleacme
 
"Wix Engineering Media AI Photo Studio", Mykola Mykhailych
"Wix Engineering Media AI Photo Studio", Mykola Mykhailych"Wix Engineering Media AI Photo Studio", Mykola Mykhailych
"Wix Engineering Media AI Photo Studio", Mykola MykhailychFwdays
 
UI 모듈화로 워라밸 지키기
UI 모듈화로 워라밸 지키기UI 모듈화로 워라밸 지키기
UI 모듈화로 워라밸 지키기NAVER SHOPPING
 
An introduction to functional programming with go
An introduction to functional programming with goAn introduction to functional programming with go
An introduction to functional programming with goEleanor McHugh
 
Flamingo Training - Hello World
Flamingo Training - Hello WorldFlamingo Training - Hello World
Flamingo Training - Hello Worldi-love-flamingo
 
Writing Redis in Python with asyncio
Writing Redis in Python with asyncioWriting Redis in Python with asyncio
Writing Redis in Python with asyncioJames Saryerwinnie
 
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...Stephen Chin
 
Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Patrick Chanezon
 
Kotlin Coroutines Reloaded
Kotlin Coroutines ReloadedKotlin Coroutines Reloaded
Kotlin Coroutines ReloadedRoman Elizarov
 
"Full Stack frameworks or a story about how to reconcile Front (good) and Bac...
"Full Stack frameworks or a story about how to reconcile Front (good) and Bac..."Full Stack frameworks or a story about how to reconcile Front (good) and Bac...
"Full Stack frameworks or a story about how to reconcile Front (good) and Bac...Fwdays
 
The Ring programming language version 1.6 book - Part 55 of 189
The Ring programming language version 1.6 book - Part 55 of 189The Ring programming language version 1.6 book - Part 55 of 189
The Ring programming language version 1.6 book - Part 55 of 189Mahmoud Samir Fayed
 

What's hot (20)

Mnesiaで分散ノードに入門してみた
Mnesiaで分散ノードに入門してみたMnesiaで分散ノードに入門してみた
Mnesiaで分散ノードに入門してみた
 
Building and Incredible Machine with Pipelines and Generators in PHP (IPC Ber...
Building and Incredible Machine with Pipelines and Generators in PHP (IPC Ber...Building and Incredible Machine with Pipelines and Generators in PHP (IPC Ber...
Building and Incredible Machine with Pipelines and Generators in PHP (IPC Ber...
 
Aimaf
AimafAimaf
Aimaf
 
EcmaScript 6 - The future is here
EcmaScript 6 - The future is hereEcmaScript 6 - The future is here
EcmaScript 6 - The future is here
 
Kotlin Coroutines. Flow is coming
Kotlin Coroutines. Flow is comingKotlin Coroutines. Flow is coming
Kotlin Coroutines. Flow is coming
 
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
 
Introduction to kotlin coroutines
Introduction to kotlin coroutinesIntroduction to kotlin coroutines
Introduction to kotlin coroutines
 
ECMAScript 6
ECMAScript 6ECMAScript 6
ECMAScript 6
 
How CPAN Testers helped me improve my module
How CPAN Testers helped me improve my moduleHow CPAN Testers helped me improve my module
How CPAN Testers helped me improve my module
 
"Wix Engineering Media AI Photo Studio", Mykola Mykhailych
"Wix Engineering Media AI Photo Studio", Mykola Mykhailych"Wix Engineering Media AI Photo Studio", Mykola Mykhailych
"Wix Engineering Media AI Photo Studio", Mykola Mykhailych
 
UI 모듈화로 워라밸 지키기
UI 모듈화로 워라밸 지키기UI 모듈화로 워라밸 지키기
UI 모듈화로 워라밸 지키기
 
Symfony2 revealed
Symfony2 revealedSymfony2 revealed
Symfony2 revealed
 
An introduction to functional programming with go
An introduction to functional programming with goAn introduction to functional programming with go
An introduction to functional programming with go
 
Flamingo Training - Hello World
Flamingo Training - Hello WorldFlamingo Training - Hello World
Flamingo Training - Hello World
 
Writing Redis in Python with asyncio
Writing Redis in Python with asyncioWriting Redis in Python with asyncio
Writing Redis in Python with asyncio
 
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
 
Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?
 
Kotlin Coroutines Reloaded
Kotlin Coroutines ReloadedKotlin Coroutines Reloaded
Kotlin Coroutines Reloaded
 
"Full Stack frameworks or a story about how to reconcile Front (good) and Bac...
"Full Stack frameworks or a story about how to reconcile Front (good) and Bac..."Full Stack frameworks or a story about how to reconcile Front (good) and Bac...
"Full Stack frameworks or a story about how to reconcile Front (good) and Bac...
 
The Ring programming language version 1.6 book - Part 55 of 189
The Ring programming language version 1.6 book - Part 55 of 189The Ring programming language version 1.6 book - Part 55 of 189
The Ring programming language version 1.6 book - Part 55 of 189
 

Similar to TechShift: There’s light beyond LAMP

Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCpootsbook
 
The Current State of Table API in 2022
The Current State of Table API in 2022The Current State of Table API in 2022
The Current State of Table API in 2022Flink Forward
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasminePaulo Ragonha
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for CassandraEdward Capriolo
 
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"DataStax Academy
 
Modern query optimisation features in MySQL 8.
Modern query optimisation features in MySQL 8.Modern query optimisation features in MySQL 8.
Modern query optimisation features in MySQL 8.Mydbops
 
Server-Side Push: Comet, Web Sockets come of age (OSCON 2013)
Server-Side Push: Comet, Web Sockets come of age (OSCON 2013)Server-Side Push: Comet, Web Sockets come of age (OSCON 2013)
Server-Side Push: Comet, Web Sockets come of age (OSCON 2013)Brian Sam-Bodden
 
Monitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
Monitoring Your ISP Using InfluxDB Cloud and Raspberry PiMonitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
Monitoring Your ISP Using InfluxDB Cloud and Raspberry PiInfluxData
 
Streaming Data from Scylla to Kafka
Streaming Data from Scylla to KafkaStreaming Data from Scylla to Kafka
Streaming Data from Scylla to KafkaScyllaDB
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastAtlassian
 
Graphics & Animation with HTML5
Graphics & Animation with HTML5Graphics & Animation with HTML5
Graphics & Animation with HTML5Knoldus Inc.
 
Vertically Scaled Design Patters
Vertically Scaled Design PattersVertically Scaled Design Patters
Vertically Scaled Design PattersJeff Malnick
 
Short Intro to PHP and MySQL
Short Intro to PHP and MySQLShort Intro to PHP and MySQL
Short Intro to PHP and MySQLJussi Pohjolainen
 
OpenStack API's and WSGI
OpenStack API's and WSGIOpenStack API's and WSGI
OpenStack API's and WSGIMike Pittaro
 
Pads lab manual final
Pads lab manual finalPads lab manual final
Pads lab manual finalAhalyaR
 
Lift Presentation at DuSE VI
Lift Presentation at DuSE VILift Presentation at DuSE VI
Lift Presentation at DuSE VIPeter Robinett
 
Minimizing Decision Fatigue to Improve Team Productivity
Minimizing Decision Fatigue to Improve Team ProductivityMinimizing Decision Fatigue to Improve Team Productivity
Minimizing Decision Fatigue to Improve Team ProductivityDerek Lee Boire
 

Similar to TechShift: There’s light beyond LAMP (20)

angular fundamentals.pdf
angular fundamentals.pdfangular fundamentals.pdf
angular fundamentals.pdf
 
Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVC
 
The Current State of Table API in 2022
The Current State of Table API in 2022The Current State of Table API in 2022
The Current State of Table API in 2022
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for Cassandra
 
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
 
Modern query optimisation features in MySQL 8.
Modern query optimisation features in MySQL 8.Modern query optimisation features in MySQL 8.
Modern query optimisation features in MySQL 8.
 
Server-Side Push: Comet, Web Sockets come of age (OSCON 2013)
Server-Side Push: Comet, Web Sockets come of age (OSCON 2013)Server-Side Push: Comet, Web Sockets come of age (OSCON 2013)
Server-Side Push: Comet, Web Sockets come of age (OSCON 2013)
 
Play vs Rails
Play vs RailsPlay vs Rails
Play vs Rails
 
Monitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
Monitoring Your ISP Using InfluxDB Cloud and Raspberry PiMonitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
Monitoring Your ISP Using InfluxDB Cloud and Raspberry Pi
 
Streaming Data from Scylla to Kafka
Streaming Data from Scylla to KafkaStreaming Data from Scylla to Kafka
Streaming Data from Scylla to Kafka
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
 
Graphics & Animation with HTML5
Graphics & Animation with HTML5Graphics & Animation with HTML5
Graphics & Animation with HTML5
 
Vertically Scaled Design Patters
Vertically Scaled Design PattersVertically Scaled Design Patters
Vertically Scaled Design Patters
 
Short Intro to PHP and MySQL
Short Intro to PHP and MySQLShort Intro to PHP and MySQL
Short Intro to PHP and MySQL
 
OpenStack API's and WSGI
OpenStack API's and WSGIOpenStack API's and WSGI
OpenStack API's and WSGI
 
Pads lab manual final
Pads lab manual finalPads lab manual final
Pads lab manual final
 
Pdxpugday2010 pg90
Pdxpugday2010 pg90Pdxpugday2010 pg90
Pdxpugday2010 pg90
 
Lift Presentation at DuSE VI
Lift Presentation at DuSE VILift Presentation at DuSE VI
Lift Presentation at DuSE VI
 
Minimizing Decision Fatigue to Improve Team Productivity
Minimizing Decision Fatigue to Improve Team ProductivityMinimizing Decision Fatigue to Improve Team Productivity
Minimizing Decision Fatigue to Improve Team Productivity
 

Recently uploaded

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

TechShift: There’s light beyond LAMP

  • 1. TechShift: There’s light beyond LAMP Stephen Tallamy New Initiatives, NDS
  • 2. ?
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. typedef const struct { int mode; // 0 for I/O, 1 for in only -1 for out only unsigned char volatile *addr; // address unsigned char volatile *ddr;}port; // direction reg port PortJ={ 0, (unsigned char volatile *)(0x0028), (unsigned char volatile *)(0x0029)}; int MakeOutput(port *ppt){ if(ppt->mode==1) return 0; // input only if(ppt->mode==-1) return 1; // OK, output only (*ppt->ddr)=0xff; // make output return 1;} int MakeInput(port *ppt){ if(ppt->mode==-1) return 0; // output only if(ppt->mode==1) return 1; // OK, input only (*ppt->ddr)=0x00; // make input return 1;} unsigned char Input(port *ppt){ return (*ppt->addr);} void Output(port *ppt, unsigned char data){ (*ppt->addr)=data; } void main(void){ unsigned char MyData; MakeInput(&PortJ);
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 15.
  • 17.
  • 19. Page jQuery Ajax Linux Apache PHP MySQL
  • 20. Kafka
  • 21.
  • 22.
  • 23.
  • 24. Keyspace ( ~ Schema ) Column Family ( ~ Table ) Row ( ~ Table Row) Row Column ( ~ Table Cell ) Key Name Value Time
  • 25. 7pm 8pm
  • 26. Schedule['BBC1-2012-10-16@1900']['title'] = 'The ONE Show' Column Value Column Name Column Family Row Key
  • 27. Schedule['BBC1-2012-10-16@1900']['title'] = 'The ONE Show' Schedule['BBC1-2012-10-16@1900']['genre'] = 'News' Schedule['BBC1-2012-10-16@1930']['title'] = 'Cash Britain' Schedule['BBC1-2012-10-16@2000']['title'] = 'EastEnders' Schedule['BBC1-2012-10-16@2000']['genre'] = 'Drama'
  • 28. title genre BBC1-2012- The ONE News 10-16@1900 Show title BBC1-2012- Cash 10-16@1930 Britain title genre BBC1-2012- EastEnders Drama 10-16@2000
  • 29. 7pm 8pm
  • 30. Schedule['BBC1-2012-10-16'][1900] = '{"title": "The ONE Show", "genre": "News"}' Schedule['BBC1-2012-10-16'][1930] = '{"title": "Cash Britain"}' Schedule['BBC1-2012-10-16'][2000] = '{"title": "EastEnders", "genre": "Drama"}'
  • 31. Column Range Slice 1900 1930 2000 BBC1- {"title": {"title": {"title": 2012-10- "The ONE "Cash "EastEnde 16 Show", Britain", rs", "genre": "genre": "genre": "News"} "Document "Drama"} ary"}
  • 32.
  • 33.
  • 34. 7pm 8pm
  • 35.
  • 36. 20,000,000 data points/day 250,000 viewers Viewing Activity Simulator Real Time NoSQL Data Store Computation Cluster
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45. Channels Channel View Template Template Channels Channel Controller / View View Presenter Channel Channel Model Collection Model
  • 46. define([ Channel 'backbone' Model ],function(Backbone) { return Backbone.Model.extend({ getLogo: function() { return this.get('logo'); }, getNowImage: function() { … }, getNowTitle: function() { … }, }); });
  • 47. Channel Collection define([ 'backbone', 'models/channel' ],function(Backbone,Channel) { return Backbone.Collection.extend({ model: Channel, url: 'http://api.com/channels.json' }); });
  • 48. define([ Channel 'underscore', View 'backbone', 'text!templates/channel.html' ],function(_,Backbone,template) { return Backbone.View.extend({ render: function() { var html = _.template(template, this.model); this.setElement(html); return this; } }); });
  • 49. Channel Template <li class="channel" style="background-image: url( <%= model.getNowImage() %>)"> <img src="<%= model.getLogo() %>"/> <span class="title"> <%= model.getNowTitle() %> </span> </li>
  • 50. Channels initialize: function() { View this.collection.bind('add', this.add, this); }, add : function(item) { var view = new ChannelView({ model : item }); this.$el.append(view.render().el); }
  • 51. initialize: function() { this.collection.bind('add', this.add, this); }, finalize : function() { this.collection.off(undefined, undefined, this); }
  • 52.
  • 53.
  • 54.
  • 55.
  • 57. $('#myDiv').stop().animate( {property: 450}, {duration: 500, step: function(pos) { $(this).css('-webkit-transform', 'translate3d('+(pos)+'px, 0px, 0px)'); } }); vs -webkit-transition: -webkit-transform 500ms; $('#myDiv').css('-webkit-transform', 'translate3d(450px, 0px, 0px)');
  • 58.
  • 59.
  • 60. The Modern JavaScript Application Andrew Appleton 15:10 – 15:50 – Porter Tun Stage
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66. Cookbook Recipe Resource Attributes Templates
  • 67. - cookbooks - mybook - attributes knife - recipes - templates Chef client Chef client
  • 68. # Install nginx package package "nginx" # Register nginx as a service service "nginx" do supports :status => true, :restart => true, :reload => true action :enable end # Set up nginx config template "/etc/nginx/conf.d/default.conf" do source "default.conf.erb" owner "root" group "root"
  • 69. Ironfan.cluster 'fowa' do cloud(:ec2) do availability_zones ['eu-west-1a'] flavor 'm1.small' image_name 'base_ami' end facet :web do instances 2 recipe "web_server" cloud do security_group :HTTP_PUBLIC end end facet :cassandra do
  • 70. [me@chef]$ knife cluster show fowa +-------------------------+-------+-------------+------------+ | Name | Chef? | State | InstanceID | +-------------------------+-------+-------------+------------+ | fowa-web-0 | no | not running | | | fowa-web-1 | no | not running | | | fowa-cassandra-0 | yes | running | i-1234abcd | | fowa-cassandra-1 | yes | running | i-5678defa | | fowa-loadTest-0 | yes | stopped | i-9123bcde | +-------------------------+-------+-------------+------------+ [me@chef]$ knife cluster launch fowa-web --bootstrap +-------------------------+-------+-------------+------------+ | Name | Chef? | State | InstanceID | +-------------------------+-------+-------------+------------+ | fowa-web-0 | yes | running | i-4567fabc | | fowa-web-1 | yes | running | i-8901defa | | fowa-cassandra-0 | yes | running | i-1234abcd | | fowa-cassandra-1 | yes | running | i-5678defa |
  • 71. +-------------------------+-------+-------------+------------+ | Name | Chef? | State | InstanceID | +-------------------------+-------+-------------+------------+ | fowa-web-0 | yes | running | i-4567fabc | | fowa-web-1 | yes | running | i-8901defa | | fowa-cassandra-0 | yes | running | i-1234abcd | | fowa-cassandra-1 | yes | running | i-5678defa | | fowa-loadTest-0 | yes | stopped | i-9123bcde | +-------------------------+-------+-------------+------------+ [me@chef]$ git pull [me@chef]$ knife cookbook upload mybook [me@chef]$ knife cluster kick fowa-web-0 [me@chef]$ knife cluster kick fowa-web [me@chef]$ knife cluster stop fowa
  • 72.
  • 73.
  • 74. Kafka