Firefox

261 results back to index


pages: 502 words: 82,170

The Book of CSS3 by Peter Gasston

centre right, disruptive innovation, en.wikipedia.org, Firefox, Google Chrome, Great Leap Forward, Salesforce, 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 J JavaScript, Licensing Fonts for Web Use, Same-Axis Alignment, Cross-Browser Flex Box with JavaScript, Template Layout, Template Layout, Modernizr cross-browser flex box with, Same-Axis Alignment for simulating Template Layout Module, Template Layout library, Cross-Browser Flex Box with JavaScript Modernizr, Modernizr setting up, Template Layout jQuery, Cross-Browser Flex Box with JavaScript, Setting Up the JavaScript justify keyword, for box-pack property, Alignment, Alignment justifying text, A Note on Readability K kern parameter, OpenType Features kerning, Setting Text Rendering Options KHTML layout engine, Flexible Box Layout L landscape value, for orientation Media Feature, Using Media Queries in the Real World lang attribute, rules applied based on, Attribute Selectors Language Attribute Selector, Attribute Selectors Last Call status, CSS3 Is Modular last-child pseudo-class, first-of-type, last-child, and last-of-type last-of-type pseudo-class, first-of-type, last-child, and last-of-type left 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 legibility, vs. speed, optimization, word-wrap letterpress effect, Multiple Shadows licensing fonts for web use, Licensing Fonts for Web Use ligatures, OpenType Features, Setting Text Rendering Options linear animation, The Cubic Bézier Curve linear gradients, Gradients, Linear Gradients in Firefox, Linear Gradients in Firefox, Linear Gradients in WebKit, Using Linear Gradients, Repeating Linear Gradients adding color-stop values, Linear Gradients in Firefox, Using Linear Gradients, Repeating Linear Gradients in Firefox, Linear Gradients in Firefox, Repeating Linear Gradients in WebKit, Linear Gradients in Firefox using, Linear Gradients in WebKit linear keyword, Timing Function, Name, Name for animation-timing function property, Name for transition-timing-function property, Timing Function lines, between columns, Column Gaps and Rules link element, Media Queries, The Advantages of Media Queries, Using Media Queries in the Real World media attribute, Media Queries order for stylesheets, Using Media Queries in the Real World links.

To fix this, you need the new properties in the box-* family, which I’ll introduce throughout the rest of this chapter—after a brief digression about browser differences. The box Value in Firefox In the introduction, I mentioned that the Firefox implementation is somewhat problematic. This first example clearly highlights one of those problems. The example shown in Figure 15-1 demonstrates how the code displays in WebKit browsers. Have a look at the same code rendered in Firefox in Figure 15-2. Figure 15-2. The same code from Figure 15-1 but viewed in Firefox Here, you can see the parent element has expanded to 640px. In the Firefox implementation, if the parent element has a width value that is auto or less than the children’s width combined, that value is ignored and the parent is resized to accommodate all of its children.


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, information security, machine readable, Multics, RFC: Request For Comment, semantic web, Steve Jobs, telemarketer, Tragedy of the Commons, 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.

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:http://www.example.com/ 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:).

To illustrate, consider the handling of Adobe Flash (SWF) files served without Content-Type: In Opera, they are recognized unconditionally based on a content signature check; in Firefox and Safari, an explicit .swf suffix in the URL is required; and Internet Explorer and Chrome will not autorecognize SWF at all. Rest assured, the SWF file format is not an exceptional case. For example, when dealing with HTML files, Chrome and Firefox will autodetect the document only if one of several predefined HTML tags appears at the very beginning of the file; while Firefox will be eager to “detect” HTML based solely on the presence of an .html extension in the URL, even if no recognizable markup is seen.


pages: 1,038 words: 137,468

JavaScript Cookbook by Shelley Powers

business logic, Firefox, Google Chrome, hypertext link, leftpad, semantic web, SQL injection, 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.

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.

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

en.wikipedia.org, Firefox, Google Chrome, sorting algorithm, web application

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.

.* 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.

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, functional programming, Google Chrome, higher-order functions, machine readable, mandelbrot fractal, QWERTY keyboard, SQL injection, 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.

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 ?

For instance, he may know that it will run on Python version 3.0 on Linux, along with specific versions of all the supporting software. The web application developer has no such confidence. Users will come to the site using Firefox, Internet Explorer, Chrome, Safari, and Opera—and several versions of each. So test suites must be able to handle testing across a number of browsers and operating systems, each of which is a little bit different. There are two main sources of differences. First, there are differences in the language itself among the different browsers. For example, the keyword const is supported by Firefox, but not by Internet Explorer. Second, many HTML interfaces exist only in particular browsers or browser versions.


pages: 924 words: 196,343

JavaScript & jQuery: The Missing Manual by David Sawyer McFarland

Firefox, framing effect, functional programming, HyperCard, information retrieval, Ruby on Rails, Steve Jobs, web application

, Negating a condition, Nesting Conditional Statements, Negating a condition, Nesting Conditional Statements NOT operator, Negating a condition, Nesting Conditional Statements, Negating a condition, Nesting Conditional Statements Expression Web Designer, Commercial Software external HTML files, loading into web page, Talking to the Web Server, The get() and post() Functions, Using the load() Function, Using the load() Function, The programming, The programming, The programming, The programming, The get() and post() Functions external JavaScript files, External JavaScript Files, External JavaScript Files, External JavaScript Files, External JavaScript Files, External JavaScript Files, External JavaScript Files, Attaching an External JavaScript File, Attaching an External JavaScript File, Using External JavaScript Files, Using External JavaScript Files, Using External JavaScript Files, Incorrect Path to External JavaScript File, Disappearing Variables and Functions, Incorrect Paths Within External JavaScript Files, Disappearing Variables and Functions attaching to web pages, External JavaScript Files, External JavaScript Files, Attaching an External JavaScript File, Attaching an External JavaScript File multiple, order of, External JavaScript Files path errors involving, Incorrect Path to External JavaScript File, Disappearing Variables and Functions, Incorrect Paths Within External JavaScript Files, Disappearing Variables and Functions external links, opening in new window, Opening External Links in a New Window, Opening External Links in a New Window, Opening External Links in a New Window, Opening External Links in a New Window, Opening External Links in a New Window F fadeIn() function, jQuery, Attaching an External JavaScript File, Fading Elements In and Out fadeOut() function, jQuery, Acting on Each Element in a Selection, Fading Elements In and Out fadeTo() function, jQuery, Fading Elements In and Out, Traversing the DOM fadeToggle() function, jQuery, Fading Elements In and Out FancyBox plug-in, Advanced Gallery with jQuery FancyBox, Tutorial: FancyBox Photo Gallery, The Basics, The Basics, Creating a Gallery of Images, The Basics, The Basics, Creating a Gallery of Images, The Basics, The Basics, The Basics, The Basics, Creating a Gallery of Images, Creating a Gallery of Images, Customizing FancyBox, Tutorial: FancyBox Photo Gallery, FancyBox options, FancyBox options, FancyBox options, Styling FancyBox, Styling FancyBox, Styling FancyBox, Styling FancyBox, Tutorial: FancyBox Photo Gallery, Tutorial: FancyBox Photo Gallery, Tutorial: FancyBox Photo Gallery, Tutorial: FancyBox Photo Gallery, Opening Pages in a Window on the Page, Tutorial: Opening a Page Within a Page, Opening Pages in a Window on the Page, Tutorial: Opening a Page Within a Page, Tutorial: Opening a Page Within a Page, Tutorial: Opening a Page Within a Page, Tutorial: Opening a Page Within a Page, Tutorial: Opening a Page Within a Page CSS sprites used by, Styling FancyBox customizing, Customizing FancyBox, Tutorial: FancyBox Photo Gallery, Tutorial: FancyBox Photo Gallery downloading files for, The Basics, Creating a Gallery of Images, The Basics, Creating a Gallery of Images gallery page for, setting up, The Basics, Creating a Gallery of Images, The Basics, The Basics, Creating a Gallery of Images opening a page within a page, Opening Pages in a Window on the Page, Tutorial: Opening a Page Within a Page, Opening Pages in a Window on the Page, Tutorial: Opening a Page Within a Page, Tutorial: Opening a Page Within a Page, Tutorial: Opening a Page Within a Page, Tutorial: Opening a Page Within a Page, Tutorial: Opening a Page Within a Page fancybox.png file, Styling FancyBox FAQ (Frequently Asked Questions) tutorial, Tutorial: A One-Page FAQ, The Programming, The Programming, The Programming fields in forms, Form Events, Understanding Forms, Selecting Form Elements, Selecting Form Elements, Getting and Setting the Value of a Form Element, Selecting Form Elements, Selecting Form Elements, Getting and Setting the Value of a Form Element, Getting and Setting the Value of a Form Element, Getting and Setting the Value of a Form Element, Getting and Setting the Value of a Form Element, Getting and Setting the Value of a Form Element, Getting and Setting the Value of a Form Element, Getting and Setting the Value of a Form Element, Getting and Setting the Value of a Form Element, Determining Whether Buttons and Boxes Are Checked, Determining Whether Buttons and Boxes Are Checked, Focus, Focus, Change, Focusing the First Field in a Form, Disabling and Enabling Fields, Hiding and Showing Form Options, Hiding and Showing Form Options, Tutorial: Basic Form Enhancements, Hiding and Showing Form Options, Tutorial: Basic Form Enhancements, Focusing a Field, Disabling Form Fields, Hiding Form Fields, Hiding Form Fields, Advanced Validation, Advanced error messages changing value of, Change checking status of, Determining Whether Buttons and Boxes Are Checked disabling, Disabling and Enabling Fields focus on, Form Events, Focus, Focus, Focusing the First Field in a Form, Focusing a Field getting value of, Getting and Setting the Value of a Form Element, Getting and Setting the Value of a Form Element, Getting and Setting the Value of a Form Element, Determining Whether Buttons and Boxes Are Checked hiding, Hiding and Showing Form Options, Hiding and Showing Form Options, Hiding Form Fields, Hiding Form Fields selecting, Selecting Form Elements, Getting and Setting the Value of a Form Element, Selecting Form Elements, Getting and Setting the Value of a Form Element setting value of, Getting and Setting the Value of a Form Element, Getting and Setting the Value of a Form Element, Getting and Setting the Value of a Form Element, Getting and Setting the Value of a Form Element showing, Hiding and Showing Form Options, Tutorial: Basic Form Enhancements, Tutorial: Basic Form Enhancements tags for, Understanding Forms, Selecting Form Elements, Selecting Form Elements validating, Advanced Validation, Advanced error messages filters for selectors, jQuery Filters, Selecting Form Elements find() function, jQuery, Tutorial: Using the get() Function, Optimizing Your Selectors, Traversing the DOM, Traversing the DOM Firebug plug-in, The Firefox JavaScript Console, Replacing and Removing Selections, Disappearing Variables and Functions, Installing and Turning On Firebug, Installing and Turning On Firebug, Using console.log() to Track Script Progress, Using console.log() to Track Script Progress, Tutorial: Using the Firebug Console, Tutorial: Using the Firebug Console, Tutorial: Using the Firebug Console, Tutorial: Using the Firebug Console, More Powerful Debugging, More Powerful Debugging, More Powerful Debugging, Watching your script installing, Installing and Turning On Firebug Firefox, Tracking Down Errors, The Firefox JavaScript Console, The Firefox JavaScript Console, The Firefox JavaScript Console, The Firefox JavaScript Console JavaScript console in, Tracking Down Errors, The Firefox JavaScript Console, The Firefox JavaScript Console, The Firefox JavaScript Console, The Firefox JavaScript Console flags, boolean data type used for, Adding a Backup Plan Flash, Introducing Programming Flickr, Introducing JSONP, Tutorial: Adding Flickr Images to Your Site, Constructing the URL, Constructing the URL, A few other options for the public photos feed, Understanding the Flickr JSON Feed, Tutorial: Adding Flickr Images to Your Site, Tutorial: Adding Flickr Images to Your Site images from, adding to web page, Introducing JSONP, Tutorial: Adding Flickr Images to Your Site, Constructing the URL, Constructing the URL, A few other options for the public photos feed, Understanding the Flickr JSON Feed, Tutorial: Adding Flickr Images to Your Site, Tutorial: Adding Flickr Images to Your Site floor() method, Match object, Creating a Random Number focus event, Form Events, Focus, Focus focus for form fields, Form Events, Focus, Focus, Focusing the First Field in a Form, Focusing a Field focus() function, jQuery, Focus, Focusing the First Field in a Form, Focusing a Field focus() method, window object, Use the window reference for loops, For Loops, Do/While Loops, For Loops, Do/While Loops Form plug-in, Adding Google Maps to Your Site form tag, HTML, Enhancing Web Forms, Selecting Form Elements, Understanding Forms, Understanding Forms, Selecting Form Elements forms, Writing Your First JavaScript Program, Form Events, Enhancing Web Forms, Adding Smarts to Your Forms, Understanding Forms, Understanding Forms, Selecting Form Elements, Selecting Form Elements, Form Events, Form Events, Submit, Submit, Click, Adding Smarts to Your Forms, Adding Smarts to Your Forms, Advanced Validation, Advanced error messages events for, Form Events, Form Events, Submit, Click fields in, Selecting Form Elements getting values of, Selecting Form Elements in HTML5, Writing Your First JavaScript Program validating, Advanced Validation, Advanced error messages Frequently Asked Questions (FAQ) tutorial, Tutorial: A One-Page FAQ, The Programming, The Programming functions, jQuery, Chaining functions, Changing Multiple CSS Properties at Once, Anonymous Functions, Anonymous Functions, The hover() event anonymous, Anonymous Functions, Anonymous Functions, The hover() event chaining, Chaining functions, Changing Multiple CSS Properties at Once functions, user-defined in JavaScript, Functions: Turn Useful Code Into Reusable Commands, Tutorial: A Simple Quiz, Functions: Turn Useful Code Into Reusable Commands, Mini-Tutorial, Functions: Turn Useful Code Into Reusable Commands, Functions: Turn Useful Code Into Reusable Commands, Functions: Turn Useful Code Into Reusable Commands, Mini-Tutorial, Mini-Tutorial, Giving Information to Your Functions, Giving Information to Your Functions, Retrieving Information from Functions, Retrieving Information from Functions, Keeping Variables from Colliding, Keeping Variables from Colliding, Keeping Variables from Colliding, Keeping Variables from Colliding, Keeping Variables from Colliding, Keeping Variables from Colliding, Keeping Variables from Colliding, Keeping Variables from Colliding, Tutorial: A Simple Quiz, A function for selecting a random number calling, Functions: Turn Useful Code Into Reusable Commands creating, Functions: Turn Useful Code Into Reusable Commands, Mini-Tutorial, Mini-Tutorial, Mini-Tutorial for random numbers, A function for selecting a random number naming, Functions: Turn Useful Code Into Reusable Commands returning a value from, Retrieving Information from Functions, Keeping Variables from Colliding, Keeping Variables from Colliding, Keeping Variables from Colliding scope of variables in, Keeping Variables from Colliding, Keeping Variables from Colliding, Keeping Variables from Colliding G get() function, jQuery, The get() and post() Functions, The get() and post() Functions, Tutorial: Using the get() Function, Overview, The programming, The programming getDate() method, Date object, Dates and Times getDay() method, Date object, Dates and Times, Getting the Day of the Week getElementById() method, document object, Understanding the Document Object Model getElementsByTagName() method, document object, Understanding the Document Object Model getFullYear() method, Date object, Dates and Times getHours() method, Date object, Dates and Times, Getting the Month, Getting the Time, Getting the Time, Padding single digits, Creating a Date Other Than Today getJSON() function, jQuery, JSON, Complex JSON Objects, Complex JSON Objects, Introducing JSONP, Using the $.getJSON() Function getMinutes() method, Date object, Dates and Times, Getting the Day of the Week, Getting the Time, Getting the Time, Padding single digits, Padding single digits getMonth() method, Date object, Dates and Times, Getting the Month getSeconds() method, Date object, Dates and Times, Getting the Day of the Week, Getting the Time, Getting the Time, Padding single digits getTime() method, Date object, Dates and Times global variables, Keeping Variables from Colliding, Tutorial: A Simple Quiz, Keeping Variables from Colliding, Tutorial: A Simple Quiz GoMap plug-in, Adding Google Maps to Your Site, GoMap Tutorial, Adding Google Maps to Your Site, Adding Google Maps to Your Site, Adding Google Maps to Your Site, Adding Google Maps to Your Site, Adding Google Maps to Your Site, Adding Google Maps to Your Site, Setting a Location for the Map, Other GoMap Options, Setting a Location for the Map, Setting a Location for the Map, Setting a Location for the Map, Other GoMap Options, Other GoMap Options, Other GoMap Options, Other GoMap Options, Other GoMap Options, Other GoMap Options, Adding Markers, Adding Markers, Adding Markers, Adding Markers, Adding Markers, Adding Markers, Adding Markers, Adding Markers, Adding Markers, Adding Markers, Adding Information Windows to Markers, GoMap Tutorial, GoMap Tutorial, GoMap Tutorial, GoMap Tutorial information windows, adding, Adding Information Windows to Markers map location, setting, Setting a Location for the Map, Other GoMap Options, Setting a Location for the Map, Other GoMap Options markers in map, adding, Adding Markers, Adding Markers, Adding Markers, Adding Markers, Adding Markers, Adding Markers navigation controls, removing, Other GoMap Options scale of, Other GoMap Options marker for, adding, Other GoMap Options type of map, Other GoMap Options, Other GoMap Options setting, Other GoMap Options switching between, Other GoMap Options using, Adding Google Maps to Your Site, Adding Google Maps to Your Site, Adding Google Maps to Your Site, Adding Google Maps to Your Site Google Docs (web site), What Is JavaScript?

Installing and Turning On Firebug You can find the extension at www.getfirebug.com, or from the Mozilla Add-Ons site. Here’s how to install it: Visit http://addons.mozilla.org/firefox/addon/firebug using Firefox, and click the “Add to Firefox” button. To protect you from accidentally installing a malicious extension, Firefox stops your first attempt at installing the extension. A Software Installation window appears, warning you that malicious software is bad (oh, really?). Don’t worry; Firebug is perfectly safe. Click the Install Now button. Firefox installs the extension, but it won’t work until you restart Firefox. A small window appears explaining that very thing. Click the Restart button.

., Using External JavaScript Files titlePosition option, FancyBox, FancyBox options toFixed() method, JavaScript, Formatting Currency Values toggle event, The toggle() Event toggleClass() function, jQuery, Classes toLowerCase() method, strings, Changing the Case of a String toolbar property, windows, Window Properties tooltips, Adding Tooltips, Tooltips Tutorial, The HTML, The HTML, The HTML, The HTML, The HTML, The CSS, The CSS, The CSS, The JavaScript, The JavaScript, The JavaScript, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial CSS styles for, The CSS div tag for, The HTML, The HTML, Tooltips Tutorial hiding when page loads, The CSS, The JavaScript, Tooltips Tutorial mouseover event for, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial trigger for, The HTML, The HTML, Tooltips Tutorial tutorial for, The JavaScript, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial top property, windows, Window Properties toUpperCase() method, strings, Changing the Case of a String, Searching a String: indexOf() Technique, Changing the Case of a String, Searching a String: indexOf() Technique transitionIn option, FancyBox, FancyBox options transitionOut option, FancyBox, FancyBox options trigger, for tooltip, Adding Tooltips, The HTML, Tooltips Tutorial troubleshooting, The Firefox JavaScript Console, The Firefox JavaScript Console, The Firefox JavaScript Console, The Firefox JavaScript Console, The Firefox JavaScript Console, Displaying the Internet Explorer 9 Console, Displaying the Internet Explorer 9 Console, Opening the Chrome JavaScript Console, Accessing the Safari Error Console, Accessing the Safari Error Console, Accessing the Safari Error Console, Accessing the Safari Error Console, Tips for Writing Conditional Statements, Tutorial: Using Conditional Statements, Tutorial: Using Conditional Statements, Non-Closed Pairs Chrome JavaScript Console for, Opening the Chrome JavaScript Console, Accessing the Safari Error Console conditional statements, Tips for Writing Conditional Statements, Tutorial: Using Conditional Statements, Tutorial: Using Conditional Statements Firefox JavaScript Console for, The Firefox JavaScript Console, The Firefox JavaScript Console, The Firefox JavaScript Console, The Firefox JavaScript Console, The Firefox JavaScript Console Internet Explorer 9 Console for, Displaying the Internet Explorer 9 Console, Displaying the Internet Explorer 9 Console logic errors, Non-Closed Pairs Safari Error Console for, Accessing the Safari Error Console, Accessing the Safari Error Console, Accessing the Safari Error Console tutorials, Tutorial: Using Variables to Create Messages, Arrays, Tutorial: Using Variables to Create Messages, Tutorial: Asking for Information, Arrays, Arrays, Tutorial: Writing to a Web Page Using Arrays, A Quick Object Lesson, A Quick Object Lesson, A Quick Object Lesson, Tips for Writing Conditional Statements, Tutorial: Using Conditional Statements, Tutorial: Using Conditional Statements, Tutorial: Using Conditional Statements, Functions: Turn Useful Code Into Reusable Commands, Giving Information to Your Functions, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Automatic Pull Quotes, Programming, Overview, Overview, Programming, Programming, Programming, Tutorial: Introducing Events, Tutorial: Introducing Events, Tutorial: Introducing Events, Tutorial: Introducing Events, More jQuery Event Concepts, Tutorial: Login Slider, The Programming, Tutorial: Animated Dashboard, The Programming, The Programming, The Programming, Rollover Images, Tutorial: Adding Rollover Images, Overview of the Task, Overview of the Task, The Programming, The Programming, The Programming, The Programming, Tutorial: Photo Gallery with Effects, Overview of Task, Overview of Task, The Programming, The Programming, The Programming, Advanced Gallery with jQuery FancyBox, Styling FancyBox, Styling FancyBox, Tutorial: FancyBox Photo Gallery, Tutorial: FancyBox Photo Gallery, Tutorial: FancyBox Photo Gallery, Tutorial: FancyBox Photo Gallery, Tutorial: Basic Form Enhancements, Disabling Form Fields, Disabling Form Fields, Hiding Form Fields, Basic Validation, Basic Validation, Advanced Validation, Advanced Validation, Advanced Validation, Validating Checkboxes and Radio Buttons, Validating Checkboxes and Radio Buttons, Tabbed Panels Tutorial, Adding a Content Slider to Your Site, Tabbed Panels Tutorial, Tabbed Panels Tutorial, Tabbed Panels Tutorial, Adding a Content Slider to Your Site, The JavaScript, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial, Overview, The programming, The programming, Tutorial: Using the get() Function, Overview, The programming, Understanding the Flickr JSON Feed, Adding Google Maps to Your Site, Tutorial: Adding Flickr Images to Your Site, Tutorial: Adding Flickr Images to Your Site, Tutorial: Adding Flickr Images to Your Site, Tutorial: Adding Flickr Images to Your Site, Tutorial: Adding Flickr Images to Your Site, Adding Google Maps to Your Site, Adding Google Maps to Your Site, GoMap Tutorial, Debugging Tutorial, Debugging Tutorial Ajax, Overview, The programming, The programming, Tutorial: Using the get() Function, Overview, The programming, Tutorial: Adding Flickr Images to Your Site, Adding Google Maps to Your Site animated dashboard, Tutorial: Animated Dashboard, The Programming, The Programming, The Programming arrays, Tutorial: Writing to a Web Page Using Arrays, A Quick Object Lesson, A Quick Object Lesson, A Quick Object Lesson conditional statements, Tips for Writing Conditional Statements, Tutorial: Using Conditional Statements, Tutorial: Using Conditional Statements, Tutorial: Using Conditional Statements CSS selectors, Overview, Programming, Programming debugging, Debugging Tutorial, Debugging Tutorial effects, Tutorial: Login Slider, The Programming, Tutorial: Photo Gallery with Effects events, Tutorial: Introducing Events, Tutorial: Introducing Events, Tutorial: Introducing Events, Tutorial: Introducing Events, More jQuery Event Concepts Flickr, Understanding the Flickr JSON Feed, Adding Google Maps to Your Site, Tutorial: Adding Flickr Images to Your Site, Tutorial: Adding Flickr Images to Your Site, Tutorial: Adding Flickr Images to Your Site, Tutorial: Adding Flickr Images to Your Site, Adding Google Maps to Your Site form validation, Basic Validation, Basic Validation, Advanced Validation, Advanced Validation, Advanced Validation, Validating Checkboxes and Radio Buttons, Validating Checkboxes and Radio Buttons forms, Tutorial: Basic Form Enhancements, Disabling Form Fields, Disabling Form Fields, Hiding Form Fields functions, Functions: Turn Useful Code Into Reusable Commands, Giving Information to Your Functions, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz GoMap plug-in, GoMap Tutorial images, Rollover Images, Overview of the Task, Overview of the Task, The Programming, The Programming, The Programming, The Programming, Overview of Task, Overview of Task, The Programming, The Programming, The Programming, Advanced Gallery with jQuery FancyBox, Styling FancyBox, Tutorial: FancyBox Photo Gallery, Tutorial: FancyBox Photo Gallery photo gallery, Styling FancyBox, Tutorial: FancyBox Photo Gallery, Tutorial: FancyBox Photo Gallery with FancyBox, Styling FancyBox, Tutorial: FancyBox Photo Gallery, Tutorial: FancyBox Photo Gallery pull quotes, Automatic Pull Quotes, Programming, Overview, Programming quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz, Tutorial: A Simple Quiz rollover images, Tutorial: Adding Rollover Images tabbed panels, Tabbed Panels Tutorial, Adding a Content Slider to Your Site, Tabbed Panels Tutorial, Tabbed Panels Tutorial, Tabbed Panels Tutorial, Adding a Content Slider to Your Site tooltips, The JavaScript, Tooltips Tutorial, Tooltips Tutorial, Tooltips Tutorial variables, Tutorial: Using Variables to Create Messages, Arrays, Tutorial: Using Variables to Create Messages, Tutorial: Asking for Information, Arrays, Arrays Twitter plug-in, Adding Google Maps to Your Site type attribute, script tag, How to Add JavaScript to a Page typeof operator, A Quick Object Lesson U U.S. phone numbers, regular expression for, U.S. phone number, Email address, Email address U.S.


pages: 435 words: 62,013

HTML5 Cookbook by Christopher Schmitt, Kyle Simpson

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

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: audio.play(); } </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 (https://wiki.mozilla.org/Audio_Data_API#Security). Note While this recipe makes use of the Mozilla Audio Data API, browsers (including Firefox) may support the Web Audio API from the W3C.

</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.


pages: 372 words: 67,140

Jenkins Continuous Integration Cookbook by Alan Berg

anti-pattern, continuous integration, Debian, don't repeat yourself, en.wikipedia.org, Firefox, information security, job automation, One Laptop per Child (OLPC), performance metric, revision control, web application

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.

This recipe is one of the more pleasant ways for you to be reached. 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.

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. Enable the Add-On Bar by selecting Options, and then Add-On Bar. Now, at the bottom right-hand side of Firefox, you will see a small Jenkins icon. Right-click on the icon. Select the preferences, and the Feeds screen appears. Add a recognizable, but short, name for your Jenkins instance. For example, Plugin test server. Add a URL using the following structure for Feed URL:http://host:port/rssAll e.g.: http://localhost:8080/rssAll.


Engineering Security by Peter Gutmann

active measures, address space layout randomization, air gap, algorithmic trading, Amazon Web Services, Asperger Syndrome, bank run, barriers to entry, bitcoin, Brian Krebs, business process, call centre, card file, cloud computing, cognitive bias, cognitive dissonance, cognitive load, combinatorial explosion, Credit Default Swap, crowdsourcing, cryptocurrency, Daniel Kahneman / Amos Tversky, Debian, domain-specific language, Donald Davies, Donald Knuth, double helix, Dr. Strangelove, Dunning–Kruger effect, en.wikipedia.org, endowment effect, false flag, fault tolerance, Firefox, fundamental attribution error, George Akerlof, glass ceiling, GnuPG, Google Chrome, Hacker News, information security, iterative process, Jacob Appelbaum, Jane Jacobs, Jeff Bezos, John Conway, John Gilmore, John Markoff, John von Neumann, Ken Thompson, Kickstarter, lake wobegon effect, Laplace demon, linear programming, litecoin, load shedding, MITM: man-in-the-middle, Multics, Network effects, nocebo, operational security, Paradox of Choice, Parkinson's law, pattern recognition, peer-to-peer, Pierre-Simon Laplace, place-making, post-materialism, QR code, quantum cryptography, race to the bottom, random walk, recommendation engine, RFID, risk tolerance, Robert Metcalfe, rolling blackouts, Ruby on Rails, Sapir-Whorf hypothesis, Satoshi Nakamoto, security theater, semantic web, seminal paper, Skype, slashdot, smart meter, social intelligence, speech recognition, SQL injection, statistical model, Steve Jobs, Steven Pinker, Stuxnet, sunk-cost fallacy, supply-chain attack, telemarketer, text mining, the built environment, The Death and Life of Great American Cities, The Market for Lemons, the payments system, Therac-25, too big to fail, Tragedy of the Commons, Turing complete, Turing machine, Turing test, Wayback Machine, web application, web of trust, x509 certificate, Y2K, zero day, Zimmermann PGP

The problem Threat Modelling 267 with this handler was that you weren’t limited to using just a plain URL but could insert anything you wanted, including Javascript which was then executed by Firefox when it was invoked, allowing an attacker to execute arbitrary (Javascript) code coming from an external source like a web page [167]. The assumption by Firefox was that the data that it was being fed would only come from a trusted source like an application that wanted to redirect the user to the application’s home page and not arbitrary data coming from an untrusted source on the Internet. By laundering it through the firefoxuri: handler an attacker could bypass the controls that Firefox normally placed on such code. URL Web page Browser Firefox Shell Firefox Javascript handler JS Engine Registry URI handlers Figure 76: DFD for presumed (top) and actual (bottom) Firefox URL handling The DFDs for the Firefox URL handling are shown in Figure 76, with the top half of the figure showing the (presumed) threat model in which the URL data comes from an unspecified source that doesn’t require any further checking.

References 425 [345] “Polaris: Virus-Safe Computing for Windows XP”, Marc Stiegler, Alan Karp, Ka-Ping Yee, Tyler Close and Mark Miller, Communications of the ACM, Vol.49, No.9 (September 2006), p.83. [346] “Abusing Firefox Extensions”, Roberto Liverani and Nick Freeman, presentation at Defcon 17, July 2009, https://www.defcon.org/images/defcon-17/dc-17-presentations/defcon-17-roberto_liveraninick_freeman-abusing_firefox.pdf. [347] “SSL Error Pages in Firefox 3.1”, Johnathan Nightingale, 6 November 2008, http://blog.johnath.com/2008/11/06/ssl-error-pages-in-firefox-31/. [348] “Crying Wolf: An Empirical Study of SSL Warning Effectiveness”, Joshua Sunshine, Serge Egelman, Hazim Almuhimedi, Neha Atri and Lorrie Cranor, Proceedings of the 18th Usenix Security Symposium (Security’09), August 2009, p.399. [349] “On the Challenges in Usable Security Lab Studies: Lessons Learned from Replicating a Study on SSL Warnings”, Andreas Sotirakopoulos, Kirstie Hawkey and Konstantin Beznosov, Proceedings of the 7th Symposium on Usable Security and Privacy (SOUPS’11), July 2011, Paper 3. [350] “Wan2tlk?

“Microsoft Internet Explorer Keyboard Shortcut Processing Vulnerability”, Secunia Research, 13 December 2005, http://secunia.com/secunia_research/2005-7/advisory/. [96] “Clickjacking”, Robert Hansen and Jeremiah Grossman, 12 September 2008, http://ha.ckers.org/blog/20080915/clickjacking/. [97] “This Week in HTML 5 — Episode 7”, Mark Pilgrim, 29 September 2008, http://blog.whatwg.org/this-week-in-html-5-episode-7. [98] “You’ve Been Warned: An Empirical Study of the Effectiveness of Web Browser Phishing Warnings”, Serge Egelman, Lorrie Cranor and Jason Hong, Proceedings of the 26th Conference on Human Factors in Computing Systems (CHI’08), April 2008, p.1065. [99] “Internet Explorer Suppressed “Download Dialog” Vulnerability”, Secunia Research, 13 December 2005, http://secunia.com/secunia_research/2005-21/advisory/. [100] “pop up XPInstall/security dialog when user is about to click”, Mozilla forum discussion, 9 August 2002, https://bugzilla.mozilla.org/show_bug.cgi?id=162020. [101] “Disable Extension Install Delay (Firefox)”, [95] http://kb.mozillazine.org/Disable_Extension_Install_Delay_(Firefox). [102] “MR Tech Disable XPI Install Delay”, Mel Reyes, 20 Apr 2006, https://addons.mozilla.org/firefox/775/. [103] “MR Tech Disable XPI Install Delay”, 23 March 2007, https://addons.mozilla.org/firefox/775/. [104] “Human Values, Ethics, and Design”, Batya Friedman and Peter Kahn, in “The Human-Computer Interaction Handbook: Fundamentals, Evolving Technologies and Emerging Applications”, L.


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, business logic, call centre, continuous integration, Debian, Donald Knuth, en.wikipedia.org, Firefox, Grace Hopper, index card, Isaac Newton, natural language processing, off-by-one error, p-value, performance metric, revision control, six sigma, software as a service, software patent, SQL injection, 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 https://wiki.mozilla.org/ MozillaQualityAssurance:Home_Page:Firefox_3.0_TestPlan:Leaks:LeakTesting-How-To and “Debugging memory leaks” at https://developer.mozilla.org/En/Debugging_memory_leaks.

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.

Initially we thought of Firebug, but it could be any extension. This got us thinking about extension testing. We had had some problems with people thinking that Firefox was leaking badly, and frequently the problem turned out to be extensions leaking. Firefox wasn’t innocent of leaks, but we had come a long way in Firefox § See the “Free Download Top 1,000,000 Sites (Updated Daily)” link at http://alexa.com/topsites. 298 CHAPTER TWENTY-TWO 3.0 and 3.5 in cleaning this up. Consequently, the most likely source of leaks had dramatically shifted from Firefox itself to extensions. At that point in time, Sisyphus just ran a list of URLs and could spider them to any depth desired.


pages: 779 words: 116,439

Test-Driven Development With Python by Harry J. W. Percival

business logic, continuous integration, database schema, Debian, DevOps, don't repeat yourself, duck typing, Firefox, loose coupling, MVC pattern, off-by-one error, platform as a service, pull request, web application, WebSocket

The first test looks like this, and you can type it in using the PythonAnywhere editor just fine: from selenium import webdriver browser = webdriver.Firefox() browser.get('http://localhost:8000') assert 'Django' in browser.title But when you try and run it (in a Bash console), you’ll get an error: $ python3 functional_tests.py Traceback (most recent call last): File "tests.py", line 3, in <module> browser = webdriver.Firefox() File "/usr/local/lib/python3.3/site-packages/selenium/webdriver/firefox/webdrive self.binary, timeout), File "/usr/local/lib/python3.3/site-packages/selenium/webdriver/firefox/extensio self.binary.launch_browser(self.profile) File "/usr/local/lib/python3.3/site-packages/selenium/webdriver/firefox/firefox_ self.

The first test looks like this, and you can type it in using the PythonAnywhere editor just fine: from selenium import webdriver browser = webdriver.Firefox() browser.get('http://localhost:8000') assert 'Django' in browser.title But when you try and run it (in a Bash console), you’ll get an error: $ python3 functional_tests.py Traceback (most recent call last): File "tests.py", line 3, in <module> browser = webdriver.Firefox() File "/usr/local/lib/python3.3/site-packages/selenium/webdriver/firefox/webdrive self.binary, timeout), File "/usr/local/lib/python3.3/site-packages/selenium/webdriver/firefox/extensio self.binary.launch_browser(self.profile) File "/usr/local/lib/python3.3/site-packages/selenium/webdriver/firefox/firefox_ self._wait_until_connectable() File "/usr/local/lib/python3.3/site-packages/selenium/webdriver/firefox/firefox_ 409 www.it-ebooks.info self._get_firefox_output()) selenium.common.exceptions.WebDriverException: Message: 'The browser appears to have exited before we could connect. The output was: Error: no display specified\n' The fix is to use Xvfb, which stands for X Virtual Framebuffer. It will start up a “virtual” display, which Firefox can use even though the server doesn’t have a real one. If, instead, you see "ImportError, no module named selenium“, do a pip3 install --user selenium. The command xvfb-run will run the next command in Xvfb.

