You're Going To Need A Bigger Toolbox
Upcoming SlideShare
Loading in...5
×
 

You're Going To Need A Bigger Toolbox

on

  • 3,863 views

Talk from Design It Build It conference in Newcastle. Convincing people to look outside their current development tools for inspiration

Talk from Design It Build It conference in Newcastle. Convincing people to look outside their current development tools for inspiration

Statistics

Views

Total Views
3,863
Views on SlideShare
3,496
Embed Views
367

Actions

Likes
10
Downloads
59
Comments
0

8 Embeds 367

http://morethanseven.net 204
http://www.morethanseven.net 87
http://www.scoop.it 36
http://www.slideshare.net 24
http://lanyrd.com 8
http://londondevops.org 6
http://static.slidesharecdn.com 1
http://xss.yandex.net 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

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

You're Going To Need A Bigger Toolbox You're Going To Need A Bigger Toolbox Presentation Transcript

  • You’re Going To Need A Bigger Toolbox DIBI 28th April 2010 gareth rushgrove | morethanseven.net http://www.flickr.com/photos/booleansplit/2376359338/
  • morethanseven.net Gareth Rushgrove gareth rushgrove | morethanseven.net
  • We Used To Just Build Websites gareth rushgrove | morethanseven.net View slide
  • Probably Simple Websites gareth rushgrove | morethanseven.net View slide
  • Maybe the odd Ecommerce Site gareth rushgrove | morethanseven.net
  • Then We Built Web Applications gareth rushgrove | morethanseven.net
  • Now We Just Build. gareth rushgrove | morethanseven.net
  • Your Toolbox is Growing gareth rushgrove | morethanseven.net http://www.flickr.com/photos/gordonr/42555739
  • 1 Embrace Heterogeneous Environments gareth rushgrove | morethanseven.net http://www.flickr.com/photos/mk1971/2548492513/
  • 1 No Development Tool Silver Bullet gareth rushgrove | morethanseven.net http://www.flickr.com/photos/mk1971/2548492513/
  • We Build Websites With... gareth rushgrove | morethanseven.net http://www.flickr.com/photos/freefoto/3436970425/
  • PHP, MySQL, Apache gareth rushgrove | morethanseven.net
  • .NET, MSSQL, IIS gareth rushgrove | morethanseven.net
  • Java, Oracle, Tomcat gareth rushgrove | morethanseven.net
  • Lots of Others gareth rushgrove | morethanseven.net
  • Just One Stack? gareth rushgrove | morethanseven.net http://www.flickr.com/photos/harrygoldenfeld/4263710200/
  • The Guardian Java, Python, Oracle, App Engine gareth rushgrove | morethanseven.net
  • LastFM PHP, C++, Java, Hadoop, Python gareth rushgrove | morethanseven.net
  • GitHub Ruby, Erlang, MySQL, Redis, Sinatra gareth rushgrove | morethanseven.net
  • Twitter Ruby, Scala, Java, C/C++ gareth rushgrove | morethanseven.net
  • Facebook PHP, Erlang, C, MySQL, Cassandra gareth rushgrove | morethanseven.net
  • 2 2. Know When Your Stack is out of its Depth gareth rushgrove | morethanseven.net http://www.flickr.com/photos/dk_spook/2421009077/
  • What Should You Know About? gareth rushgrove | morethanseven.net http://www.flickr.com/photos/takomabibelot/220265100/
  • wiki.nginx.org Serve Web Pages With Nginx gareth rushgrove | morethanseven.net
  • “Apache is like Microsoft Word, it has a million options but you only need six. Nginx does those six things, and it does five of them 50 times faster than Apache. Chris Lea Why Nginx gareth rushgrove | morethanseven.net
  • server { listen 80; server_name www.example.com; location / { root /var/www/example.com; } } Nginx Example gareth rushgrove | morethanseven.net
  • http { upstream php { server localhost:8002; } upstream python { server localhost:8003; } } server { server_name www.example.com; location / { proxy_pass http://python; } location ~ /basket/* { proxy_pass http://php; } } Nginx Example gareth rushgrove | morethanseven.net
  • - Thin - http://code.macournoyer.com/thin/ - Mongrel - http://github.com/fauna/mongrel/ - Spawning - http://pypi.python.org/pypi/Spawning/ - Unicorn - http://github.com/defunkt/unicorn/ Also See gareth rushgrove | morethanseven.net
  • memcached.org Caching with Memcached gareth rushgrove | morethanseven.net
  • from django.core.cache import cache key = "/about/" content = cache.get(key) if not content: # expensive query to get content cache.set(key, content, 300) Memcached Example gareth rushgrove | morethanseven.net
  • - Squid - http://www.squid-cache.org - Varnish - http://varnish-cache.org Also See gareth rushgrove | morethanseven.net
  • lucene.apache.org/solr/ Search with Solr gareth rushgrove | morethanseven.net
  • http://solr:8983/solr/products/select/ ?q=colour:red &sort=price%20desc &rows=60 &wt=json Solr Example gareth rushgrove | morethanseven.net
  • - Xapian - http://xapian.org - Sphinx - http://sphinxsearch.com - Nutch - http://lucene.apache.org/nutch/ - Whoosh - http://whoosh.ca Also See gareth rushgrove | morethanseven.net
  • rabbitmq.com Asynchronous Processing with RabbitMQ gareth rushgrove | morethanseven.net
  • require 'carrot' q = Carrot.queue('carrot', :durable => true) 10.times do |num| q.publish(num.to_s) end RabbitMQ Enqueue Example gareth rushgrove | morethanseven.net
  • puts "count: #{q.message_count}" while msg = q.pop(:ack => true) puts msg q.ack end Carrot.stop RabbitMQ Dequeue Example gareth rushgrove | morethanseven.net
  • - Apache ActiveMQ - http://activemq.apache.org - Beanstalk - http://kr.github.com/beanstalkd/ - Stomp Server - http://stomp.codehaus.org - MemcacheQ - http://memcachedb.org/memcacheq/ Also See gareth rushgrove | morethanseven.net
  • couchdb.apache.org Data Storage With CouchDB gareth rushgrove | morethanseven.net
  • <?php $options['host'] = "localhost"; $options['port'] = 5984; $couch = new CouchSimple($options); $resp = $couch->send("PUT", "/test"); $resp = $couch->send("PUT", "/test/123", '{"_id":"123","data":"Foo"}'); ?> CouchDB Example gareth rushgrove | morethanseven.net
  • <?php $options['host'] = "localhost"; $options['port'] = 5984; $couch = new CouchSimple($options); $resp = $couch->send("GET", "/test/_all_docs"); $resp = $couch->send("GET", "/test/123"); $resp = $couch->send("DELETE", "/test/"); ?> CouchDB Example gareth rushgrove | morethanseven.net
  • - MongoDB - http://www.mongodb.org - Tokyo Tyrant - http://1978th.net/tokyotyrant/ - Cassandra - http://cassandra.apache.org - Redis - http://code.google.com/p/redis/ Also See gareth rushgrove | morethanseven.net
  • hadoop.apache.org Data Mining With Hive gareth rushgrove | morethanseven.net
  • CREATE TABLE u_data ( userid INT, movieid INT, rating INT, unixtime STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY 't' STORED AS TEXTFILE; Hive Create Example Cucumber DSL Example gareth rushgrove | morethanseven.net
  • LOAD DATA LOCAL INPATH 'data.txt' OVERWRITE INTO TABLE u_data; SELECT COUNT(1) FROM u_data; Hive Load DSL Example Cucumber Example gareth rushgrove | morethanseven.net
  • add FILE weekday_mapper.py; INSERT OVERWRITE TABLE u_data_new SELECT TRANSFORM (userid, movieid, rating, unixtime) USING 'python weekday_mapper.py' AS (userid, movieid, rating, weekday) FROM u_data; SELECT weekday, COUNT(1) FROM u_data_new GROUP BY weekday; Hive Map Reduce Example Cucumber DSL Example gareth rushgrove | morethanseven.net
  • - Hadoop - http://hadoop.apache.org - Hive - http://wiki.apache.org/hadoop/Hive/ - Pig - http://hadoop.apache.org/pig/ - Dumbo - http://lastfm.com/dumbo/ - Disco - http://discoproject.org Also See gareth rushgrove | morethanseven.net
  • cukes.info Testing with Cucumber gareth rushgrove | morethanseven.net
  • Feature: google.co.uk To broaden their knowledge A user should be able To search for things Scenario: Searching for things Given I visit "http://www.google.co.uk" When I fill in "q" with "wikipedia" And I press "Google Search" Then I should see "www.wikipedia.org" Cucumber DSL Example gareth rushgrove | morethanseven.net
  • Feature: google.co.uk To broaden their knowledge A user should be able To search for things Scenario: Searching for things Given I visit "http://www.google.co.uk" When I fill in "q" with "wikipedia" And I press "Google Search" Then I should see "www.wikipedia.org" 1 scenario (1 failed) 4 steps (1 failed, 2 skipped, 1 passed) 0m0.332s Cucumber Results Example gareth rushgrove | morethanseven.net
  • puppetlabs.com Server Provisioning with Puppet gareth rushgrove | morethanseven.net
  • class baseclass { $packagelist = ["sudo", "openssh-server"] package { $packagelist: ensure => installed } service { sshd: name => "ssh", enable => true, ensure => running } } Puppet Class Example gareth rushgrove | morethanseven.net
  • node 'example.com' inherits basenode { $packagelist = ["nginx"] package { $packagelist: ensure => installed } service { "nginx": ensure => running, require => Package["nginx"] } } Puppet Node Example gareth rushgrove | morethanseven.net
  • - Chef - http://wiki.opscode.com/display/chef/Home/ Also See gareth rushgrove | morethanseven.net
  • Conclusions gareth rushgrove | morethanseven.net http://www.flickr.com/photos/batega/1596898776/
  • 1 Know What's Possible gareth rushgrove | morethanseven.net http://www.flickr.com/photos/docman/36125185/
  • 2 Look for Opportunities gareth rushgrove | morethanseven.net http://www.flickr.com/photos/kgregory/500456103/
  • 3 Experiment gareth rushgrove | morethanseven.net http://www.flickr.com/photos/seeminglee/3967329241/
  • 4 Manage Complexity gareth rushgrove | morethanseven.net http://www.flickr.com/photos/30890318@N06/3510161637/
  • Questions? gareth rushgrove | morethanseven.net http://flickr.com/photos/psd/102332391/