175 results back to index

pages: 502 words: 82,170

The Book of CSS3 by Peter Gasston


centre right,, Firefox, Google Chrome, web application, wikimedia commons

.), as spacer for empty slot, Slots and the ::slot() Pseudo-element perspective function, The Transformation Matrix pixel grid, Understanding Axes and Coordinates pixel rate, Aspect Ratio, Pixel Ratio detection, Pixel Ratio pixels, for axes measurement, Text Effects and Typographic Styles point value, for gradient, Gradients portrait value, for orientation Media Feature, Using Media Queries in the Real World position property, for creating rows, Template Layout position, of background images, Background Size precedence, for properties, empty prefixes, Let’s Get Started: Introducing the Syntax, Let’s Get Started: Introducing the Syntax, Browser-Specific Prefixes browser-specific, Browser-Specific Prefixes for properties, Let’s Get Started: Introducing the Syntax presentation, vs. behavior, Transitions and Animations preserve-3d keyword, for transform-style property, Transform Style properties, Let’s Get Started: Introducing the Syntax, Browser-Specific Prefixes, empty, More Font Properties, More Font Properties, Transitions and Animations moving between states, Transitions and Animations of fonts, More Font Properties potential problems from unprefixed, Browser-Specific Prefixes precedence for, empty prefix for, Let’s Get Started: Introducing the Syntax Proposed Recommendation status, CSS3 Is Modular protocols, link icon for, Beginning Substring Attribute Value Selector pseudo-classes, Pseudo-classes and Pseudo-elements, Structural Pseudo-classes, Structural Pseudo-classes, The nth-* Pseudo-classes, The nth-* Pseudo-classes, nth-child and nth-of-type, nth-child and nth-of-type, first-of-type, last-child, and last-of-type, first-of-type, last-child, and last-of-type, first-of-type, last-child, and last-of-type, first-of-type, last-child, and last-of-type, first-of-type, last-child, and last-of-type, only-child and only-of-type, empty, empty, root, Summary browser support, Summary empty, empty first-of-type, first-of-type, last-child, and last-of-type last-child, first-of-type, last-child, and last-of-type last-of-type, first-of-type, last-child, and last-of-type not (negation), empty nth-*, Structural Pseudo-classes nth-child, The nth-* Pseudo-classes nth-last-child, nth-child and nth-of-type nth-last-of-type, nth-child and nth-of-type nth-of-type, The nth-* Pseudo-classes only-child, first-of-type, last-child, and last-of-type only-of-type, first-of-type, last-child, and last-of-type root, root structural, Structural Pseudo-classes target, only-child and only-of-type pseudo-elements, Pseudo-classes and Pseudo-elements, Pseudo-elements, Pseudo-elements, Summary, Multiple Rows ::slot(), Multiple Rows browser support, Summary double colon (::) for, Pseudo-elements pseudo-selectors, Selectors PT Sans font, font-stretch punctuation properties, Setting Text Rendering Options, Summary browser support, Summary punctuation-trim property, Setting Text Rendering Options px (CSS Pixel unit), Aspect Ratio Q quarter ellipse, Giving Your Borders Rounded Corners Quirks Mode box model, Zero Values and Firefox Layouts Quirks Mode website, Opera R radial gradients, Adding Extra color-stop Values, Radial Gradients in Firefox, Radial Gradients in Firefox, Using Radial Gradients, Multiple color-stop Values, Multiple color-stop Values multiple color-stop values, Multiple color-stop Values using, Radial Gradients in Firefox, Radial Gradients in Firefox, Using Radial Gradients, Multiple color-stop Values in Firefox, Radial Gradients in Firefox in WebKit, Radial Gradients in Firefox, Multiple color-stop Values radial keyword, Radial Gradients in Firefox radius of quarter ellipse, Giving Your Borders Rounded Corners readability, A Note on Readability ready() event (jQuery), Template Layout recommendation process, for modules, CSS3 Is Modular Recommendation status, CSS3 Is Modular Red, Green, Blue (RGB) model, Color and Opacity, Hue, Saturation, Lightness HSL vs., Hue, Saturation, Lightness Red, Green, Blue, Alpha (RGBA) model, Setting Transparency with the opacity Property, The Alpha Channel, Matching the Operating System’s Appearance and graceful degradation, The Alpha Channel browser support, Matching the Operating System’s Appearance reflection, scale, scale, Transforming Elements with Matrices, Reflections with WebKit gradients with, Reflections with WebKit of element, creating, scale with WebKit, Transforming Elements with Matrices regular quarter ellipse, Giving Your Borders Rounded Corners repeat keyword, background-repeat, background-repeat, Using Images for Borders for background-repeat property, background-repeat for border-image property, Using Images for Borders repeat() function, for complex grids, Implicit and Explicit Grids repeat-x keyword, for background-repeat property, background-repeat repeat-y keyword, for background-repeat property, background-repeat repeating gradients, Multiple Gradients, Summary, Gradients: Browser Support browser support, Summary in Firefox, Multiple Gradients resize property, Restricting Overflow, Summary browser support, Summary reusable code, Extending Variables Using Mixins reverse keyword, for box-direction property, Changing Orientation reverse play for animation, Delay RGB (Red, Green, Blue) model, Color and Opacity, Hue, Saturation, Lightness HSL vs., Hue, Saturation, Lightness RGBA (Red, Green, Blue, Alpha) model, Setting Transparency with the opacity Property, The Alpha Channel, Matching the Operating System’s Appearance and graceful degradation, The Alpha Channel browser support, Matching the Operating System’s Appearance rgba() color function, Multiple Shadows right keyword, Giving Your Borders Rounded Corners, Giving Your Borders Rounded Corners, Perspective for border-radius property, Giving Your Borders Rounded Corners for perspective-origin property, Perspective root pseudo-class, empty, Summary browser support, Summary rotate function, rotate, Rotation Around an Axis, Rotation Around an Axis for three dimensions, Rotation Around an Axis for transform property, rotate rotate3d function, Rotation Around an Axis rotation of element, with skew, skew, Transforming Elements with Matrices round keyword, background-repeat, background-repeat, Using Images for Borders, Using Images for Borders for background-repeat property, background-repeat for border-image property, Using Images for Borders, Using Images for Borders rounded corners for borders, Giving Your Borders Rounded Corners row strings, Using position and display to Create Rows, Using position and display to Create Rows, Multiple Rows on display property, Using position and display to Create Rows rules for, Multiple Rows rows, Template Layout, Slots and the ::slot() Pseudo-element, Slots and the ::slot() Pseudo-element setting height and width, Slots and the ::slot() Pseudo-element Template Layout Module for creating, Template Layout rules (lines), between columns, Column Gaps and Rules running keyword, for animation-play-state property, Shorthand S Safari browser for Mac OS X.

Artificial Font Faces geometricPrecision keyword, for text-rendering property, word-wrap Georgia font, font-size-adjust Glazman, Daniel, Constants and Variables Google Font API, Google Font API gr (grid unit), Implicit and Explicit Grids gradients, Gradients, Gradients, Linear Gradients in Firefox, Linear Gradients in WebKit, Linear Gradients in WebKit, Radial Gradients, Radial Gradients in Firefox, Radial Gradients in Firefox, Using Radial Gradients, Multiple color-stop Values, Multiple color-stop Values, Multiple Gradients, Multiple Gradients, Summary, Reflections with WebKit, CSS3 Pie browser support, Summary generator for, CSS3 Pie in Firefox, repeating, Multiple Gradients linear, Gradients, Linear Gradients in Firefox, Linear Gradients in WebKit, Linear Gradients in WebKit adding color-stop values, Linear Gradients in WebKit in WebKit, Linear Gradients in Firefox using, Linear Gradients in WebKit multiple, Multiple Gradients radial, Radial Gradients, Radial Gradients in Firefox, Radial Gradients in Firefox, Using Radial Gradients, Multiple color-stop Values, Multiple color-stop Values in Firefox, Radial Gradients in Firefox in WebKit, Radial Gradients in Firefox multiple color-stop values, Multiple color-stop Values using, Using Radial Gradients WebKit advantage, Multiple color-stop Values with reflection, Reflections with WebKit graphics.

Media Queries (Chapter 2) WebKit Firefox Opera IE Media Queries Yes Yes Yes No (expected in IE9) Selectors (Chapter 3) WebKit Firefox Opera IE Attribute Selectors Yes Yes Yes Yes General Sibling Combinator Yes Yes Yes Yes Pseudo-classes and Pseudo-elements (Chapter 4) WebKit Firefox Opera IE Structural Pseudo-classes Yes Yes Yes No (expected in IE9) :target Yes Yes Yes No (expected in IE9) :empty Yes Yes Yes No (expected in IE9) :root Yes Yes Yes No (expected in IE9) :not Yes Yes Yes No (expected in IE9) Pseudo-elements (new syntax) Yes Yes Yes No (expected in IE9) UI element states Yes Yes Yes No (expected in IE9) :selection Yes Yes Yes No (expected in IE9) Web Fonts (Chapter 5) WebKit Firefox Opera IE @font-face Yes Yes Yes Yes (.eot only; other formats expected in IE9) font-size-adjust No Yes No No font-stretch No No No No Text Effects and Typographic Styles (Chapter 6) WebKit Firefox Opera IE text-shadow Yes Yes Yes No text-outline No No No No text-stroke Yes No No No text-align (new values) Yes Yes No No text-align-last No No No Yes word-wrap Yes Yes Yes Yes text-wrap No No No No text-rendering No Yes No No Multiple Columns (Chapter 7) WebKit Firefox Opera IE column-count Yes (with prefix) Yes (with prefix) No No column-width Yes (with prefix) Yes (with prefix) No No column-gap Yes (with prefix) Yes (with prefix) No No column-rule Yes (with prefix) Yes (with prefix) No No columns Yes (with prefix) No No No column-span No No No No break-* No No No No Background Images and Other Decorative Properties (Chapter 8) WebKit Firefox Opera IE Multiple Background Images Yes Yes Yes No (expected in IE9) background-size Yes (with prefix in Safari 4 and earlier) Yes (with prefix; expected in Firefox 4 without prefix) Yes No (expected in IE9) background-clip Yes (with prefix in Safari 4 and earlier) Yes (with prefix; expected in Firefox 4 without prefix) Yes No (expected in IE9) background-origin Yes (with prefix in Safari 4 and earlier) Yes (with prefix; expected in Firefox 4 without prefix) Yes No (expected in IE9) background-repeat (new values) No No Yes No (expected in IE9) image-rect No Yes (with prefix) No No mask-* Yes (with prefix) No No No Border and Box Effects (Chapter 9) WebKit Firefox Opera IE border-radius Yes (with prefix in Safari 4 and earlier) Yes (with prefix; incorrect syntax on sub-properties; expected in Firefox 4 without prefix) Yes No (expected in IE9) border-image Yes (with prefix) Yes (with prefix) Yes No Multiple border-color Values No Yes No No box-shadow Yes (with prefix) Yes (with prefix) Yes No box-decoration-break No No No No Color and Opacity (Chapter 10) WebKit Firefox Opera IE opacity Yes Yes Yes No (expected in IE9) RGBA Values Yes Yes Yes No (expected in IE9) HSL Values Yes Yes Yes No (expected in IE9) HSLA Values Yes Yes Yes No (expected in IE9) currentColor Value Yes Yes Yes No (expected in IE9) appearance Yes Yes No No Gradients (Chapter 11) WebKit Firefox Opera IE Gradients Yes (with prefix; incorrect syntax; correct syntax in future versions) Yes (with prefix) No No Repeating Gradients No Yes (with prefix) No No 2D Transformations (Chapter 12) WebKit Firefox Opera IE 2D Transformations Yes (with prefix) Yes (with prefix) Yes (with prefix) No (expected in IE9 with prefix) box-reflect Yes (with prefix) No No No Transitions and Animations (Chapter 13) WebKit Firefox Opera IE Transitions Yes (with prefix) No (expected in Firefox 4 with prefix) Yes (with prefix) No Animations Yes (with prefix) No No No 3D Transformations (Chapter 14) WebKit Firefox Opera IE 3D Transformations Yes (with prefix) No No No Flexible Box Layout (Chapter 15) WebKit Firefox Opera IE Flexible Box Layout Yes (with prefix) Yes (with prefix) No No (possibly in IE9 with prefix) Template Layout (Chapter 16) WebKit Firefox Opera IE Template Layout No No No No The Future of CSS (Chapter 17) WebKit Firefox Opera IE calc() No No (expected in Firefox 4 with prefix) No No (expected in IE9) max() No No No No min() No No No No cycle() No No (expected in “a future version” of Firefox) No No Grid Positioning No No No No image() No No No No Image Slices No No No No Image Sprites No No No No Grouping Selector No No (expected in Firefox 4 with prefix) No No Constants and Variables No No No No WebKit CSS extensions No No No No Haptic Feedback No No No No Appendix B.

pages: 570 words: 115,722

The Tangled Web: A Guide to Securing Modern Web Applications by Michal Zalewski


barriers to entry, business process, defense in depth, easy for humans, difficult for computers, fault tolerance, finite state, Firefox, Google Chrome, information retrieval, RFC: Request For Comment, semantic web, Steve Jobs, telemarketer, Turing test, Vannevar Bush, web application, WebRTC, WebSocket

XUL exists because although modern HTML is often powerful enough to build basic graphical user interfaces, it is not particularly convenient for certain specialized tasks that desktop applications excel in, such as implementing common dialog windows or system menus. XUL is not currently supported by any browser other than Firefox and appears to be disabled in the recent release, Firefox 6. In Firefox, it is handled by the general-purpose renderer, based on the appropriate xmlns namespace. Firefox uses XUL for much of its internal UI, but otherwise the language is seldom encountered on the Internet. From the standpoint of web application security, Internet-originating XUL documents can be considered roughly equivalent to HTML documents. Essentially, the language has JavaScript scripting capabilities and allows broad control over the appearance of the rendered page.

Encapsulating Pseudo-Protocols This special class of pseudo-protocols may be used to prefix any other URL in order to force a special decoding or rendering mode for the retrieved resource. Perhaps the best-known example is the view-source: scheme supported by Firefox and Chrome, used to display the pretty-printed source of an HTML page. This scheme is used in the following way: view-source: Other protocols that function similarly include jar:, which allows content to be extracted from ZIP files on the fly in Firefox; wyciwyg: and view-cache:, which give access to cached pages in Firefox and Chrome respectively; an oddball feed: scheme, which is meant to access news feeds in Safari;[110] and a host of poorly documented protocols associated with the Windows help subsystem and other components of Microsoft Windows (hcp:, its:, mhtml:, mk:, ms-help:, ms-its:, and ms-itss:).

It is recognized in some headers by Firefox and Chrome, but other browsers are less cooperative. Internet Explorer chooses to recognize URL-style percent encoding in the Content-Disposition field instead (a habit also picked up by Chrome) and defaults to UTF-8 in this case. Firefox and Opera, on the other hand, prefer supporting a peculiar percent-encoded syntax proposed in RFC 2231,[120] a striking deviation from how HTTP syntax is supposed to look: Content-Disposition: attachment; filename*=utf-8'en-us'Hi%21.txt Astute readers may notice that there is no single encoding scheme supported by all browsers at once. This situation prompts some web application developers to resort to using raw high-bit values in the HTTP headers, typically interpreted as UTF-8, but doing so is somewhat unsafe. In Firefox, for example, a long-standing glitch causes UTF-8 text to be mangled when put in the Cookie header, permitting attacker-injected cookie delimiters to materialize in unexpected places.[121] In other words, there are no easy and robust solutions to this mess.

pages: 1,038 words: 137,468

JavaScript Cookbook by Shelley Powers


Firefox, Google Chrome, hypertext link, p-value, semantic web, web application, WebSocket

Otherwise, either create and throw a specific exception, or create a new Error object, providing your own error message: if (typeof value == "number") { sum+=number; } else { throw new Error("NotANumber"); } The existing exception types are Error, as demonstrated, and: EvalError Used when eval is used improperly RangeError Used when the number is out of range ReferenceError Used when a nonexistent variable is referenced SyntaxError Used when there’s a syntax error 184 | Chapter 10: Debugging and Error Handling TypeError Indicates an unexpected type URIError Used when a malformed URI is encountered DOMException Indicates a DOM error EventException Indicates a DOM event exception RangeException Indicates a DOM range exception The last three exceptions are related to the DOM API. All the errors take a custom message as a string parameter. 10.6 Using Firebug with Firefox Problem You want to set up Firefox for debugging JavaScript. Solution Use Firebug, the popular Firefox add-on development tool. Discussion Unlike other development tools, Firebug is a Firefox add-on, which you’ll need to download and install. However, it installs very easily, and new releases update through Firefox automatically. To start Firebug, look for the little bug in the status bar, on the right of the browser. Clicking the bug opens Firebug, as shown in Figure 10-4. The Firebug tab pages include the Console, the HTML element inspector, the CSS panel, the Script tab, the DOM tree tab, and the Net tab.

The canvas element is also faster in frame-type animations. However, the performance advantages you get with the canvas element lessen as you increase the size of the display. SVG scales beautifully. 15.10 Turning on WebGL Support in Firefox and WebKit/Safari Problem You want to jump into the world of 3D. Solution Both Firefox nightly (Minefield) and the WebKit nightly have support for WebGL, a cross-platform 3D graphics system derived from the OpenGL effort, and making use of the canvas element. You will have to turn on support for both. For Firefox, access the configuration options page by typing about:config into the ad- dress bar. Once past the warning page, find the webgl.enabled_for_all_sites option, and change the value to true. For WebKit, open a Terminal window and type this at the command line: defaults write WebKitWebGLEnabled -bool YES Discussion The world of 3D development in browsers is both old and new.

DOCTYPE html> <head> <title>Object Properties</title> <script type="text/javascript"> // Book custom object function Book (title, author) { var title = title; var author = author; this.getTitle=function() { return "Title: " + title; } this.getAuthor=function() { return "Author: " + author; } } // TechBook, inheriting from Book function TechBook (title, author, category) { var category = category; this.getCategory = function() { return "Technical Category: " + category; } Book.apply(this,arguments); this.getBook=function() { return this.getTitle() + " " + author + " " + this.getCategory(); } }window.onload=function() { try { // DOM test, WebKit bites the dust on this one var img = new Image(); // add new property and descriptor Object.defineProperty(img, "geolatitude", { get: function() { return geolatitude; }, set: function(val) { geolatitude = val;}, enumerable: true, configurable: true}); // test configurable and enumerable attrs var props = "Image has "; for (var prop in img) { props+=prop + " "; } alert(props); } catch(e) { alert(e); } 16.6 Extending an Object by Defining a New Property | 371 try { // now we lose IE8 // chain the object constructors TechBook.prototype = new Book(); // add new property and property descriptor Object.defineProperty(TechBook, "experience", { get: function () { return category; }, set: function (value) { category = value; }, enumerable: false, configurable: true}); // get property descriptor and print var val = Object.getOwnPropertyDescriptor(TechBook,"experience"); alert(JSON.stringify(val)); // test configurable and enumerable props = "TechBook has "; for (var prop in TechBook) { props+=prop + " "; } alert(props); Object.defineProperty(TechBook, "experience", { enumerable: true}); props = "TechBook now has "; for (var prop in TechBook) { props+=prop + " "; } alert(props); // create TechBook instance var newBook = new TechBook("The JavaScript Cookbook", "Shelley Powers", "Programming"); // test new setter newBook.experience="intermediate"; // test data descriptor Object.defineProperty(newBook, "publisher", { value: "O'Reilly", writable: false, enumerable: true, configurable: true}); // test writable newBook.publisher="Some Other"; alert(newBook.publisher); } catch(e) { alert(e); } } 372 | Chapter 16: JavaScript Objects </script> </head> <body> <p>some content</p> </body> These methods are very new. At the time I wrote this recipe, they only work in nightly builds for WebKit and Firefox (Minefield), and in a very limited sense with IE8. The IE8 limitation is that the new property methods only work with DOM elements. The Object.defineProperty method works with the Image element, but not with the custom objects. However, using defineProperty on DOM elements causes an exception in WebKit. None of the new property methods work with Opera. The Firefox Minefield nightly and the Chrome beta were the only browsers that currently work with both types of objects, as shown in Figure 16-2, which displays the Image object properties in Firefox. Figure 16-2. Displaying Image properties after adding a new property with defineProperty 16.6 Extending an Object by Defining a New Property | 373 After printing out the Image properties, a new property (experience) and property de- scriptor are added to the TechBook custom object.

pages: 375 words: 66,268

High Performance JavaScript by Nicholas C. Zakas

Amazon:, Firefox, Google Chrome, sorting algorithm, web application

.* When a file is downloaded using a dynamic script node, the retrieved code is typically executed immediately (except in Firefox and Opera, which will wait until any previous dynamic script nodes have executed). This works well when the script is self-executing but can be problematic if the code contains only interfaces to be used by other scripts on the page. In that case, you need to track when the code has been fully downloaded and is ready for use. This is accomplished using events that are fired by the dynamic <script> node. Firefox, Opera, Chrome, and Safari 3+ all fire a load event when the src of a <script> element has been retrieved. You can therefore be notified when the script is ready by listening for this event: var script = document.createElement("script") script.type = "text/javascript"; //Firefox, Opera, Chrome, Safari 3+ script.onload = function(){ alert("Script loaded!")

Conversely, largeStr += s1 + s2 first merges the two smaller strings and then concatenates the result with the large string. Creating the intermediary string of s1 + s2 is a much lighter performance hit than copying the large string twice. Firefox and compile-time folding When all strings concatenated in an assignment expression are compile-time constants, Firefox automatically merges them at compile time. Here’s a way to see this in action: function foldingDemo() { var str = "compile" + "time" + "folding"; str += "this" + "works" + "too"; str = str + "but" + "not" + "this"; } alert(foldingDemo.toString()); /* In Firefox, you'll see this: function foldingDemo() { var str = "compiletimefolding"; str += "thisworkstoo"; str = str + "but" + "not" + "this"; } */ When strings are folded together like this, there are no intermediary strings at runtime and the time and memory that would be spent concatenating them is reduced to zero.

Accessing information from array items and object members is more expensive, though exactly which is more expensive depends heavily on the browser. Figure 2-1 shows the relative speed of accessing 200,000 values from each of these four locations in various browsers. Older browsers using more traditional JavaScript engines, such as Firefox 3, Internet Explorer, and Safari 3.2, show a much larger amount of time taken to access values versus browsers that use optimizing JavaScript engines. The general trends, however, remain the same across all browsers: literal value and local variable access tend to be faster than array item and object member access. The one exception, Firefox 3, 15 Figure 2-1. Time per 200,000 reads from various data locations optimized array item access to be much faster. Even so, the general advice is to use literal values and local variables whenever possible and limit use of array items and object members where speed of execution is a concern.

pages: 210 words: 42,271

Programming HTML5 Applications by Zachary Kessin


barriers to entry, continuous integration, fault tolerance, Firefox, Google Chrome, mandelbrot fractal, QWERTY keyboard, web application, WebSocket

A further complication comes in some browsers, including Firefox, that make the manifest an opt-in feature. So a Selenium test may not opt into it, which would make the entire test moot. In order to test this in Firefox, it will be necessary to set up a Firefox profile in which the application cache is on by default. To do this: Quit Firefox completely. Start up Firefox from a command line with the -profileManager switch. This will result in a dialog similar to that shown in Figure 7-2. Save the custom profile. Figure 7-2. Firefox custom profile dialog Restart Firefox. Go to the Firefox Options menu, select the Advanced tab and under that the Network tab (see Figure 7-3), and turn off the “Tell me when a website asks to store data for offline use” option. Figure 7-3. Firefox Options Now, when starting up the Selenium RC server, use an option like this: java -jar selenium-server.jar -firefoxProfileTemplate For full details on Firefox profiles, see

php require_once 'PHPUnit/Extensions/SeleniumTestCase.php'; class WebTest extends PHPUnit_Extensions_SeleniumTestCase { protected $captureScreenshotOnFailure = TRUE; protected $screenshotPath = '/var/www/localhost/htdocs/screenshots'; protected $screenshotUrl = 'http://localhost/screenshots'; public static $browsers = array( array( 'name' => 'Safari on MacOS X', 'browser' => '*safari', 'host' => 'mac.testbox', 'port' => 4444, 'timeout' => 30000 ), array( 'name' => 'Firefox on Windows', 'browser' => '*firefox', 'host' => 'windows.testbox', 'port' => 4444, 'timeout' => 30000 ), array( 'name' => 'Chrome on Windows XP', 'browser' => '*googlechrome', 'host' => 'windows.testbox', 'port' => 4444, 'timeout' => 30000 ), array( 'name' => 'Internet Explorer on Windows XP', 'browser' => '*iexplore', 'host' => 'windows.testbox', 'port' => 4444, 'timeout' => 30000 ) ); protected function setUp() { $this->setBrowserUrl(''); } public function testSeleniumFile() { $this->open(''); $this->runSelenese('seleneseTest.html'); } } ?> Example 3-7. phpunit.xml <phpunit stopOnFailure="true" verbose="true" strict="true"> <php> </php> <selenium> <browser name="Firefox" browser="*firefox" host="" port="4444" timeout="30000"/> <browser name="Chrome" browser="*chrome" host="" port="4444" timeout="30000"/> <!

URL query string separator, Debugging Manifest Files A Abelson, Harold, Functional Programming acceptance tests, Testing JavaScript Applications accessibility, Accessibility Through WAI-ARIA Accessible Rich Internet Applications, Accessibility Through WAI-ARIA actions, Selenium, Selenium Commands ActiveX controls, IndexedDB add() method (IndexedDB), Adding and Updating Records airplane mode, Adding Power to Web Applications Ajax, Developing Web Applications, Nonblocking I/O and Callbacks, Nonblocking I/O and Callbacks, Functional Programming, Functional Programming, A Simple Example, Offline Loading with a Data Store, Storing Changes for a Later Server Sync, Uploading Files, Structure of the Manifest File calls, Nonblocking I/O and Callbacks, Functional Programming, A Simple Example, Offline Loading with a Data Store, Storing Changes for a Later Server Sync, Structure of the Manifest File DataStore object, Nonblocking I/O and Callbacks uploading files with, Uploading Files versus XHR terminology, Functional Programming alert() method, Nonblocking I/O and Callbacks alt attribute, Accessibility Through WAI-ARIA Android, Selenium RC and a Test Farm, New Form Types _AndWait commands (Selenium), Selenium Commands anonymous functions, Lambda Functions Are Powerful Apache web server, Introduction to the Manifest File append() method, Uploading Files appending an image example, Working with Files Apple Safari, JavaScript’s Triumph, A Pattern for Reuse of Multithread Processing, Libraries for Web Workers, Web Sockets Aptana, JavaScript Tools You Should Know archive files, Drag-and-Drop array, Functional Programming, Array Iteration Operations, You Can Extend Objects, Too iteration operations, Array Iteration Operations, You Can Extend Objects, Too map function, Functional Programming assertElementPresent command (Selenium), Selenium Commands assertions, Selenium, Selenium Commands <audio> tag, Audio and Video automatic updates, Developing Web Applications B base types, extending, Prototypes and How to Expand Objects beforeload event handler, Offline Loading with a Data Store Benedetti, Ryan, JavaScript’s Triumph binary data, The Web Sockets Interface binding variables, Closures blob data type, Blobs BlobBuilder, Blobs Booleans as objects, Prototypes and How to Expand Objects bottlenecks, Splitting Up Work Through Web Workers, JavaScript Tools You Should Know Breadcrumbs specs, Microdata browsers, The Web As Application Platform, Developing Web Applications, Lambda Functions Are Powerful, Testing JavaScript Applications, Selenium RC and a Test Farm, Local Storage, jStore, Updates to the Manifest File, Updates to the Manifest File, Debugging Manifest Files (see also Chrome, Firefox, Internet Explorer, Safari) cache control header issues, Updates to the Manifest File, Debugging Manifest Files data storage and, Local Storage, jStore differences among, Testing JavaScript Applications function inside an if, Lambda Functions Are Powerful interactivity, The Web As Application Platform, Developing Web Applications testing on multiple, Selenium RC and a Test Farm buildMaster() method, Web Worker Fractal Example built-in objects, Prototypes and How to Expand Objects buttons, Lambda Functions Are Powerful, Closures, A Simple Example, Testing with QUnit, Selenium, Selenium Commands, Selenese Command Programming Interface click callbacks, Lambda Functions Are Powerful, A Simple Example, Testing with QUnit closures, Closures testing, Selenium, Selenese Command Programming Interface with XPath, Selenium Commands C C-type languages, Lambda Functions Are Powerful cache control headers, Updates to the Manifest File, Debugging Manifest Files cache() method, Expanding Functions with Prototypes Cagle, Kurt, Canvas and SVG callbacks, Nonblocking I/O and Callbacks, Lambda Functions Are Powerful, Closures, Array Iteration Operations, Testing JavaScript Applications, A Simple Example, Adding and Updating Records, Retrieving Data, Uploading Files, A Pattern for Reuse of Multithread Processing, Web Socket Example alternatives to for loops, Array Iteration Operations button, A Simple Example closures to construct, Closures cursor, Adding and Updating Records on DOM elements, Testing JavaScript Applications from ports, Web Socket Example and Web Workers, A Pattern for Reuse of Multithread Processing write, Retrieving Data XHMLHttpRequest, Uploading Files Canvas, Graphics, Web Worker Fractal Example <canvas> tag, Graphics changes, storing, Storing Changes for a Later Server Sync chat applications, Web Sockets checksum, manifest, Updates to the Manifest File Chrome, Google, JavaScript’s Triumph, Closures, Closures, The localStorage and sessionStorage Objects, The localStorage and sessionStorage Objects, IndexedDB, Blobs, Filesystem, Events, Events, Testing and Debugging Web Workers, Testing and Debugging Web Workers, A Pattern for Reuse of Multithread Processing, A Pattern for Reuse of Multithread Processing, Web Sockets, Tags for Applications, JavaScript Tools You Should Know BlobBuilder support, Blobs debugging web workers in, Testing and Debugging Web Workers Dev tools, Closures, The localStorage and sessionStorage Objects, Testing and Debugging Web Workers filesystem access, Filesystem IndexedDB in, IndexedDB list of closed variables, Closures manifest list, Events postMessage() in, A Pattern for Reuse of Multithread Processing <progress> tag support, Tags for Applications Speed Tracer, JavaScript Tools You Should Know storage viewer, The localStorage and sessionStorage Objects, Events web socket support, Web Sockets web worker support in, A Pattern for Reuse of Multithread Processing Church, Alonzo, Lambda Functions Are Powerful click command (Selenium), Selenium Commands client-side data storage, Local Storage Clojure, Web Socket Example ClojureScript, JavaScript Tools You Should Know close() method, The Worker Environment, The Web Sockets Interface closures, Nonblocking I/O and Callbacks, Closures, Closures, Array Iteration Operations, IndexedDB cloud test farms, Automatically Running Tests CoffeeScript, JavaScript Tools You Should Know color form input, New Form Types composite functions, Functional Programming config files, web server, Introduction to the Manifest File confirm() method, Nonblocking I/O and Callbacks content delivery network, Taking It Offline controls attribute, Audio and Video cookies, The localStorage and sessionStorage Objects, Using localStorage in ExtJS, Web Sockets CouchDB, IndexedDB Cranley, Ronan, JavaScript’s Triumph createObjectURL() method, Blobs Crockford, Douglas, JavaScript’s Triumph, The Power of JavaScript, JavaScript Tools You Should Know cross-platform web development, Developing Web Applications CruiseControl, Selenese Command Programming Interface currying, Currying and Object Parameters D data record example, IndexedDB data storage, Adding Power to Web Applications, Local Storage, jStore data trees, You Can Extend Objects, Too databases, Adding Power to Web Applications, Local Storage, IndexedDB, Deleting Data, IndexedDB, Adding and Updating Records, Retrieving Data, Deleting Data adding and updating records, Adding and Updating Records deleting data from, Deleting Data IndexedDB, Adding Power to Web Applications, IndexedDB, Deleting Data retrieving data from, Retrieving Data SQLite, Local Storage DataStore object (Ajax), Nonblocking I/O and Callbacks date form input, New Form Types dblclick command (Selenium), Selenium Commands debugging, JavaScript’s Triumph, Lambda Functions Are Powerful, Debugging Manifest Files, Splitting Up Work Through Web Workers, Testing and Debugging Web Workers, JavaScript Tools You Should Know Firebug, JavaScript’s Triumph, Lambda Functions Are Powerful and JSMin, JavaScript Tools You Should Know manifest files, Debugging Manifest Files and Web Workers, Splitting Up Work Through Web Workers, Testing and Debugging Web Workers $.decode() method (Hive API), Libraries for Web Workers decoratedFib(), Expanding Functions with Prototypes deepEqual() method, Testing with QUnit defer() method, Offline Loading with a Data Store degradation, handling, Testing JavaScript Applications deleteEach() method, Deleting Data doConditionalLoad() method, Offline Loading with a Data Store DOM (Document Object Model), The Web As Application Platform, Developing Web Applications, Testing JavaScript Applications downloading events, Events Drag and Drop widget, JavaScript Tools You Should Know drag-and-drop, Selenium Commands, Files, Drag-and-Drop Dragonfly, Opera, JavaScript’s Triumph, A Pattern for Reuse of Multithread Processing drop event (DOM), Drag-and-Drop drop handler example, Working with Files drop zone example, Putting It All Together DSt library, DSt E Eclipse, JavaScript Tools You Should Know ECMAScript objects, The Worker Environment Emacs JS2 mode, JavaScript Tools You Should Know email form input, New Form Types enclosing scope, Lambda Functions Are Powerful $.encode() method (Hive API), Libraries for Web Workers engines available in JQuery, jStore equal() method, A Simple Example, Testing with QUnit Erlang Yaws, Web Socket Example, Erlang Yaws errors, Retrieving Data, Events, Testing and Debugging Web Workers, Geolocation ETags, Offline Loading with a Data Store event loops, Splitting Up Work Through Web Workers, JavaScript Tools You Should Know Event Machine, Ruby, Ruby Event Machine Events specs, Microdata every() method, Array Iteration Operations expanding functions with prototypes, Expanding Functions with Prototypes, Expanding Functions with Prototypes extending base types, Prototypes and How to Expand Objects ExtJS, JavaScript’s Triumph, Lambda Functions Are Powerful, Currying and Object Parameters, Selenium Commands, Using localStorage in ExtJS button with function as handler, Lambda Functions Are Powerful click event problems, Selenium Commands currying parameters in, Currying and Object Parameters library, JavaScript’s Triumph localStorage object in, Using localStorage in ExtJS F FALLBACK section, manifest, Structure of the Manifest File feature detection, A Pattern for Reuse of Multithread Processing Fibonacci sequences, calculating, Expanding Functions with Prototypes FileReader API, Working with Files files, Adding Power to Web Applications, Files, Filesystem, Debugging Manifest Files FileSystem API, Filesystem filter() method, Array Iteration Operations, You Can Extend Objects, Too Firebug, JavaScript’s Triumph, Lambda Functions Are Powerful, Closures, The localStorage and sessionStorage Objects, Working with Files, Splitting Up Work Through Web Workers, Testing and Debugging Web Workers, Testing and Debugging Web Workers, JavaScript Tools You Should Know anonymous functions, Lambda Functions Are Powerful colorizing in script tag, JavaScript Tools You Should Know debugging web workers in, Testing and Debugging Web Workers developer tools, Testing and Debugging Web Workers editing storage object, The localStorage and sessionStorage Objects full path file names, Working with Files scope chain, Closures and Web Workers, Splitting Up Work Through Web Workers Firefox, Mozilla, Prototypes and How to Expand Objects, Array Iteration Operations, Array Iteration Operations, Selenium, Constructing Tests with the Selenium IDE, The localStorage and sessionStorage Objects, IndexedDB, Blobs, Debugging Manifest Files, Debugging Manifest Files, Worker Communication, Testing and Debugging Web Workers, A Pattern for Reuse of Multithread Processing, A Pattern for Reuse of Multithread Processing, Web Sockets, Tags for Applications developers’ site, Prototypes and How to Expand Objects, Array Iteration Operations IndexedDB in, IndexedDB iteration methods in, Array Iteration Operations manifest file opt-in issue, Debugging Manifest Files MozBlobBuilder, Blobs MozWebSockets, Web Sockets passing complex JavaScript objects, Worker Communication postMessage() in, A Pattern for Reuse of Multithread Processing <progress> tag support, Tags for Applications Selenium IDE for, Selenium, Constructing Tests with the Selenium IDE, Debugging Manifest Files storage objects in, The localStorage and sessionStorage Objects web workers in, Testing and Debugging Web Workers, A Pattern for Reuse of Multithread Processing FireRainbow, JavaScript Tools You Should Know first class citizens, Lambda Functions Are Powerful, Functional Programming :first-child() CSS selector, New CSS Flanagan, David, The Power of JavaScript flow control, Selenium Commands for loops, alternatives to, Array Iteration Operations forks, Adding Power to Web Applications FormData interface, Uploading Files fractal computation examples, Web Worker Fractal Example, Web Worker Fractal Example Fulton, Jeff, Graphics, Canvas and SVG Fulton, Steve, Graphics, Canvas and SVG function expressions, Lambda Functions Are Powerful function generators, Closures function interceptor example, Expanding Functions with Prototypes Function prototype, Expanding Functions with Prototypes function statements, Lambda Functions Are Powerful functional programming, Functional Programming, Functional Programming, JavaScript Tools You Should Know functions, Lambda Functions Are Powerful, Lambda Functions Are Powerful, Closures, Functional Programming, Functional Programming anonymous, Lambda Functions Are Powerful as first class citizens, Lambda Functions Are Powerful, Functional Programming higher order, Functional Programming inner and outer, Closures functions, expanding with prototypes, Expanding Functions with Prototypes, Expanding Functions with Prototypes G Garret, Jesse James, Functional Programming Gears, Google, Developing Web Applications, Local Storage, Introduction to the Manifest File, Splitting Up Work Through Web Workers offline file access, Introduction to the Manifest File SQLite database, Local Storage worker pool, Splitting Up Work Through Web Workers geolocation, Maps, Geolocation $.get() method (Hive API), Libraries for Web Workers getBlob() method (BlobBuilder), Blobs getCurrentPosition() method, Geolocation getEval() method (Selenese API), Selenese Command Programming Interface getText() method (Selenese API), Selenese Command Programming Interface getXpathCount() method (Selenese API), Selenese Command Programming Interface Gmail, Google’s, Files, Web Sockets Goerzen, John, Functional Programming Google Chrome, Tags for Applications (see Chrome, Google) Google Gears, Developing Web Applications (see Gears, Google) Google search predefined vocabularies, Microdata Google Web Toolkit, JavaScript’s Triumph grid object (ExtJS), Using localStorage in ExtJS H handleButtonClick() function, A Simple Example Haskell, Currying and Object Parameters Head First jQuery (Benedetti & Cranley), JavaScript’s Triumph Hello World testing example, Selenese Command Programming Interface Hickey, Rich, JavaScript Tools You Should Know High Performance JavaScript (Zakas), The Power of JavaScript High Performance Web Sites (Souders), JavaScript Tools You Should Know higher order functions, Functional Programming hoisting, Lambda Functions Are Powerful <hr> tag, Accessibility Through WAI-ARIA, Accessibility Through WAI-ARIA, Accessibility Through WAI-ARIA HTML 5, Putting It All Together, Introduction to the Manifest File, Graphics, Web Worker Fractal Example, New Tags, New CSS, New Form Types, Canvas and SVG, New CSS Canvas, Graphics, Web Worker Fractal Example, Canvas and SVG manifest declaration example, Introduction to the Manifest File new CSS features, New CSS new form types, New Form Types new tags, New Tags, New CSS progress bar, Putting It All Together HTML5 Canvas (Fulton & Fulton), Graphics, Canvas and SVG HTML5 Graphics with SVG & CSS3 (Cagle), Canvas and SVG HTML5 Media (Powers), Audio and Video HTML5 Rocks tutorial, Canvas and SVG HTTP (Hypertext Transfer Protocol), Adding Power to Web Applications, Web Sockets, Erlang Yaws I I/O, Nonblocking I/O and Callbacks IDs, importance of assigning, Selenium if statement, Lambda Functions Are Powerful images, Functional Programming, Blobs, Working with Files, Drag-and-Drop, Filesystem, Filesystem, Debugging Manifest Files, Graphics, Graphics, Graphics, Web Worker Fractal Example, Canvas and SVG appending to documents, Working with Files and Canvas, Graphics editing, Filesystem, Graphics missing, Debugging Manifest Files progressive drawing, Web Worker Fractal Example scaling example, Functional Programming streaming video, Filesystem SVG, Canvas and SVG use of src attribute, Blobs, Graphics user access to, Drag-and-Drop <img> tag, Graphics, Accessibility Through WAI-ARIA importScripts() method, The Worker Environment independent event loops, Splitting Up Work Through Web Workers index() method, Adding Indexes IndexedDB, Adding Power to Web Applications, IndexedDB, Deleting Data indexes, adding/removing, Adding Indexes indexOf() method, Prototypes and How to Expand Objects info() method, Web Worker Fractal Example inner functions, Closures integration testing, Testing JavaScript Applications, Selenium interceptor methods, Expanding Functions with Prototypes Internet Explorer (IE), Microsoft, Array Iteration Operations, IndexedDB, A Pattern for Reuse of Multithread Processing iOS Selenium, testing applications for, Selenium RC and a Test Farm iPad/iPod/iPhone platform, Selenium RC and a Test Farm, A Pattern for Reuse of Multithread Processing isDuplicate() method, Deleting Data isElementPresent() method (Selenese API), Selenese Command Programming Interface isTextPresent() method (Selenese API), Selenese Command Programming Interface itemprop attribute, Microdata itemscope attribute, Microdata itemtype attribute, Microdata J JavaScript, JavaScript’s Triumph, JavaScript’s Triumph, Nonblocking I/O and Callbacks, Lambda Functions Are Powerful, Lambda Functions Are Powerful, Closures, Functional Programming, Functional Programming, Prototypes and How to Expand Objects, Prototypes and How to Expand Objects, Prototypes and How to Expand Objects, Expanding Functions with Prototypes, Prototypes and How to Expand Objects, Expanding Functions with Prototypes, Expanding Functions with Prototypes, Currying and Object Parameters, Array Iteration Operations, You Can Extend Objects, Too, You Can Extend Objects, Too, Testing JavaScript Applications, Splitting Up Work Through Web Workers, Worker Communication, JavaScript Tools You Should Know, JavaScript Tools You Should Know, JavaScript Tools You Should Know array iteration operations, Array Iteration Operations, You Can Extend Objects, Too closures, Closures currying and object parameters, Currying and Object Parameters expanding functions, Expanding Functions with Prototypes, Expanding Functions with Prototypes expanding objects, Prototypes and How to Expand Objects, Prototypes and How to Expand Objects extending objects, You Can Extend Objects, Too function statement and function expression, Lambda Functions Are Powerful functional programming in, Functional Programming, Functional Programming functions act as data in, Lambda Functions Are Powerful helpful tools for, JavaScript Tools You Should Know, JavaScript Tools You Should Know libraries, JavaScript’s Triumph nonblocking I/O and callbacks, Nonblocking I/O and Callbacks passing objects in Firefox, Worker Communication primitives in, Prototypes and How to Expand Objects prototypes, Prototypes and How to Expand Objects, Expanding Functions with Prototypes recent improvements in, JavaScript’s Triumph runtime event loop, Splitting Up Work Through Web Workers runtime model, Testing JavaScript Applications syntax checker, JavaScript Tools You Should Know JavaScript Patterns (Stefanov), The Power of JavaScript JavaScript: The Definitive Guide (Flanagan), The Power of JavaScript JavaScript: The Good Parts (Crockford), JavaScript’s Triumph, The Power of JavaScript, JavaScript Tools You Should Know jQuery, JavaScript’s Triumph, Functional Programming, DSt, jStore, IndexedDB, IndexedDB, Libraries for Web Workers DSt plug-in, DSt Hive extension, Libraries for Web Workers IndexedDB plug-in, IndexedDB, IndexedDB jStore plug-in, jStore library, JavaScript’s Triumph, Functional Programming jQuery Cookbook (Lindley), JavaScript’s Triumph JS2 mode, Emacs, JavaScript Tools You Should Know JSBeautifier, JavaScript Tools You Should Know JSLint, The Power of JavaScript, JavaScript Tools You Should Know JSMin, JavaScript Tools You Should Know JSON manifest file, Introduction to the Manifest File JsonStore object, Offline Loading with a Data Store jStore plug-in, jStore L Lambda Calculus, Lambda Functions Are Powerful lambda functions, Lambda Functions Are Powerful lastIndexOf(), Prototypes and How to Expand Objects libraries, JavaScript’s Triumph, Libraries for Web Workers Lindley, Cody, JavaScript’s Triumph Lisp lambdas, Lambda Functions Are Powerful list recursion, Functional Programming list test examples, Testing JavaScript Applications load() method (JSON), Offline Loading with a Data Store local data storage, Adding Power to Web Applications, Local Storage, jStore local state provider, ExtJS, Using localStorage in ExtJS localStorage object, The localStorage and sessionStorage Objects, Using localStorage in ExtJS, Storing Changes for a Later Server Sync location object, The Worker Environment loops, Array Iteration Operations, Selenium Commands, Splitting Up Work Through Web Workers, Splitting Up Work Through Web Workers, A Pattern for Reuse of Multithread Processing for, Array Iteration Operations independent event, Splitting Up Work Through Web Workers runtime event, Splitting Up Work Through Web Workers and Selenium, Selenium Commands while, A Pattern for Reuse of Multithread Processing M macros, recording web, Selenium Mandelbrot computation examples, Web Worker Fractal Example, Web Worker Fractal Example manifest file, Adding Power to Web Applications, Introduction to the Manifest File, Debugging Manifest Files map() method, Array Iteration Operations, You Can Extend Objects, Too match() method, Prototypes and How to Expand Objects McCarthy, John, Lambda Functions Are Powerful MD5 checksum, Updates to the Manifest File memory leaks, Selenium Commands <meter> tag, Tags for Applications microdata, Microdata Microsoft Internet Explorer, Array Iteration Operations, IndexedDB, A Pattern for Reuse of Multithread Processing minification, JavaScript Tools You Should Know MongoDB, IndexedDB mouseDown command (Selenium), Selenium Commands mouseOver command (Selenium), Selenium Commands mouseUp command (Selenium), Selenium Commands MozBlobBuilder, Blobs Mozilla Firefox, Prototypes and How to Expand Objects (see Firefox, Mozilla) mozSlice() method (Firefox), Blobs MozWebSockets, Web Sockets N name/value pairs, Currying and Object Parameters navigator object, The Worker Environment .NET/CLR, Web Socket Example NETWORK section, manifest, Structure of the Manifest File node trees, You Can Extend Objects, Too Node.js, Web Sockets, Web Socket Example, JavaScript Tools You Should Know nonblocking I/O, Nonblocking I/O and Callbacks :not() CSS selector, New CSS notDeepEqual() method, Testing with QUnit notEqual() method, Testing with QUnit notStrictEqual() method, Testing with QUnit noupdate events, Events :nth-child() CSS selector, New CSS number form input, New Form Types numbers, Lambda Functions Are Powerful, Prototypes and How to Expand Objects, Prototypes and How to Expand Objects, Expanding Functions with Prototypes, Expanding Functions with Prototypes, Expanding Functions with Prototypes, Array Iteration Operations cubing example, Expanding Functions with Prototypes Fibonacci calculation examples, Expanding Functions with Prototypes, Expanding Functions with Prototypes as objects, Prototypes and How to Expand Objects squaring examples, Lambda Functions Are Powerful, Prototypes and How to Expand Objects, Array Iteration Operations O object parameters, Currying and Object Parameters object stores, IndexedDB, IndexedDB, Retrieving Data objects, extending, You Can Extend Objects, Too Offer-Aggregates specs, Microdata Offers specs, Microdata offline use, Local Storage, Offline Loading with a Data Store, Offline Loading with a Data Store, Storing Changes for a Later Server Sync, Introduction to the Manifest File, Debugging Manifest Files data access, Local Storage loading with data store, Offline Loading with a Data Store, Offline Loading with a Data Store manifest file, Introduction to the Manifest File, Debugging Manifest Files storing changes, Storing Changes for a Later Server Sync ok() method, Testing with QUnit onclose() method, The Web Sockets Interface onmessage() method, Using Web Workers, Web Worker Fractal Example, A Pattern for Reuse of Multithread Processing onopen() method, The Web Sockets Interface open command (Selenium), Selenium Commands Opera Dragonfly, JavaScript’s Triumph, A Pattern for Reuse of Multithread Processing Organizations specs, Microdata outer functions, Closures O’Reilly Answers website, The Power of JavaScript O’Sullivan, Bryan, Functional Programming P parameter blocks, Currying and Object Parameters path() method, You Can Extend Objects, Too pattern for reuse of multithread processing, A Pattern for Reuse of Multithread Processing, A Pattern for Reuse of Multithread Processing Payne, Alex, Functional Programming People specs, Microdata persistent local storage, Local Storage PhoneGap, Developing Web Applications PHP, Lambda Functions Are Powerful phpUnderControl, Selenese Command Programming Interface PHPUnit testing framework, Automatically Running Tests, Selenese Command Programming Interface pixel, drawing a, Web Worker Fractal Example PollenJS library, Libraries for Web Workers populate_form() method (DSt), DSt populating (example), Prototypes and How to Expand Objects port 443 (wss), Setting Up a Web Socket port 80 (ws), Setting Up a Web Socket port 8080, Web Socket Example $.post() method (Hive API), Libraries for Web Workers postMessage() method, Using Web Workers, A Pattern for Reuse of Multithread Processing, A Pattern for Reuse of Multithread Processing Powers, Shelley, Audio and Video PreloadStore object (JSON), Offline Loading with a Data Store pretty printer example, JavaScript Tools You Should Know primitives in JavaScript, Prototypes and How to Expand Objects Products specs, Microdata Programming Scala (Wampler & Payne), Functional Programming progress events, Events progress indicator examples, Putting It All Together, Tags for Applications <progress> tag, Tags for Applications prompt() method, Nonblocking I/O and Callbacks prototype object, Prototypes and How to Expand Objects prototypes, expanding functions with, Expanding Functions with Prototypes, Expanding Functions with Prototypes Q query access, IndexedDB QUnit, Testing JavaScript Applications, QUnit, Testing with QUnit, Running QUnit from Selenium R race conditions, IndexedDB, Splitting Up Work Through Web Workers raises() method, Testing with QUnit rar files, Drag-and-Drop RC server, Selenium, Selenium readAsArrayBuffer() method (FileReader), Working with Files readAsBinaryString() method (FileReader), Working with Files readAsText() method (FileReader), Working with Files readDataAsURL() method (FileReader), Working with Files Real World Haskell (Goerzen & Stewart), Functional Programming recall() method (DSt), DSt reduce(), reduceRight() methods, Array Iteration Operations refresh command (Selenium), Selenium Commands remove() method, Deleting Data replace() method, Prototypes and How to Expand Objects required attribute (forms), New Form Types Resig, John, JavaScript’s Triumph reuse of multithread processing, A Pattern for Reuse of Multithread Processing, A Pattern for Reuse of Multithread Processing Review-Aggregates specs, Microdata Reviews specs, Microdata revokeBlobURL() method, Blobs Rhino, JavaScript Tools You Should Know role attribute, Accessibility Through WAI-ARIA route finder, Maps Ruby, Web Socket Example Ruby Event Machine, Ruby Event Machine run function example, A Pattern for Reuse of Multithread Processing run() method, Web Worker Fractal Example running average example, Array Iteration Operations runtime model, JavaScript, Testing JavaScript Applications S Safari Nightly builds, Blobs Safari, Apple’s, JavaScript’s Triumph, A Pattern for Reuse of Multithread Processing, Libraries for Web Workers, Web Sockets same origin policy, The localStorage and sessionStorage Objects, IndexedDB sandboxed environment, Developing Web Applications, Filesystem save queue examples, Storing Changes for a Later Server Sync Scala, Web Socket Example Scalable Vector Graphics, Canvas and SVG scaling images, Functional Programming scope, Lambda Functions Are Powerful, Closures <script> tag, The Worker Environment search form input, New Form Types Selenese, Selenium Commands, Selenese Command Programming Interface, Selenese Command Programming Interface Selenium, Testing JavaScript Applications, Selenium, Selenium, Selenium, Selenium Commands, Selenium Commands, Selenium Commands, Constructing Tests with the Selenium IDE, Constructing Tests with the Selenium IDE, Automatically Running Tests, Automatically Running Tests, Selenese Command Programming Interface, Selenese Command Programming Interface, Running QUnit from Selenium, Drag-and-Drop automatically running tests, Automatically Running Tests, Automatically Running Tests commands, Selenium Commands, Selenium Commands constructing tests, Constructing Tests with the Selenium IDE example tests, Selenium IDE, Selenium, Constructing Tests with the Selenium IDE location options, Selenium Commands no drag-and-drop, Drag-and-Drop running QUnit from, Running QUnit from Selenium Selenese, Selenese Command Programming Interface, Selenese Command Programming Interface test table, Selenium Selenium Grid, Automatically Running Tests Selenium RC server, Selenium, Selenium RC and a Test Farm self object, The Worker Environment Sencha ExtJS library, JavaScript’s Triumph send(“data”) method, The Web Sockets Interface server delay, Developing Web Applications, Web Sockets server polling, Web Sockets server-side testing, Testing JavaScript Applications, Testing JavaScript Applications, Selenese Command Programming Interface sessionStorage object, The localStorage and sessionStorage Objects, Using localStorage in ExtJS setInterval() method, Expanding Functions with Prototypes, The Worker Environment setTimeout() method, Expanding Functions with Prototypes, Testing with QUnit, The Worker Environment, A Pattern for Reuse of Multithread Processing, A Pattern for Reuse of Multithread Processing setVersion transaction, Adding Indexes side effects, Functional Programming single-step mode, Selenium sleep() method, Selenese Command Programming Interface slice() method, Prototypes and How to Expand Objects, Blobs slider, form, New Form Types smartphones, Developing Web Applications some() method, Array Iteration Operations Souders, Steve, JavaScript Tools You Should Know speech input type, New Form Types Speed Tracer, JavaScript Tools You Should Know speed, data storage and, Local Storage split() method, Prototypes and How to Expand Objects SQL Injection attacks, IndexedDB SQLite versus IndexedDB, IndexedDB squaring numbers example, Prototypes and How to Expand Objects src attribute, Audio and Video StackOverflow website, The Power of JavaScript startWorker() method, Web Worker Fractal Example static data storage, Local Storage Stefanov, Stoyan, The Power of JavaScript step through, Selenium, Testing and Debugging Web Workers Stewart, Donald Bruce, Functional Programming stock price examples, Web Socket Example, Ruby Event Machine stop() method, A Pattern for Reuse of Multithread Processing storage events, The localStorage and sessionStorage Objects storage viewer widget, The localStorage and sessionStorage Objects $.storage() method (Hive API), Libraries for Web Workers store() method (DSt), DSt store_form() method (DSt), DSt strictEqual() method, Testing with QUnit string token replacement, Prototypes and How to Expand Objects strings, methods for, Prototypes and How to Expand Objects Structure and Interpretation of Computer Programs (Abelson & Sussman), Functional Programming structured data, query access to, IndexedDB subclassing, Currying and Object Parameters Sussman, Gerald Jay, Functional Programming SVG, Canvas and SVG <svg> tag, Graphics Symfony Yaml Library, Updates to the Manifest File T tar files, Drag-and-Drop TCP socket, Web Socket Protocol TCP/IP sockets, Web Sockets tel form input, New Form Types test machines, Automatically Running Tests test suites, Testing JavaScript Applications, QUnit, Testing with QUnit, Selenium, Selenium RC and a Test Farm, Selenium, Selenium, Running QUnit from Selenium programming language based, Selenium QUnit, QUnit, Testing with QUnit, Selenium, Running QUnit from Selenium Selenium, Selenium, Selenium RC and a Test Farm server-side, Testing JavaScript Applications Test-driven development, Testing JavaScript Applications, Testing JavaScript Applications thread safety, Splitting Up Work Through Web Workers threads, Adding Power to Web Applications time form input, New Form Types title attribute, Accessibility Through WAI-ARIA transaction object, database, IndexedDB transaction.abort() method (jQuery), IndexedDB transaction.done() method (jQuery), IndexedDB True Type font files, New CSS type command (Selenium), Selenium Commands U undefined value, Functional Programming unit testing, Testing JavaScript Applications update() method (IndexedDB), Adding and Updating Records updateEach() method (IndexedDB), Adding and Updating Records uploading files, Uploading Files URLs, QUnit, Blobs, Working with Files, Structure of the Manifest File, Events, Events, Debugging Manifest Files, The Web Sockets Interface adding ?

pages: 435 words: 62,013

HTML5 Cookbook by Christopher Schmitt, Kyle Simpson


Firefox, Internet Archive, security theater, web application, WebSocket

At the time of this writing, some browsers are starting to visually highlight fields that do not validate on blur when the user exits the input field, but do not display the error message until the form is submitted. Other browsers provide no feedback until the form is submitted. See Table 3-2 for a browser support chart. Table 3-2. Browsers supporting the email, url, and tel input types IE Firefox Chrome Safari Opera iOS Android 10 Platform Preview 2 4.0+ 10+ 4.0+ 11.0+ ✓ ✓ Figure 3-3. The email input field error messaging in Firefox 4 Figure 3-4. The email input field error messaging in Chrome 12 Figure 3-5. The url input field error messaging in Firefox 4 Figure 3-6. The url input field error messaging in the second Internet Explorer Platform Preview Customizing the default error message If you look closely at Figures 3-5 and 3-6, you’ll notice that the default error message varies from browser to browser.

Get the frameBuffer data: var fbData = event.frameBuffer; Set the step increment: var stepInc = (frameBufferLength / channels) / canvas.width; and set the wave amplitude: var waveAmp = canvas.height / 2; Next, reset canvas so the strokes don’t build on top of each other: canvas.width = canvas.width; Finally, build the stroke and set stroke properties: context.beginPath(); context.moveTo(0, waveAmp - fbData[0] * waveAmp); for(var i=1; i < canvas.width; i++){ context.lineTo(i, waveAmp - fbData[i*stepInc] * waveAmp); } context.strokeStyle = "#fff"; Add the stroke to canvas: context.stroke(); } and play the audio:; } </script> Discussion Just as generating real-time audio with JavaScript (see Recipe 4.3) is limited to Firefox 4+, so is this method of audio visualization with canvas. This is because only the Mozilla Audio Data API allows you to access the key audio data (in this example, frameBuffer) necessary to create the canvas drawing. Further, this method of audio visualization must run on a web server, and it requires that the audio file reside on that same server due to Firefox security measures ( Note While this recipe makes use of the Mozilla Audio Data API, browsers (including Firefox) may support the Web Audio API from the W3C. For more information, see the specification at

Solution Add the poster attribute with the placeholder image file path as the value: <video controls width="640" height="360" poster="video_still.png"> <source src="video.mp4" type="video/mp4" /> <source src="video.ogv" type="video/ogg" /> Your device does not support HTML5 video. </video> Discussion Poster images can be a nice user enhancement, especially when the video doesn’t load or can’t be displayed. Consider a single-source .mp4 video viewed in Firefox, as shown in Figure 5-2. Figure 5-2. Since Firefox doesn’t support .mp4 files, the browser displays a dark gray box if there is no poster image specified Unfortunately, different browsers handle poster images differently: Firefox stretches the image to fill the dimensions of the player (see Recipe 5.3). Chrome keeps the image at its original size. Safari displays the poster image until the video data is loaded, at which point it displays the first frame from the video. If the poster image is a different size from the video, the video is resized to match the aspect ratio of the poster image (see Figure 5-3).

pages: 372 words: 67,140

Jenkins Continuous Integration Cookbook by Alan Berg


anti-pattern, continuous integration, Debian, don't repeat yourself,, Firefox, job automation, performance metric, revision control, web application, x509 certificate

The reason was that the dependencies in the Maven plugin for Selenium did not like the newer version of Firefox that was installed by an auto-update script. The resolution to the problem was to install the binary for Firefox 3.63 under the Jenkins home directory, and point directly at the binary in pom.xml, replacing: <browser>*firefox</browser> With: <browser>*firefox Path</browser> Where the Path is similar to /var/lib/Jenkins/firefox/firefox-bin. Another cause of issues is the need to create a custom profile for Firefox that includes helper plugins to stop pop ups or the rejection of self-signed certificates. For more complete information, review An alternative to using Firefox as a browser is Chrome. There is a Jenkins plugin that helps provision Chrome across Jenkins nodes (

There's more... 80 percent of all sensory information processed by the brain is delivered through the eyes. A picture can save a thousand words of descriptive text. Webdriver has the ability to capture screenshots. For example, the following code for the Firefox driver saves a screenshot to loginpage_firefox.png: public void getLoginPageWithFirefox() throws IOException, InterruptedException { FirefoxDriver driver = new FirefoxDriver(); driver.get("http://localhost:8080/login); FileUtils.copyFile(driver.getScreenshotAs(OutputType.FILE), new File("loginpage_firefox.png")); driver.close(); } The most significant limitation is that screenshooting does not work with the HtmlUnit driver: See also Running Selenium IDE tests Activating Fitnesse HtmlUnit fixtures Creating JMeter test plans JMeter ( is an open source tool for stress testing.

You will pull in the Jenkins RSS feeds using a Firefox add-on. This allows you to view the build process, while going about your everyday business. Getting ready You will need Firefox 5 or later installed on your computer and an account on at least one Jenkins instance, with a history of running Jobs. A plug for the developers If you like the add-on and want more features in the future, then it is enlightened in the self-interest to donate a few bucks at the add-on author's website. How to do it... Select the Firefox tab at the top-left hand side of the browser. In the Search box (top-right) with the title Search all add-ons, search for Jenkins. Click on the Install button for the Jenkins Build monitor. Restart Firefox. Select the Firefox tab at the top left-hand side of the browser.

pages: 351 words: 123,876

Beautiful Testing: Leading Professionals Reveal How They Improve Software (Theory in Practice) by Adam Goucher, Tim Riley


Albert Einstein, barriers to entry, Black Swan, call centre, continuous integration, Debian, Donald Knuth,, Firefox, Grace Hopper, index card, Isaac Newton, natural language processing, p-value, performance metric, revision control, six sigma, software as a service, software patent, the scientific method, Therac-25, Valgrind, web application

Sisyphus doesn’t install Firefox, but instead can launch any specific previously installed version of Firefox. This is good, in a way, as it allows you to easily substitute custom builds, such as special patched builds or debug builds. Still, it would be cool to just point at an installable binary and say, “Go!”—just pick your build, install it, and start throwing websites at it. Currently, the sequence is: pick an installed Firefox ‖ See “Testing Extensions and Firefox for Memory Leaks with a Debug Build” at MozillaQualityAssurance:Home_Page:Firefox_3.0_TestPlan:Leaks:LeakTesting-How-To and “Debugging memory leaks” at TESTING ONE MILLION WEB PAGES 299 build, launch Firefox, install extensions, run the tests, exit Firefox, and repeat, a million times if you like.

Example of running JavaScript tests from the CLI windmill 'browser' 'url' jsdir=js_tests_dir ex. windmill firefox jsdir=js_tests_dir 290 CHAPTER TWENTY-ONE EXAMPLE 21-6. Example of running JavaScript tests from the shell windmill shell 'browser' 'url' Running: At prompt, In [1]: run_js_tests('/path/to/js_tests_dir') Debugging Test Windmill’s most prominent debugging feature is the ability to execute Windmill actions directly from the shell; this allows you to control your browser without even touching it (Example 21-7). EXAMPLE 21-7. Example shell session interacting with the browser zsh% windmill shell firefox (Start the Windmill server in shell mode) Started ['/Applications/', '-profile', '/var/folders/YO/YOAvf2hSGt0+VnBIAKuImE+++TM/-Tmp-/tmpy0xq6y.mozrunner', ''] (Windmill output telling you what was launched and from where) In [1]: from windmill.authoring import WindmillTestClient (Import the Windmill Test Client) In [2]: client = WindmillTestClient(__name__) (Access the Windmill client) In [3]:"q") (Click on a DOM node in the browser with a name attribute of "q") Out[3]: {u'endtime': u'2009-3-9T18:1:3.813Z', u'method': u'click', u'output': None, u'params': {u'name': u'q', u'uuid': u'101d4630-256b-11de-b49f-002332da2796'}, u'result': True, u'starttime': u'2009-3-9T18:1:3.811Z', u'suite_name': u'windmill.bin.shell_objects', u'version': u'0.1'} (All of the output associated with the click action) In addition to the debugging features, Windmill also has some client-side features built in for debugging the Document Object Model (DOM) and JavaScript.

We linked it with the Spider tool and the top-500 sites framework, and tried it out. It worked great! When we first tried to scale the tests, we simply wanted to find a better way of running the leak tests. We needed something that would start Firefox, load a website, and then quit Firefox. Running a debug build provided the functionally to collect memory leak and assertion information, and to continue testing even if Firefox crashed. We wondered how to save a logfile. It turned out there was a preference to have leak data piped into a logfile. The next challenge was to be able to run this with different versions of Firefox. We had a special TraceMonkey build (TraceMonkey adds native-code compilation to Mozilla’s JavaScript engine) along with trunk, 3.0, and 3.5 builds. We were able to easily bolt this onto Sisyphus. We started running the automated JavaScript tests with Sisyphus.

pages: 312 words: 52,762

Gray Hat Python: Python Programming for Hackers and Reverse Engineers by Justin Seitz


Firefox, web application

= "\x00": buffer += byte offset += 1 continue else: break if pattern in buffer: print "Pre-Encrypted: %s" % buffer return DBG_CONTINUE # Quick and dirty process enumeration to find firefox.exe for (pid, name) in dbg.enumerate_processes(): if name.lower() == "firefox.exe": found_firefox = True hooks = utils.hook_container() dbg.attach(pid) print "[*] Attaching to firefox.exe with PID: %d" % pid # Resolve the function address hook_address = dbg.func_resolve_debuggee("nspr4.dll","PR_Write") if hook_address: # Add the hook to the container. We aren't interested # in using an exit callback, so we set it to None. hooks.add( dbg, hook_address, 2, ssl_sniff, None ) print "[*] nspr4.PR_Write hooked at: 0x%08x" % hook_address break else: print "[*] Error: Couldn't resolve hook address." sys.exit(-1) if found_firefox: print "[*] Hooks set, continuing process." else: print "[*] Error: Couldn't find the firefox.exe process." sys.exit(-1) The code is fairly straightforward: It sets a hook on PR_Write, and when the hook gets hit, we attempt to read out an ASCII string pointed to by the second parameter.

Normally to understand how a client or server application interacts with the network, we would use a traffic analyzer like Wireshark.[33] Unfortunately, Wireshark is limited in that it can only see the data post encryption, which obfuscates the true nature of the protocol we are studying. Using a soft hooking technique, we can trap the data before it is encrypted and trap it again after it has been received and decrypted. Our target application will be the popular open-source web browser Mozilla Firefox.[34] For this exercise we are going to pretend that Firefox is closed source (otherwise it wouldn't be much fun now, would it?) and that it is our job to sniff data out of the firefox.exe process before it is encrypted and sent to a server. The most common form of encryption that Firefox performs is Secure Sockets Layer (SSL) encryption, so we'll choose that as the main target for our exercise. In order to track down the call or calls that are responsible for passing around the unencrypted data, you can use the technique for logging intermodular calls as described at

The prototype of an exit hook callback function is slightly different in that it also has a ret parameter, which is the return value of the function (the value of EAX): def exit_hook( dbg, args, ret ): # Hook code here return DBG_CONTINUE To illustrate how to use an entry hook callback to sniff pre-encrypted traffic, open up a new Python file, name it, and punch out the following code. from pydbg import * from pydbg.defines import * import utils import sys dbg = pydbg() found_firefox = False # Let's set a global pattern that we can make the hook # search for pattern = "password" # This is our entry hook callback function # the argument we are interested in is args[1] def ssl_sniff( dbg, args ): # Now we read out the memory pointed to by the second argument # it is stored as an ASCII string, so we'll loop on a read until # we reach a NULL byte buffer = "" offset = 0 while 1: byte = dbg.read_process_memory( args[1] + offset, 1 ) if byte !

pages: 141 words: 9,896

Pragmatic Guide to JavaScript by Christophe Porteneuve


barriers to entry, commoditize, domain-specific language,, Firefox, web application, WebSocket

I should confess, though, that my usual debugging cycle goes like this. First, code with either Safari or Firefox. Then verify and adjust (if needed) in “the other one” (either Firefox or Safari) and then in IE8, IE7, and IE6 (in that order). Finally, just to be sure, run a quick check in Opera and Chrome. Thus, I follow the sequence I use for XHTML/CSS development. And just like markup and styling, once you get JavaScript working all right in Safari, Firefox, and the IE set, it usually works like a charm in Chrome and Opera. So, debugging in Opera is a rare need for me. As a final note, know there is a Debug menu you can enable in Opera that gives you direct access to a number of functions reminiscent of Firefox’s Web Developer Toolbar extension or Safari’s Development menu. You can enable it by downloading a configuration file from within Opera.6 B.7 Virtual Machines Are Your Friends Nowadays RAM is cheap.

Syndicating Your Twitter Updates 92 Task 34. Syndicating Your Flickr Updates 94 Task 35. Geocoding a Location and Getting Photos For It 96 Report erratum Download from Wow! eBook <>this copy is (P1.0 printing, November 2010) CONTENTS 8 VII Appendices 98 A JavaScript Cheat Sheet 99 B Debugging JavaScript B.1 Here Be Dragons . . . . . . . . . . . . . . . . . . . B.2 Firefox and Firebug . . . . . . . . . . . . . . . . . . B.3 Safari and Web Inspector . . . . . . . . . . . . . . . B.4 IE6, IE7, the IE Toolbar, and Web Developer Express B.5 IE8 and Developer Tools . . . . . . . . . . . . . . . B.6 Opera and Dragonfly . . . . . . . . . . . . . . . . . B.7 Virtual Machines Are Your Friends . . . . . . . . . B.8 The Network May Be Your Enemy . . . . . . . . . 102 102 103 107 109 112 113 114 115 C JavaScript Frameworks C.1 Prototype,, and Scripty2 C.2 jQuery and jQuery UI . . . . . . . . .

eBook <>this copy is (P1.0 printing, November 2010) 26 O BTAINING R EFERENCES TO DOM E LEMENTS 27 Grab an element by its ID. document.getElementById('elementId') $('elementId') $('#elementId')'#elementId') dojo.byId('elementId') Ext.getDom('elementId') // // // // // // Plain W3C DOM Prototype, MooTools jQuery YUI 3 Dojo Ext JS 3 Grab elements by XPath/CSS selection. Supported syntaxes vary depending on the library, and the W3C Selectors API is available (but blazingly fast) only in recent-enough browsers: Firefox 3.1+, Safari 3.1+, IE8+ (standards mode), Chrome, and Opera 10+. Also, note that all libraries provide some way to specify the context, the root node within which to explore (by default the entire document). Narrowing the context down whenever possible speeds up your code and reduces memory usage. document.querySelectorAll('selectors') $$('selectors')'selectors') $('selectors') Y.all('selectors') dojo.query('selectors') Ext.query('selectors') // // // // // // // Native (see above) Prototype, MooTools Prototype jQuery YUI 3 Dojo Ext JS 3 Move around (DOM traversals).

pages: 468 words: 233,091

Founders at Work: Stories of Startups' Early Days by Jessica Livingston


8-hour work day, affirmative action, AltaVista, Apple II, Brewster Kahle, business process, Byte Shop, Danny Hillis, David Heinemeier Hansson, don't be evil, fear of failure, financial independence, Firefox, full text search, game design, Googley, HyperCard, illegal immigration, Internet Archive, Jeff Bezos,, Larry Wall, Maui Hawaii, Menlo Park, nuclear winter, Paul Buchheit, Paul Graham, Peter Thiel, Richard Feynman, Richard Feynman, Robert Metcalfe, Ruby on Rails, Sand Hill Road, side project, Silicon Valley, slashdot, social software, software patent, South of Market, San Francisco, Startup school, stealth mode startup, Steve Ballmer, Steve Jobs, Steve Wozniak, web application, Y Combinator

C H A P T E 29 R Blake Ross Creator, Firefox Blake Ross and Dave Hyatt started Firefox as a side project while working at the Mozilla Foundation. They were working to revive the struggling Netscape browser, but became frustrated by the constraints imposed on them. So Ross and Hyatt decided to build a browser that they would actually want to use. Working in their spare time, they began developing a new browser that was fast, simple, and reliable. In 2002, they launched the initial version, called Phoenix, and in 2004 they released Firefox 1.0, which was an instant hit. Like a lot of things described in this book, Firefox was something new. It was an open source project run like a startup, both in the concern for the end user and in the attention paid to marketing. The results were impressive: Firefox has cut into the formerly overwhelming market share of Internet Explorer, and dominates among technical users.

Smells like Firefox all over again. Those kinds of comments are so motivating. I love the challenge. We talked to plenty of people at the very beginning of Firefox. It was obvious that people were not happy with their browser, and it was very clear that, if we could do something better, we might be able to get them to use it. Livingston: Do you remember people’s reactions when you gave an early demo of it? Ross: People loved the simplicity and went crazy over tabbed browsing. What’s weird is that I didn’t really talk to anyone I knew personally throughout the course of Firefox development. My parents and my friends—most of them didn’t really know I was working on Firefox until it came out and there was the Business 2.0 article. That’s when everyone was like, “Wait, you work on Firefox?” They knew I “did something” with computers, but . . .

Livingston: Did he leave Apple? Ross: No. He still works on Safari right now. He did Firefox and then went off to Apple. Livingston: So then it was just a few of you. Ross: The Firefox team is always changing. It’s not fair to say there are just a few of us, because we’re based on Mozilla, which obviously has dozens of developers, and there are a lot of developers working on Gecko, the core layout engine. The Firefox team itself—the people worrying about everything wrapped around the engine and working on the separate fork of the code base—was always about four or five different people for the first year. Now there are a lot more, obviously, because it’s the main source tree. All those people that were working on Mozilla now work on Firefox. Livingston: What was the first turning point when you knew you were really onto something?

pages: 193 words: 36,189

Html5 Boilerplate Web Development by Divya Manian

Amazon:, Firefox, Google Chrome, node package manager, pull request, Ruby on Rails, search engine result page

But wait, we are not done yet! We have written all the code, but how about some testing? There are so many variants of browsers out there and it is impossible to test on each and every one of them. Fortunately, it is pretty simple to test on most major versions of browsers. If you are on Windows, I recommend you install the latest versions of Opera, Opera Next, Safari, Chrome, Chrome Canary, Firefox, Firefox Nightly, IE8, and IE10. If you are on Mac, get every browser listed above, except IE. If you are able to afford it, buy a Windows Operating System and install it as a virtual image on Virtual Box ( Microsoft provides older IEs as virtual images for testing, which you could also install on Virtual Box using ievms ( For a far easier but less rigorous testing option—say when you have not yet finalized your website—try or

You can disable them by adding the following code within the head tag in the index.html file: <metahttp-equiv="imagetoolbar" content="false"> Writing CSS3 easier with tools CSS3 is at the bleeding edge. Some properties require what is known as a vendor prefix. For example, the 3D transforms property perspective is implemented as follows, in different browsers: -webkit-perspective //Safari, Chrome -ms-perspective // Internet Explorer perspective // Firefox Only a short while ago, Firefox implemented this property as –moz-perspective, but have since dropped support for the –moz- prefix. As you will come to realize, it is really hard to keep track of which browser requires a prefix and which browser does not, and it is not quite feasible to keep all the sites that we create updated on a regular basis every time a browser adds or drops support for a prefix. To make this easier, we could use abstractions without these prefixes such that a tool that has an updated index of which property requires which prefix could convert them into the required final CSS.

For this, we can use the CSS page-break-inside property that allows you to tell the browser if you prefer these elements to break over two pages or stay within the same page. The code for this is shown in the following code snippet: pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } Do note that page-break-inside is not supported in Firefox, but is available in all other browsers. Rendering tables better By default, putting headings within the thead tag would ensure that the headings get repeated every time a table breaks across two pages. However, only Firefox and Opera have support for this at the moment. In IE, you can do this but you would have to explicitly state it, as stated in the following code snippet: thead { display: table-header-group; /* */ } Rendering images better Ideally, we want to prevent table rows and images from breaking across pages, so we use the now familiar page-break-inside property to tell the browser of our preference, as shown in the following code snippet: tr, img { page-break-inside: avoid; } It also does not appear too well, when images run off beyond the page or print cropped while appearing in full on the website.

pages: 400 words: 94,847

Reinventing Discovery: The New Era of Networked Science by Michael Nielsen


Albert Einstein, augmented reality, barriers to entry, bioinformatics, Cass Sunstein, Climategate, Climatic Research Unit, conceptual framework, dark matter, discovery of DNA, Donald Knuth, double helix, Douglas Engelbart, Douglas Engelbart,, Erik Brynjolfsson, fault tolerance, Fellow of the Royal Society, Firefox, Freestyle chess, Galaxy Zoo, Internet Archive, invisible hand, Jane Jacobs, Jaron Lanier, Kevin Kelly, Magellanic Cloud, means of production, medical residency, Nicholas Carr, publish or perish, Richard Feynman, Richard Feynman, Richard Stallman, selection bias, semantic web, Silicon Valley, Silicon Valley startup, Simon Singh, Skype, slashdot, social web, statistical model, Stephen Hawking, Stewart Brand, Ted Nelson, The Death and Life of Great American Cities, The Nature of the Firm, The Wisdom of Crowds, University of East Anglia, Vannevar Bush, Vernor Vinge

We’ve seen how Wikipedia and similar reference wikis use a carefully chosen page structure to modularize. Another approach to modularity is illustrated by the way work on the Firefox web browser is organized. If you’re not familiar with Firefox, it’s a popular alternative to the Internet Explorer web browser. Like Linux, Firefox is an open source project. But the Firefox developers organize their work using a different approach from that of both Linux and Wikipedia. In particular, they organize much of their work using a tool known as an issue tracker. To understand how the issue tracker works, imagine you’re a user of Firefox who’s run into a bug. For example, a bug I’ve sometimes noticed is this: in my list of Firefox bookmarks, the little pictures (called favicons) alongside my bookmarks sometimes get mixed up. That is, the wrong picture will show up beside a bookmark, or seemingly random favicons from other sites will show up for no apparent reason.

Anyway, having noticed this bug, you decide to help the Firefox project out by reporting it. To do this, you visit Firefox’s online issue tracker, a website where you can enter a description of the problem you’re having, and any other details that might come in handy to people trying to fix the bug: what webpage you were browsing when you noticed the bug, what operating system you use, what version of Firefox, and so on. I asked you to imagine doing this, but actually you don’t need to imagine it. I checked the Firefox issue tracker, and someone going by the name Bob did exactly what I’ve just described on January 11, 2008. Once he submitted his report for the favicon bug, it quickly made its way to the issue tracker’s list of “Hot Bugs.” The Hot Bug list is Firefox Central Station, with many of the developers who work on Firefox watching the list closely.

p 53: The Million Penguins blog is at, and has links to other resources associated with the Million Penguins project, including the wiki used to write the novel. I learned of the project from [139], which ran the same excerpt from the novel I have used. p 55: Firefox’s online issue tracker may be found at p 55: The favicon bug in Firefox is described at p 56 The issue tracker isn’t just for fixing bugs, it’s also used to propose and implement new features: In fact, the issue tracker is just one of several ways in which Firefox developers can propose new features. Other forums used to propose new features include an online mailing list, a wiki, and even a weekly conference phone call of Firefox developers. p 58 more than a billion lines: This and the estimate of the rate of code growth are conservative estimates, based on work by Deshpande and Riehle [51], current as of the end of 2006.

pages: 834 words: 180,700

The Architecture of Open Source Applications by Amy Brown, Greg Wilson


8-hour work day, anti-pattern, bioinformatics,, cloud computing, collaborative editing, combinatorial explosion, computer vision, continuous integration, create, read, update, delete, David Heinemeier Hansson, Debian, domain-specific language, Donald Knuth,, fault tolerance, finite state, Firefox, friendly fire, Guido van Rossum, linked data, load shedding, locality of reference, loose coupling, Mars Rover, MVC pattern, peer-to-peer, Perl 6, premature optimization, recommendation engine, revision control, Ruby on Rails, side project, Skype, slashdot, social web, speech recognition, the scientific method, The Wisdom of Crowds, web application, WebSocket

We knew that however we implemented the remote WebDriver protocol, we would need support for both pieces in the languages we wanted to use as clients. The first iteration of the design was developed as part of the Firefox driver. Mozilla, and therefore Firefox, was always seen as being a multi-platform application by its developers. In order to facilitate the development, Mozilla created a framework inspired by Microsoft's COM that allowed components to be built and bolted together called XPCOM (cross-platform COM). An XPCOM interface is declared using IDL, and there are language bindings for C and Javascript as well as other languages. Because XPCOM is used to construct Firefox, and because XPCOM has Javascript bindings, it's possible to make use of XPCOM objects in Firefox extensions. Normal Win32 COM allows interfaces to be accessed remotely. There were plans to add the same ability to XPCOM too, and Darin Fisher added an XPCOM ServerSocket implementation to facilitate this.

As an example, the IE driver has successfully pushed the responsibility for locating and starting IE into the main driver logic. Although this has resulted in a surprising number of lines of code being in the driver, the language binding for creating a new instance boils down to a single method call into that driver. For comparison, the Firefox driver has failed to make this change. In the Java world alone, this means that we have three major classes that handle configuring and starting Firefox weighing in at around 1300 lines of code. These classes are duplicated in every language binding that wants to support the FirefoxDriver without relying on starting a Java server. That's a lot of additional code to maintain. 16.4.3. Flaws in the WebDriver Design The downside of the decision to expose capabilities in this way is that until someone knows that a particular interface exists they may not realize that WebDriver supports that type of functionality; there's a loss of explorability in the API.

There were plans to add the same ability to XPCOM too, and Darin Fisher added an XPCOM ServerSocket implementation to facilitate this. Although the plans for D-XPCOM never came to fruition, like an appendix, the vestigial infrastructure is still there. We took advantage of this to create a very basic server within a custom Firefox extension containing all the logic for controlling Firefox. The protocol used was originally text-based and line-oriented, encoding all strings as UTF-2. Each request or response began with a number, indicating how many newlines to count before concluding that the request or reply had been sent. Crucially, this scheme was easy to implement in Javascript as SeaMonkey (Firefox's Javascript engine at the time) stores Javascript strings internally as 16 bit unsigned integers. Although futzing with custom encoding protocols over raw sockets is a fun way to pass the time, it has several drawbacks.

pages: 234 words: 57,267

Python Network Programming Cookbook by M. Omar Faruque Sarker


business intelligence, cloud computing, Debian, DevOps, Firefox, inflight wifi, RFID, web application

However, if the URL is not correct, it can't find the return response inside the accepted list of return codes. Spoofing Mozilla Firefox in your client code From your Python code, you would like to pretend to the web server that you are browsing from Mozilla Firefox. How to do it... You can send the custom user-agent values in the HTTP request header. Listing 4.7 explains spoofing Mozilla Firefox in your client code as follows: #!/usr/bin/env python # Python Network Programming Cookbook -- Chapter – 4 # This program is optimized for Python 2.7. # It may run on any other version with/without modifications. import urllib2 BROWSER = 'Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0' URL = '' def spoof_firefox(): opener = urllib2.build_opener() opener.addheaders = [('User-agent', BROWSER)] result = print "Response headers:" for header in result.headers.headers: print "\t",header if __name__ == '__main__': spoof_firefox() If you run this script, you will see the following output: $ python Response headers: Date: Sun, 05 May 2013 16:56:36 GMT Server: Apache/2.2.16 (Debian) Last-Modified: Sun, 05 May 2013 00:51:40 GMT ETag: "105800d-5280-4dbedfcb07f00" Accept-Ranges: bytes Content-Length: 21120 Vary: Accept-Encoding Connection: close Content-Type: text/html How it works...

. # It may run on any other version with/without modifications. import urllib2 BROWSER = 'Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0' URL = '' def spoof_firefox(): opener = urllib2.build_opener() opener.addheaders = [('User-agent', BROWSER)] result = print "Response headers:" for header in result.headers.headers: print "\t",header if __name__ == '__main__': spoof_firefox() If you run this script, you will see the following output: $ python Response headers: Date: Sun, 05 May 2013 16:56:36 GMT Server: Apache/2.2.16 (Debian) Last-Modified: Sun, 05 May 2013 00:51:40 GMT ETag: "105800d-5280-4dbedfcb07f00" Accept-Ranges: bytes Content-Length: 21120 Vary: Accept-Encoding Connection: close Content-Type: text/html How it works... We used the build_opener() method of urllib2 to create our custom browser whose user-agent string has been set up as Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0. Saving bandwidth in web requests with the HTTP compression You would like to give your web server users better performance in downloading web pages.

Serving HTTP requests from your machine How to do it... How it works... Extracting cookie information after visiting a website How to do it... How it works... Submitting web forms Getting ready How to do it... How it works... Sending web requests through a proxy server Getting ready How to do it... How it works... Checking whether a web page exists with the HEAD request How to do it... How it works... Spoofing Mozilla Firefox in your client code How to do it... How it works... Saving bandwidth in web requests with the HTTP compression How to do it... How it works... Writing an HTTP fail-over client with resume and partial downloading How to do it... How it works... Writing a simple HTTPS server code with Python and OpenSSL Getting ready How to do it... How it works... 5. E-mail Protocols, FTP, and CGI Programming Introduction Listing the files in a remote FTP server Getting ready How to do it...

pages: 924 words: 241,081

The Art of Community by Jono Bacon


barriers to entry, Benevolent Dictator For Life (BDFL), collaborative editing, crowdsourcing, Debian, DevOps,, Firefox, game design, Guido van Rossum, Johann Wolfgang von Goethe, Jono Bacon, Kickstarter, Larry Wall, Mark Shuttleworth, Mark Zuckerberg, openstreetmap, Richard Stallman, side project, Silicon Valley, Skype, slashdot, social graph, software as a service, telemarketer, union organizing, VA Linux, web application

An interesting project that really set the standard for this kind of outreach was the Mozilla Firefox promotional campaign, Spread Firefox. Back in November 2004, the SilverOrange Canadian web firm was commissioned to build Mozilla’s website. As part of its work the company produced an evangelist application on its intranet to manage the structure and content of the site. Blake Ross (one of the forefathers of Firefox) conceived the idea that Mozilla should encourage and inspire the global Firefox community to lead the marketing for the launch of the popular browser. One of the people involved in this work was Chris Messina. At the time, Chris was a Firefox community member, keen to see the project get better recognition and more widespread focus. Eventually he would go on to lead the Spread Firefox community marketing project in raising over $220,000 in microdonations to launch Firefox to a worldwide audience with an ad in the New York Times.

In the summer of 2004, Blake Ross and Asa Dotzler started an effort to reach out to bloggers who were saying good things about Firefox and ask them to put up a “download Firefox” button on their site. We needed to distribute the work to make an impact with this campaign, so Blake and Asa blogged, asking for volunteer help in building a tool to manage this process. That was the beginning of Spread Firefox. Spread Firefox became the engagement hub for Mozilla—the first large-scale community-based marketing effort the Web had ever seen. It grew to tens of thousands of members in just a few months and was the launch point for such campaigns as the New York Times Project, Firefox Flicks, and the Download Day campaign that set a Guinness Book record for most software downloads in a single day. Mozilla has both a contributor and end-user community.

What approaches have you used for growing both? We consider everyone that chooses to use Firefox and Mozilla products as valuable members of our community. Whether or not end users realize it, choosing to use Firefox and share it with friends and family is critical to advancing our mission to create a thriving Web. From a product standpoint, we make our users stakeholders. We encourage and enable users to customize Firefox and to take part in test driving and providing feedback on our products. This is everything from thousands of add-ons to a button built right into Firefox to provide direct feedback. Our marketing efforts aren’t traditional, either; we aim to build a personal rapport and create programs that allow users to show their support and feel a part of the overall Firefox community. This spans simple programs like our Affiliates buttons (website badges used to drive downloads), to collectively setting a Guinness World Record, to our Join Us membership program.

pages: 100 words: 15,500

Getting Started with D3 by Mike Dewar


Firefox, Google Chrome, linked data, margin call

In this first example, we don’t have any elements on the page at all, so the .enter() method returns a selection containing data for all 11 data elements. This enter selection is now ready for us to append elements to it. Developer Tools Google Chrome’s Developer Tools or Firefox’s Firebug are an essential part of a web developer’s toolset. If you are investigating JavaScript for the first time, especially in the context of drawing visualizations, your first experience of the developer tools is like a breath of fresh air. In Chrome, to access the developer tools, navigate to View→Developer→Developer Tools. In Firefox, you can download Firebug from Once it’s installed, it will be available in the View menu. In order to get your head around the, it’s really useful to run these commands in the developer tool’s console so you can get a firsthand view of what’s actually going on.

A huge benefit of how D3 exposes the designer directly to the web page is that the existing technology in the browser can be leveraged without having to create a whole new plotting language. This appears both when selecting elements, which is performed using CSS selectors (users of JQuery will find many of the idioms underlying D3 very familiar), and when styling elements, which is performed using normal CSS. This allows the designer to use the existing tools that have been developed for web design—most notably Firefox’s Firebug and Chrome’s Developer Tools. Instead of creating a traditional visualization toolkit, which typically places a heavy wrapper between the designer and the web page, D3 is focused on providing helper functions to deal with mundane tasks, such as creating axes and axis ticks, or advanced tasks such as laying out graph visualizations or chord diagrams. This means that, once over D3’s initial learning curve, the designer is opened up to a very rich world of modern, interactive and animated data visualization.

So to place a y-axis title, we create some text at the top of the axis group, specify a rotation that transforms the text through -90 degrees about a point to the left of the top corner of the y-axis group element, and translate the label down into place (see Figure 3-5).".y.axis") .append("text") .text("mean distance between failure (miles)") .attr("transform", "rotate (-90, -43, 0) translate(-280)"); Figure 3-5. Rotating the y-axis label into place—the label is rotated first, then translated into place This is another example of a situation where Chrome’s Developer Tools or Firefox’s Firebug are very useful—we can modify the transformations live in the web page and see the results immediately. It’s easy to lose elements of the web page off the side of the screen, so being able to play with the transformation values live instead of editing the source code and reloading again and again saves a lot of time. At this point we have a pretty serviceable scatter chart that implies some relationship between failure and higher injury rates.

pages: 131 words: 22,892

Canvas Pocket Reference: Scripted Graphics for HTML5 by David Flanagan


centre right, Firefox

Safari and Chrome perform compositing “locally”: only the pixels actually drawn by the fill(), stroke(), or other drawing operation count as part of the source. IE 9 is likely to follow suit. Firefox and Opera perform compositing “globally”: every pixel within the current clipping region is composited for every drawing operation. If the source does not set that pixel, then it is treated as transparent black. In Firefox and Opera this means that the five compositing modes listed above actually erase destination pixels outside of the source and inside the clipping region. Figures 1-13 and 1-14 were generated in Firefox, and this is why the boxes around “copy”, “source-in”, “source-out”, “destination-atop”, and “destination-in” are thinner than the other boxes: the rectangle around each sample is the clipping region and these four compositing operations erase the portion of the stroke (half of the lineWidth) that falls inside the path.

Writing graphics programs is fun, and the <canvas> tag gives web developers some relief from the drudgery of the DOM! The <canvas> tag has no appearance of its own but creates a drawing surface within the document and exposes a powerful drawing API to client-side JavaScript. The <canvas> tag is standardized by HTML5 but has been around for longer than that. It was introduced by Apple in Safari 1.3, and has been supported by Firefox since version 1.5 and Opera since version 9. It is also supported in all versions of Chrome. The <canvas> tag is not supported by IE before IE 9, but can be reasonably well emulated in IE 6, 7, and 8. Using the Canvas in IE To use the <canvas> tag in IE 6, 7, or 8, download the open-source ExplorerCanvas project from After unpacking the project, include the “excanvas” script in the <head> of your web pages using an Internet Explorer conditional comment like this: <!

Figures 1-13 and 1-14 were generated in Firefox, and this is why the boxes around “copy”, “source-in”, “source-out”, “destination-atop”, and “destination-in” are thinner than the other boxes: the rectangle around each sample is the clipping region and these four compositing operations erase the portion of the stroke (half of the lineWidth) that falls inside the path. For comparison, Figure 1-15 shows the same images as Figure 1-14, but was generated in Chrome. The HTML5 draft current at the time of this writing specifies the global compositing approach implemented by Firefox and Opera. Browser vendors are aware of the incompatibility and are not satisfied with the current state of the specification. There is a distinct possibility that the specification will be altered to require local compositing instead of global compositing. Figure 1-15. Compositing locally rather than globally Finally, note that it is possible to perform global compositing in browsers like Safari and Chrome that implement local compositing.

pages: 114 words: 27,996

Responsive Web Design by Ethan Marcotte

Amazon:, Firefox, Merlin Mann

In fact, only Internet Explorer 7 and lower are affected, as is Firefox 2 and lower on Windows. More modern browsers like Safari, Firefox 3+, and IE8+ don’t exhibit a single problem with flexible images. What’s more, the bug seems to have been fixed in Windows 7, so that’s more good news. So with the scope of the problem defined, surely there’s a patch we can apply? Thankfully, there is—with the exception of Firefox 2. Now, this grizzled old browser was released in 2006, so I think it’s safe to assume it isn’t exactly clogging up your site’s traffic logs. At any rate, a patch for Firefox 2 would require some fairly involved browser-sniffing to target specific versions on a specific platform—and browser-sniffing is unreliable at best. But even if we did want to perform that kind of detection, these older versions of Firefox don’t have a switch that could fix our busted-looking images.

FIG 4.22: We’ve revisited our design, considering how widescreen readers might best experience it—and all with a quick media query. In other words, our responsive design is finished. A note about compatibility After covering media queries for not a few pages, I suppose we should briefly quash a few dreams—I mean, um, we should probably talk about browser support. The good news? Media queries enjoy remarkably broad support in modern desktop browsers. Opera has supported media queries since version 9.5, Firefox 3.5 and above supports them, as do WebKit-based desktop browsers like Safari 3+ and Chrome. Even Internet Explorer 9 ( supports media queries (! Somebody pinch me. And moving beyond the desktop, things are also looking good for media queries. WebKit-based mobile browsers, such as Mobile Safari, HP’s webOS, and Android’s browser all support media queries.

And while many modern small screen devices offer decent support, some widely used browsers don’t understand media queries, like IE Mobile and those on older BlackBerrys ( So things are far from rosy. But that doesn’t mean that responsive layouts are a pipe dream, however. First and foremost, there are a number of JavaScript-based solutions that patch older browsers’ lack of support. The descriptively-named css3-mediaqueries.js library ( offers to do just that, described as a solution “to make IE5+, Firefox 1+ and Safari 2 transparently parse, test, and apply CSS3 Media Queries.” It’s very much an early release, and one that hasn’t seen a lot of active development, but I can say that it’s worked quite well for me. More recently, I’ve been using a script called respond.js (, a nimble little library developed by Scott Jehl. Where css3-mediaqueries.js is incredibly feature-rich, almost exhaustively so, Respond simply patches support for min-width and max-width queries in older browsers.

pages: 597 words: 119,204

Website Optimization by Andrew B. King


AltaVista, bounce rate, don't be evil,, Firefox, In Cold Blood by Truman Capote, information retrieval, iterative process, medical malpractice, Network effects, performance metric, search engine result page, second-price auction, second-price sealed-bid, semantic web, Silicon Valley, slashdot, social graph, Steve Jobs, web application

IBM Page Detailer Details tab IBM Page Detailer works with both Internet Explorer and Firefox, but you must load it separately from the browser as a standalone application. For performance analysis tools that load right in the web browser, read on. Firebug: A simple alternative Firebug is an add-on for Firefox that adds a cross-platform measurement tool to your belt. Though not as detailed as the aptly named IBM Page Detailer, you can use it to dig in to what's happening in Firefox. Like IBM Page Detailer, Firebug provides a waterfall report, as well as the basic speed metrics such as requests, kilobytes, and load time in seconds (see Figure 10-18). Notice that CSS has the same blocking effect as JavaScript in Firefox. This is one of the differences in the way files are handled between Internet Explorer and Firefox. Another difference that you may encounter is that JavaScript files pulled dynamically (via DOM methods) block objects in Firefox, whereas in Internet Explorer they do not.

-- #nav ul, #nav ul li {list-style:none;} #nav ul li {font-weight:bold;} --></style> Here's the HTML markup: <div id="nav"> <ul> <li>Burma</li> <li>Shave</li> </ul> </div> Now you can declare these styles for all of your navigation, content, and other areas without the need to embed classes within HTML elements. The idea is to strip your HTML down to its structure, group the content within labeled divs, and target this structure with CSS selectors, descendant or otherwise. If all browsers were as well behaved as Opera, Firefox, and Safari, you could use "grouping" elements such as body and html to avoid embedding classes within container divs. Instead, we recommend using labeled container divs such as #nav, #content, and #footer. Use CSS IDs for these main container divs that are used only once per page and then use CSS classes for most everything else. Keep in mind that CSS IDs have stronger specificity than CSS classes.

This technique helps to eliminate the majority of browser differences that plague developers when debugging CSS. For some examples of reset stylesheets, visit and ora: Browser Support for CSS The majority of browsers today support the CSS techniques detailed in this chapter. CSS2 browsers include Internet Explorer 7 and later (with some exceptions for Internet Explorer 6, namely the universal selector, *), Firefox 2 and later, Safari 3 and later, Konqueror 3.5.7 and later, and Opera 9.5b and later, which support CSS shorthand, multiple classes, and grouping. The CSS3 attribute selector matching techniques detailed in this chapter are supported by the aforementioned browsers. For details on browser support for CSS2 and CSS3 see Top 10 Tips for Optimizing CSS The following 10 best practices are designed to speed-optimize your CSS, and your HTML markup: Replace inline style with type selectors to target multiple instances of identical elements.

pages: 270 words: 79,992

The End of Big: How the Internet Makes David the New Goliath by Nicco Mele


3D printing, 4chan, A Declaration of the Independence of Cyberspace, Airbnb, Amazon Web Services, Any sufficiently advanced technology is indistinguishable from magic, Apple's 1984 Super Bowl advert, barriers to entry, Berlin Wall, big-box store, bitcoin, business climate, call centre, Cass Sunstein, centralized clearinghouse, Chelsea Manning, citizen journalism, cloud computing, collaborative consumption, collaborative editing, commoditize, creative destruction, crony capitalism, cross-subsidies, crowdsourcing, David Brooks, death of newspapers, Donald Trump, Douglas Engelbart, Douglas Engelbart,, Exxon Valdez, Fall of the Berlin Wall, Filter Bubble, Firefox, Galaxy Zoo, global supply chain, Google Chrome, Gordon Gekko, Hacker Ethic, Jaron Lanier, Jeff Bezos, jimmy wales, John Markoff, Julian Assange, Kevin Kelly, Khan Academy, Kickstarter, Lean Startup, Mark Zuckerberg, minimum viable product, Mohammed Bouazizi, Mother of all demos, Narrative Science, new economy, Occupy movement, old-boy network, peer-to-peer, period drama, Peter Thiel, pirate software, publication bias, Robert Metcalfe, Ronald Reagan, Ronald Reagan: Tear down this wall, sharing economy, Silicon Valley, Skype, social web, Steve Jobs, Steve Wozniak, Stewart Brand, Stuxnet, Ted Nelson, Telecommunications Act of 1996, telemarketer, The Wisdom of Crowds, transaction costs, uranium enrichment, Whole Earth Catalog, WikiLeaks, Zipcar

For three years they worked—unpaid—with other programmers in the open-source community, and, finally, in 2005, Firefox was available—free—to anyone who wanted to use it. In a matter of months, Firefox decimated Microsoft’s market share in Web browsing. Ross went on to start Spread Firefox, an all-volunteer online community whose sole purpose was to convince people to switch to Firefox. As more and more people started using Firefox, the Spread Firefox community got more and more fired up. They raised money to run an ad in the New York Times to encourage people to switch to Firefox. More than 10,000 people donated an average of $25 each over the course of about ten days. On December 16, 2005, the New York Times included a two-page spread advertising the Firefox browser—with the name of every single one of the 10,000 donors who funded the ad in tiny type.27 Internet Explorer lost dramatic market share to Firefox, and eventually lost market dominance to Firefox and a host of other browsers like Google Chrome.28 Think of how incredible it is: One of the largest—and wealthiest—companies in the world (Microsoft) lost its market dominance to a free product made by a bunch of volunteers, led by a nineteen-year-old with a marketing budget funded by a large number of other volunteers.

On December 16, 2005, the New York Times included a two-page spread advertising the Firefox browser—with the name of every single one of the 10,000 donors who funded the ad in tiny type.27 Internet Explorer lost dramatic market share to Firefox, and eventually lost market dominance to Firefox and a host of other browsers like Google Chrome.28 Think of how incredible it is: One of the largest—and wealthiest—companies in the world (Microsoft) lost its market dominance to a free product made by a bunch of volunteers, led by a nineteen-year-old with a marketing budget funded by a large number of other volunteers. Firefox is only the tip of the iceberg; almost every major software product out there has a significant open-source competitor, with lots of small firms—like mine—helping to implement and maintain that software for other companies. The Necessities of Life It should be clear by now how 3-D printing, crowdsourcing, and open sourcing are bringing the End of Big to service companies (like law firms), manufacturing companies, and technology companies.

The solution was to build a software platform that provided certain efficiencies, chief among them providing a common interface to the hardware. The most common platforms are Microsoft Windows, Apple’s Mac OS (operating system), and Linux (the open-source option common on Web servers). As a software platform, Microsoft Windows worries about communicating with the keyboard, the monitor, the mouse, and the printer—so that applications like Microsoft Word, Skype, Firefox, and Photoshop don’t have to. The platform provides efficiencies between the hardware and the applications, smoothing the user interface (so you don’t have to worry about the zeros and ones) and making the applications more efficient and able to specialize on what they do best—like word processing or Web browsing or any one of a number of things. Every digital device you use, from your mobile phone to the photocopier at your office, has a software platform that brings efficiency to hardware management.

pages: 280 words: 40,881

JQuery UI by Eric Sarrion


Chuck Templeton: OpenTable, Firefox, Ruby on Rails, web application

The tabs are not displayed in the HTML page as expected Formatting Content Using the tabs () method drastically changes the appearance of HTML elements inside the page. Indeed, this method traverses (internally in jQuery UI) HTML code and adds new CSS classes to the elements concerned (here, the tabs) to give them the appropriate style. Figure 2-3 shows the HTML generated by jQuery UI once the tabs () instruction has changed the HTML DOM (Document Object Model) tree (the code was recovered using the Firebug extension in Firefox). It is possible to use CSS classes of elements to customize the display. For example, if we modify the ui-state-default CSS class associated with <li> elements, we should get a new aspect for tabs. Similarly, if we modify the ui-tabs-panel CSS class associated with <div> elements, the contents of the tabs will change in appearance. Modify these elements in the HTML by adding a <style> tag (shown in bold): <script src = jquery.js></script> <script src = jqueryui/js/jquery-ui-1.8.16.custom.min.js></script> <link rel=stylesheet type=text/css href=jqueryui/css/smoothness/jquery-ui-1.8.16.custom.css /> <style type=text/css> li.ui-state-default { font-size : 10px; } div.ui-tabs-panel { font-size : 15px; font-family : georgia; font-style : italic; } </style> <div id=tabs> <ul> <li><a href=#tab1>Tab 1</a></li> <li><a href=#tab2>Tab 2</a></li> <li><a href=#tab3>Tab 3</a></li> </ul> <div id=tab1>Contents of first tab</div> <div id=tab2>Contents of the second tab</div> <div id=tab3>Contents of the third tab</div> </div> <script> $("#tabs").tabs (); </script> The addition of our own styles must be done after those of jQuery UI, otherwise our changes will be ignored.

HTML preview of a simple accordion menu Formatting Content Using the accordion () method drastically changes the appearance of HTML elements in the rendered page. Indeed, this method scans the HTML and adds new CSS classes to the elements (here, the accordion menus) to give them the appropriate style. Here, for example, the HTML code that appears after the accordion () instruction has been changed (Figure 3-3). This code was retrieved using the Firebug extension in Firefox. It is also possible to use the CSS classes of elements to customize the display. For example, if we alter the ui-accordion-header CSS class associated with <h1> elements, we should get a new appearance for the menu titles. Similarly, if we change the ui-accordion-content CSS class associated with <div> elements, we get a new aspect for the content of menus. Figure 3-3. HTML code generated by the accordion () method Modify these elements in the HTML by adding a <style> tag (shown in bold): <!

Formatting Content Using the dialog () method drastically changes the appearance of HTML elements on the rendered page. Indeed, this method scans the HTML and adds new CSS classes to the elements concerned (here, the dialog boxes) to give them the appropriate style. Here, for example, the HTML code that appears after the dialog () instruction has been changed (Figure 4-3). This code was retrieved using the Firebug extension in Firefox. Figure 4-3. HTML code generated with the dialog () method These CSS classes can customize the display of elements. For example, if we change the ui-dialog-titlebar CSS class associated with <div> elements, we get a new aspect for the window title. Similarly, if we change the ui-dialog-content CSS class associated with <div> elements, we get a new appearance for the content of the windows.

pages: 602 words: 207,965

Practical Ext JS Projects With Gears by Frank Zammetti


a long time ago in a galaxy far, far away, Albert Einstein, corporate raider, create, read, update, delete, database schema,, Firefox, full text search, Gordon Gekko, Larry Wall, loose coupling, Ronald Reagan, web application

isAir Contains true if the detected platform is Adobe AIR. isBorderBox Contains true if the detected browser is Internet Explorer running in nonstrict mode. isChrome Contains true if the detected browser is Google’s Chrome. isGecko Contains true if the detected browser uses the Gecko layout engine (e.g., Mozilla or Firefox). isGecko2 Contains true if the detected browser uses a pre–Gecko 1.9 layout engine (e.g., Firefox 2.x). isGecko3 Contains true if the detected browser uses a Gecko 1.9+ layout engine (e.g., Firefox 3.x). isIE Contains true if the detected browser is Internet Explorer. isIE6 Contains true if the detected browser is Internet Explorer 6.x. isIE7 Contains true if the detected browser is Internet Explorer 7.x. isIE8 Contains true if the detected browser is Internet Explorer 8.x. isLinux Contains true if the detected platform is Linux.

The DomQuery Class in Action <html> <head> <title>Chapter 1 - Ext.util Namespace - EXT.DomQuery class</title> <script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="ext/ext-all.js"></script> <style> .cssRow1 { color : #ff0000; } .cssRow2 { color : #0000ff; } .cssCell { background-color : #00ff00; } .cssCellAlt { background-color : #eaeaea; } </style> <script> function testIt() { C ha P t e r 1 ■ I N t r O D U C I N G W e B D e V e LO P M e N t W I t h e X t JS var query = "td[class=\"cssCell\"]"; var elems =; for (var i = 0; i < elems.length; i++) { console.log(query + " = elems[" + i + "].firstChild.nodeValue = " + elems[i].firstChild.nodeValue); } query = "td[class=\"cssCellAlt\"]"; var f = Ext.DomQuery.compile(query); elems = f(Ext.getDom("row1")); for (var i = 0; i < elems.length; i++) { console.log(query + " = elems[" + i + "].firstChild.nodeValue = " + elems[i].firstChild.nodeValue); } query = "tr[class=\"cssRow2\"]"; console.log("\"row2\"), " + query + ") = " +"row2"), query)); query = "td"; elems =; console.log("Filtered list = " + Ext.DomQuery.filter(elems, "td[class=\"cssCell\"]").length); } Ext.onReady(testIt); </script> </head> <body> <table border="1" cellpadding="2" cellspacing="2"> <tr id="row1" class="cssRow1"> <td class="cssCell">row1_cell1</td> <td class="cssCellAlt">row1_cell2</td> <td class="cssCell">row1_cell3</td> <td class="cssCellAlt">row1_cell4</td> </tr> <tr id="row2" class="cssRow2"> <td>row2_cell1</td> <td>row2_cell2</td> <td>row2_cell3</td> <td>row2_cell4</td> </tr> </table> </body> </html> 41 42 Ch aPt er 1 ■ INtr ODU C ING W eB DeVeL OP M e N t W I t h e X t JS The first thing to take note of is the table structure in the <body> of the document. It is this structure that we’ll be querying against. Note too the style classes applied to the elements. It is these settings specifically that are queried against. If you open this page in Firefox with Firebug installed, Figure 1-21 will be the output in Firebug’s console pane. ■Note Of course, if you aren’t using Firefox, or don’t have Firebug installed… why not? Seriously, though, to run this example you’ll need to replace the console.log() calls with suitable replacements; alert() should work fine in this case. The discussion that follows assumes you’re using Firefox with Firebug installed. Figure 1-21. The console output for this page The first two lines of output are a result of this code: var query = "td[class=\"cssCell\"]"; var elems =; for (var i = 0; i < elems.length; i++) { console.log(query + " = elems[" + i + "].firstChild.nodeValue = " + elems[i].firstChild.nodeValue); } First, a simple selector query is created.

We’ve been using Gears throughout this book, the database portion of it at least, but being able to peer into the databases themselves, unless you use the SQLite Manager add-on for Firefox, isn’t something within our power. In this chapter we’ll create an application that aims to alleviate that shortcoming! We’ll build ourselves an application called SQLWorkbench, and in the process we’ll see a few new things in Ext JS. By the end of this chapter we’ll have a handy tool that will prove valuable when we’re using Gears for local database storage. What’s this application do anyway? If you use the Firefox browser—and you do in all probability if you’re a (smart) developer— then I suggest getting familiar with the SQLite Manager add-on ( sqlite-manager/). This is an especially great tool if you are doing Gears development, as we are in this book. This add-on is a utility for peeking directly into the SQLite databases that Firefox uses under the covers to store user data, as well as the databases created by Gears—in fact, any SQLite database you can name.

pages: 504 words: 67,845

Designing Web Interfaces: Principles and Patterns for Rich Interactions by Bill Scott, Theresa Neil


A Pattern Language, anti-pattern,, Firefox, recommendation engine, Ruby on Rails, Silicon Valley, web application

Recently, it digitized photos of the collection and placed them online for virtual viewing.[30] The memorabilia application uses a ZUI interface to move around from artifact to artifact and zoom in to see details on each item (Figure 7-15). Figure 7-15. Hard Rock Café uses a zoomable user interface (ZUI) to allow its memorabilia collection to be viewed online Aza Raskin, son of the late Jef Raskin (who pioneered many of the original ZUI concepts) is continuing to experiment with user interfaces that push the current norms. He demonstrated some potential ZUI interactions in a concept demo for Firefox on the mobile (Figure 7-16).[31] Figure 7-16. Firefox Mobile Concept Prototype showing panning gestures as well as a ZUI interface In this concept prototype, two key ideas are presented: Additional interface elements are just off the page to the top, left, bottom, and/or right. Pulling the content to one side or the other reveals these tools. Moving between the canvas (desktop) and windows is accomplished with a ZUI interface.

Nor is there anything unique about how items are selected. Live Search primarily affects the way searches are retrieved in response to typed queries. Contextual results While ZUGGEST presents a full search interface, sometimes the results can be shown in a more compact way. This is especially useful if you want to contain Live Search in a separate tool on the page or in a sidebar. Firefox version 3 introduced search directly into the URL bar of the browser (Figure 13-9). Figure 13-9. Firefox's AwesomeBar uses Live Search to retrieve results based on previous interest in websites In the words of the Mozilla blog:[52] Dubbed the "AwesomeBar", it lets you use the URL field of your browser to do a keyword search of your history and bookmarks. No longer do you have to know the domain of the page you're looking for—the AwesomeBar will match what you're typing (even multiple words!)

Mail, Perceived performance Yahoo! Photos, Showing upload status Progressive Disclosures, Live Preview, Progressive Disclosure, Progressive Disclosure Picnik, Progressive Disclosure feedback, immediate, Considerations, Immediate feedback, Perceived performance Configurator Process, Considerations Live Preview, Immediate feedback Progress Indicators, Perceived performance Firefox Mobile Concept Prototype, Considerations Firefox's AwesomeBar, Contextual results Fitts's Law, Fitts's Law Five Runs, Expand/Collapse as Overlay, Slide In and Slide Out Expand and Collapse, Expand/Collapse as Overlay Slide In and Slide Out, Slide In and Slide Out Flickr, Theresa's Acknowledgments, Considerations, Multi-Field Inline Edit, Considerations, Discoverability, Considerations, An Invitation, Enhancing Hover Invitation, Considerations, Multiple idioms, Invitation to drop, Carousel Affordance Invitations, Considerations Carousel, Considerations, Carousel clicking directly on title, Theresa's Acknowledgments Contextual Tool, Multiple idioms Drag and Drop Invitation, Invitation to drop editing photo's title inline, Considerations editing photo's title, description, and tags in a separate page, Multi-Field Inline Edit Hover Invitation, Enhancing Hover Invitation Hover-Reveal Tools, Discoverability Object Selection, Considerations providing invitation to edit photo description, An Invitation Flickr Daily Zeitgeist, Opposite effect Flickr Organizr, Call to Action Invitation, Advertising drag and drop, Signaling change Blank Slate Invitation, Advertising drag and drop Call to Action Invitation, Call to Action Invitation Spotlights, Signaling change Flip transition, Flip flow, Flow, Staying in the flow Dialog Overlay, Staying in the flow Fried, Jason, Explain What Just Happened G Garrett, Jesse James, Why We Wrote This Book gesture-based interfaces, Gestures Gibson, J.

pages: 394 words: 110,352

The Art of Community: Building the New Age of Participation by Jono Bacon


barriers to entry, Benevolent Dictator For Life (BDFL), collaborative editing, crowdsourcing, Debian,, Firefox, game design, Guido van Rossum, Johann Wolfgang von Goethe, Jono Bacon, Mark Shuttleworth, openstreetmap, Richard Stallman, Skype, social software, software as a service, telemarketer, web application

An interesting project that really set the standard for this kind of outreach was the Mozilla Firefox promotional campaign, Spread Firefox ( ). BUILDING BUZZ Download at Boykma.Com 173 Back in November 2004, the SilverOrange Canadian web firm was commissioned to build Mozilla’s website. As part of their work they produced an evangelist application on their intranet to manage the structure and content of the site. Blake Ross (one of the forefathers of Firefox) conceived the idea that Mozilla should encourage and inspire the global Firefox community to lead the marketing for the launch of the popular browser. One of the people involved in this work was Chris Messina. At the time, Chris was a Firefox community member, keen to see the project get better recognition and more widespread focus. Eventually he would go on to lead the Spread Firefox community marketing project in raising over $220,000 in micro-donations to launch Firefox to a worldwide audience with an ad in the New York Times.

A successful workflow requires understanding what you want to achieve and making the steps in which you achieve it as simple as possible for as many people as possible. One of the reasons why the Firefox browser has been so popular has been its extensibility. A large and growing collection of Firefox add-ons is available. These small bundles of functionality, basically small pieces of software, integrate tightly into the browser and can do 120 CHAPTER FIVE Download at Boykma.Com anything from block ads to allow web developers to dynamically adjust the layout of web pages. Traditionally, installing software has been possible using a variety of approaches: installers, package archives, compiling code, and more. The Firefox team made it as simple as selecting an add-on and clicking Install. Firefox takes care of the rest. Workflow and usability are close companions. Another successful workflow example comes from Bytemark Hosting (http://www.bytemark ).

There was both a spirit of camaraderie and of shared purpose (fighting Microsoft), and with that in mind, people came up with some pretty clever ideas in the forums, contributing concepts, strategies, designs... telling the story of how Firefox made a difference to them. We worked hard to promote these efforts through things like the leaderboard (which measured the week-to-week growth in downloads from different affiliate links) and had, I believe, weekly contests or initiatives. Probably the most effective tool was the cumulative download counter... every time we hit a new milestone I would design new artwork to commemorate our success— with each design getting more and more insane. The efforts of the Spread Firefox team were exceptional: Firefox 3 was downloaded over 28 million times in 24 hours when it was released. The project has gone on to secure a global user base and a reputation for quality, and a thriving and active community that surrounds it.

pages: 135 words: 31,098

ClojureScript: Up and Running by Stuart Sierra, Luke Vanderhart


domain-specific language, Firefox, MVC pattern, Paul Graham, web application

By specifying a vector representing a shell command that launches a browser, you can launch both the bREPL client and server with the same command. For example: (defproject my-project "1.0.0-SNAPSHOT" ;; other leiningen configuration items :cljsbuild { ;; other configuration items & build configurations :repl-launch-commands {"firefox" ["firefox" "page.html"]}}) If you have the “firefox” binary on your system’s PATH, you can run lein trampoline cljsbuild repl-launch firefox. The final parameter, firefox, will be looked up in the :repl-launch-commands map, and the associated command (firefox page.html) will be executed, launching Firefox and opening the specified page. Of course, you are still responsible for ensuring that the page you specified (in this case, page.html) calls the clojure.browser.repl/connect function to launch the client side of the bREPL. Hooking Into Default Leiningen Tasks Normally, ClojureScript-specific build actions are triggered using the lein cljsbuild command, which pertains exclusively to ClojureScript code.

pages: 62 words: 15,274

Sass for Web Designers by Dan Cederholm

Amazon:, don't repeat yourself, Firefox, Ruby on Rails, web application

To ensure the gradient works in the most browsers possible and falls back to a solid color should the browser not support CSS gradients, we’ll need a hefty stack of properties: header nav[role="navigation"] ul a { padding: 3px 8px; color: #fff; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; /* Fallback for sad browsers */ background-color: #d42a78; /* Mozilla Firefox */ background-image: -moz-linear-gradient(#ff70b1, #d42a78); /* Opera */ background-image: -o-linear-gradient(#ff70b1, #d42a78); /* WebKit (Safari/Chrome 10) */ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ff70b1), color-stop(1, #d42a78)); /* WebKit (Chrome 11+) */ background-image: -webkit-linear-gradient(#ff70b1, #d42a78); /* IE10 */ background-image: -ms-linear-gradient(#ff70b1, #d42a78); /* W3C */ background-image: linear-gradient(#ff70b1, #d42a78); } FIG: 3.4: Shared heading styles on the Sasquatch Records site.

Who can remember all of these variations each time a gradient is needed? Let’s make this easier on ourselves. First, let’s build a mixin called linear-gradient, taking out the hex colors so that we can pass those in as $from and $to variables throughout the stylesheet using whatever hues we’d like. @mixin linear-gradient($from, $to) { /* Fallback for sad browsers */ background-color: $to; /* Mozilla Firefox */ background-image:-moz-linear-gradient($from, $to); /* Opera */ background-image:-o-linear-gradient($from, $to); /* WebKit (Safari 4+, Chrome 1+) */ background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, $from), color-stop(1, $to)); /* WebKit (Chrome 11+) */ background-image: -webkit-linear-gradient($from, $to); /* IE10 */ background-image: -ms-linear-gradient($from, $to); /* W3C */ background-image: linear-gradient($from, $to); } Notice that I’m using the $to color to specify the background-color fallback for browsers that don’t support CSS gradients.

Here’s an example of what’s inside mixins.scss: @mixin rounded($radius) { -webkit-border-radius: $radius; -moz-border-radius: $radius; border-radius: $radius; } @mixin shadow($x, $y, $blur, $color) { -webkit-box-shadow: $x $y $blur $color; -moz-box-shadow: $x $y $blur $color; box-shadow: $x $y $blur $color; } @mixin shadow-inset($x, $y, $blur, $color) { -webkit-box-shadow: inset $x $y $blur $color; -moz-box-shadow: inset $x $y $blur $color; box-shadow: inset $x $y $blur $color; } @mixin transition($property) { -webkit-transition: $property .2s ease; -moz-transition: $property .2s ease; -o-transition: $property .2s ease; transition: $property .2s ease; } @mixin box-sizing { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } @mixin linear-gradient($from, $to) { /* Fallback for sad browsers */ background-color: $to; /* Mozilla Firefox */ background-image:-moz-linear-gradient($from, $to); /* Opera */ background-image:-o-linear-gradient($from, $to); /* WebKit (Chrome 11+) */ background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, $from), color-stop(1, $to)); /* WebKit (Safari 5.1+, Chrome 10+) */ background-image: -webkit-linear-gradient($from, $to); /* IE10 */ background-image: -ms-linear-gradient($from, $to); /* W3C */ background-image: linear-gradient($from, $to); } At the top of my main stylesheet (screen.scss in this case) where I define all of my layout and other site-specific styles, I use the @import rule to pull those in so that the mixins are available.

pages: 186 words: 50,651

Interactive Data Visualization for the Web by Scott Murray


barriers to entry, Firefox, iterative process, web application, your tax dollars at work

(I was lazy and didn’t include them in my original HTML.) One more thing: why am I focusing on Chrome, Firefox, and Safari? Why not Internet Explorer, Opera, or the many other browsers out there? For one, it’s best to develop your projects using a browser with the broadest support for web standards. Internet Explorer made huge progress with versions 9 and 10, but Chrome, Firefox, and Safari are understood to have the broadest standards support, and they are updated more frequently. Second, you’re going to spend a lot of time using the developer tools, so you should develop with a browser that has tools you enjoy using. I was pretty devoted to Safari until the 6.0 update changed everything. Now I’m going back and forth between Chrome and Firefox’s new dev tools. I recommend you try them all and decide what works best for you.

In Chrome 23.0, it’s under View→Developer→View Source. In Firefox 17.0, look under Tools→Web Developer→Page Source. In Safari 6.0, it’s under Develop→Show Page Source (although you must first set the “Develop” menu to display under Safari→Preferences→Advanced). Going forward, I’m going to assume that you’re using the newest version of whatever browser you choose. Figure 3-2. Looking at the source code in a new window That gets you the raw HTML, but if any D3 or JavaScript code has been executed, the current DOM may be vastly different. Fortunately, your browser’s developer tools enable you to see the current state of the DOM. And, again, the developer tools are different in every browser. In Chrome, find them under View→Developer→Developer Tools. In Firefox, try Tools→Web Developer. In Safari, first enable the developer tools (in Safari→Preferences→Advanced).

Servers are typically always on and always connected, but web developers often also run local servers, meaning they run on the same computer that you’re working on. Local means here; remote means somewhere else, on any computer but the one right in front of you. There are lots of different server software packages, but Apache is the most common. Web server software is not pretty, and no one ever wants to look at it. In contrast, web browsers can be very pretty, and we spend a lot of time looking at them. Regular people recognize names like Firefox, Safari, Chrome, and Internet Explorer, all of which are browsers or web clients. Every web page, in theory, can be identified by its URL (Uniform Resource Locator) or URI (Uniform Resource Identifier). Most people don’t know what URL stands for, but they recognize one when they see it. By obsolete convention, URLs commonly begin with www, as in, but with a properly configured server, the www part is wholly unnecessary.

pages: 224 words: 48,804

The Productive Programmer by Neal Ford


anti-pattern, business process,, continuous integration, database schema, domain-specific language, don't repeat yourself, Firefox, general-purpose programming language, knowledge worker, Larry Wall, Ruby on Rails, side project, type inference, web application, William of Occam

With a fast connection, you may not even notice the lag, but you’re slowing down the whole Internet with all those false hits! Internet Explorer Internet Explorer (IE) makes it easier to type in addresses that contain standard prefixes and suffixes. Use the keys Ctrl-Enter to add “www.” to the front of an address and “.com” to the end. Firefox The same Internet Explorer shortcut works for the Windows version of Firefox as well. For Macintosh, Apple-Enter does the same thing. Firefox goes one better: for all the platforms it supports, Alt-Enter places a “.org” at the end. Firefox has other handy shortcut keys that no one seems to leverage. To go directly to a tab, you can use Ctrl + <TAB-NUMBER> in Windows or Apple + <TAB-NUMBER> in OS X. OK, this shortcut is worth a measly eight keystrokes per web page. But think of the number of web pages you visit every day, and those eight characters per page start to add up.

For example, one of the ideas that Raskin promotes is the idea of Quasimode keys, which act like the Shift key (in other words, changing the mode of the keyboard when held down). Enso takes over the pretty worthless Caps Lock key and uses it to launch applications and perform other tasks. You hold the Caps Lock key down and start typing a command, like OPEN FIREFOX, and it will open Firefox. Of course, that is cumbersome to type, so another Enso command is LEARN AS FF FIREFOX, which teaches Enso that the FF command launches Firefox. Enso does more than just launching. If you have a math expression like 4+3 in a document, you can highlight it and invoke the CALCULATE command, and Enso will replace your highlighted text with the value of the calculation. Enso is worth trying to see if Raskin’s views on launching mesh with yours. If you are using Windows Vista, it includes the launching part of these launcher applications.

To make it work, you must start up a proxy server and issue cryptic commands to give it instructions, which are basically just incantations at the command line. I’m not in an IDE, so I can’t use live templates or even macros. I can’t even use batch or shell scripts: I’m running against an interactive proxy. It didn’t take me long to realize that I should save these commands in my key macro tool: cmd=getNewBrowserSession&1=*firefox&2=8080 cmd=open&1=/art_emotherearth_memento/welcome&sessionId= The ugly line of code is issued after I start the proxy server for Selenium, in the very particular format that Remote Control Selenium requires. If you don’t know anything about Selenium, these commands won’t make sense. But making sense out of the commands isn’t the point of the example. This is just one of the hideous command strings that I must type from time to 34 CHAPTER 2: ACCELERATION time.

pages: 398 words: 86,023

The Wikipedia Revolution: How a Bunch of Nobodies Created the World's Greatest Encyclopedia by Andrew Lih


Albert Einstein, AltaVista, barriers to entry, Benjamin Mako Hill,, Cass Sunstein, citation needed, crowdsourcing, Debian,, Firefox, Hacker Ethic, HyperCard, index card, Jane Jacobs, Jason Scott:, jimmy wales, Marshall McLuhan, Network effects, optical character recognition, Ralph Waldo Emerson, Richard Stallman, side project, Silicon Valley, Skype, slashdot, social software, Steve Jobs, The Death and Life of Great American Cities, The Wisdom of Crowds, urban planning, urban renewal, Vannevar Bush, wikimedia commons, Y2K

Contrast this to what many consider a close cousin, the Mozilla Foundation, which was also established in 2003. As maintainers of the popular Firefox Web browser and other free software packages, Mozilla has a novel revenue model that rakes in tens of millions of dollars a year. The legend in Silicon Valley is that Mozilla has more money than they know what to do with. How does Mozilla make out so well? The numbers are impressive. In October 2007, the Mozilla Foundation disclosed that their 2006 revenue was $66,840,850, with ninety full-time employees. Roughly 85 percent of this revenue came from Google, as it is the default option in the Firefox browser search bar. That and a Firefox-branded Google page as the standard home page means Mozilla gets lots of associated advertising and affiliate revenue. When users see the Google search listings resulting from the Firefox start page, any clicks on advertisements also generate revenue for the Mozilla Foundation.

Calacanis thinks there would be “$50,000 in the bank right now like Mozilla if they put up one advertisement on Wikipedia.”97 As the bad blood regarding the Spanish Fork has shown, advertising or any on-site revenue-generating scheme on the backs of the community is bound to be a dangerous option, even if only for discussion. It’s questionable whether the Mozilla strategy can be directly mapped over to the Wikipedia experience, as the community and the encyclopedia are so intertwined. The difference between Firefox and Wikipedia is the amount of community involvement. Firefox’s community is largely made up of users of the browser, as only a small number of people write the Firefox software. By contrast, Wikipedia depends on legions of volunteer editors who feel invested in the product. If they perceive money is made off the sweat of their work, there is a much larger constituency to deal with regarding the use of the funds. And if the community walks, the project will wither and become stale.

I could not have asked for better people to work with than Will Balliett and Brendan Duffy at Hyperion. I also have my agent, John Brockman, to thank, as he has engaged a fascinating set of authors of which I am privileged to be part. To Will Schwalbe, the original Hyperion editor who first put his faith behind a book about Wikipedia, I owe great thanks. The book was composed on a combination of open source and commercial software. I’m grateful to the many authors of NeoOffice, Mozilla Firefox, Text-Mate, Quicksilver, MacJournal, MyMind, TextExpander, and Colloquy as critical tools for writing. For accessing the Internet from China, OpenVPN, OpenSSH, Foxy-Proxy, Tor, and Skype helped cope with any issues regarding Internet blocking. Writing a book with a broken arm is no easy task, unless you have friends and relatives to help you through eight weeks of disability. These included Abigail Tay, Joe Merican, and Dr.

jQuery UI 1.8: The User Interface Library for jQuery by Dan Wellman


Firefox, web application

The great thing about jQuery UI's simplified API is that once you have learned to use all of the existing components (as this book will show you), you'll be able to pick up any new components very quickly. As this book is being written, there are already a number of new components nearing release, with many more in the pipeline, and all of these components will automatically be ThemeRoller-ready. Browser support Like jQuery itself, jQuery UI supports all of the major browsers in use today, including the following: • IE6, IE7, IE8, and IE9 • Firefox 2, Firefox 3, and Firefox 4, and Firefox 5 • Opera 9, Opera 10, and Opera 11 • Safari 3, Safari 4, and Safari 5 • Chrome 1 to Chrome 9 The widgets are built from semantically correct HTML elements generated, as needed by the components. Therefore, we won't see excessive or unnecessary elements being created or used. [ 17 ] Introducing jQuery UI Book examples The library is as flexible as standard JavaScript.

Rich uploads with progressbar Instead of relying on user interaction to increase the value of the progressbar and therefore the completion of the specified task, we can instead rely on the system to update it; deterministic means simply that something must be able to update it accurately. [ 203 ] The Progressbar Widget In our final progressbar example, we can incorporate the HTML5 file API, in order to upload a file asynchronously, and can use the onprogress event to update the progressbar, while the file is uploading. Although the onprogress event is defined as part of an official W3C specification, it has only been implemented by Firefox and webkit. This example however, will only work in Firefox 3.5+, as webkit browsers do not implement the getAsBinary() method that we use on file objects. This example will also only work correctly using a full web server with PHP installed and configured. We won't be looking at the server-side part of the upload process in this example; we're not interested in what happens to the file once it's been uploaded, only in updating the progressbar based on feedback received from the system, while it is uploading.

States and images These classes set the images used for icons displayed in the content and heading containers, as well as any clickable elements including default, hover, active, highlight, focus, and error states. Image positioning All of the icon images used by the theme are stored in a single file (known as a sprite file), and are displayed individually by manipulating the background-position properties of the sprite file. This category sets the background positions for all individual icons. Corner radius CSS3 is used to give rounded corners to supporting browsers (just Firefox 3+, Safari 3+, Chrome 1+, Opera 10+, and IE9+). Overlays The image used for the generic overlay defined in the core CSS file is set here, as it is a class that implements a semi-transparent overlay over specified elements. The jQuery UI documentation features an extensive overview of the theming API at: Linking to the required framework files For rapid theming of all jQuery UI widgets in a development environment, we can link to all of the individual files using jquery.ui.all.css: <link rel="stylesheet" href="development-bundle/themes/smoothness/jquery.ui.all.css"> To use each file individually when testing a component such as the tabs widget for example, we would use the following <link> elements: <link rel="stylesheet" href="development-bundle/themes/base/jquery.ui.core.css"> <link rel="stylesheet" href="development-bundle/themes/base/jquery.ui.tabs.css"> <link rel="stylesheet" href="development-bundle/themes/base/jquery.ui.theme.css"> [ 30 ] Chapter 2 The CSS resources, when linked to separately, should be added to the HTML page in the following order—core.css, the widget's CSS file, and the theme.css file.

pages: 603 words: 141,814

Python for Unix and Linux System Administration by Noah Gift, Jeremy M. Jones


Amazon Web Services, bash_history, Bram Moolenaar, cloud computing, create, read, update, delete, database schema, Debian, distributed revision control, Firefox, Guido van Rossum, industrial robot, inventory management, job automation, Mark Shuttleworth, MVC pattern, skunkworks, web application

Let’s start backward this time and see what it looks like when we query it: snmpwalk -v 2c -c public localhost . UCD-SNMP-MIB::ucdavis.28664.100.1.1 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.28664.100.2.1 = STRING: "FirefoxHits" UCD-SNMP-MIB::ucdavis.28664.100.3.1 = STRING: "/usr/bin/python /opt/local/snmp_scripts/" UCD-SNMP-MIB::ucdavis.28664.100.100.1 = INTEGER: 0 UCD-SNMP-MIB::ucdavis.28664.100.101.1 = STRING: "Total number of Firefox Browser Hits: 15702" UCD-SNMP-MIB::ucdavis.28664.100.102.1 = INTEGER: 0 UCD-SNMP-MIB::ucdavis.28664.100.103.1 = "" If you look at the value of 100.101.1, you will see the output of a script that uses a generator pipeline to parse an Apache log and look for all Firefox hits in the log. It then sums them and returns the output via SNMP. Example 7-5 is the script that gets run when we query this OID. Example 7-5. Generator pipeline to look for total firefox hits in Apache logfile import re """Returns Hit Count for Firefox""" def grep(lines,pattern="Firefox"): pat = re.compile(pattern) for line in lines: if yield line def increment(lines): num = 0 for line in lines: num += 1 return num wwwlog = open("/home/noahgift/logs/") column = (line.rsplit(None,1)[1] for line in wwwlog) match = grep(column) count = increment(match) print "Total Number of Firefox Hits: %s" % count In order for our query to work in the first place, we needed to tell snmpd.conf about this script, and here is what that section looks like: syslocation "O'Reilly" syscontact rocommunity public exec helloworld /usr/bin/python -c "print 'hello world from Python'" exec . FirefoxHits /usr/bin/python /opt/local/snmp_scripts/ The magic portion is the last line, in which . is the ucdavis enterprise number, 28664 our enterprise number, and 100 is some contrived value that we decided we wanted to use.

If we specify a field parameter, the search criteria has to match that field in order for that item to be included in the result set: In [1]: ps = !ps aux In [2]: ps.grep('jmjones', field=0) Out[2]: SList (.p, .n, .l, .s, .grep(), .fields() available). Value: 0: jmjones 5361 0.0 0.1 46412 1828 ? SL Apr11 0:00 /usr/bin/gnome-keyring-daemon -d 1: jmjones 5364 0.0 1.4 214948 14552 ? Ssl Apr11 0:03 x-session-manager .... 53: jmjones 32425 0.0 0.0 3908 584 ? S Apr15 0:00 /bin/sh /usr/lib/firefox/run-mozilla. 54: jmjones 32429 0.1 8.6 603780 88656 ? Sl Apr15 2:38 /usr/lib/firefox/firefox-bin This matched the exact rows that we wanted, but printed out the whole row. To get at just the PID, we’ll have to do something like this: In [3]: ps.grep('jmjones', field=0).fields(1) Out[3]: SList (.p, .n, .l, .s, .grep(), .fields() available). Value: 0: 5361 1: 5364 .... 53: 32425 54: 32429 And with that, we are able to meet the goal of performing that specific awk filter.

Getting output from one-liners isn’t really Python’s strength, and it is kind of silly. Here is an example of a script that parses the total number of Firefox hits in an Apache log and then returns the number for a custom enterprise number. Let’s start backward this time and see what it looks like when we query it: snmpwalk -v 2c -c public localhost . UCD-SNMP-MIB::ucdavis.28664.100.1.1 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.28664.100.2.1 = STRING: "FirefoxHits" UCD-SNMP-MIB::ucdavis.28664.100.3.1 = STRING: "/usr/bin/python /opt/local/snmp_scripts/" UCD-SNMP-MIB::ucdavis.28664.100.100.1 = INTEGER: 0 UCD-SNMP-MIB::ucdavis.28664.100.101.1 = STRING: "Total number of Firefox Browser Hits: 15702" UCD-SNMP-MIB::ucdavis.28664.100.102.1 = INTEGER: 0 UCD-SNMP-MIB::ucdavis.28664.100.103.1 = "" If you look at the value of 100.101.1, you will see the output of a script that uses a generator pipeline to parse an Apache log and look for all Firefox hits in the log.

Sass and Compass for Designers by Ben Frain


anti-pattern, don't repeat yourself, Firefox, Steve Jobs

Debug help in the browser Thanks to the popularity of Sass there are now experimental features in browsers to make debugging Sass even easier. When inspecting an element with developer tools, the source file and line number is provided, making it easier to find the offending selector. For Chrome, here's a step-by-step explanation: Alternatively, if using Firefox, check out the FireSass extension: firesass-for-firebug/ Let's create another partial file called _modules.scss. This will contain all the modular pieces of code. This means, should we need to move the .testimonial section (which should be a modular section) in the source code, it's not necessary to move it from one partial file to another (which would be the case if the partial files were named according to their existing layout).

This time we'll debug the current value returned by the bb-opos function we looked at earlier in the chapter: @debug bb-opos($bb-flow); This produces a message ending like this on the command line: Chapter8/code/sass/partials/_chapter-examples.scss:48 DEBUG: right Here's a screenshot to illustrate this: The @debug directive isn't something that's needed every day but it can be useful when trying to troubleshoot custom mixins and functions. Although we covered it in Chapter 3, Nesting, Extend, Placeholders, and Mixins, in case you missed it, both the Chrome Developer Tools and the FireSass plugin for Firefox provide debug info in the browser. There's a step-by-step for Chrome at and the FireSass plugin can be found at firefox/addon/firesass-for-firebug/. [ 218 ] Chapter 8 The @warn directive Sass also has a @warn directive that enjoys similar functionality to @debug. For example: @warn $theme-tint; Unlike @debug, messages generated by @warn can be universally suppressed by adding the following to Compass's config.rb file: sass_options = {:quiet => true} To re-enable warnings, either comment out the line or amend it like so: sass_options = {:quiet => false} Summary In this chapter, we have had a good look at some of Sass's most complex, yet powerful capabilities.

Until then, we've got the grid within a grid taking care of the layout of these links: [ 141 ] Responsive and Flexible Grids with Sass and Compass Sub-pixel rounding issues I have a confession; I've been keeping something from you. Take a look at the following screenshot and if you are the kind of designer that freaks out when there is a pixel astray, please make sure you're sitting down. Can you see an odd-sized gap before the final red grid item? The screenshot is taken in Safari 6. This same problem isn't apparent in Chrome or Firefox. That's because Safari rounds down sub-pixels. Why? Although the outer dimensions of the grid (the context) may be set as ems, all the column widths within the grid are defined as percentages. That's a large part of what enables the grid to be responsive to different viewports. To actually paint the page, browsers convert percentage values into pixels. Parts of pixels cannot be rendered so they are rounded.

pages: 73 words: 17,793

HTML5 for Web Designers by Jeremy Keith


Firefox, web application

Although the MP3 format has become ubiquitous, it is not an open format. Because the format is patent-encumbered, technologies can’t decode MP3 files without paying the patent piper. That’s fine for corporations like Apple or Adobe, but it’s not so easy for smaller companies or open-source groups. Hence, Safari will happily play back MP3 files while Firefox will not. There are other audio formats out there. The Vorbis codec—usually delivered as an .ogg file—isn’t crippled by any patents. Firefox supports Ogg Vorbis—but Safari doesn’t. Fortunately, there’s a way to use the audio element without having to make a Sophie’s Choice between file formats. Instead of using the src attribute in the opening <audio> tag, you can specify multiple file formats using the source element: <audio controls> <source src="witchitalineman.ogg"> <source src="witchitalineman.mp3"> </audio> A browser that can play back Ogg Vorbis files will look no further than the first source element.

SVG, Scalable Vector Graphics, is an XML format that can describe the same kind of shapes as canvas. Because XML is a text-based data format, the contents of SVG are theoretically available to screen readers. FIG 3.04: Using canvas to generate a graph from data input by users. In practice, SVG hasn’t captured the imagination of developers in the same way that canvas has. Even though canvas is the new kid on the block, it already enjoys excellent browser support. Safari, Firefox, Opera, and Chrome support canvas. There’s even a JavaScript library that adds canvas support to Internet Explorer ( Given its mantras of “pave the cowpaths,” and “don’t reinvent the wheel,” it might seem odd that the WHATWG would advocate canvas in HTML5 when SVG already exists. As is so often the case, the HTML5 specification is really just documenting what browsers already do.

The long URL: [↵] Index 2012, 7, 11 2022, 7 A Ajax, 22, 63, 76, 80 Allsopp, John, 58 API, 20–21, 24–25, 28, 32 Apple, 4, 29, 34 ARIA, 80, 82 article, 67, 75, 76 aside, 65, 67, 78 audio, 22, 29–37, 82 autobuffer, 32–33 autocomplete, 44–45 autofocus, 42–44 autoplay, 30–31, 37 B Berners-Lee, Sir Tim, 1, 5 Bespin, 26 big, 18 C canvas, 23–29, 70, 82 character encoding, 14 Chrome, 29 cite, 19 class, 57 color, 53, 83 controls, 31, 33–38 CSS, 3, 7, 14, 18, 20, 39, 40, 57, 76, 79 D datalist, 45–46 date, 51–53 datetime, 51–52 datetime-local, 51–52 div, 63, 69 doctype, 12–13, 16, 81, 82 document.write, 21 DOM, 27, 41, 50, 57, 63 drag and drop, 21 E em, 18, 60 email, 47, 83 error handling, 11 F Firefox, 29, 34 Flash, 22, 26, 30, 35, 37 font, 11, 18, 77 footer, 64–65, 66, 78, 81 French Revolution, 9 H header, 64, 67, 78, 81, 83 hgroup, 74, 78 Hickson, Ian, 4, 7, 10, 85 HTML 3.2, 13 HTML 4.01, 2, 10, 12, 14, 81 I IETF, 2 img, 2, 22, 24, 39 innerHTML, 21 input, 44, 45, 47, 82 Internet Explorer, 3, 7, 21, 29, 35, 78, 82 IRC, 85 J JavaScript, 14, 15, 20–21, 40, 50, 54, 79, 82 jQuery, 28 L Lawson, Bruce, 83 lint, 16 M mark, 60 microdata, 59 microformats, 10, 57–59, 61 Mobile Safari, 48 Modernizr, 82 month, 51, 52 Mosaic, 2, 23 Mozilla, 4, 26 MP3, 30, 34 MP4, 38 N nav, 66–67, 78, 80 Nottingham, Mark, 59 number, 50–51 O obsolete, 17 Ogg Vorbis, 34, 36 Opera, 4, 29, 49, 52 outline, 70–76, 79–80 P pattern, 54 Pilgrim, Mark, 84 placeholder, 41–42 poster, 37, 38 preload, 33, 37 progress, 62–63 pubdate, 67 Python, 15 Q QuickTime, 30 R range, 49–51, 83 RDFa, 58–59 Real Audio, 30 required, 44 role, 81 S Safari, 29, 33, 47, 49, 50 scoped, 76–77 search, 47, 60, 81, 83 sectioning content, 70–75, 79 sectioning roots, 75 SGML, 1 Sharp, Remy, 79, 82, 84 significant white space, 15 Sivonen, Henri, 81 small, 18 Sneddon, Geoffrey, 79 source, 34–37, 38 strong, 60 SVG, 28–29 syntax, 6, 15–16, 31, 35 T table, 28 tel, 47 Theora Video, 38 time, 61–62 U UndoManager, 21 url, 47 V validate, 53, 54, 81 video, 37–39, 70, 82, 83 W W3C, 2–6, 9, 16, 29, 41, 81, 84 Web Apps 1.0, 4–5, 21 Web Forms 2.0, 5, 41 Web Standards Project, 3 week, 52 WHATWG, 4–6, 9, 29, 41, 84, 85 window.history, 21 X XHTML 1.0, 2–3, 12, 15–16 XHTML 1.1, 3 XHTML 2, 3–4, 5, 6, 9, 10 XML, 2–3, 5, 6, 15, 29, 57 XMLHttpRequest, 29 Y year, 52 About A Book Apart Web design is about multi-disciplinary mastery and laser focus, and that’s the thinking behind our new line of brief books for people who make websites.

pages: 410 words: 101,260

Originals: How Non-Conformists Move the World by Adam Grant

Albert Einstein, Apple's 1984 Super Bowl advert, availability heuristic, barriers to entry, business process, business process outsourcing, Cass Sunstein, clean water, cognitive dissonance, creative destruction, cuban missile crisis, Daniel Kahneman / Amos Tversky, Dean Kamen, double helix, Elon Musk, fear of failure, Firefox, George Santayana, Ignaz Semmelweis: hand washing, Jeff Bezos, job satisfaction, job-hopping, Joseph Schumpeter, Kickstarter, Lean Startup, Louis Pasteur, Mahatma Gandhi, Mark Zuckerberg, meta analysis, meta-analysis, minimum viable product, Network effects, pattern recognition, Paul Graham, Peter Thiel, Ralph Waldo Emerson, random walk, risk tolerance, Rosa Parks, Saturday Night Live, Silicon Valley, Skype, Steve Jobs, Steve Wozniak, Steven Pinker, The Wisdom of Crowds, women in the workforce

But when he looked at the results, he was stunned: Employees who used Firefox or Chrome to browse the Web remained in their jobs 15 percent longer than those who used Internet Explorer or Safari. Thinking it was a coincidence, Housman ran the same analysis for absences from work. The pattern was the same: Firefox and Chrome users were 19 percent less likely to miss work than Internet Explorer and Safari fans. Then he looked at performance. His team had assembled nearly three million data points on sales, customer satisfaction, and average call length. The Firefox and Chrome users had significantly higher sales, and their call times were shorter. Their customers were happier, too: After 90 days on the job, the Firefox and Chrome users had customer satisfaction levels that Internet Explorer and Safari users reached only after 120 days at work.

Their customers were happier, too: After 90 days on the job, the Firefox and Chrome users had customer satisfaction levels that Internet Explorer and Safari users reached only after 120 days at work. It’s not the browser itself that’s causing them to stick around, show up dependably, and succeed. Rather, it’s what their browser preference signals about their habits. Why are the Firefox and Chrome users more committed and better performers on every metric? The obvious answer was that they’re more tech savvy, so I asked Housman if he could explore that. The employees had all taken a computer proficiency test, which assessed their knowledge of keyboard shortcuts, software programs, and hardware, as well as a timed test of their typing speed. But the Firefox and Chrome group didn’t prove to have significantly more computer expertise, and they weren’t faster or more accurate typists. Even after accounting for those scores, the browser effect persisted. Technical knowledge and skill weren’t the source of their advantage.

Almost two thirds of the customer service agents used the default browser, never questioning whether a better one was available. To get Firefox or Chrome, you have to demonstrate some resourcefulness and download a different browser. Instead of accepting the default, you take a bit of initiative to seek out an option that might be better. And that act of initiative, however tiny, is a window into what you do at work. The customer service agents who accepted the defaults of Internet Explorer and Safari approached their job the same way. They stayed on script in sales calls and followed standard operating procedures for handling customer complaints. They saw their job descriptions as fixed, so when they were unhappy with their work, they started missing days, and eventually just quit. The employees who took the initiative to change their browsers to Firefox or Chrome approached their jobs differently.

pages: 215 words: 55,212

The Mesh: Why the Future of Business Is Sharing by Lisa Gansky


Airbnb, Amazon Mechanical Turk, Amazon Web Services, banking crisis, barriers to entry, carbon footprint, Chuck Templeton: OpenTable, cloud computing, credit crunch, crowdsourcing, diversification, Firefox, fixed income, Google Earth, industrial cluster, Internet of things, Kickstarter, late fees, Network effects, new economy, peer-to-peer lending, recommendation engine, RFID, Richard Florida, Richard Thaler, ride hailing / ride sharing, sharing economy, Silicon Valley, smart grid, social web, software as a service, TaskRabbit, the built environment, walkable city, yield management, young professional, Zipcar

I’ve seen up close how open architecture can drive hyperinnovation, while creating a greater sense of community. Mozilla, where I have been an active friend and adviser for years, is perhaps the best example of that ethos, system, and commitment. Mozilla developed the browser Firefox to create a better Web experience. Many of us were concerned about one or a few companies controlling the channel that has become the Internet. Firefox’s intellectual property is held under a special type of open-source license. The code, developed by community and incorporated into Firefox, continues to be held by those members, who in return grant access to Mozilla to embed and use it. This “communal IP,” as I call it, is a wonderful example of the share economy ethos that was, and hopefully will remain, at the core of the Internet. Mozilla, Creative Commons, Wikipedia, and Architecture for Humanity remain strong embodiments of that ethos.

See Product design double bottom line of energy cooperatives government initiatives for green business practices and profits green criteria and purchasing decisions Mesh companies purchasing decisions, green drivers of recycling and reuse services sustainable design upcycling waste management, natural approach to Etsy Expedia Expensure Expert-advice sharing, Mesh companies for Facebook Firefox, community input First mover advantage Flash branding Flextronics, Mesh strategies Florida, Richard Folcia, Federico Food co-ops, Mesh companies Freepeats FreshlyBranded FriendlyFavor Friendster Full Mesh model Gardening, Mesh companies Geek Squad General Electric Get Satisfaction Global Green Godin, Seth Goodall, Jane GoodGuide Goods swaps, Mesh companies Google Google Earth Gordon, Chuck Green initiatives.

See Income and profits and social networks. See Social networking starting Mesh company Sweet Spot trends influencing growth of trust building Millennial generation Mobile networks digital translation to physical and flash branding as foundation of the Mesh share-based business operation users, increase in Modular design Mohsenin, Kamran Movie rentals online, Mesh companies Mozilla Firefox Music-based businesses, Mesh companies Natural ecosystem, relationship to Mesh ecosystem Netflix annual sales as information business Mesh strategy perfection recommendation engine recommendations Network effect Niche markets for maintaining/servicing products Mesh companies opening, reason for sharing as North Portland Tool Library (NPTL) Ofoto Olapic Ombudsman Open Architecture Network Open Design Open innovation service provider Open networks advantages of Architecture for Humanity communal IP concept and marketing products openness versus proprietary approach and product improvement software development OpenTable O’Reilly, Tim Ostrom, Elinor Own-to-Mesh model car-sharing services profits, generation from retirees as customers Partnerships characteristics of corporations and Mesh companies income generation from in Mesh ecosystem unexpected value of Patagonia recycled textiles of Walmart partnership Paul, Sunil Payne, Steven Peer-to-peer lending.

pages: 422 words: 104,457

Dragnet Nation: A Quest for Privacy, Security, and Freedom in a World of Relentless Surveillance by Julia Angwin


AltaVista, Ayatollah Khomeini, barriers to entry, bitcoin, Chelsea Manning, Chuck Templeton: OpenTable, clean water, crowdsourcing, cuban missile crisis, data is the new oil, David Graeber, Debian, Edward Snowden, Filter Bubble, Firefox, GnuPG, Google Chrome, Google Glasses, informal economy, Jacob Appelbaum, John Markoff, Julian Assange, Marc Andreessen, market bubble, market design, medical residency, meta analysis, meta-analysis, mutually assured destruction, prediction markets, price discrimination, randomized controlled trial, RFID, Robert Shiller, Ronald Reagan, security theater, Silicon Valley, Silicon Valley startup, Skype, smart meter, Steven Levy, Upton Sinclair, WikiLeaks, Y2K, zero-sum game, Zimmermann PGP

I sat down, ordered a cappuccino, opened up my laptop, and launched Tor, the anonymizing software that masks the Internet address of your computer by routing traffic around the world. This time, I appeared to be in Germany. Browsing on Tor is slow. As a test, I typed New York University’s Web address,, into the Tor browser and into the regular Firefox Web browser and clocked each of them. It took twenty seconds to launch in Tor and three seconds to launch in Firefox. At least I had plenty of time to sip my coffee as I browsed on Tor. I started by signing up for a free e-mail account for Ida from Microsoft’s I steeled myself and entered 212-867-5309 as her backup phone number (after the famous ’80s song by Tommy Tutone). I turned off Microsoft’s targeted ads feature. Feeling quite pleased with myself, I also set up an OpenTable account for Ida, using the Outlook address.

One night, after the kids went to bed, I sat down at my computer and installed the two most popular anti-tracking software extensions onto my Firefox Web browser. The first, Adblock Plus, blocked advertisements from displaying—thus preventing advertisers from the opportunity of dropping tracking cookies on my machine in the first place. Since my profession, journalism, derives much of its revenue from advertising, I’m not in favor of blocking ads, but I figured I’d give it a shot in the name of protecting myself from being watched. The second, NoScript, blocked a type of computer code called JavaScript, as well as some other software such as Flash, from loading on Web pages without my permission. JavaScript can be used to load all sorts of tracking technology, including cookies, and can even be used to monitor how you move your mouse on the page. But it also has a lot of legitimate uses. Immediately, Firefox sputtered and stalled.

As for Twitter, I had forgotten that I had previously logged in to the Twitter site, which allowed it to set a cookie. That allowed Twitter to see that I had visited That’s the problem with Web tracking: if you let someone into the tent once, they often get a free pass for future tracking. “This is much worse than I thought,” I said. Ashkan laughed. “That’s exactly what you said to me three years ago when we first talked.” Ashkan showed me the setting—buried deep in Firefox’s “custom history” section—that let me turn off third-party cookies, such as Twitter, from tracking me on other sites just because I had once logged in to their site. But there was no setting to block the Journal’s behind-the-scenes sharing. So then we tried Adblock Plus, but BlueKai was still making it through those filters. After all, Adblock Plus is designed to block ads, not to block tracking.

pages: 211 words: 37,094

JQuery Pocket Reference by David Flanagan


Firefox, web application

In alphabetical order, the utility functions are: jQuery.browser The browser property is not a function, but an object that you can use for client sniffing or browser testing. This object will have the property msie set to true if the browser is IE. The mozilla property will be true if the browser is Firefox or related. The webkit property will be true for Safari and Chrome, and the opera property will be true for Opera. In addition to this browser-specific property, the version property contains the browser version number. Client sniffing is best avoided whenever possible, but you can use this property to work around browser-specific bugs with code like this: if ($.browser.mozilla && parseInt($.browser.version) < 4) { // Work around a hypothetical Firefox bug here. } jQuery.contains() This function expects two document elements as its arguments. It returns true if the first element contains the second element, and returns false otherwise.

For “mouseover” events, for example, the relatedTarget property specifies the element that the mouse pointer exited as it moved over the target. If the native event object does not define relatedTarget but does define toElement and fromElement, relatedTarget is set from those properties. timeStamp The time at which the event occurred, in the millisecond representation returned by the Date.getTime() method. jQuery sets the field itself to work around a long-standing bug in Firefox. which jQuery normalizes this nonstandard event property so that it specifies which mouse button or keyboard key was pressed during the event. For keyboard events, if the native event does not define which but defines charCode or keyCode, then which will be set to whichever of those properties is defined. For mouse events, if which is not defined but the button property is defined, which is set based on the button value: 0 means no buttons are pressed, 1 means the left button is pressed, 2 means the middle button is pressed, and 3 means the right button is pressed.

serialize():string Serializes the names and values of the selected forms and form elements, returning a string in www-form-urlencoded format. Utility Functions These are miscellaneous jQuery functions and properties (not methods); see Chapter 7 for more details. jQuery.boxModel A deprecated synonym for jQuery.browser This property refers to an object that identifies the browser vendor and version. The object has the property msie for Internet Explorer, mozilla for Firefox, webkit for Safari and Chrome, and opera for Opera. The version property is the browser version number. jQuery.contains(a,b):boolean Returns true if document element a contains element b., key):value, data), key, value) A low-level version of the data() method. With one element argument, return the data object for that element.

pages: 255 words: 78,207

Web Scraping With Python: Collecting Data From the Modern Web by Ryan Mitchell


AltaVista, Amazon Web Services, cloud computing,, Firefox, Guido van Rossum, meta analysis, meta-analysis, natural language processing, optical character recognition, random walk, self-driving car, Turing test, web application

Because this is relatively complex code that draws on multiple concepts from previous chapters, I’ve added comments throughout to make it a little easier to understand what’s going on: import time from urllib.request import urlretrieve import subprocess from selenium import webdriver #Create new Selenium driver driver = webdriver.PhantomJS(executable_path='<Path to Phantom JS>') #Sometimes, I've found that PhantomJS has problems finding elements on this #page that Firefox does not. If this is the case when you run this, #try using a Firefox browser with Selenium by uncommenting this line: #driver = webdriver.Firefox() driver.get( "") time.sleep(2) #Click on the book preview button driver.find_element_by_id("sitbLogoImg").click() imageList = set() #Wait for the page to load time.sleep(5) #While the right arrow is available for clicking, turn through pages while "pointer" in driver.find_element_by_id("sitbReaderRightPageTurner") .get_attribute("style"): driver.find_element_by_id("sitbReaderRightPageTurner").click() time.sleep(2) #Get any new pages that have loaded (multiple pages can load at once, #but duplicates will not be added to a set) pages = driver.find_elements_by_xpath("//div[@class='pageImage']/div/img") for page in pages: 1 When it comes to processing text it hasn’t been trained on, Tesseract fares much better with large-format edi‐ tions of books, especially if the images are small.

These days it’s also used when the accurate portrayal of websites—as they appear in a browser—is required. Selenium works by automating browsers to load the website, retrieve the required data, and even take screenshots or assert that certain actions happen on the website. Selenium does not contain its own web browser; it requires integration with thirdparty browsers in order to run. If you were to run Selenium with Firefox, for exam‐ ple, you would literally see a Firefox instance open up on your screen, navigate to the website, and perform the actions you had specified in the code. Although this might be neat to watch, I prefer my scripts to run quietly in the background, so I use a tool called PhantomJS in lieu of an actual browser. PhantomJS is what is known as a “headless” browser. It loads websites into memory and executes JavaScript on the page, but does it without any graphic rendering of the website to the user.

There are 60+ possible header fields that might be found in an HTTP packet, but we will only use a small set of them in this book. The following table shows a few of the HTTP header fields you should be familiar with: 214 | Appendix B: The Internet at a Glance Name Description UserAgent A string indicating which browser Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 and operating system you are making Firefox/28.0 the request from. Example Cookie Variables used by the web application “__utma: to hold session data and other 20549163.147923691.1398729710.1398729710.1398858679.2” information. Status A code indicating the success or failure of the page request. “200” (Okay), “404” (Not Found) Once a packet, carried by HTTP, reaches your browser, the contents of the packet must be interpreted as a website.

Catalyst 5.8: The Perl MVC Framework by Antano Solar John, Jonathan Rockway, Solar John Antano

Amazon:, create, read, update, delete, database schema, Debian,, Firefox, MVC pattern, Ruby on Rails, web application

The web browser then executes those commands, and returns the results to the Selenium server and then your test script. It can be hard to get it up and running because it requires the Java Runtime Environment (JRE) and a working web browser. It is somewhat experimental, and the author has only tested on Cygwin with Firefox and IE and Debian GNU/Linux with Firefox. Developing Selenium tests is pretty easy, thanks to the Selenium IDE Firefox extension available at It turns Firefox into an IDE that can record and edit tests, and save them to the Perl format. To create a test against the Catalyst application, we'll start by recording the basic outline of the test with Selenium IDE. [ 215 ] Testing To get started, start the AddressBook application, then open the IDE, and click the red record button.

When we were editing the edit_address.tt2 jemplate earlier, we changed the link to run that JavaScript function (for the correct ID). That's all we needed to do; everything is in place for the in-place editor to work. Start the server, navigate to the list of addresses, and click edit. The text of the address should be replaced with an editable form! That's AJAX. If it's not working for you, you might want to try installing Firefox and the Firebug extension. Firebug will show you all JavaScript errors and AJAX requests (requests and responses with complete headers) and will let you set JavaScript breakpoints. If something's wrong with the JavaScript, Firebug should help you identify the problem very quickly. [ 170 ] Chapter 7 If you have that part working, let's add one more feature—the ability to cancel editing. All this feature does is request the jemplate again, but with editing disabled.

pages: 996 words: 180,520

Nagios: System and Network Monitoring, 2nd Edition by Wolfgang Barth


business process, Chuck Templeton: OpenTable, Debian,, Firefox, RFC: Request For Comment, web application

* * * [324] svn co svn:// [325] [326] E.4 Mozilla Firefox as a Web Client Configuring the Mozilla Web browser in Windows XP is very simple, provided that the workstation is a member in the Active Directory domain. With the address about:config you can call up the current configuration in Firefox and enter negotiate as the filter (see Figure E-2). In the network.negotiate-auth.trusted-uris parameter you enter all hosts or domains for which an automatic login should take place. Multiple entries are separated by spaces or commas. If a target host or its domain is not in the list, Firefox will certainly ask for the user name and password. These are transmitted in plain text, however, which is why you should prefer automatic login in all cases. Figure E-2. Single sign-on via SPNEGO/Kerberos is enabled in the Firefox settings under network.negotiate In Linux you can also authenticate yourself with Firefox automatically via the negotiation procedure.

This plugin does not work under Linux, however; in Windows it works with Internet Explorer, and also with Netscape, Mozilla, and Firefox.[159] A good overview of VRML software, organized according to operating system and browser, is provided by the National Institute of Standards and Technology (NIST) on its Web site.[160] Of the VRML plugins for Linux, OpenVRML,[161] and free WRL[162] are the most likely to be used. The standard Linux distributions usually do not include a finished package. OpenVRML is included in Fedora in Extras; on the homepage of freeWRL there are binary packages for Fedora and Ubuntu. You should not try compiling the software yourself unless you are an experienced system administrator or software developer: there are a large number of pitfalls. If you have never worked with the Java compiler before and have not compiled complex software packages such as Mozilla or Firefox yourself, then you should leave it alone.

Single sign-on via SPNEGO/Kerberos is enabled in the Firefox settings under network.negotiate In Linux you can also authenticate yourself with Firefox automatically via the negotiation procedure. You need only a valid user ticket to do this. As long as the Linux workstation logins are not already actively processed via Kerberos, it is enough just to obtain the ticket manually with kinit. In addition the file /etc/krb5.conf must be configured as described in E.2.3 Kerberos configuration from page 642. As a normal user, you fetch the ticket with the realm of the corresponding Windows user: user@linux:~$ kinit myuser@EXAMPLE.NET Password for myuser@EXAMPLE.NET: ****** Afterward, you can check with klist to see whether you really have received a ticket. This is usually only valid for eight hours. After the time has expired, you must fetch a new ticket, because without a valid ticket Firefox will announce itself again with the user/password query.

pages: 324 words: 87,064

Learning Ext Js by Shea Frederick


call centre, Firefox, framing effect, side project, web application

Their editor can debug JavaScript, CSS, PHP, and many other languages as you type, and the best part is that you can link the editor up with your libraries and classes to get code auto-completion specific to your development. The debugger can alert you to errors in your code before you get to the browser (enable the JSLint debugger), and can suggest fixes for the errors. The final point here is an absolute necessity—get Firefox and Firebug installed on your computer! Don't even ask why, because Firebug will soon become the program you just cannot do your job without. Soon, you will be wondering how you ever got any work done before Firebug. What it does is allows you to monitor and interact with the web page in real time. When you start working with singlepage web applications and AJAX, you quickly lose the ability to look at the requests and responses for communications such as form submission.

One of the things that Firebug provides you with is a way to watch and inspect this communication. The other main thing that it does is allow you to modify the HTML and JavaScript in your web page and watch these changes take effect in real time. The built-in script debugger lets us pause code execution and inspect or even modify code and variables. Once you are set up with a local (or remote) development web server, your favorite editor and debugger, and Firefox with Firebug, you are ready to start Learning Ext JS. Who is this book for This book is written for Web Application Developers who are familiar with HTML, but may have little to no experience with JavaScript application development. If you are starting to build a new web application, or you are revamping an existing web application, then this book is for you. Conventions In this book, you will find a number of styles of text that distinguish between different kinds of information.

Cross-browser DOM (Document Object Model) I am sure I don't need to explain the pitfalls of browser compatibility. From the first time you create a DIV tag and apply a style to it, it becomes apparent that it's not going to look the same in every browser unless you are very diligent. When we use Ext widgets, the browser compatibility is taken care of by the Ext library, so that each widget looks exactly the same in most of the popular browsers, which are: • Internet Explorer 6+ • Firefox 1.5+ (PC, Mac) • Safari 2+ • Opera 9+ (PC, Mac) Event-driven interfaces Events describe when certain actions happen. An event could be a user action such as a click on an element, or it could be a response to an AJAX call. When a user interacts with a button, there is a reaction, with not just one but many events happening. There is an event for the cursor hovering over the button, and an event for the cursor clicking on the button, and an event for the cursor leaving the button.

Data Mining the Web: Uncovering Patterns in Web Content, Structure, and Usage by Zdravko Markov, Daniel T. Larose


Firefox, information retrieval, Internet Archive, iterative process, natural language processing, pattern recognition, random walk, recommendation engine, semantic web, speech recognition, statistical model, William of Occam

Time “GET A.html HTTP/1.1” “GET B.html HTTP/1.1” “GET A.html HTTP/1.1” “GET E.html HTTP/1.1” “GET K.html HTTP/1.1” “GET C.html HTTP/1.1” “GET I.html HTTP/1.1” “GET G.html HTTP/1.1” “GET 0.html HTTP/1.1” “GET M.html HTTP/1.1” “GET H.html HTTP/1.1” “GET N.html HTTP/1.1” “GET E.html HTTP/1.1” “GET L.html HTTP/1.1” Method Sample Web Log File for an Imaginary Web Site IP Address TABLE 7.4 — A.html — B.html E.html A.html — C.html I.html G.html — H.html K.html E.html Referrer Mozilla/4.0 (Windows NT 5.1, MSIE6.0) Mozilla/4.0 (Windows NT 5.1, MSIE6.0) Mozilla/5.0 (Linux 1.0, Firefox/0.9.3) Mozilla/4.0 (Windows NT 5.1, MSIE6.0) Mozilla/4.0 (Windows NT 5.1, MSIE6.0) Mozilla/5.0 (Linux 1.0, Firefox/0.9.3) Mozilla/4.0 (Windows NT 5.1, MSIE6.0) Mozilla/5.0 (Linux 1.0, Firefox/0.9.3) Mozilla/4.0 (Windows NT 5.1, MSIE6.0) Mozilla/5.0 (Linux 1.0, Firefox/0.9.3) Mozilla/5.0 (Linux 1.0, Firefox/0.9.3) Mozilla/5.0 (Linux 1.0, Firefox/0.9.3) Mozilla/4.0 (Windows NT 5.1, MSIE6.0) Mozilla/4.0 (Windows NT 5.1, MSIE6.0) Agent USER IDENTIFICATION 167 Navigation Page A B E K Content Page D C F G H I L M N O J P Figure 7.7 Topology of the imaginary Web site, showing links.

Although this assumption ignores users who access the same Web site with two different browsers on the same machine, this sort of behavior is relatively rare. Consider the sample web log file for an imaginary Web site in Table 7.4. Applying this heuristic to the entries in the table, we can discern that there are at least two users represented here, one using Windows NT and MS Internet Explorer, the other using Linux and Firefox. Based on this, we can postulate the following paths through the Web site taken by each user: r User 1: A → B → E → K → I → O → E → L r User 2: A → C → G → M → H → N However, do you see a problem with these reconstructions? If we apply the information available from the referrer field, along with the Web site topology, we can uncover the highly likely result that “user 1” here is actually two different users.

pages: 106 words: 22,332

Cancel Cable: How Internet Pirates Get Free Stuff by Chris Fehily


Firefox, patent troll, peer-to-peer, pirate software, Silicon Valley, Skype, slashdot, WikiLeaks

Millions opened this file in 2000, infecting themselves and millions more via email with the ILOVEYOU worm, forever convincing system administrators that ordinary users will click anything. Even with extensions showing, the file FreeMP3s.txt .exe will appear to be harmless if the embedded spaces hide the .exe extension in a narrow column. Browser. Browse with Mozilla Firefox, not Internet Explorer or Safari. Use Firefox’s Adblock Plus, FlashBlock, and BetterPrivacy extensions. More-advanced users can look at NoScript. Other privacy and security extensions are at Hosts file. Instead of using a browser extension, you can use a hosts file to block ads and third-party cookies. A hosts file is a text file that doesn’t use system resources and isn’t browser-dependent. Try or

Raw Data Is an Oxymoron by Lisa Gitelman


collateralized debt obligation, computer age, continuous integration, crowdsourcing, Drosophila, Edmond Halley, Filter Bubble, Firefox, fixed income, Google Earth, Howard Rheingold, index card, informal economy, Isaac Newton, Johann Wolfgang von Goethe, knowledge worker, liberal capitalism, lifelogging, Louis Daguerre, Menlo Park, optical character recognition, peer-to-peer, RFID, Richard Thaler, Silicon Valley, social graph, software studies, statistical model, Stephen Hawking, Steven Pinker, text mining, time value of money, trade route, Turing machine, urban renewal, Vannevar Bush

Even if one were to accept the fiction of the universal database managed by a single authority, the fundamental problem of meaningfully, and predictably, parsing that archive remains. Everything might be collected and connected, but that does not necessarily mean that everything can be known. Google may come to possess the sum total of my personal data and all of the history contained within my UID, but it cannot obtain the programmatic perspective necessary to predict exactly what I will buy or what I will read. Still, as my Firefox add-on, Collusion, reminds me, data collection companies are continually tracking my browsing behavior in spite of my efforts to thwart them, a cogent reminder that targeting is not impractical at the level of the individual. When considered in these terms, it is difficult to dismiss escape, whether in the form of 129 130 Rita Raley disappearance or disconnectivity, as merely a counterfantasy.39 Critical Art Ensemble’s injunction is to the point: “Avoid using any technology that records data facts unless it is essential.”40 Howard Rheingold and Eric Kluitenberg make a comparable case for “selective connectivity”: techniques by which we can “choose to extract ourselves from the electronic control grid from time to time and place to place.”41 Similarly, for MayerSchönberger, the solution lies in the adoption of a certain care in the management of one’s online interactions, practices of selective disclosure and revelation in order to limit “uncontrollable information flows through individual choice.”42 If we are able to opt out of a single company’s personalized retargeting scheme, that is, should we not also be able to opt out of all advertising databases or indeed out of the whole system of “cybernetic capitalism” itself?

Though many such enterprising programmers may work for large IT corporations, their software can usually be tagged as independent, alternative, open, and almost always free. Just as Internet data mining is dependent on software design, then, so, too, is the blocking or thwarting of that mining. So, to block beacons and zombie cookies and maintain the smallest measure of privacy while reading 131 132 Rita Raley articles in the Guardian online, one can choose from a suite of effective Firefox add-ons including TACO and Beef TACO (targeted advertising cookie opt-out); BetterPrivacy; Ghostery; CookieSafe; and CookieCuller. As Panopticlick, the Electronic Frontier Foundation’s browser-fingerprinting algorithm, reveals, however, privacy tools such as spoofers and plugins paradoxically make the browser more distinct and thus facilitate device fingerprinting.50 Panopticlick further reminds us of the difficulty of demarcating an absolute difference between the means of tracking and the means of circumventing that tracking; another case in point would be browsers in which the facility for private browsing is built into the browser itself.

From Amazon to Digg, there is a vast network to which we can turn to assess our value as producers (of comments, reviews, commodities) and consumers (as trusted users and buyers), one whose seemingly inconsequential rewards (stars, levels) mask a deep sense of community. In this respect, making data public is also making a commons. Apart from functioning as a rival form of expertise, then, one effect of these countervailing tools and techniques has been to re-embed dataveillance within social relations. Perhaps the best example of this is Eyebrowse, a protosocial network based on the self-reporting of one’s browsing activities (figure 7.1). A Firefox plugin, Eyebrowse visualizes a user’s web browsing history along with that of her friends, thus making visible the data available to Google and any number of third parties, now and in the future.56 Mimetically reproducing data collection practices increases technological literacy with respect to both individual everyday practice and systemic logics. Exploiting vulnerabilities makes those vulnerabilities known.

pages: 302 words: 82,233

Beautiful security by Andy Oram, John Viega


Albert Einstein, Amazon Web Services, business intelligence, business process, call centre, cloud computing, corporate governance, credit crunch, crowdsourcing, defense in depth, Donald Davies,, fault tolerance, Firefox, loose coupling, Marc Andreessen, market design, Monroe Doctrine, new economy, Nicholas Carr, Nick Leeson, Norbert Wiener, optical character recognition, packet switching, peer-to-peer, performance metric, pirate software, Robert Bork, Search for Extraterrestrial Intelligence, security theater, SETI@home, Silicon Valley, Skype, software as a service, statistical model, Steven Levy, The Wisdom of Crowds, Upton Sinclair, web application, web of trust, x509 certificate, zero day, Zimmermann PGP

As I’ve explored the client-side exploit landscape over the past several years, it has become clear to me that attackers are extremely opportunistic. The bulk of client-side exploits today target Microsoft’s IE 6 browser, but this can change as market shares shift. Many people ask me whether it’s a good idea to use Mozilla Firefox instead. My answer is always something like, “Sure, but keep in mind that if everyone in the world used Firefox, there would be a lot of exploits that target the Firefox browser.” In other words, don’t rely on using Firefox alone to protect you from these attacks. The user still needs to be somewhat savvy and not get duped into clicking on every link that comes his way. What about anti-virus software? It was not until we started capturing a lot of malware with our honeyclients that we were truly able to appreciate what a difficult job the anti-virus industry has.

§ Encyclopædia Britannica, Inc. 445 U.S. 934 (1980). SECURING ONLINE ADVERTISING: RUSTLERS AND SHERIFFS IN THE NEW WILD WEST 95 $9.99/month—the very opposite of “free” (see Figures 6-4 and 6-5). Or consider an ad promising a “free credit report”—even though the touted service is actually neither free nor a credit report. Other bogus ads try to sell software that’s widely available without charge. Search for “Firefox,” “Skype,” or “Winzip,” and you may stumble into ads attempting to charge for these popular but free programs (see Figure 6-6). These scams fly in the face of decades of consumer protection law. For one thing, not every clause in an agreement is legally enforceable. In particular, material terms must be clear and conspicuous, not buried in fine print.‖ (For example, the FTC successfully challenged deceptive ads that promised ice cream was “98% fat free” when a footnote admitted the products were not low in fat.#) Yet online marketers often think they can promise “free ringtones” or a “free iPod” with a small-type text admitting “details apply.”

In the process of developing the exploit database, we realized that we might want to store additional information that’s not necessarily related to an exploit itself, such as VMware identification numbers for the compromised images. We also wanted the ability to store information in this database about what application the honeyclient was driving. For example, we will likely get different results by visiting a web page with IE 6 versus IE 7. (Our prototype can also support Mozilla Firefox browsers now.) We will also most likely get different results using Windows XP-based honeyclients versus Windows Vista-based honeyclients. I won’t even go into other future possibilities, such as driving nonHTTP-based applications. The database allows us to store all of this information about different environments and results, and allows us to correlate the data between results from driving different applications in various OS environments.

pages: 394 words: 118,929

Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software by Scott Rosenberg


A Pattern Language, Benevolent Dictator For Life (BDFL), Berlin Wall,, call centre, collaborative editing, conceptual framework, continuous integration, Donald Knuth, Douglas Engelbart, Douglas Engelbart, Douglas Hofstadter, Dynabook,, Firefox, Ford paid five dollars a day, Francis Fukuyama: the end of history, George Santayana, Grace Hopper, Guido van Rossum, Gödel, Escher, Bach, Howard Rheingold, index card, Internet Archive, inventory management, Jaron Lanier, John Markoff, John von Neumann, knowledge worker, Larry Wall, life extension, Loma Prieta earthquake, Menlo Park, Merlin Mann, new economy, Nicholas Carr, Norbert Wiener, pattern recognition, Paul Graham, Potemkin village, RAND corporation, Ray Kurzweil, Richard Stallman, Ronald Reagan, Ruby on Rails, semantic web, side project, Silicon Valley, Singularitarianism, slashdot, software studies, source of truth, South of Market, San Francisco, speech recognition, stealth mode startup, stem cell, Stephen Hawking, Steve Jobs, Stewart Brand, Ted Nelson, Therac-25, thinkpad, Turing test, VA Linux, Vannevar Bush, Vernor Vinge, web application, Whole Earth Catalog, Y2K

Through all the sail-trimming in this period, Kapor had been finding solace in a phenomenon entirely outside OSAF: the rising tide of success that the Mozilla Project had found with its Firefox browser. Firefox, a streamlined, modernized version of the old Mozilla software that had evolved from the ashes of Netscape, had a 1.0 release scheduled for later that fall. But even in its prerelease version it was logging a million downloads a week and winning rave reviews. It was free open source software. And it had emerged out of a project whose trajectory eerily resembled Chandler’s. Mozilla had begun with great fanfare and enthusiasm among the geek elite and then dropped into a black hole for years in which it lost the allegiance of some key developers and was widely written off. Over and over again, it seemed, Mozilla had missed the boat; with Firefox, its ship finally came in. Mitchell Baker, the former Netscape lawyer whose efforts as an administrator and manager helped keep Mozilla alive through its dark years, had continued to serve as a kind of community adviser to OSAF.

According to this view, it makes little difference whether Chandler ever becomes a useful program or achieves any of its original goals; what matters is that in building his open source organization, Kapor got to know Mozilla’s Mitchell Baker, and when AOL/Netscape decided to stop supporting the open source browser, he was in the right place at the right time to help rescue it, midwife the birth of the Mozilla Foundation, and set Firefox on its successful trajectory. As I write, Firefox has come from nowhere to win more than 10 percent of the browser market (more than 212 million downloads as this book goes to press). Its competition has forced Microsoft to revisit its long-fallow Internet Explorer product and get back into the business of browser development, with a payoff for Web users everywhere. When Chandler started out, this was not a chapter Kapor or anyone else could have foreseen.

Open source seems to suffer from its own species of frustrating delays. The highest profile new open source project in the years since the publication of Raymond’s essay was Mozilla—a Web browser built out of Netscape’s corporate wreckage. In the last throes of its battle with Microsoft, Netscape had embraced open source and published its browser’s source code. The result today is a still-evolving free program used by millions. Its most recent incarnation, Firefox, has actually begun eating into the market share of Microsoft’s Internet Explorer. But Mozilla took an agonizingly long time to become that valuable, and meanwhile the competition at Microsoft cemented its dominance. The new bazaars of the open source movement have changed computing in many ways, but they are not notable for bringing new products to users any faster than the old cathedral builders did.

pages: 344 words: 96,690

Groundswell: Winning in a World Transformed by Social Technologies by Charlene Li, Josh Bernoff


business process, call centre, centre right, citizen journalism, crowdsourcing, demand response, Donald Trump, estate planning, Firefox, John Markoff, knowledge worker, Silicon Valley, skunkworks, Tony Hsieh

The community of contributors notices changes and acts to preserve or reverse them based on the ideals of the community. The same sort of cooperation drives other forms of online collaboration, including open-source software products like Linux (a flavor of the Unix operating system), Apache (a Web server), and Firefox (a Web browser). In open source, technically adept developers combine their efforts to build, test, and improve software products, and the code is available for all to see. Before you scoff at this form of development, recognize that Linux now underpins many Web servers and consumer electronics devices, including TiVo; Apache is the dominant Web server software on the Internet,7 and Firefox went from zero to over 25 percent of market share in less than two years.8 PARTICIPATION. While one in four online American adults say they use Wikipedia at least monthly, only 6 percent contribute to a wiki once a month.

A number of other videos on YouTube claim to debunk the video, showing it was done with string and film run in reverse, but this does not appear to have affected the number of people viewing it. 6. 31 percent of teenagers check in daily, for example: This data comes from North American Technographics Youth Online Survey, Q2 2009 (US). 7. Apache is the dominant Web server software on the Internet: Netcraft tracks Web server market share. You can see its December 2010 survey at 8. Firefox has gone from zero to over 25 percent of market share in less than two years: W3Counter is one of a number of sites that track browser market share. Browser market share figures vary greatly based on methodology—for example, self-report surveys of consumers give entirely different statistics from statistics collected from Web sites. The W3Counter statistics for November 2010 show growth for Firefox to 32 percent market share. The October 1, 2007, browser share report from W3Counter, which shows growth in the first two years, is visible at 9. It’s the seventh-most-popular site on the Web, according to Alexa: The Alexa rankings of sites by popularity are visible at Alexa’s home page: 10.

For example, an RSS feed might be the posts from a blog, the articles on a newspaper site, new photos posted by a member of Flickr, stock quotes, updates from basketball games, tagged items on Delicious—anything that changes regularly. Any site can host a feed of content that changes over time. To see the RSS feed, you need a receiver, which is known as an RSS reader. While there are a bunch of RSS reader programs, it’s easiest to view RSS feeds on personalized home pages from Google and Yahoo! or on the latest versions of browsers like Firefox or Internet Explorer.16 Either way, the RSS reader organizes the feeds into areas of your screen and, in some cases, tabs. You, the consumer of all this information, get to see everything that’s new in one place and to click on and view anything that looks interesting. Your RSS reader will look different from somebody else’s, depending on what content you’ve added. Web sites that support RSS feeds typically feature a distinctive orange square transmitter-style icon that you can click on to subscribe to the site’s feed.

pages: 292 words: 81,699

More Joel on Software by Joel Spolsky


a long time ago in a galaxy far, far away, barriers to entry, Black Swan, Build a better mousetrap, business process, call centre, Danny Hillis, David Heinemeier Hansson, failed state, Firefox, fixed income, George Gilder, Larry Wall, low cost carrier, Mars Rover, Network effects, Paul Graham, performance metric, place-making, price discrimination, prisoner's dilemma, Ray Oldenburg, Ruby on Rails, Sand Hill Road, Silicon Valley, slashdot, social software, Steve Ballmer, Steve Jobs, Superbowl ad, The Great Good Place, type inference, unpaid internship, wage slave, web application, Y Combinator

And it did a fine job, but wasn’t really 100% portable, so we got Java, which was even more portable than C. Mmmhmm. Right now the big hole in the portability story is—tada!—client-side JavaScript, and especially the DOM in web browsers. Writing applications that work in all different browsers is a friggin’ nightmare. There is simply no alternative but to test exhaustively on Firefox, IE 6, IE 7, Safari, and Opera, and guess what? I don’t have time to test on Opera. Sucks to be Opera. Startup web browsers don’t stand a chance. What’s going to happen? Well, you can try begging Microsoft and Firefox to be more compatible. Good luck with that. You can follow the p-code/Java model and build a little sandbox on top of the underlying system. But sandboxes are penalty boxes; they’re slow and they suck, which is why Java applets are dead, dead, dead. To build a sandbox, you pretty much doom yourself to running at 1/10 the speed of the underlying platform, and you doom yourself to never supporting any of the cool features that show up on one of the platforms but not the others.

I’ll let Dean introduce the problem ( archive/2008/03/03/microsoft-s-interoperability-principles-andie8.aspx): 126 More from Joel on Software All browsers have a “Standards” mode, call it “Standards mode,” and use it to offer a browser’s best implementation of web standards. Each version of each browser has its own Standards mode, because each version of each browser improves on its web standards support. There’s Safari 3’s Standards mode, Firefox 2’s Standards mode, IE 6’s Standards mode, and IE 7’s Standards mode, and they’re all different. We want to make IE 8’s Standards mode much, much better than IE 7’s Standards mode. And the whole problem hinges on the little tiny decision of what IE 8 should do when it encounters a page that claims to support “standards,” but has probably only been tested against IE 7. What the hell is a standard?

Martian Headsets 135 There is no practical way to check whether the web page you just coded conforms to the spec. There are validators, but they won’t tell you what the page is supposed to look like, and having a “valid” page where all the text is overlapping, nothing lines up, and you can’t see anything is not very useful. What people do is check their pages against one browser, maybe two, until it looks right. And if they’ve made a mistake that just happens to look OK in IE and Firefox, they’re not even going to know about it. And their pages may break when a future web browser comes out. If you’ve ever visited the ultra-orthodox Jewish communities of Jerusalem, all of whom agree in complete and utter adherence to every iota of Jewish law, you will discover that despite general agreement on what constitutes kosher food, you will not find a rabbi from one ultraorthodox community who is willing to eat at the home of a rabbi from a different ultra-orthodox community.

pages: 666 words: 181,495

In the Plex: How Google Thinks, Works, and Shapes Our Lives by Steven Levy


23andMe, AltaVista, Anne Wojcicki, Apple's 1984 Super Bowl advert, autonomous vehicles, book scanning, Brewster Kahle, Burning Man, business process, clean water, cloud computing, crowdsourcing, Dean Kamen, discounted cash flows, don't be evil, Donald Knuth, Douglas Engelbart, Douglas Engelbart, El Camino Real, fault tolerance, Firefox, Gerard Salton, Gerard Salton, Google bus, Google Chrome, Google Earth, Googley, HyperCard, hypertext link, IBM and the Holocaust, informal economy, information retrieval, Internet Archive, Jeff Bezos, John Markoff, Kevin Kelly, Mark Zuckerberg, Menlo Park, one-China policy, optical character recognition, PageRank, Paul Buchheit, Potemkin village, prediction markets, recommendation engine, risk tolerance, Rubik’s Cube, Sand Hill Road, Saturday Night Live, search inside the book, second-price auction, selection bias, Silicon Valley, skunkworks, Skype, slashdot, social graph, social software, social web, spectrum auction, speech recognition, statistical model, Steve Ballmer, Steve Jobs, Steven Levy, Ted Nelson, telemarketer, trade route, traveling salesman, turn-by-turn navigation, Vannevar Bush, web application, WikiLeaks, Y Combinator

The foundation’s key product was an open-source browser called Firefox. Google was already the biggest source of revenue for the foundation, paying it millions of dollars to ensure that the search box in Firefox was powered by Google. In the new arrangement, Google hired some top engineers from Mozilla, including Ben Goodger and Darin Fisher. While their employer would be Google, their job would be the same: making improvements in Firefox. Another hiring coup came with Linus Upson, a thirty-seven-year-old engineer with browser experience from Netscape, Steve Jobs’s company NeXT, and Palm, where he created the browser for the PalmPilot. “This was very clever on Larry and Sergey’s part,” says Schmidt, “because, of course, these people doing Firefox extensions are perfectly capable of doing a great browser.”

Ten months later, Pichai became a Google employee. It was April 1, 2004, and Google was in war room mode because of the Gmail announcement. In spring 2006, Pichai’s client group was working in Building 44, across Charleston Street from the core campus. They were preparing for the Firefox 2.0 launch, but not unexpectedly, there were conversations about designing an ideal browsing app of their own. The team believed that there was a flaw in the current generation of browsers. Microsoft’s Internet Explorer and Mozilla’s Firefox had been conceived in the 1990s, before the cloud computing era. Now the web was expected to become not just a means of delivering information but also a platform for running programs. Those creaky old browsers could not easily adapt to the new reality. The conclusion was obvious: only by building its own browser could Google bring the browser into the cloud age.

It was a crazy question, and everybody was a combination of excited and freaked out.” The engineers knew that building a competitive browser was a massive undertaking. There were also mixed feelings due to the group’s strong attachment to both the technology and vision behind Firefox, an icon of open-source development and a hedge against Microsoft’s dominance of the browser market. Particularly for the Googlers who had come from Mozilla, this was a case of digital fratricide. “The fear was that people were going to read this as sabotaging Firefox,” says engineer Erik Kay, who joined the team in October 2006. That would be evil. The Googlers were eventually mollified by the assurance that their browser would be 100 percent open source. With the open-source system, Google’s code would be publicly available, and if people wanted to use it to create variations, that was fine.

pages: 678 words: 159,840

The Debian Administrator's Handbook, Debian Wheezy From Discovery to Mastery by Raphaal Hertzog, Roland Mas


bash_history, Debian, distributed generation,, failed state, Firefox, GnuPG, Google Chrome, Jono Bacon, NP-complete, QWERTY keyboard, RFC: Request For Comment, Richard Stallman, Skype, SpamAssassin, Valgrind, web application, x509 certificate, zero day, Zimmermann PGP

Figure 13.7. The Iceweasel web browser CULTURE Iceweasel, Firefox and others Many users will no doubt be surprised by the absence of Mozilla Firefox in the Debian Wheezy menus. No need to panic: the iceweasel package contains Iceweasel, which is basically Firefox under another name. The rationale behind this renaming is a result of the usage rules imposed by the Mozilla Foundation on the Firefox™ registered trademark: any software named Firefox must use the official Firefox logo and icons. However, since these elements are not released under a free license, Debian cannot distribute them in its main section. Rather than moving the whole browser to non-free, the package maintainer chose to use a different name. The firefox command still exists in the iceweasel package, but only for compatibility with tools that would try to use it.

Thunderbird and Icedove This email software, included in the icedove package, is part of the Mozilla software suite. Various localization sets are available in icedove-l10n-* packages; the enigmail extension handles message encrypting and signing (alas, it is not available in all languages). Figure 13.6. The Icedove email software Thunderbird is one of the best email clients, and it seems to be a great success, just like Mozilla Firefox. Strictly speaking, Debian Wheezy contains Icedove, and not Thunderbird, for legal reasons we will detail in the “Iceweasel, Firefox and others” section later on; but apart from their names (and icons), there are no real differences between them. 13.5. Web Browsers Epiphany, the web browser in the GNOME suite, uses the WebKit display engine developed by Apple for its Safari browser. The relevant package is epiphany-browser. Konqueror, the KDE file manager, also behaves as a web browser.

This allows Apache to select the most appropriate SSL certificate for the transaction to proceed. Before SNI, Apache would always use the certificate defined in the default virtual host. Clients trying to access another virtual host would then display warnings, since the certificate they received didn't match the website they were trying to access. Fortunately, most browsers now work with SNI; this includes Microsoft Internet Explorer starting with version 7.0 (starting on Vista), Mozilla Firefox starting with version 2.0, Apple Safari since version 3.2.1, and all versions of Google Chrome. The Apache package provided in Debian is built with support for SNI; no particular configuration is therefore needed, apart from enabling name-based virtual hosting on port 443 (SSL) as well as the usual port 80. This is a simple matter of editing /etc/apache2/ports.conf so it includes the following: <IfModule mod_ssl.c> NameVirtualHost *:443 Listen 443 </IfModule> Care should also be taken to ensure that the configuration for the first virtual host (the one used by default) does enable TLSv1, since Apache uses the parameters of this first virtual host to establish secure connections, and they had better allow them!

pages: 59 words: 12,801

The Little Book on CoffeeScript by Alex MacCaw


Firefox, MVC pattern, node package manager, web application, Y2K

This strict context throws more exceptions and warnings than the normal context, giving developers some indication when they’re straying from best practices, writing un-optimizable code or making common mistakes. In other words, strict mode reduces bugs, increases security, improves performance, and eliminates some difficult-to-use language features. What’s not to like? Strict mode is currently supported in the following browsers: Chrome >= 13.0 Safari >= 5.0 Opera >= 12.0 Firefox >= 4.0 Internet Explorer >= 10.0 Having said that, strict mode is completely backwards compatible with older browsers. Programs using it should run fine in either a strict or normal context. Strict Mode Changes Most of the changes strict mode introduces pertain to JavaScript’s syntax: Errors on duplicate property and function argument names Errors on incorrect use of the delete operator Access to arguments.caller & arguments.callee throws an error (for performance reasons) Using the with operator will raise a syntax error Certain variables such as undefined are no longer writeable Introduces additional reserved keywords, such as implements, interface, let, package, private, protected, public, static, and yield However, strict mode also changes some runtime behavior: Global variables are explicit (var always required); the global value of this is undefined eval can’t introduce new variables into the local context Function statements have to be defined before they’re used (previously, functions could be defined anywhere) arguments is immutable CoffeeScript already abides by a lot of strict mode’s requirements, such as always using var when defining variables, but it’s still very useful to enable strict mode in your CoffeeScript programs.

Functions get hoisted before the program’s execution and as such are available everywhere in the scope they were defined in, even if called before the actual definition in the source. The trouble is, hoisting behavior differs between browser. For example: if (true) { function declaration() { return "first"; } } else { function declaration() { return "second"; } } declaration(); In some browsers (e.g., Firefox), declaration() will return "first", and in other browsers (e.g., Chrome), it’ll return "second", even though it looks like the else statement is never run. If you want to know more about declarative functions, then you should read Juriy Zaytsev’s guide, where he delves into the specifics. Suffice to say, they have fairly ambiguous behavior, and can lead to problems later down the road. All things considered, it’s best to steer clear of them by using function expressions instead: var wem = function(){}; wem(); CoffeeScript’s approach to this is to remove declarative functions entirely, using function expressions instead.

pages: 470 words: 109,589

Apache Solr 3 Enterprise Search Server by Unknown


bioinformatics, continuous integration, database schema,, fault tolerance, Firefox, full text search, information retrieval, Internet Archive, natural language processing, performance metric, platform as a service, Ruby on Rails, web application

Rizo</str> <str name="a_type">group</str> <str name="id">Artist:482488</str> <date name="indexedAt">2011-07-15T05:20:06Z</date> <str name="type">Artist</str> </doc> <!-- ** 7 other docs omitted for brevity ** --> </result> </response> Browser note Use Firefox for best results when searching Solr. Solr's search results return XML, and Firefox renders XML color coded and pretty-printed. Safari on Mac OS X Lion finally gained this feature too. For other browsers (notably an older Safari or Chrome), you may find yourself having to use the View Source feature or using a response format other than XML to see the results. Even in Firefox, however, there are cases where you will use View Source in order to look at the XML with the original indentation, which is relevant when diagnosing the scoring debug output. Solr's generic XML structured data representation Solr has its own generic XML representation of typed and named data structures.

The main benefit to the form is that it applies the URL escaping for special characters in the query, and for some basic options, you needn't remember what the parameter names are. It is convenient to use the form as a starting point for developing a search, and then subsequently refine the URL directly in the browser instead of returning to the form. Solr's search results are by default in XML. Most modern browsers, such as Firefox, provide a good XML view with syntax coloring and hierarchical structure collapse controls. Solr can format responses in JSON and other formats but that's a topic for another time. They have the same basic structure as the XML you're about to see, by the way. The XML response consists of a<response/> element, which wraps the entire message. The first child element contains request header metadata.

This standard enables you to build a single interface that works with multiple different search engines. OpenSearch was originally developed by A9, a subsidiary of Amazon, and has seen some adoption in the market, especially by the browsers to power their toolbar search boxes. You can find more information at Installing the Search MBArtists plugin This example builds on the Velocity based UI for the mbartists core described earlier, and works best with Firefox. Open the browse interface for the mbartists core and you will be able to add a custom Search MBArtists plugin to the search bar: This was prompted by providing a link to an OpenSearch descriptor file in the cores/mbtypes/conf/velocity/head.vm file: <link rel="search" href="#{url_for_solr}/admin/file?file=/velocity/opensearch_description.xml&contentType=text/xml" type="application/opensearchdescription+xml" title="Search MBArtists"> </link> Browsers that understand this link will allow the user to add the described search engine.

pages: 390 words: 96,624

Consent of the Networked: The Worldwide Struggle for Internet Freedom by Rebecca MacKinnon


A Declaration of the Independence of Cyberspace, Bay Area Rapid Transit, Berlin Wall, business intelligence, Cass Sunstein, Chelsea Manning, citizen journalism, cloud computing, cognitive dissonance, collective bargaining, conceptual framework, corporate social responsibility, Deng Xiaoping, digital Maoism, don't be evil, Filter Bubble, Firefox, future of journalism, illegal immigration, Jaron Lanier, Jeff Bezos, John Markoff, Julian Assange, Mark Zuckerberg, Mikhail Gorbachev, national security letter, online collectivism, Parag Khanna, pre–internet, race to the bottom, Richard Stallman, Ronald Reagan, sharing economy, Silicon Valley, Silicon Valley startup, Skype, Steve Crocker, Steven Levy, WikiLeaks

Nonprofit organizations, individual activists, independent media organizations, and low-budget educational institutions all over the world rely on WordPress, the open-source blogging platform, and Drupal, the open-source content management system, both of which are developed, maintained, and upgraded by a community of volunteer developers. Another extremely successful project dedicated to developing open-source software that helps ordinary nontechie Internet users gain greater control over their online lives is Mozilla. Its Firefox browser, an open-source volunteer-developed web browser that allows for a high degree of customization, now makes up roughly 30 percent of the world’s web browser usage. Firefox integrates the work of other developers through add-ons and plugins, including many that help increase people’s privacy and security online. One of these is the Torbutton, integrated with Tor, which enables users to surf the web anonymously and circumvent blocked websites. The Mozilla community also works on a range of other software tools, including the open-source e-mail client Thunderbird, which has become the preferred e-mail client for many activists because it is easy to encrypt, in addition to being free.

The Internet would not be what it is today if those engineers had been unable or unwilling to share TCP/IP freely with the world as part of the digital commons. The World Wide Web, invented two decades after the Internet, similarly owes its existence to the digital commons. What we call “the web” is an interlinked universe of websites accessed through web browsers such as Internet Explorer, Safari, and Firefox. All websites, no matter where they are created or what kind of computer system is used to host them, are readable from anywhere thanks to a common computer language called the hypertext mark-up language (HTML). The web is how most people on the planet today use the Internet. We can thank the Englishman Sir Tim Berners-Lee (eventually knighted for his invention), who in 1990 while at the particle physics lab at the European Organization for Nuclear Research in Switzerland wrote a simple computer program called the WorldWideWeb to make it easier for researchers in his lab to locate and share each other’s data.

Its flexible system of copyright licenses enables organizations like Global Voices, Wikipedia, and many other nonprofit citizen projects to ensure that their content is shared as widely as possible and translated into as many languages as possible, with the creators’ full approval and consent. The point is that people who want to protect their works with traditional copyright certainly can, but many other people who create media for reasons other than sales should also be able to do so. Other groups are focused explicitly on keeping the Internet as open and free as possible. In 2009, Mozilla (creator of the Firefox browser and other open-source tools) launched Drumbeat, a platform through which people can become actively involved in keeping the web open and free by organizing their own projects and recruiting others to help. One team is working to develop a set of universal “privacy icons”—a set of symbols that companies could adapt, which would make it easier for users to understand what personal information is being stored and for how long, and how and with whom it might be shared, under what circumstances.

pages: 319 words: 90,965

The End of College: Creating the Future of Learning and the University of Everywhere by Kevin Carey


Albert Einstein, barriers to entry, Bayesian statistics, Berlin Wall, business intelligence, carbon-based life, Claude Shannon: information theory, complexity theory, David Heinemeier Hansson, declining real wages, deliberate practice, discrete time, double helix, Douglas Engelbart, Douglas Engelbart, Downton Abbey, Drosophila, Firefox, Frank Gehry, Google X / Alphabet X, informal economy, invention of the printing press, inventory management, John Markoff, Khan Academy, Kickstarter, low skilled workers, Lyft, Marc Andreessen, Mark Zuckerberg, meta analysis, meta-analysis, natural language processing, Network effects, open borders, pattern recognition, Peter Thiel, pez dispenser, ride hailing / ride sharing, Ronald Reagan, Ruby on Rails, Sand Hill Road, self-driving car, Silicon Valley, Silicon Valley startup, social web, South of Market, San Francisco, speech recognition, Steve Jobs, technoutopianism, transcontinental railway, Vannevar Bush

Wresting power from such people was how you made the world the way you thought the world should be. The Web browser was the greatest portal to knowledge in human history. Having it owned and controlled by a giant corporation rankled. So as Netscape shrank into oblivion, some of its employees created a nonprofit foundation called Mozilla, with the logo of a giant red thunder lizard. The Mozilla Foundation birthed a new Web browser called Firefox. It was “open-source” software, which means that the underlying code was available for anyone to download, copy, and improve. The open-source ethos is both moral and practical. In a world that is increasingly run by highly sophisticated computer programs, no single person working alone can build sufficiently great software from scratch. Computer programmers work in virtual communities where chunks of code are shared, modified, and re-shared for anyone to use.

The goal was creating common software protocols so when the information was broken up into pieces in one place, it could be perfectly reassembled, microseconds later, in another. That’s what the tp stands for in the “http://” that sits in front of website addresses: “transfer protocol.” Openness isn’t some hippie sharing ideal. It is, practically speaking, vital to making the modern world function. The first, freely available version of Firefox was released in 2004. It was downloaded by 100 million people within a year. That was the year that Internet Explorer’s market share began to decline. Google released its own free browser, Chrome, at the end of the decade. At the same time, people began using smartphones and tablets to access the Internet instead of desktop computers preloaded with Explorer. Today, the majority of people accessing the Internet use software that is free and open-source.

Yet the experience of transferring from one college to another usually involves your new institution refusing to accept many of the credits earned at the old. So with the for-profit Web browser vanquished, the Mozilla Foundation turned to its next project: using the principles of openness to replace the college diploma. — MOZILLA’S PROJECT, called Open Badges, is designed to create an alternative system of credentials that is controlled by no central authority. Firefox took access to the world’s digital information away from powerful incumbent organizations and gave it to the people. Open badges are designed to do the same thing for information about people themselves. Open badges can be created by anyone. Mozilla itself doesn’t offer them. Instead, the foundation developed a set of common protocols that allow other organizations to create them, so people can collect and display badges earned in different ways and times in a single place.

pages: 420 words: 61,808

Flask Web Development: Developing Web Applications With Python by Miguel Grinberg


database schema, Firefox, full text search, Minecraft, platform as a service, web application

After calling this function and returning from the request, the development web server will know that it needs to exit gracefully. Example 15-7 shows the layout of a test case that is configured to run tests with Selenium. Example 15-7. tests/ Framework for tests using Selenium from selenium import webdriver class SeleniumTestCase(unittest.TestCase): client = None @classmethod def setUpClass(cls): # start Firefox try: cls.client = webdriver.Firefox() except: pass # skip these tests if the browser could not be started if cls.client: # create the application = create_app('testing') cls.app_context = cls.app_context.push() # suppress logging to keep unittest output clean import logging logger = logging.getLogger('werkzeug') logger.setLevel("ERROR") # create the database and populate with some fake data db.create_all() Role.insert_roles() User.generate_fake(10) Post.generate_fake(10) # add an administrator user admin_role = Role.query.filter_by(permissions=0xff).first() admin = User(email='', username='john', password='cat', role=admin_role, confirmed=True) db.session.add(admin) db.session.commit() # start the Flask server in a thread threading.Thread( @classmethod def tearDownClass(cls): if cls.client: # stop the flask server and the browser cls.client.get('http://localhost:5000/shutdown') cls.client.close() # destroy database db.drop_all() db.session.remove() # remove application context cls.app_context.pop() def setUp(self): if not self.client: self.skipTest('Web browser not available') def tearDown(self): pass The setUpClass() and tearDownClass() class methods are invoked before and after the tests in this class execute.

Example 15-7. tests/ Framework for tests using Selenium from selenium import webdriver class SeleniumTestCase(unittest.TestCase): client = None @classmethod def setUpClass(cls): # start Firefox try: cls.client = webdriver.Firefox() except: pass # skip these tests if the browser could not be started if cls.client: # create the application = create_app('testing') cls.app_context = cls.app_context.push() # suppress logging to keep unittest output clean import logging logger = logging.getLogger('werkzeug') logger.setLevel("ERROR") # create the database and populate with some fake data db.create_all() Role.insert_roles() User.generate_fake(10) Post.generate_fake(10) # add an administrator user admin_role = Role.query.filter_by(permissions=0xff).first() admin = User(email='', username='john', password='cat', role=admin_role, confirmed=True) db.session.add(admin) db.session.commit() # start the Flask server in a thread threading.Thread( @classmethod def tearDownClass(cls): if cls.client: # stop the flask server and the browser cls.client.get('http://localhost:5000/shutdown') cls.client.close() # destroy database db.drop_all() db.session.remove() # remove application context cls.app_context.pop() def setUp(self): if not self.client: self.skipTest('Web browser not available') def tearDown(self): pass The setUpClass() and tearDownClass() class methods are invoked before and after the tests in this class execute. The setup involves starting an instance of Firefox through Selenium’s webdriver API and creating an application and a database with some initial data for tests to use. The application is started in a thread using the standard method. At the end the application receives a request to /shutdown, which causes the background thread to end. The browser is then closed and the test database removed. Note Selenium supports many other web browsers besides Firefox. Consult the Selenium documentation if you wish to use a different web browser. The setUp() method that runs before each test skips tests if Selenium cannot start the web browser in the startUpClass() method.

pages: 648 words: 108,814

Solr 1.4 Enterprise Search Server by David Smiley, Eric Pugh


Amazon Web Services, bioinformatics, cloud computing, continuous integration, database schema, domain-specific language,, fault tolerance, Firefox, information retrieval, Internet Archive, Ruby on Rails, web application, Y Combinator

-- ** 7 other docs omitted for brevity ** --> </result> </response> [ 91 ] Download at Boykma.Com This material is copyright and is licensed for the sole use by William Anderson on 26th August 2009 4310 E Conway Dr. NW, , Atlanta, , 30327 Basic Searching Browser note Use Firefox for best results when searching Solr. Solr's search results return XML, and Firefox renders XML color coded and pretty-printed. For other browsers (notably Safari), you may find yourself having to use the View Source feature to interpret the results. Even in Firefox, however, there are cases where you will use View Source in order to look at the XML with the original indentation, which is relevant when diagnosing the scoring debug output. Solr's generic XML structured data representation Solr has its own generic XML representation of typed and named data structures.

That's just a simple label at the top of the schema file to name the schema. If you have multiple schemas for different data sets, then this is a useful differentiator. Next is the current working directory cwd, and Solr's home. The block below this is a navigation menu to the different admin screens and configuration data. The navigation menu is explained as follows: • SCHEMA: This downloads the schema configuration file (XML) directly to the browser. Firefox conveniently displays XML data with syntax highlighting. Safari, on the other hand, tries to render it and the result is unusable. Your mileage will vary depending on the browser you use. You can always use your browser's view source command if needed. • CONFIG: It is similar to the SCHEMA choice, but this is the main configuration file for Solr. • ANALYSIS: It is used for diagnosing potential query/indexing problems having to do with the text analysis.

It is convenient to use the form at first, but then subsequently make direct modifications to the URL in the browser instead of returning to the form. The form only controls a basic subset of all possible parameters. The main benefit to the form is that it applies the URL escaping for special characters in the query, and for some basic options, you needn't remember what the parameter names are. Solr's search results from its web interface are in XML. As suggested earlier, you'll probably find that using the Firefox web browser provides the best experience due to the syntax coloring. Internet Explorer displays XML content well too. If you, at some point, want Solr to return a web page to your liking or an alternative XML structure, then that will be covered later. Here is the XML response with my comments: <?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">3</int> <lst name="params"> <str name="indent">on</str> <str name="rows">10</str> <str name="start">0</str> <str name="q">monitor</str> <str name="version">2.2</str> </lst> </lst> [ 22 ] Download at Boykma.Com This material is copyright and is licensed for the sole use by William Anderson on 26th August 2009 4310 E Conway Dr.

pages: 196 words: 58,122

AngularJS by Brad Green, Shyam Seshadri


combinatorial explosion, continuous integration, Firefox, Google Chrome, MVC pattern, node package manager, single page application, web application, WebSocket

Starting the Karma server Just run the following command: karma start [optionalPathToConfigFile] This will start the Karma server on port 9876 (the default, which you can change by editing the karma.conf.js file from the previous step). While Karma should open up a browser and capture it automatically, it will print all the instructions needed to capture another browser in the console. If you are too lazy to do that, just go to http://localhost:9876 in another browser or device, and you are good to start running tests in multiple browsers. Tip While Karma can capture the usual browsers automatically, on start (Firefox, Chrome, IE, Opera, and even PhantomJS), it is not limited to just those browsers. Any device on which you can browse to a URL can possibly be a runner for Karma. So if you open up the browser of your iPhone or Android device and browse to http://machinename:9876 (provided it is accessible!), you could potentially run your tests on mobile devices as well. Running the tests Execute the following command: karma run That’s it.

The sooner you accept that, the better off you will be. Thankfully, things have come a long way since the old days when there was no Firebug. Now, regardless of the choice of browser, there is generally something you can use to step in to your code, analyze your errors, and figure out the state of the application. Get to know the Developer Tools in Chrome and Internet Explorer; Firebug works across Firefox and Chrome. A few further tips to help you out when debugging your application: Always, always switch to the non-minified version of all your source code and dependencies when you want to debug. Not only will you get better variable names, you’ll also get line numbers and actual useful information and debugging capabilities. Try to keep your source code in individual JS files, not inlined in HTML.

test main require module last 'test/spec/main.js' ]; // list of files to exclude exclude = []; // test results reporter to use // possible values: dots || progress reporter = 'progress'; // web server port port = 8989; // cli runner port runnerPort = 9898; // enable/disable colors in the output (reporters and logs) colors = true; // level of logging logLevel = LOG_INFO; // enable/disable watching file and executing tests whenever any file changes autoWatch = true; // Start these browsers, currently available: // - Chrome // - ChromeCanary // - Firefox // - Opera // - Safari // - PhantomJS // - IE if you have a windows box browsers = ['Chrome']; // Continuous Integration mode // if true, it captures browsers, runs tests, and exits singleRun = false; We use a slightly different format to define our dependencies (the included: false is quite important). We also add the dependency on REQUIRE_JS and its adapter. The final thing to get all this working is main.js, which triggers our tests. // This file is test/spec/main.js require.config({ // !!

pages: 204 words: 54,395

Drive: The Surprising Truth About What Motivates Us by Daniel H. Pink


affirmative action, call centre, Daniel Kahneman / Amos Tversky, Dean Kamen, deliberate practice, Firefox, Frederick Winslow Taylor, functional fixedness, game design, George Akerlof, Isaac Newton, Jean Tirole, job satisfaction, knowledge worker, performance metric, profit maximization, profit motive, Results Only Work Environment, side project, the built environment, Tony Hsieh, transaction costs, zero-sum game

Now, if this all-volunteer, all-amateur encyclopedia were the only instance of its kind, we might dismiss it as an aberration, an exception that proves the rule. But it's not. Instead, Wikipedia represents the most powerful new business model of the twenty-first century: open source. Fire up your home computer, for example. When you visit the Web to check the weather forecast or order some sneakers, you might be using Firefox, a free open-source Web browser created almost exclusively by volunteers around the world. Unpaid laborers who give away their product? That couldn't be sustainable. The incentives are all wrong. Yet Firefox now has more than 150 million users. Or walk into the IT department of a large company anywhere in the world and ask for a tour. That company's corporate computer servers could well run on Linux, software devised by an army of unpaid programmers and available for free. Linux now powers one in four corporate servers.

These are companies that raise capital, develop products, and sell them in an open market but do so in the service of a larger social mission or as he puts it, with the profit-maximization principle replaced by the social-benefit principle. The Fourth Sector Network in the United States and Denmark is promoting the for-benefit organization a hybrid that it says represents a new category of organization that is both economically self-sustaining and animated by a public purpose. One example: Mozilla, the entity that gave us Firefox, is organized as a for-benefit organization. And three U.S. entrepreneurs have invented the B Corporation, a designation that requires companies to amend their bylaws so that the incentives favor long-term value and social impact instead of short-term economic gain. Neither open-source production nor previously unimagined not only for profit businesses are yet the norm, of course. And they won't consign the public corporation to the trash heap.

pages: 281 words: 95,852

The Googlization of Everything: by Siva Vaidhyanathan


1960s counterculture, activist fund / activist shareholder / activist investor, AltaVista, barriers to entry, Berlin Wall, borderless world, Burning Man, Cass Sunstein, choice architecture, cloud computing, computer age, corporate social responsibility, correlation does not imply causation, creative destruction, data acquisition, death of newspapers, don't be evil, Firefox, Francis Fukuyama: the end of history, full text search, global village, Google Earth, Howard Rheingold, informal economy, information retrieval, John Markoff, Joseph Schumpeter, Kevin Kelly, knowledge worker, libertarian paternalism, market fundamentalism, Marshall McLuhan, means of production, Mikhail Gorbachev, moral panic, Naomi Klein, Network effects, new economy, Nicholas Carr, PageRank, pirate software, Ray Kurzweil, Richard Thaler, Ronald Reagan, side project, Silicon Valley, Silicon Valley ideology, single-payer health, Skype, social web, Steven Levy, Stewart Brand, technoutopianism, The Nature of the Firm, The Structural Transformation of the Public Sphere, Thorstein Veblen, urban decay, web application, zero-sum game

This is essentially what Microsoft did in the 1990s when it used its dominance in desktop software to subsidize and promote its Internet Explorer Web browser. Microsoft managed to kill off several innovative competitors, including Netscape, the original commercial browser. The only remaining major competitors for Explorer were Apple’s Safari (also subsidized by Apple’s profitable ventures) and Firefox, an open-source product released by the Mozilla Foundation. Explorer was for a long time the default browser on more than 70 percent of the computers in the world.30 Although it has been displaced 30 R END E R UNTO CAESA R by Firefox in recent years, Explorer is still installed along with Microsoft Windows, the operating system of choice for more than 90 percent of the world’s personal computers. Competition, both fair and unfair, is but one point of friction between Google and other powerful interests. Increasingly, Google is the target of attacks from firms that provide content to the Web, largely because they are failing to make much money from the Web and Google makes so much.

It now offers online software such as a word processor, spreadsheets, presentation software, and a REN D E R UNTO CA ESA R 17 calendar service—all operating “in the cloud” and thus freeing users from managing multiple versions of their files and applications on different computers, and easing collaboration with others. In 2008 Google released its own Web browser called Chrome, despite many years of collaborating with the Mozilla foundation in supporting the opensource Firefox browser. And in 2009 it previewed its Chrome operating system for cloud computing, a direct assault on Microsoft’s core product, Windows. It hosts health records online. On top of all that, since its beginning in 2004, its Google Books project has scanned millions and millions of volumes and has made many of them available online at no cost, simultaneously appropriating the functions of libraries on the one hand and the rights of publishers on the other.

See also trust bias Farsi language, 141 fax machines, 121, 123 FCC. See Federal Communication Commission (FCC) Federal Communication Commission (FCC), 18, 49 Federal Emergency Management Agency (FEMA), 41–42 Feldmar, Andrew, 177 FEMA. See Federal Emergency Management Agency (FEMA) filters, 7, 175–76, 178–79, 182 financial status, Google’s, 17–18, 229n14; and earnings from advertising, 27, 229n14 Finland, 142 Firefox, 17, 29, 30 Fleetwood Mac, 113 Flickr, 82 foreign markets, Google’s share in, 25, 132–33, 141–45, 229n14 forgetting, of information, 174, 176–79 260 IND EX Foucault, Michel, 111, 112 founders, Google’s, 67, 156, 186–87, 202 France, 14, 25, 47, 115, 130, 142, 146, 153 Frankel, Max, 56 free market, 45, 46 free rider problem, 30–36, 166 free speech, 109, 110; in China, 120, 130, 131 free trade, 109 Froomkin, Michael, 245n54 Gandy, Oscar, 236n20 gang-related online video, 110 Ganley, Paul, 168, 169, 172 Gaukroger, Stephen, 149 Germany, 14, 25, 47, 65–66, 102, 108, 112, 113, 121, 122, 123, 130, 134, 142, 153 global civil society, 135, 138, 140, 141, 145, 148, 243–44n48 globalization, 108–10, 111, 146 Gmail, 3, 16, 19, 67, 86, 90, 129, 143, 183; Chinese dissidents’ use of, 116, 118; Iranian dissidents’ use of, 116; students’ use of, 197 “God,” search results for, 63–64 Google bombing (search-engine optimization), 66 Google Books: and antitrust laws, 153, 162; authors’ response to, 152, 153, 154, 156, 161, 162, 163, 173, 202; Chinese response to, 153; copyright issues raised by, 10, 155, 159–61, 163, 166–71, 172; European response to, 153; and fair use, 153, 160–61, 162, 165–66, 168–70, 172; fourfactor analysis of, 169; initial project of, 156–60; legal actions resulting from, 48, 154, 156, 160–62, 165–66, 168; libraries’ participation in, 17, 23, 152–53, 155, 158–60, 162–66, 169, 171, 186, 202, 203; and misapplication of Web standards to books, 152, 167, 171; noncommercial service preferable to, 169, 171–72; and out-of-print books, 153, 154, 156, 161–62, 171; and partner program, 157, 159; and privatization of knowledge, 152, 153, 155, 164–65; and public domain, 157, 158, 159; and public failure, 44, 155; public project preferred to, 203–4; publishers’ response to, 11, 17, 48, 152–54, 156–63, 165–68, 170–73, 202; and registered users, 183; and rights registry, 161, 162; and royalty payments, 161, 172, 173; universities’ participation in, 150–53, 155, 158, 162–65, 169, 171–72, 186 Google Checkout, 16 Google Docs, 24, 29 Google Earth, 17 Google headquarters, 49, 72, 187 Google Maps, 106, 107, 117 Googlemobiles, 98, 104–5 Google News, 32–35, 44, 78, 79, 148 Google Scholar, 186, 190–94 Google Street View, 17, 48, 98–108, 111, 237nn24,32 Google Voice, 16 Google Web Search.

pages: 426 words: 105,423

The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich by Timothy Ferriss


Albert Einstein, Amazon Mechanical Turk, call centre, clean water, Donald Trump,, Firefox, fixed income, follow your passion, game design, global village, Iridium satellite, knowledge worker, late fees, Maui Hawaii, oil shock, paper trading, Parkinson's law, passive income, peer-to-peer, pre–internet, Ralph Waldo Emerson, remote working, Richard Feynman, risk tolerance, Ronald Reagan, side project, Silicon Valley, Silicon Valley startup, Skype, Steve Jobs, Vilfredo Pareto, wage slave, William of Occam

Ask a well-informed colleague or a restaurant waiter, “Anything important happening in the world today? I couldn’t get the paper today.” Stop this as soon as you realize that the answer doesn’t affect your actions at all. Most people won’t even remember what they spent one to two hours absorbing that morning. Be strict with yourself. I can prescribe the medicine, but you need to take it. Download the Firefox web browser ( and use LeechBlock to block certain sites entirely for set periods. From their site ( You can specify up to six sets of sites to block, with different times and days for each set. You can block sites within fixed time periods (e.g., between 9am and 5pm), after a time limit (e.g., 10 minutes in every hour), or with a combination of time periods and time limit (e.g., 10 minutes in every hour between 9am and 5pm).

To come up with related terms and derivative terms, both use search term suggestion tools. Google Adwords Keyword Tool ( Enter the potential search terms to find search volume and alternative terms with more search traffic. Click on the “Approx Avg Search Volume” column to sort results from most to least searched. SEOBook Keyword Tool, SEO for Firefox Extension ( This is an outstanding resource page with searches powered by Wordtracker ( Both then visit the three websites that consistently appear in top search and PPC positions. How can Sherwood and Johanna differentiate themselves? Use more credibility indicators? (media, academia, associations, and testimonials) Create a better guarantee?

Introduction to Pay-Per-Click (PPC) Advertising and Testing Google Adwords ( Market Sizing and Keyword Suggestion Tools Brainstorm additional PPC search terms and determine the number of people who are searching for them. Google Adwords Keyword Tool ( Enter the potential search terms to find search volume and alternative terms with more search traffic. Click on the “Approx Avg Search Volume” column to sort results from most to least searched. SEOBook Keyword Tool, SEO for Firefox Extension ( Outstanding resource page with searches powered by Wordtracker ( Low-Cost Domain Registration Domains in Seconds ( I have registered more than 100 domains through this service. Joker ( GoDaddy ( Inexpensive but Dependable Hosting Services Shared hosting solutions, where your site is hosted alongside other sites on a single server, are so cheap that I recommend using two providers, one as a primary and one as a backup.

pages: 180 words: 37,187

AngularJS Essentials by Rodrigo Branas


Firefox, MVC pattern, node package manager, single page application, web application

Chapter 8, Automating the Workflow, discusses how we will create an optimized distribution package for our application using Grunt and its plugins. Also, we will discover how to manage our dependencies with Bower. What you need for this book To implement the code in this book, you will need to use your favorite development interface and a web browser. I would recommend sublime text, but you may use Aptana (which is based on Eclipse), WebStorm, or any other IDE. AngularJS is compatible with the most browsers such as Firefox, Chrome, Safari, and Internet Explorer. Feel free to choose the one you are used to. Who this book is for If you have a passion for web development and are looking for a framework that could provide a reusable, maintainable, and modular way to create applications, and at the same time, help increase your productivity and satisfaction, this is the book for you. Conventions In this book, you will find a number of styles of text that distinguish between different kinds of information.

The best way to create it is by following the configuration wizard through the following command: karma init Karma's configurator will be shown, and you just have to follow the instructions in order to generate your configuration file. The first question will be regarding the testing framework you would like to use. Karma supports Mocha and QUnit beyond Jasmine. After that, it will ask you about RequireJS, adding it depending on our answer. Then, you will be asked a question about which browser you want to use. There are many options such as Chrome, Firefox, Opera, Safari, IE, and even PhantomJS. Take care of the next question about the location of each source and test file. You should place it in the correct order, otherwise you can have some trouble. For our application, the best strategy to adopt is to follow the code organization that we studied in Chapter 1, Getting Started with AngularJS. After this, you could exclude the files that you don't want to test.

Simple and Usable Web, Mobile, and Interaction Design by Giles Colborne

call centre, Firefox, HyperCard, Menlo Park, slashdot, Steve Jobs, Steven Levy

Eliminate redundancies. Don’t say “on a daily basis” when “daily” means the same thing. These rules make text clearer, more persuasive, and shorter. For example: Please note that although Chrome is supported for both Mac and Windows operating systems, it is recommended that all users of this site switch to the most up-to-date version of the Firefox web browser for the best possible results. (41 words) Simplified version: For best results, use the latest version of Firefox. Chrome for Mac and Windows is also supported. (17 words) Use Lanham’s rules to remove the words that pad your sentences. DDB UK’s advertisement for Volkswagen in the UK shows just how much you can cut. emove Download from Download from Removing too much In the Apple Store in Tokyo you’ll find a remarkable glass elevator, finished in Apple’s trademark brushed aluminum.

Python Web Development With Django by Jeff Forcier


create, read, update, delete, database schema, Debian, don't repeat yourself,, Firefox, full text search, Guido van Rossum, loose coupling, MVC pattern, revision control, Ruby on Rails, Silicon Valley, slashdot, web application

Selenium RC ( gives its users the ability to create full-fledged automated tests in a variety of programming languages.You write your test apps; they are run by Selenium Core—you can think of it as a scripting layer that sits on top of the Core, a “code mode” if you will. A great tool to get started with Selenium is the IDE (see http://selenium-ide.openqa. org/). It’s written as a Firefox extension and is a full IDE that enables you to record and play back Web sessions as tests. It can also output tests in any of the languages supported by Selenium RC, so you can further enhance or modify those tests.You can set breakpoints as well as single-step through tests. Because it’s written on Firefox, one common FAQ is whether it exists for Internet Explorer (IE).The answer is no; however, the “record mode” of the IDE enables you to run them on IE via Selenium Core. Aside from these three tools—the Django test client,Twill, and Selenium, you can find more reading on Web application testing at html#test and by following links found therein.

Software Link Subversion Trac Mailman Markdown Markdown-Python wtables make TextMate Vim Ghostscript html2ps Firefox Ubuntu FreeBSD Colophon Software Link Macports Python Django The Netherlands is also the birthplace of Guido van Rossum, creator of the Python language. Django, too, serves as a bridge connecting the potentially wild world of Web application development to everyday people who want to publish online without having to worry about writing complex server code, SQL statements, or what “MVC” stands for. 377 This page intentionally left blank Additional Resources for Mastering Python Core Python Programming The complete developer’s guide to Python!

Conventions Throughout this book, we use bold to introduce new or important terms, italics for emphasis, http://links/ for URLs, and monospacing to delineate Python and command line material such as variable names or commands. Multiline blocks of code or command examples are in monospaced blocks, like so: >>> print “This is Python!” This is Python! We have made use of all three major platforms—Mac OS X, Linux, and Windows— when writing this book and the example applications. In addition, we’ve used all major browsers (although not all may be present in our screenshots), namely Firefox, Safari, Opera, and Internet Explorer. Book Resources You can contact the authors collectively at Our Web site,, contains a large amount of auxiliary material and is referenced in a number of places throughout the book. Acknowledgments My name may have ended up first in the author list, but this book wouldn’t be here without the effort and dedication of the other two.

Making Globalization Work by Joseph E. Stiglitz


affirmative action, Andrei Shleifer, Asian financial crisis, banking crisis, barriers to entry, Berlin Wall, business process, capital controls, central bank independence, corporate governance, corporate social responsibility, currency manipulation / currency intervention, Doha Development Round, Exxon Valdez, Fall of the Berlin Wall, Firefox, full employment, Gini coefficient, global reserve currency, Gunnar Myrdal, happiness index / gross national happiness, illegal immigration, income inequality, income per capita, incomplete markets, Indoor air pollution, informal economy, information asymmetry, Intergovernmental Panel on Climate Change (IPCC), inventory management, invisible hand, John Markoff, Kenneth Arrow, Kenneth Rogoff, low skilled workers, manufacturing employment, market fundamentalism, Martin Wolf, microcredit, moral hazard, North Sea oil, offshore financial centre, oil rush, open borders, open economy, price stability, profit maximization, purchasing power parity, quantitative trading / quantitative finance, race to the bottom, reserve currency, rising living standards, risk tolerance, Silicon Valley, special drawing rights, statistical model, the market place, The Wealth of Nations by Adam Smith, Thomas L Friedman, trade liberalization, trickle-down economics, union organizing, Washington Consensus, zero-sum game

Even a dedicated scientist needs a laboratory, and laboratories are expensive. The monopoly profits arising from intellectual property provide an alternative source of funding, one that has some large costs for society, which have to be weighed against the benefits. The Firefox browser was written as part of the Mozilla project. The project produces open source software and is supported by the Mozilla Foundation, which received start-up support from AOlis Netscape division. (More information available at As of March 2006, eighteen months after its launch, Mozilla Firefox was estimated to have 10 percent of the market. See Antony Savvas, "Firefox Reaches One in Ten,", April 5, 2006, at ten.htm. President Jefferson, who as secretary of state was one of the original drafters of the 1793 Patent Act, envisioned patents being granted only to physical, useful inventions.

Today we have the Linux computer operating system, which is also based on the principle of open architecture. Everyone who participates is required to accept that it is an open source, a dynamic program that is being constantly improved by thousands of users. A free, viable alternative to Microsoft's operating system, it is expanding rapidly, especially in developing countries. An offshoot of Linux, the browser Mozilla Firefox, has been growing even faster. Not only is it free, but it seems to be less subject to the security problems that have plagued Microsoft's Internet browser.' The worry is that inevitably Linux will encroach on one of the hundreds of thousands of patents that have been granted, and the holder of the patent will attempt to hold the entire Linux system up for ransom. Even if the patent is eventually shown not to be valid, the economic costs can be enormous, as Research In Motion (the company that makes the BlackBerry) found out as it was forced to pay over $600 million, not to the inventor, but to a company that had obtained the patent on the cheap—a patent that had already been disqualified in Germany and the U.K.

Gregory, 270 manufacturing, xi, 25, 32, 77 maquiladora factories, 65 market economy, xi-xii, xiii, 273, 277 according to Smith, 189-90 forms of, xv, 9-10 managed, 26-27 unemployment and, 273 market efficiency, x market failures, 190, 296n-97n market fundamentalism, xiii, xiv, 29-30, 35, 48, 293n markets, 47 balance between government and, xv 351 as center of successful economy, 27 economic efficiencies and, xiii, xiv, xvi, 29 as factor in growth, 48 limitations of, xii, xiv undermined by extensive patents, 109 Marshall, Alfred, 326n materialism, 188-89 mathematics, patents and, 113-14 Mauritania, 331n Mauritius, 303n Maximilian, Archduke of Austria, 214 Medicare drug benefits, 191 Menem, Carlos, 221 Mengistu Haile Mariam, 229 Metaclad, 130 "me-too" drugs, 313n, 317n Mexico, 6, 46, 91, 92, 134, 152, 214, 308n air pollution in, 164 economic crisis of, 233 employment in, 65 growth in, 64 NAFTA and, 61-62, 64-66, 197, 285, 300n, 301n, 302n remittances to, 89 tomato exports from, 64-65 wages in, 65 micro-loans, 51-53 Microsoft, 58, 109, 111, 112, 191, 202-3, 279, 312n-13n Middle East, 104, 134, 136, 137 Millennium Development Goals, 14, 249, 267, 295n, 336n Millennium Summit, 14, 99 mining industry, 141, 143, 194, 195, 199, 206 Mkapa, Benjamin W, 8, 41 Mobutu Sese Seko, 136, 229 Moldova, 40, 211, 212, 218, 225, 227 Mongolia, 40 monopolies, 58, 92, 311n and economic inefficiency, 107-8 enforcement of competition policy on, 204 global approach needed for, 201, 202-3 globalization of, 200-203 as greater threat to development than developed nations, 119 innovation reduced by, 109, 202 legal oversight of, 200, 201, 202-3 of prices in pharmaceutical industry, 120 technology and, 58 Monsanto, 187 Monterrey, Mexico, 99, 287 352 INDEX Monti, Mario, 201 Montreal Protocol (1987), 168, 176 "moral hazard" problem, 217 morality, as irrelevant in Smith an economics, 189-90 Morocco, 97, 103-4, 130, 310n most favored nation principle, 75, 82 Mozambique, 331 n Mozilla Firefox, 112, 314n multifiber agreement, 305n multinational corporations, see corporations Mumbai, India, 3, 6-7, 275 Museveni, Yoweri, 41 Myrdal, Gunnar, 30 Myriad, 114, 314n Napoleon III, Emperor of France, 214 National Institutes of Health, 113-14, 317n nation-state, 19-24 natural resources, 149, 153 managing use of, 54-55 see also resource-rich countries; specific resources Nayaar, Deepak, 4 neem tree, 126-27 Nestle, 187 Netherlands, 111, 139, 148, 295n Netscape, 58, 109, 202, 314n networking, 5 new drug applications (NDAs), 313n Newfoundland, 214 New Zealand, 78, 93, 319n Nicaragua, 307n, 331n Niger, 331n Nigeria, 40, 41, 55, 136, 148, 198, 320n, 324n debt of, 229, 234-35 oil in, 134, 135, 146 Nike, 198 Nobel, Alfred, 133 Nobel Prize, x, xii nonagricultural market access (NAMA), 307n nonmarket economies, 92 nontariff barriers, 64, 90-96, 129-31 North American Free Trade Agreement (NAFTA), 61-62, 64-66, 76, 130-31, 197, 270, 285, 300n, 301n, 302n North Korea, 178 Norway, 85, 91, 149-50, 169, 295n Novartis, 127, 318n nuclear proliferation, 266. 325n odious debt, 228-31, 241, 242, 331n Office of Science and Technology Policy, 116 Office of the U.S.

Exploring ES6 - Upgrade to the next version of JavaScript by Axel Rauschmayer


anti-pattern, domain-specific language,, Firefox, Google Chrome, MVC pattern, web application, WebSocket

x\uD83D\uDE80y'].length 3 7.4.3 Reversing strings with non-BMP code points Iteration also helps with reversing strings that contain non-BMP code points (which are larger than 16 bit and encoded as two JavaScript characters): 79 New string features let str = 'x\uD83D\uDE80y'; // ES5: \uD83D\uDE80 are (incorrectly) reversed console.log(str.split('').reverse().join('')); // 'y\uDE80\uD83Dx' // ES6: order of \uD83D\uDE80 is preserved console.log([...str].reverse().join('')); // 'y\uD83D\uDE80x' The two reversed strings in the Firefox console. Remaining problem: combining marks A combining mark is a sequence of two Unicode code points that is displayed as single symbol. The ES6 approach to reversing a string that I have presented here works for nonBMP code points, but not for combining marks. For those, you need a library, e.g. Mathias Bynens’ Esrever¹. 7.5 Numeric values of code points The new method codePointAt() returns the numeric value of a code point at a given index in a string: let str = 'x\uD83D\uDE80y'; console.log(str.codePointAt(0).toString(16)); // 78 console.log(str.codePointAt(1).toString(16)); // 1f680 console.log(str.codePointAt(3).toString(16)); // 79 This method works well when combined with iteration over strings: ¹ New string features 80 for (let ch of 'x\uD83D\uDE80y') { console.log(ch.codePointAt(0).toString(16)); } // Output: // 78 // 1f680 // 79 The opposite of codePointAt() is String.fromCodePoint(): > String.fromCodePoint(0x78, 0x1f680, 0x79) === 'x\uD83D\uDE80y' true 7.6 Checking for containment and repeating strings Three new methods check whether a string exists within another string: > 'hello'.startsWith('hell') true > 'hello'.endsWith('ello') true > 'hello'.includes('ell') true Each of these methods has a position as an optional second parameter, which specifies where the string to be searched starts or ends: > 'hello'.startsWith('ello', 1) true > 'hello'.endsWith('hell', 4) true > 'hello'.includes('ell', 1) true > 'hello'.includes('ell', 2) false The repeat() method repeats strings: New string features 81 > 'doo '.repeat(3) 'doo doo doo ' 7.7 All new string methods Tagged templates: • String.raw(callSite, ...substitutions) : string Template tag for “raw” content (backslashes are not interpreted).

In libraries, you can usually avoid cyclic dependencies via careful design. In a large system, though, they can happen, especially during refactoring. Then it is very useful if a module system supports them, because the system doesn’t break while you are refactoring. The Node.js documentation acknowledges the importance of cyclic dependencies³⁶ and Rob Sayre provides additional evidence³⁷: Data point: I once implemented a system like [ECMAScript 6 modules] for Firefox. I got asked³⁸ for cyclic dependency support 3 weeks after shipping. That system that Alex Fritze invented and I worked on is not perfect, and the syntax isn’t very pretty. But it’s still getting used³⁹ 7 years later, so it must have gotten something right. ³⁵ ³⁶ ³⁷ ³⁸

It has the signature: setTimeout(callback, ms) After ms milliseconds, callback is added to the task queue. It is important to note that ms only specifies when the callback is added, not when it actually executed. That may happen much later, especially if the event loop is blocked (as demonstrated later in this chapter). setTimeout() with ms set to zero is a commonly used work-around to add something to the task queue right away. However, some browsers do not allow ms to be below a minimum (4 ms in Firefox); they set it to that minimum if it is. ² Asynchronous programming (background) 435 24.2.2 Displaying DOM changes For most DOM changes (especially those involving a re-layout), the display isn’t updated right away. “Layout happens off a refresh tick every 16ms” (@bz_moz³) and must be given a chance to run via the event loop. There are ways to coordinate frequent DOM updates with the browser, to avoid clashing with its layout rhythm.

pages: 319 words: 72,969

Nginx HTTP Server Second Edition by Clement Nedelcu


Debian, fault tolerance, Firefox, Google Chrome, Ruby on Rails, web application

Either way, the backend server (a FastCGI application, another web server, and so on) may be hosted on a different server in the case of load-balanced architectures: Forwards request via FastCGI Sends request GET/ index.html HTTP/1.1 F orwards response Client Mozilla Firefox Returns response Web server Nginx Backend PHP The general issue with applications (such as PHP) is that they are quite resource-consuming, especially in terms of CPU. Therefore, you may find yourself forced to balance the load across multiple servers, resulting in the following architecture: [ 174 ] Chapter 5 Backend1 PHP Sends request GET/ index.html HTTP/1.1 Forwards request to one of the backends Forwards response Client Mozilla Firefox Web server Nginx Backend2 PHP Selected backend sends response Backend3 PHP In this case, Nginx is connected to multiple backend servers. To establish such a configuration, a new module comes into play: the upstream module.

Client computer Web server Sends request GET/ index.html HTTP/1.1 Sends response Process request Reads / index.html data HTTP/1.0 200 OK This mechanism has been in use since the beginning of the World Wide Web and it still is. However, as stated before, static websites are being progressively abandoned at the expense of dynamic ones that contain scripts that are processed by applications such as PHP and Python among others. The web serving mechanism thus evolved into the following: Client computer MSIE, Firefox, ... Web server Nginx, Apache, ... Application PHP, Phython, ... Sends request GET/ index.html HTTP/1.1 Pre-processes request URL rewriting, internal redirects... F orwards request Communicates using CGI Returns response Communicates using CGI Post- processes response Gzip compression, character encoding Sends response HTTP/1.0 200 OK [ 160 ] Processes request Script parsing ...

Learning Node.js: A Hands-On Guide to Building Web Applications in JavaScript by Marc Wandschneider


database schema,, Firefox, Google Chrome, node package manager, telemarketer, web application

Modern versions of web browsers are cleaning up their implementations of it and adding in new features to make it more powerful and less quirky. With the advent of client libraries for these browsers, such as jQuery,, or Prototype, programming in JavaScript has become fun and productive. Unwieldy APIs have been cleaned up, and fun, dynamic effects have been added. At the same time, a new generation of browser competition has erupted, with Google’s Chrome, Mozilla’s Firefox, Apple’s Safari, and Microsoft’s Internet Explorer all vying for the crown of browser king. As part of this, all these companies are investing heavily in the JavaScript portion of these systems as modern web applications continue to grow ever-more dynamic and script-based. In particular, Google Chrome’s V8 JavaScript runtime is particularly fast and also open-sourced for use by anybody. With all these things in place, the opportunity arose for somebody to come along with a new approach to network (web) application development.

You can also examine incoming headers by looking at the headers property. If you look at the headers the curl program sends to you, you see { 'user-agent': 'curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5', host: 'localhost:8080', accept: '*/*' } If you call the JSON server in the browser, you see something like { host: 'localhost:8080', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0', accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'accept-language': 'en-US,en;q=0.5', 'accept-encoding': 'gzip, deflate', connection: 'keep-alive' } Increased Flexibility: GET Params On the response side, you have already used two methods: writeHead and end. You must call end on the response object once and only once for each incoming request. Otherwise, the client never gets the response and continues to listen on the connection for more data.

The big thing this file does is use the FormData extension to the XmlHttpRequest object to allow Ajax file uploads, as shown here: $("input#submit_button").click(function (e) { var m = new Date(); var dateString = /* process m -- see GitHub */ $("input#date").val(dateString); var oOutput = document.getElementById("output"); var oData = new FormData(document.forms.namedItem("add_photo")); Recapping the App Structure var oReq = new XMLHttpRequest(); var url = "/v1/albums/" + $("#albumid").val() + "/photos.json";"PUT", url, true); oReq.onload = function(oEvent) { if (oReq.status == 200) { oOutput.innerHTML = "\ Uploaded! Continue adding or <a href='/pages/album/" + $("#albumid").val() + "'>View Album</a>"; } else { oOutput.innerHTML = "\ Error " + oReq.status + " occurred uploading your file.<br \/>"; } }; oReq.send(oData); }); FormData is powerful and awesome but is not supported in Internet Explorer (IE) versions prior to 10. Firefox, Chrome, and Safari have all supported it for quite a while. If you need to support older IE browsers, you need to look at other methods for uploading files, such as using Flash or otherwise regular old HTML Forms. Recapping the App Structure The application has gotten a bit more complicated; it is worth spending a few seconds again covering exactly how you’ve structured it. You’ve moved all static content into the static/ folder and the code into the app/ folder, so you now have the following basic layout: The static/ folder contains the following sub-folders: ■ ■ ■ albums/—Contents of our albums and their image files content/—Contains stylesheets and JavaScript bootstrapping files needed to render the page templates templates/—The HTML templates for rendering pages in the client browser In the app/ folder, you have: ■ .

pages: 398 words: 120,801

Little Brother by Cory Doctorow


airport security, Bayesian statistics, Berlin Wall, citizen journalism, Firefox, game design, Golden Gate Park, Haight Ashbury, Internet Archive, Isaac Newton, Jane Jacobs, Jeff Bezos, mail merge, RFID, Sand Hill Road, Silicon Valley, slashdot, Steve Jobs, Steve Wozniak, Thomas Bayes, web of trust, zero day

It was a locked-down spyware version of Internet Explorer, Microsoft's crashware turd that no one under the age of 40 used voluntarily. I had a copy of Firefox on the USB drive built into my watch, but that wasn't enough -- the SchoolBook ran Windows Vista4Schools, an antique operating system designed to give school administrators the illusion that they controlled the programs their students could run. But Vista4Schools is its own worst enemy. There are a lot of programs that Vista4Schools doesn't want you to be able to shut down -- keyloggers, censorware -- and these programs run in a special mode that makes them invisible to the system. You can't quit them because you can't even see they're there. Any program whose name starts with $SYS$ is invisible to the operating system. It doesn't show up on listings of the hard drive, nor in the process monitor. So my copy of Firefox was called $SYS$Firefox -- and as I launched it, it became invisible to Windows, and so invisible to the network's snoopware.

There are millions of nodes -- the program was set up by the US Office of Naval Research to help their people get around the censorware in countries like Syria and China, which means that it's perfectly designed for operating in the confines of an average American high school. TOR works because the school has a finite blacklist of naughty addresses we aren't allowed to visit, and the addresses of the nodes change all the time -- no way could the school keep track of them all. Firefox and TOR together made me into the invisible man, impervious to Board of Ed snooping, free to check out the Harajuku FM site and see what was up. There it was, a new clue. Like all Harajuku Fun Madness clues, it had a physical, online and mental component. The online component was a puzzle you had to solve, one that required you to research the answers to a bunch of obscure questions. This batch included a bunch of questions on the plots in dojinshi -- those are comic books drawn by fans of manga, Japanese comics.

pages: 629 words: 142,393

The Future of the Internet: And How to Stop It by Jonathan Zittrain


A Declaration of the Independence of Cyberspace, Amazon Mechanical Turk, Andy Kessler, barriers to entry, book scanning, Brewster Kahle, Burning Man,, call centre, Cass Sunstein, citizen journalism, Clayton Christensen, clean water, commoditize, corporate governance, Daniel Kahneman / Amos Tversky, distributed generation,, Firefox, game design, Hacker Ethic, Howard Rheingold, Hush-A-Phone, illegal immigration, index card, informal economy, Internet Archive, jimmy wales, John Markoff, license plate recognition, loose coupling, mail merge, national security letter, old-boy network, packet switching, peer-to-peer, Post-materialism, post-materialism, pre–internet, price discrimination, profit maximization, Ralph Nader, RFC: Request For Comment, RFID, Richard Stallman, Richard Thaler, risk tolerance, Robert Bork, Robert X Cringely, SETI@home, Silicon Valley, Skype, slashdot, software patent, Steve Ballmer, Steve Jobs, Ted Nelson, Telecommunications Act of 1996, The Nature of the Firm, The Wisdom of Crowds, web application, wikimedia commons, zero-sum game

BEYOND BUGS: THE GENERATIVE DILEMMA The burgeoning gray zone of software explains why the most common responses to the security problem cannot solve it. Many technologically savvy people think that bad code is simply a Microsoft Windows issue. They believe that the Windows OS and the Internet Explorer browser are particularly poorly designed, and that “better” counterparts (Linux and Mac OS, or the Firefox and Opera browsers) can help protect a user. This is not much added protection. Not only do these alternative OSes and browsers have their own vulnerabilities, but the fundamental problem is that the point of a PC—regardless of its OS—is that its users can easily reconfigure it to run new software from anywhere. When users make poor decisions about what new software to run, the results can be devastating to their machines and, if they are connected to the Internet, to countless others’ machines as well.

The principles and factual assumptions that animate network neutrality— that the network has been operated in a particular socially beneficial way and that, especially in the absence of effective competition, it should stay that way—can also apply to Internet services that solicit mash-ups from third-party programmers described in Chapter Five, like Google Maps or Facebook, while makers of pure tethered appliances such as TiVo may do as they please. Those who offer open APIs on the Net in an attempt to harness the generative cycle ought to remain application-neutral after their efforts have succeeded, so all those who have built on top of their interfaces can continue to do so on equal terms. If Microsoft retroactively changed Windows to prevent WordPerfect or Firefox from running, it would answer under the antitrust laws and perhaps also in tort for intentional interference with the relationship between the independent software makers and their consumers.39 Similarly, providers of open APIs to their services can be required to commit to neutral offerings of them, at least when they have reached a position of market dominance for that particular service. Skeptics may object that these relations can be governed by market forces, and if an open API is advertised as contingent, then those who build on it are on notice and can choose to ignore the invitation if they do not like the prospect that it can be withdrawn at any moment.

See Netscape Public License: Version 1.0, (last visited May 16, 2007); see also NETSCAPE, NETSCAPE COMMUNICATOR OPEN SOURCE CODE WHITE PAPER (2000), available at browsers/future/whitepaper.html. This process marked the beginning of the Mozilla open source project. Today, the commercial imperative no longer exists; however, one of the most common Internet browsers, Mozilla Firefox, and a leading e-mail client, Mozilla Thunderbird, have their genesis in this process. Another example is, a set of freely available Microsoft Office—style applications, which is based on proprietary code released by its owners, Sun. Users continue to develop, which is freely available, while Sun markets the “StarOffice Office Suite,” a “professional office productivity solution based on that provides enterprise value-add components including administration tools, commercial quality spellchecker and relational database.”

pages: 465 words: 109,653

Free Ride by Robert Levine


A Declaration of the Independence of Cyberspace, Anne Wojcicki, book scanning, borderless world, Buckminster Fuller, citizen journalism, commoditize, correlation does not imply causation, creative destruction, crowdsourcing, death of newspapers, Edward Lloyd's coffeehouse, Electric Kool-Aid Acid Test, Firefox, future of journalism, Googley, Hacker Ethic, informal economy, Jaron Lanier, Julian Assange,, Kevin Kelly, linear programming, Marc Andreessen, moral panic, offshore financial centre,, publish or perish, race to the bottom, Saturday Night Live, Silicon Valley, Silicon Valley startup, Skype, spectrum auction, Steve Jobs, Steven Levy, Stewart Brand, subscription business, Telecommunications Act of 1996, Whole Earth Catalog, WikiLeaks

“And we’re going to get paid properly for it, or else we’re not going to do it.”30 Some technology pundits suggested the networks were being unreasonable, since—from a technology standpoint—Google TV worked much like any other browser. Since networks made video freely available for Firefox, shouldn’t the same rules apply to Google TV? In October 2010, TechCrunch dismissed their “various timeworn concerns such as lack of a viable business model.”31 Oh, that again. There’s also an important difference between Firefox and Google TV: the latter will presumably sell advertising. So far, Google hasn’t said much about how it plans to make money on Google TV. But the company gets most of its revenue from running ads against search queries, and there’s no reason that wouldn’t work on a screen that happens to sit in front of a couch instead of on top of a desk.

Safra Foundation Center for Ethics Eircom, 9.1, 9.2 Eisner, Michael Eldred, Eric, 3.1, 3.2 Electronic Frontier Foundation (EFF), itr.1, 1.1, 2.1, 3.1, 3.2, 9.1, 9.2, 9.3, 10.1, 10.2, 10.3, 10.4 electronics industry, 1.1, 1.2, 1.3, 2.1, 7.1 e-mail, 1.1, 2.1, 3.1, 3.2, 3.3, 4.1, 8.1, 10.1 EMI Music Group, itr.1, 2.1, 2.2, 2.3, 2.4 Eminem, 2.1, 10.1 Espinel, Victoria, 10.1, 10.2 ESPN, 5.1, 5.2, 5.3 Europeana European Commission, 8.1, 8.2, 8.3, 8.4, 8.5, 10.1 European Parliament, 8.1, 8.2 European Union (EU), 2.1, 8.1, 8.2, 8.3, 9.1, 9.2 Facebook, 3.1, 4.1, 6.1, 7.1, 10.1 fair use, 1.1, 3.1, 3.2, 3.3, 3.4, 6.1, 6.2, 8.1, 9.1, 10.1, 10.2 Fair Use Project Fanning, John Fanning, Shawn, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6 Fast Track Federal Communications Commission (FCC), 5.1, 5.2, 10.1, 10.2 Ferrara, Geri file-sharing services, itr.1, itr.2, itr.3, itr.4, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 5.1, 5.2, 7.1, 7.2, 7.3, 7.4, 8.1, 8.2, 8.3, 8.4, 8.5, 9.1, 9.2, 10.1, 10.2, 10.3, 10.4, 10.5 film industry, itr.1, itr.2, itr.3, itr.4, 1.1, 1.2, 1.3, 1.4, 1.5, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 6.1, 6.2, 7.1, 8.1, 8.2, 9.1, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7 filtering technology, 3.1, 7.1, 10.1, 10.2 financial crisis (2008), 4.1, 4.2, 4.3 Financial Interest and Syndication Rules (“fin-syn”) Financial Times, itr.1, 4.1, 4.2 Firefox First Amendment, 3.1, 3.2, 3.3, 8.1, 10.1 Fisher, William W. “Terry,” III, 9.1, 9.2, 9.3 Fitzgerald, Patricia Fortune Fox Entertainment Group, 4.1, 5.1, 7.1 Fox News, 4.1, 5.1, 5.2, 5.3, 5.4, 9.1 France, 1.1, 3.1, 8.1, 8.2, 8.3, 9.1, 9.2, 9.3 Frankfurt Book Fair, 8.1, 8.2 Franklin, Aretha, 2.1, 7.1 Free (Anderson) Free Culture (Lessig), 3.1, 3.2 Freedom of Information Act, 3.1, 3.2 “free-riding” free speech, itr.1, 1.1, 1.2, 1.3, 3.1, 3.2, 3.3, 3.4, 3.5, 4.1, 8.1, 8.2, 10.1, 10.2 Fricklas, Michael, 3.1, 3.2 Friedman, Roger Friends, itr.1, 7.1 Future of the Internet and How to Stop It, The (Zittrain) Galuten, Albhy Garland, Eric Geffen Records GEMA, 7.1, 9.1 German National Library Germany, 6.1, 7.1, 7.2, 7.3, 8.1, 8.2, 8.3, 9.1 Get a Grip GigaOM, itr.1, 5.1 Ginsburg, Ruth Bader Global Repertoire Database Working Group Gnutella Godin, Seth Goldberg, Danny, 2.1, 2.2, 2.3, 3.1 Gomez, Jean-Jacques, 8.1, 8.2 Goodman, Peter Google, itr.1, itr.2, itr.3, itr.4, itr.5, 1.1, 3.1, 3.2, 3.3, 3.4, 3.5, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 5.1, 5.2, 5.3, 6.1, 7.1, 7.2, 7.3, 7.4, 8.1, 8.2, 9.1, 9.2, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6 Google Books settlement, 6.1, 8.1, 8.2, 10.1, 10.2 Googled (Auletta) Google TV, 5.1, 5.2, 5.3, 5.4, 5.5, 7.1, 10.1, 10.2, 10.3 Google Video Gore, Al, itr.1, 1.1, 1.2 Government Accountability Office, U.S.

pages: 349 words: 114,038

Culture & Empire: Digital Revolution by Pieter Hintjens


4chan, airport security, anti-communist, anti-pattern, barriers to entry, Bill Duvall, bitcoin, blockchain, business climate, business intelligence, business process, Chelsea Manning, clean water, commoditize, congestion charging, Corn Laws, correlation does not imply causation, cryptocurrency, Debian, Edward Snowden, failed state, financial independence, Firefox, full text search, German hyperinflation, global village, GnuPG, Google Chrome, greed is good, Hernando de Soto, hiring and firing, informal economy, intangible asset, invisible hand, James Watt: steam engine, Jeff Rulifson, Julian Assange, Kickstarter, M-Pesa, mass immigration, mass incarceration, mega-rich, mutually assured destruction, Naomi Klein, national security letter, new economy, New Urbanism, Occupy movement, offshore financial centre, packet switching, patent troll, peak oil, pre–internet, private military company, race to the bottom, rent-seeking, reserve currency, RFC: Request For Comment, Richard Feynman, Richard Feynman, Richard Stallman, Satoshi Nakamoto, security theater, selection bias, Skype, slashdot, software patent, spectrum auction, Steve Crocker, Steve Jobs, Steven Pinker, Stuxnet, The Wealth of Nations by Adam Smith, The Wisdom of Crowds, trade route, transaction costs, union organizing, wealth creators, web application, WikiLeaks, Y2K, zero day, Zipf's Law

I've said before that conflicting missions can be a problem. The best answer I know is to turn the conflict into competition. In software, we do this by making standards that teams can build on. Take for example the HTTP standard that powers the web. Any team can build a web server or a web browser. This lets teams compete. So Google's Chrome browser emerged as a lightweight, faster alternative to Firefox, which was getting bloated and slow. Then, the Firefox team took performance seriously, and now Firefox is faster than Chrome. TIP: When there is an interesting problem, try to get multiple teams competing to solve it. Competition is great fun and can produce better answers than monopolized problems. You can even explicitly create competitions with prizes for the best solutions. Measurable Success It's all very well to try to turn conflict into competition.

pages: 459 words: 103,153

Adapt: Why Success Always Starts With Failure by Tim Harford


Andrew Wiles, banking crisis, Basel III, Berlin Wall, Bernie Madoff, Black Swan, car-free, carbon footprint, Cass Sunstein, charter city, Clayton Christensen, clean water, cloud computing, cognitive dissonance, complexity theory, corporate governance, correlation does not imply causation, creative destruction, credit crunch, Credit Default Swap, crowdsourcing, cuban missile crisis, Daniel Kahneman / Amos Tversky, Dava Sobel, Deep Water Horizon, Deng Xiaoping, double entry bookkeeping, Edmond Halley,, Erik Brynjolfsson, experimental subject, Fall of the Berlin Wall, Fermat's Last Theorem, Firefox, food miles, Gerolamo Cardano, global supply chain, Intergovernmental Panel on Climate Change (IPCC), Isaac Newton, Jane Jacobs, Jarndyce and Jarndyce, Jarndyce and Jarndyce, John Harrison: Longitude, knowledge worker, loose coupling, Martin Wolf, mass immigration, Menlo Park, Mikhail Gorbachev, mutually assured destruction, Netflix Prize, New Urbanism, Nick Leeson, PageRank, Piper Alpha, profit motive, Richard Florida, Richard Thaler, rolodex, Shenzhen was a fishing village, Silicon Valley, Silicon Valley startup, South China Sea, special economic zone, spectrum auction, Steve Jobs, supply-chain management, the market place, The Wisdom of Crowds, too big to fail, trade route, Tyler Cowen: Great Stagnation, web application, X Prize, zero-sum game

These are lessons that some engineers – both petroleum engineers and financial engineers – seem to have to learn again and again. Seven The adapti ve organisation ‘One doesn’t have to be a Marxist to be awed by the scale and success of early-20th-century efforts to transform strong-willed human beings into docile employees.’ – Gary Hamel ‘Your first try will be wrong. Budget and design for it.’ – Aza Raskin, designer at Firefox 1 Adapting as we go along When John Endler first studied guppies in the streams of Venezuela and Trinidad in the 1970s, he noticed an intriguing pattern: guppies in the pools at the bottom of waterfalls tended to be rather drab, while those in pools further upsream were eye-catchingly gaudy. Endler suspected the likely cause of the difference: while guppies were able to swim upstream past the waterfalls, the voracious guppy-eating pike cichlid could not, so the upper pools were cichlid-free.

Peer monitoring is closely associated with the virtual world: it’s the fundamental building block of Google’s search algorithm (giving weight to how popular a site is with other sites), phenomena like eBay (which relies on buyers and sellers rating each other’s reliability) and Wikipedia (in which anyone can edit anyone else’s articles), and the open-source software movement which has delivered such successes as Firefox and Apache. But as Timpson shows, it’s applicable far behind the cutting edge of crowd-sourced technology. I witnessed a striking example of peer monitoring on my visit to the Hinkley B nuclear power station. I’d just received a briefing on Hinkley’s safety culture from Peter Higginson, an avuncular physicist from Shropshire who was responsible for the safety of Hinkley’s two massive advanced gas-cooled reactors.

., 260 Elizabeth House (Waterloo), 170–1, 172 Endler, John, 221–2, 223, 234, 239 Engineers Without Borders, 119 Enron, 197–8, 200, 208, 210 environmental issues: biofuels, 84, 173, 176; clean energy, 91, 94, 96, 245–6; corporations/companies and, 159, 161, 165, 170–1, 172–3; renewable energy technology, 84, 91, 96, 130, 168, 169–73, 179, 245; see also climate change Equity Funding Corporation, 212 Ernst and Young, 199 errors and mistakes, types of, 208–10; latent errors, 209–10, 215, 218, 220 European Bank for Reconstruction and Development (EBRD), 188 European Union, 169, 173 Evans, Martin, 100 evolutionary theory, 6, 12–13, 15–17, 174, 258; business world and, 14–17, 174–5, 233–4; Darwin and, 86; digital world and, 13–14, 259–60; economics and, 14–17, 174–5; Endler’s guppy experiments, 221–2, 223, 239; fitness landscapes, 14–15, 259; Leslie Orgel’s law, 174, 175, 176, 177, 178, 180; problem solving and, 14–15, 16; selective breeding and, 175–6 expertise, limits of, 6–8, 16, 17, 19, 66 extinction events, biological, 18–19 Exxon (formerly Jersey Standard), 9, 12, 188, 245 F-22 stealth fighter, 93 Facebook, 90, 91 failure: in business, 8–10, 11–12, 18–19, 36, 148–9, 224, 239–46; chasing of losses, 32–5, 253–4, 256; in complex and tightly coupled systems, 185–90, 191–2, 200, 201, 207–8, 219, 220; corporate extinctions, 18–19; denial and, 32, 34–5, 250–3, 255–6; disruptive technologies, 239–44, 245–6; of established industries, 8–10; government funding and, 148–9; hedonic editing and, 254; honest advice from others and, 256–7, 258, 259; learning from, 31–5, 78, 119, 250–1, 256–9, 261–2; modern computer industry and, 11–12, 239–42; as natural in market system, 10, 11, 12, 244, 245–6; niche markets and, 240–2; normal accident theory, 219; recognition of, 36, 224; reinterpreted as success, 254–5, 256; shifts in competitive landscape, 239–46; ‘Swiss cheese model’ of safety systems, 186–7, 190, 209, 218; types of error and mistake, 208–10; willingness to fail, 249–50, 261–2; of young industries, 10 Fearon, James, 137, Federal Aviation Administration, 210 Federal Reserve Bank, 193–4 feedback, 25, 26, 42, 178, 240; in bureaucratic hierarchies, 30–1; development and, 141–3; dictatorships’ immunity to, 27; Iraq war and, 43–5, 46, 57–8, 59–62; market system and, 141; praise sandwich, 254; public services and, 141; self-employment and, 258; yes-men and, 30 Feith, Douglas, 44, 45 Ferguson, Chris ‘Jesus’, 32 Fermi nuclear reactor (near Detroit), 187 Festinger, Leon, 251 financial crisis (from 2007), 5, 11, 25; AIG and, 189, 193–5, 215–16, 228; bankers’ bonuses, 198; banking system as complex and tightly coupled, 185, 186, 187–90, 200, 201, 207–8, 220; bond insurance business and, 189–90; collateralised debt obligations (CDOs), 190, 209; credit default swaps (CDSs), 187–9, 190, 194; derivatives deals and, 198, 220; faulty information systems and, 193–5; fees paid to administrators, 197; government bail-outs/guarantees, 202, 214, 223; Lehman Brothers and, 193, 194, 196–200, 204–5, 208, 215–16; ‘LMX spiral’ comparisons, 183–4, 189; Repo 105 accounting trick, 199 Financial Services Authority (FSA), 214 Firefox, 221, 230 Fleming, Alexander, 83 Food Preservation prize, 107, 108 Ford Motor Company, 46–7 fossil record, 18 Fourier, Joseph, 155 fraud, corporate, 208, 210, 212–13, 214 Friedel, Robert, 80 Frost, Robert, 260 A Funny Thing Happened on the Way to the Forum (musical), 248 Gage, Phineas, 21, 27 Galapagos Islands, 86, 87 Gale (US developer), 152 Galenson, David, 260 Galileo, 187 Galland, Adolf, 81 Gallipoli campaign (1915), 41–2 Galvin, Major General Jack, 62, 256 game theory, 138, 205 Gates, Bill, 110, 115 Gates, Robert, 59, 64, 78 Gates Foundation, 110 Geithner, Tim, 193–5, 196 GenArts, 13 General Electric, 9, 12, 95 Gilbert, Daniel, 255, 256 GlaxoSmithKline, 95 Glewwe, Paul, 127–8 Global Positioning System (GPS), 113 globalisation, 75 Google, 12, 15, 90, 91, 239, 245, 261; corporate strategy, 36, 231–4; Gmail, 233, 234, 241, 242; peer monitoring at, 229–30 Gore, Al, An Inconvenient Truth, 158 Göring, Hermann, 81 government and politics: climate change and, 157–8, 163, 169–74, 176, 180; development aid and, 118, 120, 143, 144, 148–9; financial crisis (from 2007) and, 193–5, 198–9, 202, 214, 215–16, 223; grandiosity and, 27–8; ideal hierarchies and, 46pos=00002pos=0000022558 >7, 49–50, 62–3, 78; innovation funding, 82, 88, 93, 97, 99–101, 102–3, 104, 113; lack of adaptability rewarded, 20; pilot schemes and, 29, 30; rigorous evaluation methods and, 29* Graham, Loren, 26 Grameen Bank, 116, 117 Greece, 147 Green, Donald, 29* greenhouse effect, 154–6 Gulf War, first, 44, 53, 65, 66, 67, 71; Battle of 73 Easting, 72–3, 74, 79 Gutenberg, Johannes, 10 Haldane, Andrew, 195, 258 Halifax (HBOS subsidiary), 211 Halley, Edmund, 105 Halliburton, 217 Hamel, Gary, 221, 226, 233, 234 Hanna, Rema, 135 Hannah, Leslie, 8–10, 18 Hanseatic League, 150 Harrison, John, 106–7, 108, 110, 111 Harvard University, 98–9, 185 Hastings, Reed, 108 Hausmann, Ricardo, 145 Hayek, Friedrich von, 1, 72, 74–5, 227 HBOS, 211, 213, 214 healthcare sector, US, 213–14 Heckler, Margaret, 90–1 Henry the Lion, 149, 150, 151–2, 153 Hewitt, Adrian, 169 Hidalgo, César, 144–7, 148 Higginson, Peter, 230 Hinkley Point B power station, 192–3, 230–1 Hitachi, 11 Hitler, Adolf, 41, 82, 83, 150 HIV-AIDS, 90–1, 96, 111, 113 Holland, John, 16, 103 Hong Kong, 150 Houston, Dame Fanny, 88–9, 114 Howard Hughes Medical Institute (HHMI), 101–3, 112 Hughes (computer company), 11 Humphreys, Macartan, 136, 137, 138–40 Hurricane aircraft, 82* IBM, 11, 90, 95–6 In Search of Excellence (Peters and Waterman, 1982), 8, 10 India, 135, 136, 143, 147, 169 individuals: adaptation and, 223–4, 248–62; climate change and, 158–63, 164, 165–6; experimentation and, 260–2; trial and error and, 31–5 Indonesia, 133–4, 142, 143 Innocentive, 109 innovation: corporations and, 17, 81–2, 87–9, 90, 93–4, 95–7, 108–11, 112, 114, 224–30, 232–4; costs/funding of, 90–4, 99–105; failure as price worth paying, 101–3, 104, 184, 215, 236; government funding, 82, 88, 93, 97, 99–101, 102–3, 104, 113; grants and, 108; in health field, 90–1, 96; large teams and specialisation, 91–4; market system and, 17, 95–7, 104; new technologies and, 89–90, 91, 94–5; parallel possibilities and, 86–9, 104; prize methodology, 106–11, 112, 113–14, 179, 222–3; randomistas and, 127–9, 132, 133, 135–40, 258; return on investment and, 83–4; skunk works model, 89, 91, 93, 152, 224, 242–3, 245; slowing down of, 90–5, 97; small steps and, 16, 24, 29, 36, 99, 103, 143, 149, 153, 224, 259–60; space tourism, 112–13, 114; specialisation and, 91–2; speculative leaps and, 16, 36, 91, 99–100, 103–4, 259–60; unpredictability and, 84–5 Intel, 11, 90, 95 International Christelijk Steunfonds (ICS), 127–9, 131 International Harvester, 9 International Rescue Committee (IRC), 137–8, 139 internet, 12, 15, 63, 90, 113, 144, 223, 233, 238, 241; randomised experiments and, 235–6, 237; see also Google Iraq war: al Anbar province, 56–7, 58, 64, 76–7; civil war (2006), 39–40; Commander’s Emergency Response Program (CERP), 77; counterinsurgency strategy, 43, 45, 55–6, 58, 60–1, 63–4, 65; decentralisation and, 76–8, 79; feedback and, 43–5, 46, 57–8, 59–62; FM 3–24 (counter-insurgency manual), 63; Forward Operating Bases (FOBs), 51–3, 57, 65; Haditha killings (19 November 2005), 37–9, 40, 42, 43, 52; new technologies and, 71, 72, 74, 78–9, 196; Samarra bombing (22 February 2006), 39; Tal Afar, 51, 52, 53–5, 61, 64, 74, 77, 79; trial and error and, 64–5, 66–7; US turnaround in, 35, 40, 46, 50–1, 53–6, 57–8, 59–61, 63–5, 78; US/allied incompetence and, 38, 39–40, 42–5, 46, 50, 64, 67, 79, 223; Vietnam parallels, 46 J&P Coats, 9 Jacobs, Jane, 87 James, Jonathan, 30 Jamet, Philippe, 192 Janis, Irving, 62 Japan, 11, 143, 176, 204, 208 Jay-Z, 119 Jo-Ann Fabrics, 235 Jobs, Steve, 19 Joel, Billy, 247–8, 249 Johnson, President Lyndon, 46, 47, 49–50, 60, 62, 64, 78 Jones, Benjamin F., 91–2 Joyce, James, 260 JP Morgan, 188 Kahn, Herman, 93 Kahneman, Daniel, 32, 253 Kantorovich, Leonid, 68–9, 76 Kaplan, Fred, 77 Karlan, Dean, 135 Kauffmann, Stuart, 16, 103 Kay, John, 206–7, 208, 215, 259 Keller, Sharon, 252 Kelly, Terri, 230 Kennedy, President John F., 41, 47, 62–3, 84, 113 Kenya, 127–9, 131 Kerry, John, 20 Keynes, John Maynard, 181 Kilcullen, David, 57, 60–1 Klemperer, Paul, 96, 205 Klinger, Bailey, 145 Kotkin, Stephen, 25 Kremer, Michael, 127–8, 129 Krepinevich, Andy, 45 Lanchester, John, 188 leaders: decision making and, 40–2; failure of feedback and, 30–1, 62; grandiosity and, 27–8; ignoring of failure, 36; mistakes by, 41–2, 56, 67; need to believe in, 5–6; new leader as solution, 59 Leamer, Ed, 132* Leeson, Nick, 184–5, 208 Lehman Brothers, 193, 194, 196–200, 204–5, 208, 215–16 Lenin Dam (Dnieper River), 24 Levine, John, 48–9 Levitt, Steven, 132–3 Liberia, 136–9 light bulbs, 162, 177 Lind, James, 122–3 Lindzen, Richard, 156 Livingstone, Ken, 169 Lloyd’s insurance, 183 Lloyds TSB, 214 Local Motors, 90 Lockheed, Skunk Works division, 89, 93, 224, 242 Lomas, Tony, 196, 197–200, 204, 205, 208, 219 Lomborg, Bjorn, 94 longitude problem, 105–7, 108 Lu Hong, 49 Lübeck, 149–50, 151–2, 153 Luftwaffe, 81–2 MacFarland, Colonel Sean, 56–7, 64, 74, 76–7, 78 Mackay, General Andrew, 67–8, 74 Mackey, John, 227, 234 Madoff, Bernard, 208212–13 Magnitogorsk steel mills, 24–5, 26, 153 Malawi, 119 Mallaby, Sebastian, 150, 151 management gurus, 8, 233 Manhattan Project, 82, 84 Manso, Gustavo, 102 Mao Zedong, 11, 41 market system: competition, 10–11, 17, 19, 75, 95, 170, 239–46; ‘disciplined pluralism’, 259; evolutionary theory and, 17; failure in as natural, 10, 11, 12, 244, 245–6; feedback loops, 141; innovation and, 17, 95–7, 104; patents and, 95–7; trial and error, 20; validation and, 257–8 Markopolos, Harry, 212–13 Marmite, 124 Maskelyne, Nevil, 106 mathematics, 18–19, 83, 146, 247; financial crisis (from 2007) and, 209, 213; prizes, 110, 114 Mayer, Marissa, 232, 234 McDonald’s, 15, 28 McDougal, Michael, 252 McGrath, Michael, 252 McMaster, H.R.

pages: 290 words: 119,172

Beginning Backbone.js by James Sugrue


Airbnb, continuous integration, don't repeat yourself, Firefox, Google Chrome, loose coupling, MVC pattern, node package manager, single page application, web application, Y Combinator

Setting a variable is just as simple, and most importantly, setting the variable will be reflected in the original model object, as in the following code:'Beginning Backbone.js'); console.log(; console.log(backboneBook.get('name'));  147 Chapter 7 ■ The Backbone Ecosystem Developer Tools and Utilities The Backbone ecosystem isn’t limited just to extensions to the library. With the power of the developer tools available in Chrome and Firefox, you may think that there is no need for anything more. However, there is an add-on available for Firefox named Backbone Eye ( that helps developers understand the behavior of a Backbone application without the need to debug JavaScript. The add-on extends Firebug, so once you have both the Firebug and Backbone Eye add-ons installed, you will see a new tab in your Firebug browser, as in Figure 7-3. Figure 7-3.  Backbone Eye add-on in action Figure 7-3 is the result of inspecting the example used for the LayoutManager plug-in using Eye.

The console provided allows you to enter JavaScript and see it execute immediately. We’ll be taking a closer look at Chrome Developer Tools in the next chapter. For now, you can access the tools using the Tools/ Developer Tools menu option from Chrome. To write something out to the console, simply use the console.log statement, which will accept any type of output. The Chrome console even gives you code completion for your JavaScript. If Firefox is your browser of choice, the Firebug add-on gives you similar capabilities. You will also find a number of services online that allow you to execute JavaScript and share snippets you create, such as and What Is an Object Anyway? An object is a representation of something in your problem domain that contains a number of attributes. The classic example of an object is a person.

pages: 275 words: 84,418

Dogfight: How Apple and Google Went to War and Started a Revolution by Fred Vogelstein


Apple II, cloud computing, commoditize, disintermediation, don't be evil, Dynabook, Firefox, Google Chrome, Google Glasses, Googley, John Markoff, Jony Ive, Marc Andreessen, Mark Zuckerberg, Peter Thiel, pre–internet, Silicon Valley, Silicon Valley startup, Skype, software patent, spectrum auction, Steve Ballmer, Steve Jobs, Steve Wozniak, Steven Levy, Tim Cook: Apple, web application, zero-sum game

Schmidt denied that Google was building an online version of Microsoft Office, and Microsoft believed that effort wasn’t much of a threat either. By 2010, however, big commercial customers such as the City of New York started using Google’s applications to force Microsoft to lower its Office prices. And Schmidt denied that Google was building its own Internet browser—to compete with Microsoft, Apple, and its open-source partner Mozilla, which makes Firefox. Then, in 2008, it released Chrome, its own Internet browser. Schmidt said, quite reasonably, that over time it had become clear to him that a company such as Google that depended on Internet-browser access for people to use its products should not cede control of the browser to anyone. But it would have seemed less Machiavellian if he hadn’t been denying Google’s plans so forcefully for so long.

You’d never give up a smartphone to own an iPad, but you would certainly dump your laptop to own one. That it looked like a large iPhone was initially something to be criticized. It turned out that the bigger screen, as simple a tweak as this was, was exactly what made it such a new and powerful device. The importance of screen size seemed so obvious to Joe Hewitt—who had written the Facebook iPhone app in 2007 and had helped conceive and build the Firefox Internet browser in 2002—that the day after the iPad’s unveiling he wrote a nine-hundred-word blog post saying the iPad was the most important thing Apple had ever done. The year before, Hewitt had been fiercely critical of Apple for its restrictive app store policies. But his years of developing software for many different devices and platforms told him that the iPad had solved a fundamental problem.

Diehr DigiCash Digital Equipment Diller, Barry Discovery Channel Disney doctors Doerr, John Doll, Evan Doren, Kevin DoubleClick Duarte, Matias DVDs DVRs Dynabook eBay e-books and -readers; Brightline; iBooks; iPad; Kindle Economist, The, magazine Eisner, Michael Ellison, Larry Emanuel, Ari entertainment industry: Silicon Valley and; see also movies; music; television EO tablet computer ESPN Eustace, Alan Evo 4G by HTC Excite Exxon Facebook; iPhone and Fadell, Tony; Apple joined by; Forstall and; Forstall compared with; iPod and; Jobs and; Nest company of FCC Fiore, Mark Firefox Internet browser Flash by Adobe flight control Flipboard Ford, Henry Forstall, Scott; in Apple v. Samsung trial; Fadell and; Fadell compared with; Grignon and; iPad and; Jobs and; in meeting with Jobs and Google executives on Android; stomach ailment of Fortune magazine Fortune 500 companies Fox network Foxconn Galaxy smartphone Game of Thrones Ganatra, Nitin Gates, Bill; convergence and; and Google’s hiring of engineers away from Microsoft; iPad and; iPhone and; Jobs and; Macintosh and; tablets and Genentech General Magic General Motors (GM) Gizmodo Gmail GO Corp.

pages: 696 words: 111,976

SQL Hacks by Andrew Cumming, Gordon Russell

bioinformatics, business intelligence, business process, database schema,, Erdős number, Firefox, full text search, Hacker Ethic, Paul Erdős, Stewart Brand, web application

A user could save your form page on her desktop. She could then edit her version of your page and alter or disable the JavaScript and field size limits. Also beware of hidden variables and cookies. Under normal circumstances, your scripts control these values, but it is not at all difficult for someone to make up her own values. An external user can view all of the hidden variables and cookies associated with a web page from Firefox, for instance. Look in ToolsPage InfoForms for the variables, including hidden variables, as shown in Figure 6-18. Look in ToolsOptionsPrivacyCookiesView Cookies for the cookies, as shown in Figure 6-19. Figure 6-18. Listing variables, including hidden variables Figure 6-19. Listing cookies associated with a page 6.8.7. Exploits Using Hidden Variables and Cookies An SQL injection attack based on hidden variables is not any more difficult than one using visible components, such as textboxes or a password.

mysql_connect('localhost','scott','tiger') or die(mysql_error( )); mysql_select_db('scott') or die(mysql_error( )); $query = " SELECT DISTINCT 'No preference' AS colorName, NULL UNION SELECT colorName, colorName FROM colorTable ORDER BY 2 "; $cursor = mysql_query($query) or die(mysql_error( )); echo "<select name='menu_name'>"; while ($line = mysql_fetch_array($cursor,MYSQL_ASSOC)) { echo "<option>" .$line{'colorName'} . "</option>\n"; } echo "</select>\n"; mysql_close( ); ?> Figure 8-8 shows what it looks like in Firefox. Figure 8-8. HTML pop-up from a table Chapter 9. Locking and Performance In applications requiring high query throughput, high concurrency rates, and/or large result sets, you need to ensure good database design. However, systems with good database design can still suffer from performance problems. Before you spend money on hardware architecture improvements you should look at your approach to queries, and how queries and result sets are passed between applications and database systems.

VALUES statement CONNECT BY clause CONVERT function (SQL Server) cookies copy of the data (outdated), returned for transaction copying tables SQL92 standard and correlated derived table correlated subquery COS function COUNT function disaggregating result counting with a condition covering index CREATE command CREATE script, storing for tables CROSS JOINs 2nd integers table orders with postage rules crossword puzzle, solving using SQL csc.exe (C# compiler) CTR (click-through ratio) current date current timestamp current username CURRENT_DATE CURRENT_TIMESTAMP 2nd 3rd CURRENT_USER information cursor obtaining using for complicated UPDATEs Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] Data Definition Language (DDL) database connections database systems dates day-of-the-week functions differences in handling executing functions moving databases between potential problems SQL conventions version number databases specifying with command-line switch DATE type column name (whn) DATEADD function (SQL Server) 2nd 3rd 4th DATEDIFF function (SQL Server) DatePart function (Access) DATEPART function (SQL Server) 2nd 3rd dates 2nd 3rd Access converting strings to MySQL Oracle converting to strings SQL Server current date data for consecutive dates, generating database functions for date literals in SQL Server finding floating calendar dates last Thursday of the month second Tuesday of the month generating a calendar generating sequence with integers table keys using, table comparisons and quarterly reports, generating range of dates for period of days up to a year reducing precision in report data custom ranges of any size reporting on any date criteria current month monthly totals year-to-date totals SQL Server uncovering trends in data modular arithmetic DATETIME datatype 2nd day-of-the-week functions DAYOFWEEK function (MySQL) DB2 command-line utility GROUPING SETS clause WITH ROLLUP clause db2batch utility DB_File Perl module DBI interface (Perl) BLOBs, creating and retrieving data from DBMS_CRYPTO library (Oracle) DDL (Data Definition Language) decision tables, building prioritized DELETE triggers denormalization denormalizing data deploying applications CREATE script, storing for each table DROP avoiding constraints namespace management portability derived tables aliases converting to VIEWs correlated deterministic hashes diff command (Unix) differences between tables, finding directory structure dirty reads disk space, managing large data tables temporary space division avoiding division by zero DNS cache (Webalizer) DROP TABLE command avoiding constraints testing if table exists before executing Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] easypass tool email addresses as usernames ENGINE=InnoDB epoch time Erdös numbers Excel importing directly from databases for graphical reports pivot table, filling in missing values with SQL using to preprocess SQL exclusive matches exp and imp utilities exporting table definitions Access MySQL PostgreSQL 2nd problems with SQL Server Express edition (SQL Server) EXTRACT function 2nd 3rd PostgreSQL, day-of-the-week Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] FALSE and TRUE values, Access field size limits (HTML) FIFO queuing in database files image storing data adding/removing files changing existing files too many files filtering in JOIN conditions on indexed columns rows and columns find command Firefox HTML pop-up from a table viewing hidden variables and cookies fiscal year to date, reporting floating calendar dates, finding last Thursday of the month second Tuesday of the month FLOOR function 2nd rounding numbers FOR EACH ROW construct foreign key reference foreign keys email-based username family tree hierarchy Form Wizard (Access) FROM clause dropping from SELECT statement SELECT statement, using other SELECT statements FTP, anonymous sites FULL OUTER JOINs 2nd FULLTEXT pattern match (MySQL) functions aggregating day-of-the-week executing in the database nonstandard, problems switching database platforms static Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] GETDATE( ) function (SQL Server) globally unique identifier (GUID) for transactions GO instructions (SQL Server) 2nd GPS locations, calculating distance between GRANT and REVOKE commands graphing survey results SVG pie chart created directly from SQL vendor-specific XML features GREATEST function 2nd GROUP BY statement, choosing any three of five GROUPING SETS clause (Oracle) GUID (globally unique identifier) for transactions gzip compression Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] hash directory structure hashing algorithms hashing passwords hidden variables SQL injection attacks based on history tables Oracle PostgreSQL processing SQL Server HTML fields, size limits on hung transactions Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] identifiers, unique for updates branch transactions central server update duplicate batches userid IDENTITY column (SQL Server) IFNULL function (MySQL) IIS (Internet Information Services) web log format, controlling 2nd IMAGE datatype (SQL Server) 2nd image files images storing in database using BLOBs storing in files imp utility implicit COMMITs importing external data importing SQL file into Access into DB2 into MySQL, using command-line utility into Oracle, using sqlplus into PostgreSQL into SQL Server importing table definitions problems with SQL Server IN BOOLEAN MODE text-searching (MySQL) inconsistent records, cleaning normalizing the data indexes filtering on indexed columns FULLTEXT infrequently changing values, tracking finding current price finding price on specified date listing all prices for specified date recording price changes INNER JOINs JOIN chain example changing to OUTER JOINs inner joins InnoDB INSERT ...

pages: 153 words: 52,175

Bit Literacy: Productivity in the Age of Information and E-mail Overload by Mark Hurst

Amazon:, Firefox, Google Earth, mail merge, pre–internet, profit motive, social software, software patent, web application

Bit-literate users must know how to access their favorite applications, folders, and files with a single keystroke. Setting up these keystrokes is easy with a tool like QuicKeys; the only other requirement is committing to learning and using these keystrokes instead of the mouse. I’ve set up my computer (and all my employees’ computers) to use the following keystrokes for the most common applications: F6: word processor (on the Macs at my company, it’s AppleWorks) F7: Web browser (Safari or Firefox) F8: e-mail (Apple Mail or Mailsmith) F9: text editor (TextWrangler) F10: calendar (Now Up-to-Date) On a Windows computer the applications would be different—the word processor would most likely be Word, and the e-mail and calendar would probably be Outlook—but the keystrokes could be the same. Function commands, the F keys at the top of the keyboard, are good choices for system-wide keystrokes because they’re generally not in use by anything else.47 Users should also have one-touch access to commonly used files and folders: Files: QuicKeys allows you to define a keystroke to open a given file.

Paper will always be useful in some situations, but bit-literate users will avoid it when possible. 53 “Open Source Spying,” by Clive Thompson, the New York Times Magazine, December 3, 2006. 54 Popup text from Microsoft Word 2004 for Mac, version 11.0. 55 The SANS Internet Storm Center monitors the average "survival time" of a Windows PC at 56 The name was coined by Helen Moriarty, mother of my business partner Phil Terry, back in 1999. 57 Here's most of what we add: QuicKeys for one-touch access to applications and the team contacts file; Default Folder for one-touch folder access; Typinator or TypeIt4Me as the bit lever; TextWrangler as the text editor; AppleWorks as the word processor and wireframing tool; FileMaker for databases; Now Up-to-Date for the calendar; Firefox or Safari as the Web browser; a account for the todo list; Mailsmith for the e-mail program; Microsoft Office for compatibility to client files; and for really dedicated learners, the Dvorak keymap for the keyboard. We also add Classic Menu and ASM for the upper-left and upper-right menus that were so effective in OS9 but disappeared in OSX. We disable Apple's poorly-designed Spotlight feature and give users the choice of Quicksilver and EasyFind as a replacement. 58 "Pause Stirs Concern That Growth In Productivity May Be Flattening," by Mark Whitehouse and Tim Aeppel, the Wall Street Journal, November 3, 2006.

Cold Hands by John J. Niven


centre right, Firefox, hiring and firing, Mason jar, Maui Hawaii

I looked up from my desk, catching myself mid-thought, suddenly aware of how much I had been thinking about childhood, dwelling on specific moments and people, rather than in the general way we all think about childhood all the time – it flows through us unceasingly, like blood. Why had I suddenly started doing this? The answer came quickly: because you found the dog, ripped up like it’d been vivisected. Because violence came calling, didn’t it? And, quite before I knew what I was doing, I had clicked on Firefox and was typing his name into Google. I read down, expecting nothing. He was not, after all, a famous man; he’d be nearly seventy too, and unlikely to be one of the search results I was looking at now: Follow PCardew on Twitter . . . Paul Cardew is on Facebook . . . Paul Cardew, President of Virginia Loan and Savings . . . Share Spotify playlists with Paul Cardew using . . . And then, right there at the bottom, the second to last result on the first page, were the words:‘Rutherglen man dies in house fire’ and a link to Glasgow’s Evening Times website.

Back at the house I remembered I had a saccharine romcom to review for the following week: two big teen stars in what looked like a Jane Austen rewrite with text messaging and iPods. I lay on the sofa for a long time, sipping tea and tapping the DVD against my knee, until I wandered down the hall to my office and stood over the desk, my finger tracing over the smooth plastic pad of the laptop, the cursor hovering briefly over the icon for Mozilla Firefox – that flaming orange-and-white beast encircling the globe, the pathway to Google, the mortal enemy of the stay-at-home writer – before moving along the toolbar and hovering over the Word icon. Fuck it. The review could wait. I slid the cursor further along and clicked on the foresty-green Final Draft logo and, with a heavy sigh, steeling myself, opened UNTITLED. The last scene I’d been working on had been my first-act climax (falling around page 30 on a 120-page script, all the manuals said), where Welles, the hero, is rooting around in the ruined basement of an office building and he accidentally stumbles upon an ancient laptop, something he has never seen before, that has somehow (and how indeed, I hadn’t quite cracked this part yet) retained enough power to be turned on.

pages: 230 words: 61,702

The Internet of Us: Knowing More and Understanding Less in the Age of Big Data by Michael P. Lynch


Affordable Care Act / Obamacare, Amazon Mechanical Turk, big data - Walmart - Pop Tarts, bitcoin, Cass Sunstein, Claude Shannon: information theory, crowdsourcing, Edward Snowden, Firefox, Google Glasses, hive mind, income inequality, Internet of things, John von Neumann, meta analysis, meta-analysis, Nate Silver, new economy, patient HM, prediction markets, RFID, sharing economy, Steve Jobs, Steven Levy, the scientific method, The Wisdom of Crowds, Thomas Kuhn: the structure of scientific revolutions, WikiLeaks

While billions of people continue to have no access to it, millions have immediate access to the sort of information they wouldn’t have had just a decade ago. In short: while it is far from ubiquitous, “more information to more people” is one obvious way that the Internet is making knowledge—or its acquisition—“more democratic.” The Internet is also democratizing knowledge by making its production more inclusive. One common example here is open source software like Mozilla’s Firefox Web browser. When security vulnerabilities or bugs arise in Firefox software, a diverse and widespread community of volunteers works on fixes and plug-ins. Open source software operates similarly to an online co-op. It is software by the people, for the people. Epistemic inclusivity is also a by-product of the growing number of open access research sharing sites such as Founded in 2008, allows its millions of users (I’m one) a platform upon which to share and comment on one another’s research.

pages: 48 words: 10,481

Instant Ember.JS Application Development: How-To by Marc Bodmer


don't repeat yourself, Firefox, Google Chrome, MVC pattern, web application

Handling external data (Advanced) will show you how you can incorporate external data from an API into your application. An Ajax method will be used for this recipe. It will also touch upon Ember Data, which is a library the Ember.js is working on to simplify data in more complex applications. What you need for this book The programming language used in this book will be JavaScript. The browser that will be used to run the JavaScript, HTML, and so on will be Google Chrome. Other browsers such as Firefox and Safari should work just as well. The operating system that can be used is Windows, Mac OS X, or Linux. A text editor other than Notepad, such as Notepad++, VIM, or Sublime Text should be used for proper formatting of the code. Who this book is for The target audience for this book is frontend developers who realize that their frontend code base has gotten too large to maintain effectively and properly, and are looking for a complete framework solution.

pages: 496 words: 174,084

Masterminds of Programming: Conversations With the Creators of Major Programming Languages by Federico Biancuzzi, Shane Warden


Benevolent Dictator For Life (BDFL), business intelligence, business process, cellular automata, cloud computing, commoditize, complexity theory, conceptual framework, continuous integration, data acquisition, domain-specific language, Douglas Hofstadter, Fellow of the Royal Society, finite state, Firefox, follow your passion, Frank Gehry, general-purpose programming language, Guido van Rossum, HyperCard, information retrieval, iterative process, John von Neumann, Larry Wall, linear programming, loose coupling, Mars Rover, millennium bug, NP-complete, Paul Graham, performance metric, Perl 6, QWERTY keyboard, RAND corporation, randomized controlled trial, Renaissance Technologies, Ruby on Rails, Sapir-Whorf hypothesis, Silicon Valley, slashdot, software as a service, software patent, sorting algorithm, Steve Jobs, traveling salesman, Turing complete, type inference, Valgrind, Von Neumann architecture, web application

The beauty is that it doesn’t require new hardware, unlike Sci-Fi solutions proposed by others like virtual reality helmets or eye movement sensors, not to mention brainwave detectors. There’s a lot to do of course—for example, Firefox’s Preferences dialog has the dreadful look and feel of anything coming out of Microsoft, with at least two levels of tabs and many modal dialogs hidden in obscure places. How am I supposed to remember that in order to turn off JavaScript I have to go to the Content tab? Are Cookies under the Privacy tab or under Security? Maybe Firefox 4 can replace the Preferences dialog with a “smart” feature that lets you type keywords so that if I start typing “pass,” it will take me to the section to configure passwords. What do the lessons about the invention, further development, and adoption of your language say to people developing computer systems today and in the forseeable future?

Should application programmers adopt the “less is more” philosophy? How should they simplify the user interface to provide a shorter learning path? Guido: When it comes to graphical user interfaces, it seems there’s finally growing support for my “less is more” position. The Mozilla foundation has hired Aza Raskin, son of the late Jef Raskin (codesigner of the original Macintosh UI) as a UI designer. Firefox 3 has at least one example of a UI that offers a lot of power without requiring buttons, configuration, preferences or anything: the smart location bar watches what I type, compares it to things I’ve browsed to before, and makes useful suggestions. If I ignore the suggestions it will try to interpret what I type as a URL or, if that fails, as a Google query. Now that’s smart! And it replaces three or four pieces of functionality that would otherwise require separate buttons or menu items.

With Flash what we’re trying to do is both beef it up and make it robust enough so that at least you can get one language that’s platform-independent and will move from platform to platform without hitting you every time you turn around with different semantics. Charles: I totally agree. It is so frustrating that this many years later we’re still in an environment where someone says if you really want this to work you have to use Firefox. We should be way past that point by now! The whole point of the universality of the Web would be to not have those kind of distinctions, but we’re still living with them. It’s always fascinating to see how long it takes for certain pieces of historical antiquity to die away. The more you put them in the browsers you’ve codified them as eternal, and that’s stupid. Do you see this as a failure of the standards process we have today?

pages: 1,201 words: 233,519

Coders at Work by Peter Seibel


Ada Lovelace, bioinformatics, cloud computing, Conway's Game of Life, domain-specific language, don't repeat yourself, Donald Knuth, fault tolerance, Fermat's Last Theorem, Firefox, George Gilder, glass ceiling, Guido van Rossum, HyperCard, information retrieval, Larry Wall, loose coupling, Marc Andreessen, Menlo Park, Metcalfe's law, Perl 6, premature optimization, publish or perish, random walk, revision control, Richard Stallman, rolodex, Ruby on Rails, Saturday Night Live, side project, slashdot, speech recognition, the scientific method, Therac-25, Turing complete, Turing machine, Turing test, type inference, Valgrind, web application

Or on the internal code-review tool I'd be like, “Here is a review. What do you think?” They could just say, “Fuck no, that's totally the wrong fix.” Seibel: Do you still read code for fun, as opposed to reading it because you need to work with it? Fitzpatrick: Sometimes. I checked out Android source code for no real reason. The same with Chrome; when it went open source, I mirrored the repo and just looked around. I did the same thing with Firefox and Open Office. Some program you've been using and all of a sudden you have access and you might as well look. Seibel: Programs like that, the code base is pretty huge. When you look at something like that for fun, how deeply do you get into it? Fitzpatrick: Generally, I'll just pipe find into less and try to understand the directory structure. Then either something grabs my eye or I don't understand what something is.

Seibel: You use JSLint, presumably. Crockford: I do use JSLint. I use it a lot. I try to use it every time before I run a program, so if I've gone through and I've done some edits, I'll run it through JSLint first before I run it. Seibel: So you edit in your text editor, run JSLint on the program, and then run it in a browser. How about debugging? Crockford: It depends on the browser. If it's Firefox, then you use Firebug. If it's IE, then you use the Visual Studio debugger. They're both actually very good. We have surprisingly good debuggers in the browser. I've used frameworks in which there were inspectors built out of DOM elements that could then go into objects, and open them up, and inspect through that set of frames. But I found I really don't need that. Just a debugger is enough. Seibel: Do you ever step through code just as a way of checking it when you're not tracking down a specific bug?

Right now, the network does an extremely poor job of identity, does an extremely poor job of security, and those are a necessary component, I think, of building robust social systems. So that aspect of the Web is still deficient and maybe that's why it's so noisy still. Brendan Eich Creator of JavaScript, perhaps the most widely used and most reviled programming language on the modern Web, Brendan Eich is now CTO of the Mozilla Corporation, the subsidiary of the Mozilla Foundation responsible for continuing development of the Firefox browser. With an appreciation of both elegant theory and good pragmatic engineering, Eich spent the early days of his career hacking network and kernel code at Silicon Graphics and MicroUnity. After MicroUnity, he moved to Netscape, where he worked on the Netscape browser and, under intense time pressure, invented JavaScript. In 1998, along with Jamie Zawinski, he was one of the leaders of the effort to convince Netscape to open-source its browser, leading to the formation of, where he was chief architect.

pages: 226 words: 71,540

Epic Win for Anonymous: How 4chan's Army Conquered the Web by Cole Stryker


4chan, barriers to entry, Berlin Wall, Chelsea Manning, cognitive dissonance, Columbine, commoditize, creative destruction, crowdsourcing, Firefox, future of journalism, hive mind, informal economy, Internet Archive, Julian Assange, Mark Zuckerberg, Marshall McLuhan, Mason jar, pre–internet, Silicon Valley, slashdot, social web, Stephen Hawking, Steve Jobs, Stewart Brand, technoutopianism, wage slave, We are Anonymous. We are Legion, Whole Earth Catalog, WikiLeaks

“Look at this wacky thing from the Internet,” we hear. “What a world.” Commercialization Only the biggest meme stars will ever see any money, whether it’s through corporate sponsorship or by selling meme-related merchandise. Microsoft hired Paul Vasquez, star of the Double Rainbow meme, to promote the Windows Live Photo Gallery software in a TV ad. Adah Bahner of Chocolate Rain fame shilled for Dr. Pepper, Firefox, Sony, Vizio, and more. Internet memes provide advertisers a roster of recognizable but reasonably priced spokespeople who are keen to translate their fifteen minutes of fame into some quick cash before their meme dies. Death Memes never truly die, but one could argue that it’s time to move on when your hopelessly unhip mom or dad asks “Hey, did you see that thing on YouTube about that guy who punched out another guy on the subway?”

Some journalists known for their criticism of the Tunisian government were targeted; in some cases their Facebook and Gmail accounts were hacked, and their blogs were shut down. Anonymous retaliated, successfully DDoSing eight websites, including those representing the Tunisian president, prime minister, the ministry of industry, the ministry of foreign affairs, and the stock exchange. Beyond the DDoSs, Anonymous created informational materials to guide dissidents on concealing their identities on the web. A few Anons developed a Firefox extension to protect Tunisians from phishing. Anonymous also participated in the revolution in Egypt. They helped mirror sites that had been censored by the Egyptian government, brought down President Hosni Mubarak’s website, and, in typical lulzy fashion, sent pizza deliveries to the country’s embassies. Go Go Go! Anonymous has grown beyond 4chan, to the point where the media no longer mentions 4chan in reports on Anonymous.

pages: 204 words: 67,922

Elsewhere, U.S.A: How We Got From the Company Man, Family Dinners, and the Affluent Society to the Home Office, BlackBerry Moms,and Economic Anxiety by Dalton Conley


3D printing, assortative mating, call centre, clean water, commoditize, dematerialisation, demographic transition, Edward Glaeser, extreme commuting, feminist movement, financial independence, Firefox, Frank Levy and Richard Murnane: The New Division of Labor, Home mortgage interest deduction, income inequality, informal economy, Jane Jacobs, John Maynard Keynes: Economic Possibilities for our Grandchildren, knowledge economy, knowledge worker, labor-force participation, late capitalism, low skilled workers, manufacturing employment, mass immigration, McMansion, mortgage tax deduction, new economy, off grid, oil shock, PageRank, Ponzi scheme, positional goods, post-industrial society, Post-materialism, post-materialism, principal–agent problem, recommendation engine, Richard Florida, rolodex, Ronald Reagan, Silicon Valley, Skype, statistical model, The Death and Life of Great American Cities, The Great Moderation, The Wealth of Nations by Adam Smith, Thomas Malthus, Thorstein Veblen, transaction costs, women in the workforce, Yom Kippur War

Between dropping them off and reaching his office in the rapidly gentrifying West Thirties, twenty new messages have piled up in his BlackBerry. He makes a brief appearance at the loftlike office and then heads out to the local Starbucks with his laptop to work on a memo on viral media strategy before his meetings. He finds it hard to concentrate, however, since he can’t stop himself from toggling (alt-tab) over to his open-source Firefox browser to e-trade stocks in his self-managed retirement portfolio and search the real estate listings to see how much his neighbors are listing their apartment for. He has been obsessing about the value of his home lately. Maybe this is related to the fact that he happened to see his college friend’s tax return lying around the week before. He had been surprised that his buddy was pulling in $300K to his own $200—mostly from figures on lines 12 and 13: capital gains and business income.

Or maybe we just sneak off, excusing ourselves prematurely from the family “dinner” in order to write that report in the den—the same report we should have been working on all day when instead we were e-mailing. Whatever the reasons for our longer hours of paid (or unpaid) productive labor, the result is a blurring of the line between work and leisure. Does contributing an entry to Wikipedia or debugging Firefox count as work or leisure? Since we are not being paid for it and it’s not housework, it probably falls into the leisure category. (Although some economists argue that programmers, in particular, use open-source work to signal to potential employers how good they are.) And if we are on a fixed salary and take on extra work to “get ahead,” is that work? Or is it just another dressed-up form of leisure?

pages: 371 words: 78,103

Webbots, Spiders, and Screen Scrapers by Michael Schrenk


Amazon Web Services, corporate governance, fault tolerance, Firefox, Marc Andreessen, new economy, pre–internet, SpamAssassin, Turing test, web application

This log file stores the time of access, the IP address of the requester, and the agent name, which identifies the type of program that requested the file. Generally, agent names identify the browser that the web surfer was using to view the website. Some agent names that a server log file may record are shown in Listing 3-3. The first four names are browsers; the last is the Google spider. Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.6) Gecko/20050225 Firefox/1.0.1 Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.03 [en] Mozilla/5.0 (compatible; Konqueror/3.1-rc3; i686 Linux; 20020515) Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1) Googlebot/2.1 (+ Listing 3-3: Agent names as seen in a file access log A webbot using cURL can assume any appropriate (or inappropriate) agent name. For example, sometimes it is advantageous to identify your webbots, as Google does.

[75] The robots.txt specification is available at, [76] The specification for the robots meta tag is available at Building Speed Bumps Better methods of deterring webbots are ones that make it difficult for a webbot to operate on a website. Just remember, however, that a determined webbot designer may overcome these obstacles. Selectively Allow Access to Specific Web Agents Some developers may be tempted to detect their visitors' web agent names and only serve pages to specific browsers like Internet Explorer or Firefox. This is largely ineffective because a webbot can pose as any web agent it chooses.[77] However, if you insist on implementing this strategy, make sure you use a server-side method of detecting the agent, since you can't trust a webbot to interpret JavaScript. Use Obfuscation As you learned in Chapter 20, obfuscation is the practice of hiding something through confusion. For example, you could use HTML special characters to obfuscate an email link, as shown in Listing 27-2.

pages: 378 words: 67,804

Learning Android by Marko Gargenta


create, read, update, delete, database schema, Firefox, loose coupling, slashdot, web application

For example, your activity could send an intent saying it simply wants someone to open up a web page. In that case, any application that is capable of opening a web page could “compete” to complete this action. When you have competing applications, the system will ask you which one you’d like to use to complete a given action. You can also set an app as the default. This mechanism works very similarly to your desktop environment, for example, when you downloaded Firefox or Chrome to replace your default Internet Explorer or Safari web browsers. This type of messaging allows the user to replace any app on the system with a custom one. For example, you might want to download a different SMS application or another browser to replace your existing ones. Figure 4-2 shows how intents may be used to “jump” between various activities, in the same application or in another app altogether.

-- --> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_weight="1" android:id="@+id/textUser" android:text="Slashdot" android:textStyle="bold" /> <!-- --> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_weight="1" android:gravity="right" android:id="@+id/textCreatedAt" android:text="10 minutes ago" /> </LinearLayout> <!-- --> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/textText" android:text="Firefox comes to Android" /> </LinearLayout> The main layout for the entire row. It is vertical because our row consists of two lines. A layout that runs horizontally and represents the first line of data, namely the user and timestamp. The user who posted this update. The timestamp indicating when it was posted. It should be a relative time (e.g., 10 minutes ago). The actual status.

pages: 238 words: 73,824

Makers by Chris Anderson


3D printing, Airbnb, Any sufficiently advanced technology is indistinguishable from magic, Apple II, autonomous vehicles, barriers to entry, Buckminster Fuller, Build a better mousetrap, business process, commoditize, Computer Numeric Control, crowdsourcing, dark matter, David Ricardo: comparative advantage, death of newspapers, dematerialisation, Elon Musk, factory automation, Firefox, future of work, global supply chain, global village, industrial robot, interchangeable parts, Internet of things, inventory management, James Hargreaves, James Watt: steam engine, Jeff Bezos, job automation, Joseph Schumpeter, Kickstarter, Lean Startup, manufacturing employment, Mark Zuckerberg, means of production, Menlo Park, Network effects, profit maximization, QR code, race to the bottom, Richard Feynman, Richard Feynman, Ronald Coase, Rubik’s Cube, self-driving car, side project, Silicon Valley, Silicon Valley startup, Skype, slashdot, South of Market, San Francisco, spinning jenny, Startup school, stem cell, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, supply-chain management, The Nature of the Firm, The Wealth of Nations by Adam Smith, transaction costs, trickle-down economics, Whole Earth Catalog, X Prize, Y Combinator

And this time it’s not designed to train workers for low-end blue-collar jobs, but rather it’s funded by the government’s advanced manufacturing initiative aimed at creating a new generation of systems designers and production innovators. Meanwhile, the rise of “open hardware,” another part of what’s known as the Maker Movement, is now doing for physical goods what open source did for software. Just as online communities of programmers created everything from the Linux operating system that runs most of today’s websites to the Firefox Web browser, new communities of Makers are doing the same with electronics, scientific instrumentation, architecture, and even agricultural tools. There are now scores of multimillion-dollar open-hardware companies (including my own company, 3D Robotics8); some of them, such as the Arduino electronics development board, have sold more than a million units. Google, too, has joined the movement, releasing open-hardware electronics to connect to the hundreds of millions of phones and other devices that now run its Android mobile operating system.

It’s the difference between a hobby and a real, thriving, profitable business. It’s also worth bearing in mind that at this more bespoke end of the market, products can generally support a higher price. Customers are both keen and savvy: they are prepared to spend a bit more because they know that they are getting exactly what they want. It’s an attractive business model. Open design’s advantage Today we use the products of open software innovation every day: the Firefox Web browser, Android phones, the Linux Web servers that run most of the websites we go to, and countless other elements of the open-source software that the Internet is built on. Tomorrow the same may be true for hardware, too. I’ve driven in open-source cars (the Local Motors Rally Fighter, of which you’ll hear more later) and watched open-source planes fly. There are open-source rockets designed to reach space, as well as open-source submarines.

pages: 267 words: 78,857

Discardia: More Life, Less Stuff by Dinah Sanders


A. Roger Ekirch, Atul Gawande, big-box store, carbon footprint, clean water, clockwatching, cognitive bias, collaborative consumption, credit crunch, endowment effect, Firefox, game design, Inbox Zero, income per capita, index card, indoor plumbing, Internet Archive, Kevin Kelly, late fees, Marshall McLuhan, McMansion, Merlin Mann, side project, Silicon Valley, Stewart Brand

You will achieve more when working on multiple projects if you give them your full attention for set chunks of time than if you incessantly flit between them. The chunks don't need to be very large—even 15- to 30-minute laps can be hugely productive for many activities. Focus and don't give in to the “I'll just take a quick peek to see if there's new email” urges as you work. (If you need a little help with your willpower, try LeechBlock (a Firefox browser extension) to limit your work-time visiting of nonwork websites.) When you're creating or connecting, shut down other inputs. Turn off chat and message services when writing email or blog posts. Turn the TV off during conversation. Clean all the icons off your computer desktop that do not lead to the tasks you’re doing today. Group shortcuts together in a toolbar or dock and set your system to hide it when you aren’t using it.

Fortunately, unlike physical machines, software is easier to adapt. When you catch yourself swearing at your monitor, see if you can identify a pattern or problem to solve. Perhaps you need to find software that is a better fit for the way you think about this task; maybe you only need to adjust a setting to get the behavior in line with your instincts. This happened to me with iTunes on the Mac. I spend a great deal of my day in the Firefox web browser, and have reached the point where Command-T—the control to open a new tab—means “jump to where I can do the next thing I want to do.” In iTunes I was incessantly hitting that command when I wanted to jump to the currently playing song—to rate it differently or add a comment, for example. Unfortunately, that combination of keystrokes would launch a lovely, full-screen Visualizer lightshow in sync with my music, and I would swear first and then have to escape from it.

pages: 420 words: 79,867

Developing Backbone.js Applications by Addy Osmani


Airbnb, anti-pattern, create, read, update, delete, database schema, don't repeat yourself, Firefox, full text search, Google Chrome, Khan Academy, loose coupling, MVC pattern, node package manager, pull request, Ruby on Rails, side project, single page application, web application

DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script src=""></script> <script src=""></script> <script src=""></script> <script> // Your code goes here </script> </body> </html> You can then save and run the file in your browser of choice, such as Chrome or Firefox. Alternatively, if you prefer working with an online code editor, jsFiddle and jsBin versions of this boilerplate are also available. Most examples can also be run directly from within the console in your browser’s developer tools, assuming you’ve loaded the boilerplate HTML page so that Backbone and its dependencies are available for use. For Chrome, you can open up the DevTools via the Chrome menu in the top right hand corner: select “Tools > Developer Tools” or alternatively use the Control + Shift + I shortcut on Windows/Linux or Command + Option + I on Mac.

If there was no error we return the array of objects to the client using the send function of the response object, otherwise we log the error to the console. To test our API we need to do a little typing in a JavaScript console. Restart node and go to localhost:4711 in your browser. Open up the JavaScript console. If you are using Google Chrome, go to View->Developer->JavaScript Console. If you are using Firefox, install Firebug and go to View->Firebug. Most other browsers will have a similar console. In the console type the following: jQuery.get( '/api/books/', function( data, textStatus, jqXHR ) { console.log( 'Get response:' ); console.dir( data ); console.log( textStatus ); console.dir( jqXHR ); }); …and press enter and you should get something like this: Here I used jQuery to make the call to our REST API, since it was already loaded on the page.

pages: 272 words: 64,626

Eat People: And Other Unapologetic Rules for Game-Changing Entrepreneurs by Andy Kessler


23andMe, Andy Kessler, bank run, barriers to entry, Berlin Wall, Bob Noyce, British Empire, business process, California gold rush, carbon footprint, Cass Sunstein, cloud computing, collateralized debt obligation, collective bargaining, commoditize, computer age, creative destruction, disintermediation, Douglas Engelbart, Eugene Fama: efficient market hypothesis, fiat currency, Firefox, Fractional reserve banking, George Gilder, Gordon Gekko, greed is good, income inequality, invisible hand, James Watt: steam engine, Jeff Bezos, job automation, Joseph Schumpeter, knowledge economy, knowledge worker, libertarian paternalism, low skilled workers, Mark Zuckerberg, McMansion, Netflix Prize, packet switching, personalized medicine,, prediction markets, pre–internet, profit motive, race to the bottom, Richard Thaler, risk tolerance, risk-adjusted returns, Silicon Valley, six sigma, Skype, social graph, Steve Jobs, The Wealth of Nations by Adam Smith, transcontinental railway, transfer pricing, wealth creators, Yogi Berra

The promise of open source is better quality, higher reliability, more flexibility, lower cost, and an end to predatory vendor lock-in.” In other words, there are a bunch of folks around the world who write and revise code, for free, for a software project that is open to contributions from anyone. Linux is an open-source operating system. Apache is open-source server software that spits out most Web pages. Firefox is an open-source browser. Successful open-source projects capture value from the project. The Mozilla Foundation cut a deal with Google to include a search toolbar and collects tens of millions in referral fees. In Sweden, Mårten Mickos tapped programmers around the globe to contribute code and help fix bugs in his MySQL open-source database application. Tom Sawyer again. Let others paint the picket fence.

See Market entrepreneurs; Political entrepreneurs EPI-LIT (entertainment and perishable information) Equality, myth of Equal opportunity Establishment, Alinsky on Exceptionalism and employee testing bans finding in colleges and intelligence and productivity of Vital Few FAB (Feature, Application, Business) Facebook Faggin, Federico Fama, Eugene Fannie Mae/Freddie Mac FarmVille Features, versus applications, businesses Federal Deposit Insurance Corporation (FDIC) Federal Reserve and interest rates and money supply roles of Ferguson, Andrew Ferriss, Tim Financial sector as Slimers as Sponges Firefox Flickr Ford, Henry Fox Broadcasting Fractional reserve banking Freedom Free Radicals accomplishments of defined historical examples of See also Rules for Free Radicals French Revolution Frick, Henry Clay Frick Museum Friedman, Tom Fulton, Robert Garrett, Jesse James Gates, Bill Generation X Generation Y Genes, personalized medicine Gesture recognition Gibbons v.

pages: 239 words: 64,812

Geek Sublime: The Beauty of Code, the Code of Beauty by Vikram Chandra


Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Apple II, barriers to entry, Berlin Wall, British Empire, business process, conceptual framework, create, read, update, delete, crowdsourcing, don't repeat yourself, Donald Knuth, East Village, European colonialism, finite state, Firefox, Flash crash, glass ceiling, Grace Hopper, haute couture, iterative process, Jaron Lanier, John von Neumann, land reform, London Whale, Norman Mailer, Paul Graham, pink-collar, revision control, Silicon Valley, Silicon Valley ideology, Skype, Steve Jobs, Steve Wozniak, supercomputer in your pocket, theory of mind, Therac-25, Turing machine, wikimedia commons, women in the workforce

Steve Jobs was famed not only for his success but also his aggressive rudeness; his erstwhile partner Woz describes him as a “real rugged bastard” who found it necessary to “put people down and make them feel demeaned.”42 The social ineptitude of the sandal-wearing, long-haired pioneers of the early days has been elevated to a virtue. Shouting at co-workers and employees, abrasive behavior, indifference to the feelings of others, all these constitute both a privilege earned by skill and a signifier of the programmer’s elite status. This is most true, paradoxically, in the open-source movement, within which volunteer programmers collaborate to produce programs (like Firefox and Linux) under licensing schemes that guarantee universal, free access. These volunteers must cooperate to produce viable programs; yet it is within open source that programmers most fiercely pledge allegiance to the legacy of the early neckbeards. And so Linus Torvalds, the “benevolent dictator” of Linux, dismissed the makers of a rival operating system as “a bunch of masturbating monkeys”; and so, Eric S.

Usually, you write several tests for each section of code, checking for correct behavior under varying conditions, and so the lines of test code can easily outnumber the lines of program code by orders of magnitude. The open-source database SQLite, at the time of this writing, has 1,177 times the amount of test code as it does program code.14 Most non-programmers have never heard of SQLite, but it is the most widely deployed database in the world.15 SQLite is a tiny program. It runs within your Firefox browser, storing your bookmarks; it is used widely within the Mac operating system; it runs within each copy of Skype; it runs on your smartphone, storing contacts and appointments. SQLite’s vast suite of tests is an attempt to prevent bugs from creeping into a program that has become an essential, foundational component of the working memory of humanity. Programmers work doggedly toward correctness, but the sheer size and complexity of software ensures that bugs lurk within.

pages: 270 words: 64,235

Effective Programming: More Than Writing Code by Jeff Atwood


AltaVista, Amazon Web Services, barriers to entry, cloud computing, endowment effect, Firefox, future of work, game design, Google Chrome, gravity well, job satisfaction, Khan Academy, Kickstarter, loss aversion, Marc Andreessen, Mark Zuckerberg, Merlin Mann, Minecraft, Paul Buchheit, Paul Graham, price anchoring, race to the bottom, recommendation engine, science of happiness, Skype, social software, Steve Jobs, web application, Y Combinator, zero-sum game

Google went from nothing, no web browser at all, to best-of-breed in under two years. Meanwhile, Internet Explorer took longer than the entire development period of Chrome to go from version 7 to version 8. And by the time Internet Explorer 9 ships — even though it’s actually looking like Microsoft’s best, most competent technical upgrade of the browser yet — it will be completely outclassed at launch by both Firefox and Chrome. The Google Android project is another example. Android doesn’t have to be better than the iPhone (and it most definitely isn’t; it’s been mediocre at best until recent versions). They just need to be faster at improving. Google is pushing out Froyos and Gingerbreads and Honeycombs with incredible, breakneck speed. Yes, Apple has indisputably better taste — and an impeccably controlled experience.

The most vivid difference between and Code Rush is that Netscape, despite all their other mistakes and missteps, didn’t just burn through millions of dollars for no discernable reason. They produced a meaningful legacy: Through Netscape Navigator, the original popularization of HTML and the internet itself. With the release of the Netscape source code on March 31st, 1998, the unlikely birth of the commercial open source movement. Eventually producing the first credible threat to Internet Explorer in the form of Mozilla Firefox 1.0 in 2004. Do you want money? Fame? Job security? Or do you want to change the world … eventually? Consider how many legendary hackers went on to brilliant careers from Netscape: Jamie Zawinski, Brendan Eich, Stuart Parmenter, Marc Andreessen. The lessons of Netscape live on, even though the company doesn’t. Code Rush is ultimately a meditation on the meaning of work as a programmer. As and Code Rush illustrate, the hard part is figuring out why you are working all those long hours.

pages: 313 words: 75,583

Ansible for DevOps: Server and Configuration Management for Humans by Jeff Geerling


Amazon Web Services, Any sufficiently advanced technology is indistinguishable from magic, cloud computing, continuous integration, database schema, Debian, defense in depth, DevOps, fault tolerance, Firefox, full text search, Google Chrome, inventory management, loose coupling, Minecraft, Ruby on Rails, web application

Inside main.yml, update the roles section: 9 roles: 10 - geerlingguy.homebrew Then add the following into vars/main.yml: 1 --- 2 homebrew_installed_packages: 3 - ansible 4 - sqlite 5 - mysql 6 - php56 7 - python 8 - ssh-copy-id 9 - cowsay 10 - pv 11 - drush 12 - wget 13 - brew-cask 14 15 homebrew_taps: 16 - caskroom/cask 17 - homebrew/binary 18 - homebrew/dupes 19 - homebrew/php 20 - homebrew/versions 21 22 homebrew_cask_appdir: /Applications 23 homebrew_cask_apps: 24 - google-chrome 25 - firefox 26 - sequel-pro 27 - sublime-text 28 - vagrant 29 - vagrant-manager 30 - virtualbox Homebrew has a few tricks up its sleeve, like being able to manage general packages like PHP, MySQL, Python, Pipe Viewer, etc. natively (using commands like brew install [package] and brew uninstall package), and can also install and manage general application installation for many Mac apps, like Chrome, Firefox, VLC, etc. using brew cask. To anyone who’s set up a new Mac the old-fashioned way—download 15 .dmg files, mount them, drag the applications to the Applications folder, eject them, delete the .dmg files—Homebrew’s simplicity and speed are a godsend.

pages: 478 words: 149,810

We Are Anonymous: Inside the Hacker World of LulzSec, Anonymous, and the Global Cyber Insurgency by Parmy Olson


4chan, Asperger Syndrome, bitcoin, call centre, Chelsea Manning, corporate governance, crowdsourcing, Firefox, hive mind, Julian Assange, Minecraft, Occupy movement, peer-to-peer, pirate software, side project, Skype, speech recognition, Stephen Hawking, Stuxnet, We are Anonymous. We are Legion, We are the 99%, web application, WikiLeaks, zero day

Sabu, Topiary, and one other senior figure in Anonymous said that Tflow originally wrote the script. Tflow had written a browser JavaScript plug-in that effectively stripped the government’s added Java code and redirected Tunisian Internet users away from its phishing servers (essentially fake Gmail, Yahoo, and Facebook sites) and back to the original, true hosts. Tunisian Internet users first had to install the Greasemonkey add-on for Firefox. Then it was just a matter of opening Firefox and going to Tools, then to Greasemonkey and New User Script, to paste in the code. Having clicked “Okay,” Tunisians could within a minute or two access Facebook, Twitter, Blogger, Gmail, and Yahoo without exposing their login details. I have sourced the story about Sabu remotely controlling a Tunisian man’s computer to deface the website of the country’s prime minister from interviews with Sabu himself, conducted in April of 2011.

In a separate incident, a webmaster whose website was being hit by Gigaloader in 2007 said the traffic he was getting looked like this: - - [27/Sep/2007:05:10:16 -0400] “GET /styles/xanime/top.jpg?2346141190864713656_ANON_DOES_NOT_FORGIVE HTTP/1.1” 200 95852 “” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/20070914 Firefox/” In the case of, 4chan was sending the message “DDOS BY EBAUMSWORLD” to the church’s servers, part of a running gag to blame 4chan’s antics on the rival, slightly tamer site. Once the thread’s participants started hitting with Gigaloader, another poster described “Phase 2”: /b/ would create a shell site and upload to it a video that repeatedly flashed “facts of Scientology and its inner workings.”

pages: 492 words: 153,565

Countdown to Zero Day: Stuxnet and the Launch of the World's First Digital Weapon by Kim Zetter


Ayatollah Khomeini, Brian Krebs, crowdsourcing, data acquisition, Doomsday Clock, drone strike, Edward Snowden, facts on the ground, Firefox, friendly fire, Google Earth, information retrieval, John Markoff, Julian Assange, Loma Prieta earthquake, Maui Hawaii, pre–internet, RAND corporation, Silicon Valley, skunkworks, smart grid, smart meter, South China Sea, Stuxnet, uranium enrichment, Vladimir Vetrov: Farewell Dossier, WikiLeaks, Y2K, zero day

But an exploit for Flash or Windows can jump to $100,000 or more because of the programs’ ubiquity in the marketplace. An exploit for Apple’s iOS can also go for $100,000 because the iPhone is more difficult to crack than competing mobile phones. Browser exploits that attack Firefox, Internet Explorer, and Chrome can sell for anywhere from $60,000 to more than $200,000, depending on their ability to bypass security protections the vendors have put in the software.1 Whatever the price on the gray market, however, it far surpasses in most cases what a seller can get from the white-market bounty programs. The Mozilla Foundation pays just $3,000 for bugs found in its Firefox browser and Thunderbird e-mail client, for example, while Microsoft, which was criticized for years for having no bug bounty program, began offering just $11,000 in 2013 for bugs found in the preview release of its new Internet Explorer 11 browser.

For many years it operated ad-hoc, with sales occurring only quietly in private between security firms and researchers and their government contacts. If someone wanted to sell an exploit but had no government contacts, it was difficult to sniff out a buyer. Beginning in 2006, for example, one security firm sold several zero-day exploits to a contact at a large US defense firm, according to a former employee who worked there. The zero days, all browser exploits targeting security holes in Safari, Firefox, and Internet Explorer, sold for about $100,000 each. The security firm got $50,000 up front for each sale it made and $10,000 a month thereafter until the price was paid off—payments were spread out to discourage them from reselling the exploits to other buyers or disclosing them to the vendors for patching. One of the first people to openly admit selling exploits to the government is security researcher Charlie Miller, a former NSA hacker who was recruited by the spy agency in 2000 after earning a PhD in mathematics from the University of Notre Dame.

pages: 390 words: 114,538

Digital Wars: Apple, Google, Microsoft and the Battle for the Internet by Charles Arthur


activist fund / activist shareholder / activist investor, AltaVista, Build a better mousetrap, Burning Man, cloud computing, commoditize, credit crunch, crowdsourcing, disintermediation, don't be evil,, Firefox, gravity well, Jeff Bezos, John Gruber, Mark Zuckerberg, Menlo Park, Network effects, PageRank, pre–internet, Robert X Cringely, Silicon Valley, Silicon Valley startup, skunkworks, Skype, slashdot, Snapchat, software patent, speech recognition, stealth mode startup, Steve Ballmer, Steve Jobs, the new new thing, the scientific method, Tim Cook: Apple, turn-by-turn navigation, upwardly mobile

But they saw that future slightly differently: Microsoft wanted to use it as an adjunct to its profitable back-end software such as Exchange. Google, however, couldn’t rely on a mobile user doing a search being offered its page: handset makers would demand huge sums from rivals (Microsoft was the obvious one) to set theirs as the default. And the majority of users don’t change their default settings (which Google was already exploiting by paying millions per year to be the default on Mozilla’s Firefox and Apple’s Safari desktop browsers). It would be a nightmare. And given Microsoft’s very visible ambitions, and collaborations like that with Palm, Microsoft’s search engine (then called Windows Live) could become the default on millions of mobiles. While Google could always complain to antitrust regulators if Microsoft were to use its billions in cash to buy its way to the top of mobile search, it would be a catch-up strategy; if or when Microsoft was slapped down by the courts, Google could have been defeated on the newest and most important computing platform, the one that would matter in the foreseeable future all over the world.

The certainties of the past – that the horizontal model must always succeed – were less clear. Android had so far won the battle to be the most-used smartphone platform; though with global use of smartphones estimated at just 20 per cent by the end of 2013 (because there are so many in the developing world which had not yet been catered for) the possibility remained that another ‘open’ OS – such as FirefoxOS, from the Mozilla foundation – could rise up and serve the next few billion buyers. What did look clear was that the three companies which had tangled so viciously in the past would now continue to do so. What is less clear is which of the many fronts on which their battles are being fought will be essential. Are web services such as document sharing the key measure? Is it the size of an app store that matters, or the customizability of the platform on which it will be used?

(i), (ii), (iii) see also Microsoft Bang & Olufsen (i) Bartz, Carol (i) Basillie, Jim (i) Battelle, John (i), (ii) Bauer, John (i) BBC iPlayer (i) Bechtolsheim, Andy (i), (ii) Beckham, David and Victoria (i) BenQ (i) Berg, Achim (i) Berkowitz, Steve (i), (ii) Best Buy (i), (ii), (iii), (iv) Bezos, Jeff (i) Bilton, Nick (i) BlackBerry (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix), (x), (xi) BlackBerry Messenger (i) BlackBerry Storm (i), (ii) Block, Ryan (i) Blodget, Henry (i) Bloomberg (i), (ii) BMG (i) Boeing (i) Boies, David (i), (ii) Bondcom (i) (i) Bowman, Douglas (i) Bracken, Mike (i) Brass, Richard (i) Brin, Sergey (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix) see also Google; Page, Larry Bronfman, Edgar (i) Brunner, Robert (i) Buffett, Warren (i) BusinessWeek (i), (ii), (iii), (iv), (v), (vi), (vii) Bylund, Anders (i) Carr, Nick (i) Chafkin, Max (i) Chambers, Mike (i) China (i), (ii), (iii) and Apple (i), (ii), (iii), (iv) and Google (i), (ii), (iii), (iv), (v), (vi), (vii) and Microsoft (i) mobile web browsing (i) China Mobile (i), (ii), (iii) China Unicom (i), (ii) Chou, Peter (i) CinemaNow (i) Cingular and the iPhone (i), (ii), (iii), (iv), (v) and the ROKR (i), (ii) Cisco Systems (i) ClearType (i) Cleary, Danika (i), (ii) CNET (i), (ii), (iii) Colligan, Ed (i), (ii), (iii) Compaq (i), (ii) ComScore (i), (ii), (iii) Cook, Tim (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix), (x) Creative Strategies (i) Creative Technologies (i), (ii), (iii), (iv), (v), (vi), (vii) Creative Labs (i), (ii) Cringely, Robert X (i), (ii), (iii), (iv) Crothall, Geoffrey (i) Daisey, Mike (i), (ii) Dalai Lama (i) Danyong, Sun (i) Daring Fireball (i), (ii) Deal, Tim (i) Dean, Jeff (i) DEC (i) Dediu, Horace (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix), (x), (xi), (xii), (xiii), (xiv) ’Dediu’s Law’ (i) Dell Computer (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix), (x), (xi), (xii), (xiii) Dell DJ (i), (ii), (iii) Dell, Michael (i), (ii), (iii), (iv) Design Crazy (i) Deutschman, Alan (i) Digital Equipment Corporation (i) Divine, Jamie (i) Dogfight (i), (ii) Dowd, Maureen (i) Drance, Matt (i), (ii), (iii), (iv) Drummond, David (i), (ii) Dunn, Jason (i) EarthLink (i), (ii) eBay (i) Edwards, Doug (i), (ii), (iii), (iv), (v), (vi), (vii), (viii) Eisen, Bruce (i) Electronic Arts (i) Elop, Stephen (i), (ii), (iii), (iv) EMI (i) eMusic (i) Engadget (i), (ii) Ericsson (i) European Patent Office (i) Evangelist, Mike (i) Evans, Benedict (i) Evslin, Tom (i) Facebook (i), (ii), (iii), (iv), (v), (vi) Fadell, Tony (i), (ii), (iii) Fester, Dave (i), (ii), (iii), (iv) FingerWorks (i), (ii) Fiorina, Carly (i), (ii) Flash (i), (ii), (iii), (iv), (v), (vi) Flowers, Melvyn (i), (ii) Foley, Mary Jo (i), (ii), (iii) Forrester Research (i), (ii) Forstall, Scott (i), (ii), (iii), (iv) Fortune (i), (ii), (iii), (iv), (v) Foundem (i) Foxconn Technology (i), (ii), (iii) Fried, Ina (i) Galaxy Tab (i), (ii) Galvin, Chris (i) Gartenberg, Michael (i), (ii), (iii), (iv) Gartner (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix), (x), (xi) Gates, Bill (i), (ii), (iii) SPOT watch (i) and Steve Jobs (i), (ii), (iii) see also Ballmer, Steve; Microsoft; Sculley, John Gateway (i), (ii) Gemmell, Matt (i) Ghemawat, Sanjay (i) Gibbons, Tom (i) Gilligan, Amy K (i) Gladwell, Malcolm (i), (ii), (iii) Glass, Ira (i) Glazer, Rob (i) Golvin, Charles (i), (ii) Google (i), (ii), (iii) ‘40 shades of blue’ (i), (ii) AdSense (i) and advertising (i), (ii), (iii) AdWords (i), (ii), (iii), (iv), (v), (vi) Android (i), (ii), (iii), (iv) 4G patent auction (i) China, manufacturing in (i), (ii) and Flash (i) and the iPhone (i), (ii) and Microsoft (i), (ii), (iii), (iv) Oracle patent dispute (i) origins of (i), (ii) and standardization (i) and tablets (i), (ii), (iii) antitrust investigation (i) and AOL (i) Bigtable (i), (ii) Buzz (i) Checkout (i) Chinese market (i), (ii), (iii), (iv) (i) ’Great Firewall’ (i) hacking (i) Chrome (i), (ii), (iii), (iv), (v) Compete (i) confrontation with Microsoft (i), (ii) data, importance of (i) Gmail (i), (ii) Goggles (i) Google Now (i) Google Play (i), (ii) Google+ (i), (ii) hiring policy (i), (ii) Instant (i) Maps (i), (ii), (iii), (iv) location data (i), (ii) users, loss of (i) vector vs raster images (i) market capitalization (i) Music All Access (i) Nest (i) and the New York terrorist attacks 2001 (i) Overture lawsuit (i) PageRank (i), (ii) and porn (i), (ii) profitability of (i) public offering (i) QuickOffice (i) and selling (i) Street View (i), (ii) and Yahoo (i), (ii), (iii), (iv) see also Brin, Sergey; Kordestani, Omid; Meyer, Marissa; Page, Larry; Schmidt, Eric; Silverstein, Craig Googled (i) (i), (ii), (iii) Gou, Terry (i) Grayson, Ian (i) Greene, Jay (i), (ii), (iii), (iv) Griffin, Paul (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix), (x) Griffin Technology (i), (ii) Grokster (i), (ii) Gross, Bill (i), (ii) Gruber, John (i), (ii), (iii), (iv), (v) Guardian (i), (ii), (iii) Gundotra, Vic (i), (ii) Hachamovitch, Dean (i) Handango (i) Handspring (i) Harlow, Jo (i) Hase, Koji (i), (ii), (iii) Hauser, Hermann (i) Hedlund, Marc (i) Heiner, Dave (i) Heins, Thorsten (i) Hewlett-Packard (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix), (x), (xi), (xii), (xiii), (xiv), (xv) Hitachi (i) Hockenberry, Craig (i) Hölzle, Urs (i), (ii), (iii), (iv) Hotmail (i) HTC (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix) Huawei (i) Hwang, Suk-Joo (i) I’m Feeling Lucky (i) IBM (i), (ii), (iii), (iv), (v), (vi) IDC (i), (ii), (iii), (iv) Idealab (i) i-mode (i) Inktomi (i), (ii), (iii) Instagram (i) Intel (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix) Intellectual Ventures (i) Iovine, Jimmy (i) iRiver (i), (ii), (iii) Ive, Jonathan (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix) Jackson, Thomas Penfield (i), (ii), (iii) Java (i), (ii) Jefcoate, Kevin (i) Jha, Sanjay (i) Jintao, Hu (i) Jobs, Steve (i), (ii), (iii) and Bill Gates (i), (ii) death (i) departure from Apple (i) see also Apple; Cook, Tim; Forstall, Scott; Ive, Jonathan; Schiller, Phil Johnson, Kevin (i) Johnson, Ron (i) Jones, Nick (i) Joswiak, Greg (i), (ii) Jupiter Research (i), (ii), (iii), (iv) Kallasvuo, Oli-Pekka (i), (ii), (iii), (iv), (v) Khan, Irene (i) Khan, Sabih (i) King, Brian (i), (ii) King, Shawn (i) Kingsoft (i) Kleinberg, Jonathan (i) Knook, Pieter (i), (ii) and competition from China (i) and Microsoft’s antitrust judgment (i) and Pink (i), (ii) and Steve Ballmer (i) and Windows Mobile (i), (ii), (iii), (iv), (v) and the Xbox (i) and Zune (i), (ii), (iii), (iv), (v) Komiyama, Hideki (i) Kordestani, Omid (i), (ii), (iii) Kornblum, Janet (i) Krellenstein, Marc (i) Laakmann, Gayle (i), (ii), (iii), (iv) Lawton, Chris (i) Lazaridis, Mike (i), (ii), (iii), (iv) Lees, Andy (i), (ii), (iii), (iv), (v), (vi), (vii), (viii) Lenovo (i), (ii) LG (i), (ii), (iii), (iv), (v), (vi) LimeWire (i), (ii) LinkExchange (i), (ii) Linux (i), (ii), (iii), (iv), (v), (vi), (vii) Lodsys (i), (ii) Lotus (i), (ii) Lucovsky, Marc (i) Lynn, Matthew (i) Ma, Bryan (i) MacroSolve (i), (ii) Madrigal, Alexis (i) Mapquest (i) Mayer, Marissa (i), (ii), (iii), (iv), (v) Media Metrix (i), (ii), (iii) MeeGo (i) Mehdi, Yusuf (i), (ii), (iii), (iv), (v), (vi), (vii) Meisel, Ted (i) Microsoft antitrust trial (i), (ii) APIs (i) company split (i) impact of (i) and Apple QuickTime (i) Azure (i) Bing Maps (i) ’Cashback’ (i) China, manufacturing in (i) Chinese market (i) censorship (i) pirating of software (i) confrontation with Google (i), (ii) Courier (i), (ii) Danger (i), (ii), (iii) acquisition by Microsoft (i), (ii), (iii) disintegration of the team (i), (ii), (iii) digital rights management (DRM) of music (i) DirectX (i) and Facebook (i) horizontal system (i) Internet Explorer (i), (ii) Janus (i), (ii), (iii), (iv) ’Keywords’ (i) market capitalization (i) and Netscape (i), (ii) and Nokia (i), (ii), (iii), (iv), (v), (vi), (vii) ’Pink’ (i), (ii) announcement (i) failure of (i) PlaysForSure (i), (ii), (iii) failure of (i) problems with (i), (ii), (iii) rebranding and end (i) and the Zune (i) Portable Media Center (PMC) (i) potential acquisition of Overture (i), (ii), (iii) ’roadmap’ (i) search (i), (ii), (iii), (iv), (v) and antitrust (i) Bing (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix), (x) launch and crash (i) and Office (i) page design (i) profitability of (i) Project Underdog (i), (ii), (iii), (iv) rebranding (i) Surface tablets (i), (ii), (iii) and tablets (i), (ii), (iii), (iv) Flash (i) Windows and ARM (i), (ii) WebTV (i) Windows (i), (ii) Windows Media Audio (i), (ii) Windows Media Player (i), (ii), (iii) Windows Mobile (i), (ii), (iii), (iv), (v), (vi) and Android (i), (ii) decline (i) peak (i) Windows Phone (i), (ii), (iii), (iv), (v) and tablets (i) Windows RT (i) Windows Server (i), (ii), (iii) Xbox (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix) Xbox 360 (ii) Xbox Live Music Marketplace (i) Xbox Music (i) and the Zune (i) and Yahoo search (i), (ii) Zune (i), (ii), (iii), (iv), (v) Christmas 2006 (i) demise of (i) failings of (i) market position (i), (ii) and music in the cloud (i), (ii) and the Xbox (i) Zune Music Store (i), (ii) see also Allard, J; Ballmer, Steve; Gates, Bill; Knook, Pieter; Sculley, John; Sinofsky, Steve; Spolsky, Joel Milanesi, Carolina (i), (ii), (iii) Miller, Trudy (i) Mobile World Congress (i) Morris, Doug (i), (ii) Moss, Ken (i), (ii) Mossberg, Walt (i) Motorola (i), (ii), (iii), (iv), (v), (vi) and Android (i) and the iPhone (i) and iTunes (i), (ii) Motorola Mobility (MMI) (i), (ii) Q phone (i) ROKR (i), (ii), (iii) Mozilla Firefox (i), (ii) Mudd, Dennis (i) Mundie, Craig (i) MusicMatch (i), (ii), (iii), (iv), (v), (vi), (vii) MusicNet (i), (ii) Myerson, Terry (i) Myhrvold, Nathan (i) Nadella, Satya (i) Namco (i) Napster (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix), (x), (xi) Narayen, Shantanu (i) Navteq (i), (ii) Netscape (i), (ii), (iii), (iv), (v), (vi), (vii) and Google (i), (ii), (iii), (iv) and Windows (i) (ii), (iii) New York Times (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix) New Yorker (i), (ii) NeXT Computer (i), (ii), (iii), (iv), (v) Nintendo (i), (ii), (iii) and 4G (i) Nokia (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix), (x), (xi), (xii) Apple patent dispute (i), (ii) Communicator (i) and the iPhone (i), (ii), (iii), (iv), (v), (vi), (vii), (viii) Lumia (i), (ii) and Microsoft (i), (ii), (iii), (iv), (v), (vi), (vii) N91 (i) and Navteq (i), (ii) and Steve Ballmer (i) and Symbian (i), (ii), (iii), (iv), (v), (vi) touchscreen development (i), (ii) Norlander, Rebecca (i) Norman, Don (i), (ii), (iii) Northern Light (i) Novell (i), (ii), (iii) NPD Group (i), (ii), (iii) O2 (i) Observer (i) Ohlweiler, Bob (i), (ii), (iii), (iv), (v), (vi), (vii) Ojanpera, Tero (i) Open Handset Alliance (OHA) (i) Oracle (i), (ii), (iii), (iv) Overture (i), (ii), (iii) acquisition by Yahoo (i) Google lawsuit (i), (ii) potential acquisition by Microsoft (i), (ii), (iii) Ozzie, Ray (i), (ii) PA Semi (i) Page, Larry (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix), (x), (xi), (xii) see also Brin, Sergey; Google Palm (i), (ii), (iii), (iv) acquisition by Hewlett-Packard (i) Pilot (i) Pre (i) profitability (i), (ii) Treo (i), (ii) Pandora (i) Partovi, Ali (i) Parvez, Shaun (i), (ii) Payne, Chris (i), (ii), (iii), (iv), (v), (vi) see also Microsoft PC World (i) PeopleSoft (i) Pepsi (i), (ii), (iii) Peterschmidt, David (i) Peterson, Matthew (i) ’phablets’ (i) Pixar (i), (ii), (iii) Placebase (i) PressPlay (i), (ii), (iii) Qualcomm (i) Quanta (i) Raff, Shivaun (i), (ii), (iii) Real Networks (i), (ii), (iii) Helix (i) Red Hat (i), (ii) Reindorp, Jason (i) Research In Motion (RIM) (i), (ii), (iii), (iv), (v), (vi), (vii), (viii) and Android (i), (ii), (iii) and Bing (i), (ii) and the iPhone (i), (ii), (iii), (iv) PlayBook (i), (ii), (iii), (iv) renaming to BlackBerry (i) Rockstar Bidco (i) writeoffs (i) see also BlackBerry Rockstar Bidco (i), (ii) Rosenberg, Scott (i) Rubin, Andy (i), (ii), (iii), (iv), (v) and Flash (i) and Google phones (i) and Motorola Mobility (i), (ii) and touch-based devices (i) see also Google; Microsoft Rubinstein, Jon (i), (ii), (iii), (iv), (v), (vi), (vii) Samsung (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix), (x), (xi), (xii), (xiii), (xiv), (xv), (xvi), (xvii) SanDisk (i) SAP (i) Sasse, Jonathan (i) Sasser, Cabel (i) Savander, Niklas (i) Schiller, Phil (i), (ii), (iii), (iv), and apps (i) and the iPhone (i) and iPod nano (i), (ii) and Wal-Mart (i) and 4G (i) Schmidt, Eric (i), (ii), (iii), (iv), (v), (vi), (vii) and Android (i), (ii) and AOL (i) and Google Goggles (i) and the iPhone (i), (ii), (iii), (iv) Schmitz, Rob (i) Schoeben, Rob (i) Schofield, Jack (i) Sculley, John (i), (ii), (iii), (iv), (v), (vi) Search (i) SEC (i), (ii) Second Coming of Steve Jobs, The (i) Sega (i) Shaw, Frank (i) Siemens (i) Sigman, Stan (i), (ii), (iii), (iv) Silverstein, Craig (i) Sinofsky, Steven (i), (ii), (iii), (iv), (v), (vi), (vii) see also ARM architecture; Microsoft Slashdot (i), (ii) Snapchat (i) Sony (i), (ii), (iii), (iv), (v), (vi) and digital rights management (DRM) (i) MiniDisc (i), (ii), (iii) PressPlay (i), (ii) Rockstar Bidco (i) Walkman (i), (ii), (iii) Sony Ericsson (i), (ii), (iii), (iv), (v), (vi), (vii) SoundJam (i) Spindler, Michael (i) Spolsky, Joel (i), (ii), (iii) Spotify (i) Sprint (i) Stac Electronics (i) standards-essential patents (SEPs) (i) Starbucks (i) StatCounter (i) Stephens, Mark (i), (ii) Stringer, Howard (i) Sullivan, Danny (i) Sun Microsystems (i), (ii), (iii), (iv), (v), (vi), (vii) Super Monkey Ball (i) Symbian (i), (ii), (iii), (iv), (v) apps (i), (ii) and Flash (i) licencing (i) loss of market share (i), (ii), (iii), (iv) Tao, Shi (i) Telefónica (i) Thompson, Rick (i) Time Warner (i), (ii) T-Mobile (i), (ii) TomTom (i) Topolsky, Joshua (i) Toshiba (i), (ii), (iii), (iv), (v), (vi) traffic acquisition costs (TACs) (i), (ii) Twitter (i), (ii), (iii), (iv) Universal (i), (ii), (iii) US Patent Office (i) Usenet (i) Vanjoki, Anssi (i) Varian, Hal (i) Verizon (i), (ii), (iii), (iv), (v) Virgin Electronics (i), (ii) Visa (i) Vodafone (i), (ii), (iii) Vogelstein, Fred (i), (ii), (iii), (iv), (v), (vi), (vii), (viii) Wall Street Journal (i), (ii) Wal-Mart (i), (ii), (iii), (iv) Wapner, Scott (i) Warner Music (i) Warren, Todd (i) Washington Post (i), (ii) Watsa, Prem (i) Waze (i) WebM (i), (ii) Wilcox, Joe (i), (ii) Wildstrom, Steve (i), (ii), (iii), (iv) Williamson, Richard (i) Windsor, Richard (i) Winfrey, Oprah (i), (ii) Wired (i), (ii), (iii), (iv), (v), (vi) Wojcicki, Susan (i) WordPerfect (i), (ii) Xiaomi (i) Yahoo (i), (ii), (iii), (iv), (v), (vi), (vii), (viii), (ix) Flickr (i) and Google (i), (ii), (iii), (iv) and GoTo (i) and Inktomi (i) and LinkExchange (i) localization (i) and Microsoft (i), (ii) and Overture (i), (ii) Tao, Shi (i) Yandex (i) Yang, Jerry (i), (ii), (iii), (iv) see also Yahoo YouTube (i), (ii), (iii), (iv), (v), (vi), (vii) Zander, Ed (i), (ii) ZTE (i), (ii), (iii) Zuckerberg, Mark (i), (ii) see also Facebook Publisher’s note Every possible effort has been made to ensure that the information contained in this book is accurate at the time of going to press, and the publishers and author cannot accept responsibility for any errors or omissions, however caused.

pages: 527 words: 147,690

Terms of Service: Social Media and the Price of Constant Connection by Jacob Silverman


23andMe, 4chan, A Declaration of the Independence of Cyberspace, Airbnb, airport security, Amazon Mechanical Turk, augmented reality, basic income, Brian Krebs, California gold rush, call centre, cloud computing, cognitive dissonance, commoditize, correlation does not imply causation, Credit Default Swap, crowdsourcing, don't be evil, drone strike, Edward Snowden, feminist movement, Filter Bubble, Firefox, Flash crash, game design, global village, Google Chrome, Google Glasses, hive mind, income inequality, informal economy, information retrieval, Internet of things, Jaron Lanier, jimmy wales, Kevin Kelly, Kickstarter, knowledge economy, knowledge worker, late capitalism, license plate recognition, life extension, lifelogging, Lyft, Mark Zuckerberg, Mars Rover, Marshall McLuhan, mass incarceration, meta analysis, meta-analysis, Minecraft, move fast and break things, move fast and break things, national security letter, Network effects, new economy, Nicholas Carr, Occupy movement, optical character recognition, payday loans, Peter Thiel, postindustrial economy, prediction markets, pre–internet, price discrimination, price stability, profit motive, quantitative hedge fund, race to the bottom, Ray Kurzweil, recommendation engine, rent control, RFID, ride hailing / ride sharing, self-driving car, sentiment analysis, shareholder value, sharing economy, Silicon Valley, Silicon Valley ideology, Snapchat, social graph, social web, sorting algorithm, Steve Ballmer, Steve Jobs, Steven Levy, TaskRabbit, technoutopianism, telemarketer, transportation-network company, Turing test, Uber and Lyft, Uber for X, universal basic income, unpaid internship, women in the workforce, Y Combinator, Zipcar

Postal Service started opening every letter, reading its contents, and inserting a contextually relevant advertisement. On the other hand, they do already scan the address information—the metadata—of every letter, cataloguing it for America’s intelligence services.) Some browsers, such as Google Chrome and Mozilla’s Firefox, have installed Do Not Track features, which are supposed to stymie the ability of advertisers, targeters, and ad networks to track browsing habits. But users must activate this capability in the browser’s settings, and as of March 2013, only 11.4 percent of desktop Firefox users had activated Do Not Track. There’s an even bigger flaw in this system, though: Web sites are under no obligation to respect these requests, and in fact, most don’t. This Do Not Track capability was instituted after members of the advertising and tech industries, government officials, and privacy advocates came together to support the mechanism, which was a central part of the Consumer Privacy Bill of Rights that the Obama administration presented in February 2012.

Coders have created a number of anti-tracking tools, often in the form of free browser plug-ins that users can install. Apps such as Ghostery, DoNotTrackMe, and Disconnect block the more than 2,000 “retargeters” that use cookies, ad networks, and other techniques to track your browsing history and present you related ads across the Internet. These plug-ins can also block surveillance from social widgets, including Like buttons. Some browser makers have also stepped up, with Safari and Firefox automatically blocking cookies from third-party sites that the user hasn’t visited. But some of these blocking apps aren’t quite what they claim to be. Evidon, the company that makes Ghostery, takes some of the data it collects from Ghostery users—there are eight million of them—and sells it to advertisers. Anti-tracking and -targeting measures may provide short-term solutions for users seeking some modicum of privacy or anonymity while browsing the Internet, but they do little to overturn the industry’s status quo, which remains single-mindedly focused on knowing more about user activities than the users themselves.

pages: 299 words: 91,839

What Would Google Do? by Jeff Jarvis


23andMe, Amazon Mechanical Turk, Amazon Web Services, Anne Wojcicki, barriers to entry, Berlin Wall, business process, call centre, cashless society, citizen journalism, clean water, commoditize, connected car, credit crunch, crowdsourcing, death of newspapers, disintermediation, diversified portfolio, don't be evil, fear of failure, Firefox, future of journalism, Google Earth, Googley, Howard Rheingold, informal economy, inventory management, Jeff Bezos, jimmy wales, Kevin Kelly, Mark Zuckerberg, moral hazard, Network effects, new economy, Nicholas Carr, old-boy network, PageRank, peer-to-peer lending, post scarcity, prediction markets, pre–internet, Ronald Coase, search inside the book, Silicon Valley, Skype, social graph, social software, social web, spectrum auction, speech recognition, Steve Jobs, the medium is the message, The Nature of the Firm, the payments system, The Wisdom of Crowds, transaction costs, web of trust, Y Combinator, Zipcar

The story is often told: Distributed armies of programmers created the most important software underlying the internet, from the Linux operating system that powers most internet servers to the free Apache web server software that delivers most web pages to the 500 million open-source Firefox browsers that show those pages. Why do these programmers do this work for free? Because they’re generous. They want to be part of something. They care. They may want to stick it to the man (namely, Mr. Gates). And they know that banding together in an open network lets them create a better product than they could if they were to work inside most corporations. How is open-source not chaos? New York University journalism professor Jay Rosen studied the Firefox project when he wanted to bring similar collaboration to journalism at his project. He learned that contrary to common misperception, open-source projects are not anarchies.

pages: 368 words: 96,825

Bold: How to Go Big, Create Wealth and Impact the World by Peter H. Diamandis, Steven Kotler


3D printing, additive manufacturing, Airbnb, Amazon Mechanical Turk, Amazon Web Services, augmented reality, autonomous vehicles, cloud computing, creative destruction, crowdsourcing, Daniel Kahneman / Amos Tversky, dematerialisation, deskilling, Elon Musk,, Exxon Valdez, fear of failure, Firefox, Galaxy Zoo, Google Glasses, Google Hangouts, Google X / Alphabet X, gravity well, ImageNet competition, industrial robot, Internet of things, Jeff Bezos, John Harrison: Longitude, John Markoff, Jono Bacon, Just-in-time delivery, Kickstarter, Kodak vs Instagram, Law of Accelerating Returns, Lean Startup, life extension, loss aversion, Louis Pasteur, Mahatma Gandhi, Marc Andreessen, Mark Zuckerberg, Mars Rover, meta analysis, meta-analysis, microbiome, minimum viable product, move fast and break things, Narrative Science, Netflix Prize, Network effects, Oculus Rift, optical character recognition, packet switching, PageRank, pattern recognition, performance metric, Peter H. Diamandis: Planetary Resources, Peter Thiel, pre–internet, Ray Kurzweil, recommendation engine, Richard Feynman, Richard Feynman, ride hailing / ride sharing, risk tolerance, rolodex, self-driving car, sentiment analysis, shareholder value, Silicon Valley, Silicon Valley startup, skunkworks, Skype, smart grid, stem cell, Stephen Hawking, Steve Jobs, Steven Levy, Stewart Brand, technoutopianism, telepresence, telepresence robot, Turing test, urban renewal, web application, X Prize, Y Combinator, zero-sum game

In one sense, this transformation is the downstream version of what former Wired editor-in-chief Chris Anderson meant in his book Free. In Free, Anderson argues that in today’s economy one of the easiest ways to make money is to give stuff away.12 Here’s how he explains it: I’m typing these words on a $250 “netbook” computer, which is the fastest growing new category of laptop. The operating system happens to be a version of free Linux, although it doesn’t matter since I don’t run any programs but the free Firefox Web browser. I’m not using Microsoft Word, but rather free Google Docs, which has the advantage of making drafts available to me wherever I am, and I don’t have to worry about backing them up since Google takes care of that for me. Everything else I do on this computer is free, from my email to my Twitter feeds. Even the wireless access is free, thanks to the coffee shop I’m sitting in. And yet Google is one of the most profitable companies in America, the Linux ecosystem is a $30 billion industry, and the coffee shop seems to be selling $3 lattes as fast as they can make them.

., 15, 17, 18, 19, 20, 21 structure of, 21 see also entrepreneurs, exponential; specific exponential entrepreneurs and organizations Exponential Organizations (ExO) (Ismail), xiv, 15 extrinsic rewards, 78, 79 Exxon Valdez, 250 FAA (Federal Aviation Administration), 110, 111, 261 Facebook, 14, 16, 88, 128, 173, 182, 185, 190, 195, 196, 202, 212, 213, 217, 218, 224, 233, 234, 236, 241 facial recognition software, 58 Fairchild Semiconductor, 4 Falcon launchers, 97, 119, 122, 123 false wins, 268, 269, 271 Fast Company, 5, 248 Favreau, Jon, 117 feedback, feedback loops, 28, 77, 83, 84, 120, 176, 180 in crowdfunding campaigns, 176, 180, 182, 185, 190, 199, 200, 202, 209–10 triggering flow with, 86, 87, 90–91, 92 Festo, 61 FeverBee (blog), 233 Feynman, Richard, 268, 271 Firefox Web browser, 11 first principles, 116, 120–21, 122, 126 Fiverr, 157 fixed-funding campaigns, 185–86, 206 “flash prizes,” 250 Flickr, 14 flow, 85–94, 109, 278 creative triggers of, 87, 93 definition of, 86 environmental triggers of, 87, 88–89 psychological triggers of, 87, 89–91, 92 social triggers of, 87, 91–93 Flow Genome Project, xiii, 87, 278 Foldit, 145 Forbes, 125 Ford, Henry, 33, 112–13 Fortune, 123 Fossil Wrist Net, 176 Foster, Richard, 14–15 Foundations (Rose), 120 Fowler, Emily, 299n Foxconn, 62 Free (Anderson), 10–11, 149–51, 156, 158, 163, 165, 195, 207 Friedman, Thomas, 150–51 Galaxy Zoo, 220–21, 228 Gartner Hype Cycle, 25–26, 25, 26, 29 Gates, Bill, 23, 53 GEICO, 227 General Electric (GE), 43, 225 General Mills, 145, 145 Genius, 161 genomics, x, 63, 64–65, 66, 227 Georgia Tech, 197 geostationary satellite, 100 Germany, 55 Get a Freelancer (website), 149 Gigwalk, 159 Giovannitti, Fred, 253 Gmail, 77, 138, 163 goals, goal setting, 74–75, 78, 79, 80, 82–83, 84, 85, 87, 137 in crowdfunding campaigns, 185–87, 191 moonshots in, 81–83, 93, 98, 103, 104, 110, 245, 248 subgoals in, 103–4, 112 triggering flow with, 89–90, 92, 93 Godin, Seth, 239–40 Google, 11, 14, 47, 50, 61, 77, 80, 99, 128, 134, 135–39, 167, 195, 208, 251, 286n artificial intelligence development at, 24, 53, 58, 81, 138–39 autonomous cars of, 43–44, 44, 136, 137 eight innovation principles of, 84–85 robotics at, 139 skunk methodology used at, 81–84 thinking-at-scale strategies at, 136–38 Google Docs, 11 Google Glass, 58 Google Hangouts, 193, 202 Google Lunar XPRIZE, 139, 249 Googleplex, 134 Google+, 185, 190, 202 GoogleX, 81, 82, 83, 139 Google Zeitgeist, 136 Gossamer Condor, 263 Gou, Terry, 62 graphic designers, in crowdfunding campaigns, 193 Green, Hank, 180, 200 Grepper, Ryan, 210, 211–13 Grishin, Dmitry, 62 Grishin Robotics, 62 group flow, 91–93 Gulf Coast oil spill (2010), 250, 251, 253 Gulf of Mexico, 250, 251 hackathons, 159 hacker spaces, 62, 64 Hagel, John, III, 86, 106–7 HAL (fictional AI system), 52, 53 Hallowell, Ned, 88 Hariri, Robert, 65, 66 Harrison, John, 245, 247, 267 Hawking, Stephen, 110–12 Hawley, Todd, 100, 103, 104, 107, 114n Hayabusa mission, 97 health care, x, 245 AI’s impact on, 57, 276 behavior tracking in, 47 crowdsourcing projects in, 227, 253 medical manufacturing in, 34–35 robotics in, 62 3–D printing’s impact on, 34–35 Heath, Dan and Chip, 248 Heinlein, Robert, 114n Hendy, Barry, 12 Hendy’s law, 12 HeroX, 257–58, 262, 263, 265, 267, 269, 299n Hessel, Andrew, 63, 64 Hinton, Geoffrey, 58 Hoffman, Reid, 77, 231 Hollywood, 151–52 hosting platforms, 20–21 Howard, Jeremy, 54 Howe, Jeff, 144 Hseih, Tony, 80 Hughes, Jack, 152, 225–27, 254 Hull, Charles, 29–30, 32 Human Longevity, Inc.

pages: 340 words: 96,149

@War: The Rise of the Military-Internet Complex by Shane Harris


Amazon Web Services, barriers to entry, Berlin Wall, Brian Krebs, centralized clearinghouse, clean water, computer age, crowdsourcing, data acquisition, don't be evil, Edward Snowden, failed state, Firefox, John Markoff, Julian Assange, mutually assured destruction, peer-to-peer, Silicon Valley, Silicon Valley startup, Skype, Stuxnet, uranium enrichment, WikiLeaks, zero day

The NSA would be like a gremlin, mischievously futzing with the machine. The agency also tried to attack Tor users from outside the network, infecting or “tagging” computers with a kind of electronic marker as they went in and out of Tor. The NSA’s hackers looked for different avenues to break in to computers that might be using the network—or might not. Once, they discovered a particular weak spot in a version of the Internet browser Firefox, which made it easier to tag computers using that browser. Never mind that the same weakness, if left unprotected, could be used to harm people who’d never heard of Tor and had no desire to cover their online footprints. The NSA’s anti-Tor campaign was exposed in 2013, through top-secret documents leaked by Edward Snowden. Those documents also revealed that the campaign was largely a failure.

See electrical power systems; nuclear facilities; petroleum power systems engineering, reverse, [>] England, Gordon, [>] Estonia, [>] ethical issues: cyber offense by private companies, [>]; how sold information is used, [>], [>]; placement of blame for zero day attack, [>]; responsibility to disclose vulnerabilities, [>], [>]–[>], [>]–[>], [>] Facebook, [>], [>], [>], [>], [>] Federal Bureau of Investigation (FBI), [>], [>]–[>], [>], [>]–[>], [>], [>]–[>], [>]–[>], [>], [>] fiber-optic trunk lines, [>], [>], [>] Fick, Nathaniel, [>]–[>] fifth domain, cyberspace as the, [>], [>], [>], [>], [>] file-sharing networks, [>]–[>] financial and banking data systems: clearinghouse network, [>]; cyber breaches, [>]–[>], [>]–[>]; cyber security, [>], [>], [>]–[>], [>]–[>], [>], [>]; denial-of-service attacks, [>], [>], [>], [>], [>]; hack-back against Citadel, [>]–[>]; risks of malware use in military context, [>]–[>], [>]. See also critical infrastructures FinFisher software, [>]–[>], [>] FireEye, [>], [>] Firefox, [>] First Amendment, [>] FISA. See Foreign Intelligence Surveillance Act Flatliquid operation, [>]–[>], [>] n. [>] Foreign Intelligence Surveillance Act (FISA), [>], [>]–[>], [>] Foreign Intelligence Surveillance Court, [>], [>]–[>], [>] foreign policy, US: for China, [>]–[>], [>]–[>]; international cyber agreements, [>], [>]; and monitoring of foreigners, [>], [>]–[>], [>], [>], [>], [>] forensics, network, [>], [>]–[>], [>], [>], [>] Fourth Amendment, [>], [>], [>], [>], [>] France, [>]–[>], [>]–[>], [>] F-35.

pages: 362 words: 86,195

Fatal System Error: The Hunt for the New Crime Lords Who Are Bringing Down the Internet by Joseph Menn


Brian Krebs, dumpster diving, fault tolerance, Firefox, John Markoff, Menlo Park, offshore financial centre, pirate software, Plutocrats, plutocrats, popular electronics, profit motive, RFID, Silicon Valley, zero day

Anything more intrusive, secretive, or uncontrolled puts us on the road to the destruction of Internet privacy, the consequences of which are on view in such places as China and Iran. THE AREA WITH THE MOST COMPLEXITY—and the greatest short-term potential—lies in the nascent communities of private sleuths like Barrett, the team that identified the suspected author of the SoBig virus, and those tracking the RBN. There should be more of a coordinated movement to save the Net, which should set out credos with the moral force that has driven the development of Linux, the Firefox Web browser, and other open-source projects. Those efforts attracted thousands of volunteer programmers to help develop alternatives to commercial products that were riddled with flaws. Certainly protecting the public is a higher calling still. Such campaigns could simultaneously aid law enforcement and shame them into action. And they should be opened up as much as possible, allowing more people to contribute their time and expertise.

See Maksakov, Ivan Facebook Falun Gong Faust Federal Bureau of Investigation (FBI) CarderPlanet and Digital Gaming Solutions raid and distributed denial-of-service attacks and FSB and identity theft and Lyon, Barrett and MVD and NHTCU and online gambling, federal crackdown on and Russia case and Sacco, Ron and underground economy and Vendorsname and Federal government Federal Security Service (FSB) Federal Trade Commission (FTC) FedEx Feinstein, Dianne Fenwick, Trevor Ferguson, Paul Ferrell, Will Fifth Amendment Financial Times Finland Firefox Web browser First Fidelity Five Families Fleiss, Heidi Flyman Flynn, Mickey. See Richardson, Mickey Flynn, Mickey, Jr. Forbes Forbes Ford, Mike Fortune Frank, Barney Frist, Bill “Fruity.” See Green, Brian FSB. See Federal Security Service F-Secure FTC. See Federal Trade Commission Full Tilt Poker The Future of the Internet—And How to Stop It (Zittrain) Gambino crime family Gambling.

pages: 322 words: 84,752

Pax Technica: How the Internet of Things May Set Us Free or Lock Us Up by Philip N. Howard


Affordable Care Act / Obamacare, Berlin Wall, bitcoin, blood diamonds, Bretton Woods, Brian Krebs, British Empire, call centre, Chelsea Manning, citizen journalism, clean water, cloud computing, corporate social responsibility, creative destruction, crowdsourcing, digital map, Edward Snowden,, failed state, Fall of the Berlin Wall, feminist movement, Filter Bubble, Firefox, Francis Fukuyama: the end of history, Google Earth, Howard Rheingold, income inequality, informal economy, Internet of things, Julian Assange, Kibera, Kickstarter, land reform, M-Pesa, Marshall McLuhan, megacity, Mikhail Gorbachev, mobile money, Mohammed Bouazizi, national security letter, Network effects, obamacare, Occupy movement, packet switching, pension reform, prediction markets, sentiment analysis, Silicon Valley, Skype, spectrum auction, statistical model, Stuxnet, trade route, uranium enrichment, WikiLeaks, zero day

However, this perspective doesn’t work because social elites are hardly using the internet to usher in a new era of feudalism. There are important civil-society actors that lead successful campaigns against the absolute dominance of technology firms. The 2012 defeat of the Stop Online Piracy Act and Protect IP Act is a good example of the clout that users can have when they are organized. An important open software movement gives us good, free tools, such as Firefox and Apache. In feudal politics the state and religious authority were one and the same thing. China’s technology businesses and government agencies are sometimes indistinguishable from one another because of complex reporting structures and ownership patterns. In most democracies, technology firms and government agencies are closely aligned but organizationally distinct. Hyperbole aside, Apple, Google, and Microsoft are not states.

See also cyberespionage Estrada, Joseph, 127 Ethiopia, 215 Euromaidan protests (Ukraine), 114–15 Europe, political parties in, defending internet freedom, 166 European Union, 98 export controls, 252 extremism, resilience of, 131 extremist groups, 216–17, 219, 220 Facebook: xiii–xiv, 8, 9, 122; facilitating clan formation, 173, 174; governments requesting data from, 26; used as recruiting tool, 216–17 failed states, 72, 80–84, 94, 159; data from, 110–11; technology use in, 134 failing states, 80–84, 94 fair-trade coffee movement, 49–50 Federal Bureau of Investigation (FBI), 39 Femen network (Ukraine), 86 feudalism, 63–64 filter bubble, 202 financial markets, bots in, 34 Finfisher, 201 Firefox, 64 firms, rise of, 6 FISA. See Foreign Intelligence Surveillance Act Flame (virus), 40 Flemish, self-governance and, 145 Flickr, 9 foreign affairs, device networks and, 249 Foreign Intelligence Surveillance Act, 24 foreign policy, technology policy and, 8 fourth wave, 51 Freegate, 30 Free Syria Army, 62 Frischmann, Brett, 243 FrontlineSMS, 101–2, 119 Fukuda, Hareaki, 253 Fukushima Daiichi nuclear plant, 177 Fukuyama, Francis, 12, 52, 129 Gauss (virus), 40 gender politics, 76–77 geographic information systems, 48 geolocation, xiii–xiv Georgia, 238 Gibbon, Edward, 232 GIS.

Future Files: A Brief History of the Next 50 Years by Richard Watson


Albert Einstein, bank run, banking crisis, battle of ideas, Black Swan, call centre, carbon footprint, cashless society, citizen journalism, commoditize, computer age, computer vision, congestion charging, corporate governance, corporate social responsibility, deglobalization, digital Maoism, disintermediation, epigenetics, failed state, financial innovation, Firefox, food miles, future of work, global supply chain, global village, hive mind, industrial robot, invention of the telegraph, Jaron Lanier, Jeff Bezos, knowledge economy, linked data, low skilled workers, M-Pesa, mass immigration, Northern Rock, peak oil, pensions crisis, precision agriculture, prediction markets, Ralph Nader, Ray Kurzweil, rent control, RFID, Richard Florida, self-driving car, speech recognition, telepresence, the scientific method, The Wisdom of Crowds, Thomas Kuhn: the structure of scientific revolutions, Turing test, Victor Gruen, white flight, women in the workforce, Zipcar

Moreover, key resources like computer storage and processing power are so cheap that it sometimes makes commercial sense to give them away. The result is that making things available for free is now a recognized business model on the internet. In the future it may be the only business model on the internet. A good example is Mozilla Corp. This is the company that’s part of the non-profit foundation behind Firefox, which is a suite of internet applications including a browser. The company has 70 employees and almost 200,000 volunteer helpers. Firefox itself has a 15% share of the global browser market and has been downloaded around 200 million times — or about 250,000 times every day. In other words this is a corporation whose main mass-market consumer product is free, which relies largely on unpaid workers and which might just be the model for a new type of corporation. 290 FUTURE FILES Along the way it could also remodel the not-for-profit sector and perhaps even capitalism itself.

pages: 366 words: 94,209

Throwing Rocks at the Google Bus: How Growth Became the Enemy of Prosperity by Douglas Rushkoff


3D printing, activist fund / activist shareholder / activist investor, Airbnb, algorithmic trading, Amazon Mechanical Turk, Andrew Keen, bank run, banking crisis, barriers to entry, bitcoin, blockchain, Burning Man, business process, buy low sell high, California gold rush, Capital in the Twenty-First Century by Thomas Piketty, carbon footprint, centralized clearinghouse, citizen journalism, clean water, cloud computing, collaborative economy, collective bargaining, colonial exploitation, Community Supported Agriculture, corporate personhood, corporate raider, creative destruction, crowdsourcing, cryptocurrency, disintermediation, diversified portfolio, Elon Musk, Erik Brynjolfsson, ethereum blockchain, fiat currency, Firefox, Flash crash, full employment, future of work, gig economy, Gini coefficient, global supply chain, global village, Google bus, Howard Rheingold, IBM and the Holocaust, impulse control, income inequality, index fund, iterative process, Jaron Lanier, Jeff Bezos, jimmy wales, job automation, Joseph Schumpeter, Kickstarter, loss aversion, Lyft, Marc Andreessen, Mark Zuckerberg, market bubble, market fundamentalism, Marshall McLuhan, means of production, medical bankruptcy, minimum viable product, Naomi Klein, Network effects, new economy, Norbert Wiener, Oculus Rift, passive investing, payday loans, peer-to-peer lending, Peter Thiel, post-industrial society, profit motive, quantitative easing, race to the bottom, recommendation engine, reserve currency, RFID, Richard Stallman, ride hailing / ride sharing, Ronald Reagan, Satoshi Nakamoto, Second Machine Age, shareholder value, sharing economy, Silicon Valley, Snapchat, social graph, software patent, Steve Jobs, TaskRabbit, The Future of Employment, trade route, transportation-network company, Turing test, Uber and Lyft, Uber for X, unpaid internship, Y Combinator, young professional, zero-sum game, Zipcar

The most creative digital companies have begun to mix and match various corporate strategies. The Mozilla Foundation, developers of the Web browser now called Firefox and one of the most successful digital companies of our time, is a not-for-profit. The company is a success both for its widely used open-source technologies and for its leadership position in a field dominated by platform monopolies. Mozilla is actually made up of two different entities: the Mozilla Foundation, a nonprofit, and the Mozilla Corporation, which the foundation oversees. The subsidiary corporation is responsible for much of Mozilla software’s development, marketing, and distribution. It collects the massive revenue generated by Firefox,84 but it has no publicly traded stock, no dividends, and no shareholders. All profits are directed back to the nonprofit,85 which can spend them only to fulfill the Mozilla Foundation’s nonprofit mission: “To promote the development of, public access to and adoption of the open source Mozilla web browsing and Internet application software.”86 By shunting profits into a nonprofit instead of delivering them to shareholders as capital gains, Mozilla is able to maintain its distributed network of open-source volunteers and five hundred to a thousand paid employees.87 Capital is always in service of the business, its products, its employees, and its customers, never vice versa.

pages: 316 words: 90,165

You Are Here: From the Compass to GPS, the History and Future of How We Find Ourselves by Hiawatha Bray


A Declaration of the Independence of Cyberspace, Albert Einstein, Big bang: deregulation of the City of London, bitcoin, British Empire, call centre, crowdsourcing, Dava Sobel, digital map, don't be evil, Edmond Halley, Edward Snowden, Firefox, game design, Google Earth, Hedy Lamarr / George Antheil, Isaac Newton, job automation, John Harrison: Longitude, John Snow's cholera map, license plate recognition, lone genius, openstreetmap, polynesian navigation, popular electronics, RAND corporation, RFID, Ronald Reagan, Silicon Valley, Steve Jobs, Steven Levy, trade route, turn-by-turn navigation, uranium enrichment, urban planning, V2 rocket, Zipcar

He did not elaborate, but Morgan knew that Apple would soon have one of its regular meetings in which senior executives would pitch new product ideas to Steve Jobs. Skyhook had created a version of Loki for Apple’s Mac computers a few months earlier, but it was not good enough for Borchers. He had seen Loki run as an add-on program for the Firefox Internet browser, but worried that Jobs might reject a browser-based program not running on Apple’s own browser, Safari. “I kind of begged him to quickly do a Safari port,” said Borchers, today a general partner at venture investing firm Opus Capital, “because I knew if I showed it on Firefox, that wouldn’t be popular.”8 Meanwhile, Morgan and Shean were determined that Jobs see their technology at its best. Shean had managed to identify the resort where the executive meeting would be held. He flew to the location with a Skyhook wardriving kit, rented a car, and drove throughout the area to make sure it was thoroughly mapped.

pages: 103 words: 32,131

Program Or Be Programmed: Ten Commands for a Digital Age by Douglas Rushkoff


banking crisis, big-box store, citizen journalism, cloud computing, digital map, East Village, financial innovation, Firefox, hive mind, Howard Rheingold, invention of the printing press, Kevin Kelly, Marshall McLuhan, peer-to-peer, Silicon Valley, statistical model, Stewart Brand, Ted Nelson, WikiLeaks

Sure, sometimes the questions people ask are silly ones, based on misleading ads from drug companies or credit agencies. Other times, however, clients demonstrate they are capable of making decisions with their professionals rather than surrendering their authority to them—often leading to better choices and better results. The net’s bias toward collaboration has also yielded some terrific mass participatory projects, from technologies such as the Firefox browser and Linux operating system to resources like Wikipedia. As examples of collective activity, they demonstrate our ability to work together and share the burden in order to share yet again in the tool we have gained. For many, it is a political act and a personal triumph to participate in these noncommercial projects and to do so for reasons other than money. These experiences and tools have, in turn, engendered an online aesthetic that is itself based in sharing and repurposing the output of others.

pages: 136 words: 20,501

Introduction to Tornado by Michael Dory, Adam Parrish, Brendan Berg


don't repeat yourself, Firefox, social web, web application, WebSocket

Let’s take a look at a complete example to see how easy this protocol is to implement. Example: Live Inventory with WebSockets In this section, we will see how easy it is to update the HTTP long polling example we saw previously to use WebSockets. Keep in mind, however, that WebSockets are a new standard and are only supported by the very latest browser versions. The specific WebSocket protocol versions that Tornado supports are only available in Firefox versions 6.0 and up, Safari 5.0.1, Chrome 6 and higher, and the Internet Explorer 10 developer preview. With the disclaimer out of the way, let’s take a look at the source. Most of the code remains unchanged, but the server application needs a few modifications to the ShoppingCart and StatusHandler classes. Example 5-7 should look familiar. Example 5-7. Web Sockets: import tornado.web import tornado.websocket import tornado.httpserver import tornado.ioloop import tornado.options from uuid import uuid4 class ShoppingCart(object): totalInventory = 10 callbacks = [] carts = {} def register(self, callback): self.callbacks.append(callback) def unregister(self, callback): self.callbacks.remove(callback) def moveItemToCart(self, session): if session in self.carts: return self.carts[session] = True self.notifyCallbacks() def removeItemFromCart(self, session): if session not in self.carts: return del(self.carts[session]) self.notifyCallbacks() def notifyCallbacks(self): for callback in self.callbacks: callback(self.getInventoryCount()) def getInventoryCount(self): return self.totalInventory - len(self.carts) class DetailHandler(tornado.web.RequestHandler): def get(self): session = uuid4() count = self.application.shoppingCart.getInventoryCount() self.render("index.html", session=session, count=count) class CartHandler(tornado.web.RequestHandler): def post(self): action = self.get_argument('action') session = self.get_argument('session') if not session: self.set_status(400) return if action == 'add': self.application.shoppingCart.moveItemToCart(session) elif action == 'remove': self.application.shoppingCart.removeItemFromCart(session) else: self.set_status(400) class StatusHandler(tornado.websocket.WebSocketHandler): def open(self): self.application.shoppingCart.register(self.callback) def on_close(self): self.application.shoppingCart.unregister(self.callback) def on_message(self, message): pass def callback(self, count): self.write_message('{"inventoryCount":"%d"}' % count) class Application(tornado.web.Application): def __init__(self): self.shoppingCart = ShoppingCart() handlers = [ (r'/', DetailHandler), (r'/cart', CartHandler), (r'/cart/status', StatusHandler) ] settings = { 'template_path': 'templates', 'static_path': 'static' } tornado.web.Application.

pages: 157 words: 35,874

Building Web Applications With Flask by Italo Maia


continuous integration, create, read, update, delete, Debian,, Firefox, full stack developer, minimum viable product, MVC pattern, premature optimization, web application

We will discuss some very useful features that Flask-testing gives you out of the box: LiveServer setup, extra assertions, and the JSON response handle. Make sure it is installed before continuing: pip install flask-testing blinker LiveServer LiveServer is a Flask-testing tool that allows you to connect to headless browsers, a browser that do not render the content visually (such as Firefox or Chrome) but executes all scripts and styling and simulates user interaction. Use LiveServer whenever you need to evaluate the page content after JavaScript interaction. We'll use PhantomJS as our headless browser. My advice to you is that you install the old browser, like our ancestors did, compiling it from source. Follow these instructions at (you may have to install a few extra libraries in order to get full functionality from phantom).

pages: 677 words: 206,548

Future Crimes: Everything Is Connected, Everyone Is Vulnerable and What We Can Do About It by Marc Goodman


23andMe, 3D printing, active measures, additive manufacturing, Affordable Care Act / Obamacare, Airbnb, airport security, Albert Einstein, algorithmic trading, artificial general intelligence, Asilomar, Asilomar Conference on Recombinant DNA, augmented reality, autonomous vehicles, Baxter: Rethink Robotics, Bill Joy: nanobots, bitcoin, Black Swan, blockchain, borderless world, Brian Krebs, business process, butterfly effect, call centre, Chelsea Manning, cloud computing, cognitive dissonance, computer vision, connected car, corporate governance, crowdsourcing, cryptocurrency, data acquisition, data is the new oil, Dean Kamen, disintermediation, don't be evil, double helix, Downton Abbey, drone strike, Edward Snowden, Elon Musk, Erik Brynjolfsson, Filter Bubble, Firefox, Flash crash, future of work, game design, Google Chrome, Google Earth, Google Glasses, Gordon Gekko, high net worth, High speed trading, hive mind, Howard Rheingold, hypertext link, illegal immigration, impulse control, industrial robot, Intergovernmental Panel on Climate Change (IPCC), Internet of things, Jaron Lanier, Jeff Bezos, job automation, John Harrison: Longitude, John Markoff, Jony Ive, Julian Assange, Kevin Kelly, Khan Academy, Kickstarter, knowledge worker, Kuwabatake Sanjuro: assassination market, Law of Accelerating Returns, Lean Startup, license plate recognition, lifelogging, litecoin, M-Pesa, Mark Zuckerberg, Marshall McLuhan, Menlo Park, Metcalfe’s law, mobile money, more computing power than Apollo, move fast and break things, move fast and break things, Nate Silver, national security letter, natural language processing, obamacare, Occupy movement, Oculus Rift, off grid, offshore financial centre, optical character recognition, Parag Khanna, pattern recognition, peer-to-peer, personalized medicine, Peter H. Diamandis: Planetary Resources, Peter Thiel, pre–internet, RAND corporation, ransomware, Ray Kurzweil, refrigerator car, RFID, ride hailing / ride sharing, Rodney Brooks, Satoshi Nakamoto, Second Machine Age, security theater, self-driving car, shareholder value, Silicon Valley, Silicon Valley startup, Skype, smart cities, smart grid, smart meter, Snapchat, social graph, software as a service, speech recognition, stealth mode startup, Stephen Hawking, Steve Jobs, Steve Wozniak, strong AI, Stuxnet, supply-chain management, technological singularity, telepresence, telepresence robot, Tesla Model S, The Future of Employment, The Wisdom of Crowds, Tim Cook: Apple, trade route, uranium enrichment, Wall-E, Watson beat the top human players on Jeopardy!, Wave and Pay, We are Anonymous. We are Legion, web application, Westphalian system, WikiLeaks, Y Combinator, zero day

Virus writers today recognize that the public is slowly (very slowly) beginning to get the message not to click on files sent by strangers. As a result, criminals have updated their tactics to create so-called drive-by downloads, which use malware to exploit vulnerabilities in computer scripting languages such as Java and ActiveX, languages commonly used by Internet Web browsers. The world has moved online, and hacking tools such as Internet Explorer, Firefox, and Safari makes sense for criminals, though the new modus operandi comes with a heavy cost for unsuspecting users. Researchers at Palo Alto Networks discovered that as much as 90 percent of modern malware is now spread via previously hacked popular Web sites that serve up the computer infection the moment an unsuspecting visitor stops by the site. Many large companies, including Yahoo!, a major destination portal around the world, have had their Web sites hijacked by criminals and thus unknowingly poisoned their own customers who innocently stopped by to check sports scores or the latest stock market returns.

The malware was designed and disseminated by a hacking group in St. Petersburg, Russia, and though the criminals responsible were individually identified and even publicly named, Russian authorities have refused to extradite them to face trial for their crimes. Of course these days, social media attack tools have become streamlined, and one need not even be a master hacker to steal information. For example, Firesheep is a simple Firefox browser plug-in that anyone could download to take over the Facebook session of others on the same network and hijack their Facebook accounts. With this, for example, if you checked your Facebook account at a local Starbucks while sharing the network with twenty-five other people in the coffee shop, and if one of them was running Firesheep, the hacker could use the plug-in to log in as you on your own Facebook account.

Passport to the Dark Web In order for Dread Pirate Roberts’s criminal buyers and sellers to transact in his Silk Road marketplace, they first had to figure out how to get there. Just like the real world, you can’t simply knock on the door of any house on the block and expect to score a kilo of meth. The same holds true for the digital underground. You don’t get there by merely typing an address in your Firefox browser and hoping to be magically transported to the inner sanctum of Crime, Inc. Rather, you need a passport and a Sherpa to guide you. That journey begins with Tor—The Onion Router, a software tool that provides the closest thing to actual anonymity on the Internet. Tor works by routing your Web connections through a worldwide array of five thousand computer servers in order to hide the source and destination of your connection.

pages: 797 words: 227,399

Robotics Revolution and Conflict in the 21st Century by P. W. Singer


agricultural Revolution, Albert Einstein, Any sufficiently advanced technology is indistinguishable from magic, Atahualpa, barriers to entry, Berlin Wall, Bill Joy: nanobots, blue-collar work, borderless world, clean water, Craig Reynolds: boids flock, cuban missile crisis, digital map,, Ernest Rutherford, failed state, Fall of the Berlin Wall, Firefox, Francisco Pizarro, Frank Gehry, friendly fire, game design, George Gilder, Google Earth, Grace Hopper, I think there is a world market for maybe five computers, if you build it, they will come, illegal immigration, industrial robot, interchangeable parts, Intergovernmental Panel on Climate Change (IPCC), invention of gunpowder, invention of movable type, invention of the steam engine, Isaac Newton, Jacques de Vaucanson, job automation, Johann Wolfgang von Goethe, Law of Accelerating Returns, Mars Rover, Menlo Park, New Urbanism, pattern recognition, private military company, RAND corporation, Ray Kurzweil, RFID, robot derives from the Czech word robota Czech, meaning slave, Rodney Brooks, Ronald Reagan, Schrödinger's Cat, Silicon Valley, speech recognition, Stephen Hawking, strong AI, technological singularity, The Coming Technological Singularity, The Wisdom of Crowds, Turing test, Vernor Vinge, Wall-E, Yogi Berra

A project run out of the National Institutes of Health took it to the next step, where two severely disabled patients played a video game against each other, both controlling their sides solely by thought. “It’s as if the first flight at Kitty Hawk has gone a few hundred feet,” program director Joseph Pancrazio described of the possibilities that might follow. In the world of war, in which microseconds are the difference between life and death, such thought interfaces infinitely speed up reaction time. Many scientists make the comparison to the movie Firefox, in which Clint Eastwood pilots a thought-controlled plane to easy victory over regular planes. In high-speed air battles, the ability to maneuver just by thinking, versus having to jerk a joystick around while fighting g-forces, can be huge. Even more, the ability will allow humans to fight virtually from “inside” unmanned systems, combining the advantages of manned planes with unmanned systems.

At Duke University test subjects have been connected via electrodes as thin as a human hair, while a program at Emory University has developed implants the size of a grain of rice. Much as Internet connections have gone wireless, so might the implanted brain chips one day. This development will give soldiers in the field access to all sorts of new capabilities beyond just controlling their robots by thought. For example, when I couldn’t remember who starred in Firefox, I punched in a search on my desktop computer’s Internet browser. Imagine instead being able to do such searches inside our heads. One researcher explains that the ability to directly connect to the Internet “is going to be my mental prosthesis. Everything I want to know, I can look up. Everything I can forget, I can find. I’m going to get old, but it won’t matter. I won’t have to remember anything.”

“Bart,” Evergreen International Everything Bad Is Good for You (Johnson) explosively formed projectile (EFP) Explosive Ordnance Disposal (EOD) team Fabricius, Gary Face of Battle, The (Keegan) Fallujah, battles of FCS (Future Combat Systems) program) Federal Bureau of Investigation (FBI) Federal Emergency Management Agency (FEMA) Fehrenbach, T.R. Fermi, Enrico Ferreira, Jose Fetch (robot) Fick, Nathaniel Fire Fly (unmanned aeronautic vehicle) Firefox (film) First Marine Expeditionary Force, U.S. Fisher, John “Jackie,” Finagle’s law Financial Accelerating Transactions (FatkaT) Finkelstein, Robert Flight Simulator (computer program) Florida Institute for Human and Machine Cognition Fogleman, Ronald R. Ford, Harrison Ford Motor Company Forever Peace (Haldeman) Foster, Eugene Foster-Miller company headquarters of Fox News France Franco, Julio Franklin, Benjamin Franks, Tommy Freeman, Chas Freud, Sigmund Friedman, George Friedman, Meredith Fukuyama, Francis Fuller, J.F.C.

pages: 752 words: 131,533

Python for Data Analysis by Wes McKinney


backtesting, cognitive dissonance, crowdsourcing, Debian, Firefox, Google Chrome, Guido van Rossum, index card, random walk, recommendation engine, revision control, sentiment analysis, Sharpe ratio, side project, sorting algorithm, statistical model, type inference

In [1]: import pandas In [2]: plot(arange(10)) If successful, there should be no error messages and a plot window will appear. You can also check that the IPython HTML notebook can be successfully run by typing: $ ipython notebook --pylab=inline Caution If you use the IPython notebook application on Windows and normally use Internet Explorer, you will likely need to install and run Mozilla Firefox or Google Chrome instead. EPDFree on Windows contains only 32-bit executables. If you want or need a 64-bit setup on Windows, using EPD Full is the most painless way to accomplish that. If you would rather install from scratch and not pay for an EPD subscription, Christoph Gohlke at the University of California, Irvine, publishes unofficial binary installers for all of the book’s necessary packages ( for 32- and 64-bit Windows.

The fillna function can replace missing (NA) values and unknown (empty strings) values can be replaced by boolean array indexing: In [296]: clean_tz = frame['tz'].fillna('Missing') In [297]: clean_tz[clean_tz == ''] = 'Unknown' In [298]: tz_counts = clean_tz.value_counts() In [299]: tz_counts[:10] Out[299]: America/New_York 1251 Unknown 521 America/Chicago 400 America/Los_Angeles 382 America/Denver 191 Missing 120 Europe/London 74 Asia/Tokyo 37 Pacific/Honolulu 36 Europe/Madrid 35 Making a horizontal bar plot can be accomplished using the plot method on the counts objects: In [301]: tz_counts[:10].plot(kind='barh', rot=0) See Figure 2-1 for the resulting figure. We’ll explore more tools for working with this kind of data. For example, the a field contains information about the browser, device, or application used to perform the URL shortening: In [302]: frame['a'][1] Out[302]: u'GoogleMaps/RochesterNY' In [303]: frame['a'][50] Out[303]: u'Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2' In [304]: frame['a'][51] Out[304]: u'Mozilla/5.0 (Linux; U; Android 2.2.2; en-us; LG-P925/V10e Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' Figure 2-1. Top time zones in the sample data Parsing all of the interesting information in these “agent” strings may seem like a daunting task. Luckily, once you have mastered Python’s built-in string functions and regular expression capabilities, it is really not so bad.

pages: 452 words: 134,502

Hacking Politics: How Geeks, Progressives, the Tea Party, Gamers, Anarchists and Suits Teamed Up to Defeat SOPA and Save the Internet by David Moon, Patrick Ruffini, David Segal, Aaron Swartz, Lawrence Lessig, Cory Doctorow, Zoe Lofgren, Jamie Laurie, Ron Paul, Mike Masnick, Kim Dotcom, Tiffiniy Cheng, Alexis Ohanian, Nicole Powers, Josh Levy


4chan, Affordable Care Act / Obamacare, Airbnb, Bernie Sanders, Burning Man, call centre, Cass Sunstein, collective bargaining, creative destruction, crony capitalism, crowdsourcing, don't be evil, facts on the ground, Firefox, hive mind, immigration reform, informal economy, jimmy wales, Kickstarter, liquidity trap, Mark Zuckerberg, obamacare, Occupy movement, offshore financial centre, peer-to-peer, Plutocrats, plutocrats, prisoner's dilemma, QR code, rent-seeking, Silicon Valley, Skype, technoutopianism, WikiLeaks, Y Combinator

They said it was about piracy, but it was really about something more. It was part of a war on sharing, a fight against the way that the open, distributed Internet works. It was a blatant attempt to preserve their business models to the detriment of artists, innovators, and the public at large. And it was poised to pass. I called up some of my friends at Mozilla (you may have heard of their browser, Firefox) and said that we had to do something, and quick. 19 HACKING POLITICS Aaron Swartz When the bill came back and started moving again, it all started coming together. All the folks we had talked to suddenly began really getting involved— and getting others involved. Everything started snowballing. It happened so fast. I remember one week, I was having dinner with a fellow in the technology industry.

They said it was about piracy, but it was really about something more. It was part of a war on sharing, a fight against the way that the open, distributed Internet works. It was a blatant attempt to preserve their business models to the detriment of artists, innovators, and the public at large. And it was poised to pass. I called up some of my friends at Mozilla (you may have heard of their browser, Firefox) and said that we had to do something, and quick. So we held a small informal and interactive meeting of entrepreneurs, technologists, and activists to strategize on a plan. Fortunately, we had some people that worked for Congress in the room, and they told us, “This bill is pretty much a done deal. Unless you do something really huge, it will pass.” And like that, the alarms went off. We had to do something huge.

pages: 515 words: 126,820

Blockchain Revolution: How the Technology Behind Bitcoin Is Changing Money, Business, and the World by Don Tapscott, Alex Tapscott


Airbnb, altcoin, asset-backed security, autonomous vehicles, barriers to entry, bitcoin, blockchain, Bretton Woods, business process, Capital in the Twenty-First Century by Thomas Piketty, carbon footprint, clean water, cloud computing, cognitive dissonance, commoditize, corporate governance, corporate social responsibility, creative destruction, Credit Default Swap, crowdsourcing, cryptocurrency, disintermediation, distributed ledger, Donald Trump, double entry bookkeeping, Edward Snowden, Elon Musk, Erik Brynjolfsson, ethereum blockchain, failed state, fiat currency, financial innovation, Firefox, first square of the chessboard, first square of the chessboard / second half of the chessboard, future of work, Galaxy Zoo, George Gilder, glass ceiling, Google bus, Hernando de Soto, income inequality, informal economy, information asymmetry, intangible asset, interest rate swap, Internet of things, Jeff Bezos, jimmy wales, Kickstarter, knowledge worker, Kodak vs Instagram, Lean Startup, litecoin, Lyft, M-Pesa, Marc Andreessen, Mark Zuckerberg, Marshall McLuhan, means of production, microcredit, mobile money, money market fund, Network effects, new economy, Oculus Rift, off grid, pattern recognition, peer-to-peer, peer-to-peer lending, peer-to-peer model, performance metric, Peter Thiel, planetary scale, Ponzi scheme, prediction markets, price mechanism, Productivity paradox, QR code, quantitative easing, ransomware, Ray Kurzweil, renewable energy credits, rent-seeking, ride hailing / ride sharing, Ronald Coase, Ronald Reagan, Satoshi Nakamoto, Second Machine Age, seigniorage, self-driving car, sharing economy, Silicon Valley, Skype, smart contracts, smart grid, social graph, social software, Stephen Hawking, Steve Jobs, Steve Wozniak, Stewart Brand, supply-chain management, TaskRabbit, The Fortune at the Bottom of the Pyramid, The Nature of the Firm, The Wisdom of Crowds, transaction costs, Turing complete, Turing test, Uber and Lyft, unbanked and underbanked, underbanked, unorthodox policies, wealth creators, X Prize, Y2K, Zipcar

Peer production communities can be “commons-based peer production,” a phrase coined by Harvard Law professor Yochai Benkler.18 Sometimes called social production, also Benkler’s term, this system means that goods and services are produced outside the bounds of the private sector and are not “owned” by a corporation or individual. Among the countless examples are the Linux operating system (owned by no one but now the most important operating system in the world), Wikipedia (owned by the Wikimedia Foundation), and the Firefox Web browser (owned by the Mozilla Foundation). Peer production can also refer to activities in the private sector where peers collaborate socially to produce something but the good is not socially owned. Peer production as a business model matters for two reasons. First, sometimes peers collaborate voluntarily to produce goods and services where a corporation acts as curator and achieves commercial benefit.

See also Microfinance blockchain IPOs, 82–84 blockchain transformations of, 8, 18–19, 58–63, 64, 128 frameworks for accounting and corporate governance, 73–79 Golden Eight of, 61–63, 64, 86 identity issues, 61, 64, 78–79 paradoxes of traditional finance, 55–57 players in blockchain ecosystem, 285 prediction markets, 84–85 reputation and credit score, 79–82 retail services, 71–73 smart devices and IoT, 159 from stock exchanges to block exchanges, 63, 65–66 Financial stability, 295 Financial utility, 69–70 Firefox Web, 129 First era of the Internet, 3–4, 12–14, 15, 39, 49, 92, 95, 106, 124, 265, 281–82, 299–300 “Float,” 45 FNY Capital, 83 Food industry, 138–39, 157–58 Ford, Henry, 246 Forde, Brian, 247, 282, 286, 287, 305 Foreign aid, 20–21, 188–92 Formation costs, 179 Fragmenting public discourse, 212–13 Free agent nation, 110 Freedom of Information laws, 208–9 Free press, 243–46 Free speech, 243–46 Freitas, Miguel, 246 Funding, in financial services, 62–63, 64 Fund-raising, 179 Futarchy, 220 Future Crimes (Goodman), 276 Future-proofing, 152, 197 Galaxy Zoo, 12 Gauck, Joachim, 52 Gault, Mike, 199 Gemini, 284, 291 Gems, 94–95 Gender differences, in banking access, 178, 192 Germany, 27, 51–52 GetGems, 245 Gibson, William, 255 GitHub, 89, 138 Global solution networks (GSNs), 283, 300–307 Global standards networks, 304–6 “God Protocol, The” (Szabo), 4–5 Gold, 34, 95, 199, 254, 260 Goldcorp Challenge, 223 Golden Eight, 61–63, 64, 86 Goldman Sachs, 66, 70, 71, 284 Goodman, Marc, 276 Google, 13, 96, 118, 140, 143, 161, 180, 255, 270, 275 Gore, Al, 212 Governance, 24, 283, 288–89, 307 distributed power, 33–35, 273 in financial services, 73–79 new framework for blockchain, 298–307 regulations vs., 296–97 Government Digital Service, U.K., 205 Governments, 9, 13, 23, 197–225 alternative models of politics and justice, 218–21 Big Brother, 244, 274–75 blockchain voting, 215–17 design principles in, 201–3 empowering people to serve selves and others, 207–11 engaging citizens to solve big problems, 221–23 Estonia example, 197–99, 203, 204, 206–7 in financial services industry, 70 high-performance services and operations, 203–7 players in blockchain ecosystem, 286–87 second era of democracy, 211–15 stifling or twisting bitcoin, 263–65 tools of twenty-first-century, 223–25 Grande, Ariana, 228 Greifeld, Bob, 65, 66, 84 Guardtime, 199 Guez, Bruno, 238 Gun rights, 200–201, 276 Gupta, Vinay, 226, 227 Hacking, 39, 40, 41, 118–19, 138, 151–52, 243–44 boundary decisions, 112–14 business model innovation, 142–44 DAEs, 273–74 smart things, 168–69 Hagel, John, 94 Haiti earthquake of 2010, 20–21, 188–89 remittances, 183 Haldane, Andrew, 9 Hamel, Gary, 110 Hanks, Tom, 78 Hanson, Robin, 220 Hashcash, 34 Hash rate, 241, 260 Hash value, 32 Hawking, Stephen, 274 Health care, 151, 158 Heap, Imogen, 21, 226, 227–28, 229, 231–35 Hearn, Mike, 69, 164–65, 271, 282 HedgeStreet, 84 Hedgy, 105 Herstatt risk, 59–60 Hewlett-Packard, 150 Hierarchies, 12, 88, 93–101, 105–6 High latency, 256–57 Hill, Austin, 28 design principles, 38, 40–41, 43, 51 financial services, 63, 65–67, 76 implementation challenges, 262, 272 Holacracy, 48–49, 88 Hollywood Stock Exchange, 84 Home management, 161, 275 Homomorphic encryption, 28 Honduras, 193–95 Honesty, 10, 11 Horizontal search, 97 Humanitarian aid, 20–21, 188–92 Human Rights Watch, 200 Hyperledger Project, 69–70, 285, 305 IBM, 39, 111, 118, 129–30, 150, 153 IBM Connections, 139 IBM Institute for Business Value, 163 Ideagoras, 137, 138 Identity, 3–4, 14–16, 264–65.

pages: 523 words: 143,139

Algorithms to Live By: The Computer Science of Human Decisions by Brian Christian, Tom Griffiths


4chan, Ada Lovelace, Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Albert Einstein, algorithmic trading, anthropic principle, asset allocation, autonomous vehicles, Bayesian statistics, Berlin Wall, Bill Duvall, bitcoin, Community Supported Agriculture, complexity theory, constrained optimization, cosmological principle, cryptocurrency, Danny Hillis, David Heinemeier Hansson, delayed gratification, dematerialisation, diversification, Donald Knuth, double helix, Elon Musk, fault tolerance, Fellow of the Royal Society, Firefox, first-price auction, Flash crash, Frederick Winslow Taylor, George Akerlof, global supply chain, Google Chrome, Henri Poincaré, information retrieval, Internet Archive, Jeff Bezos, John Nash: game theory, John von Neumann, knapsack problem, Lao Tzu, Leonard Kleinrock, linear programming, martingale, Nash equilibrium, natural language processing, NP-complete, P = NP, packet switching, Pierre-Simon Laplace, prediction markets, race to the bottom, RAND corporation, RFC: Request For Comment, Robert X Cringely, sealed-bid auction, second-price auction, self-driving car, Silicon Valley, Skype, sorting algorithm, spectrum auction, Steve Jobs, stochastic process, Thomas Bayes, Thomas Malthus, traveling salesman, Turing machine, urban planning, Vickrey auction, Vilfredo Pareto, Walter Mischel, Y Combinator, zero-sum game

The fact that you accessed one of these recently is a clue that you’re likely to do so again, and, all things being equal, the program that you haven’t been using for the longest time is also probably the one that won’t be used for some time to come. In fact, this principle is even implicit in the interface that computers show to their users. The windows on your computer screen have what’s called a “Z-order,” a simulated depth that determines which programs are overlaid on top of which. The least recently used end up at the bottom. As former creative lead for Firefox, Aza Raskin, puts it, “Much of your time using a modern browser (computer) is spent in the digital equivalent of shuffling papers.” This “shuffling” is also mirrored exactly in the Windows and Mac OS task switching interfaces: when you press Alt + Tab or Command + Tab, you see your applications listed in order from the most recently to the least recently used. The literature on eviction policies goes about as deep as one can imagine—including algorithms that account for frequency as well as recency of use, algorithms that track the time of the next-to-last access rather than the last one, and so on.

See also auctions; investment strategies; market behavior bubbles Nash equilibrium and tragedy of commons and Economist Edmonds, Jack educational evaluation Edwards, Ward efficient algorithm efficient or tractable problem, defined Egyptian pharaohs’ reigns electrical memory organ elevator pitch email emotions Engel, Joel Eno, Brian environmental movement epidemiology equality equilibrium Erlang, Agner Krarup Erlang distribution error bars error tradeoff space ethics Evernote eviction policies evolution constraints and expected value Explicit Congestion Notification (ECN) explore/exploit tradeoff Exponential Backoff exponential time (O(2n)) Facebook factorial time (O(n!)) fads false positives FBI FCC spectrum auctions FDA feedback fencing filing Finkel, Larry Firefox fire truck problem First-In, First-Out (FIFO) fitness Fitzgerald, F. Scott Flack, Jessica flash memory flat hierarchies Flood, Merrill flow control food fads minimizing rotten overfitting and Forbes forgetting curve forgiveness Forster, E. M. Fortune 500 list Frank, Robert Franklin, Benjamin Fredrickson, Barbara Fried, Jason full-information games optimal stopping and fundamental investors future, discounted Galileo gambling game theory gaming Gantt, Henry Gantt charts Gardner, Martin Gaskell, R.

pages: 184 words: 12,922

Pragmatic Version Control Using Git by Travis Swicegood


continuous integration, David Heinemeier Hansson,, Firefox, George Santayana, revision control

It is hosted on GitHub, where you can download the latest build and get information on building it from source. Report erratum Prepared exclusively for Trieu Nguyen this copy is (P2.0 printing, March 2009) 168 Download at Boykma.Com T HIRD -P AR TY T OOLS Komodo IDE ActiveState announced that it’s integrating support for several DVCSs including Git in the 5.0 release of the Komodo IDE. Komodo is an integrated development environment geared toward scripting languages and web development. It is built on Mozilla 1.9, the same branch of Mozilla that Firefox 3 is written on. ActiveState released the first alpha version of Komodo IDE version 5.0 in August 2008. The current plan is to have the stable release out sometime in the fall of 2008. You can obtain information about the latest version of the Komodo IDE from its website. Eclipse Git Plug-In Eclipse is a popular cross-browser IDE written in Java.

pages: 144 words: 55,142

Interlibrary Loan Practices Handbook by Cherie L. Weible, Karen L. Janke


Firefox, information retrieval, Internet Archive, late fees, optical character recognition, pull request, QR code, transaction costs, Works Progress Administration

Most recently, the addition of Addons to ILLiad allows library staff to integrate web services within the ILLiad Client.5 OpenURL resolvers, OCLC cataloging, book vendors, and search engines are already available. 113 114 the future of interlibrary loan Together, users and ILL staff will strategically navigate these similar landscapes of information supply to produce innovative strategies that improve mutual informed decision making and expand service. Tools that automate and resolve data help us streamline and bundle options. Book Burro ( was an early tool that developed automatic resolution of information supply for end users. This Firefox extension provides quick access to numerous options for book readers, including libraries holding the work by location, price to purchase, peerto-peer sharing, and other service options. Practically speaking, an end user could easily take a desired book record and choose a delivery option by comparing the display of the nearest library holding that item with the cost of buying it from various vendors or obtaining it for free using peer-sharing networks.

pages: 266 words: 38,397

Mastering Ember.js by Mitchel Kelonye


Firefox, MVC pattern, Ruby on Rails, single page application, web application, WebRTC, WebSocket

Controller dependency should instead be used to access other controllers from routes and controllers, as shown in the following example: App.ApplicationController = Em.Controller.extend({ title: 'My app' }); App.IndexController = Em.Controller.extend({ needs: [ 'application' ], actions: { save: function(){ var title =this.get('controllers.application'); console.log(title); } } }); Finally, we can enable logs that will indicate generation of controllers by passing another option during application instantiation, as shown in the following example: App = Ember.Application.create({ LOG_ACTIVE_GENERATION: true }); Views Instantiated views have unique IDs and can therefore be looked up accordingly, as follows: Ember.Logger.log(Ember.View.views['ember1']); Just as with routes, we can also log view events on route transitions. This may be useful in cases where we need to verify whether registered view classes are being used. This behavior can be enabled as follows: var App = Ember.Application.create({ LOG_VIEW_LOOKUPS: true }); Using the Ember.js inspector An Ember.js application can be inspected via a browser extension that is available for Chrome, Opera, and Firefox. This extension lets you inspect objects in your application from an Ember.js tab that is created in the developer tools. To get started in Chrome, you'll need to do the following: Visit chrome://flags and ensure Experimental Extension APIs is enabled. Install the extension at Restart Chrome. Open your Ember.js application and press the Ctrl + U keys to launch the developer tools.

pages: 188 words: 9,226

Collaborative Futures by Mike Linksvayer, Michael Mandiberg, Mushon Zer-Aviv


4chan, Benjamin Mako Hill, British Empire, citizen journalism, cloud computing, collaborative economy, corporate governance, crowdsourcing, Debian,, Firefox, informal economy, jimmy wales, Kickstarter, late capitalism, loose coupling, Marshall McLuhan, means of production, Naomi Klein, Network effects, optical character recognition, packet switching, postnationalism / post nation state, prediction markets, Richard Stallman, semantic web, Silicon Valley, slashdot, Slavoj Žižek, stealth mode startup, technoutopianism, the medium is the message, The Wisdom of Crowds, web application

His chapter on “Free Culture in Relation to So ware Freedom” was published in FREE BEER, a book wri en by speakers at FSCONS 2008. Linksvayer holds a degree from the University of Illinois at UrbanaChampaign in economics, a field which continues to strongly inform his approach. He lives in Oakland, California. 146 Michael Mandiberg is known for selling all of his possessions online on Shop Mandiberg, making perfect copies of copies on A, and creating Firefox plugins that highlight the real environmental costs of a global economy on His current projects include the co-authored groundbreaking Creative Commons licensed textbook “Digital Foundations: an Intro to Media Design” that teaches Bauhaus visual principles through design so ware;, a car direction site that incorporates the financial and carbon cost of driving; and Bright Bike, a retro-reflective bicycle praised by as “obnoxiously bright.”

pages: 209 words: 63,649

The Purpose Economy: How Your Desire for Impact, Personal Growth and Community Is Changing the World by Aaron Hurst


3D printing, Airbnb, Atul Gawande, barriers to entry, big-box store, business process, call centre, carbon footprint, citizen journalism, commoditize, corporate social responsibility, crowdsourcing, disintermediation, Elon Musk, Firefox, glass ceiling, greed is good, housing crisis, informal economy, Jane Jacobs, jimmy wales, Khan Academy, Kickstarter, Lean Startup, means of production, new economy, pattern recognition, Peter Singer: altruism, Peter Thiel, QR code, Ray Oldenburg, remote working, Richard Feynman, Ronald Reagan, selection bias, sharing economy, Silicon Valley, Silicon Valley startup, Steve Jobs, TaskRabbit, Tony Hsieh, too big to fail, underbanked, women in the workforce, young professional, Zipcar

SECTION THREE Social Purpose—The Purpose Economy Organization 8 The Purpose Economy Organization If you were online in 1997, there was about an 80 percent chance you were surfing the web using Netscape’s browser. By 2002, Microsoft’s Internet Explorer had secured 90 percent of the browser market. In its death throes, Netscape was purchased by AOL and eventually put to rest when AOL merged with TimeWarner. But by July 2013, Internet Explorer enjoyed only a 4 percent market advantage over Firefox, a new browser that rose from the ashes of Netscape. It is a classic story of the Information Economy—the browser wars. Hidden in the story, however, is the remarkable story of a Purpose Economy organization and its inspiring success against Microsoft, the Goliath of the day. Microsoft had invested so many resources in Internet Explorer that by 1998, Netscape realized it could no longer compete.

pages: 271 words: 52,814

Blockchain: Blueprint for a New Economy by Melanie Swan


23andMe, Airbnb, altcoin, Amazon Web Services, asset allocation, banking crisis, basic income, bioinformatics, bitcoin, blockchain, capital controls, cellular automata, central bank independence, clean water, cloud computing, collaborative editing, Conway's Game of Life, crowdsourcing, cryptocurrency, disintermediation, Edward Snowden,, ethereum blockchain, fault tolerance, fiat currency, financial innovation, Firefox, friendly AI, Hernando de Soto, intangible asset, Internet Archive, Internet of things, Khan Academy, Kickstarter, lifelogging, litecoin, Lyft, M-Pesa, microbiome, Network effects, new economy, peer-to-peer, peer-to-peer lending, peer-to-peer model, personalized medicine, post scarcity, prediction markets, QR code, ride hailing / ride sharing, Satoshi Nakamoto, Search for Extraterrestrial Intelligence, SETI@home, sharing economy, Skype, smart cities, smart contracts, smart grid, software as a service, technological singularity, Turing complete, unbanked and underbanked, underbanked, web application, WikiLeaks

The actions necessary to register a new domain or to update an existing one are built in to the Namecoin protocol, based on transaction type—for example, the “name_new” transaction at a cost of 0.01 NMC (Namecoin is convertible in/out of Bitcoin). Domains can be registered directly with the Namecoin system or via a registration service like Because the top-level domain .bit is outside the traditional operation of the Internet, to facilitate viewing .bit websites, there are .bit proxy servers to handle DNS requests in a browser, as well as Firefox and Chrome extensions. According to the Bitcoin Contact website as of October 2014, there are 178,397 .bit domains registered, including, for example, wikileaks.bit. The key point is that .bit domains are a free-speech mechanism, because now having the ability to view .bit websites means attempts to silence those with a legitimate message will have less of a chance of succeeding. Just as there are benefits to having decentralized currency transactions, there are benefits to having many other kinds of decentralized transactions.

pages: 218 words: 44,364

The Starfish and the Spider: The Unstoppable Power of Leaderless Organizations by Ori Brafman, Rod A. Beckstrom


Atahualpa, barriers to entry, Burning Man, creative destruction, disintermediation, experimental economics, Firefox, Francisco Pizarro, jimmy wales, Kibera, Lao Tzu, Network effects, peer-to-peer, pez dispenser, shareholder value, Silicon Valley, Skype, The Wisdom of Crowds, union organizing

Unlike the litigious record labels, however, Sun and IBM have found innovative ways to ride the decentralized wave. IBM saw that Linux—the open-source operating system that rivals Microsoft Windows—was gaining traction. Instead of competing with the decentralized market entrants, IBM supported them. It deployed six hundred engineers whose sole job was to contribute to Linux, and it actively supported the development of Apache and Fire-fox, the open-source browser that competes with Microsoft's Internet Explorer. IBM's strategy was based in part on the "whoever is my enemy's enemy is my friend" philosophy. That is, "if these programs are hurting Microsoft, our competitor, then let's help them." But it's not just about thwarting competitors. IBM has THE COMBO SPECIAL: THE HYBRID ORGANIZATION predicted that open-source is going to win out in the end.

Backbone.js Cookbook by Vadim Mirgorod


Airbnb, create, read, update, delete,, Firefox, Google Chrome, MVC pattern, QR code, rolodex, Ruby on Rails, web application

It allows performing HTTP queries on a RESTful service and visualizes JSON data. Getting ready... Follow these steps to be prepared for this recipe: 1. Create an account on the MongoLab website (, or log in if you have an existing one. 2. Install the Advanced REST client on your browser using the URL https:// hgmloofddffdnphfgcellkdfbfbjeloo. If you're using Firefox or Safari, you can easily find a similar extension for this purpose. 181 REST and Storage How to do it... Follow these steps to create a MongoLab database and fill it with data: 1. Go to and create a new database named billing-app within your MongoLab account. 2. Go to<username> and get an API key that you can use for authentication. 3.

pages: 218 words: 60,935

How to Buy Property at Auction: The Essential Guide to Winning Property and Buy-To-Let Bargains by Samantha Collett


Firefox, proxy bid, the market place, time value of money

• Rightmove is the big daddy of the property listings world and offers the most comprehensive listings of all properties for sale and rent in the UK. They also have some very useful tools such as the ‘Price Comparison Report’ where you can see sold prices, and often this will include the property’s original full listing with photos, floor plans and more details. See • Property-Bee is a clever Firefox add-on to Rightmove which can turbo-charge the results. The Property-Bee toolbar will show all changes to the price and details since the property was listed. This means you have a complete history of when the property was put on the market, price changes (up and down), whether the property has been sold subject to contract (SSTC) and come back onto the market, and any changes to the details. See • Zoopla is another leading UK property website which offers a huge number of properties for sale and rent.

pages: 259 words: 73,193

The End of Absence: Reclaiming What We've Lost in a World of Constant Connection by Michael Harris


4chan, Albert Einstein, AltaVista, Andrew Keen, augmented reality, Burning Man, Carrington event, cognitive dissonance, crowdsourcing, dematerialisation,, Filter Bubble, Firefox, Google Glasses, informal economy, information retrieval, invention of movable type, invention of the printing press, invisible hand, James Watt: steam engine, Jaron Lanier, jimmy wales, Kevin Kelly, lifelogging, Loebner Prize, Marshall McLuhan, McMansion, moral panic, Nicholas Carr, pattern recognition, pre–internet, Republic of Letters, Silicon Valley, Skype, Snapchat, social web, Steve Jobs, the medium is the message, The Wisdom of Crowds, Turing test

The world’s arbiter of truth: “Wikipedia: List of Hoaxes on Wikipedia,” accessed January 13, 2014, Four years later, I asked: “Who is Erica Feldman . . . ?,” snapshot from January 6, 2014, via Google’s cache, There are even hoaxes about hoaxes: “List of Fictitious People,”, accessed January 15, 2014, I see there are currently: “Wikipedia:Statistics,” Wikipedia, accessed January 17, 2014, Printing Wikipedia in a book: “Wikipedia:Size in Volumes,” Wikipedia, accessed January 17, 2014,

pages: 288 words: 66,996

Travel While You Work: The Ultimate Guide to Running a Business From Anywhere by Mish Slade


Airbnb, Atul Gawande, business process, Checklist Manifesto, cloud computing, crowdsourcing, Firefox, Google Chrome, Google Hangouts, Inbox Zero, job automation, Lyft, remote working, side project, Skype, speech recognition, turn-by-turn navigation

But although HTTPS is used as the default by many major sites (including Gmail, Facebook and Twitter), a lot of sites have both secure and non-secure versions – and even if you remember to start your visit by typing "HTTPS", you could easily click a link that sends you back to the non-secure HTTP version without noticing. To avoid having to worry about this, you can use a browser extension for Chrome and Firefox called HTTPS Everywhere ( The extension is simple, but effective: all it does is automatically re-route you to the HTTPS version of a website when one is available. HTTPS Everywhere operates in the background automatically, so you don't have to do anything – except double-check that you can see "HTTPS" and the padlock symbol in your browser before before entering any particularly sensitive information like credit card details.

pages: 260 words: 76,223

Ctrl Alt Delete: Reboot Your Business. Reboot Your Life. Your Future Depends on It. by Mitch Joel


3D printing, Amazon Web Services, augmented reality, call centre, clockwatching, cloud computing, Firefox, future of work, ghettoisation, Google Chrome, Google Glasses, Google Hangouts, Khan Academy, Kickstarter, Kodak vs Instagram, Lean Startup, Marc Andreessen, Mark Zuckerberg, Network effects, new economy, Occupy movement, place-making, prediction markets, pre–internet, QR code, recommendation engine, Richard Florida, risk tolerance, self-driving car, Silicon Valley, Silicon Valley startup, Skype, social graph, social web, Steve Jobs, Steve Wozniak, Thomas L Friedman, Tim Cook: Apple, Tony Hsieh, white picket fence, WikiLeaks, zero-sum game

What are you willing to pay? Nothing? Do you think that Facebook is a public service… or a business? In case you’re not sure, take a peek at what that Facebook IPO looked like. What do you think all of these investors were buying into? (Hint: It’s your data and information.) As part of the TED conference in 2012, Mozilla’s Atul Varma introduced a new platform called Collusion that helps individuals using the Firefox Web browser track the trackers. The initiative was created after Varma tracked who was following his young child online. After a couple of hours, it was hundreds of companies. What do all of these trackers want? Ultimately, these trackers are trying to put an advertisement in front of you that will make you take an action. Here’s a typical scenario. The other day I was looking at some different styles of shoes on Zappos but didn’t buy anything.

pages: 266 words: 80,018

The Snowden Files: The Inside Story of the World's Most Wanted Man by Luke Harding


affirmative action, airport security, Anton Chekhov, Apple's 1984 Super Bowl advert, Berlin Wall, Chelsea Manning, don't be evil, drone strike, Edward Snowden, Etonian, Firefox, Google Earth, Jacob Appelbaum, job-hopping, Julian Assange, Khan Academy, kremlinology, Mark Zuckerberg, Maui Hawaii, national security letter, pre–internet, Ralph Waldo Emerson, rolodex, Rubik’s Cube, Silicon Valley, Skype, social graph, Steve Jobs, web application, WikiLeaks

The State Department and the Department of Defense – which houses the NSA – provide around 60 per cent of its funding. The reason is simple: journalists, activists and campaigners in authoritarian countries such as Iran use Tor to protect themselves from political reprisals and online censorship. Thus far, however, the NSA and GCHQ have been unable to de-anonymise most Tor traffic. Instead, the agencies have attacked web browsers such as Firefox, which allows them control over a target’s end computer. They have also developed the ability to ‘stain’ some traffic as it bounces around the Tor system. Despite their best endeavours, the truth appears to be that NSA and GCHQ have not yet won cryptography’s new civil war. With the right training and some technical expertise, corporations and individuals (as well, no doubt, as terrorists and paedophiles) are still successfully using cryptography to protect their privacy.

pages: 361 words: 76,849

The Year Without Pants: and the Future of Work by Scott Berkun


barriers to entry, blue-collar work, Broken windows theory,, Firefox, future of work, Google Hangouts, Jane Jacobs, job satisfaction, Lean Startup, lone genius, Mark Zuckerberg, minimum viable product, remote working, Results Only Work Environment, Richard Stallman, Seaside, Florida, side project, Silicon Valley, six sigma, Skype, stealth mode startup, Steve Jobs, The Death and Life of Great American Cities, the map is not the territory, Tony Hsieh, trade route, zero-sum game

A coworker with body odor or who plays music too loud while working are things I was glad not to have to deal with. But good information was missing. We worked well as a team so that whatever was missed wasn't enough to give me any concerns, at least not yet. For my San Francisco visit I scheduled time with Mullenweg, Beau, as well as Paul Kim, one of the few Automatticians with significant experience outside WordPress. He'd worked at Firefox during its rise and had reached out to me a few times in my early weeks to offer support and any advice I needed. He might have been the friendliest person in welcoming me and offering an ear. If it wasn't for Hanni and him, I doubt I'd have talked to many people I didn't work with directly at Automattic, where I didn't initiate it. There was something different in talking to people one-on-one, even in Skype, than in the group chats in IRC.

pages: 263 words: 75,610

Delete: The Virtue of Forgetting in the Digital Age by Viktor Mayer-Schönberger

Amazon:, Erik Brynjolfsson, Firefox, full text search, George Akerlof, information asymmetry, information retrieval, information trail, Internet Archive, invention of movable type, invention of the printing press, John Markoff, lifelogging, moveable type in China, Network effects, packet switching, pattern recognition, RFID, slashdot, Steve Jobs, Steven Levy, The Market for Lemons, The Structural Transformation of the Public Sphere, Vannevar Bush

Let me sketch out one possible route—a combination of raised human and societal awareness, technical tools, and supporting legislation. To see how it differs from existing approaches related to information power and control, consider “cookies,” the little information packets that web sites send us when we browse web pages to keep track of what we are doing. A decade ago, I wrote an article on cookies.1 In the piece, I explained that web browsers, like Firefox and Internet Explorer, can be configured to ask us to accept or decline an incoming cookie. But, I lamented, browsers won’t tell us when they send a cookie with our information out to a web site, which, I criticized, happens clandestinely, and in clear violation of accepted principles of transparency and consent that are hallmarks of information privacy rights. Caught up in the conceptual world of such rights, I was alarmed that my web browser would not ask me before sharing my personal information with web sites (and thus remote information processors).

pages: 504 words: 89,238

Natural language processing with Python by Steven Bird, Ewan Klein, Edward Loper


bioinformatics, business intelligence, conceptual framework, Donald Knuth, elephant in my pajamas,, finite state, Firefox, Guido van Rossum, information retrieval, Menlo Park, natural language processing, P = NP, search inside the book, speech recognition, statistical model, text mining, Turing test

Richer linguistic content is available from some corpora, such as part-of-speech tags, dialogue tags, syntactic trees, and so forth; we will see these in later chapters. Web and Chat Text Although Project Gutenberg contains thousands of books, it represents established literature. It is important to consider less formal language as well. NLTK’s small collection of web text includes content from a Firefox discussion forum, conversations overheard in New York, the movie script of Pirates of the Carribean, personal advertisements, and wine reviews: >>> from nltk.corpus import webtext >>> for fileid in webtext.fileids(): ... print fileid, webtext.raw(fileid)[:65], '...' ... firefox.txt Cookie Manager: "Don't allow sites that set removed cookies to se... grail.txt SCENE 1: [wind] [clop clop clop] KING ARTHUR: Whoa there! [clop... overheard.txt White guy: So, do you have any plans for this evening? Asian girl... pirates.txt PIRATES OF THE CARRIBEAN: DEAD MAN'S CHEST, by Ted Elliott & Terr... singles.txt 25 SEXY MALE, seeks attrac older single lady, for discreet encoun... wine.txt Lovely delicate, fragrant Rhone wine.

pages: 1,065 words: 229,099

Real World Haskell by Bryan O'Sullivan, John Goerzen, Donald Stewart, Donald Bruce Stewart


bash_history, database schema, Debian, digital map, distributed revision control, domain-specific language,, Firefox, general-purpose programming language, Guido van Rossum, job automation, Larry Wall, p-value, Plutocrats, plutocrats, revision control, sorting algorithm, transfer pricing, type inference, web application, Y Combinator

To focus our attention, we will look at processing web server logfiles, which tend to be both huge and plentiful.[59]As an example, here is a log entry for a page visit recorded by the Apache Web Server. The entry originally filled one line—we split it across several lines to fit: - - [08/Jun/2008:07:04:20 -0500] "GET / HTTP/1.1" 200 2097 "" "Mozilla/5.0 (Windows; U; Windows XP 5.1; en-GB; rv: Gecko/20080201 Firefox/" 0 While we could create a straightforward implementation without much effort, we will resist the temptation to dive in. If we think about solving a class of problems instead of a single one, we may end up with more widely applicable code. When we develop a parallel program, we always face a few “bad penny” problems, which turn up regardless of the underlying programming language.

The exact amount will vary from release to release. Our first step is to visit the GHC at (see Figure A-1) and follow the link to the current stable release. Scroll down to the section entitled “Binary packages,” and then again to the subsection for Windows. Download the installer; in our case, it’s named ghc-6.8.3-i386-windows.exe. Figure A-1. Screenshot of Firefox, displaying the GHC download page After the installer has downloaded, double-click it to start the installation process. This involves stepping through a normal Windows installer wizard (see Figure A-2). Figure A-2. Screenshot of the GHC installation wizard on Windows Once the installer has finished, the Start Menu’s “All Programs” submenu (see Figure A-3) should have a GHC folder, inside which you’ll find an icon that you can use to run ghci.

pages: 571 words: 162,958

Rewired: The Post-Cyberpunk Anthology by James Patrick Kelly, John Kessel


back-to-the-land, Columbine, dark matter, Extropian, Firefox, gravity well, haute couture, Internet Archive, pattern recognition, phenotype, post-industrial society, price stability, Silicon Valley, slashdot, Stephen Hawking, technological singularity, telepresence, the scientific method, Turing test, urban renewal, Vernor Vinge, wage slave, Y2K, zero day

“Only two channels left on the tube. Christ, Felix, it looks like dawn of the dead out the window—” He heard her retch. The phone started to break up, washing her puke-noises back like an echoplex. “Stay there, Kelly,” he shouted as the line died. He punched 911, but the phone went NETWORK ERROR again as soon as he hit SEND. He grabbed Mayor McCheese from Van and plugged it into the 486’s network cable and launched Firefox off the command line and googled for the Metro Police site. Quickly, but not frantically, he searched for an online contact form. Felix didn’t lose his head, ever. He solved problems and freaking out didn’t solve problems. He located an online form and wrote out the details of his conversation with Kelly like he was filing a bug report, his fingers fast, his description complete, and then he hit SUBMIT.

ive commandeered a young sysadmin to see to my feminine needs and weve found another cache of food thatll last us a coupel weeks now that were down to fifteen admins — im in hog heaven pal youre amazing, Queen Kong, seriously. Dont be a hero though. When you need to go go. Theres got to be something out there be safe felix, seriously—btw did i tell you queries are up in Romania? maybe theyre getting back on their feet really? yeah, really. we’re hard to kill — like fucking roaches Her connection died. He dropped to Firefox and reloaded Google and it was down. He hit reload and hit reload and hit reload, but it didn’t come up. He closed his eyes and listened to Van scratch his legs and then heard Van type a little. “They’re back up,” he said. Felix whooshed out a breath. He sent the message to the newsgroup, one that he’d run through five drafts before settling on, “Take care of the place, OK? We’ll be back, someday.”

pages: 669 words: 210,153

Tools of Titans: The Tactics, Routines, and Habits of Billionaires, Icons, and World-Class Performers by Timothy Ferriss


Airbnb, Alexander Shulgin, artificial general intelligence, asset allocation, Atul Gawande, augmented reality, back-to-the-land, Bernie Madoff, Bertrand Russell: In Praise of Idleness, Black Swan, blue-collar work, Buckminster Fuller, business process, Cal Newport, call centre, Checklist Manifesto, cognitive bias, cognitive dissonance, Colonization of Mars, Columbine, commoditize, correlation does not imply causation, David Brooks, David Graeber, diversification, diversified portfolio, Donald Trump, effective altruism, Elon Musk, fault tolerance, fear of failure, Firefox, follow your passion, future of work, Google X / Alphabet X, Howard Zinn, Hugh Fearnley-Whittingstall, Jeff Bezos, job satisfaction, Johann Wolfgang von Goethe, John Markoff, Kevin Kelly, Kickstarter, Lao Tzu, life extension, lifelogging, Mahatma Gandhi, Marc Andreessen, Mark Zuckerberg, Mason jar, Menlo Park, Mikhail Gorbachev, Nicholas Carr, optical character recognition, PageRank, passive income, pattern recognition, Paul Graham, peer-to-peer, Peter H. Diamandis: Planetary Resources, Peter Singer: altruism, Peter Thiel, phenotype, PIHKAL and TIHKAL, post scarcity, premature optimization, QWERTY keyboard, Ralph Waldo Emerson, Ray Kurzweil, recommendation engine, rent-seeking, Richard Feynman, Richard Feynman, risk tolerance, Ronald Reagan, selection bias, sharing economy, side project, Silicon Valley, skunkworks, Skype, Snapchat, social graph, software as a service, software is eating the world, stem cell, Stephen Hawking, Steve Jobs, Stewart Brand, superintelligent machines, Tesla Model S, The Wisdom of Crowds, Thomas L Friedman, Wall-E, Washington Consensus, Whole Earth Catalog, Y Combinator, zero-sum game

[I would just say, ‘If you just confess, you get a 0 on the assignment,’ and people confess.] I would do that in the first one or two assignments, and then afterward, they would learn not to cheat.” The Origin of Duolingo’s Green Owl Mascot and Logo “We were just getting started with Duolingo, and we had hired a Canadian company to help with our branding. . . . It’s called silverorange. They made the Firefox logo, for example. We love working with them, and in one of our first meetings about the branding of the company, my co-founder Severin [Hacker] said, ‘You know, I don’t know much about design, and I don’t particularly care. But I’ll tell you this: I hate the color green. I hate it.’ “We all thought it would be hilarious if our mascot was a green thing, and so that’s why it’s green. It is literally that we are playing a joke on our co-founder.

I’ve also discovered that some large companies track MAC addresses to know the last place you’ve been, so it doesn’t hurt to adjust it every once in a while. Accessing Interesting Data and Controlling the Websites You Visit * * * If a website is delivering images, video, or audio to your computer, that means in most cases you can download it directly, even if the site attempts to stop you. In Chrome (similar tools exist in Firefox and Safari), you can go to View → Developer → Developer Tools, click on the Network tab, refresh the page, and see all content going across. You can then right-click any file, such as an image that the site wouldn’t otherwise let you download, and click Copy Link Address to get the direct URL. The Elements tab is also particularly useful. [TF: You can also use this to easily copy and paste good quotes that some sites like to prevent you from copy and pasting.]

pages: 289 words: 112,697

The new village green: living light, living local, living large by Stephen Morris


back-to-the-land, Buckminster Fuller, clean water, cleantech, collective bargaining, Columbine, Community Supported Agriculture, computer age, cuban missile crisis, deindustrialization, discovery of penicillin, distributed generation, energy security, energy transition, Fellow of the Royal Society, financial independence, Firefox, index card, Indoor air pollution, Intergovernmental Panel on Climate Change (IPCC), invisible hand, Kevin Kelly, Louis Pasteur, Mahatma Gandhi, mass immigration, McMansion, Menlo Park, Negawatt, off grid, peak oil, rolodex, Silicon Valley, Steve Jobs, Stewart Brand, Whole Earth Catalog, Whole Earth Review

David McKay Company, 1974. Your Money or Your Life: Transforming Your Relationship with Money and Acheiving Financial Independence. Joe Dominguez & Vicki Robin. Penguin Books, 1992. 254 chapter 8 : The Good Life Colophon T by Michael Potts raditionally, this is where the book designer would name the type fonts (Garamond Book, Times New Roman, and Kabel), and, in this computer age, the programs employed (Quark, Firefox, and PhotoPaint).Then the printer might tell about the printing process. (See this book’s last page.) This being a non-traditional book, I have saved myself a few pages to share the experience of designing this book. New Village Green is a hopeful plunge into a salty ocean of ideas. Working my way through, I noticed that some of the articles sparkle, and every one glows with care for our planet and for the miraculous life that surrounds us.

pages: 303 words: 81,981

Busting Vegas: The MIT Whiz Kid Who Brought the Casinos to Their Knees by Ben Mezrich


airport security, Donald Trump, Firefox, index card, trickle-down economics

Nevertheless, as the years went by, I realized that though we may have won a few battles against the casinos, we were losing the war. A few people with some powerful, but closely guarded secrets can only do so much against a multibillion-dollar behemoth. Lately I’ve been enthusiastically following the progress of the Open Source software movement, and watching their free Linux operating system and Firefox browser gaining ground on Microsoft. The power of Open Source software lies in the fact that thousands of people contribute small pieces and always share their progress with everyone in the community. Inspired by the success of Open Source, I’ve come to believe that to really make a substantial impact against a powerful adversary like the casino industry, you have to sacrifice the short term profits of a select few in order to enable the masses to cooperate and innovate.

pages: 398 words: 86,855

Bad Data Handbook by Q. Ethan McCallum


Amazon Mechanical Turk, asset allocation, barriers to entry, Benoit Mandelbrot, business intelligence, cellular automata, chief data officer, Chuck Templeton: OpenTable, cloud computing, cognitive dissonance, combinatorial explosion, commoditize, conceptual framework, database schema,, Firefox, Flash crash, Gini coefficient, illegal immigration, iterative process, labor-force participation, loose coupling, natural language processing, Netflix Prize, quantitative trading / quantitative finance, recommendation engine, selection bias, sentiment analysis, statistical model, supply-chain management, survivorship bias, text mining, too big to fail, web application

One online database, however, had a more complex pattern: Log in to the website. Fill out a form with a company name and date range. Dismiss a dialog box (“Do you really want to submit this query?”). Switch to the new tab that the results open in; extract the data. Close the new tab, returning to the original form. Repeat. For this, I used my favorite last-resort tool: Chickenfoot[7], which is a Firefox plug-in that allows you to programmatically interact with a web page through the browser. From the web server’s perspective, all of the requests are as if a real person was submitting these queries through their browser. Here is a simple example that will load the Idaho NCLB page that we crawled and go to the first school’s “Teacher Quality” page. go(''); select('Report Card for 2009-2010'); click('submit'); click('Teacher Quality'); Chickenfoot provides a few simple commands like click, select, and find, but also gives you full access to the Javascript DOM for extracting data and fully controlling the webpage.

pages: 519 words: 102,669

Programming Collective Intelligence by Toby Segaran


always be closing, correlation coefficient, Debian,, Firefox, full text search, information retrieval, PageRank, prediction markets, recommendation engine, slashdot, Thomas Bayes, web application

The one used in this section is available at Download and put it in your code directory or in your Python Libraries directory. Using the API is very simple. Create a new file called and add this function: import akismet defaultkey = "YOURKEYHERE" pageurl="" defaultagent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: " defaultagent+="Gecko/20060909 Firefox/" def isspam(comment,author,ipaddress, agent=defaultagent, apikey=defaultkey): try: valid = akismet.verify_key(apikey,pageurl) if valid: return akismet.comment_check(apikey,pageurl, ipaddress,agent,comment_content=comment, comment_author_email=author,comment_type="comment") else: print 'Invalid key' return False except akismet.AkismetError, e: print e.response, e.statuscode return False You now have a method you can call with any string to see if it is similar to those in blog comments.

pages: 378 words: 110,518

Postcapitalism: A Guide to Our Future by Paul Mason


Alfred Russel Wallace, bank run, banking crisis, banks create money, Basel III, basic income, Bernie Madoff, Bill Gates: Altair 8800, bitcoin, Branko Milanovic, Bretton Woods, BRICs, British Empire, business process, butterfly effect, call centre, capital controls, Cesare Marchetti: Marchetti’s constant, Claude Shannon: information theory, collaborative economy, collective bargaining, Corn Laws, corporate social responsibility, creative destruction, credit crunch, currency manipulation / currency intervention, currency peg, David Graeber, deglobalization, deindustrialization, deskilling, discovery of the americas, Downton Abbey, drone strike,, energy security, eurozone crisis, factory automation, financial repression, Firefox, Fractional reserve banking, Frederick Winslow Taylor, full employment, future of work, game design, income inequality, inflation targeting, informal economy, information asymmetry, intangible asset, Intergovernmental Panel on Climate Change (IPCC), Internet of things, job automation, John Maynard Keynes: Economic Possibilities for our Grandchildren, Joseph Schumpeter, Kenneth Arrow, Kevin Kelly, knowledge economy, knowledge worker, late capitalism, low skilled workers, market clearing, means of production, Metcalfe's law, money: store of value / unit of account / medium of exchange, mortgage debt, Network effects, new economy, Norbert Wiener, Occupy movement, oil shale / tar sands, oil shock, Paul Samuelson, payday loans, Pearl River Delta, post-industrial society, precariat, price mechanism, profit motive, quantitative easing, race to the bottom, RAND corporation, rent-seeking, reserve currency, RFID, Richard Stallman, Robert Gordon, Robert Metcalfe, secular stagnation, sharing economy, Stewart Brand, structural adjustment programs, supply-chain management, The Future of Employment, the scientific method, The Wealth of Nations by Adam Smith, Transnistria, union organizing, universal basic income, urban decay, urban planning, Vilfredo Pareto, wages for housework, women in the workforce

By 1991 GNU had incorporated Linux – a version of Unix for PCs developed by hundreds of programmers working collaboratively, for free, and licensed under the original legal contract that Stallman had designed. Fast-forward to 2014 and maybe 10 per cent of all corporate computers are running Linux. The ten fastest supercomputers in the world all run Linux. More importantly, the standard tools for running a website – from the operating system to the web server to the database and the programming language – are Open Source. Firefox, an Open Source browser, has currently around 24 per cent of the global browser market.19 A staggering 70 per cent of all smartphones run on Android, which is also technically Open Source.20 This is in part due to an overt strategy by Samsung and Google to use Open Source software to undermine Apple’s monopoly and maintain their own market position, but it does not alter the fact that the dominant smartphone on the planet runs on software nobody can own.

pages: 377 words: 110,427

The Boy Who Could Change the World: The Writings of Aaron Swartz by Aaron Swartz, Lawrence Lessig


affirmative action, Alfred Russel Wallace, American Legislative Exchange Council, Benjamin Mako Hill, bitcoin, Bonfire of the Vanities, Brewster Kahle, Cass Sunstein, deliberate practice, Donald Knuth, Donald Trump, failed state, fear of failure, Firefox, full employment, Howard Zinn, index card, invisible hand, John Gruber, Lean Startup, More Guns, Less Crime, peer-to-peer, post scarcity, Richard Feynman, Richard Feynman, Richard Stallman, Ronald Reagan, school vouchers, semantic web, single-payer health, SpamAssassin, SPARQL, telemarketer, The Bell Curve by Richard Herrnstein and Charles Murray, the scientific method, Toyota Production System, unbiased observer, wage slave, Washington Consensus, web application, WikiLeaks, working poor, zero-sum game

They’re not particularly cut out for organizational work nor do they hang around with the kind of people who are. If they do hang out with entrepreneurs, they’re more likely to be the kind who start small, hip technology companies, which just makes them wonder why they’re not making millions doing that instead of wasting time on this political bullshit. (One friend recently left lefty activism to make Firefox plug-ins.) As a good institutionalist, I’m a bit uncomfortable proposing what basically amounts to a cultural explanation for this phenomenon, but while it’s less intellectually satisfying it’s at least more politically optimistic. If one of the things holding the left back is a lack of political entrepreneurs, then all we need to do is make more. Now I just need to find some lunatics with money.

pages: 366 words: 107,145

Fuller Memorandum by Stross, Charles


Any sufficiently advanced technology is indistinguishable from magic, Beeching cuts, British Empire, cognitive dissonance, complexity theory, congestion charging, dumpster diving, finite state, Firefox, HyperCard, invisible hand, land reform, linear programming, peak oil, security theater, sensible shoes, side project, Sloane Ranger, telemarketer, Turing machine

I'm arguing for Einsturzende Neubauten delivered over the Speakers of Doom; she's a proponent of Schoenberg delivered via the Violin that Kills Monsters. In the end we agree on the polite voice of reason delivered via the ears of his parents. I guess we must be growing old. On Saturday morning, it turns out that we are running low on groceries. "Why not go online and book a delivery from Tesco?" asks Mo. I spend a futile hour struggling with their web server before admitting to myself that my abstruse combination of Firefox plug-ins, security filters, and firewalls (not to mention running on an operating system that the big box retailer's programmers wouldn't recognize if it stuck a fork in them) makes this somewhat impractical--by which time we've missed the last delivery, so it looks as if we're going to have to go forth and brave the world on foot. So I cautiously hook the invisi-Glock to my belt for the first time, pull my baggiest jacket down to cover it, and Mo and I hit the road.

pages: 265 words: 15,515

Nomad Citizenship: Free-Market Communism and the Slow-Motion General Strike by Eugene W. Holland


capital controls, cognitive dissonance, Colonization of Mars, complexity theory, continuation of politics by other means, deskilling, Firefox, Frederick Winslow Taylor, full employment, informal economy, invisible hand, Jane Jacobs, means of production, microcredit, money: store of value / unit of account / medium of exchange, Naomi Klein, New Urbanism, peak oil, price mechanism, Richard Stallman, Ronald Coase, slashdot, The Death and Life of Great American Cities, The Wisdom of Crowds, transaction costs, Upton Sinclair, urban renewal, wage slave, working poor

By far the most Remarkable and Important experiment in Internet-based peer production is the free open-source software (FOSS) movement.88 In this case, it is fair to say that the experiment has been an unqualified and overwhelming success. Nearly three-quarters of all Web servers use FOSS (the Apache Web server program), as do major Internet sites such as Amazon, Google, and (which all run on the open-source GNU-Linux operating system). All the major alternatives to Microsoft’s Internet Explorer Web browser (including Netscape, Mozilla, and Firefox) are FOSS programs. In the first three years of the twenty-first century, com­ puting giant IBM saw its GNU-Linux-related revenues rise from almost nothing to more than double the revenues generated by its own patented software applications; it now invests billions of dollars in FOSS develop­ ment and donates patents to the Free Software Foundation. Equally re­ markable as this level of success (especially since the GNU-Linux operat­ ing system competes head-to-head with monopolistic Microsoft’s Windows operating system) is that FOSS is not only available for free, it is produced for free.

pages: 378 words: 94,468

Drugs 2.0: The Web Revolution That's Changing How the World Gets High by Mike Power


air freight, Alexander Shulgin, banking crisis, bitcoin, blockchain, Buckminster Fuller, Burning Man, cloud computing, credit crunch, crowdsourcing, death of newspapers, Donald Davies, double helix, Douglas Engelbart, Electric Kool-Aid Acid Test, fiat currency, Firefox, Fractional reserve banking, frictionless, Haight Ashbury, John Bercow, John Markoff, Kevin Kelly, Leonard Kleinrock, means of production, Menlo Park, moral panic, Mother of all demos, Network effects, nuclear paranoia, packet switching, pattern recognition, PIHKAL and TIHKAL, pre–internet, QR code, RAND corporation, Satoshi Nakamoto, selective serotonin reuptake inhibitor (SSRI), sexual politics, Skype, Stephen Hawking, Steve Jobs, Stewart Brand, trade route, Whole Earth Catalog, Zimmermann PGP

This was during the first dotcom boom, and many companies were giving away services for free – or rather, in exchange for your data and your browsing habits, which they would then sell on to third parties. Information activists rejected that business model and wanted to offer an alternative, and so Dingeldine and Mathewson created a variant on the Navy protocol, calling it Tor. The way Tor works is best described in simple terms. When you type a web address into a standard browser, such as Firefox or Internet Explorer, your connection to the internet originates from and returns to a unique address, known as your Internet Protocol, or IP, address. This information is included inside the packet of data that you send when you press enter. The request, or packet, is then sent via the quickest possible route to the address you have specified, and then the request is delivered in the same way, but in reverse.

pages: 325 words: 85,599

Professional Node.js: Building Javascript Based Scalable Software by Pedro Teixeira

Amazon:, Firefox, Google Chrome, node package manager, platform as a service, web application, WebSocket

Visit to get started Related Wrox Books Beginning JavaScript, 4th Edition ISBN: 978-0-470-52593-7 JavaScript allows you to enhance your web pages and web applications by providing dynamic, personalized, and interactive content. Serving as a great introduction to JavaScript, this book offers all you need to start using JavaScript on your web pages right away. It’s fully updated and covers utilizing JavaScript with the latest versions of the Internet Explorer®, Firefox®, and Safari® browsers. JavaScript 24-Hour Trainer ISBN: 978-0-470-64783-7 This unique book-and-DVD package shows you how to use JavaScript to make web pages more dynamic and interactive so that you can create a first-rate user experience. Packed with expertly written lessons, this must-have book-and-DVD set provides instructional demonstrations on the DVD that enhance your Java Script learning experience through tutorial demos and helpful examples.

pages: 296 words: 86,610

The Bitcoin Guidebook: How to Obtain, Invest, and Spend the World's First Decentralized Cryptocurrency by Ian Demartino


3D printing, AltaVista, altcoin, bitcoin, blockchain, buy low sell high, capital controls, cloud computing, corporate governance, crowdsourcing, cryptocurrency, distributed ledger, Edward Snowden, Elon Musk, ethereum blockchain, fiat currency, Firefox, forensic accounting, global village, GnuPG, Google Earth, Haight Ashbury, Jacob Appelbaum, Kevin Kelly, Kickstarter, litecoin, M-Pesa, Marc Andreessen, Marshall McLuhan, Oculus Rift, peer-to-peer, peer-to-peer lending, Ponzi scheme, prediction markets, QR code, ransomware, Satoshi Nakamoto, self-driving car, Skype, smart contracts, Steven Levy, the medium is the message, underbanked, WikiLeaks, Zimmermann PGP

From the mid-1990s and until Edward Snowden’s revelations of widespread and illegal government spying, the general public overwhelmingly used the Internet, email, and other forms of electronic communication completely unencrypted, mostly oblivious to the inherent risk. Meanwhile, the government designed surveillance programs and built backdoors into our technology. Even today, after Snowden’s revelations, the vast majority of users still send their emails unencrypted and browse the web using Firefox, Chrome, or Internet Explorer—rarely do they add extra security features. Browsers built with security in mind make up less than one percent of total Internet use. The cypherpunks and cryptographers of the early ’90s fought for our right to use privacy tools; the hackers and tinkers of today have extended this. To them, the fight has become not only about the right to use privacy tools but also the right to use any tool they can create with mathematics.

pages: 326 words: 103,170

The Seventh Sense: Power, Fortune, and Survival in the Age of Networks by Joshua Cooper Ramo


Airbnb, Albert Einstein, algorithmic trading, barriers to entry, Berlin Wall, bitcoin, British Empire, cloud computing, crowdsourcing, Danny Hillis, defense in depth, Deng Xiaoping, drone strike, Edward Snowden, Fall of the Berlin Wall, Firefox, Google Chrome, income inequality, Isaac Newton, Jeff Bezos, job automation, market bubble, Menlo Park, Metcalfe’s law, natural language processing, Network effects, Norbert Wiener, Oculus Rift, packet switching, Paul Graham, price stability, quantitative easing, RAND corporation, recommendation engine, Republic of Letters, Richard Feynman, Richard Feynman, road to serfdom, Robert Metcalfe, Sand Hill Road, secular stagnation, self-driving car, Silicon Valley, Skype, Snapchat, social web, sovereign wealth fund, Steve Jobs, Steve Wozniak, Stewart Brand, Stuxnet, superintelligent machines, technological singularity, The Coming Technological Singularity, The Wealth of Nations by Adam Smith, too big to fail, Vernor Vinge, zero day

Husted, “Analysis Techniques for Exploring Emergent Vulnerabilities and Attacks on Mobile Devices” (PhD thesis, Indiana University, 2013), at In a video: For a description of this exploit, see Mordechai Guri, Matan Monitz, Yisroel Mirski, and Yuval Elovici, “BitWhisper: Covert Signaling Channel Between Air-Gapped Computers Using Thermal Manipulations,” arXiv:1503.07919 [cs.CR], March 26, 2015. Jung Hoon Lee: Lucian Constantin, “Chrome, Firefox, Explorer, Safari Were All Hacked at Pwn2Own Contest,” PC World, March 20, 2015. It’s also an opportunity for: Jeffrey C. Mogul, “Emergent (Mis)behavior vs. Complex Software Systems,” ACM SIGOPS Operating Systems Review—Proceedings of the 2006 EuroSys Conference 40, no. 4 (October 2006): 295 “We are not experts”: Stephen Cobb and Andrew Lee, “Malware Is Called Malicious for a Reason: The Risks of Weaponizing Code,” in 6th International Conference on Cyber Conflict: Proceedings 2014, ed.

pages: 330 words: 91,805

Peers Inc: How People and Platforms Are Inventing the Collaborative Economy and Reinventing Capitalism by Robin Chase


3D printing, Airbnb, Amazon Web Services, Andy Kessler, banking crisis, barriers to entry, basic income, Benevolent Dictator For Life (BDFL), bitcoin, blockchain, Burning Man, business climate, call centre, car-free, cloud computing, collaborative consumption, collaborative economy, collective bargaining, commoditize, congestion charging, creative destruction, crowdsourcing, cryptocurrency, decarbonisation, don't be evil, Elon Musk,, ethereum blockchain, Ferguson, Missouri, Firefox, frictionless, Gini coefficient, hive mind, income inequality, index fund, informal economy, Intergovernmental Panel on Climate Change (IPCC), Internet of things, Jane Jacobs, Jeff Bezos, jimmy wales, job satisfaction, Kickstarter, Lean Startup, Lyft, means of production, megacity, Minecraft, minimum viable product, Network effects, new economy, Oculus Rift, openstreetmap, optical character recognition, pattern recognition, peer-to-peer, peer-to-peer lending, peer-to-peer model, Richard Stallman, ride hailing / ride sharing, Ronald Coase, Ronald Reagan, Satoshi Nakamoto, Search for Extraterrestrial Intelligence, self-driving car, shareholder value, sharing economy, Silicon Valley, six sigma, Skype, smart cities, smart grid, Snapchat, sovereign wealth fund, Steve Crocker, Steve Jobs, Steven Levy, TaskRabbit, The Death and Life of Great American Cities, The Future of Employment, The Nature of the Firm, transaction costs, Turing test, turn-by-turn navigation, Uber and Lyft, Zipcar

Ultimately MySQL was acquired by Sun Microsystems in 2008, and in 2009 Oracle acquired Sun. The MySQL story is more compelling when one considers that it manage