Code & Learn at Node Interactive Austin
hackygolucky opened this issue ยท 39 comments
Continuing the discussion from here #56 but also looking at how we can improve for November from the Amsterdam event. This was a really neat opportunity in Amsterdam filled with folks excited to learn. So much so that an overwhelming amount of people showed and we needed more help. Please let us know especially if you'd like to mentor. Let's plan the Code & Learn!
Please edit these things! This is a draft.
Organizers
- Anna Henningsen @addaleax
- Rich Trott @Trott
- ? Your name here ?
- Tracy Hinds @hackygolucky
Mentors
Folks who are excited to help with installfest funtimes, assist attendees in identifying issues to tackle appropriate for skill level, patiently wade through code with attendee, etc.(Please list OS you are comfortable helping on next to your name)
- Name @github-handle, Windows/*nix(not exhaustive because yeah)
- Evan Lucas @evanlucas, OS X/Linux
- Bryan English @bengl
- William Kapke @williamkapke
- Myles Borins @thealphanerd
- Bradley Meck @bmeck
- James Snell @jasnell
- Matteo Collina @mcollina
- Sam Roberts @sam-github
- Sakthipriyan Vairamani @thefourtheye, *nix/Vim
- Micheal Dawson @mhdawson, *nix/Windows
- Your name here please!
Day-of Agenda
Dec. 1, 2016
08:00-09:00 Breakfast
09:00-13:00 Installfest and Code & Learn(should this be a longer time frame?)
13:00 Lunch
AV Setup
- Big projector/screen with HDMI(do we need something else?) and audio output
- Microphone on podium
- Power outlets for tables
- WiFi
- File server for npm installs(see 'Logistics to prep' below)
Space Setup(proposed due to venue space available)
The events team has shared an image of the setup they thought should work.
Outreach
A description of what Code & Learn is will be a great way for us to spread the word so people will register and attend in Austin. Anyone who would like to attempt a bit of copy for this gets brownie points! PR and Marketing at the Node.js Foundation will happily share this and post the full agenda on the conference website
- reach out to local groups to encourage attendance(@hackygolucky and @mikeal have a list of these)
- share on Twitter, GitHub, other social media
Logistics to prep
- create a specific Code & Learn label, which picks
good first contribution
s that can be completed in a shorter amount of time.- have folks from @nodejs/ctc help filter through issues to apply this label
- Publish installfest/setup ahead of time for those who would like to prep ahead(can also relieve burden on network for installs day-of)
- Prepare fresh clones on usb to pass around to alleviate network burden(potential security concern) or set up a file server ahead to bring onsite
- A plan on ways we can encourage those attending to celebrate when they have small wins. Something we can have for them to share that ex 1: a button on a website attendees can press whenever they achieve something(had problems with Installfest and it's finally working, debugged something and it is understandable now, got a PR up) and it does an audible 'woohoo!' to the Code & Learn workspace. Ex 2: tally shown on projector of folks pressing said 'small wins' button to show that we're moving along. This also lets mentors know when more folks are having trouble or are in the weeds because it is far less active.
Question(s):
- Do we still want to call this Code & Learn? Some folks expressed confusion and would like to combine efforts with @Trott's awesome work for NodeToDo.
UPDATE 10/31
- Diagram for seating was updated
- looks like more mentors have entered their info as well
- will ping folks soon to get on same page for mentors feeling well supported
UPDATE 11/16
- 306 registrants for event. Attrition expected to be about 50%.
I am really interested in mentoring at this event. I'm comfortable with OS X and linux.
I think a less classroom/presentation setup and more tables with people sitting around them and looking at each other (and helping each other, whether they're mentors or not!) would be better, but I also wasn't at Amsterdam so I'm mostly guessing.
I think it would be very useful to get some variation of these instructions that I use for NodeTodo out to attendees ahead of time if at all possible. Coming to something like this and only finding out then that you need to install XCode Tools or whatever can be frustrating.
3 hours seems like the minimum amount of time, 5 is probably the maximum before mentors and others start to burn out, and 4 is probably the happy median.
On the celebration question: Maybe buy a hundred or so of a custom hexagonal sticker that people can put on their laptop or their name tag or whatever they want? They get the sticker after they submit a pull request. One-of-a-kind item, people seem to like stickers, any people who don't can just throw them out, and it's not a huge expense.
Consider opening up the mentor role to anyone who has contributed already, not just Collaborators.
If my Visa gets approved, I would love to help as a volunteer :)
I am comfortable with *nix and vim.
I'll be there and am I'm happy to be a mentor, preference is *nix, followed by windows.
Fun times! Reporting in with registration numbers--currently, 306 people have registered for this O_o which is awesome and also a little terrifying. We tend to see attrition for these signups at about 50%. So that still means about 150 people.
@Trott We ordered a surprise small swag for folks who come to Code & Learn and have a celebration moment. :) It's already been delivered to my house, just gonna bring it to Austin with me. We should prob figure out what that moment looks like, I was just a little worried that filing a PR may not happen for everyone that day even if they are trying. Probably a good discussion to have with the mentors prior.
Sam Roberts, Linux/OS X and vim. Also, not a member of this repo so can't edit description to add the info next to my name.
I'd propose making it the explicit goal to give attendees a map to getting a PR opened and get them as far as they can that day, but also give them a resource for getting further should they get stuck.
For Node Todo, this is what I give people: https://gist.github.com/Trott/4f527b7fc73d669aafa9858d865bc563
If people get to the point where they've submitted a PR, then ๐. Awesome. But if they don't get that far, it's not a failure. It's an awesome start. The barrier to entry for a lot of people is getting all the compile tools installed and working, so even if that's all we accomplish for a lot of the attendees, that's huge. That stuff is way scarier to a lot of people than changing a few assert.equal()
statements to assert.strictEqual()
or fixing up some typos in a markdown file.
I'd also say that we should see if we can identify some advanced topics ahead of time for people that aren't there to learn the basic mechanics of contributions but are there to offer their pre-existing expertise for some darker corners of the code where we need a deeper bench. Why wouldn't someone like that just dive in rather than come to an event like this? I don't know, but if someone does, it would be nice to be able to help them and also to ask them what the barrier was for them. (Maybe it would be, "No one ever asked." :-D )
https://coverage.nodejs.org/ would be a great place to point more adventurous attendees.
Looks like I'll be there, so I'm happy to lend a hand! My platforms of choice are OSX and Linux.
If my Travel funding happens I would love to help. I am comfortable with *nix, windows and vim.
Missed out on signing up before it was sold out, but just a quick shout out to all of you for organizing this and volunteering to help. Node Interactice has compelled me to contribute. Thanks for what you do.
@addaleax @Trott don't know what you are planning on having people do, but if you want a list of good first contributions:
doc
- process.versions.module is not documented
- IncomingMessage.connection is not documented, .socket is not documented
either as to whether it is a Socket or a TLSSocket - UV_THREADPOOL_SIZE not documented as a node env var
- what APIs use the thread pool not documented
- NODE_TLS_REJECT_UNAUTHORIZED not documented
- closed PR to doc the process.platform: nodejs/node#2446
- signal docs problems: nodejs/node#2853
- signal docs, do they make clear that waiting on signals doesn't ref the loop?
- udp: rinfo is undocumented
- fs: positional reads/writes don't document that they don't change fd position
- http docs, and additional apis: nodejs/node#2461 (comment)
- fix/doc path.format(): nodejs/node#2305
- child.signalCode and exitCode and killed are not documented
- return value and exceptions of child.kill() are not documented
- https://iojs.org/api/child_process.html#child_process_options_stdio,
'inherit' is now valid in the array, but undocumented - cluster.setupMaster and child_process.fork both support execArgv, but it is not documented for either
- cluster, worker.disconnect(), return value not documented (should be this)
- worker.disconnect().once('disconnect', doThis);
- process.on(disconnect or process.on(message causes process to be refed!
- udp: Event: 'listening'#, docs say:
Emitted when a socket starts listening for datagrams. This happens as
soon as UDP sockets are created. before bind()? I think not - _write is linked in stream docs, _read isn't, fix
- tls newSession should have backwards compat note about callback
- fs.access should have backwards compat note about availability
- fix nodejs/node-v0.x-archive#8022, make
http://nodejs.org/api/all.html#all_console_1 to point to
http://nodejs.org/api/process.html#process_process_stdout
timers
-
nextTick should error on call with non-function, not async at callback time!
process.nextTick('s')
undefined
TypeError: callback is not a function
at doNTCallback0 (node.js:408:9)
at process._tickDomainCallback (node.js:378:13)
child_process
- fork .stdio doesn't allow the String!
- windows spawn: nodejs/node#1009
- child process, pipe: nodejs/node#2276
- fork and spawn should take same options (stdio, in particular)
- expose control channel, so it can be unrefed
- c._channel.unref(); // There is no documented way to unref child IPC
- document how to make a pipe on non-stdio... then make it easier
net
- socket.write() emits error synchronously when socket was closed by peer!
udp
- udp: send doesn't take a string, and has no sane defaults
tls
- close handling bizarre, maybe it comes from net, and not just tls:
t=tls.createServer({});
t.close(function(){
console.log('close cb',arguments)
});
t.on('close',function(){console.log('close ev', arguments) });
close cb { '0': [Error: Not running] }
close ev {}
dns
- no arg validation:
dns.lookup(undefined, console.log)
{}
null null 4
misc
- readline: close should accept a callback
@sam-github Awesome! @addaleax and I created a massive list of things, but I want to use yours as well for people who already have a pull request or two in and are looking for something a little more challenging than "please change assert.equal() to assert.strictEqual()". Let's chat for a few minutes after the keynote?
@Trott Sure, I've been looking for you, unsuccesfully, I'm in the back of the room, audience right.
I'm in the back of the room, audience right.
Annnnnd I'm in the front, audience left.
@nodejs/collaborators Reminder: We will hold this tomorrow at 9am in Austin (15:00 UTC), so if you are around here, please come by and mentor people; if you are not but you have the time at your hands, feel free to start reviewing PRs! :)
Hi, y'all, I'd like to work on #9069 with @jasnell as a possible segue into following (and hopefully contributing) to his work on http2.
But if we find that I'd be biting off more than I can chew in the allotted time, I'd be happy to go over some of the TODOs in #4642
I really like @jasnell 's insight and articulation on Node, which is why I am requesting to pair up with him tomorrow, if possible! ๐
I've gone over @Trott 's NodeToDo instructions to get started so, hopefully most of the leg work is done at my end.
Also, I helped organize the Austin NodeSchool event we had to day during Node Interactive NA, so, if there is anything that I can do to help with this Code & Learn, I'd be happy to help!
Really looking forward to it! ๐
--Monico
@cdnadmin I'll definitely be there as one of the mentors and I'm happy to help in whatever way I can!
I have created a new code-and-learn label in the core repo to attach to any PR originating from this event. As PRs are submitted and being reviewed, let's use the label to help keep track so that we can make sure all of the PRs that are opened are quickly reviewed and handled.
@cdnadmin I think changing the error message in #9069 might be a perfectly good first contribution, although it's semver-major and will get more scrutiny than the typical code-and-learn contribution. #4642 might actually be harder than that and is a pretty good example of the shortcomings of good first contribution
labels on projects. If you can find a TODO that was written by someone who is present as a mentor, that might work out well, though.
By the way, @cdnadmin, since you've already got node cloned and compiled, maybe be ambitious and try to do both! :-D
@Trott i did verify my command line tools, but I have not compiled yet ;-) But, I am about to try here in a minute.
I am going to work on the udp: rinfo is undocumented task
Going to work on process.versions.modules
docs
Going to work on
dns
no arg validation:
dns.lookup(undefined, console.log)
{}
null null 4
I'll pick the process.nextTick
issue
edit: apparently that's already solved https://github.com/nodejs/node/blob/master/lib/internal/process/next_tick.js#L135
i'm working on "closed PR to doc the process.platform: nodejs/node#2446"
Working: "http docs, and additional apis: nodejs/node#2461 (comment)"
Trying the childProcess
expose control channel, so it can be unrefed
edit: already fixed
working on worker.disconnect()
issue
cluster, worker.disconnect(), return value not documented (should be this)
worker.disconnect().once('disconnect', doThis);
After speaking with @sam-github, he suggested that disconnect()
should return a reference to the worker to allow chaining.
Closing this issue as the event lies in the past now! :)
well... the event does but the work continues! ;-) right about 100 PRs still pending reviewing/CI/landing. This is a good problem to have.