Took place on 2014-11-12 15:00

Agenda

The main rationale being that only active users wishing to aid in cleaning the site need to get involved.

  • Address possiblity of having a separate Python close-vote/reopen-vote/del-vote and flag room.
    • Some users find the use of the tags confusing
    • It can possibly interfere with normal “chat flow”
    • Users with autoscripts can use it for monitoring rather than the main room
    • It provides a concise public transcript of actions
    • RABBIT can use that room to post notices rather than the main room
  • Discussion on how the sopython-dev projects will fit together, as well as any updates on what’s going on, including:
  • Regularity of future meetings
    • Proposal that meetings be held quarterly.
    • Extra meetings can always be called for under unusual circumstances.
  • Meeting transcripts
    • At the moment they’re in a random wiki, each meeting after the last.
    • Jon, in the past, has suggested each meeting having it’s own wiki page, but I (Fizzy) think that this will just mean we have lots of wiki pages.
    • Is this a problem? Ideas? Etc?
  • Open house discussion on the room where anyone can bring forward any ideas or problems they have.
    • Is it still a room for Python, or an endless conversation between the regulars?

Why do we hold these meetings?

We like to be open with what we do in the sopython community and with what plans we have for the future.

As such we like to hold these open-house meetings every once in a while for the development team to let everyone know what they’re up to, as well as letting anyone voice any opinions they have to the community at large (be they positive or negative). If you cannot attend the meeting but would like to be involved within sopython then you are of course welcome to bring this up with one of the room owners at a more convenient time.