www.it-ebooks.info APPENDIX A PythonAnywhere Are you planning to use PythonAnywhere to follow along with this book? Here’s a few notes on how to get things working, specifically with regards to Selenium/Firefox tests, running the test server, and screenshots. If you haven’t already, you’ll need to sign up for a PythonAnywhere account. A free one should be fine. Running Firefox Selenium Sessions with Xvfb The next thing is that PythonAnywhere is a console-only environment, so it doesn’t have a display in which to pop up Firefox. But we can use a virtual display. In Chapter 1, when we write our first ever test, you’ll find things don’t work as expected. The first test looks like this, and you can type it in using the PythonAnywhere editor just fine: from selenium import webdriver browser = webdriver.Firefox() browser.get('http://localhost:8000') assert 'Django' in browser.title But when you try and run it (in a Bash console), you’ll get an error: $ python3 functional_tests.py Traceback (most recent call last): File "tests.py", line 3, in <module> browser = webdriver.Firefox() File "/usr/local/lib/python3.3/site-packages/selenium/webdriver/firefox/webdrive self.binary, timeout), File "/usr/local/lib/python3.3/site-packages/selenium/webdriver/firefox/extensio self.binary.launch_browser(self.profile) File "/usr/local/lib/python3.3/site-packages/selenium/webdriver/firefox/firefox_ self.


pages: 312 words: 52,762

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

Firefox, information security, web application

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 http://forum.immunityinc.com/index.php?

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 firefox_hook.py, and punch out the following code. firefox_hook.py firefox_hook.py 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 !

firefox_hook.py firefox_hook.py 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 != "\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.


pages: 328 words: 84,682

The Business of Platforms: Strategy in the Age of Digital Competition, Innovation, and Power by Michael A. Cusumano, Annabelle Gawer, David B. Yoffie

activist fund / activist shareholder / activist investor, Airbnb, AltaVista, Amazon Web Services, AOL-Time Warner, asset light, augmented reality, autonomous vehicles, barriers to entry, bitcoin, blockchain, business logic, Cambridge Analytica, Chuck Templeton: OpenTable:, cloud computing, collective bargaining, commoditize, CRISPR, crowdsourcing, cryptocurrency, deep learning, Didi Chuxing, distributed ledger, Donald Trump, driverless car, en.wikipedia.org, fake news, Firefox, general purpose technology, gig economy, Google Chrome, GPS: selective availability, Greyball, independent contractor, Internet of things, Jeff Bezos, Jeff Hawkins, John Zimmer (Lyft cofounder), Kevin Roose, Lean Startup, Lyft, machine translation, Mark Zuckerberg, market fundamentalism, Metcalfe’s law, move fast and break things, multi-sided market, Network effects, pattern recognition, platform as a service, Ponzi scheme, recommendation engine, Richard Feynman, ride hailing / ride sharing, Robert Metcalfe, Salesforce, self-driving car, sharing economy, Silicon Valley, Skype, Snapchat, SoftBank, software as a service, sovereign wealth fund, speech recognition, stealth mode startup, Steve Ballmer, Steve Jobs, Steven Levy, subscription business, Susan Wojcicki, TaskRabbit, too big to fail, transaction costs, transport as a service, Travis Kalanick, two-sided market, Uber and Lyft, Uber for X, uber lyft, vertical integration, Vision Fund, web application, zero-sum game

Developers focused mostly on adapting the software for different operating systems, fixing bugs, and improving security, which could happen relatively quickly with a large number of developers working on the code.42 Mozilla introduced its first browser in June 2002, with innovative features such as tabbed browsing, the ability to select a word or phrase and search the web for the selected text, and the ability to store common information for automatically filling in forms.43 The next round of the browser wars truly opened with Mozilla’s release of Firefox in September 2004. Seeking to avoid software bloat and performance issues, two developers working for the Mozilla nonprofit foundation began what would become the Firefox browser in late 2002. Their goal was to produce a stand-alone browser that would be faster, simpler, and more secure. After its release, Firefox quickly began to eat into Internet Explorer’s market share. One source reported that Firefox had 4.5 percent of the browser market by the end of November 2004, while Internet Explorer’s share had dropped 5 percentage points to 89 percent.44 By the end of 2007, Firefox had grabbed 17 percent of browser usage, compared to 76 percent for IE.45 Why was Microsoft slipping so fast?

Despite its release in 2006, Firefox continued to gain ground, accounting for about 32 percent of web traffic by the end of 2009, while IE’s share fell to 56 percent. Firefox’s share remained flat for the next year or so, and then began a slow decline that left it with only 5 percent of the market by early 2018. Its losses were not IE’s gain, however, as the browser wars entered a new phase with the emergence of a new competitor in late 2008, Google’s Chrome. Google Chrome, 2008–2016: Google launched Chrome in September 2008. It gradually gained traction in the market and soon began gaining ground on IE and Firefox, turning the browser contest into a three horse race.

It gradually gained traction in the market and soon began gaining ground on IE and Firefox, turning the browser contest into a three horse race. By one measure, total web traffic using Chrome passed Firefox at the end of 2011 and overtook IE in the middle of 2012. Other measures of users show Chrome passing Firefox in mid-2014 and reaching a near tie with IE by early 2016. (See Figure 4-2.)51 FIGURE 4-2: DESKTOP BROWSER MARKET SHARE, MEASURED BY TOTAL PAGE VIEWS, 2008–2016 Constructed from data in StatCounter Global Stats, http://gs.statcounter.com/, accessed April 19, 2016. The trend was clear: Chrome rapidly took market share from both Firefox and IE in the years after its launch. When Google released the first version, it boasted that it had developed a new JavaScript engine that could execute JavaScript code ten times faster than competing browsers.


pages: 141 words: 9,896

Pragmatic Guide to JavaScript by Christophe Porteneuve

barriers to entry, commoditize, domain-specific language, en.wikipedia.org, Firefox, Great Leap Forward, web application, WebSocket

In short, regular debugging can be done. 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.

Geocoding a Location and Getting Photos For It 96 Report erratum Download from Wow! eBook <www.wowebook.com>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 . . . . . . . . .

eBook <www.wowebook.com>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') Y.one('#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') someRootElement.select('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

"World Economic Forum" Davos, 8-hour work day, Aaron Swartz, affirmative action, AltaVista, Apple II, Apple Newton, Bear Stearns, Boeing 747, Brewster Kahle, business cycle, business process, Byte Shop, Compatible Time-Sharing System, Danny Hillis, David Heinemeier Hansson, digital rights, don't be evil, eat what you kill, fake news, fear of failure, financial independence, Firefox, full text search, game design, General Magic , Googley, Hacker News, HyperCard, illegal immigration, Internet Archive, Jeff Bezos, Joi Ito, Justin.tv, Larry Wall, Maui Hawaii, Max Levchin, Menlo Park, Mitch Kapor, Multics, nuclear winter, PalmPilot, Paul Buchheit, Paul Graham, Peter Thiel, proprietary trading, Richard Feynman, Robert Metcalfe, Ruby on Rails, Sam Altman, 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 Jurvetson, Steve Wozniak, The Soul of a New Machine, 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. In 2005, Ross took a leave from Stanford University to start a startup with fellow Firefox developer Joe Hewitt. Livingston: Tell me about how Firefox got started. Ross: Firefox grew out of Mozilla, which itself has a very long history that I won’t go into now. I personally started working on the Mozilla project in 2000. It was open source; anyone could work on it.

We just went through Fireanything names for a couple of months, and somebody came up with Firefox, which is actually the Chinese name for a red panda. Livingston: Were the Firefox developers all in different places? Ross: When we first started doing it, we were all at Netscape. Then Dave left to go to Apple to work on Safari, and we had some other folks like Ben Goodger from New Zealand, Pierre Chanial from France, and Jan Varga from Slovakia come on board. I went back to Miami, and we continued to work together online. Joe and I still collaborate through IM on Parakey, even though we’re about 20 minutes apart, because we’re so used to that environment from Firefox. It’s just so much faster to collaborate online than it is for him to drive down to me or me to drive up to him.


pages: 305 words: 93,091

The Art of Invisibility: The World's Most Famous Hacker Teaches You How to Be Safe in the Age of Big Brother and Big Data by Kevin Mitnick, Mikko Hypponen, Robert Vamosi

4chan, big-box store, bitcoin, Bletchley Park, blockchain, connected car, crowdsourcing, data science, Edward Snowden, en.wikipedia.org, end-to-end encryption, evil maid attack, Firefox, Google Chrome, Google Earth, incognito mode, information security, Internet of things, Kickstarter, Laura Poitras, license plate recognition, Mark Zuckerberg, MITM: man-in-the-middle, off-the-grid, operational security, pattern recognition, ransomware, Ross Ulbricht, Salesforce, self-driving car, Silicon Valley, Skype, Snapchat, speech recognition, Tesla Model S, web application, WikiLeaks, zero day, Zimmermann PGP

For example, iPhones ship with Safari, but you might also want to consider going to the online Apple store and downloading the mobile version of Chrome or Firefox, browsers that were designed for the mobile environment. Newer versions of Android do ship with Chrome as the default. All mobile browsers at least support private browsing. And if you use a Kindle Fire, neither Firefox nor Chrome are download options through Amazon. Instead you have to use a few manual tricks to install Mozilla’s Firefox or Chrome through Amazon’s Silk browser. To install Firefox on the Kindle Fire, open the Silk browser and go to the Mozilla FTP site. Select “Go,” then select the file that ends with the extension .apk.

Private browsing doesn’t create temporary files, and therefore it keeps your browsing history off your laptop or mobile device. Could a third party still see your interaction with a given website? Yes, unless that interaction is first encrypted. To accomplish this, the Electronic Frontier Foundation has created a browser plug-in called HTTPS Everywhere.4 This is a plug-in for the Firefox and Chrome browsers on your traditional PC and for the Firefox browser on your Android device. There’s no iOS version at the time of this writing. But HTTPS Everywhere can confer a distinct advantage: consider that in the first few seconds of connection, the browser and the site negotiate what kind of security to use. You want perfect forward secrecy, which I talked about in the previous chapter.

Fortunately, you can turn off browser location tracking. In Firefox, type “about: config” in the URL address bar. Scroll down to “geo” and change the setting to “disable.” Save your changes. In Chrome, go to Options>Under the Hood>Content Settings>Location. There’s a “Do not allow any site to track my physical location” option that will disable geolocation in Chrome. Other browsers have similar configuration options. You might also want to fake your location—if only just for fun. If you want to send out false coordinates—say, the White House—in Firefox, you can install a browser plug-in called Geolocator.


pages: 193 words: 36,189

Html5 Boilerplate Web Development by Divya Manian

en.wikipedia.org, Firefox, Google Chrome, node package manager, pull request, Ruby on Rails, search engine result page

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 (www.virtualbox.org/). Microsoft provides older IEs as virtual images for testing, which you could also install on Virtual Box using ievms (github.com/xdissent/ievms).

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.

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; /* h5bp.com/t */ } 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, Easter island, en.wikipedia.org, Erik Brynjolfsson, fault tolerance, Fellow of the Royal Society, Firefox, Free Software Foundation, Freestyle chess, Galaxy Zoo, Higgs boson, Internet Archive, invisible hand, Jane Jacobs, Jaron Lanier, Johannes Kepler, Kevin Kelly, Large Hadron Collider, machine readable, machine translation, Magellanic Cloud, means of production, medical residency, Nicholas Carr, P = NP, P vs NP, publish or perish, Richard Feynman, Richard Stallman, selection bias, semantic web, Silicon Valley, Silicon Valley startup, Simon Singh, Skype, slashdot, social intelligence, social web, statistical model, Stephen Hawking, Stewart Brand, subscription business, tacit knowledge, Ted Nelson, the Cathedral and the Bazaar, 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, Wayback Machine, Yochai Benkler

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.

I’ve no idea why this happens, and it’s only a minor irritation in an excellent product, but it can be a little confusing. 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.

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 http://bugzilla.mozilla.org. p 55: The favicon bug in Firefox is described at https://bugzilla.mozilla.org/show_bug.cgi?id=411966. 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: 680 words: 157,865

Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design by Diomidis Spinellis, Georgios Gousios

Albert Einstein, barriers to entry, business intelligence, business logic, business process, call centre, continuous integration, corporate governance, database schema, Debian, domain-specific language, don't repeat yourself, Donald Knuth, duck typing, en.wikipedia.org, fail fast, fault tolerance, financial engineering, Firefox, Free Software Foundation, functional programming, general-purpose programming language, higher-order functions, iterative process, linked data, locality of reference, loose coupling, meta-analysis, MVC pattern, Neal Stephenson, no silver bullet, peer-to-peer, premature optimization, recommendation engine, Richard Stallman, Ruby on Rails, semantic web, smart cities, social graph, social web, SPARQL, Steve Jobs, Stewart Brand, Strategic Defense Initiative, systems thinking, the Cathedral and the Bazaar, traveling salesman, Turing complete, type inference, web application, zero-coupon bond

Taking the same techniques even further, developers can replace the standard Firefox chrome altogether and radically reshape the entire user interface—to adapt it for use on mobile devices, for example. Like Eclipse plug-ins, Firefox chrome packages include a significant amount of metadata. And, resembling Eclipse’s Plug-in Development Environment plug-in, there is a Firefox extension to help people write Firefox extensions. So there is still a significant amount of work required up front before one can extend or fix Firefox. However, Firefox’s automatic display management and simplified event handling mean that the effort required is still not as high as that needed to write an Eclipse plug-in.

As in Emacs, the process of dispatching input events to JavaScript code is managed by the browser. Firefox takes care of deciding which element of the web page an event was directed at, finds an appropriate handler, and invokes it. However, Firefox takes the ideas behind these modern web applications a bit further: Firefox’s own user interface is implemented using the same underlying code that displays web pages and handles their interactions. A set of packages known as chrome describe the interface’s structure and style, and include JavaScript code to bring it to life.[57] This architecture allows third-party developers to write add-ons that extend Firefox’s user interface with new chrome packages.

However, Firefox’s automatic display management and simplified event handling mean that the effort required is still not as high as that needed to write an Eclipse plug-in. Firefox’s developers are working to improve the performance of its JavaScript implementation. Although this obviously helps users visiting JavaScript-heavy websites, it also allows the Firefox developers to migrate more and more of the browser itself from C++ to JavaScript, a much more comfortable and flexible language for the problem. In this sense, Firefox’s architecture is evolving to look more like that of Emacs, with its all-Lisp Controller. This suggests the third and final question, one we can ask of any extension language we encounter: is the extension language the preferred way to implement most new features for the application?


The Icon Handbook by Jon Hicks

augmented reality, Debian, Firefox, Google Chrome, Kickstarter, Skype, web application

Originally called Phoenix and then Firebird, it was eventually given the permanent name of Firefox for its first public release in 2004. We all came up with various ideas, but the fox with a fiery tail we decided on came from Daniel Burka, which was then sketched by Stephen Desroches, before I took it on and rendered it: Strictly speaking, a firefox is a red panda (without doubt a very cute animal), but the European fox looked bolder and more iconic. The new icon was launched in early 2004, and since then Firefox has become a global brand and the icon has been updated further by the Iconfactory. It was a big leap in profile for me, and has allowed me to follow icon design projects ever since, for clients such as Skype, Opera and Linotype.

Prior to 2004, a wide variety of esoteric symbols were used to depict an RSS feed, from (bizarrely) medication to coffee cups. The most common was the simple orange block with ‘RSS’, as seen here in Firefox 0.9: The problem with using the text RSS was that, technically, it’s just one format a feed could be in. It was shorter than ‘Syndication’ at least. A way of describing the concept, rather than one particular implementation, was needed. Up to this point, it was still better than a pill or coffee cup, though. That all changed very quickly, when Stephen Horlander created a new RSS icon for Firefox 1.0. The white radio waves indicate the broadcasting aspect of feeds clearly and simply. By 2005, however, Microsoft’s Internet Explorer and Outlook had adopted it too, followed by Opera the following year.

Which formats are needed? What is the context? A favicon could appear on a variety of backgrounds, so we will need to use transparency to get the best option to fit all. It won’t always be displayed on a white address bar background — it may appear on Windows Aero glass, a grey Mac OS X UI, or a dark browser theme. Firefox 4 also adds a grey button background to favicons in its address bar; it is set slightly larger so it will always border the favicon. What sizes are needed? If you were to create a favicon for every possible use, the sizes you would need to create are: 16px: For general use in all browsers, could be displayed in the address bar, tabs or bookmarks views. 24px: Pinned site in Internet Explorer 9 32px: New tab page in Internet Explorer, taskbar button in Windows 7+ and Safari’s ‘Read Later’ sidebar 57px: Standard iOS home screen (iPod Touch, iPhone first generation to 3G) 72px: iPad home screen icon 96px: Favicon used by the GoogleTV platform 114px: iPhone 4+ home screen icon (twice the standard size for the retina display) 128px: Chrome Web Store 195px: Opera Speed Dial Opera Speed Dial Chrome Web Store 57px and 114px favicons in iOS, and 96px favicon in Google TV Do we really need to supply all of these?


pages: 834 words: 180,700

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

8-hour work day, anti-pattern, bioinformatics, business logic, c2.com, cloud computing, cognitive load, collaborative editing, combinatorial explosion, computer vision, continuous integration, Conway's law, create, read, update, delete, David Heinemeier Hansson, Debian, domain-specific language, Donald Knuth, en.wikipedia.org, fault tolerance, finite state, Firefox, Free Software Foundation, friendly fire, functional programming, Guido van Rossum, Ken Thompson, linked data, load shedding, locality of reference, loose coupling, Mars Rover, MITM: man-in-the-middle, MVC pattern, One Laptop per Child (OLPC), 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

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.

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.

Sadly, although URL Templates were proposed at the same time, we only became aware of them relatively late in the day, and therefore they are not used to describe the wire protocol. Because the method we're executing is idempotent4, the correct HTTP method to use is a GET. We delegate down to a Java library that can handle HTTP (the Apache HTTP Client) to call the server. Figure 16.4: Overview of the Firefox Driver Architecture The Firefox driver is implemented as a Firefox extension, the basic design of which is shown in Figure 16.4. Somewhat unusually, it has an embedded HTTP server. Although originally we used one that we had built ourselves, writing HTTP servers in XPCOM wasn't one of our core competencies, so when the opportunity arose we replaced it with a basic HTTPD written by Mozilla themselves.


Designing Interfaces by Jenifer Tidwell

A Pattern Language, business intelligence, cognitive load, crowdsourcing, Firefox, longitudinal study, school vouchers, seminal paper, social software, social web, sorting algorithm, the long tail, Tony Hsieh, web application

Use social networking resources for these, or more traditional online forums. Examples Firefox is “merely” a web browser, and a free one at that, but its help systems are stellar. Help is offered at most of the levels described in the preceding list, so both beginners and experts are well supported. All of the following examples come from Firefox so that you can see the range of help that can be offered for one product. When you visit Firefox’s site in order to download the browser, you are greeted by an outline of the install process and a very clear call to action, as shown in Figure 2-41. Figure 2-41. Firefox download page When you launch it for the first time, you see an introductory screen that may intrigue the user: easy ways to customize the Firefox look, connections to social media, and links to help resources (see Figure 2-42).

See the pattern descriptions for Input Hints and Input Prompt in Chapter 8. Figure 2-44. Firefox input prompts Some dialogs attempt to describe themselves, as shown in Figure 2-45. Figure 2-45. Firefox toolbars dialog Other dialogs offer links to the formal help system; an appropriate help page is displayed in a browser window when the user clicks the round purple button in the lower-left corner (see Figures Figure 2-46 and Figure 2-47). Figure 2-46. Firefox preferences dialog Figure 2-47. Firefox preferences dialog help page Finally, if all other sources of help are exhausted, a user can turn to the wider user community for advice.

Firefox download page When you launch it for the first time, you see an introductory screen that may intrigue the user: easy ways to customize the Firefox look, connections to social media, and links to help resources (see Figure 2-42). The page also confirms for the user that the install was successful; if the user needs to do anything more, such as get security updates, the introductory page will say so. Figure 2-42. Firefox startup page Each tool on the browser window has a tool tip (see Figure 2-43). The basic buttons—back, next, reload, home—will be familiar to almost all users, but the more obscure items may need to be explained. Figure 2-43. Firefox tool tips The main text fields use Input Prompt to describe themselves (see Figure 2-44).


pages: 234 words: 57,267

Python Network Programming Cookbook by M. Omar Faruque Sarker

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

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 = 'http://www.python.org' def spoof_firefox(): opener = urllib2.build_opener() opener.addheaders = [('User-agent', BROWSER)] result = opener.open(URL) 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 4_7_spoof_mozilla_firefox_in_client_code.py 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 = 'http://www.python.org' def spoof_firefox(): opener = urllib2.build_opener() opener.addheaders = [('User-agent', BROWSER)] result = opener.open(URL) 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 4_7_spoof_mozilla_firefox_in_client_code.py 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...

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...


pages: 1,302 words: 289,469

The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws by Dafydd Stuttard, Marcus Pinto

business logic, call centre, cloud computing, commoditize, database schema, defense in depth, easy for humans, difficult for computers, Firefox, information retrieval, information security, lateral thinking, machine readable, MITM: man-in-the-middle, MVC pattern, optical character recognition, Ruby on Rails, SQL injection, Turing test, Wayback Machine, web application

Firefox's popularity is sufficient that Firefox-specific XSS exploits are perfectly valid, so you should test these against Firefox if you encounter difficulties getting them to work against IE. Also, features specific to Firefox have historically allowed a range of attacks to work that are not possible against IE, as described in Chapter 13. 750 Chapter 20 A Web Application Hacker's Toolkit A large number of browser extensions are available for Firefox that may be useful when attacking web applications, including the following: ■ Http Watch is also available for Firefox. ■ FoxyProxy enables flexible management of the browser's proxy configuration, allowing quick switching, setting of different proxies for different URLs, and so on

Chapter 20 A Web Application Hacker's Toolkit 749 Figure 20-1: HttpWatch analyzes the HTTP requests issued by Internet Explorer Fi refox Firefox is currently the second most widely used web browser. By most estimates it makes up approximately 35% of the market. The majority of web applications work correctly on Firefox; however, it has no native support for ActiveX controls. There are many subtle variations among different browsers' handling of HTML and JavaScript, particularly when they do not strictly comply with the standards. Often, you will find that an application's defenses against bugs such as cross-site scripting mean that your attacks are not effective against every browser platform. Firefox's popularity is sufficient that Firefox-specific XSS exploits are perfectly valid, so you should test these against Firefox if you encounter difficulties getting them to work against IE.

Nevertheless, in situations where you are forced to use them, they will enable you to perform a comprehensive attack on your target that would not be possible using only a standard browser. Tamper Data Tamper Data, shown in Figure 20-15, is an extension to the Firefox browser. Anytime you submit a form. Tamper Data displays a pop-up showing all the request details, including HTTP headers and parameters, which you can view and modify. Figure 20-15: Tamper Data lets you modify HTTP request details within Firefox Tam perlE TamperlE, shown in Figure 20-16, implements essentially the same functionality within the Internet Explorer browser as Tamper Data does on Firefox. Chapter 20 A Web Application Hacker's Toolkit 775 TamperlE — Edit Request Figure 20-16: TamperlE lets you modify HTTP request details within Internet Explorer Standalone Vulnerability Scanners A number of different tools exist for performing completely automated vulnerability scans of web applications.


pages: 394 words: 110,352

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

barriers to entry, Benchmark Capital, Benevolent Dictator For Life (BDFL), collaborative editing, crowdsourcing, Debian, DevOps, digital divide, digital rights, do what you love, do-ocracy, en.wikipedia.org, Firefox, Free Software Foundation, 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, Stephen Fry, telemarketer, the long tail, 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.

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.

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 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.


pages: 100 words: 15,500

Getting Started with D3 by Mike Dewar

data science, Firefox, Google Chrome, linked data

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 http://getfirebug.com/. Once it’s installed, it will be available in the View menu. In order to get your head around the d3.select(), 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.

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.

d3.select(".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.


pages: 280 words: 40,881

JQuery UI by Eric Sarrion

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

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.

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.

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: 692 words: 95,244

Speaking JavaScript: An In-Depth Guide for Programmers by Axel Rauschmayer

Airbnb, anti-pattern, digital divide, en.wikipedia.org, fail fast, Firefox, functional programming, higher-order functions, machine readable, web application

But we now have two additional interactive platforms: web and mobile. With HTML5, you can target all of these platforms via technologies such as PhoneGap, Chrome Apps, and TideSDK. Additionally, several platforms have web apps as native apps or let you install them natively—for example, Chrome OS, Firefox OS, and Android. Other Technologies Complementing JavaScript There are more technologies than just HTML5 that complement JavaScript and make the language more useful: Libraries JavaScript has an abundance of libraries, which enable you to complete tasks ranging from parsing JavaScript (via Esprima) to processing and displaying PDF files (via PDF.js).

But they can also be updated on the client, resulting in a more responsive user interface. 2009—PhoneGap, writing native apps in HTML5 PhoneGap was created by a company called Nitobi that was later purchased by Adobe. The open source foundation of PhoneGap is called Cordova. The initial mission of PhoneGap was to make it possible to implement native mobile apps via HTML5. Since then, support has expanded to nonmobile operating systems. Currently supported platforms include Android, Bada, BlackBerry, Firefox OS, iOS, Mac OS X, Tizen, Ubuntu, Windows (desktop), and Windows Phone. Apart from HTML5 APIs, there are also PhoneGap-specific APIs for accessing native features such as the accelerometer, camera, and contacts. 2009—Chrome OS, making the browser the operating system With Chrome OS, the web platform is the native platform.

The introduction of the mobile operating system webOS (which originated at Palm and is now owned by LG Electronics) predates the introduction of Chrome OS, but the “browser as OS” idea is more apparent with the latter (which is why it was chosen as a milestone). webOS is both less and more. Less, because it is very focused on cell phones and tablets. More, because it has Node.js built in, to let you implement services in JavaScript. A more recent entry in the web operating system category is Mozilla’s Firefox OS, which targets cell phones and tablets. Mozilla’s wiki mentions a benefit of web operating systems for the Web: We also need a hill to take, in order to scope and focus our efforts. Recently we saw the pdf.js project [which renders PDFs via HTML5, without plugins] expose small gaps that needed filling in order for “HTML5” to be a superset of PDF.


pages: 597 words: 119,204

Website Optimization by Andrew B. King

AltaVista, AOL-Time Warner, bounce rate, don't be evil, Dr. Strangelove, en.wikipedia.org, Firefox, In Cold Blood by Truman Capote, information retrieval, iterative process, Kickstarter, machine readable, medical malpractice, Network effects, OSI model, performance metric, power law, satellite internet, search engine result page, second-price auction, second-price sealed-bid, semantic web, Silicon Valley, slashdot, social bookmarking, social graph, Steve Jobs, the long tail, three-martini lunch, traumatic brain injury, web application

Figure 10-17. 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).

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. If you mouse over any of the images, you will get a preview of the image to quickly identify fat graphics (also shown in Figure 10-18). Unlike IBM Page Detailer, Firebug doesn't show detail regarding server response and delivery.

-- #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.


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, en.wikipedia.org, fake news, Firefox, full text search, Gordon Gekko, Kickstarter, Larry Wall, leftpad, loose coupling, Ronald Reagan, web application

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.

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 = Ext.DomQuery.select(query); 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.

