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

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 

Recently uploaded (20)

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 

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