OTG USB Hub

For my silly little tablet I got this awesome usb otg hub thing. It has 3 usb ports, a microusb hole and an otg cable, you can you it to connect 3 devices to your phone or tablet and power them all at the same time.

I got this thing so I could install something other than windows on my stream 7, to do that I need power, usb storage, usb networking and io stuff all at once.

It also comes with the most mental instructions I have seen. I am trying to figure out what it says, but man, who knows. I think there was a deal on 3 postition swtiches and they put it in instead of a 2 position one.


Reading: Little Brother, Seveneves

Bookcase Pi

Last night, I drilled some holes in a book case and bricked a pi. That isn't so interesting, unless you really like holes in wood, and it leaves me at a loss what write about.

Okay, fine. I have this awesome eink screen for the pi, I got it to do something like this tide clock . I don't want single purpose things lying around, the same pi is going to be running mpd my music player of choice. It will be using the screen to show cool effects (like the thing on it now) and probably stats about things.

What things, I have no idea. Maybe: * bus times * output from the house sensors * whats playing * network uptime

See, it isn't really fleshed out yet. I do have all the code to write stuff to the screen, it took ages to get working using python, cairo and pango. Now I have holes drilled and audio cables routed through the book case, I need to get the pi up and doing music.

It is not ready yet.


Reading: Little Brother

Late night Cybering

Last night I finally read this giant interview in the Paris review with William Gibson . The interview is full of great quotes, insights and gems like Gibsons first published story .

The second part of Burning Chrome is available on iplayer about now, the first part was excellent.


It is Sunday, so that makes seven days of writing .

Reading: Little Brother, Transmetropolitan

If you are geographicaly impaired, I am sure a neighbour help you out.

Decentralise as Default

Yesterday featured a massive ddos attack against DynDNS. For me, in the north of Scotland, this meant an entire shutdown of the web. ssh and mosh connections stayed, but everything from twitter to google were unreachable.

Name discovery in decentralised networks is a really hard problem, I am not aware of any really solid solutions. There is probably a large capitalist factor involved here, you really can't centralise profits from a decentralised system.

I spent some time reading about name systems for adhoc mesh networks, before I gave up on trying to build this out. It is hard and would require a load of other people to test.

A quick search of my in brain cache returns:

mdns is probably already running on your local network, it won't scale well and certainly not to internet sizes. namecoin is something I am just sort of aware of, I think worry of blockchain buzzword bingo has stopped me looking too hard.

I would love to know about more interesting and diverse systems, if you know of any drop me a line.


Reading: Little Brother, Transmetropolitan

Mosh

I have to ssh proxy to get to my main machine, everything is filtered on the network my machine is on, apart from the ssh access box. This makes using mosh a little troublesome.

                          +-------+           
+------+                  |ssh    |          +-----------+ 
|laptop|-------ssh------->|gateway|--ssh---->|           | 
+------+<--               +-------+          |dev machine| 
           \---------mosh------------------->|           | 
                                             +-----------+

dev can only be reached via an ssh proxy, but thankfully there is an open UDP port range that works. Mosh seems to have trouble figuring out the correct ip/port pair to select in this setup, mosh is quite simple so it is easy to deal with.

Host dev
Hostname dev.domain.tld
User tj
ProxyCommand ssh -w 30 -q gateway.domain.tld nc %h 22

The mosh command is just a shell script, it sshs to the remote machine and runs mosh-server . Mosh server generates an AES session key and starts the mosh server process on the machine. mosh-client takes the session key via an environmental variable, ip address and port the server is listening on.

With that we can run mosh by hand:

[laptop] $ ssh dev
[dev] $ mosh-server
  setsockopt( IP_RECVTOS ): Invalid argument

  MOSH CONNECT 40001 pv2jeN0MJ1N4gCd1V0i21g

  mosh-server (mosh 1.2.5) [build mosh 1.2.5]
  Copyright 2012 Keith Winstein <mosh-devel@mit.edu>
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.

  [mosh-server detached, pid = 19100]

  Warning: termios IUTF8 flag not defined.
  Character-erase of multibyte character sequence
  probably does not work properly on this platform.
[dev] $ exit
[laptop] $ MOSH_KEY="pv2jeN0MJ1N4gCd1V0i21g"
[laptop] $ mosh-client 143.100.67.5 40001

Once you know how to do mosh by hand there are other things we can try. I don't think it would be impossible to work around certain types of NAT using nc. It requires a third party box, but a lot of STUN can be done with just UDP packets.


Reading: Little Brother, Transmetropolitan

I am sure I have written this down before, google couldn't find it.