Basic
Updated Feb 21, 2013, 11:04 AM
This is a basic template.
Use template
unLab‎ > ‎

Hacks

**Create a "New Post" based on this template, and edit that to suit your proposed hack**

 

Name of Hack

 

Description

Enter description here. This should be a conceptual overview, elevator-pitch style.

 

Prior Work

Enter in ideas and prior work that was done before bringing it to UnLondon c. Basically, anything that a new Hack Participant may need to know.

 

Resources

Enter in current available resources, including documentation, physical resources, software, etc

 

Enter in a list of required resources essential for completion of the project. It may also be beneficial to list which items are required to start the project.

 

Team

Enter a list of the current team members, and information on what kinds of (missing) skills are still needed on the Hack.

Enter a schedule of regular meetings for the Hack (or at the very least, the date/time of the next meeting)

Enter in contact information for the Hack Participants, outside of the meeting (twitter hashtag, forum somewhere, etc)

GFIPKVM

posted Dec 19, 2012, 3:20 AM by Wess T.   [ updated Jan 18, 2013, 10:25 PM by Wess lee ]

Description


Ghetto-Fab Internet Protocol Keyboard Video (MaybeMouse).


CONTROL ALL THE STUFF!


IDEA!


REALITY!

Items fastened to board for a quick clean layout, to prevent giving up the ghosties.


GUI - Real?! + FAKE! 


First Stream Test VLC SADFACE!

FAILURE VLC!


Last ditch effort TVTIME Video Capture Test

How are you? Quite f'n great now that I know streaming is plausible!


Test of FFServer (ffmpeg)

Stream is not stable @ 640x480 and keeps vomiting a pid error 30+ Second delay on the stream tested with FLV and ASF VLC and WMP.
USB Hub seemed to disconnect not sure whats up there but then you get this error:

/ioctl(VIDIOC_DQBUF): No such device
/dev/video0: No such device
Settings:

# Port on which the server is listening. You must select a different

# port from your standard HTTP web server if it is running on the same

# computer.

Port 8000


# Address on which the server is bound. Only useful if you have

# several network interfaces.

BindAddress 0.0.0.0


# Number of simultaneous HTTP connections that can be handled. It has

# to be defined *before* the MaxClients parameter, since it defines the

# MaxClients maximum limit.

MaxHTTPConnections 2000


# Number of simultaneous requests that can be handled. Since FFServer

# is very fast, it is more likely that you will want to leave this high

# and use MaxBandwidth, below.

MaxClients 1000


# This the maximum amount of kbit/sec that you are prepared to
# consume when streaming to clients.
MaxBandwidth 10000

# Access log file (uses standard Apache log file format)
# '-' is the standard output.
CustomLog -

# Suppress that if you want to launch ffserver as a daemon.
NoDaemon

<Feed ipkvm1.ffm>
  File /tmp/ipkvm1.ffm
  FileMaxSize 512K
  Launch ffmpeg -f video4linux2 -s 384x288 -standard NTSC -channel 1 -i /dev/video0
</Feed>

#<Stream ipkvm1.flv>
<Stream ipkvm1.asf>
  Feed ipkvm1.ffm
  #Format flv
  #VideoCodec flv
  Format asf
  VideoCodec msmpeg4
  VideoFrameRate 2
  VideoBufferSize 512
  VideoBitRate 512
  VideoQMin 1
  VideoQMax 9
  VideoSize 640x480
  PreRoll 0
  NoAudio
  AVOptionVideo flags +global_header
</Stream>

If you use -r 2 etc in the launch command it gives a frame rate error people say it has to be inline with VideoFrameRate but it didn't seem to like it still.

Test of MJPEG_Streamer


Besides the cut off text (Hardware Issue) we're getting closer and 2 Sec delay :/ but better than the 30+ Sec with ffmpeg :S


Settings:

<TeknoJuce> have to run v4l2-ctl --set-input=1 before running it

<DontGotNoSleep> :)

<TeknoJuce>  mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0 -f 2 -r 720x480 -q 100 -n -y" -o "/usr/lib/output_http.so -p 8090 -w /usr/src/mjpg-streamer/mjpg-streamer-experimental/www"


MJPG Streamer Version: svn rev: 3:172

 i: Using V4L2 device.: /dev/video0

 i: Desired Resolution: 640 x 480

 i: Frames Per Second.: 5

 i: Format............: YUV

 i: JPEG Quality......: 75

 o: www-folder-path...: /usr/src/mjpg-streamer/mjpg-streamer-experimental/www/

 o: HTTP TCP port.....: 8090

 o: username:password.: disabled

 o: commands..........: enabled


open in web browser

http://192.168.2.220:8090

open in VLC
http://192.168.2.220:8090/?action=stream


The following parameters can be passed to this plugin:

-dvideo device to open (your camera)
-rthe resolution of the video device,
can be one of the following strings:
QSIF QCIF CGA QVGA CIF VGA SVGA XGA SXGA
or a custom value like: 640×480
-fframes per second
-yenable YUYV format and disable MJPEG mode
-qJPEG compression quality in percent
(activates YUYV format, disables MJPEG)
-mdrop frames smaller then this limit, useful
if the webcam produces small-sized garbage frames
may happen under low light conditions
-ndo not initalize dynctrls of Linux-UVC driver
-lswitch the LED “on”, “off”, let it “blink” or leave
it up to the driver using the value “auto”

HTTP Output Parameters

The following parameters can be passed to this plugin:

-wfolder that contains webpages in flat hierarchy (no subfolders)
-pTCP port for this HTTP server
-cask for “username:password” on connect
-ndisable execution of commands


http://ivtvdriver.org/index.php/V4l2-ctl

 -I, --get-input    query the video input [VIDIOC_G_INPUT]
 -i, --set-input=<num>

Format    NTSC Resolution
DVD:        720x480, 704x480, 352x480, 352x240
SVCD:      480x480
VCD:         352x240

29.97fps



This will hopefully be used to remotely control our unLab servers in case of frack'd up stuff happening to them, you would be able to remotely reset or do maintenance to them.


IPKVM's are extremely expensive so we hope to thwart this fact with e-waste recycling objects from the unLab.


Team


@aabrighton
@WessleeT


Resources


Related Links
Arduino®-Leonardo USB HID Keyboard & Mouse Tutorial and Advanced Serial Port Examples | Cal-Eng : Electronics & Robotics
http://cal-eng.com/?page_id=579

Arduino UNO Mouse HID
http://hunt.net.nz/users/darran/weblog/ ... e_HID.html

arduino usb hid keyboard and mouse - Google Search
https://www.google.ca/#hl=en&tbo=d&scli ... _qf.&cad=b

Arduino USB HID Keyboard | MitchTech
http://mitchtech.net/arduino-usb-hid-keyboard/

V-USB hid-mouse example w/ atmega328p (Arduino) - YouTube
http://www.youtube.com/watch?v=dLeVEHuD7_U

Code and Life – USB HID keyboard with V-USB
http://codeandlife.com/2012/06/18/usb-h ... ith-v-usb/

Capturing video with an Arduino
http://hackaday.com/2011/06/07/capturin ... n-arduino/


Practical Arduino: Virtual USB Keyboard
http://www.practicalarduino.com/project ... b-keyboard


MT-ViKi 4 PORT USB2.0 MORE PCs SWITCH(MT-401UK)
GUANGZHOU MT-ViKI ELECTRONICS CO., LTD.
http://mt-viki.com/en/productshow.asp?i ... ITCH&lid=2

Hi Res photo of the front of the board
http://i.imgur.com/dxeYW.jpeg

Hi Res photo of the back of the board
http://i.imgur.com/rZYaP.jpeg


IP KVM Concept Picture
http://i.imgur.com/TY1yT.jpg


http://kvm.lab.unlab.ca/

http://lab.unlab.ca/~kvm/


First switch input test
http://www.youtube.com/watch?v=9GiTkjVxqAY


Circuit planing
http://upverter.com/Wess/d508215d222e92ca/GFIPKVM/


Max232 Datasheet
http://www.maximintegrated.com/datasheet/index.mvp/id/1798?utm_expid=50713806-2

Look MAA no board.

http://arduino.cc/en/Main/Standalone


OPTO

PCTOTV

http://us.kworld-global.com/main/prod_in.aspx?mnuid=1306&modid=10&prodid=31&flag=1


http://us.kworld-global.com/main/prod_print.aspx?mnuid=1306&modid=10&pcid=&ifid=&prodid=31&noframe=1


change Input 

http://ivtvdriver.org/index.php/V4l2-ctl


Streaming Links

https://www.virag.si/2012/11/streaming-live-webm-video-with-ffmpeg/

http://www.patheticcomputing.com/?p=134

http://www.ideasonboard.org/uvc/

http://ffmpeg.org/sample.html

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=66&t=11690

http://ubuntuforums.org/showthread.php?t=941332

http://nowardev.wordpress.com/ffmpeg/

http://www.linuxquestions.org/questions/linux-software-2/ffserver-ffmpeg-live-stream-from-webcam-898632/

http://jeremyblythe.blogspot.ca/2012/05/raspberry-pi-webcam.html

http://jeremyblythe.blogspot.co.uk/2012/06/battery-powered-wireless-motion.html

http://www.moreno.marzolla.name/software/linux-webcam-server/ffserver.conf

http://en.wikipedia.org/wiki/File:Vector_Video_Standards4.svg

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=26&t=7557

http://wolfpaulus.com/journal/embedded/raspberrypi_webcam


Others


http://dangerousprototypes.com/2012/07/13/nehebkau-laptop-controlled-keyboard-and-mouse-emulator/

http://www.youtube.com/watch?v=uRX0OwWjKXA&list=PL116AECDF799B004C&index=2&playnext=15&feature=autoplay

http://www.vishay.com/docs/83725/4n25.pdf

http://www.analog.com/library/analogDialogue/Anniversary/12.html

http://www.epanorama.net/documents/groundloop/in_circuit.html

http://www.blake-foster.com/project.php?p=44

http://stackoverflow.com/questions/12682429/generic-keyboard-emulation-using-arduino-leonardo

http://mysideprojectsnsuch.blogspot.ca/2012/06/arduino-as-rfid-to-hid-text-input.html

http://academic.cleardefinition.com/2012/07/31/using-dfu-programmer-with-an-arduino-uno-r3/

http://arduino.cc/en/Reference/SoftwareSerial

https://www.sparkfun.com/news/1004

https://github.com/SFE-Chris/UNO-HIDKeyboard-Library

http://www.atmel.com/tools/FLIP.aspx

http://www.statman.info/conversions/hexadecimal.html

https://code.google.com/p/unojoy/downloads/list

http://pbambridge.brunelweb.net/blog/?p=1

https://gist.github.com/1962067

http://sourceforge.net/projects/dfu-programmer/?source=dlp

http://mitchtech.net/arduino-usb-hid-keyboard/

http://arduino.cc/forum/index.php?topic=92148.0

http://hunt.net.nz/users/darran/weblog/b3029/Arduino_UNO_Keyboard_HID_version_03.html

http://arduino.cc/forum/index.php?action=printpage;topic=134078.0

http://electronics.stackexchange.com/questions/42584/arduino-uno-weird-characters-sent-to-com-softwareserial

http://www.futurlec.com/Maxim/MAX232EPEa.shtml

http://chuckontech.com/?p=147

http://pbambridge.brunelweb.net/blog/?p=13

http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/translate.pdf


RS232 Pinout



Maxim MAX232


USB HID STANDARDS 
Universal Serial Bus HID Usage Tables 53

10 Keyboard/Keypad Page (0x07)


This section is the Usage Page for key codes to be used in implementing a USB keyboard. A Boot Keyboard

(84-, 101- or 104-key) should at a minimum support all associated usage codes as indicated in the “Boot”

column below.

The usage type of all key codes is Selectors (Sel), except for the modifier keys Keyboard Left Control

(0x224) to Keyboard Right GUI (0x231) which are Dynamic Flags (DV).

A general note on Usages and languages: Due to the variation of keyboards from language

Note

to language, it is not feasible to specify exact key mappings for every language. Where this list is not

specific for a key function in a language, the closest equivalent key position should be used, so that a

keyboard may be modified for a different language by simply printing different keycaps. One example

is the Y key on a North American keyboard. In Germany this is typically Z. Rather than changing the

keyboard firmware to put the Z Usage into that place in the descriptor list, the vendor should use the Y

Usage on both the North American and German keyboards. This continues to be the existing practice in

the industry, in order to minimize the number of changes to the electronics to accommodate other

languages.

Table 12: Keyboard/Keypad Page

Usage ID(Dec) / Usage ID(Hex) / Usage Name / Ref: Typical AT-101 Position / PC-AT / Mac / UNIX / Boot

0 00 Reserved (no event indicated)9 N/A √ √ √ 4/101/104

1 01 Keyboard ErrorRollOver9 N/A √ √ √ 4/101/104

2 02 Keyboard POSTFail9 N/A √ √ √ 4/101/104

3 03 Keyboard ErrorUndefined9 N/A √ √ √ 4/101/104

4 04 Keyboard a and A4 31 √ √ √ 4/101/104

5 05 Keyboard b and B 50 √ √ √ 4/101/104

6 06 Keyboard c and C4 48 √ √ √ 4/101/104

7 07 Keyboard d and D 33 √ √ √ 4/101/104

8 08 Keyboard e and E 19 √ √ √ 4/101/104

9 09 Keyboard f and F 34 √ √ √ 4/101/104

10 0A Keyboard g and G 35 √ √ √ 4/101/104

11 0B Keyboard h and H 36 √ √ √ 4/101/104

12 0C Keyboard i and I 24 √ √ √ 4/101/104

13 0D Keyboard j and J 37 √ √ √ 4/101/104

14 0E Keyboard k and K 38 √ √ √ 4/101/104

15 0F Keyboard l and L 39 √ √ √ 4/101/104

16 10 Keyboard m and M4 52 √ √ √ 4/101/104

17 11 Keyboard n and N 51 √ √ √ 4/101/104

18 12 Keyboard o and O4 25 √ √ √ 4/101/104

19 13 Keyboard p and P4 26 √ √ √ 4/101/104

20 14 Keyboard q and Q4 17 √ √ √ 4/101/104

21 15 Keyboard r and R 20 √ √ √ 4/101/104

22 16 Keyboard s and S4 32 √ √ √ 4/101/104

23 17 Keyboard t and T 21 √ √ √ 4/101/104

24 18 Keyboard u and U 23 √ √ √ 4/101/104

25 19 Keyboard v and V 49 √ √ √ 4/101/104

26 1A Keyboard w and W 4 18 √ √ √ 4/101/104

27 1B Keyboard x and X4 47 √ √ √ 4/101/104

28 1C Keyboard y and Y4 22 √ √ √ 4/101/104

29 1D Keyboard z and Z4 46 √ √ √ 4/101/104

30 1E Keyboard 1 and !4 2 √ √ √ 4/101/104

31 1F Keyboard 2 and @4 3 √ √ √ 4/101/104

32 20 Keyboard 3 and #4 4 √ √ √ 4/101/104

33 21 Keyboard 4 and $4 5 √ √ √ 4/101/104

34 22 Keyboard 5 and %4 6 √ √ √ 4/101/104

35 23 Keyboard 6 and ^4 7 √ √ √ 4/101/104

36 24 Keyboard 7 and &4 8 √ √ √ 4/101/104

37 25 Keyboard 8 and *4 9 √ √ √ 4/101/104

38 26 Keyboard 9 and (4 10 √ √ √ 4/101/104

39 27 Keyboard 0 and )4 11 √ √ √ 4/101/104

40 28 Keyboard Return (ENTER)5 43 √ √ √ 4/101/104

41 29 Keyboard ESCAPE 110 √ √ √ 4/101/104

42 2A Keyboard DELETE (Backspace)13 15 √ √ √ 4/101/104

43 2B Keyboard Tab 16 √ √ √ 4/101/104

44 2C Keyboard Spacebar 61 √ √ √ 4/101/104

45 2D Keyboard - and (underscore)4 12 √ √ √ 4/101/104

46 2E Keyboard = and +4 13 √ √ √ 4/101/104

47 2F Keyboard [ and {4 27 √ √ √ 4/101/104

48 30 Keyboard ] and }4 28 √ √ √ 4/101/104

49 31 Keyboard \ and | 29 √ √ √ 4/101/104

50 32 Keyboard Non-US # and ~2 42 √ √ √ 4/101/104

51 33 Keyboard ; and :4 40 √ √ √ 4/101/104

52 34 Keyboard ‘ and “4 41 √ √ √ 4/101/104

53 35 Keyboard Grave Accent and Tilde4 1 √ √ √ 4/101/104

54 36 Keyboard, and <4 53 √ √ √ 4/101/104

55 37 Keyboard . and >4 54 √ √ √ 4/101/104

56 38 Keyboard / and ?4 55 √ √ √ 4/101/104

57 39 Keyboard Caps Lock11 30 √ √ √ 4/101/104

58 3A Keyboard F1 112 √ √ √ 4/101/104

59 3B Keyboard F2 113 √ √ √ 4/101/104

60 3C Keyboard F3 114 √ √ √ 4/101/104

61 3D Keyboard F4 115 √ √ √ 4/101/104

62 3E Keyboard F5 116 √ √ √ 4/101/104

63 3F Keyboard F6 117 √ √ √ 4/101/104

64 40 Keyboard F7 118 √ √ √ 4/101/104

65 41 Keyboard F8 119 √ √ √ 4/101/104

66 42 Keyboard F9 120 √ √ √ 4/101/104

67 43 Keyboard F10 121 √ √ √ 4/101/104

68 44 Keyboard F11 122 √ √ √ 101/104

69 45 Keyboard F12 123 √ √ √ 101/104

70 46 Keyboard PrintScreen1 124 √ √ √ 101/104

71 47 Keyboard Scroll Lock11 125 √ √ √ 4/101/104

72 48 Keyboard Pause1 126 √ √ √ 101/104

73 49 Keyboard Insert1 75 √ √ √ 101/104

74 4A Keyboard Home1 80 √ √ √ 101/104

75 4B Keyboard PageUp1 85 √ √ √ 101/104

76 4C Keyboard Delete Forward1;14 76 √ √ √ 101/104

77 4D Keyboard End1 81 √ √ √ 101/104

78 4E Keyboard PageDown1 86 √ √ √ 101/104

79 4F Keyboard RightArrow1 89 √ √ √ 101/104

80 50 Keyboard LeftArrow1 79 √ √ √ 101/104

81 51 Keyboard DownArrow1 84 √ √ √ 101/104

82 52 Keyboard UpArrow1 83 √ √ √ 101/104

83 53 Keypad Num Lock and Clear11 0 √ √ √ 101/104

84 54 Keypad /1 95 √ √ √ 101/104

85 55 Keypad * 100 √ √ √ 4/101/104

86 56 Keypad - 105 √ √ √ 4/101/104

87 57 Keypad + 106 √ √ √ 4/101/104

88 58 Keypad ENTER5 108 √ √ √ 101/104

89 59 Keypad 1 and End 93 √ √ √ 4/101/104

90 5A Keypad 2 and Down Arrow 98 √ √ √ 4/101/104

91 5B Keypad 3 and PageDn 103 √ √ √ 4/101/104

92 5C Keypad 4 and Left Arrow 92 √ √ √ 4/101/104

93 5D Keypad 5 97 √ √ √ 4/101/104

94 5E Keypad 6 and Right Arrow 102 √ √ √ 4/101/104

95 5F Keypad 7 and Home 91 √ √ √ 4/101/104

96 60 Keypad 8 and Up Arrow 96 √ √ √ 4/101/104

97 61 Keypad 9 and PageUp 101 √ √ √ 4/101/104

98 62 Keypad 0 and Insert 99 √ √ √ 4/101/104

99 63 Keypad . and Delete 104 √ √ √ 4/101/104

100 64 Keyboard Non-US \ and |3;6 45 √ √ 101 65 Keyboard Application10 129 √ 102 66 Keyboard Power9 √ 103 67 Keypad = √ 104 68 Keyboard F13 √ 105 69 Keyboard F14 √ 106 6A Keyboard F15 √ 107 6B Keyboard F16 108 6C Keyboard F17 109 6D Keyboard F18 110 6E Keyboard F19 111 6F Keyboard F20 112 70 Keyboard F21 113 71 Keyboard F22 114 72 Keyboard F23 115 73 Keyboard F24 116 74 Keyboard Execute √

117 75 Keyboard Help √

118 76 Keyboard Menu √

119 77 Keyboard Select √

120 78 Keyboard Stop √

121 79 Keyboard Again √

122 7A Keyboard Undo √

123 7B Keyboard Cut √

124 7C Keyboard Copy √

125 7D Keyboard Paste √

126 7E Keyboard Find √

127 7F Keyboard Mute √

128 80 Keyboard Volume Up √

129 81 Keyboard Volume Down √

130 82 Keyboard Locking Caps Lock12 √

131 83 Keyboard Locking Num Lock12 √

132 84 Keyboard Locking Scroll Lock12 

133 85 Keypad Comma27 

134 86 Keypad Equal Sign29 

135 87 Keyboard International115,28

136 88 89 8A 8B Keyboard International519

140 8C Keyboard International620

141 8D Keyboard International721

142 8E Keyboard International822

143 8F Keyboard International922

144 90 Keyboard LANG125

145 91 Keyboard LANG226

146 92 Keyboard LANG330

147 93 Keyboard LANG431

148 94 Keyboard LANG532

149 95 Keyboard LANG68

150 96 Keyboard LANG78

151 97 Keyboard LANG88

152 98 Keyboard LANG98

153 99 Keyboard Alternate Erase7

154 9A Keyboard SysReq/Attention1

155 9B Keyboard Cancel

156 9C Keyboard Clear

157 9D Keyboard Prior

158 9E Keyboard Return

159 9F Keyboard Separator

160 A0 Keyboard Out

161 A1 Keyboard Oper

162 A2 Keyboard Clear/Again

163 A3 Keyboard CrSel/Props

164 A4 Keyboard ExSel

165-175 A5-CF 

Boot

Keyboard International418

139 

PC- Ma UNI

AT c X

Keyboard International317

138 

Ref: Typical AT-101

Position

Keyboard International216

137 

57

Reserved

176 B0 Keypad 00

177 B1 Keypad 000

178 B2 Thousands Separator 33

179 B3 Decimal Separator 33

180 B4 Currency Unit 34

181 B5 Currency Sub-unit 34

182 B6 

56

Keypad (

183 B7 B8 B9 Keypad }

186 BA Keypad Tab

187 BB Keypad Backspace

188 BC Keypad A

189 BD Keypad B

190 BE Keypad C

191 BF Keypad D

192 C0 Keypad E

193 C1 Keypad F

194 C2 Keypad XOR

195 C3 Keypad ^

196 C4 Keypad %

197 C5 

Boot

Keypad {

185 

PC- Ma UNI

AT c X

Keypad )

184 

Ref: Typical AT-101

Position

Keypad <

198 C6 Keypad >

199 C7 Keypad &

200 C8 Keypad &&

201 C9 Keypad |

202 CA Keypad ||

203 CB Keypad :

204 CC Keypad #

205 CD Keypad Space

206 CE Keypad @

207 CF Keypad !

208 D0 Keypad Memory Store

209 D1 Keypad Memory Recall

210 D2 Keypad Memory Clear

211 D3 Keypad Memory Add

212 D4 Keypad Memory Subtract

213 D5 Keypad Memory Multiply

214 D6 Keypad Memory Divide

215 D7 Keypad +/-

216 D8 Keypad Clear

217 D9 Keypad Clear Entry

218 DA Keypad Binary

219 DB Keypad Octal

220 DC Keypad Decimal

221 DD 222-223 DE-DF 224 E0 Keyboard LeftControl

225 E1 226 E2 227 228 

59

Ref: Typical AT-101

Position

PC- Ma UNI

AT c X

Boot

Keypad Hexadecimal

Reserved

58 √ √ √ 4/101/104

Keyboard LeftShift 44 √ √ √ 4/101/104

Keyboard LeftAlt 60 √ √ √ 4/101/104

E3 Keyboard Left GUI10;23 127 √ √ √

E4 Keyboard RightControl 64 √ √ √ 101/104

104

229 E5 Keyboard RightShift 57 √ √ √ 4/101/104

230 E6 Keyboard RightAlt 62 √ √ √ 101/104

231 E7 Keyboard Right GUI10;24 128 √ √ √

232-65535 E8-FFFF

104 Reserved


Footnotes 1-15, 20-34

1 Usage of keys is not modified by the state of the Control, Alt, Shift or Num Lock keys. That is, a key does not send extra

 codes to compensate for the state of any Control, Alt, Shift or Num Lock keys.

2 Typical language mappings: US: \| Belg: μ`£ FrCa: <}> Dan:’* Dutch: <> Fren:*μ Ger: #’ Ital: ù§ LatAm: }`] Nor:,* Span: }Ç Swed: ,* Swiss: $£ UK: #~.

