12 core technologies you should learn, love, and hate to be a 'real' technocrat
TRANSCRIPT
![Page 1: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/1.jpg)
12 core technologies you should learn, love, and hate to be a 'real' technocrat
jon linowespodcamp nh nov 8, 2009
![Page 2: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/2.jpg)
what?why?
learn
knowledgeskillfulove
appreciationpassionftw
hate
confusionpainwtf
![Page 3: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/3.jpg)
oscillating between confusion and success, as one progresses along a learning curve
-1, 0, +1where are you?
![Page 4: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/4.jpg)
![Page 5: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/5.jpg)
1. the command line
2. html (tags, dom)
3. css (styles, selectors, media type)
4. http (request, response, caching, sessions)
5. programming (objects, control, BDD)
6. javascript (& ajax)
7. MVC application frameworks
8. database (structure, sql)
9. hosting (server layers, clusters, caching)
10. media - images, video & mp3 (resolution, compression, etc)
11. business (users, customers, partners, investors, staff)
12. (TBD)
![Page 6: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/6.jpg)
TIME CHALLENGE
Time allotted: 45 minutes
Presentation: 35 minutes
Discussion: 10 minutes
75 slides = 28 seconds per slide...
![Page 7: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/7.jpg)
1. the command line
![Page 8: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/8.jpg)
![Page 9: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/9.jpg)
![Page 10: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/10.jpg)
![Page 11: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/11.jpg)
![Page 12: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/12.jpg)
![Page 13: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/13.jpg)
![Page 14: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/14.jpg)
Command Line, Why?
because it feels good to “let your fingers do the walking”while you're working “under the hood”
it can be...faster (typing vs clicking)more direct (names vs picture)more flexible (plethora of options)you're already there (fingers already on the kb)more natural (login to remote machines)the only way (e.g ping)
![Page 15: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/15.jpg)
Example *nix commands:
ls -lSr - list files (sorted by size)less some.file - list a text document, paginatemkdir newfolder - create a new folder (directory)mv my.file newname.file - move, rename a filecp my.file dup.file - copy a filescp my.file [email protected]:/stuff - copy a file across the 'netdu -sh /some/dir - show how much space dir is taking upps aux | grep blah - list all the running processes
but only show ones that contain 'blah'mysqldump > mydb.sql - backup a databasemysql < mydb.sql - restore a databasewget -spider http://0at.org - fetch pages and behave like a web spider:
don't download, just check to see if there
![Page 16: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/16.jpg)
![Page 17: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/17.jpg)
2. html
![Page 18: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/18.jpg)
html: structure
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head> <title>Corporate Information - Company Overview</title> </head>
<body>
<div id="container">
<h2>Company Overview</h2>
<p> <strong>Our name</strong> </p>
<p>Founders Larry Page and Sergey Brin named the search engine they built "Google," a play on the word "googol" </p>
</div>
</body>
</html>
![Page 19: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/19.jpg)
Source: http://www.w3schools.com/tags/tag_DIV.asp
html: tags
![Page 20: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/20.jpg)
Firefox Firebug plugin
and Web Developer plugin
![Page 21: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/21.jpg)
Safari Web Inspector
DOM
![Page 22: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/22.jpg)
html: DOM● the Document Object Model (DOM) is an application programming interface
(API) for valid HTML and well-formed XML documents.
● the term "document" is used in the broad sense (increasingly, XML is being
used as a way of representing many different kinds of information)
● programmers can build documents, navigate their structure, and add, modify,
or delete elements and content.
Source: http://www.w3.org/TR/DOM-Level-2-Core/introduction.html
![Page 23: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/23.jpg)
3. css
![Page 24: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/24.jpg)
“Cascading Style Sheets”
cascade |kasˈkād|a process whereby something, typically information or knowledge, is successively passed on” (Oxford)
The cascade:
● browser defaults
● CSS file(s)
● <style> tag in HTML
● style= attribute in a tag
![Page 25: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/25.jpg)
Un-styled document, has content and structure
![Page 26: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/26.jpg)
html + css = formatted content
![Page 27: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/27.jpg)
“Themes” are standard styles applied to a standard document structure
(Themes may also extend the document structure using templates)
![Page 28: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/28.jpg)
css:selectors
Source: http://www.w3.org/TR/css3-selectors/
![Page 29: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/29.jpg)
css:media types
![Page 30: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/30.jpg)
4. HTTP
A Web browser is a software application for retrieving, presenting, and
traversing information resources on the World Wide Web.
An information resource is identifi ed by a Uniform Resource Identifi er
(URI) and may be a web page, image, video, or other piece of content.
Hyperlinks present in resources enable users to easily navigate their
browsers to related resources.
Source: http://en.wikipedia.org/wiki/Web_browser
![Page 31: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/31.jpg)
ping request
[22:24][jonathan@jsl:~]$ ping google.comPING google.com (74.125.45.100): 56 data bytes64 bytes from 74.125.45.100: icmp_seq=0 ttl=50 time=759.847 ms64 bytes from 74.125.45.100: icmp_seq=1 ttl=50 time=800.581 ms64 bytes from 74.125.45.100: icmp_seq=2 ttl=50 time=729.355 ms
p.s. satellite internet sucks esp during peak times
- ping looks up domain name in DNS, gets IP address- ping sends “echo” request with a “payload” (data) to the IP address- server listening, accepts the request, echo's back the data- ping receives echo, verifies, and prints time it took for round-trip
First, let's consider a “ping”:
Useful to verify server is alive, and measure response times (your ISP + Internet in general + that specific server, combined).
![Page 32: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/32.jpg)
browser:http request
Example: http://www.google.com
- browser looks up domain name in DNS, gets IP address- browser sends HTTP GET request to the IP address- server listening on port 80, accepts the request- server prepares a response- server sends response back to browser (status: 200 ok)- browser receives response, parses the document- browser may GET additional stuff (images, css, etc)- browser builds the DOM, and paints the screen
![Page 33: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/33.jpg)
http response
Response Headers - http://www.reviewramp.com/
Date: Thu, 05 Nov 2009 05:04:53 GMTServer: Mongrel 1.1.1Status: 200Etag: "baf1a682b9b690de2b1e5ff15be8193d"X-Runtime: 8Cache-Control: private, max-age=0, must-revalidateContent-Type: text/html; charset=utf-8Content-Length: 9329Connection: Keep-AliveKeep-Alive: timeout=3Set-Cookie: _reviewramp_session_id=BAh7BzoPc2Vzc2lvbl9pZCIlYWU...
200 OK
Example HTTP response header:
Status: response code
eTag: for cache
Content-type: kind of data, for browser
Set-cookie: cookies, for server
![Page 34: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/34.jpg)
1xx Informational
2xx Success200 OK
3xx Redirection301 Moved Permanently302 Found – this is the most popular redirect code304 Not Modified – use the cache
4xx Client Error403 Forbidden – the request was a legal request, but server is refusing to respond to it404 Not Found
5xx Server Error500 Internal Server Error
httpresponse codes
![Page 35: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/35.jpg)
Conditional GETs
Conditional GETs based on dateHTTP header has Last-Updated. If you store this with a copy of the data, you can avoid re-
fetching it if it hasn't changed. When you next make a request, include this date in the header If-
Modified-Since. If the data has not changed, Gliffy will respond with an HTTP status of 304,
indicating you may safely use your cached copy.
Conditional GETs based on entity tag (eTag)An alternate means is to use an "entity tag", which is essentially a hash of the data. Certain
resources will include an HTTP header for ETag. Save this value with the data. When you re-
request the data, include the header If-None-Match and use the value of the ETag you stored in
the cache. If the data to serve you has not changed, it will have the same ETag, and will return an
HTTP status of 304, indicating you may safely use your cached copy.
browser cache
Source: http://www.gliffy.com/developer/apidocs/rest/
![Page 36: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/36.jpg)
browser session
The web is inherently “stateless”Each request is self contained and must have all the infoneeded to complete the transaction.
A cookie is a 'chunk' of data stored in the browser which is passed along to the server on each request.
A session cookie contains a unique identifier so the server knows who the request came from (eg after you logged in)
Source: http://www.jeevanchaaya.com/2008/10/14/web-application-state/
![Page 37: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/37.jpg)
5. programming
![Page 38: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/38.jpg)
programming:objects
– a self-contained thing with an interface (API) to create, modify, control, destroy, etc.
– once defined (programmed), others can use it (other objects, other programmers)
– has its own data
– as long as the API stays the same, the internal implementation can change (“refactor”)
Class versus Instance
“car” - class of object
“my car” - an instance of “car”
![Page 39: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/39.jpg)
programming:control flow
![Page 40: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/40.jpg)
def wipe_mutterings_from( sentence )
unless sentence.respond_to? :include?
raise ArgumentError,
"cannot wipe mutterings from a #{ sentence.class }"
end
while sentence.include? '('
open = sentence.index( '(' )
close = sentence.index( ')', open )
sentence[open..close] = '' if close
end
end
programming: Ruby examples
non_eggroll = 0
kitty_toys.each do |toy|
next if toy[:shape] == 'eggroll'
non_eggroll = non_eggroll + 1
end
def grant( wish )
if wish.length > 10 or wish.include? ' '
raise ArgumentError, "Bad wish."
end
if @energy.zero?
raise Exception, "No energy left."
end
@energy -= 1
Endertromb::make( wish )
end
source: http://mislav.uniqpath.com/poignant-guide/book/chapter-1.html
![Page 41: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/41.jpg)
File: page_spec.rb
describe Page, "name" do it "should convert spaces and illegal chars to underscore" do p = new_page( :name => "a b@c$d-e&f?g") p.should be_valid p.name.should == "a_b_c_d_e_f_g" endend
Behavior specification:
File: page.rb
class Page < ActiveRecord::Base require "string"
def before_validation self.name = name.urlize if name endend
Class definition:
File: string.rb
class String def urlize self.strip.downcase.gsub(/[^\w\.]+/, '_') endend
programming: behavior-driven
Module:
![Page 42: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/42.jpg)
6. javascript
- client-side (browser) programming language
- used to be “bad” (problems: cross browser, security, accessibility, usability)
- Google legitimized Javascript (gmail, earth etc). Libraries like jQuery solve browser and usability issues.
- integrated into all browsers, has built-in DOM support
- use the <script> tag to embed into HTML
- used for making “smarter” web pages, visual effects, better GUI, AJAX, client-side applications
Other client-side programming:- VBscript- ActiveX- Flash
image: http://www.somethingdigital.co.za/services.php
![Page 43: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/43.jpg)
javascript:example
<div> <script type="text/javascript">todays_date()</script></div>
function todays_date() {
var now = new Date();
var days = new Array( 'Sunday' ,'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
var months = new Array( 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
var date = now.getDate();
var today = days[now.getDay()] + ", " + months[now.getMonth()] + " " + date + ", " +(fourdigits(now.getYear()));
document.write(today)}
function fourdigits(number){ return (number < 1000) ? number + 1900 : number;}
Wednesday, November 4, 2009
![Page 44: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/44.jpg)
javascript:jQuery example
$(document).ready(function() { $('#faq').find('dd').hide().end().find('dt').click(function() { $(this).next().slideToggle(); }); });
source: http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery
- wait 'till document is loaded into the browser- select element with ID=”faq” (presumably a DIV)- find all <dd> elements within that element (presumably the answer text), and hide them- find all <dt> elements within '#faq' (presumably the question text), and when one is clicked:
- find the next element (presumably the <dd> tag>- and show it by sliding down to reveal- (or if presently visible, hide it by sliding up to hide)
Think of a FAQ page, where all answers are hidden first, and shown when the question is clicked. The jQuery code for this:
![Page 45: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/45.jpg)
ajax
![Page 46: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/46.jpg)
ajax
source: http://www.adaptivepath.com/images/publications/essays/ajax-fig1.png
![Page 47: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/47.jpg)
7. MVC application frameworks
source: http://www.bhartisoftland.com/technologies-skill-sets/gifs/mvc-php.png
![Page 48: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/48.jpg)
REST“Representable State Transfer” … whatever.
REST describes an architecture paradigm for web applications
that request and manipulate web resources using the standard
HTTP methods GET, POST, PUT and DELETE.
source: http://topfunky.com/clients/peepcode/REST-cheatsheet.pdf
ref: http://www.b-simple.de/download/restful_rails_en.pdf
![Page 49: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/49.jpg)
<h1>Public Directory</h1>
<% if @public_projects.empty? %>
<h3>No public projects found on this account</h3>
<% else %>
<div id="projects_list">
<%= render :partial => "project", :collection => @public_projects %>
</div>
<% end %>
View: templates
![Page 50: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/50.jpg)
source: http://www.adobe.com/newsletters/edge/october2008/articles/article2/index.html?trackingid=DWZST
Model: ORM“object-relational mapping”maps a database table to an object in the frameworke.g. Rails' ActiveRecord
![Page 51: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/51.jpg)
Model: associations
source: http://guides.rails.info/association_basics.html
![Page 52: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/52.jpg)
8. database
![Page 53: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/53.jpg)
Application => SQLUser.find 3090 SELECT * FROM `users` WHERE (`users`.`id` = 3090) LIMIT 1
@account.projects.find_by_name “test” SELECT * FROM `projects` WHERE (`projects`.`name` = 'test') AND ((`projects`.account_id = 800)
Account.create :name => “newco” INSERT INTO `accounts` (`name`, `created_at`, `updated_at`, `deleted_at`, `owner_id`) VALUES('newco', '2009-11-04 08:21:30', '2009-11-04 08:21:30', NULL, NULL)
SQL
![Page 54: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/54.jpg)
database performance
Database management has a long, hard, cold history dating back decades, housed in the faux floored realm of corporate IT departments and enterprise software co's like Oracle and SAP.
And then there were “toy” databases on PC's for personal and small business.
The massive proliferation of websites, web servers, and web applications since the 1990's has pulled database technology into the hands of unwitting and often clueless people like you and me. But we are learning.
Usually, small and simple is good enough. But sometimes you -really- need to scale. Personally, I haven't, yet.
As a developer, do the basics to optimize database performance: index the tables, perform benchmarks, watch the logs, tune the app, use the expert services at your hosting company, perform regular maintenance, and, of course, backup.
As a user, stand in awe of the likes of Google, Facebook, CNN, and the iTunes store.
BUT, IT'S NOT JUST THE DATABASE, stupid...
![Page 55: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/55.jpg)
9. hosting
![Page 56: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/56.jpg)
Example: Engine Yard
source: http://www.engineyard.com/technology
Disclaimer: I am neither a customer nor employee of Engine Yard or Heroku, but I've looked at them because they specialize in Rails hosting. More important, I like their graphics.
![Page 57: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/57.jpg)
![Page 58: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/58.jpg)
![Page 59: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/59.jpg)
![Page 60: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/60.jpg)
![Page 61: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/61.jpg)
![Page 62: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/62.jpg)
10. media
source: http://kindacarsick.com/post/230881676#
![Page 63: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/63.jpg)
resolution
Image Video Audio
resolution width (pixels)height (pixels)depth (#colors,
or bits RBG)
width (pixels)height (pixels)length (time)frames rate (fps)
channels (mono/stereo)bit rate (kbps)
compression(for example)
jpg H.264 mp3
Resolution defines the physical dimensions, attributes of the data.
Reducing the resolution means sampling the data.
Compression can be loss-ey, or loss-less which files are much larger.
![Page 64: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/64.jpg)
source: http://www.wavetrace.com/images/RatesAndResolution.gif
Relationship between resolution and sampling
![Page 65: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/65.jpg)
source: http://www.stereophile.com/features/308mp3cd/
Pixellation is sampling (and/or averaging) and then re-enlarging(generally not a good idea)
![Page 66: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/66.jpg)
http://www.umt.edu/geosciences/faculty/sheriff/438-Gravity_Electromagnetics/images/Anomaly%20sampling.gif
Sampling at too low a resolution can loose significant features
![Page 67: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/67.jpg)
CD tones: After MP3 compression:
Compression also introduces noise
![Page 68: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/68.jpg)
11. business business == people
ok, so it's not really a technology, but it is the context
![Page 69: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/69.jpg)
I LOVE MY USERS
I HATE MY USERS
![Page 70: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/70.jpg)
I LOVE MY CUSTOMERS
I HATE MY CUSTOMERS
![Page 71: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/71.jpg)
I LOVE MY PARTNERS
I HATE MY PARTNERS
![Page 72: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/72.jpg)
I LOVE MY STAFF
I HATE MY STAFF
![Page 73: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/73.jpg)
![Page 74: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/74.jpg)
12. [TBD]
What's your love, appreciation, passion?
What's your hate, confusion, pain?
What do you want to learn, know, be skilled?
Where are you between WTF and FTW?
![Page 75: 12 core technologies you should learn, love, and hate to be a 'real' technocrat](https://reader034.vdocuments.mx/reader034/viewer/2022042821/55d5948ebb61eb22778b461b/html5/thumbnails/75.jpg)
Jon Linowes
[email protected] twitter @linojon
my main project: http://reviewramp.com “Submit... Review... Decide!”
technical blog: http://vaporbase.com personal blog: http://jon.linow.es