So you have an idea for a Firefox developer tool. You (obviously) want it to work on Fennec and Firefox OS, so it needs to use the remote debugging protocol. You have a backend:
function SimpleBackend() { }
SimpleBackend.prototype = {
| var Ci = Components.interfaces; | |
| var Cc = Components.classes; | |
| let eventListenerService = Cc["@mozilla.org/eventlistenerservice;1"] | |
| .getService(Ci.nsIEventListenerService); | |
| let dbg = new Debugger(); | |
| let DOwindow = dbg.addDebuggee(content.window); | |
| let nodes = content.window.document.querySelectorAll("*"); |
| // Widgets are dumb UI implementations sharing a specific interface, which | |
| // defines how interaction with their contents happen. | |
| // The common interface is defined in the MenuContainer constructor | |
| // documentation, in ViewHelpers.jsm (you really don't need to care about this | |
| // if you're not actually writing a widget; furthermore, a <xul:menulist> | |
| // implements all those methods by default, so it can be considered itself a | |
| // widget). | |
| // This is how it is, because it's redundant to write the same UI interaction |
| #!/bin/tcsh | |
| # Grab user information. | |
| echo "PrivateInternetAccess OpenVPN Setup:" | |
| echo " https://www.privateinternetaccess.com/pages/client-control-panel" | |
| echo " -> PPTP/L2TP/SOCKS Username and Password" | |
| echo -n "User: " | |
| set user = "$<" | |
| echo -n "Pass: " | |
| set pass = "$<" |
Here are straight-forward instructions to setting up a bunch of different software on FreeNAS. If you make a terrible error, just throw up another plugin sandbox and repeat.
| #!/bin/bash | |
| # Are you using Mac OS X? | |
| # You need to install coreutils for this to work. | |
| # try `brew install coreutils` | |
| # or `sudo port install coreutils` | |
| # set a part size that works with FAT32 drives | |
| PART_SIZE=3999 | |
| # nice little intro |