<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.extremist.software/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=98.210.197.51</id>
	<title>Noisebridge - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.extremist.software/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=98.210.197.51"/>
	<link rel="alternate" type="text/html" href="https://wiki.extremist.software/wiki/Special:Contributions/98.210.197.51"/>
	<updated>2026-04-06T22:59:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/IBD&amp;diff=37856</id>
		<title>JavaScript/Notes/IBD</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/IBD&amp;diff=37856"/>
		<updated>2014-01-07T01:05:33Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Custom Events */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Interface Based Design ==&lt;br /&gt;
Using a common &amp;lt;b&amp;gt;interface&amp;lt;/b&amp;gt;, different Event registries handle different types of event registration: &lt;br /&gt;
# Event handler properties. Browser agnostic.&lt;br /&gt;
# Dom Event callback registration methods, considering delegation, IE event model, browser anomalies.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source:&#039;&#039;&#039; https://github.com/GarrettS/EventPublisher&lt;br /&gt;
&lt;br /&gt;
The implementation can be swapped out as needed for any given scenario or context, without having to try to accommodate every conceivable situation in one monolithic class.&lt;br /&gt;
&lt;br /&gt;
==== DOM Events ====&lt;br /&gt;
DOM events need an adapter for addressing the great difference in old IE&#039;s event model, with &amp;lt;code&amp;gt;attachEvent&amp;lt;/code&amp;gt;, getting a event properties such as &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;, and, &amp;lt;code&amp;gt;relatedTarget&amp;lt;/code&amp;gt;, and addressing delegate listeners (See: [http://www.w3.org/TR/DOM-Level-3-Events/#event-flow DOM Event Flow]).&lt;br /&gt;
&lt;br /&gt;
==== Custom Events ====&lt;br /&gt;
Custom Events are user defined so do not need any adapter. Custom do not need &amp;quot;on&amp;quot; conditionally prefixed to the event name, however DOM Event handler properties do, e.g. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
EventPublisher.get(document, &amp;quot;onclick&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The custom registry does not try to normalize the event, either. The client can, however, access the adapter methods &amp;lt;code&amp;gt;getTarget&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;getRelatedTarget&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;DomEventPublisher&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Encapsulate the Parts that Vary===&lt;br /&gt;
Event handler properties are useful for custom events and DOM events. &lt;br /&gt;
&lt;br /&gt;
For DOM compatibility, it is often necessary to have methods that will handle old IE event model or work with delegate listeners (See: [http://www.w3.org/TR/DOM-Level-3-Events/#event-flow DOM Event Flow]).&lt;br /&gt;
&lt;br /&gt;
=== Common Interface === &lt;br /&gt;
Each interface shares the following methods:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Static:&lt;br /&gt;
get(src, sEvent); // Gets an event publisher.&lt;br /&gt;
addCallback(src, sEvent, callback);&lt;br /&gt;
removeCallback(o, type, cb); // useCapture for DOM.&lt;br /&gt;
&lt;br /&gt;
// Instance:&lt;br /&gt;
eventPublisher.addCallback(sEvent, callback);&lt;br /&gt;
eventPublisher.removeCallback(sEvent, callback);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The DOM events interface has an additional parameter, `useCapture` for the capturing phase of the Event phase in &amp;lt;code&amp;gt;removeCallback&amp;lt;/code&amp;gt;, used internally.&lt;br /&gt;
&lt;br /&gt;
==== Event Handler Properties ====&lt;br /&gt;
Each event is a property name. The value is a function or null. The pattern works equally well for custom events on user-defined objects and DOM events.&lt;br /&gt;
&lt;br /&gt;
DOM Elements&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
el[&amp;quot;onclick&amp;quot;] = function(ev) {&lt;br /&gt;
  alert(this);&lt;br /&gt;
};&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Custom Objects and Events&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
userPicker.onuserselected = function(ev) {&lt;br /&gt;
  console.log(ev.user + &amp;quot; chosen.&amp;quot;);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Event Listener Interface ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
el.addEventListener(&amp;quot;click&amp;quot;, function(ev) {&lt;br /&gt;
  alert(&amp;quot;clicked&amp;quot;);&lt;br /&gt;
}, false);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Custom objects&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
userPicker.addCallback(&amp;quot;onuserselected&amp;quot;, function(ev) {&lt;br /&gt;
  console.log(ev.user + &amp;quot; chosen.&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/&amp;diff=37839</id>
		<title>JavaScript/Notes/</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/&amp;diff=37839"/>
		<updated>2014-01-06T21:39:18Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You down with OOP? - Yeah you know me!&lt;br /&gt;
 &lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Introduction Introduction] ==&lt;br /&gt;
&#039;&#039;&#039;When&#039;&#039;&#039;: Every Friday night from 7:00PM &amp;amp;mdash; 8:45PM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher&#039;&#039;&#039;: Garrett Smith&lt;br /&gt;
&lt;br /&gt;
Hearken to the days of &amp;lt;code&amp;gt;view-source:&amp;lt;/code&amp;gt;! In this course, I&#039;ll explore Object Oriented JavaScript as it pertains to client side web programming. And some DOM stuff.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039; &lt;br /&gt;
https://noisebridge.net/wiki/Web_Development_Resources&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Array Array Methods added to EcmaScript 5]==&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Debugging Debugging]==&lt;br /&gt;
Browsers provide debuggers that can be launched from a breakpoint or the debugger keyword.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/ClassnameSwap ClassName Swap] ==&lt;br /&gt;
Event Delegation and the Cascade.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Function Functions] == &lt;br /&gt;
Functions are callable objects with an internal &amp;lt;nowiki&amp;gt;[[Scope]]&amp;lt;/nowiki&amp;gt; property. Learn how to call functions and pass functions to other functions, where they can be later called.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Prototype Prototype] ==&lt;br /&gt;
The prototype chain is used for reading property resolution. &lt;br /&gt;
&lt;br /&gt;
User-defined functions can be used to construct new objects. Objects have, on their prototype chain, the constructor&#039;s prototype.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Prototype Custom Events]&lt;br /&gt;
Fire from your own user-defined objects.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Scope Scope Chain and Identifier Resolution]==&lt;br /&gt;
This class covers closures.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Singleton Singleton] ==&lt;br /&gt;
Singleton with information hiding in function scope.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/IBD Interface-Based Design]==&lt;br /&gt;
Two interfaces with a similar signature. The Devil&#039;s in the details -- encapsulate them!&lt;br /&gt;
&lt;br /&gt;
=== [https://noisebridge.net/wiki/JavaScript/Notes/EventNotificationSystem  Event Notification System]===&lt;br /&gt;
An abstract system for event notification.&lt;br /&gt;
=== [https://noisebridge.net/wiki/JavaScript/Notes/DomEvents DOM Events Adapter]===&lt;br /&gt;
An system for DOM event notification, designed to handle delegation and specific event models.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Factory   Factory]==&lt;br /&gt;
The Factory pattern, the Decorator pattern, newApply, and the holy grail: Abstract Factory.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/ParameterObject Parameter Object] == &lt;br /&gt;
Passing around lists of parameters? Typechecking arguments? Stop doing that. Here&#039;s how to make your code clearer and less error-prone.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/TypeConversion Type Conversion] ==&lt;br /&gt;
There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. Various operations in JavaScript require conversion to and from primitive values.&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37827</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37827"/>
		<updated>2014-01-06T18:55:49Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* parseInt(s, radix) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // true. Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // false. Non-empty strings are not falsy.&lt;br /&gt;
Boolean(&amp;quot;&amp;quot;); // false.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 0.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
With the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator, when either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
All native objects have a toString method. Number.prototype.toString(base) is special in that it takes a &amp;lt;code&amp;gt;base&amp;lt;/code&amp;gt; parameter. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
15..toString(16)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
String(15); // Calls ToPrimitive(input argument, hint String).&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; [http://jsbin.com/eTAQaNoX/2/edit toString, valueOf, and concatenation]&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many approaches can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number.&lt;br /&gt;
&lt;br /&gt;
== parseInt(s, radix) ==&lt;br /&gt;
&lt;br /&gt;
To force use of a particular base, use the radix parameter: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;parseInt(&amp;quot;09&amp;quot;, base) // base from 2 to 36.&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;radix&amp;lt;/code&amp;gt; is omitted, the base is determined by the contents of the string. Any string beginning with &amp;lt;code&amp;gt;0x&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0X&amp;lt;/code&amp;gt; represents a hexadecimal number. A string beginning with a leading 0 may, in older implementations, be parsed as octal (as if raxix were 8), in ECMA-262 Ed 3 (octal digits are 0-7). If string &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; is converted to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var t = &amp;quot;0xf&amp;quot;;&lt;br /&gt;
Number(t); // 15&lt;br /&gt;
+t; // 15&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Primitive to Object conversion.&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();   // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim();  // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37826</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37826"/>
		<updated>2014-01-06T18:52:13Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to String */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // true. Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // false. Non-empty strings are not falsy.&lt;br /&gt;
Boolean(&amp;quot;&amp;quot;); // false.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 0.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
With the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator, when either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
All native objects have a toString method. Number.prototype.toString(base) is special in that it takes a &amp;lt;code&amp;gt;base&amp;lt;/code&amp;gt; parameter. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
15..toString(16)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
String(15); // Calls ToPrimitive(input argument, hint String).&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; [http://jsbin.com/eTAQaNoX/2/edit toString, valueOf, and concatenation]&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many approaches can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number.&lt;br /&gt;
&lt;br /&gt;
== parseInt(s, radix) ==&lt;br /&gt;
&lt;br /&gt;
To force use of a particular base, use the radix parameter: &amp;lt;code&amp;gt;parseInt(&amp;quot;09&amp;quot;, base)&amp;lt;/code&amp;gt; (from 2 to 36).&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;radix&amp;lt;/code&amp;gt; is omitted, the base is determined by the contents of the string. Any string beginning with &amp;lt;code&amp;gt;0x&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0X&amp;lt;/code&amp;gt; represents a hexadecimal number. A string beginning with a leading 0 may, in older implementations, be parsed as octal (as if raxix were 8), in ECMA-262 Ed 3 (octal digits are 0-7). If string &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; is converted to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Primitive to Object conversion.&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();   // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim();  // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37825</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37825"/>
		<updated>2014-01-06T18:49:48Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to Boolean */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // true. Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // false. Non-empty strings are not falsy.&lt;br /&gt;