While I strive to make all of the projects in my books crossbrowser (at least Internet Explorer and Firefox on Windows at a minimum), this project gave me a lot of trouble in that regard. I was only able to get it to work reliably in Firefox. As far as I can tell, it’s the fact that the charting support in Ext JS is new in version 3 and maybe still needs some work. But since the charting support is Flash based, it could very well be a Flash issue too. So, my strong suggestion is to only try running this app in Firefox to be safe, even though it should work in other browsers as well, and you may find it does.


pages: 114 words: 27,996

Responsive Web Design by Ethan Marcotte

en.wikipedia.org, 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.

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. Internet Explorer, however, does have such a toggle. (Pardon me whilst I swallow my pride for this next section title.) Hail AlphaImageLoader, the conquering hero Ever tried to get transparent PNGs working in IE6 and below? Chances are good you’ve encountered AlphaImageLoader, one of Microsoft’s proprietary CSS filters (http://bkaprt.com/rwd/13/).

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 (http://bkaprt.com/rwd/32/) supports media queries (http://bkaprt.com/rwd/33/)! 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.


pages: 1,881 words: 178,824

HTML5 Canvas by Steve Fulton, Jeff Fulton

barriers to entry, Firefox, game design, Google Chrome, off-the-grid, web application, WebSocket

All you need is a modern web browser and a text editor. As far as compatible browsers go, we suggest that you download and use the latest version of the following web browsers. The browsers are listed in the order that we suggest you test them: Chrome Safari Firefox Internet Explorer (version 10) Opera Every example in this book was tested with Google Chrome, Safari, and Firefox. While we made every attempt to ensure that these examples worked across as many browsers as possible, we suggest that you use Google Chrome or Safari for the best results. What You Need to Know It would be good if you knew your way around programming in some kind of modern language like C, C++, C#, ActionScript 2, ActionScript 3, Java, or JavaScript.

A Simple HTML5 Page Now let’s look at this page in a web browser. (This would be a great time to get your tools together to start developing code.) Open your chosen text editor, and get ready to use your preferred web browser: Safari, Firefox, Opera, Chrome, or IE. In your text editor, type in the code from Example 1-1. Save the code as CH1EX1.html in a directory of your choosing. Under the File menu in Chrome, Safari, or Firefox, you should find the option Open File. Click that selection. You should then see a box to open a file. (On Windows using Chrome, you might need to press Ctrl+O to open a file.) Locate the CH1EX1.html that you just created.

We are not going to use version numbers here, because we assume the latest version of each product: Platform .ogg .mp3 .wav Chrome X X X Firefox X X Safari X X Opera X X Internet Explorer X The situation is much like that of the <video> tag. To support <audio>, we will need to use multiple separate formats for each piece of audio we want to play. To be on the safe side, we will use three formats: .mp3, .ogg, and .wav. At this point, we will probably never see Opera and Firefox support for .mp3 files. The license fee associated with the format is prohibitive for those browsers. Audacity Fortunately, there is a great free audio tool available that will help you convert audio into any format.


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.

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 http://code.google.com/p/explorercanvas/.

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.


The Art of SEO by Eric Enge, Stephan Spencer, Jessie Stricchiola, Rand Fishkin

AltaVista, barriers to entry, bounce rate, Build a better mousetrap, business intelligence, cloud computing, content marketing, dark matter, en.wikipedia.org, Firefox, folksonomy, Google Chrome, Google Earth, hypertext link, index card, information retrieval, Internet Archive, Larry Ellison, Law of Accelerating Returns, linked data, mass immigration, Metcalfe’s law, Network effects, optical character recognition, PageRank, performance metric, Quicken Loans, risk tolerance, search engine result page, self-driving car, sentiment analysis, social bookmarking, social web, sorting algorithm, speech recognition, Steven Levy, text mining, the long tail, vertical integration, Wayback Machine, web application, wikimedia commons

identifying and addressing copyright infringement, Identifying and Addressing Copyright Infringement potential creation by use of pagination, Flat Versus Deep Architecture restricting spider access to by placing in iframe, When to Show Different Content to Engines and Visitors search engines' identification of, How Search Engines Identify Duplicate Content tracking, Tracking Duplicate Content viewed as spam, Duplicate Content duplicate content filter, Duplicate Content Issues duplicate content penalty, Duplicate Content Issues dynamic URLs, Technology Decisions E eBay, Experian Hitwise, Additional local info guides local-based searches on, Additional local info guides popular search terms used prior to visiting, Experian Hitwise ecommerce, How Search Engines Drive Commerce on the Web, SEO for Ecommerce Sales sales reports on, How Search Engines Drive Commerce on the Web SEO for sales, SEO for Ecommerce Sales ecommerce sites, A Deeper Look at Action Tracking, Attribution, Glossary action tracking, A Deeper Look at Action Tracking transaction delay from initial customer visit, Attribution editorial links, Glossary email pitch for direct link requests, Basic email pitch embed tag in HTML 5, What search engines cannot see emphasis tags, using in blog posts, More blog optimization basics engagement with website, as ranking factor, Measuring Content Quality and User Engagement Enquiro, eye-tracking results, Eye Tracking: How Users Scan Results Pages, Different Intents and Effects of Listings in Paid Versus Natural Results Eurekster, More specialized vertical search engines Exalead link data, Exalead Experian Hitwise, Uncovering Their Secrets, Experian Hitwise (see also Hitwise) ext: operator, Advanced Google Search Operators eye tracking, users' scans of results pages, Eye Tracking: How Users Scan Results Pages Eyetools, eye-tracking results, Eye Tracking: How Users Scan Results Pages, Different Intents and Effects of Listings in Paid Versus Natural Results F Facebook, Evaluating Social Media Signals, AJAX and JavaScript, Forum and Social Network Participation, Facebook, Facebook Shares/Links as a Ranking Factor, Facebook Likes Are Votes, Too, Bing’s “social search”, Summary of Social Sources to Consider, Facebook, Shelf space, Communities in Social Networks, An Evolving Art Form: The Future of SEO authors of this book on, Communities in Social Networks Comments system, AJAX and JavaScript continuing growth of, An Evolving Art Form: The Future of SEO Likes affecting rankings of content, Facebook Likes Are Votes, Too participation in, for link building, Forum and Social Network Participation rankings on, Shelf space Shares/links as ranking factor, Facebook Shares/Links as a Ranking Factor strategic partnership with Bing, Bing’s “social search” tracking key metrics on Insights, Facebook using for link building, Facebook FaceLift Image Replacement (FLIR), Scalable Inman Flash Replacement (sIFR) failure of search algorithms, reasons for, A Few Reasons Why These Algorithms Sometimes Fail fans of your business, leveraging for SEO, Your Fans feed search, optimizing for, RSS Feed Optimization feed: operator (Bing), Bing Advanced Search Operators FeedBurner, RSS Feed Tracking and Measurement, Blog subscribers feedmaps, Optimizing Your Website for Local Search Engines feeds, Measuring Content Quality and User Engagement, Video Search Optimization (see also RSS feeds) video sites accepting RSS or mRSS feeds, Video Search Optimization Ferrari Google+ Business Page, Google+ Business Pages FFA (Free For All) sites, Glossary file type, search restricted to, Advanced Google Search Operators filetype: operator, Advanced doc type searches filing cabinets and web pages, similarities between, An analogy “Filthy Linking Rich!”, Authority FindGiftCards.com (spam example), Two Spam Examples Firefox, What Content Can Search Engines “See” on a Web Page?, Firefox plug-ins for quicker access to Google advanced search queries, Methods for URL Redirecting and Rewriting, SEO for Firefox Live HTTP Headers plug-in, Methods for URL Redirecting and Rewriting plug-ins for Google advanced search queries, Firefox plug-ins for quicker access to Google advanced search queries SEO for Firefox extension, SEO for Firefox viewing source code, What Content Can Search Engines “See” on a Web Page? First Click Free, How Do Search Engines Interpret Cookies and Session IDs?

site:org bookmarks/links/"favorite sites"/ site:gov bookmarks/links/"favorite sites"/ site:edu bookmarks/links/"favorite sites"/ site:org donors Search for relevant forums and discussion boards to participate in discussions and probably link back to your site. inurl:forum OR inurl:forums keyword inurl:forum OR inurl:forums seo Firefox plug-ins for quicker access to Google advanced search queries You can use a number of plug-ins with Firefox to make accessing these advanced queries easier. For example: Advanced Dork (https://addons.mozilla.org/ru/firefox/addon/advanced-dork/), for quick access to intitle:, inurl:, site:, and ext: operators for a highlighted word on a page, as shown in Figure 2-25. Figure 2-25. Advanced Dork plug-in for Firefox SearchStatus (http://www.quirk.biz/searchstatus/), for quick access to a site: operator to explore a currently active domain, as shown in Figure 2-26 Figure 2-26.

Other Third-Party Tools Throughout this chapter, several third-party tools have been mentioned or recommended for analysis, research, and testing. This section introduces a few more that are worth mentioning. SEO for Firefox Aaron Wall of SEO Book created a useful data enhancement tool with the SEO for Firefox extension (http://tools.seobook.com/firefox/seo-for-firefox.html). When turned on, this tool provides extra data that can be populated automatically or on request from within the regular search results of Google, Yahoo!, and Bing. Some of the most popular data points this add-on provides for the URL or domain of each search result include: Google PageRank, site age, various backlink metrics, .edu and .gov link counts, bookmarking and social metrics (such as number of Digg votes), DMOZ listings, and additional reporting from other third-party tools.


The New CSS Layout by Rachel Andrew

Firefox

So if we load this example in a browser, we can see the grid areas we’ve defined (Fig 4.6). Fig 4.6: A four-column, three-row grid with four grid areas. A quick tip: as we start to look at more complex examples, it helps to see the grid defined. Firefox DevTools has a grid highlighter tool (http://bkaprt.com/ncl/04-06/). Inspect the element, then click the little grid icon to see your grid (Fig 4.7). Fig 4.7: Our grid, with the lines and gaps highlighted in Firefox. We already know from flexbox that align-items works on the cross axis. If we add the align-items property to our grid container with a value of start, the items all line up at the top of their area (Fig 4.8). .cards { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(3, 100px); grid-template-areas: "a a a b" "a a a b" "c d d d"; grid-gap: 20px; align-items: start; } Fig 4.8: The grid with align-items set to start.

Evergreen Browsers The existence of old browsers is a constant source of pain for web developers, and becomes an issue when large groups of users are “stuck” on some old browser version. We’ve seen this problem recur throughout the history of the web, with first Netscape 4 being the villain, then Internet Explorer 6. For anyone running Chrome or Firefox, browser updates happen in the background, automatically. New browser features appear, and websites that take advantage of them will suddenly seem to be better. Safari and Edge update with operating system releases; users have grown more and more accustomed to running these updates to ensure for security reasons.

This problem increasingly crops up with phone hardware, too; think of Android users who can’t update their OS, and therefore miss out on the new browser software that comes with the update. Despite not having worldwide evergreen browser support, the situation has generally improved for most of us compared to a few years ago. It’s worth implementing a feature that perhaps Firefox has shipped and Chrome has stated they will implement. Assuming the design will be online for a couple of years, a few months down the road, all Chrome users will see that enhancement. In Chapter 7, we’ll consider modern ways of approaching browser support, and look at how we can create sites that enhance themselves as browsers update—without us needing to write any more code.


pages: 504 words: 67,845

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

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

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.

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.

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: 135 words: 31,098

ClojureScript: Up and Running by Stuart Sierra, Luke Vanderhart

domain-specific language, Firefox, functional programming, higher-order functions, machine readable, MVC pattern, Paul Graham, web application

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.


pages: 186 words: 50,651

Interactive Data Visualization for the Web by Scott Murray

barriers to entry, data science, Firefox, intentional community, iterative process, TED Talk, the long tail, web application, your tax dollars at work

Chrome’s web inspector If you look closely, you’ll already see some differences between the raw HTML and the DOM, including the fact that Chrome generated the required html, head, and body elements. (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.

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 http://www.calmingmanatee.com, but with a properly configured server, the www part is wholly unnecessary.

All this is to say that developer tools are a big deal and you will rely on them heavily to both test your code and, when something breaks, figure out what went wrong. Let’s start with the simplest possible use of the developer tools: viewing the raw source code of an HTML page (see Figure 3-2). Every browser supports this, although different browsers hide this option in different places. 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.


pages: 270 words: 79,992

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

4chan, A Declaration of the Independence of Cyberspace, Airbnb, Amazon Web Services, Andy Carvin, Any sufficiently advanced technology is indistinguishable from magic, Apple's 1984 Super Bowl advert, barriers to entry, Berlin Wall, big-box store, bitcoin, bread and circuses, business climate, call centre, Cass Sunstein, centralized clearinghouse, Chelsea Manning, citizen journalism, cloud computing, collaborative consumption, collaborative editing, commoditize, Computer Lib, creative destruction, crony capitalism, cross-subsidies, crowdsourcing, David Brooks, death of newspapers, disruptive innovation, Donald Trump, Douglas Engelbart, Douglas Engelbart, en.wikipedia.org, Evgeny Morozov, Exxon Valdez, Fall of the Berlin Wall, Filter Bubble, Firefox, global supply chain, Google Chrome, Gordon Gekko, Hacker Ethic, Ian Bogost, Jaron Lanier, Jeff Bezos, jimmy wales, John Markoff, John Perry Barlow, Julian Assange, Kevin Kelly, Khan Academy, Kickstarter, Lean Startup, lolcat, machine readable, Mark Zuckerberg, military-industrial complex, minimum viable product, Mitch Kapor, Mohammed Bouazizi, Mother of all demos, Narrative Science, new economy, Occupy movement, off-the-grid, old-boy network, One Laptop per Child (OLPC), peer-to-peer, period drama, Peter Thiel, pirate software, public intellectual, publication bias, Robert Metcalfe, Ronald Reagan, Ronald Reagan: Tear down this wall, satellite internet, Seymour Hersh, sharing economy, Silicon Valley, Skype, social web, Steve Jobs, Steve Wozniak, Stewart Brand, Stuxnet, Ted Nelson, Ted Sorensen, Telecommunications Act of 1996, telemarketer, the Cathedral and the Bazaar, the long tail, 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. 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 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.


pages: 276 words: 78,094

Design for Hackers: Reverse Engineering Beauty by David Kadavy

Airbnb, complexity theory, en.wikipedia.org, Firefox, Hacker News, Isaac Newton, John Gruber, Paul Graham, Ruby on Rails, semantic web, Silicon Valley, Silicon Valley startup, Steve Jobs, TaskRabbit, web application, wikimedia commons, Y Combinator

As with many things in typography, the considerate eye is a better judge of how far to hang punctuation than geometry or rationale. To create a drop cap (which will work in Firefox, Chrome, and Safari, but not Internet Explorer 9) using CSS3, use the first-letter pseudo class, and carefully adjust the size, margins, and line-height so the drop cap is the appropriate size and in the appropriate position. The left side of Figure B-13 is created as follows: p.opening:first-letter { display: block; float: left; font-size: 114px; line-height: 80px; /* Note that Firefox 3.x ignores line-height; this value is adjusted so that WebKit and Opera match Firefox. */ margin: 8px 5px 0 -6px; padding:0; } Note that the irregular shape of the D calls for the first line of the paragraph to be kerned closer to the drop cap, but even if there were a practical way to achieve the proper kerning for this instance, there is no practical way to do this with dynamic content (because you don’t always know what letter the drop cap will be).

At the time of this writing, Internet Explorer and WebKit-based browsers such as Chrome and Safari recognize ligatures as their corresponding letter pair when the Find command is used (that is, if a user is searching for the word fig within the text of your page), whereas Firefox does not. CSS3’s font-variant-ligatures property displays the proper ligatures while not interfering with the actual HTML code of a page, thus retaining use of any browser’s Find command. Internet Explorer, Chrome, and Safari do not currently support this property, while Firefox does. Figure B-16 Ligatures are more necessary in some typefaces than in others. The groupings containing ff for Adobe Garamond are remnants of the typeface’s original incarnation as metal type. So, if you choose to apply ligatures on the content layer, your Firefox users won’t be able to use their Find command; if you choose to use font-variant-ligatures, only your Firefox users will see ligatures.

Google uses a ranking called PageRank to measure how much authority a given page has, on a scale from 1 to 10. There is a complex algorithm behind PageRank that you shouldn’t concern yourself with, but Google does provide a Firefox plug-in called Google Toolbar (shown in Figure 4-19), which shows what the PageRank of a page supposedly is. Seven is considered a very high PageRank. NYT.com has a PageRank of 9. Kadavy.net’s home page is a 4, which is considered decent for a personal blog. Figure 4-19 Google’s Firefox toolbar displays the PageRank of a given page. A number of factors go into determining a given page’s PageRank. Although the actual algorithm is an ever-changing secret, here are a few factors that are widely accepted to be a part of the algorithm: > Age of domain (how long the domain has been registered) > Authority (or PageRank) of pages that link to the page from other domains > Date of expiration of the domain (Is the domain expiring soon, or has the owner registered it a couple years into the future?


pages: 224 words: 48,804

The Productive Programmer by Neal Ford

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

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.

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.

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.


pages: 62 words: 15,274

Sass for Web Designers by Dan Cederholm

c2.com, don't repeat yourself, Firefox, Kickstarter, 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 li.active 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.

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: 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, Bill Atkinson, c2.com, Cass Sunstein, citation needed, commons-based peer production, crowdsourcing, Debian, disinformation, en.wikipedia.org, Firefox, Ford Model T, Free Software Foundation, Hacker Ethic, HyperCard, index card, Jane Jacobs, Jason Scott: textfiles.com, jimmy wales, Ken Thompson, Kickstarter, Marshall McLuhan, Mitch Kapor, Network effects, optical character recognition, Ralph Waldo Emerson, Richard Stallman, side project, Silicon Valley, Skype, slashdot, social software, Steve Jobs, the Cathedral and the Bazaar, The Death and Life of Great American Cities, the long tail, The Wisdom of Crowds, Tragedy of the Commons, urban planning, urban renewal, Vannevar Bush, wikimedia commons, Y2K, Yochai Benkler

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.

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.

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. Each click on an ad may generate only pennies or even a few dollars. But given the increas- Wikipedia_Makes_Waves_215 ing number of Firefox users and how many times one does a search each day, it adds up to a nice sum. It’s these types of numbers that make Jason Calacanis agitated. A high-en-ergy tech entrepreneur best known as the founder of Weblogs Inc., he is an un-abashed fan of Wikipedia.


Producing Open Source Software: How to Run a Successful Free Software Project by Karl Fogel

active measures, AGPL, barriers to entry, Benjamin Mako Hill, collaborative editing, continuous integration, Contributor License Agreement, corporate governance, Debian, Donald Knuth, en.wikipedia.org, experimental subject, Firefox, Free Software Foundation, GnuPG, Hacker Ethic, Hacker News, intentional community, Internet Archive, iterative process, Kickstarter, natural language processing, off-by-one error, patent troll, peer-to-peer, pull request, revision control, Richard Stallman, selection bias, slashdot, software as a service, software patent, SpamAssassin, the Cathedral and the Bazaar, Wayback Machine, web application, zero-sum game

Case study: Mozilla Firefox, the Debian Project, and Iceweasel The Mozilla Foundation owns the trademarked name "Firefox", which it uses to refer to its popular free software web browser of the same name. The Debian Project, which maintains a long-running and also quite popular GNU/Linux distribution, wanted to package Firefox for users of Debian GNU/Linux. So far, so good: Debian does not need Mozilla's permission to package Firefox, since Firefox is open source software. However, Debian does need Mozilla's permission to call the packaged browser "Firefox" and to use the widely-recognized Firefox logo (you've probably seen it: a long reddish fox curling its body and tail around a blue globe) as the icon for the program, because those are trademarks owned by Mozilla.

However, Debian does need Mozilla's permission to call the packaged browser "Firefox" and to use the widely-recognized Firefox logo (you've probably seen it: a long reddish fox curling its body and tail around a blue globe) as the icon for the program, because those are trademarks owned by Mozilla. Normally, Mozilla would have happily given its permission. After all, having Firefox distributed in Debian is good for Mozilla's mission of promoting openness on the Web. However, various technical and policy effects of the Debian packaging process left Debian unable to fully comply with Mozilla's trademark usage requirements, and as a result, Mozilla informed Debian that their Firefox package could not use the Firefox name or branding. No doubt Mozilla did so with some reluctance, as it is not ideal for them to have their software used without clear attribution.

However, they could have given Debian a trademark license and yet chose not to; presumably, this is because Debian was doing something with the code that Mozilla did not want accruing to their own reputation.[100] This decision by Mozilla did not mean that Debian had to remove Firefox from their package system, of course. Debian simply changed the name to "Iceweasel" and used a different logo. The underlying code is still the Mozilla Firefox code, except for the minor bits Debian had to change to integrate the different name and logo — changes they were perfectly free to make, of course, because of the code's open source license. It is even consistent to license your project's logo artwork files under a fully free license while still retaining a trademark on the logo, as the following story of the GNOME logo and the fish pedicure shop (I'm not making this up) illustrates.


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

Firefox, lolcat, web application

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.

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: http://docs.jquery.com/UI/Theming/API.


pages: 560 words: 135,629

Eloquent JavaScript: A Modern Introduction to Programming by Marijn Haverbeke

always be closing, Charles Babbage, domain-specific language, Donald Knuth, en.wikipedia.org, Firefox, fizzbuzz, functional programming, higher-order functions, hypertext link, job satisfaction, MITM: man-in-the-middle, premature optimization, slashdot, web application, WebSocket

function forceDirected_noRepeat(graph) { for (let i = 0; i < graph.length; i++) { let node = graph[i]; for (let j = i + 1; j < graph.length; j++) { let other = graph[j]; let apart = other.pos.minus(node.pos); let distance = Math.max(1, apart.length); let forceSize = -repulsionStrength / (distance * distance); if (node.hasEdge(other)) { forceSize += (distance - springLength) * springStrength; } let applied = apart.times(forceSize / distance); node.pos = node.pos.plus(applied); other.pos = other.pos.minus(applied); } } } Measuring this code shows a significant speed boost. It is twice as fast on Firefox 58, about 30 percent faster on Chrome 63, and 75 percent faster on Edge 6. The big boost on Firefox and Edge is only partially a result of the actual optimization. Because we need the inner loop to go over only part of the array, the new function replaces the for/of loops with regular for loops. On Chrome, this has no measurable effect on the speed of the program, but on Firefox simply not using iterators makes the code 20 percent faster—and on Edge it makes a 50 percent difference.

Web developers were left with not one unified web but two or three incompatible platforms. To make things worse, the browsers in use around 2003 were all full of bugs, and of course the bugs were different for each browser. Life was hard for people writing web pages. Mozilla Firefox, a not-for-profit offshoot of Netscape, challenged Internet Explorer’s position in the late 2000s. Because Microsoft was not particularly interested in staying competitive at the time, Firefox took a lot of market share away from it. Around the same time, Google introduced its Chrome browser, and Apple’s Safari browser gained popularity, leading to a situation where there were four major players, rather than one.

GraphNode.prototype.hasEdgeFast = function(other) { for (let i = 0; i < this.edges.length; i++) { if (this.edges[i] === other) return true; } return false; }; On Chrome, this shaves about 17 percent off the time it takes to compute the layout, which is most of the time taken by includes in the profile. On Edge, it makes the program 40 percent faster. But on Firefox, it makes it slightly (about 3 percent) slower. So, in this case, Firefox’s engine (called SpiderMonkey) did a better job optimizing calls to includes. The row labeled “Minor GC” in the profile gives us the time spent cleaning up memory that is no longer being used. Given that our program creates a huge number of vector objects, the 3 percent time spent reclaiming memory is strikingly low.


Mastering Structured Data on the Semantic Web: From HTML5 Microdata to Linked Open Data by Leslie Sikos

AGPL, Amazon Web Services, bioinformatics, business process, cloud computing, create, read, update, delete, Debian, en.wikipedia.org, fault tolerance, Firefox, Google Chrome, Google Earth, information retrieval, Infrastructure as a Service, Internet of things, linked data, machine readable, machine translation, natural language processing, openstreetmap, optical character recognition, platform as a service, search engine result page, semantic web, Silicon Valley, social graph, software as a service, SPARQL, text mining, Watson beat the top human players on Jeopardy!, web application, Wikidata, wikimedia commons, Wikivoyage

The Data Explorer is available for Internet Explorer, Firefox, Safari, Google Chrome, and Opera (http://ode.openlinksw.com/#Download). Let’s install the add-on, say, for Firefox! 114 1. Go to http://s3.amazonaws.com/opldownload/ajax-tools/ode/1.1/ firefox3.0/ode.xpi. 2. Depending on your security settings, Firefox might prevent automatic installation. Click Allow to download the add-on. 3. The Software Installation pop-up asks for permission to proceed (“Install add-ons from authors whom you trust.”) Click Install Now. 4. Restart Firefox. Chapter 4 ■ Semantic Web Development Tools Figure 4-21.

Microformats can express site structure, link weight, content type, and human relationships with the class, rel, and rev attribute values. They are very easy to write, and a great deal of software supports them (the Operator and Tails Export add-ons for Firefox, the Michromeformats Google Chrome extension, the microformats transformer Optimus, or the Microformats Bookmarklet for Safari, Firefox, and IE). 24 Chapter 2 ■ Knowledge Representation However, due to limitations and open issues, other machine-readable annotation formats gradually overtook microformats. Applying various microformats as multiple values on the same a element, such as rel="nofollow" and rel="friend", cannot be used.

They provide text search or SPARQL queries, or both, and support the five-star data deployment scheme discussed in Chapter 3, for data consumption, generation, aggregation, augment, and reinterpretation. Tabulator Tabulator is W3C’s Semantic Web browser and editor available as a web application and a Firefox plug-in at http://www.w3.org/2005/ajar/tab. It can display Linked Data in various visualization formats. Tabulator contains an RDF store written in JavaScript. The tool has two modes: Exploration Mode and Query Mode. 113 Chapter 4 ■ Semantic Web Development Tools In Exploration Mode, it displays a table of predicate-object pairs, which might also include nested properties.


pages: 302 words: 73,946

People Powered: How Communities Can Supercharge Your Business, Brand, and Teams by Jono Bacon

Airbnb, barriers to entry, behavioural economics, Black Lives Matter, blockchain, bounce rate, Cass Sunstein, Charles Lindbergh, content marketing, Debian, Firefox, gamification, if you build it, they will come, IKEA effect, imposter syndrome, Internet Archive, Jono Bacon, Kickstarter, Kubernetes, lateral thinking, Mark Shuttleworth, Minecraft, minimum viable product, more computing power than Apollo, planetary scale, pull request, Richard Stallman, Richard Thaler, Salesforce, Scaled Composites, sexual politics, Silicon Valley, SpaceShipOne, TED Talk, the long tail, Travis Kalanick, Virgin Galactic, Y Combinator

“Salesforce Customers List,” Sales Inside, accessed May 2, 2018, https://www.salesinsideinc.com/services-details/salesforce-customers-list. 23. “Salesforce Trailblazer Community,” Salesforce, accessed February 25, 2019, https://success.salesforce.com/. 24. “Firefox Crop Circle,” FirefoxCropCircle.com, accessed November 30, 2018, https://firefoxcropcircle.com/circle/; “SpreadFirefox,” Mozilla Firefox, November 2013, https://blog.mozilla.org/press/files/2013/11/nytimes-firefox-final.pdf. 25. “Pebble Time—Awesome Smartwatch, No Compromises,” Kickstarter, accessed November 25, 2018, https://www.kickstarter.com/projects/getpebble/pebble-time-awesome-smartwatch-no-compromises/description; “Exploding Kittens,” Kickstarter, accessed November 25, 2018, https://www.kickstarter.com/projects/elanlee/exploding-kittens/description. 26.

The new Mozilla community, forged from the ashes of Netscape, kicked off the GetFirefox community. They advocated for an open web and open standards. They fervently advocated Firefox as a solution for this freer and more-open Internet. As the global community grew, they promoted this message online and in local communities. They were incredibly creative in how they attracted eyeballs. They produced swag, did online promotion, and even produced crop circles and generated enough money to put a full-page ad in the New York Times.24 There is little doubt that this community had a profound impact in the growth of Firefox and, subsequently, an open web. With the birth of crowdfunding on platforms such as Kickstarter and Indiegogo, community advocacy and promotion has similarly played a pivotal role.

The world is fighting more than ever before for our attention. You understand the value you want to create. You know your audience. You know ways to build growth and engage with your audience. Now you need to come up with ideas that will both surprise and intrigue them. Without wishing to sound like a raging cliché, think outside the box. The Firefox community made crop circles as part of their advocacy. They solicited donations from their fifty-thousand-strong community and put an ad in the New York Times where the logo was comprised of the names of the donors.9 They thought bigger, and it grabbed people’s attention. The best ideas come from different brains, so get more brains involved in the process.


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: http://benfra.in/1z1 Alternatively, if using Firefox, check out the FireSass extension: https://addons.mozilla.org/en-us/firefox/addon/ 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 http://benfra.in/1z1 and the FireSass plugin can be found at https://addons.mozilla.org/en-US/ 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.

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.


pages: 73 words: 17,793

HTML5 for Web Designers by Jeremy Keith

cognitive load, Firefox, machine readable, web application

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.

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 (http://bkaprt.com/html5/4).4 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.

The long URL: http://www.w3.org/TR/wai-aria/roles#role_definitions [↵] 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: 982 words: 221,145

Ajax: The Definitive Guide by Anthony T. Holdener

AltaVista, Amazon Web Services, business logic, business process, centre right, Citizen Lab, Colossal Cave Adventure, create, read, update, delete, database schema, David Heinemeier Hansson, en.wikipedia.org, Firefox, full text search, game design, general-purpose programming language, Guido van Rossum, information retrieval, loose coupling, machine readable, MVC pattern, Necker cube, p-value, Ruby on Rails, SimCity, slashdot, social bookmarking, sorting algorithm, SQL injection, Wayback Machine, web application

The first thing that comes to mind, especially in browsers such as Firefox, is the ability to change the browser’s theme. In addition, most browsers also enable users to change such aspects as the page’s font size, style, and character encoding. Figure 11-1 shows these user choices in a typical Firefox browser. Typically, you’d find these choices under the browser’s View menu. In Internet Explorer, the user will find in the View menu choices for font size (Text Size) and character encoding. Natively, Internet Explorer does not enable users to change the style of a page. For Firefox, the View menu allows the user to change the font size (Text Size), page style, and character encoding.

The Alert Box The alert box takes many forms depending on the theme of the desktop and the browser being used. This makes an alert from Internet Explorer look different depending on whether the user is using the default theme, the Windows classic theme, the Windows XP theme, and so forth. This problem will occur across platforms; the alert for Firefox on the Windows platform will look different from the alert for Firefox on the Linux platform. Figures 10-1, 10-2, and 10-3 show different alert windows on Windows, Mac OS X, and Linux platforms, respectively. The problem with these windows looking so different is that there is never any continuity between the alert window and the application that is being used.

These choices are also available in Opera. 363 Figure 11-1. The View menu of a Firefox browser allows for user changes Stylesheets As I said, Internet Explorer does not natively allow the user to change the style of someone else’s page. In most other browsers, you can change the page style by selecting View ➝ Page Style in the File menu, as shown in Figure 11-2. Opera users can access stylesheets by selecting View ➝ Style (when Opera has built-in styles besides those provided by the developer of the application or page being viewed). Figure 11-2. The Page Style drop down found on the Firefox browser Typically users can only turn stylesheets off (View ➝ Page Style ➝ No Style) or select one of the alternate stylesheets that the application provides.


pages: 410 words: 101,260

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

"World Economic Forum" Davos, Abraham Maslow, Albert Einstein, Apple's 1984 Super Bowl advert, availability heuristic, barriers to entry, behavioural economics, Bluma Zeigarnik, business process, business process outsourcing, Cass Sunstein, classic study, clean water, cognitive dissonance, creative destruction, cuban missile crisis, Daniel Kahneman / Amos Tversky, Dean Kamen, double helix, Elon Musk, emotional labour, fear of failure, Firefox, George Santayana, Ignaz Semmelweis: hand washing, information security, Jeff Bezos, Jeff Hawkins, job satisfaction, job-hopping, Joseph Schumpeter, Kevin Roose, Kickstarter, Lean Startup, Louis Pasteur, Mahatma Gandhi, Mark Zuckerberg, meta-analysis, minimum viable product, Neil Armstrong, Nelson Mandela, Network effects, off-the-grid, PalmPilot, pattern recognition, Paul Graham, Peter Thiel, Ralph Waldo Emerson, random walk, risk tolerance, Rosa Parks, Saturday Night Live, Sheryl Sandberg, Silicon Valley, Skype, Steve Jobs, Steve Wozniak, Steven Pinker, TED Talk, 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.

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. 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 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. What made the difference was how they obtained the browser. If you own a PC, Internet Explorer is built into Windows. If you’re a Mac user, your computer came preinstalled with Safari.


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, business logic, cloud computing, create, read, update, delete, database schema, Debian, distributed revision control, Firefox, functional programming, 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 .1.3.6.1.4.1.2021.28664.100 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/agent_ext_logs.py" 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 pat.search(line): yield line def increment(lines): num = 0 for line in lines: num += 1 return num wwwlog = open("/home/noahgift/logs/noahgift.com-combined-log") 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 bofh@oreilly.com rocommunity public exec helloworld /usr/bin/python -c "print 'hello world from Python'" exec .1.3.6.1.4.1.2021.28664.100 FirefoxHits /usr/bin/python /opt/local/snmp_scripts/agent_ext_logs.py The magic portion is the last line, in which .1.3.6.1.4.1.2021 is the ucdavis enterprise number, 28664 our enterprise number, and 100 is some contrived value that we decided we wanted to use.

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).

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 .1.3.6.1.4.1.2021.28664.100 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/agent_ext_logs.py" 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.


pages: 996 words: 180,520

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

business process, Chuck Templeton: OpenTable:, Debian, en.wikipedia.org, Firefox, Free Software Foundation, RFC: Request For Comment, web application

* * * [324] svn co svn://svnanon.samba.org/lorikeet/trunk/mod_auth_ntlm_winbind_mod_auth_ntlm_winbind [325] http://samba.org/ftp/unpacked/lorikeet/mod_auth_ntlm_winbind/ [326] http://adldap.sourceforge.net/mod_auth_ntlm_winbind.php 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.

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. E.4.1 Firefox and NTLM Along with the SPNEGO/Kerberos procedure, Firefox is also capable of performing authentication via NTLM. To do this, you enter the desired domains or hosts in the parameter network.automatic-ntlm-auth.trusted-uris. In Windows XP, everything else runs automatically. In Linux, NTLM authentication is normally not available, since a Linux client cannot authenticate itself via NTLM to a Windows domain in the Active Directory.

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. 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.


pages: 215 words: 55,212

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

"World Economic Forum" Davos, Airbnb, Amazon Mechanical Turk, Amazon Web Services, banking crisis, barriers to entry, Bear Stearns, bike sharing, business logic, carbon footprint, carbon tax, Chuck Templeton: OpenTable:, clean tech, cloud computing, credit crunch, crowdsourcing, diversification, Firefox, fixed income, Google Earth, impact investing, industrial cluster, Internet of things, Joi Ito, Kickstarter, late fees, Network effects, new economy, peer-to-peer lending, planned obsolescence, 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, the long tail, vertical integration, walkable city, yield management, young professional, Zipcar

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.

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 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.


Data Wrangling With Python: Tips and Tools to Make Your Life Easier by Jacqueline Kazil

Amazon Web Services, bash_history, business logic, cloud computing, correlation coefficient, crowdsourcing, data acquisition, data science, database schema, Debian, en.wikipedia.org, Fairphone, Firefox, Global Witness, Google Chrome, Hacker News, job automation, machine readable, Nate Silver, natural language processing, pull request, Ronald Reagan, Ruby on Rails, selection bias, social web, statistical model, web application, WikiLeaks

Sele‐ nium supports many different browsers, but ships with a built-in driver for Firefox. If you don’t have Firefox installed, you can either install it, or install the Selenium driver for Chrome, Internet Explorer, or Safari. Let’s see if we can open a web page using Selenium (in our examples, we’ll be using Firefox, but it’s very easy to switch and use a different driver): from selenium import webdriver browser = webdriver.Firefox() browser.get('http://www.fairphone.com/we-are-fairphone/') browser.maximize_window() Imports the webdriver module from Selenium. This module is used to call any installed drivers. Instantiates a Firefox browser object by using the Firefox class from the web driver module.

Instantiates a Firefox browser object by using the Firefox class from the web driver module. This should open a new Firefox window on your computer. Accesses the URL we want to scrape by using the get method and passing a URL. The open browser should now start to load the page. Maximizes the open browser by using the maximize_browser method. This helps Selenium “see” more of the content. We now have a browser object (variable browser) with a page loaded and ready. Let’s see if we can interact with the elements on the page. If you use your browser’s Inspec‐ 314 | Chapter 12: Advanced Web Scraping: Screen Scrapers and Spiders tion tab, you’ll see the social media content bubbles are div elements with a class of content.

Getting used to your favorite browser’s debug‐ ging or development tools is an essential part of becoming an advanced web scraper. Depending on what browser you use, the tools might have different names and func‐ tionality, but the concepts are the same. You’ll want to educate yourself on your favor‐ ite browser’s tools, be it Internet Explorer, Safari, Chrome, or Firefox. The basics of every browser debugger are similar. You’ll have an area where you can see the requests and page load data (usually called Network or something similar). You’ll have another area where you can analyze the markup of the page and see the styles and content in each tag (usually called Inspection or Elements or DOM).


pages: 324 words: 87,064

Learning Ext Js by Shea Frederick

call centre, Firefox, framing effect, side project, SQL injection, 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.

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.

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.


pages: 260 words: 67,823

Always Day One: How the Tech Titans Plan to Stay on Top Forever by Alex Kantrowitz

accounting loophole / creative accounting, Albert Einstein, AltaVista, Amazon Robotics, Amazon Web Services, Andy Rubin, anti-bias training, augmented reality, Automated Insights, autonomous vehicles, Bernie Sanders, Big Tech, Cambridge Analytica, Clayton Christensen, cloud computing, collective bargaining, computer vision, Donald Trump, drone strike, Elon Musk, fake news, Firefox, fulfillment center, gigafactory, Google Chrome, growth hacking, hive mind, income inequality, Infrastructure as a Service, inventory management, iterative process, Jeff Bezos, job automation, Jony Ive, Kiva Systems, knowledge economy, Lyft, Mark Zuckerberg, Menlo Park, new economy, Nick Bostrom, off-the-grid, Peter Thiel, QR code, ride hailing / ride sharing, robotic process automation, Salesforce, self-driving car, Sheryl Sandberg, Silicon Valley, Skype, Snapchat, SoftBank, Steve Ballmer, Steve Jobs, Steve Wozniak, super pumped, tech worker, Tim Cook: Apple, uber lyft, warehouse robotics, wealth creators, work culture , zero-sum game

If the web gets better, more people use the web, and Google benefits.” When Chrome debuted, Pichai had to sell it to two entities: the public and his colleagues, many of whom had poured significant effort into developing Firefox. Google had invested in Mozilla, the nonprofit that built Firefox, in a deal that made Google the browser’s default search engine. “The idea of going and competing with Firefox is not something any of us wanted to do,” Upson told me. Pichai won over his colleagues not by brute-forcing his product, but by letting them figure it out for themselves. He never mandated that Googlers use Chrome.

This wasn’t received well by Google leadership, who saw Microsoft attacking its search business and hampering its productivity tools as well. That Microsoft carried out this attack with a poorly functioning browser made it susceptible to challenge. Google at first significantly invested in Mozilla Firefox, Internet Explorer’s top competitor. But at a certain point, the company decided its ideal browser needed to be built from the ground up, and that Google ought to build it itself. “From a purely technical standpoint, we came to the conclusion that we wanted to start from a blank slate, just throw all the legacy away,” Upson told me.

He never mandated that Googlers use Chrome. “It was, ‘Could we win over our employees just on the merits of the product itself?’” Upson said. “Even today, you don’t see everyone using Chrome at Google. You still see people using Firefox.” This soft-handed approach won Pichai trust across divisions inside Google, and from Google’s founders. “Sundar was very good at managing that room,” Sood, who sat in on Pichai’s presentations to Page and Brin, told me. “Not in a manipulative way. He was very genuine, he’s very empathetic, he doesn’t really come with ego, he’s not coming in with his own ideas. He’s very good at commanding that crowd.”


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, disinformation, Edward Snowden, Filter Bubble, Firefox, Free Software Foundation, Garrett Hardin, GnuPG, Google Chrome, Google Glasses, Ida Tarbell, incognito mode, informal economy, Jacob Appelbaum, John Gilmore, John Markoff, Julian Assange, Laura Poitras, Marc Andreessen, market bubble, market design, medical residency, meta-analysis, mutually assured destruction, operational security, Panopticon Jeremy Bentham, prediction markets, price discrimination, randomized controlled trial, RFID, Robert Shiller, Ronald Reagan, security theater, Silicon Valley, Silicon Valley startup, Skype, smart meter, sparse data, Steven Levy, Tragedy of the Commons, 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, www.nyu.edu, 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 Outlook.com. I steeled myself and entered 212-867-5309 as her backup phone number (after the famous ’80s song by Tommy Tutone).

But since the ad industry has not agreed to stop tracking users who send that signal, turning it on was simply a political protest. Finally, I decided to go nuclear. 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. When I clicked on Apple’s page to set up a Genius bar appointment, nothing worked. I had to set up an exception on NoScript to allow Apple’s JavaScript. The same thing happened at Amazon.com. At first, I thought that everything I was trying to order was out of stock, but then I realized that I had to set up an exception for Amazon’s JavaScript, as well.


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, do-ocracy, en.wikipedia.org, end-to-end encryption, failed state, Firefox, Free Software Foundation, GnuPG, Google Chrome, Jono Bacon, MITM: man-in-the-middle, Neal Stephenson, NP-complete, precautionary principle, QWERTY keyboard, RFC: Request For Comment, Richard Stallman, Skype, SpamAssassin, SQL injection, Valgrind, web application, zero day, Zimmermann PGP

This browser, available in the iceweasel package, uses the Mozilla project's Gecko renderer, with a thin and extensible interface on top. 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.

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.

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.


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, sparse data, 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.


The Complete Android Guide: 3Ones by Kevin Purdy

car-free, card file, crowdsourcing, Firefox, Google Chrome, Google Earth, Googley, John Gruber, lock screen, QR code, Skype, speech recognition, telemarketer, turn-by-turn navigation

Along with that notably neat feature, SkyFire also runs pretty well in general, based on the same code as the Android and iPhone browsers, and offers a quick-switching function to toggle between a web site's full version and its mobile-friendly view. (Free through the Market) Mozilla Fennec / Firefox Mobile Fennec's Home Page Fennec, the code name for Firefox Mobile, is still a work in progress as of this writing. But even in its very rough, kinda-sorta works phase, it's a promising browser to come. Fennec will feature the same kind of add-on extensibility as Firefox on the desktop, but will also sync up smoothly with your personal Firefox browser. Say you're looking at flight information in a few different tabs on your MacBook at home--ticket confirmation, airport status, the weather in your destination, and so on.

Here are a few quick tips on getting more from Google Voice on your phone and in your phone life. Add a browser extension for quick desk calling: When you find a restaurant or business phone number you want to call, you don't need to pick up your phone and punch the number in. With a Google Voice extension installed in Google Chrome or Firefox, you can simply click on phone numbers on a web page, then answer your phone when it rings to make the call. These extensions also offer instant SMS and message checking abilities, making them well worth the download for any Voice enthusiast. Moving an app icon Make free desktop calls with Voice: Your Android handles Google Voice calls just fine.


pages: 255 words: 78,207

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

AltaVista, Amazon Web Services, Apollo 13, cloud computing, Computing Machinery and Intelligence, data science, en.wikipedia.org, Firefox, Guido van Rossum, information security, machine readable, 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( "http://www.amazon.com/War-Peace-Leo-Nikolayevich-Tolstoy/dp/1427030200") 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.

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.

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.


pages: 280 words: 76,638

Rebel Ideas: The Power of Diverse Thinking by Matthew Syed

adjacent possible, agricultural Revolution, Alfred Russel Wallace, algorithmic bias, behavioural economics, Bletchley Park, Boeing 747, call centre, Cass Sunstein, classic study, cognitive load, computer age, crowdsourcing, cuban missile crisis, deep learning, delayed gratification, drone strike, Elon Musk, Erik Brynjolfsson, Fairchild Semiconductor, fake news, Ferguson, Missouri, Filter Bubble, Firefox, invention of writing, James Dyson, Jeff Bezos, knowledge economy, lateral thinking, market bubble, mass immigration, microbiome, Mitch Kapor, persistent metabolic adaptation, Peter Thiel, post-truth, Richard Thaler, Ronald Reagan, Second Machine Age, self-driving car, seminal paper, Silicon Valley, social intelligence, Steve Jobs, Steve Wozniak, Stuart Kauffman, tech worker, The Wealth of Nations by Adam Smith, The Wisdom of Crowds, traveling salesman, vertical integration

Some of the candidates had used Safari, others had used Firefox; some had used Internet Explorer, others Chrome. Might the choice of web browser predict performance? To Housman, it seemed unlikely. Surely, this was just a matter of personal preference. Yet the results were startling. Those who had filled out their assessments on Firefox or Chrome stayed in their jobs 15 per cent longer than those who used Safari or Internet Explorer. They then checked the number of absences from work. Again, they found the same gap. Those who used Firefox or Chrome had 19 per cent fewer absences from work than those who had used Internet Explorer or Safari.

If this wasn’t puzzling enough, the numbers related to performance were even more striking. Those who used Firefox and Chrome had higher productivity, higher sales, happier customers and shorter call times. ‘It was one of the most emphatic sets of results we had found,’ Housman said. ‘These were big differences, and they were consistent.’ What was going on? Housman said: It took us a while to figure it out. The key is that Internet Explorer and Safari are pre-installed. PCs come with Explorer as part of the package, and Macs come with Safari. These are the defaults. To use them, you just need to turn on the computer. Chrome and Firefox are different. To use these pieces of software, you have to be curious enough to check if there are better options out there.

Or do you find a new way of solving a problem, or selling an idea, or pleasing the customer? Those call centre workers who could step outside convention performed significantly better. When the status quo wasn’t good enough, they came up with something original. This mindset also helps to explain why users of Chrome and Firefox stayed in their jobs longer and had fewer absences. Workers capable of altering the script are more likely to take action to fix problems, and make changes to their jobs that make them happier and more productive. Those who see the status quo as immutable are less likely to fix problems at work. They just put up with the default.


pages: 211 words: 37,094

JQuery Pocket Reference by David Flanagan

Firefox, functional programming, post-work, web application

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.

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.

Utility Functions These are miscellaneous jQuery functions and properties (not methods); see Chapter 7 for more details. jQuery.boxModel A deprecated synonym for jQuery.support.boxModel. 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. jQuery.data(elt):data jQuery.data(elt, key):value jQuery.data(elt, data) jQuery.data(elt, key, value) A low-level version of the data() method.


pages: 302 words: 82,233

Beautiful security by Andy Oram, John Viega

Albert Einstein, Amazon Web Services, An Inconvenient Truth, Bletchley Park, business intelligence, business process, call centre, cloud computing, corporate governance, credit crunch, crowdsourcing, defense in depth, do well by doing good, Donald Davies, en.wikipedia.org, fault tolerance, Firefox, information security, loose coupling, Marc Andreessen, market design, MITM: man-in-the-middle, Monroe Doctrine, new economy, Nicholas Carr, Nick Leeson, Norbert Wiener, operational security, 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, SQL injection, statistical model, Steven Levy, the long tail, The Wisdom of Crowds, Upton Sinclair, web application, web of trust, 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.

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: 666 words: 181,495

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

"World Economic Forum" Davos, 23andMe, AltaVista, Andy Rubin, Anne Wojcicki, Apple's 1984 Super Bowl advert, autonomous vehicles, Bill Atkinson, 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, Dutch auction, El Camino Real, Evgeny Morozov, fault tolerance, Firefox, General Magic , Gerard Salton, Gerard Salton, Google bus, Google Chrome, Google Earth, Googley, high-speed rail, HyperCard, hypertext link, IBM and the Holocaust, informal economy, information retrieval, Internet Archive, Jeff Bezos, John Markoff, Ken Thompson, Kevin Kelly, Kickstarter, large language model, machine translation, Mark Zuckerberg, Menlo Park, one-China policy, optical character recognition, PageRank, PalmPilot, Paul Buchheit, Potemkin village, prediction markets, Project Xanadu, recommendation engine, risk tolerance, Rubik’s Cube, Sand Hill Road, Saturday Night Live, search inside the book, second-price auction, selection bias, Sheryl Sandberg, Silicon Valley, SimCity, skunkworks, Skype, slashdot, social graph, social software, social web, spectrum auction, speech recognition, statistical model, Steve Ballmer, Steve Jobs, Steven Levy, subscription business, Susan Wojcicki, Ted Nelson, telemarketer, The future is already here, the long tail, trade route, traveling salesman, turn-by-turn navigation, undersea cable, Vannevar Bush, web application, WikiLeaks, Y Combinator

Google would begin a partnership with the Mozilla Foundation, the nonprofit founded with money from Netscape’s sale to AOL. 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.

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.

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.


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

business logic, c2.com, create, read, update, delete, database schema, Debian, en.wikipedia.org, Firefox, MVC pattern, Ruby on Rails, social intelligence, 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 http://www.openqa.org/selenium-ide/. 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

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.


pages: 232 words: 63,846

Traction: How Any Startup Can Achieve Explosive Customer Growth by Gabriel Weinberg, Justin Mares

Airbnb, content marketing, Firefox, Hacker News, if you build it, they will come, jimmy wales, Justin.tv, Lean Startup, Marc Andreessen, Mark Zuckerberg, Network effects, Paul Graham, Peter Thiel, Salesforce, side project, Skype, Snapchat, social bookmarking, social graph, software as a service, TechCrunch disrupt, the long tail, the payments system, Uber for X, Virgin Galactic, web application, working poor, Y Combinator

After Delicious integrated with The Washington Post, the number of sites interested in a Delicious extension skyrocketed because of the Post’s role as a media leader. It even made other partnerships, like the browser integration with Mozilla’s Firefox, possible: The even more transformative partnership we did at Delicious was with Mozilla. [Mozilla] ended up promoting the Delicious extension for the Firefox browser in a really big way when they did an upgrade to Firefox 2.0. The net of it was that when huge portions of their audience were upgrading, one of the first things they saw was the Delicious extension. It ultimately more than tripled our user base, just from that partnership.

Even with hundreds of thousands of apps, there are shockingly few that are truly amazing user experiences. Most of the apps that are now household names—Instagram, Path, Google Maps, Pandora, Spotify—all have excellent user experiences and consistently high ratings. Browser extensions in Chrome and add-ons in Firefox are apps you can download for your Web browser. The most popular browser extension is Adblock Plus, which blocks ads on major Web sites. Other popular extensions help you download YouTube videos, save bookmarks across computers, and manage your passwords. Web users visit dozens of different sites every day; to establish yours as a site they consistently visit can be difficult.

See offline events; speaking engagements; trade shows Evernote, 6, 169–70, 171–74 Evernote Peek, 173–74 Evite, 184, 188 Exceptional Cloud Services, xii existing platforms, 6, 167–74, 212 app stores, 167–70 case study of Evernote, 171–74 social sites, 170–71 targets, 174 Facebook, 4, 31, 78, 79, 120 fat-head SEO strategy, 93, 94–95, 100–101 Feld, Brad, 106, 176–77 Fernandez, Phil, 11–12 Ferriss, Tim, 83–84 50 percent rule, 8–12 Filepicker.io, 47 Firefox, 142, 169 First Round Capital, 137 Fishkin, Rand, 4, 92, 94, 99, 100, 195 500 Startups, 5 flyers, 4, 84, 86–87 Focused Apps LLC, 168 Fog Creek Software, 199 Followerwonk, 46, 131 Foundry Group, 176–77 Foursquare, 80 Fox News, 62 Fralic, Chris, 6, 133, 137, 139–44 FreeAppADay, 169 freemium business model, 114, 162 fund-raising, 15–16, 54–55 Gates Foundation, 50 GitHub, 202 giveaways, 61, 180 GoDaddy, 6 Godin, Seth, 187 Google, ix–x, 65, 71–72, 94, 137–38 Google Alerts, 47 Google Analytics, 69, 96 Google Docs, 120 Google Trends, 95 Graham, Paul, 2, 14, 42 Grasshopper.com, 60, 62–63 Gross Rating Points (GRPs), 87–88 Groupon, 113, 115, 138 growth goals, 12–15, 18, 35–36, 139 growth rate, 12, 16, 18 growth spurts, 14 guest posting, 25, 31, 106, 211 Guidewire Software, 148–49 Gumroad, 46–47 Hacker News, 46–47, 50, 78 HacktheSystem, 163 Half.com, 6, 58, 62, 133, 139–40 Halligan, Brian, 130 Hardware Startup Meetup, 187–88 Hauser, David, 60, 62–63 Help A Reporter Out (HARO), 53 Hipmunk, 4, 60, 61 hiring, use of community for, 202–3 HitTail, 186–87 Holiday, Ryan, 3, 48–49, 50, 52–53, 54–55 HostGator, 6 Hotmail, 120 HubSpot, 5, 100, 129–31, 154 Huffington Post, 48, 49 Hunch, 174 Imgur, 171 implication questions, 149–50 indirect response, in social advertising, 76–77, 81 Inflection, 4, 66–68, 70–71 influencers, 54 infographics, 99, 104, 105, 210 infomercials, 89–90 information products, 161 inner ring, 22–23 inner ring testing, 22–23, 28–31, 44 InstaCab, 87 Intuit, 43 investors fund-raising, 15–16 growth numbers, 15, 18 invitations, 44, 124–25, 188 iPhone, 59, 120, 138, 172 JBoss, 156–58 Johnson, Mark, 168 joint ventures, 138, 145 Jones, Kris, 159, 165–66 Jones, Kristopher, 6 Kagan, Noah, 3, 24–25, 42–45 Kawasaki, Guy, 62 Kayak, 6, 138–39, 145 Keyword Planner, 68–69, 94, 95 keyword research, 68–69, 70–71 KeywordSpy, 69 keyword strategies, 69, 72, 73, 93, 95–98, 100–101 Kincaid, Jason, 3, 51, 52 Klout, 46 Kopelman, Josh, 58 Kundra, Ashish, 5, 124 Lamar Advertising, 87 Launch Conference, 184 Law of Shitty Click-Throughs, 30–31, 33 lead generation, 161 lead qualifications, and sales funnel, 153–55, 157 leaky bucket, 10–11, 13, 17 Lean Startup, The (Ries), 7 Lean Startup model, 25–26, 185 Libin, Phil, 171–72 licensing, 138, 145 Lifehacker, 45, 50 Linchpin: Are You Indispensable?


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, AOL-Time Warner, Benevolent Dictator For Life (BDFL), Berlin Wall, Bill Atkinson, c2.com, call centre, collaborative editing, Computer Lib, conceptual framework, continuous integration, Do you want to sell sugared water for the rest of your life?, Donald Knuth, Douglas Engelbart, Douglas Engelbart, Douglas Hofstadter, Dynabook, en.wikipedia.org, Firefox, Ford Model T, Ford paid five dollars a day, Francis Fukuyama: the end of history, Free Software Foundation, functional programming, General Magic , George Santayana, Grace Hopper, Guido van Rossum, Gödel, Escher, Bach, Howard Rheingold, HyperCard, index card, intentional community, Internet Archive, inventory management, Ivan Sutherland, Jaron Lanier, John Markoff, John Perry Barlow, John von Neumann, knowledge worker, L Peter Deutsch, Larry Wall, life extension, Loma Prieta earthquake, machine readable, Menlo Park, Merlin Mann, Mitch Kapor, Neal Stephenson, new economy, Nicholas Carr, no silver bullet, Norbert Wiener, pattern recognition, Paul Graham, Potemkin village, RAND corporation, Ray Kurzweil, Richard Stallman, Ronald Reagan, Ruby on Rails, scientific management, 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, Strategic Defense Initiative, Ted Nelson, the Cathedral and the Bazaar, Therac-25, thinkpad, Turing test, VA Linux, Vannevar Bush, Vernor Vinge, Wayback Machine, web application, Whole Earth Catalog, Y2K

They were no longer planning “top down,” based on hopes and pronouncements; they were planning “bottom up,” based on experience and evidence. 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.

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.

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: 106 words: 22,332

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

Firefox, patent troll, peer-to-peer, pirate software, power law, 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 addons.mozilla.org. Hosts file. Instead of using a browser extension, you can use a hosts file to block ads and third-party cookies.


pages: 446 words: 102,421

Network Security Through Data Analysis: Building Situational Awareness by Michael S Collins

business process, cloud computing, create, read, update, delete, data science, Firefox, functional programming, general-purpose programming language, index card, information security, Internet Archive, inventory management, iterative process, operational security, OSI model, p-value, Parkinson's law, peer-to-peer, slashdot, statistical model, zero day

This string, User-Agent, is defined in RFC 2616, but can become phenomenally complicated (as well as informative) fairly quickly. Some user-agent strings are shown sorted by broswer in Example 14-7. Example 14-7. Example user-agent strings by browser Firefox: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.12) Gecko/20080214 Firefox/2.0.0.12 Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8) Gecko/20051111 Firefox/1.5 Internet Explorer: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7) Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0) Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Xbox) Safari: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.1 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.1 Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25 Opera: Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.11 Opera/9.80 (Macintosh; Intel Mac OS X 10.8.2) Presto/2.12.388 Version/12.11 Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11 Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.11 Chrome: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19 Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19 Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3 Googlebot: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) Bingbot: Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Baiduspider: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/ spider.html) The user agent strings in Example 14-7 follow a basic structure that is derived from the original RFC 2616 specification along with various detritus from the browser wars.

Example user-agent strings by browser Firefox: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.12) Gecko/20080214 Firefox/2.0.0.12 Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8) Gecko/20051111 Firefox/1.5 Internet Explorer: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7) Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0) Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Xbox) Safari: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.57.1 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.1 Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25 Opera: Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.11 Opera/9.80 (Macintosh; Intel Mac OS X 10.8.2) Presto/2.12.388 Version/12.11 Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11 Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.11 Chrome: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19 Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19 Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3 Googlebot: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) Bingbot: Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Baiduspider: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/ spider.html) The user agent strings in Example 14-7 follow a basic structure that is derived from the original RFC 2616 specification along with various detritus from the browser wars.