3 Typical language mappings: Belg:<\> FrCa:«°» Dan:<\> Dutch:]|[ Fren:<> Ger:<|> Ital:<> LatAm:<> Nor:<> Span:<> Swed:<|> Swiss:<\> UK:\| Brazil: \|.

4 Typically remapped for other languages in the host system.

5 Keyboard Enter and Keypad Enter generate different Usage codes.

6 Typically near the Left-Shift key in AT-102 implementations.

7 Example, Erase-EazeTM key.

8 Reserved for language-specific functions, such as Front End Processors and Input Method Editors.

9 Reserved for typical keyboard status or keyboard errors. Sent as a member of the keyboard array. Not a physical key.

10 Windows key for Windows 95, and “Compose.”

11 Implemented as a non-locking key; sent as member of an array.

12 Implemented as a locking key; sent as a toggle button. Available for legacy support; however, most systems should use the non-locking version of this key.

13 Backs up the cursor one position, deleting a character as it goes.

14 Deletes one character without changing position.

15-20 See additional foot notes below.

21 Toggle Double-Byte/Single-Byte mode.

22 Undefined, available for other Front End Language Processors.

23 Windowing environment key, examples are Microsoft Left Win key, Mac Left Apple key, Sun Left Meta key

24 Windowing environment key, examples are Microsoft RIGHT WIN key, Macintosh RIGHT APPLE key, Sun RIGHT META key.

25 Hangul/English toggle key. This usage is used as an input method editor control key on a Korean language keyboard.

26 Hanja conversion key. This usage is used as an input method editor control key on a Korean language keyboard.

27 Keypad Comma is the appropriate usage for the Brazilian keypad period (.) key. This represents the closest possible match, and system software should do the correct mapping based on the current locale setting.

28 Keyboard International1 should be identified via footnote as the appropriate usage for the Brazilian forward-slash (/) and question-mark (?) key. This usage should also be renamed to either "Keyboard Non-US / and ?" or to "Keyboard

 International1" now that it's become clear that it does not only apply to Kanji keyboards anymore. Version 1.11 June 27, 200160 Universal Serial Bus HID Usage Tables

29 Used on AS/400 keyboards.

30 Defines the Katakana key for Japanese USB word-processing keyboards.

31 Defines the Hiragana key for Japanese USB word-processing keyboards.

32 Usage 0x94 (Keyboard LANG5) "Defines the Zenkaku/Hankaku key for Japanese USB word-processing keyboards.

33 The symbol displayed will depend on the current locale settings of the operating system. For example, the US thousands separator would be a comma, and the decimal separator would be a period.

34 The symbol displayed will depend on the current locale settings of the operating system. For example the US currency unit would be $ and the sub-unit would be ¢.

 

Prior Work


(this is a 
dramatic reenactment of prior events in IRC #unLondon names are changed to protect the innocents)

<DontGotNoProxy> I WANT TO MAKE A IPKVM SO I DONT HAVE TO BIKE INTO THE LAB FROM BYRON WHEN I FuX0r'd STUFF UP IN THE UNLAB REMOTELY!

<DontGotNoProxy> like this: http://okvm.sourceforge.net/kvmoverip.html

<TeknoJuce> HMM project is dead and propriatry company has taken over and is now selling these devices for $345 for 1 computer OMFGosh...

<DontGotNoProxy> CAN WE BUILD ONE PLEASE MOM!?

<TeknoJuce> *LIGHTBULB MOMENT ALERT* I have an conceptual idea... BLAH BLAH BLAH...

<DontGotNoProxy>I Have no idea what you are talking about.

<TeknoJuce> Let me draw it out for you. /me flips out his jackknife of MSPAINT.exe skillz.

</END OF DRAMA!>


<Start of real conversastion>

<ekiMmI> suup

<DontGotNoProxy> pushing TeknoJuce to dump his mind on the IP KVM for me

<DontGotNoProxy> he thinks we cna repurpuse my KVM Switch into an IP KVM using his board

*hour passes...

<DontGotNoProxy> TeknoJuce, finished painting?

*6 hours later... 5AM...

<TeknoJuce> you're going to love my nuts

.<.TeknoJuce.>.. only 164MB!
.<.TeknoJuce.>.. it's a steal
.<.TeknoJuce.>.. http://i.imgur.com/TY1yT.jpg
.<.TeknoJuce.>.. compression killed the text a bit but if you zoom way in you will be able to make it out

<TeknoJuce> now theres two stumbling blocks here one is we need to program up some code to capture and send KM input via serial

<TeknoJuce> second program up some code on the uC to take that serial data and then convert it to the usb hid device and send input "key up" etc

<TeknoJuce> if we get that far then we can make a certain keycombo or a button on the pc code to switch input as well

<TeknoJuce> this is all relying on two failure points one that what every hid code we generate on the uC the kvm wont mangle it and have no idea what to do with it while the computer boots

<TeknoJuce> ie maybe this way only works in os not bios level etc

<TeknoJuce> which is pointless

<TeknoJuce> the second failure point is the vga converter maybe it vomits if the computers res are to high or something F's up when it switches input and it needs to be reset or something st00pid who knows how china built it

<TeknoJuce> but thats the easiest hack I could come up with, with using the stuff we may or may not have on hand

<TeknoJuce> the other thing is sure WOL may work to turn the computer on if its off but what if the computer is bsod or kernel panic'd Ideally we could make some hacky remote power switches

<TeknoJuce> but they would have to be installed in each unit and a wire running from there to our uC

<TeknoJuce> also not sure how the delay is going to be, between the video and input as to maybe making it impossible to hit bios options etc

<TeknoJuce> maybe replace the hackbox10 and uC with a RasPi as well as future thinking

<TeknoJuce> and hack together another capture device that can maybe handle vga capture so you dont have to do the svideo conversion part as well

<TeknoJuce> wonder if you could hack apart a usb camera and feed it vga instead of it pulling from the ccd

<TeknoJuce> or for now just point the camera at the lcd :P

<AaronBNC> Kernel panic we can set to auto restart

<AaronBNC> Why do we gave to use serial for km, can we use usb?  And I'll figure out a zero delay video even if it's choppy as hell do to the buffer

<AaronBNC> Ok I see why disk

<AaronBNC> Disk

<AaronBNC>  serial

<AaronBNC> So what happened to ur board....said fuck it use arduino?

<DontGotNoProxy> http://mt-viki.com/en/productshow.asp?id=333&bigclass_id=KVM%20Series&smallclass_id=USB%20KVM%20SWITCH&lid=2
<unLabBot> ~ GUANGZHOU MT-ViKI ELECTRONICS CO., LTD.
<NonaSuomy> HMM why do they have a printer stuck in the usb line
<DontGotNoProxy> there are three usb ports
<DontGotNoProxy> it also acts a usb hub
<NonaSuomy> DontGotNoProxy, the pictures in my layout were just for ref
<NonaSuomy> doesnt have to be an arduino
<NonaSuomy> thats why I just put microcontroller above it for the label
<NonaSuomy> I just used it becuase it had all the pins labelled
<NonaSuomy> made it easier for me to just paste in there
<NonaSuomy> I say we start simple first and see where we get with what we have first
<NonaSuomy> also the serial is used for input because something needs to talk to the arduino to tell it what the frack to output
<DontGotNoProxy> yah, i gathered that..
<NonaSuomy> and it only has one usb port which we are using for the km emu

CHAPTER 2: Forcing the hand of DontGotNoProxy to get something done by throwing code at him so he shuts up.

<DontGotNoProxy> so how do we get this kvm working
<TeknoJuce> what does it matter until we have all the parts together?
<DontGotNoProxy> so we can get all the parts toegherer ..
<DontGotNoProxy> tsk tsk
<DontGotNoProxy> and maybe start doing some of the programming
<DontGotNoProxy> i was all set to write the ardiuno code today lol
<TeknoJuce> unless you have the part you cant do the brogramming
<DontGotNoProxy> you can do a good portion of it
<DontGotNoProxy> just cant test it
<DontGotNoProxy> the logic will all be the same ... regardless if we have to change the name of a few things later
<TeknoJuce> nah as say you download the ide and its the wrong version to operate that model of arduino then you have to backtrack and redue everything
<DontGotNoProxy> the logic will all be the same
<TeknoJuce> your logic is never the same
* jrockjiggz (~jrockjigg@184.151.61.242) has joined #unlondon
<TeknoJuce> you really need the board there to get a grasp on how it works
<DontGotNoProxy> nah i think i get it
<DontGotNoProxy> spent all day looking at arduino code
* TeknoJuce laughs in your general direction.
* DontGotNoProxy slaps TeknoJuce 
* TeknoJuce keeps laughing and starts to point...
* DontGotNoProxy cuts you
<TeknoJuce> if you want to start on something figure out the pc side
<TeknoJuce> how are we going to capture keyboard and mouse to send via serial to the arduino
<DontGotNoProxy> well how do we want to send it over serial?
<DontGotNoProxy> just ASCII?
<TeknoJuce> yup
<DontGotNoProxy> how do we differeniate when one letter comes threw etc?
<TeknoJuce> but we should code something that isnt platform dependant
<DontGotNoProxy> how do we cut it off after each keypress
<DontGotNoProxy> fuck java
<azend> yay java :)
* jrockjiggz has quit (Ping timeout: 252 seconds)
<azend> python is platform independant
<azend> mostly
<DontGotNoProxy> god
<DontGotNoProxy> good
<DontGotNoProxy> so is php
<DontGotNoProxy> anyways
<TeknoJuce> azend how would you go about capturing keyboard/mouse to send over serial?
<azend> it runs on any platform
<azend> I don't think you can capture
<azend> only send
<TeknoJuce> omg fail azend
<DontGotNoProxy> right now im trying to dtermine the protocol
<TeknoJuce> so we will be ignoring azend now
<DontGotNoProxy> i already have a million ways we can capture
<azend> :P
<DontGotNoProxy> but we need a program to send it over serail... what protocol we gonna use how we gonna seperate key presses send key combos etc...
<azend> ah that's what you're talking about
<TeknoJuce> ok which one of the million
<azend> I thought as a usb guest device
<azend> like from the arduino
<TeknoJuce> there is only one protocol with serial and that is serial
<DontGotNoProxy> Ajax...
<DontGotNoProxy> Java applet
<DontGotNoProxy> client
<DontGotNoProxy> with socks connection
<azend> you could do that with pretty much anything
<azend> python + pygame
<DontGotNoProxy> we could tlak to Loogie to figure out how his websocks is going
<azend> autoit
<DontGotNoProxy> TeknoJuce,
<DontGotNoProxy> how are we gonna send keypresses
<DontGotNoProxy> and how are they divided
<DontGotNoProxy> so it doesnt capture multiple characters at once
<TeknoJuce> i was thinking it would be great if the box its plugged into was operated maybe via web control
<azend> http://stackoverflow.com/questions/676713/is-there-a-cross-platform-python-low-level-api-to-capture-or-generate-keyboard-e
<unLabBot> ~ Is there a cross-platform python low-level API to capture or generate keyboard events?  Stack Overflow
<TeknoJuce> thats what I meant by platform independant
<DontGotNoProxy> its going to be web browser based
<DontGotNoProxy> lets just leave it at that ok
<TeknoJuce> yeah thats what i meant dingle berries
<DontGotNoProxy> i can build that no problem
<TeknoJuce> k lets see it
<DontGotNoProxy> live jpeg stream of the capture
<DontGotNoProxy> with javascript polling the keystrokes as well as x/y of mouse clicks
<TeknoJuce> k go!
<DontGotNoProxy> and we can use loogie's websocks to send the data
<TeknoJuce> are you done yet?
<DontGotNoProxy> but how are we goign to on the other end send the data over serial
<DontGotNoProxy> how is gonna be interpretted
<TeknoJuce> !g javascript send serial data
<unLabBot> 57,800,000 results | communication - Sending data to serial port using javascript and ... @ http://stackoverflow.com/questions/11096857/sending-data-to-serial-port-using-javascript-and-jssc-jar | How to send data to COM PORT using JAVA? - Stack Overflow @ http://stackoverflow.com/questions/900950/how-to-send-data-to-com-port-using-java | javascript - how to send and receive data to
<unLabBot> serial port or USB port in @ http://stackoverflow.com/questions/12543874/how-to-send-and-receive-data-to-serial-port-or-usb-port-in-asp-net | Serial to Browser using node.js | code, circuits, & construction @ http://www.tigoe.com/pcomp/code/arduinowiring/1096/ | How to transfer binary data through serial port on Javascript @
<unLabBot> http://strokescribe.com/en/serial-port-javascript-binary-data-transfer.html
<DontGotNoProxy> no
<DontGotNoProxy> it'll be sent on the server side
<DontGotNoProxy> from a php or python or java program
<DontGotNoProxy> that recieves the data via the websocks
<TeknoJuce> we will just plug the serial port on the vmbox
<DontGotNoProxy> nah
<TeknoJuce> then the webserver can operate directly with it
<DontGotNoProxy> we'll have a dedicated box for the IPKVM
<DontGotNoProxy> just grab one of ur cluster nodes
<TeknoJuce> nah
<DontGotNoProxy> the IP KVM is meant to control the vmbox
<DontGotNoProxy> so .. its kinda useless if its running on it, as it has to be only to work
<TeknoJuce> yeah but I am just talking about getting shit done right now!
<TeknoJuce> we can move it off the web box after
<DontGotNoProxy> ok
<DontGotNoProxy> sothis is all fine and dandy
<DontGotNoProxy> how am i gonna send stuff over the serial?
<azend> javascript -> socket.io -> node.js -> serial
<DontGotNoProxy> i can send strings
<DontGotNoProxy> i can send individual characters
<DontGotNoProxy> but how does it determine the difference?
<TeknoJuce> you get so obsessed with building a machine that nothing actually gets done as the machine is the least of our worries ya know?
<TeknoJuce> see now azend is actually thinking...
<DontGotNoProxy> IM ALL GOOD TO GO BUT I NEED KNOW DAHHHHHH HOW TO SEND IT OVER THE SERIAL ... not how to interface wit hserial, i know that .. but how is the arduino gonna pick up A.B.C.D versus "ABCD"
<azend> TeknoJuce: I just didn't know what you were talking about
<azend> I was thinking about capturing keypresses as a usb hid device
<TeknoJuce> oh so you are just like DontGotNoProxy you start talking before your brain hits the paper
<TeknoJuce> ;)
<TeknoJuce> DontGotNoProxy, just do a delimiter betwwen keyboar and mouse
<DontGotNoProxy> the bald man needs his haircut
<TeknoJuce> for now
<azend> DontGotNoProxy: learn bytes
<TeknoJuce> we can figure out the details later
<DontGotNoProxy> pooo
<TeknoJuce> or listen to azend
<azend> in C, strings are only char arrays
<DontGotNoProxy> i dont think u guys understand what im saying
<TeknoJuce> azend you have to realize DontGotNoProxy doesnt like to learn anything new. which really limits him actually getting anything done as he will just keep saying he just wants to use php
<azend> I wonder how arduino handles a malloc call
<azend> TeknoJuce: lol
<azend> You're so right
<azend> php would be a nightmare for this
<azend> well maybe not
<azend> extensive use of sessions though
<DontGotNoProxy> in serial... its a constant stream of ASCII characters... . we want each key press seperated and sent over the hid seperately.. so how does the arduino no when a keypress is up ... vs listening to an entire string get sent threw the serial
<azend> for serial handles
<azend> convert the keypress to ascii
<azend> parse ascii
<DontGotNoProxy> so the arduino will wait for individual ASCII characters and parse each one as it comes in?
<TeknoJuce> DontGotNoProxy, you would have to poll
<DontGotNoProxy> each one seperately
<TeknoJuce> basically it would buffer up all the presses
<azend> or use a serial interrupt
<TeknoJuce> and then excute them one after another
<DontGotNoProxy> and then if it  gets something like [ctrl]+[shift]+[del] it waits fro the full thing?
<azend> http://arduino.cc/en/Reference/SerialEvent
<unLabBot> ~ Arduino - SerialEvent
<DontGotNoProxy> TeknoJuce, i want a buffer of 0
<DontGotNoProxy> or 1
<TeknoJuce> you have to think about mouse as well though DontGotNoProxy 
<DontGotNoProxy> http://code.google.com/p/php-serial/
<unLabBot> ~ php-serial - PHP Class to support serial port access (and various other serial device drivers) - Google Project Hosting
<DontGotNoProxy> anways serial in php is easy
<azend> DontGotNoProxy: I know
<TeknoJuce> DontGotNoProxy, you never could get that working remember :P
<DontGotNoProxy> TeknoJuce, yes exactly so another format for mouse input
<azend> I've used that library quite a bit
<DontGotNoProxy> the mouse however we might simplify and just use click (location) instead of streaming actual mouse movement
<DontGotNoProxy> so do it like a smartboard kinda
* azend should build a smart board
<TeknoJuce> well the smart board doesnt do that well ours doesnt
<azend> he means that it only moves the mouse when the user touches the board
<TeknoJuce> as when you draw something it wouldnt know what you were doing if it only took the click data
<azend> true
<azend> just because you get most x and y positions doesn't mean you have to get all of them
<azend> though
<azend> you could get every 1 in 5
<TeknoJuce> ideally the mouse really isnt important right now anyways if you are thinking bios level
<DontGotNoProxy> yah
<DontGotNoProxy> even though new bios's have mouse control :P
<DontGotNoProxy> but new and unlab dont match so no worries
<TeknoJuce> well the servers we are using dont :P
<DontGotNoProxy> let me look at this arduino serial interrupt
<TeknoJuce> so basically just put a second capture "emulation serial" box under your capture webpage
<TeknoJuce> that will basicallly be like saying this data we will send to the uC when we get that far
<DontGotNoProxy> ok good
<DontGotNoProxy> so what we're gonna do
<DontGotNoProxy> lets build a simplistic protocol then for character data
<DontGotNoProxy> multi-key presses
<DontGotNoProxy> and mouse clicks
<DontGotNoProxy> notepad:
<TeknoJuce> correct
<DontGotNoProxy> 12:19
<DontGotNoProxy> Aaren Brighten
<DontGotNoProxy> You ever look at Arduino or other microcontrollers?
<DontGotNoProxy> Today
<DontGotNoProxy> 16:08
<DontGotNoProxy> Tamara Kruljević
<DontGotNoProxy> not arduino but others yes just in general nothing specific why?
<DontGotNoProxy> maybe we can get her on board :D
<DontGotNoProxy> what are good divider symbolz? that dont get used as keypresse
<TeknoJuce> wonder what others include
<DontGotNoProxy> are there any keys we could do without
<TeknoJuce> arm? fpga?
<TeknoJuce> pic?
<DontGotNoProxy> iono she's taking engineering at uwo
<TeknoJuce> ti launchpad
<DontGotNoProxy> ?
<DontGotNoProxy> so hey azend TeknoJuce what are good dividing characters?
<azend> \n
<azend> ,
<azend> ;
<DontGotNoProxy> what would be good that u dont ever use on the keyboard?
<azend> DontGotNoProxySucks
<azend> :P
<azend> 0x0
<DontGotNoProxy> it has to be a single character
<azend> I use every character on my keyboard
<DontGotNoProxy> ..
<TeknoJuce> DontGotNoProxy, you would be sending the ascii codes
<azend> 0x0 is hex 0
<DontGotNoProxy> what do u use the list
<TeknoJuce> not the keypress actual letter
<DontGotNoProxy> i know
<azend> which is NULL according to the ascii spec
<TeknoJuce> so it wouldnt matter if you sent a comma ,
<DontGotNoProxy> but we need dividers for multi-key presses and mouse
<TeknoJuce> as that is not the ascii code for it
<azend> also what C determines is the end of a string
<azend> no you don't DontGotNoProxy
<azend> you can just send two messages
<DontGotNoProxy> ..
<DontGotNoProxy> u guys dont understand
<DontGotNoProxy> our script is going to interpret each charaacter one by one
<azend> start the message with a type bit
<TeknoJuce> ideally you need to figure out how a keyboard actually interprets 3 key combos
<TeknoJuce> etc
<azend> so that you can figure out if it is keyboard or mouse
<DontGotNoProxy> and send it the USB HID from the serial onboard the arduino
<automegeek> good night!
<TeknoJuce> nn automegeek 
<automegeek> :)
<DontGotNoProxy> pce
<DontGotNoProxy> let me give u an example
<azend> automegeek: good night!?!
<automegeek> see yo uthursday!
<azend> It's four?
<azend> I mean four am sure :P
<TeknoJuce> are you bringing that contraption automegeek 
<TeknoJuce> harmonograph?
<DontGotNoProxy> walterisafatfuck[ctl]+[alt]+[del]hapPy[mouse][200][321]poopday
<DontGotNoProxy> see how i use + and [] to do multi-key presses .. and then when a non + is afer a [] it continue as normal text... and then for mouse [mouse] calls it with two preceding [][] that have xy coordinates
<automegeek> I'm done at the store.  leaving
<TeknoJuce> is that from your keylogger?
<DontGotNoProxy> the downsides to this is ... we have to jump threw hoops if we ever want to actually press + or [
<automegeek> I won't have room in the car for the harmonograph with the people in it
<automegeek> ...the car..
<DontGotNoProxy> or really only [ and tecknojuce no but it looks much similar
<TeknoJuce> again DontGotNoProxy you would not be sending the key
<TeknoJuce> so the delimiters would not matter
<automegeek> bye
* automegeek has quit (Quit: Page closed)
<DontGotNoProxy> then what are we sending
<DontGotNoProxy> give me an example of ur protocol data ur imaginign
<TeknoJuce> ascii codes.
<DontGotNoProxy> ?
<TeknoJuce> One sec I have an app some place
<DontGotNoProxy> because if u just mean converting them to hex that doesnt change my point
<azend> bytes are generally represented as 2 hex nums
<azend> because a hex num represents a nibble
<azend> $FF is %11111111
<DontGotNoProxy> mhm well our serial API's for php etc... take care of converting ascii to hex than binary and modulating it onto the analog serial connection
<DontGotNoProxy> so i'm just trying to determine the higher up protocol we're gonna use on both the server & arduino code side of this
<DontGotNoProxy> of interpreting the data being sent over the serial connection
<azend> php doesn't like working with raw data
<TeknoJuce> DontGotNoProxy, do you have wine installed?
<DontGotNoProxy> yeh
<TeknoJuce> http://www.delphiforfun.org/programs/Download/KeyCodes.zip
<azend> eww wine
<azend> delphi :)
<TeknoJuce> haha you are all over the place
<azend> :P
<DontGotNoProxy> ok
<DontGotNoProxy> so do you have a chart for this shit
<DontGotNoProxy> "well not for class im in this club where were working on coding microcontrollers to create robots that walk im still learning so id be useless for that but id love to see what youre doing! what are you doing this for ? "
<DontGotNoProxy> no wonder we're not seeing anyone..
<DontGotNoProxy> that club is at the university oto
<TeknoJuce> they have a club for everything there
<TeknoJuce> have you ever seen their club list
<DontGotNoProxy> lol
<TeknoJuce> they have a club for just going to bars to watch football etc its really dumb
<TeknoJuce> did the delphi app work in wine?
<DontGotNoProxy> i gotta figure out a way of inviting her out to the unlab without doing it the wrong way
<DontGotNoProxy> yah
<DontGotNoProxy> its cool
<DontGotNoProxy> but i need a rule list
<DontGotNoProxy> so i can code for it
<TeknoJuce> so now you understand what I mean by keycodes
<DontGotNoProxy> so what they are just 1-3 character codes?
<DontGotNoProxy> so we need to interpret 3 characters at a time offthe serial link
<TeknoJuce> and how a + would not matter in the data we would be sending to the uC
<DontGotNoProxy> and hope that the third character doesnt throwit off
<azend> <DontGotNoProxy> i gotta figure out a way of inviting her out to the unlab without doing it the wrong way
<azend> wait wut?
<azend> her?
<TeknoJuce> as it would be like 23+34+54 etc
<DontGotNoProxy> TeknoJuce, if all the key codes were only 2 characters it would work
<DontGotNoProxy> but some are 3
<DontGotNoProxy> some are 2
<DontGotNoProxy> it fucks it up
<DontGotNoProxy> unless we pad
<DontGotNoProxy> 023
<DontGotNoProxy> 054
<DontGotNoProxy> 143
<azend> don't forget people can hit up to 6 keys at the same time in the usb spec
<TeknoJuce> why not
<DontGotNoProxy> azend, yah exactly
<TeknoJuce> azend that is true as to why I had to use the joystick hid standard for my controller
<TeknoJuce> as combo moves for two players dont work out so hawt when you are limited to a max of 6 keys :P
<azend> :P
<DontGotNoProxy> anyways this keycode thing
<DontGotNoProxy> sounds like it is just gonna consume more bandwidth
<DontGotNoProxy> on the serial link
<DontGotNoProxy> unless we are gonna do it in binary and not ascii
<DontGotNoProxy> where as the php serial thingy only supports ascii
<TeknoJuce> http://linux.about.com/library/cmd/blcmdl1_showkey.htm
<unLabBot> ~ showkey - Linux Command - Unix Command
<DontGotNoProxy> how does this help us?
<DontGotNoProxy> lets just keep it simple and send ascii data
<TeknoJuce> so you dont think 9600bps will be enough bandWITCH! for key presses
<DontGotNoProxy> 9600 baud isnt necessarily 9600bps
<DontGotNoProxy> but anyways
<DontGotNoProxy> im just saying for simplicity sake
<DontGotNoProxy> ASCII would probably be better
<TeknoJuce> one keypress is 7bits the intire ascii table has 256 characters, which is stored in one byte
<DontGotNoProxy> unless wer are gonna be hard for sketch capacity on the arduino .. and we need to use pass threw for the data string straight to the HID
<DontGotNoProxy> keypress is 7 bits.. ascii char is 8 bits
<DontGotNoProxy> woop
<DontGotNoProxy> lol
<TeknoJuce> one bit is left unused
<TeknoJuce> http://www.dreamfabric.com/sms/default_alphabet.html
<unLabBot> ~ The 7 bit default alphabet
<DontGotNoProxy> TeknoJuce, ok so how about for down the road or for an idealistic model
<azend> fancy like
<azend> but C works in ascii
<DontGotNoProxy> i have the javascript end point encode everything in the format that it will be whenit goes to the USB HID sketch
<DontGotNoProxy> so its all passthrough
<azend> so you can do that but it takes more work
<DontGotNoProxy> so the php/and arduino neeeds to minimal work/if/switch checks
<azend> DontGotNoProxy: are you going in circles because you have no idea what you're doing?
<DontGotNoProxy> no i understand
<DontGotNoProxy> im just trying to figure out what he best way to do my part is
<DontGotNoProxy> with the entire project in min
<DontGotNoProxy> mind*
<DontGotNoProxy> TeknoJuce, ok just tell me how u want me to send data across the serial link
<TeknoJuce> ffs just get started
<DontGotNoProxy> and i'll start code on my part ( front end + server side of the serial link to the arduino)
<TeknoJuce> i told you to not worry about the serial side
<DontGotNoProxy> you start on the arduino code to interpret off the serial link and send it to the usb HID
<DontGotNoProxy> i might as well just encode it in whatever format u want in the javascript
<DontGotNoProxy> and then just use the php or whatever serverside to pass it through on the serial
<TeknoJuce> I am no longer talking about this subject until I see a website that is capturing keyboard and mouse content activly and outputing to some javascripted jquery window
<DontGotNoProxy> lol
<DontGotNoProxy> smd
<azend> yup
<azend> I agree wuth TeknoJuce
<azend> with
<DontGotNoProxy> fine then
<DontGotNoProxy> just forcing me to write more code than is needed
<azend> onkeydown is work?
<DontGotNoProxy> you guys arent even listening to me
<DontGotNoProxy> cause ur responses have nothign to do wit hwhat i'm saying lol
<TeknoJuce> http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
<unLabBot> ~ Javascript Char Codes (Key Codes) - Cambia Research
<DontGotNoProxy> http://kvm.lab.unlab.ca/
<azend> http://unixpapa.com/js/testkey.html
<unLabBot> ~ Javascript Key Event Tester
<DontGotNoProxy> ... lol i know how to captures keys in javascript :/
<azend> just showing how different functions do different things
<DontGotNoProxy> funny how when u google images ubuntu desktop none of them are unity
<azend> lol
<azend> it does have a long past
<TeknoJuce> http://jsfiddle.net/vor0nwe/mkHsU/
<unLabBot> ~ Edit this Fiddle - jsFiddle
<TeknoJuce> click the pane where it says list of keys
<TeknoJuce> then hold down multiple keys
<DontGotNoProxy> yah i see it
<DontGotNoProxy> jquery is a diry whore
<TeknoJuce> so are you but we still accept you..
<DontGotNoProxy> fine i'll try to get along with jquery
<DontGotNoProxy> but no promises
<TeknoJuce> I was just thinking as well you never really use the mouse at the same time as the keyboard unless you are playing a game
<DontGotNoProxy> doesnt matter
<TeknoJuce> so you could just keep them seperate for now to keep it simple
<DontGotNoProxy> copying and pasting jquery code just freezes everything
<DontGotNoProxy> lol of course the code that runs there page and the code they give u is completely different
<DontGotNoProxy> and doesnt work
<DontGotNoProxy> nvm
<DontGotNoProxy> im just idiot
<DontGotNoProxy> nvm no im not
<TeknoJuce> http://jsfiddle.net/chriscoyier/t5Kts/
<unLabBot> ~ Calc Distance Between Mouse and Element - jsFiddle
<DontGotNoProxy> http://kvm.lab.unlab.ca/
<TeknoJuce> http://jsfiddle.net/zalun/FZqZN/
<unLabBot> ~ Delayed Mouse Tracking - jsFiddle
<DontGotNoProxy> so are we gonna just process keys or actual key events?
<DontGotNoProxy> like key up down etc

Chapter 3: The wondering minds of progress failures

<DontGotNoProxy> (click)
<DontGotNoProxy> azend,
<azend> cool
<azend> you need to negate a bunch of events though
<DontGotNoProxy> ?
<azend> keeps catching on native dom elements
<azend> like img dragging
<DontGotNoProxy> like crtl+click?
<DontGotNoProxy> u have image dragging?
<DontGotNoProxy> i dont
<DontGotNoProxy> not now
<DontGotNoProxy> i did
<DontGotNoProxy> well
<DontGotNoProxy> if u purposely drag yah
<DontGotNoProxy> but we're not gonna support movements like that
<DontGotNoProxy> anyways
<DontGotNoProxy> TeknoJuce, wake up
<DontGotNoProxy> azend, maybe we'll do for draggin (highlighting)
<DontGotNoProxy> mousedown
<DontGotNoProxy> mousedown(x,y)
<DontGotNoProxy> mouseup(newx,newy)
<azend> I had it not work on a couple mouse positions but for the most part it worked
<DontGotNoProxy> should onl ywork in the image
<DontGotNoProxy> it looks like the list of keys div is overlapping hte image fucking up that corner
<DontGotNoProxy> Panang Curry with Chicken
<TeknoJuce> http://jsfiddle.net/24m7D/
<unLabBot> ~ jQuery UI #6859 - Jquery.Simulate drag behaves incorrect when container scrolled - jsFiddle
<TeknoJuce> modified this one 
<TeknoJuce> removed all the scroll crap
<TeknoJuce> click drag
<DontGotNoProxy> might not need something special for that
<DontGotNoProxy> if im just capturing start mousedown adn end mouse up
<TeknoJuce> ok
<DontGotNoProxy> but i'll use the event calls it has there
<DontGotNoProxy> mousedown(
<DontGotNoProxy> mouseup(

and then whole bunch of nothing, food talk etc...blah.

Chapter 4: Attempt at un-Derail-ure.

<AaronBNC> I'm watching the memorial service on t.v.
<AaronBNC> So sad
<AaronBNC> President is there
<TeknoJuce> https://github.com/voodootikigod/node-serialport
<unLabBot> ~ voodootikigod/node-serialport · GitHub
<TeknoJuce> well look at this instead
<TeknoJuce> scroll down to the readme
<DontGotNoProxy> whats this
<azend> looks like a serial port library for node.js
<azend> (dumbass) :)
<DontGotNoProxy> .
* azend likes being hard on DontGotNoProxy
<azend> it's fun
<DontGotNoProxy> i thought we already agreed
<DontGotNoProxy> we cant do this
<DontGotNoProxy> were not doing this locally
<DontGotNoProxy> it'll be interfacing wit hthe serial on the server side
<azend> since when is node local?
<DontGotNoProxy> iono
<azend> just a different backend
<DontGotNoProxy> i've never used node.js so fuck off
<DontGotNoProxy> what does it do
<DontGotNoProxy> explain in english
<azend> it's javascript on the server
<DontGotNoProxy> sum it up
<azend> badum-tish
<DontGotNoProxy> so its javascript replacing php?
<azend>  yup
<DontGotNoProxy> so i send data over the network to node.js on the server?
<azend> yup
<DontGotNoProxy> so what on the server interprets node.js
<azend> except it handles web sockets way better
<azend> no you write javascript
<azend> node.js runs it
<DontGotNoProxy> you know the food was worth it
<DontGotNoProxy> when u can feel it burning ur stomach
<DontGotNoProxy> and when it hurts to eat
<TeknoJuce> http://www.voodootikigod.com/nodebots-the-rise-of-js-robotics
<unLabBot> ~ NodeBots - The Rise of JS Robotics - Voodoo Tiki God

Chapter 4: Facebook over -9000 points for project planning and productivity yes that's a negative.

<DontGotNoProxy> TeknoJuce, are u seeing the convo on fb?
<TeknoJuce> not yet
<azend> http://www.hark.com/clips/ccqzqrzkwl-lieutenant-dan-what-are-you-doing-here
<unLabBot> ~ Lieutenant Dan, What Are You Doing Here? Sound Clip and Quote - Hark
<DontGotNoProxy> ur part of the convo
<DontGotNoProxy> go check
<DontGotNoProxy> lol
<azend> wait what DontGotNoProxy
<azend> were you talking to me?
<DontGotNoProxy> azend, i dont haveu  on fb
<azend> orly?
<DontGotNoProxy> indeed

...and back to actually accomplishing something with our gorgeous IRC ways!

<TeknoJuce> just to note this conversation on fb is pointless
<TeknoJuce> we pretty much are going in the right direction
<TeknoJuce> the page you already made
<TeknoJuce> with that node-serial
<DontGotNoProxy> mhm perry would be agreat asset to hte lab
<DontGotNoProxy> so be nice to him
<DontGotNoProxy> trywheeling him into hte lab
<DontGotNoProxy> jeez
<TeknoJuce> yeah but he seems like a lost cause
<TeknoJuce> soon as i see that "i have no time excuse"
<DontGotNoProxy> he's suppose to come out thursday
<DontGotNoProxy> dont fuck it uo
<DontGotNoProxy> up
<TeknoJuce> I lose interest in those type of people
<TeknoJuce> nobody has time for anything you just do it because you want to have some fun or gtfo <TeknoJuce> I'm not here to force you to have fun.
<azend> hmm...
<TeknoJuce> another comment that makes me want to slap someone is when they see your project and they say oh shit you must have way too much time on your hands....um no  <SMACK>

Chapter 5: TeknoJuce V-USB blast from the past youtube links & Legacy Party!
-Capture test.

<DontGotNoProxy> TeknoJuce,
<TekMason> I heard my name
<DontGotNoProxy> were u saying u hadsome arduino's?
<TekMason> yes.  An OSEPP Uno R3 Plus, Seeeduino Stalker v1 328 and Robot Control 328 (Uno ompat)
* ChanServ gives channel operator status to DontGotNoProxy
<DontGotNoProxy> do u know if any of those have USB Hid keyboard support?
<TekMason> Not sure.  Haven't looked into it yet.  Wouldn't it just be a library?
<DontGotNoProxy> nah its dependent on the cip
<DontGotNoProxy> chiop
<DontGotNoProxy> chip
<TeknoJuce> DontGotNoProxy, you are looking for 32u chip
<TeknoJuce> the uno has 8u
<DontGotNoProxy> ATmega328P should work too
<TeknoJuce> well it will work as in yo will have to use the 328p to talk to the 8u
<TekMason> I connect to the USB port on 2 of them to program and have a FTDI board to usb connect o the seeeduino
<TeknoJuce> as your lenardo setup wont fit on the 8u
<TekMason> I've been meaning to look at the HID project sometime.
<DontGotNoProxy> http://www.youtube.com/watch?v=5XoOAT0t5cc
<unLabBot> ~ V-USB hid-mouse example w/ atmega328p (Arduino) - YouTube
<DontGotNoProxy> http://codeandlife.com/2012/06/18/usb-hid-keyboard-with-v-usb/
<unLabBot> ~ Code and Life . USB HID keyboard with V-USB
* echeese (~echeese@bas4-london14-1088902034.dsl.bell.ca) has joined #unlondon
<TekMason> gimmie a few...looking for a part
<TeknoJuce> or DontGotNoProxy http://www.youtube.com/watch?v=FvzED89LNWs
<unLabBot> ~ Playing with BootloaderHid V-USB Firmware Mod Atmega324p PT.3 - YouTube
<TeknoJuce> you may recognise the name there
<DontGotNoProxy> TeknoJuce, i expect a visit from jamieedwarsa soon\]\
<TeknoJuce> whys that
<DontGotNoProxy> u do that>?
<TeknoJuce> http://www.youtube.com/watch?v=dLeVEHuD7_U&list=ULo-R68ytGqbc&playnext=1&feature=autoplay
<unLabBot> ~ V-USB Atmega324p Mame Panel Controller Mini Arcade Machine - YouTube
<TeknoJuce> jup thats meh
<TeknoJuce> meee
<TeknoJuce> love when I had the protoboard taped to the back of the control panel
<TeknoJuce> looked like a bomb
<TeknoJuce> hard to play mortalkombat with one hand and the camera in the other :P
<TeknoJuce> https://skydrive.live.com/?cid=54ce46589efc4437&id=54CE46589EFC4437%21719&sc=documents#cid=54CE46589EFC4437&id=54CE46589EFC4437%21721&sc=documents
<TeknoJuce> DontGotNoProxy, I have a non uno arduino we could try getting serial data from node-serial to turn on an led for now
<TeknoJuce> ie the older model
<DontGotNoProxy> ok
<TeknoJuce> ekiMmI, do you mind if we use your uno? ie hope you have a backup of what ever code you currently have on it?
<DontGotNoProxy> as long as we have a way of reflashing it without a problem he's ok
<DontGotNoProxy> but that means we need a way of using ISP to program it
<DontGotNoProxy> once we flip the usb over to HID mode ... we cant flash it via usb
<TeknoJuce> correct
<DontGotNoProxy> hat usb ISP thing u had in the pics... is that an ISP programmer?
<TeknoJuce> you would have to program it via ftdi through the txrx pins
<DontGotNoProxy> im going to work on getting hte page to steal special keys like function and key combos
<DontGotNoProxy> we may have to single browser close it
<TeknoJuce> no idea what you said there
<DontGotNoProxy> or use on-screen buttons to pass things like ctrl+alt+delete
<DontGotNoProxy> well imagine what will help if u press ctrl+alt+delete or if u press f1
<TeknoJuce> or just say dont send any data till all buttons are up
<TekMason> where is the unLab projects page at?
<DontGotNoProxy> browser's help will pop-up or task manager will pop-up
<TeknoJuce> try
<TeknoJuce> true
<TeknoJuce> but it will still fire off :P
<DontGotNoProxy> i found some pages that say how to use jquery to steal the events... but its not cross browser
<DontGotNoProxy> well just like virtualbox has ctrl+alt+delete from the file menu... we can do that
<TeknoJuce> yeah thats fine
<TeknoJuce> the buttons
<TeknoJuce> or maybe a right click menu :P
<DontGotNoProxy> interesting idea
<TeknoJuce> though that might fuck up the mouse right click while in window
<DontGotNoProxy> https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-prn1/61884_10151592791812222_1995655840_n.jpg
<DontGotNoProxy> haha
<DontGotNoProxy> yes
<TeknoJuce> though you could make custome commands
<TeknoJuce> like ctrl A D is contrl alt del instead
<DontGotNoProxy> yep
<TeknoJuce> like vmware infrastructure client uses ctrl alt insert as the delete
<DontGotNoProxy> mhm
<DontGotNoProxy> its too bad i cant capture the mouse
<DontGotNoProxy> but that requires functionality beyond the web canvas
<DontGotNoProxy> capture hte keyboard
<JamieEdwards> hey
<DontGotNoProxy> hello JamieEdwards so .. IP KVM's cost like 1000$ so we're building one out of an existing normal KVM switch and an Arduino
<DontGotNoProxy> with a web front end
<DontGotNoProxy> http://kvm.lab.unlab.ca/
<DontGotNoProxy> http://i.imgur.com/TY1yT.jpg
<TeknoJuce> Hey JamieEdwards
<TeknoJuce> long time no see!
<TeknoJuce> dontgotnoproxy put the ipcam from zoneminder in there
<TeknoJuce> just for fun :P
<DontGotNoProxy> lol
<TeknoJuce> as Ideally we will be capturing sorta just like that
<DontGotNoProxy> http://kvm.lab.unlab.ca/
<DontGotNoProxy> done
<TeknoJuce> nice haha
<DontGotNoProxy> ugh
<DontGotNoProxy> those cams are using 250KB/s
<DontGotNoProxy> just one
<DontGotNoProxy> and black
<DontGotNoProxy> that means two of them being watched would fuck the labs upipde
<DontGotNoProxy> up pipe
<TeknoJuce> haha
<TeknoJuce> well Ideally we shouldnt be running @640x480
<TeknoJuce> I just did that to see if I could get our card captureing higher
<TeknoJuce> as when I was build the new box people kept saying the capture card could do it
<DontGotNoProxy> lol since u put that into place my bandwidht has jumped from 500 - 1000MB/day to 8000MB/day
<TeknoJuce> hawt sex
<DontGotNoProxy> nice job
<TeknoJuce> what me to turn it down to see the diff?
<TeknoJuce> awesome I turned on mocap and forgot about it
<DontGotNoProxy> i think JamieEdwards awol'ed
<TeknoJuce> didnt think it was working
<TeknoJuce> http://gw.lab.unlab.ca:8000/zm/index.php?view=frame&eid=992&fid=19
<DontGotNoProxy> yah turn it down
<TeknoJuce> projector head!
<DontGotNoProxy> increase compression
<DontGotNoProxy> lower res
<DontGotNoProxy> and drop the fps
<DontGotNoProxy> 2fps would be fine
<TeknoJuce> ok lets see
<DontGotNoProxy> ZoneMinder Error
<DontGotNoProxy> You do not have permissions to access this resource.
<DontGotNoProxy> Please contact your adminstrator for details.
<DontGotNoProxy> Close
<JamieEdwards> lol, sorry...baby woke up
<TeknoJuce> oh theres this website that emulates what ip cammeras look like
<TeknoJuce> at different frame rates
<TeknoJuce> i think the normal is 8-9 fps
<TeknoJuce> wow the mocap works really well
<TeknoJuce> even got me in the dark with just the back light on
* {EDF}SSS has quit (Read error: Connection reset by peer)
* {EDF}SS (~EDFSS@192-0-144-9.cpe.teksavvy.com) has joined #unlondon
<TekMason> Is there a page for UnLab projects?  In particular the USB HID project?  Can't find anything on it on the 3 unLab wikis
<DontGotNoProxy> nah we havent created a page yet :/
<DontGotNoProxy> probably should have, but its come to our attention we only use it to get the passwords/ip for unlab devices, and u use it to find projects we havent created because no one but u use it
<DontGotNoProxy> haha
<TekMason> uggg
<DontGotNoProxy> did TeknoJuce give u write access to the wiki?
<TeknoJuce> TekMason you just have to part of the google group to edit the wiki
<TeknoJuce> the new wiki is another thing though
<TeknoJuce> not ready for primetime
<TekMason> k I'll join the group
<TeknoJuce> just to note changing the cam size down
<TekMason> just applied to Unlondon Unlab General and Unlondon unlab projects.  Do you need me to pay membership before admitting me?
<TeknoJuce> nah groups for everyone
<TekMason> and https://sites.google.com/a/unlondon.ca/unlondon/ is the official wiki.
<unLabBot> ~ UnLondon
<TeknoJuce> you have been approved!
<DontGotNoProxy> atm yes
<TeknoJuce> so yeah you should be able to edit now
* JamieG_ has quit (Ping timeout: 245 seconds)
<unLab-Hackbox10> DontGotNoProxy, its now set to 320x240 12fps
<DontGotNoProxy> do 2 fps
<azend> lol misread the navigation
<azend> read "Legacy printer night"
<azend> sounds like a party
<DontGotNoProxy> nothing like a legacy party
<TeknoJuce> its like having an 80's party but for g33ks
<TeknoJuce> dress up in legacy technology

Chapter 7: Peer Reviews and dinner dates.

<TekMason> TeknoJuce:  I'd setup a project page under Hacks for the USB Hid Keyboard Project if I knew anything about it :(
<TekMason> I'm going to start building up info on my forums about it first
<TekMason> who is the main HID project guy?
<DontGotNoProxy> should my poweradapter be scolding hot?
<DontGotNoProxy> for laptop
<DontGotNoProxy> TekMason, its a IP KVM project.. USB HID is a component of it.  Wess and I are heading it up
<TekMason> oh ok it is a part of the ip kvm
<TeknoJuce> -http://www.axis.com/products/video/design_tool/v2/
<TeknoJuce> http://www.axis.com/products/video/design_tool/v2/
<unLabBot> ~ AXIS Design Tool
<TeknoJuce> this is the fps ip cam emulator I was talking about just found the url
<TeknoJuce> http://www.youtube.com/watch?feature=player_detailpage&v=nmSo3H0IGKM#t=3274s
<unLabBot> ~ Hey 77: Jeri Ellsworth @jeriellsworth talks about cool entries in the #555contest - YouTube
<TeknoJuce> listen from there on about getting women more involved in hackerspaces
<azend> TekMason: They're creating an incredibly complicated Lights Out management device
<DontGotNoProxy> azend, its not complicated at all... its rather simple compared to other IP KVM systems.
<DontGotNoProxy> and not to mention incredibly cheaper
<azend> It's just complicated because of all of the different systems you're trying to tie together
<TeknoJuce> TekMason, did you not review the concept picture?
<azend> DontGotNoProxy: just found one on ebay for $6.86 with free shipping
<TeknoJuce> just to not GFIPKVM stands for GHETTOFAB
<TekMason> TeknoJuce.  No but I'm guessing you already posted the link somewhere and I missed it.
<azend> buy it now
<DontGotNoProxy> azend, again lights out only works on proprietary machines
<DontGotNoProxy> if u want to buy us compatible servers by all means
<azend> no the HP version does
<azend> not regular LOM
<DontGotNoProxy> TekMason, http://i.imgur.com/TY1yT.jpg
<TekMason> thx.
<DontGotNoProxy> azend, unless that lights out has USB keyboard/Mouse/Video Capture
<DontGotNoProxy> i'm not interested
<DontGotNoProxy> VGA* video capture
<TeknoJuce> well ideally it has none...
<TeknoJuce> its a pci card
<TeknoJuce> you would have to buy one for each machine
<TeknoJuce> and hope that machine has a pci port
<DontGotNoProxy> maybe we dont have PCI on one of our machines
<TeknoJuce> like our dell server would be out
<DontGotNoProxy> then what
<DontGotNoProxy> exactly
<DontGotNoProxy> most 1U
<TeknoJuce> I think we are going about this the right way
<TeknoJuce> and its been fun so far
<TeknoJuce> thats all that matters
<DontGotNoProxy> mhm
<DontGotNoProxy> hell maybe we can get it to a point where its a new okvm type project
<TeknoJuce> we will prob get more street cred hacking all this shit together ;D
<DontGotNoProxy> for sure man
<DontGotNoProxy> this is stupid easy man
<TeknoJuce> rather see old devices repurposed
<TeknoJuce> then new shit bought
<DontGotNoProxy> well even if it was new hardware
<TeknoJuce> and theres nothing wrong with failure its how you learn
<DontGotNoProxy> this is still so much cheaper
<TeknoJuce> maybe this whole system will be a pos!?
<DontGotNoProxy> than buying a 1000$ IP KVM
<TeknoJuce> who cares
<TeknoJuce> we learn then we upgrade
<DontGotNoProxy> lol
<DontGotNoProxy> the only problem i see
<DontGotNoProxy> is maybe the delay
<TeknoJuce> yeah which I descused the caveits of all that before
<TeknoJuce> but we wont know till we get there
<DontGotNoProxy> theres lots of low latency video streaming options
<DontGotNoProxy> so im not worried
<DontGotNoProxy> the less buffer the more dropped frames u have
<DontGotNoProxy> but thats not a big deal
<TeknoJuce> I like that we are using a prebuilt kvm as then we could always replace it to upgrade without huge costs
<DontGotNoProxy> i know
<TeknoJuce> our gear just tacks on
<DontGotNoProxy> like legit
<DontGotNoProxy> need 8 port?
<TeknoJuce> why you got one?
<DontGotNoProxy> just replace a 20$ piece of kvm
<DontGotNoProxy> nah im just saying
<TeknoJuce> haha got me all excited
<TeknoJuce> going to set up a webserver here and see if the arduino catches on fire
<DontGotNoProxy> http://www.ebay.ca/itm/Avocent-DSR2010-16-Port-KVM-over-IP-Switch-520-331-005-/290558773828?pt=US_KVM_Switches_KVM_Cables&hash=item43a6a70a44
<unLabBot> ~ Avocent DSR2010 16-Port KVM over IP Switch 520-331-005 | eBay
<DontGotNoProxy> im confused... how does this work? ... how does it hook up to ur end devices
<TekMason> might want to isolate pin 13 output to KVM switch.  Why not tap into the KVM Selector switch instead of directly on the KVM board?
<TekMason> I have micro relays to handle the isolation
<AaronBNC> http://www.imgur.com/dxeYW.jpeg
<DontGotNoProxy> TekMason, ^ see the selector switch
<DontGotNoProxy> ideas?
<TekMason> oh.  between Q18 and R70?
<TekMason> guess there isn't much choice than to go to the traces on the back side
<DontGotNoProxy> yep
<TekMason> what is the kvm make model
<DontGotNoProxy> MT-401UK
<DontGotNoProxy> its on there
<TekMason> thx
<DontGotNoProxy> http://mt-viki.com/en/productshow.asp?id=333&bigclass_id=KVM%20Series&smallclass_id=USB%20KVM%20SWITCH&lid=2
<unLabBot> ~ GUANGZHOU MT-ViKI ELECTRONICS CO., LTD.
<TekMason> have a hi-res pic of the back side of the board?
<TekMason> Have u measured the voltage across the selector switch and maybe current when depressed?
<TeknoJuce> TekMason nothing has been done yet
<TeknoJuce> wait till  the board gets to the lab :P
* echeese has quit (Ping timeout: 264 seconds)
<AaronBNC> http://www.imgur.com/rZYaP.jpeg
<DontGotNoProxy> i dont have the tools to measure hte current
<TeknoJuce> right now we are just working on parts we can manage
<TeknoJuce> IE the web gui
<DontGotNoProxy> TekMason, it'll be in the lab thursday evening as well as myself
<TekMason> was just going to ask you that
<DontGotNoProxy> TeknoJuce, whats wrong with the 4 port currently in the unlab?
<TeknoJuce> what 4 port?
<azend> hey TeknoJuce, how expensive is the restaurant for the 20th
<DontGotNoProxy> $$$ plates
<TeknoJuce> around the same as most viet thai places
<TeknoJuce> 9-10$
<DontGotNoProxy> azend, lol jk < 10$
<DontGotNoProxy> haha
<DontGotNoProxy> ya
<TeknoJuce> (the padthai I get is usally that price)
<DontGotNoProxy> i guess TekMason if u wanted to join us thursday for supper as well?
 TekMason Tekno TeknoJuce 
<TeknoJuce> yeah come out with us TekMason 
<TekMason> there might be an issue using pin0 and pin1 with the uno's USB simultaneously.  I think it's usb ttl uart also uses 0 and 1
<TeknoJuce> when do you guys think you will actually land in london
<TekMason> sure
<DontGotNoProxy> TeknoJuce, probably around 6 - 6:30
* TekMason likes getting away from the drudgery of idiots by hanging with smart peeps

Chapter 8: On to the arduino!

<TeknoJuce> guess you can use this older one as well http://www.practicalarduino.com/projects/virtual-usb-keyboard
<unLabBot> ~ Practical Arduino: Virtual USB Keyboard
<DontGotNoProxy> anyone still alive?
<TekMason> still here.  Working on a relay circuit and thinking about the 2 USB interfaces. http://forums.tekmason.com/topic124.html
<unLabBot> ~ IP KVM Project : unLab Projects
<DontGotNoProxy> http://kvm.lab.unlab.ca/
<DontGotNoProxy> im working on the front end mucking with the javascript key capturing and encoding at
<DontGotNoProxy> atm*
<DontGotNoProxy> but javascript is spitting in my face as it always does
<TekMason> Is hackbox10 linux?
<TekMason> could we just echo all keyboard commands at Hackbox10 to the USB adapter?
<DontGotNoProxy> yah its that desktop in the CMDCentre that has the 2 monitors
<DontGotNoProxy> basically though it can be any machine concievably... something to act as the server that controls the arduino and streams the vga and runs the application
<TekMason> We may need seperate USB connections to the arduino from hack box for mouse
<TekMason> and keyboard
<DontGotNoProxy> we could....
<DontGotNoProxy> but we're gonna go one step further and make it embedded in browser
<TekMason> k
<DontGotNoProxy> as it stands were sending over keyboard/mouse calls via serial
<DontGotNoProxy> then the code on the arduino translates it over to USB HID
<DontGotNoProxy> and poops it out the usb interface
<TekMason> but we will have to decode the serial stream at the arduino.
<DontGotNoProxy> that one project however might have us do it backwards.... poop commands out over usb and then using hte pins do USB HID to send the commands out to the kvm
<DontGotNoProxy> mhm
<DontGotNoProxy> ideally if we can just send the raw data it needs to spit at the USB HID (like keyboard hex codes or whatever) we can just have it pass it through to the USB HID
<TekMason> not sure how we could do both mouse and kbd on one set of digital inputs.
<DontGotNoProxy> http://cal-eng.com/?page_id=579
<unLabBot> ~ Arduino®-Leonardo USB HID Keyboard & Mouse Tutorial and Advanced Serial Port Examples | Cal-Eng : Electronics & Robotics
<DontGotNoProxy> http://www.google.ca/#hl=en&tbo=d&sclient=psy-ab&q=Arduino+USB+HID+keyboard+and+mouse&oq=Arduino+USB+HID+keyboard+and+mouse&gs_l=hp.3..33i29.356.5518.0.5606.34.29.0.3.3.0.262.3906.2j24j2.28.0.les%3Bcrnk_timediscountc..0.0...1c.1.sqE5iA5NJKU&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.&bvm=bv.1355325884,d.aWc&fp=f1aeb173d2fc9bad&bpcl=39967673&biw=1317&bih=678
<unLabBot> ~ Google
<DontGotNoProxy> worst case scenario we just have keyboard not a big problem
<TekMason> Do you have the USB to serial converter handy?  Can you tell what chip is on it?
<TekMason> I expect it will be a PL2303 or ft232rl
<DontGotNoProxy> unfortunately i have nothing here
<DontGotNoProxy> but hte kvm ;P
<DontGotNoProxy> i like your enthusiasm to figure this out and do it while ur motivated :P much like myself
<DontGotNoProxy> now or never haha
<TeknoJuce> its pl2303
<TeknoJuce> sorry was hunting down my 3.6v fast switching diodes
<TeknoJuce> just found them in my lunch pail
<TeknoJuce> thought I left them at work :D
<DontGotNoProxy> haha
<DontGotNoProxy> i just spent 30 mins .... trying to debug a spelling mistake D:
<TeknoJuce> haha nice one
<ekiMmI> ...
<ekiMmI> how do you debug a spelling mistake
<ekiMmI> there is no code
<TeknoJuce> with spell check ;P
<DontGotNoProxy> i misspelt a function
<DontGotNoProxy> and didnt believe javascript when it told me the function didnt exist... thought hte problem was much mroe complicated
<TeknoJuce> thats what you get for not using an ide ;P
<TeknoJuce> mine was a joke btw
<DontGotNoProxy> so TeknoJuce would it pain u if i disabled long key presses? like ... where u hold down a key and it repeats that key over and over?
<TeknoJuce> whyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy?
<DontGotNoProxy> atleast in the datastream
<DontGotNoProxy> from my app
<DontGotNoProxy> http://kvm.lab.unlab.ca/
<DontGotNoProxy> try holding down keys
<DontGotNoProxy> the textbox is sorta what the data looks like being sent over the data stream
<DontGotNoProxy> the text on the page is the buffer
<TeknoJuce> if you did that no keycombos would work
<DontGotNoProxy> hahahaha i brokez it i got two keys stuck in the buffer
<TeknoJuce> shits not working any more you brok it
<TeknoJuce> I liked the prior code
<DontGotNoProxy> so my previous question applies then
<TeknoJuce> hope you saved it
<DontGotNoProxy> the prior code was not usefull for encoding it
<DontGotNoProxy> anyways
<DontGotNoProxy> this is the same thing i just changed where the keypresses get sent
<DontGotNoProxy> so
<DontGotNoProxy> my previous question applies then... in ur USB HID code do u send key up and key down events?
<DontGotNoProxy> or does it just assume a key is being held down by sending it many many times in a short period
<DontGotNoProxy> and assume ur not rapidly pressing the button
<DontGotNoProxy> cause if ur using key up and key down events... then it makes sense for me to eliminate the multiple key presses when holding down a key
<DontGotNoProxy> and just send key up and keydown events
<TeknoJuce> I have as much understanding how a keyboard works as I gave to you, ie you now know as much as me so no idea
<DontGotNoProxy> go loook at ur USB HID code
<DontGotNoProxy> for ur arduino
<DontGotNoProxy> and tell me how ur sending commands
<DontGotNoProxy> whether u have key up and key down events
<DontGotNoProxy> tyvm
<TeknoJuce> not that far yet
<DontGotNoProxy> k well whatever i'll just reinject multiple keyboard presses later if i have too
<TeknoJuce> so I got the board hookedup now going to upload the code to the arduino
<TeknoJuce> its from 3 years ago so this might be anoying as shit
<TeknoJuce> TekMason, have a pic of the module so I can examine it
<DontGotNoProxy> my page has keys stickign for some erason...
<TeknoJuce> eeeew sticky keysss.s

Chapter 9: Chrome FTW!

<DontGotNoProxy> prettty
<TeknoJuce> its not working
<DontGotNoProxy> something is poopy in my code
<DontGotNoProxy> because as u can see the up calls are functioning fine
<DontGotNoProxy> but tehy arent being removed from the buffer
<TekMason> I have a ft232rt chip already so for a few bucks I think I'll get some 2303s.  Good to know though thx.
<TeknoJuce> your shitty ff only coding
<DontGotNoProxy> in certain circumstances
<DontGotNoProxy> works 90% of the time
<DontGotNoProxy> for some fucked reason
<DontGotNoProxy> whjat is look like in chrome?
<TeknoJuce> just a box and a button
<TeknoJuce> tried it in firefox and it detects the keys
<TeknoJuce> install chrome
<TeknoJuce> and test
<DontGotNoProxy> lol wut
<TekMason> doesn't do anything for me in chrome
<DontGotNoProxy> at its core all of this isthe same as that jquery stuff
<TeknoJuce> guess your assumptions are wrong
<TeknoJuce> as so far two chrome peeps just told you its bunk
<DontGotNoProxy> no one likes js
<TeknoJuce> #jquery
<TeknoJuce> theres a chatroom for that :D
<DontGotNoProxy> wow
<DontGotNoProxy> literally nothing happens in chrome
<TeknoJuce> they helped me with a lot of stuff
<TekMason> doesn't do anything in IE either.
* TekMason feels dirty now and has to drink some hand sanitizer
<TeknoJuce> mmmm hand sanitizer
<TeknoJuce> usually you code something in chrome it works in everything and then you code it in firefux it works in nothing
<DontGotNoProxy> ok fixed in chrome
<TeknoJuce> DontGotNoProxy, can you make a seperate page with the first code
<DontGotNoProxy> no idea for IE not gonna start up a vm to test it
<TeknoJuce> what was the issue
<DontGotNoProxy> TeknoJuce, can u give me that jiggity js website
<DontGotNoProxy> with the code
<DontGotNoProxy> apparently chrome and IE dont like u defining default values for inputs in functions
<TeknoJuce> jsfiddle
<DontGotNoProxy> or atleast chrom
<TeknoJuce> works in ie as well now
<TekMason> fine in ie and chrome now
<DontGotNoProxy> looks like chrome doesnt have a problem with sticky keys
<DontGotNoProxy> if u guys like keep pressing keys rapidly
<DontGotNoProxy> can u get them to stick
<DontGotNoProxy> in the buffer
<DontGotNoProxy> on that first line?
<DontGotNoProxy> screw im just gonna do this in chrome then

Chapter 10: A micro success!

<DontGotNoProxy> TeknoJuce, how comes it?
<TeknoJuce> aprt I need to use 0016 of the arduino build
<DontGotNoProxy> ?
<DontGotNoProxy> convert that to my language
<TeknoJuce> they are currently at version 1.0.3
<TeknoJuce> its extremely old
<DontGotNoProxy> lol
<DontGotNoProxy> so what were u trying to test?
<TeknoJuce> I was using 1.0.1 so now I am downloading 0016
<TeknoJuce> testing the arduino duemalove with that simple keybord things
<DontGotNoProxy> ok
<DontGotNoProxy> if u cant get that just test the serial for now
<DontGotNoProxy> see if u can get some sort of framework going for communicating overserial
<TekMason> anyone have any hook clips like this around http://www.ebay.ca/itm/180904518443?ssPageName=STRK:MESINDXX:IT&_trksid=p3984.m1436.l2649
<unLabBot> ~
<TekMason> I can replace whenever order comes in
<TeknoJuce> shit work in 6 hours
<TeknoJuce> nn
<DontGotNoProxy> :(
<DontGotNoProxy> i have work in 6 hours u dont see me sleepin'
<DontGotNoProxy> TekMason, u work tmr? (Today0
<TekMason> y
<TekMason> I have to burn some toil time though so been going in late
<DontGotNoProxy> ah
<DontGotNoProxy> one of hte other it guys (secondary boss) and myself been butting heads lately
<DontGotNoProxy> doesnt listen to me when i tell him what the problem is and how we need to solve it
<TekMason> problem is that he makes you go in to early and leave to late?
<DontGotNoProxy> lol
<DontGotNoProxy> no i do that by choice
<DontGotNoProxy> http://kvm.lab.unlab.ca/
<DontGotNoProxy> so i managed to capture fn keys... without them being processed by the browser
<TeknoJuce>   if (digitalRead(BUTTON_A) == LOW) {
<TeknoJuce>     UsbKeyboard.sendKeyStroke(KEY_A);
<TeknoJuce>     digitalWrite(ledPin, !digitalRead(ledPin)); // Toggle status LED
<TeknoJuce>   }
<TeknoJuce> so far this is what i got
<TeknoJuce> http://imgur.com/eIpum
<unLabBot> ~ imgur: the simple image sharer
<TeknoJuce> ooh lloks like something just happend
<DontGotNoProxy> ooooo
<DontGotNoProxy> :D
<TekMason> got your code posted somewhere dontgotnoproxy
<DontGotNoProxy> TeknoJuce, what are hte functions of UsbKeyboarD?
<TekMason> I've got my realy circuit working
<DontGotNoProxy> do u have documentation somwehre
<TeknoJuce> works
<DontGotNoProxy> ?
<TeknoJuce> http://imgur.com/YGx4P
<unLabBot> ~ imgur: the simple image sharer
<TeknoJuce> the bbbbbbb's in the notepad were type by the arduino
<TekMason> I've just got a thread on my site that I use to keep track of it but you are welcome to use it if you like.   http://forums.tekmason.com/topic124.html
<unLabBot> ~ IP KVM Project : unLab Projects
<DontGotNoProxy> mhm
<DontGotNoProxy> so what are the UsbKeyboard functions that are available?
<DontGotNoProxy> other than keypress
<DontGotNoProxy> or keystroke rather
<TeknoJuce> bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
<TeknoJuce> eat some b's
<DontGotNoProxy> TeknoJuce, so cna u link me to those libraries
<DontGotNoProxy> any luck with investigating the serial avenue?
<TeknoJuce> not yet that was step one
<TeknoJuce> hurdle
<TeknoJuce> well 2 web gui was 1
<TeknoJuce> next would be send serial to produce a b via the arduinos fdti chip
<TeknoJuce> then from there node-serial
<TeknoJuce> then from there we link node-serial to your webgui
<TeknoJuce> then from there if that all works some what....
<TeknoJuce> we get video working
<TeknoJuce> then we all celibrate on thursday
<TeknoJuce> highfives all around
<TekMason> high five
<TekMason> in a borat voice
<DontGotNoProxy> then we try and consolidate it
<DontGotNoProxy> with a RaspPi
<DontGotNoProxy> and then build a case for it
<DontGotNoProxy> then we sell them
<TeknoJuce> nah we first get rid of all the cludge
<TeknoJuce> ie direct vga capture
<TeknoJuce> or we leave it as cludge and just make it a kit for homebrews to toss together and then we turn unLab into a webshop for kits
<DontGotNoProxy> well if we can get arduino that cna capture the vga ... and run a mini webserver with websockets
<DontGotNoProxy> ideally i'd like to at some point get this into a product that is all enclosed in one small box
<TeknoJuce> i have seen the arduino capture black and white video
<DontGotNoProxy> some how keep the cost under 50$ to build
<TeknoJuce> well that possible wouldnt happen :P
<TeknoJuce> if you stick raspi in htere
<TeknoJuce> as thats like 25 -> 40$
<TeknoJuce> I wonder if you can take apart a usb webcam and interface it with a vga signal
<TeknoJuce> pull out the ccd
<TeknoJuce> http://hackaday.com/2011/06/07/capturing-video-with-an-arduino/
<unLabBot> ~ Capturing video with an Arduino
<DontGotNoProxy> http://kvm.lab.unlab.ca/
<DontGotNoProxy> The project captures individual frames from NTSC video at a resolution of 128×96.
<DontGotNoProxy> thats useful
<TeknoJuce> there you go watch that video
<TeknoJuce> you can use your laserpointer as the kvm mouse
<DontGotNoProxy> .
<DontGotNoProxy> lol
<TeknoJuce> just thinking if that possible on the arduino the raspi should be able to handle vga
<DontGotNoProxy> http://kvm.lab.unlab.ca/
<DontGotNoProxy> you cant exit the page with an accidental close window key combo now
<DontGotNoProxy> btw TeknoJuce u can install xbmc on raspberrypi
<DontGotNoProxy> I have yet to see a USB capture adapter to work reliable on the Pi. It's currently
<DontGotNoProxy> a showstopper. Then you'll face problems im combinig OpenMAX and V4L2 into a RT encoding
<DontGotNoProxy> solution ... not to talk about streaming with low latency...
<DontGotNoProxy> http://www.raspberrypi.org/phpBB3/viewtopic.php?f=31&t=19918
<unLabBot> ~ Raspberry Pi " View topic - video extender possible ?
<TeknoJuce> heres one for you mr keylogger http://www.keelog.com/hardware_video_logger.html
<unLabBot> ~ VideoGhost DVI/HDMI/VGA - The world's smallest frame-grabber
<DontGotNoProxy> TeknoJuce, isn't this pretty: http://kvm.lab.unlab.ca/
<TeknoJuce> do the buttons do anything or just for poc so far
<DontGotNoProxy> whatever poc stands for that one
<TekMason> dontgotnoproxy: nice work
<DontGotNoProxy> http://pastebin.com/KhkBdHzM
<unLabBot> ~ Protocol 4 Bytes: Keys Down: 0XXX where XXX is JS keyboard Code Keys Up: - Pastebin.com
<DontGotNoProxy> thats going to be my encoding method for transmitting keys and mouse
<DontGotNoProxy> from the page to the server
<TekMason> l8r guys.  time for me to crash
<TeknoJuce> https://github.com/agnat/node_wake_on_lan
<unLabBot> ~ agnat/node_wake_on_lan · GitHub
 TekMason Tekno TeknoJuce 
<TeknoJuce> nn tek
<DontGotNoProxy> nn
<DontGotNoProxy> TeknoJuce, what do you think of the protocol
<DontGotNoProxy> http://pastebin.com/KhkBdHzM
<unLabBot> ~ Protocol 4 Bytes: Keys Down: 0XXX where XXX is JS keyboard Code Keys Up: - Pastebin.com
<TeknoJuce> I am wondering what happens if the res is off
<TeknoJuce> like if we are capturing at sd
<TeknoJuce> but the computer res is set to 1024x768
<TeknoJuce> how do you go about mouse locations
<TeknoJuce> guess we will come to this when we do
<DontGotNoProxy> well
<DontGotNoProxy> ideally were at 800x600
<DontGotNoProxy> i can always dynamically resize everything
<DontGotNoProxy> although if it goes over 1000 pixels in any given direction i have to redo the protocol
<DontGotNoProxy> i think computers that cant determine screen size from the digital parts of VGA default to 800x600
<TeknoJuce> i will change the keys on the uC tomorrow to DEL or F2 and see if it picks it up when I go to boot
<TeknoJuce> as that is are priority test
<TeknoJuce> to get into the bios
<DontGotNoProxy> ok
<DontGotNoProxy> then work on the serial
<DontGotNoProxy> ideally we'll just passthrough whatever it needs
<DontGotNoProxy> so the arduino doesnt have to do a bunch of if/switch case statements
<DontGotNoProxy> to convert
<DontGotNoProxy> has anyone checked to see if that dazzle works at hte lab?
<TeknoJuce> yeah its what I was using in google hangouts 
<TeknoJuce> when I spliced the video feed in the cmdcentre
<DontGotNoProxy> OK
<TeknoJuce> though if you see ekiMmI in the lab ask him to look in the box on the shelf
<TeknoJuce> theres a box there that says pc to tv
<TeknoJuce> hopefully thats the bit we need
<TeknoJuce> between the dazzel and the vga
<DontGotNoProxy> ok
<TeknoJuce> if not were kinda fux0rd for video
<TeknoJuce> its on the white shelfs by the fridge
<TeknoJuce> hopefully thats not the dazzel box
<DontGotNoProxy> well what is it we need?
<DontGotNoProxy> vga to s-video?
<DontGotNoProxy> what about vga to rca would that work too?
<TeknoJuce> ideally I think the vga to svideo box cost the same price as the vga capture so we would prob just get the vga capture instead
<DontGotNoProxy> or too low quality?
<TeknoJuce> what do you mean vga to rca
<TeknoJuce> vga doesnt go to rca
<DontGotNoProxy> how much is vga capture
<TeknoJuce> 30$
<DontGotNoProxy> 300$ http://www.epiphan.com/products/frame-grabbers/vga2usb/
<unLabBot> ~ VGA2USB | Frame grabbers | Products | Epiphan Systems
<DontGotNoProxy> i thought i saw VGA to rca converters in the store... obviously it had ot remodulate everything it was abulky fuck and expensive
<TeknoJuce> 299$ haha
<DontGotNoProxy> where is this 30$ device u speak of?
<TeknoJuce> hmm looks like its under 50 actually
<TeknoJuce> http://www.ebay.ca/itm/Brand-New-USB-2-0-to-VGA-Display-Video-Capture-Adapter-Converter-Top-Quality-/261018770222?pt=US_Video_Cables_Adapters&hash=item3cc5ee5b2e&_uhb=1#ht_2303wt_1269
<unLabBot> ~ Brand New USB 2.0 to VGA Display Video Capture Adapter Converter Top Quality | eBay
<TeknoJuce> though not sure about linux
<DontGotNoProxy> d'awm u could create a loop with it
<DontGotNoProxy> http://dx.com/p/15-pin-vga-to-s-video-av-rca-tv-cable-19cm-length-81243
<unLabBot> ~ 15-Pin VGA to S-video AV RCA TV Cable (19CM-Length) - Free Shipping - DealExtreme
<TeknoJuce> yeah vga doesnt work like that dude
<TeknoJuce> sorry to burst your bubble
<TeknoJuce> that would be for a videocard that supports that
<DontGotNoProxy> apparently it does ^ otherwise that cable would not exist
<TeknoJuce> ie the video card has a special pinout
<TeknoJuce> the videocard would have the unused vga pins as an svideo out and or composite out
<DontGotNoProxy> lolk
<DontGotNoProxy> does youtube get there ads in early in the morning?... every video iv'e watch tonight has started with a 15 second ad
<TeknoJuce> I think that thing I posted is just bad chinglish
<TeknoJuce> as the video he shows that device is just for video output
<TeknoJuce> not capture
<TeknoJuce> yeah were fux0rd
<TeknoJuce> no vga capture
<TeknoJuce> thought it was too good to be true
<DontGotNoProxy> lol?
<DontGotNoProxy> the ebay thingy?
<TeknoJuce> yeah
<DontGotNoProxy> whatever we still the shitz in the lab yah?>
<TeknoJuce> plz dont shitz in the lab kthx
<DontGotNoProxy> the border i have around this canvas fucks up the co-ordinates :/
<DontGotNoProxy> lol
<DontGotNoProxy> the stuff we have inthe lab should work though yah?
<DontGotNoProxy> ok fixed it
<TeknoJuce> Hello World
<TeknoJuce> Hello World
<TeknoJuce> Hello World
<TeknoJuce> Hello World
<TeknoJuce> Hello World
<TeknoJuce> Hello World
<TeknoJuce> Hello World
<TeknoJuce> Hello World
<TeknoJuce> Hello World
<TeknoJuce> Hello World
<TeknoJuce> uC ^ typing a full msg :p
<TeknoJuce> and pressing enter
<TeknoJuce> and shifting on the H and W
<TeknoJuce> ie two button presses
<DontGotNoProxy> :D
<DontGotNoProxy> how difficult would it be for u to send it serial commands right now?
<DontGotNoProxy> if it gets anything from the serial send a keyboard
<TeknoJuce> 4 hours till work... really difficult
<DontGotNoProxy> lol
<TeknoJuce> http://www.usb.org/developers/devclass_docs/Hut1_11.pdf
<DontGotNoProxy> i wish gedit has code collapsing
<DontGotNoProxy> nope
<TeknoJuce> man the usb team are friggan insane if read that manual
<TeknoJuce> so much stuff packed into the protocol
<TeknoJuce> VR Controls Page (0x03) 
<TeknoJuce> Virtual Reality controls depend on designators to identify the individual controls. Most of the following are 
<TeknoJuce> usages are applied to the collections of entities that comprise the actual device.
<TeknoJuce> 00 Unidentified  
<TeknoJuce> 01  Belt CA 
<TeknoJuce> 02  Body Suit CA 
<TeknoJuce> 03  Flexor CP 
<TeknoJuce> 04  Glove CA 
<TeknoJuce> 05  Head Tracker CP 
<TeknoJuce> 06  Head Mounted Display CA 
<TeknoJuce> 07  Hand Tracker   CA 
<TeknoJuce> 08  Oculometer CA 
<TeknoJuce> 09  Vest CA 
<TeknoJuce> 0A  Animatronic Device CA
<TeknoJuce> theres what we want
<DontGotNoProxy> lol
<TeknoJuce> search that document for "10 Keyboard/Keypad Page (0x07)"
<TeknoJuce> 76 4C Keyboard Delete Forward1;14 76  √ √ √ 101/104
<TeknoJuce> I think that is the delete key
<DontGotNoProxy> coo
<TeknoJuce> did you have a look
<TeknoJuce> shows you all the usb keyboard keycodes
<TeknoJuce> under that section
<DontGotNoProxy> yah
<DontGotNoProxy> i see
<TeknoJuce> #define KEY_DEL     76
<DontGotNoProxy> is that ur setup key/
* {EDF}SS has quit (Read error: Connection reset by peer)
<DontGotNoProxy> for bios
* {EDF}SS (~EDFSS@192-0-144-9.cpe.teksavvy.com) has joined #unlondon
<TeknoJuce> yep guuna test cross fingers
* Loaded log from Mon Dec 17 04:47:34 2012
* Now talking on #unlondon
* Topic for #unlondon is: Welcome to #unLondon - unLab's Unlabishly ChatRealm! | www.unlab.ca | http://cams.lab.unlab.ca | Please stay and idle for as long as plausible. | Event: Open Night every other Thu 7-9:30PM www.unlab.ca/calendar . Come one, come all! | Project: Cisco Disco | Status: Setup Phase | Network: UP!
* Topic for #unlondon set by DontGotNoProxy!~DontGotNo@gateway/tor-sasl/dontgotnoproxy (Sun Dec 09 21:17:55 2012)
* ChanServ gives channel operator status to TeknoJuce
<DontGotNoProxy> anyluck?
<DontGotNoProxy> TeknoJuce,
<DontGotNoProxy> http://kvm.lab.unlab.ca/ is done, now im gonna start looking at node.js
<DontGotNoProxy> it appears to be completely seperate from client-side javascript... trying to find how to connect the two
<DontGotNoProxy> haha http://engineering.linkedin.com/javascript/vncjs-how-build-javascript-vnc-client-24-hour-hackday
<TeknoJuce> nope failure
<TeknoJuce> just seen this guys comment as well "Hi Michael,
<TeknoJuce> the keybord software works fine, but when when i put the uno board into a usb-hub bios and windows only see an unknown device. It is so too when i use a power supply.
<TeknoJuce> Any idea?
<TeknoJuce> I have tested this with some hubs"
<TeknoJuce> so we might be sol with the kvm hub
<TeknoJuce> another comment "I also don't mind buying some type of Arduino either, but I read that the UNO that the above project uses requires special drivers under windows and won't work in 'boot mode' (like the BIOS), which the Teensy will, and I need that functionality.
<TeknoJuce> "
<DontGotNoProxy> poop
<DontGotNoProxy> u sure?
<DontGotNoProxy> did u test it in windows
<DontGotNoProxy> the whatever key
<DontGotNoProxy> del
<DontGotNoProxy> did it press del in  windows
<DontGotNoProxy> because i read to the contrary looking at some arduino stuff .. that u dont need a usb driver
<TeknoJuce> another one about lenardo
<TeknoJuce> http://stackoverflow.com/questions/12682429/generic-keyboard-emulation-using-arduino-leonardo
<unLabBot> ~ hid - Generic keyboard emulation using Arduino Leonardo - Stack Overflow
<DontGotNoProxy> as it uses basic USB HID functionality
<DontGotNoProxy> i dont think the thing ur using is basic USB HID
<TeknoJuce> yes works fine in windows
<TeknoJuce> The targeted environment is running DOS so to my knowledge I need to get the Arduino Leonardo recognized by the BIOS on this machine, which it is not and it does not type the 'A' in DOS.
<DontGotNoProxy> yah i read it
<DontGotNoProxy> well keep working at it
<DontGotNoProxy> i have faith in you yoda
<DontGotNoProxy> ok so i got hte page interfacing with a node.js script server side
<DontGotNoProxy> sends the data over
<DontGotNoProxy> so i'll take alook at hte serial stuff later

Chapter 11: NextDay
<NoSu010> nice you got the mouse going again
<AaronBNC> Morning, the fatigue hasn't hit me yet
<AaronBNC> Nosu010 the entire backend for communicating to the server is done and working
<AaronBNC> And so is the server side node.js to receive it
* jrockjiggz (~jrockjigg@209-112-38-214.dedicated.allstream.net) has joined #unlondon
<NoSu010> node-serial?
* jrockjiggz2 (~jrockjigg@207.164.79.87) has joined #unlondon
<NoSu010> here I made your desktop img a little more realistic http://imgur.com/MW986
<unLabBot> ~ imgur: the simple image sharer
* jrockjiggz has quit (Ping timeout: 245 seconds)
<NoSu010> width=720 Height=480
<NoSu010> yeah loogie it's just a fun project
<NoSu010> be neat to control things in the real world with some web apis
<NoSu010> could be used for other stuff once we get all the modules hashed out
<NoSu010> we had a stumbling block last night we wanted it to operate at bios level but it is only working in os
<NoSu010> we might need a higher tier microcontroller
<NoSu010> but looking into the code first
<NoSu010> theres some other stuff I know we are going to have a heck of a time with like the video segment
<NoSu010> loogie you wouldnt happen to have a vga to tv box like old school
<NoSu010> vga in svideo or composite out
<NoSu010> or any one
<loogie> no i don't

Chapter 12:

<ekiMmI> bourns
<NoSu010> Hey ekiMmI
<NoSu010> whart arte thou doin'
<ekiMmI> researching
<ekiMmI> boobies
<ekiMmI> ...
<NoSu010> was going to say that...
<NoSu010> if you drop by the lab at all theres a box on the white shelf by the fridge that says pc to tv or something like that in marker
<NoSu010> can you tell me if its a vga to composite or svideo device
<ekiMmI> jk im looking around at arduino controller for my LEDs
<NoSu010> or a just a usb capture device like the dazzle
<ekiMmI> kk ill look
<ekiMmI> prob wont be until thursday tbh
<NoSu010> aye then its ok just thought if you happened by there before then
<ekiMmI> yep
<ekiMmI> i know :P
<NoSu010> maybe we can get stuart to check
<ekiMmI> hes there tonight
<NoSu010> oh goody
<ekiMmI> yep

Chapter 13: TOOA

<DontGotNoProxy> ... it'll either act as a "virtual keyboard" or a "basic hid keyboard"
<DontGotNoProxy> .... i take it u went down the virtaul keyboard path not hte basic hid path
<DontGotNoProxy> .... i take it u went down the virtaul keyboard path not hte basic hid path
<DontGotNoProxy> gynocologyscope?
<TeknoJuce> sounds sexy
<TeknoJuce> what are you talking about
<TeknoJuce> I used hid last night if thats what you are asking
<DontGotNoProxy> urs definitely used some sort of usb keyboard driver
<TeknoJuce> so even if we dont get bios level working lets just move on for now
<DontGotNoProxy> half of the stuiff i came across online mentioned a driverless solution
<TeknoJuce> ur face uses some sorta usb keyboard driver
<DontGotNoProxy> so that u could explicitely use it in bios
<TeknoJuce> you have to realize the usb stack is very complex
<TeknoJuce> I have an article here that I am reviewing about you have to add some extra flags or some poo to do it
<TeknoJuce> but its the least of my worries
<TeknoJuce> I want to see this thing talk to the website first
<TeknoJuce> but before we run we need to crawl ie vomit input from serial first
<DontGotNoProxy> so get ur serial workin
<TeknoJuce> man o man you and your tooa
<DontGotNoProxy> ?
<TeknoJuce> your above comments about keyboard drivers etc
<TeknoJuce> ie having no understanding how usb works
<TeknoJuce> I just laugh and say oh aaron...
<TeknoJuce> so explain what you got setup with node.js last night
<DontGotNoProxy> just ssh into kvm and run "node node.js/kvm-server.js"
<DontGotNoProxy> and then refresh the kvm page
<unLabBot> StuartClark: I'm at unLab (London, Ontario) http://t.co/yoUXTd0a [from the future!]
<unLabBot> ~ Stuart @ unLab
<TeknoJuce> just msg'd him to check that box
<TeknoJuce> not sure if he will get it
<TeknoJuce> we can maybe get him to see what the file server is stuck on as well
 JamieEdwards JamieG 
<TeknoJuce> BlacklightJDR never comes in chat any more
<DontGotNoProxy> to resize a vmdk
<DontGotNoProxy> pita
<TeknoJuce> more like easy
<DontGotNoProxy> nope
<DontGotNoProxy> u gotta convert it to vdi first
<DontGotNoProxy> then resize
<DontGotNoProxy> then convert back
<DontGotNoProxy> so basically to resize 15GB windows 7 install to 80GB takes 40 mins
<TeknoJuce> http://www.livestream.com/cdntechpodcast
<unLabBot> ~ Canadiantechpodcast - live streaming video powered by Livestream
<TeknoJuce> hes currently checking the device
<TeknoJuce>  I think it might be what we need :D
<TeknoJuce> fuck ya! http://us.kworld-global.com/main/prod_in.aspx?mnuid=1306&modid=10&prodid=31&flag=1
<unLabBot> ~ KWorld
<TeknoJuce> unLab ewaste never fails
<TeknoJuce> forum
<DontGotNoProxy> it has S-Video out?
<TeknoJuce> Provides Composite Video, and S-Video Output
<TeknoJuce> BlacklightJDR, got me the model off the box 
<TeknoJuce> hopefully it works
<TeknoJuce> so we have basically all the parts
<TeknoJuce> http://www.geek.com/articles/chips/chumby-creator-working-on-an-open-source-arm-powered-laptop-20121217/
<DontGotNoProxy> TeknoJuce, did u try running that node.js
<unLabBot> BlacklightJDR: I'm at unLab w/ @stuartclark http://t.co/egdXL3NT [less than one minute ago]
<unLabBot> ~ Jamieson @ unLab
<TeknoJuce> nas is online
<TeknoJuce> thanks guys for the remote help!
<TeknoJuce> DontGotNoProxy, got them to hook up the dazzel to to the tvbox to the nas
<DontGotNoProxy> hmm
<DontGotNoProxy> edoes it work
<TeknoJuce> start a google hangout lets test it
<DontGotNoProxy> hmm
<TeknoJuce> Im going to say no but eh
<DontGotNoProxy> send me the link
<DontGotNoProxy> i'll join the hangout
<TeknoJuce> i didnt get them to check if its on the input or the output
<TeknoJuce> so this might be a fail
<DontGotNoProxy> whatever
<TeknoJuce> black screen :/
<TeknoJuce> https://plus.google.com/hangouts/_/4e8e6ba1f66b28573ffdd23f0e82b68d9ab5a5d3?authuser=0&hl=en
<unLabBot> ~ Google Hangouts
<TeknoJuce> not sure if its on screensaver
<TeknoJuce> is there a way to connect to the active terminal
<TeknoJuce> and type in it like if you were looking at it from the user point of view
<TeknoJuce> found out what we did wrong :/ http://bit.ly/XDIkX3
<unLabBot> ~  bitly | e your bitmarks
<TeknoJuce> vga in is the strange plug on the far left... :/

Chapter 14: PROD and Backtracking for no reason!
<DontGotNoProxy> TeknoJuce, how's the progress with the arduino?
<DontGotNoProxy> get anything for serial working yet?
* JamieG_ has quit (Ping timeout: 265 seconds)
<DontGotNoProxy> bye JamieG_
<TeknoJuce> unfortunatly going no place I'm all f'd up right now I come home try to work with it and pass out
<TeknoJuce> did you put the kvm in your bag already so you dont forget it for the trip home :D
<DontGotNoProxy> its sittin on my desk
<DontGotNoProxy> dont worry i wont forget
<TeknoJuce> I would
<DontGotNoProxy> i'm gonna get all my shitz packed tmr night
<DontGotNoProxy> so remind me at like 12 tmr night
<DontGotNoProxy> get that serial interface working
<DontGotNoProxy> and build some sort of protocol for translating some sort of string input from serial to a keyboard shitz getting sent out the other end
<DontGotNoProxy> and then i'll attach node-serial.js and connect it to my page
<DontGotNoProxy> then we should be able to completely pass keyboard commands threw it
<DontGotNoProxy> if u cna get mouse working that'd be siiiick too
<TeknoJuce> I emailed some alibaba people for one of those hd capture cards they wanted 300+ for them
<TeknoJuce> I could buy the same one local for 124$
<DontGotNoProxy> lool
<DontGotNoProxy> try hte
<TeknoJuce> I was thinking it was going to be like 50$ from there
<DontGotNoProxy> chingchongchang people
<DontGotNoProxy> http://dx.com/s/hd+capture+card
<unLabBot> ~ hd capture card - Free Shipping - DX
<TeknoJuce> thats a fail search
<TeknoJuce> everything but hd capture cards
<DontGotNoProxy> http://www.youtube.com/watch?feature=endscreen&NR=1&v=oHixogFJKPU
<unLabBot> ~ Linkin Park - New Divide (Lukas Termena Chillout Mix) - YouTube
<DontGotNoProxy> that first card
<DontGotNoProxy> can it record the VGA?
<TeknoJuce> no look at the picture
<TeknoJuce> you plug camera feeds in the vga connector
<DontGotNoProxy> oh
<DontGotNoProxy> ew
<DontGotNoProxy> so its not using VGA... just using it as a connector
<DontGotNoProxy> http://dx.com/s/vga+to+s-video
<unLabBot> ~ vga to s-video - Free Shipping - DX
<TeknoJuce> this is the cheapest chip I have seen so FARt that does hd capture MST3367cmk-LF-170
<DontGotNoProxy> http://dx.com/p/usb-2-0-digital-video-capture-creator-adapter-card-pal-ntsc-35826
<unLabBot> ~ USB 2.0 Digital Video Capture Creator Adapter Card (PAL/NTSC) - Free Shipping - DealExtreme
<TeknoJuce> if you google that you will find ntsc != vga capture
<DontGotNoProxy> i only want to capture 800x600 anyways
<DontGotNoProxy> not even 720p
<TeknoJuce> you will be capturing scanlines...
<TeknoJuce> not pixel data
<TeknoJuce> ie blurry shit
<DontGotNoProxy> scan my dank
<TeknoJuce> I tried but it said no dank found.
<TeknoJuce> seriously though google that chipset
<TeknoJuce> MST3367cmk-LF-170
<TeknoJuce> theres one by startech
<TeknoJuce> I have a friend of a friend that works there 
<TeknoJuce> might be able to get it cheaper than 124
<TeknoJuce> chip doesnt to hdcp
<TeknoJuce> but should work for any live content
<DontGotNoProxy> what is the quality of s-video?
<DontGotNoProxy> maybe we should just use a webcam ;P
<DontGotNoProxy> unfortunately webcam adds huge delay
<TeknoJuce> less blurry than composite but still Ideally we have all we need right now for shit capture so not sure why you are posting me more shit capture
<DontGotNoProxy> so s-video doesnt maintain resolution?>
<TeknoJuce> s-video is not resolution....
<TeknoJuce> scanlines
<DontGotNoProxy> is analog
<DontGotNoProxy> not digitla
<TeknoJuce> you got it
<DontGotNoProxy> i dont understand
<DontGotNoProxy> because
<TeknoJuce> can we move on now
<DontGotNoProxy> u dont need a modulator
<DontGotNoProxy> to convert vga to s-video
<DontGotNoProxy> so how could the protocol be any different?
<TeknoJuce> to 1UP what we are doing this would be the next step http://www.newegg.ca/Product/Product.aspx?Item=N82E16815158317&Tpk=startech%20hd%20capture
<unLabBot> ~ Newegg.ca - StarTech PCI Express HD Video Capture Card 1080p - HDMI / DVI / VGA/ Component PEXHDCAP PCI-Express x1 Interface
<TeknoJuce> the lag is going to be horrid though in this project
<DontGotNoProxy> <DontGotNoProxy> u dont need a modulator
<DontGotNoProxy> <DontGotNoProxy> to convert vga to s-video
<DontGotNoProxy> <DontGotNoProxy> so how could the protocol be any different?
<TeknoJuce> but I still dont care
<TeknoJuce> its just for fun
<TeknoJuce> sorry my TOOA translator isnt working so well tonight
<TeknoJuce> no idea what you are asking
<DontGotNoProxy> well would you say vga is digital and s-video is analog?
<TeknoJuce> no vga is analog
<TeknoJuce> dvi is digital
<DontGotNoProxy> ok so vga is analog ... and can produce resolutions of what we want 800x600 without a problem yes?
<TeknoJuce> soon as you get in the vga realm you need that card above
<DontGotNoProxy> http://dx.com/p/vga-to-cvbs-s-video-pc-to-tv-video-converter-adapter-65726
<unLabBot> ~ VGA to CVBS + S-Video PC to TV Video Converter Adapter - Free Shipping - DealExtreme
<DontGotNoProxy> ok nvm
<DontGotNoProxy> the first thing i was looking at was using TV-Out threw vga
<DontGotNoProxy> i'd have to see s-video quality to understand ur point
<TeknoJuce> we are already doing this.
<DontGotNoProxy> cool
<DontGotNoProxy> well i'll see it when we do it
<TeknoJuce> that box is in my concept drawing actually :P
<TeknoJuce> but in blue
<TeknoJuce> the one we are using though is different but should suffice
<TeknoJuce> a free 30$ we didnt have to spend as it was already in the ewaste pile at the unlab
<TeknoJuce> hopefully it works
<DontGotNoProxy> 720*576
<TeknoJuce> and it's not one of those "that is why it's here" things
<DontGotNoProxy> Those Dazzle's are expensive
<TeknoJuce> you bet they are
<DontGotNoProxy> or yah atleast not found in high quanities
<DontGotNoProxy> modulators of any form are expensive
<TeknoJuce> ideally if we didnt have all this stuff on hand it would start to get pretty costly :P
<TeknoJuce> and this wouldnt have flew
<DontGotNoProxy> this whole thing though
<DontGotNoProxy> if we were to reproduce it
<DontGotNoProxy> i want to keep it under 50$
<TeknoJuce> luckly I have scraped over the whole lab to kinda know what we have
<DontGotNoProxy> becuase even at $100 resale ... thats 900$ than the competition
<TeknoJuce> yeah we cant
<TeknoJuce> we are not going to sell shit
<DontGotNoProxy> less*
<TeknoJuce> get your head out of theh clouds
<DontGotNoProxy> well i would like to use this down the road personally
<DontGotNoProxy> for my own setups
<DontGotNoProxy> so i'd like to reproduce it for myself
<DontGotNoProxy> Composite - approx 350 lines
<DontGotNoProxy> S-Video - Approx 700 lines
<TeknoJuce> how much is your (USB KVM + SVIDEO USB Capture + VGA Converter) garentee this is already over 50$
<DontGotNoProxy> so quality wont be great, but it'll be manageable ... thats almost twice the quality of composite
<DontGotNoProxy> well
<DontGotNoProxy> KVM u can get for like 10$
<DontGotNoProxy> S-Video USB Capture... with a dazzle is 30$ but im sure we could maybe find something cheaper
<TeknoJuce> stop tooa'n and lets find actuall prices
<DontGotNoProxy> VGA converter is like $poop.99
<TeknoJuce> oh + micro controller
<DontGotNoProxy> ok
<TeknoJuce> I think we are at around 60 - 100$ for this setup
<DontGotNoProxy> ok so we could get a simpler microcontroller down the road
<DontGotNoProxy> but
<DontGotNoProxy> lets price our current setup out atleast
<TeknoJuce> no a vga converter is not 99cents
<TeknoJuce> 30$
<TeknoJuce> 30$ for arduino
* echeese (~echeese@bas1-london47-1279596643.dsl.bell.ca) has joined #unlondon
<TeknoJuce> lets just say 30$ for vga capture
<DontGotNoProxy> shit im confuzed
<DontGotNoProxy> what are we using to convert vga to s-video
<TeknoJuce> 10 - 30$ for usb kvm
<DontGotNoProxy> lets actually find prices like u said
<TeknoJuce> so your at around like 120$ currently
<TeknoJuce> now you can nickle and dime it down and see what you get
<TeknoJuce> I would prob build power switch couplers as well
<TeknoJuce> so you could direct control the power switch
<TeknoJuce> but thats a later project
<TeknoJuce> as I dont trust pxe
<TeknoJuce> and wol
<DontGotNoProxy> we're not using pxe
<DontGotNoProxy> although that would be super cool
<DontGotNoProxy> remotely flash the machines ;P
<TeknoJuce> ideally if you put those cost into comparison the ilo cards would be cheaper for 40$ :P
<TeknoJuce> as you would have way more features at hand as well
<DontGotNoProxy> ilo?
<TeknoJuce> lights out cards
<DontGotNoProxy> those cards dont work
<TeknoJuce> like azend was showing off on ebay the other day
<DontGotNoProxy> ... they require special hardware onboard the computer
<DontGotNoProxy> onboard the end servers
<DontGotNoProxy> and most only work with HP
<TeknoJuce> well for server environments they would work
<TekMason> hey teknojuce.  Was wondering if I should take my vacuum forming abominations to the lab on thursday.
<TeknoJuce> as each company has there own version of it
<TeknoJuce> dell its called Dracs
<TekMason> I am not actively working on it so I could leave it there for others to play with or improve if that is ok.
 TekMason Tekno TeknoJuce 
<TeknoJuce> yes you should TekMason!
<TeknoJuce> heheh
<TekMason> WARNING It must be operated with care.  Got the fire insurance paid up?
<TeknoJuce> how does it work?
<TekMason> http://forums.tekmason.com/topic35.html
<unLabBot> ~ Plastic Vacuum Molding : Projects
<TeknoJuce> wow that looks pretty sick
<DontGotNoProxy> you know the dazzle's are all HD eh
<TeknoJuce> blah... nope
<TeknoJuce> your just upscalling shit
<TekMason> teknojuce: It gets hot and you don't want to leave it running when you leave.
<DontGotNoProxy> yah TeknoJuce that vacuum formign shti i was showing u for the dalek, say Tyson could do a good job with his vac
<TeknoJuce> tekmason do you have some sample pieces with it?
<TekMason> Got a shop vac at lab?
<DontGotNoProxy> yah
<DontGotNoProxy> its a hovercraft
<TeknoJuce> yes sir
<TeknoJuce> you should bring the ardrone2 as well again make sure the batterys are all charged up
<DontGotNoProxy> TeknoJuce, i dont understand how can they call it HD if it doesnt have an HD input?
<DontGotNoProxy> http://www.pinnaclesys.com/PublicSite/us/products/consumer+products/dazzle/dazzle+video+archiving/dazzle+dvd+recorder+plus.htm
<unLabBot> ~ Dazzle DVD Recorder Plus - Save and Share Video
<TeknoJuce> DontGotNoProxy, ... why must you keep going on with this shit... I told you the only way up from there is that chip
<DontGotNoProxy> VGA to S-Video $24.03 - http://dx.com/p/vga-to-cvbs-s-video-pc-to-tv-video-converter-adapter-65726
<DontGotNoProxy> S-Video to USB $39.99 - http://www.newegg.ca/Product/Product.aspx?Item=N82E16815158161
<DontGotNoProxy> Arduino Leonardo $23.97 - http://store.arduino.cc/ww/index.php?main_page=product_info&cPath=11_12&products_id=225
<DontGotNoProxy> For $87.99 turn a standard KVM switch into an IP KVM
<unLabBot> ~ VGA to CVBS + S-Video PC to TV Video Converter Adapter - Free Shipping - DealExtreme
<TeknoJuce> I would prob use the teensy instead DontGotNoProxy @ 24 more bang for the buck
<DontGotNoProxy> Still more than 500$ cheaper than the competition: http://ca.startech.com/Server-Management/KVM-Switches/4-Port-USB-VGA-IP-KVM-Switch-with-Virtual-Media~SV441DUSBI AND http://www.ebay.ca/ctg/Belkin-Omniview-F1DP108G-8-Ports-External-KVM-switch-PS-2-CAT5-stackable-/74159467
<unLabBot> ~ 4 Port USB VGA IP KVM Switch with Virtual Media | StarTech.com Canada   ~ Belkin Omniview F1DP108G 8-Ports External KVM switch PS 2 CAT5 stackable | eBay
<TeknoJuce> DontGotNoProxy, even if this project is a failure at being a kvm switch we can use it as a remote interface to unLab environment stuff
<TeknoJuce> that doesnt need timly things to happen
<TekMason> teknojuce: There are some parts from the Mark I version here http://i1091.photobucket.com/albums/i394/TekMason0/Vacuum%20Molding/CentralHuron-20120309-00074.jpg
<DontGotNoProxy> ?
<DontGotNoProxy> how owuld we use it for remote interface if it fails
<DontGotNoProxy> TeknoJuce, do we have any vga splitters?
<TeknoJuce> "unlab environment" (control switches to turn stuff on and off in the lab, and get sensor data)
<TeknoJuce> make our party room :P
<TeknoJuce> controlled by a webgui
<TeknoJuce> start music, lights, lasers, mirrorball< etc
<TeknoJuce> DontGotNoProxy, I think we have a switchable vga splitter why?
<DontGotNoProxy> switchable?
<DontGotNoProxy> thinking we could hook something up like the hackbox to it
<TeknoJuce> kinda like a kvm but no K or M
<DontGotNoProxy> definitely for both local and kvm console access
<DontGotNoProxy> if we had two vga splitters
<DontGotNoProxy> we could keep the display on one machine
<TeknoJuce> well the vga to pc has a vga out as well so technically you could plug the consoles lcd into that
<DontGotNoProxy> as well as still allow the console access from within the cabinet
<TeknoJuce> ie the one in the rack right now
<DontGotNoProxy> oh perfect
<DontGotNoProxy> and if we had another splitter
<DontGotNoProxy> ..
<TeknoJuce> all covered in my Plan O Gram
<DontGotNoProxy> and because the kvm is a hub
<TeknoJuce> that was the swordfish screens in the planogram
<DontGotNoProxy> we could also attach the keyboard and mouse from the console in the rack
<TeknoJuce> says (optional)
<TeknoJuce> beside it
<DontGotNoProxy> yah i know
<TeknoJuce> the problem I seen so far is that for some reason this shit doesnt work through a hub people are saying
<TeknoJuce> I have one here for my arcade machine
<TeknoJuce> I should test it

Chapter 15: Future Perplexing KVM
<DontGotNoProxy> looks like dx no selly 8 port
<DontGotNoProxy> what is the 8 port version of mine
<DontGotNoProxy> u stil have that website?
<TeknoJuce> think it was like mtmmm.com or something
<TeknoJuce> or with a dash
<TeknoJuce> mt-mmm
<TekMason> I also got 10 of every zener diode from 2.4v up to 5.1 that you can get
<DontGotNoProxy> http://mt-viki.com/en/productshow.asp?id=333&bigclass_id=KVM%20Series&smallclass_id=USB%20KVM%20SWITCH&lid=2
<unLabBot> ~ GUANGZHOU MT-ViKI ELECTRONICS CO., LTD.
<TeknoJuce> http://mt-viki.com/,,,
<unLabBot> ~ àÕ~0åu
<TeknoJuce> yup
<DontGotNoProxy> http://mt-viki.com/en/productshow.asp?id=330&bigclass_id=KVM%20Series&smallclass_id=USB%20KVM%20SWITCH&lid=2
<TeknoJuce> it was mthhh.com
<unLabBot> ~ GUANGZHOU MT-ViKI ELECTRONICS CO., LTD.
<DontGotNoProxy> http://www.dhgate.com/8-port-manual-usb2-0-kvm-switch-switcher/p-ff808081371757ea0137410115206634.html
<DontGotNoProxy> out lol
<unLabBot> ~ Wholesale 8 PORT Manual USB2.0 KVM SWITCH Switcher XLY-MT-801UK-CH, Free shipping, $72.1-80.71/Piece | DHgate
<DontGotNoProxy> ouch*
<DontGotNoProxy> meh... just daisy chain two 4 ports
<TeknoJuce> :/
<TeknoJuce> I do not understand
<TeknoJuce> wtf is wrong with them
<TeknoJuce> 4 port 12$ 8 port 1 million dooolars
<TeknoJuce> their 16 is prob 500$ with prices like that
<DontGotNoProxy> lol
<DontGotNoProxy> well i meen the design is quite a bit heavier
<TeknoJuce> 65$ for 8 port belkin (USB and PS2)
<TeknoJuce> http://www.ebay.ca/itm/Belkin-8-port-KVM-Switch-F1DA108T-PS-2-USB-Hot-Keys-Without-Button-Panel-us3-/200858862086?pt=US_KVM_Switches_KVM_Cables&hash=item2ec41f0206&_uhb=1#ht_2135wt_1054
<unLabBot> ~ Belkin 8 port KVM Switch F1DA108T PS/2 USB Hot Keys Without Button Panel us3 | eBay
<TeknoJuce> gee we should just make a cheap kvm duplication interface
<DontGotNoProxy> lool
<DontGotNoProxy> love it when shipping is more expensive tha nthe ite
<DontGotNoProxy> item
<TeknoJuce> haha yeah
<DontGotNoProxy> TeknoJuce, we could just daisy chain?
<DontGotNoProxy> how would the kvm's react to that ;P
<TeknoJuce> basically you would have to build a switching mechinism between the two vga outs and the usb hubs
<TeknoJuce> hmm
<TeknoJuce> or plug the one kvm into the other kvm
<TeknoJuce> then build an arduino switching mechanism for it
<TeknoJuce> as you would just leave the one kvm on the port with the second kvm plugged into it
<TeknoJuce> the switch the second switch
<DontGotNoProxy> yep
<TeknoJuce> so you would get 4port + 4port - 1port = 9port kvm
<DontGotNoProxy> wait
<DontGotNoProxy> no
<TeknoJuce> sorry 7
<DontGotNoProxy> 7 port
<DontGotNoProxy> yah
<DontGotNoProxy> lol
<DontGotNoProxy> 4+4-1 = ?
<DontGotNoProxy> Wess: 9
<TeknoJuce> aint got no learnin
<TeknoJuce> but think bout this now
<DontGotNoProxy> i aint got no eyes atm
<TeknoJuce> use one kvm with 4 kvms 
<DontGotNoProxy> we got some exponential shitzzz goin
<DontGotNoProxy> i'd love ot see the signal degradation
<TeknoJuce> so we would have a 16 port vm  for 60$
<DontGotNoProxy> and the sounds of the beeping as it changes across 5
<DontGotNoProxy> BEEP BEEEP BEEEP BEEP BEEEP
<DontGotNoProxy> and we'd have one large lump of fuck
<TeknoJuce> well you would only use one as the master
<DontGotNoProxy> a huge brick of IP KVM
<TeknoJuce> then the other 4 plugged into that one
<DontGotNoProxy> BEEEP BEEEP
<TeknoJuce> so if yours do beep
<TeknoJuce> yeah
<TeknoJuce> 2 beeps
<TeknoJuce> does yours beep?
<DontGotNoProxy> unfortunately i think not
<DontGotNoProxy> so you wont know
<TeknoJuce> so no beeps!
<DontGotNoProxy> when it switches
<DontGotNoProxy> remotely
<DontGotNoProxy> but it has LEDs
<TeknoJuce> the arduino would know
<DontGotNoProxy> the arduino could have a beep hookedup
<TeknoJuce> and you could put two 7 segment displays hooked up to it
<TeknoJuce> to show which input its on
<TeknoJuce> though this really is all dead tech with virtual machines
<TeknoJuce> ideally we dont need kvms in an environment with money
<TeknoJuce> as it would all just be vertulized
<DontGotNoProxy> 5x4 port
<DontGotNoProxy> 1 acts as controller
<TeknoJuce> *theoretically...
<TeknoJuce> who knows how it would actually operate
<DontGotNoProxy> well there would be signal degradation
<DontGotNoProxy> not sure about the usb power being split out like that either
<TeknoJuce> maybe not kvm chip might boost the video signals
<DontGotNoProxy> well its suppose to
<TeknoJuce> the usb hubs may act a little weird
<DontGotNoProxy> but i already know for a fact this kvm switch fucks up ur VGA
<DontGotNoProxy> quality drops
<TeknoJuce> what do you expect for 12 bones
<TeknoJuce> what did you say was the issue with it?
<TeknoJuce> something about res?
<DontGotNoProxy> http://dx.com/p/nc120-uxp-multiuser-100mbps-lan-workstation-terminal-with-kvm-sound-support-windows-linux-28695
<unLabBot> ~ NC120 UXP Multiuser 100Mbps LAN Workstation Terminal with KVM+Sound (Support Windows/Linux) - Worldwide Free Shipping - DX
<DontGotNoProxy> thinclient
<TeknoJuce> we can maybe make the quality better on just terminal servers by setting grub to 640x480
<DontGotNoProxy> ya its wierd... if i hook it up to my monitor it shows up on my pc as only support 1360x768
<DontGotNoProxy> but if i hook my monitor directly up i get to support 1366x768
<TeknoJuce> as the larger res gets crappier when scan lines are involved
<DontGotNoProxy> and also i've always had a slightly flicker to my external monitor... has something do with the way the source power is seutp... if i seperate hte monitor power and the laptop power onto different circuits in a house it's fine
<TeknoJuce> as its interlaced so you loose some pixel information between lines
<DontGotNoProxy> the flciker is applified threw the kvm
<DontGotNoProxy> well S-Video does higher rez then 640x480
<DontGotNoProxy> so it should look fine in that case
<TeknoJuce> did it come with 4 sets of cables or none?
<DontGotNoProxy> it came with 4 sets of shitty cables
<DontGotNoProxy> the usb are fine the VGA were poop
<TeknoJuce> its not the fact that "IT DOES" high res
<DontGotNoProxy> i've used my own VGA cables
<TeknoJuce> its the fact that higher res on scan lines is worse to read text
<DontGotNoProxy> it has more scanlines
<DontGotNoProxy> than pixels
<TeknoJuce> if you make the res lower you will be able to read stuff better
<TeknoJuce> as theres less visual data loss between the scanlines
<TeknoJuce> ie (interlaced effect)
<DontGotNoProxy> mhm
<DontGotNoProxy> scanlines basically = pixels
<DontGotNoProxy> if u have the same # of scanlines as pixels ... it should look ok
<TeknoJuce> not really but I dont have time for this want to sleep but cant!
<TeknoJuce> i installed node-serial on the webserver
<DontGotNoProxy> coo
<TeknoJuce> I tried to install it in windows but its not very nice
<TeknoJuce> a lot of dependancies
<DontGotNoProxy> did u try running the kvm-server.js file i built?
<TeknoJuce> requires python + visual studio + framework 4 + windows sdk :S

Chater 15: Serial killin' tests!

<DontGotNoProxy> gonna go to sleep pce
* echeese has quit (Ping timeout: 248 seconds)
<TeknoJuce> so got the serial sending "c" when i send any key via serial
<TeknoJuce> so we will have to figure that out more later
<TeknoJuce> lets test this through a usb hub
<TeknoJuce> works
<TeknoJuce> two more hurdles down
<TeknoJuce> I wonder if all 104 keys can fit on the microcontroller
<DontGotNoProxy> lol 



Chapter 16: Arduino Uno, RESET HELL

<azend> [04:02:36] unusually quiet in here lately
<unLab-Hackbox10> [04:03:06] heyo
<azend> [04:03:42] hey
<azend> [04:03:54] who be ye today?
<unLab-Hackbox10> [04:05:15] Aaron & Wess
<unLab-Hackbox10> [04:05:20] finalllllly got the thing working
<unLab-Hackbox10> [04:05:23] USB HID
<unLab-Hackbox10> [04:05:30] they say cshort the reset pins
<unLab-Hackbox10> [04:05:37] but dont tell u which out of the 3 on board
<unLab-Hackbox10> [04:05:49] finally works after resetting the right pins that are actually unlabled
<azend> [04:06:07] yay
<unLabBot> [04:06:17] aabrighton: Finally got USB HID working on our arduino r3 .... thanks internet for telling us which reset pin.. not. Working :D #unlab [less than one minute ago]
<azend> [04:06:45] reset on the arduino?
<azend> [04:06:55] yes they do
<unLab-Hackbox10> [04:06:55] we had to do
<unLab-Hackbox10> [04:07:05] the reset pins on the ICSP programmer pins
<unLab-Hackbox10> [04:07:09] for the 16u2 chip
<unLab-Hackbox10> [04:08:17] look at CMDCentre cam you will see the awesome hacking mess


Current Work

OK so Wess (TeknoJuce) && I (AaronBNC/DontGotNoProxy) spent the evening of the 23rd and morning of the 24th at the Unlab advancing this project.  Main areas we continued to develop were as follows.
  • Arduino Uno r3 flash USB Keyboard HID firmware onto atmega16u2 USB chip
  • Developing software serial using the arduino's digital pins.
  • Settings up the controller box running (nodejs,nodeserial,nodewebsocket,ffmpeg).
Arduino Home/Downloads/arduino-1.0.3/lib/preferences.txt

# ARDUINO PREFERENCES

board = uno

target = arduino


programmer = arduino:avrispmkii


upload.using = usbtinyisp

upload.verify = true


serial.port=COM1

serial.databits=8

serial.stopbits=1

serial.parity=N

serial.debug_rate=9600


Progress:
We succeeded at getting the USB Keyboard HID Firmware installed on the Arduino Uno r3's atmega16u2 USB chip, as well as testing it with some keyboard sketches.  WORKS IN BIOS

We also managed to get software serial working on the arduino, and tested it by sending a HID Key ID over from the computer to the Arduino, and having it write that HID Key to the atmega16u2 chip sending it out to the computer as a key press.

The controller box which is a small embedded device PC originally running XP (model to come later) 600MHz 512 MB ~ ... Debian is installed and it is running NodeJs, Node Serial, Node WebSocket, and surprisingly ffmpeg.

How We Do

Arduino Uno R3 atmega16u2 Keyboard USB HID Flash Using DFU Mode and dfu-programmer

^ Thats a long name, hopefully someone searching google will come upon this because of those tags however, as it would have saved us a ton of time.

So at the end of this task, we would be able to plug a USB cable into the Arduino and computer, and the Arduino would act as a keyboard and be able to send keys to the computers.

To do this we needed to accomplish a few things, one of which is flash the Arduino's USB atmega16u2 chip so it does not act as a USB Serial device (which is the default) this is how you flash the Arduino Uno with your sketches using a USB Serial device.  For our purposes we want this USB device to be a HID (keyboard) device, so we need to flash the firmware on this chip which in our case is the atmega16u2 with the HID Keyboard firmware.

With the arduino uno, the USB chip now allows you to put it into DFU mode allowing you to reprogram/reflash the chip, this is what makes all of this possible.  Many tutorials online exist explaining how to flash the Atmega8u2 chip (uno r1, r2) however barely anything for the 16u2 which we have in our case do to the fact that we are using an Arduino Uno r3, in fact everything we found on the 16u2 people were encountering problem after problem with.

Listen Up!

So unfortunately we wasted 6 hours trying to get our 16u2 into DFU mode, due to messing up one simple step.  By default the 16u2 chip is not in DFU mode. Therefore what you need to do is short the reset pin to the GND pin, simple enough right? ... It is until you realize the Arduino Uno has multiple Reset and GND pins.

This is where our problem came from, instructions online don't specify which reset and GND pins to use, so we were using the default main board pins.  Which definitely didn't put our chip into DFU mode.  Eventually when we were investigating trying to flash the 16u2 chip using an ICSP programmer, we realized ... the ICSP programmer pins for the 16u2 (not the atmega328) have a reset and gnd pin.  Wallah that's what we had to do was short the reset and gnd on the ICSP programmer pins right beside the 16u2 chip.

After that we still had to do some unorthodox things to get dfu-programmer working.  From the looks of it the newest version of dfu-programmer (0.5.5) has support for the 16u2 chip, however we compiled 0.5.4 from source, and had to patch the arguments.c file in the src folder.  The patch simply changes the existing at90usb162 entry which uses 0x2FFA as the product id to using 0x2FEF which is the correct product id for the 16u2.  Make clean, make, make install.

We downloaded the following firmware's the first is the default usb serial firmware used to allow us to upload sketches over the usb interface, the second is the keyboard hid firmware for the 16u2.

https://github.com/arduino/Arduino/blob/master/hardware/arduino/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial-atmega16u2-Uno-Rev3.hex

http://dl.dropbox.com/u/1816557/Arduino-keyboard-0.3.hex

we first tested the flashing process to verify it was working by running the following commands, using our patched install of dfu-programmer (with the arduino plugged into the computer using usb).

sudo dfu-programmer at90usb162 erase
sudo dfu-programmer at90usb162 flash --debug 1 Arduino-usbserial-atmega16u2-Uno-Rev3.hex
sudo dfu-programmer at90usb162 reset
You can now verify that worked by launching a basic sketch like blink, if it uploads fine then you're good to go onto the next step and flash the USB Hid Keyboard firmware.

This worked for us, if it doesn't for you and you get device not found.... well I wish you luck, we spent 6 hours troubleshooting that to find we didn't reset the right pins as mentioned above.

You may need to do the reset mentioned above and shown in the picture of the ICSP's Reset and GND pins, before running the next steps.

sudo dfu-programmer at90usb162 erase
sudo dfu-programmer at90usb162 flash --debug 1 Arduino-keyboard-0.3.hex
sudo dfu-programmer at90usb162 reset
Now the device will act as a USB HID Device, however you will need to put a sketch on it that actually makes use of the keyboard functionality to see the keyboard commands being sent to a PC, use the above steps for flashing it back to usb serial, to be able to upload sketches to it, or use an ISP programmer, and attach it to the 328u2 chip.
All of the above steps are variations of what is described on the following sites:
http://mitchtech.net/arduino-usb-hid-keyboard/
http://www.sparkfun.com/news/1004

Controller Box Bash History

apt-get install openssh-server

nano /etc/network/interfaces 

/etc/init.d/networking restart 

shutdown -r now 

ls 

sudo apt-get install build-essential 

apt-get install build-essential 

wget http://nodejs.org/dist/v0.8.16/node-v0.8.16.tar.gz 

ls -l 

tar -xvf node-v0.8.16.tar.gz 

ls 

cd node-v0.8.16 

./configure 

sudo apt-get install python 

apt-get install python

./configure 

make 

make install 

ls 

make install 

ls 

cd .. 

ls mkdir /ipkvm 

cd ipkvm 

cd /iokvm 

cd /ipkvm 

mkdir nod 

mkdir node 

rm nod 

rm -rf node

apt-get install 

git 

ls 

git clone git://source.ffmpeg.org/ffmpeg.git 

ffmpeg 

ls 

cd ffmpeg/ 

./configure 

apt-get install yasm 

./configure 

apt-get install pkg-config 

./configure 

make 

make install 

cd / 

ls 

cd ipkvm 

ls 

rm -rf nod

mkdir node

cd node

npm install serialport 

ls 

npm install websocket 

ls 

cd node_modules/ 

ls 

cd .. 

ls

nano kvm-server.js

npm install http

ls

cd node_modules/ 

ls 

cd http/

ls 

nano README.md 

nano package.json 

cd .. 

cd .. 

nano kvm-web-server.js 

nano kvm-server.js 

mv kvm-server.js kvm-web-socket.js 

cd .. 

ls 

mkdir www 

cd www 

sftp kvm@lab.unlab.ca 

sftp kvm@lab.unlab.ca 

ls 

cd .. 

cd node 

ls 

nano kvm-web-server.js 

cd .. 

node kvm-web-server 

ls 

cd node 

node kvm-web-server 

ls /ipkvm/www 

nano kvm-web-server.js 

cd ipkvm 

ls 

cd /ipkvm 

ls 

cd node 

ls 

nano kvm-web-socket.js 

node kvm-web-socket 

node kvm-web-socket& && node kvm-web-server 

node kvm-web-socket&

node kvm-web-server&

nano ipkvm/www

cd ipkvm/www/

cd /ipkvm/www/

ls

nano socketController.js

ssh 10.13.37.101

ssh 10.13.37.101

ssh 10.13.37.5

exit

nano socketController.js

cd /ipkvm

ls

cd www

nano socketController.js

ping ipkvm.lab.unlab.ca

ssh 10.13.37.5

ps aux | node

ps aux | grep node

cd /ipkvm/node/

ls

node kvm-web-socket&

ps aux | grep node

exit

ps aux | grep node

ps aux | grep node

node kvm-web-socket

cd /ipkvm/node

node kvm-web-socket

node kvm-web-socket&

exit

node kvm-web-socket

cd /ipkvm/node

ls

nano kvm-web-server.js

nano kvm-web-socket.js

ls

cd ..

ls

cd ipkvm

ls

cd node

ls

nano kvm-web-server.js


Keyboard firmware nfo

The keyboard firmware expects to receive 8 bytes formatted as a Keyboard HID report. The format is as follows:

ByteContents
0Modifier keys:
Bit 0 - Left CTRL
Bit 1 - Left SHIFT
Bit 2 - Left ALT
Bit 3 - Left GUI
Bit 4 - Right CTRL
Bit 5 - Right SHIFT
Bit 6 - Right ALT
Bit 7 - Right GUI
1Not used
2 - 7HID active key usage codes. This represents up to 6 keys currently being pressed.

The Key Usage codes are documented in chapter 10 of the HID Usage Tables. The letters 'a' to 'z' are codes 4 to 29, and you can indicate upper case by setting the left SHIFT or right SHIFT bit in byte 0 of the report.

The keyboard firmware sends back 1 byte every time it receives 8 bytes. This byte represents the LED status for the keyboard: Bit 0 - NUMLOCK, Bit 1 - CAPSLOCK, Bit 2 SCROLL LOCK. Note this isn't currently working and I haven't worked out why yet. I'll update the page when its fixed.

Example code to send an 'a':

uint8_t keyNone[8] = { 0, 0, 0, 0, 0, 0, 0 };
uint8_t keyA[8] = { 0, 0, 4, 0, 0, 0, 0 };

void setup()
{
Serial.begin(9600);
delay(2000);
}

void loop()
{
uint8_t ledStatus;

/* Send an 'a' every second */
Serial.write(keyA, 8);
ledStatus = Serial.read();
delay(100); // Give the host time to read the key
Serial.write(keyNone, 8);
delay(1000);
}
There is plenty of room for improvement in the keyboard firmware. I'll work on a version that doesn't need the delay(100) to give the host time to read the key. There is some difficulty because of the size of the firmware - its 4040 bytes which is almost at the 4096 byte limit which makes it challenging to add features.



Mappings from the Client Page

Ctrl
Shift
Alt
Gui left
gui right


Arduino Accept USB HID
----------------------

[1][0][6][0][0][0][0][0]

Interpreted by the controller/transcribed:

[8][0][0][0][0][0][0][0] - Left GUI
[16][0][0][0][0][0][0][0] - Right CTRL
[32][0][0][0][0][0][0][0] - Right SHIFT
[64][0][0][0][0][0][0][0] - Right ALT
[128][0][0][0][0][0][0][0] - Right GUI


Ex.. Multiple Keys:
[80][0][0][0][0][0][0][0] - Right CTRL + ALT

Interpreted by the Arduino:

[0][1][0][0][0][0][0][0] - Switch
[0][2][0][0][0][0][0][0] - Comp 1
[0][3][0][0][0][0][0][0] - Comp 2
[0][4][0][0][0][0][0][0] - Comp 3
[0][5][0][0][0][0][0][0] - Comp 4
[0][9][0][0][0][0][0][0] - Reset


Recieved by the controller:

0004 - a (press)
1004 - a (release)
0229 - [shift] (press)
1229 - [shift] (release)

2366 2437 - mouse left press @ 366x437
3366 3437 - mouse left release @ 366x437
4248 4302 - mouse right press @ 248x302
5248 5302 - mouse right release @ 248x302
6248 6302 - mouse right press @ 248x302
7248 7302 - mouse right release @ 248x302

8000 - Not used

9000 - Control Commands
9101 - Switch KVM
9202 - Computer 1
9203 - Computer 2
9204 - Computer 3
9205 - Computer 4
9301 - WOL Computer 1
9302 - WOL Computer 2
9302 - WOL Computer 3
9302 - WOL Computer 4
9999 - Reset




[0][0][0][0][0][0][0][1] = 1 // Left CTRL
[0][0][0][0][0][0][1][0] = 2 // Left SHIFT
[0][0][0][0][0][1][0][0] = 4 // Left ALT
[0][0][0][0][1][0][0][0] = 8 // Left GUI
[0][0][0][1][0][0][0][0] = 16 // Right CTRL
[0][0][1][0][0][0][0][0] = 32 // Right SHIFT
[0][1][0][0][0][0][0][0] = 64 // Right ALT
[1][0][0][0][0][0][0][0] = 128 // Right GUI

Ex..Multiple Keys:
[0][1][0][1][0][0][0][0] = 80 // Right CTRL + ALT


00001000

= 8

Door Way Control Panel (Touch Screen)

posted Oct 5, 2012, 11:40 AM by Aaron Brighton   [ updated Oct 5, 2012, 5:59 PM by Jamie Edwards ]

Description

A touch screen control panel for the front entrance of the UnLab, allows control of automated/controllable components of the lab - Smart Lab.  Things such as the camera streams, fun-o-meter, twitter feed, choose your entrance (music), etc...please add more ideas. 


What about making it extensible by the user?  By default, checking in does nothing but execute a script (python?  shell?) that's unique to each user and updateable on a web interface.  Then we can provide a library of built in functions to do various tasks such as playing entrance music, tweeting, checking in on foursquare, talking in IRC, etc. but still allow users to extend it with their own code to tie into their own projects.  --Jamie E.

 

Prior Work

Jamie E. brought in two touch panel screens, and Wess brought in one with a broken LCD (might be able to transfer the touch surface to another screen of similar size).

 

Resources

Two touch panel screens, resolution 800x600.

 

Pick a computer or net book or something that can be mounted to the screen, to actually provide video and interfacability.

 

Team

Jamie E., Aaron B., Wess. T

@JamiePEdwards, @aabrighton, @WessleeT

Recent Site Activity RSS Feed

posted Sep 24, 2012, 12:05 AM by Wess T.   [ updated Sep 25, 2012, 4:07 PM ]

Description:

Add changes to Recent Site Activity (Wiki) to an RSS Feed and then to the Home page of unlabs.ca.

Process (NEW):

Direct feed to google pages found out through Picasa of all things.

Take google said page: 
https://sites.google.com/a/unlondon.ca/unlondon/unlab/unlab-projects/recentsiteactivityrssfeed

Tack a combination of Hidden xml special URL's (add "comments.xml", "activity.xml", "posts.xml", etc) to the end of a google pages directory link:

Wow so much more easier!

now somebody set up us the bomb! feed the need to WordPress via theme home.php.

unLab > home.php
<h4 class="featuredtitle"><?php echo '<a href="http://wiki.unlondon.ca/system/app/pages/recentChanges">unWiki - Recent site activity</a>'; ?></h4>
<div class="homepost">
<?php // import rss feed
if(function_exists('fetch_feed')) {
// Get a SimplePie feed object from the specified feed source.
$rss = fetch_feed('http://sites.google.com/a/unlondon.ca/unlondon/activity.xml');
if(!is_wp_error($rss)) : // Checks that the object is created correctly
        // Figure out how many total items there are, but limit it to 5. 
$maxitems = $rss->get_item_quantity(7); // number of items
// Build an array of all the items, starting with element 0 (first element).
$rss_items = $rss->get_items(0, $maxitems); 
endif;
// display feed items ?>
<?php if($maxitems == 0) echo '<p>Feed not available.</p>'; // if empty
else foreach ($rss_items as $item) : ?>
<?php echo $item->get_date('j F Y @ g:i a'); ?>
<?php echo $item->get_description(); ?><br />
        <?php endforeach; ?>
        <?php } ?>
</div>

...and you're done, no more feed limitations as well :D


Process (OLD):

http://www.feed43.com

Limitations of feed43:

Free service provided by Feed43 has the following limitations:

  • 6-hour polling interval.
  • A maximum of 20 news items per channel.
  • Source page should not exceed 100KB (only first 100KB will be downloaded and parsed)
Will possible remove this service and parse the stream directly at a later date.

Step 1. Specify source page address (URL)

Address*(Open in browser) [?]

http://wiki.unlondon.ca/system/app/pages/recentChanges

Encoding: [?]

utf-8

» Page loaded successfully (encoding: utf-8)

Below is the HTML source of the retrieved page. Use it to setup extraction rules (see next step).

Page Source: [?]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/">
<head>
<meta http-equiv="X-UA-Compatible" content="chrome=1" />
<script type="text/javascript">/* Copyright 2008 Google. */ (function() { var a=window,b="tick",c="start";var d=function(g){this.t={};this.tick=function(g,l,f){f=void 0!=f?f:(new Date).getTime();this.t[g]=[f,l]};this[b](c,null,g)},e=new d;a.jstiming={Timer:d,load:e};if(a.performance&&a.performance.timing){var h=a.performance.timing,i=a.jstiming.load,j=h.navigationStart,k=h.responseStart;0<j&&k>=j&&(i[b]("_wtsrt",void 0,j),i[b]("wtsrt_","_wtsrt",k),i[b]("tbsd_","wtsrt_"))}
try{var m=null;a.chrome&&a.chrome.csi&&(m=Math.floor(a.chrome.csi().pageT),i&&0<j&&(i[b]("_tbnd",void 0,a.chrome.csi().startE),i[b]("tbnd_","_tbnd",j)));null==m&&a.gtbExternal&&(m=a.gtbExternal.pageT());null==m&&a.external&&(m=a.external.pageT,i&&0<j&&(i[b]("_tbnd",void 0,a.external.startE),i[b]("tbnd_","_tbnd",j)));m&&(a.jstiming.pt=m)}catch(n){}; })()
</script>

<link rel="shortcut icon" type="image/x-icon" href="http://www.google.com/images/icons/product/sites-16.ico" />
<link rel="apple-touch-icon" href="http://www.gstatic.com/sites/p/e505e1/system/app/images/apple-touch-icon.png" type="image/png" />
<script type="text/javascript">/* Copyright 2008 Google. */ (function() { var d=window,e="length",h="",i="__duration__",j="function";function k(c){return document.getElementById(c)}d.byId=k;function l(c){return c.replace(/^\s+|\s+$/g,h)}d.trim=l;var m=[],n=0;d.JOT_addListener=function(c,a,b){var f=new String(n++),c={eventName:c,handler:a,compId:b,key:f};m.push(c);return f};d.JOT_removeListenerByKey=function(c){for(var a=0;a<m[e];a++)if(m[a].key==c){m.splice(a,1);break}};d.JOT_removeAllListenersForName=function(c){for(var a=0;a<m[e];a++)m[a].eventName==c&&m.splice(a,1)};
d.JOT_postEvent=function(c,a,b){var f={eventName:c,eventSrc:a||{},payload:b||{}};if(d.JOT_fullyLoaded){a=m[e];for(b=0;b<a&&b<m[e];b++){var g=m[b];g&&g.eventName==c&&(f.listenerCompId=g.compId||h,(g=typeof g.handler==j?g.handler:d[g.handler])&&g(f))}}else d.JOT_delayedEvents.push({eventName:c,eventSrc:a,payload:b})};d.JOT_delayedEvents=[];d.JOT_fullyLoaded=!1;
d.JOT_formatRelativeToNow=function(c,a){var b=((new Date).getTime()-c)/6E4;if(1440<=b||0>
b)return null;var f=0;60<=b&&(b/=60,f=2);2<=b&&f++;return a?d.JOT_siteRelTimeStrs[f].replace(i,Math.floor(b)):d.JOT_userRelTimeStrs[f].replace(i,Math.floor(b))}; })()
</script>

<script>

var webspace = {"scottyUrl":"/_/upload","isConsumer":false,"canPublishScriptToAnyone":true,"serverFlags":{"cajaBaseUrl":"//www.gstatic.com/caja","cajaDebugMode":false},"sharingUrlPrefix":"/_/sharing","csiReportUri":"http://csi.gstatic.com/csi","sharingPolicy":"OPENED_WITH_INDICATOR","analyticsAccountId":"","baseUri":"","name":"unlondon","domain":"unlondon.ca","features":{"scottyForTrogImageUpload":false,"pdfEmbedSupport":false,"docosCommenting":false,"useStandardEmbedsInSidebar":false,"siteChromeSidebarWidgetsEditDialog":true,"canonicalLinkTagInHead":false,"plusOneButtonOptions":true,"siteChromeSystemFooterDialog":true,"plusOneButton":true,"spreadsheetsEmbedLoadRedirect":true,"colorsAndFontsRefactor":false,"ieSevenUnsupportedError":false,"manageRedirects":false,"photoAlbumsInOnePick":true,"siteChromeInPlaceEditingProdLaunchPromo":true,"autoCompleteSearch":false,"goocitiesTheme":false,"editorKeyboardShortcuts":true,"experimental":{"displayEditorLockExceptions":false},"siteChromeDialogsToolbar":true,"plusBadge":false,"siteChromeHorizontalNavigationDialog":true,"dataPropsForEmbeds":true,"autoAdjustSitemapSearchDepth":true,"userContentMetaTags":false,"htmlEmbed":true,"keyboardShortcuts":true,"siteChromeHeaderDialog":true,"stBtiWebspaceTitleSearch":true,"pageRedirects":false,"siteChromeCustomFooterDialog":true},"adsensePublisherId":null,"gvizVersion":1,"siteTitle":"UnLondon","pageSharingId":"jotspot_page","plusPageId":"","termsUrl":"http://www.google.com/a/help/intl/en/users/terms.html","enableAnalytics":false,"isPublic":true,"plusPageUrl":"","homePath":"/","sharingId":"jotspot","isGoocities":false,"isAdsenseEnabled":true,"adsensePromoClickedOrSiteIneligible":true,"enableAutoComplete":true,"isStartPageEnabled":true,"domainAnalyticsAccountId":""};

webspace.gadgets = {"isGadgetDirectoryEnabled":true,"baseUri":"/system/app/pages/gadgets","isGgsRenderingEnabled":true};

webspace.user = {"uid":"","renderMobile":false,"primaryEmail":"guest","sessionIndex":"","namespaceUser":false,"displayNameOrEmail":"guest","namespace":"","hasAdminAccess":false,"guest_":true,"keyboardShortcuts":true,"domain":"","hasWriteAccess":false,"dasherUser":false,"userName":"guest"};

webspace.page = {"canDeleteWebspace":null,"locale":"en","state":"","wuid":"wuid:gx:5dfc58dfe176f36e","pageInheritsPermissions":null,"timeZone":"America/Los_Angeles","properties":{},"type":"text","canChangePath":true,"parentWuid":"wuid:gx:88275a65183c086","revision":0,"title":"Recent site activity","isRtlLocale":false,"bidiEnabled":false,"siteLocale":"en","name":"recentChanges","path":"/system/app/pages/recentChanges","openMoreActionMenu":null,"isSiteRtlLocale":false,"parentPath":"/system/app/pages"};
webspace.page.breadcrumbs = [{"title":"[Untitled]","dir":"ltr","path":"/system","deleted":false},{"title":"[Untitled]","dir":"ltr","path":"/system/app","deleted":false},{"title":"[Untitled]","dir":"ltr","path":"/system/app/pages","deleted":false},{"title":"Recent_Site_Activity","dir":"ltr","path":"/system/app/pages/recentChanges","deleted":false}];

webspace.editorResources = {
text: [
'http://www.gstatic.com/sites/p/e505e1/system/js/codemirror.js',
'http://www.gstatic.com/sites/p/e505e1/system/app/css/codemirror_css.css',
'http://www.gstatic.com/sites/p/e505e1/system/js/trog_edit__en.js',
'http://www.gstatic.com/sites/p/e505e1/system/app/css/trogedit.css',
'/_/rsrc/1348008184000/system/app/css/editor.css',
'http://www.gstatic.com/sites/p/e505e1/system/app/css/codeeditor.css',
'/_/rsrc/1348008184000/system/app/css/camelot/editor-jfk.css'
],
sitelayout: [
'http://www.gstatic.com/sites/p/e505e1/system/app/css/sitelayouteditor.css'
]
};

var JOT_clearDotPath = 'http://www.gstatic.com/sites/p/e505e1/system/app/images/cleardot.gif';

var JOT_userRelTimeStrs = ["a minute ago","__duration__ minutes ago","an hour ago","__duration__ hours ago"];

webspace.siteTemplateId = 11310902089741805598;

webspace.page.currentTemplate = {"title":"Web Page","path":"/system/app/pagetemplates/text"};

var JOT_siteRelTimeStrs = ["a minute ago","__duration__ minutes ago","an hour ago","__duration__ hours ago"];

</script>

<script type="text/javascript">
window.jstiming.load.tick('scl');
</script>

<meta xmlns="http://www.google.com/ns/jotspot" name="robots" content="noindex" />
<meta name="Description" content="UnLondon is a registered Non-Profit organization set up to challenge and embrace new ideas related to new technologies and social platforms through the education and entertainment of the membership and the community-at-large." />
<style type="text/css">
</style>

<link rel="stylesheet" type="text/css" href="http://www.gstatic.com/sites/p/e505e1/system/app/themes/simple/standard-css-simple-ltr-ltr.css" />
<link rel="stylesheet" type="text/css" href="http://wiki.unlondon.ca/_/rsrc/1348008184000/system/app/css/overlay.css?cb=simple1000px%25250goog-ws-nav-leftnone30themedefaultcenter" />
<link rel="stylesheet" type="text/css" href="http://wiki.unlondon.ca/_/rsrc/1348008184000/system/app/css/symbolfont.css" />
<link rel="stylesheet" type="text/css" href="http://wiki.unlondon.ca/_/rsrc/1348008184000/system/app/css/camelot/collaborator-chrome.css" />
<link rel="stylesheet" type="text/css" href="http://wiki.unlondon.ca/_/rsrc/1348008184000/system/app/css/camelot/allthemes-view.css" />
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="http://wiki.unlondon.ca/system/app/css/camelot/allthemes%2die.css" />
<![endif]-->

<title>Recent site activity - UnLondon</title>
<link rel="alternate" type="application/atom+xml" title="Activity Feed" href="http://wiki.unlondon.ca/activity.xml" />
<script type="text/javascript">
window.jstiming.load.tick('cl');
</script>

</head>
<body xmlns="http://www.google.com/ns/jotspot" id="body" class=" en ">
<script src="http://www.gstatic.com/caja/5054/caja.js"> </script>
<script src="http://www.gstatic.com/sites/p/e505e1/system/js/jot_caja.js"> </script>
<div id="sites-page-toolbar" class="sites-header-divider">
<div xmlns="http://www.w3.org/1999/xhtml" id="sites-status" class="sites-status" style="display:none;"><div id="sites-notice" class="sites-notice" role="status" aria-live="assertive"></div></div>
<div xmlns="http://www.w3.org/1999/xhtml" id="sites-page-info-bar"><table class="sites-viewer-site-template-bar"><tr><td class="sites-viewer-site-template-text"><div class="sites-viewer-site-template-title">Basic </div> <div class="sites-viewer-site-template-updated">Updated Sep 20, 2012 8:07 PM</div><div class="sites-viewer-site-template-desc">This is a basic template. </div></td><td class="sites-collaborator-buttons"><div role="button" id="sites-create-site-from-template-btn" class="goog-inline-block jfk-button jfk-button-action jfk-button-disabled" aria-disabled="true">Use template</div></td></tr></table></div>
</div>
<div id="sites-chrome-everything-scrollbar">
<div id="sites-chrome-everything">
<div id="sites-chrome-page-wrapper" style="direction: ltr">
<div id="sites-chrome-page-wrapper-inside">
<div xmlns="http://www.w3.org/1999/xhtml" id="sites-chrome-header-wrapper" style="height:auto;">
<table id="sites-chrome-header" class="sites-layout-hbox-centered" cellspacing="0" style="height:auto;">
<tr class="sites-header-primary-row" id="sites-chrome-userheader">
<td id="sites-header-title" class="sites-header-title-centered "><div class="sites-header-cell-buffer-wrapper"><a href="http://sites.google.com/a/unlondon.ca/unlondon/" id="sites-chrome-userheader-logo"><img id="logo-img-id" src="http://wiki.unlondon.ca/_/rsrc/1329150371958/config/customLogo.gif?revision=3" alt="Logo" class="sites-logo-centered " onload="ie6ImgFix('logo-img-id');" /></a><h2></h2><div class="sites-layout-searchbox-centered "><form id="sites-searchbox-form" action="/system/app/pages/search"><input type="hidden" id="sites-searchbox-scope" name="scope" value="search-site" /><input type="text" id="jot-ui-searchInput" name="q" size="20" value="" aria-label="Search this site" autocomplete="off" /><div id="sites-searchbox-button-set" class="goog-inline-block"><div role="button" id="sites-searchbox-search-button" class="goog-inline-block jfk-button jfk-button-standard" tabindex="0">Search this site</div></div></form></div></div></td>
</tr>
<tr class="sites-header-secondary-row" id="sites-chrome-horizontal-nav">
<td colspan="2" id="sites-chrome-header-horizontal-nav-container">
<div class="sites-header-nav"><ul class="sites-header-nav-container-boxes"><li class="unselected"><a class="sites-navigation-link unselected" href="http://wiki.unlondon.ca/home">Home</a></li><li class="unselected"><a class="sites-navigation-link unselected" href="http://wiki.unlondon.ca/about">unLondon</a></li><li class="unselected"><a class="sites-navigation-link unselected" href="http://wiki.unlondon.ca/unlab">unLab</a></li><li class="unselected"><a class="sites-navigation-link unselected" href="http://wiki.unlondon.ca/events">Events</a></li><li class="unselected"><a class="sites-navigation-link unselected" href="http://wiki.unlondon.ca/updates">Updates</a></li><li class="unselected"><a class="sites-navigation-link unselected" href="http://wiki.unlondon.ca/links">Links</a></li><li class="unselected"><a class="sites-navigation-link unselected" href="http://wiki.unlondon.ca/unlab/chat">Chat</a></li><li class="current"><a class="sites-navigation-link current" href="http://wiki.unlondon.ca/system/app/pages/recentChanges">Recent Site Activity</a></li></ul><div style="clear: both;"></div></div>
</td>
</tr>
</table> 
</div> 
<div id="sites-chrome-main-wrapper">
<div id="sites-chrome-main-wrapper-inside">
<table id="sites-chrome-main" class="sites-layout-hbox" cellspacing="0" cellpadding="{scmCellpadding}" border="0">
<tr>
<td id="sites-chrome-sidebar-left" class="sites-layout-sidebar-left" style="width:250px">
<div xmlns="http://www.w3.org/1999/xhtml" id="COMP_2bd" class="sites-embed"><div class="sites-embed-content sites-sidebar-nav"><ul jotId="navList"><li class="topLevel nav-first "><div dir="ltr" style="padding-left: 19px;"><a href="http://wiki.unlondon.ca/home" jotId="wuid:gx:4dea8cac02dcbc34" class="sites-navigation-link topLevel">Home</a></div></li><li class="topLevel parent " wuid="gx:4da7d37a9e655efd"><div dir="ltr" style="padding-left: 0px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/about" jotId="wuid:gx:4da7d37a9e655efd" class="sites-navigation-link topLevel">unLondon</a></div><ul><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/about/by-laws" jotId="wuid:gx:8910c0df96255c" class="sites-navigation-link">By-Laws</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/about/comm" jotId="wuid:gx:155ccf997242651" class="sites-navigation-link">Communications</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/about/contact" jotId="wuid:gx:156722f04ed89f77" class="sites-navigation-link">Contact</a></div></li><li class="parent closed " wuid="gx:765092d3d10286d3"><div dir="ltr" style="padding-left: 19px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/about/meetings" jotId="wuid:gx:765092d3d10286d3" class="sites-navigation-link">Meetings</a></div><ul><li class="parent closed " wuid="gx:58e8b4212d058d58"><div dir="ltr" style="padding-left: 38px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/about/meetings/2012-annual-general-meeting" jotId="wuid:gx:58e8b4212d058d58" class="sites-navigation-link">2012 Annual General Meeting</a></div><ul><li class=""><div dir="ltr" style="padding-left: 76px;"><a href="http://wiki.unlondon.ca/about/meetings/2012-annual-general-meeting/2012-agm-minutes" jotId="wuid:gx:f799510c4b28226" class="sites-navigation-link">2012 AGM Minutes</a></div></li></ul></li></ul></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/about/membership" jotId="wuid:gx:549599680db055e7" class="sites-navigation-link">Membership</a></div></li><li class="parent closed " wuid="gx:6abbb04c9d1e2559"><div dir="ltr" style="padding-left: 19px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/about/procedures" jotId="wuid:gx:6abbb04c9d1e2559" class="sites-navigation-link">Procedures</a></div><ul><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/about/procedures/membership-process" jotId="wuid:gx:49cf94bfa29dbe29" class="sites-navigation-link">Membership Process</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/about/procedures/website-use" jotId="wuid:gx:44fe2e249ab91a6d" class="sites-navigation-link">Website Use</a></div></li></ul></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/about/philosophy" jotId="wuid:gx:51dba0fede668230" class="sites-navigation-link">UnPhilosophy</a></div></li></ul></li><li class="topLevel parent " wuid="gx:71feb7682342b01"><div dir="ltr" style="padding-left: 0px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab" jotId="wuid:gx:71feb7682342b01" class="sites-navigation-link topLevel">unLab</a></div><ul><li class="parent closed " wuid="gx:53e07aac0221e2b"><div dir="ltr" style="padding-left: 19px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/chat" jotId="wuid:gx:53e07aac0221e2b" class="sites-navigation-link">Chat</a></div><ul><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/chat/znc" jotId="wuid:gx:4ab7f3ed2475fbe5" class="sites-navigation-link">ZNC</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/chat/screen" jotId="wuid:gx:23b25ef69d769eff" class="sites-navigation-link">Screen</a></div></li></ul></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/unlab/donations" jotId="wuid:gx:3fb7d80b14ad0877" class="sites-navigation-link">Donations</a></div></li><li class="parent closed " wuid="gx:2768b4e0f99ee126"><div dir="ltr" style="padding-left: 19px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/spaces" jotId="wuid:gx:2768b4e0f99ee126" class="sites-navigation-link">Spaces</a></div><ul><li class="parent closed " wuid="gx:679d98b7962309a1"><div dir="ltr" style="padding-left: 38px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/studio" jotId="wuid:gx:679d98b7962309a1" class="sites-navigation-link">PodCast Studio</a></div><ul><li class="parent closed " wuid="gx:63d194571431d25"><div dir="ltr" style="padding-left: 57px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/studio/podcast-equipment" jotId="wuid:gx:63d194571431d25" class="sites-navigation-link">Equipment</a></div><ul><li class=""><div dir="ltr" style="padding-left: 95px;"><a href="http://wiki.unlondon.ca/unlab/studio/podcast-equipment/imaceditingsuite" jotId="wuid:gx:1469807d034edf0e" class="sites-navigation-link">iMac Editing Suite</a></div></li></ul></li></ul></li><li class="parent closed " wuid="gx:60940b317840f8c0"><div dir="ltr" style="padding-left: 38px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/maker" jotId="wuid:gx:60940b317840f8c0" class="sites-navigation-link">Maker Lab</a></div><ul><li class="parent closed " wuid="gx:7aab77e4dcba2566"><div dir="ltr" style="padding-left: 57px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/maker/maker-equipment" jotId="wuid:gx:7aab77e4dcba2566" class="sites-navigation-link">Equipment</a></div><ul><li class="parent closed " wuid="gx:436baa11b37a131c"><div dir="ltr" style="padding-left: 76px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/maker/maker-equipment/makerbot" jotId="wuid:gx:436baa11b37a131c" class="sites-navigation-link">Makerbot</a></div><ul><li class=""><div dir="ltr" style="padding-left: 114px;"><a href="http://wiki.unlondon.ca/unlab/maker/maker-equipment/makerbot/documentation" jotId="wuid:gx:7efecfe367585e8b" class="sites-navigation-link">Documentation</a></div></li></ul></li></ul></li></ul></li><li class="parent closed " wuid="gx:5cd7b03174a1249a"><div dir="ltr" style="padding-left: 38px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/cmdcenter" jotId="wuid:gx:5cd7b03174a1249a" class="sites-navigation-link">CMDCentre</a></div><ul><li class=""><div dir="ltr" style="padding-left: 76px;"><a href="http://wiki.unlondon.ca/unlab/network" jotId="wuid:gx:5db5fcc4db7c14aa" class="sites-navigation-link">Network</a></div></li><li class=""><div dir="ltr" style="padding-left: 76px;"><a href="http://wiki.unlondon.ca/unlab/servers" jotId="wuid:gx:790a878a1df1d767" class="sites-navigation-link">Servers</a></div></li><li class=""><div dir="ltr" style="padding-left: 76px;"><a href="http://wiki.unlondon.ca/unlab/workstations" jotId="wuid:gx:4059deecab35c32e" class="sites-navigation-link">Workstations</a></div></li></ul></li></ul></li><li class="parent closed " wuid="gx:47efb340af994b9"><div dir="ltr" style="padding-left: 19px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/members-interests" jotId="wuid:gx:47efb340af994b9" class="sites-navigation-link">Members' Interests</a></div><ul><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/members-interests/andrei-calinescu-dre_cali-1" jotId="wuid:gx:17bdf78b8bdd2ef2" class="sites-navigation-link">Andrei Calinescu @Dre_Cali</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/members-interests/unlabian" jotId="wuid:gx:1a95cc0fae8ab86a" class="sites-navigation-link">Unlabian</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/members-interests/wessleet" jotId="wuid:gx:345f36239015a9a6" class="sites-navigation-link">WessleeT</a></div></li></ul></li><li class="parent closed " wuid="gx:36e722b27ffd39cc"><div dir="ltr" style="padding-left: 19px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/assets" jotId="wuid:gx:36e722b27ffd39cc" class="sites-navigation-link">Equipment</a></div><ul><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/assets/tools" jotId="wuid:gx:726e0d8c00299ac7" class="sites-navigation-link">Tools to get</a></div></li><li class="parent closed " wuid="gx:5db5fcc4db7c14aa"><div dir="ltr" style="padding-left: 38px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/network" jotId="wuid:gx:5db5fcc4db7c14aa" class="sites-navigation-link">Network</a></div><ul><li class="parent closed " wuid="gx:3e6d991d0f63e366"><div dir="ltr" style="padding-left: 57px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/network/network-equipment" jotId="wuid:gx:3e6d991d0f63e366" class="sites-navigation-link">Equipment</a></div><ul><li class=""><div dir="ltr" style="padding-left: 95px;"><a href="http://wiki.unlondon.ca/unlab/servers/gatewayfirewalldhcpdns" jotId="wuid:gx:5fabe3885999dd98" class="sites-navigation-link">Gateway / Firewall / DHCP / DNS</a></div></li></ul></li></ul></li><li class="parent closed " wuid="gx:790a878a1df1d767"><div dir="ltr" style="padding-left: 38px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/servers" jotId="wuid:gx:790a878a1df1d767" class="sites-navigation-link">Servers</a></div><ul><li class=""><div dir="ltr" style="padding-left: 76px;"><a href="http://wiki.unlondon.ca/unlab/servers/kvm" jotId="wuid:gx:4ae155df41c19fe6" class="sites-navigation-link">KVM</a></div></li><li class=""><div dir="ltr" style="padding-left: 76px;"><a href="http://wiki.unlondon.ca/unlab/servers/gatewayfirewalldhcpdns" jotId="wuid:gx:5fabe3885999dd98" class="sites-navigation-link">Gateway / Firewall / DHCP / DNS</a></div></li><li class="parent closed " wuid="gx:3b295aa214dbf469"><div dir="ltr" style="padding-left: 57px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/servers/unlabvm" jotId="wuid:gx:3b295aa214dbf469" class="sites-navigation-link">UnlabVM</a></div><ul><li class=""><div dir="ltr" style="padding-left: 95px;"><a href="http://wiki.unlondon.ca/unlab/servers/local-dns" jotId="wuid:gx:5ca898700d268342" class="sites-navigation-link">Local DNS</a></div></li><li class=""><div dir="ltr" style="padding-left: 95px;"><a href="http://wiki.unlondon.ca/unlab/servers/public-dns" jotId="wuid:gx:7d3259b8a634ea53" class="sites-navigation-link">Public DNS</a></div></li><li class=""><div dir="ltr" style="padding-left: 95px;"><a href="http://wiki.unlondon.ca/unlab/servers/web-hosting-box" jotId="wuid:gx:6a1957241af6518b" class="sites-navigation-link">Web Hosting Box</a></div></li><li class="parent closed " wuid="gx:75541301acf3dabe"><div dir="ltr" style="padding-left: 76px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/servers/application-server-appserver" jotId="wuid:gx:75541301acf3dabe" class="sites-navigation-link">Application Server (appServer)</a></div><ul><li class=""><div dir="ltr" style="padding-left: 114px;"><a href="http://wiki.unlondon.ca/unlab/minecraft" jotId="wuid:gx:83b8de913b8b4a9" class="sites-navigation-link">Minecraft</a></div></li><li class=""><div dir="ltr" style="padding-left: 114px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/mumbleserver" jotId="wuid:gx:41b16ca48f52aed" class="sites-navigation-link">Mumble Server</a></div></li></ul></li><li class=""><div dir="ltr" style="padding-left: 95px;"><a href="http://wiki.unlondon.ca/unlab/servers/winapp" jotId="wuid:gx:54f2d449b29a1c11" class="sites-navigation-link">WinAPP</a></div></li></ul></li><li class=""><div dir="ltr" style="padding-left: 76px;"><a href="http://wiki.unlondon.ca/unlab/servers/camera-server" jotId="wuid:gx:56e94e51b02d3557" class="sites-navigation-link">Camera Server</a></div></li><li class=""><div dir="ltr" style="padding-left: 76px;"><a href="http://wiki.unlondon.ca/unlab/servers/fluxcapcluster" jotId="wuid:gx:1cbb2a2b24af82e4" class="sites-navigation-link">Flux Capcluster</a></div></li></ul></li><li class="parent closed " wuid="gx:4059deecab35c32e"><div dir="ltr" style="padding-left: 38px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/workstations" jotId="wuid:gx:4059deecab35c32e" class="sites-navigation-link">Workstations</a></div><ul><li class=""><div dir="ltr" style="padding-left: 76px;"><a href="http://wiki.unlondon.ca/unlab/studio/podcast-equipment/imaceditingsuite" jotId="wuid:gx:1469807d034edf0e" class="sites-navigation-link">iMac Editing Suite</a></div></li></ul></li></ul></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/unlab/signout" jotId="wuid:gx:5ceaa3382bd2b53d" class="sites-navigation-link">Resource Signout</a></div></li><li class="parent closed " wuid="gx:51aa46ac2ce224ad"><div dir="ltr" style="padding-left: 19px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/-to-do" jotId="wuid:gx:51aa46ac2ce224ad" class="sites-navigation-link">+To Do</a></div><ul><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/-to-do/dothisstufffirst" jotId="wuid:gx:7a1afe8a6314c7ed" class="sites-navigation-link">Do This Stuff First</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/-to-do/imac-backup" jotId="wuid:gx:42998c831bfbc998" class="sites-navigation-link">IMAC - Backup</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/-to-do/makerlabupdates" jotId="wuid:gx:24e8dd31ad37036c" class="sites-navigation-link">Maker Lab updates</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/-to-do/makerbot" jotId="wuid:gx:b7c80c328b1edeb" class="sites-navigation-link">Makerbot</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/-to-do/marketing" jotId="wuid:gx:2adfed792d785c60" class="sites-navigation-link">Marketing</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/-to-do/network-gigupgrade" jotId="wuid:gx:291fa97485a7e602" class="sites-navigation-link">NETWORK - Gig Upgrade</a></div></li><li class="parent closed " wuid="gx:357fa110b75e26b3"><div dir="ltr" style="padding-left: 38px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/-to-do/studio-generaltasks" jotId="wuid:gx:357fa110b75e26b3" class="sites-navigation-link">STUDIO - General Tasks</a></div><ul><li class=""><div dir="ltr" style="padding-left: 76px;"><a href="http://wiki.unlondon.ca/unlab/-to-do/studio-generaltasks/studio-misc-links" jotId="wuid:gx:683c06c41f7259f4" class="sites-navigation-link">Studio Misc Links</a></div></li></ul></li></ul></li><li class="parent closed " wuid="gx:245176a27feb279d"><div dir="ltr" style="padding-left: 19px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/unlab/unlab-projects" jotId="wuid:gx:245176a27feb279d" class="sites-navigation-link">Hacks</a></div><ul><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/3dscanning" jotId="wuid:gx:2195e5e658fe5d72" class="sites-navigation-link">3D Scanning</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/assettags" jotId="wuid:gx:1e6f8f07a0bc6512" class="sites-navigation-link">Asset Tags</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/complete-mindcraftserver" jotId="wuid:gx:41b281a64d2a87fc" class="sites-navigation-link">COMPLETE - Mindcraft Server</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/phone-in-the-unlab" jotId="wuid:gx:462dbaea3a9b5e1d" class="sites-navigation-link">COMPLETE - Phone in the unlab</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/complete-roombabotcam" jotId="wuid:gx:4aa5d0ee05b944b9" class="sites-navigation-link">COMPLETE - RoombaBotCam</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/wwwunlondonca" jotId="wuid:gx:3114bd7942a60a69" class="sites-navigation-link">COMPLETE - www.unlab.ca</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/computersforpodcamp" jotId="wuid:gx:337c7e40811783a" class="sites-navigation-link">Computers for PodCamp</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/copenhagenwheelhack" jotId="wuid:gx:6131298cf3012dfe" class="sites-navigation-link">Copenhagen Wheel Hack</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/deadlinemultimedialinuxrenderfarm" jotId="wuid:gx:5bd73ad4733c181f" class="sites-navigation-link">Deadline Multimedia Linux Render Farm</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/distributedcomputingusingboinc" jotId="wuid:gx:2a19950e0a6d5f9d" class="sites-navigation-link">Distributed Computing using BOINC</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/fretsonfireinstruments" jotId="wuid:gx:e1a21e396c37ff7" class="sites-navigation-link">Frets on Fire Instruments</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/hackinghealthcare" jotId="wuid:gx:73f9decc098efa0e" class="sites-navigation-link">Hacking Healthcare</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/iphonedslrtether" jotId="wuid:gx:52f39518637aacd" class="sites-navigation-link">iPhone dSLR Tether</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/makerbot" jotId="wuid:gx:5832348045d9ad40" class="sites-navigation-link">MakerBot</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/98-legacy/reprap" jotId="wuid:gx:66104a7385468098" class="sites-navigation-link">RepRap</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/minecraft-lightboxdefense" jotId="wuid:gx:67b6203d79c8f7d3" class="sites-navigation-link">Minecraft - Lightbox Defense</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/unlabattendancetaker" jotId="wuid:gx:28085132406d5717" class="sites-navigation-link">unLab Attendance Taker</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/unlondonspeakerseries" jotId="wuid:gx:6e3554614e038d58" class="sites-navigation-link">UnLondon Speaker Series</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/virtualmachineadministrationhack" jotId="wuid:gx:628d66839a876cf3" class="sites-navigation-link">Virtual Machine Administration Hack</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/weatherballoonphotography" jotId="wuid:gx:595fd28ca262ab48" class="sites-navigation-link">Weather Balloon Photography</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/webcammonitoringoftheunlab" jotId="wuid:gx:2d61b773cee6dcec" class="sites-navigation-link">Webcam Monitoring of the UnLab</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/whatcananarduinodoforme" jotId="wuid:gx:391f946ad7068ff9" class="sites-navigation-link">What can an Arduino do for me?</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/wirelesscaptiveportal" jotId="wuid:gx:6828ec093cfdcd92" class="sites-navigation-link">Wireless Captive Portal</a></div></li><li class=""><div dir="ltr" style="padding-left: 57px;"><a href="http://wiki.unlondon.ca/unlab/unlab-projects/wordpressbuddypresstheme" jotId="wuid:gx:50733a3b1061a88" class="sites-navigation-link">WordPress Buddy Press Theme</a></div></li></ul></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/unlab/unlabprivacy" jotId="wuid:gx:33fb0a47c9131e2a" class="sites-navigation-link">Privacy Policy</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/unlab/security-policy" jotId="wuid:gx:34d39086bdf3cb5d" class="sites-navigation-link">Security Policy</a></div></li></ul></li><li class="topLevel parent " wuid="gx:3df5fe44d4d52ec5"><div dir="ltr" style="padding-left: 0px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/events" jotId="wuid:gx:3df5fe44d4d52ec5" class="sites-navigation-link topLevel">Events</a></div><ul><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/events/open-nights" jotId="wuid:gx:aa0d5559c65b3c" class="sites-navigation-link">Open Nights</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/events/gamedev-meetup" jotId="wuid:gx:5f113e7761281675" class="sites-navigation-link">Game Dev Meetup</a></div></li><li class="parent closed " wuid="gx:46e7a20caa8e44d9"><div dir="ltr" style="padding-left: 19px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/events/podcamp" jotId="wuid:gx:46e7a20caa8e44d9" class="sites-navigation-link">PodCamp London</a></div><ul><li class="parent closed " wuid="gx:7a62ec7683e2657d"><div dir="ltr" style="padding-left: 38px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/events/podcamp/2012" jotId="wuid:gx:7a62ec7683e2657d" class="sites-navigation-link">2012</a></div><ul><li class=""><div dir="ltr" style="padding-left: 76px;"><a href="http://wiki.unlondon.ca/events/podcamp/2012/schedule" jotId="wuid:gx:86b9621272cb2db" class="sites-navigation-link">Schedule</a></div></li><li class=""><div dir="ltr" style="padding-left: 76px;"><a href="http://wiki.unlondon.ca/events/podcamp/2012/sessions" jotId="wuid:gx:3bd7a7bb36c92a89" class="sites-navigation-link">Sessions</a></div></li></ul></li></ul></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/events/startup-camp" jotId="wuid:gx:7f99cac3a79656e" class="sites-navigation-link">StartUp Camp</a></div></li></ul></li><li class="topLevel parent " wuid="gx:43d0f6da669bc325"><div dir="ltr" style="padding-left: 0px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/98-legacy" jotId="wuid:gx:43d0f6da669bc325" class="sites-navigation-link topLevel">Legacy</a></div><ul><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/98-legacy/3d-printer-night" jotId="wuid:gx:9fa9cf99a4dde27" class="sites-navigation-link">3D Printer Night</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/98-legacy/gear-tools-and-other-stuff" jotId="wuid:gx:61240772029f80ab" class="sites-navigation-link">Gear, Tools, and Other Stuff</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/98-legacy/hardware-notes" jotId="wuid:gx:5523e22f1e917db0" class="sites-navigation-link">Hardware Notes</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/98-legacy/network-infrastructure" jotId="wuid:gx:6f9b4b095bf1dff9" class="sites-navigation-link">Network Infrastructure</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/98-legacy/overclocking-party" jotId="wuid:gx:668ef982ac696f9c" class="sites-navigation-link">Overclocking Party</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/98-legacy/podcast-studio-brainstorming" jotId="wuid:gx:3820b21e19040f0f" class="sites-navigation-link">Podcast Studio Brainstorming</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/98-legacy/squib" jotId="wuid:gx:35ab4675374bcd2b" class="sites-navigation-link">Squib Network</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/98-legacy/unlab-general-meeting-1" jotId="wuid:gx:3e2ef6d5af586d85" class="sites-navigation-link">UnLab General Meeting 1</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/98-legacy/wiring-party" jotId="wuid:gx:45c9725d3449e3e6" class="sites-navigation-link">Wiring Party</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/98-legacy/wiring-project" jotId="wuid:gx:4ae70edda12beec" class="sites-navigation-link">Wiring Project</a></div></li></ul></li><li class="topLevel "><div dir="ltr" style="padding-left: 19px;"><a href="http://wiki.unlondon.ca/links" jotId="wuid:gx:274fb9b8472c769d" class="sites-navigation-link topLevel">Links</a></div></li><li class="topLevel parent " wuid="gx:6d925a26ec2f149c"><div dir="ltr" style="padding-left: 0px;"><div class="expander"></div><a href="http://wiki.unlondon.ca/updates" jotId="wuid:gx:6d925a26ec2f149c" class="sites-navigation-link topLevel">Updates</a></div><ul><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/updates/20110218-contentmigrated" jotId="wuid:gx:62370e58a95ecbc9" class="sites-navigation-link">20110218 - Content Migrated</a></div></li><li class=""><div dir="ltr" style="padding-left: 38px;"><a href="http://wiki.unlondon.ca/updates/20120307-zoneequipmentsections" jotId="wuid:gx:3c436b5e5a9912b1" class="sites-navigation-link">20120307 - 'Zone' Equipment Sections</a></div></li></ul></li><li class="topLevel "><div dir="ltr" style="padding-left: 19px;"><a href="http://wiki.unlondon.ca/system/app/pages/sitemap/hierarchy" jotId="wuid:gx:24e2f934e8c88cfd" class="sites-navigation-link topLevel">Sitemap</a></div></li></ul></div></div>
</td>
<td id="sites-canvas-wrapper">
<div id="sites-canvas">
<div id="goog-ws-editor-toolbar-container"> </div>
<div xmlns="http://www.w3.org/1999/xhtml" id="title-crumbs" style="display: none;">
<A dir="ltr" href="http://wiki.unlondon.ca/system">[Untitled]</A>‎ &gt; ‎<A dir="ltr" href="http://wiki.unlondon.ca/system/app">[Untitled]</A>‎ &gt; ‎<A dir="ltr" href="http://wiki.unlondon.ca/system/app/pages">[Untitled]</A>‎ &gt; ‎
</div>
<h3 xmlns="http://www.w3.org/1999/xhtml" id="sites-page-title-header" style="" align="left">
<span id="sites-page-title" dir="ltr">Recent site activity</span>
</h3>
<div id="sites-canvas-main" class="sites-canvas-main">
<table id="sites-content-table" class="sites-layout-hbox" cellspacing="0">
<tbody>
<tr>
<td id="col0">
<div id="sites-recent-activity-wrapper">
<div class="sites-clear">
<table class="sites-table" style="border-top:1px solid #efefef; margin-top: 10px;">
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 20, 2012 8:07 PM</span>
</strong>
</td>
<td>
Paul Graham edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/unlab/assets/tools">Tools to get</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 20, 2012 7:26 PM</span>
</strong>
</td>
<td>
Stuart Clark edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/unlab/assets/tools">Tools to get</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 20, 2012 7:26 PM</span>
</strong>
</td>
<td>
Stuart Clark edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/unlab/assets/tools">Tools to get</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 20, 2012 12:38 PM</span>
</strong>
</td>
<td>
Greg Spiridonov edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/events/gamedev-meetup">Game Dev Meetup</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 20, 2012 12:30 PM</span>
</strong>
</td>
<td>
Greg Spiridonov edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/events/gamedev-meetup">Game Dev Meetup</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 20, 2012 12:18 PM</span>
</strong>
</td>
<td>
Greg Spiridonov created <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/events/gamedev-meetup">GameDev Meetup</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 20, 2012 9:26 AM</span>
</strong>
</td>
<td>
Wess Thornton edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/unlab/workstations">Workstations</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 11:57 PM</span>
</strong>
</td>
<td>
Wess Thornton edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/unlab/chat/eggdrop">EggDrop</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 11:51 PM</span>
</strong>
</td>
<td>
Wess Thornton edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/unlab/chat/eggdrop">EggDrop</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 11:50 PM</span>
</strong>
</td>
<td>
Wess Thornton edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/unlab/chat/eggdrop">EggDrop</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 11:05 PM</span>
</strong>
</td>
<td>
Wess Thornton created <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/unlab/chat/eggdrop">EggDrop</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 4:44 PM</span>
</strong>
</td>
<td>
Wess Thornton edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 4:40 PM</span>
</strong>
</td>
<td>
Wess Thornton edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 4:39 PM</span>
</strong>
</td>
<td>
Wess Thornton attached <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact/titus.png?attredirects=0" dir="ltr">titus.png</a> to <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 4:37 PM</span>
</strong>
</td>
<td>
Wess Thornton attached <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact/wesst.png?attredirects=0" dir="ltr">wesst.png</a> to <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 4:31 PM</span>
</strong>
</td>
<td>
Wess Thornton attached <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact/jonpilon.png?attredirects=0" dir="ltr">jonpilon.png</a>to <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 4:31 PM</span>
</strong>
</td>
<td>
Wess Thornton attached <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact/paulggraham.png?attredirects=0" dir="ltr">paulggraham.png</a> to <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 4:30 PM</span>
</strong>
</td>
<td>
Wess Thornton attached <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact/stuartclark.png?attredirects=0" dir="ltr">stuartclark.png</a> to <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 4:30 PM</span>
</strong>
</td>
<td>
Wess Thornton attached <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact/adam.png?attredirects=0" dir="ltr">adam.png</a> to <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 4:30 PM</span>
</strong>
</td>
<td>
Wess Thornton attached <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact/billdeys.png?attredirects=0" dir="ltr">billdeys.png</a> to<a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 3:47 PM</span>
</strong>
</td>
<td>
Wess Thornton edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/comm">Communications</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 3:45 PM</span>
</strong>
</td>
<td>
Wess Thornton edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 3:39 PM</span>
</strong>
</td>
<td>
Wess Thornton edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 3:35 PM</span>
</strong>
</td>
<td>
Wess Thornton edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
<tr>
<td width="25%">
<strong>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
//<![CDATA[
function JOT_insertRelDate(timestamp, absTimeStr, isSiteLocale, dir) {
var relTimeStr = JOT_formatRelativeToNow(timestamp, isSiteLocale);
if (relTimeStr) {
if (isSiteLocale) {
document.write('<span timestamp="' + timestamp + '" issitelocale="' + isSiteLocale +
'" title="' + absTimeStr + '" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
} else {
document.write('<span timestamp="' + timestamp + '" title="' + absTimeStr +
'" dir="' + dir + '">
' + relTimeStr + '<' + '/span>');
}
} else {
document.write(absTimeStr);
}
}
//]]>
</script>

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">Sep 19, 2012 3:31 PM</span>
</strong>
</td>
<td>
Wess Thornton edited <a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/about/contact">Contact</a>
</td>
</tr>
</table>
<div class="sites-clear">
<p style="_padding-bottom:10px;">
<a xmlns="http://www.w3.org/1999/xhtml" href="http://wiki.unlondon.ca/system/app/pages/recentChanges?offset=25">older</a> | <span xmlns="http://www.w3.org/1999/xhtml" class="disabled">newer</span>
</p>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div> 
</div> 
</td> 
</tr>
</table> 
</div> 
</div> 
<div id="sites-chrome-footer-wrapper">
<div id="sites-chrome-footer-wrapper-inside">
<div id="sites-chrome-footer">
</div>
</div>
</div>
</div> 
</div> 
<div id="sites-chrome-adminfooter-container">
<div xmlns="http://www.w3.org/1999/xhtml" class="sites-adminfooter"><p><a class="sites-system-link" href="https://www.google.com/a/UniversalLogin?service=jotspot&amp;continue=http://sites.google.com/a/unlondon.ca/unlondon/system/app/pages/recentChanges">Sign in</a>|<a class="sites-system-link" href="http://wiki.unlondon.ca/system/app/pages/reportAbuse" target="_blank">Report Abuse</a>|<a class="sites-system-link" href="javascript:;" onclick="window.open(webspace.printUrl)">Print Page</a>|<a class="sites-system-link" href="http://wiki.unlondon.ca/system/app/pages/removeAccess" target="_blank">Remove Access</a>|<span class="sites-system-link">Powered By</span> <b class="powered-by"><a href="http://sites.google.com">Google Sites</a></b></p></div>
</div>
</div> 
</div> 
<div id="sites-chrome-onebar-footer">
</div>

<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
window.jstiming.load.tick('sjl');
</script>

<script xmlns="http://www.w3.org/1999/xhtml" src="http://www.gstatic.com/sites/p/e505e1/system/js/jot_min_view__en.js"></script>
<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
window.jstiming.load.tick('jl');
</script>

<script type="text/javascript">
var pageJs = new sites.pages.SiteTemplatesView();
pageJs.initControls('/site/sites/system/app/pages/meta/dashboard/create-new-site?st=http%3A%2F%2Fwiki.unlondon.ca%2F&amp;title=Basic+');
</script>

<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
sites.Searchbox.initialize(
'sites-searchbox-search-button',
true,
{"object":[{"id":"search-site","action":"/system/app/pages/search","label":"Search this site"}]}['object'],
'search-site',
{"label":"Configure search options...","url":"/system/app/pages/admin/appearance/pageElements"});
</script>

<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
gsites.HoverPopupMenu.createSiteDropdownMenus('sites-header-nav-dropdown', false);
</script>

<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript" defer="true">
JOT_setupNav("2bd", "Navigation", false);
JOT_addListener('titleChange', 'JOT_NAVIGATION_titleChange', 'COMP_2bd');
</script>

<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
setTimeout(function() {
var fingerprint = gsites.date.TimeZone.getFingerprint([]);
gsites.Xhr.send('http://wiki.unlondon.ca/_/tz', null, null, 'GET', null, null, { afjstz: fingerprint });
}, 500);
</script>

<script xmlns="http://www.w3.org/1999/xhtml">
window.onload = function() {
if (false) {
JOT_setMobilePreview();
}
var loadTimer = window.jstiming.load;
loadTimer.tick("ol");
loadTimer["name"] = "load," + webspace.page.type;
window.jstiming.report(loadTimer, {}, 'http://csi.gstatic.com/csi');
}
</script>

<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
JOT_insertAnalyticsCode(false);
</script>

<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
var maestroRunner = new gsites.pages.view.SitesMaestroRunner(
webspace, "en");
maestroRunner.initListeners();
maestroRunner.installEditRender();
</script>

<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript" defer="true">
//<![CDATA[
// Decorate any fastUI buttons on the page with a class of 'goog-button'.
if (webspace.user.hasWriteAccess) {
JOT_decorateButtons();
}

// Fires delayed events.
(function() {
JOT_fullyLoaded = true;
var delayedEvents = JOT_delayedEvents;
for (var x = 0; x < delayedEvents.length; x++) {
var event = delayedEvents[x];
JOT_postEvent(event.eventName, event.eventSrc, event.payload);
}
JOT_delayedEvents = null;
JOT_postEvent('pageLoaded');
})();
//]]>
</script>

<script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript">
JOT_postEvent('decorateGvizCharts');
</script>


<script type="text/javascript">
sites.util.Plus.go('sites-chrome-main');
</script>

<div id="server-timer-div" style="display:none"> </div>
<script>
window.jstiming.load.tick('render');
</script>

</body>
</html>
(–)
(+)

Step 2. Define extraction rules

Global Search Pattern: [?]

{%}

(–)
(+)

Item (repeatable) Search Pattern*: [?]

<span xmlns="http://www.w3.org/1999/xhtml" dir="ltr">{%}</span>{*}
<td>{%}<a{*}
href="{%}"{*}
>{%}</a>{*}

» OK (25 items found)

Below is list of extracted text snippets ({%N}). You can reference them when setting up item properties (see next step).

Clipped Data: [?]

Item 1 <Mon, 24 Sep 2012 06:54:25 GMT>

{%1} = Sep 20, 2012 8:07 PM
{%2} = Paul Graham edited
{%3} = http://wiki.unlondon.ca/unlab/assets/tools
{%4} = Tools to get

Item 2 <Mon, 24 Sep 2012 06:54:24 GMT>

{%1} = Sep 20, 2012 7:26 PM
{%2} = Stuart Clark edited
{%3} = http://wiki.unlondon.ca/unlab/assets/tools
{%4} = Tools to get

Item 3 <Mon, 24 Sep 2012 06:54:23 GMT>

{%1} = Sep 20, 2012 7:26 PM
{%2} = Stuart Clark edited
{%3} = http://wiki.unlondon.ca/unlab/assets/tools
{%4} = Tools to get

Item 4 <Mon, 24 Sep 2012 06:54:22 GMT>

{%1} = Sep 20, 2012 12:38 PM
{%2} = Greg Spiridonov edited
{%3} = http://wiki.unlondon.ca/events/gamedev-meetup
{%4} = Game Dev Meetup

Item 5 <Mon, 24 Sep 2012 06:54:21 GMT>

{%1} = Sep 20, 2012 12:30 PM
{%2} = Greg Spiridonov edited
{%3} = http://wiki.unlondon.ca/events/gamedev-meetup
{%4} = Game Dev Meetup

Item 6 <Mon, 24 Sep 2012 06:54:20 GMT>

{%1} = Sep 20, 2012 12:18 PM
{%2} = Greg Spiridonov created
{%3} = http://wiki.unlondon.ca/events/gamedev-meetup
{%4} = GameDev Meetup

Item 7 <Mon, 24 Sep 2012 06:54:19 GMT>

{%1} = Sep 20, 2012 9:26 AM
{%2} = Wess Thornton edited
{%3} = http://wiki.unlondon.ca/unlab/workstations
{%4} = Workstations

Item 8 <Mon, 24 Sep 2012 06:54:18 GMT>

{%1} = Sep 19, 2012 11:57 PM
{%2} = Wess Thornton edited
{%3} = http://wiki.unlondon.ca/unlab/chat/eggdrop
{%4} = EggDrop

Item 9 <Mon, 24 Sep 2012 06:54:17 GMT>

{%1} = Sep 19, 2012 11:51 PM
{%2} = Wess Thornton edited
{%3} = http://wiki.unlondon.ca/unlab/chat/eggdrop
{%4} = EggDrop

Item 10 <Mon, 24 Sep 2012 06:54:16 GMT>

{%1} = Sep 19, 2012 11:50 PM
{%2} = Wess Thornton edited
{%3} = http://wiki.unlondon.ca/unlab/chat/eggdrop
{%4} = EggDrop

Item 11 <Mon, 24 Sep 2012 06:54:15 GMT>

{%1} = Sep 19, 2012 11:05 PM
{%2} = Wess Thornton created
{%3} = http://wiki.unlondon.ca/unlab/chat/eggdrop
{%4} = EggDrop

Item 12 <Mon, 24 Sep 2012 06:54:14 GMT>

{%1} = Sep 19, 2012 4:44 PM
{%2} = Wess Thornton edited
{%3} = http://wiki.unlondon.ca/about/contact
{%4} = Contact

Item 13 <Mon, 24 Sep 2012 06:54:13 GMT>

{%1} = Sep 19, 2012 4:40 PM
{%2} = Wess Thornton edited
{%3} = http://wiki.unlondon.ca/about/contact
{%4} = Contact

Item 14 <Mon, 24 Sep 2012 06:54:12 GMT>

{%1} = Sep 19, 2012 4:39 PM
{%2} = Wess Thornton attached
{%3} = http://wiki.unlondon.ca/about/contact/titus.png?attredirects=0
{%4} = titus.png

Item 15 <Mon, 24 Sep 2012 06:54:11 GMT>

{%1} = Sep 19, 2012 4:37 PM
{%2} = Wess Thornton attached
{%3} = http://wiki.unlondon.ca/about/contact/wesst.png?attredirects=0
{%4} = wesst.png

Item 16 <Mon, 24 Sep 2012 06:54:10 GMT>

{%1} = Sep 19, 2012 4:31 PM
{%2} = Wess Thornton attached
{%3} = http://wiki.unlondon.ca/about/contact/jonpilon.png?attredirects=0
{%4} = jonpilon.png

Item 17 <Mon, 24 Sep 2012 06:54:09 GMT>

{%1} = Sep 19, 2012 4:31 PM
{%2} = Wess Thornton attached
{%3} = http://wiki.unlondon.ca/about/contact/paulggraham.png?attredirects=0
{%4} = paulggraham.png

Item 18 <Mon, 24 Sep 2012 06:54:08 GMT>

{%1} = Sep 19, 2012 4:30 PM
{%2} = Wess Thornton attached
{%3} = http://wiki.unlondon.ca/about/contact/stuartclark.png?attredirects=0
{%4} = stuartclark.png

Item 19 <Mon, 24 Sep 2012 06:54:07 GMT>

{%1} = Sep 19, 2012 4:30 PM
{%2} = Wess Thornton attached
{%3} = http://wiki.unlondon.ca/about/contact/adam.png?attredirects=0
{%4} = adam.png

Item 20 <Mon, 24 Sep 2012 06:54:06 GMT>

{%1} = Sep 19, 2012 4:30 PM
{%2} = Wess Thornton attached
{%3} = http://wiki.unlondon.ca/about/contact/billdeys.png?attredirects=0
{%4} = billdeys.png

Item 21 <Mon, 24 Sep 2012 06:54:05 GMT>

{%1} = Sep 19, 2012 3:47 PM
{%2} = Wess Thornton edited
{%3} = http://wiki.unlondon.ca/about/comm
{%4} = Communications

Item 22 <Mon, 24 Sep 2012 06:54:04 GMT>

{%1} = Sep 19, 2012 3:45 PM
{%2} = Wess Thornton edited
{%3} = http://wiki.unlondon.ca/about/contact
{%4} = Contact

Item 23 <Mon, 24 Sep 2012 06:54:03 GMT>

{%1} = Sep 19, 2012 3:39 PM
{%2} = Wess Thornton edited
{%3} = http://wiki.unlondon.ca/about/contact
{%4} = Contact

Item 24 <Mon, 24 Sep 2012 06:54:02 GMT>

{%1} = Sep 19, 2012 3:35 PM
{%2} = Wess Thornton edited
{%3} = http://wiki.unlondon.ca/about/contact
{%4} = Contact

Item 25 <Mon, 24 Sep 2012 06:54:01 GMT>

{%1} = Sep 19, 2012 3:31 PM
{%2} = Wess Thornton edited
{%3} = http://wiki.unlondon.ca/about/contact
{%4} = Contact

(–)
(+)

Step 3. Define output format

RSS feed properties

Feed Title*: [?]

Recent site activity - unWiki

Feed Link*: [?]

http://wiki.unlondon.ca/system/app/pages/recentChanges

Feed Description*: [?]

Recent site activity - unWiki

RSS item properties

Item Title Template*: [?]

Recently Updated:  {%4}

Item Link Template*: [?]

Item Content Template*: [?]

<P>On {%1}, {%2} <a href="{%3}" TITLE="{%4}" ALT="{%4}">{%4}</A></P>

(–)
(+)

Merge all items into single one, optionally applying global template: [?]

(–)
(+)
» OK (Preview mode)

Here is how your feed will look like in feed reader. Go to next step to get the link to your feed.

Feed Preview: [?]

Recent site activity - Wiki

Recent site activity - Wiki
  1. Recently Updated: Tools to get

    On Sep 20, 2012 8:07 PM, Paul Graham edited Tools to get

    -- Delivered by Feed43 service

  2. Recently Updated: Tools to get

    On Sep 20, 2012 7:26 PM, Stuart Clark edited Tools to get

    -- Delivered by Feed43 service

  3. Recently Updated: Tools to get

    On Sep 20, 2012 7:26 PM, Stuart Clark edited Tools to get

    -- Delivered by Feed43 service

  4. Recently Updated: Game Dev Meetup

    On Sep 20, 2012 12:38 PM, Greg Spiridonov edited Game Dev Meetup

    -- Delivered by Feed43 service

  5. Recently Updated: Game Dev Meetup

    On Sep 20, 2012 12:30 PM, Greg Spiridonov edited Game Dev Meetup

    -- Delivered by Feed43 service

  6. Recently Updated: GameDev Meetup

    On Sep 20, 2012 12:18 PM, Greg Spiridonov created GameDev Meetup

    -- Delivered by Feed43 service

  7. Recently Updated: Workstations

    On Sep 20, 2012 9:26 AM, Wess Thornton edited Workstations

    -- Delivered by Feed43 service

  8. Recently Updated: EggDrop

    On Sep 19, 2012 11:57 PM, Wess Thornton edited EggDrop

    -- Delivered by Feed43 service

  9. Recently Updated: EggDrop

    On Sep 19, 2012 11:51 PM, Wess Thornton edited EggDrop

    -- Delivered by Feed43 service

  10. Recently Updated: EggDrop

    On Sep 19, 2012 11:50 PM, Wess Thornton edited EggDrop

    -- Delivered by Feed43 service

  11. Recently Updated: EggDrop

    On Sep 19, 2012 11:05 PM, Wess Thornton created EggDrop

    -- Delivered by Feed43 service

  12. Recently Updated: Contact

    On Sep 19, 2012 4:44 PM, Wess Thornton edited Contact

    -- Delivered by Feed43 service

  13. Recently Updated: Contact

    On Sep 19, 2012 4:40 PM, Wess Thornton edited Contact

    -- Delivered by Feed43 service

  14. Recently Updated: titus.png

    On Sep 19, 2012 4:39 PM, Wess Thornton attached titus.png

    -- Delivered by Feed43 service

  15. Recently Updated: wesst.png

    On Sep 19, 2012 4:37 PM, Wess Thornton attached wesst.png

    -- Delivered by Feed43 service

  16. Recently Updated: jonpilon.png

    On Sep 19, 2012 4:31 PM, Wess Thornton attached jonpilon.png

    -- Delivered by Feed43 service

  17. Recently Updated: paulggraham.png

    On Sep 19, 2012 4:31 PM, Wess Thornton attached paulggraham.png

    -- Delivered by Feed43 service

  18. Recently Updated: stuartclark.png

    On Sep 19, 2012 4:30 PM, Wess Thornton attached stuartclark.png

    -- Delivered by Feed43 service

  19. Recently Updated: adam.png

    On Sep 19, 2012 4:30 PM, Wess Thornton attached adam.png

    -- Delivered by Feed43 service

  20. Recently Updated: billdeys.png

    On Sep 19, 2012 4:30 PM, Wess Thornton attached billdeys.png

    -- Delivered by Feed43 service

  21. Recently Updated: Communications

    On Sep 19, 2012 3:47 PM, Wess Thornton edited Communications

    -- Delivered by Feed43 service

  22. Recently Updated: Contact

    On Sep 19, 2012 3:45 PM, Wess Thornton edited Contact

    -- Delivered by Feed43 service

  23. Recently Updated: Contact

    On Sep 19, 2012 3:39 PM, Wess Thornton edited Contact

    -- Delivered by Feed43 service

  24. Recently Updated: Contact

    On Sep 19, 2012 3:35 PM, Wess Thornton edited Contact

    -- Delivered by Feed43 service

  25. Recently Updated: Contact

    On Sep 19, 2012 3:31 PM, Wess Thornton edited Contact

    -- Delivered by Feed43 service

(–)
(+)

Step 4. Get your RSS feed

» Feed URL is: /unwiki_recentchanges.xml [?]

Point your news aggregator to this URL or test this feed in browser.

» Edit URL is: /feed.html?name=unwiki_recentchanges [?]

Please save this link for future use.

Optional features

» Change file name of this feed to make it more user-friendly [?]

unwiki_recentchanges

» Add this feed to my account [?]

» Protect feed from being edited [?]

» Make this feed private [?]

» Send me summary e-mail with feed name, URL, etc. [?]

» Finished with this feed? Create another one
Add to feedburner:
www.feedburner.com <--  http://www.feed43.com/unwiki_recentchanges.xml 

Add to WordPress Theme Code:

<h4 class="featuredtitle"><?php echo '<a href="http://wiki.unlondon.ca/system/app/pages/recentChanges">unWiki - Recent site activity</a>'; ?></h4>
<div class="homepost">
    <?php // import rss feed
        if(function_exists('fetch_feed')) {
            // fetch feed items
            $rss = fetch_feed('http://feeds.feedburner.com/RecentSiteActivity-UnWiki');
            if(!is_wp_error($rss)) : // error check
                $maxitems = $rss->get_item_quantity(7); // number of items
                $rss_items = $rss->get_items(0, $maxitems);
            endif;
            // display feed items ?>
            <?php if($maxitems == 0) echo '<p>Feed not available.</p>'; // if empty
            else foreach ($rss_items as $item) : ?>
            <?php
                //Slim down content.
                $search = array('<p><sub><i>-- Delivered by <a href="http://feed43.com/">Feed43</a> service</i></sub></p>','<P>','</P>');
              $replace = array('', '', '<br />');
              $feeder = str_replace($search, $replace, $item->get_description());
                echo $feeder;
            ?>
        <?php endforeach; ?>
    <?php } ?>
</div>

COMPLETE - www.unlab.ca

posted Mar 22, 2012, 6:46 AM by Kevin Van Lierop   [ updated Apr 18, 2012, 5:16 AM ]

The UnLab.ca specific website has been finished although we're just waiting to test out the membership registration functionality of it. Once that is ready to go it will be made public knowledge (although it is live right now).

A temporary UnLondon.ca website has been created and just needs to wait on a domain transfer to take place to make it live. This is to be a temporary site until something more streamlined (as discussed by members of UnLondon) can be created.


Ok, so I'm sick and tired of the unlondon.ca website to put it bluntly. Yes, I realize when it was created it was done so quickly and to serve a specific purpose but I think it badly needs an update.

What I'm proposing isn't anything that drastic but I think something needs to be done.

##Needs

Here are my thoughts:

- need to re-look at the 'architecture' of the site and see what is necessary and what isn't
- need to re-consider the need for the multi-user site/directory (perhaps use a mailing list instead)
- need to streamline the registration process for the unlab memberships
- need to have a formal unlab page until a more functional website for it gets built (currently http://unlab.unlondon.ca/)
- we need to highlight the successes/projects/events that unlondon has contributed to thus far
- we need to recognize supporters of the organization (Research Park (space), rtraction (upcoming phone) etc.)
- we need to make it overall more inviting and understandable for people. 

Oh, and when I say 'need' I don't mean these are what we have to do, simply my thoughts at the moment.

##Template

I was thinking using a simple Wordpress template that can be tweaked to function for whatever the needs are that we have. I came across this: http://organicthemes.com/demo/verbage/ and think it could work. We could use other available tools to integrate with it (google calendar, Jot Forms) to make it work for us. 

I don't think any heavy coding is needed, lets not make this more complicated than it needs to be.

##Moving Forward

I'd like to get this up and going as soon as possible, before PodCamp London (June 2012), so that we have something to showcase, share and to drive interest.

I'm willing to work with anyone who wants to help out, just let me know on the twitters @kvl

I realize there should be an UnLondon meeting coming up BUT I don't think this should wait, I think this needs to get moving.






Mumble Server

posted Mar 13, 2012, 8:49 AM by Jon Pilon

Description

 

I've set up a mumble server for use with the Unlab and anything else you might need. This can be used for VOIP or Voice chat during video games, etc.

 

Prior Work

Installed the mumble server (Murmur) as found here: http://mumble.sourceforge.net/Main_Page

 

Resources

Server IP: 198.20.49.65

Port: 64738

Everything should be up and running, If you need to make new channels or anything, send me a message and I can add you as an administrator.


Hopefully it all works!

 

Team

Jon Pilon

with assistance of Gavin Blair

Asset Tags

posted Feb 18, 2012, 8:57 AM by Unknown user

The goal is to create a concise asset tag we can add to big equipment. Ideally it should contain:

Asset Name
URL to Wiki Asset Entry
QR Code of Wiki URL
Who owns the asset (Unlab or a member)
Whether it's OK to hack or not

(Shamelessly ripped from Pumping Station: One's labelling system) (and shamlessly ripped from Kwartzlab!)
Samples

Sample Asset Tags: Media:Asset_Tags_1.odt
Online QR Code Generator
Template uses Avery #5163 US Letter Shipping Labels 

3D Scanning

posted Feb 18, 2012, 8:56 AM by Unknown user

Description

Interested in efficient, accessible DIY 3D scanning.

[edit]
Prior Work

The MakerScanner is one possible starting point. Documentation, hardware and software details are all on the site.

[edit]
Resources

MakerScanner is at the UnLab. It's created usable point clouds, but I haven't had time for any post-processing with Blender yet.

There's also a Kinect that could be used...?

Kinect and Processing

OpenKinect

[edit]
Team

Devon Elliott

Hacking Healthcare

posted Feb 18, 2012, 8:56 AM by Unknown user

Description

Interested in developing/working on technology to assist individuals (frontline workers/point of care) and address system level issues (ie. social determinants of health; engaging the public in access to care/resources). Also would like to develop more educational tools to help health professionals learn how to use social media technologies (ie. video tutorials).

[edit]
Prior Work

Examples of individual level:

Apps that support frontline work such as: 

http://www.rnao.org/Page.asp?PageID=924&ContentID=3282 - This app brings Best Practice to the bedside.


Examples of system level: 

http://whoissick.org/ - This is an open data product that allows the community to post and map the symptoms of their illness for others to see.   

 

Examples of tutorials:

http://nursekama.com - See "tutorials", teaching health professionals (ie. nurses) how they could be utilizing social media 


Examples from other cities' of Health Hacks and projects currently underway in Boston:

Making for Health

[edit]
Resources

passionate people

software

computers 

[edit]Team

Kama Kalia @nursekama


Need people to brainstorm with...people who think outside the box.

Need software developers/programmers

Need people who like creating videos/tutorials

Someone with a nice voice for audio recording


Would like to start meetings in February 2011.

Please contact @nursekama if interested.

What can an Arduino do for me?

posted Feb 18, 2012, 8:50 AM by Unknown user

Intro

Arduinos are small, affordable microcontrollers developed for artists and non-technical users. Basically, you can hook up inputs and outputs that can be read or activated according to the program you make for it. There's a significant user base where one can look for libraries, code, and project ideas.

Let's get some Arduinos, sensors, motors, and other things that Arduinos can control, along with people interested in working with them, together at the UnLab. "Hello World" circuits for those new to the Arduino, and hopefully more from those who've worked with them before.

Can we integrate some of the data projects created via the UnLab with the physical world?

[edit]Who's interested?

Devon Elliott

Gavin Blair

Paul Gingerich

Computers for PodCamp

posted Feb 18, 2012, 8:43 AM by Unknown user

Mentioned by Bill Deys. I'm posting it so we don't forget it.

Description

Setup several machines that can be used with the projectors for presentation units for Podcamps and other events.

 

Prior Work

Need machines probably running windows.  Static IP to make life easier perhpas

 

Resources

Computers, O/S Presentation software.

 

There are quite a large number of HP/Compaq PC's running XP that would be more then suitable for the task, they just need antivirus / open office installed to them.  How many would we need for podcamp?

 

Team

Stuart Clark + anyone else who wants to help.

1-10 of 26