PairProgrammingAndCodeReviewInTheCloud
Dev Week -- Pair Programming and Code Review in the Cloud! -- kirkland -- Thu, 3rd Feb, 2012
1 [18:31] <kirkland> welcome all!
2 [18:31] <kirkland> okay, this will be a totally live/interactive session
3 [18:31] <kirkland> please ssh guest@classroom.gazzang.net
4 [18:31] <kirkland> password is 'guest'
5 [18:31] <kirkland> you'll have read only access there
6 [18:31] <kirkland> where I'm going to demo some neat practices for pair programming and code review in the cloud!
7 [18:32] <kirkland> for the best experience, you may want to maximize your window
8 [18:32] <kirkland> or expand it to at least 180x45 characters
9 [18:32] <kirkland> you may want to use ctrl - to decrease font size (in gnome-terminal anyway)
10 [18:32] <kirkland> there's a clicker at the bottom, counting the number people in the session
11 [18:32] <kirkland> i see "14#" at the bottom
12 [18:33] <kirkland> I've used byobu many, many times for these sessions
13 [18:33] <kirkland> but this is the *first* time I've used byobu + tmux ;-)
14 [18:33] <kirkland> we'll see how it goes!
15 [18:33] <kirkland> okay, now that we've got a good count of people in here, let's get started
16 [18:34] <kirkland> in that shared screen session, I'm running IRSSI, a command line irc client
17 [18:34] <kirkland> you can stay connected there (here?) and see what I'm typing
18 [18:34] <kirkland> no need to go back and forth between the terminal session and your chat client
19 [18:34] <kirkland> these are a handful of best practices me and my colleagues around Canonical, Ubuntu, and Gazzang have used over the last few years
20 [18:34] <kirkland> that have really made working with people around the world a lot easier
21 [18:34] <kirkland> chief among these (for me) has been shared GNU screen and now Tmux sessions, in EC2
22 [18:35] <kirkland> we're able to avoid firewalls and networking/routing issues by "meeting in the middle"
23 [18:35] <kirkland> one or more of us can easily ssh into an EC2 machine
24 [18:35] <kirkland> and these instances can cost as little as $0.02/hour
25 [18:35] <kirkland> now, this one, is a big one ;-)
26 [18:35] <kirkland> 32 cpus and 60GB of memory
27 [18:35] <kirkland> for a "whopping" $2.40/hour :-)
28 [18:36] <kirkland> anyway, this system is running Ubuntu 11.10, plus an updated version of byobu and tmux from ppa:byobu/ppa
29 [18:36] <kirkland> you all who are logged in as the 'guest' user
30 [18:36] <kirkland> are attached to a readonly GNU screen session
31 [18:36] <kirkland> which is wrapped around a tmux session
32 [18:36] <kirkland> which is being driven by my 'ubuntu' user
33 [18:37] <kirkland> for which I'm the only person with access
34 [18:37] <kirkland> that's just for display here
35 [18:37] <kirkland> but if you want to see how to set that up, see the Juju charm 'byobu-classroom'
36 [18:37] <kirkland> in most cases, when I'm doing this with my trusted colleagues
37 [18:37] <kirkland> we just share the same ubuntu account
38 [18:37] <kirkland> and both of us have read/write access
39 [18:38] <kirkland> I'm sure you can appreciate all the things that might go wrong if I gave 27 of you simultaneous read/write access ;-)
40 [18:38] <kirkland> mayhem :-D
41 [18:38] <kirkland> okay, so let's first feel our way around this session
42 [18:38] <kirkland> first, I'll press shift-F1 to display the help/keybindings
43 [18:38] <kirkland> here, i can see that byobu binds a bunch of actions to the F keys
44 [18:39] <kirkland> I'll quickly work my way through a couple of them
45 [18:39] <kirkland> F2 creates new windows, and F3/F4 will move right and left between them
46 [18:39] <kirkland> you won't be able to do that here in our shared session
47 [18:39] <kirkland> but you can do that on your local ubuntu computer by running 'byobu-tmux' on your command line
48 [18:39] <kirkland> so now i hit F2 3 times
49 [18:39] <kirkland> and have windows 0, 1, 2, 3
50 [18:40] <kirkland> and i can press F3 and F4 to move right and left among them
51 [18:40] <kirkland> i'm going to run the 'top' command in window 3
52 [18:40] <kirkland> and now i'm going to rename window 3 to say "top" by pressing F8
53 [18:40] <kirkland> and i'll rename window 0 to "irc" with F8 as well
54 [18:41] <kirkland> okay, so windows are one way of multi tasking
55 [18:41] <kirkland> but spliting the screen is far more interesting!
56 [18:41] <kirkland> ctrl-F2 will split the screen vertically
57 [18:41] <kirkland> and shift-F2 will split the screen horizontall
58 [18:41] <kirkland> and I can keep doing that pretty much ad nauseum!
59 [18:41] <kirkland> note that splits are per-window
60 [18:41] <kirkland> so if I go over to window 3
61 [18:42] <kirkland> i won't see any splits there, until I create them
62 [18:42] <kirkland> so much space over on the left of window 3
63 [18:42] <kirkland> i'll create another split there :-)
64 [18:42] <kirkland> moving between windows is F3/F4
65 [18:42] <kirkland> moving between splits is Shift-Up/Down/Left/Right
66 [18:43] <kirkland> and you should see the split highlighted in purple
67 [18:43] <kirkland> that's your active split
68 [18:43] <kirkland> as well as some numbers that pop up and identify them
69 [18:43] <kirkland> you can jump directly to a number split if you want
70 [18:43] <kirkland> so let's start doing some work in one of these splits
71 [18:43] <kirkland> i have downloaded the source code of libreoffice
72 [18:43] <kirkland> as well as its build dependencies
73 [18:43] <kirkland> let's see it build on a 32 processor system :-)
74 [18:44] <kirkland> and we'll pretend that we're pair programmers working on some big build
75 [18:44] <kirkland> i really like colorized logs
76 [18:44] <kirkland> so I'm going to pipe the output of debuild through ccze
77 [18:44] <kirkland> and that'll take a while :-)
78 [18:45] <kirkland> lets say that I want to break that split out to a window of its own
79 [18:45] <kirkland> as I really don't need to see that build right now
80 [18:45] <kirkland> pressing Shift-F1, I'll get the menu again
81 [18:45] <kirkland> and I can see that Alt-F11 will expand a split to a full window
82 [18:46] <kirkland> so now we have the libreoffice build happening in window 4
83 [18:46] <kirkland> now, let's look at some source code
84 [18:46] <kirkland> i'm going to install a web application
85 [18:46] <kirkland> we're going to debug a problem
86 [18:46] <kirkland> tail some logs
87 [18:46] <kirkland> and debug it in real time
88 [18:47] <kirkland> I'm going to install pictor
89 [18:47] <kirkland> a web application for browsing pictures over a web interface
90 [18:47] <kirkland> something like picasa, I suppose
91 [18:47] <kirkland> you can point a browser at http://classroom.gazzang.net/pictor
92 [18:47] <kirkland> and you'll see that we need to seed it with some images
93 [18:48] <kirkland> i'm going to grab some packages
94 [18:48] <kirkland> from ubuntu that serve wall papers
95 [18:48] <kirkland> now let's install some symlinks
96 [18:48] <kirkland> to our pictures
97 [18:49] <kirkland> and pretend that's what we want pictor to serve
98 [18:49] <kirkland> now let's tail our apache logs
99 [18:49] <kirkland> in another split
100 [18:50] <kirkland> I can see a few of you browsing that site now :-)
101 [18:50] <kirkland> let's tail the error log now
102 [18:50] <kirkland> I'm going to resize my splits now
103 [18:50] <kirkland> using Ctrl-Up/Down/Left/Right
104 [18:51] <kirkland> busy busy busy :-)
105 [18:51] <kirkland> now
106 [18:51] <kirkland> perhaps you've noticed our bug
107 [18:51] <kirkland> http://classroom.gazzang.net/pictor/?album=%2Fbackdrops&thumbs=1
108 [18:51] <kirkland> the "backdrops" album is empty
109 [18:51] <kirkland> I wonder why ....
110 [18:52] <kirkland> hmm, so the files in the backdrops directory are png's
111 [18:52] <kirkland> meanwhile, the "working" ones are .jpgs
112 [18:53] <kirkland> let's hack it into the code, then
113 [18:53] <kirkland> this is the point at which
114 [18:53] <kirkland> you and your team
115 [18:53] <kirkland> perhaps pair programming
116 [18:53] <kirkland> might dig through the code and find the bug
117 [18:54] <kirkland> i'm going to search this code for hardcoded "jpg" references
118 [18:54] <kirkland> aha!
119 [18:54] <kirkland> there's an is_image() function
120 [18:54] <kirkland> that looks for files ending in "jpg" and "jpeg"
121 [18:54] <kirkland> let's try adding ".png"
122 [18:54] <kirkland> now refresh
123 [18:54] <kirkland> lovely!
124 [18:54] <kirkland> of course, I just made that change directly on the /usr/share source code
125 [18:54] <kirkland> if we wanted to do this right, we should branch bzr and submit the change
126 [18:54] <kirkland> let's do that very quickly
127 [18:55] <kirkland> there's our 1-line change
128 [18:55] <kirkland> in our bzr cdiff
129 [18:56] <kirkland> and there we have it!
130 [18:56] <kirkland> I'll make sure to credit all of #ubuntu-classroom when I commit this fix later today ;-)
131 [18:56] <kirkland> let's go back and check our office build, out of curiosity
132 [18:57] <kirkland> still chugging along
133 [18:57] <kirkland> are you getting a feel for how this works?
134 [18:57] <kirkland> we use it often for education (like this!)
135 [18:57] <kirkland> where one person is trying to teach one or more how to do something
136 [18:58] <kirkland> but it's also phenomenally useful for debugging complex problems
137 [18:58] <kirkland> johnny-e> QUESTION: is your byobu is using tmux instead of screen?
138 [18:58] <kirkland> johnny-e: well, it's a bit of both
139 [18:58] <kirkland> what you're SEEING is byobu + tmux
140 [18:58] <kirkland> the one line across the bottom
141 [18:58] <kirkland> and the elegant splits
142 [18:58] <kirkland> yes, that's tmux
143 [18:59] <kirkland> but the thing that's keep all of you with readonly access is a wrapper of GNU screen
144 [18:59] <kirkland> though that's entirely transparent to you
145 [18:59] <kirkland> <ssweeny-lernid> QUESTION: ​ so the double layer of tmux + screen is only because of the need for read-only in this session?
146 [18:59] <kirkland> ssweeny-lernid: yes, exactly
147 [18:59] <kirkland> ssweeny-lernid: when you do this with your friends/colleagues, it'll be trivial to setup
148 [18:59] <kirkland> (this configuration took me a few minutes)
149 [18:59] <kirkland> here's what you'll do ...
150 [18:59] <kirkland> get an Ubuntu system running somewhere
151 [19:00] <kirkland> the "cloud" is nice, because it removes the need for VPNs or fancy routing
152 [19:00] <kirkland> but you could certainly use a physical local system or a VM
153 [19:00] <kirkland> next, you could very conveniently use the ssh-import-id command
154 [19:00] <kirkland> this is also a very useful tool to have in your toolbelt when doing pair programming and code review in the cloud
155 [19:01] <kirkland> you can 'ssh-import-id SOME_LAUNCHPAD_USERNAME'
156 [19:01] <kirkland> and it will securely (over https) connect to Launchpad
157 [19:01] <kirkland> and retrieve that user's public SSH keys and insert them into the local authorized_keys file
158 [19:01] <kirkland> in this way, you can avoid needing to share passwords
159 [19:01] <kirkland> i would have done that today for this session
160 [19:02] <kirkland> but I'm not sure how long it would have taken to import all 29 of you ;-)
161 [19:02] <kirkland> actually, just before we sign off, I'll import your keys
162 [19:02] <kirkland> and let you trash this system for a few seconds before I terminate it :-P
163 [19:03] <kirkland> <jsnapp> QUESTION: do you have any problems nesting byobu? like running byobu on my desktop and on my server?
164 [19:03] <kirkland> well, yeah, kinda sorta
165 [19:03] <kirkland> nesting byobu can get complex
166 [19:03] <kirkland> when doing so, you'll need to know the tmux and/or screen key bindings
167 [19:03] <kirkland> and I'd recommend using two different escape sequences
168 [19:03] <kirkland> i use ctrl-a for mour outter session
169 [19:03] <kirkland> and ctrl-b for my inner session
170 [19:04] <kirkland> otherwise, byobu doesn't know which session you're talking to :-)
171 [19:04] <kirkland> <sinisterstuf> QUESTION: I was reading the gnu screen man pages, do you need to set up screen in a specific way to do this? I read something about giving the program root permission or something...
172 [19:04] <kirkland> sinisterstuf: yeah, here's the magic ...
173 [19:04] <kirkland> sinisterstuf: follow me over in the shared session
174 [19:04] <kirkland> you can grab the bzr branch from http://bazaar.launchpad.net/~charmers/charms/oneiric/byobu-classroom/trunk/
175 [19:05] <kirkland> see hooks/install
176 [19:05] <kirkland> [ -f /usr/share/byobu/profiles/classroom ] || echo "
177 [19:05] <kirkland> aclumask guest+r guest-w guest-x
178 [19:05] <kirkland> aclchg guest +r-w-x '#?'
179 [19:05] <kirkland> aclchg guest +x 'detach'
180 [19:05] <kirkland> multiuser on
181 [19:05] <kirkland> escape "^Bb"
182 [19:05] <kirkland> " > /usr/share/byobu/profiles/classroom
183 [19:05] <kirkland> chmod 644 /usr/share/byobu/profiles/classroom
184 [19:05] <kirkland> that's most of it
185 [19:05] <kirkland> that changes the acls of the guest user to read only
186 [19:05] <kirkland> also, I tweaked the ssh config
187 [19:06] <kirkland> so that the *only* command that the guest user can run on ssh in is to attach to the byobu session
188 [19:06] <kirkland> echo "
189 [19:06] <kirkland> PasswordAuthentication yes
190 [19:06] <kirkland> AllowTcpForwarding no
191 [19:06] <kirkland> Match User guest
192 [19:06] <kirkland> ForceCommand exec screen -x ubuntu/byobu-classroom
193 [19:06] <kirkland> " >> /etc/ssh/sshd_config
194 [19:06] <kirkland> <jsnapp> QUESTION: so do you typically nest byobu or just run it in the server?
195 [19:06] <kirkland> jsnapp: I almost never nest byobu
196 [19:06] <kirkland> but that's a good question
197 [19:06] <kirkland> around what I find as best practices for this...
198 [19:06] <kirkland> so I run gnome-terminal (or terminator)
199 [19:06] <kirkland> at full screen
200 [19:06] <kirkland> I use multiple tabs
201 [19:07] <kirkland> but each tab is an ssh session to another server
202 [19:07] <kirkland> in each tab, I run byobu
203 [19:07] <kirkland> which is nice because I can always attach and detach
204 [19:07] <kirkland> actually ... that's a good exercise
205 [19:07] <kirkland> I invite you to detach from the shared session
206 [19:07] <kirkland> using F6
207 [19:07] <kirkland> and then reattach
208 [19:07] <kirkland> by ssh'ing back in
209 [19:07] <kirkland> ssh guest@classroom.gazzang.net
210 [19:08] <kirkland> you'll see that everything is *exactly* as you left it
211 [19:08] <kirkland> I've just done the same thing
212 [19:08] <kirkland> detached
213 [19:08] <kirkland> and then reattached
214 [19:08] <kirkland> this is your lifeline savior when you have a crappy uplink connection :-)
215 [19:08] <kirkland> it would stink to have this office build die
216 [19:08] <kirkland> just because your ssh session had a hiccup
217 [19:09] <kirkland> now
218 [19:09] <kirkland> each time I need a new shell
219 [19:09] <kirkland> I can either create a new window (F2)
220 [19:09] <kirkland> or a new split (Ctrl-F2/Shift-F2)
221 [19:09] <kirkland> I tend to group similar shells with splits
222 [19:09] <kirkland> so if I'm working on libreoffice in one window
223 [19:09] <kirkland> i might have a handful of related splits
224 [19:09] <kirkland> maybe one building
225 [19:09] <kirkland> maybe one with code
226 [19:09] <kirkland> maybe two with code, side by side
227 [19:10] <kirkland> one for testing, etc.
228 [19:10] <kirkland> one tailing log files
229 [19:10] <kirkland> much like what we're looking at in window 0
230 [19:10] <kirkland> with 2 logs
231 [19:10] <kirkland> and one code
232 [19:10] <kirkland> oh, let's rearrange the windows
233 [19:10] <kirkland> let's say I want to move the access log left or right one split
234 [19:10] <kirkland> I use Ctrl-F3/F4
235 [19:11] <kirkland> I can do that with any of the splits
236 [19:11] <kirkland> also, there's a handful of predefined, useful arrange ments
237 [19:11] <kirkland> you can Shift-F8 will toggle through them
238 [19:11] <kirkland> here's equal vertical windows
239 [19:12] <kirkland> or equal horizontal windows
240 [19:12] <kirkland> here's one big one across the top
241 [19:12] <kirkland> and a bunch of verticals across the bottom
242 [19:12] <kirkland> or (probably my favorite)
243 [19:12] <kirkland> one vertical (where I look at my source code)
244 [19:12] <kirkland> and 3 more, where I tail my logs
245 [19:12] <kirkland> I'm going to move my source code over to the left split with Ctrl-F3
246 [19:13] <kirkland> ah, that's nice
247 [19:13] <kirkland> I can save a particular split arrangement
248 [19:13] <kirkland> Ctrl-Shift-F8 Save the current split-pane layout
249 [19:13] <kirkland> and then restore it later
250 [19:13] <kirkland> Ctrl-F8 Restore a split-pane layout
251 [19:14] <kirkland> there's a menu of the predefined ones, and my saved one, 'favorite'
252 [19:14] <kirkland> oh, let's see tiled as well
253 [19:14] <kirkland> also nice
254 [19:14] <kirkland> it's lovely that *all* of this is happening over ONE single ssh connection
255 [19:14] <kirkland> we have over a dozen shells open
256 [19:14] <kirkland> doing some very busy things
257 [19:14] <kirkland> but just 1 ssh session to the server
258 [19:15] <kirkland> and it's all preserved across attaches and detaches
259 [19:15] <kirkland> <kermit666> QUESTION: ​ Is it possible to do something similar using "ssh -X" to share a desktop in readonly mode when you're working in an IDE?
260 [19:15] <kirkland> kermit666: not that I know of, sorry :-(
261 [19:15] <kirkland> <johnny-e> QUESTION: so you're runing byobu on each server you connect to
262 [19:15] <kirkland> yes, always
263 [19:15] <kirkland> johnny-e: you can set that easily on a per-user basis with 'byobu-enable'
264 [19:16] <kirkland> johnny-e: or, you can set that on a system wide basis with 'dpkg-reconfigure byobu'
265 [19:16] <kirkland> HOWEVER
266 [19:16] <kirkland> the best way to do it, I believe
267 [19:16] <kirkland> is by adding a one-liner to your LOCAL ~/.bashrc file
268 [19:16] <kirkland> export LC_TERMTYPE=byobu
269 [19:16] <kirkland> put that in your local ~/.bashrc
270 [19:17] <kirkland> and any time you ssh to a system with a (recent) version of byobu
271 [19:17] <kirkland> this script, /etc/profile.d/Z97-byobu.sh
272 [19:17] <kirkland> will see that you've selected your TERMTYPE to byobu and it will try to launch it by default at startup!
273 [19:17] <kirkland> <caotic> QUESTION: what if i had an extra view which i would like to toggle on or off ?
274 [19:17] <kirkland> caotic: I don't understand your question, can you clarify please?
275 [19:18] <kirkland> <jsnapp> QUESTION: how are you keeping other users screen size from affecting your byobu session? is it the read only access?
276 [19:18] <kirkland> jsnapp: oh, that's a great question
277 [19:18] <kirkland> a *very* hard one as well
278 [19:18] <kirkland> jsnapp: I have overriden the default byobu setting
279 [19:19] <kirkland> jsnapp: normally, byobu sets the tmux option aggressive-resize 'on'
280 [19:19] <kirkland> jsnapp: however, what that means is that everyone is limited by the smallest attached screen
281 [19:19] <kirkland> jsnapp: with 29 of you, one of you could have set your screen to 80x25 and limited all of us
282 [19:19] <kirkland> jsnapp: in some case (most?) that might be the right answer
283 [19:19] <kirkland> jsnapp: but for this demo, it wasn't, sorry
284 [19:19] <kirkland> jsnapp: so I set that to 'off' for this session
285 [19:19] <kirkland> <johnny-e> QUESTION: can you assign names to your custom split-pane layouts?
286 [19:20] <kirkland> johnny-e: yes, absolutely, just press ctrl-shift-F8
287 [19:20] <kirkland> johnny-e: and it'll prompt you to name it
288 [19:20] <ClassBot> There are 10 minutes remaining in the current session.
289 [19:20] <kirkland> johnny-e: in your ~/.byobu directory, you'll see a layouts dir
290 [19:20] <kirkland> johnny-e: I named my "favorite"
291 [19:20] <kirkland> johnny-e: and the contents of that file is a tmux split window layout:
292 [19:20] <kirkland> b57b,180x44,0,0{80x44,0,0,99x44,81,0[99x14,81,0,99x14,81,15,99x14,81,30]}
293 [19:21] <kirkland> (have fun interpreting that ;-)
294 [19:21] <kirkland> johnny-e: sorry, I did it earlier; I encourage you to try it on your own byobu system later
295 [19:21] <kirkland> oh, one more important topic!
296 [19:22] <kirkland> now, tmux and screen differ here significantly on a few major points
297 [19:22] <kirkland> i want to cover one of them here
298 [19:22] <kirkland> in tmux, all users will be connected to the same exact session by default
299 [19:22] <kirkland> and all users will see the exact same thing
300 [19:22] <kirkland> which is very much what "pair programming" is all about
301 [19:22] <kirkland> but sometimes, you might want to split off from your colleague
302 [19:22] <kirkland> and work on something else
303 [19:22] <kirkland> on a different view
304 [19:23] <kirkland> here, you would create a new "session"
305 [19:23] <kirkland> which you can do using ctrl-shift-F2
306 [19:23] <kirkland> so to review:
307 [19:23] <kirkland> F2 Create a new window
308 [19:23] <kirkland> Shift-F2 Create a horizontal split
309 [19:23] <kirkland> Ctrl-F2 Create a vertical split
310 [19:23] <kirkland> Ctrl-Shift-F2 Create a new session
311 [19:23] <kirkland> and then to move between sessions
312 [19:23] <kirkland> Alt-Up/Down Move focus among sessions
313 [19:24] <kirkland> unfortunately, I won't be able to demo that here
314 [19:24] <kirkland> as your screen is attached to my tmux session
315 [19:24] <kirkland> and you won't follow me to the other one
316 [19:24] <kirkland> but try it yourself! it works
317 [19:24] <kirkland> I think we covered all of these, but to review:
318 [19:24] <kirkland> Shift-F1 Display this help
319 [19:24] <kirkland> and creating new things ...
320 [19:25] <kirkland> F2 Create a new window
321 [19:25] <kirkland> Shift-F2 Create a horizontal split
322 [19:25] <kirkland> Ctrl-F2 Create a vertical split
323 [19:25] <kirkland> Ctrl-Shift-F2 Create a new session
324 [19:25] <kirkland> all movement is under F3 and F4
325 [19:25] <ClassBot> There are 5 minutes remaining in the current session.
326 [19:25] <kirkland> F3/F4 Move focus among windows
327 [19:25] <kirkland> Shift-F3/F4 Move focus among splits
328 [19:25] <kirkland> Ctrl-F3/F4 Move a split
329 [19:25] <kirkland> Ctrl-Shift-F3/F4 Move a window
330 [19:25] <kirkland> Alt-Up/Down Move focus among sessions
331 [19:25] <kirkland> Shift-Left/Right/Up/Down Move focus among splits
332 [19:25] <kirkland> Ctrl-Shift-Left/Right Move focus among windows
333 [19:25] <kirkland> Ctrl-Left/Right/Up/Down Resize a split
334 [19:25] <kirkland> so F2/F3/F4 sort of form your "home keys" for byobu
335 [19:25] <kirkland> we can briefly look at the refresh commands
336 [19:25] <kirkland> F5 Reload profile, refresh status
337 [19:25] <kirkland> Shift-F5 Toggle through status lines
338 [19:25] <kirkland> Ctrl-F5 Reconnect ssh/gpg/dbus sockets
339 [19:25] <kirkland> Ctrl-Shift-F5 Change status bar's color randomly
340 [19:26] <kirkland> you should see a few status items in the bottom right, periodically refreshing
341 [19:26] <kirkland> by default, those refresh every 1 second
342 [19:26] <kirkland> i backed that off to 5 seconds, since there are so many of us here
343 [19:26] <kirkland> I just presed Shift-F5
344 [19:26] <kirkland> and now I can see a different set of status
345 [19:27] <kirkland> including my cost, hostname, ip address
346 [19:27] <kirkland> ctrl-shift-f5 can give your system some personality
347 [19:27] <kirkland> if you have a lot of byobu sessions, seeing them under a different color helps some times
348 [19:27] <kirkland> F6 Detach session and then logout
349 [19:27] <kirkland> Shift-F6 Detach session and do not logout
350 [19:27] <kirkland> Ctrl-F6 Kill split in focus
351 [19:28] <kirkland> perhaps you tried the F6 detach
352 [19:28] <kirkland> shift-F6 will detach from the session, but NOT log you out of the server
353 [19:28] <kirkland> and ctrl-f6 will kill a split
354 [19:28] <kirkland> (perhaps a runaway process)
355 [19:28] <kirkland> OH
356 [19:28] <kirkland> scrollback!
357 [19:28] <kirkland> let's play with scrollback
358 [19:28] <kirkland> which is under F7
359 [19:28] <kirkland> and alt-pageup/pagedown
360 [19:29] <kirkland> so now I'm scrolling back through one particular split
361 [19:29] <kirkland> anyway, my time is up
362 [19:29] <kirkland> I'll gladly answer questions over in #ubuntu-classroom-chat
363 [19:30] <kirkland> hopefully you see how you can use shared screen and tmux sessions and byobu in the cloud to do code review and pair programming ;-)
MeetingLogs/devweek1201/PairProgrammingAndCodeReviewInTheCloud (last edited 2012-02-03 09:48:35 by dholbach)