These values vary based on the browser make and configuration, but usually contain the actual browser name, the OS, and a number of optional parameters. Following the parentheses (usually) is a tag naming the layout engine for the software; the layout engine is the browser’s toolkit for rendering HTML, and the same engine can be used by multiple browsers. Common engines include Gecko (used by Firefox, Mozilla, and SeaMonkey), WebKit (used by Safari and Chrome), Presto (Opera), and Trident (IE). As Example 14-7 shows, the actual composition of the string is very much a function of the browser, the OS, and the idiosyncratic whims of the implementor. Further Reading Michael Collins and Michael Reiter, “Finding Peer-to-Peer File Sharing Using Coarse Network Behaviors,” Proceedings of the 2007 ESORICS Conference.


Realtime Web Apps: HTML5 WebSocket, Pusher, and the Web’s Next Big Thing by Jason Lengstorf, Phil Leggetter

Amazon Web Services, barriers to entry, don't repeat yourself, en.wikipedia.org, Firefox, Google Chrome, MVC pattern, Ruby on Rails, Skype, software as a service, SQL injection, web application, WebSocket

Marketplaces were initially created for native apps and have proven to be highly successful. The idea has been copied for web apps, but with much less success. There are efforts to change this, such as the Google Chrome Web Store,2 Firefox Marketplace,3 Facebook App Center,4 and even the Apple “web apps” directory,5 but the uptake is much slower than their native app counterparts. 1 http://en.wikipedia.org/wiki/Persona_(user_experience) https://chrome.google.com/webstore 3 https://marketplace.firefox.com/ 4 http://www.facebook.com/appcenter 5 http://www.apple.com/webapps/ 2 58 Chapter 4 ■ Choosing Web Apps Over Native Apps Established and controlled marketplaces can also come with a downside, however.

Feature Support If your app needs to access the device’s accelerometer or camera, the argument is over unless you know exactly what web browser your users will be using on their phone. For example, to access the webcam on a device from a browser, you use the getUserMedia API, which isn’t supported by the latest versions of even the mainstream browsers;14 as ever, Chrome, Firefox, and Opera are leading the way. If you don’t know whether all the users of your web application will have support for all the features it requires, your best choice is to create a native app. Operating systems expose access to most hardware features to native apps. Browsers are slowly exposing access to these features, but again they’re not available cross-browser.