Boolean(&amp;quot;&amp;quot;); // false.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 0.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
With the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator, when either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
All native objects have a toString method. Number.prototype.toString(base) is special in that it takes a &amp;lt;code&amp;gt;base&amp;lt;/code&amp;gt; parameter. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
15..toString(16)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; [http://jsbin.com/eTAQaNoX/2/edit toString, valueOf, and concatenation]&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many approaches can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number.&lt;br /&gt;
&lt;br /&gt;
== parseInt(s, radix) ==&lt;br /&gt;
&lt;br /&gt;
To force use of a particular base, use the radix parameter: &amp;lt;code&amp;gt;parseInt(&amp;quot;09&amp;quot;, base)&amp;lt;/code&amp;gt; (from 2 to 36).&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;radix&amp;lt;/code&amp;gt; is omitted, the base is determined by the contents of the string. Any string beginning with &amp;lt;code&amp;gt;0x&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0X&amp;lt;/code&amp;gt; represents a hexadecimal number. A string beginning with a leading 0 may, in older implementations, be parsed as octal (as if raxix were 8), in ECMA-262 Ed 3 (octal digits are 0-7). If string &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; is converted to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Primitive to Object conversion.&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();   // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim();  // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37824</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37824"/>
		<updated>2014-01-06T18:49:02Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Object to Primitive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // true. Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // false. Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 0.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
With the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator, when either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
All native objects have a toString method. Number.prototype.toString(base) is special in that it takes a &amp;lt;code&amp;gt;base&amp;lt;/code&amp;gt; parameter. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
15..toString(16)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; [http://jsbin.com/eTAQaNoX/2/edit toString, valueOf, and concatenation]&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many approaches can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number.&lt;br /&gt;
&lt;br /&gt;
== parseInt(s, radix) ==&lt;br /&gt;
&lt;br /&gt;
To force use of a particular base, use the radix parameter: &amp;lt;code&amp;gt;parseInt(&amp;quot;09&amp;quot;, base)&amp;lt;/code&amp;gt; (from 2 to 36).&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;radix&amp;lt;/code&amp;gt; is omitted, the base is determined by the contents of the string. Any string beginning with &amp;lt;code&amp;gt;0x&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0X&amp;lt;/code&amp;gt; represents a hexadecimal number. A string beginning with a leading 0 may, in older implementations, be parsed as octal (as if raxix were 8), in ECMA-262 Ed 3 (octal digits are 0-7). If string &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; is converted to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Primitive to Object conversion.&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();   // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim();  // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37823</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37823"/>
		<updated>2014-01-06T18:48:31Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Object to Primitive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // true. Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // false. Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 0.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
With the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator, when either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
All native objects have a toString method. Number.prototype.toString(base) is special in that it takes a &amp;lt;code&amp;gt;base&amp;lt;/code&amp;gt; parameter. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
15..toString(16)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://jsbin.com/eTAQaNoX/2/edit toString, valueOf, and concatenation]&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many approaches can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number.&lt;br /&gt;
&lt;br /&gt;
== parseInt(s, radix) ==&lt;br /&gt;
&lt;br /&gt;
To force use of a particular base, use the radix parameter: &amp;lt;code&amp;gt;parseInt(&amp;quot;09&amp;quot;, base)&amp;lt;/code&amp;gt; (from 2 to 36).&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;radix&amp;lt;/code&amp;gt; is omitted, the base is determined by the contents of the string. Any string beginning with &amp;lt;code&amp;gt;0x&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0X&amp;lt;/code&amp;gt; represents a hexadecimal number. A string beginning with a leading 0 may, in older implementations, be parsed as octal (as if raxix were 8), in ECMA-262 Ed 3 (octal digits are 0-7). If string &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; is converted to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Primitive to Object conversion.&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();   // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim();  // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/IBD&amp;diff=37822</id>
		<title>JavaScript/Notes/IBD</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/IBD&amp;diff=37822"/>
		<updated>2014-01-06T17:08:02Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Interface Based Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Interface Based Design ==&lt;br /&gt;
Using a common &amp;lt;b&amp;gt;interface&amp;lt;/b&amp;gt;, different Event registries handle different types of event registration: &lt;br /&gt;
# Event handler properties. Browser agnostic.&lt;br /&gt;
# Dom Event callback registration methods, considering delegation, IE event model, browser anomalies.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source:&#039;&#039;&#039; https://github.com/GarrettS/EventPublisher&lt;br /&gt;
&lt;br /&gt;
==== DOM Events ====&lt;br /&gt;
DOM events need an adapter for addressing the great difference in old IE&#039;s event model, with &amp;lt;code&amp;gt;attachEvent&amp;lt;/code&amp;gt; and getting an event&#039;s &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;.&lt;br /&gt;
==== Custom Events ====&lt;br /&gt;
Custom Events are user defined so do not need any adapter.&lt;br /&gt;
&lt;br /&gt;
===Encapsulate the Parts that Vary===&lt;br /&gt;
Event handler properties are useful for custom events and DOM events. &lt;br /&gt;
&lt;br /&gt;
For DOM compatibility, it is often necessary to have methods that will handle old IE event model or work with delegate listeners (See: [http://www.w3.org/TR/DOM-Level-3-Events/#event-flow DOM Event Flow]).&lt;br /&gt;
&lt;br /&gt;
=== Common Interface === &lt;br /&gt;
Each interface shares the following methods:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Static:&lt;br /&gt;
get(src, sEvent); // Gets an event publisher.&lt;br /&gt;
addCallback(src, sEvent, callback);&lt;br /&gt;
removeCallback(o, type, cb); // useCapture for DOM.&lt;br /&gt;
&lt;br /&gt;
// Instance:&lt;br /&gt;
eventPublisher.addCallback(sEvent, callback);&lt;br /&gt;
eventPublisher.removeCallback(sEvent, callback);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The DOM events interface has an additional parameter, `useCapture` for the capturing phase of the Event phase in &amp;lt;code&amp;gt;removeCallback&amp;lt;/code&amp;gt;, used internally.&lt;br /&gt;
&lt;br /&gt;
==== Event Handler Properties ====&lt;br /&gt;
Each event is a property name. The value is a function or null. The pattern works equally well for custom events on user-defined objects and DOM events.&lt;br /&gt;
&lt;br /&gt;
DOM Elements&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
el[&amp;quot;onclick&amp;quot;] = function(ev) {&lt;br /&gt;
  alert(this);&lt;br /&gt;
};&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Custom Objects and Events&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
userPicker.onuserselected = function(ev) {&lt;br /&gt;
  console.log(ev.user + &amp;quot; chosen.&amp;quot;);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Event Listener Interface ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
el.addEventListener(&amp;quot;click&amp;quot;, function(ev) {&lt;br /&gt;
  alert(&amp;quot;clicked&amp;quot;);&lt;br /&gt;
}, false);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Custom objects&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
userPicker.addCallback(&amp;quot;onuserselected&amp;quot;, function(ev) {&lt;br /&gt;
  console.log(ev.user + &amp;quot; chosen.&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/IBD&amp;diff=37821</id>
		<title>JavaScript/Notes/IBD</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/IBD&amp;diff=37821"/>
		<updated>2014-01-06T17:06:59Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Interface Based Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Interface Based Design ==&lt;br /&gt;
Using a common &amp;lt;b&amp;gt;interface&amp;lt;/b&amp;gt;, different Event registries handle different types of event registration: &lt;br /&gt;
# Event handler properties. Browser agnostic.&lt;br /&gt;
# Dom Event callback registration methods, considering delegation, IE event model, browser anomalies.&lt;br /&gt;
&lt;br /&gt;
https://github.com/GarrettS/EventPublisher&lt;br /&gt;
&lt;br /&gt;
==== DOM Events ====&lt;br /&gt;
DOM events need an adapter for addressing the great difference in old IE&#039;s event model, with &amp;lt;code&amp;gt;attachEvent&amp;lt;/code&amp;gt; and getting an event&#039;s &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;.&lt;br /&gt;
==== Custom Events ====&lt;br /&gt;
Custom Events are user defined so do not need any adapter.&lt;br /&gt;
&lt;br /&gt;
===Encapsulate the Parts that Vary===&lt;br /&gt;
Event handler properties are useful for custom events and DOM events. &lt;br /&gt;
&lt;br /&gt;
For DOM compatibility, it is often necessary to have methods that will handle old IE event model or work with delegate listeners (See: [http://www.w3.org/TR/DOM-Level-3-Events/#event-flow DOM Event Flow]).&lt;br /&gt;
&lt;br /&gt;
=== Common Interface === &lt;br /&gt;
Each interface shares the following methods:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Static:&lt;br /&gt;
get(src, sEvent); // Gets an event publisher.&lt;br /&gt;
addCallback(src, sEvent, callback);&lt;br /&gt;
removeCallback(o, type, cb); // useCapture for DOM.&lt;br /&gt;
&lt;br /&gt;
// Instance:&lt;br /&gt;
eventPublisher.addCallback(sEvent, callback);&lt;br /&gt;
eventPublisher.removeCallback(sEvent, callback);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The DOM events interface has an additional parameter, `useCapture` for the capturing phase of the Event phase in &amp;lt;code&amp;gt;removeCallback&amp;lt;/code&amp;gt;, used internally.&lt;br /&gt;
&lt;br /&gt;
==== Event Handler Properties ====&lt;br /&gt;
Each event is a property name. The value is a function or null. The pattern works equally well for custom events on user-defined objects and DOM events.&lt;br /&gt;
&lt;br /&gt;
DOM Elements&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
el[&amp;quot;onclick&amp;quot;] = function(ev) {&lt;br /&gt;
  alert(this);&lt;br /&gt;
};&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Custom Objects and Events&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
userPicker.onuserselected = function(ev) {&lt;br /&gt;
  console.log(ev.user + &amp;quot; chosen.&amp;quot;);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Event Listener Interface ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
el.addEventListener(&amp;quot;click&amp;quot;, function(ev) {&lt;br /&gt;
  alert(&amp;quot;clicked&amp;quot;);&lt;br /&gt;
}, false);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Custom objects&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
userPicker.addCallback(&amp;quot;onuserselected&amp;quot;, function(ev) {&lt;br /&gt;
  console.log(ev.user + &amp;quot; chosen.&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37820</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37820"/>
		<updated>2014-01-06T16:13:23Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to String */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // true. Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // false. Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 0.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
With the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator, when either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
All native objects have a toString method. Number.prototype.toString(base) is special in that it takes a &amp;lt;code&amp;gt;base&amp;lt;/code&amp;gt; parameter. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
15..toString(16)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many approaches can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number.&lt;br /&gt;
&lt;br /&gt;
== parseInt(s, radix) ==&lt;br /&gt;
&lt;br /&gt;
To force use of a particular base, use the radix parameter: &amp;lt;code&amp;gt;parseInt(&amp;quot;09&amp;quot;, base)&amp;lt;/code&amp;gt; (from 2 to 36).&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;radix&amp;lt;/code&amp;gt; is omitted, the base is determined by the contents of the string. Any string beginning with &amp;lt;code&amp;gt;0x&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0X&amp;lt;/code&amp;gt; represents a hexadecimal number. A string beginning with a leading 0 may, in older implementations, be parsed as octal (as if raxix were 8), in ECMA-262 Ed 3 (octal digits are 0-7). If string &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; is converted to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Primitive to Object conversion.&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();   // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim();  // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37819</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37819"/>
		<updated>2014-01-06T16:12:14Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to String */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // true. Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // false. Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 0.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
With the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator, when either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
All native objects have a toString method. Number.prototype.toString(base) is special in that it takes a &amp;lt;code&amp;gt;base&amp;lt;/code&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many approaches can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number.&lt;br /&gt;
&lt;br /&gt;
== parseInt(s, radix) ==&lt;br /&gt;
&lt;br /&gt;
To force use of a particular base, use the radix parameter: &amp;lt;code&amp;gt;parseInt(&amp;quot;09&amp;quot;, base)&amp;lt;/code&amp;gt; (from 2 to 36).&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;radix&amp;lt;/code&amp;gt; is omitted, the base is determined by the contents of the string. Any string beginning with &amp;lt;code&amp;gt;0x&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0X&amp;lt;/code&amp;gt; represents a hexadecimal number. A string beginning with a leading 0 may, in older implementations, be parsed as octal (as if raxix were 8), in ECMA-262 Ed 3 (octal digits are 0-7). If string &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; is converted to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Primitive to Object conversion.&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();   // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim();  // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37818</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37818"/>
		<updated>2014-01-06T16:10:18Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to Number */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // true. Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // false. Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 0.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many approaches can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number.&lt;br /&gt;
&lt;br /&gt;
== parseInt(s, radix) ==&lt;br /&gt;
&lt;br /&gt;
To force use of a particular base, use the radix parameter: &amp;lt;code&amp;gt;parseInt(&amp;quot;09&amp;quot;, base)&amp;lt;/code&amp;gt; (from 2 to 36).&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;radix&amp;lt;/code&amp;gt; is omitted, the base is determined by the contents of the string. Any string beginning with &amp;lt;code&amp;gt;0x&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0X&amp;lt;/code&amp;gt; represents a hexadecimal number. A string beginning with a leading 0 may, in older implementations, be parsed as octal (as if raxix were 8), in ECMA-262 Ed 3 (octal digits are 0-7). If string &amp;lt;code&amp;gt;09&amp;lt;/code&amp;gt; is converted to &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Primitive to Object conversion.&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();   // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim();  // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37817</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37817"/>
		<updated>2014-01-06T15:42:26Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to Boolean */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // true. Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // false. Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 0.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Primitive to Object conversion.&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();   // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim();  // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37815</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37815"/>
		<updated>2014-01-06T08:37:18Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to Boolean */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 0.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Primitive to Object conversion.&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();   // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim();  // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37814</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37814"/>
		<updated>2014-01-06T08:35:26Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Primitive to Object */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Primitive to Object conversion.&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();   // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim();  // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37813</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37813"/>
		<updated>2014-01-06T08:34:39Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Primitive to Object */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();   // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim();  // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37812</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37812"/>
		<updated>2014-01-06T08:34:27Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Primitive to Object */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf();  // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37811</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37811"/>
		<updated>2014-01-06T08:34:01Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* The typeof Operator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf(); // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements &amp;lt;nowiki&amp;gt;[[Call]]&amp;lt;/nowiki&amp;gt;) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37810</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37810"/>
		<updated>2014-01-06T08:33:00Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Type Checking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf(); // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
==== The typeof Operator ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
typeof someval;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement [[Call]]) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements [[Call]]) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37809</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37809"/>
		<updated>2014-01-06T08:32:12Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Primitive to Object */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf(); // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Type Checking === &lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type 	&amp;lt;th&amp;gt;Result&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undefined 	&amp;lt;td&amp;gt;&amp;quot;undefined&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Null 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Boolean 	&amp;lt;td&amp;gt;&amp;quot;boolean&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Number 	&amp;lt;td&amp;gt;&amp;quot;number&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;String 	&amp;lt;td&amp;gt;&amp;quot;string&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native and doesn&#039;t implement [[Call]]) 	&amp;lt;td&amp;gt;&amp;quot;object&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (native or host and implements [[Call]]) 	&amp;lt;td&amp;gt;&amp;quot;function&amp;quot;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Object (host) 	&amp;lt;td&amp;gt;Implementation-dependent&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37808</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37808"/>
		<updated>2014-01-06T08:30:19Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to String */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
=== Object to Primitive === &lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf(); // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37807</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37807"/>
		<updated>2014-01-06T08:03:55Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to String */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if &amp;lt;code&amp;gt;&#039;&#039;o&#039;&#039;.valueOf&amp;lt;/code&amp;gt; results in an object &amp;amp;mdash;and &amp;lt;code&amp;gt;Object.prototype.valueOf&amp;lt;/code&amp;gt; does &amp;amp;mdash; the object&#039;s &amp;lt;code&amp;gt;toString&amp;lt;/code&amp;gt; is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf(); // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37806</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37806"/>
		<updated>2014-01-06T08:02:57Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to String */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, if valueOf results in an object &amp;amp;mdash;and Object.prototype.valueOf does &amp;amp;mdash; the object&#039;s toString is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf(); // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37805</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37805"/>
		<updated>2014-01-06T08:01:36Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to Object */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, the object&#039;s toString is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Primitive to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf(); // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37804</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37804"/>
		<updated>2014-01-06T08:01:00Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to String */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, the object&#039;s toString is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf(); // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37803</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37803"/>
		<updated>2014-01-06T08:00:24Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to Boolean */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other primitive values and all objects are truthy.&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, the concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, the object&#039;s toString is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf(); // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37802</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37802"/>
		<updated>2014-01-06T07:46:11Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to String */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, the concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, the object&#039;s toString is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } };&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf(); // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=Category:Events&amp;diff=37801</id>
		<title>Category:Events</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=Category:Events&amp;diff=37801"/>
		<updated>2014-01-06T07:36:41Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Wednesdays */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Note that this page uses transclusion. Content between the &amp;quot;onlyinclude&amp;quot; tags below will be pushed to the main page --&amp;gt;&lt;br /&gt;
Official, Semi-Official, one-off and other events at the Noisebridge space.&lt;br /&gt;
&amp;lt;!-- Flamsmark and Malaclyps shall well-read this --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Event Calendar=&lt;br /&gt;
Not all events make it onto this calendar. Many events only make it to the Discussion or Announcements [[Mailinglist | mailing lists]], [[IRC]] or in person at [[:Category:Meeting_Notes | Tuesday meetings]]. Best of all, Noisebridge is about people getting together at the space in San Francisco to do stuff........like in person(?) DO pay attention, as some events just arise organically from the bottom up!&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to host an event yourself, we recommend bringing in at least one Noisebridge member, and getting advice on [[Hosting_an_Event|hosting an event]] at Noisebridge.&lt;br /&gt;
&lt;br /&gt;
You should view the  [https://www.google.com/calendar/embed?src=1uesj915rces4cbmcr8j3sg8t0%40group.calendar.google.com&amp;amp;ctz=America/Los_Angeles Google Calendar].&lt;br /&gt;
To post Google Calendar entries for your event or to gain access to do so for yourself, ask on the [https://www.noisebridge.net/mailman/listinfo/noisebridge-discuss Noisebridge-Discuss] (sometimes known as the Noisebridge &amp;quot;Disgust&amp;quot;) mailing list.&lt;br /&gt;
&amp;lt;!-- Items inside this &amp;quot;onlyinclude&amp;quot; tag will be pushed to the main page --&amp;gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upcoming Events &amp;lt;small&amp;gt;[https://www.noisebridge.net/index.php?title=Category:Events&amp;amp;action=edit&amp;amp;section=2 edit]&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&amp;lt;!-- Please read our &amp;quot;Hosting an Event&amp;quot; page and possibly follow some of the guidelines there before posting your event here https://www.noisebridge.net/wiki/Hosting_an_Event --&amp;gt;&lt;br /&gt;
&amp;lt;!-- It&#039;s smart (read this as highly RECOMMENDED!) to add in a link to a wiki page with more information about your even, and a way to contact the event organizer(s). Thanks! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Sunday Jan 12th 2014, 12.00 pm&lt;br /&gt;
|title        =GodWaffleNoisePancakes &lt;br /&gt;
|description  = Join us for a noise performance and vegan pancakes for San Francisco&#039;s longest running noise/experimental music show, in the hackatorium&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
=== Recurring Events &amp;lt;small&amp;gt;[https://www.noisebridge.net/index.php?title=Category:Events&amp;amp;action=edit&amp;amp;section=3 edit]&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Please read our &amp;quot;Hosting an Event&amp;quot; page and possibly follow some of the guidelines there before posting your event herehttps://www.noisebridge.net/wiki/Hosting_an_Event --&amp;gt;&lt;br /&gt;
&amp;lt;!-- It&#039;s smart (read this as highly RECOMMENDED!) to add in a link to a wiki page with more information about your even, and a way to contact the event organizer(s)Thanks! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Large turnout events should be written in &#039;&#039;&#039;bold&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mondays ====&lt;br /&gt;
* &#039;&#039;&#039;7:30 pm - 10:00 pm [[Circuit Hacking Mondays]]&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;(Early start of 3:00pm on Monday holidays.)&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;div style=&amp;quot;padding-left: 30px; max-width: 725px;&amp;quot;&amp;gt;- Learn to solder! And make cool things with electronics. [[User:maltman23|Mitch]], Rolf, [[User:Miloh|Miloh]], and others will bring kits to make cool, hackable things for all skill levels that you can bring home after you make them! Bring your own projects to hack! Bring things to fix! All ages. All welcome!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- 2013-02-02 * 7:00 pm [[Cook-in class]] Bring your ideas/food/appetite and try your hand at cooking--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;6:00 pm - 8:00 pm [[Collaborative Coding]]&#039;&#039;&#039; - All levels and languages welcome for open, friendly coding session. Bring tutorials, projects, or just yourself. &#039;&#039;&#039;Starting 2013-12-16&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;8:00 pm - 10:00 pm [[Front-end Web Development]]&#039;&#039;&#039; - Learn HTML/CSS/JS. We&#039;re covering the basics and then going in-depth on different topics every week. Recap of last week&#039;s material starts at 7:30 pm (&#039;&#039;&#039;7pm for 2012-01-06&#039;&#039;&#039;).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;[[House_Keeping#Trash_and_Recycling|Take Out the Trash Night]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuesdays ====&lt;br /&gt;
* 3:00 pm - 5:00 pm [[Linux System Administration class]] meets in the Turing classroom. Stay tuned to possible future changes to the format and topics of this workshop. Focus remains on server systems; less on workstation problems.  &lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;6:00 pm [[Office Hours]]&#039;&#039;&#039; Have pressing questions about Noisebridge, or need help dealing with nonsense/bs? Find [[user:flamsmark|Tom]] at the space or [https://foursquare.com/v/the-sycamore/4c253819c11dc9b634d82624 the Sycamore] for help before the meeting. --&amp;gt;&lt;br /&gt;
* 6:00 pm - 8:00 pm Wiki Hacking, learn how to use the Noisebridge wiki by creating your own user account and page, as well as editing content. Meet by the fire escape at the &amp;quot;Dream Station&amp;quot;. Hosted by [[User:Thex|J.C.]]&lt;br /&gt;
* 7:00 pm - 9:00 pm [[Machine Learning | Machine_Learning]] Learn some data science! For people at all levels.&lt;br /&gt;
* 7:00 pm - 9:00 pm [[PyClass | Advanced Python]] Slaying the web with Python 2.7 &amp;amp; 3.3. Instructed by Liz and Kellan in Turing.&lt;br /&gt;
* 5:00 pm - 7:00 pm &#039;&#039;&#039;*ix&#039;&#039;&#039; [[Linux.BSD.UNIX Open Learning and Hacking]] Learning by doing in Linux/OpenBSD/FreeBSD/Unix/Others in Turing. Workstation problems and projects okay.&lt;br /&gt;
* &#039;&#039;&#039;7:00 pm - 9:00 pm [http://www.railsschool.org Ruby and Rails class]&#039;&#039;&#039; - Seminar and workshop for learning everything about Ruby, Rails, and web application development (Church classroom).&lt;br /&gt;
* &#039;&#039;&#039;7:30 pm - 9:00 pm [[Light Patterns with LEDs and Microcontrollers]]&#039;&#039;&#039; - Learn how to make light dance and do your bidding! We will make Arduino sketches to control multicolor LED pixels.&lt;br /&gt;
&amp;lt;!-- * 7:30 pm [[Spacebridge]] - Noisebridge&#039;s space program --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;6:00 pm - 7:30 pm [[Rebase|Great Noisebridge Rebase of 2013!]]&#039;&#039;&#039; - Discussion and Proposal development regarding the ongoing Rebase initiative. Meet in the Hackitorium. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;8:00 pm [[Meetings|Noisebridge Weekly Meeting]]&#039;&#039;&#039; - Introducing new people and events to the space, general discussion, and decision-making on key issues. &#039;&#039;&#039;This is your space, folks. Come on out here in person to express what you think about what&#039;s going on with it!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Wednesdays ====&lt;br /&gt;
&amp;lt;!-- On hiatus 2013-01-08 * 6:00 pm [[Replicator Wednesday|Replicator Wednesday]]! This event is on hiatus from Noisebridge until further notice.  New &amp;quot;series&amp;quot; starts January 9th! --&amp;gt;&lt;br /&gt;
* 4:00 pm - 6:00 pm Locks Sport. Picking, repining, etc. Try to bring your own picks. If not we will try to make some here. We will go on as long as people want to stick around.&lt;br /&gt;
* 6:00 pm - 8:00 pm [[Linux &amp;amp; BSDiscussion|Linux/BSDiscussion and Problem Solving]] - Linux/BSD meetup in the Turing classroom.&lt;br /&gt;
* 7:00 pm - 8:00 pm [[Feminist Book Club for Men]] - On the second Wednesday of every month, we try to educate ourselves about feminism, and not being quite as much of a jerk.&lt;br /&gt;
 7:00 pm - 8:45 pm JavaScript Class EcmaScript programming language, DOM, Object Oriented JavaScript, and Events. &lt;br /&gt;
* 7:30 pm - 9:00 pm [[DreamTeam| Dream Team Neuro Hackery]] - EEG research &amp;amp; development project with general interest in sleep, dreaming, creative intelligence, and many loosely related topics such as: neurophysiology, signal processing, cognitive neuroscience, and (especially) hacking code and devices for data acquisition and analysis.  Join us at the [[CollaborationStation]] near the Hackatorium / 3D printing area.  (Discussion sometimes starts closer to 8 PM, usually shifting focus by 9 PM to more technical aspects of specific projects).  &lt;br /&gt;
* 7:00 pm - 9:00 pm [[PyClass]] - Intro to Python in Church Classroom.&lt;br /&gt;
* 7:30 pm - 10:00 pm [[BACE Timebank]] (1st Wednesdays every &#039;&#039;odd&#039;&#039; month) Next meeting on Wed Jan 8, 8pm - Help organize community mutual aid by trading in equal time credits. To find out more and join go to [http://sfbace.org sfbace.org].&lt;br /&gt;
&lt;br /&gt;
==== Thursdays ====&lt;br /&gt;
* [[House_Keeping#Trash_and_Recycling|Trash Night]]  - Take out the trash for Friday morning!&lt;br /&gt;
* &#039;&#039;&#039;6:00 pm-8:00 pm [[Collaborative Coding]]&#039;&#039;&#039; - All levels and languages welcome for open, friendly coding session. Bring tutorials, projects, or just yourself. &#039;&#039;&#039;Starting 2013-12-16&#039;&#039;&#039;.&lt;br /&gt;
* 6:30 pm [[Digital Archivists]] - Help build a book scanner for Noisebridge&lt;br /&gt;
* 7:00 pm [[Machine_Learning]] - Machine Learning Meetup (every 2 weeks)&lt;br /&gt;
* 7:00 pm [[Tastebridge]] / [[Vegan Hacker]] Monthly Food Hacking, last Thursday of every month (Except for Dec 2013, when it&#039;ll be on Dec 5th!), 7pm http://www.veganhackersf.com&lt;br /&gt;
* 7:00 pm - 10:00 pm [[3D Thursday]] Weekly meetup (non-3rd-thursdays) at Noisebridge focusing on 3D Printers, CNC machines, FabLabs, and replicating machines of all kinds.&lt;br /&gt;
&amp;lt;!-- * 7:00 pm [[german_corner|German Corner]] Learn and practice speaking German --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;7:00 pm - 9:00 pm [[Letter Lovers]]&#039;&#039;&#039; - Learn &amp;amp; create calligraphy, lettering, fonts, handwriting, and all things letters. &#039;&#039;&#039;On hiatus until January 2014&#039;&#039;&#039;&lt;br /&gt;
* 8:00 pm [[Front-end_Web_Development#Lab|Front-end Web Development Lab]] - &#039;&#039;&#039;Next lab on January 9th.&#039;&#039;&#039; Understand by doing! A recap of Monday&#039;s lecture in workshop form - and a good time for one-on-one help with the material.&lt;br /&gt;
* &#039;&#039;&#039;8:00 pm [[Five Minutes of Fame]]&#039;&#039;&#039; - lightning talks every 3rd Thursday of the month&lt;br /&gt;
&lt;br /&gt;
==== Fridays ====&lt;br /&gt;
&lt;br /&gt;
* 4:00 pm - 10:00 pm [[FUN Tutoring]] @ [[CollaborationStation]]&lt;br /&gt;
* 7:00 pm - 9:00 pm [https://noisebridge.net/wiki/JavaScript/ JavaScript Class] EcmaScript programming language, DOM, Object Oriented JavaScript, and Events.&lt;br /&gt;
&lt;br /&gt;
==== Saturdays ====&lt;br /&gt;
&amp;lt;!-- 2013-02-02 * 6:30 pm-8:30 pm Beginner [[French]] - Learn basic grammar and sentence structure. Classes meet in the Turing room --&amp;gt;&lt;br /&gt;
* 12:00 pm - 6:00 pm &#039;&#039;&#039;[[modular|Modular and Analog Synth Workshop]]&#039;&#039;&#039; NEXT WORKSHOP TBA Learn the basics of analog synthesis on a modular synth with Douglas. we will meet in the church.&lt;br /&gt;
&lt;br /&gt;
==== Sundays ====&lt;br /&gt;
* 09:00 am - 10:15 am [https://noisebridge.net/wiki/JavaScript/ JavaScript Class] EcmaScript programming language, DOM, Object Oriented JavaScript, and Events.&lt;br /&gt;
* 12:30 pm - 7:30 pm [[Dungeons and Dragons]] in Church, not currently looking for new players.&lt;br /&gt;
* 1:00 pm Lock Sport Collaboration: Come learn how to pick locks with the [http://www.tooolsf.org/ SF Bay Area chapter] of [http://toool.us/ TOOOL]. Sometimes at Noisebridge. Check the [http://www.tooolsf.org/meeting-announcements/ TOOOLSF announcements page] for details. &lt;br /&gt;
&amp;lt;!-- on hiatus, according to Mik: * 2:00 pm - 10:00 pm [[World of Darkness]] Looking to run a biweekly game at Noisebridge. Talk with Melissa if interested --&amp;gt;&lt;br /&gt;
* 2:00 pm [[BAHA]] - [http://baha.bitrot.info Bay Area Hacker&#039;s Association] - security meeting (2nd Sundays only)&lt;br /&gt;
* 3:00 pm [[Go]] - Playing of the Go board game. On nice days we often take the boards to Dolores Park and play there.&lt;br /&gt;
* 4:00 pm [[Elements_of_Image_Making]] Bi-Weekly Analogue and DIY film making meetup/hangout/nerdout&lt;br /&gt;
* 6:00 pm [[Plan 9]] class &lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to contact somebody at Noisebridge regarding these Events or even the Noisebridge Wiki itself, then please send an email message to one of the Board members listed in the [[Contacts]] list, e.g., &amp;lt;secretary@noisebridge.net&amp;gt; or &amp;lt;treasurer@noisebridge.net&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Orphaned Events ===&lt;br /&gt;
These events appear to be dormant or extinct.&lt;br /&gt;
&lt;br /&gt;
* SAT 10:15 - 12:10 [[Juggling with Judy!]] Note: next class is scheduled for Saturday June 29th.  Attention juggling fans!  Judy will be at the 2013 World Juggling Day celebration Saturday June 15th at Ripley&#039;s Believe It Or Not Odditorium in San Francisco Fisherman&#039;s Warf - free event begins at 1.  Come check it out!  &lt;br /&gt;
* WED 20:00 - 22:00 [https://www.noisebridge.net/mailman/listinfo/zine ZinesFromOuterSpace] - A biweekly (once every 2 weeks or twice a month) meetup for zinesters / printing hackers / DIY publishers, and brainstorming session for the next chapter of [[zine | ZiP]]. Next meeting is 1/30/13, followed by another in mid-Feb (TBA).&lt;br /&gt;
* THU 18:00 - 21:00 &#039;&#039;&#039;[[Privacy Bay]]&#039;&#039;&#039; - A monthly meetup for Bay Area folks interested in privacy. Meets in Church on the last Thursday of the month.&lt;br /&gt;
* FRI 19:00 - 21:00 [[Anarchy_101|Anarchy 101]] - a class/seminar on what anarchy is and is not, and how it impacts us as individuals and as discrete groups.&lt;br /&gt;
* SUN 13:00 [[Songbridge]]: (Bi-monthly) Learn how to make and record music with a computerWe cover midi and vst as well as multi-track recordingBring your laptop.&lt;br /&gt;
* 20:00 - 22:00 [[Noise~_Wednesday | Noise~ Wed]] - Graphical media programming with Max/MSP/Jitter&lt;br /&gt;
&lt;br /&gt;
 *19:00 [[Tahoe-LAFS]] - Occasional meetup of users and/or developers of the Least Authority File System.&lt;br /&gt;
&lt;br /&gt;
* 14:00 - 16:00 Android Developer Support Group - Meet up with other app developers in the library for a lightly structured knowledge-share.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Future Events and Classes ===&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Algorithms Study Group]] I&#039;m light on the algos and am looking for others to take &amp;quot;Algorithms I&amp;quot; on Coursera starting on January 31st.  This is a 6 week course that covers fundamental algorithms, data structures, time-complexity, Big O notation, etc. &lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Terence McKenna Book Club]] A book club to discuss the ideas and theories of famed philosopher and anthropologist Terence McKenna.  Related topics include: Language, Technology, Virtual Reality, Shamanism, Anthropology, Eschatology, Consciousness, Plant-based Entheogens, Psychedelics.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Sound Science]] A potential monthly lecture/demonstration series on the little known science behind sound reproductionTopics to include: Transducer Physics(speakers and mics), Room Acoustics, Signal Path and Cabling,Loudspeaker design 101, Music Production Tips for Big Sound, and How to make a small system sound HUGEEach session to include hands on projects like making speakers from stuff lying around, Non-Newtonian bass monsters, and ez speaker mods for anyoneIf interested contact the new guy-&amp;gt; MattLong8 at gmail dot com, 805 four five three - six zero nine seven &lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Modular Synthesis]] a bi-weekly (or monthly) group devoted to modular synthesizers&amp;gt; workshop will include modular sound synthesis styles and techniques, a study of different modules and their functions, ie voltage controlled oscillator, voltage controlled filter, low frequency oscillator, envelope generator ect and how these modules interact with each other, what control voltage and triggers are..... as well as one on one time for each student with the modular, which is a 60 space large format Moog style modular synthesizer with big knobs and 1/4 jacks   including performance and other awesomeness by Douglas. contact Douglas at greenshoos at gmail dotcom&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[VideoHacking]] a weekly video/video art devoted hacker group, including experiments in the 3D vr realm...if interested contact julialc4@gmail.com&lt;br /&gt;
:Wednesdays at 21:00 [[Brewing Bridge]] - Malakkar Proposal: Learn how to make your drinks fun AND antibacterial, using yeastThis will be recurring if enough interest or need is presentAssociated items - what to do with brewing leftovers, and brewers sample hour, etc.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Fie: Failure is Eminent]] - [[User:MedianMajik|James]] wants to start a System Recovery class that will meet either bi-monthly or weekly for a couple hours to try various backup and recovery methods on drives and data.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[101 Introduction to Linux]] - [[User:MedianMajik|James]] wants to start a 101 Introduction to Linux class where people can ask whatever questions they want and get them answered in 60 to 90 minutes Church would be the optimal location Looking for teachers.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Probability]] - Weekly probability study group based on [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-041-probabilistic-systems-analysis-and-applied-probability-spring-2006/related-resources/ Fundamentals of Applied Probability Theory] by Al Drake&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Mandarin Corner|Mandarin]] - Learn or practice Mandarin, all levels. Also currently on hiatus. Get on the mailing list.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Movie Night!]] - [[User:ThOMG|Thom]] wants to build community through nerdy sci-fi! (+Bill+Ted+Excellence++) (how about a Friday hacker movie night? -[[User:Carl|Carl]])&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Introduction to the AVR Microcontroller]] - [[User:Mightyohm|Jeff]] and [[User:Maltman23|Mitch]] are planning an introductory class for people wanting to make cool projects with AVRs.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Basic Chemistry Lab Techniques]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Cuddle Puddle for the Economy]] - Stress-hacking with informal massage exchange.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Milk and Cookies]] - Come read your favorite selections out loudWith Milk and Cookies (and yeah, probably beer too).&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Processing Workshop 2]] - [[User:Scmurray|Scott]] is interested in teaching this, and is busy thinking about what, where, when, why, and how.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;:  [[Hack your Hardware]] -- We call BS on &amp;quot;no user-serviceable parts inside&amp;quot;&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Homebrew Instruction Class]] - The Wort (pt 1/3)&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Trip to Shooting Range]] - Field trip to a shooting range, to shoot guns Express interest at [[Trip to Shooting Range]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Surface Mount Soldering Workshop]] - Learn how to solder cicuits with small surface mount parts [[User:maltman23|Mitch Altman]] and Martin Bogomolni and others will show their tricks [[User:maltman23|Mitch]] will bring hackable kits that uses surface mounts for you to solder&amp;lt;-YES!(mattlong8 at gmail dot com)&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039; - [[Locksport and Lockpicking]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039; - [[Version control tutorial]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039; - [[Foreign language learning for rocket scientists]] - I&#039;m near-native (fool people when I try) in (French and) Japanese, and a pro trans/terpreter and will share my shortcuts (skill-order, vocab, speed/articulation, translation≅grammar)No expertise on tonal languages yet..so if you know how to remember tones or how tone-sandhi interacts with speed and/or how nuances of speaker attitude are expressed in them (what we do with rythm/inflection/sentence-intonation and stress in Eng., and with particles and ??? in e.gCantonese) please chime in or call me (415-608-0564) so I can convey your wisdom[also looking for a from-scratch Arabic partner]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Getting started with Arduino]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Distributed Databases]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Node.js Beginners Session]] - Interested in learning about Node.js? I amMaybe these guys want to teach it: http://www.meetup.com/Joyent-Cloud-User-Group/events/81311542/&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Scrum Club]] - I though I&#039;d test the waters and see if anyone was interested in a noisebridge scrum club details are here http://scrumclub.org/scrum-clubs/ if inturested hit me up twitter: @theabcasian, facebook: http://www.facebook.com/theabcasian&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[CNC Mill Workshop]] - Who wants to make stuff on the [[MaxNCMill]]?&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Math &amp;amp; Science Help]] - If you would like some math, science or engineering help, I&#039;m down to lend a hand.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Cyborg Group|Cyborg Group / Sensebridge]] - Work on projects like artificial senses Someone needs to lead this!&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[OpenEEG]] - Brain techHas historically met on Sundays, at the behest of interested parties.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Programming_for_Poets | Programming for Poets]] -  Gentle intro to programming using Processing&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[World Builders &amp;amp; Simgineers]] -  Work together to create a beautiful &amp;amp; open virtual world &amp;amp; platform.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[PlunderBridge]] -  Metal detecting, detector technology &amp;amp; treasure hunting expeditions.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Ruby Mining]] -  Ruby on Rails basics, interactive working group&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[MoinMoin Wiki]] -  MoinMoin Wiki (details see there)&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Noisebridge Fundraiser 2013]]&lt;br /&gt;
&lt;br /&gt;
= Past Events =&lt;br /&gt;
&lt;br /&gt;
===2013===&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Friday, August 9, 5:00pm&lt;br /&gt;
|title        = Noisebridge Party Setup&lt;br /&gt;
|description  = Volunteers will be preparing the space for Saturday&#039;s show.  There are no scheduled conflicts; you might be asked to move multiple times by someone pushing a broom and assembling a raised stage simultaneously.&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Saturday, August 10, 4:00pm&lt;br /&gt;
|title        = Noisebridge &amp;quot;______ the Bridge&amp;quot; Party&lt;br /&gt;
|description  =  &amp;lt;span style=&amp;quot;color:#ff00ff; background:##ff00ff&amp;quot;&amp;gt; a summer fundraising party for Noisebridge, which YOU are invited to!&amp;lt;/span&amp;gt;&lt;br /&gt;
|suggested donation = $10, but no one turned away for lack of funds&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Sunday, August 11, 2:00pm&lt;br /&gt;
|title        = Bay Area Hackers&#039; Association Meeting&lt;br /&gt;
|description  = Jon Callas presenting on [[BAHA/2013-08-11|Secure Communications, Privacy, Counter-Surveillance]].&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Wednesday, May 22, 7.00 pm: Instructables Build Night&#039;&#039;&#039; - Bare Conductive, Instructables will supply Bare Conductive paint pens and pizza. Come experiment with the paint and post some Instructables. This is a FREE event.&lt;br /&gt;
&lt;br /&gt;
===2012===&lt;br /&gt;
* &#039;&#039;&#039;December 20, Thursday, 20:00 - 22:00 - [[5MoF|5 Minutes of Fame]]&#039;&#039;&#039; - Following up on its triumphant return in November, 5MoF is back with another showcase of lightning talks &amp;amp; other good stuff, with your host Sir Danny O&#039;Brien! Details TBA&lt;br /&gt;
*&#039;&#039;&#039;Tuesday Feb14th, 18:00 to 20:00&#039;&#039;&#039; ZiP MegaZine releases its inaugural issue with &#039;&#039;&#039;My Noisy Valentine&#039;&#039;&#039; Zine Release Microparty in the Noisebridge cafeFor more info follow [[zine | this]] link.&lt;br /&gt;
* &#039;&#039;&#039;Wednesday, Jan30, 20:00-22:00&#039;&#039;&#039; [[zine|ZiP]] meeting for zine-makers &amp;amp; others with an interest in printing &amp;amp; self-publishingThe meeting 1/30/13 is our first since mid-2012We plan to hold them regularly from now on at this time (Wednesday 8pm)This meeting will be informal &amp;amp; will probably take place in the printing/lasercutter area of the hackerspace.&lt;br /&gt;
&lt;br /&gt;
===2011===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;September 11th 14:00 to 17:00&#039;&#039;&#039; - The San Francisco Chapter of the Open Organisation Of Lockpickers and Bay Area Hacker&#039;s Association present a joint meeting on [https://secure.wikimedia.org/wikipedia/en/wiki/Locksport locksport]&lt;br /&gt;
*&#039;&#039;&#039;August 4, 7PM, Thursday&#039;&#039;&#039; - [http://zeidman.net Bob Zeidman] will be giving a talk on video games and intellectual property, hosted by TheMADEHe will also speak about IP infringement cases.&lt;br /&gt;
*&#039;&#039;&#039;August 9, 6:30PM, Tuesday&#039;&#039;&#039; - [http://www.meetup.com/makesf/events/26413241/ Make:SF] - Chris Jefferies will speak about the wireless sensor kit he is developing and we are bringing back our all star soldering kits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;April 13th, 19:00&#039;&#039;&#039; - Kombucha fermentation class with [[BioBridge]] &lt;br /&gt;
*&#039;&#039;&#039;April 7th, 20:00&#039;&#039;&#039; - [[In-Depth|Noisebridge: In-Depth]] Our monthly lecture and round tableThis month&#039;s speaker will be Aragorn! his lecture will be &amp;quot;Anarchism &amp;amp; technology: An unbridgeable chasm&amp;quot;&lt;br /&gt;
*&#039;&#039;&#039;April 4th, 20:00&#039;&#039;&#039; - Camp KDE PartyCome and meet part of the KDE North America community and get a quick overview of this year&#039;s [http://camp.kde.org/ Camp KDE] conferenceThere will be beer&lt;br /&gt;
*&#039;&#039;&#039;April 3rd, 16:00&#039;&#039;&#039; - NoiseCaching: Meet-up to build some geocaches, and talk about making geocoinsThen we&#039;ll head out to find some local caches and place caches we made[http://www.geocaching.com More info about Geocaching here]&lt;br /&gt;
* &#039;&#039;&#039;March 20th, 19:00&#039;&#039;&#039; [[Hack Politics]] meetup -- the first meetup to figure out how we in the hacker community can effectively mobilize and create meaningful change in these interesting times&lt;br /&gt;
* &#039;&#039;&#039;March 12th, 12:00-18:00 - Noisebridge Hackathon!&#039;&#039;&#039; Second Saturday Hackathon is a casual monthly event dedicated to working on the space or relevant projects and building community This is a great time to get feedback or help on any projects you have been considering that center around the space, culture, and infrastructure of Noisebridge You can also help with existing projects and find out ways to get involved.&lt;br /&gt;
* &#039;&#039;&#039;March 10, Thursday, 19:00 - Group Grammar Clinic&#039;&#039;&#039; - Church Classroom - Donations gladly accepted - A clinic for grammar and writing evaluationPlease bring your web/social or technical writing for us to evaluateBring your laptop as well Collaboration groupware possibly provided(Please suggest groupware software to use if you wish)Constructive feedback from other group members is encouraged so that this clinic is a group process- Facilitator: [[User:Owen|Owen]] (opietro@yahoo.com)&lt;br /&gt;
* &#039;&#039;&#039;March 9th, 20:00&#039;&#039;&#039; - Ferment and filter a mash! [[fermentation logs]]&lt;br /&gt;
&lt;br /&gt;
===2010===&lt;br /&gt;
* &#039;&#039;&#039;Sunday, August 22, 19:00 CLUB-MATE DROPOFF AND TASTING PARTY&#039;&#039;&#039; Nick Farr will be in town to drop off Club-Mate ordered by San Franciscans!&lt;br /&gt;
* &#039;&#039;&#039;June 5th, 12:00-19:00 - [[NoiseBridgeRehab]]&#039;&#039;&#039; - Help make the space more usable and accessible! Noisebridge needs your help!&lt;br /&gt;
* &#039;&#039;&#039;June 5th, 16:00-20:00 - [[Science For Juggalos]]&#039;&#039;&#039; - Science Fair in front of the Warfield Theater teaching magnetism to Juggalos&lt;br /&gt;
* &#039;&#039;&#039;June 6th, 15:00 - [[AVC Meetup]]&#039;&#039;&#039; - Entrepreneurial bonding &amp;amp; matchmaking&lt;br /&gt;
* &#039;&#039;&#039;June 9th, 21:00 - Your liver supports Noisebridge&#039;&#039;&#039; - Come to Elixir @ 16th &amp;amp; Guerrero anytime after 21:00 and drink, drink, drink! 50% of tips go to Noisebridge&lt;br /&gt;
* &#039;&#039;&#039;February 27th, 20:00 - [[Hacker EPROM]]&#039;&#039;&#039; - Noisebridge&#039;s first prom! Nice tie and a (robot) date requiredWe will have a DJ and punch.&lt;br /&gt;
* &#039;&#039;&#039;February 24th, 19:00, Wednesday - Joris Peels, of [http://www.shapeways.com Shapeways]&#039;&#039;&#039;, and expert on 3D printing, will give a [[ShaperwaysPresentation | talk and demonstration]] at Noisebridge!.&lt;br /&gt;
* &#039;&#039;&#039;February 23rd, 18:00 - Cleaning day&#039;&#039;&#039; - Come and help clean Noisebridge, because everyone loves a clean hack space.&lt;br /&gt;
* &#039;&#039;&#039;February 12th, 21:00 - visit from Steve Jackson&#039;&#039;&#039;Game designer [http://en.wikipedia.org/wiki/Steve_Jackson_%28US_game_designer%29 Steve Jackson], founder of Steve Jackson Games, will visit Noisebridge.&lt;br /&gt;
* &#039;&#039;&#039;January 27th, 18:00-20:00 - [[beatrixjar event|Circuit Bending Workshop]]&#039;&#039;&#039; - [http://www.beatrixjar.com/ Beatrix*JAR] (contact [[User:Gpvillamil|Gian Pablo]] for more info)&lt;br /&gt;
* &#039;&#039;&#039;January 27th, 20:00-22:00 - [[beatrixjar event|Circuit Bending Performance]]&#039;&#039;&#039; - [http://www.beatrixjar.com/ Beatrix*JAR] - &amp;quot;Celebrate a night of new sound that will change your idea of music forever!&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;January 25th, 19:30 - [[Bag Porn]]&#039;&#039;&#039; - What&#039;s in your bag?&lt;br /&gt;
* &#039;&#039;&#039;January 20th, 19:00-21:00 - [http://groups.google.com/group/bacat/about Bay Categories &amp;amp; Types]&#039;&#039;&#039; - Categories, monoids, monads, functors and more! Held in the Alonzo Church classroom.&lt;br /&gt;
* &#039;&#039;&#039;January 20th, 19:00 - [[User Experience Book Club SF]]&#039;&#039;&#039; - Our book this month is &amp;quot;A Theory of Fun for Game Design&amp;quot; by Raph Koster - http://is.gd/6sEqw (meets in Turing)&lt;br /&gt;
* &#039;&#039;&#039;January 21st, 20:00 - [[Five Minutes of Fame]]&#039;&#039;&#039; - Monthly set of lightning talks on diverse topics&lt;br /&gt;
* &#039;&#039;&#039;January 22nd, 17:00 - [[CleaningParty| Cleaning Party]]&#039;&#039;&#039; - Come help clean up Noisebridge! Awsum fun!&lt;br /&gt;
* ...January 14th,16th, and 17th 1:00- ??? Build Out day for kitchen/bathroom/laundry bring yourself and a good attitude, learn a few things as well&lt;br /&gt;
* &#039;&#039;&#039;January 15th, 18:00 - [[CNC_Mill_Workshop]]&#039;&#039;&#039; - Learn to use the CNC mill for 2D engraving and circuit board routing&lt;br /&gt;
* Thursdays 17:00 [[ASL Group|American Sign Language]] - Learn how to talk without using your voice (or just come chat in ASL)&amp;lt;small&amp;gt;[http://whenisgood.net/noisebridge/asl/generic click to reschedule]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===2009===&lt;br /&gt;
* &#039;&#039;&#039;November 18th, 19:30&#039;&#039;&#039; - [[Dorkbot_2009_11_18|Dorkbot]]&lt;br /&gt;
* &#039;&#039;&#039;November 19th, 18:00&#039;&#039;&#039; - [[Mesh meetup]]&lt;br /&gt;
* &#039;&#039;&#039;November 19th, 20:00&#039;&#039;&#039; - [[Five Minutes of Fame]]&lt;br /&gt;
* &#039;&#039;&#039;November 20th, 18:00&#039;&#039;&#039; - Loud Objects [http://www.flickr.com/photos/createdigitalmedia/3428249036/ Noise Toy workshop].&lt;br /&gt;
* &#039;&#039;&#039;November 20th, 20:00&#039;&#039;&#039; - Performance by [http://www.loudobjects.com/ Loud Objects], (featuring Tristan Perich and Lesley Flanigan) and [http://www.myspace.com/jibkidder Jib Kidder].&lt;br /&gt;
:&#039;&#039;&#039;2009-11-05&#039;&#039;&#039; - [http://www.server-sky.com/ Server Sky presentation: Internet and Computation in Orbit] by Keith Lofstrom&lt;br /&gt;
:&#039;&#039;&#039;2009-11-05&#039;&#039;&#039; - [[Mesh meetup]]&lt;br /&gt;
:&#039;&#039;&#039;2009-11-02&#039;&#039;&#039; - [[French]] book club meeting to discuss  [http://www.amazon.com/exec/obidos/tg/detail/-/2842612892/ref=ord_cart_shr?_encoding=UTF8&amp;amp;m=ATVPDKIKX0DER&amp;amp;v=glance Une Si Longue Lettre]&lt;br /&gt;
: &#039;&#039;&#039; October 1st, 18:00&#039;&#039;&#039; - [[Wireless_Mesh_Network_Meetup | Mesh wireless meetup]]&lt;br /&gt;
: &#039;&#039;&#039; October 1st, 19:00&#039;&#039;&#039; - [http://groups.google.com/group/bacat Bay Area Categories and Types]&lt;br /&gt;
: &#039;&#039;&#039;2009-10-03&#039;&#039;&#039; [[Year 1 Open Hacker House]]&lt;br /&gt;
:&#039;&#039;&#039;Friday&#039;&#039;&#039;: [[CrazyCryptoNight]] - Discussion of cryptography for beginners through experts6-???&lt;br /&gt;
:&#039;&#039;&#039;Sunday&#039;&#039;&#039; : [[OpenEEG | OpenEEG Hacking]] Sundays, at 3-5pm.&lt;br /&gt;
:&#039;&#039;&#039;Monday&#039;&#039;&#039;: [[German]] - Learn German, all levels7pm beginners, 8pm advancedRSVP 24 hours in advance for the benefit of the instructorEvents ran May-November 2009Currently on Thursdays at 8Get on the mailing list.&lt;br /&gt;
:&#039;&#039;&#039;Tuesday&#039;&#039;&#039;: [[Haskell/Haschool]] - Learn Haskell with Jason Dusek 6PM - 7:30PM, from May until we&#039;re all experts.&lt;br /&gt;
:&#039;&#039;&#039;Wednesday&#039;&#039;&#039;: [[Adobe_Lightroom|Adobe Lightroom]] - Become a more organized photographerWeekly class (mostly held off site).&lt;br /&gt;
:&#039;&#039;&#039;Thursday&#039;&#039;&#039;: [[Professional VFX Compositing With Adobe After Effects]] - Taught by [[User:SFSlim|Aaron Muszalski]]7:30PM - 10PM, most Thursdays in May &amp;amp; June &amp;amp; ? (click through dammit)&lt;br /&gt;
:&#039;&#039;&#039;2009-09-17&#039;&#039;&#039;: [[Five Minutes of Fame]] 3D Edition&lt;br /&gt;
:&#039;&#039;&#039;2009-09-17&#039;&#039;&#039;: [[Wireless Mesh Network Meetup | Mesh wireless meetup]]&lt;br /&gt;
:&#039;&#039;&#039;2009-08-20&#039;&#039;&#039;: [[Five Minutes of Fame]] One Dee Edition&lt;br /&gt;
:&#039;&#039;&#039;2009-07-16&#039;&#039;&#039;: [[Five Minutes of Fame]] Zero Dee&lt;br /&gt;
:&#039;&#039;&#039;2009-07-02 - 2009-07-05&#039;&#039;&#039;: [http://toorcamp.org Toorcamp]&lt;br /&gt;
:&#039;&#039;&#039;2009-07-01&#039;&#039;&#039;: Noisedroid meeting to discuss location logging on Android platform (and other stuff too, I&#039;m sure)&lt;br /&gt;
:&#039;&#039;&#039;2009-06-30&#039;&#039;&#039;: [[Powerbocking Class|Powerbocking class]]&lt;br /&gt;
:&#039;&#039;&#039;2009-06-30&#039;&#039;&#039;: &amp;quot;Suing Telemarketers for Fun and Profit&amp;quot; (Toorcamp talk preview)&lt;br /&gt;
:&#039;&#039;&#039;2009-06-28&#039;&#039;&#039;: &amp;quot;Meditation for Hackers&amp;quot; (Toorcamp workshop preview)&lt;br /&gt;
:&#039;&#039;&#039;2009-06-18&#039;&#039;&#039;: [[Five Minutes of Fame]]&lt;br /&gt;
:&#039;&#039;&#039;2009-06-15&#039;&#039;&#039;: [[Eagle Workshop]]  Session two of the Eagle CAD workshop.&lt;br /&gt;
:&#039;&#039;&#039;2009-06-13&#039;&#039;&#039;: [[RoboGames 2009]] Noisebridge had a booth staffed by vounteers, great fun!&lt;br /&gt;
:&#039;&#039;&#039;2009-05-21&#039;&#039;&#039;: [[Five Minutes of Fame]]&lt;br /&gt;
:&#039;&#039;&#039;2009-04-27&#039;&#039;&#039;: [[EagleCAD workshop]] -- learn to use this CAD tool for printed circuit board design&lt;br /&gt;
:&#039;&#039;&#039;2009-04-16&#039;&#039;&#039;: [[Five Minutes of Fame]] April showers &amp;amp; flowers edition&lt;br /&gt;
:&#039;&#039;&#039;2009-04-11&#039;&#039;&#039;: [[RFID Hacking]] weekend workshop  (this event moved from the original March date)&lt;br /&gt;
:&#039;&#039;&#039;2009-04-05&#039;&#039;&#039;: [[First aid and CPR class]] Learning how to not only not die, but also reduce scarring!&lt;br /&gt;
:&#039;&#039;&#039;2009-04-03&#039;&#039;&#039;: [[Sudo pop]] 2PM and onMaking the first batch of a Noisebridge label yerba mate-niated rootbrew, gratis and DIY&lt;br /&gt;
:&#039;&#039;&#039;2009-03-26&#039;&#039;&#039;: [[OpenEEG | OpenEEG Hacking]] first meet up for this new group: 8 pm&lt;br /&gt;
:&#039;&#039;&#039;2009-03-19&#039;&#039;&#039;: [[Five Minutes of Fame]]&lt;br /&gt;
:&#039;&#039;&#039;2009-03-12&#039;&#039;&#039;: [[OpenBTS and GSM]] talk by David Burgess&lt;br /&gt;
:&#039;&#039;&#039;2009-02-14&#039;&#039;&#039;: [[Open Heart Workshop]] Valentine&#039;s Day blinkyheart soldering party! &lt;br /&gt;
:&#039;&#039;&#039;2009-02-13&#039;&#039;&#039;: [[Time-t_Party|&amp;lt;tt&amp;gt;time_t&amp;lt;/tt&amp;gt; Party]] to celebrate 1,234,567,890 since the Unix epoch.&lt;br /&gt;
:&#039;&#039;&#039;2009-02-09&#039;&#039;&#039;: [[Spanish learning at 8:30]]&lt;br /&gt;
:&#039;&#039;&#039;2009-02-05&#039;&#039;&#039;: [[PGP Key Workshop]]&lt;br /&gt;
:&#039;&#039;&#039;2009-01-31&#039;&#039;&#039;: [[Locksport and Lockpicking]]&lt;br /&gt;
&lt;br /&gt;
===2008===&lt;br /&gt;
:&#039;&#039;&#039;2008-12-27&#039;&#039;&#039;: [[25C3]] Chaos Computer Congress in Berlin&lt;br /&gt;
:&#039;&#039;&#039;2008-12-20 &amp;amp; 21&#039;&#039;&#039;: [[Creme Brulee]] Workshop on creating a french dessert, with bonus propane torch.&lt;br /&gt;
:&#039;&#039;&#039;2008-12-17 20:00&#039;&#039;&#039;: [[Machine Learning]] Birds-of-a-feather&lt;br /&gt;
:&#039;&#039;&#039;2008-11-24&#039;&#039;&#039;: [[Circuit Hacking Monday]] circuit design workshop&lt;br /&gt;
:&#039;&#039;&#039;2008-11-21, 7pm&#039;&#039;&#039;:[[Milk and Cookies]] -- [[User:Dmolnar|David Molnar]] hosts Milk and Cookies at 83CBring a short 5-7minute thing to read to othersBring a potluck cookie/snack/drink if you likeDavid will bring milk and cookies.&lt;br /&gt;
:&#039;&#039;&#039;2008-11-17, 7:30pm&#039;&#039;&#039;: [[Basic Bicycle Maintain]] - [[User:rubin110|Rubin]] and [[User:rigel|rigel]] hate it when we see a bike that isn&#039;t maintainedScreechy chains and clacking derailleur can go to hellBasic bike tune up, sharing the smarts on simple things you can do at home to make your ride suck a whole lot less.&lt;br /&gt;
:&#039;&#039;&#039;2008-11-16, 5:00pm&#039;&#039;&#039;: [[RepRap Soldering Party]] - help assemble RepRap!  RSVPs required on wiki! [[User:Adi|adi]]&lt;br /&gt;
:&#039;&#039;&#039;2008-11-16, 3:00pm&#039;&#039;&#039;: [[Oscilloscopes]] - Learn how to use this versatile tool to test electronic circuits Maximum 6 slots, please sign up ahead of time! [[User:dstaff|dstaff]]&lt;br /&gt;
:&#039;&#039;&#039;2008-10-31&#039;&#039;&#039;: [[Halloween Open House]] - NoiseBridge&#039;s own [[PPPC]] threw an awesome open house/halloween galaPost pictures if you got &#039;em!&lt;br /&gt;
:&#039;&#039;&#039;2008-10-25&#039;&#039;&#039;: [[Soldering Workshop]] and Pumpkin Hackin&#039; - Learn to solder for total newbies (or learn to solder better!), including surface mountAdditionally, carve your halloween pumpkins and enjoy some experimental pumpkin pie and/or soup.&lt;br /&gt;
:&#039;&#039;&#039;2008-10-07&#039;&#039;&#039;: (tuesday before meeting) - Etch a circuit boardI&#039;ll be trying a photo resist etching and a basic printed mask etchingThis is step 1/3 for a project called &amp;quot;annoying USB thingie&amp;quot; which will execute pre-defined keystrokes by sneaking a tiny USB dongle onto a victim^h^h^h^h^h buddy&#039;s computer.&lt;br /&gt;
:&#039;&#039;&#039;2008-09-13&#039;&#039;&#039;: [[Processing Workshop]] — Learn this very easy-to-use programming language! - [[Processing Workshop Report]]&lt;br /&gt;
:&#039;&#039;&#039;2008-02-16&#039;&#039;&#039;: [[Brain Machine Workshop|Brain Machine Making Workshop]]: Our first hardware sprint!&lt;br /&gt;
&lt;br /&gt;
[[Category:Top level]]&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37800</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37800"/>
		<updated>2014-01-06T07:29:36Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to Boolean */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0;            // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0;           // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1;    // 1.&lt;br /&gt;
NaN || 0;          // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, the concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, the object&#039;s toString is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } }&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf(); // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37799</id>
		<title>JavaScript/Notes/TypeConversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/TypeConversion&amp;diff=37799"/>
		<updated>2014-01-06T07:28:24Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Converting to Boolean */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. &lt;br /&gt;
&lt;br /&gt;
Various operations in JavaScript require conversion to and from primitive values. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Boolean ===&lt;br /&gt;
When evaluating any expression that requires a boolean value, the expression must be converted into a boolean using the internal &amp;lt;nowiki&amp;gt;[[ToBoolean]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var n = 0;&lt;br /&gt;
if(n) { // false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var t = !&amp;quot;&amp;quot;; // Empty string is falsy.&lt;br /&gt;
var f = !&amp;quot;f&amp;quot;; // Non-empty strings are not falsy.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All numbers boolean-convert to true except for the following: &amp;lt;code&amp;gt;+/-0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boolean operators use type-conversion for the evaluation of their left hand side operands.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
1 &amp;amp;&amp;amp; 0; // 1.&lt;br /&gt;
&amp;quot;&amp;quot; || 0; // 0.&lt;br /&gt;
null || undefined; // undefined.&lt;br /&gt;
undefined || 1; // 1.&lt;br /&gt;
NaN || 0; // 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All falsy values:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
false&lt;br /&gt;
&amp;quot;&amp;quot;&lt;br /&gt;
null&lt;br /&gt;
undefined&lt;br /&gt;
0&lt;br /&gt;
NaN&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to String ===&lt;br /&gt;
When either operand is a string, the concatenation is performed.&lt;br /&gt;
&lt;br /&gt;
Whenever the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; operator is used, the operands must be converted into primitive values. First, the interpreter calls the object&#039;s valueOf to get a primitive value. If the result is a primitive value, then that value is used. &#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { &lt;br /&gt;
  valueOf : function() { return 1; } &lt;br /&gt;
};&lt;br /&gt;
o + 1; // 2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, the object&#039;s toString is called. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var o = { toString : function() { return &amp;quot;1&amp;quot;; } }&lt;br /&gt;
o + 1; // &amp;quot;11&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Converting to Number ===&lt;br /&gt;
Converting strings is a very common requirement and many methods can be used. Any mathematical operator except the concatenation/addition operator will force type-conversion to number. &lt;br /&gt;
&lt;br /&gt;
=== Converting to Object === &lt;br /&gt;
Property access operation on string, number, and boolean primitives results in the creation of a temporary object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
true.toString(); // Boolean Object.&lt;br /&gt;
1.2.valueOf(); // Number object.&lt;br /&gt;
&amp;quot; foo &amp;quot;.trim(); // String Object.&lt;br /&gt;
&lt;br /&gt;
// null.toString(); // TypeError&lt;br /&gt;
// undefined.toString(); // TypeError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: http://dhtmlkitchen.com/how-property-access-works/&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/&amp;diff=37779</id>
		<title>JavaScript/Notes/</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/&amp;diff=37779"/>
		<updated>2014-01-06T03:54:41Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Type Conversion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You down with OOP? - Yeah you know me!&lt;br /&gt;
 &lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Introduction Introduction] ==&lt;br /&gt;
&#039;&#039;&#039;When&#039;&#039;&#039;: Every Friday night from 7:00PM &amp;amp;mdash; 8:45PM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher&#039;&#039;&#039;: Garrett Smith&lt;br /&gt;
&lt;br /&gt;
Hearken to the days of &amp;lt;code&amp;gt;view-source:&amp;lt;/code&amp;gt;! In this course, I&#039;ll explore Object Oriented JavaScript as it pertains to client side web programming. And some DOM stuff.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039; &lt;br /&gt;
https://noisebridge.net/wiki/Web_Development_Resources&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Array Array Methods added to EcmaScript 5]==&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Debugging Debugging]==&lt;br /&gt;
Browsers provide debuggers that can be launched from a breakpoint or the debugger keyword.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/ClassnameSwap ClassName Swap] ==&lt;br /&gt;
Event Delegation and the Cascade.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Function Functions] == &lt;br /&gt;
Functions are callable objects with an internal &amp;lt;nowiki&amp;gt;[[Scope]]&amp;lt;/nowiki&amp;gt; property. Learn how to call functions and pass functions to other functions, where they can be later called.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Prototype Prototype] ==&lt;br /&gt;
The prototype chain is used for reading property resolution. &lt;br /&gt;
&lt;br /&gt;
User-defined functions can be used to construct new objects. Objects have, on their prototype chain, the constructor&#039;s prototype.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Scope Scope Chain and Identifier Resolution]==&lt;br /&gt;
This class covers closures.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Singleton Singleton] ==&lt;br /&gt;
Singleton with information hiding in function scope.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/IBD Interface-Based Design]==&lt;br /&gt;
Two interfaces with a similar signature. The Devil&#039;s in the details -- encapsulate them!&lt;br /&gt;
&lt;br /&gt;
=== [https://noisebridge.net/wiki/JavaScript/Notes/EventNotificationSystem  Event Notification System]===&lt;br /&gt;
An abstract system for event notification.&lt;br /&gt;
=== [https://noisebridge.net/wiki/JavaScript/Notes/DomEvents DOM Events Adapter]===&lt;br /&gt;
An system for DOM event notification, designed to handle delegation and specific event models.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Factory   Factory]==&lt;br /&gt;
The Factory pattern, the Decorator pattern, newApply, and the holy grail: Abstract Factory.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/ParameterObject Parameter Object] == &lt;br /&gt;
Passing around lists of parameters? Typechecking arguments? Stop doing that. Here&#039;s how to make your code clearer and less error-prone.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/TypeConversion Type Conversion] ==&lt;br /&gt;
There are five primitive types in JavaScript: Null, Undefined, Boolean, String, Number. Various operations in JavaScript require conversion to and from primitive values.&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/&amp;diff=37778</id>
		<title>JavaScript/Notes/</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/&amp;diff=37778"/>
		<updated>2014-01-06T03:52:20Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You down with OOP? - Yeah you know me!&lt;br /&gt;
 &lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Introduction Introduction] ==&lt;br /&gt;
