<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sudoroom.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rhodey</id>
	<title>Sudo Room - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://sudoroom.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rhodey"/>
	<link rel="alternate" type="text/html" href="https://sudoroom.org/wiki/Special:Contributions/Rhodey"/>
	<updated>2026-04-24T06:03:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.2</generator>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Firmware&amp;diff=5875</id>
		<title>Mesh/Firmware</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Firmware&amp;diff=5875"/>
		<updated>2013-10-26T01:11:51Z</updated>

		<summary type="html">&lt;p&gt;Rhodey: /* Watchdog script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation for the sudo mesh firmware.&lt;br /&gt;
&lt;br /&gt;
= Firmware generation features =&lt;br /&gt;
&lt;br /&gt;
It should be easy to generate a new firmware with the following custom config:&lt;br /&gt;
&lt;br /&gt;
*Location and ownership information.&lt;br /&gt;
:Contact info should be saved in a secure database but maybe not on the node itself?&lt;br /&gt;
*Randomly generated passwords set for wpa2, admin interface and ssh.&lt;br /&gt;
:The SSH password should be stored securely and a couple of stickers with the wpa2 and admin password should be printed for the user.&lt;br /&gt;
*Web interface&lt;br /&gt;
*ssh key generation&lt;br /&gt;
&lt;br /&gt;
[http://meshkit.freifunk.net/ Freifunk Meshkit] is pretty neat!&lt;br /&gt;
&lt;br /&gt;
[https://github.com/sudomesh/openwrt-firmware Sudomesh Firmware Github Repo]&lt;br /&gt;
&lt;br /&gt;
Status:&lt;br /&gt;
&lt;br /&gt;
= Stuff the firmware should have =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Ranked from most to least important&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== InternetIsDownRedirect == &lt;br /&gt;
&lt;br /&gt;
When the node doesn't have internet access, it will redirect traffic to our mesh hosted [[Mesh/Firmware#Splash_page|Splash Page]].&lt;br /&gt;
&lt;br /&gt;
We need something hosted on the node that can check if it has access to the internet. There's a bit of an issue where certain OSes won't connect to APs that don't have internet access. [[User:Juul|Juul]] will look into building a hack that properly manages these requests and redirects them to our node-hosted site.&lt;br /&gt;
&lt;br /&gt;
InternetIsDownRedirect may also have to fake the expected captive portal detection responses? We need to figure out if android/iOS/Mac/Windows will connect to a wifi that does not have internet access.&lt;br /&gt;
&lt;br /&gt;
Status: Implemented except for OS-specific captive portal requests.&lt;br /&gt;
&lt;br /&gt;
== Splash page ==&lt;br /&gt;
&lt;br /&gt;
We can capture OS specific probes in order to specifically redirect captive portal requests without affecting any other network traffic.&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
* Brief info on the mesh&lt;br /&gt;
* Link to our website?&lt;br /&gt;
&lt;br /&gt;
Status: &lt;br /&gt;
&lt;br /&gt;
[[User:Juul|Juul]] is in the process of implementing. He needs help with:&lt;br /&gt;
* Finding out captive portal request protocols for different OSes. He's covered Iphone, but needs information on other hardware &lt;br /&gt;
* We need UX/UI designers!&lt;br /&gt;
* Co-located server ($$)&lt;br /&gt;
&lt;br /&gt;
== SSH server ==&lt;br /&gt;
&lt;br /&gt;
The SSH server should be contactable from any interface. It should initially allow root access using a random generated password that the mesh group has and that the node owner can get and change if they are so inclined.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Status: Need Key generation feature. Otherwise Implemented in openwrt. See firmware generation above.&lt;br /&gt;
&lt;br /&gt;
== BATMAN-adv ==&lt;br /&gt;
&lt;br /&gt;
We'll use this as the mesh protocol.&lt;br /&gt;
&lt;br /&gt;
Status: Implemented&lt;br /&gt;
&lt;br /&gt;
== Multiple virtual network interfaces with their own SSIDs ==&lt;br /&gt;
&lt;br /&gt;
*One ad-hock mode, unencrypted interface for the mesh nodes, e.g. sudomesh-backchannel&lt;br /&gt;
*One access point mode, unencrypted interface, for non-mesh devices to connect to the mesh, e.g. sudomesh.&lt;br /&gt;
*One access point mode, private interface with WPA2, for the people who own the nodes. [optional]&lt;br /&gt;
&lt;br /&gt;
Traffic on the private interface should be completely separated from traffic on the non-private interfaces unless a client connected to the private interface requests an IP on the mesh.&lt;br /&gt;
&lt;br /&gt;
Maybe the last one is optional because some people may not need that feature (they already have another access point and they want to keep it), but then how do people administrate the router? &lt;br /&gt;
&lt;br /&gt;
In order to serve a secure web admin config to home users, we'll probably always serve 3 APs with one private WPA encrypted home link so that users can access their admin page.&lt;br /&gt;
&lt;br /&gt;
Status: Implemented&lt;br /&gt;
&lt;br /&gt;
== Web admin interface ==&lt;br /&gt;
&lt;br /&gt;
Development information should be put in [[Mesh/Firmware/Web_Admin_Development|Web Admin Dev]]. This section can remain a wish-list.&lt;br /&gt;
&lt;br /&gt;
A very simple one-page interface. It should do at least the following:&lt;br /&gt;
&lt;br /&gt;
*Display some set of user statistics&lt;br /&gt;
:Ideally we could list/graph the number of people who have associated with your mesh node.&lt;br /&gt;
:We could also just list/graph the up/down data of people who have been using the mesh.&lt;br /&gt;
*Set location, name, description.&lt;br /&gt;
:But do you want to know the location centrally as well so that you can display nodes on the map? Will people enter this information twice or will you pull this information from nodes and then display on the map? Same for name and description. I would suggest that information is stored only once. In your case on the node itself. So probably you can then pull this information through nodewatcher scripts on nodes and then display nodes the map. Just really should not require people to enter or maintain information on two places because it desyncs very fast. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)&lt;br /&gt;
*Let people select how much bandwidth they share.&lt;br /&gt;
:They always share 100% when they're not using the connection themselves.&lt;br /&gt;
::This works if people are using their private SSIDs on the node. But if the node is connected to their existing home network you might not easily configure such sharing. But maybe there is a way to detect that host network is free and can limits can be increased. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)&lt;br /&gt;
:Do any ISPs have bandwidth caps around here? If so, let people specify how many MB to share per month.&lt;br /&gt;
:Maybe also a button for temporary increase limits (make them more restrictive) which are then after some time automatically restored.&lt;br /&gt;
*Let people change the admin password and the private wifi wpa2 password.&lt;br /&gt;
:Probably private SSID as well.&lt;br /&gt;
*Donate / &amp;quot;buy routers as presents for your friends&amp;quot;-button.&lt;br /&gt;
:One idea we had (but this is probably better for splash screen) is &amp;quot;adopt a node&amp;quot;. Where a neighbor who uses a node a lot and depends on the node can donate some money to keep it up, but can then give a nickname or avatar to the node. Or something. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
Status: [[User:Maxb|Maxb]] is implementing. &lt;br /&gt;
&lt;br /&gt;
Source here:&lt;br /&gt;
&lt;br /&gt;
https://github.com/sudomesh/luci-app-peopleswifi&lt;br /&gt;
&lt;br /&gt;
== Watchdog script ==&lt;br /&gt;
&lt;br /&gt;
Node tests itself to see if it has connectivity, etc and resets itself if necessary. OpenWrt supports the hardware watchdog on our PicoStations without any additional hacking, yay!&lt;br /&gt;
&lt;br /&gt;
By default the hardware watchdog will automatically hard-reset the AP if /dev/watchdog is not written to at least once every 60 seconds. A Lua library has been written to interface with the batman-adv kernel module through the batctl command line utility. We need to identify a list of conditions that require a hard-reset and work them into the Lua watchdog script in the openwrt-firmware repository.&lt;br /&gt;
&lt;br /&gt;
The Freifunk group has an awesome watchdog setup, details: http://wiki.freifunk.net/Kamikaze/LuCI/Watchdog&lt;br /&gt;
&lt;br /&gt;
list of possible reset conditions: high sustained load, cron goes down, sshd goes down.&lt;br /&gt;
&lt;br /&gt;
== QoS / bandwidth shaping ==&lt;br /&gt;
&lt;br /&gt;
To support letting node owners select how much bandwidth they share.&lt;br /&gt;
&lt;br /&gt;
Status: [[User:Juul|Juul]] is hacking on.&lt;br /&gt;
&lt;br /&gt;
== Internet VPN ==&lt;br /&gt;
&lt;br /&gt;
The firmware should tunnel all Internet traffic from the mesh through a VPN server, unless this feature is specifically disabled.&lt;br /&gt;
&lt;br /&gt;
This should not be a single VPN server, as that would be a single point of failure.&lt;br /&gt;
&lt;br /&gt;
I suggest to use [http://wlan-si.net/blog/2012/10/29/tunneldigger-the-new-vpn-solution/ TunnelDigger]. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 21:50, 11 July 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
[[Mesh/Network_topology|Network Topology]]&lt;br /&gt;
&lt;br /&gt;
Status: [[User:Juul|Juul]] is implementing.&lt;br /&gt;
&lt;br /&gt;
== Mesh VPN ==&lt;br /&gt;
&lt;br /&gt;
If the mesh does not see any other nodes (and maybe even if it does?), and it has internet, then it should connect to another node or two over VPN. The easy solution is to use the same VPN servers as for the internet.&lt;br /&gt;
&lt;br /&gt;
[[Mesh/Network_topology|Network Topology]]&lt;br /&gt;
&lt;br /&gt;
Status: Implemented&lt;br /&gt;
&lt;br /&gt;
== DHCP and batman-adv gateway mode ==&lt;br /&gt;
&lt;br /&gt;
Nodes with an internet connection should run DHCP and [http://www.open-mesh.org/projects/batman-adv/wiki/Gateways batman-adv gateway mode]. We want to detect if the node can connect to a relay in which case it should configure as a batman-adv gateway server node. Otherwise they should configure as batman-adv gateway clients.&lt;br /&gt;
&lt;br /&gt;
Staus: Needs hacking.&lt;br /&gt;
&lt;br /&gt;
== Location and status reporting ==&lt;br /&gt;
&lt;br /&gt;
Something that reports location and status when polled.&lt;br /&gt;
&lt;br /&gt;
We developed this format and easy to publish status data from nodes for our [http://dev.wlan-si.net/wiki/Nodewatcher/NodeTelemetryProvider nodewatcher]. OpenWrt packages are [https://github.com/wlanslovenija/firmware-packages-opkg/tree/master/util here]. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:02, 11 July 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
Nice to have:&lt;br /&gt;
&lt;br /&gt;
*Status info: How many nodes is your node connected to. Is the internet link working.&lt;br /&gt;
*An &amp;quot;I don't know what my internet bandwidth is, test it for me&amp;quot;-function.&lt;br /&gt;
*Usage statistics (so people can see how many people they helped get internet!)&lt;br /&gt;
:This is the most important thing! [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)&lt;br /&gt;
:You should add as well graphs on how much bandwidth was consumed by the node. This is useful when hosts see that their Internet is slow and believe that it was because of the node. Then they can check and see if it is really node (which often is not) or maybe just ISP has problems. Important because people like to attribute issues they have to nodes they don't understand. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)&lt;br /&gt;
*Let people put up a bit of info about their node / house / co-op, on a simple web page that people can access only if they're connected to that node. It could be shown as part of the splash page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Status: Waiting for nodewatcher project to finish&lt;br /&gt;
&lt;br /&gt;
== Intelligent Wifi Channel Switching ==&lt;br /&gt;
&lt;br /&gt;
It would be nice to be able to have the network intelligently determine channels&lt;br /&gt;
&lt;br /&gt;
== IPv6 support ==&lt;br /&gt;
&lt;br /&gt;
We should have IPv6 support, but I am ok with launching the mesh with only IPv4 and adding in IPv6 later. ([[User:Juul|Juul]] ([[User talk:Juul|talk]]))&lt;br /&gt;
&lt;br /&gt;
= Stuff the firmware could have =&lt;br /&gt;
&lt;br /&gt;
== DNS server ==&lt;br /&gt;
&lt;br /&gt;
Each node could run its own (caching) DNS server. Doing this would allow people to access the admin interface for their node by going to e.g. http://me.mesh/ from the private interface.&lt;br /&gt;
&lt;br /&gt;
== RSSI Testing and Logging ==&lt;br /&gt;
&lt;br /&gt;
At intervals, the nodes could conduct RSSI tests and log them with some way to compare and visualize signal strengths over time.&lt;br /&gt;
&lt;br /&gt;
== Caching web proxy ==&lt;br /&gt;
&lt;br /&gt;
We could use [http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/ Polipo] to improve people's browsing experience. Not sure how much cpu and memory this would need. We may not be able to run it on the routers with less than 32 MB ram (e.g. the Bullet 2 HPs). &lt;br /&gt;
&lt;br /&gt;
== Block ads and tracking ==&lt;br /&gt;
&lt;br /&gt;
We could use e.g. [http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/ Polipo] with the sources from both adblock plus and ghostery. If we implement this, it should be an optional (default off) feature that you can select on the splash page, with a &amp;quot;remember this&amp;quot; that remembers either using a cookie or using your MAC (but then we'd be logging people's MAC addresses :-S). The block should probably be time-limited (e.g. 30 days).&lt;br /&gt;
&lt;br /&gt;
= Compatible devices =&lt;br /&gt;
&lt;br /&gt;
We should have ready-made images for:&lt;br /&gt;
&lt;br /&gt;
*One really cheap indoor router (with 3G usb stick support?) like [http://wiki.openwrt.org/toh/tp-link/tl-wr703n TP-Link TL-WR703N]&lt;br /&gt;
*One nice high-speed indoor router (300 mbps 802.11n)&lt;br /&gt;
*Ubiquiti hardware. Most of the AirMAX stuff.&lt;/div&gt;</summary>
		<author><name>Rhodey</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Firmware&amp;diff=5874</id>
		<title>Mesh/Firmware</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Firmware&amp;diff=5874"/>
		<updated>2013-10-26T00:00:41Z</updated>

		<summary type="html">&lt;p&gt;Rhodey: /* Watchdog script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation for the sudo mesh firmware.&lt;br /&gt;
&lt;br /&gt;
= Firmware generation features =&lt;br /&gt;
&lt;br /&gt;
It should be easy to generate a new firmware with the following custom config:&lt;br /&gt;
&lt;br /&gt;
*Location and ownership information.&lt;br /&gt;
:Contact info should be saved in a secure database but maybe not on the node itself?&lt;br /&gt;
*Randomly generated passwords set for wpa2, admin interface and ssh.&lt;br /&gt;
:The SSH password should be stored securely and a couple of stickers with the wpa2 and admin password should be printed for the user.&lt;br /&gt;
*Web interface&lt;br /&gt;
*ssh key generation&lt;br /&gt;
&lt;br /&gt;
[http://meshkit.freifunk.net/ Freifunk Meshkit] is pretty neat!&lt;br /&gt;
&lt;br /&gt;
[https://github.com/sudomesh/openwrt-firmware Sudomesh Firmware Github Repo]&lt;br /&gt;
&lt;br /&gt;
Status:&lt;br /&gt;
&lt;br /&gt;
= Stuff the firmware should have =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Ranked from most to least important&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== InternetIsDownRedirect == &lt;br /&gt;
&lt;br /&gt;
When the node doesn't have internet access, it will redirect traffic to our mesh hosted [[Mesh/Firmware#Splash_page|Splash Page]].&lt;br /&gt;
&lt;br /&gt;
We need something hosted on the node that can check if it has access to the internet. There's a bit of an issue where certain OSes won't connect to APs that don't have internet access. [[User:Juul|Juul]] will look into building a hack that properly manages these requests and redirects them to our node-hosted site.&lt;br /&gt;
&lt;br /&gt;
InternetIsDownRedirect may also have to fake the expected captive portal detection responses? We need to figure out if android/iOS/Mac/Windows will connect to a wifi that does not have internet access.&lt;br /&gt;
&lt;br /&gt;
Status: Implemented except for OS-specific captive portal requests.&lt;br /&gt;
&lt;br /&gt;
== Splash page ==&lt;br /&gt;
&lt;br /&gt;
We can capture OS specific probes in order to specifically redirect captive portal requests without affecting any other network traffic.&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
* Brief info on the mesh&lt;br /&gt;
* Link to our website?&lt;br /&gt;
&lt;br /&gt;
Status: &lt;br /&gt;
&lt;br /&gt;
[[User:Juul|Juul]] is in the process of implementing. He needs help with:&lt;br /&gt;
* Finding out captive portal request protocols for different OSes. He's covered Iphone, but needs information on other hardware &lt;br /&gt;
* We need UX/UI designers!&lt;br /&gt;
* Co-located server ($$)&lt;br /&gt;
&lt;br /&gt;
== SSH server ==&lt;br /&gt;
&lt;br /&gt;
The SSH server should be contactable from any interface. It should initially allow root access using a random generated password that the mesh group has and that the node owner can get and change if they are so inclined.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Status: Need Key generation feature. Otherwise Implemented in openwrt. See firmware generation above.&lt;br /&gt;
&lt;br /&gt;
== BATMAN-adv ==&lt;br /&gt;
&lt;br /&gt;
We'll use this as the mesh protocol.&lt;br /&gt;
&lt;br /&gt;
Status: Implemented&lt;br /&gt;
&lt;br /&gt;
== Multiple virtual network interfaces with their own SSIDs ==&lt;br /&gt;
&lt;br /&gt;
*One ad-hock mode, unencrypted interface for the mesh nodes, e.g. sudomesh-backchannel&lt;br /&gt;
*One access point mode, unencrypted interface, for non-mesh devices to connect to the mesh, e.g. sudomesh.&lt;br /&gt;
*One access point mode, private interface with WPA2, for the people who own the nodes. [optional]&lt;br /&gt;
&lt;br /&gt;
Traffic on the private interface should be completely separated from traffic on the non-private interfaces unless a client connected to the private interface requests an IP on the mesh.&lt;br /&gt;
&lt;br /&gt;
Maybe the last one is optional because some people may not need that feature (they already have another access point and they want to keep it), but then how do people administrate the router? &lt;br /&gt;
&lt;br /&gt;
In order to serve a secure web admin config to home users, we'll probably always serve 3 APs with one private WPA encrypted home link so that users can access their admin page.&lt;br /&gt;
&lt;br /&gt;
Status: Implemented&lt;br /&gt;
&lt;br /&gt;
== Web admin interface ==&lt;br /&gt;
&lt;br /&gt;
Development information should be put in [[Mesh/Firmware/Web_Admin_Development|Web Admin Dev]]. This section can remain a wish-list.&lt;br /&gt;
&lt;br /&gt;
A very simple one-page interface. It should do at least the following:&lt;br /&gt;
&lt;br /&gt;
*Display some set of user statistics&lt;br /&gt;
:Ideally we could list/graph the number of people who have associated with your mesh node.&lt;br /&gt;
:We could also just list/graph the up/down data of people who have been using the mesh.&lt;br /&gt;
*Set location, name, description.&lt;br /&gt;
:But do you want to know the location centrally as well so that you can display nodes on the map? Will people enter this information twice or will you pull this information from nodes and then display on the map? Same for name and description. I would suggest that information is stored only once. In your case on the node itself. So probably you can then pull this information through nodewatcher scripts on nodes and then display nodes the map. Just really should not require people to enter or maintain information on two places because it desyncs very fast. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)&lt;br /&gt;
*Let people select how much bandwidth they share.&lt;br /&gt;
:They always share 100% when they're not using the connection themselves.&lt;br /&gt;
::This works if people are using their private SSIDs on the node. But if the node is connected to their existing home network you might not easily configure such sharing. But maybe there is a way to detect that host network is free and can limits can be increased. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)&lt;br /&gt;
:Do any ISPs have bandwidth caps around here? If so, let people specify how many MB to share per month.&lt;br /&gt;
:Maybe also a button for temporary increase limits (make them more restrictive) which are then after some time automatically restored.&lt;br /&gt;
*Let people change the admin password and the private wifi wpa2 password.&lt;br /&gt;
:Probably private SSID as well.&lt;br /&gt;
*Donate / &amp;quot;buy routers as presents for your friends&amp;quot;-button.&lt;br /&gt;
:One idea we had (but this is probably better for splash screen) is &amp;quot;adopt a node&amp;quot;. Where a neighbor who uses a node a lot and depends on the node can donate some money to keep it up, but can then give a nickname or avatar to the node. Or something. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
Status: [[User:Maxb|Maxb]] is implementing. &lt;br /&gt;
&lt;br /&gt;
Source here:&lt;br /&gt;
&lt;br /&gt;
https://github.com/sudomesh/luci-app-peopleswifi&lt;br /&gt;
&lt;br /&gt;
== Watchdog script ==&lt;br /&gt;
&lt;br /&gt;
Node tests itself to see if it has connectivity, etc and resets itself if necessary. OpenWrt supports the hardware watchdog on our PicoStations without any additional hacking, yay!&lt;br /&gt;
&lt;br /&gt;
By default the hardware watchdog will automatically hard-reset the AP if /dev/watchdog is not written to at least once every 60 seconds. A Lua library has been written to interface with the batman-adv kernel module through the batctl command line utility. We need to identify a list of conditions that require a hard-reset and work them into the Lua watchdog script in the openwrt-firmware repository.&lt;br /&gt;
&lt;br /&gt;
list of reset conditions:&lt;br /&gt;
&lt;br /&gt;
== QoS / bandwidth shaping ==&lt;br /&gt;
&lt;br /&gt;
To support letting node owners select how much bandwidth they share.&lt;br /&gt;
&lt;br /&gt;
Status: [[User:Juul|Juul]] is hacking on.&lt;br /&gt;
&lt;br /&gt;
== Internet VPN ==&lt;br /&gt;
&lt;br /&gt;
The firmware should tunnel all Internet traffic from the mesh through a VPN server, unless this feature is specifically disabled.&lt;br /&gt;
&lt;br /&gt;
This should not be a single VPN server, as that would be a single point of failure.&lt;br /&gt;
&lt;br /&gt;
I suggest to use [http://wlan-si.net/blog/2012/10/29/tunneldigger-the-new-vpn-solution/ TunnelDigger]. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 21:50, 11 July 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
[[Mesh/Network_topology|Network Topology]]&lt;br /&gt;
&lt;br /&gt;
Status: [[User:Juul|Juul]] is implementing.&lt;br /&gt;
&lt;br /&gt;
== Mesh VPN ==&lt;br /&gt;
&lt;br /&gt;
If the mesh does not see any other nodes (and maybe even if it does?), and it has internet, then it should connect to another node or two over VPN. The easy solution is to use the same VPN servers as for the internet.&lt;br /&gt;
&lt;br /&gt;
[[Mesh/Network_topology|Network Topology]]&lt;br /&gt;
&lt;br /&gt;
Status: Implemented&lt;br /&gt;
&lt;br /&gt;
== DHCP and batman-adv gateway mode ==&lt;br /&gt;
&lt;br /&gt;
Nodes with an internet connection should run DHCP and [http://www.open-mesh.org/projects/batman-adv/wiki/Gateways batman-adv gateway mode]. We want to detect if the node can connect to a relay in which case it should configure as a batman-adv gateway server node. Otherwise they should configure as batman-adv gateway clients.&lt;br /&gt;
&lt;br /&gt;
Staus: Needs hacking.&lt;br /&gt;
&lt;br /&gt;
== Location and status reporting ==&lt;br /&gt;
&lt;br /&gt;
Something that reports location and status when polled.&lt;br /&gt;
&lt;br /&gt;
We developed this format and easy to publish status data from nodes for our [http://dev.wlan-si.net/wiki/Nodewatcher/NodeTelemetryProvider nodewatcher]. OpenWrt packages are [https://github.com/wlanslovenija/firmware-packages-opkg/tree/master/util here]. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:02, 11 July 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
Nice to have:&lt;br /&gt;
&lt;br /&gt;
*Status info: How many nodes is your node connected to. Is the internet link working.&lt;br /&gt;
*An &amp;quot;I don't know what my internet bandwidth is, test it for me&amp;quot;-function.&lt;br /&gt;
*Usage statistics (so people can see how many people they helped get internet!)&lt;br /&gt;
:This is the most important thing! [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)&lt;br /&gt;
:You should add as well graphs on how much bandwidth was consumed by the node. This is useful when hosts see that their Internet is slow and believe that it was because of the node. Then they can check and see if it is really node (which often is not) or maybe just ISP has problems. Important because people like to attribute issues they have to nodes they don't understand. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)&lt;br /&gt;
*Let people put up a bit of info about their node / house / co-op, on a simple web page that people can access only if they're connected to that node. It could be shown as part of the splash page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Status: Waiting for nodewatcher project to finish&lt;br /&gt;
&lt;br /&gt;
== Intelligent Wifi Channel Switching ==&lt;br /&gt;
&lt;br /&gt;
It would be nice to be able to have the network intelligently determine channels&lt;br /&gt;
&lt;br /&gt;
== IPv6 support ==&lt;br /&gt;
&lt;br /&gt;
We should have IPv6 support, but I am ok with launching the mesh with only IPv4 and adding in IPv6 later. ([[User:Juul|Juul]] ([[User talk:Juul|talk]]))&lt;br /&gt;
&lt;br /&gt;
= Stuff the firmware could have =&lt;br /&gt;
&lt;br /&gt;
== DNS server ==&lt;br /&gt;
&lt;br /&gt;
Each node could run its own (caching) DNS server. Doing this would allow people to access the admin interface for their node by going to e.g. http://me.mesh/ from the private interface.&lt;br /&gt;
&lt;br /&gt;
== RSSI Testing and Logging ==&lt;br /&gt;
&lt;br /&gt;
At intervals, the nodes could conduct RSSI tests and log them with some way to compare and visualize signal strengths over time.&lt;br /&gt;
&lt;br /&gt;
== Caching web proxy ==&lt;br /&gt;
&lt;br /&gt;
We could use [http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/ Polipo] to improve people's browsing experience. Not sure how much cpu and memory this would need. We may not be able to run it on the routers with less than 32 MB ram (e.g. the Bullet 2 HPs). &lt;br /&gt;
&lt;br /&gt;
== Block ads and tracking ==&lt;br /&gt;
&lt;br /&gt;
We could use e.g. [http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/ Polipo] with the sources from both adblock plus and ghostery. If we implement this, it should be an optional (default off) feature that you can select on the splash page, with a &amp;quot;remember this&amp;quot; that remembers either using a cookie or using your MAC (but then we'd be logging people's MAC addresses :-S). The block should probably be time-limited (e.g. 30 days).&lt;br /&gt;
&lt;br /&gt;
= Compatible devices =&lt;br /&gt;
&lt;br /&gt;
We should have ready-made images for:&lt;br /&gt;
&lt;br /&gt;
*One really cheap indoor router (with 3G usb stick support?) like [http://wiki.openwrt.org/toh/tp-link/tl-wr703n TP-Link TL-WR703N]&lt;br /&gt;
*One nice high-speed indoor router (300 mbps 802.11n)&lt;br /&gt;
*Ubiquiti hardware. Most of the AirMAX stuff.&lt;/div&gt;</summary>
		<author><name>Rhodey</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Firmware/Generating&amp;diff=5649</id>
		<title>Mesh/Firmware/Generating</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Firmware/Generating&amp;diff=5649"/>
		<updated>2013-09-26T01:32:06Z</updated>

		<summary type="html">&lt;p&gt;Rhodey: /* Model (rough) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Model (rough) =&lt;br /&gt;
&lt;br /&gt;
Build Server:  &lt;br /&gt;
The one and only server responsible for building and signing SudoMesh OpenWRT images, mostly a collection of bash scripts.&lt;br /&gt;
&lt;br /&gt;
Configuration Server:  &lt;br /&gt;
One of possibly multiple servers responsible for and authenticated to query, configure and update nodes.&lt;br /&gt;
* python SSL socket server for configuring nodes over secure socket.&lt;br /&gt;
* python web server as a UI to the SSL configuration server.&lt;br /&gt;
&lt;br /&gt;
Node:  &lt;br /&gt;
The basic build block of any mesh!&lt;br /&gt;
*node-admin: extended from the openWRT admin page, used by node owner for configuration.&lt;br /&gt;
*node-conf-client: lua client for accepting configs and answering config queries from a configuraion server.&lt;br /&gt;
&lt;br /&gt;
= Node Attributes =&lt;br /&gt;
&lt;br /&gt;
The following attributes are required of the Build Server at image build time:&lt;br /&gt;
&lt;br /&gt;
*Hardware model&lt;br /&gt;
*Firmware version&lt;br /&gt;
&lt;br /&gt;
The following attributes are required of the Configuration Server for initial configuration:&lt;br /&gt;
&lt;br /&gt;
*SSH host RSA keypair&lt;br /&gt;
*SSH host DSA keypair (optional?)&lt;br /&gt;
*SSH host ECDSA keypair (optional?)&lt;br /&gt;
*SSH keys allowed root access for debugging&lt;br /&gt;
&lt;br /&gt;
The following attributes are required of the Node Op for initial configuration through the Configuration Server:&lt;br /&gt;
&lt;br /&gt;
*Geographic address&lt;br /&gt;
*Node Op name&lt;br /&gt;
*Node Op email address&lt;br /&gt;
*Node Op phone number&lt;br /&gt;
&lt;br /&gt;
= wlan slovenija =&lt;br /&gt;
&lt;br /&gt;
wlan slovenija has a firmware generator tool. Here are some links:&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/wlanslovenija/nodewatcher/blob/master/generator/config_generator.py config_generator.py: the core code for the generator]&lt;br /&gt;
*[https://github.com/wlanslovenija/nodewatcher/blob/master/generator/build_image.py build_image.py: the command line tool that uses config_generator.py]&lt;br /&gt;
&lt;br /&gt;
Some relevant code from config_generator.py:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      buildString = 'make image FILES=&amp;quot;../files&amp;quot; PROFILE=&amp;quot;%s&amp;quot; PACKAGES=&amp;quot;policy-routing olsrd uhttpd tc nodewatcher-core nodewatcher-clients ntpclient hostapd -ppp -ppp-mod-pppoe -wpad-mini kmod-l2tp kmod-l2tp-ip kmod-l2tp-eth tunneldigger wireless-tools qos-scripts %s&amp;quot;' % (profile_map[self.portLayout], pkgs)&lt;br /&gt;
      os.chdir(path)&lt;br /&gt;
      os.system(buildString)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The whole ''nodewatcher'' system is in fact a web interface to the image generator (this is how it all started, historically, as a web interface + IP allocation, and then we added network monitoring, node telemetry and so on).&lt;br /&gt;
&lt;br /&gt;
*[http://nodes.wlan-si.net/ live version]&lt;br /&gt;
&lt;br /&gt;
= freifunk =&lt;br /&gt;
&lt;br /&gt;
Freifunk has a web app called meshkit for generating images.&lt;br /&gt;
&lt;br /&gt;
*[http://meshkit.freifunk.net/ live web app]&lt;br /&gt;
*[https://github.com/freifunk/meshkit source code]&lt;br /&gt;
&lt;br /&gt;
Meshkit takes a strange approach. From the readme file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Meshkit itself just writes a uci config file and stores it in&lt;br /&gt;
/etc/config/meshkwizard in the resulting firmware image. The actual&lt;br /&gt;
configuration is done by meshwizard, which uses community profiles&lt;br /&gt;
and the settings from meshkit to configure the device at first boot after&lt;br /&gt;
the device has been flashed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While I understand why community profiles would be a good idea, it seems odd that the configuration would happen on the device. Why not generate all of the required configuration before generating the image? That way you save a bit of space and an extra reboot of the device.&lt;br /&gt;
&lt;br /&gt;
After looking at the code, I am not inclined to use it. Lots of freifunk-specific stuff. Few comments. In the end, all it does that we really care about is take a few values from the web app, write some config files for openwrt and run &amp;quot;make image&amp;quot; with some parameters. It does have a system for queuing builds, which is nice. Honestly, I think we're going to be better off making our own system&lt;/div&gt;</summary>
		<author><name>Rhodey</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Firmware/Generating&amp;diff=5648</id>
		<title>Mesh/Firmware/Generating</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Firmware/Generating&amp;diff=5648"/>
		<updated>2013-09-26T01:30:53Z</updated>

		<summary type="html">&lt;p&gt;Rhodey: /* Node Attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Model (rough) =&lt;br /&gt;
&lt;br /&gt;
Build Server:&lt;br /&gt;
The one and only server responsible for building and signing SudoMesh OpenWRT images, mostly a collection of bash scripts.&lt;br /&gt;
&lt;br /&gt;
Configuration Server:&lt;br /&gt;
One of possibly multiple servers responsible for and authenticated to query, configure and update nodes.&lt;br /&gt;
* python SSL server for configuring nodes over secure socket.&lt;br /&gt;
* python web server as a UI to the SSL configuration server.&lt;br /&gt;
&lt;br /&gt;
Node:&lt;br /&gt;
The basic build block of any mesh!&lt;br /&gt;
*node-admin: extended from the openWRT admin page, used by node owner for configuration.&lt;br /&gt;
*node-conf-client: lua client for accepting configs and answering config queries from a configuraion server.&lt;br /&gt;
&lt;br /&gt;
= Node Attributes =&lt;br /&gt;
&lt;br /&gt;
The following attributes are required of the Build Server at image build time:&lt;br /&gt;
&lt;br /&gt;
*Hardware model&lt;br /&gt;
*Firmware version&lt;br /&gt;
&lt;br /&gt;
The following attributes are required of the Configuration Server for initial configuration:&lt;br /&gt;
&lt;br /&gt;
*SSH host RSA keypair&lt;br /&gt;
*SSH host DSA keypair (optional?)&lt;br /&gt;
*SSH host ECDSA keypair (optional?)&lt;br /&gt;
*SSH keys allowed root access for debugging&lt;br /&gt;
&lt;br /&gt;
The following attributes are required of the Node Op for initial configuration through the Configuration Server:&lt;br /&gt;
&lt;br /&gt;
*Geographic address&lt;br /&gt;
*Node Op name&lt;br /&gt;
*Node Op email address&lt;br /&gt;
*Node Op phone number&lt;br /&gt;
&lt;br /&gt;
= wlan slovenija =&lt;br /&gt;
&lt;br /&gt;
wlan slovenija has a firmware generator tool. Here are some links:&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/wlanslovenija/nodewatcher/blob/master/generator/config_generator.py config_generator.py: the core code for the generator]&lt;br /&gt;
*[https://github.com/wlanslovenija/nodewatcher/blob/master/generator/build_image.py build_image.py: the command line tool that uses config_generator.py]&lt;br /&gt;
&lt;br /&gt;
Some relevant code from config_generator.py:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      buildString = 'make image FILES=&amp;quot;../files&amp;quot; PROFILE=&amp;quot;%s&amp;quot; PACKAGES=&amp;quot;policy-routing olsrd uhttpd tc nodewatcher-core nodewatcher-clients ntpclient hostapd -ppp -ppp-mod-pppoe -wpad-mini kmod-l2tp kmod-l2tp-ip kmod-l2tp-eth tunneldigger wireless-tools qos-scripts %s&amp;quot;' % (profile_map[self.portLayout], pkgs)&lt;br /&gt;
      os.chdir(path)&lt;br /&gt;
      os.system(buildString)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The whole ''nodewatcher'' system is in fact a web interface to the image generator (this is how it all started, historically, as a web interface + IP allocation, and then we added network monitoring, node telemetry and so on).&lt;br /&gt;
&lt;br /&gt;
*[http://nodes.wlan-si.net/ live version]&lt;br /&gt;
&lt;br /&gt;
= freifunk =&lt;br /&gt;
&lt;br /&gt;
Freifunk has a web app called meshkit for generating images.&lt;br /&gt;
&lt;br /&gt;
*[http://meshkit.freifunk.net/ live web app]&lt;br /&gt;
*[https://github.com/freifunk/meshkit source code]&lt;br /&gt;
&lt;br /&gt;
Meshkit takes a strange approach. From the readme file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Meshkit itself just writes a uci config file and stores it in&lt;br /&gt;
/etc/config/meshkwizard in the resulting firmware image. The actual&lt;br /&gt;
configuration is done by meshwizard, which uses community profiles&lt;br /&gt;
and the settings from meshkit to configure the device at first boot after&lt;br /&gt;
the device has been flashed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While I understand why community profiles would be a good idea, it seems odd that the configuration would happen on the device. Why not generate all of the required configuration before generating the image? That way you save a bit of space and an extra reboot of the device.&lt;br /&gt;
&lt;br /&gt;
After looking at the code, I am not inclined to use it. Lots of freifunk-specific stuff. Few comments. In the end, all it does that we really care about is take a few values from the web app, write some config files for openwrt and run &amp;quot;make image&amp;quot; with some parameters. It does have a system for queuing builds, which is nice. Honestly, I think we're going to be better off making our own system&lt;/div&gt;</summary>
		<author><name>Rhodey</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Firmware/Generating&amp;diff=5647</id>
		<title>Mesh/Firmware/Generating</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Firmware/Generating&amp;diff=5647"/>
		<updated>2013-09-26T01:11:16Z</updated>

		<summary type="html">&lt;p&gt;Rhodey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Model (rough) =&lt;br /&gt;
&lt;br /&gt;
Build Server:&lt;br /&gt;
The one and only server responsible for building and signing SudoMesh OpenWRT images, mostly a collection of bash scripts.&lt;br /&gt;
&lt;br /&gt;
Configuration Server:&lt;br /&gt;
One of possibly multiple servers responsible for and authenticated to query, configure and update nodes.&lt;br /&gt;
* python SSL server for configuring nodes over secure socket.&lt;br /&gt;
* python web server as a UI to the SSL configuration server.&lt;br /&gt;
&lt;br /&gt;
Node:&lt;br /&gt;
The basic build block of any mesh!&lt;br /&gt;
*node-admin: extended from the openWRT admin page, used by node owner for configuration.&lt;br /&gt;
*node-conf-client: lua client for accepting configs and answering config queries from a configuraion server.&lt;br /&gt;
&lt;br /&gt;
= Node Attributes =&lt;br /&gt;
The following attributes are required of the Node Operator for node firmware generation:&lt;br /&gt;
&lt;br /&gt;
*Hardware model&lt;br /&gt;
*Primary vs. non-primary AP&lt;br /&gt;
*Geographic address (location)&lt;br /&gt;
*Node Op name&lt;br /&gt;
*Node Op phone number&lt;br /&gt;
*Node Op email address&lt;br /&gt;
&lt;br /&gt;
The following attributes are to be generated (securely!) on the fly for node firmware generation:&lt;br /&gt;
&lt;br /&gt;
*SSH host DSA keypair (optional?)&lt;br /&gt;
*SSH host ECDSA keypair (optional?)&lt;br /&gt;
*SSH host RSA keypair&lt;br /&gt;
*SSH root password&lt;br /&gt;
&lt;br /&gt;
= wlan slovenija =&lt;br /&gt;
&lt;br /&gt;
wlan slovenija has a firmware generator tool. Here are some links:&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/wlanslovenija/nodewatcher/blob/master/generator/config_generator.py config_generator.py: the core code for the generator]&lt;br /&gt;
*[https://github.com/wlanslovenija/nodewatcher/blob/master/generator/build_image.py build_image.py: the command line tool that uses config_generator.py]&lt;br /&gt;
&lt;br /&gt;
Some relevant code from config_generator.py:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      buildString = 'make image FILES=&amp;quot;../files&amp;quot; PROFILE=&amp;quot;%s&amp;quot; PACKAGES=&amp;quot;policy-routing olsrd uhttpd tc nodewatcher-core nodewatcher-clients ntpclient hostapd -ppp -ppp-mod-pppoe -wpad-mini kmod-l2tp kmod-l2tp-ip kmod-l2tp-eth tunneldigger wireless-tools qos-scripts %s&amp;quot;' % (profile_map[self.portLayout], pkgs)&lt;br /&gt;
      os.chdir(path)&lt;br /&gt;
      os.system(buildString)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The whole ''nodewatcher'' system is in fact a web interface to the image generator (this is how it all started, historically, as a web interface + IP allocation, and then we added network monitoring, node telemetry and so on).&lt;br /&gt;
&lt;br /&gt;
*[http://nodes.wlan-si.net/ live version]&lt;br /&gt;
&lt;br /&gt;
= freifunk =&lt;br /&gt;
&lt;br /&gt;
Freifunk has a web app called meshkit for generating images.&lt;br /&gt;
&lt;br /&gt;
*[http://meshkit.freifunk.net/ live web app]&lt;br /&gt;
*[https://github.com/freifunk/meshkit source code]&lt;br /&gt;
&lt;br /&gt;
Meshkit takes a strange approach. From the readme file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Meshkit itself just writes a uci config file and stores it in&lt;br /&gt;
/etc/config/meshkwizard in the resulting firmware image. The actual&lt;br /&gt;
configuration is done by meshwizard, which uses community profiles&lt;br /&gt;
and the settings from meshkit to configure the device at first boot after&lt;br /&gt;
the device has been flashed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While I understand why community profiles would be a good idea, it seems odd that the configuration would happen on the device. Why not generate all of the required configuration before generating the image? That way you save a bit of space and an extra reboot of the device.&lt;br /&gt;
&lt;br /&gt;
After looking at the code, I am not inclined to use it. Lots of freifunk-specific stuff. Few comments. In the end, all it does that we really care about is take a few values from the web app, write some config files for openwrt and run &amp;quot;make image&amp;quot; with some parameters. It does have a system for queuing builds, which is nice. Honestly, I think we're going to be better off making our own system&lt;/div&gt;</summary>
		<author><name>Rhodey</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Today_I_Learned&amp;diff=5344</id>
		<title>Today I Learned</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Today_I_Learned&amp;diff=5344"/>
		<updated>2013-08-07T01:57:09Z</updated>

		<summary type="html">&lt;p&gt;Rhodey: /* September 21: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;'''TODAY I LEARNED @ SUDO ROOM'''&amp;lt;/big&amp;gt; &amp;lt;Br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Come to Sudo Room every Saturday at 2:00PM to learn something new. &amp;quot;Today I Learned&amp;quot; is a series of one-off classes, workshops, and talks led by members of the Sudo Room community.&lt;br /&gt;
&lt;br /&gt;
==Sign up to teach a class==&lt;br /&gt;
&lt;br /&gt;
Are you interested in facilitating a &amp;quot;Today I Learned&amp;quot; workshop? The sign-up process to facilitate a class is very easy. Find a date below that's not currently taken and add the proposed title of your class, your name, and a way to get in touch with you (please note that the name of the facilitator &amp;amp; whatever contact method you prefer should be included for all workshops so that we can get in touch with you about promoting your workshop, scheduling issues, etc.). We encourage you to add as much detail as possible to your workshop listing to give people a good sense of what they can expect from your workshop. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Jan. 19 Polymer Clay Millefiori, a hands on introduction to fractals ===&lt;br /&gt;
* Title of Class: Polymer Clay Millefiori, a hands on introduction to fractals&lt;br /&gt;
* Class Facilitator: Patrick  &lt;br /&gt;
* Cost: Free demo, scrap clay available, donations welcome, Starter Kits available&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#&lt;br /&gt;
===Jan 26  [[Vanilla: From Bean to Ice Cream]]===&lt;br /&gt;
Title of Class: Vanilla: From Bean to Ice Cream&lt;br /&gt;
* ''Class Facilitator'': '''Ray the Ice Cream Man''' has made ice cream for Bi-Rite Creamery, iScream, &amp;amp; Silbermann's. He lead the innovation lab (the infamous NOM Team) at Fentons. His last gig was the ice cream designer for the opening of the Ice Cream Bar in San Francisco. Ray is currently launching his own venture, Atomic Ice Cream, and starting a motorcyle gang.&lt;br /&gt;
* ''Description'': Vanilla is yummy. And fascinating. This is a class into the history, botany, and appreciation of one of the most ubiquitous tastes and smells in our culture. We will make vanilla extract (everybody goes home with a bottle of extract), taste single origin vanilla ice creams and learn how to make a Philadelphia style vanilla ice cream (everybody goes home with a container of ice cream). There will be a low class fee for materials (approximately $5) and an empty pint container for generous donations.&lt;br /&gt;
* ''Interested Attendees'':&lt;br /&gt;
#[[Diwu|Diana]] ([[User talk:Diwu|talk]])&lt;br /&gt;
#VMittal&lt;br /&gt;
#[[Julio|Julio]] ([[User talk:Julio|talk]])&lt;br /&gt;
#[[User:Mfb|mfb]] &lt;br /&gt;
#[[User:Tunabananas|Tunabananas]] ([[User talk:Tunabananas|talk]])&lt;br /&gt;
#[[User:Bleeblahblue|Vicky]]&lt;br /&gt;
#Anthony Di Franco (motorcycle gang)&lt;br /&gt;
#Angie&lt;br /&gt;
#[[User:garrettr|garrettr]] (and friends!)&lt;br /&gt;
#[[User:Juul|Juul]] ([[User talk:Juul|talk]])&lt;br /&gt;
#Christine&lt;br /&gt;
#Joe&lt;br /&gt;
#Brandon&lt;br /&gt;
&lt;br /&gt;
===Feb. 2 [[No Class]] ===&lt;br /&gt;
* No Class&lt;br /&gt;
* Common Room being used for Raw Food event&lt;br /&gt;
&lt;br /&gt;
===Feb. 9 [[Sewing Hackathon]]===&lt;br /&gt;
* Title of Class: Sewing Hackathon&lt;br /&gt;
** This will be an expanded version (1-4PM) of the mini-workshop we held this summer featuring the opportunity to add LEDs to your garments, patch holes, add pockets, or otherwise hack up boring old clothes into the '''new wave of the future'''! We will also be sharing ways to make your own wearable bike light. We will have clothes for you to modify and take apart, but we encourage you to bring any materials/clothes that you would be interested in modifying.&lt;br /&gt;
* Class Facilitator: Rachel&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#Liz&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===Feb. 16: Livelihood Hacking AND Teaching Techniques Collaborative Workshop ===&lt;br /&gt;
* '''Title of Class: Livelihood Hacking'''&lt;br /&gt;
** Your biggest regular/monthly expense is likely rent followed by food, which also happen to cover some of the more basic needs. Significantly reducing the financial costs of these significantly increases potential ways to live ones life. Morten lives comfortably for $500 a month and will talk a bit about how that looks like, throw some ideas for how it might be replicated in your context, and together we will further explore this topic of livelihood hacking in a workshop setting.&lt;br /&gt;
** Class Facilitator: Factotum (Morten H. D. Fuglsang)&lt;br /&gt;
** Time: 4pm -&amp;gt; ~5.5PM&lt;br /&gt;
** Interested Attendees: you, &lt;br /&gt;
* '''Title of Class: Teaching Techniques Collaborative Workshop'''&lt;br /&gt;
** This will be about how to be a better teacher, as well as how to expand the TIL program and teach material outside of our collective comfort zone.  We will also aim to create a sudo wiki entry on this material. It'll be hosted as a potluck.&lt;br /&gt;
** Class Facilitator: Sam&lt;br /&gt;
** Time: 5.45PM&lt;br /&gt;
** Interested Attendees: you,&lt;br /&gt;
&lt;br /&gt;
===Feb. 23 [[Optimize Rational Inquiry: How Bayesian Statistics Can Help You Reason! AND How to Build a Naive Bayes Spam Filter]]===&lt;br /&gt;
* Class Facilitators: Sam T, Anthony Repetto, Anthony DiFranco&lt;br /&gt;
*Time: 2:00PM - 4:00PM&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#Ray&lt;br /&gt;
#George&lt;br /&gt;
#Matty&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===Mar 2. PAUSED for [http://workshopweekend.net/ Workshop Weekend]===&lt;br /&gt;
* Title of Class:&lt;br /&gt;
* Class Facilitator:&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===Mar. 9 [[Jewelry-making and jewelry repair]]===&lt;br /&gt;
* Title of Class: Jewelry-making and jewelry repair&lt;br /&gt;
** Bring broken and second hand jewelry plus any beads or other bits you have on hand and we will learn how to take apart old jewelry to make new creations. We will also have people on hand to help you repair any broken jewelry. Bring yourself and a friend, weâ€™ll have snacks!&lt;br /&gt;
* Class Facilitator: Jane&lt;br /&gt;
* Interested Attendees: &lt;br /&gt;
# [[User:mk30|mk30]]&lt;br /&gt;
# [[User:Tunabananas|Tunabananas]] ([[User talk:Tunabananas|talk]])&lt;br /&gt;
# You!&lt;br /&gt;
&lt;br /&gt;
===Mar. 16 : [[Just enough Sketch-up to pretend you can 3d model]]===&lt;br /&gt;
* Title of Class: [[Just enough Sketch-up to pretend you can 3d model]].&lt;br /&gt;
* Class Facilitator: [[User:Maximilianklein|Maximilianklein]] ([[User talk:Maximilianklein|talk]])&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#[[User:IsThisThingOn|IsThisThingOn]] ([[User talk:IsThisThingOn|talk]])&lt;br /&gt;
#[[User:Tunabananas|Tunabananas]] ([[User talk:Tunabananas|talk]]) 22:35, 12 January 2013 (CET)&lt;br /&gt;
#[[User:Bleeblahblue|Bleeblahblue]] ([[User talk:Bleeblahblue|talk]]) 21:38, 5 February 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
===Mar 23. [[Workshop: Intro to Electronics / Learn to Solder|Workshop: Intro to Electronics / Learn to Solder (with Mitch Altman)]]===&lt;br /&gt;
* Title of Class: Workshop:  Intro to Electronics / Learn to Solder (with Mitch Altman)&lt;br /&gt;
* Class Facilitator: [[User:Maltman23|Mitch Altman]]&lt;br /&gt;
* Interested Attendees: &lt;br /&gt;
# [[User:Matt|Matt]] ([[User talk:Matt|talk]])&lt;br /&gt;
# [[User:Tunabananas|Tunabananas]] ([[User talk:Tunabananas|talk]])&lt;br /&gt;
# [[User:Factotum|Factotum]]&lt;br /&gt;
# newbs!&lt;br /&gt;
# experts!&lt;br /&gt;
&lt;br /&gt;
===Mar. 30 [[Intro to Bicycle Repair and Maintenance]]===&lt;br /&gt;
* Title of Class: Intro to Bicycle Repair and Maintenance.&lt;br /&gt;
** Come learn how your bike works and how to do basic bicycle maintenance and repair. Feel free to bring your bike!&lt;br /&gt;
** Bring '''tools''', '''materials''', '''parts''', and other '''useful supplies''' as a drive to fill our space with more bike essentials!&lt;br /&gt;
** [[Intro to Bicycle Repair and Maintenance | Read More]]&lt;br /&gt;
* Class Facilitator: [[User:Matt|Matt]] ([[User talk:Matt|talk]])&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
# [[User:Julio|Julio]] ([[User talk:Julio|talk]])&lt;br /&gt;
# [[User:Tunabananas|Tunabananas]] ([[User talk:Tunabananas|talk]])&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===Apr. 6 [[Audio Recording 101]]===&lt;br /&gt;
* Title of Class: Audio Recording 101&lt;br /&gt;
* Class Facilitator: Shani &lt;br /&gt;
** In this class, we'll go over the tools, terminology and applications you'll need to get crackin' on a variety of audio endeavors.&lt;br /&gt;
** Topics covered will include:&lt;br /&gt;
*** Audio rudiments and terminology&lt;br /&gt;
*** Analog v. digital&lt;br /&gt;
*** Types of recordings (documentary, instrumental, electronic, MIDI)&lt;br /&gt;
*** What you need to get yourself started on a project &lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#[[User:Maximilianklein|Maximilianklein]] ([[User talk:Maximilianklein|talk]]) 15:18, 27 February 2013 (UTC)&lt;br /&gt;
#Rick&lt;br /&gt;
# Liz (First Friday Guest)&lt;br /&gt;
# Nikhil (first friday guest) he is bringing a microphone, cool cogswell schools tudent&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===Apr. 13 [[Clothes Hacking]] === &lt;br /&gt;
* Title of Class: Clothes Hacking&lt;br /&gt;
**low key sewing workshop. Bring ideas, projects you are stuck on, clothes that need repair, an extra machine if you have one or just yourself. We have a scrap heap and clothes you can have!&lt;br /&gt;
* Class Facilitator: rachel lyra&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
** [[User:Romyilano|Romyilano]] - could we do wearable electronics as well?&lt;br /&gt;
&lt;br /&gt;
===Apr. 20 [[Just enough sketchup to pretend you can 3d model II &amp;amp; Just enough slic3r to pretend you can extrude I]]===&lt;br /&gt;
* Title of Class: Just enough sketchup to pretend you can 3d model II &amp;amp; Just enough slic3r to pretend you can extrude I&lt;br /&gt;
* Class Facilitator: [[User:Maximilianklein|Maximilianklein]] ([[User talk:Maximilianklein|talk]]) 17:31, 24 March 2013 (PDT)&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===Apr. 27 [[Hootup (Postponed-to be rescheduled)]]===&lt;br /&gt;
* '''''Learn to install and use HootSuite to schedule and monitor all your Social Media in one dashboard'''''  &lt;br /&gt;
* Join Laney College's HootSuite Campus Ambassador Mark Wilson&lt;br /&gt;
* And students in Journalism 65: Social Media for Journalists &lt;br /&gt;
* Who should attend? Anyone interested in expanding their Social Media toolkit&lt;br /&gt;
&lt;br /&gt;
[[File:Vicky leads the Hacking Sexual Health workshop.jpg|thumb|100px|right|Today I learned - making menstrual pads]]&lt;br /&gt;
&lt;br /&gt;
===May 4  [[Hacking_Sexual_Health#DIY_Cloth_Menstrual_Pads_Workshop|Hacking Sexual Health: DIY Cloth Menstrual Pads Workshop]]===&lt;br /&gt;
* As Part I of the [[Hacking Sexual Health]] series, we will be learning how to make beautiful and practical cloth pads out of old clothing! NO EXPERIENCE OR ABILITY TO MENSTRUATE NECESSARY! Materials will be provided, but if you want, you can bring old ripped-up clothing (preferrably soft, natural fibers), needles, thread, snaps or buttons. This workshop is intended for people who menstruate and for people who have friends who menstruate (and want to make them lovely presents). We will also go over a dizzying array of cool lady products beyond the cloth pad, and have fun cost-comparisons of different options. &lt;br /&gt;
* Guest appearance: Craig for DIY Bio and hacking a non-antibiotic treatment for highly resistent gonorrhea!&lt;br /&gt;
* Class Facilitator: ykciVicky&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#[[User:Maximilianklein|Maximilianklein]] ([[User talk:Maximilianklein|talk]]) 11:24, 9 April 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
===May 11, 2013  [[ComicsAndMore| Comics, 3D Printing and the Universe]] === &lt;br /&gt;
&lt;br /&gt;
[[File:3D Printout from our comic jam.jpg|thumb|200px|right|Comics and 3D Printing]]&lt;br /&gt;
&lt;br /&gt;
* Title of Class:  [[ComicsAndMore| Comics, 3D Printing and the Universe]]&lt;br /&gt;
* Overview: Old-fashioned comic book jam. We will take the end result and print it out as a relief using the 3D Printer. &lt;br /&gt;
* Class Facilitator: [[User:Romyilano|Romy Ilano]]&lt;br /&gt;
&lt;br /&gt;
===May 18 [[Fix-It Day!]] (PLUS Linux Install Day!)  ===&lt;br /&gt;
* Title of Class: Fix-It Day (PLUS Linux Install Day!)&lt;br /&gt;
** We have a lot of computers and other equipment at Sudo Room in various states of functionality. You may also have computers and other kinds of equipment in various states of functionality! During this &amp;quot;Today I Learned&amp;quot; session we will come together to test/repair computers and learn more about fixing computers. **BONUS: Have you always been curious about Linux but not sure where to start? If you are interested in installing Linux on your Windows computer (it is not necessary to delete Windows to install Linux), we will also be helping participants install Linux.&lt;br /&gt;
* Class Facilitator: Everyone! We will all work and learn together.&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
# [[User:mk30|mk30]]&lt;br /&gt;
# you&lt;br /&gt;
&lt;br /&gt;
===May 25  CANCELLED  ===&lt;br /&gt;
* Title of Class:&lt;br /&gt;
* Class Facilitator:&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
===June 1: The Simple Computer ===&lt;br /&gt;
* '''How simple can we make computers? Let's find out!'''&lt;br /&gt;
** We will go on a quest to make computers as simple as possible. Intro to computer science. Understand how computers work!&lt;br /&gt;
** Binary math and boolean logic&lt;br /&gt;
** Half &amp;amp; full adders made of water, marbles, rocks, dominos, people...&lt;br /&gt;
** Build a very simple computer with 64 bytes of memory and 4 instructions&lt;br /&gt;
* Class Facilitator: [[User:Yardena|Yardena]]&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
# [[User:Romyilano|Romyilano]]&lt;br /&gt;
# [[User:legind|Bill]]&lt;br /&gt;
# Christine&lt;br /&gt;
[[File:Infographics at SudoRoom.JPG|thumb|right|SudoRoom thoughts become action through pictures]]&lt;br /&gt;
&lt;br /&gt;
===June 8: [[Infographics]] touch your statistics with 3D Printing  ===&lt;br /&gt;
* Title of Class: Infographics: Convince with Pictures&lt;br /&gt;
* Class Facilitator: [[User:Romyilano|Romyilano]]&lt;br /&gt;
* Overview: Learn to take complex data and condense information into powerful graphics that spur action resulting in positive economic and social change.  We'll take data on [http://catalog.data.gov/dataset/DHS-30761 refugee admissions to the US from 1980-2011] from [http://www.data.gov data.gov] + turn it into a touchable 3D Printout!&lt;br /&gt;
* '''Cross-Pollination with other Organizations that work in the building''' : Technical Documentation for 3D Printing | [[Community Democracy Project]] | [[http://thepublicschool.org/ | The public school ]]&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
# you&lt;br /&gt;
# Rick&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Hacking History.jpg|thumb|right|Materials For A History of Hacking]]&lt;br /&gt;
===June 15: From Phone Phreaks to Wiki Leaks: A History of Ethical Hacking===&lt;br /&gt;
* Title of Class: From Phone Phreaks to Wiki Leaks: A History of Ethical Hacking&lt;br /&gt;
* Class Facilitator: Andrew (@M57C, irc: mstc)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Before &amp;quot;White Hat&amp;quot; hackers and &amp;quot;Black Hat&amp;quot; hackers there were &amp;quot;Ethical Hackers&amp;quot;. These groups and individuals may not have always stayed within the confines of the law, but followed a well defined ethic. This is the story of MIT pranks, the golden age of the BBS, The Great Hacker War, Steve Jackson Games vs. The US Secret Service, Old school hacking tech ( Blue Boxing, Red Boxing, War Dialing, etc ), New Hack City and the rise of the Cult of The Dead Cow, Free Kevin!, Hacktivismo, and more...&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Hacker Manifesto&lt;br /&gt;
&lt;br /&gt;
by&lt;br /&gt;
&lt;br /&gt;
+++The Mentor+++&lt;br /&gt;
&lt;br /&gt;
Written January 8, 1986&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another one got caught today, it's all over the papers. &amp;quot;Teenager Arrested in Computer Crime Scandal&amp;quot;, &amp;quot;Hacker Arrested after Bank Tampering&amp;quot;...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damn kids. They're all alike.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
But did you, in your three-piece psychology and 1950's technobrain, ever take a look behind the eyes of the hacker? Did you ever wonder what made him tick, what forces shaped him, what may have molded him?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am a hacker, enter my world...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mine is a world that begins with school... I'm smarter than most of the other kids, this crap they teach us bores me...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damn underachiever. They're all alike.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I'm in junior high or high school. I've listened to teachers explain for the fifteenth time how to reduce a fraction. I understand it. &amp;quot;No, Ms. Smith, I didn't show my work. I did it in my head...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damn kid. Probably copied it. They're all alike.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I made a discovery today. I found a computer. Wait a second, this is cool. It does what I want it to. If it makes a mistake, it's because I screwed it up. Not because it doesn't like me... Or feels threatened by me.. Or thinks I'm a smart ass.. Or doesn't like teaching and shouldn't be here...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damn kid. All he does is play games. They're all alike.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And then it happened... a door opened to a world... rushing through the phone line like heroin through an addict's veins, an electronic pulse is sent out, a refuge from the day-to-day incompetencies is sought... a board is found. &amp;quot;This is it... this is where I belong...&amp;quot; I know everyone here... even if I've never met them, never talked to them, may never hear from them again... I know you all...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damn kid. Tying up the phone line again. They're all alike...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You bet your ass we're all alike... we've been spoon-fed baby food at school when we hungered for steak... the bits of meat that you did let slip through were pre-chewed and tasteless. We've been dominated by sadists, or ignored by the apathetic. The few that had something to teach found us willing pupils, but those few are like drops of water in the desert. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is our world now... the world of the electron and the switch, the beauty of the baud. We make use of a service already existing without paying for what could be dirt-cheap if it wasn't run by profiteering gluttons, and you call us criminals. We explore... and you call us criminals. We seek after knowledge... and you call us criminals. We exist without skin color, without nationality, without religious bias... and you call us criminals. You build atomic bombs, you wage wars, you murder, cheat, and lie to us and try to make us believe it's for our own good, yet we're the criminals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Yes, I am a criminal. My crime is that of curiosity. My crime is that of judging people by what they say and think, not what they look like. My crime is that of outsmarting you, something that you will never forgive me for.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am a hacker, and this is my manifesto. You may stop this individual, but you can't stop us all... after all, we're all alike.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#--[[User:Tunabananas|Tunabananas]] ([[User talk:Tunabananas|talk]]) 14:14, 29 May 2013 (PDT)&lt;br /&gt;
#Rabbit&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===June 22 Making a Website (the Basics)===&lt;br /&gt;
* Title of Class: Making a Website (the Basics)&lt;br /&gt;
* Class Facilitator: Marty&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
''SO you want to build a website for yourself, your friends or to promote your project? &lt;br /&gt;
This will provide a good overview of how to get starting making a website.&lt;br /&gt;
We will go over the basic components of websites and what you'd need to do to take that first step.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Topics will include:&lt;br /&gt;
*Some Basic HTML&lt;br /&gt;
*Some Basic CSS&lt;br /&gt;
*maybe a bit of DOM/JS or PHP&lt;br /&gt;
*How to find a domain name?&lt;br /&gt;
*How to find hosting?&lt;br /&gt;
*What is a content mangement system (CMS) and what can it do for you?&lt;br /&gt;
&lt;br /&gt;
'This may be too simple for many of you familiar with web design/development backgrounds but there were a number of folks from The Public School who have been wanting this for months. Hopefully there is useful information for everybody'&lt;br /&gt;
&lt;br /&gt;
===July 6: [[GIT Version Control for Non Coders]] (Writers, Lawyers, everyone!) ===&lt;br /&gt;
* Title of Class: GIT Version Control for Writers&lt;br /&gt;
* facilitator: di franco&lt;br /&gt;
* Overview: Git is an awesome noncentralized, distributed collaboration tool that coders use to work on code together. Learn how to use git version control to collaboratively edit legal documents, novels, and even comics. You don't have to be a coder to use git. &lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===July 13 : What is Linux? ===&lt;br /&gt;
* What is this linux thing? How does it work? We'll talk about it!&lt;br /&gt;
* Informal learning. Arch Linux installfest delayed - you can still come and do it informally though. We'll help. :)&lt;br /&gt;
&lt;br /&gt;
===July 20: '''Statistics through doodles''': Geometric computations of fundamental statistical concepts ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Facilitated by Thomas Levine ([[User:tlevine]], [http://thomaslevine.com thomaslevine.com])''&lt;br /&gt;
&lt;br /&gt;
==== Abstract ====&lt;br /&gt;
Regardless of your statistical abilities, Tom thinks he can give you a better grasp of some fundamental statistical concepts. Tom finds math easier to understand when it is drawn. With the help of some doodles on paper, Tom will explain the purpose and meaning of various measures of the relationships between different variables (specifically covariance, variance, correlation and least-squares regression). This class assumes literally '''no knowledge of math''', not even basic arithmetic. But attendees will probably know at least something about math, and Tom will try to skip things that attendees already know as to not bore them.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
Logistical notes from Tom, in first person&lt;br /&gt;
&lt;br /&gt;
* I could do this on a different day too.&lt;br /&gt;
* I've done this class many times, but I've never recorded it and put it on the internet. If people are fine being recorded, I'd like to video the class.&lt;br /&gt;
&lt;br /&gt;
==== Interested Attendees ====&lt;br /&gt;
* Timon=GCStokum&lt;br /&gt;
* Anthony Repetto :)&lt;br /&gt;
* you&lt;br /&gt;
&lt;br /&gt;
===July 27 : Binary Search: a generalization for ultra-fast optimization ===&lt;br /&gt;
&lt;br /&gt;
Presenting: Anthony Repetto&lt;br /&gt;
&lt;br /&gt;
A new take on an old method, fit for solving the toughest problems in data analysis. Simple, visual explanations, discussion of applications, gathering a community of interest - the goal? To gift SudoRoom with software for individual initiatives, and generate SudoFunds through data analysis prizes on Kaggle.com. Learn, share, plan for the future!&lt;br /&gt;
&lt;br /&gt;
contact info: (510) 292-0200&lt;br /&gt;
oaklandthinktank@gmail.com&lt;br /&gt;
&lt;br /&gt;
===August 3: Practical Gaming ===&lt;br /&gt;
* Title of Class:Practical Gaming - Applying the Lessons of Gaming to Life&lt;br /&gt;
** We'll look at games (all games) and gaming through the lens of applying the underlying concepts and strategies to scenarios in every-day life.  This will be approached as a Self-Organized Learning Environment (SOLE), designed to be both interactive and communal - learn new ways to think about gaming and life, and share the lessons you've learned through gaming.  Some games and examples will be provided, but bring your own games, too! &lt;br /&gt;
** Some materials to get the discussion going: &lt;br /&gt;
*** [http://www.ted.com/talks/john_hunter_on_the_world_peace_game.html John Hunter and the World Peace Game]&lt;br /&gt;
*** [http://research.microsoft.com/en-us/collaboration/institutes/gamesinstitute.aspx Microsoft Games for Learning Institute]&lt;br /&gt;
*** [http://www.upworthy.com/take-two-normal-people-add-money-to-just-one-of-them-and-watch-what-happens-next?c=ufb1 Rich/Poor strategy]&lt;br /&gt;
*** [http://www.wired.com/gaming/virtualworlds/magazine/15-09/ff_halo?currentPage=all Halo 3 and a new science of play]&lt;br /&gt;
*** [http://www.dailykos.com/story/2013/06/26/1219017/-I-am-in-awe-of-Texas-tonight Cheating tactics and making new rules - the Texas Abortion Filibuster]&lt;br /&gt;
*** [http://www.ted.com/talks/jane_mcgonigal_gaming_can_make_a_better_world.html Gaming for a Better World]&lt;br /&gt;
*** [http://gameful.org/ Gameful.org]&lt;br /&gt;
*** more to come&lt;br /&gt;
* Class Facilitator: Aaron (aaronjuchau@gmail.com)&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===August 10: Federated Syndicates, Auction Markets ===&lt;br /&gt;
* Title of Class: Federated Syndicates, Auction Markets&lt;br /&gt;
* Class Facilitator: Anthony Repetto&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
&lt;br /&gt;
Renounce the capitalist/socialist dichotomy! See how alternative structures for economic and political coordination could work; presented with pictures, witty sound bites. Government and markets serve to allocate resources and mediate collaboration. Our ways of doing this are two centuries old, pre-dating modern understandings of large networks and system equilibria. Mathematicians have developed 'ways to play' that avoid the corrupting pressures of kleptocratic, territorial governments, consumer-culture obsolescence, and the stranglehold of private capital. See the difference, spread the word!&lt;br /&gt;
&lt;br /&gt;
contact info: (510) 292-0200&lt;br /&gt;
oaklandthinktank@gmail.com&lt;br /&gt;
&lt;br /&gt;
===August 17 - Popcorn Party===&lt;br /&gt;
Learn how to make excellent popcorn with all sorts of wild flavors. That's right, we're going to burn some sugar. Prepare for a whole new world of carmelization, you can be the first ones to nail these flavors. We'll be making popcorn to get sudo donations. Maybe later in the evening we can have a movie night!&lt;br /&gt;
&lt;br /&gt;
Host: Ed edwardvuuu@gmail.com&lt;br /&gt;
&lt;br /&gt;
===August 24 [[Fixit Clinic]]===&lt;br /&gt;
* Fixit Clinic - Bring your broken, non-functioning things: electronics, appliances, computers, toys, etc. for assessment, disassembly, and possible repair. We'll provide workspace, specialty tools, and guidance to help you disassemble and troubleshoot your device.&lt;br /&gt;
&lt;br /&gt;
* Class Facilitator: Steve Berl (steveberl@gmail.com)&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===August 31: Git Part 2: Hacking Sudoroom's Articles ===&lt;br /&gt;
* Together we will put Sudoroom's Articles of Association (and its revision history) into a git repo. This will be a springboard to facilitate further revising and updating of the Articles.&lt;br /&gt;
&lt;br /&gt;
===September 7 : The Hacker Distro ===&lt;br /&gt;
* Learn about [https://www.archlinux.org/ Arch Linux] and why it's the software hacker's DIY distro of choice! Play with real live Arch Linux machines, and install your very own with guidance and help. We may also discuss other distros, Linux in general, OS technology in general, and free software in general. All skill levels encouraged! Bring your own machine if you can, but no one turned away. Installation options can include:&lt;br /&gt;
** Live CD/USB&lt;br /&gt;
** virtual machine inside your existing OS&lt;br /&gt;
** dual boot with your existing OS&lt;br /&gt;
** installing over it. ;)&lt;br /&gt;
** Arch on a Raspberry Pi (pending interest - I would need to order them in advance and ask for ~$40 each)&lt;br /&gt;
* Class Facilitator: [[User:Yardena|Yardena]]&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===September 14 : Understanding DNA and Evolution -- From the sticky inside of your mouth to public internet databases ===&lt;br /&gt;
* Every day in the news we see weird and exciting (and maybe even worrisome) new developments -- from glow-in-the-dark rats, to printing new organs, to making viruses that cure cancer.  At the center of all of the bio-explosion that is rivaling the internet is our old friend DNA, and what is called the central &amp;quot;dogma of biology&amp;quot;.  In this TIL, we are going to get the down and dirty working out knowledge of how all this DNA and evolution stuff really works, with some hands-on examples.  You won't need any previous knowledge, but we hope that by the end you'll have enough knowledge dropped to get you started on the basics of biohacking!  For the techies out there, we will finish by tying it all together into the vast public databases that are fueling the gene revolution today!&lt;br /&gt;
&lt;br /&gt;
We will cover:&lt;br /&gt;
** DNA, RNA, ribosomes and proteins!  (Don't worry -- all those 5-dollar words will be pussycats by the end of the session)&lt;br /&gt;
** How you can see evolutionary paths encoded in our genes&lt;br /&gt;
** How people splice and clone and make custom organisms&lt;br /&gt;
** How you can start doing it yourself!&lt;br /&gt;
&lt;br /&gt;
* Class Facilitator: [[User:Praveen|Praveen]]&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#[[User:Bleeblahblue|ykciV]]: I wish! I will be out of town. D; Have fun, everyone. This is going to be amazing!! :D&lt;br /&gt;
#You!&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
===September 21: SQL Injection &amp;amp; Prevention ===&lt;br /&gt;
* SQL Injection or &amp;quot;SQLi&amp;quot; is a one of the most dangerous, popular and fun :D web application exploits found today on the modern web. In this lesson we will cover the basics of SQL and then dive into some SQLi exploitation and mitigation techniques. A series of mock web applications will be made available for attendants to practice on.&lt;br /&gt;
** &lt;br /&gt;
* Class Facilitator: rhodey &lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===September 28===&lt;br /&gt;
* Title of Class:&lt;br /&gt;
* Class Facilitator:&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===October 5===&lt;br /&gt;
* Title of Class:&lt;br /&gt;
* Class Facilitator:&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===October 19===&lt;br /&gt;
* Title of Class:&lt;br /&gt;
* Class Facilitator:&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
===October 26===&lt;br /&gt;
* Title of Class:&lt;br /&gt;
* Class Facilitator:&lt;br /&gt;
* Interested Attendees:&lt;br /&gt;
#you&lt;br /&gt;
&lt;br /&gt;
==I would love to attend a class/workshop on:==&lt;br /&gt;
* open source install day &lt;br /&gt;
* raspberry pi primer &lt;br /&gt;
* arduino (hol?)&lt;br /&gt;
* audio production/radio &lt;br /&gt;
* tech support - fix my browser, my computer is slow, etc. intro to computers and troubleshooting.&lt;br /&gt;
* knitting circle/knitting class &lt;br /&gt;
* 3D printer class - how to use it, how to model, how it works&lt;br /&gt;
* approaches to teaching/tutoring technical topics&lt;br /&gt;
* python (x2)&lt;br /&gt;
* lockpicking&lt;br /&gt;
* intro to networking&lt;br /&gt;
* OpenWrt&lt;br /&gt;
* Build a portable stereo from choosing the amp (ie 41hz' amp6-basic), soldering it, choosing speaker components, designing casing for aucustics, making casing, putting it together!&lt;br /&gt;
* letterpress&lt;br /&gt;
* zines + cataloguing zines&lt;br /&gt;
* comic book drawing&lt;br /&gt;
* mural making (electronic and large-scale painting)&lt;br /&gt;
* skateboarding (focus, not necessarily same as longboarding)&lt;br /&gt;
* How to make cultured/fermented drinks (kombucha, kefir, kvass...); share cultures/colonies&lt;/div&gt;</summary>
		<author><name>Rhodey</name></author>
	</entry>
</feed>