Include the following code to accomplish this: /* Highlights ----------------------------------------------------------------------------*/ input:active,input:hover,input:focus { background-color: #e06f00; outline: none; } input::-moz-focus-inner { border: 0; } 126 Chapter 7 ■ Creating HTML and CSS Markup label input:active,label input:focus { border-color: #e06f00; background-color: #fff; outline: none; } label input:hover { background-color: #fff; } This code overrides browser default behavior and replaces it with a custom highlight. Worth noting is the input::-moz-focus-inner rule; this addresses a behavior in Firefox that causes the input to get a small dotted line on the inside of the input when it is active. ■■Caution If you override default browser styles, make sure you replace them with styles of your own. Users who navigate the Web with their keyboards rely on the :focus and :active states to see where the cursor currently rests, so removing those states altogether will have a negative effect on the user experience.


pages: 292 words: 81,699

More Joel on Software by Joel Spolsky

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

—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.

I’ll let Dean introduce the problem (blogs.msdn.com/ie/ 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.

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: 470 words: 109,589

Apache Solr 3 Enterprise Search Server by Unknown

bioinformatics, business logic, continuous integration, database schema, en.wikipedia.org, fault tolerance, Firefox, full text search, functional programming, information retrieval, natural language processing, performance metric, platform as a service, Ruby on Rails, SQL injection, Wayback Machine, 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.

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.

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 http://www.opensearch.org/. 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?


Raw Data Is an Oxymoron by Lisa Gitelman

23andMe, collateralized debt obligation, computer age, continuous integration, crowdsourcing, disruptive innovation, Drosophila, Edmond Halley, Filter Bubble, Firefox, fixed income, folksonomy, Google Earth, Howard Rheingold, index card, informal economy, information security, Isaac Newton, Johann Wolfgang von Goethe, knowledge worker, Large Hadron Collider, liberal capitalism, lifelogging, longitudinal study, Louis Daguerre, Menlo Park, off-the-grid, optical character recognition, Panopticon Jeremy Bentham, 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, WikiLeaks

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?

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.

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.


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, folksonomy, John Markoff, Kickstarter, knowledge worker, off-the-grid, Parler "social media", Salesforce, Silicon Valley, skunkworks, social bookmarking, social intelligence, Streisand effect, the long tail, Tony Hsieh

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.

Apache is the dominant Web server software on the Internet: Netcraft tracks Web server market share. You can see its December 2010 survey at http://forr.com/gsw2-7. 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 http://forr.com/gsw2-8. 9.

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.


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, en.wikipedia.org, fault tolerance, Firefox, information retrieval, Ruby on Rails, SQL injection, Wayback Machine, 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.

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

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: <?


pages: 32 words: 10,468

Getting Things Done for Hackers by Lars Wirzenius

anti-pattern, Debian, Firefox, full text search, Inbox Zero, Kickstarter, Merlin Mann, security theater

. • Web pages can be bookmarked. You can keep a “read and review” bookmark folder. When you’ve read the page, remove the bookmark. • You can also save web pages on your local hard disk. This is useful for reading offline, and also for archiving the page in your filing system. The Firefox Save Page WE extension is excellent for this (see https://addons.mozilla.org/en-US/firefox/addon/save-page-we/). • You can have a “read and review” folder for e-mail as well. Newsletters, and any other e-mail that’s long and takes a while to read, can be put there. • I read e-books either on my Kindle device, or on my laptop, depending on the format.


pages: 518 words: 49,555

Designing Social Interfaces by Christian Crumlish, Erin Malone

A Pattern Language, Amazon Mechanical Turk, anti-pattern, barriers to entry, c2.com, carbon footprint, cloud computing, collaborative editing, commons-based peer production, creative destruction, crowdsourcing, en.wikipedia.org, Firefox, folksonomy, Free Software Foundation, game design, ghettoisation, Howard Rheingold, hypertext link, if you build it, they will come, information security, lolcat, Merlin Mann, Nate Silver, Network effects, Potemkin village, power law, recommendation engine, RFC: Request For Comment, semantic web, SETI@home, Skype, slashdot, social bookmarking, social graph, social software, social web, source of truth, stealth mode startup, Stewart Brand, systems thinking, tacit knowledge, telepresence, the long tail, the strength of weak ties, The Wisdom of Crowds, web application, Yochai Benkler

“Installation of a bookmarklet” can be performed by creating a new bookmark and pasting the code into the URL destination field, but more often you provide the user with a link and encourage him to “drag” it onto his bookmarks toolbar. Extensible browser plug-ins, such as the Delicious add-on for Firefox, represent a more sophisticated approach to the bookmarklet concept (Figure 8-2). Figure 8-2. The Delicious add-on for Firefox is like a bookmarklet on steroids. One problem with bookmarklets is that they can’t be keyboard-accessible (with shortcuts), but they can be made to run on any browser and can even be self-updating. Why Bookmarklets make sharing easier, thus reducing the friction for the user and facilitating more activity on the network.

Open infrastructure: Emerging as a new kind of openness, “cloud computing” has opened a pay-as-you-go, only-what-you-need approach to technology. (Examples in this area include Google App Engine and Amazon’s EC2 and S3 services.) 3. Open architecture: By defining a spec for how others can plug into your product, anyone can mod and extend your product. (A popular example of this is Firefox’s plug-in framework.) 4. Open standards: A community-powered, consensus-driven approach aims for a goal of interoperability, whether for software or hardware. (Examples of these standards can be found throughout the Web’s very fabric: HTML, CSS, XML, and JSON.) ——continued Download at WoweBook.Com Play Well with Others 443 What Does It Mean to Be Open?

Throughout the affair, “open source,” “open access,” and “transparency” were spoken of ceaselessly, as though a prohibition against the concepts had recently been lifted and people were eager to regain mastery of, if not familiarity with, the terms. Clearly something has changed since I worked on the Spread Firefox grassroots marketing project in 2004—when Mozilla was easily dismissed as an outpost for “modern communists” (where meritocracy and distributed work somehow suggested communist leanings). Indeed, the culture of “openness” has infected even the most “free market” companies, such as Microsoft, with behemoths such as Yahoo!


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, behavioural economics, Berlin Wall, Blue Ocean Strategy, business cycle, business intelligence, carbon-based life, classic study, Claude Shannon: information theory, complexity theory, data science, David Heinemeier Hansson, declining real wages, deliberate practice, discrete time, disruptive innovation, double helix, Douglas Engelbart, Douglas Engelbart, Downton Abbey, Drosophila, Fairchild Semiconductor, Firefox, Frank Gehry, Google X / Alphabet X, Gregor Mendel, informal economy, invention of the printing press, inventory management, John Markoff, Khan Academy, Kickstarter, low skilled workers, Lyft, Marc Andreessen, Mark Zuckerberg, meta-analysis, natural language processing, Network effects, open borders, pattern recognition, Peter Thiel, pez dispenser, Recombinant DNA, 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, uber lyft, Vannevar Bush

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.

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.

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.


Ubuntu 15.04 Server with systemd: Administration and Reference by Richard Petersen

Amazon Web Services, bash_history, cloud computing, Debian, Firefox, lock screen, Mark Shuttleworth, MITM: man-in-the-middle, OpenAI, operational security, RFC: Request For Comment, SpamAssassin, web application

If you want to use the Ubuntu Ambiance or Radiance themes, install the light-themes package, and then open Applications | System Tools | System Settings, Appearance, and choose the Themes tab to change to the Ubuntu Ambiance or Radiance themes. sudo apt-get install light-themes Should you want to use the Hardware drivers, you can install jockey-gtk. For a Web browser you can install the firefox or epiphany-browser packages. sudo apt-get install firefox ubuntu-desktop For desktop features, it is recommended that you install the entire Ubuntu desktop. The Ubuntu desktop will install the complete set of desktop packages, including multimedia and graphics packages, which you may have no use for on your server. The added packages do not degrade the server; they just take up additional disk space (about 1 GB or more).

A manual update gives you more control over the update, letting you choose packages to install. Figure 4-21: Software Updater with selected packages To see actual packages to be updated, click the "Details of updates" arrow. Packages are organized into application categories such as Ubuntu base for the Linux OS packages, Firefox for Firefox updates, and LibreOffice for office updates. You can expand these to individual packages. The check boxes for each entry lets you de-select any particular packages you do not want to update (see Figure 4-6 ). Packages are organized according to importance, beginning with Important security updates and followed by Recommended updates.

Ubuntu Linux Help and Documentation A great deal of help and documentation is available online for Ubuntu, ranging from detailed install procedures to beginner questions (see Table 1-1 ). The documentation for Ubuntu 15.04 is located at https://help.ubuntu.com/15.04/. This site includes the Ubuntu Server Guide. The Firefox Web browser start page displays links for two major help sites: Ubuntu documentation at https://help.ubuntu.com and Ubuntu Community at http://community.ubuntu.com. For answers to commonly asked questions check http://askubuntu.com/. It provides detailed answers to many technical issues. For detailed online support use the Ubuntu forums at http://ubuntuforums.org.


pages: 420 words: 61,808

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

business logic, database schema, Firefox, full text search, information security, Minecraft, platform as a service, web application

Example 15-7 shows the layout of a test case that is configured to run tests with Selenium. Example 15-7. tests/test_selenium.py: 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 cls.app = create_app('testing') cls.app_context = cls.app.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='john@example.com', 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(target=cls.app.run).start() @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/test_selenium.py: 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 cls.app = create_app('testing') cls.app_context = cls.app.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='john@example.com', 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(target=cls.app.run).start() @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 app.run() 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: 59 words: 12,801

The Little Book on CoffeeScript by Alex MacCaw

duck typing, 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.


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, blood diamond, business cycle, business intelligence, Cass Sunstein, Chelsea Manning, citizen journalism, Citizen Lab, cloud computing, cognitive dissonance, collective bargaining, conceptual framework, corporate social responsibility, Deng Xiaoping, digital divide, digital Maoism, don't be evil, Eben Moglen, Evgeny Morozov, Filter Bubble, Firefox, future of journalism, Global Witness, high-speed rail, illegal immigration, Jaron Lanier, Jeff Bezos, John Markoff, John Perry Barlow, Joi Ito, Julian Assange, Mark Zuckerberg, Mikhail Gorbachev, MITM: man-in-the-middle, national security letter, online collectivism, Panopticon Jeremy Bentham, Parag Khanna, pre–internet, race to the bottom, real-name policy, Richard Stallman, Ronald Reagan, sharing economy, Silicon Valley, Silicon Valley startup, Skype, Steve Crocker, Steven Levy, Tactical Technology Collective, technological determinism, WikiLeaks, Yochai Benkler

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 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.

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.


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

anti-pattern, domain-specific language, duck typing, en.wikipedia.org, Firefox, functional programming, 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.

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. ³⁵http://calculist.org/blog/2012/06/29/static-module-resolution/ ³⁶http://nodejs.org/api/modules.html#modules_cycles ³⁷https://mail.mozilla.org/pipermail/es-discuss/2014-July/038250.html ³⁸https://bugzilla.mozilla.org/show_bug.cgi?

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. ²https://html.spec.whatwg.org/multipage/webappapis.html#timers 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.


pages: 295 words: 84,843

There's a War Going on but No One Can See It by Huib Modderkolk

AltaVista, ASML, Berlin Wall, Big Tech, call centre, COVID-19, disinformation, Donald Trump, drone strike, Edward Snowden, end-to-end encryption, Evgeny Morozov, fake news, Fall of the Berlin Wall, Firefox, Google Chrome, information security, Jacob Appelbaum, John Markoff, Julian Assange, Laura Poitras, machine translation, millennium bug, NSO Group, ransomware, Skype, smart meter, speech recognition, Stuxnet, undersea cable, unit 8200, uranium enrichment, WikiLeaks, zero day

He’s been on the phone to them daily, begging them to hold off just a tiny bit longer. Please, he says, don’t pull the plug on DigiNotar all at once: ‘We don’t know yet what the consequences will be for this country.’ That’s an understatement. Officials at every level are clueless. One asks Erik de Jong who owns Firefox. Firefox is an open-source project; it has no owner. And Erik Akerboom, the national counter-terrorism co-ordinator and chair of the Cyber Security Council, doesn’t even know what digital certificates are. As if that’s not enough, this digital crisis is also sparking a culture clash. On the one hand are hierarchical government agencies accustomed to imposing decisions from the top, and on the other are organisations of technical experts like GovCERT, where management relies on specialists who know what’s what

What looks like the national tax authority’s website might belong not to the tax authority but to criminals trying to steal login data. We have a system to solve that. Whenever a user goes to a website, their web browser checks if the site is legitimate. Google (Chrome), Microsoft (Explorer) and Firefox (Mozilla) don’t actually perform this check themselves: they outsource it to companies, like DigiNotar, that issue certificates. The system is comparable to a notary who verifies that parties to a transaction are who they say they are. DigiNotar is a digital notary firm that checks who the website you visit belongs to and if that website can be trusted.

Looking at the tapped data, the High Tech Crime Unit noticed he’d gone on Facebook using the same VPN tunnel. Furthermore, the IP address used matched one found in the server data from the UK, where on one single occasion the hacker logged in from his own computer. A fatal misstep, it turned out. When the police laid the two IP addresses side by side they could see both used the same browser (Firefox) in the same version and with the same language settings (Persian). They could also see which Facebook profile the user was logging into: it belonged to an Iranian man in his twenties. From there, it took seconds to track down his name and address. A lone wolf, the investigators initially concluded.


pages: 204 words: 54,395

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

Abraham Maslow, affirmative action, behavioural economics, 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, longitudinal study, performance metric, profit maximization, profit motive, Results Only Work Environment, scientific management, side project, TED Talk, the built environment, Tony Hsieh, transaction costs, zero-sum game

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.

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.


pages: 196 words: 58,122

AngularJS by Brad Green, Shyam Seshadri

business logic, combinatorial explosion, continuous integration, Firefox, Google Chrome, Kickstarter, MVC pattern, node package manager, single page application, systems thinking, web application, WebSocket

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.

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.

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).


Python Web Development With Django by Jeff Forcier

business logic, create, read, update, delete, database schema, Debian, don't repeat yourself, duck typing, en.wikipedia.org, Firefox, full text search, functional programming, Guido van Rossum, loose coupling, MVC pattern, revision control, Ruby on Rails, Silicon Valley, slashdot, SQL injection, web application

Selenium RC (http://selenium-rc.openqa.org/) 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.

Software Link Subversion http://subversion.tigris.org Trac http://trac.edgewall.org Mailman http://www.gnu.org/software/mailman Markdown http://daringfireball.net/projects/markdown Markdown-Python http://freewisdom.org/projects/python-markdown wtables http://brian-jaress.livejournal.com/5978.html make http://www.gnu.org/software/make/ TextMate http://macromates.com Vim http://www.vim.org Ghostscript http://pages.cs.wisc.edu/~ghost/ html2ps http://user.it.uu.se/~jan/html2ps.html Firefox http://mozilla.com/firefox Ubuntu http://ubuntu.com FreeBSD http://freebsd.org Colophon Software Link Macports http://macports.org Python http://python.org Django http://djangoproject.com 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!

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 authors@withdjango.com. Our Web site, http://withdjango.com, 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.


pages: 281 words: 95,852

The Googlization of Everything: by Siva Vaidhyanathan

"Friedman doctrine" OR "shareholder theory", 1960s counterculture, activist fund / activist shareholder / activist investor, AltaVista, barriers to entry, Berlin Wall, borderless world, Burning Man, Cass Sunstein, choice architecture, cloud computing, commons-based peer production, computer age, corporate social responsibility, correlation does not imply causation, creative destruction, data acquisition, death of newspapers, digital divide, digital rights, don't be evil, Firefox, Francis Fukuyama: the end of history, full text search, global pandemic, global village, Google Earth, Great Leap Forward, Howard Rheingold, Ian Bogost, independent contractor, 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, Panopticon Jeremy Bentham, pirate software, radical decentralization, Ray Kurzweil, Richard Thaler, Ronald Reagan, side project, Silicon Valley, Silicon Valley ideology, single-payer health, Skype, Social Responsibility of Business Is to Increase Its Profits, social web, Steven Levy, Stewart Brand, technological determinism, technoutopianism, the long tail, The Nature of the Firm, The Structural Transformation of the Public Sphere, Thorstein Veblen, Tyler Cowen, urban decay, web application, Yochai Benkler, zero-sum game

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.

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 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.


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

business logic, database schema, en.wikipedia.org, Firefox, functional programming, Google Chrome, node package manager, telemarketer, web application

With the advent of client libraries for these browsers, such as jQuery, script.aculo.us, 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.

If you look at the headers the curl program sends to you, you see Click here to view code image { '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 Click here to view code image { 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' } 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.

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.


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

call centre, Firefox, Ford Model T, HyperCard, Menlo Park, slashdot, Steve Jobs, Steven Levy, sunk-cost fallacy

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 WoweBook.com Download from WoweBook.com Removing too much In the Apple Store in Tokyo you’ll find a remarkable glass elevator, finished in Apple’s trademark brushed aluminum.


pages: 180 words: 37,187

AngularJS Essentials by Rodrigo Branas

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

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.

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.


pages: 426 words: 105,423

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

Abraham Maslow, Albert Einstein, Amazon Mechanical Turk, Apollo 13, call centre, clean water, digital nomad, Donald Trump, drop ship, en.wikipedia.org, Firefox, fixed income, follow your passion, Ford Model T, fulfillment center, game design, global village, Iridium satellite, knowledge worker, language acquisition, late fees, lateral thinking, Maui Hawaii, oil shock, paper trading, Paradox of Choice, Parkinson's law, passive income, peer-to-peer, pre–internet, Ralph Waldo Emerson, remote working, risk tolerance, Ronald Reagan, side project, Silicon Valley, Silicon Valley startup, Skype, Steve Jobs, Vilfredo Pareto, wage slave, William of Occam

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 (www.firefox.com) and use LeechBlock to block certain sites entirely for set periods. From their site (http://www.proginosko.com/leechblock.html): 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).

Google Adwords Keyword Tool (http://adwords.google.com/select/KeywordToolExternal) 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 (http://tools.seobook.com/) This is an outstanding resource page with searches powered by Wordtracker (www.wordtracker.com). 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?

Google Adwords Keyword Tool (http://adwords.google.com/select/KeywordToolExternal) 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 (http://tools.seobook.com/) Outstanding resource page with searches powered by Wordtracker (www.wordtracker.com). Low-Cost Domain Registration Domains in Seconds (www.domainsinseconds.com) I have registered more than 100 domains through this service. Joker (www.joker.com) GoDaddy (www.godaddy.com) 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: 499 words: 144,278

Coders: The Making of a New Tribe and the Remaking of the World by Clive Thompson

"Margaret Hamilton" Apollo, "Susan Fowler" uber, 2013 Report for America's Infrastructure - American Society of Civil Engineers - 19 March 2013, 4chan, 8-hour work day, Aaron Swartz, Ada Lovelace, AI winter, air gap, Airbnb, algorithmic bias, AlphaGo, Amazon Web Services, Andy Rubin, Asperger Syndrome, augmented reality, Ayatollah Khomeini, backpropagation, barriers to entry, basic income, behavioural economics, Bernie Sanders, Big Tech, bitcoin, Bletchley Park, blockchain, blue-collar work, Brewster Kahle, Brian Krebs, Broken windows theory, call centre, Cambridge Analytica, cellular automata, Charles Babbage, Chelsea Manning, Citizen Lab, clean water, cloud computing, cognitive dissonance, computer vision, Conway's Game of Life, crisis actor, crowdsourcing, cryptocurrency, Danny Hillis, data science, David Heinemeier Hansson, deep learning, DeepMind, Demis Hassabis, disinformation, don't be evil, don't repeat yourself, Donald Trump, driverless car, dumpster diving, Edward Snowden, Elon Musk, Erik Brynjolfsson, Ernest Rutherford, Ethereum, ethereum blockchain, fake news, false flag, Firefox, Frederick Winslow Taylor, Free Software Foundation, Gabriella Coleman, game design, Geoffrey Hinton, glass ceiling, Golden Gate Park, Google Hangouts, Google X / Alphabet X, Grace Hopper, growth hacking, Guido van Rossum, Hacker Ethic, hockey-stick growth, HyperCard, Ian Bogost, illegal immigration, ImageNet competition, information security, Internet Archive, Internet of things, Jane Jacobs, John Markoff, Jony Ive, Julian Assange, Ken Thompson, Kickstarter, Larry Wall, lone genius, Lyft, Marc Andreessen, Mark Shuttleworth, Mark Zuckerberg, Max Levchin, Menlo Park, meritocracy, microdosing, microservices, Minecraft, move 37, move fast and break things, Nate Silver, Network effects, neurotypical, Nicholas Carr, Nick Bostrom, no silver bullet, Northpointe / Correctional Offender Management Profiling for Alternative Sanctions, Oculus Rift, off-the-grid, OpenAI, operational security, opioid epidemic / opioid crisis, PageRank, PalmPilot, paperclip maximiser, pattern recognition, Paul Graham, paypal mafia, Peter Thiel, pink-collar, planetary scale, profit motive, ransomware, recommendation engine, Richard Stallman, ride hailing / ride sharing, Rubik’s Cube, Ruby on Rails, Sam Altman, Satoshi Nakamoto, Saturday Night Live, scientific management, self-driving car, side project, Silicon Valley, Silicon Valley ideology, Silicon Valley startup, single-payer health, Skype, smart contracts, Snapchat, social software, software is eating the world, sorting algorithm, South of Market, San Francisco, speech recognition, Steve Wozniak, Steven Levy, systems thinking, TaskRabbit, tech worker, techlash, TED Talk, the High Line, Travis Kalanick, Uber and Lyft, Uber for X, uber lyft, universal basic income, urban planning, Wall-E, Watson beat the top human players on Jeopardy!, WeWork, WikiLeaks, women in the workforce, Y Combinator, Zimmermann PGP, éminence grise

This works remarkably well for time-rich young people but less so for anyone with lots of coding talent but more real-world responsibilities. “Meritocracies say ‘your GitHub is your résumé,’ then they act surprised that their candidate pool doesn’t include a lot of single moms without time to hack on hobby projects,” as Johnathan Nightingale, a former general manager of the open source browser Firefox, writes. Firefox, he notes, was like that, too. The company that ran Firefox, Mozilla, had a female founder, “and still our ‘meritocracy’ was full of people who looked an awful lot like me.” A survey done by GitHub found that 95 percent of its respondents identified as men; 3 percent identified as female and 1 percent as nonbinary. Though solid numbers are hard to come by, other surveys and estimates of the amount of women involved in open source projects appear to find that it’s around 10 percent or lower.

This can often wind up planting a deep, vibrating misanthropy in some programmers’ souls. Because, hey, your software would work fine if all those stupid users didn’t keep on doing dumb things that break it, right? Dealing with unpredictable behavior of users turns coders into “pessimistic, paranoid lunatics,” as Blake Ross, the cocreator of the Firefox browser, once wrote. It happens gradually, because every time they create a piece of software they discover that people do things with it that they, the creators, never predicted. His description is funny enough that it’s worth quoting at length: It starts when we’re 8 and coding our very first program.

.), ref1 Facebook, ref1, ref2, ref3, ref4, ref5, ref6 ad tech, civic impacts of, ref1 Cambridge Analytica scandal, ref1 content moderation, ref1, ref2 deep-learning model at, ref1 free-to-use model of, ref1 Like button, ref1 News Feed feature of (See News Feed [Facebook]) purchases Instagram, ref1 Sanghvi hired at, ref1 scale and, ref1 tracking of user activities by, ref1 women and minority coders at, percentage of, ref1 work atmosphere at, ref1 Fancy Bear, ref1 Fan Hui, ref1, ref2 Fast Company, ref1 feature creep, ref1 Ferrucci, Dave, ref1, ref2 file-sharing tools, ref1 Firefox, ref1 Fisher, Allan, ref1, ref2, ref3, ref4 Fitzpatrick, Brad, ref1, ref2 Flatiron School, ref1, ref2, ref3 Flickr, ref1 Flombaum, Avi, ref1 FLOW-MATIC computer language, ref1 flow state, ref1 Foer, Franklin, ref1 Fogg, B. J., ref1, ref2 food stamp program app (GetCalFresh), ref1 Fortran computer language, ref1, ref2, ref3 Founders at Work (Clark), ref1 Fowler, Chad, ref1 Fowler, Martin, ref1 Fowler, Susan, ref1 Frank, Robert, ref1 Franklin, Benjamin, ref1 Franklin Planner system, ref1 Franzen, Jonathan, ref1 free and open source software.


pages: 562 words: 153,825

Dark Mirror: Edward Snowden and the Surveillance State by Barton Gellman

4chan, A Declaration of the Independence of Cyberspace, Aaron Swartz, active measures, air gap, Anton Chekhov, Big Tech, bitcoin, Cass Sunstein, Citizen Lab, cloud computing, corporate governance, crowdsourcing, data acquisition, data science, Debian, desegregation, Donald Trump, Edward Snowden, end-to-end encryption, evil maid attack, financial independence, Firefox, GnuPG, Google Hangouts, housing justice, informal economy, information security, Jacob Appelbaum, job automation, John Perry Barlow, Julian Assange, Ken Thompson, Laura Poitras, MITM: man-in-the-middle, national security letter, off-the-grid, operational security, planetary scale, private military company, ransomware, Reflections on Trusting Trust, Robert Gordon, Robert Hanssen: Double agent, rolodex, Ronald Reagan, Saturday Night Live, seminal paper, Seymour Hersh, Silicon Valley, Skype, social graph, standardized shipping container, Steven Levy, TED Talk, telepresence, the long tail, undersea cable, Wayback Machine, web of trust, WikiLeaks, zero day, Zimmermann PGP

In order to make it easier for novices to use, Tor developers had baked their magic into a custom version of Firefox. They called it the Tor Browser Bundle. Now a small team of NSA hackers had come up with a way to see through the browser’s privacy shields. The NSA liked to hire rising stars in computer science and mathematics as interns for a summer or an academic year. Young innovators came up with hacks that old-timers missed, and a taste of life inside sometimes hooked them into postgraduate employment. It was one of those interns who broke the news that Snowden read in January. The intern and his team had found a vulnerability in Firefox, not in Tor itself, but they could exploit it against certain versions of the bundle.

“I hope you get all the kudos you deserve for putting this together. How long did it take you to come up with this? If Tor team updates [Firefox] . . . do you think the TBB has enough target surface for you guys to restore the same access through a different vuln? Same time investment, or more?” Snowden was asking how long it would take to find a new hole in the browser once the old one was patched. “Somewhere between a week and two weeks,” the intern replied. “We’ve actually got a couple of bugs we’re looking at for Firefox 17+, and once I get back from a TDY [temporary duty] next week, I’m going to try to work with the rest of the team to get something ready to ship, and I’m confident we can have it ready when [Tor developers] release something new, or very soon after:)” Much later, when government officials and other critics accused Snowden of damaging NSA collection capabilities, he cited the exchange with the intern in reply.

., 275–76 see also surveillance Espionage Act (1917), 96, 99, 101, 261, 275, 308, 381 ES on, 292 Executive Order 12333, 84, 282, 287, 302, 338, 410 impact on U.S. persons of, 315–16, 317, 318, 335–36 see also surveillance, foreign Executive Order 13526, 265 Expeditionary Access Operations, see S3283 Facebook, 112 illegal spying by, 198 Face the Nation, BG’s appearance on, 229–30 FASCIA II, 172 Federal Bureau of Investigation (FBI), 14, 75, 86 culture of, 205 encryption technology as hindrance to, 312 illegal surveillance by, 180–81 Verizon metadata collected by, 142 Federal Trade Commission, 198 Felten, Ed, 232–33 on secrets revealed by metadata, 162–63 Firefox, Tor Browser Bundle of, 80 First Amendment, of U.S. Constitution, 14, 96, 99, 114, 185, 248, 261 FIRSTFRUITS, 225, 277 Brand on, 274 DOJ crime reports produced by, 274–75 internet rumors about, 271–72 tracing journalistic leaks as goal of, 272–73 FISA Amendments Act (2008), 69, 86, 94, 111, 126, 148, 338 Section 702 of, 123 FISA Court, see Foreign Intelligence Surveillance Court Five Eyes intelligence allies, 28, 69, 177, 311 Fleischer, Ari, 273, 406 Flynn, Michael T., 377 Forbes, 75 Foreign Denial and Deception Committee, 274, 278 Foreign Intelligence Surveillance Act (1978), 282, 338 and legal standard of relevance, 143–44 restrictions on NSA of, 122 Foreign Intelligence Surveillance Court, 111–12, 122, 123, 126, 263–64, 283 in annual review of PRISM program, 125 business records access authorized by, 143, 171 five-year limit on retention imposed by, 173, 179 mass surveillance authorized by, 111–12 NSA call data collection authorized by, 157, 165 NSA overseas collection as avoiding restrictions of, 317 relevance standard and, 143–44 STELLARWIND concealed from, 170 foreign surveillance, see surveillance, foreign 4chan, 192 Fourth Amendment, of the U.S.


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 ] www.it-ebooks.info 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.

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 ] www.it-ebooks.info Processes request Script parsing ...


pages: 280 words: 71,268

Measure What Matters: How Google, Bono, and the Gates Foundation Rock the World With OKRs by John Doerr

Abraham Maslow, Albert Einstein, Big Tech, Bob Noyce, cloud computing, collaborative editing, commoditize, crowdsourcing, data science, fail fast, Fairchild Semiconductor, Firefox, Frederick Winslow Taylor, Google Chrome, Google Earth, Google X / Alphabet X, Haight Ashbury, hockey-stick growth, intentional community, Jeff Bezos, job satisfaction, Khan Academy, knowledge worker, Mary Meeker, Menlo Park, meta-analysis, PageRank, Paul Buchheit, Ray Kurzweil, risk tolerance, Salesforce, scientific management, self-driving car, Sheryl Sandberg, side project, Silicon Valley, Silicon Valley startup, Skype, Steve Jobs, Steven Levy, subscription business, Susan Wojcicki, web application, Yogi Berra, éminence grise

It was the right project for the right time. In just a few years, we scaled up Toolbar users by more than 10x. That was when I first saw the power of an ambitious, stretch OKR. Rethinking the Browser By then we’d set up something new for Google, a team to build client software. We had people working on Firefox to help improve Mozilla’s browser. By 2006, we were beginning to rethink the browser as a computing platform, almost like an operating system, so that people could write applications on the web itself. That fundamental insight gave birth to Chrome. We knew we needed a multiprocess architecture to make each tab its own process and protect a user’s Gmail if another application crashed.

We were fortunate to find a Danish programmer named Lars Bak, who’d built virtual machines for Sun Microsystems and held more than a dozen patents. Lars is one of the great artists in his field. He came to us and said, without an ounce of bravado, “I can do something that is much, much faster.” Within four months, he had JavaScript running ten times as fast as it ran on Firefox. Within two years, it was more than twenty times faster—incredible progress. (Sometimes a stretch goal is not as wildly aspirational as it may seem. As Lars later told Steven Levy in In the Plex , “We sort of underestimated what we could do.”) Stretch OKRs are an intense exercise in problem solving.

See also commitment; focus culture and, 212 –13 management theory, 24 –27 top-down goal setting, 86 –89 Zume Pizza story, 211 Lean In (Sandberg), 184 –85 Lee, Albert, 90 –101, 93 Lee, Amy, 90 Lee, Mike, 55 –56, 90 –101, 93 , 141 Levie, Aaron, 77 Levin, Rick, 219 Levy, Steven, 11 –12, 11 n, 139 , 149 LinkedIn, 12 , 50 LiquidPlanner, 200 –201 Locke, Edwin, 9 –10, 134 Long, Mike, 224 , 226 , 232 love, 253 low value objectives (LVOs), 260 Lumeris, 223 –33 HR transformation, 226 –27 OKR resurrection, 228 –29 selling your reds, 231 –32 transparency without judgment, 229 –31 McFadden, Jim, 161 malaria, 13 , 130 , 132 , 132 n management by objectives (MBOs), 25 , 26 –27, 27 management theory, 24 –27 manager-led coaching, 184 , 278 , 279 Sand Hill Unicorns, 81 –85 MapMyFitness, 99 Maslow’s hierarchy of needs, 136 –37 Matthew, Lucy, 237 Mayer, Marissa, 7 Medicaid, 69 –70, 72 , 75 , 76 Mehrotra, Shishir, 160 , 163 , 164 , 168 membership engagement, 242 –43 Merrill, Amelia, 79 , 141 micromanagement, 88 Microsoft, 5 , 126 , 128 –29, 130 , 201 –2 midlife tracking, 117 –19 MightyText and, 63 –64 mismanagement, 86 –87 missions vs. objectives, 130 mistakes, classic OKR-writing, 258 –61 Monthly Active Teachers (MAT), 64 moonshot goals, 16 , 140 , 141 , 148 , 149 , 224 Moore, Gordon, 6 n, 20 , 32 Moore’s law, 20 , 21 , 121 n, 129 Morris, Donna, 189 –96, 193 Motorola, 36 –37, 40 –41 Mount Everest disaster of 1996, 9 Moyo, Dambisa, 240 Mozilla Firefox, 146 , 148 –49 Mullen, Larry, Jr., 235 , 244 MyFitnessPal, 90 –101 committed goals, 141 cross-team integration, 94 –97 less is more, 55 –56 North Star values, 100 –101 unacknowledged dependencies, 97 –101 Nadella, Satya, 161 National Academy of Engineering, 134 negative feedback, 185 Netscape, 251 New Yorker, 248 New York Times, 30 –31, 32 , 76 , 102 Ng, Andrew, 219 North Star values, 100 –101 nourishers, 216 , 280 Novell, 251 Noyce, Robert, 20 , 22 , 32 , 43 Nuna International, 69 –76 objective scoring, 120 –22 objectives vs. missions, 130 Okolloh, Ory, 240 OKRs (Objectives and Key Results) adaptability of, 246 applications and implications, 17 –18.


pages: 267 words: 71,941

How to Predict the Unpredictable by William Poundstone

accounting loophole / creative accounting, Albert Einstein, Bernie Madoff, Brownian motion, business cycle, butter production in bangladesh, buy and hold, buy low sell high, call centre, centre right, Claude Shannon: information theory, computer age, crowdsourcing, Daniel Kahneman / Amos Tversky, Edward Thorp, Firefox, fixed income, forensic accounting, high net worth, index card, index fund, Jim Simons, John von Neumann, market bubble, money market fund, pattern recognition, Paul Samuelson, Ponzi scheme, power law, prediction markets, proprietary trading, random walk, Richard Thaler, risk-adjusted returns, Robert Shiller, Rubik’s Cube, statistical model, Steven Pinker, subprime mortgage crisis, transaction costs

It’s not hard to clear cookies. Go into your browser’s settings, choose “Privacy” or some such heading, and click “Remove all website data.” The drawback is that you’ll be starting from zero with all websites. It’s much easier to use two browsers. I use Safari for everyday use (with cookies enabled) and Firefox (with cookies turned off). When I use Firefox, I’m a new customer to every site. Then there’s the abandoned shopping cart ploy. Put whatever you want to buy in a retail site’s shopping cart. Click “check out.” Begin filling out the form. Make sure you enter your e-mail address but don’t enter any payment information. Leave the purchase in limbo and wait for the discounts to roll in.

See stock market price-to-earnings (PE) ratios DALBAR (research firm), 218 data analytics, 205 data mining, 139 De Dreu, Carsten, 85 Decide.com, 196–197, 198 Deckert, Joseph, 140 DeMuth, Phil, 230–231 differential pricing, 192–194 digital analysis, 119–121, 129, 139–140, 142, 143 Dimensional Fund Advisors, 219 distractors, 66 dogs, 83, 84, 161 Dow Jones Index, 229 Duke University, 28, 39 Einstein, Albert, 7 electoral fraud, 139–142, 143 Enron, 131–133 ergometrics, 39, 43 Erving, Julius, 160 ESP (extrasensory perception)/telepathy, 28–39, 46, 47 EuroMillions (lottery), 70, 74, 75, 76 Excel, 134 extremeness aversion, 191–192 Facebook, 99 Fairfield Sentry, 147–152 fake numbers, 112–125 criminal cases involving, 115–117, 118 digital analysis and, 119–121 identifying, 121–124 My Law and, 119–120 taxes and, 117–118 See also manipulated numbers Fastow, Andrew, 131 Federal Reserve Board, 221 Feller, William, 166 FIFA World Cup championships, 85 Financial Forensics (Lake Oswego, Oregon), 129 Firefox (Web browser), 194 first-digits, 109–110, 139, 149–150 Fisher, Daryl, 78–81 football, 161, 174–182 American football, 177–182, 266n penalty kicks, 83–85 forecasting, 205–212 fortune cookies, 71 fraud detection. See fake numbers; manipulated numbers Freakonomics (Levitt), 178 Fry, Thornton, 39 FTSE 100 Index, 220, 242–244 FTSE All Share Index, 225 future.


pages: 159 words: 42,401

Snowden's Box: Trust in the Age of Surveillance by Jessica Bruder, Dale Maharidge

air gap, anti-communist, Bay Area Rapid Transit, Berlin Wall, Black Lives Matter, blockchain, Broken windows theory, Burning Man, Cambridge Analytica, cashless society, Chelsea Manning, citizen journalism, computer vision, crowdsourcing, deep learning, digital rights, disinformation, Donald Trump, Edward Snowden, Elon Musk, end-to-end encryption, Evgeny Morozov, Ferguson, Missouri, Filter Bubble, Firefox, information security, Internet of things, Jeff Bezos, Jessica Bruder, John Perry Barlow, Julian Assange, Laura Poitras, license plate recognition, Mark Zuckerberg, mass incarceration, medical malpractice, messenger bag, Neil Armstrong, Nomadland, Occupy movement, off grid, off-the-grid, pattern recognition, Peter Thiel, Robert Bork, Seymour Hersh, Shoshana Zuboff, Silicon Valley, Skype, social graph, Steven Levy, surveillance capitalism, tech bro, Tim Cook: Apple, web of trust, WikiLeaks

If you want to browse the internet without Big Brother as your copilot, consider trying Tor Browser, which routes your online navigation through a network of encrypted relays. Tor doesn’t play nice with advertisers, blocking background scripts and the browser-tracking technologies that follow your every move. When you log off, your browsing history gets wiped out. The downside? All these features make Tor run a bit more slowly than commercial browsers. Firefox and Safari are also catching up to consumers’ demands for privacy, integrating anti-tracking features and preferences into their software. No matter what browser you use, it’s worth remembering: Google and other commercial search engines act like giant vacuum cleaners, hoovering up your queries as an endless stream of market research.

See also Stasi Egypt, 145 Elahi, Hasan, 112 Electronic Frontier Foundation (EFF), 66–8, 79, 93, 125, 140, 143, 144 Electronic Privacy Information Center (EPIC), 143 Ellsberg, Daniel, 36, 43, 67 Espionage Act, 10, 42, 129 European Union, 143, 144 Evans, Jon, 8 Facebook, 48, 102, 103, 136–7, 141 FBI, 15, 18, 22, 86–8, 90, 94; FOIA requests, 124, 125, 126, 127, 145 Ferguson, Missouri, 111 Firefox (browser), 139 First Look Media, 126–9, 130 FitBit, 104 Ford, Gerald, 91 Foreign Intelligence Surveillance Act (FISA), 90–1 Franklin, Benjamin, 74 Freedom of the Press Foundation, 39, 62, 67, 68, 70 Gellman, Barton, 41, 43, 120 General Data Protection Regulation (GDPR) (Europe), 143, 144 Glomar Explorer, 125 Google, 48, 102, 108, 139, 145; Gmail, 137 Google Docs, 138 Google Drive, 126 Google Home, 99, 131 Google Maps, 21 Government Accountability Project, 85 GPG (Gnu Privacy Guard), 69, 70–1, 74, 75, 138 Greenwald, Glenn, 80, 120, 121, 129; Brazil, 59; EFF role, 67; First Look Media, 127–8; Hong Kong trip, 45, 46; Poitras and, 16–17, 38–9, 44–5, 46, 48; Snowden and, 6–7, 44–5, 48–9, 70–4, 75–6; Timm and, 62–3 Grindr, 103 Guantánamo Bay Naval Base, 64 Guardian, 2, 45, 46–7, 63, 80, 94; Poitras video, 48–49, 92 Hampton, Fred, 87–8 Harrison, Sarah, 56 Harvey, Adam, 142 Hawaii, 1, 28, 58 Hersh, Seymour, 43, 88 Holder, Eric, 29 Homeland Security Department.


pages: 286 words: 87,401

Blitzscaling: The Lightning-Fast Path to Building Massively Valuable Companies by Reid Hoffman, Chris Yeh

"Susan Fowler" uber, activist fund / activist shareholder / activist investor, adjacent possible, Airbnb, Amazon Web Services, Andy Rubin, autonomous vehicles, Benchmark Capital, bitcoin, Blitzscaling, blockchain, Bob Noyce, business intelligence, Cambridge Analytica, Chuck Templeton: OpenTable:, cloud computing, CRISPR, crowdsourcing, cryptocurrency, Daniel Kahneman / Amos Tversky, data science, database schema, DeepMind, Didi Chuxing, discounted cash flows, Elon Musk, fake news, Firefox, Ford Model T, forensic accounting, fulfillment center, Future Shock, George Gilder, global pandemic, Google Hangouts, Google X / Alphabet X, Greyball, growth hacking, high-speed rail, hockey-stick growth, hydraulic fracturing, Hyperloop, initial coin offering, inventory management, Isaac Newton, Jeff Bezos, Joi Ito, Khan Academy, late fees, Lean Startup, Lyft, M-Pesa, Marc Andreessen, Marc Benioff, margin call, Mark Zuckerberg, Max Levchin, minimum viable product, move fast and break things, Network effects, Oculus Rift, oil shale / tar sands, PalmPilot, Paul Buchheit, Paul Graham, Peter Thiel, pre–internet, Quicken Loans, recommendation engine, ride hailing / ride sharing, Salesforce, Sam Altman, Sand Hill Road, Saturday Night Live, self-driving car, shareholder value, sharing economy, Sheryl Sandberg, Silicon Valley, Silicon Valley startup, Skype, smart grid, social graph, SoftBank, software as a service, software is eating the world, speech recognition, stem cell, Steve Jobs, subscription business, synthetic biology, Tesla Model S, thinkpad, three-martini lunch, transaction costs, transport as a service, Travis Kalanick, Uber for X, uber lyft, web application, winner-take-all economy, work culture , Y Combinator, yellow journalism

To go from “yet another search engine” to “the last search engine” (as my old friend Peter Thiel put it in his 2014 Stanford lecture “Competition Is for Losers”), Google had to leverage a series of existing networks and partners. For example, Google’s bold deal to power AOL’s search results helped the company grow its search business by orders of magnitude. Later, other distribution bets like the Firefox partnership, the acquisition of Android, and the creation of the Chrome browser all paid off and helped maintain Google’s distribution dominance. Google also found ways to leverage small partners as well, with its AdSense program for Web publishers feeding more raw traffic into the AdWords machine.

This purchase intent proved to be far more valuable per unit of traffic, enabling Google to earn fat margins. Google has since used the financial power of its gross margins to place big bets that other companies might shy away from, such as investing in Android and Chrome, two products that were going up against dominant competitors (Apple’s iOS in mobile phone software and Microsoft and Firefox in Web browsers). Google has also used its margins to fund radical experiments like X (formerly Google X) and Waymo (self-driving cars). These bets may or may not pay off, but even if they fail, Google’s margins give it the ability to recover quickly and keep going. Network Effects Google has leveraged network effects quite a bit in its major business lines, though not, ironically enough, in its core search product!

No matter how potentially effective your “product”—whether that product is a social service, a political candidate, or anything else—is at improving the lives of those who adopt it, its impact is directly proportional to your ability to execute an effective distribution strategy. The Mozilla Foundation wasn’t the only open-source organization to create a Web browser (Firefox), but it was the only nonprofit organization that was able to leverage distribution to achieve a leading market share. In 2008, Barack Obama won the presidency in part because his campaign was the first to leverage the distribution possibilities of the Internet, including leveraging existing grassroots networks and achieving virality via social media.


pages: 302 words: 85,877

Cult of the Dead Cow: How the Original Hacking Supergroup Might Just Save the World by Joseph Menn

"World Economic Forum" Davos, 4chan, A Declaration of the Independence of Cyberspace, Andy Rubin, Apple II, autonomous vehicles, Berlin Wall, Bernie Sanders, Big Tech, bitcoin, Black Lives Matter, Cambridge Analytica, Chelsea Manning, Citizen Lab, commoditize, corporate governance, digital rights, disinformation, Donald Trump, dumpster diving, Edward Snowden, end-to-end encryption, fake news, Firefox, Gabriella Coleman, Google Chrome, Haight Ashbury, independent contractor, information security, Internet of things, Jacob Appelbaum, Jason Scott: textfiles.com, John Gilmore, John Markoff, John Perry Barlow, Julian Assange, Laura Poitras, machine readable, Mark Zuckerberg, military-industrial complex, Mitch Kapor, Mondo 2000, Naomi Klein, NSO Group, Peter Thiel, pirate software, pre–internet, Ralph Nader, ransomware, Richard Stallman, Robert Mercer, Russian election interference, self-driving car, Sheryl Sandberg, side project, Silicon Valley, Skype, slashdot, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, Stuxnet, tech worker, Whole Earth Catalog, WikiLeaks, zero day

In 2006, Hacktivismo and a Texas cDc Ninja Strike Force member named Steve Topletz released the most popular of the group’s anonymity tools, another try at a protected browser, called Xerobank, or xB. This one was designed to work with Tor, which at that point allowed for computer-to-computer connections, email, and other services but not easy web surfing. This browser was a modified version of Firefox that could work from a USB stick. That meant it could go with a user to a public computer and leave no trace. Once again, by publicly working on a safe browser, Hacktivismo prodded Tor along. Tor released its own browser as part of a bundle, making it far more usable. By 2006, more users were relying on Tor to evade censorship, not to stay anonymous, and China had become the third-largest market, with about ten thousand daily users.

Mudge and his wife Sarah’s Cyber Independent Testing Lab functioned like the labs at Consumer Reports, scanning for the digital equivalent of automatic brakes and seat belts, all without needing access to the source code. With money from DARPA, the Ford Foundation, and others, CITL showed that on a Mac’s then-current operating system, hackers would have a harder time attacking Google’s Chrome browser than Safari or Firefox. Mudge aimed to make a more detailed version of such scores into something like the mandatory nutritional labels on food, telling buyers enough for them to make informed choices that reflect their priorities. Grappling with kidney cancer that brought back his post-traumatic stress disorder, Mudge saw the project through its first year, then handed day-to-day control to Sarah, a fellow veteran of federal contractor BBN.

See Corley, Eric encryption, 19, 66, 78–79, 100, 180, 197, 210 of email, 100, 162, 171–172 end-to-end, 152, 171–172, 193 Encyclopedia Dramatica, 148 Endgame, 121, 177 Enhanced 911 services, 26–28, 114 Erdogan, Recep, 168–169 espionage, 48, 132–135, 154, 181 international, 120, 137, 170–173, 198 by US government, 113–114, 119, 139, 161–162, 176 Esquire (magazine), 18 ethics, 3, 60, 113, 120, 133–134, 146–147, 172 personal codes of, 55, 119, 122–123, 125, 136, 209–212 professional ethics, 200–201, 211 social responsibility, 196, 211 See also moral issues exploits, 33, 57, 78, 119, 122, 133, 164, 167 export controls, 78–79, 155, 164 Facebook, 4–6, 152, 157–158, 190–196, 198–201, 211 Fairbanks, Cassandra, 149 Fanning, Shawn, 43, 47 Farr, Nick, 156–157 FBI, 27–30, 51, 64, 68, 74–75, 78, 148 iPhone access, 122, 165–166, 171–172, 211–212 Russian hacking, 176, 191 See also law enforcement; United States government Fielding, Noel, 147 Fierstein, Alan (Al Bell), 19 Financial Times (newspaper), 147 FinFisher (FinSpy), 163–165 Firefox, 130, 182 firewalls, 84, 104–105, 127, 149 Fisher, Phineas (pseudonym), 165–170, 171, 172 FlexiSpy, 165–166 Ford, Luke, 68 Ford Foundation, 133, 182 4chan, 63, 145–146, 193–194 Fox News, 199–200 Franken Gibe. See Brown, Bill Frauenfelder, Mark, 60 Freedom of the Press Foundation, 150–151, 155 freedoms, protection of of opinion and expression, 101–102, 172 of the press, 19, 27, 150–151, 155 of speech, 146, 157, 171 from unreasonable search and seizure, 27 Freegate, 139 Freitas, Nathan, 130–131, 136 FreqOut.


pages: 275 words: 84,418

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

"World Economic Forum" Davos, Andy Rubin, AOL-Time Warner, Apple II, Ben Horowitz, Benchmark Capital, Big Tech, Bill Atkinson, cloud computing, commoditize, disintermediation, don't be evil, driverless car, Dynabook, Firefox, General Magic , Google Chrome, Google Glasses, Googley, Jeff Hawkins, John Markoff, Jony Ive, Larry Ellison, Marc Andreessen, Mark Zuckerberg, Mary Meeker, Neil Armstrong, Palm Treo, PalmPilot, Peter Thiel, pre–internet, Sheryl Sandberg, Silicon Valley, Silicon Valley startup, Skype, software patent, SpaceShipOne, spectrum auction, Steve Ballmer, Steve Jobs, Steve Wozniak, Steven Levy, stock buybacks, tech worker, Tim Cook: Apple, Tony Fadell, web application, zero-sum game

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.

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: 290 words: 119,172

Beginning Backbone.js by James Sugrue

Airbnb, business logic, 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: backboneAttrs.name('Beginning Backbone.js'); console.log(backboneAttrs.name()); 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 (http://dhruvaray.github.io/spa-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.

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 jsfiddle.net and codepen.io. What Is an Object Anyway? An object is a representation of something in your problem domain that contains a number of attributes.


pages: 629 words: 83,362

Programming TypeScript by Boris Cherny

billion-dollar mistake, bitcoin, business logic, database schema, don't repeat yourself, duck typing, Firefox, functional programming, Internet of things, pull request, source of truth, SQL injection, type inference, web application

Compiling and running TypeScript Steps 1–3 are done by TSC, and steps 4–6 are done by the JavaScript runtime that lives in your browser, NodeJS, or whatever JavaScript engine you’re using. Note JavaScript compilers and runtimes tend to be smushed into a single program called an engine; as a programmer, this is what you’ll normally interact with. It’s how V8 (the engine powering NodeJS, Chrome, and Opera), SpiderMonkey (Firefox), JSCore (Safari), and Chakra (Edge) work, and it’s what gives JavaScript the appearance of being an interpreted language. In this process, steps 1–2 use your program’s types; step 3 does not. That’s worth reiterating: when TSC compiles your code from TypeScript to JavaScript, it won’t look at your types.

If you then release your backend JavaScript program as an open source project, you don’t know which JavaScript version will be supported by your consumers’ JavaScript platforms. The best you can do in a NodeJS environment is declare a range of supported NodeJS versions, but in a browser environment you’re out of luck. If you run your JavaScript in a browser, you have no idea which browser people will use to run it—the latest Chrome, Firefox, or Edge that supports most modern JavaScript features, a slightly outdated version of one of those browsers that’s missing some bleeding-edge functionality, an antiquated browser like Internet Explorer 8, or an embedded browser like the one that runs on the PlayStation 4 in your garage. The best you can do is define a minimum set of features that people’s browsers need to support to run your application, ship polyfills for as many of those features as you can, and try to detect when users are on really old browsers that your app won’t run on and show them a message saying that they need to upgrade.

TSC does not transpile Version Feature ES5 Object getters/setters ES2015 Regex y and u flags ES2018 Regex s flag ESNext BigInt (123n) To set the transpilation target, pop open your tsconfig.json and set the target field to: es3 for ECMAScript 3 es5 for ECMAScript 5 (this is a good default if you’re not sure what to use) es6 or es2015 for ECMAScript 2015 es2016 for ECMAScript 2016 es2017 for ECMAScript 2017 es2018 for ECMAScript 2018 esnext for whatever the most recent ECMAScript revision is For example, to compile to ES5: { "compilerOptions": { "target": "es5" } } lib As I mentioned, there’s one hitch with transpiling your code to older JavaScript versions: while most language features can be safely transpiled (let to var, class to function), you still need to polyfill functionality yourself if your target environment doesn’t support a newer library feature. Some examples are utilities like Promise and Reflect, and data structures like Map, Set, and Symbol. When targeting a bleeding-edge environment like the latest Chrome, Firefox, or Edge, you usually won’t need any polyfills; but if you’re targeting browsers a few versions back—or most NodeJS environments—you will need to polyfill missing features. Thankfully, you won’t need to write polyfills yourself. Instead, you can install them from a popular polyfill library like core-js, or add polyfills to your code automatically by running your typechecked TypeScript code through Babel with @babel/polyfill.


pages: 398 words: 120,801

Little Brother by Cory Doctorow

Aaron Swartz, airport security, Bayesian statistics, Berlin Wall, citizen journalism, Firefox, game design, Golden Gate Park, Haight Ashbury, Internet Archive, Isaac Newton, Jane Jacobs, Jeff Bezos, John Gilmore, John Perry Barlow, mail merge, Mitch Kapor, MITM: man-in-the-middle, Neal Stephenson, RFID, San Francisco homelessness, Sand Hill Road, Silicon Valley, slashdot, Steve Jobs, Steve Wozniak, Thomas Bayes, web of trust, zero day

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. Now I had an indie browser running, I needed an indie network connection. The school's network logged every click in and out of the system, which was bad news if you were planning on surfing over to the Harajuku Fun Madness site for some extra-curricular fun.

I'd been a little hyper-focused on the escape, and hadn't bothered to figure out where we were escaping to. I turned to my SchoolBook and hit the keyboard. The web-browser we used was supplied with the machine. 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.

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.


pages: 960 words: 125,049

Mastering Ethereum: Building Smart Contracts and DApps by Andreas M. Antonopoulos, Gavin Wood Ph. D.

air gap, Amazon Web Services, bitcoin, blockchain, business logic, continuous integration, cryptocurrency, Debian, digital divide, Dogecoin, domain-specific language, don't repeat yourself, Edward Snowden, en.wikipedia.org, Ethereum, ethereum blockchain, fault tolerance, fiat currency, Firefox, functional programming, Google Chrome, information security, initial coin offering, intangible asset, Internet of things, litecoin, machine readable, move fast and break things, node package manager, non-fungible token, peer-to-peer, Ponzi scheme, prediction markets, pull request, QR code, Ruby on Rails, Satoshi Nakamoto, sealed-bid auction, sharing economy, side project, smart contracts, transaction costs, Turing complete, Turing machine, Vickrey auction, Vitalik Buterin, web application, WebSocket

Available for iOS and Android. Browser Wallets A variety of wallets and DApp browsers are available as plug-ins or extensions of web browsers such as Chrome and Firefox. These are remote clients that run inside your browser. Some of the more popular ones are MetaMask, Jaxx, MyEtherWallet/MyCrypto, and Mist. MetaMask MetaMask, introduced in Chapter 2, is a versatile browser-based wallet, RPC client, and basic contract explorer. It is available on Chrome, Firefox, Opera, and Brave Browser. Unlike other browser wallets, MetaMask injects a web3 instance into the browser JavaScript context, acting as an RPC client that connects to a variety of Ethereum blockchains (mainnet, Ropsten testnet, Kovan testnet, local RPC node, etc.).

Fortunately, in general, the more popular a wallet application is, the more trustworthy it is likely to be. Nevertheless, it is good practice to avoid “putting all your eggs in one basket” and have your Ethereum accounts spread across a couple of wallets. The following are some good starter wallets: MetaMask MetaMask is a browser extension wallet that runs in your browser (Chrome, Firefox, Opera, or Brave Browser). It is easy to use and convenient for testing, as it is able to connect to a variety of Ethereum nodes and test blockchains. MetaMask is a web-based wallet. Jaxx Jaxx is a multiplatform and multicurrency wallet that runs on a variety of operating systems, including Android, iOS, Windows, macOS, and Linux.

The ability to inject a web3 instance and act as a gateway to external RPC services makes MetaMask a very powerful tool for developers and users alike. It can be combined, for example, with MyEtherWallet or MyCrypto, acting as a web3 provider and RPC gateway for those tools. Jaxx Jaxx, which was introduced as a mobile wallet in the previous section, is also available as a Chrome and Firefox extension and as a desktop wallet. MyEtherWallet (MEW) MyEtherWallet is a browser-based JavaScript remote client that offers: A software wallet running in JavaScript A bridge to popular hardware wallets such as the Trezor and Ledger A web3 interface that can connect to a web3 instance injected by another client (e.g., MetaMask) An RPC client that can connect to an Ethereum full client A basic interface that can interact with smart contracts, given a contract’s address and application binary interface (ABI) MyEtherWallet is very useful for testing and as an interface to hardware wallets.


pages: 184 words: 46,395

The Choice Factory: 25 Behavioural Biases That Influence What We Buy by Richard Shotton

active measures, behavioural economics, call centre, cashless society, cognitive dissonance, Daniel Kahneman / Amos Tversky, data science, David Brooks, Estimating the Reproducibility of Psychological Science, Firefox, framing effect, fundamental attribution error, Goodhart's law, Google Chrome, Kickstarter, loss aversion, nudge unit, Ocado, placebo effect, price anchoring, principal–agent problem, Ralph Waldo Emerson, replication crisis, Richard Feynman, Richard Thaler, Robert Shiller, Rory Sutherland, TED Talk, Veblen good, When a measure becomes a target, World Values Survey

He analysed data from 50,000 people who his recruitment software company had helped find jobs and discovered that browser choice accurately predicted their performance. People who opted for a non-default browser, like Chrome or Firefox, lasted 15% longer in their jobs than those with a default browser, like Internet Explorer. Housman attributed the difference to the fact that choosing Chrome or Firefox was an active decision – those workers were taking the effort to find a better browsing solution than the one pre-installed on their PC. That identified them as someone who wasn’t content with the default. What’s the marketing application?


Making Globalization Work by Joseph E. Stiglitz

"World Economic Forum" Davos, affirmative action, Alan Greenspan, Andrei Shleifer, Asian financial crisis, banking crisis, barriers to entry, benefit corporation, Berlin Wall, blood diamond, business process, capital controls, carbon tax, 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, Garrett Hardin, Gini coefficient, global reserve currency, Global Witness, Great Leap Forward, 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, Jones Act, Kenneth Arrow, Kenneth Rogoff, low interest rates, low skilled workers, manufacturing employment, market fundamentalism, Martin Wolf, microcredit, moral hazard, negative emissions, new economy, 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, Seymour Hersh, Silicon Valley, special drawing rights, statistical model, the market place, The Wealth of Nations by Adam Smith, Thomas L Friedman, trade liberalization, Tragedy of the Commons, trickle-down economics, union organizing, Washington Consensus, zero-sum game

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. 22.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 AOL’s Netscape division. (More information available at www.mozilla.org.) 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,” ComputerWeekly.com, April 5, 2006, at www.computerweekly.com/Articles/2006/04/05/215224/Firefoxreachesonein ten.htm. 23.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.

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.22 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.


Nagios: System and Network Monitoring by Wolfgang Barth

Chuck Templeton: OpenTable:, Debian, en.wikipedia.org, Firefox, RFC: Request For Comment, web application

The definition of a corresponding command object and its use as a service is no different from that based on other plugins; page 102 shows an example. 6.4.3 Monitoring Web proxies Proxy test with check_http A proxy such as Squid can also be tested with check_http, but this assumes that you have some knowledge of how a browser makes contact with the proxy. It does this in the form of an HTTP header: GET http://www.swobspace.de/ HTTP/1.1 Host: www.swobspace.de User-Agent: Mozilla/5.0 (X11; U; Linux i686; de-DE; rv:1.7.5) Gecko/20041108 Firefox/1.0 9 This can be checked in the shell with echo $?. 101 6 Plugins for Network Services Accept: text/xml,application/xml,application/xhtml+xml,... Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-15,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Proxy-Connection: keep-alive Pragma: no-cache Cache-Control: no-cache The decisive entries are printed in bold type.

A VRML-capable browser is necessary for the display.10 Although the original documentation11 provides links to the corresponding plug-ins, two of them are out 10 11 The Virtual Reality Markup Language (VRML), version 2.0/1997, is used to describe the virtual “space.” /usr/local/nagios/share/docs/cgis.html#statuswrl_cgi 293 16 The Web Interface of date, and only Cortona12 could be reached at the time of going to press. This plugin does not work under Linux, however; in Windows it works with Internet Explorer, and also with Netscape, Mozilla, and Firefox.13 Of the VRML plugins for Linux (three well-known projects are OpenVRML,14 freeWRL,15 and vrwave16 ) the standard Linux distributions usually do not include a finished package, so you are dependent on external packages. There are binary RPM packages for OpenVRML, but the current (at the time of going to press) version 0.15.9 needs the very newest libc and cannot therefore even be installed in SuSE Linux 9.3.

There are binary RPM packages for OpenVRML, but the current (at the time of going to press) version 0.15.9 needs the very newest libc and cannot therefore even be installed in SuSE Linux 9.3. 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. Figure 16.28: This picture marks the beginning of the tour through your own network But all of this is no reason to despair, since the use of 3D navigation is questionable anyway, especially as the 2D view of the normal status map displays all the information required, and displaying simple flat graphics in the browser takes up considerably less time than CPU-intensive 3D rendering.


pages: 287 words: 92,194

Sex Power Money by Sara Pascoe

Albert Einstein, call centre, Donald Trump, fake news, Firefox, gender pay gap, invention of movable type, Louis Daguerre, meta-analysis, Neil Kinnock, Ocado, phenotype, Russell Brand, TED Talk, telemarketer, twin studies, zero-sum game

I sat on a sofa across from where Adam was already snoring and opened his computer. As I attached headphones, the desktop loaded, replete with just two icons. One was the browser Firefox chasing his tail. The other was a close-up of male genitals, squashed into a square and competing with the entire internet for my attention. That was it, not even a shortcut to iTunes. This was all that Adam needed at his fingertips, a host browser and a cube of testicles. Which one do you think I clicked? BALLS, you followed your heart and it led to a scrotum as always. FIREFOX was the one you didn’t click on. You’re correct, otherwise this would be a boring story. ‘Hey guys, a decade ago I saw a weird icon on my boyfriend’s computer, then I watched two hours of Curb Your Enthusiasm, bye.’

There was some mild farce as I hurried the disc back in and it unhelpfully restarted. I did not have a useful thought. I knew I was encroaching on Adam’s private business. I was expecting him to wake up and shout at me. I tried to correct everything by doing what I should’ve done in the first place. I clicked on Firefox and OH DEAR. The page that loaded was the one that’d been visited most recently. This website was a menu of sex workers and the services they offered. The agency or collective was called Shemale Escorts and Ladyboys. These terms have historically been used in a catch-all, non-specific way to refer to people who might be transitioning, transitioned, transvestite, transsexual, a drag queen or even hermaphrodite.


The Internet Trap: How the Digital Economy Builds Monopolies and Undermines Democracy by Matthew Hindman

A Declaration of the Independence of Cyberspace, accounting loophole / creative accounting, activist fund / activist shareholder / activist investor, AltaVista, Amazon Web Services, barriers to entry, Benjamin Mako Hill, bounce rate, business logic, Cambridge Analytica, cloud computing, computer vision, creative destruction, crowdsourcing, David Ricardo: comparative advantage, death of newspapers, deep learning, DeepMind, digital divide, discovery of DNA, disinformation, Donald Trump, fake news, fault tolerance, Filter Bubble, Firefox, future of journalism, Ida Tarbell, incognito mode, informal economy, information retrieval, invention of the telescope, Jeff Bezos, John Perry Barlow, John von Neumann, Joseph Schumpeter, lake wobegon effect, large denomination, longitudinal study, loose coupling, machine translation, Marc Andreessen, Mark Zuckerberg, Metcalfe’s law, natural language processing, Netflix Prize, Network effects, New Economic Geography, New Journalism, pattern recognition, peer-to-peer, Pepsi Challenge, performance metric, power law, price discrimination, recommendation engine, Robert Metcalfe, search costs, selection bias, Silicon Valley, Skype, sparse data, speech recognition, Stewart Brand, surveillance capitalism, technoutopianism, Ted Nelson, The Chicago School, the long tail, The Soul of a New Machine, Thomas Malthus, web application, Whole Earth Catalog, Yochai Benkler

As Hölzle puts it, “We have one simple rule to support this Gospel of Speed: Don’t launch features that slow us down. You might invent a great new feature, but if it slows down search, you either have to forget it, fix it, or come up with another change that more than offsets the slowdown.”36 Google has even created its own web browser, Chrome, which has surpassed Firefox and Microsoft Edge (previously Internet Explorer) in market share. Part of the motivation was to collect more user information for A Tilted Playing Field • 25 targeting ads and content. But according to Google’s public statements, the single biggest reason for building Chrome was, again, speed—particularly faster speed with complex interactive websites.

Robert, 86, 199n15 fiber optic cables, 2, 22 Filter Bubble, The (Pariser), 39, 48, 52–53 filters: algorithmic, 39, 43, 48, 54, 60; collaborative, 43, 54–55; nature of internet and, 170, 177; personalization and, 39, 43, 48, 52–55, 60; root mean-squared error (RMSE) and, 43–44, 47–48, 50; tilted playing field and, 19. See also recommendation systems Financial Times, 138 Firefox, 24 firewalls, 177 Forbes, 36 Fox News, 32, 72, 75 Friedman, Milton, 167 Fullerton, Lindsay, 31 Gannett, 139 Gates, Bill, 203n23 Gawker, 168 GCHQ, 176 General Electric, 9, 86 General Motors, 68 Gmail, 21, 23 Goldberg, Adam, 35 Google: Accelerated Mobile Platform (AMP) and, 80, 144, 179; advantages in computing scale and, 23–24; advertising and, 68–69; Android and, 18, 27, 143, 168; antitrust and, 173–75; App Engine/Compute Engine and, 153; attention economy and, 1–4, 8–9, 12, 193n1; Big Table and, 21; Borg and, 21, 23; branding and, 31–32; Caffeine and, 21; 230 • Index Google (cont.)

., 1 root mean-squared error (RMSE), 43–44, 47–48, 50 Rosen, Jay, 12 Rosenstiel, Tom, 160 routers, 22 Russia, 177–78 Safari, 145, 176 Sawzall, 27 Schifferes, Steve, 39 Schmidt, Eric, 37, 147 Schultz, Carsten, 31 Schumpter, Joseph, 84, 162, 164 search costs, 8; algorithms and, 41–43; auctions and, 42; black box problem and, 52; economic geography and, 63, 72–74; markets and, 41–42; methodology and, 181–82; nature of internet and, 168; personalization and, 30, 34, 37, 41–43; price dispersion and, 42; recommendation systems and, 49; time and, 42 search engines: attention economy and, 1–3, 8, 13; Chrome and, 24–25, 145; competition and, 1; digital content production and, 79–80; economic geography and, 64, 79–81; Edge Internet and, 24; Firefox and, 24; hackers and, 177–78; news and, 168, 174, 177; overlap and, 31–32; page views and, 24, 87, 106, 108–18, 121, 125–29, 151, 157, 160–61, 188–89, 200n18; Safari and, 145, 176; speed and, 1–2, 21–25, 30, 54, 81–82, 147–48, 166–67, 170, 190; tilted playing field and, 17, 24, 30–32; traffic and, 101.


pages: 309 words: 54,839

Attack of the 50 Foot Blockchain: Bitcoin, Blockchain, Ethereum & Smart Contracts by David Gerard

altcoin, Amazon Web Services, augmented reality, Bernie Madoff, bitcoin, Bitcoin Ponzi scheme, blockchain, Blythe Masters, Bretton Woods, Californian Ideology, clean water, cloud computing, collateralized debt obligation, credit crunch, Credit Default Swap, credit default swaps / collateralized debt obligations, cryptocurrency, distributed ledger, Dogecoin, Dr. Strangelove, drug harm reduction, Dunning–Kruger effect, Ethereum, ethereum blockchain, Extropian, fiat currency, financial innovation, Firefox, Flash crash, Fractional reserve banking, functional programming, index fund, information security, initial coin offering, Internet Archive, Internet of things, Kickstarter, litecoin, M-Pesa, margin call, Neal Stephenson, Network effects, operational security, peer-to-peer, Peter Thiel, pets.com, Ponzi scheme, Potemkin village, prediction markets, quantitative easing, RAND corporation, ransomware, Ray Kurzweil, Ross Ulbricht, Ruby on Rails, Satoshi Nakamoto, short selling, Silicon Valley, Silicon Valley ideology, Singularitarianism, slashdot, smart contracts, South Sea Bubble, tulip mania, Turing complete, Turing machine, Vitalik Buterin, WikiLeaks

When they temporarily switched off the option for maintenance in September 2014, they received “about 30 emails from people asking for it to be reinstalled, which is odd because that’s more people than have actually used the feature.”220 Automattic, the company that develops blogging software WordPress, offered Bitcoin in November 2012 to allow paid wordpress.com upgrades for users without access to PayPal or credit cards. They withdrew the option in February 2015, noting it was only used approximately twice a week.221 The Mozilla Foundation, the charity that develops the Firefox web browser, began accepting Bitcoin donations for their end of 2014 campaign. This wasn’t good enough for the advocates: they demanded Mozilla include Bitcoin prominently on the primary donation page! With millions of page views, it was quite easy to run an A/B test, where you serve a different version of the page to a fraction of the viewers and can directly compare the effects of the two versions.

Strangelove 101 Dread Pirate Roberts 49 DRM 123, 124, 127, 135, 136 e-Gold 18, 62, 72 Early, Steve 78 economies of scale 25, 58 Economist, The 37, 66 eDonkey 45 EITC 68 Electrum wallet 66 EOS 98 ERC-20 97 ether 94 Ethereum 72, 88, 94, 106, 116, 129, 136 Ethereum Classic 110 Ethereum Foundation 109, 136 Ethereum Virtual Machine 106 F-Secure 73 Facebook 113 Fair Music: Transparency and Payment Flows in the Music Industry 128 Falkvinge, Rick 38 Far Wilds, The 45 Fast Internet Bitcoin Relay Engine 58 FBI MoneyPak 73 Featured Artists Coalition 130 fees 26, 69 FIBRE 58 Fields Medal 96 Finney, Hal 20, 31, 59 Firefox 76 Folding@Home 91 Foldingcoin 91 Force, Carl Mark IV 53 Forrest, Katherine B. 53 FPGA 56 Francis, Ryan 93 Frank, Anne 48 Free Talk Live 37, 50 FreeRoss.org 53 Freicoin 91 Frosty 51 Frou Frou 129 Funke Kupper, Elmer 121 Fusion 65 Future of Bitcoin Conference 68 Garzik, Jeff 50 gas 94 Gawker 37, 50 GDAX 82 Gentle, Ryan 93 GHash.io 58 Gibson, William 19 Gini coefficient 30 Git 112, 122 Gizmodo 64 Global Repertoire Database 128, 134 Gnosis 98 gold bug 20 gold standard 20 Golem 98 Golumbia, David 141 Goodman, Leah McGrath 64 Google 127 GovernMental 107 GPU 55 GQ 66 Great Depression 20 Greece 32 Green, Alex 93 Greenberg, Andy 64 Grigg, Ian 62 Gupta, Vinay 129 halting problem 110 hash 13 Hashcash 19 Hearn, Mike 65 high-yield investment program 38, 40 Hoppe, Hans-Herman 24 hot wallet 12 Hotwire PE 63 Huobi 82 Hyperledger 113, 121, 122 IBM 113, 115, 121, 122 IBM Blockchain 122 ICO 88, 95, 97, 139 Iconomi 98 immutability 11, 105 Imogen Heap 129 Individual Pubs 78 Industrialisation of Distributed Ledger Technology in Banking and Financial Services 115 Initial Coin Offering 88, 97 Initial Crowdfunding Offering 97 Intel 123 Intel® Software Guard Extensions™ 123 InterPlanetary File System 131, 135 IPFS 131 iTunes 129. 130, 131 Jamaican bobsled team 93 JASRAC 126 JavaScript 107 John Birch Society 17, 21 Kaminska, Izabella 141 Karpelès, Mark 45, 52, 87 Kennedy, Ryan 93 Kenya 93 key 12 King of the Ether 106 Kleiman, Dave 64 Know Your Customer 81 Kobalt 126 Kraken 44 Kurzweil, Ray 137 KYC/AML 81, 87 Larimer, Danny 98 Ledger Labs Inc 86 Lestak, Robert 76 Levine, Matt 104, 117, 141 Li, Xiaolai 99 libertarianism 17 Liberty Reserve 18, 72 Lightning Network 28, 70 Litecoin 32, 92 LocalBitcoins 32, 81, 93 log.txt 51 London Review of Books 64 Lubin, Joseph 136 LulzSec 62 M-Pesa 29 MacGregor, Robert 63 Mackay, Charles 35, 141 Madoff, Bernie 38 Magic: The Gathering Online Exchange 45 MagicalTux 45 Making Blockchain Ready for Business 113 Malmi, Martti 35, 45 margin trading 42, 83 Markus bot 82 Mason, Nick 132 Mastercard 36 Masters, Blythe 122 Matonis, Jon 66 Matthews, Stefan 63 May, Tim 19 McCaleb, Jed 45 Meharry, Mark 125 Memory Dealers 37 mempool 70 Merkle tree 13, 112 micropayment 26 Microsoft 95, 107, 122 miner 13 mining 14, 55 Mintpal 93 Mises, Ludwig von 23, 49 mixer 26, 84 MMM 82 Mochizuki, Shinichi 59 Monero 72, 74 MoneyPak 73 Moolah 93 Mozilla 76 MP3 127 Mr.


pages: 153 words: 52,175

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

en.wikipedia.org, Firefox, Google Earth, mail merge, off-the-grid, pre–internet, profit motive, social bookmarking, social software, software patent, web application

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.

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 http://isc.sans.org/survivaltime.html. 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 Gootodo.com 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.


pages: 960 words: 140,978

Android Cookbook by Ian F. Darwin

crowdsourcing, Debian, en.wikipedia.org, Firefox, full text search, openstreetmap, QR code, social software, web application

. * The appropriate angles are calculated */ var pie1 = new RGraph.Pie('pie1', [41,37,16,3,3]); // Create the pie object pie1.Set('chart.labels', ['MSIE 7 (41%)', 'MSIE 6 (37%)', 'Firefox (16%)', 'Safari (3%)', 'Other (3%)']); pie1.Set('chart.gutter', 30); pie1.Set('chart.title', "Browsers (tooltips, context, zoom)"); pie1.Set('chart.shadow', false); pie1.Set('chart.tooltips.effect', 'contract'); pie1.Set('chart.tooltips', [ 'Internet Explorer 7 (41%)', 'Internet Explorer 6 (37%)', 'Mozilla Firefox (16%)', 'Apple Safari (3%)', 'Other (3%)' ] ); pie1.Set('chart.highlight.style', '3d'); // 2d or 3d; defaults to 3d anyway if (!RGraph.isIE8()) { pie1.Set('chart.zoom.hdir', 'center'); pie1.Set('chart.zoom.vdir', 'up'); pie1.Set('chart.labels.sticks', true); pie1.Set('chart.labels.sticks.color', '#aaa'); pie1.Set('chart.contextmenu', [['Zoom in', RGraph.Zoom]]); } pie1.Set('chart.linewidth', 5); pie1.Set('chart.labels.sticks', true); pie1.Set('chart.strokestyle', 'white'); pie1.Draw(); var pie2 = new RGraph.Pie('pie2', [2,29,45,17,7]); // Create the pie object pie2.Set('chart.gutter', 45); pie2.Set('chart.title', "Some data (context, annotatable)"); pie2.Set('chart.linewidth', 1); pie2.Set('chart.strokestyle', '#333'); pie2.Set('chart.shadow', true); pie2.Set('chart.shadow.blur', 3); pie2.Set('chart.shadow.offsetx', 3); pie2.Set('chart.shadow.offsety', 3); pie2.Set('chart.shadow.color', 'rgba(0,0,0,0.5)'); pie2.Set('chart.colors', ['red', 'pink', '#6f6', 'blue', 'yellow']); pie2.Set('chart.contextmenu', [['Clear', function () {RGraph.Clear(pie2.canvas); pie2.Draw();}]]); pie2.Set('chart.key', ['John (2%)', 'Richard (29%)', 'Fred (45%)', 'Brian (17%)', 'Peter (7%)']); pie2.Set('chart.key.background', 'white'); pie2.Set('chart.key.shadow', true); pie2.Set('chart.annotatable', true); pie2.Set('chart.align', 'left'); pie2.Draw(); } </script> </head> <body> <div style="text-align: center"> <canvas id="pie1" width="420" height="300">[No canvas support]</canvas> <canvas id="pie2" width="440" height="300">[No canvas support]</canvas> </div> </body> </html> Figure 6-21.

Those who do not want to follow the tutorial can obtain the image from http://openclipart.org, a great source (more than 33,000) of free images (see Figure 6-7). Search for “coffee” and you will see various coffee-related images, including the one shown in Figure 6-6, uploaded by this recipe’s author. Click on the image, select the View SVG button, and use the browser’s File→Save Page As (Firefox) or File→Save As (Internet Explorer) menu. Figure 6-7. Searching for the perfect cup The four required icon sizes are generated from the image using the Inkscape Export Bitmap option. The image is opened and correctly proportioned for the export. This can be done for any image designed or opened in Inkscape.

Clip art search results I chose the graphic titled “A simple globe” as the basis for the icon from the second page of search results. Click on the graphic to bring up its details. You can save the graphic to the local machine by clicking on it (or click on the View SVG button) and using the browser’s File menu. In Firefox, select Save Page As and select its location. In Internet Explorer, select “Save as…”; alternatively, both browsers support Ctrl-S. This will save the file as a vector file, which, as we discussed earlier, is not a good format for an icon. Fortunately, the image’s Open Clip Art page also has an option to obtain the file as a PNG file.


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, algorithmic bias, Amazon Mechanical Turk, Andy Kessler, barriers to entry, behavioural economics, book scanning, Brewster Kahle, Burning Man, c2.com, call centre, Cass Sunstein, citizen journalism, Citizen Lab, Clayton Christensen, clean water, commoditize, commons-based peer production, corporate governance, Daniel Kahneman / Amos Tversky, digital divide, disruptive innovation, distributed generation, en.wikipedia.org, end-to-end encryption, Firefox, folksonomy, Free Software Foundation, game design, Hacker Ethic, Howard Rheingold, Hush-A-Phone, illegal immigration, index card, informal economy, information security, Internet Archive, jimmy wales, John Markoff, John Perry Barlow, license plate recognition, loose coupling, mail merge, Morris worm, national security letter, old-boy network, One Laptop per Child (OLPC), OSI model, packet switching, peer-to-peer, post-materialism, pre–internet, price discrimination, profit maximization, radical decentralization, 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 Cathedral and the Bazaar, the long tail, The Nature of the Firm, The Wisdom of Crowds, Tragedy of the Commons, web application, wikimedia commons, Yochai Benkler, 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.

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.

See Netscape Public License: Version 1.0, http://www.mozilla.org/MPL/NPL-1.0.html (last visited May 16, 2007); see also NETSCAPE, NETSCAPE COMMUNICATOR OPEN SOURCE CODE WHITE PAPER (2000), available at http://wp.netscape.com/ 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 OpenOfEce.org, a set of freely available Microsoft Office—style applications, which is based on proprietary code released by its owners, Sun. Users continue to develop OpenOfEce.org, which is freely available, while Sun markets the “StarOffice Office Suite,” a “professional office productivity solution based on OpenOfEce.org that provides enterprise value-add components including administration tools, commercial quality spellchecker and relational database.”


pages: 696 words: 111,976

SQL Hacks by Andrew Cumming, Gordon Russell

Apollo 13, bioinformatics, book value, business intelligence, business logic, business process, database schema, en.wikipedia.org, Erdős number, Firefox, full text search, Hacker Conference 1984, Hacker Ethic, leftpad, Paul Erdős, SQL injection, Stewart Brand, web application

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.

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.

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: 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, company town, 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, John Gilmore, John Perry Barlow, Joi Ito, Julian Assange, Justin.tv, Kevin Kelly, linear programming, Marc Andreessen, Mitch Kapor, moral panic, offshore financial centre, pets.com, 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, the long tail, 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 flyonthewall.com 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: 459 words: 103,153

Adapt: Why Success Always Starts With Failure by Tim Harford

An Inconvenient Truth, Andrew Wiles, banking crisis, Basel III, behavioural economics, Berlin Wall, Bernie Madoff, Black Swan, Boeing 747, business logic, car-free, carbon footprint, carbon tax, 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, disruptive innovation, double entry bookkeeping, Edmond Halley, en.wikipedia.org, Erik Brynjolfsson, experimental subject, Fall of the Berlin Wall, Fermat's Last Theorem, financial engineering, Firefox, food miles, Gerolamo Cardano, global supply chain, Great Leap Forward, Herman Kahn, 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, SpaceShipOne, special economic zone, spectrum auction, Steve Jobs, supply-chain management, tacit knowledge, the market place, The Wisdom of Crowds, too big to fail, trade route, Tyler Cowen, Tyler Cowen: Great Stagnation, Virgin Galactic, web application, X Prize, zero-sum game

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.

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: 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

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: 37 words: 10,757

Help for Women With ADHD: My Simple Strategies for Conquering Chaos by Joan Wilder

crowdsourcing, Firefox, impulse control, index card, TED Talk

Dozens of lovely, guided, mindfulness meditation talks. Tara is the founder of Insight Meditation outside Washington, D.C. and is also a therapist. (You can also put this site on your smart phone.) StayFocused. A Chrome browser extension that blocks specific sites on a schedule or all at once. LeechBlock. A Mozilla Firefox browser add-on that blocks specific sites on a schedule or all at once. About The Author As a freelance journalist, Joan Wilder has written hundreds of articles that run the gamut from the hardest of hard news stories – fires, kidnappings, politics – to the most narrative of non-fiction features: travel stories, essays, columns, and profiles.


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, cognitive load, crowdsourcing, data science, Edward Snowden, Firefox, Google Glasses, hive mind, income inequality, Internet of things, John von Neumann, meta-analysis, Nate Silver, new economy, Nick Bostrom, Panopticon Jeremy Bentham, 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, Twitter Arab Spring, WikiLeaks

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 Academia.edu.


pages: 210 words: 63,879

Cold Hands by John J. Niven

centre right, Firefox, gentrification, 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 . . .

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.


pages: 292 words: 66,588

Learning Vue.js 2: Learn How to Build Amazing and Complex Reactive Web Applications Easily With Vue.js by Olga Filipova

Amazon Web Services, business logic, continuous integration, create, read, update, delete, en.wikipedia.org, Firefox, Google Chrome, leftpad, MVC pattern, pull request, side project, single page application, single source of truth, Skype, source of truth, web application

The commands sent to the Selenium server can be performed in tons of different ways and languages. There are a lot of existing implementations and frameworks that allow you to call selenium commands with couple lines of code: You can use the native Selenium's framework for Java ( http://seleniumhq.github.io/selenium/docs/api/java/ ) You can use the Firefox plugin for browsers ( https://addons.mozilla.org/en-us/firefox/addon/selenium-ide/ ) You can use Selenide, which is yet another implementation for Java but a lot easier to use than Selenium's framework ( http://selenide.org/ ) If you are an AngularJS developer, you can use Protractor, which is a very nice e2e test framework for AngularJS applications that also uses the Selenium webdriver ( http://www.protractortest.org/ ) In our case, we will use Nightwatch, which is a nice and very easy-to-use testing framework to call Selenium's commands using JavaScript.


pages: 349 words: 114,038

Culture & Empire: Digital Revolution by Pieter Hintjens

4chan, Aaron Swartz, airport security, AltaVista, anti-communist, anti-pattern, barriers to entry, Bill Duvall, bitcoin, blockchain, Boeing 747, bread and circuses, business climate, business intelligence, business process, Chelsea Manning, clean water, commoditize, congestion charging, Corn Laws, correlation does not imply causation, cryptocurrency, Debian, decentralized internet, disinformation, Edward Snowden, failed state, financial independence, Firefox, full text search, gamification, German hyperinflation, global village, GnuPG, Google Chrome, greed is good, Hernando de Soto, hiring and firing, independent contractor, informal economy, intangible asset, invisible hand, it's over 9,000, James Watt: steam engine, Jeff Rulifson, Julian Assange, Kickstarter, Laura Poitras, M-Pesa, mass immigration, mass incarceration, mega-rich, military-industrial complex, MITM: man-in-the-middle, mutually assured destruction, Naomi Klein, national security letter, Nelson Mandela, new economy, New Urbanism, no silver bullet, Occupy movement, off-the-grid, offshore financial centre, packet switching, patent troll, peak oil, power law, pre–internet, private military company, race to the bottom, real-name policy, rent-seeking, reserve currency, RFC: Request For Comment, Richard Feynman, Richard Stallman, Ross Ulbricht, Russell Brand, 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, twin studies, union organizing, wealth creators, web application, WikiLeaks, Y2K, zero day, Zipf's Law

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.


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, Big Tech, British Empire, business process, Californian Ideology, Charles Babbage, conceptual framework, create, read, update, delete, crowdsourcing, don't repeat yourself, Donald Knuth, East Village, European colonialism, finite state, Firefox, Flash crash, functional programming, glass ceiling, Grace Hopper, Hacker News, haute couture, hype cycle, 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, synthetic biology, tech worker, the Cathedral and the Bazaar, theory of mind, Therac-25, Turing machine, wikimedia commons, women in the workforce

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.


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, fail fast, Firefox, fizzbuzz, Ford Model T, future of work, game design, gamification, Google Chrome, gravity well, Hacker News, 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, systems thinking, TED Talk, Tragedy of the Commons, web application, Y Combinator, zero-sum game

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.

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.


pages: 378 words: 67,804

Learning Android by Marko Gargenta

business logic, create, read, update, delete, database schema, Firefox, loose coupling, slashdot, SQL injection, web application

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: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.


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

Alan Greenspan, assortative mating, call centre, clean water, commoditize, company town, 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, insecure affluence, It's morning again in America, Jane Jacobs, Joan Didion, John Maynard Keynes: Economic Possibilities for our Grandchildren, knowledge economy, knowledge worker, labor-force participation, late capitalism, low interest rates, low skilled workers, manufacturing employment, mass immigration, McMansion, Michael Shellenberger, mortgage tax deduction, new economy, off grid, oil shock, PageRank, Paradox of Choice, Ponzi scheme, positional goods, post-industrial society, post-materialism, principal–agent problem, recommendation engine, Richard Florida, rolodex, Ronald Reagan, Silicon Valley, Skype, statistical model, Ted Nordhaus, The Death and Life of Great American Cities, The Great Moderation, the long tail, the strength of weak ties, The Wealth of Nations by Adam Smith, Thomas Malthus, Thorstein Veblen, Tragedy of the Commons, 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.

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?


pages: 272 words: 64,626

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

23andMe, Abraham Maslow, Alan Greenspan, Andy Kessler, bank run, barriers to entry, Bear Stearns, behavioural economics, Berlin Wall, Bob Noyce, bread and circuses, British Empire, business cycle, business process, California gold rush, carbon credits, carbon footprint, Cass Sunstein, cloud computing, collateralized debt obligation, collective bargaining, commoditize, computer age, Cornelius Vanderbilt, creative destruction, disintermediation, Douglas Engelbart, Dutch auction, 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, junk bonds, Kickstarter, knowledge economy, knowledge worker, Larry Ellison, libertarian paternalism, low skilled workers, Mark Zuckerberg, McMansion, Michael Milken, Money creation, Netflix Prize, packet switching, personalized medicine, pets.com, 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, vertical integration, 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.

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: 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 logic, business process, cellular automata, cloud computing, cognitive load, commoditize, complexity theory, conceptual framework, continuous integration, data acquisition, Dennis Ritchie, domain-specific language, Douglas Hofstadter, Fellow of the Royal Society, finite state, Firefox, follow your passion, Frank Gehry, functional programming, general-purpose programming language, Guido van Rossum, higher-order functions, history of Unix, HyperCard, industrial research laboratory, information retrieval, information security, iterative process, Ivan Sutherland, John von Neumann, Ken Thompson, Larry Ellison, Larry Wall, linear programming, loose coupling, machine readable, machine translation, Mars Rover, millennium bug, Multics, NP-complete, Paul Graham, performance metric, Perl 6, QWERTY keyboard, RAND corporation, randomized controlled trial, Renaissance Technologies, Ruby on Rails, Sapir-Whorf hypothesis, seminal paper, Silicon Valley, slashdot, software as a service, software patent, sorting algorithm, SQL injection, 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.

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.

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.


pages: 1,201 words: 233,519

Coders at Work by Peter Seibel

Ada Lovelace, Bill Atkinson, bioinformatics, Bletchley Park, Charles Babbage, cloud computing, Compatible Time-Sharing System, Conway's Game of Life, Dennis Ritchie, domain-specific language, don't repeat yourself, Donald Knuth, fallacies of distributed computing, fault tolerance, Fermat's Last Theorem, Firefox, Free Software Foundation, functional programming, George Gilder, glass ceiling, Guido van Rossum, history of Unix, HyperCard, industrial research laboratory, information retrieval, Ken Thompson, L Peter Deutsch, Larry Wall, loose coupling, Marc Andreessen, Menlo Park, Metcalfe's law, Multics, no silver bullet, 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, systems thinking, the scientific method, Therac-25, Turing complete, Turing machine, Turing test, type inference, Valgrind, web application

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.

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.

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.


pages: 651 words: 186,130

This Is How They Tell Me the World Ends: The Cyberweapons Arms Race by Nicole Perlroth

4chan, active measures, activist lawyer, air gap, Airbnb, Albert Einstein, Apollo 11, barriers to entry, Benchmark Capital, Bernie Sanders, Big Tech, bitcoin, Black Lives Matter, blood diamond, Boeing 737 MAX, Brexit referendum, Brian Krebs, Citizen Lab, cloud computing, commoditize, company town, coronavirus, COVID-19, crony capitalism, crowdsourcing, cryptocurrency, dark matter, David Vincenzetti, defense in depth, digital rights, disinformation, don't be evil, Donald Trump, driverless car, drone strike, dual-use technology, Edward Snowden, end-to-end encryption, failed state, fake news, false flag, Ferguson, Missouri, Firefox, gender pay gap, George Floyd, global pandemic, global supply chain, Hacker News, index card, information security, Internet of things, invisible hand, Jacob Appelbaum, Jeff Bezos, John Markoff, Ken Thompson, Kevin Roose, Laura Poitras, lockdown, Marc Andreessen, Mark Zuckerberg, mass immigration, Menlo Park, MITM: man-in-the-middle, moral hazard, Morris worm, move fast and break things, mutually assured destruction, natural language processing, NSO Group, off-the-grid, offshore financial centre, open borders, operational security, Parler "social media", pirate software, purchasing power parity, race to the bottom, RAND corporation, ransomware, Reflections on Trusting Trust, rolodex, Rubik’s Cube, Russian election interference, Sand Hill Road, Seymour Hersh, Sheryl Sandberg, side project, Silicon Valley, Skype, smart cities, smart grid, South China Sea, Steve Ballmer, Steve Bannon, Steve Jobs, Steven Levy, Stuxnet, supply-chain attack, TED Talk, the long tail, the scientific method, TikTok, Tim Cook: Apple, undersea cable, unit 8200, uranium enrichment, web application, WikiLeaks, zero day, Zimmermann PGP

The price of a zero-day fluctuated based on the software it exploited. At the bottom of the heap, a zero-day that could take over routers or USB sticks that an operator had physical access to, would net low five figures. Just above those were zero-days that could remotely exploit Adobe PDF software, Safari and Firefox browsers, or Microsoft applications like Word and Excel. Higher up the chain were $100,000 to $250,000 exploits that could remotely hack Microsoft’s email products and Windows software. Time constraints also played a factor. When his buyers needed to exploit something now—say a terrorist’s mobile phone, an Iranian nuclear scientist’s computer, or Russia’s embassy in Kyiv—his buyers would shell out $500,000 to $1 million for a zero-day they might otherwise pay $250,000 for.

It was not the first time a tech company had paid hackers for bugs. Years before iDefense, in 1995, Netscape started paying tiny sums to those who turned over flaws in its Netscape Navigator browser. That inspired Mozilla to do the same, doling out a few hundred bucks to hackers who found serious holes in its Firefox browser in 2004. But Google’s program upped the ante. Google started offering to pay hackers who found bugs in Chromium, the open-source code behind Google’s Chrome web browser. Just like iDefense, the first bugs Google paid for were crap. But as word spread that Google was serious, the company started getting more critical bug submissions.

Every year, hackers from around the world descended on Vancouver to hack software and hardware for cash prizes and free devices in the Pwn2Own hacking contest at the CanSecWest conference—the top-paying hacking competition in the world. In the contest’s earliest days, hackers vied to break into Safari, Firefox, and Internet Explorer in the shortest time possible. As smartphones became ubiquitous, top prizes were awarded to those who could hack iPhones and BlackBerries. In 2012 the system to beat was Google’s Chrome browser. Three teams of hackers broke into Chrome that year. But only two received Google’s cash prize.


pages: 313 words: 75,583

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

Abraham Maslow, AGPL, Amazon Web Services, cloud computing, continuous integration, database schema, Debian, defense in depth, DevOps, fault tolerance, Firefox, full text search, Google Chrome, inventory management, loose coupling, microservices, Minecraft, MITM: man-in-the-middle, punch-card reader, 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: 296 words: 78,631

Hello World: Being Human in the Age of Algorithms by Hannah Fry

23andMe, 3D printing, Air France Flight 447, Airbnb, airport security, algorithmic bias, algorithmic management, augmented reality, autonomous vehicles, backpropagation, Brixton riot, Cambridge Analytica, chief data officer, computer vision, crowdsourcing, DARPA: Urban Challenge, data science, deep learning, DeepMind, Douglas Hofstadter, driverless car, Elon Musk, fake news, Firefox, Geoffrey Hinton, Google Chrome, Gödel, Escher, Bach, Ignaz Semmelweis: hand washing, John Markoff, Mark Zuckerberg, meta-analysis, Northpointe / Correctional Offender Management Profiling for Alternative Sanctions, pattern recognition, Peter Thiel, RAND corporation, ransomware, recommendation engine, ride hailing / ride sharing, selection bias, self-driving car, Shai Danziger, Silicon Valley, Silicon Valley startup, Snapchat, sparse data, speech recognition, Stanislav Petrov, statistical model, Stephen Hawking, Steven Levy, systematic bias, TED Talk, Tesla Model S, The Wisdom of Crowds, Thomas Bayes, trolley problem, Watson beat the top human players on Jeopardy!, web of trust, William Langewiesche, you are the product

Europeans are the lucky ones, but there are those pushing for regulation in America, too. The Federal Trade Commission published a report condemning the murky practices of data brokers back in 2014, and since then has been actively pushing for more consumer rights. Apple has now built ‘intelligent tracking prevention’ into the Safari browser. Firefox has done the same. Facebook is severing ties with its data brokers. Argentina and Brazil, South ­Korea and many more countries have all pushed through GDPR-like legislation. Europe might be ahead of the curve, but there is a global trend that is heading in the right direction. If data is the new gold, then we’ve been living in the Wild West.

‘ambiguous images 211n13’ 23andMe 108–9 profit 109 promises of anonymity 109 sale of data 109 volume of customers 110 52Metro 177 abnormalities 84, 87, 95 acute kidney injuries 104 Acxiom 31 Adele 193 advertising 33 online adverts 33–5 exploitative potential 35 inferences 35 personality traits and 40–1 political 39–43 targeted 41 AF447 (flight) 131–3, 137 Afigbo, Chukwuemeka 2 AI (artificial intelligence) 16–19 algorithms 58, 86 omnipotence 13 threat of 12 see also DeepMind AI Music 192 Air France 131–3 Airbnb, random forests 59 Airbus A330 132–3 algebra 8 algorithmic art 194 algorithmic regulating body 70 algorithms aversion 23 Alhambra 156 Alton Towers 20–1 ALVINN (Autonomous Land Vehicle In a Neural Network) 118–19 Alzheimer’s disease 90–1, 92 Amazon 178 recommendation engine 9 ambiguous images 211n13 American Civil Liberties Union (ACLU) 17 Ancestry.com 110 anchoring effect 73 Anthropometric Laboratory 107–8 antibiotics 111 AOL accounts 2 Apple 47 Face ID system 165–6 arithmetic 8 art 175–95 algorithms 184, 188–9 similarity 187 books 178 films 180–4 popularity 183–4 judging the aesthetic value of 184 machines and 194 meaning of 194 measuring beauty 184–5 music 176–80 piano experiment 188–90 popularity 177, 178, 179 quality 179, 180 quantifying 184–8 social proof 177–8, 179 artifacts, power of 1-2 artificial intelligence (AI) see AI (artificial intelligence) association algorithms 9 asthma 101–2 identifying warning signs 102 preventable deaths 102 Audi slow-moving traffic 136 traffic jam pilot 136 authority of algorithms 16, 198, 199, 201 misuse of 200 automation aircraft 131–3 hidden dangers 133–4 ironies of 133–7 reduction in human ability 134, 137 see also driverless cars Autonomous Emergency Braking system 139 autonomy 129, 130 full 127, 130, 134, 138 autopilot systems A330 132 driverless cars 134 pilot training 134 sloppy 137 Tesla 134, 135, 138 bail comparing algorithms to human judges 59–61 contrasting predictions 60 success of algorithms 60–1 high-risk scores 70 Bainbridge, Lisanne 133–4, 135, 138 balance 112 Banksy 147, 185 Baril, David 171–2 Barstow 113 Bartlett, Jamie 44 Barwell, Clive 145–7 Bayes’ theorem 121–4, 225n30 driverless cars 124 red ball experiment 123–4 simultaneous hypotheses 122–3 Bayes, Thomas 123–4 Bayesian inference 99 beauty 184–5 Beck, Andy 82, 95 Bell, Joshua 185–6 Berk, Richard 61–2, 64 bias of judges 70–1, 75 in machines 65–71 societal and cultural 71 biometric measurements 108 blind faith 14–16, 18 Bonin, Pierre-Cédric ‘company baby‘ 131–3 books 178 boost effect 151, 152 Bratton, Bill 148–50, 152 breast cancer aggressive screening 94 detecting abnormalities 84, 87, 95 diagnoses 82–4 mammogram screenings 94, 96 over-diagnosis and over-treatment 94–5 research on corpses 92–3 ‘in situ’ cancer cells 93 screening algorithms for 87 tumours, unwittingly ­carrying 93 bridges (route to Jones Beach) racist 1 unusual features 1 Brixton fighting 49 looting and violence 49–50 Brooks, Christopher Drew 64, 77 Brown, Joshua 135 browser history see internet browsing ­history buffer zone 144 Burgess, Ernest W. 55–6 burglary 150–1 the boost 151, 152 connections with earthquakes 152 the flag 150–1, 152 Caixin Media 45 calculations 8 calculus 8 Caldicott, Dame Fiona 223n48 Cambridge Analytica 39 advertising 42 fake news 42 personality profiles 41–2 techniques 41–2 whistleblowers 42 CAMELYON16 competition 88, 89 cameras 119–20 cancer benign 94 detection 88–9 and the immune system 93 malignant 94 ‘in situ’ 93, 94 uncertainty of tumours 93–4 see also breast cancer cancer diagnoses study 79–80 Car and Driver magazine 130–1 Carnegie 117 Carnegie Mellon University 115 cars 113–40 driverless see driverless cars see also DARPA (US Defence Advanced Research Projects Agency) categories of algorithms association 9 classification 9 filtering 9–10 prioritization 8 Centaur Chess 202 Charts of the Future 148–50 chauffeur mode 139 chess 5-7 Chicago Police Department 158 China 168 citizen scoring system 45–6 breaking trust 46 punishments 46 Sesame Credit 45–6, 168 smallpox inoculation 81 citizen scoring system 45–6 Citroen DS19 116, 116–17 Citymapper 23 classification algorithms 9 Clinical vs Statistical Prediction (Meehl) 21–2 Clinton Foundation 42 Clubcard (Tesco) 26 Cohen’s Kappa 215n12 cold cases 172 Cold War 18 Colgan, Steyve 155 Commodore 64 ix COMPAS algorithm 63, 64 ProPublica analysis accuracy of scores 65 false positives 66 mistakes 65–8 racial groups 65–6 secrecy of 69 CompStat 149 computational statistics 12 computer code 8 computer intelligence 13 see also AI (artificial intelligence) computer science 8 computing power 5 considered thought 72 cookies 34 Cope, David 189, 190–1, 193 cops on the dots 155–6 Corelogic 31 counter-intuition 122 creativity, human 192–3 Creemers, Rogier 46 creepy line 28, 30, 39 crime 141–73 algorithmic regulation 173 boost effect 151, 152 burglary 150–1 cops on the dots 155–6 geographical patterns 142–3 gun 158 hotspots 148, 149, 150–1, 155 HunchLab algorithm 157–8 New York City subway 147–50 predictability of 144 PredPol algorithm 152–7, 158 proximity of offenders’ homes 144 recognizable patterns 143–4 retail 170 Strategic Subject List 158 target hardening 154–5 see also facial recognition crime data 143–4 Crimewatch programme 142 criminals buffer zone 144 distance decay 144 knowledge of local geographic area 144 serial offenders 144, 145 customers data profiles 32 inferred data 32–4 insurance data 30–1 shopping habits 28, 29, 31 supermarket data 26–8 superstore data 28–31 cyclists 129 Daimler 115, 130 DARPA (US Defence Advanced Research Projects Agency) driverless cars 113–16 investment in 113 Grand Challenge (2004) 113–14, 117 course 114 diversity of vehicles 114 GPS coordinates 114 problems 114–15 top-scoring vehicle 115 vehicles’ failure to finish 115 Grand Challenge (2005) 115 targeting of military vehicles 113–14 data 25–47 exchange of 25, 26, 44–5 dangers of 45 healthcare 105 insurance 30–1 internet browsing history 36–7, 36–8 internet giants 36 manipulation and 39–44 medical records 102–7 benefits of algorithms 106 DeepMind 104–5 disconnected 102–3 misuse of data 106 privacy 105–7 patterns in 79–81, 108 personal 108 regulation of America 46–7 Europe 46–7 global trend 47 sale of 36–7 Sesame Credit 45–6, 168 shopping habits 28, 29, 31 supermarkets and 26–8 superstores and 28–31 data brokers 31–9 benefits provided by 32 Cambridge Analytica 39–42 data profiles 32 inferred data 32–4, 35 murky practices of 47 online adverts 33–5 rich and detailed datasets 103 Sesame Credit 45–6 unregulated 36 in America 36 dating algorithms 9 Davies, Toby 156, 157 decision trees 56–8 Deep Blue 5-7, 8 deep learning 86 DeepMind access to full medical ­histories 104–5 consent ignored 105 outrage 104 contract with Royal Free NHS Trust 104 dementia 90–2 Dewes, Andreas 36–7 Dhami, Mandeep 75, 76 diabetic retinopathy 96 Diaconis, Pesri 124 diagnostic machines 98–101, 110–11 differential diagnosis 99 discrimination 71 disease Alzheimer’s disease 90–1, 92 diabetic retinopathy 96 diagnosing 59, 99, 100 disease (continued) hereditary causes 108 Hippocrates’s understanding of 80 Huntington’s disease 110 motor neurone disease 100 pre-modern medicine 80 see also breast cancer distance decay 144 DNA (deoxyribonucleic acid) 106, 109 testing 164–5 doctors 81 unique skills of 81–2 Dodds, Peter 176–7 doppelgängers 161–3, 164, 169 Douglas, Neil 162–3 driver-assistance technology 131 driverless cars 113–40 advantages 137 algorithms and 117 Bayes’ red ball analogy 123–4 ALVINN (Autonomous Land Vehicle In a Neural Network) 118–19 autonomy 129, 130 full 127, 130, 134, 138 Bayes’ theorem 121–4 breaking the rules of the road 128 bullying by people 129 cameras and 117–18 conditions for 129 cyclists and 129 dealing with people 128–9 difficulties of building 117–18, 127–8 early technology 116–17 framing of technology 138 inevitability of errors 140 measurement 119, 120 neural networks 117–18 potential issues 116 pre-decided go-zones 130 sci-fi era 116 simulations 136–7 speed and direction 117 support for drivers 139 trolley problem 125–6 Uber 135 Waymo 129–30 driverless technology 131 Dubois, Captain 133, 137 Duggan, Mark 49 Dunn, Edwina 26 early warning systems 18 earthquakes 151–2 eBureau 31 Eckert, Svea 36–7 empathy 81–2 ensembles 58 Eppink, Richard 17, 18 Epstein, Robert 14–15 equations 8 Equivant (formerly Northpointe) 69, 217n38 errors in algorithms 18–19, 61–2, 76, 159–60, 197–9, 200–201 false negatives 62, 87, 88 false positives 62, 66, 87, 88 Eureka Prometheus Project 117 expectant mothers 28–9 expectations 7 Experiments in Musical Intelligence (EMI) 189–91, 193 Face ID (Apple) 165–6 Facebook 2, 9, 36, 40 filtering 10 Likes 39–40 news feeds experiment 42–3 personality scores 39 privacy issues 25 severing ties with data brokers 47 FaceFirst 170, 171 FaceNet (Google) 167, 169 facial recognition accuracy 171 falling 168 increasing 169 algorithms 160–3, 165, 201–2 2D images 166–7 3D model of face 165–6 Face ID (Apple) 165–6 FaceFirst 170 FaceNet (Google) 167, 169 measurements 163 MegaFace 168–9 statistical approach 166–7 Tencent YouTu Lab 169 in China 168 cold cases 172 David Baril incident 171–2 differences from DNA testing 164–5 doppelgängers 161–3, 164, 169 gambling addicts 169–70 identical looks 162–3, 164, 165 misidentification 168 neural networks 166–7 NYPD statistics 172 passport officers 161, 164 police databases of facial images 168 resemblance 164, 165 shoplifters 170 pros and cons of techno­logy 170–1 software 160 trade-off 171–3 Youssef Zaghba incident 172 fairness 66–8, 201 tweaking 70 fake news 42 false negatives 62, 87, 88 false positives 62, 66, 87, 88 FBI (Federal Bureau of Investigation) 168 Federal Communications Commission (FCC) 36 Federal Trade Commission 47 feedback loops 156–7 films 180–4 algorithms for 183 edits 182–3 IMDb website 181–2 investment in 180 John Carter (film) 180 novelty and 182 popularity 183–4 predicting success 180–1 Rotten Tomatoes website 181 study 181–2 keywords 181–2 filtering algorithms 9–10 Financial Times 116 fingerprinting 145, 171 Firebird II 116 Firefox 47 Foothill 156 Ford 115, 130 forecasts, decision trees 57–8 free technology 44 Fuchs, Thomas 101 Galton, Francis 107–8 gambling addicts 169–70 GDPR (General Data Protection Regulation) 46 General Motors 116 genetic algorithms 191–2 genetic testing 108, 110 genome, human 108, 110 geographical patterns 142–3 geoprofiling 147 algorithm 144 Germany facial recognition ­algorithms 161 linking of healthcare ­records 103 Goldman, William 181, 184 Google 14–15, 36 creepy line 28, 30, 39 data security record 105 FaceNet algorithm 167, 169 high-paying executive jobs 35 see also DeepMind Google Brain 96 Google Chrome plugins 36–7 Google Images 69 Google Maps 120 Google Search 8 Google Translate 38 GPS 3, 13–14, 114 potential errors 120 guardian mode 139 Guerry, André-Michel 143–4 gun crime 158 Hamm, John 99 Hammond, Philip 115 Harkness, Timandra 105–6 Harvard researchers experiment (2013) 88–9 healthcare common goal 111–12 exhibition (1884) 107 linking of medical records 102–3 sparse and disconnected dataset 103 healthcare data 105 Hinton, Geoffrey 86 Hippocrates 80 Hofstadter, Douglas 189–90, 194 home cooks 30–1 homosexuality 22 hotspots, crime 148, 149, 150–1, 155 Hugo, Christoph von 124–5 human characteristics, study of 107 human genome 108, 110 human intuition 71–4, 77, 122 humans and algorithms opposite skills to 139 prediction 22, 59–61, 62–5 struggle between 20–4 understanding the ­human mind 6 domination by machines 5-6 vs machines 59–61, 62–4 power of veto 19 PredPol (PREDictive ­POLicing) 153–4 strengths of 139 weaknesses of 139 Humby, Clive 26, 27, 28 Hume, David 184–5 HunchLab 157–8 Huntington’s disease 110 IBM 97–8 see also Deep Blue Ibrahim, Rahinah 197–8 Idaho Department of Health and Welfare budget tool 16 arbitrary numbers 16–17 bugs and errors 17 Excel spreadsheet 17 legally unconstitutional 17 naive trust 17–18 random results 17 cuts to Medicaid assistance 16–17 Medicaid team 17 secrecy of software 17 Illinois prisons 55, 56 image recognition 11, 84–7, 211n13 inferred data 32–4, 35 personality traits 40 Innocence Project 164 Instagram 36 insurance 30–1 genetic tests for Huntington’s disease 110 life insurance stipulations 109 unavailability for obese patients 106 intelligence tracking prevention 47 internet browsing history 36–8 anonymous 36, 37 de-anonymizing 37–8 personal identifiers 37–8 sale of 36–7 Internet Movie Database (IMDb) 181–2 intuition see human intuition jay-walking 129 Jemaah Islam 198 Jemaah Islamiyah 198 Jennings, Ken 97–8 Jeopardy!


pages: 269 words: 77,876

Brilliant, Crazy, Cocky: How the Top 1% of Entrepreneurs Profit From Global Chaos by Sarah Lacy

Asian financial crisis, barriers to entry, Benchmark Capital, BRICs, clean tech, clean water, cloud computing, Deng Xiaoping, digital divide, Donald Trump, Elon Musk, fear of failure, Firefox, Great Leap Forward, Huaqiangbei: the electronics market of Shenzhen, China, income per capita, intangible asset, Jeff Bezos, knowledge economy, knowledge worker, M-Pesa, Mahatma Gandhi, Marc Andreessen, Mark Zuckerberg, Max Levchin, McMansion, megacity, Network effects, off-the-grid, One Laptop per Child (OLPC), paypal mafia, QWERTY keyboard, risk tolerance, Salesforce, Skype, social web, Steve Jobs, Tony Hsieh, urban planning, web application, women in the workforce, working-age population, zero-sum game

But if Microsoft’s dominance hasn’t been chal enged, it is slowly but surely eroding in terms of influence. On platforms like the Web and mobile devices, the war isn’t between Microsoft and anyone, it’s between Google and Apple. Even with its dominant products, percentage points of market share here or there are increasingly going to competitors, be they Google, Salesforce.com, or Firefox. It’s not the cash Microsoft is stil raking in that matters, it’s that shift in momentum. Customers don’t get excited by a Microsoft launch anymore, many top employees have long since left to work for companies like Google and Facebook, and the stock is essential y where it was 10 years ago. Like Microsoft, Silicon Val ey won’t lose in sheer numbers of startups or dol ars spent, and it wil probably stil continue to give birth to most of the bil ion-dol ar companies for the next decade.

Endeavor Entrepreneurship: in emerging markets globalization of political ramifications U.S. history of Ericsson Estrin, Judy Ewing Marion Kauffman Foundation Facebook: employee cachet funding for in Indonesia as media giant PayPal role in social network Factory Girls (Chang) Fal ows, James FARC. See Revolutionary Armed Forces of Columbia (FARC) Farmer, Paul Fast Company Federal Reserve Bank FedEx 56.com Financial Times Firefox Forbes “Midas List,” Foxconn Friendster Gandhi, Mohandas K. (Mahatma) Gandhi, Pravin Gates, Bil Gates Foundation GDP: Africa China-related Rwanda Singapore wages as share of U.S. world comparisons General Motors Geni Genocide, Rwandan Ghate, Ravi Giant Interactive Giuffrida, Fred Globalization Goldman Sachs Gomes, Marco Gondal, Vishal Google: ad build-out in China as competitor as copycat founder of funding for immigrant success story as innovator in Israel powerhouse vis-à-vis Tencent Web share YouTube acquisition Gourevitch, Philip Grant Thornton LLP Great Leap Forward (Mao) Greenfield opportunities: in Brazil in China defined in India in Israel venture capital and in Western world Groupon Grove, Andy Growth Enterprise Board G7 nations Gupta, Abhishek Gupta, Naren Habyarimana, Juvenal Hambrecht & Quist Hanna, Jack Harvard Business School He, Eric Hertz, Matt Hewlett-Packard Highland Capital Partners Hinduism, culture of Hiware Bazar (India) Ho, Roy Hole-in-the-Wal program Horsley Bridge Partners Hsieh, Tony Huawei Hulu ICQ IL&FS Image Café Immigrants: Brazilian as economic asset as entrepreneurs Indian to Indonesia role in Israel In U.S.


pages: 267 words: 78,857

Discardia: More Life, Less Stuff by Dinah Sanders

A. Roger Ekirch, Atul Gawande, big-box store, Boris Johnson, carbon footprint, clean water, clockwatching, cognitive bias, collaborative consumption, credit crunch, do what you love, 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, Open Library, post-work, 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.

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.


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, eternal september, Firefox, future of journalism, Gabriella Coleman, hive mind, informal economy, Internet Archive, it's over 9,000, Julian Assange, Kickstarter, lolcat, Mark Zuckerberg, Marshall McLuhan, Mason jar, pre–internet, Silicon Valley, slashdot, social bookmarking, social web, Stephen Hawking, Steve Jobs, Stewart Brand, Streisand effect, technoutopianism, TED Talk, wage slave, We are Anonymous. We are Legion, Whole Earth Catalog, WikiLeaks

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?”

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.


pages: 420 words: 79,867

Developing Backbone.js Applications by Addy Osmani

Airbnb, anti-pattern, business logic, create, read, update, delete, don't repeat yourself, Firefox, full text search, Google Chrome, Khan Academy, Kickstarter, 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="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script src="http://documentcloud.github.com/underscore/underscore-min.js"></script> <script src="http://documentcloud.github.com/backbone/backbone-min.js"></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.

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: 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, carbon tax, commoditize, company town, Computer Numeric Control, crowdsourcing, dark matter, David Ricardo: comparative advantage, deal flow, death of newspapers, dematerialisation, digital capitalism, DIY culture, drop ship, Elon Musk, factory automation, Firefox, Ford Model T, future of work, global supply chain, global village, hockey-stick growth, hype cycle, IKEA effect, 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, Neal Stephenson, Network effects, planned obsolescence, private spaceflight, profit maximization, QR code, race to the bottom, Richard Feynman, Ronald Coase, Rubik’s Cube, Scaled Composites, self-driving car, Sheryl Sandberg, side project, Silicon Valley, Silicon Valley startup, Skype, slashdot, South of Market, San Francisco, SpaceShipOne, spinning jenny, Startup school, stem cell, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, supply-chain management, the long tail, The Nature of the Firm, The Wealth of Nations by Adam Smith, TikTok, Tragedy of the Commons, transaction costs, trickle-down economics, vertical integration, Virgin Galactic, 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.

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.


pages: 268 words: 76,702

The System: Who Owns the Internet, and How It Owns Us by James Ball

"World Economic Forum" Davos, behavioural economics, Big Tech, Bill Duvall, bitcoin, blockchain, Cambridge Analytica, Chelsea Manning, cryptocurrency, digital divide, don't be evil, Donald Trump, Douglas Engelbart, Edward Snowden, en.wikipedia.org, fake news, financial engineering, Firefox, Frank Gehry, Internet of things, invention of movable type, Jeff Bezos, jimmy wales, John Gilmore, John Perry Barlow, Julian Assange, Kickstarter, Laura Poitras, Leonard Kleinrock, lock screen, Marc Andreessen, Mark Zuckerberg, Menlo Park, military-industrial complex, Minecraft, Mother of all demos, move fast and break things, Network effects, Oculus Rift, packet switching, patent troll, Peter Thiel, pre–internet, ransomware, RFC: Request For Comment, risk tolerance, Ronald Reagan, Rubik’s Cube, self-driving car, Shoshana Zuboff, Silicon Valley, Silicon Valley startup, Skype, Snapchat, Steve Crocker, Stuxnet, surveillance capitalism, systems thinking, The Chicago School, the long tail, undersea cable, uranium enrichment, WikiLeaks, yield management, zero day

By adding DoubleClick to its repertoire, Google managed to extend its advertising dominance just in time, now being one of the biggest ad networks displaying ads across the internet, not just on its own sites. Given Google also created Chrome (a web browser – the software used to access the web, such as Internet Explorer or Firefox), Android (a mobile phone operating system) and more, its data pool keeps widening, and its advantage grows and grows – and regulators seem to just tinker at the margins, with even apparently huge and dramatic legislation like GDPR seeming to make almost no difference in the day-to-day business model of the ad-funded internet.

venture capital/VC: the financial model (and financial backer) of most of the internet, venture capital is a particular subset of private equity which invests in tech firms, hoping for returns of ten times or more. World Wide Web: the web is the most obvious and visible bit of the internet to most of us, conceived in 1989 by Tim Berners-Lee, and is the system by which websites are delivered to browsers such as Chrome, Firefox or Safari. FURTHER READING The following serve as a selected bibliography of the books used in the research of this book, as well as a few not cited herein but which offer good background or further reading on some of the topics covered. This isn’t comprehensive – it doesn’t include books or papers cited in passing, but these are included in the endnotes.


pages: 720 words: 197,129

The Innovators: How a Group of Inventors, Hackers, Geniuses and Geeks Created the Digital Revolution by Walter Isaacson

1960s counterculture, Ada Lovelace, AI winter, Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Albert Einstein, AltaVista, Alvin Toffler, Apollo Guidance Computer, Apple II, augmented reality, back-to-the-land, beat the dealer, Bill Atkinson, Bill Gates: Altair 8800, bitcoin, Bletchley Park, Bob Noyce, Buckminster Fuller, Byte Shop, c2.com, call centre, Charles Babbage, citizen journalism, Claude Shannon: information theory, Clayton Christensen, commoditize, commons-based peer production, computer age, Computing Machinery and Intelligence, content marketing, crowdsourcing, cryptocurrency, Debian, desegregation, Donald Davies, Douglas Engelbart, Douglas Engelbart, Douglas Hofstadter, driverless car, Dynabook, El Camino Real, Electric Kool-Aid Acid Test, en.wikipedia.org, eternal september, Evgeny Morozov, Fairchild Semiconductor, financial engineering, Firefox, Free Software Foundation, Gary Kildall, Google Glasses, Grace Hopper, Gödel, Escher, Bach, Hacker Ethic, Haight Ashbury, Hans Moravec, Howard Rheingold, Hush-A-Phone, HyperCard, hypertext link, index card, Internet Archive, Ivan Sutherland, Jacquard loom, Jaron Lanier, Jeff Bezos, jimmy wales, John Markoff, John von Neumann, Joseph-Marie Jacquard, Leonard Kleinrock, Lewis Mumford, linear model of innovation, Marc Andreessen, Mark Zuckerberg, Marshall McLuhan, Menlo Park, Mitch Kapor, Mother of all demos, Neil Armstrong, new economy, New Journalism, Norbert Wiener, Norman Macrae, packet switching, PageRank, Paul Terrell, pirate software, popular electronics, pre–internet, Project Xanadu, punch-card reader, RAND corporation, Ray Kurzweil, reality distortion field, RFC: Request For Comment, Richard Feynman, Richard Stallman, Robert Metcalfe, Rubik’s Cube, Sand Hill Road, Saturday Night Live, self-driving car, Silicon Valley, Silicon Valley startup, Skype, slashdot, speech recognition, Steve Ballmer, Steve Crocker, Steve Jobs, Steve Wozniak, Steven Levy, Steven Pinker, Stewart Brand, Susan Wojcicki, technological singularity, technoutopianism, Ted Nelson, Teledyne, the Cathedral and the Bazaar, The Coming Technological Singularity, The Nature of the Firm, The Wisdom of Crowds, Turing complete, Turing machine, Turing test, value engineering, Vannevar Bush, Vernor Vinge, Von Neumann architecture, Watson beat the top human players on Jeopardy!, Whole Earth Catalog, Whole Earth Review, wikimedia commons, William Shockley: the traitorous eight, Yochai Benkler

“Who would have thought that a world-class operating system could coalesce as if by magic out of part-time hacking by several thousand developers scattered all over the planet, connected only by the tenuous strands of the Internet?”146 Not only did it become a great operating system; it became a model for commons-based peer production in other realms, from Mozilla’s Firefox browser to Wikipedia’s content. By the 1990s there were many models for software development. There was the Apple approach, in which the hardware and the operating system software were tightly bundled, as with the Macintosh and iPhone and every iProduct in between. It made for a seamless user experience.

Networks for collaboration have existed ever since the Persians and Assyrians invented postal systems. But never before has it been easy to solicit and collate contributions from thousands or millions of unknown collaborators. This led to innovative systems—Google page ranks, Wikipedia entries, the Firefox browser, the GNU/Linux software—based on the collective wisdom of crowds. There were three ways that teams were put together in the digital age. The first was through government funding and coordination. That’s how the groups that built the original computers (Colossus, ENIAC) and networks (ARPANET) were organized.

Many of the advances that created the Internet and its services occurred in this fashion, which the Harvard scholar Yochai Benkler has labeled “commons-based peer production.”32 The Internet allowed this form of collaboration to be practiced on a much larger scale than before. The building of Wikipedia and the Web were good examples, along with the creation of free and open-source software such as Linux and GNU, OpenOffice and Firefox. As the technology journalist Steven Johnson has noted, “their open architecture allows others to build more easily on top of existing ideas, just as Berners-Lee built the Web on top of the Internet.”33 This commons-based production by peer networks was driven not by financial incentives but by other forms of reward and satisfaction.


pages: 322 words: 84,752

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

Aaron Swartz, Affordable Care Act / Obamacare, Berlin Wall, bitcoin, blood diamond, Bretton Woods, Brian Krebs, British Empire, butter production in bangladesh, call centre, Chelsea Manning, citizen journalism, Citizen Lab, clean water, cloud computing, corporate social responsibility, creative destruction, crowdsourcing, digital map, Edward Snowden, en.wikipedia.org, Evgeny Morozov, failed state, Fall of the Berlin Wall, feminist movement, Filter Bubble, Firefox, Francis Fukuyama: the end of history, Google Earth, Hacker News, Howard Rheingold, income inequality, informal economy, information security, Internet of things, John Perry Barlow, Julian Assange, Kibera, Kickstarter, land reform, M-Pesa, Marshall McLuhan, megacity, Mikhail Gorbachev, mobile money, Mohammed Bouazizi, national security letter, Nelson Mandela, Network effects, obamacare, Occupy movement, off-the-grid, packet switching, pension reform, prediction markets, sentiment analysis, Silicon Valley, Skype, spectrum auction, statistical model, Stuxnet, Tactical Technology Collective, technological determinism, trade route, Twitter Arab Spring, undersea cable, uranium enrichment, WikiLeaks, zero day

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.

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.


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, popular electronics, profit motive, RFID, Silicon Valley, zero day

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.

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.


pages: 371 words: 78,103

Webbots, Spiders, and Screen Scrapers by Michael Schrenk

Amazon Web Services, corporate governance, digital rights, fault tolerance, Firefox, machine readable, Marc Andreessen, new economy, pre–internet, SpamAssassin, The Hackers Conference, Turing test, web application

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 (+http://www.google.com/bot.html) Listing 3-3: Agent names as seen in a file access log A webbot using cURL can assume any appropriate (or inappropriate) agent name.

[75] The robots.txt specification is available at http://www.robotstxt.org, [76] The specification for the robots meta tag is available at http://www.robotstxt.org/wc/meta_user.html 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.


Beautiful Data: The Stories Behind Elegant Data Solutions by Toby Segaran, Jeff Hammerbacher

23andMe, airport security, Amazon Mechanical Turk, bioinformatics, Black Swan, business intelligence, card file, cloud computing, computer vision, correlation coefficient, correlation does not imply causation, crowdsourcing, Daniel Kahneman / Amos Tversky, DARPA: Urban Challenge, data acquisition, data science, database schema, double helix, en.wikipedia.org, epigenetics, fault tolerance, Firefox, Gregor Mendel, Hans Rosling, housing crisis, information retrieval, lake wobegon effect, Large Hadron Collider, longitudinal study, machine readable, machine translation, Mars Rover, natural language processing, openstreetmap, Paradox of Choice, power law, prediction markets, profit motive, semantic web, sentiment analysis, Simon Singh, social bookmarking, social graph, SPARQL, sparse data, speech recognition, statistical model, supply-chain management, systematic bias, TED Talk, text mining, the long tail, Vernor Vinge, web application

CrimeWatch also relies heavily on client-side JavaScript smarts beyond simple form submissions, including the use of additional state variables, so intermediate response pages must be parsed with a tolerant HTML parser and regular expressions to search for details buried deep within page scripts. Finally, since many such older-generation web applications were built and released before cross-browser dynamic HTML became a common practice among developers, it’s often necessary to spoof the User-Agent header and pretend to be either Internet Explorer or Mozilla Firefox; other browsers are turned away with compatibility warnings and no data. At the end of this process, you are left with a medium-sized image bitmap, hopefully containing recognizable crime report icons. The first pass at extracting the pixel locations of each icon was simple, but slow: for every possible location in the image, compare its pixel colors to a known icon, and report positive matches wherever the amount of difference was below a certain threshold.

Another possible enhancement that received a great deal of serious attention during our downtime was the concept of distributed page scraping. The reason our normal collection process was vulnerable to interruption was that all requests had to originate from the same Internet address, making them trivially easy to block when needed. We experimented with a distributed model implemented as a Firefox browser add-on, executed in JavaScript and controlled centrally. We hoped that a sufficient number of our technically savvy visitors would be willing to download a browser toolbar icon and help collect data when indicated. Requests to the CrimeWatch server would be spread over a large number of visiting IP addresses, at unpredictable hours of the day: a pattern effectively indistinguishable from normal site use.

The eventual feedback we received on this feature was invaluable. One resident said, “We have a Beat1X NCPC (Neighborhood Crime Prevention Council) meeting next week…I’ll be able to show up more prepared than OPD…our experience has been that they seldom if ever have current statistics to share with us.” The Firefox browser plug-in and associated web service controller were completed and planned for limited, experimental rollout around the same time that the City of Oakland informed us that we would be provided with a nightly spreadsheet of complete citywide crime report information, along with street addresses or intersections where appropriate.


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, disinformation, Firefox, Gabriella Coleman, hive mind, it's over 9,000, Julian Assange, lolcat, Minecraft, MITM: man-in-the-middle, Occupy movement, off-the-grid, peer-to-peer, pirate software, side project, Skype, speech recognition, SQL injection, Stephen Hawking, Stuxnet, We are Anonymous. We are Legion, We are the 99%, web application, WikiLeaks, zero day

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: 75.185.163.131 - - [27/Sep/2007:05:10:16 -0400] “GET /styles/xanime/top.jpg?2346141190864713656_ANON_DOES_NOT_FORGIVE HTTP/1.1” 200 95852 “http://www.gigaloader.com/user-message/ANON_DOES_NOT_FORGIVE” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7” In the case of Scientology.org, 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 Scientology.org 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: 527 words: 147,690

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

"World Economic Forum" Davos, 23andMe, 4chan, A Declaration of the Independence of Cyberspace, Aaron Swartz, Airbnb, airport security, Amazon Mechanical Turk, augmented reality, basic income, Big Tech, Brian Krebs, California gold rush, Californian Ideology, call centre, cloud computing, cognitive dissonance, commoditize, company town, context collapse, correlation does not imply causation, Credit Default Swap, crowdsourcing, data science, deep learning, digital capitalism, disinformation, don't be evil, driverless car, drone strike, Edward Snowden, Evgeny Morozov, fake it until you make it, feminist movement, Filter Bubble, Firefox, Flash crash, game design, global village, Google Chrome, Google Glasses, Higgs boson, hive mind, Ian Bogost, income inequality, independent contractor, informal economy, information retrieval, Internet of things, Jacob Silverman, Jaron Lanier, jimmy wales, John Perry Barlow, Kevin Kelly, Kevin Roose, Kickstarter, knowledge economy, knowledge worker, Larry Ellison, late capitalism, Laura Poitras, license plate recognition, life extension, lifelogging, lock screen, Lyft, machine readable, Mark Zuckerberg, Mars Rover, Marshall McLuhan, mass incarceration, meta-analysis, Minecraft, move fast and break things, national security letter, Network effects, new economy, Nicholas Carr, Occupy movement, off-the-grid, optical character recognition, payday loans, Peter Thiel, planned obsolescence, postindustrial economy, prediction markets, pre–internet, price discrimination, price stability, profit motive, quantitative hedge fund, race to the bottom, Ray Kurzweil, real-name policy, recommendation engine, rent control, rent stabilization, RFID, ride hailing / ride sharing, Salesforce, self-driving car, sentiment analysis, shareholder value, sharing economy, Sheryl Sandberg, Silicon Valley, Silicon Valley ideology, Snapchat, social bookmarking, social graph, social intelligence, social web, sorting algorithm, Steve Ballmer, Steve Jobs, Steven Levy, systems thinking, TaskRabbit, technological determinism, technological solutionism, technoutopianism, TED Talk, telemarketer, transportation-network company, Travis Kalanick, Turing test, Uber and Lyft, Uber for X, uber lyft, universal basic income, unpaid internship, women in the workforce, Y Combinator, yottabyte, you are the product, Zipcar

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.

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.


pages: 492 words: 153,565

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

air gap, Ayatollah Khomeini, Brian Krebs, crowdsourcing, data acquisition, Doomsday Clock, drone strike, Edward Snowden, facts on the ground, false flag, Firefox, friendly fire, Google Earth, information retrieval, information security, John Markoff, Julian Assange, Kickstarter, Loma Prieta earthquake, machine readable, Maui Hawaii, military-industrial complex, MITM: man-in-the-middle, Morris worm, pre–internet, RAND corporation, rolling blackouts, Silicon Valley, skunkworks, smart grid, smart meter, South China Sea, Stuxnet, Timothy McVeigh, two and twenty, undersea cable, unit 8200, uranium enrichment, Vladimir Vetrov: Farewell Dossier, WikiLeaks, Y2K, zero day

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.

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.


pages: 366 words: 94,209