&#039;&#039;&#039;When&#039;&#039;&#039;: Every Friday night from 7:00PM &amp;amp;mdash; 8:45PM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher&#039;&#039;&#039;: Garrett Smith&lt;br /&gt;
&lt;br /&gt;
Hearken to the days of &amp;lt;code&amp;gt;view-source:&amp;lt;/code&amp;gt;! In this course, I&#039;ll explore Object Oriented JavaScript as it pertains to client side web programming. And some DOM stuff.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039; &lt;br /&gt;
https://noisebridge.net/wiki/Web_Development_Resources&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Array Array Methods added to EcmaScript 5]==&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Debugging Debugging]==&lt;br /&gt;
Browsers provide debuggers that can be launched from a breakpoint or the debugger keyword.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/ClassnameSwap ClassName Swap] ==&lt;br /&gt;
Event Delegation and the Cascade.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Function Functions] == &lt;br /&gt;
Functions are callable objects with an internal &amp;lt;nowiki&amp;gt;[[Scope]]&amp;lt;/nowiki&amp;gt; property. Learn how to call functions and pass functions to other functions, where they can be later called.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Prototype Prototype] ==&lt;br /&gt;
The prototype chain is used for reading property resolution. &lt;br /&gt;
&lt;br /&gt;
User-defined functions can be used to construct new objects. Objects have, on their prototype chain, the constructor&#039;s prototype.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Scope Scope Chain and Identifier Resolution]==&lt;br /&gt;
This class covers closures.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Singleton Singleton] ==&lt;br /&gt;
Singleton with information hiding in function scope.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/IBD Interface-Based Design]==&lt;br /&gt;
Two interfaces with a similar signature. The Devil&#039;s in the details -- encapsulate them!&lt;br /&gt;
&lt;br /&gt;
=== [https://noisebridge.net/wiki/JavaScript/Notes/EventNotificationSystem  Event Notification System]===&lt;br /&gt;
An abstract system for event notification.&lt;br /&gt;
=== [https://noisebridge.net/wiki/JavaScript/Notes/DomEvents DOM Events Adapter]===&lt;br /&gt;
An system for DOM event notification, designed to handle delegation and specific event models.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Factory   Factory]==&lt;br /&gt;
The Factory pattern, the Decorator pattern, newApply, and the holy grail: Abstract Factory.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/ParameterObject Parameter Object] == &lt;br /&gt;
Passing around lists of parameters? Typechecking arguments? Stop doing that. Here&#039;s how to make your code clearer and less error-prone.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/TypeConversion Type Conversion] ==&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/&amp;diff=37777</id>
		<title>JavaScript/Notes/</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/&amp;diff=37777"/>
		<updated>2014-01-06T03:44:35Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You down with OOP? - Yeah you know me!&lt;br /&gt;
 &lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Introduction Introduction] ==&lt;br /&gt;
