From 34d438be600285db9d6d627ac5e20575021cd1a9 Mon Sep 17 00:00:00 2001 From: bnewbold Date: Mon, 27 Feb 2012 23:33:45 -0500 Subject: shift things around --- _expat.page | 26 +++++++ books/wanted-books.page | 3 +- electronics/fpga-toolchain.page | 37 +++++++++ electronics/microcontrollers.page | 31 ++++++++ ethernet.page | 154 -------------------------------------- microcontrollers.page | 31 -------- networking/dns.page | 15 ++++ networking/ethernet.page | 154 ++++++++++++++++++++++++++++++++++++++ scratch.page | 6 -- software/misc.page | 12 +++ software/vim.page | 6 ++ 11 files changed, 283 insertions(+), 192 deletions(-) create mode 100644 _expat.page create mode 100644 electronics/fpga-toolchain.page create mode 100644 electronics/microcontrollers.page delete mode 100644 ethernet.page delete mode 100644 microcontrollers.page create mode 100644 networking/dns.page create mode 100644 networking/ethernet.page delete mode 100644 scratch.page diff --git a/_expat.page b/_expat.page new file mode 100644 index 0000000..0583474 --- /dev/null +++ b/_expat.page @@ -0,0 +1,26 @@ +====================================== +On The Merits of Expartiatization +====================================== + +"Hairshirting" must be avoided: the benefits of all human progress should be +leveraged going forward, and technologies and lessons learned under flawed and +unjust organizations should not be ignored. The point is not to drop off, +abandon, or boycott the polical grid, it is to create a new and improved +subnetwork of the grid. + +Change happens when things are done well. + +The United States, and arguably many other developed western captialist +democracies, is stuck in a rut: political and social progress has slowed to a +halt and momentum has been lost. It is unclear whether there is a significant +backslide taking place or if this is just the perception from a lack of +progress. + +Other Places +--------------- + +Unused infrastructure is good. + +A balance of resources is good: enough to not be desperately dependant, but not so many that outside forces will be attracted. + + diff --git a/books/wanted-books.page b/books/wanted-books.page index 485c7d4..6c16e63 100644 --- a/books/wanted-books.page +++ b/books/wanted-books.page @@ -25,6 +25,7 @@ Technical * **Euclid's Elements** * **C Programming Language** by Brian W. Kernighan * **Mathematical Physics** by Robert Geroch + * **The Scientist and Engineer's Guide to Digital Signal Processing** by Steven Smith Math ~~~~~~~~~~~~~~ @@ -52,6 +53,7 @@ Novels * **Return From the Stars** by Stanislaw Lem * **Mortal Engines** by Stanislaw Lem + * **The Moon is a Harsh Mistress** by Heinlen Non-Fiction ----------- @@ -62,6 +64,5 @@ Other ------- * **Pictures Showing What Happens on Each Page of Thomas Pynchon's Novel Gravity's Rainbow** by Zak Smith * **The Influence of Sea Power Upon History, 1660-1783** by A.T. Mahan - * **Tempo** by Venkatesh Rao * **A Perfect Vacuum** by Stanislaw Lem (fictional book reviews) * **Imaginary Magnitude** by Stanislaw Lem (fictional book introductions) diff --git a/electronics/fpga-toolchain.page b/electronics/fpga-toolchain.page new file mode 100644 index 0000000..37ff174 --- /dev/null +++ b/electronics/fpga-toolchain.page @@ -0,0 +1,37 @@ +FPGA Toolchain Notes +========================== + +Setup Xilinx 13.3 WebPack on Ubuntu 11.10 64bit +------------------------------------------------- + +Installer archive is ~5gb, extracted will be about 5gb, install will be about +14gb. You'll probably need root. + +Download the appropriate WebPack ISE archive from the Xilinx website; you'll +need to create an `account `_. While the download is +running, generate a WebPack license file (Xilinx.lic) and save that to your +home folder. + + $ mkdir /tmp/ise_install + $ cd /tmp/ise_install + $ tar xvf ~/Xilinx_ISE_DS_Lin_13.3_O.76xd.1.0.tar + $ cd Xilinx_ISE_DS_Lin_13.3_O.76xd.1.0/ + $ sudo ./xsetup # install as root! + + # agree to license agreements + # + # select WebPack + # + # defaults for license: "Acquire or Manage..." and "Ensure Linux + # System...". "Install Cable Drivers" failed for me. + # + # extract to /opt/Xilinx/13.3 + # + # in the license manager that pops up, go straight to "manage licenses" and + # import the one you generated + # + # done! + +To start the IDE run `/opt/Xilinx/13.3/ISE_DS/ISE/bin/lin64/ise` (set it up as +an alias or with a wrapper script). + diff --git a/electronics/microcontrollers.page b/electronics/microcontrollers.page new file mode 100644 index 0000000..6753487 --- /dev/null +++ b/electronics/microcontrollers.page @@ -0,0 +1,31 @@ +=================== +Microcontrollers +=================== + +LISPs on MCUs +-------------- + +See also: article on extremely small interpreters for code density. + +Hedgehog (http://hedgehog.oliotalo.fi/) is a variant of LISP for embedded chips +released under a BSD (library) and LGPL (tools) license. It has some debugging +tools and can run on x86 as well for development. The model is to compile +bytecode on a development machine and execute it on the MCU; there is no REPL +on the device itself. Developed and maintained by a Finish company (.fi TLD?) +mostly for use distibuting new bytecode programs. Implementation is well +documented. + +PICBIT is one of a series (BIT and PICOBIT) of Scheme implementations for very +small (few kb RAM) chips. Code is compiled to bytecode on a development machine +and run/interpreted on the device. This is a mature academic project; there are +a couple papers which summarize the approach and design decisions. + +ARMPIT Scheme (http://armpit.sourceforge.net/) is a full embeded Scheme +environment for ARM MCUs (including Cortex-M3s). It is an active project +written in + +"L" is a Common LISP implementation for embedded MCUs with about a MB of RAM; +it was an MIT AI Lab project. A real time operating system written in C (VENUS) +runs on the metal and an L framework called MARS coordinates message/event +handling between multiple agents. It was written for robotic research. + diff --git a/ethernet.page b/ethernet.page deleted file mode 100644 index d455f21..0000000 --- a/ethernet.page +++ /dev/null @@ -1,154 +0,0 @@ ---- -format: rst -categories: cs -toc: no -... - -======== -Ethernet -======== -:Author: Bryan Newbold - -.. contents:: - -History -======= -Bob Metcalfe first described the ethernet system in a memo while working at the -Xerox Palo Alto Research Center in 1973 ([oreilly]_). It was based on the -earlier *Aloha* system developed by Norman Abramson at the University of -Hawaii. *Aloha* was a radio network for inter-island communications. - -Structure -========= - -Data Frames -~~~~~~~~~~~ -The frame format is the same for ethernet systems of any speed. - -==================== =========== -Section Size (bits) -==================== =========== -Preamble 64 -Destination Address 48 -Source Address 48 -Type Length 16 -Data 46 to 1500 -Checksum 32 -==================== =========== - -.. topic:: Preamble - - The preamble originally served as a "warm up" period for hardware to - stabilize and prepare for the rest of the frame. - - The last 8 bits are the preamble are a particular "start frame delimiter" - pattern to help hardware notice the beginning of signal transmission. - -.. topic:: Source and Destination addresses - - Manufacturers are given a 24 bit id (first half), and are expected to - ensure the uniqueness of the second half of each device's address. - - If the first bit of the destination is high (1), the destination is - multicast; if low (0), then unicast. Under IEEE, if the second bit is high, - global administration rules should be followed, and if low, local - administration rules should be followed. - - The IEEE-SA (Standards Association) delegates addresses. - -.. topic:: Checksum - - The checksum (or Frame Check Sequence) is a Cyclic Redundancy Checksum. - -Inter-Frame Gap -~~~~~~~~~~~~~~~~~ -The Inter-Frame Gap (IFG) is a pause in between signal frames; it is 96 -bit-times long. - -.. _collision: - -Collisions -============= -Collision management is the heart of Ethernet; a collision occurs when two -devices try to transmit at the same time and their signals overlap and the -transmission is unreadable. This problem is made worse the further apart -stations are because it takes longer for signal fronts to propagate, so there -is a longer overlap period when the first device has started transmitting but -the second hasn't noticed and may start transmitting on its own. The network -size (in distance, not nodes) is determined by the maximum collision period -(also called slot time). This period is 512 bit-times, so usually the faster a -network is, the smaller it should be (in distance); at gigabit speeds the -slot is expanded, see Speeds_. - -Under Ethernet, if any device detects a collision, it sends out a 32 bit -"collision enforcement jam signal" to ensure that all devices notice the -collision. Then each device that wishes to transmit waits a random amount of -bit-times r before transmitting again. If there is another collision, a new -r is randomly chosen with a larger maximum; up to 15 retries are allowed before -the devices will give up and drop the frame. The constraints for the random -backoff time r are `$0\leq r \leq 2^k$`:latex:, where r is in bit times and -k is the number of retry attempts up to 10 (for 11th to 15th retries, use -k=10). - -Speeds -========= -At 10mb, bit time is 100ns (nano-seconds); at 100mb, 10ns; at 1gb, 1ns. - -At gigabit speeds, the slot time would limit network size to 20 meters, so -it gets padded with a null "carrier extension" signal to 4096 bits (512 bytes). -On high speed half-duplex gigabit links (which are rare!), frame bursting is -a technique to allow several small data frames to be transmitted at the same -time: one frame is sent regularly to capture the channel, then up to 65536 -bit times of short non-carrier extended (only IFG) frames are sent, then -a single last regular frame is sent. - -Phrases -========= - -Auto-negotiation - Optional protocol for direct links (eg, from switch to switch) to - determine network speed. Can be reinitiated by dropping and restarting - the link. - -802.1 - IEEE working group for higher level networking. - -802.2 - IEEE working group for "logical link control" (LLC), which is related - to the type/length frame field. - -802.3 - For _`CSMA/CD` LANs - -802.5 - For Token Ring LANs - -CSMA/CD Protocol - Stands for Carrier Sense Multiple Access/Collision Detect. The two main - implementations are DIX (DEC-Intel-Xerox) and IEEE. (Can't remember how - this works...) - -VLAN - Optional 4-byte field in between "source" and "type" fields. The first - two bytes are a valid type field; this increases the max length to - 1522 bits. Only used by switches. - -Channel Capture - This phenomena is a result of _collision management. After a few - sequential collisions, the device that ultimately transmits first gets - its backoff reset to zero, while all other devices retain a high backoff; - this means the first device is much much more likely to retransmit again - faster than any of the others, and if it has a lot of frames to send it - will dominate the carrier until it is done transmitting. - -Jabber - When a broken station/device keeps a carrier open and prevents other - transmissions. - -PAUSE - A PAUSE frame is a MAC control (higher level, type 0x8808) frame which - causes switches to stop for up to 65536 slot times to allow a switch or - station to clear its buffers. - -.. [oreilly] `Ethernet: The Definitive Guide`:title:, by Charles Spurgeon. - O'Reilly, 2000 diff --git a/microcontrollers.page b/microcontrollers.page deleted file mode 100644 index 6753487..0000000 --- a/microcontrollers.page +++ /dev/null @@ -1,31 +0,0 @@ -=================== -Microcontrollers -=================== - -LISPs on MCUs --------------- - -See also: article on extremely small interpreters for code density. - -Hedgehog (http://hedgehog.oliotalo.fi/) is a variant of LISP for embedded chips -released under a BSD (library) and LGPL (tools) license. It has some debugging -tools and can run on x86 as well for development. The model is to compile -bytecode on a development machine and execute it on the MCU; there is no REPL -on the device itself. Developed and maintained by a Finish company (.fi TLD?) -mostly for use distibuting new bytecode programs. Implementation is well -documented. - -PICBIT is one of a series (BIT and PICOBIT) of Scheme implementations for very -small (few kb RAM) chips. Code is compiled to bytecode on a development machine -and run/interpreted on the device. This is a mature academic project; there are -a couple papers which summarize the approach and design decisions. - -ARMPIT Scheme (http://armpit.sourceforge.net/) is a full embeded Scheme -environment for ARM MCUs (including Cortex-M3s). It is an active project -written in - -"L" is a Common LISP implementation for embedded MCUs with about a MB of RAM; -it was an MIT AI Lab project. A real time operating system written in C (VENUS) -runs on the metal and an L framework called MARS coordinates message/event -handling between multiple agents. It was written for robotic research. - diff --git a/networking/dns.page b/networking/dns.page new file mode 100644 index 0000000..dcda2fd --- /dev/null +++ b/networking/dns.page @@ -0,0 +1,15 @@ + +Recommendation Tools +---------------------- +http://domai.nr/ + +http://impossibility.org/ + +Registrars +------------ + +http://1984.is + +http://name.com + +http://gandi.net diff --git a/networking/ethernet.page b/networking/ethernet.page new file mode 100644 index 0000000..d455f21 --- /dev/null +++ b/networking/ethernet.page @@ -0,0 +1,154 @@ +--- +format: rst +categories: cs +toc: no +... + +======== +Ethernet +======== +:Author: Bryan Newbold + +.. contents:: + +History +======= +Bob Metcalfe first described the ethernet system in a memo while working at the +Xerox Palo Alto Research Center in 1973 ([oreilly]_). It was based on the +earlier *Aloha* system developed by Norman Abramson at the University of +Hawaii. *Aloha* was a radio network for inter-island communications. + +Structure +========= + +Data Frames +~~~~~~~~~~~ +The frame format is the same for ethernet systems of any speed. + +==================== =========== +Section Size (bits) +==================== =========== +Preamble 64 +Destination Address 48 +Source Address 48 +Type Length 16 +Data 46 to 1500 +Checksum 32 +==================== =========== + +.. topic:: Preamble + + The preamble originally served as a "warm up" period for hardware to + stabilize and prepare for the rest of the frame. + + The last 8 bits are the preamble are a particular "start frame delimiter" + pattern to help hardware notice the beginning of signal transmission. + +.. topic:: Source and Destination addresses + + Manufacturers are given a 24 bit id (first half), and are expected to + ensure the uniqueness of the second half of each device's address. + + If the first bit of the destination is high (1), the destination is + multicast; if low (0), then unicast. Under IEEE, if the second bit is high, + global administration rules should be followed, and if low, local + administration rules should be followed. + + The IEEE-SA (Standards Association) delegates addresses. + +.. topic:: Checksum + + The checksum (or Frame Check Sequence) is a Cyclic Redundancy Checksum. + +Inter-Frame Gap +~~~~~~~~~~~~~~~~~ +The Inter-Frame Gap (IFG) is a pause in between signal frames; it is 96 +bit-times long. + +.. _collision: + +Collisions +============= +Collision management is the heart of Ethernet; a collision occurs when two +devices try to transmit at the same time and their signals overlap and the +transmission is unreadable. This problem is made worse the further apart +stations are because it takes longer for signal fronts to propagate, so there +is a longer overlap period when the first device has started transmitting but +the second hasn't noticed and may start transmitting on its own. The network +size (in distance, not nodes) is determined by the maximum collision period +(also called slot time). This period is 512 bit-times, so usually the faster a +network is, the smaller it should be (in distance); at gigabit speeds the +slot is expanded, see Speeds_. + +Under Ethernet, if any device detects a collision, it sends out a 32 bit +"collision enforcement jam signal" to ensure that all devices notice the +collision. Then each device that wishes to transmit waits a random amount of +bit-times r before transmitting again. If there is another collision, a new +r is randomly chosen with a larger maximum; up to 15 retries are allowed before +the devices will give up and drop the frame. The constraints for the random +backoff time r are `$0\leq r \leq 2^k$`:latex:, where r is in bit times and +k is the number of retry attempts up to 10 (for 11th to 15th retries, use +k=10). + +Speeds +========= +At 10mb, bit time is 100ns (nano-seconds); at 100mb, 10ns; at 1gb, 1ns. + +At gigabit speeds, the slot time would limit network size to 20 meters, so +it gets padded with a null "carrier extension" signal to 4096 bits (512 bytes). +On high speed half-duplex gigabit links (which are rare!), frame bursting is +a technique to allow several small data frames to be transmitted at the same +time: one frame is sent regularly to capture the channel, then up to 65536 +bit times of short non-carrier extended (only IFG) frames are sent, then +a single last regular frame is sent. + +Phrases +========= + +Auto-negotiation + Optional protocol for direct links (eg, from switch to switch) to + determine network speed. Can be reinitiated by dropping and restarting + the link. + +802.1 + IEEE working group for higher level networking. + +802.2 + IEEE working group for "logical link control" (LLC), which is related + to the type/length frame field. + +802.3 + For _`CSMA/CD` LANs + +802.5 + For Token Ring LANs + +CSMA/CD Protocol + Stands for Carrier Sense Multiple Access/Collision Detect. The two main + implementations are DIX (DEC-Intel-Xerox) and IEEE. (Can't remember how + this works...) + +VLAN + Optional 4-byte field in between "source" and "type" fields. The first + two bytes are a valid type field; this increases the max length to + 1522 bits. Only used by switches. + +Channel Capture + This phenomena is a result of _collision management. After a few + sequential collisions, the device that ultimately transmits first gets + its backoff reset to zero, while all other devices retain a high backoff; + this means the first device is much much more likely to retransmit again + faster than any of the others, and if it has a lot of frames to send it + will dominate the carrier until it is done transmitting. + +Jabber + When a broken station/device keeps a carrier open and prevents other + transmissions. + +PAUSE + A PAUSE frame is a MAC control (higher level, type 0x8808) frame which + causes switches to stop for up to 65536 slot times to allow a switch or + station to clear its buffers. + +.. [oreilly] `Ethernet: The Definitive Guide`:title:, by Charles Spurgeon. + O'Reilly, 2000 diff --git a/scratch.page b/scratch.page deleted file mode 100644 index e7e9009..0000000 --- a/scratch.page +++ /dev/null @@ -1,6 +0,0 @@ - -null webmail client -http://www.nulllogic.ca/webmail/ - -The Moon Is a Harsh Mistress by Robert A. Heinlein - diff --git a/software/misc.page b/software/misc.page index 623b6aa..6fb7918 100644 --- a/software/misc.page +++ b/software/misc.page @@ -17,3 +17,15 @@ http://code.google.com/p/semicomplete/wiki/GrokDiscovery http://txt2re.com/ +Executable Compression +----------------------- + +UPX: Ultimate Packer for Executables http://upx.sourceforge.net/ + +Webmail +------- + +the null webmail client http://www.nulllogic.ca/webmail/ + + + diff --git a/software/vim.page b/software/vim.page index 9fe5176..fb821f0 100644 --- a/software/vim.page +++ b/software/vim.page @@ -65,3 +65,9 @@ Search for trailing whitespace, or just strip it all:: /\s\+$ :%s/\s\+$// + +Links to more... +------------------ + + - `vim anti-patterns `_ + -- cgit v1.2.3