@Ffisegydd What’s that?
Jon had the idea of using this 3rd party chat room for the meetings.
I think his idea was that, say we had to get a bit mean/nasty/honest about someone then we could maybe cut that back from the transcript, it also stops people joining mid conversation and trying to ask Python questions.
@Ffisegydd Why? It’s a sopython meeting.
Because if I want to voice my thoughts on how @IntrepidBrit is a terrible human being then I can scrub it from the official transcript. Plus there are other reasons which I won't go into here but would be happy to discuss in there :P
Well, to make it short: I’m not joining there.
@Ffisegydd To be fair, you're not alone in your opinion. The whisky agrees with you, and that's why it keeps trying to drown me
@poke, do you have any particular reason why you don't like the idea of it?
Because: (1) the whole sopython thing is already turning into a heavily fragmented thing; (2) discussing the project about a chat community on some other chat platform is absolutely ridiculous; (3) by moving to another platform, we raise the complexity to join the discussion/project a lot
@poke Why is it heavily fragmented?
That sounds like a proper concern to raise in the meeting.
The chat room tools offered by Stack Exchange fall somewhat short.
@MartijnPieters SO chat, GitHub, Slack, Trello, another 3rd party chat?
@poke That's not fragmentation, no.
That's just using tools to help organise. They are all open.
We're encapsulating functionality :-)
@MartijnPieters They are tools partly covering the same purposes though. It’s not clear when to use tool X over tool Y when both would work for a certain thing.
My boss has just come so I may have to disappear, poor timing.
How about we have this meeting in that chat room, and add "decide whether to have future meetings in this chat room" to the itinerary
poke I disagree with your fragmentation, each tool has it's own use. We can have the meeting here if you really insist though.
Let's have the meeting here.
Fine with me. I don't see anything on the itinerary that would require transcript-scrubbing, anyway
Yeah cool.
I disagree with having it here, and possibly we can discuss it in AOB.
Item one on the agenda. "Address possiblity of having a separate Python close-vote/reopen-vote/del-vote and flag room."
I personally don't find close vote requests to be particularly interfering.
yeah, as poke says, less fragmentation please
I don't find the close-vote things interfering either. I would find it more annoying to have a second room.
I think moving them off to another room removes the point of getting people look at the question and close-vote them.
whenever I see anything with a badge I usually just ignore it, to be quite honest
Part of coming here is also being able to see what we're likely to close, I think it's helpful to newcomers
After all, we have a lot off OT talk which is probably more interfering.
Though generally OT talk is well behaved, if people are talking Python it tends to naturally die down.
Removing the discussion of actual Python questions doesn't seem like the right move.
I’d be interested in a percentage of how many of our messages are X-pls tags… Probably very little.
Sometimes they spark interesting discussions about what the right way to approach something is (dup closes in particular.)
and they occasionally bring up good conversations, there would be much less visibility in another room
Even if we configure RABBIT to bang a gong when a post is closed, that will, at worst, double the number of close-vote-related messages. So it will jump from 1% of messages to 2%. Not that onerous, IMO.
I think we can move on to be honest. Jon brought this up so when he gets back later we can always give him his say, it might be he had very good reasons for it, he's semi-afk at the moment.
It will double the count, but it will be so worth it.
More gongs.
If messages by RABBIT turn out to be intrusive, then that’s something that should be adjusted with RABBIT. Moving them off to another channel, nobody keeps an eye on, is probably not useful.
(I rarely see any message in other rooms I have joined but not opened in a tab; and I don’t see me open a “python-cv-pls” room)
Okay, item the second Discussion on how the sopython-dev projects will fit together, as well as any updates on what’s going on
updates first, or crazy diagram?
I like diagrams :-)
Updates? If I get time I'll say something about Kesh, depends on Phil.
So if you're ready @davidism you could start without sopython-site.
I don't have anything written up like last time, but I'll start.
Development by me has been slower lately, as I've gotten really busy with my real job.
I've got a search system mostly done (although it will need improvements).
is it fuzzy?
I liked that diagram a lot, it was a helpful visualization
user image
Fuzzy bunny?
Yes, almost exactly like that.
Great!
Once I get that squared away, I'll merge in any other pending prs and hopefully get a release out by the end of the month.
poke, your pr is fine, I just haven't gotten around to merging it
corvid, I'll hold off on yours unless you build it out more
@davidism I can merge it then, unless you’d rather not (to prevent your own conflicts).
@poke go ahead
it's a small enough project/team that it shouldn't be hard to resolve
I would like to discuss moving away from trello an consolidating features/bugs/roadmap on github, since that's where the code and reviews live.
I think GitHub is actually even able to merge it automatically..
As @poke mentioned earlier, we're very fragmented right now and it's a little overwhelming.
That sounds reasonable to me.
I haven't seen much benefit from trello compared to the built-in issue/roadmap tracker
I think it's more geared towards high-level or "business" planning
I haven’t really used the new roadmap stuff
I'd be willing to transfer everything to github if you all agree
I did like using slack for longer discussions, so we should keep that for now
I don't find it fragmented personally, though I'm happy to go with it as you're doing more programming than I am.
I think we can migrate everything as we go, without having to move it all at once.
Yes I definitely like having Slack for actual discussion.
I personally dislike Slack the most of our tools :/
It feels so heavy to launch, since there is little benefit unless you absolutely know that something has been going on.
I don't load Slack unless I know someone wants to discuss something, I think it's worthwhile though, rather than having discussions in here as they will be lost in the OT/Python discussion.
And I dislike that it’s private.
I also don't think GH issues would lend themselves to such discussion.
Slack is nice for keeping all development discussion isolated so it is easy to revisit, but I guess any chat tool is fine for that
@poke I agree with you on all points, but I'm not sure where discussion should go otherwise
we can take it to gh, as long as we don't treat that like a chatroom
The Flask project uses IRC to discuss stuff, then makes one post about the conclusions
So we can discuss here/there then summarize on gh
That might be a way to do. It would be nice if the Slack discussions were summarised.
If you have a quick question, it's still appropriate to ask in this room, of course.
The issue is if you need to talk about something for 10 minutes, there seems little reason to write a full summary out, meaning if we did it in chat.so then those little conversations would be "lost" (which, using Slack, they wouldn't be)
Maybe we can try to solve these things on GitHub only for now, and if we encounter situations where we need to actually chat about it more, then we can have those here or on slack. And then we can see how much we actually need a separate room for that, or if it’s really a disruption if we do it in here.
Looking at the previous discussions, most of it was on-topic Python stuff, so that wouldn’t really hurt to have it here.
agreed, just like trello and slack, this is another experiment and we'll have to find what works
We'll be keeping Trello for the RO board though.
yeah, and it's good for projects that don't really have code yet
Unless there is a way to have private boards on GH? Which I don't think there is.
^ I’ll also keep the rabbit one for now, until the GitHub project materialized.
Ok. We've gone slightly off-topic so we should get back on agenda. And talking about RABBIT, would you like to say anything poke?
Sure
We can always come back to this, if needs be, in AOB.
Last sopy topic, as always: We welcome community participation: feature requests, bug reports, and pull requests. Please contribute! :)
That's all from me.
last-last sopy topic: Thanks to everyone who has contributed so far :P
I'm grateful for everyone's hard work :-)
So, my RABBIT project consists of two things: CabbageBot.js, the base framework, and rabbit, the actual bot we will have. My plan is to have CabbageBot provide basic features, and eventually have an interface to work with the modules the JS room created for Caprica. That way we can reuse some of their features, and also make the project available for them later one (since I consider the implementation superior to their in-browser on separate computer solution ;P)
Everything that’s only relevant to us, e.g. Kesh and sopy integration, will be placed into rabbit which will be a fork of CabbageBot.js
Also, since I haven’t mentioned it yet, it’s a Node implementation, so no Python for that one :/
whatever is the best tool for the job :)
Ideas and such can be found here for now.
It’s also mostly a marketing decision, to sell it to other rooms xD
But how can we brainwash the masses with the joys of Python if we use the right tools for the right job? ;)
Makes sense. Eventually it'll be nice if others could use sopython-dev (tried to sell it to a bash user the other day on meta :P)
we will have a python asyncio project, but that's the next discussion
(I’m done unless someone has a question or something :P)
Questions? If not I'll start typing up a brief thing on Kesh.
Kesh will be a pseudo-puppet master for the sopython projects. The details can be found here for now. But in summary: Kesh will control the data access for the sopython projects. It will listen for new content from SO itself and then add these to our internal database. When it gets some new content it will also broadcast the fact that it has this new stuff.
Other projects can then listen to these broadcasts and do things with the data, possibly sending results and such back to Kesh.
It can roughly be summarised in this diagram:
user image
(communication doesn’t necessarily have to happen via websockets, despite that diagram)
(we’ll use whatever does the job best)
Yes.
It'll also have an api that other things can access, possibly kesh.sopython.com or api.sopython.com
I appreciate any help or advice for design tips for this. I am insanely busy at the moment but hope to get some code on paper in the next month. If that fails, I'll have a 2 week holiday (HUZZAH!) at Christmas where I intend to code like Jesus' life depends on it.
I think Jon’s plan was to contribute there
Yeah Jon has also done some bits with listening to SO. This is so far outside my range of knowledge it's silly, but hopefully I can sort things.
Games has also volunteered to help (he's not here, so he can't argue otherwise, and let the transcript state that he has volunteered)
Indeed, but let's wait until after the meeting to discuss it.
That's kinda if for the sopython-dev part.
What about nibada?
Ah I deleted that sentence :/
I have nothing to discuss since last time on Nidaba, so seems unnecessary to discuss what I've already stated previously.
okay
Third bit on the agenda: Regularity of future meetings
"Proposal that meetings be held quarterly."
I am in favor of this.
I propose that we roughly aim for quarterly meetings. I think this won't be too strenuous.
We might want to generalize that to “Future meetings” and also discuss the location of those meetings then.
If needs be, we can have meetings more often, if there is some pressing issue.
Yeah, quarterly should be fine. If we end up having some important stuff to announce or discuss, we can always schedule special events.
But if we aim for quarterly at a minimum, I think that'll be fine.
Exactly.
Yes
– Which is exactly what’s written on the wiki. Wow, I’m smart.
Ok. Location of meetings then.
Seeing that there was no interruption here, and the other uses don’t appear interrupted by our discussion (right?), I don’t see any reason why this shouldn’t happen here.
It’s a meeting of the sopython community, and that community lives here.
We had a little bit of interruption, with tristan's amusing message :-)
When Jon originally decided on these meetings he had ThiefMaster create a specific room using the SO system that was private and could then be deleted after the meeting. Rather than bothering Thief it was suggested to use Dystroy's so.chat clone (which has more features, such as deleting things permanently).
oh feck, the meeting, sorry
His original reasoning was, I believe, that it might come to pass that brutally honest messages would be sent, and these might be removed from the transcript after the fact to avoid peoples feelings being hurt.
There is another reason we used Miaou as well. Last meeting we had to discuss a particularly virulent and awful member of the community who was terrorising us all at the time. Rather than feeding his ego by having the discussion about him in public, it was held in private and then redacted from the transcript.
We got some practical use out of that, as we could talk freely about "that troll that searches chat room for mentions of his name"
@Ffisegydd The private part is already bothering me. Why private? Isn’t this a public meeting?
I don't believe that anyone here has any reason to hide the truth. We are all volunteers who give our time to this room, and I'll stand against anyone who says otherwise.
It's more or less a blacklist affair. We let anyone in that asks, unless they're a known bad guy.
@poke There was a hugely problematic user.
But it's basically a blacklist, as Kevin says.
You know who I am talking about.
@poke it was because there was a user that would follow us around outside of SO and he got sexual pleasure from being mentioned, so we took it to another platform.
It seems that everyone does know who everyone else is talking about :-)
Imho, that doesn’t sound like something that should be discussed in a sopython meeting anyway. It’s RO matter, so a completely separate thing.
yes, his name rhymes with Don Lemmings
As we had the meetings there previously, I didn't hesitate on suggesting it again, even though nothing on the agenda is really that serious business
@poke members of the room were speaking to him and rising to his bait, how else do we tell people?
Is this on the topic of regular meetings or should we move on?
This is the topic at the moment, where we should host future meetings.
Ah, sorry, I missed that.
@Ffisegydd Was that before or after the introduction of the kick-ban feature?
Plus, why should the ROs just decide everything? The meetings are so the ROs can speak to the non-ROs, why make him an RO-only thing?
Before the introduction @poke.
@poke Before I think? But he can read the public transcript at any point.
I wish @Jon was here to voice his opinion, as it was originally his idea to have meetings in pseudo-private.
Well, I wasn’t around at that time, so I don’t know what exactly was going on. But when there is a user trolling like crazy, even so much that other users get offended or feed them, then that user should be dealt with by being banned from the room. That’s the single responsibility of room owners. If non-ROs then disagree with actions, then I see nothing wrong with publicly speaking up about it.
And if ROs need to talk privately about the actions first (although I don’t see why this would need to happen), then they should do that separately anyway. That doesn’t and shouldn’t impact the community meetings though.
We didn't have the ability to ban him from the room.
We do have that now though.
We still don't have the ability to ban him from the room.
We can KM.
Which kicks him for what? 30s first? Then 5 min? Then 30 min? I think?
And he would re-register and ask shitty questions until he could get a new account to just spam crazy crap in the room.
It was all very tedious.
I think SO has pretty good defenses against re-registration, no?
No.
As you said anyway, you weren't here at the time, and it was necessary to speak about him at a meeting.
Last time he made a new account every twenty minutes or so, by my count
Well, if it’s that obvious spamming anyway, that’s something that’s up to the moderators. There isn’t really anything we can do by talking about it 2.9 months later (worst case).
I don't understand your point? (about the 2.9 months part)
re. moderators: believe me, they tried to sort him out and they struggled.
When we have a quarterly meeting, and we need to discuss such an issue, waiting for the next scheduled meeting hardly makes any sense.
Meetings can be more often, as we've already been over, if necessary.
And if something like what he was doing happened again, and if it was necessary to have another meeting about it next week, then we'd have one.
If they are solely to discuss some user, I don’t see them as community meetings though.
The timing lined up.
Ok, so it sounds like you're saying that quarterly meetings don't need to be off-site, since "how to handle this troublesome user" will never be on the agenda; either ROs should take care of it without a discussion, or we'll have a separate emergency meeting.
If we're discussing how to handle and react to some user, and not to rise to his racism, then I think that counts as a community meeting
Are there even any troublesome users in this room? Seems like a pretty calm place
Oops, got pulled into a meeting, I'm back...
But as I said, I wasn’t around. I don’t know what you felt the need to discuss (you could explain it to me in private though). But my point stands: Community meetings, like the ones we scheduled for today, should be absolutely inclusive. And the best inclusitivity we can get for a chat community is to have them on the exact same chat platform.
Keep the meetings public, keep private discussion on the RO trello or dystroy
@corvid Nobody that we need to have a meeting about, I think.
In any case, back to the issue of location: let's say 2 users come in now and have a perfectly reasonable issue with Python that is absolutely on topic, do we shush them? Do we stop the meeting?
Everyone is welcome to join Dystroy (within reason, i.e. blacklist) and the transcripts are then put on sopython.com
(The meeting transcripts being the next point on the agenda)
we do what we always do, questions don't really interrupt other discussions at other times
That's my "issue" with having the meetings in here. We should have it well publicized, so that everyone knows they're welcome
the rules even say "we will answer if we can and if we feel like it"
But what if someone chooses to answer their question?
or we just say \@noob_user, we're having a discussion right now, but can help in 30 minutes
if they really care, they'll stick around
How about, if the solution is longer than a line, they could invite the question asker to a one-on-one room
can we wait until it's an actual problem?
@tristan +1
How about this then: meetings are held in-room in general. If there is some thing on the agenda that requires a bit of cloak and dagger then we can just hold it in Miaou. The ROs can discuss the issue beforehand to see whether it is truly necessary to be kept behind a semi-closed door on Trello/w.e
We always have side discussions in here, don’t see why we suddenly couldn’t handle them.
And any user can always bring up a issue that they want to keep in secret via email.
+1
(As they obviously don't have access to the RO Trello)
+1
chatroom@sopython.com is a working email btw.
If you have any things you'd like to discuss in private, it is forwarded to my personal email address. And if your problem is me then jon@sopython.com can be emailed :P
+1 works for me. it's relatively easy for the regulars/ROs to coordinate during a room meeting because there aren't many of us
next topic?
Meeting transcripts.
At the moment they're in a really long wiki post.
That is my next focus after search
Jon mentioned a while ago about either (a) having something to handle them or (b) have them in separate wiki posts (I don't like this idea, think it'll clutter the wiki).
Ah, ok :P
I can try to outline it better on gh so others can work on it :)
I think the transcripts are fine in whatever way. Is there an issue we had in which having the transcripts arranged differently would have helped?
I think the rabbit transcript command will help, but where will it go? Perhaps make a model on SOPython to store it and a page for it?
If we have a chat transcript thing then we can always highlight parts of the transcript as a "room meeting"
I could create some special formatting to put them on the wiki in a more concise way
If we want a separate page for each transcript, there are probably a number of technical solutions to keep the Wiki Contents list uncluttered. collapsible dropdowns, etc.
Yeah at the moment I just copy/paste the text and do some basic formatting (replacing non-names with a > MD quote)
The wiki page, to be quite honest, does seem a little "cluttered" and the content seems somewhat undefined
Basically, there will be a "create transcript" page, you give it start and end message permalinks, it pulls the messages, you delete the ones you don't want, and it gets stored in a new section on sopy
Possibly, in time, we could have wiki tags? Not sure.
@davidism awesome.
should probably have a "agenda" feature to go along with that
Are we also planning on storing the entire transcript somewhere on the website? Updated in (roughly) real time? I only ask as it might be useful to make that available through an API (would RABBIT need such a thing?)
@davidism Add me to the list of contributors for that feature.
@poke got it
For example, RABBIT could ask whether a user has spoken in chat before, and if they haven't then pay attention to them (look to see if they just question dump, and if they do then auto-post "Don't!")
I was just thinking a transcript API would be useful. Since poke asked "what percentage of our messages have the cv-pls tag?"
Already had a concise transcript format for the old sopy site
@Ffisegydd I was not planning on storing all messages, although the functions for pulling messages could be applied for anything, not just meeting transcripts
@Kevin that was my other thought, some stats.
rabbit can probably store that information without needing the entire transcript
To be honest, listening for new messages and adding them to a DB might be more inline with Kesh? Not sure.
since it will be watching... always
Something to think about, anyway.
Since we already have a great transcript functionality here, I think it makes more sense to just selectively store stuff we’re interested in.
yep
By that same reasoning though, we can already save "conversations" using the SO transcript tool.
user image
@Ffisegydd let's table that for when rabbit and kesh are more developed
Yar.
I'll add it to Trello anyway.
Ok. Finally we get to AOB.
First part on AOB is "Is it still a room for Python, or an endless conversation between the regulars?"
I believe that most chat rooms are dominated by their owners. We're not special.
This room is like the starfield screensaver, powered by @Kevin "Starbait" Kevinson.
There is an awful lot of conversation between regulars, and that's not necessarily a bad thing as if someone does need help then they can still get help.
I remember reading a post on Meta that showed that the C++ room was more than 50% RO messages. (or maybe it was the javascript room. Whatever.)
Yeah I think we were 2:1 ratio of RO:non-RO
The only complaint I can ever think of is someone who came in, said "go talk about other stuff on facebook", tried to add me on facebook, then never came back.
Other than that, I don't think it's an issue.
I don’t think we should worry about the content of our talk
Someone actually added this to the agenda, so if that person would like to voice their opinion, I promise we won't bite?
My opinion is that we have a good balance. The room currently feels more like endless conversation, but we still selflessly answer Python questions when they come in and talk about programming with some regularity. If we went to a model of "no off-topic conversation," I wouldn't be in the room.
We always talk about what we like to talk about. If that’s Python, fine, if it’s not, also fine.
If the chatroom was just about python, we'd seem like really boring programmers.
Yep.
We are a community, and we don’t need to stick to Python topics.
Which is to say, I like chatting with the people in the room and I wouldn't be here if it was expected of me to be sitting idle, working for free, until someone joins and demands an answer.
That being said, I never seen anyone not getting covered about Python stuff when there was a need for it. So it’s absolutely not a problem. And we’re probably one of the most on-topic, helpful and active chat rooms anyway.
Compared to other high traffic rooms, we probably have a better ratio
Speaking of OT conversation, there's a reason that people tend to shy away from discussing sex, religion, and politics in polite company -- and concentrate instead on sports, which combines the best of all three.  :^) My attempts to convert the room into a more sports-centric place haven't succeeded yet, though.  Discussion of European politics is traditional among the regulars, and has IMO been hallowed by time and I think goes pretty well. Discussions on the other two have occasionally been problematic.  Both Ffisegydd and I have intervened on separate occasions to close religious discussions down when they seemed likely to go off the rails
in short order.
Anyway, I think we are done-ish, and I have to head off to Squash. See you later!
I don't think I need to add any more to what's been said here. The regular RO conversations act as anchors to keep people around to ask Python Qs.
Take care Poke
tra @poke
Yeah, there are some OT topics which are potentially dangerous
@poke thanks, rhubarb!
To almost-quote myself: "In any case, putting on my room owner hat, I don't think [serious discussions of religion are] a great fit here. We have people with views all the way from Guido's to Jon Skeet's among the regulars, and all are welcome, and none should have to feel like they need to defend themselves."
rhubarb, poke!
@DSM I believe it's fine that we argue or have contentious topics.
I think the rule that covers it is the "Be nice to one another"
If someone can't say "sod off, I'll believe what I want," that's a personal flaw. Not that I've seen the conversation get that heated.
When things either get too ugly or "too civil", I or another owner step in, and that's all that's been needed in the past.
I think I'm more liberal than you guys. Some conversations have been shut down that I found mostly harmless.
We've had polite discussion about religion in the past and it's fine, but there's a difference between discussion and discussion. Me discussing Ramadan with someone and how they are looking forward to breaking their fast is great. Two people squaring up for a serious religious debate could, eventually, cause trouble.
Not that I'm questioning your administrative style - shut down as you see fit.
Whether you shut down the debate before it gets to that, that's up to individuals to decide.
Though the last time I discussed Ramadan with someone, a 3rd member went on a racist tirade and accused people of the Muslim faith of various crimes and abuses. He was promptly flagged and hasn't been back since.
It's not like there's a lack of places to discuss such things.
My belief is that if a vast majority of the regulars are typing "oh god, leave it, shut up, seriously pack up your shit and feck off," then shut it down. If we're all talking about what various sky wizards we support, that's fine.
But, by that same argument, there's not a lack of places to discuss scottish politics, etc
One thing that is not applicable for this room is stuff that's NSFW/too sexual.
Sure, that's one thing that's non-offensive, but is rightly clamped -- most of you are at work.
That's not RO policy, that's SO policy.
I think I'm more likely to get in trouble due to the cute animal pictures, than due to NSFW text discussions XD
Rule #5 exemptions probably apply. :-)
a 500x500 px rabbit is visible from across the room, the word "butt" in 10 point font is not
Lol, butt.
But I chat at my own risk and I recognize that. Don't not post rabbits on account of me.
Any more AOB or comments on topics?
If anyone wants to integrate KevinScript into a sopython project, my licensing rates are very reasonable!
When KevinScript licensing becomes a topic I think a meeting is near its end.
Right bangs gavel thank you, my lovelies, for attending!
I actually managed to write a page of thesis while in this meeting, I am rather impressed.