&#039;&#039;&#039;When&#039;&#039;&#039;: Every Friday night from 7:00PM &amp;amp;mdash; 8:45PM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher&#039;&#039;&#039;: Garrett Smith&lt;br /&gt;
&lt;br /&gt;
Hearken to the days of &amp;lt;code&amp;gt;view-source:&amp;lt;/code&amp;gt;! In this course, I&#039;ll explore Object Oriented JavaScript as it pertains to client side web programming. And some DOM stuff.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039; &lt;br /&gt;
https://noisebridge.net/wiki/Web_Development_Resources&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Array Array Methods added to EcmaScript 5]==&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Debugging Debugging]==&lt;br /&gt;
Browsers provide debuggers that can be launched from a breakpoint or the debugger keyword.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/ClassnameSwap ClassName Swap] ==&lt;br /&gt;
Event Delegation and the Cascade.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Function Functions] == &lt;br /&gt;
Functions are callable objects with an internal &amp;lt;nowiki&amp;gt;[[Scope]]&amp;lt;/nowiki&amp;gt; property. Learn how to call functions and pass functions to other functions, where they can be later called.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Prototype Prototype] ==&lt;br /&gt;
The prototype chain is used for reading property resolution. &lt;br /&gt;
&lt;br /&gt;
User-defined functions can be used to construct new objects. Objects have, on their prototype chain, the constructor&#039;s prototype.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Scope Scope Chain and Identifier Resolution]==&lt;br /&gt;
This class covers closures.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Singleton Singleton] ==&lt;br /&gt;
Singleton with information hiding in function scope.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/IBD Interface-Based Design]==&lt;br /&gt;
Two interfaces with a similar signature. The Devil&#039;s in the details -- encapsulate them!&lt;br /&gt;
&lt;br /&gt;
=== [https://noisebridge.net/wiki/JavaScript/Notes/EventNotificationSystem  Event Notification System]===&lt;br /&gt;
An abstract system for event notification.&lt;br /&gt;
=== [https://noisebridge.net/wiki/JavaScript/Notes/DomEvents DOM Events Adapter]===&lt;br /&gt;
An system for DOM event notification, designed to handle delegation and specific event models.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Factory   Factory]==&lt;br /&gt;
The Factory pattern, the Decorator pattern, newApply, and the holy grail: Abstract Factory.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/ParameterObject Parameter Object] == &lt;br /&gt;
Passing around lists of parameters? Typechecking arguments? Stop doing that. Here&#039;s how to make your code clearer and less error-prone.&lt;br /&gt;
&lt;br /&gt;
== Type Conversion ==&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/Prototype&amp;diff=37776</id>
		<title>JavaScript/Notes/Prototype</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/Prototype&amp;diff=37776"/>
		<updated>2014-01-06T03:43:41Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Prototype Chain == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Every object created by a constructor has an implicit reference (called the object’s prototype) to the value of its constructor’s “prototype” property. Furthermore, a prototype may have a non-null implicit reference to its prototype, and so on; this is called the prototype chain. When a reference is made to a property in an object, that reference is to the property of that name in the first object in the prototype chain that contains a property of that name. In other words, first the object mentioned directly is examined for such a property; if that object contains the named property, that is the property to which the reference refers; if that object does not contain the named property, the prototype for that object is examined next; and so on. ([http://ecma-international.org/ecma-262/5.1/#sec-4.2.1 &amp;amp;sect;4.2.1 Objects]).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Constructors === &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function MyConstructor() {&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var anObj = new MyConstructor;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every user-defined function has a prototype property, provided by the implementation. The prototype property that is provided by the implementation has a &amp;lt;code&amp;gt;constructor&amp;lt;/code&amp;gt; property that points back to the constructor function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function MyConstructor() {&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
alert(MyConstructor.prototype.constructor);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prototype property is used for prototype inheritance of shared properties. When any function is used in a new Expression, a new object is created and given a link to the constructor function&#039;s `prototype` property.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;8.6.2 Internal Properties and Methods&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
All objects have an internal property called &amp;lt;nowiki&amp;gt;[[Prototype]]&amp;lt;/nowiki&amp;gt;. The value of this property is either null or an object and is used for implementing inheritance. Whether or not a native object can have a host object as its &amp;lt;nowiki&amp;gt;[[Prototype]]&amp;lt;/nowiki&amp;gt; depends on the implementation. Every &amp;lt;nowiki&amp;gt;[[Prototype]]&amp;lt;/nowiki&amp;gt; chain must have finite length (that is, starting from any object, recursively accessing the &amp;lt;nowiki&amp;gt;[[Prototype]]&amp;lt;/nowiki&amp;gt; internal property must eventually lead to a null value). Named data properties of the &amp;lt;nowiki&amp;gt;[[Prototype]]&amp;lt;/nowiki&amp;gt; object are inherited (are visible as properties of the child object) for the purposes of get access, but not for put access. Named accessor properties are inherited for both get access and put access.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function MyConstructor() {&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
MyConstructor.prototype = {&lt;br /&gt;
    toString : function() {&lt;br /&gt;
      return &amp;quot;[object MyConstructor]&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
alert(new MyConstructor().toString())&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
As shown in the above example, any function&#039;s prototype property can be replaced by any user-defined object. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function MyConstructor(name) {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
MyConstructor.prototype = {&lt;br /&gt;
    toString : function() {&lt;br /&gt;
      return &amp;quot;[object MyConstructor]&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
function MySubclass(name) { }&lt;br /&gt;
MySubclass.prototype = new MyConstructor;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Subclassing ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Base class.&lt;br /&gt;
function MyConstructor(name) {&lt;br /&gt;
  this.name = name;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Prototype.&lt;br /&gt;
MyConstructor.prototype = {&lt;br /&gt;
    toString : function() {&lt;br /&gt;
      return &amp;quot;[object MyConstructor]&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Subclass.&lt;br /&gt;
function MySubclass(name) { &lt;br /&gt;
// Call super constructor.&lt;br /&gt;
  MyConstructor.call(this, name);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shadowing == &lt;br /&gt;
(whiteboard diagram)&lt;br /&gt;
&lt;br /&gt;
== Object.create ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;// Extend prototype.&lt;br /&gt;
MySubclass.prototype = Object.create(MyConstructor.prototype);&lt;br /&gt;
&lt;br /&gt;
MySubclass.prototype.valueOf = function() {&lt;br /&gt;
  return this.name;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create Object.create() | MDN]&lt;br /&gt;
A more complex [http://dhtmlkitchen.com/learn/js/enumeration/prototype-chain.html Prototype Chain] inheritance explanation, example, and diagram.&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/Scope&amp;diff=37222</id>
		<title>JavaScript/Notes/Scope</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/Scope&amp;diff=37222"/>
		<updated>2013-12-19T19:44:13Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Block Scope */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Scope Chain and Identifier Resolution.=&lt;br /&gt;
A &amp;quot;closure&amp;quot; is function scope that has a binding to its containing scope.&lt;br /&gt;
&lt;br /&gt;
== Example == &lt;br /&gt;
[http://jsbin.com/OxOSObuc/1/edit jsbin]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
(function () {&lt;br /&gt;
  var currentScope = 1, one = &#039;scope1&#039;;&lt;br /&gt;
  alert(currentScope);&lt;br /&gt;
  (function () {&lt;br /&gt;
    var currentScope = 2, two = &#039;scope2&#039;;&lt;br /&gt;
    alert(currentScope);&lt;br /&gt;
    (function () {&lt;br /&gt;
      var currentScope = 3, three = &#039;scope3&#039;;&lt;br /&gt;
      alert(currentScope);&lt;br /&gt;
      alert(one + two + three); // climb up the scope chain to get one and two&lt;br /&gt;
    }());&lt;br /&gt;
  }());&lt;br /&gt;
}());&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example == &lt;br /&gt;
[http://jsbin.com/OxOSObuc/1/edit jsbin]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function outer() {&lt;br /&gt;
  var secret = 1;&lt;br /&gt;
    function inner() {&lt;br /&gt;
      return secret;&lt;br /&gt;
    }&lt;br /&gt;
  return inner;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var inner = outer();&lt;br /&gt;
var result = inner();&lt;br /&gt;
console.log(result); // explain the result.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Block Scope == &lt;br /&gt;
Normally, the only way to create scope in JavaScript is by creating a function. However, a little known anomaly is that the catch block augments the scope with a new object. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function x() {&lt;br /&gt;
  var result = typeof x;&lt;br /&gt;
  try {&lt;br /&gt;
    y; // ReferenceError&lt;br /&gt;
  } catch(x) {&lt;br /&gt;
    result = [result, x];&lt;br /&gt;
  }&lt;br /&gt;
  result.push(typeof x);&lt;br /&gt;
  alert(result);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
http://jsbin.com/EveMAVIP/1/edit&lt;br /&gt;
&amp;lt;h3&amp;gt;Catch Block Identifier&amp;lt;/h3&amp;gt;&lt;br /&gt;
In the above code, a new DeclarativeEnvironment is dynamically created when the catch block is entered, with the Identifier `x` being added to its scope, and that scope being used for the duration of the catch block. See: [http://ecma-international.org/ecma-262/5.1/#sec-12.14 Ecma-262 &amp;amp;sect; 12.14].&lt;br /&gt;
&lt;br /&gt;
== Variable Scope Inside function == &lt;br /&gt;
Richard Cornford explains Variable Instantiation, as defined in ECMA-262 r3.&lt;br /&gt;
http://bytes.com/topic/javascript/answers/556357-variable-scope-inside-function-did-i-get-correctly#post2171544&lt;br /&gt;
&lt;br /&gt;
== Declaration Binding Instantiation == &lt;br /&gt;
[http://www.ecma-international.org/ecma-262/5.1/#sec-10.5 &amp;amp;sect; 10.5]&lt;br /&gt;
Every execution context has an associated VariableEnvironment. Variables and functions declared in ECMAScript code evaluated in an execution context are added as bindings in that VariableEnvironment’s Environment Record. For function code, parameters are also added as bindings to that Environment Record.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From [https://groups.google.com/forum/#!topic/jsmentors/JnHM3Pvesp8 global object property access].&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Consider the following &amp;quot;weird&amp;quot; behavior with the global object:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
console.log(window.foo);   // this returns undefined&lt;br /&gt;
console.log(this.foo);        // this returns undefined&lt;br /&gt;
console.log(foo);              // this is a reference error&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Accessing a non existent property on an object should return&lt;br /&gt;
undefined... which accounts for the first two cases... but whats going&lt;br /&gt;
on in the third case?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the ECMAScript specification on&lt;br /&gt;
&amp;lt;code&amp;gt;[http://www.ecma-international.org/ecma-262/5.1/#sec-15.11.6.3 ReferenceError]&amp;lt;/code&amp;gt; explains that &amp;lt;code&amp;gt;ReferenceError&amp;lt;/code&amp;gt; is also thrown in strict mode when making an assignment to an undeclared identifer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
(function(){ &amp;quot;use strict&amp;quot;; erwt = 1; })(); // ReferenceError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to the example, getting a property off an object, the prototype chain is&lt;br /&gt;
searched. When that happens, if the property is not found, then&lt;br /&gt;
&amp;lt;code&amp;gt;undefined&amp;lt;/code&amp;gt; results.&lt;br /&gt;
&lt;br /&gt;
But with scope chain resolution, when the property is not resolved, an&lt;br /&gt;
error results.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;white-space:pre&amp;quot;&amp;gt;&lt;br /&gt;
| 11.1.2   Identifier Reference&lt;br /&gt;
| An Identifier is evaluated by performing Identifier Resolution&lt;br /&gt;
| as specified in 10.3.1. The result of evaluating an Identifier&lt;br /&gt;
| is always a value of type Reference.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;white-space:pre&amp;quot;&amp;gt;&lt;br /&gt;
| 10.3.1   Identifier Resolution&lt;br /&gt;
| Identifier resolution is the process of determining the binding of an&lt;br /&gt;
| Identifier using the &amp;lt;code&amp;gt;LexicalEnvironment&amp;lt;/code&amp;gt; of the running execution context.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;white-space:pre&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; console.log(foo);              // this is a reference error&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Identifier &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; is resolved to a Reference with null as the base&lt;br /&gt;
object. In ES5, it looks as if it is a Reference with base object as&lt;br /&gt;
&amp;lt;code&amp;gt;undefined&amp;lt;/code&amp;gt;. With either spec, the result will be the same:&lt;br /&gt;
&amp;lt;code&amp;gt;ReferenceError&amp;lt;/code&amp;gt;. ES5 gets a little fancy with the explanation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;white-space:pre&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; The Mozilla docs on Reference error simply state:&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt; A ReferenceError is thrown when trying to dereference a variable that&lt;br /&gt;
&amp;gt; has not been declared.&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
They mean that when you try and get the value of an Identifier in a&lt;br /&gt;
PrimaryExpression and the Identifier is not resolved, then the base&lt;br /&gt;
object is null (or now &amp;lt;code&amp;gt;undefined&amp;lt;/code&amp;gt;) that the attempt to get at the&lt;br /&gt;
value is going to result in a &amp;lt;code&amp;gt;ReferenceError&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So when you have an Expression like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
console.log(foo);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or even just a PrimaryExpression:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
foo // a PrimaryExpression.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Identifier &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; must be first resolved. The base object for that&lt;br /&gt;
value is null (or so&amp;quot;undefined&amp;quot;) and the when the expression is&lt;br /&gt;
evaluated, it tries to get the value, and then finds the base object&lt;br /&gt;
is null and throws a ReferenceError is thrown.&lt;br /&gt;
&lt;br /&gt;
| 8.7.1   GetValue (V)&lt;br /&gt;
|&lt;br /&gt;
|   1. If Type(V) is not Reference, return V.&lt;br /&gt;
|   2. Let base be the result of calling GetBase(V).&lt;br /&gt;
|   3. If IsUnresolvableReference(V), throw a ReferenceError exception.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
| IsUnresolvableReference(V). Returns true if the base value&lt;br /&gt;
| is undefined and false otherwise.&lt;br /&gt;
&lt;br /&gt;
The MDC docs might not say it, and you didn&#039;t ask, either, but in&lt;br /&gt;
strict code, assignment to undeclared Identifier will result in&lt;br /&gt;
referenceerror too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;white-space:pre&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; I realize accessing a non existent property on an object should return&lt;br /&gt;
&amp;gt; undefined... which accounts for the first two cases... but whats going&lt;br /&gt;
&amp;gt; on in the third case?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An Identifier resolution was performed on the scope chain. Just&lt;br /&gt;
remember the difference when getting a property fails: With object&lt;br /&gt;
properties - the prototype chain is used and the result is undefined.&lt;br /&gt;
With unqualified Identifiers, the scope chain is searched in the&lt;br /&gt;
result is ReferenceError.&lt;br /&gt;
&lt;br /&gt;
==Omitting var in VariableDeclaration==&lt;br /&gt;
Assignment without var is not a variable declaration.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
foo = 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The identifier foo must be resolved up the scope chain (see 11.13.1 &lt;br /&gt;
Simple Assignment, also below). If foo is not found, a foo property is &lt;br /&gt;
created on the global object (see 8.7.2 &amp;lt;code&amp;gt;PutValue&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
This can cause further problems in IE with IE&#039;s global scope polluter. See: [https://groups.google.com/forum/#!msg/comp.lang.javascript/K3PD0gJgUxY/0R0OZvHs2K4J Extra Properties: The Element Id Resolver Object]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
11.13.1 Simple Assignment (= )&lt;br /&gt;
  The production AssignmentExpression : LeftHandSideExpression =&lt;br /&gt;
AssignmentExpression is evaluated as follows:&lt;br /&gt;
  1. Evaluate LeftHandSideExpression.&lt;br /&gt;
  2. Evaluate AssignmentExpression.&lt;br /&gt;
  3.Call GetValue(Result(2)).&lt;br /&gt;
  4.Call PutValue(Result(1), Result(3)).&lt;br /&gt;
  5.Return Result(3).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 4 leads to &amp;lt;code&amp;gt;PutValue(foo, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8.7.2 PutValue(V, W)&lt;br /&gt;
  1. If Type(V) is not Reference, throw a ReferenceError exception.&lt;br /&gt;
  2. Call GetBase(V).&lt;br /&gt;
  3. If Result(2) is null, go to step 6.&lt;br /&gt;
  4. Call the [[Put]] method of Result(2), passing GetPropertyName(V)&lt;br /&gt;
for the property name and W for the value.&lt;br /&gt;
  5. Return.&lt;br /&gt;
  6. Call the [[Put]] method for the global object, passing&lt;br /&gt;
GetPropertyName(V) for the property name and W for the value.&lt;br /&gt;
  7. Return.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 2, &amp;lt;code&amp;gt;GetBase(v)&amp;lt;/code&amp;gt; is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, so that leads to step 6. That leads to &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Put]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (foo, 1) on the global object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8.6.2.2 [[Put]](P, V)&lt;br /&gt;
  When the [[Put]] method of O is called with property P and value V,&lt;br /&gt;
the following steps are taken:&lt;br /&gt;
  1. Call the [[CanPut]] method of O with name P.&lt;br /&gt;
  2. If Result(1) is false, return.&lt;br /&gt;
  3. If O doesn&#039;t have a property with name P, go to step 6.&lt;br /&gt;
  4. Set the value of the property to V. The attributes of the&lt;br /&gt;
property are not changed.&lt;br /&gt;
  5. Return.&lt;br /&gt;
  6. Create a property with name P, set its value to V and give it&lt;br /&gt;
empty attributes.&lt;br /&gt;
  7. Return.&lt;br /&gt;
  Note, however, that if O is an Array object, it has a more elaborate&lt;br /&gt;
[[Put]] method (15.4.5.1).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note step 6: Create a property with name P, set its value to V and give &lt;br /&gt;
it empty attributes.&lt;br /&gt;
&lt;br /&gt;
Global object properties (user-defined ones, at least) are &amp;lt;nowiki&amp;gt;[[Configurable]]&amp;lt;/nowiki&amp;gt;,&lt;br /&gt;
variables, global or otherwise, are not.&lt;br /&gt;
&lt;br /&gt;
User-defined properties are, by default, &amp;lt;nowiki&amp;gt;[[Configurable]]&amp;lt;/nowiki&amp;gt;, which means that they can be deleted. &lt;br /&gt;
&lt;br /&gt;
If code is eval code, then let configurableBindings be true else let configurableBindings be false.&lt;br /&gt;
&lt;br /&gt;
http://www.ecma-international.org/ecma-262/5.1/#sec-10.5&lt;br /&gt;
&lt;br /&gt;
== Assignment ==&lt;br /&gt;
Find Two Examples of Closures in code.&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=User:Garrett&amp;diff=37209</id>
		<title>User:Garrett</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=User:Garrett&amp;diff=37209"/>
		<updated>2013-12-19T01:14:41Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: Category:Applicant&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Applicant]] &lt;br /&gt;
&lt;br /&gt;
== Ambitions ==&lt;br /&gt;
&lt;br /&gt;
=== Guitar Improvisation Class ===&lt;br /&gt;
&amp;lt;p&amp;gt;&#039;&#039;&#039;Web:&#039;&#039;&#039; &lt;br /&gt;
[http://chordcycles.com ChordCycles], learning and knowledge.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;I like to share my art and mind and discipline with others of all levels. I can teach in my own apartment or in a room that is secure and where I can make some noise.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Berklee: Consumerism and putting money and marketing before education. Little emphasis on performance, even for performance majors.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To make the school community-driven, cooperative, and affordable. If you are broke but can play and show up on time, you may be accommodated.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Kids who went to Berklee because they were inspired by Steve Vai got &amp;quot;financial aid&amp;quot; and student loans only to accrue $80,000+ student loan debt, which they slavishly repay over the next 10-20 years, working a job that requires a &amp;quot;bachelor&#039;s degree&amp;quot;. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
There is [http://www.yelp.com/biz/berklee-college-of-music-boston#hrid:KOAri3u0lGhUiO-dbk-Y-g no good reason] why the cost of music school must be so high. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JavaScript Class ===&lt;br /&gt;
Teaching [[JavaScript]].&lt;br /&gt;
&lt;br /&gt;
=== Food justice - Public Growing ===&lt;br /&gt;
&amp;lt;p&amp;gt;Based on [http://en.wikipedia.org/wiki/Voluntaryism voluntaryism] principles of taking neither government nor corporate money, I am trying to build a web application for allowing people to grow food in open, public space for free. And I need help!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
We need someone to do the database and object model and Node.js hosting. If you want to get involved, please contact my gmail: dhtmlkitchen.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stuff I like ==&lt;br /&gt;
=== Guitar ===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
I like to play and teach. Some of my musical influence include J.S. Bach, Paul Gilbert, and Yngwie Malmsteen.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exercise ===&lt;br /&gt;
&amp;lt;p&amp;gt;Strength training, martial arts, and parkour. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nutrition and Health ===&lt;br /&gt;
&amp;lt;p&amp;gt;I am interested in organic, medicinal foods, local foods, food sovereignty raw milk, pastured eggs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Skills, Things I Do ==&lt;br /&gt;
=== JavaScript ===&lt;br /&gt;
&amp;lt;p&amp;gt;I wrote many articles on dhtmlkitchen.com, covering advanced subjects that tend to deal the language itself, as well as patterns and object oriented javascript, including higher-order functions, EventRegistry, AbstractFactory, Encapsulation.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Posts in the archives on &lt;br /&gt;
[http://groups.google.com/groups/search?num=10&amp;amp;as_mind=1&amp;amp;as_minm=1&amp;amp;as_miny=2013&amp;amp;as_maxd=1&amp;amp;as_maxm=1&amp;amp;as_maxy=2013&amp;amp;as_ugroup=comp.lang.javascript&amp;amp;as_uauthors=Garrett+Smith&amp;amp;safe=off comp.lang.javascript] newsgroup, and the [http://jibbering.org/faq c.l.js FAQ]. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
I&#039;ve built things for companies where marketing needs weren&#039;t necessarily geared towards generating actual value to the world.&lt;br /&gt;
&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Massage ===&lt;br /&gt;
&amp;lt;p&amp;gt;Professionally trained at School of Traditional Thai Massage. I practice deep work, ideal for those who exercise hard (like me).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=Category:Events&amp;diff=37199</id>
		<title>Category:Events</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=Category:Events&amp;diff=37199"/>
		<updated>2013-12-18T20:32:59Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Sunday */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Note that this page uses transclusionContent between the &amp;quot;onlyinclude&amp;quot; tags below will be pushed to the main page --&amp;gt;&lt;br /&gt;
Official, Semi-Official, one-off and other events at the Noisebridge space.&lt;br /&gt;
&lt;br /&gt;
=Event Calendar=&lt;br /&gt;
Not all events make it onto this calendarMany events only make it to the Discussion or Announcements [[Mailinglist | mailing lists]], [[IRC]] or in person at [[:Category:Meeting_Notes | Tuesday meetings]]. Best of all, Noisebridge is about people getting together at the space in San Francisco to do stuff..like in person. Some events just happen. Pay attention!&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to host an event yourself, we recommend involving at least one Noisebridge member, and have advice on  [[Hosting_an_Event|hosting an event]] at Noisebridge.&lt;br /&gt;
&lt;br /&gt;
View the  [https://www.google.com/calendar/embed?src=1uesj915rces4cbmcr8j3sg8t0%40group.calendar.google.com&amp;amp;ctz=America/Los_Angeles Google Calendar].&lt;br /&gt;
&lt;br /&gt;
To post Google Calendar entries for your event or to gain access to do so for yourself, ask on the noisebridge-discuss mailing list.&lt;br /&gt;
&amp;lt;!-- Items inside this &amp;quot;onlyinclude&amp;quot; tag will be pushed to the main page --&amp;gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Upcoming Events &amp;lt;small&amp;gt;[https://www.noisebridge.net/index.php?title=Category:Events&amp;amp;action=edit&amp;amp;section=2 edit]&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&amp;lt;!-- Please read our &amp;quot;Hosting an Event&amp;quot; page and possibly follow some of the guidelines there before posting your event herehttps://www.noisebridge.net/wiki/Hosting_an_Event --&amp;gt;&lt;br /&gt;
&amp;lt;!-- It&#039;s smart to add in a link to a wiki page with more information about your even, and a way to contact the event organizer(s)Thanks! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Thursday, December 26, 6.00 pm&lt;br /&gt;
|title        = 30c3&lt;br /&gt;
|description  = Congress everywhere:Noisebridge, save yourself the jet lag and come to Noisebridge to experience the annual Chaos Communication Congress. This event will run concurently thru Monday with the 4 day event in Hamburg&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Sunday Jan 12th 2014, 12.00 pm&lt;br /&gt;
|title        =GodWaffleNoisePancakes &lt;br /&gt;
|description  = Join us for a noise performance and vegan pancakes for San Francisco&#039;s longest running noise/experimental music show, in the hackatorium&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://noisebridge.net/wiki/30c3&lt;br /&gt;
&lt;br /&gt;
=== Recurring Events &amp;lt;small&amp;gt;[https://www.noisebridge.net/index.php?title=Category:Events&amp;amp;action=edit&amp;amp;section=3 edit]&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&amp;lt;!-- Please read our &amp;quot;Hosting an Event&amp;quot; page and possibly follow some of the guidelines there before posting your event herehttps://www.noisebridge.net/wiki/Hosting_an_Event --&amp;gt;&lt;br /&gt;
&amp;lt;!-- It&#039;s smart to add in a link to a wiki page with more information about your even, and a way to contact the event organizer(s)Thanks! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Large turnout events should be written in &#039;&#039;&#039;bold&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Monday ====&lt;br /&gt;
* &#039;&#039;&#039;19:30 - 22:00 [[Circuit Hacking Mondays]]&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;(Early start of 3:00pm on Monday holidays.)&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;div style=&amp;quot;padding-left: 30px; max-width: 725px;&amp;quot;&amp;gt;- Learn to solder! And make cool things with electronics. [[User:maltman23|Mitch]], Rolf, [[User:Miloh|Miloh]], and others will bring kits to make cool, hackable things for all skill levels that you can bring home after you make them! Bring your own projects to hack! Bring things to fix! All ages. All welcome!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- 2013-02-02 * 19:00 [[Cook-in class]] Bring your ideas/food/appetite and try your hand at cooking--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;18:00-20:00 [[Collaborative Coding]]&#039;&#039;&#039; - All levels and languages welcome for open, friendly coding session. Bring tutorials, projects, or just yourself. &#039;&#039;&#039;Starting 2013-12-16&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;20:00 - 22:00 [[Front-end Web Development]]&#039;&#039;&#039; - &#039;&#039;&#039;Class on hiatus from 2013-12-16 until 2014-01-06.&#039;&#039;&#039;&amp;lt;br&amp;gt; Learn HTML/CSS/JS. We&#039;re covering the basics and then going in-depth on different topics every week. Recap of last week&#039;s material starts at 19:30.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;[[House_Keeping#Trash_and_Recycling|Take Out the Trash Night]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuesday ====&lt;br /&gt;
* 15:00 - 17:00 [[Linux System Administration class]] meets in the Turing classroom. Stay tuned to possible future changes to the format and topics of this workshop. Focus remains on server systems; less on workstation problems.  &lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;18:00 [[Office Hours]]&#039;&#039;&#039; Have pressing questions about Noisebridge, or need help dealing with nonsense/bs? Find [[user:flamsmark|Tom]] at the space or [https://foursquare.com/v/the-sycamore/4c253819c11dc9b634d82624 the Sycamore] for help before the meeting. --&amp;gt;&lt;br /&gt;
* 18:00 - 20:00 Wiki Hacking, learn how to use the Noisebridge wiki by creating your own user account and page, as well as editing content. Meet by the fire escape at the &amp;quot;Dream Station&amp;quot;. Hosted by [[User:Thex|J.C.]]&lt;br /&gt;
* 19:00 - 20:00 [https://noisebridge.net/wiki/Radio Noisebridge Radio] meeting somewhere in the space.&lt;br /&gt;
* 19:00 - 21:00 [[Machine Learning | Machine_Learning]] Learn some data science! For people at all levels.&lt;br /&gt;
* 19:00 - 21:00 [[PyClass | Advanced Python]] Slaying the web with Python 2.7 &amp;amp; 3.3. Instructed by Liz and Kellan in Turing.&lt;br /&gt;
* 17:00 - 19:00 &#039;&#039;&#039;*ix&#039;&#039;&#039; [[Linux.BSD.UNIX Open Learning and Hacking]] Learning by doing in Linux/OpenBSD/FreeBSD/Unix/Others in Turing. Workstation problems and projects okay.&lt;br /&gt;
* &#039;&#039;&#039;19:00 - 21:00 [http://www.railsschool.org Ruby and Rails class]&#039;&#039;&#039; - Seminar and workshop for learning everything about Ruby, Rails, and web application development (Church classroom).&lt;br /&gt;
* &#039;&#039;&#039;19:30 - 21:00 [[Light Patterns with LEDs and Microcontrollers]]&#039;&#039;&#039; - Learn how to make light dance and do your bidding! We will make Arduino sketches to control multicolor LED pixels.&lt;br /&gt;
&amp;lt;!-- * 19:30 [[Spacebridge]] - Noisebridge&#039;s space program --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;18:00 - 19:30 [[Rebase|Great Noisebridge Rebase of 2013!]]&#039;&#039;&#039; - Discussion and Proposal development regarding the ongoing Rebase initiative. Meet in the Hackitorium. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;20:00 [[Meetings|Noisebridge Weekly Meeting]]&#039;&#039;&#039; - Introducing new people and events to the space, general discussion, and decision making. &#039;&#039;&#039;This is your space, folks. Come on out here in person to express what you think about what&#039;s going on with it!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Wednesday ====&lt;br /&gt;
&amp;lt;!-- On hiatus 2013-01-08 * 18:00 [[Replicator Wednesday|Replicator Wednesday]]! This event is on hiatus from Noisebridge until further notice.  New &amp;quot;series&amp;quot; starts January 9th! --&amp;gt;&lt;br /&gt;
* 16:00 - 18:00 Locks Sport. Picking, repining, etc. Try to bring your own picks. If not we will try to make some here. We will go on as long as people want to stick around.&lt;br /&gt;
* 18:00 - 20:00 [[Linux &amp;amp; BSDiscussion|Linux/BSDiscussion and Problem Solving]] - Linux/BSD meetup in the Turing classroom.&lt;br /&gt;
* 19:00 - 20:00 [[Feminist Book Club for Men]] - On the second Wednesday of every month, we try to educate ourselves about feminism, and not being quite as much of a jerk.&lt;br /&gt;
* 19:30 - 21:00 [[DreamTeam| Dream Team Neuro Hackery]] - EEG research &amp;amp; development project with general interest in sleep, dreaming, creative intelligence, and many loosely related topics such as: neurophysiology, signal processing, cognitive neuroscience, and (especially) hacking code and devices for data acquisition and analysis.  Join us at the [[CollaborationStation]] near the Hackatorium / 3D printing area.  (Discussion sometimes starts closer to 8 PM, usually shifting focus by 9 PM to more technical aspects of specific projects).  &lt;br /&gt;
* 19:00 - 21:00 [[PyClass]] - Intro to Python in Church Classroom.&lt;br /&gt;
* 19:30 - 22:00 [[BACE Timebank]] (1st Wednesdays every &#039;&#039;odd&#039;&#039; month) Next meeting on Wed Nov 6, 8pm - Help organize community mutual aid by trading in equal time credits. To find out more and join go to [http://sfbace.org sfbace.org].&lt;br /&gt;
&lt;br /&gt;
==== Thursday ====&lt;br /&gt;
* [[House_Keeping#Trash_and_Recycling|Trash Night]]  - Take out the trash for Friday morning!&lt;br /&gt;
* &#039;&#039;&#039;18:00-20:00 [[Collaborative Coding]]&#039;&#039;&#039; - All levels and languages welcome for open, friendly coding session. Bring tutorials, projects, or just yourself. &#039;&#039;&#039;Starting 2013-12-16&#039;&#039;&#039;.&lt;br /&gt;
* 18:30 [[Digital Archivists]] - Help build a book scanner for Noisebridge&lt;br /&gt;
* 19:00 [[Tastebridge]] / [[Vegan Hacker]] Monthly Food Hacking, last Thursday of every month (Except for Dec 2013, when it&#039;ll be on Dec 5th!), 7pm http://www.veganhackersf.com&lt;br /&gt;
* 19:00 - 22:00 [[3D Thursday]] Weekly meetup (non-3rd-thursdays) at Noisebridge focusing on 3D Printers, CNC machines, FabLabs, and replicating machines of all kinds.&lt;br /&gt;
&amp;lt;!-- * 19:00 [[german_corner|German Corner]] Learn and practice speaking German --&amp;gt;&lt;br /&gt;
&amp;lt;!-- on hiatus? 2013-01-08 * 19:00 [[wearable fashion techies]] first meeting Nov 1st --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;19:00 - 21:00 [[Letter Lovers]]&#039;&#039;&#039; - Learn &amp;amp; create calligraphy, lettering, fonts, handwriting, and all things letters. &#039;&#039;&#039;On hiatus until January 2014&#039;&#039;&#039;&lt;br /&gt;
* 20:00 [[Front-end_Web_Development#Lab|Front-end Web Development Lab]] - &#039;&#039;&#039;On Wednesday, December 11 this week only.&#039;&#039;&#039; Understand by doing! A recap of Monday&#039;s lecture in workshop form - and a good time for one-on-one help with the material.&lt;br /&gt;
* &#039;&#039;&#039;20:00 [[Five Minutes of Fame]]&#039;&#039;&#039; - lightning talks every 3rd Thursday of the month&lt;br /&gt;
&lt;br /&gt;
==== Friday ====&lt;br /&gt;
&lt;br /&gt;
* 16:00 - 22:00 [[FUN Tutoring]] @ [[CollaborationStation]]&lt;br /&gt;
* 19:00 - 21:00 [https://noisebridge.net/wiki/JavaScript/ JavaScript Class] EcmaScript programming language, DOM, Object Oriented JavaScript, and Events.&lt;br /&gt;
&lt;br /&gt;
==== Saturday ====&lt;br /&gt;
&amp;lt;!-- 2013-02-02 * 18:30-20:30 Beginner [[French]] - Learn basic grammar and sentence structure. Classes meet in the Turing room --&amp;gt;&lt;br /&gt;
* 12:00 - 18:00 &#039;&#039;&#039;[[modular|Modular and Analog Synth Workshop]]&#039;&#039;&#039; NEXT WORKSHOP TBA Learn the basics of analog synthesis on a modular synth with Douglas. we will meet in the church.&lt;br /&gt;
&lt;br /&gt;
==== Sunday ====&lt;br /&gt;
* 12:30 - 19:30 [[Dungeons and Dragons]] in Church, not currently looking for new players.&lt;br /&gt;
* 13:00 Lock Sport Collaboration: Come learn how to pick locks with the [http://www.tooolsf.org/ SF Bay Area chapter] of [http://toool.us/ TOOOL]. Sometimes at Noisebridge. Check the [http://www.tooolsf.org/meeting-announcements/ TOOOLSF announcements page] for details. &lt;br /&gt;
&amp;lt;!-- on hiatus, according to Mik: * 14:00 - 22:00 [[World of Darkness]] Looking to run a biweekly game at Noisebridge. Talk with Melissa if interested --&amp;gt;&lt;br /&gt;
* 14:00 [[BAHA]] - [http://baha.bitrot.info Bay Area Hacker&#039;s Association] - security meeting (2nd Sundays only)&lt;br /&gt;
* 15:00 [[Go]] - Playing of the Go board game. On nice days we often take the boards to Dolores Park and play there.&lt;br /&gt;
* 16:00 [[Elements_of_Image_Making]] Bi-Weekly Analogue and DIY film making meetup/hangout/nerdout&lt;br /&gt;
* 18:00 [[Plan 9]] class &lt;br /&gt;
* 09:00 - 10:15 [https://noisebridge.net/wiki/JavaScript/ JavaScript Class] EcmaScript programming language, DOM, Object Oriented JavaScript, and Events. &lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to contact somebody at Noisebridge regarding these Events or even the Noisebridge Wiki itself, then please send an email message to &amp;lt;secretary@noisebridge.net&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Orphaned Events ===&lt;br /&gt;
These events appear to be dormant or extinct.&lt;br /&gt;
&lt;br /&gt;
* SAT 10:15 - 12:10 [[Juggling with Judy!]] Note: next class is scheduled for Saturday June 29th.  Attention juggling fans!  Judy will be at the 2013 World Juggling Day celebration Saturday June 15th at Ripley&#039;s Believe It Or Not Odditorium in San Francisco Fisherman&#039;s Warf - free event begins at 1.  Come check it out!  &lt;br /&gt;
* WED 20:00 - 22:00 [https://www.noisebridge.net/mailman/listinfo/zine ZinesFromOuterSpace] - A biweekly (once every 2 weeks or twice a month) meetup for zinesters / printing hackers / DIY publishers, and brainstorming session for the next chapter of [[zine | ZiP]]. Next meeting is 1/30/13, followed by another in mid-Feb (TBA).&lt;br /&gt;
* THU 18:00 - 21:00 &#039;&#039;&#039;[[Privacy Bay]]&#039;&#039;&#039; - A monthly meetup for Bay Area folks interested in privacy. Meets in Church on the last Thursday of the month.&lt;br /&gt;
* FRI 19:00 - 21:00 [[Anarchy_101|Anarchy 101]] - a class/seminar on what anarchy is and is not, and how it impacts us as individuals and as discrete groups.&lt;br /&gt;
* SUN 13:00 [[Songbridge]]: (Bi-monthly) Learn how to make and record music with a computerWe cover midi and vst as well as multi-track recordingBring your laptop.&lt;br /&gt;
* 20:00 - 22:00 [[Noise~_Wednesday | Noise~ Wed]] - Graphical media programming with Max/MSP/Jitter&lt;br /&gt;
&lt;br /&gt;
 *19:00 [[Tahoe-LAFS]] - Occasional meetup of users and/or developers of the Least Authority File System.&lt;br /&gt;
&lt;br /&gt;
* 14:00 - 16:00 Android Developer Support Group - Meet up with other app developers in the library for a lightly structured knowledge-share.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Future Events and Classes ===&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Algorithms Study Group]] I&#039;m light on the algos and am looking for others to take &amp;quot;Algorithms I&amp;quot; on Coursera starting on January 31st.  This is a 6 week course that covers fundamental algorithms, data structures, time-complexity, Big O notation, etc. &lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Terence McKenna Book Club]] A book club to discuss the ideas and theories of famed philosopher and anthropologist Terence McKenna.  Related topics include: Language, Technology, Virtual Reality, Shamanism, Anthropology, Eschatology, Consciousness, Plant-based Entheogens, Psychedelics.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Sound Science]] A potential monthly lecture/demonstration series on the little known science behind sound reproductionTopics to include: Transducer Physics(speakers and mics), Room Acoustics, Signal Path and Cabling,Loudspeaker design 101, Music Production Tips for Big Sound, and How to make a small system sound HUGEEach session to include hands on projects like making speakers from stuff lying around, Non-Newtonian bass monsters, and ez speaker mods for anyoneIf interested contact the new guy-&amp;gt; MattLong8 at gmail dot com, 805 four five three - six zero nine seven &lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Modular Synthesis]] a bi-weekly (or monthly) group devoted to modular synthesizers&amp;gt; workshop will include modular sound synthesis styles and techniques, a study of different modules and their functions, ie voltage controlled oscillator, voltage controlled filter, low frequency oscillator, envelope generator ect and how these modules interact with each other, what control voltage and triggers are..... as well as one on one time for each student with the modular, which is a 60 space large format Moog style modular synthesizer with big knobs and 1/4 jacks   including performance and other awesomeness by Douglas. contact Douglas at greenshoos at gmail dotcom&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[VideoHacking]] a weekly video/video art devoted hacker group, including experiments in the 3D vr realm...if interested contact julialc4@gmail.com&lt;br /&gt;
:Wednesdays at 21:00 [[Brewing Bridge]] - Malakkar Proposal: Learn how to make your drinks fun AND antibacterial, using yeastThis will be recurring if enough interest or need is presentAssociated items - what to do with brewing leftovers, and brewers sample hour, etc.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Fie: Failure is Eminent]] - [[User:MedianMajik|James]] wants to start a System Recovery class that will meet either bi-monthly or weekly for a couple hours to try various backup and recovery methods on drives and data.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[101 Introduction to Linux]] - [[User:MedianMajik|James]] wants to start a 101 Introduction to Linux class where people can ask whatever questions they want and get them answered in 60 to 90 minutes Church would be the optimal location Looking for teachers.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Probability]] - Weekly probability study group based on [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-041-probabilistic-systems-analysis-and-applied-probability-spring-2006/related-resources/ Fundamentals of Applied Probability Theory] by Al Drake&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Mandarin Corner|Mandarin]] - Learn or practice Mandarin, all levels. Also currently on hiatus. Get on the mailing list.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Movie Night!]] - [[User:ThOMG|Thom]] wants to build community through nerdy sci-fi! (+Bill+Ted+Excellence++) (how about a Friday hacker movie night? -[[User:Carl|Carl]])&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Introduction to the AVR Microcontroller]] - [[User:Mightyohm|Jeff]] and [[User:Maltman23|Mitch]] are planning an introductory class for people wanting to make cool projects with AVRs.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Basic Chemistry Lab Techniques]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Cuddle Puddle for the Economy]] - Stress-hacking with informal massage exchange.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Milk and Cookies]] - Come read your favorite selections out loudWith Milk and Cookies (and yeah, probably beer too).&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Processing Workshop 2]] - [[User:Scmurray|Scott]] is interested in teaching this, and is busy thinking about what, where, when, why, and how.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;:  [[Hack your Hardware]] -- We call BS on &amp;quot;no user-serviceable parts inside&amp;quot;&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Homebrew Instruction Class]] - The Wort (pt 1/3)&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Trip to Shooting Range]] - Field trip to a shooting range, to shoot guns Express interest at [[Trip to Shooting Range]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Surface Mount Soldering Workshop]] - Learn how to solder cicuits with small surface mount parts [[User:maltman23|Mitch Altman]] and Martin Bogomolni and others will show their tricks [[User:maltman23|Mitch]] will bring hackable kits that uses surface mounts for you to solder&amp;lt;-YES!(mattlong8 at gmail dot com)&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039; - [[Locksport and Lockpicking]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039; - [[Version control tutorial]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039; - [[Foreign language learning for rocket scientists]] - I&#039;m near-native (fool people when I try) in (French and) Japanese, and a pro trans/terpreter and will share my shortcuts (skill-order, vocab, speed/articulation, translation≅grammar)No expertise on tonal languages yet..so if you know how to remember tones or how tone-sandhi interacts with speed and/or how nuances of speaker attitude are expressed in them (what we do with rythm/inflection/sentence-intonation and stress in Eng., and with particles and ??? in e.gCantonese) please chime in or call me (415-608-0564) so I can convey your wisdom[also looking for a from-scratch Arabic partner]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Getting started with Arduino]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Distributed Databases]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Node.js Beginners Session]] - Interested in learning about Node.js? I amMaybe these guys want to teach it: http://www.meetup.com/Joyent-Cloud-User-Group/events/81311542/&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Scrum Club]] - I though I&#039;d test the waters and see if anyone was interested in a noisebridge scrum club details are here http://scrumclub.org/scrum-clubs/ if inturested hit me up twitter: @theabcasian, facebook: http://www.facebook.com/theabcasian&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[CNC Mill Workshop]] - Who wants to make stuff on the [[MaxNCMill]]?&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Math &amp;amp; Science Help]] - If you would like some math, science or engineering help, I&#039;m down to lend a hand.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Cyborg Group|Cyborg Group / Sensebridge]] - Work on projects like artificial senses Someone needs to lead this!&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[OpenEEG]] - Brain techHas historically met on Sundays, at the behest of interested parties.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Programming_for_Poets | Programming for Poets]] -  Gentle intro to programming using Processing&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[World Builders &amp;amp; Simgineers]] -  Work together to create a beautiful &amp;amp; open virtual world &amp;amp; platform.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[PlunderBridge]] -  Metal detecting, detector technology &amp;amp; treasure hunting expeditions.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Ruby Mining]] -  Ruby on Rails basics, interactive working group&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[MoinMoin Wiki]] -  MoinMoin Wiki (details see there)&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Noisebridge Fundraiser 2013]]&lt;br /&gt;
&lt;br /&gt;
= Past Events =&lt;br /&gt;
&lt;br /&gt;
===2013===&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Friday, August 9, 5:00pm&lt;br /&gt;
|title        = Noisebridge Party Setup&lt;br /&gt;
|description  = Volunteers will be preparing the space for Saturday&#039;s show.  There are no scheduled conflicts; you might be asked to move multiple times by someone pushing a broom and assembling a raised stage simultaneously.&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Saturday, August 10, 4:00pm&lt;br /&gt;
|title        = Noisebridge &amp;quot;______ the Bridge&amp;quot; Party&lt;br /&gt;
|description  =  &amp;lt;span style=&amp;quot;color:#ff00ff; background:##ff00ff&amp;quot;&amp;gt; a summer fundraising party for Noisebridge, which YOU are invited to!&amp;lt;/span&amp;gt;&lt;br /&gt;
|suggested donation = $10, but no one turned away for lack of funds&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Sunday, August 11, 2:00pm&lt;br /&gt;
|title        = Bay Area Hackers&#039; Association Meeting&lt;br /&gt;
|description  = Jon Callas presenting on [[BAHA/2013-08-11|Secure Communications, Privacy, Counter-Surveillance]].&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Wednesday, May 22, 7.00 pm: Instructables Build Night&#039;&#039;&#039; - Bare Conductive, Instructables will supply Bare Conductive paint pens and pizza. Come experiment with the paint and post some Instructables. This is a FREE event.&lt;br /&gt;
&lt;br /&gt;
===2012===&lt;br /&gt;
* &#039;&#039;&#039;December 20, Thursday, 20:00 - 22:00 - [[5MoF|5 Minutes of Fame]]&#039;&#039;&#039; - Following up on its triumphant return in November, 5MoF is back with another showcase of lightning talks &amp;amp; other good stuff, with your host Sir Danny O&#039;Brien! Details TBA&lt;br /&gt;
*&#039;&#039;&#039;Tuesday Feb14th, 18:00 to 20:00&#039;&#039;&#039; ZiP MegaZine releases its inaugural issue with &#039;&#039;&#039;My Noisy Valentine&#039;&#039;&#039; Zine Release Microparty in the Noisebridge cafeFor more info follow [[zine | this]] link.&lt;br /&gt;
* &#039;&#039;&#039;Wednesday, Jan30, 20:00-22:00&#039;&#039;&#039; [[zine|ZiP]] meeting for zine-makers &amp;amp; others with an interest in printing &amp;amp; self-publishingThe meeting 1/30/13 is our first since mid-2012We plan to hold them regularly from now on at this time (Wednesday 8pm)This meeting will be informal &amp;amp; will probably take place in the printing/lasercutter area of the hackerspace.&lt;br /&gt;
&lt;br /&gt;
===2011===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;September 11th 14:00 to 17:00&#039;&#039;&#039; - The San Francisco Chapter of the Open Organisation Of Lockpickers and Bay Area Hacker&#039;s Association present a joint meeting on [https://secure.wikimedia.org/wikipedia/en/wiki/Locksport locksport]&lt;br /&gt;
*&#039;&#039;&#039;August 4, 7PM, Thursday&#039;&#039;&#039; - [http://zeidman.net Bob Zeidman] will be giving a talk on video games and intellectual property, hosted by TheMADEHe will also speak about IP infringement cases.&lt;br /&gt;
*&#039;&#039;&#039;August 9, 6:30PM, Tuesday&#039;&#039;&#039; - [http://www.meetup.com/makesf/events/26413241/ Make:SF] - Chris Jefferies will speak about the wireless sensor kit he is developing and we are bringing back our all star soldering kits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;April 13th, 19:00&#039;&#039;&#039; - Kombucha fermentation class with [[BioBridge]] &lt;br /&gt;
*&#039;&#039;&#039;April 7th, 20:00&#039;&#039;&#039; - [[In-Depth|Noisebridge: In-Depth]] Our monthly lecture and round tableThis month&#039;s speaker will be Aragorn! his lecture will be &amp;quot;Anarchism &amp;amp; technology: An unbridgeable chasm&amp;quot;&lt;br /&gt;
*&#039;&#039;&#039;April 4th, 20:00&#039;&#039;&#039; - Camp KDE PartyCome and meet part of the KDE North America community and get a quick overview of this year&#039;s [http://camp.kde.org/ Camp KDE] conferenceThere will be beer&lt;br /&gt;
*&#039;&#039;&#039;April 3rd, 16:00&#039;&#039;&#039; - NoiseCaching: Meet-up to build some geocaches, and talk about making geocoinsThen we&#039;ll head out to find some local caches and place caches we made[http://www.geocaching.com More info about Geocaching here]&lt;br /&gt;
* &#039;&#039;&#039;March 20th, 19:00&#039;&#039;&#039; [[Hack Politics]] meetup -- the first meetup to figure out how we in the hacker community can effectively mobilize and create meaningful change in these interesting times&lt;br /&gt;
* &#039;&#039;&#039;March 12th, 12:00-18:00 - Noisebridge Hackathon!&#039;&#039;&#039; Second Saturday Hackathon is a casual monthly event dedicated to working on the space or relevant projects and building community This is a great time to get feedback or help on any projects you have been considering that center around the space, culture, and infrastructure of Noisebridge You can also help with existing projects and find out ways to get involved.&lt;br /&gt;
* &#039;&#039;&#039;March 10, Thursday, 19:00 - Group Grammar Clinic&#039;&#039;&#039; - Church Classroom - Donations gladly accepted - A clinic for grammar and writing evaluationPlease bring your web/social or technical writing for us to evaluateBring your laptop as well Collaboration groupware possibly provided(Please suggest groupware software to use if you wish)Constructive feedback from other group members is encouraged so that this clinic is a group process- Facilitator: [[User:Owen|Owen]] (opietro@yahoo.com)&lt;br /&gt;
* &#039;&#039;&#039;March 9th, 20:00&#039;&#039;&#039; - Ferment and filter a mash! [[fermentation logs]]&lt;br /&gt;
&lt;br /&gt;
===2010===&lt;br /&gt;
* &#039;&#039;&#039;Sunday, August 22, 19:00 CLUB-MATE DROPOFF AND TASTING PARTY&#039;&#039;&#039; Nick Farr will be in town to drop off Club-Mate ordered by San Franciscans!&lt;br /&gt;
* &#039;&#039;&#039;June 5th, 12:00-19:00 - [[NoiseBridgeRehab]]&#039;&#039;&#039; - Help make the space more usable and accessible! Noisebridge needs your help!&lt;br /&gt;
* &#039;&#039;&#039;June 5th, 16:00-20:00 - [[Science For Juggalos]]&#039;&#039;&#039; - Science Fair in front of the Warfield Theater teaching magnetism to Juggalos&lt;br /&gt;
* &#039;&#039;&#039;June 6th, 15:00 - [[AVC Meetup]]&#039;&#039;&#039; - Entrepreneurial bonding &amp;amp; matchmaking&lt;br /&gt;
* &#039;&#039;&#039;June 9th, 21:00 - Your liver supports Noisebridge&#039;&#039;&#039; - Come to Elixir @ 16th &amp;amp; Guerrero anytime after 21:00 and drink, drink, drink! 50% of tips go to Noisebridge&lt;br /&gt;
* &#039;&#039;&#039;February 27th, 20:00 - [[Hacker EPROM]]&#039;&#039;&#039; - Noisebridge&#039;s first prom! Nice tie and a (robot) date requiredWe will have a DJ and punch.&lt;br /&gt;
* &#039;&#039;&#039;February 24th, 19:00, Wednesday - Joris Peels, of [http://www.shapeways.com Shapeways]&#039;&#039;&#039;, and expert on 3D printing, will give a [[ShaperwaysPresentation | talk and demonstration]] at Noisebridge!.&lt;br /&gt;
* &#039;&#039;&#039;February 23rd, 18:00 - Cleaning day&#039;&#039;&#039; - Come and help clean Noisebridge, because everyone loves a clean hack space.&lt;br /&gt;
* &#039;&#039;&#039;February 12th, 21:00 - visit from Steve Jackson&#039;&#039;&#039;Game designer [http://en.wikipedia.org/wiki/Steve_Jackson_%28US_game_designer%29 Steve Jackson], founder of Steve Jackson Games, will visit Noisebridge.&lt;br /&gt;
* &#039;&#039;&#039;January 27th, 18:00-20:00 - [[beatrixjar event|Circuit Bending Workshop]]&#039;&#039;&#039; - [http://www.beatrixjar.com/ Beatrix*JAR] (contact [[User:Gpvillamil|Gian Pablo]] for more info)&lt;br /&gt;
* &#039;&#039;&#039;January 27th, 20:00-22:00 - [[beatrixjar event|Circuit Bending Performance]]&#039;&#039;&#039; - [http://www.beatrixjar.com/ Beatrix*JAR] - &amp;quot;Celebrate a night of new sound that will change your idea of music forever!&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;January 25th, 19:30 - [[Bag Porn]]&#039;&#039;&#039; - What&#039;s in your bag?&lt;br /&gt;
* &#039;&#039;&#039;January 20th, 19:00-21:00 - [http://groups.google.com/group/bacat/about Bay Categories &amp;amp; Types]&#039;&#039;&#039; - Categories, monoids, monads, functors and more! Held in the Alonzo Church classroom.&lt;br /&gt;
* &#039;&#039;&#039;January 20th, 19:00 - [[User Experience Book Club SF]]&#039;&#039;&#039; - Our book this month is &amp;quot;A Theory of Fun for Game Design&amp;quot; by Raph Koster - http://is.gd/6sEqw (meets in Turing)&lt;br /&gt;
* &#039;&#039;&#039;January 21st, 20:00 - [[Five Minutes of Fame]]&#039;&#039;&#039; - Monthly set of lightning talks on diverse topics&lt;br /&gt;
* &#039;&#039;&#039;January 22nd, 17:00 - [[CleaningParty| Cleaning Party]]&#039;&#039;&#039; - Come help clean up Noisebridge! Awsum fun!&lt;br /&gt;
* ...January 14th,16th, and 17th 1:00- ??? Build Out day for kitchen/bathroom/laundry bring yourself and a good attitude, learn a few things as well&lt;br /&gt;
* &#039;&#039;&#039;January 15th, 18:00 - [[CNC_Mill_Workshop]]&#039;&#039;&#039; - Learn to use the CNC mill for 2D engraving and circuit board routing&lt;br /&gt;
* Thursdays 17:00 [[ASL Group|American Sign Language]] - Learn how to talk without using your voice (or just come chat in ASL)&amp;lt;small&amp;gt;[http://whenisgood.net/noisebridge/asl/generic click to reschedule]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===2009===&lt;br /&gt;
* &#039;&#039;&#039;November 18th, 19:30&#039;&#039;&#039; - [[Dorkbot_2009_11_18|Dorkbot]]&lt;br /&gt;
* &#039;&#039;&#039;November 19th, 18:00&#039;&#039;&#039; - [[Mesh meetup]]&lt;br /&gt;
* &#039;&#039;&#039;November 19th, 20:00&#039;&#039;&#039; - [[Five Minutes of Fame]]&lt;br /&gt;
* &#039;&#039;&#039;November 20th, 18:00&#039;&#039;&#039; - Loud Objects [http://www.flickr.com/photos/createdigitalmedia/3428249036/ Noise Toy workshop].&lt;br /&gt;
* &#039;&#039;&#039;November 20th, 20:00&#039;&#039;&#039; - Performance by [http://www.loudobjects.com/ Loud Objects], (featuring Tristan Perich and Lesley Flanigan) and [http://www.myspace.com/jibkidder Jib Kidder].&lt;br /&gt;
:&#039;&#039;&#039;2009-11-05&#039;&#039;&#039; - [http://www.server-sky.com/ Server Sky presentation: Internet and Computation in Orbit] by Keith Lofstrom&lt;br /&gt;
:&#039;&#039;&#039;2009-11-05&#039;&#039;&#039; - [[Mesh meetup]]&lt;br /&gt;
:&#039;&#039;&#039;2009-11-02&#039;&#039;&#039; - [[French]] book club meeting to discuss  [http://www.amazon.com/exec/obidos/tg/detail/-/2842612892/ref=ord_cart_shr?_encoding=UTF8&amp;amp;m=ATVPDKIKX0DER&amp;amp;v=glance Une Si Longue Lettre]&lt;br /&gt;
: &#039;&#039;&#039; October 1st, 18:00&#039;&#039;&#039; - [[Wireless_Mesh_Network_Meetup | Mesh wireless meetup]]&lt;br /&gt;
: &#039;&#039;&#039; October 1st, 19:00&#039;&#039;&#039; - [http://groups.google.com/group/bacat Bay Area Categories and Types]&lt;br /&gt;
: &#039;&#039;&#039;2009-10-03&#039;&#039;&#039; [[Year 1 Open Hacker House]]&lt;br /&gt;
:&#039;&#039;&#039;Friday&#039;&#039;&#039;: [[CrazyCryptoNight]] - Discussion of cryptography for beginners through experts6-???&lt;br /&gt;
:&#039;&#039;&#039;Sunday&#039;&#039;&#039; : [[OpenEEG | OpenEEG Hacking]] Sundays, at 3-5pm.&lt;br /&gt;
:&#039;&#039;&#039;Monday&#039;&#039;&#039;: [[German]] - Learn German, all levels7pm beginners, 8pm advancedRSVP 24 hours in advance for the benefit of the instructorEvents ran May-November 2009Currently on Thursdays at 8Get on the mailing list.&lt;br /&gt;
:&#039;&#039;&#039;Tuesday&#039;&#039;&#039;: [[Haskell/Haschool]] - Learn Haskell with Jason Dusek 6PM - 7:30PM, from May until we&#039;re all experts.&lt;br /&gt;
:&#039;&#039;&#039;Wednesday&#039;&#039;&#039;: [[Adobe_Lightroom|Adobe Lightroom]] - Become a more organized photographerWeekly class (mostly held off site).&lt;br /&gt;
:&#039;&#039;&#039;Thursday&#039;&#039;&#039;: [[Professional VFX Compositing With Adobe After Effects]] - Taught by [[User:SFSlim|Aaron Muszalski]]7:30PM - 10PM, most Thursdays in May &amp;amp; June &amp;amp; ? (click through dammit)&lt;br /&gt;
:&#039;&#039;&#039;2009-09-17&#039;&#039;&#039;: [[Five Minutes of Fame]] 3D Edition&lt;br /&gt;
:&#039;&#039;&#039;2009-09-17&#039;&#039;&#039;: [[Wireless Mesh Network Meetup | Mesh wireless meetup]]&lt;br /&gt;
:&#039;&#039;&#039;2009-08-20&#039;&#039;&#039;: [[Five Minutes of Fame]] One Dee Edition&lt;br /&gt;
:&#039;&#039;&#039;2009-07-16&#039;&#039;&#039;: [[Five Minutes of Fame]] Zero Dee&lt;br /&gt;
:&#039;&#039;&#039;2009-07-02 - 2009-07-05&#039;&#039;&#039;: [http://toorcamp.org Toorcamp]&lt;br /&gt;
:&#039;&#039;&#039;2009-07-01&#039;&#039;&#039;: Noisedroid meeting to discuss location logging on Android platform (and other stuff too, I&#039;m sure)&lt;br /&gt;
:&#039;&#039;&#039;2009-06-30&#039;&#039;&#039;: [[Powerbocking Class|Powerbocking class]]&lt;br /&gt;
:&#039;&#039;&#039;2009-06-30&#039;&#039;&#039;: &amp;quot;Suing Telemarketers for Fun and Profit&amp;quot; (Toorcamp talk preview)&lt;br /&gt;
:&#039;&#039;&#039;2009-06-28&#039;&#039;&#039;: &amp;quot;Meditation for Hackers&amp;quot; (Toorcamp workshop preview)&lt;br /&gt;
:&#039;&#039;&#039;2009-06-18&#039;&#039;&#039;: [[Five Minutes of Fame]]&lt;br /&gt;
:&#039;&#039;&#039;2009-06-15&#039;&#039;&#039;: [[Eagle Workshop]]  Session two of the Eagle CAD workshop.&lt;br /&gt;
:&#039;&#039;&#039;2009-06-13&#039;&#039;&#039;: [[RoboGames 2009]] Noisebridge had a booth staffed by vounteers, great fun!&lt;br /&gt;
:&#039;&#039;&#039;2009-05-21&#039;&#039;&#039;: [[Five Minutes of Fame]]&lt;br /&gt;
:&#039;&#039;&#039;2009-04-27&#039;&#039;&#039;: [[EagleCAD workshop]] -- learn to use this CAD tool for printed circuit board design&lt;br /&gt;
:&#039;&#039;&#039;2009-04-16&#039;&#039;&#039;: [[Five Minutes of Fame]] April showers &amp;amp; flowers edition&lt;br /&gt;
:&#039;&#039;&#039;2009-04-11&#039;&#039;&#039;: [[RFID Hacking]] weekend workshop  (this event moved from the original March date)&lt;br /&gt;
:&#039;&#039;&#039;2009-04-05&#039;&#039;&#039;: [[First aid and CPR class]] Learning how to not only not die, but also reduce scarring!&lt;br /&gt;
:&#039;&#039;&#039;2009-04-03&#039;&#039;&#039;: [[Sudo pop]] 2PM and onMaking the first batch of a Noisebridge label yerba mate-niated rootbrew, gratis and DIY&lt;br /&gt;
:&#039;&#039;&#039;2009-03-26&#039;&#039;&#039;: [[OpenEEG | OpenEEG Hacking]] first meet up for this new group: 8 pm&lt;br /&gt;
:&#039;&#039;&#039;2009-03-19&#039;&#039;&#039;: [[Five Minutes of Fame]]&lt;br /&gt;
:&#039;&#039;&#039;2009-03-12&#039;&#039;&#039;: [[OpenBTS and GSM]] talk by David Burgess&lt;br /&gt;
:&#039;&#039;&#039;2009-02-14&#039;&#039;&#039;: [[Open Heart Workshop]] Valentine&#039;s Day blinkyheart soldering party! &lt;br /&gt;
:&#039;&#039;&#039;2009-02-13&#039;&#039;&#039;: [[Time-t_Party|&amp;lt;tt&amp;gt;time_t&amp;lt;/tt&amp;gt; Party]] to celebrate 1,234,567,890 since the Unix epoch.&lt;br /&gt;
:&#039;&#039;&#039;2009-02-09&#039;&#039;&#039;: [[Spanish learning at 8:30]]&lt;br /&gt;
:&#039;&#039;&#039;2009-02-05&#039;&#039;&#039;: [[PGP Key Workshop]]&lt;br /&gt;
:&#039;&#039;&#039;2009-01-31&#039;&#039;&#039;: [[Locksport and Lockpicking]]&lt;br /&gt;
&lt;br /&gt;
===2008===&lt;br /&gt;
:&#039;&#039;&#039;2008-12-27&#039;&#039;&#039;: [[25C3]] Chaos Computer Congress in Berlin&lt;br /&gt;
:&#039;&#039;&#039;2008-12-20 &amp;amp; 21&#039;&#039;&#039;: [[Creme Brulee]] Workshop on creating a french dessert, with bonus propane torch.&lt;br /&gt;
:&#039;&#039;&#039;2008-12-17 20:00&#039;&#039;&#039;: [[Machine Learning]] Birds-of-a-feather&lt;br /&gt;
:&#039;&#039;&#039;2008-11-24&#039;&#039;&#039;: [[Circuit Hacking Monday]] circuit design workshop&lt;br /&gt;
:&#039;&#039;&#039;2008-11-21, 7pm&#039;&#039;&#039;:[[Milk and Cookies]] -- [[User:Dmolnar|David Molnar]] hosts Milk and Cookies at 83CBring a short 5-7minute thing to read to othersBring a potluck cookie/snack/drink if you likeDavid will bring milk and cookies.&lt;br /&gt;
:&#039;&#039;&#039;2008-11-17, 7:30pm&#039;&#039;&#039;: [[Basic Bicycle Maintain]] - [[User:rubin110|Rubin]] and [[User:rigel|rigel]] hate it when we see a bike that isn&#039;t maintainedScreechy chains and clacking derailleur can go to hellBasic bike tune up, sharing the smarts on simple things you can do at home to make your ride suck a whole lot less.&lt;br /&gt;
:&#039;&#039;&#039;2008-11-16, 5:00pm&#039;&#039;&#039;: [[RepRap Soldering Party]] - help assemble RepRap!  RSVPs required on wiki! [[User:Adi|adi]]&lt;br /&gt;
:&#039;&#039;&#039;2008-11-16, 3:00pm&#039;&#039;&#039;: [[Oscilloscopes]] - Learn how to use this versatile tool to test electronic circuits Maximum 6 slots, please sign up ahead of time! [[User:dstaff|dstaff]]&lt;br /&gt;
:&#039;&#039;&#039;2008-10-31&#039;&#039;&#039;: [[Halloween Open House]] - NoiseBridge&#039;s own [[PPPC]] threw an awesome open house/halloween galaPost pictures if you got &#039;em!&lt;br /&gt;
:&#039;&#039;&#039;2008-10-25&#039;&#039;&#039;: [[Soldering Workshop]] and Pumpkin Hackin&#039; - Learn to solder for total newbies (or learn to solder better!), including surface mountAdditionally, carve your halloween pumpkins and enjoy some experimental pumpkin pie and/or soup.&lt;br /&gt;
:&#039;&#039;&#039;2008-10-07&#039;&#039;&#039;: (tuesday before meeting) - Etch a circuit boardI&#039;ll be trying a photo resist etching and a basic printed mask etchingThis is step 1/3 for a project called &amp;quot;annoying USB thingie&amp;quot; which will execute pre-defined keystrokes by sneaking a tiny USB dongle onto a victim^h^h^h^h^h buddy&#039;s computer.&lt;br /&gt;
:&#039;&#039;&#039;2008-09-13&#039;&#039;&#039;: [[Processing Workshop]] — Learn this very easy-to-use programming language! - [[Processing Workshop Report]]&lt;br /&gt;
:&#039;&#039;&#039;2008-02-16&#039;&#039;&#039;: [[Brain Machine Workshop|Brain Machine Making Workshop]]: Our first hardware sprint!&lt;br /&gt;
&lt;br /&gt;
[[Category:Top level]]&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=Category:Events&amp;diff=37198</id>
		<title>Category:Events</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=Category:Events&amp;diff=37198"/>
		<updated>2013-12-18T20:32:20Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Sunday */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Note that this page uses transclusionContent between the &amp;quot;onlyinclude&amp;quot; tags below will be pushed to the main page --&amp;gt;&lt;br /&gt;
Official, Semi-Official, one-off and other events at the Noisebridge space.&lt;br /&gt;
&lt;br /&gt;
=Event Calendar=&lt;br /&gt;
Not all events make it onto this calendarMany events only make it to the Discussion or Announcements [[Mailinglist | mailing lists]], [[IRC]] or in person at [[:Category:Meeting_Notes | Tuesday meetings]]. Best of all, Noisebridge is about people getting together at the space in San Francisco to do stuff..like in person. Some events just happen. Pay attention!&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to host an event yourself, we recommend involving at least one Noisebridge member, and have advice on  [[Hosting_an_Event|hosting an event]] at Noisebridge.&lt;br /&gt;
&lt;br /&gt;
View the  [https://www.google.com/calendar/embed?src=1uesj915rces4cbmcr8j3sg8t0%40group.calendar.google.com&amp;amp;ctz=America/Los_Angeles Google Calendar].&lt;br /&gt;
&lt;br /&gt;
To post Google Calendar entries for your event or to gain access to do so for yourself, ask on the noisebridge-discuss mailing list.&lt;br /&gt;
&amp;lt;!-- Items inside this &amp;quot;onlyinclude&amp;quot; tag will be pushed to the main page --&amp;gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Upcoming Events &amp;lt;small&amp;gt;[https://www.noisebridge.net/index.php?title=Category:Events&amp;amp;action=edit&amp;amp;section=2 edit]&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&amp;lt;!-- Please read our &amp;quot;Hosting an Event&amp;quot; page and possibly follow some of the guidelines there before posting your event herehttps://www.noisebridge.net/wiki/Hosting_an_Event --&amp;gt;&lt;br /&gt;
&amp;lt;!-- It&#039;s smart to add in a link to a wiki page with more information about your even, and a way to contact the event organizer(s)Thanks! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Thursday, December 26, 6.00 pm&lt;br /&gt;
|title        = 30c3&lt;br /&gt;
|description  = Congress everywhere:Noisebridge, save yourself the jet lag and come to Noisebridge to experience the annual Chaos Communication Congress. This event will run concurently thru Monday with the 4 day event in Hamburg&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Sunday Jan 12th 2014, 12.00 pm&lt;br /&gt;
|title        =GodWaffleNoisePancakes &lt;br /&gt;
|description  = Join us for a noise performance and vegan pancakes for San Francisco&#039;s longest running noise/experimental music show, in the hackatorium&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://noisebridge.net/wiki/30c3&lt;br /&gt;
&lt;br /&gt;
=== Recurring Events &amp;lt;small&amp;gt;[https://www.noisebridge.net/index.php?title=Category:Events&amp;amp;action=edit&amp;amp;section=3 edit]&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&amp;lt;!-- Please read our &amp;quot;Hosting an Event&amp;quot; page and possibly follow some of the guidelines there before posting your event herehttps://www.noisebridge.net/wiki/Hosting_an_Event --&amp;gt;&lt;br /&gt;
&amp;lt;!-- It&#039;s smart to add in a link to a wiki page with more information about your even, and a way to contact the event organizer(s)Thanks! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Large turnout events should be written in &#039;&#039;&#039;bold&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Monday ====&lt;br /&gt;
* &#039;&#039;&#039;19:30 - 22:00 [[Circuit Hacking Mondays]]&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;(Early start of 3:00pm on Monday holidays.)&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;div style=&amp;quot;padding-left: 30px; max-width: 725px;&amp;quot;&amp;gt;- Learn to solder! And make cool things with electronics. [[User:maltman23|Mitch]], Rolf, [[User:Miloh|Miloh]], and others will bring kits to make cool, hackable things for all skill levels that you can bring home after you make them! Bring your own projects to hack! Bring things to fix! All ages. All welcome!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- 2013-02-02 * 19:00 [[Cook-in class]] Bring your ideas/food/appetite and try your hand at cooking--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;18:00-20:00 [[Collaborative Coding]]&#039;&#039;&#039; - All levels and languages welcome for open, friendly coding session. Bring tutorials, projects, or just yourself. &#039;&#039;&#039;Starting 2013-12-16&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;20:00 - 22:00 [[Front-end Web Development]]&#039;&#039;&#039; - &#039;&#039;&#039;Class on hiatus from 2013-12-16 until 2014-01-06.&#039;&#039;&#039;&amp;lt;br&amp;gt; Learn HTML/CSS/JS. We&#039;re covering the basics and then going in-depth on different topics every week. Recap of last week&#039;s material starts at 19:30.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;[[House_Keeping#Trash_and_Recycling|Take Out the Trash Night]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuesday ====&lt;br /&gt;
* 15:00 - 17:00 [[Linux System Administration class]] meets in the Turing classroom. Stay tuned to possible future changes to the format and topics of this workshop. Focus remains on server systems; less on workstation problems.  &lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;18:00 [[Office Hours]]&#039;&#039;&#039; Have pressing questions about Noisebridge, or need help dealing with nonsense/bs? Find [[user:flamsmark|Tom]] at the space or [https://foursquare.com/v/the-sycamore/4c253819c11dc9b634d82624 the Sycamore] for help before the meeting. --&amp;gt;&lt;br /&gt;
* 18:00 - 20:00 Wiki Hacking, learn how to use the Noisebridge wiki by creating your own user account and page, as well as editing content. Meet by the fire escape at the &amp;quot;Dream Station&amp;quot;. Hosted by [[User:Thex|J.C.]]&lt;br /&gt;
* 19:00 - 20:00 [https://noisebridge.net/wiki/Radio Noisebridge Radio] meeting somewhere in the space.&lt;br /&gt;
* 19:00 - 21:00 [[Machine Learning | Machine_Learning]] Learn some data science! For people at all levels.&lt;br /&gt;
* 19:00 - 21:00 [[PyClass | Advanced Python]] Slaying the web with Python 2.7 &amp;amp; 3.3. Instructed by Liz and Kellan in Turing.&lt;br /&gt;
* 17:00 - 19:00 &#039;&#039;&#039;*ix&#039;&#039;&#039; [[Linux.BSD.UNIX Open Learning and Hacking]] Learning by doing in Linux/OpenBSD/FreeBSD/Unix/Others in Turing. Workstation problems and projects okay.&lt;br /&gt;
* &#039;&#039;&#039;19:00 - 21:00 [http://www.railsschool.org Ruby and Rails class]&#039;&#039;&#039; - Seminar and workshop for learning everything about Ruby, Rails, and web application development (Church classroom).&lt;br /&gt;
* &#039;&#039;&#039;19:30 - 21:00 [[Light Patterns with LEDs and Microcontrollers]]&#039;&#039;&#039; - Learn how to make light dance and do your bidding! We will make Arduino sketches to control multicolor LED pixels.&lt;br /&gt;
&amp;lt;!-- * 19:30 [[Spacebridge]] - Noisebridge&#039;s space program --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;18:00 - 19:30 [[Rebase|Great Noisebridge Rebase of 2013!]]&#039;&#039;&#039; - Discussion and Proposal development regarding the ongoing Rebase initiative. Meet in the Hackitorium. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;20:00 [[Meetings|Noisebridge Weekly Meeting]]&#039;&#039;&#039; - Introducing new people and events to the space, general discussion, and decision making. &#039;&#039;&#039;This is your space, folks. Come on out here in person to express what you think about what&#039;s going on with it!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Wednesday ====&lt;br /&gt;
&amp;lt;!-- On hiatus 2013-01-08 * 18:00 [[Replicator Wednesday|Replicator Wednesday]]! This event is on hiatus from Noisebridge until further notice.  New &amp;quot;series&amp;quot; starts January 9th! --&amp;gt;&lt;br /&gt;
* 16:00 - 18:00 Locks Sport. Picking, repining, etc. Try to bring your own picks. If not we will try to make some here. We will go on as long as people want to stick around.&lt;br /&gt;
* 18:00 - 20:00 [[Linux &amp;amp; BSDiscussion|Linux/BSDiscussion and Problem Solving]] - Linux/BSD meetup in the Turing classroom.&lt;br /&gt;
* 19:00 - 20:00 [[Feminist Book Club for Men]] - On the second Wednesday of every month, we try to educate ourselves about feminism, and not being quite as much of a jerk.&lt;br /&gt;
* 19:30 - 21:00 [[DreamTeam| Dream Team Neuro Hackery]] - EEG research &amp;amp; development project with general interest in sleep, dreaming, creative intelligence, and many loosely related topics such as: neurophysiology, signal processing, cognitive neuroscience, and (especially) hacking code and devices for data acquisition and analysis.  Join us at the [[CollaborationStation]] near the Hackatorium / 3D printing area.  (Discussion sometimes starts closer to 8 PM, usually shifting focus by 9 PM to more technical aspects of specific projects).  &lt;br /&gt;
* 19:00 - 21:00 [[PyClass]] - Intro to Python in Church Classroom.&lt;br /&gt;
* 19:30 - 22:00 [[BACE Timebank]] (1st Wednesdays every &#039;&#039;odd&#039;&#039; month) Next meeting on Wed Nov 6, 8pm - Help organize community mutual aid by trading in equal time credits. To find out more and join go to [http://sfbace.org sfbace.org].&lt;br /&gt;
&lt;br /&gt;
==== Thursday ====&lt;br /&gt;
* [[House_Keeping#Trash_and_Recycling|Trash Night]]  - Take out the trash for Friday morning!&lt;br /&gt;
* &#039;&#039;&#039;18:00-20:00 [[Collaborative Coding]]&#039;&#039;&#039; - All levels and languages welcome for open, friendly coding session. Bring tutorials, projects, or just yourself. &#039;&#039;&#039;Starting 2013-12-16&#039;&#039;&#039;.&lt;br /&gt;
* 18:30 [[Digital Archivists]] - Help build a book scanner for Noisebridge&lt;br /&gt;
* 19:00 [[Tastebridge]] / [[Vegan Hacker]] Monthly Food Hacking, last Thursday of every month (Except for Dec 2013, when it&#039;ll be on Dec 5th!), 7pm http://www.veganhackersf.com&lt;br /&gt;
* 19:00 - 22:00 [[3D Thursday]] Weekly meetup (non-3rd-thursdays) at Noisebridge focusing on 3D Printers, CNC machines, FabLabs, and replicating machines of all kinds.&lt;br /&gt;
&amp;lt;!-- * 19:00 [[german_corner|German Corner]] Learn and practice speaking German --&amp;gt;&lt;br /&gt;
&amp;lt;!-- on hiatus? 2013-01-08 * 19:00 [[wearable fashion techies]] first meeting Nov 1st --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;19:00 - 21:00 [[Letter Lovers]]&#039;&#039;&#039; - Learn &amp;amp; create calligraphy, lettering, fonts, handwriting, and all things letters. &#039;&#039;&#039;On hiatus until January 2014&#039;&#039;&#039;&lt;br /&gt;
* 20:00 [[Front-end_Web_Development#Lab|Front-end Web Development Lab]] - &#039;&#039;&#039;On Wednesday, December 11 this week only.&#039;&#039;&#039; Understand by doing! A recap of Monday&#039;s lecture in workshop form - and a good time for one-on-one help with the material.&lt;br /&gt;
* &#039;&#039;&#039;20:00 [[Five Minutes of Fame]]&#039;&#039;&#039; - lightning talks every 3rd Thursday of the month&lt;br /&gt;
&lt;br /&gt;
==== Friday ====&lt;br /&gt;
&lt;br /&gt;
* 16:00 - 22:00 [[FUN Tutoring]] @ [[CollaborationStation]]&lt;br /&gt;
* 19:00 - 21:00 [https://noisebridge.net/wiki/JavaScript/ JavaScript Class] EcmaScript programming language, DOM, Object Oriented JavaScript, and Events.&lt;br /&gt;
&lt;br /&gt;
==== Saturday ====&lt;br /&gt;
&amp;lt;!-- 2013-02-02 * 18:30-20:30 Beginner [[French]] - Learn basic grammar and sentence structure. Classes meet in the Turing room --&amp;gt;&lt;br /&gt;
* 12:00 - 18:00 &#039;&#039;&#039;[[modular|Modular and Analog Synth Workshop]]&#039;&#039;&#039; NEXT WORKSHOP TBA Learn the basics of analog synthesis on a modular synth with Douglas. we will meet in the church.&lt;br /&gt;
&lt;br /&gt;
==== Sunday ====&lt;br /&gt;
* 12:30 - 19:30 [[Dungeons and Dragons]] in Church, not currently looking for new players.&lt;br /&gt;
* 13:00 Lock Sport Collaboration: Come learn how to pick locks with the [http://www.tooolsf.org/ SF Bay Area chapter] of [http://toool.us/ TOOOL]. Sometimes at Noisebridge. Check the [http://www.tooolsf.org/meeting-announcements/ TOOOLSF announcements page] for details. &lt;br /&gt;
&amp;lt;!-- on hiatus, according to Mik: * 14:00 - 22:00 [[World of Darkness]] Looking to run a biweekly game at Noisebridge. Talk with Melissa if interested --&amp;gt;&lt;br /&gt;
* 14:00 [[BAHA]] - [http://baha.bitrot.info Bay Area Hacker&#039;s Association] - security meeting (2nd Sundays only)&lt;br /&gt;
* 15:00 [[Go]] - Playing of the Go board game. On nice days we often take the boards to Dolores Park and play there.&lt;br /&gt;
* 16:00 [[Elements_of_Image_Making]] Bi-Weekly Analogue and DIY film making meetup/hangout/nerdout&lt;br /&gt;
* 18:00 [[Plan 9]] class &lt;br /&gt;
* 09:00 - 10:15 JavaScript Class EcmaScript programming language, DOM, Object Oriented JavaScript, and Events. &lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to contact somebody at Noisebridge regarding these Events or even the Noisebridge Wiki itself, then please send an email message to &amp;lt;secretary@noisebridge.net&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Orphaned Events ===&lt;br /&gt;
These events appear to be dormant or extinct.&lt;br /&gt;
&lt;br /&gt;
* SAT 10:15 - 12:10 [[Juggling with Judy!]] Note: next class is scheduled for Saturday June 29th.  Attention juggling fans!  Judy will be at the 2013 World Juggling Day celebration Saturday June 15th at Ripley&#039;s Believe It Or Not Odditorium in San Francisco Fisherman&#039;s Warf - free event begins at 1.  Come check it out!  &lt;br /&gt;
* WED 20:00 - 22:00 [https://www.noisebridge.net/mailman/listinfo/zine ZinesFromOuterSpace] - A biweekly (once every 2 weeks or twice a month) meetup for zinesters / printing hackers / DIY publishers, and brainstorming session for the next chapter of [[zine | ZiP]]. Next meeting is 1/30/13, followed by another in mid-Feb (TBA).&lt;br /&gt;
* THU 18:00 - 21:00 &#039;&#039;&#039;[[Privacy Bay]]&#039;&#039;&#039; - A monthly meetup for Bay Area folks interested in privacy. Meets in Church on the last Thursday of the month.&lt;br /&gt;
* FRI 19:00 - 21:00 [[Anarchy_101|Anarchy 101]] - a class/seminar on what anarchy is and is not, and how it impacts us as individuals and as discrete groups.&lt;br /&gt;
* SUN 13:00 [[Songbridge]]: (Bi-monthly) Learn how to make and record music with a computerWe cover midi and vst as well as multi-track recordingBring your laptop.&lt;br /&gt;
* 20:00 - 22:00 [[Noise~_Wednesday | Noise~ Wed]] - Graphical media programming with Max/MSP/Jitter&lt;br /&gt;
&lt;br /&gt;
 *19:00 [[Tahoe-LAFS]] - Occasional meetup of users and/or developers of the Least Authority File System.&lt;br /&gt;
&lt;br /&gt;
* 14:00 - 16:00 Android Developer Support Group - Meet up with other app developers in the library for a lightly structured knowledge-share.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Future Events and Classes ===&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Algorithms Study Group]] I&#039;m light on the algos and am looking for others to take &amp;quot;Algorithms I&amp;quot; on Coursera starting on January 31st.  This is a 6 week course that covers fundamental algorithms, data structures, time-complexity, Big O notation, etc. &lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Terence McKenna Book Club]] A book club to discuss the ideas and theories of famed philosopher and anthropologist Terence McKenna.  Related topics include: Language, Technology, Virtual Reality, Shamanism, Anthropology, Eschatology, Consciousness, Plant-based Entheogens, Psychedelics.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Sound Science]] A potential monthly lecture/demonstration series on the little known science behind sound reproductionTopics to include: Transducer Physics(speakers and mics), Room Acoustics, Signal Path and Cabling,Loudspeaker design 101, Music Production Tips for Big Sound, and How to make a small system sound HUGEEach session to include hands on projects like making speakers from stuff lying around, Non-Newtonian bass monsters, and ez speaker mods for anyoneIf interested contact the new guy-&amp;gt; MattLong8 at gmail dot com, 805 four five three - six zero nine seven &lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Modular Synthesis]] a bi-weekly (or monthly) group devoted to modular synthesizers&amp;gt; workshop will include modular sound synthesis styles and techniques, a study of different modules and their functions, ie voltage controlled oscillator, voltage controlled filter, low frequency oscillator, envelope generator ect and how these modules interact with each other, what control voltage and triggers are..... as well as one on one time for each student with the modular, which is a 60 space large format Moog style modular synthesizer with big knobs and 1/4 jacks   including performance and other awesomeness by Douglas. contact Douglas at greenshoos at gmail dotcom&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[VideoHacking]] a weekly video/video art devoted hacker group, including experiments in the 3D vr realm...if interested contact julialc4@gmail.com&lt;br /&gt;
:Wednesdays at 21:00 [[Brewing Bridge]] - Malakkar Proposal: Learn how to make your drinks fun AND antibacterial, using yeastThis will be recurring if enough interest or need is presentAssociated items - what to do with brewing leftovers, and brewers sample hour, etc.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Fie: Failure is Eminent]] - [[User:MedianMajik|James]] wants to start a System Recovery class that will meet either bi-monthly or weekly for a couple hours to try various backup and recovery methods on drives and data.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[101 Introduction to Linux]] - [[User:MedianMajik|James]] wants to start a 101 Introduction to Linux class where people can ask whatever questions they want and get them answered in 60 to 90 minutes Church would be the optimal location Looking for teachers.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Probability]] - Weekly probability study group based on [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-041-probabilistic-systems-analysis-and-applied-probability-spring-2006/related-resources/ Fundamentals of Applied Probability Theory] by Al Drake&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Mandarin Corner|Mandarin]] - Learn or practice Mandarin, all levels. Also currently on hiatus. Get on the mailing list.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Movie Night!]] - [[User:ThOMG|Thom]] wants to build community through nerdy sci-fi! (+Bill+Ted+Excellence++) (how about a Friday hacker movie night? -[[User:Carl|Carl]])&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Introduction to the AVR Microcontroller]] - [[User:Mightyohm|Jeff]] and [[User:Maltman23|Mitch]] are planning an introductory class for people wanting to make cool projects with AVRs.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Basic Chemistry Lab Techniques]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Cuddle Puddle for the Economy]] - Stress-hacking with informal massage exchange.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Milk and Cookies]] - Come read your favorite selections out loudWith Milk and Cookies (and yeah, probably beer too).&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Processing Workshop 2]] - [[User:Scmurray|Scott]] is interested in teaching this, and is busy thinking about what, where, when, why, and how.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;:  [[Hack your Hardware]] -- We call BS on &amp;quot;no user-serviceable parts inside&amp;quot;&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Homebrew Instruction Class]] - The Wort (pt 1/3)&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Trip to Shooting Range]] - Field trip to a shooting range, to shoot guns Express interest at [[Trip to Shooting Range]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Surface Mount Soldering Workshop]] - Learn how to solder cicuits with small surface mount parts [[User:maltman23|Mitch Altman]] and Martin Bogomolni and others will show their tricks [[User:maltman23|Mitch]] will bring hackable kits that uses surface mounts for you to solder&amp;lt;-YES!(mattlong8 at gmail dot com)&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039; - [[Locksport and Lockpicking]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039; - [[Version control tutorial]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039; - [[Foreign language learning for rocket scientists]] - I&#039;m near-native (fool people when I try) in (French and) Japanese, and a pro trans/terpreter and will share my shortcuts (skill-order, vocab, speed/articulation, translation≅grammar)No expertise on tonal languages yet..so if you know how to remember tones or how tone-sandhi interacts with speed and/or how nuances of speaker attitude are expressed in them (what we do with rythm/inflection/sentence-intonation and stress in Eng., and with particles and ??? in e.gCantonese) please chime in or call me (415-608-0564) so I can convey your wisdom[also looking for a from-scratch Arabic partner]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Getting started with Arduino]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Distributed Databases]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Node.js Beginners Session]] - Interested in learning about Node.js? I amMaybe these guys want to teach it: http://www.meetup.com/Joyent-Cloud-User-Group/events/81311542/&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Scrum Club]] - I though I&#039;d test the waters and see if anyone was interested in a noisebridge scrum club details are here http://scrumclub.org/scrum-clubs/ if inturested hit me up twitter: @theabcasian, facebook: http://www.facebook.com/theabcasian&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[CNC Mill Workshop]] - Who wants to make stuff on the [[MaxNCMill]]?&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Math &amp;amp; Science Help]] - If you would like some math, science or engineering help, I&#039;m down to lend a hand.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Cyborg Group|Cyborg Group / Sensebridge]] - Work on projects like artificial senses Someone needs to lead this!&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[OpenEEG]] - Brain techHas historically met on Sundays, at the behest of interested parties.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Programming_for_Poets | Programming for Poets]] -  Gentle intro to programming using Processing&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[World Builders &amp;amp; Simgineers]] -  Work together to create a beautiful &amp;amp; open virtual world &amp;amp; platform.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[PlunderBridge]] -  Metal detecting, detector technology &amp;amp; treasure hunting expeditions.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Ruby Mining]] -  Ruby on Rails basics, interactive working group&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[MoinMoin Wiki]] -  MoinMoin Wiki (details see there)&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Noisebridge Fundraiser 2013]]&lt;br /&gt;
&lt;br /&gt;
= Past Events =&lt;br /&gt;
&lt;br /&gt;
===2013===&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Friday, August 9, 5:00pm&lt;br /&gt;
|title        = Noisebridge Party Setup&lt;br /&gt;
|description  = Volunteers will be preparing the space for Saturday&#039;s show.  There are no scheduled conflicts; you might be asked to move multiple times by someone pushing a broom and assembling a raised stage simultaneously.&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Saturday, August 10, 4:00pm&lt;br /&gt;
|title        = Noisebridge &amp;quot;______ the Bridge&amp;quot; Party&lt;br /&gt;
|description  =  &amp;lt;span style=&amp;quot;color:#ff00ff; background:##ff00ff&amp;quot;&amp;gt; a summer fundraising party for Noisebridge, which YOU are invited to!&amp;lt;/span&amp;gt;&lt;br /&gt;
|suggested donation = $10, but no one turned away for lack of funds&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Sunday, August 11, 2:00pm&lt;br /&gt;
|title        = Bay Area Hackers&#039; Association Meeting&lt;br /&gt;
|description  = Jon Callas presenting on [[BAHA/2013-08-11|Secure Communications, Privacy, Counter-Surveillance]].&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Wednesday, May 22, 7.00 pm: Instructables Build Night&#039;&#039;&#039; - Bare Conductive, Instructables will supply Bare Conductive paint pens and pizza. Come experiment with the paint and post some Instructables. This is a FREE event.&lt;br /&gt;
&lt;br /&gt;
===2012===&lt;br /&gt;
* &#039;&#039;&#039;December 20, Thursday, 20:00 - 22:00 - [[5MoF|5 Minutes of Fame]]&#039;&#039;&#039; - Following up on its triumphant return in November, 5MoF is back with another showcase of lightning talks &amp;amp; other good stuff, with your host Sir Danny O&#039;Brien! Details TBA&lt;br /&gt;
*&#039;&#039;&#039;Tuesday Feb14th, 18:00 to 20:00&#039;&#039;&#039; ZiP MegaZine releases its inaugural issue with &#039;&#039;&#039;My Noisy Valentine&#039;&#039;&#039; Zine Release Microparty in the Noisebridge cafeFor more info follow [[zine | this]] link.&lt;br /&gt;
* &#039;&#039;&#039;Wednesday, Jan30, 20:00-22:00&#039;&#039;&#039; [[zine|ZiP]] meeting for zine-makers &amp;amp; others with an interest in printing &amp;amp; self-publishingThe meeting 1/30/13 is our first since mid-2012We plan to hold them regularly from now on at this time (Wednesday 8pm)This meeting will be informal &amp;amp; will probably take place in the printing/lasercutter area of the hackerspace.&lt;br /&gt;
&lt;br /&gt;
===2011===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;September 11th 14:00 to 17:00&#039;&#039;&#039; - The San Francisco Chapter of the Open Organisation Of Lockpickers and Bay Area Hacker&#039;s Association present a joint meeting on [https://secure.wikimedia.org/wikipedia/en/wiki/Locksport locksport]&lt;br /&gt;
*&#039;&#039;&#039;August 4, 7PM, Thursday&#039;&#039;&#039; - [http://zeidman.net Bob Zeidman] will be giving a talk on video games and intellectual property, hosted by TheMADEHe will also speak about IP infringement cases.&lt;br /&gt;
*&#039;&#039;&#039;August 9, 6:30PM, Tuesday&#039;&#039;&#039; - [http://www.meetup.com/makesf/events/26413241/ Make:SF] - Chris Jefferies will speak about the wireless sensor kit he is developing and we are bringing back our all star soldering kits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;April 13th, 19:00&#039;&#039;&#039; - Kombucha fermentation class with [[BioBridge]] &lt;br /&gt;
*&#039;&#039;&#039;April 7th, 20:00&#039;&#039;&#039; - [[In-Depth|Noisebridge: In-Depth]] Our monthly lecture and round tableThis month&#039;s speaker will be Aragorn! his lecture will be &amp;quot;Anarchism &amp;amp; technology: An unbridgeable chasm&amp;quot;&lt;br /&gt;
*&#039;&#039;&#039;April 4th, 20:00&#039;&#039;&#039; - Camp KDE PartyCome and meet part of the KDE North America community and get a quick overview of this year&#039;s [http://camp.kde.org/ Camp KDE] conferenceThere will be beer&lt;br /&gt;
*&#039;&#039;&#039;April 3rd, 16:00&#039;&#039;&#039; - NoiseCaching: Meet-up to build some geocaches, and talk about making geocoinsThen we&#039;ll head out to find some local caches and place caches we made[http://www.geocaching.com More info about Geocaching here]&lt;br /&gt;
* &#039;&#039;&#039;March 20th, 19:00&#039;&#039;&#039; [[Hack Politics]] meetup -- the first meetup to figure out how we in the hacker community can effectively mobilize and create meaningful change in these interesting times&lt;br /&gt;
* &#039;&#039;&#039;March 12th, 12:00-18:00 - Noisebridge Hackathon!&#039;&#039;&#039; Second Saturday Hackathon is a casual monthly event dedicated to working on the space or relevant projects and building community This is a great time to get feedback or help on any projects you have been considering that center around the space, culture, and infrastructure of Noisebridge You can also help with existing projects and find out ways to get involved.&lt;br /&gt;
* &#039;&#039;&#039;March 10, Thursday, 19:00 - Group Grammar Clinic&#039;&#039;&#039; - Church Classroom - Donations gladly accepted - A clinic for grammar and writing evaluationPlease bring your web/social or technical writing for us to evaluateBring your laptop as well Collaboration groupware possibly provided(Please suggest groupware software to use if you wish)Constructive feedback from other group members is encouraged so that this clinic is a group process- Facilitator: [[User:Owen|Owen]] (opietro@yahoo.com)&lt;br /&gt;
* &#039;&#039;&#039;March 9th, 20:00&#039;&#039;&#039; - Ferment and filter a mash! [[fermentation logs]]&lt;br /&gt;
&lt;br /&gt;
===2010===&lt;br /&gt;
* &#039;&#039;&#039;Sunday, August 22, 19:00 CLUB-MATE DROPOFF AND TASTING PARTY&#039;&#039;&#039; Nick Farr will be in town to drop off Club-Mate ordered by San Franciscans!&lt;br /&gt;
* &#039;&#039;&#039;June 5th, 12:00-19:00 - [[NoiseBridgeRehab]]&#039;&#039;&#039; - Help make the space more usable and accessible! Noisebridge needs your help!&lt;br /&gt;
* &#039;&#039;&#039;June 5th, 16:00-20:00 - [[Science For Juggalos]]&#039;&#039;&#039; - Science Fair in front of the Warfield Theater teaching magnetism to Juggalos&lt;br /&gt;
* &#039;&#039;&#039;June 6th, 15:00 - [[AVC Meetup]]&#039;&#039;&#039; - Entrepreneurial bonding &amp;amp; matchmaking&lt;br /&gt;
* &#039;&#039;&#039;June 9th, 21:00 - Your liver supports Noisebridge&#039;&#039;&#039; - Come to Elixir @ 16th &amp;amp; Guerrero anytime after 21:00 and drink, drink, drink! 50% of tips go to Noisebridge&lt;br /&gt;
* &#039;&#039;&#039;February 27th, 20:00 - [[Hacker EPROM]]&#039;&#039;&#039; - Noisebridge&#039;s first prom! Nice tie and a (robot) date requiredWe will have a DJ and punch.&lt;br /&gt;
* &#039;&#039;&#039;February 24th, 19:00, Wednesday - Joris Peels, of [http://www.shapeways.com Shapeways]&#039;&#039;&#039;, and expert on 3D printing, will give a [[ShaperwaysPresentation | talk and demonstration]] at Noisebridge!.&lt;br /&gt;
* &#039;&#039;&#039;February 23rd, 18:00 - Cleaning day&#039;&#039;&#039; - Come and help clean Noisebridge, because everyone loves a clean hack space.&lt;br /&gt;
* &#039;&#039;&#039;February 12th, 21:00 - visit from Steve Jackson&#039;&#039;&#039;Game designer [http://en.wikipedia.org/wiki/Steve_Jackson_%28US_game_designer%29 Steve Jackson], founder of Steve Jackson Games, will visit Noisebridge.&lt;br /&gt;
* &#039;&#039;&#039;January 27th, 18:00-20:00 - [[beatrixjar event|Circuit Bending Workshop]]&#039;&#039;&#039; - [http://www.beatrixjar.com/ Beatrix*JAR] (contact [[User:Gpvillamil|Gian Pablo]] for more info)&lt;br /&gt;
* &#039;&#039;&#039;January 27th, 20:00-22:00 - [[beatrixjar event|Circuit Bending Performance]]&#039;&#039;&#039; - [http://www.beatrixjar.com/ Beatrix*JAR] - &amp;quot;Celebrate a night of new sound that will change your idea of music forever!&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;January 25th, 19:30 - [[Bag Porn]]&#039;&#039;&#039; - What&#039;s in your bag?&lt;br /&gt;
* &#039;&#039;&#039;January 20th, 19:00-21:00 - [http://groups.google.com/group/bacat/about Bay Categories &amp;amp; Types]&#039;&#039;&#039; - Categories, monoids, monads, functors and more! Held in the Alonzo Church classroom.&lt;br /&gt;
* &#039;&#039;&#039;January 20th, 19:00 - [[User Experience Book Club SF]]&#039;&#039;&#039; - Our book this month is &amp;quot;A Theory of Fun for Game Design&amp;quot; by Raph Koster - http://is.gd/6sEqw (meets in Turing)&lt;br /&gt;
* &#039;&#039;&#039;January 21st, 20:00 - [[Five Minutes of Fame]]&#039;&#039;&#039; - Monthly set of lightning talks on diverse topics&lt;br /&gt;
* &#039;&#039;&#039;January 22nd, 17:00 - [[CleaningParty| Cleaning Party]]&#039;&#039;&#039; - Come help clean up Noisebridge! Awsum fun!&lt;br /&gt;
* ...January 14th,16th, and 17th 1:00- ??? Build Out day for kitchen/bathroom/laundry bring yourself and a good attitude, learn a few things as well&lt;br /&gt;
* &#039;&#039;&#039;January 15th, 18:00 - [[CNC_Mill_Workshop]]&#039;&#039;&#039; - Learn to use the CNC mill for 2D engraving and circuit board routing&lt;br /&gt;
* Thursdays 17:00 [[ASL Group|American Sign Language]] - Learn how to talk without using your voice (or just come chat in ASL)&amp;lt;small&amp;gt;[http://whenisgood.net/noisebridge/asl/generic click to reschedule]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===2009===&lt;br /&gt;
* &#039;&#039;&#039;November 18th, 19:30&#039;&#039;&#039; - [[Dorkbot_2009_11_18|Dorkbot]]&lt;br /&gt;
* &#039;&#039;&#039;November 19th, 18:00&#039;&#039;&#039; - [[Mesh meetup]]&lt;br /&gt;
* &#039;&#039;&#039;November 19th, 20:00&#039;&#039;&#039; - [[Five Minutes of Fame]]&lt;br /&gt;
* &#039;&#039;&#039;November 20th, 18:00&#039;&#039;&#039; - Loud Objects [http://www.flickr.com/photos/createdigitalmedia/3428249036/ Noise Toy workshop].&lt;br /&gt;
* &#039;&#039;&#039;November 20th, 20:00&#039;&#039;&#039; - Performance by [http://www.loudobjects.com/ Loud Objects], (featuring Tristan Perich and Lesley Flanigan) and [http://www.myspace.com/jibkidder Jib Kidder].&lt;br /&gt;
:&#039;&#039;&#039;2009-11-05&#039;&#039;&#039; - [http://www.server-sky.com/ Server Sky presentation: Internet and Computation in Orbit] by Keith Lofstrom&lt;br /&gt;
:&#039;&#039;&#039;2009-11-05&#039;&#039;&#039; - [[Mesh meetup]]&lt;br /&gt;
:&#039;&#039;&#039;2009-11-02&#039;&#039;&#039; - [[French]] book club meeting to discuss  [http://www.amazon.com/exec/obidos/tg/detail/-/2842612892/ref=ord_cart_shr?_encoding=UTF8&amp;amp;m=ATVPDKIKX0DER&amp;amp;v=glance Une Si Longue Lettre]&lt;br /&gt;
: &#039;&#039;&#039; October 1st, 18:00&#039;&#039;&#039; - [[Wireless_Mesh_Network_Meetup | Mesh wireless meetup]]&lt;br /&gt;
: &#039;&#039;&#039; October 1st, 19:00&#039;&#039;&#039; - [http://groups.google.com/group/bacat Bay Area Categories and Types]&lt;br /&gt;
: &#039;&#039;&#039;2009-10-03&#039;&#039;&#039; [[Year 1 Open Hacker House]]&lt;br /&gt;
:&#039;&#039;&#039;Friday&#039;&#039;&#039;: [[CrazyCryptoNight]] - Discussion of cryptography for beginners through experts6-???&lt;br /&gt;
:&#039;&#039;&#039;Sunday&#039;&#039;&#039; : [[OpenEEG | OpenEEG Hacking]] Sundays, at 3-5pm.&lt;br /&gt;
:&#039;&#039;&#039;Monday&#039;&#039;&#039;: [[German]] - Learn German, all levels7pm beginners, 8pm advancedRSVP 24 hours in advance for the benefit of the instructorEvents ran May-November 2009Currently on Thursdays at 8Get on the mailing list.&lt;br /&gt;
:&#039;&#039;&#039;Tuesday&#039;&#039;&#039;: [[Haskell/Haschool]] - Learn Haskell with Jason Dusek 6PM - 7:30PM, from May until we&#039;re all experts.&lt;br /&gt;
:&#039;&#039;&#039;Wednesday&#039;&#039;&#039;: [[Adobe_Lightroom|Adobe Lightroom]] - Become a more organized photographerWeekly class (mostly held off site).&lt;br /&gt;
:&#039;&#039;&#039;Thursday&#039;&#039;&#039;: [[Professional VFX Compositing With Adobe After Effects]] - Taught by [[User:SFSlim|Aaron Muszalski]]7:30PM - 10PM, most Thursdays in May &amp;amp; June &amp;amp; ? (click through dammit)&lt;br /&gt;
:&#039;&#039;&#039;2009-09-17&#039;&#039;&#039;: [[Five Minutes of Fame]] 3D Edition&lt;br /&gt;
:&#039;&#039;&#039;2009-09-17&#039;&#039;&#039;: [[Wireless Mesh Network Meetup | Mesh wireless meetup]]&lt;br /&gt;
:&#039;&#039;&#039;2009-08-20&#039;&#039;&#039;: [[Five Minutes of Fame]] One Dee Edition&lt;br /&gt;
:&#039;&#039;&#039;2009-07-16&#039;&#039;&#039;: [[Five Minutes of Fame]] Zero Dee&lt;br /&gt;
:&#039;&#039;&#039;2009-07-02 - 2009-07-05&#039;&#039;&#039;: [http://toorcamp.org Toorcamp]&lt;br /&gt;
:&#039;&#039;&#039;2009-07-01&#039;&#039;&#039;: Noisedroid meeting to discuss location logging on Android platform (and other stuff too, I&#039;m sure)&lt;br /&gt;
:&#039;&#039;&#039;2009-06-30&#039;&#039;&#039;: [[Powerbocking Class|Powerbocking class]]&lt;br /&gt;
:&#039;&#039;&#039;2009-06-30&#039;&#039;&#039;: &amp;quot;Suing Telemarketers for Fun and Profit&amp;quot; (Toorcamp talk preview)&lt;br /&gt;
:&#039;&#039;&#039;2009-06-28&#039;&#039;&#039;: &amp;quot;Meditation for Hackers&amp;quot; (Toorcamp workshop preview)&lt;br /&gt;
:&#039;&#039;&#039;2009-06-18&#039;&#039;&#039;: [[Five Minutes of Fame]]&lt;br /&gt;
:&#039;&#039;&#039;2009-06-15&#039;&#039;&#039;: [[Eagle Workshop]]  Session two of the Eagle CAD workshop.&lt;br /&gt;
:&#039;&#039;&#039;2009-06-13&#039;&#039;&#039;: [[RoboGames 2009]] Noisebridge had a booth staffed by vounteers, great fun!&lt;br /&gt;
:&#039;&#039;&#039;2009-05-21&#039;&#039;&#039;: [[Five Minutes of Fame]]&lt;br /&gt;
:&#039;&#039;&#039;2009-04-27&#039;&#039;&#039;: [[EagleCAD workshop]] -- learn to use this CAD tool for printed circuit board design&lt;br /&gt;
:&#039;&#039;&#039;2009-04-16&#039;&#039;&#039;: [[Five Minutes of Fame]] April showers &amp;amp; flowers edition&lt;br /&gt;
:&#039;&#039;&#039;2009-04-11&#039;&#039;&#039;: [[RFID Hacking]] weekend workshop  (this event moved from the original March date)&lt;br /&gt;
:&#039;&#039;&#039;2009-04-05&#039;&#039;&#039;: [[First aid and CPR class]] Learning how to not only not die, but also reduce scarring!&lt;br /&gt;
:&#039;&#039;&#039;2009-04-03&#039;&#039;&#039;: [[Sudo pop]] 2PM and onMaking the first batch of a Noisebridge label yerba mate-niated rootbrew, gratis and DIY&lt;br /&gt;
:&#039;&#039;&#039;2009-03-26&#039;&#039;&#039;: [[OpenEEG | OpenEEG Hacking]] first meet up for this new group: 8 pm&lt;br /&gt;
:&#039;&#039;&#039;2009-03-19&#039;&#039;&#039;: [[Five Minutes of Fame]]&lt;br /&gt;
:&#039;&#039;&#039;2009-03-12&#039;&#039;&#039;: [[OpenBTS and GSM]] talk by David Burgess&lt;br /&gt;
:&#039;&#039;&#039;2009-02-14&#039;&#039;&#039;: [[Open Heart Workshop]] Valentine&#039;s Day blinkyheart soldering party! &lt;br /&gt;
:&#039;&#039;&#039;2009-02-13&#039;&#039;&#039;: [[Time-t_Party|&amp;lt;tt&amp;gt;time_t&amp;lt;/tt&amp;gt; Party]] to celebrate 1,234,567,890 since the Unix epoch.&lt;br /&gt;
:&#039;&#039;&#039;2009-02-09&#039;&#039;&#039;: [[Spanish learning at 8:30]]&lt;br /&gt;
:&#039;&#039;&#039;2009-02-05&#039;&#039;&#039;: [[PGP Key Workshop]]&lt;br /&gt;
:&#039;&#039;&#039;2009-01-31&#039;&#039;&#039;: [[Locksport and Lockpicking]]&lt;br /&gt;
&lt;br /&gt;
===2008===&lt;br /&gt;
:&#039;&#039;&#039;2008-12-27&#039;&#039;&#039;: [[25C3]] Chaos Computer Congress in Berlin&lt;br /&gt;
:&#039;&#039;&#039;2008-12-20 &amp;amp; 21&#039;&#039;&#039;: [[Creme Brulee]] Workshop on creating a french dessert, with bonus propane torch.&lt;br /&gt;
:&#039;&#039;&#039;2008-12-17 20:00&#039;&#039;&#039;: [[Machine Learning]] Birds-of-a-feather&lt;br /&gt;
:&#039;&#039;&#039;2008-11-24&#039;&#039;&#039;: [[Circuit Hacking Monday]] circuit design workshop&lt;br /&gt;
:&#039;&#039;&#039;2008-11-21, 7pm&#039;&#039;&#039;:[[Milk and Cookies]] -- [[User:Dmolnar|David Molnar]] hosts Milk and Cookies at 83CBring a short 5-7minute thing to read to othersBring a potluck cookie/snack/drink if you likeDavid will bring milk and cookies.&lt;br /&gt;
:&#039;&#039;&#039;2008-11-17, 7:30pm&#039;&#039;&#039;: [[Basic Bicycle Maintain]] - [[User:rubin110|Rubin]] and [[User:rigel|rigel]] hate it when we see a bike that isn&#039;t maintainedScreechy chains and clacking derailleur can go to hellBasic bike tune up, sharing the smarts on simple things you can do at home to make your ride suck a whole lot less.&lt;br /&gt;
:&#039;&#039;&#039;2008-11-16, 5:00pm&#039;&#039;&#039;: [[RepRap Soldering Party]] - help assemble RepRap!  RSVPs required on wiki! [[User:Adi|adi]]&lt;br /&gt;
:&#039;&#039;&#039;2008-11-16, 3:00pm&#039;&#039;&#039;: [[Oscilloscopes]] - Learn how to use this versatile tool to test electronic circuits Maximum 6 slots, please sign up ahead of time! [[User:dstaff|dstaff]]&lt;br /&gt;
:&#039;&#039;&#039;2008-10-31&#039;&#039;&#039;: [[Halloween Open House]] - NoiseBridge&#039;s own [[PPPC]] threw an awesome open house/halloween galaPost pictures if you got &#039;em!&lt;br /&gt;
:&#039;&#039;&#039;2008-10-25&#039;&#039;&#039;: [[Soldering Workshop]] and Pumpkin Hackin&#039; - Learn to solder for total newbies (or learn to solder better!), including surface mountAdditionally, carve your halloween pumpkins and enjoy some experimental pumpkin pie and/or soup.&lt;br /&gt;
:&#039;&#039;&#039;2008-10-07&#039;&#039;&#039;: (tuesday before meeting) - Etch a circuit boardI&#039;ll be trying a photo resist etching and a basic printed mask etchingThis is step 1/3 for a project called &amp;quot;annoying USB thingie&amp;quot; which will execute pre-defined keystrokes by sneaking a tiny USB dongle onto a victim^h^h^h^h^h buddy&#039;s computer.&lt;br /&gt;
:&#039;&#039;&#039;2008-09-13&#039;&#039;&#039;: [[Processing Workshop]] — Learn this very easy-to-use programming language! - [[Processing Workshop Report]]&lt;br /&gt;
:&#039;&#039;&#039;2008-02-16&#039;&#039;&#039;: [[Brain Machine Workshop|Brain Machine Making Workshop]]: Our first hardware sprint!&lt;br /&gt;
&lt;br /&gt;
[[Category:Top level]]&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=Category:Events&amp;diff=37197</id>
		<title>Category:Events</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=Category:Events&amp;diff=37197"/>
		<updated>2013-12-18T20:23:20Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Recurring Events edit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Note that this page uses transclusionContent between the &amp;quot;onlyinclude&amp;quot; tags below will be pushed to the main page --&amp;gt;&lt;br /&gt;
Official, Semi-Official, one-off and other events at the Noisebridge space.&lt;br /&gt;
&lt;br /&gt;
=Event Calendar=&lt;br /&gt;
Not all events make it onto this calendarMany events only make it to the Discussion or Announcements [[Mailinglist | mailing lists]], [[IRC]] or in person at [[:Category:Meeting_Notes | Tuesday meetings]]. Best of all, Noisebridge is about people getting together at the space in San Francisco to do stuff..like in person. Some events just happen. Pay attention!&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to host an event yourself, we recommend involving at least one Noisebridge member, and have advice on  [[Hosting_an_Event|hosting an event]] at Noisebridge.&lt;br /&gt;
&lt;br /&gt;
View the  [https://www.google.com/calendar/embed?src=1uesj915rces4cbmcr8j3sg8t0%40group.calendar.google.com&amp;amp;ctz=America/Los_Angeles Google Calendar].&lt;br /&gt;
&lt;br /&gt;
To post Google Calendar entries for your event or to gain access to do so for yourself, ask on the noisebridge-discuss mailing list.&lt;br /&gt;
&amp;lt;!-- Items inside this &amp;quot;onlyinclude&amp;quot; tag will be pushed to the main page --&amp;gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
=== Upcoming Events &amp;lt;small&amp;gt;[https://www.noisebridge.net/index.php?title=Category:Events&amp;amp;action=edit&amp;amp;section=2 edit]&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&amp;lt;!-- Please read our &amp;quot;Hosting an Event&amp;quot; page and possibly follow some of the guidelines there before posting your event herehttps://www.noisebridge.net/wiki/Hosting_an_Event --&amp;gt;&lt;br /&gt;
&amp;lt;!-- It&#039;s smart to add in a link to a wiki page with more information about your even, and a way to contact the event organizer(s)Thanks! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Thursday, December 26, 6.00 pm&lt;br /&gt;
|title        = 30c3&lt;br /&gt;
|description  = Congress everywhere:Noisebridge, save yourself the jet lag and come to Noisebridge to experience the annual Chaos Communication Congress. This event will run concurently thru Monday with the 4 day event in Hamburg&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Sunday Jan 12th 2014, 12.00 pm&lt;br /&gt;
|title        =GodWaffleNoisePancakes &lt;br /&gt;
|description  = Join us for a noise performance and vegan pancakes for San Francisco&#039;s longest running noise/experimental music show, in the hackatorium&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://noisebridge.net/wiki/30c3&lt;br /&gt;
&lt;br /&gt;
=== Recurring Events &amp;lt;small&amp;gt;[https://www.noisebridge.net/index.php?title=Category:Events&amp;amp;action=edit&amp;amp;section=3 edit]&amp;lt;/small&amp;gt; ===&lt;br /&gt;
&amp;lt;!-- Please read our &amp;quot;Hosting an Event&amp;quot; page and possibly follow some of the guidelines there before posting your event herehttps://www.noisebridge.net/wiki/Hosting_an_Event --&amp;gt;&lt;br /&gt;
&amp;lt;!-- It&#039;s smart to add in a link to a wiki page with more information about your even, and a way to contact the event organizer(s)Thanks! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Large turnout events should be written in &#039;&#039;&#039;bold&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Monday ====&lt;br /&gt;
* &#039;&#039;&#039;19:30 - 22:00 [[Circuit Hacking Mondays]]&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;color:black&amp;quot;&amp;gt;(Early start of 3:00pm on Monday holidays.)&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;div style=&amp;quot;padding-left: 30px; max-width: 725px;&amp;quot;&amp;gt;- Learn to solder! And make cool things with electronics. [[User:maltman23|Mitch]], Rolf, [[User:Miloh|Miloh]], and others will bring kits to make cool, hackable things for all skill levels that you can bring home after you make them! Bring your own projects to hack! Bring things to fix! All ages. All welcome!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- 2013-02-02 * 19:00 [[Cook-in class]] Bring your ideas/food/appetite and try your hand at cooking--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;18:00-20:00 [[Collaborative Coding]]&#039;&#039;&#039; - All levels and languages welcome for open, friendly coding session. Bring tutorials, projects, or just yourself. &#039;&#039;&#039;Starting 2013-12-16&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;20:00 - 22:00 [[Front-end Web Development]]&#039;&#039;&#039; - &#039;&#039;&#039;Class on hiatus from 2013-12-16 until 2014-01-06.&#039;&#039;&#039;&amp;lt;br&amp;gt; Learn HTML/CSS/JS. We&#039;re covering the basics and then going in-depth on different topics every week. Recap of last week&#039;s material starts at 19:30.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;[[House_Keeping#Trash_and_Recycling|Take Out the Trash Night]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuesday ====&lt;br /&gt;
* 15:00 - 17:00 [[Linux System Administration class]] meets in the Turing classroom. Stay tuned to possible future changes to the format and topics of this workshop. Focus remains on server systems; less on workstation problems.  &lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;18:00 [[Office Hours]]&#039;&#039;&#039; Have pressing questions about Noisebridge, or need help dealing with nonsense/bs? Find [[user:flamsmark|Tom]] at the space or [https://foursquare.com/v/the-sycamore/4c253819c11dc9b634d82624 the Sycamore] for help before the meeting. --&amp;gt;&lt;br /&gt;
* 18:00 - 20:00 Wiki Hacking, learn how to use the Noisebridge wiki by creating your own user account and page, as well as editing content. Meet by the fire escape at the &amp;quot;Dream Station&amp;quot;. Hosted by [[User:Thex|J.C.]]&lt;br /&gt;
* 19:00 - 20:00 [https://noisebridge.net/wiki/Radio Noisebridge Radio] meeting somewhere in the space.&lt;br /&gt;
* 19:00 - 21:00 [[Machine Learning | Machine_Learning]] Learn some data science! For people at all levels.&lt;br /&gt;
* 19:00 - 21:00 [[PyClass | Advanced Python]] Slaying the web with Python 2.7 &amp;amp; 3.3. Instructed by Liz and Kellan in Turing.&lt;br /&gt;
* 17:00 - 19:00 &#039;&#039;&#039;*ix&#039;&#039;&#039; [[Linux.BSD.UNIX Open Learning and Hacking]] Learning by doing in Linux/OpenBSD/FreeBSD/Unix/Others in Turing. Workstation problems and projects okay.&lt;br /&gt;
* &#039;&#039;&#039;19:00 - 21:00 [http://www.railsschool.org Ruby and Rails class]&#039;&#039;&#039; - Seminar and workshop for learning everything about Ruby, Rails, and web application development (Church classroom).&lt;br /&gt;
* &#039;&#039;&#039;19:30 - 21:00 [[Light Patterns with LEDs and Microcontrollers]]&#039;&#039;&#039; - Learn how to make light dance and do your bidding! We will make Arduino sketches to control multicolor LED pixels.&lt;br /&gt;
&amp;lt;!-- * 19:30 [[Spacebridge]] - Noisebridge&#039;s space program --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * &#039;&#039;&#039;18:00 - 19:30 [[Rebase|Great Noisebridge Rebase of 2013!]]&#039;&#039;&#039; - Discussion and Proposal development regarding the ongoing Rebase initiative. Meet in the Hackitorium. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;20:00 [[Meetings|Noisebridge Weekly Meeting]]&#039;&#039;&#039; - Introducing new people and events to the space, general discussion, and decision making. &#039;&#039;&#039;This is your space, folks. Come on out here in person to express what you think about what&#039;s going on with it!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Wednesday ====&lt;br /&gt;
&amp;lt;!-- On hiatus 2013-01-08 * 18:00 [[Replicator Wednesday|Replicator Wednesday]]! This event is on hiatus from Noisebridge until further notice.  New &amp;quot;series&amp;quot; starts January 9th! --&amp;gt;&lt;br /&gt;
* 16:00 - 18:00 Locks Sport. Picking, repining, etc. Try to bring your own picks. If not we will try to make some here. We will go on as long as people want to stick around.&lt;br /&gt;
* 18:00 - 20:00 [[Linux &amp;amp; BSDiscussion|Linux/BSDiscussion and Problem Solving]] - Linux/BSD meetup in the Turing classroom.&lt;br /&gt;
* 19:00 - 20:00 [[Feminist Book Club for Men]] - On the second Wednesday of every month, we try to educate ourselves about feminism, and not being quite as much of a jerk.&lt;br /&gt;
* 19:30 - 21:00 [[DreamTeam| Dream Team Neuro Hackery]] - EEG research &amp;amp; development project with general interest in sleep, dreaming, creative intelligence, and many loosely related topics such as: neurophysiology, signal processing, cognitive neuroscience, and (especially) hacking code and devices for data acquisition and analysis.  Join us at the [[CollaborationStation]] near the Hackatorium / 3D printing area.  (Discussion sometimes starts closer to 8 PM, usually shifting focus by 9 PM to more technical aspects of specific projects).  &lt;br /&gt;
* 19:00 - 21:00 [[PyClass]] - Intro to Python in Church Classroom.&lt;br /&gt;
* 19:30 - 22:00 [[BACE Timebank]] (1st Wednesdays every &#039;&#039;odd&#039;&#039; month) Next meeting on Wed Nov 6, 8pm - Help organize community mutual aid by trading in equal time credits. To find out more and join go to [http://sfbace.org sfbace.org].&lt;br /&gt;
&lt;br /&gt;
==== Thursday ====&lt;br /&gt;
* [[House_Keeping#Trash_and_Recycling|Trash Night]]  - Take out the trash for Friday morning!&lt;br /&gt;
* &#039;&#039;&#039;18:00-20:00 [[Collaborative Coding]]&#039;&#039;&#039; - All levels and languages welcome for open, friendly coding session. Bring tutorials, projects, or just yourself. &#039;&#039;&#039;Starting 2013-12-16&#039;&#039;&#039;.&lt;br /&gt;
* 18:30 [[Digital Archivists]] - Help build a book scanner for Noisebridge&lt;br /&gt;
* 19:00 [[Tastebridge]] / [[Vegan Hacker]] Monthly Food Hacking, last Thursday of every month (Except for Dec 2013, when it&#039;ll be on Dec 5th!), 7pm http://www.veganhackersf.com&lt;br /&gt;
* 19:00 - 22:00 [[3D Thursday]] Weekly meetup (non-3rd-thursdays) at Noisebridge focusing on 3D Printers, CNC machines, FabLabs, and replicating machines of all kinds.&lt;br /&gt;
&amp;lt;!-- * 19:00 [[german_corner|German Corner]] Learn and practice speaking German --&amp;gt;&lt;br /&gt;
&amp;lt;!-- on hiatus? 2013-01-08 * 19:00 [[wearable fashion techies]] first meeting Nov 1st --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;19:00 - 21:00 [[Letter Lovers]]&#039;&#039;&#039; - Learn &amp;amp; create calligraphy, lettering, fonts, handwriting, and all things letters. &#039;&#039;&#039;On hiatus until January 2014&#039;&#039;&#039;&lt;br /&gt;
* 20:00 [[Front-end_Web_Development#Lab|Front-end Web Development Lab]] - &#039;&#039;&#039;On Wednesday, December 11 this week only.&#039;&#039;&#039; Understand by doing! A recap of Monday&#039;s lecture in workshop form - and a good time for one-on-one help with the material.&lt;br /&gt;
* &#039;&#039;&#039;20:00 [[Five Minutes of Fame]]&#039;&#039;&#039; - lightning talks every 3rd Thursday of the month&lt;br /&gt;
&lt;br /&gt;
==== Friday ====&lt;br /&gt;
&lt;br /&gt;
* 16:00 - 22:00 [[FUN Tutoring]] @ [[CollaborationStation]]&lt;br /&gt;
* 19:00 - 21:00 [https://noisebridge.net/wiki/JavaScript/ JavaScript Class] EcmaScript programming language, DOM, Object Oriented JavaScript, and Events.&lt;br /&gt;
&lt;br /&gt;
==== Saturday ====&lt;br /&gt;
&amp;lt;!-- 2013-02-02 * 18:30-20:30 Beginner [[French]] - Learn basic grammar and sentence structure. Classes meet in the Turing room --&amp;gt;&lt;br /&gt;
* 12:00 - 18:00 &#039;&#039;&#039;[[modular|Modular and Analog Synth Workshop]]&#039;&#039;&#039; NEXT WORKSHOP TBA Learn the basics of analog synthesis on a modular synth with Douglas. we will meet in the church.&lt;br /&gt;
&lt;br /&gt;
==== Sunday ====&lt;br /&gt;
* 12:30 - 19:30 [[Dungeons and Dragons]] in Church, not currently looking for new players.&lt;br /&gt;
* 13:00 Lock Sport Collaboration: Come learn how to pick locks with the [http://www.tooolsf.org/ SF Bay Area chapter] of [http://toool.us/ TOOOL]. Sometimes at Noisebridge. Check the [http://www.tooolsf.org/meeting-announcements/ TOOOLSF announcements page] for details. &lt;br /&gt;
&amp;lt;!-- on hiatus, according to Mik: * 14:00 - 22:00 [[World of Darkness]] Looking to run a biweekly game at Noisebridge. Talk with Melissa if interested --&amp;gt;&lt;br /&gt;
* 14:00 [[BAHA]] - [http://baha.bitrot.info Bay Area Hacker&#039;s Association] - security meeting (2nd Sundays only)&lt;br /&gt;
* 15:00 [[Go]] - Playing of the Go board game. On nice days we often take the boards to Dolores Park and play there.&lt;br /&gt;
* 16:00 [[Elements_of_Image_Making]] Bi-Weekly Analogue and DIY film making meetup/hangout/nerdout&lt;br /&gt;
* 18:00 [[Plan 9]] class &lt;br /&gt;
* 9:00 - 10:00 JavaScript Class EcmaScript programming language, DOM, Object Oriented JavaScript, and Events. &lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to contact somebody at Noisebridge regarding these Events or even the Noisebridge Wiki itself, then please send an email message to &amp;lt;secretary@noisebridge.net&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Orphaned Events ===&lt;br /&gt;
These events appear to be dormant or extinct.&lt;br /&gt;
&lt;br /&gt;
* SAT 10:15 - 12:10 [[Juggling with Judy!]] Note: next class is scheduled for Saturday June 29th.  Attention juggling fans!  Judy will be at the 2013 World Juggling Day celebration Saturday June 15th at Ripley&#039;s Believe It Or Not Odditorium in San Francisco Fisherman&#039;s Warf - free event begins at 1.  Come check it out!  &lt;br /&gt;
* WED 20:00 - 22:00 [https://www.noisebridge.net/mailman/listinfo/zine ZinesFromOuterSpace] - A biweekly (once every 2 weeks or twice a month) meetup for zinesters / printing hackers / DIY publishers, and brainstorming session for the next chapter of [[zine | ZiP]]. Next meeting is 1/30/13, followed by another in mid-Feb (TBA).&lt;br /&gt;
* THU 18:00 - 21:00 &#039;&#039;&#039;[[Privacy Bay]]&#039;&#039;&#039; - A monthly meetup for Bay Area folks interested in privacy. Meets in Church on the last Thursday of the month.&lt;br /&gt;
* FRI 19:00 - 21:00 [[Anarchy_101|Anarchy 101]] - a class/seminar on what anarchy is and is not, and how it impacts us as individuals and as discrete groups.&lt;br /&gt;
* SUN 13:00 [[Songbridge]]: (Bi-monthly) Learn how to make and record music with a computerWe cover midi and vst as well as multi-track recordingBring your laptop.&lt;br /&gt;
* 20:00 - 22:00 [[Noise~_Wednesday | Noise~ Wed]] - Graphical media programming with Max/MSP/Jitter&lt;br /&gt;
&lt;br /&gt;
 *19:00 [[Tahoe-LAFS]] - Occasional meetup of users and/or developers of the Least Authority File System.&lt;br /&gt;
&lt;br /&gt;
* 14:00 - 16:00 Android Developer Support Group - Meet up with other app developers in the library for a lightly structured knowledge-share.&lt;br /&gt;
&lt;br /&gt;
=== Proposed Future Events and Classes ===&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Algorithms Study Group]] I&#039;m light on the algos and am looking for others to take &amp;quot;Algorithms I&amp;quot; on Coursera starting on January 31st.  This is a 6 week course that covers fundamental algorithms, data structures, time-complexity, Big O notation, etc. &lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Terence McKenna Book Club]] A book club to discuss the ideas and theories of famed philosopher and anthropologist Terence McKenna.  Related topics include: Language, Technology, Virtual Reality, Shamanism, Anthropology, Eschatology, Consciousness, Plant-based Entheogens, Psychedelics.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Sound Science]] A potential monthly lecture/demonstration series on the little known science behind sound reproductionTopics to include: Transducer Physics(speakers and mics), Room Acoustics, Signal Path and Cabling,Loudspeaker design 101, Music Production Tips for Big Sound, and How to make a small system sound HUGEEach session to include hands on projects like making speakers from stuff lying around, Non-Newtonian bass monsters, and ez speaker mods for anyoneIf interested contact the new guy-&amp;gt; MattLong8 at gmail dot com, 805 four five three - six zero nine seven &lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Modular Synthesis]] a bi-weekly (or monthly) group devoted to modular synthesizers&amp;gt; workshop will include modular sound synthesis styles and techniques, a study of different modules and their functions, ie voltage controlled oscillator, voltage controlled filter, low frequency oscillator, envelope generator ect and how these modules interact with each other, what control voltage and triggers are..... as well as one on one time for each student with the modular, which is a 60 space large format Moog style modular synthesizer with big knobs and 1/4 jacks   including performance and other awesomeness by Douglas. contact Douglas at greenshoos at gmail dotcom&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[VideoHacking]] a weekly video/video art devoted hacker group, including experiments in the 3D vr realm...if interested contact julialc4@gmail.com&lt;br /&gt;
:Wednesdays at 21:00 [[Brewing Bridge]] - Malakkar Proposal: Learn how to make your drinks fun AND antibacterial, using yeastThis will be recurring if enough interest or need is presentAssociated items - what to do with brewing leftovers, and brewers sample hour, etc.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Fie: Failure is Eminent]] - [[User:MedianMajik|James]] wants to start a System Recovery class that will meet either bi-monthly or weekly for a couple hours to try various backup and recovery methods on drives and data.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[101 Introduction to Linux]] - [[User:MedianMajik|James]] wants to start a 101 Introduction to Linux class where people can ask whatever questions they want and get them answered in 60 to 90 minutes Church would be the optimal location Looking for teachers.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Probability]] - Weekly probability study group based on [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-041-probabilistic-systems-analysis-and-applied-probability-spring-2006/related-resources/ Fundamentals of Applied Probability Theory] by Al Drake&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Mandarin Corner|Mandarin]] - Learn or practice Mandarin, all levels. Also currently on hiatus. Get on the mailing list.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Movie Night!]] - [[User:ThOMG|Thom]] wants to build community through nerdy sci-fi! (+Bill+Ted+Excellence++) (how about a Friday hacker movie night? -[[User:Carl|Carl]])&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Introduction to the AVR Microcontroller]] - [[User:Mightyohm|Jeff]] and [[User:Maltman23|Mitch]] are planning an introductory class for people wanting to make cool projects with AVRs.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Basic Chemistry Lab Techniques]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Cuddle Puddle for the Economy]] - Stress-hacking with informal massage exchange.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Milk and Cookies]] - Come read your favorite selections out loudWith Milk and Cookies (and yeah, probably beer too).&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Processing Workshop 2]] - [[User:Scmurray|Scott]] is interested in teaching this, and is busy thinking about what, where, when, why, and how.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;:  [[Hack your Hardware]] -- We call BS on &amp;quot;no user-serviceable parts inside&amp;quot;&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Homebrew Instruction Class]] - The Wort (pt 1/3)&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Trip to Shooting Range]] - Field trip to a shooting range, to shoot guns Express interest at [[Trip to Shooting Range]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Surface Mount Soldering Workshop]] - Learn how to solder cicuits with small surface mount parts [[User:maltman23|Mitch Altman]] and Martin Bogomolni and others will show their tricks [[User:maltman23|Mitch]] will bring hackable kits that uses surface mounts for you to solder&amp;lt;-YES!(mattlong8 at gmail dot com)&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039; - [[Locksport and Lockpicking]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039; - [[Version control tutorial]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039; - [[Foreign language learning for rocket scientists]] - I&#039;m near-native (fool people when I try) in (French and) Japanese, and a pro trans/terpreter and will share my shortcuts (skill-order, vocab, speed/articulation, translation≅grammar)No expertise on tonal languages yet..so if you know how to remember tones or how tone-sandhi interacts with speed and/or how nuances of speaker attitude are expressed in them (what we do with rythm/inflection/sentence-intonation and stress in Eng., and with particles and ??? in e.gCantonese) please chime in or call me (415-608-0564) so I can convey your wisdom[also looking for a from-scratch Arabic partner]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Getting started with Arduino]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Distributed Databases]]&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Node.js Beginners Session]] - Interested in learning about Node.js? I amMaybe these guys want to teach it: http://www.meetup.com/Joyent-Cloud-User-Group/events/81311542/&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Scrum Club]] - I though I&#039;d test the waters and see if anyone was interested in a noisebridge scrum club details are here http://scrumclub.org/scrum-clubs/ if inturested hit me up twitter: @theabcasian, facebook: http://www.facebook.com/theabcasian&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[CNC Mill Workshop]] - Who wants to make stuff on the [[MaxNCMill]]?&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Math &amp;amp; Science Help]] - If you would like some math, science or engineering help, I&#039;m down to lend a hand.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Cyborg Group|Cyborg Group / Sensebridge]] - Work on projects like artificial senses Someone needs to lead this!&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[OpenEEG]] - Brain techHas historically met on Sundays, at the behest of interested parties.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Programming_for_Poets | Programming for Poets]] -  Gentle intro to programming using Processing&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[World Builders &amp;amp; Simgineers]] -  Work together to create a beautiful &amp;amp; open virtual world &amp;amp; platform.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[PlunderBridge]] -  Metal detecting, detector technology &amp;amp; treasure hunting expeditions.&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Ruby Mining]] -  Ruby on Rails basics, interactive working group&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[MoinMoin Wiki]] -  MoinMoin Wiki (details see there)&lt;br /&gt;
:&#039;&#039;&#039;(TBD)&#039;&#039;&#039;: [[Noisebridge Fundraiser 2013]]&lt;br /&gt;
&lt;br /&gt;
= Past Events =&lt;br /&gt;
&lt;br /&gt;
===2013===&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Friday, August 9, 5:00pm&lt;br /&gt;
|title        = Noisebridge Party Setup&lt;br /&gt;
|description  = Volunteers will be preparing the space for Saturday&#039;s show.  There are no scheduled conflicts; you might be asked to move multiple times by someone pushing a broom and assembling a raised stage simultaneously.&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Saturday, August 10, 4:00pm&lt;br /&gt;
|title        = Noisebridge &amp;quot;______ the Bridge&amp;quot; Party&lt;br /&gt;
|description  =  &amp;lt;span style=&amp;quot;color:#ff00ff; background:##ff00ff&amp;quot;&amp;gt; a summer fundraising party for Noisebridge, which YOU are invited to!&amp;lt;/span&amp;gt;&lt;br /&gt;
|suggested donation = $10, but no one turned away for lack of funds&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
*{{event&lt;br /&gt;
|time         = Sunday, August 11, 2:00pm&lt;br /&gt;
|title        = Bay Area Hackers&#039; Association Meeting&lt;br /&gt;
|description  = Jon Callas presenting on [[BAHA/2013-08-11|Secure Communications, Privacy, Counter-Surveillance]].&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Wednesday, May 22, 7.00 pm: Instructables Build Night&#039;&#039;&#039; - Bare Conductive, Instructables will supply Bare Conductive paint pens and pizza. Come experiment with the paint and post some Instructables. This is a FREE event.&lt;br /&gt;
&lt;br /&gt;
===2012===&lt;br /&gt;
* &#039;&#039;&#039;December 20, Thursday, 20:00 - 22:00 - [[5MoF|5 Minutes of Fame]]&#039;&#039;&#039; - Following up on its triumphant return in November, 5MoF is back with another showcase of lightning talks &amp;amp; other good stuff, with your host Sir Danny O&#039;Brien! Details TBA&lt;br /&gt;
*&#039;&#039;&#039;Tuesday Feb14th, 18:00 to 20:00&#039;&#039;&#039; ZiP MegaZine releases its inaugural issue with &#039;&#039;&#039;My Noisy Valentine&#039;&#039;&#039; Zine Release Microparty in the Noisebridge cafeFor more info follow [[zine | this]] link.&lt;br /&gt;
* &#039;&#039;&#039;Wednesday, Jan30, 20:00-22:00&#039;&#039;&#039; [[zine|ZiP]] meeting for zine-makers &amp;amp; others with an interest in printing &amp;amp; self-publishingThe meeting 1/30/13 is our first since mid-2012We plan to hold them regularly from now on at this time (Wednesday 8pm)This meeting will be informal &amp;amp; will probably take place in the printing/lasercutter area of the hackerspace.&lt;br /&gt;
&lt;br /&gt;
===2011===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;September 11th 14:00 to 17:00&#039;&#039;&#039; - The San Francisco Chapter of the Open Organisation Of Lockpickers and Bay Area Hacker&#039;s Association present a joint meeting on [https://secure.wikimedia.org/wikipedia/en/wiki/Locksport locksport]&lt;br /&gt;
*&#039;&#039;&#039;August 4, 7PM, Thursday&#039;&#039;&#039; - [http://zeidman.net Bob Zeidman] will be giving a talk on video games and intellectual property, hosted by TheMADEHe will also speak about IP infringement cases.&lt;br /&gt;
*&#039;&#039;&#039;August 9, 6:30PM, Tuesday&#039;&#039;&#039; - [http://www.meetup.com/makesf/events/26413241/ Make:SF] - Chris Jefferies will speak about the wireless sensor kit he is developing and we are bringing back our all star soldering kits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;April 13th, 19:00&#039;&#039;&#039; - Kombucha fermentation class with [[BioBridge]] &lt;br /&gt;
*&#039;&#039;&#039;April 7th, 20:00&#039;&#039;&#039; - [[In-Depth|Noisebridge: In-Depth]] Our monthly lecture and round tableThis month&#039;s speaker will be Aragorn! his lecture will be &amp;quot;Anarchism &amp;amp; technology: An unbridgeable chasm&amp;quot;&lt;br /&gt;
*&#039;&#039;&#039;April 4th, 20:00&#039;&#039;&#039; - Camp KDE PartyCome and meet part of the KDE North America community and get a quick overview of this year&#039;s [http://camp.kde.org/ Camp KDE] conferenceThere will be beer&lt;br /&gt;
*&#039;&#039;&#039;April 3rd, 16:00&#039;&#039;&#039; - NoiseCaching: Meet-up to build some geocaches, and talk about making geocoinsThen we&#039;ll head out to find some local caches and place caches we made[http://www.geocaching.com More info about Geocaching here]&lt;br /&gt;
* &#039;&#039;&#039;March 20th, 19:00&#039;&#039;&#039; [[Hack Politics]] meetup -- the first meetup to figure out how we in the hacker community can effectively mobilize and create meaningful change in these interesting times&lt;br /&gt;
* &#039;&#039;&#039;March 12th, 12:00-18:00 - Noisebridge Hackathon!&#039;&#039;&#039; Second Saturday Hackathon is a casual monthly event dedicated to working on the space or relevant projects and building community This is a great time to get feedback or help on any projects you have been considering that center around the space, culture, and infrastructure of Noisebridge You can also help with existing projects and find out ways to get involved.&lt;br /&gt;
* &#039;&#039;&#039;March 10, Thursday, 19:00 - Group Grammar Clinic&#039;&#039;&#039; - Church Classroom - Donations gladly accepted - A clinic for grammar and writing evaluationPlease bring your web/social or technical writing for us to evaluateBring your laptop as well Collaboration groupware possibly provided(Please suggest groupware software to use if you wish)Constructive feedback from other group members is encouraged so that this clinic is a group process- Facilitator: [[User:Owen|Owen]] (opietro@yahoo.com)&lt;br /&gt;
* &#039;&#039;&#039;March 9th, 20:00&#039;&#039;&#039; - Ferment and filter a mash! [[fermentation logs]]&lt;br /&gt;
&lt;br /&gt;
===2010===&lt;br /&gt;
* &#039;&#039;&#039;Sunday, August 22, 19:00 CLUB-MATE DROPOFF AND TASTING PARTY&#039;&#039;&#039; Nick Farr will be in town to drop off Club-Mate ordered by San Franciscans!&lt;br /&gt;
* &#039;&#039;&#039;June 5th, 12:00-19:00 - [[NoiseBridgeRehab]]&#039;&#039;&#039; - Help make the space more usable and accessible! Noisebridge needs your help!&lt;br /&gt;
* &#039;&#039;&#039;June 5th, 16:00-20:00 - [[Science For Juggalos]]&#039;&#039;&#039; - Science Fair in front of the Warfield Theater teaching magnetism to Juggalos&lt;br /&gt;
* &#039;&#039;&#039;June 6th, 15:00 - [[AVC Meetup]]&#039;&#039;&#039; - Entrepreneurial bonding &amp;amp; matchmaking&lt;br /&gt;
* &#039;&#039;&#039;June 9th, 21:00 - Your liver supports Noisebridge&#039;&#039;&#039; - Come to Elixir @ 16th &amp;amp; Guerrero anytime after 21:00 and drink, drink, drink! 50% of tips go to Noisebridge&lt;br /&gt;
* &#039;&#039;&#039;February 27th, 20:00 - [[Hacker EPROM]]&#039;&#039;&#039; - Noisebridge&#039;s first prom! Nice tie and a (robot) date requiredWe will have a DJ and punch.&lt;br /&gt;
* &#039;&#039;&#039;February 24th, 19:00, Wednesday - Joris Peels, of [http://www.shapeways.com Shapeways]&#039;&#039;&#039;, and expert on 3D printing, will give a [[ShaperwaysPresentation | talk and demonstration]] at Noisebridge!.&lt;br /&gt;
* &#039;&#039;&#039;February 23rd, 18:00 - Cleaning day&#039;&#039;&#039; - Come and help clean Noisebridge, because everyone loves a clean hack space.&lt;br /&gt;
* &#039;&#039;&#039;February 12th, 21:00 - visit from Steve Jackson&#039;&#039;&#039;Game designer [http://en.wikipedia.org/wiki/Steve_Jackson_%28US_game_designer%29 Steve Jackson], founder of Steve Jackson Games, will visit Noisebridge.&lt;br /&gt;
* &#039;&#039;&#039;January 27th, 18:00-20:00 - [[beatrixjar event|Circuit Bending Workshop]]&#039;&#039;&#039; - [http://www.beatrixjar.com/ Beatrix*JAR] (contact [[User:Gpvillamil|Gian Pablo]] for more info)&lt;br /&gt;
* &#039;&#039;&#039;January 27th, 20:00-22:00 - [[beatrixjar event|Circuit Bending Performance]]&#039;&#039;&#039; - [http://www.beatrixjar.com/ Beatrix*JAR] - &amp;quot;Celebrate a night of new sound that will change your idea of music forever!&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;January 25th, 19:30 - [[Bag Porn]]&#039;&#039;&#039; - What&#039;s in your bag?&lt;br /&gt;
* &#039;&#039;&#039;January 20th, 19:00-21:00 - [http://groups.google.com/group/bacat/about Bay Categories &amp;amp; Types]&#039;&#039;&#039; - Categories, monoids, monads, functors and more! Held in the Alonzo Church classroom.&lt;br /&gt;
* &#039;&#039;&#039;January 20th, 19:00 - [[User Experience Book Club SF]]&#039;&#039;&#039; - Our book this month is &amp;quot;A Theory of Fun for Game Design&amp;quot; by Raph Koster - http://is.gd/6sEqw (meets in Turing)&lt;br /&gt;
* &#039;&#039;&#039;January 21st, 20:00 - [[Five Minutes of Fame]]&#039;&#039;&#039; - Monthly set of lightning talks on diverse topics&lt;br /&gt;
* &#039;&#039;&#039;January 22nd, 17:00 - [[CleaningParty| Cleaning Party]]&#039;&#039;&#039; - Come help clean up Noisebridge! Awsum fun!&lt;br /&gt;
* ...January 14th,16th, and 17th 1:00- ??? Build Out day for kitchen/bathroom/laundry bring yourself and a good attitude, learn a few things as well&lt;br /&gt;
* &#039;&#039;&#039;January 15th, 18:00 - [[CNC_Mill_Workshop]]&#039;&#039;&#039; - Learn to use the CNC mill for 2D engraving and circuit board routing&lt;br /&gt;
* Thursdays 17:00 [[ASL Group|American Sign Language]] - Learn how to talk without using your voice (or just come chat in ASL)&amp;lt;small&amp;gt;[http://whenisgood.net/noisebridge/asl/generic click to reschedule]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===2009===&lt;br /&gt;
* &#039;&#039;&#039;November 18th, 19:30&#039;&#039;&#039; - [[Dorkbot_2009_11_18|Dorkbot]]&lt;br /&gt;
* &#039;&#039;&#039;November 19th, 18:00&#039;&#039;&#039; - [[Mesh meetup]]&lt;br /&gt;
* &#039;&#039;&#039;November 19th, 20:00&#039;&#039;&#039; - [[Five Minutes of Fame]]&lt;br /&gt;
* &#039;&#039;&#039;November 20th, 18:00&#039;&#039;&#039; - Loud Objects [http://www.flickr.com/photos/createdigitalmedia/3428249036/ Noise Toy workshop].&lt;br /&gt;
* &#039;&#039;&#039;November 20th, 20:00&#039;&#039;&#039; - Performance by [http://www.loudobjects.com/ Loud Objects], (featuring Tristan Perich and Lesley Flanigan) and [http://www.myspace.com/jibkidder Jib Kidder].&lt;br /&gt;
:&#039;&#039;&#039;2009-11-05&#039;&#039;&#039; - [http://www.server-sky.com/ Server Sky presentation: Internet and Computation in Orbit] by Keith Lofstrom&lt;br /&gt;
:&#039;&#039;&#039;2009-11-05&#039;&#039;&#039; - [[Mesh meetup]]&lt;br /&gt;
:&#039;&#039;&#039;2009-11-02&#039;&#039;&#039; - [[French]] book club meeting to discuss  [http://www.amazon.com/exec/obidos/tg/detail/-/2842612892/ref=ord_cart_shr?_encoding=UTF8&amp;amp;m=ATVPDKIKX0DER&amp;amp;v=glance Une Si Longue Lettre]&lt;br /&gt;
: &#039;&#039;&#039; October 1st, 18:00&#039;&#039;&#039; - [[Wireless_Mesh_Network_Meetup | Mesh wireless meetup]]&lt;br /&gt;
: &#039;&#039;&#039; October 1st, 19:00&#039;&#039;&#039; - [http://groups.google.com/group/bacat Bay Area Categories and Types]&lt;br /&gt;
: &#039;&#039;&#039;2009-10-03&#039;&#039;&#039; [[Year 1 Open Hacker House]]&lt;br /&gt;
:&#039;&#039;&#039;Friday&#039;&#039;&#039;: [[CrazyCryptoNight]] - Discussion of cryptography for beginners through experts6-???&lt;br /&gt;
:&#039;&#039;&#039;Sunday&#039;&#039;&#039; : [[OpenEEG | OpenEEG Hacking]] Sundays, at 3-5pm.&lt;br /&gt;
:&#039;&#039;&#039;Monday&#039;&#039;&#039;: [[German]] - Learn German, all levels7pm beginners, 8pm advancedRSVP 24 hours in advance for the benefit of the instructorEvents ran May-November 2009Currently on Thursdays at 8Get on the mailing list.&lt;br /&gt;
:&#039;&#039;&#039;Tuesday&#039;&#039;&#039;: [[Haskell/Haschool]] - Learn Haskell with Jason Dusek 6PM - 7:30PM, from May until we&#039;re all experts.&lt;br /&gt;
:&#039;&#039;&#039;Wednesday&#039;&#039;&#039;: [[Adobe_Lightroom|Adobe Lightroom]] - Become a more organized photographerWeekly class (mostly held off site).&lt;br /&gt;
:&#039;&#039;&#039;Thursday&#039;&#039;&#039;: [[Professional VFX Compositing With Adobe After Effects]] - Taught by [[User:SFSlim|Aaron Muszalski]]7:30PM - 10PM, most Thursdays in May &amp;amp; June &amp;amp; ? (click through dammit)&lt;br /&gt;
:&#039;&#039;&#039;2009-09-17&#039;&#039;&#039;: [[Five Minutes of Fame]] 3D Edition&lt;br /&gt;
:&#039;&#039;&#039;2009-09-17&#039;&#039;&#039;: [[Wireless Mesh Network Meetup | Mesh wireless meetup]]&lt;br /&gt;
:&#039;&#039;&#039;2009-08-20&#039;&#039;&#039;: [[Five Minutes of Fame]] One Dee Edition&lt;br /&gt;
:&#039;&#039;&#039;2009-07-16&#039;&#039;&#039;: [[Five Minutes of Fame]] Zero Dee&lt;br /&gt;
:&#039;&#039;&#039;2009-07-02 - 2009-07-05&#039;&#039;&#039;: [http://toorcamp.org Toorcamp]&lt;br /&gt;
:&#039;&#039;&#039;2009-07-01&#039;&#039;&#039;: Noisedroid meeting to discuss location logging on Android platform (and other stuff too, I&#039;m sure)&lt;br /&gt;
:&#039;&#039;&#039;2009-06-30&#039;&#039;&#039;: [[Powerbocking Class|Powerbocking class]]&lt;br /&gt;
:&#039;&#039;&#039;2009-06-30&#039;&#039;&#039;: &amp;quot;Suing Telemarketers for Fun and Profit&amp;quot; (Toorcamp talk preview)&lt;br /&gt;
:&#039;&#039;&#039;2009-06-28&#039;&#039;&#039;: &amp;quot;Meditation for Hackers&amp;quot; (Toorcamp workshop preview)&lt;br /&gt;
:&#039;&#039;&#039;2009-06-18&#039;&#039;&#039;: [[Five Minutes of Fame]]&lt;br /&gt;
:&#039;&#039;&#039;2009-06-15&#039;&#039;&#039;: [[Eagle Workshop]]  Session two of the Eagle CAD workshop.&lt;br /&gt;
:&#039;&#039;&#039;2009-06-13&#039;&#039;&#039;: [[RoboGames 2009]] Noisebridge had a booth staffed by vounteers, great fun!&lt;br /&gt;
:&#039;&#039;&#039;2009-05-21&#039;&#039;&#039;: [[Five Minutes of Fame]]&lt;br /&gt;
:&#039;&#039;&#039;2009-04-27&#039;&#039;&#039;: [[EagleCAD workshop]] -- learn to use this CAD tool for printed circuit board design&lt;br /&gt;
:&#039;&#039;&#039;2009-04-16&#039;&#039;&#039;: [[Five Minutes of Fame]] April showers &amp;amp; flowers edition&lt;br /&gt;
:&#039;&#039;&#039;2009-04-11&#039;&#039;&#039;: [[RFID Hacking]] weekend workshop  (this event moved from the original March date)&lt;br /&gt;
:&#039;&#039;&#039;2009-04-05&#039;&#039;&#039;: [[First aid and CPR class]] Learning how to not only not die, but also reduce scarring!&lt;br /&gt;
:&#039;&#039;&#039;2009-04-03&#039;&#039;&#039;: [[Sudo pop]] 2PM and onMaking the first batch of a Noisebridge label yerba mate-niated rootbrew, gratis and DIY&lt;br /&gt;
:&#039;&#039;&#039;2009-03-26&#039;&#039;&#039;: [[OpenEEG | OpenEEG Hacking]] first meet up for this new group: 8 pm&lt;br /&gt;
:&#039;&#039;&#039;2009-03-19&#039;&#039;&#039;: [[Five Minutes of Fame]]&lt;br /&gt;
:&#039;&#039;&#039;2009-03-12&#039;&#039;&#039;: [[OpenBTS and GSM]] talk by David Burgess&lt;br /&gt;
:&#039;&#039;&#039;2009-02-14&#039;&#039;&#039;: [[Open Heart Workshop]] Valentine&#039;s Day blinkyheart soldering party! &lt;br /&gt;
:&#039;&#039;&#039;2009-02-13&#039;&#039;&#039;: [[Time-t_Party|&amp;lt;tt&amp;gt;time_t&amp;lt;/tt&amp;gt; Party]] to celebrate 1,234,567,890 since the Unix epoch.&lt;br /&gt;
:&#039;&#039;&#039;2009-02-09&#039;&#039;&#039;: [[Spanish learning at 8:30]]&lt;br /&gt;
:&#039;&#039;&#039;2009-02-05&#039;&#039;&#039;: [[PGP Key Workshop]]&lt;br /&gt;
:&#039;&#039;&#039;2009-01-31&#039;&#039;&#039;: [[Locksport and Lockpicking]]&lt;br /&gt;
&lt;br /&gt;
===2008===&lt;br /&gt;
:&#039;&#039;&#039;2008-12-27&#039;&#039;&#039;: [[25C3]] Chaos Computer Congress in Berlin&lt;br /&gt;
:&#039;&#039;&#039;2008-12-20 &amp;amp; 21&#039;&#039;&#039;: [[Creme Brulee]] Workshop on creating a french dessert, with bonus propane torch.&lt;br /&gt;
:&#039;&#039;&#039;2008-12-17 20:00&#039;&#039;&#039;: [[Machine Learning]] Birds-of-a-feather&lt;br /&gt;
:&#039;&#039;&#039;2008-11-24&#039;&#039;&#039;: [[Circuit Hacking Monday]] circuit design workshop&lt;br /&gt;
:&#039;&#039;&#039;2008-11-21, 7pm&#039;&#039;&#039;:[[Milk and Cookies]] -- [[User:Dmolnar|David Molnar]] hosts Milk and Cookies at 83CBring a short 5-7minute thing to read to othersBring a potluck cookie/snack/drink if you likeDavid will bring milk and cookies.&lt;br /&gt;
:&#039;&#039;&#039;2008-11-17, 7:30pm&#039;&#039;&#039;: [[Basic Bicycle Maintain]] - [[User:rubin110|Rubin]] and [[User:rigel|rigel]] hate it when we see a bike that isn&#039;t maintainedScreechy chains and clacking derailleur can go to hellBasic bike tune up, sharing the smarts on simple things you can do at home to make your ride suck a whole lot less.&lt;br /&gt;
:&#039;&#039;&#039;2008-11-16, 5:00pm&#039;&#039;&#039;: [[RepRap Soldering Party]] - help assemble RepRap!  RSVPs required on wiki! [[User:Adi|adi]]&lt;br /&gt;
:&#039;&#039;&#039;2008-11-16, 3:00pm&#039;&#039;&#039;: [[Oscilloscopes]] - Learn how to use this versatile tool to test electronic circuits Maximum 6 slots, please sign up ahead of time! [[User:dstaff|dstaff]]&lt;br /&gt;
:&#039;&#039;&#039;2008-10-31&#039;&#039;&#039;: [[Halloween Open House]] - NoiseBridge&#039;s own [[PPPC]] threw an awesome open house/halloween galaPost pictures if you got &#039;em!&lt;br /&gt;
:&#039;&#039;&#039;2008-10-25&#039;&#039;&#039;: [[Soldering Workshop]] and Pumpkin Hackin&#039; - Learn to solder for total newbies (or learn to solder better!), including surface mountAdditionally, carve your halloween pumpkins and enjoy some experimental pumpkin pie and/or soup.&lt;br /&gt;
:&#039;&#039;&#039;2008-10-07&#039;&#039;&#039;: (tuesday before meeting) - Etch a circuit boardI&#039;ll be trying a photo resist etching and a basic printed mask etchingThis is step 1/3 for a project called &amp;quot;annoying USB thingie&amp;quot; which will execute pre-defined keystrokes by sneaking a tiny USB dongle onto a victim^h^h^h^h^h buddy&#039;s computer.&lt;br /&gt;
:&#039;&#039;&#039;2008-09-13&#039;&#039;&#039;: [[Processing Workshop]] — Learn this very easy-to-use programming language! - [[Processing Workshop Report]]&lt;br /&gt;
:&#039;&#039;&#039;2008-02-16&#039;&#039;&#039;: [[Brain Machine Workshop|Brain Machine Making Workshop]]: Our first hardware sprint!&lt;br /&gt;
&lt;br /&gt;
[[Category:Top level]]&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/&amp;diff=37152</id>
		<title>JavaScript/Notes/</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/&amp;diff=37152"/>
		<updated>2013-12-18T00:46:14Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Scope Chain and Identifier Resolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You down with OOP? - Yeah you know me!&lt;br /&gt;
 &lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Introduction Introduction] ==&lt;br /&gt;
&#039;&#039;&#039;When&#039;&#039;&#039;: Every Friday night from 7:00PM &amp;amp;mdash; 8:45PM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher&#039;&#039;&#039;: Garrett Smith&lt;br /&gt;
&lt;br /&gt;
Hearken to the days of &amp;lt;code&amp;gt;view-source:&amp;lt;/code&amp;gt;! In this course, I&#039;ll explore Object Oriented JavaScript as it pertains to client side web programming. And some DOM stuff.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resources&#039;&#039;&#039; &lt;br /&gt;
https://noisebridge.net/wiki/Web_Development_Resources&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Array Array Methods added to EcmaScript 5]==&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/ClassnameSwap ClassName Swap] ==&lt;br /&gt;
Event Delegation and the Cascade.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Function Functions] == &lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Scope Scope Chain and Identifier Resolution]==&lt;br /&gt;
This class covers closures.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Singleton Singleton] == &lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/IBD Interface-Based Design]==&lt;br /&gt;
Two interfaces with a similar signature. The Devil&#039;s in the details -- encapsulate them!&lt;br /&gt;
&lt;br /&gt;
=== [https://noisebridge.net/wiki/JavaScript/Notes/EventNotificationSystem  Event Notification System]===&lt;br /&gt;
An abstract system for event notification.&lt;br /&gt;
=== [https://noisebridge.net/wiki/JavaScript/Notes/DomEvents DOM Events Adapter]===&lt;br /&gt;
An system for DOM event notification, designed to handle delegation and specific event models.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/Factory   Factory]==&lt;br /&gt;
The Factory pattern, the Decorator pattern, newApply, and the holy grail: Abstract Factory.&lt;br /&gt;
&lt;br /&gt;
== [https://noisebridge.net/wiki/JavaScript/Notes/ParameterObject Parameter Object] == &lt;br /&gt;
Passing around lists of parameters? Typechecking arguments? Stop doing that. Here&#039;s how to make your code clearer and less error-prone.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- The truth: &lt;br /&gt;
&lt;br /&gt;
I hoped she would support me as a musician so that we could each be successful. &lt;br /&gt;
&lt;br /&gt;
JavaScript? :-(&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37100</id>
		<title>JavaScript/</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37100"/>
		<updated>2013-12-16T21:18:16Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= JavaScript Class =&lt;br /&gt;
By [https://noisebridge.net/wiki/User:Garrett Garrett Smith]&lt;br /&gt;
Held every Friday, 7-9pm&lt;br /&gt;
&lt;br /&gt;
dhtmlkitchen at gmail.com &lt;br /&gt;
&lt;br /&gt;
===Course Overview===&lt;br /&gt;
This course covers the fundamentals of the EcmaScript programming language, the DOM, and object-oriented design. It is intended for experienced web developers and programmers of other languages, however all are welcome.&lt;br /&gt;
=== Resources ===&lt;br /&gt;
Reference specifications are used extensively. These are linked from the [https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript resources] page. Read them daily.&lt;br /&gt;
&lt;br /&gt;
== Class Notes == &lt;br /&gt;
[https://noisebridge.net/wiki/JavaScript/Notes/ Notes for individual classes]. &lt;br /&gt;
&lt;br /&gt;
==EcmaScript Programming Language==&lt;br /&gt;
* Property accessors, &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; &amp;lt;nowiki&amp;gt;[[Get]], [[Put]]&amp;lt;/nowiki&amp;gt; and the Reference type.&lt;br /&gt;
* Prototypal inheritance &lt;br /&gt;
* typeof operator&lt;br /&gt;
* Arrays&lt;br /&gt;
* Primitive types&lt;br /&gt;
* Functions, callbacks, &amp;quot;I&#039;m done&amp;quot;, Event Notification System&lt;br /&gt;
* Scope chain and identifier resolution, Closures &lt;br /&gt;
* Entering an execution context (this)&lt;br /&gt;
* &amp;lt;code&amp;gt;call&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;apply&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[[Construct]], [[Call]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Literal syntax [], {}, /a/i RegularExpression literal&lt;br /&gt;
&lt;br /&gt;
===Patterns and Object Oriented JavaScript===&lt;br /&gt;
* Decorator pattern&lt;br /&gt;
* Custom Events&lt;br /&gt;
* EventRegistry&lt;br /&gt;
* Factory, Abstract Factory&lt;br /&gt;
* Strategy/delegation - Example: APE StyleTransition object.&lt;br /&gt;
&lt;br /&gt;
=== Resources === &lt;br /&gt;
[https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript Development Resources]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
We learn by doing. Get involved!&lt;br /&gt;
* Porting the FAQ to Github [https://github.com/comp-lang-javascript/ Get involved]!&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37099</id>
		<title>JavaScript/</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37099"/>
		<updated>2013-12-16T21:16:53Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Course Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= JavaScript Class =&lt;br /&gt;
By [https://noisebridge.net/wiki/User:Garrett Garrett Smith]&lt;br /&gt;
Held every Friday, 7-9pm&lt;br /&gt;
&lt;br /&gt;
dhtmlkitchen at gmail.com &lt;br /&gt;
&lt;br /&gt;
===Course Overview===&lt;br /&gt;
This course covers the fundamentals of the EcmaScript programming language, the DOM, and object-oriented design. It is intended for experienced web developers and programmers of other languages, however all are welcome.&lt;br /&gt;
=== Resources ===&lt;br /&gt;
Please see the consolidated [https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript and web development resources].&lt;br /&gt;
&lt;br /&gt;
== Class Notes == &lt;br /&gt;
[https://noisebridge.net/wiki/JavaScript/Notes/ Notes for individual classes]. &lt;br /&gt;
&lt;br /&gt;
==EcmaScript Programming Language==&lt;br /&gt;
* Property accessors, &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; &amp;lt;nowiki&amp;gt;[[Get]], [[Put]]&amp;lt;/nowiki&amp;gt; and the Reference type.&lt;br /&gt;
* Prototypal inheritance &lt;br /&gt;
* typeof operator&lt;br /&gt;
* Arrays&lt;br /&gt;
* Primitive types&lt;br /&gt;
* Functions, callbacks, &amp;quot;I&#039;m done&amp;quot;, Event Notification System&lt;br /&gt;
* Scope chain and identifier resolution, Closures &lt;br /&gt;
* Entering an execution context (this)&lt;br /&gt;
* &amp;lt;code&amp;gt;call&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;apply&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[[Construct]], [[Call]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Literal syntax [], {}, /a/i RegularExpression literal&lt;br /&gt;
&lt;br /&gt;
===Patterns and Object Oriented JavaScript===&lt;br /&gt;
* Decorator pattern&lt;br /&gt;
* Custom Events&lt;br /&gt;
* EventRegistry&lt;br /&gt;
* Factory, Abstract Factory&lt;br /&gt;
* Strategy/delegation - Example: APE StyleTransition object.&lt;br /&gt;
&lt;br /&gt;
=== Resources === &lt;br /&gt;
[https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript Development Resources]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
We learn by doing. Get involved!&lt;br /&gt;
* Porting the FAQ to Github [https://github.com/comp-lang-javascript/ Get involved]!&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37098</id>
		<title>JavaScript/</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37098"/>
		<updated>2013-12-16T21:16:39Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= JavaScript Class =&lt;br /&gt;
By [https://noisebridge.net/wiki/User:Garrett Garrett Smith]&lt;br /&gt;
Held every Friday, 7-9pm&lt;br /&gt;
&lt;br /&gt;
dhtmlkitchen at gmail.com &lt;br /&gt;
&lt;br /&gt;
===Course Overview===&lt;br /&gt;
This course covers the fundamentals of the EcmaScript programming language, the DOM, and object-oriented design. It is intended for experienced web developers and programmers of other languages, however all are welcome.&lt;br /&gt;
&lt;br /&gt;
== Class Notes == &lt;br /&gt;
[https://noisebridge.net/wiki/JavaScript/Notes/ Notes for individual classes]. &lt;br /&gt;
&lt;br /&gt;
==EcmaScript Programming Language==&lt;br /&gt;
* Property accessors, &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; &amp;lt;nowiki&amp;gt;[[Get]], [[Put]]&amp;lt;/nowiki&amp;gt; and the Reference type.&lt;br /&gt;
* Prototypal inheritance &lt;br /&gt;
* typeof operator&lt;br /&gt;
* Arrays&lt;br /&gt;
* Primitive types&lt;br /&gt;
* Functions, callbacks, &amp;quot;I&#039;m done&amp;quot;, Event Notification System&lt;br /&gt;
* Scope chain and identifier resolution, Closures &lt;br /&gt;
* Entering an execution context (this)&lt;br /&gt;
* &amp;lt;code&amp;gt;call&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;apply&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[[Construct]], [[Call]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Literal syntax [], {}, /a/i RegularExpression literal&lt;br /&gt;
&lt;br /&gt;
===Patterns and Object Oriented JavaScript===&lt;br /&gt;
* Decorator pattern&lt;br /&gt;
* Custom Events&lt;br /&gt;
* EventRegistry&lt;br /&gt;
* Factory, Abstract Factory&lt;br /&gt;
* Strategy/delegation - Example: APE StyleTransition object.&lt;br /&gt;
&lt;br /&gt;
=== Resources === &lt;br /&gt;
[https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript Development Resources]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
We learn by doing. Get involved!&lt;br /&gt;
* Porting the FAQ to Github [https://github.com/comp-lang-javascript/ Get involved]!&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37097</id>
		<title>JavaScript/</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37097"/>
		<updated>2013-12-16T21:16:23Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* JavaScript Class */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= JavaScript Class =&lt;br /&gt;
By [https://noisebridge.net/wiki/User:Garrett Garrett Smith]&lt;br /&gt;
Held every Friday, 7-9pm&lt;br /&gt;
&lt;br /&gt;
dhtmlkitchen at gmail.com &lt;br /&gt;
&lt;br /&gt;
===Course Overview===&lt;br /&gt;
This course covers the fundamentals of the EcmaScript programming language, the DOM, and object-oriented design. It is intended for experienced web developers and programmers of other languages, however all are welcome.&lt;br /&gt;
&lt;br /&gt;
== Class Notes == &lt;br /&gt;
[https://noisebridge.net/wiki/JavaScript/Notes/ Notes for individual classes]. &lt;br /&gt;
&lt;br /&gt;
==EcmaScript Programming Language==&lt;br /&gt;
* Property accessors, &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; &amp;lt;nowiki&amp;gt;[[Get]], [[Put]]&amp;lt;/nowiki&amp;gt; and the Reference type.&lt;br /&gt;
* Prototypal inheritance &lt;br /&gt;
* typeof operator&lt;br /&gt;
* Arrays&lt;br /&gt;
* Primitive types&lt;br /&gt;
* Functions, callbacks, &amp;quot;I&#039;m done&amp;quot;, Event Notification System&lt;br /&gt;
* Scope chain and identifier resolution, Closures &lt;br /&gt;
* Entering an execution context (this)&lt;br /&gt;
* &amp;lt;code&amp;gt;call&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;apply&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[[Construct]], [[Call]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Literal syntax [], {}, /a/i RegularExpression literal&lt;br /&gt;
&lt;br /&gt;
===Patterns and Object Oriented JavaScript===&lt;br /&gt;
* Decorator pattern&lt;br /&gt;
* Custom Events&lt;br /&gt;
* EventRegistry&lt;br /&gt;
* Factory, Abstract Factory&lt;br /&gt;
* Strategy/delegation - Example: APE StyleTransition object.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
Please see the consolidated [https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript and web development resources].&lt;br /&gt;
&lt;br /&gt;
=== Resources === &lt;br /&gt;
[https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript Development Resources]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
We learn by doing. Get involved!&lt;br /&gt;
* Porting the FAQ to Github [https://github.com/comp-lang-javascript/ Get involved]!&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37096</id>
		<title>JavaScript/</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37096"/>
		<updated>2013-12-16T21:15:56Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Course Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= JavaScript Class =&lt;br /&gt;
By [https://noisebridge.net/wiki/User:Garrett Garrett Smith]&lt;br /&gt;
Held weekly, Friday 7pm&lt;br /&gt;
&lt;br /&gt;
dhtmlkitchen at gmail.com &lt;br /&gt;
&lt;br /&gt;
===Course Overview===&lt;br /&gt;
This course covers the fundamentals of the EcmaScript programming language, the DOM, and object-oriented design. It is intended for experienced web developers and programmers of other languages, however all are welcome.&lt;br /&gt;
&lt;br /&gt;
== Class Notes == &lt;br /&gt;
[https://noisebridge.net/wiki/JavaScript/Notes/ Notes for individual classes]. &lt;br /&gt;
&lt;br /&gt;
==EcmaScript Programming Language==&lt;br /&gt;
* Property accessors, &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; &amp;lt;nowiki&amp;gt;[[Get]], [[Put]]&amp;lt;/nowiki&amp;gt; and the Reference type.&lt;br /&gt;
* Prototypal inheritance &lt;br /&gt;
* typeof operator&lt;br /&gt;
* Arrays&lt;br /&gt;
* Primitive types&lt;br /&gt;
* Functions, callbacks, &amp;quot;I&#039;m done&amp;quot;, Event Notification System&lt;br /&gt;
* Scope chain and identifier resolution, Closures &lt;br /&gt;
* Entering an execution context (this)&lt;br /&gt;
* &amp;lt;code&amp;gt;call&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;apply&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[[Construct]], [[Call]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Literal syntax [], {}, /a/i RegularExpression literal&lt;br /&gt;
&lt;br /&gt;
===Patterns and Object Oriented JavaScript===&lt;br /&gt;
* Decorator pattern&lt;br /&gt;
* Custom Events&lt;br /&gt;
* EventRegistry&lt;br /&gt;
* Factory, Abstract Factory&lt;br /&gt;
* Strategy/delegation - Example: APE StyleTransition object.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
Please see the consolidated [https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript and web development resources].&lt;br /&gt;
&lt;br /&gt;
=== Resources === &lt;br /&gt;
[https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript Development Resources]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
We learn by doing. Get involved!&lt;br /&gt;
* Porting the FAQ to Github [https://github.com/comp-lang-javascript/ Get involved]!&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37095</id>
		<title>JavaScript/</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37095"/>
		<updated>2013-12-16T21:15:31Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Course Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= JavaScript Class =&lt;br /&gt;
By [https://noisebridge.net/wiki/User:Garrett Garrett Smith]&lt;br /&gt;
Held weekly, Friday 7pm&lt;br /&gt;
&lt;br /&gt;
dhtmlkitchen at gmail.com &lt;br /&gt;
&lt;br /&gt;
===Course Overview===&lt;br /&gt;
This course covers the fundamentals of the EcmaScript programming language, the DOM, and object-oriented design. It is intended for experienced web developers, however all are welcome.&lt;br /&gt;
&lt;br /&gt;
== Class Notes == &lt;br /&gt;
[https://noisebridge.net/wiki/JavaScript/Notes/ Notes for individual classes]. &lt;br /&gt;
&lt;br /&gt;
==EcmaScript Programming Language==&lt;br /&gt;
* Property accessors, &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; &amp;lt;nowiki&amp;gt;[[Get]], [[Put]]&amp;lt;/nowiki&amp;gt; and the Reference type.&lt;br /&gt;
* Prototypal inheritance &lt;br /&gt;
* typeof operator&lt;br /&gt;
* Arrays&lt;br /&gt;
* Primitive types&lt;br /&gt;
* Functions, callbacks, &amp;quot;I&#039;m done&amp;quot;, Event Notification System&lt;br /&gt;
* Scope chain and identifier resolution, Closures &lt;br /&gt;
* Entering an execution context (this)&lt;br /&gt;
* &amp;lt;code&amp;gt;call&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;apply&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[[Construct]], [[Call]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Literal syntax [], {}, /a/i RegularExpression literal&lt;br /&gt;
&lt;br /&gt;
===Patterns and Object Oriented JavaScript===&lt;br /&gt;
* Decorator pattern&lt;br /&gt;
* Custom Events&lt;br /&gt;
* EventRegistry&lt;br /&gt;
* Factory, Abstract Factory&lt;br /&gt;
* Strategy/delegation - Example: APE StyleTransition object.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
Please see the consolidated [https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript and web development resources].&lt;br /&gt;
&lt;br /&gt;
=== Resources === &lt;br /&gt;
[https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript Development Resources]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
We learn by doing. Get involved!&lt;br /&gt;
* Porting the FAQ to Github [https://github.com/comp-lang-javascript/ Get involved]!&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37094</id>
		<title>JavaScript/</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/&amp;diff=37094"/>
		<updated>2013-12-16T21:14:00Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* JavaScript Class */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= JavaScript Class =&lt;br /&gt;
By [https://noisebridge.net/wiki/User:Garrett Garrett Smith]&lt;br /&gt;
Held weekly, Friday 7pm&lt;br /&gt;
&lt;br /&gt;
dhtmlkitchen at gmail.com &lt;br /&gt;
&lt;br /&gt;
===Course Overview===&lt;br /&gt;
This course covers the fundamentals of the EcmaScript programming language, the DOM, and object-oriented design.&lt;br /&gt;
&lt;br /&gt;
== Class Notes == &lt;br /&gt;
[https://noisebridge.net/wiki/JavaScript/Notes/ Notes for individual classes]. &lt;br /&gt;
&lt;br /&gt;
==EcmaScript Programming Language==&lt;br /&gt;
* Property accessors, &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; &amp;lt;nowiki&amp;gt;[[Get]], [[Put]]&amp;lt;/nowiki&amp;gt; and the Reference type.&lt;br /&gt;
* Prototypal inheritance &lt;br /&gt;
* typeof operator&lt;br /&gt;
* Arrays&lt;br /&gt;
* Primitive types&lt;br /&gt;
* Functions, callbacks, &amp;quot;I&#039;m done&amp;quot;, Event Notification System&lt;br /&gt;
* Scope chain and identifier resolution, Closures &lt;br /&gt;
* Entering an execution context (this)&lt;br /&gt;
* &amp;lt;code&amp;gt;call&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;apply&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;[[Construct]], [[Call]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Literal syntax [], {}, /a/i RegularExpression literal&lt;br /&gt;
&lt;br /&gt;
===Patterns and Object Oriented JavaScript===&lt;br /&gt;
* Decorator pattern&lt;br /&gt;
* Custom Events&lt;br /&gt;
* EventRegistry&lt;br /&gt;
* Factory, Abstract Factory&lt;br /&gt;
* Strategy/delegation - Example: APE StyleTransition object.&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
Please see the consolidated [https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript and web development resources].&lt;br /&gt;
&lt;br /&gt;
=== Resources === &lt;br /&gt;
[https://noisebridge.net/wiki/Web_Development_Resources#JavaScript JavaScript Development Resources]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
We learn by doing. Get involved!&lt;br /&gt;
* Porting the FAQ to Github [https://github.com/comp-lang-javascript/ Get involved]!&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=JavaScript/Notes/Scope&amp;diff=37070</id>
		<title>JavaScript/Notes/Scope</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=JavaScript/Notes/Scope&amp;diff=37070"/>
		<updated>2013-12-16T15:37:43Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Scope Chain and Identifier Resolution.=&lt;br /&gt;
A &amp;quot;closure&amp;quot; is function scope that has a binding to its containing scope.&lt;br /&gt;
&lt;br /&gt;
== Example == &lt;br /&gt;
[http://jsbin.com/OxOSObuc/1/edit jsbin]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
(function () {&lt;br /&gt;
  var currentScope = 1, one = &#039;scope1&#039;;&lt;br /&gt;
  alert(currentScope);&lt;br /&gt;
  (function () {&lt;br /&gt;
    var currentScope = 2, two = &#039;scope2&#039;;&lt;br /&gt;
    alert(currentScope);&lt;br /&gt;
    (function () {&lt;br /&gt;
      var currentScope = 3, three = &#039;scope3&#039;;&lt;br /&gt;
      alert(currentScope);&lt;br /&gt;
      alert(one + two + three); // climb up the scope chain to get one and two&lt;br /&gt;
    }());&lt;br /&gt;
  }());&lt;br /&gt;
}());&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example == &lt;br /&gt;
[http://jsbin.com/OxOSObuc/1/edit jsbin]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function outer() {&lt;br /&gt;
  var secret = 1;&lt;br /&gt;
    function inner() {&lt;br /&gt;
      return secret;&lt;br /&gt;
    }&lt;br /&gt;
  return inner;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var inner = outer();&lt;br /&gt;
var result = inner();&lt;br /&gt;
console.log(result); // explain the result.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Block Scope == &lt;br /&gt;
Normally, the only way to create scope in JavaScript is by creating a function. However, a little known anomaly is that the catch block augments the scope with a new object.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function x() {&lt;br /&gt;
  var result = typeof x;&lt;br /&gt;
  try {&lt;br /&gt;
    y;&lt;br /&gt;
  } catch(x) {&lt;br /&gt;
    x = 10;&lt;br /&gt;
    result = [result, x];&lt;br /&gt;
  }&lt;br /&gt;
  result.push(typeof x);&lt;br /&gt;
  alert(result);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variable Scope Inside function == &lt;br /&gt;
Richard Cornford explains Variable Instantiation, as defined in ECMA-262 r3.&lt;br /&gt;
http://bytes.com/topic/javascript/answers/556357-variable-scope-inside-function-did-i-get-correctly#post2171544&lt;br /&gt;
&lt;br /&gt;
== Declaration Binding Instantiation == &lt;br /&gt;
[http://www.ecma-international.org/ecma-262/5.1/#sec-10.5 &amp;amp;sect; 10.5]&lt;br /&gt;
Every execution context has an associated VariableEnvironment. Variables and functions declared in ECMAScript code evaluated in an execution context are added as bindings in that VariableEnvironment’s Environment Record. For function code, parameters are also added as bindings to that Environment Record.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From [https://groups.google.com/forum/#!topic/jsmentors/JnHM3Pvesp8 global object property access].&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Consider the following &amp;quot;weird&amp;quot; behavior with the global object:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
console.log(window.foo);   // this returns undefined&lt;br /&gt;
console.log(this.foo);        // this returns undefined&lt;br /&gt;
console.log(foo);              // this is a reference error&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Accessing a non existent property on an object should return&lt;br /&gt;
undefined... which accounts for the first two cases... but whats going&lt;br /&gt;
on in the third case?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the ECMAScript specification on&lt;br /&gt;
&amp;lt;code&amp;gt;[http://www.ecma-international.org/ecma-262/5.1/#sec-15.11.6.3 ReferenceError]&amp;lt;/code&amp;gt; explains that &amp;lt;code&amp;gt;ReferenceError&amp;lt;/code&amp;gt; is also thrown in strict mode when making an assignment to an undeclared identifer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
(function(){ &amp;quot;use strict&amp;quot;; erwt = 1; })(); // ReferenceError&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to the example, getting a property off an object, the prototype chain is&lt;br /&gt;
searched. When that happens, if the property is not found, then&lt;br /&gt;
&amp;lt;code&amp;gt;undefined&amp;lt;/code&amp;gt; results.&lt;br /&gt;
&lt;br /&gt;
But with scope chain resolution, when the property is not resolved, an&lt;br /&gt;
error results.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;white-space:pre&amp;quot;&amp;gt;&lt;br /&gt;
| 11.1.2   Identifier Reference&lt;br /&gt;
| An Identifier is evaluated by performing Identifier Resolution&lt;br /&gt;
| as specified in 10.3.1. The result of evaluating an Identifier&lt;br /&gt;
| is always a value of type Reference.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;white-space:pre&amp;quot;&amp;gt;&lt;br /&gt;
| 10.3.1   Identifier Resolution&lt;br /&gt;
| Identifier resolution is the process of determining the binding of an&lt;br /&gt;
| Identifier using the &amp;lt;code&amp;gt;LexicalEnvironment&amp;lt;/code&amp;gt; of the running execution context.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;white-space:pre&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; console.log(foo);              // this is a reference error&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Identifier &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; is resolved to a Reference with null as the base&lt;br /&gt;
object. In ES5, it looks as if it is a Reference with base object as&lt;br /&gt;
&amp;lt;code&amp;gt;undefined&amp;lt;/code&amp;gt;. With either spec, the result will be the same:&lt;br /&gt;
&amp;lt;code&amp;gt;ReferenceError&amp;lt;/code&amp;gt;. ES5 gets a little fancy with the explanation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;white-space:pre&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; The Mozilla docs on Reference error simply state:&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt; A ReferenceError is thrown when trying to dereference a variable that&lt;br /&gt;
&amp;gt; has not been declared.&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
They mean that when you try and get the value of an Identifier in a&lt;br /&gt;
PrimaryExpression and the Identifier is not resolved, then the base&lt;br /&gt;
object is null (or now &amp;lt;code&amp;gt;undefined&amp;lt;/code&amp;gt;) that the attempt to get at the&lt;br /&gt;
value is going to result in a &amp;lt;code&amp;gt;ReferenceError&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So when you have an Expression like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
console.log(foo);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or even just a PrimaryExpression:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
foo // a PrimaryExpression.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Identifier &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; must be first resolved. The base object for that&lt;br /&gt;
value is null (or so&amp;quot;undefined&amp;quot;) and the when the expression is&lt;br /&gt;
evaluated, it tries to get the value, and then finds the base object&lt;br /&gt;
is null and throws a ReferenceError is thrown.&lt;br /&gt;
&lt;br /&gt;
| 8.7.1   GetValue (V)&lt;br /&gt;
|&lt;br /&gt;
|   1. If Type(V) is not Reference, return V.&lt;br /&gt;
|   2. Let base be the result of calling GetBase(V).&lt;br /&gt;
|   3. If IsUnresolvableReference(V), throw a ReferenceError exception.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
| IsUnresolvableReference(V). Returns true if the base value&lt;br /&gt;
| is undefined and false otherwise.&lt;br /&gt;
&lt;br /&gt;
The MDC docs might not say it, and you didn&#039;t ask, either, but in&lt;br /&gt;
strict code, assignment to undeclared Identifier will result in&lt;br /&gt;
referenceerror too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;white-space:pre&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; I realize accessing a non existent property on an object should return&lt;br /&gt;
&amp;gt; undefined... which accounts for the first two cases... but whats going&lt;br /&gt;
&amp;gt; on in the third case?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An Identifier resolution was performed on the scope chain. Just&lt;br /&gt;
remember the difference when getting a property fails: With object&lt;br /&gt;
properties - the prototype chain is used and the result is undefined.&lt;br /&gt;
With unqualified Identifiers, the scope chain is searched in the&lt;br /&gt;
result is ReferenceError.&lt;br /&gt;
&lt;br /&gt;
==Omitting var in VariableDeclaration==&lt;br /&gt;
Assignment without var is not a variable declaration.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
foo = 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The identifier foo must be resolved up the scope chain (see 11.13.1 &lt;br /&gt;
Simple Assignment, also below). If foo is not found, a foo property is &lt;br /&gt;
created on the global object (see 8.7.2 &amp;lt;code&amp;gt;PutValue&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
This can cause further problems in IE with IE&#039;s global scope polluter. See: [https://groups.google.com/forum/#!msg/comp.lang.javascript/K3PD0gJgUxY/0R0OZvHs2K4J Extra Properties: The Element Id Resolver Object]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
11.13.1 Simple Assignment (= )&lt;br /&gt;
  The production AssignmentExpression : LeftHandSideExpression =&lt;br /&gt;
AssignmentExpression is evaluated as follows:&lt;br /&gt;
  1. Evaluate LeftHandSideExpression.&lt;br /&gt;
  2. Evaluate AssignmentExpression.&lt;br /&gt;
  3.Call GetValue(Result(2)).&lt;br /&gt;
  4.Call PutValue(Result(1), Result(3)).&lt;br /&gt;
  5.Return Result(3).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 4 leads to &amp;lt;code&amp;gt;PutValue(foo, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8.7.2 PutValue(V, W)&lt;br /&gt;
  1. If Type(V) is not Reference, throw a ReferenceError exception.&lt;br /&gt;
  2. Call GetBase(V).&lt;br /&gt;
  3. If Result(2) is null, go to step 6.&lt;br /&gt;
  4. Call the [[Put]] method of Result(2), passing GetPropertyName(V)&lt;br /&gt;
for the property name and W for the value.&lt;br /&gt;
  5. Return.&lt;br /&gt;
  6. Call the [[Put]] method for the global object, passing&lt;br /&gt;
GetPropertyName(V) for the property name and W for the value.&lt;br /&gt;
  7. Return.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 2, &amp;lt;code&amp;gt;GetBase(v)&amp;lt;/code&amp;gt; is &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, so that leads to step 6. That leads to &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Put]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (foo, 1) on the global object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8.6.2.2 [[Put]](P, V)&lt;br /&gt;
  When the [[Put]] method of O is called with property P and value V,&lt;br /&gt;
the following steps are taken:&lt;br /&gt;
  1. Call the [[CanPut]] method of O with name P.&lt;br /&gt;
  2. If Result(1) is false, return.&lt;br /&gt;
  3. If O doesn&#039;t have a property with name P, go to step 6.&lt;br /&gt;
  4. Set the value of the property to V. The attributes of the&lt;br /&gt;
property are not changed.&lt;br /&gt;
  5. Return.&lt;br /&gt;
  6. Create a property with name P, set its value to V and give it&lt;br /&gt;
empty attributes.&lt;br /&gt;
  7. Return.&lt;br /&gt;
  Note, however, that if O is an Array object, it has a more elaborate&lt;br /&gt;
[[Put]] method (15.4.5.1).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note step 6: Create a property with name P, set its value to V and give &lt;br /&gt;
it empty attributes.&lt;br /&gt;
&lt;br /&gt;
Global object properties (user-defined ones, at least) are &amp;lt;nowiki&amp;gt;[[Configurable]]&amp;lt;/nowiki&amp;gt;,&lt;br /&gt;
variables, global or otherwise, are not.&lt;br /&gt;
&lt;br /&gt;
User-defined properties are, by default, &amp;lt;nowiki&amp;gt;[[Configurable]]&amp;lt;/nowiki&amp;gt;, which means that they can be deleted. &lt;br /&gt;
&lt;br /&gt;
If code is eval code, then let configurableBindings be true else let configurableBindings be false.&lt;br /&gt;
&lt;br /&gt;
http://www.ecma-international.org/ecma-262/5.1/#sec-10.5&lt;br /&gt;
&lt;br /&gt;
== Assignment ==&lt;br /&gt;
Find Two Examples of Closures in code.&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=Web_Development_Resources&amp;diff=37025</id>
		<title>Web Development Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=Web_Development_Resources&amp;diff=37025"/>
		<updated>2013-12-14T13:54:15Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* HTML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HTML ==&lt;br /&gt;
* [http://validator.w3.org W3C Validation Service]&lt;br /&gt;
&lt;br /&gt;
* [http://html5boilerplate.com/ HTML5 Boilerplate] - Popular website template&lt;br /&gt;
* [http://html5doctor.com/ HTML5 Doctor] - Articles on the latest additions to HTML5&lt;br /&gt;
&lt;br /&gt;
== CSS ==&lt;br /&gt;
* [http://www.colorzilla.com/gradient-editor/ ColorZilla CSS Gradient Editor] - GUI for creating CSS3 gradients&lt;br /&gt;
* [http://www.csszengarden.com/ CSS Zen Garden] - Demonstrates the flexibility of CSS-based design&lt;br /&gt;
* [http://www.brothercake.com/dustmeselectors/ Dust-Me Selectors] - Detects unused rules in your stylesheets&lt;br /&gt;
* [http://necolas.github.io/normalize.css/ Normalize.css] - Makes user agent stylesheets more consistent and modern&lt;br /&gt;
* [http://sass-lang.com/ Sass] - Stylesheet preprocessor language with variables, nesting, mixins, and more&lt;br /&gt;
&lt;br /&gt;
== JavaScript libraries ==&lt;br /&gt;
* [http://angularjs.org/ AngularJS] - Directive-based MVC framework&lt;br /&gt;
* [http://backbonejs.org/ Backbone.js] - Barebones MVC framework&lt;br /&gt;
* [http://emberjs.com/ Ember.js] - Handlebars-based MVC framework&lt;br /&gt;
* [http://jquery.com/ jQuery] - Downloads and documentation for the most popular web framework&lt;br /&gt;
&lt;br /&gt;
== Browser support ==&lt;br /&gt;
* [https://github.com/ai/autoprefixer Autoprefixer] - Preprocesses stylesheets and adds vendor prefixes&lt;br /&gt;
* [http://caniuse.com/ Can I use...] - Worldwide browser support percentages for new technologies&lt;br /&gt;
* [http://css3please.com/ CSS3 Please] - Easy vendor prefixing page for popular CSS3 features&lt;br /&gt;
* [http://html5please.com/ HTML5 Please] - Whether to use the latest in HTML5&lt;br /&gt;
* [http://modernizr.com/ Modernizr] - JS feature-detection library&lt;br /&gt;
&lt;br /&gt;
== Web applications ==&lt;br /&gt;
* [https://www.djangoproject.com/ Django] - Python-based web app framework&lt;br /&gt;
* [http://gruntjs.com/ Grunt] - JavaScript-based preprocessor&lt;br /&gt;
* [http://middlemanapp.com/ Middleman] - Ruby-based front-end workflow app&lt;br /&gt;
* [http://rubyonrails.org/ Ruby on Rails] - Wildly popular Ruby-based web app framework&lt;br /&gt;
* [http://yeoman.io/ Yeoman] - JavaScript-based front-end workflow app&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
* [http://alistapart.com/ A List Apart] - Articles on the web as a platform and business&lt;br /&gt;
* [http://css-tricks.com/ CSS-Tricks] - Compendium of examples and code snippets&lt;br /&gt;
* [http://uptodate.frontendrescue.org/ Front-end Rescue] - How to keep up-to-date on front-end technologies&lt;br /&gt;
* [http://stackoverflow.com/ Stack Overflow] - A popular Q&amp;amp;A platform for programmers&lt;br /&gt;
&lt;br /&gt;
== Quiz ==&lt;br /&gt;
* [http://perfectionkills.com/javascript-quiz/ JavaScript Quiz, by Kangax]&lt;br /&gt;
* [http://davidshariff.com/quiz/ Front End Web Development Quiz, by David Sharriff]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://developer.mozilla.org/en-US/docs/Web MDN: Web technology for developers] - Mozilla&#039;s documentation on the web&lt;br /&gt;
* [http://www.webplatform.org/ WebPlatform.org] - Web documentation wiki from a variety of sources&lt;br /&gt;
&lt;br /&gt;
== Online schools ==&lt;br /&gt;
* [http://www.codecademy.com/ Code Academy]&lt;br /&gt;
* [https://www.codeschool.com/ Code School]&lt;br /&gt;
* [https://www.coursera.org/ Coursera]&lt;br /&gt;
* [[Front-end Web Development]] - at Noisebridge&lt;br /&gt;
* [[JavaScript|JavaScript Class]] - at Noisebridge&lt;br /&gt;
* [https://www.khanacademy.org/ Khan Academy]&lt;br /&gt;
* [http://www.railsschool.org/ Rails School] - at Noisebridge&lt;br /&gt;
* [https://www.udacity.com/ Udacity]&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=Web_Development_Resources&amp;diff=37024</id>
		<title>Web Development Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=Web_Development_Resources&amp;diff=37024"/>
		<updated>2013-12-14T13:53:50Z</updated>

		<summary type="html">&lt;p&gt;98.210.197.51: /* HTML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== HTML ==&lt;br /&gt;
* [validator.w3.org W3C Validation Service]&lt;br /&gt;
&lt;br /&gt;
* [http://html5boilerplate.com/ HTML5 Boilerplate] - Popular website template&lt;br /&gt;
* [http://html5doctor.com/ HTML5 Doctor] - Articles on the latest additions to HTML5&lt;br /&gt;
&lt;br /&gt;
== CSS ==&lt;br /&gt;
* [http://www.colorzilla.com/gradient-editor/ ColorZilla CSS Gradient Editor] - GUI for creating CSS3 gradients&lt;br /&gt;
* [http://www.csszengarden.com/ CSS Zen Garden] - Demonstrates the flexibility of CSS-based design&lt;br /&gt;
* [http://www.brothercake.com/dustmeselectors/ Dust-Me Selectors] - Detects unused rules in your stylesheets&lt;br /&gt;
* [http://necolas.github.io/normalize.css/ Normalize.css] - Makes user agent stylesheets more consistent and modern&lt;br /&gt;
* [http://sass-lang.com/ Sass] - Stylesheet preprocessor language with variables, nesting, mixins, and more&lt;br /&gt;
&lt;br /&gt;
== JavaScript libraries ==&lt;br /&gt;
* [http://angularjs.org/ AngularJS] - Directive-based MVC framework&lt;br /&gt;
* [http://backbonejs.org/ Backbone.js] - Barebones MVC framework&lt;br /&gt;
* [http://emberjs.com/ Ember.js] - Handlebars-based MVC framework&lt;br /&gt;
* [http://jquery.com/ jQuery] - Downloads and documentation for the most popular web framework&lt;br /&gt;
&lt;br /&gt;
== Browser support ==&lt;br /&gt;
* [https://github.com/ai/autoprefixer Autoprefixer] - Preprocesses stylesheets and adds vendor prefixes&lt;br /&gt;
* [http://caniuse.com/ Can I use...] - Worldwide browser support percentages for new technologies&lt;br /&gt;
* [http://css3please.com/ CSS3 Please] - Easy vendor prefixing page for popular CSS3 features&lt;br /&gt;
* [http://html5please.com/ HTML5 Please] - Whether to use the latest in HTML5&lt;br /&gt;
* [http://modernizr.com/ Modernizr] - JS feature-detection library&lt;br /&gt;
&lt;br /&gt;
== Web applications ==&lt;br /&gt;
* [https://www.djangoproject.com/ Django] - Python-based web app framework&lt;br /&gt;
* [http://gruntjs.com/ Grunt] - JavaScript-based preprocessor&lt;br /&gt;
* [http://middlemanapp.com/ Middleman] - Ruby-based front-end workflow app&lt;br /&gt;
* [http://rubyonrails.org/ Ruby on Rails] - Wildly popular Ruby-based web app framework&lt;br /&gt;
* [http://yeoman.io/ Yeoman] - JavaScript-based front-end workflow app&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
* [http://alistapart.com/ A List Apart] - Articles on the web as a platform and business&lt;br /&gt;
* [http://css-tricks.com/ CSS-Tricks] - Compendium of examples and code snippets&lt;br /&gt;
* [http://uptodate.frontendrescue.org/ Front-end Rescue] - How to keep up-to-date on front-end technologies&lt;br /&gt;
* [http://stackoverflow.com/ Stack Overflow] - A popular Q&amp;amp;A platform for programmers&lt;br /&gt;
&lt;br /&gt;
== Quiz ==&lt;br /&gt;
* [http://perfectionkills.com/javascript-quiz/ JavaScript Quiz, by Kangax]&lt;br /&gt;
* [http://davidshariff.com/quiz/ Front End Web Development Quiz, by David Sharriff]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://developer.mozilla.org/en-US/docs/Web MDN: Web technology for developers] - Mozilla&#039;s documentation on the web&lt;br /&gt;
* [http://www.webplatform.org/ WebPlatform.org] - Web documentation wiki from a variety of sources&lt;br /&gt;
&lt;br /&gt;
== Online schools ==&lt;br /&gt;
* [http://www.codecademy.com/ Code Academy]&lt;br /&gt;
* [https://www.codeschool.com/ Code School]&lt;br /&gt;
* [https://www.coursera.org/ Coursera]&lt;br /&gt;
* [[Front-end Web Development]] - at Noisebridge&lt;br /&gt;
* [[JavaScript|JavaScript Class]] - at Noisebridge&lt;br /&gt;
* [https://www.khanacademy.org/ Khan Academy]&lt;br /&gt;
* [http://www.railsschool.org/ Rails School] - at Noisebridge&lt;br /&gt;
* [https://www.udacity.com/ Udacity]&lt;/div&gt;</summary>
		<author><name>98.210.197.51</name></author>
	</entry>
</feed>