00:00:27.199
Ugh. All right, well, thank you for dealing with that delay, and thank you everyone for making it to the end of this conference. I know there's been a lot of content shoved into your brains, and I want to give thanks to Pat, Mike, and everyone else involved in this effort for making it look so easy. Can we give them a round of applause, please?
00:00:55.760
I'll start the timer. Setting expectations: I'll be doing 180 slides, which is roughly six slides a minute. This is a fluffy, non-technical talk. I seem to alternate between the two. My last talk here was how to write an interpreter in 30 minutes, so this will not be that.
00:01:03.680
This is not a history talk; this is meant to be informative, not necessarily inspirational. So, this is about information, and my slides are already published at the URL below. Um, quick introduction. This is me doing this without notes, and damn, this is tough.
00:01:31.759
I'm going to talk about user groups today and study groups. One of the things I learned while talking to people around here is that there are about six user groups in the Salt Lake City area and the surrounding area alone. One of them caught my attention; it's the Downtown Ruby Users Group. Apparently, they refer to themselves as 'druggies', and being a graduate of Evergreen State College, I felt really at home talking to these people.
00:01:43.600
Just a quick shout-out to that group. I co-founded CLRB in February of 2002. Pat Eiler was at the first meeting with me, so he is a co-founder of Seattle.rb. We were the first group to meet in the world for Ruby, but an important thing about us is that we're constantly evolving. We're a dynamic group; we're not static. We have worked to find the right balance for our attendees.
00:02:10.160
As I mentioned before, I find history talks dreadfully boring, so this is not one of those. Instead, I'm going to talk about the evolution of our group—not about dates, times, or who met when, all of which I find boring. I'm hoping to share a recipe for what works for our group and discuss the pros and cons and trade-offs that those decisions have made for us.
00:02:37.120
Every type of group has different flavors. Some groups are really into doing presentations, while others, like ours, focus more on hacking. For example, San Francisco's Ruby group is known for their strong networking and business aspects. Each group operates in its own way, and our development came in three main stages. Currently, we are roughly three-quarters hacking and one-quarter talking or sharing.
00:03:08.400
Now, let me share a quick digression. Once upon a time, there was a Canadian named Miles who showed up to our group. The first time he introduced himself, I noticed his distinct 'round o's' and wondered what he was doing in Seattle since he was Canadian. It turns out, he had needs; he really needed to be around other nerds and hacking.
00:03:29.440
He saw what we were doing and realized he didn't have anything similar where he came from. Notably, he lived quite a bit north of the Canadian border. He drove after work to join us on Tuesdays for our meetings, which was quite a commitment, especially after 9/11 with heightened border patrol. This need to be around fellow nerds shows how deep-seated his desire was.
00:03:58.080
Miles and I talked about the CLRB recipe and what worked for us. I shared what I thought was the right approach at the time, and he then took that information back with him to create the Fraser Valley Ruby Brigade. Despite being in a small town outside of Vancouver, it worked perfectly for them, and they meet every week. They absolutely love it.
00:04:25.280
Hopefully, what I'm sharing with you today will help you establish a group that works for you or help shape your group into what you really want for your community. While I was researching this topic, I discovered several groups that attribute their styles of meetings to CLRB's influence.
00:04:56.480
One story besides Fraser Valley that stood out to me was about a small neighborhood in San Francisco called Paterao Hill. In San Francisco, with its focus on business and networking, some individuals felt disconnected. They decided they wanted to create a group in their neighborhood that operated in a 'hack style,' similar to how CLRB does things.
00:05:14.000
I love that fact that there is this overlap—this Venn diagram of the types of Ruby meetings you can have in San Francisco, and there are perhaps six circles for Salt Lake City. I would love to see a map of those things and how they work out.
00:05:37.760
Let's talk about CLRB version 1.0, which I refer to as the plain vanilla meetup era. It was a period where meetings happened monthly at ad hoc locations. We met in various cafes, the first of which was aptly named 'Orifice'. We also had meetings in various offices, such as Robot Co-op, Omni Group, and Amazon. Given Seattle's weather, we only met outdoors in parks three times due to inclement weather.
00:06:02.399
The format of these meetings often consisted of presentations, and I want to note that I had 'shrink to fit' turned on for Keynote 6. For some reason, it breaks words in strange ways, which is evident in the shriveled display of the word 'presentations.' The pros of this setup included having a lovely group of people who just wanted to get together and meet.
00:06:38.639
We didn’t realize it at the time, but we were paving the way for others to start their own groups. It was rewarding to see that, but there were definitely some cons. Monthly meetings meant scheduling mattered deeply; if you missed one, you could go two-plus months without a meeting.
00:07:20.480
Inconsistent locations made it harder to organize and prepare. Attendees had to rely on mailing lists for updates rather than simply knowing they could show up at a time and place and find others there. Getting speakers was particularly challenging back then as Ruby was new, and there wasn't much to share other than projects we were learning on.
00:07:43.279
It was also tough to keep speakers with such a small group. It became repetitive with the same people talking over and over, leading to my belief that making the meetings interesting was key for our evolution from 1.0.
00:08:04.320
As such, we transitioned into version 2.0—what I call the Nerd Party era—coined by Shane Becker’s girlfriend back then. The name stuck because it absolutely fit our vibe. This stage was characterized by weekly meetings at a consistent cafe, and we have been doing this long enough that we've spanned two cafes. Currently, we meet at Vivace in downtown Seattle, which you can visit to attest it has great coffee.
00:08:42.080
The format of these meetings is unstructured hacking. There is no leader, no set format; you simply show up, hack with others, and drink coffee if you choose—it's very informal. The advantage of meeting weekly is that you can miss as many as you want without feeling like you're missing out on too much.
00:09:05.519
The reduced pressure of having a structured meeting has been key to our success. Meeting centrally makes it more accessible, and the low-maintenance nature keeps it easy; I just need to show up, buy my coffee, open my laptop and start hacking. It works similarly for everyone else who attends.
00:09:34.560
Some people might feel intimidated by this informal format, seeing everyone tapping on their laptops and possibly feeling lost about how to participate. What they don't realize is that by simply being there, they are part of the group. This can be challenging for some who expect interaction or presentations, which isn't the focus of this meetup.
00:10:01.440
I also discovered that some people just don't see the value in informal meetings without presentations. Our group is oriented toward doers and makers, while attendees who are looking to consume talks might not fit in well. That's perfectly fine, as different participants seek different experiences.
00:10:29.680
Time check; I know I should probably ring the alarm now. Last year, I would have done more to segment the talk, but I didn't bring any notes, so this is where we're at today. Let's continue.
00:11:06.239
We moved to version 3.0 due to enough participants disliking the presentation format. This is now the Nerd Party Plus Monthly Social Era, which combines our usual weekly hacking in a cafe with a social gathering on the first Tuesday of each month. The location remains our regular cafe, while the monthly social takes place at an office named 'Substantial'.
00:11:43.440
These social gatherings are about one-quarter socializing, one-half talks, where we generally feature two half-hour talks and a quarter of lightning talks. However, I put quotes around 'lightning talks' since we've renamed them to 'show-and-tell' after observing that if you're new to Ruby, the term 'lightning talk' tends to invoke fear.
00:12:13.760
By renaming it to show-and-tell, we have made it more accessible and actually attracted more contributors, allowing our meetings to thrive as a result.
00:12:40.960
This hybrid approach is a nice balance between the previous versions, opening us up to reaching different learning types and promoting various formats for engagement. However, the cons are that we actually have to organize, recruit people to share talks, and get everyone networking in advance.
00:13:06.880
We need to coordinate efforts with sponsors for food and drinks. Fortunately, we've been lucky to have great support across the board, and we’re now large enough that some people enjoy organizing. I personally prefer to show up, grab my coffee, and hack.
00:13:30.199
As we lead into 3.1, we've introduced study groups into our usual agenda. Study groups meet weekly before the Nerd Party and do not overlap. We're following an Evergreen-style seminar format, minus any distractions. Together, we pick a challenging book; we've tackled SICP, which I believe is a vital resource.
00:14:04.480
In chapter one, you find out how to calculate square roots using Newton's method and functional programming. One of the highlights from Jim's presentation at Goguruko is how he pointed out that square roots are seldom directly mentioned, forming an approximation through functional calls.
00:14:29.760
From there, we implement a metacircular interpreter in four concise chapters. The fifth chapter involves writing a compiler for that interpreter. This area has always been my favorite, and we tackled another book called Realm of Racket last fall.
00:14:54.639
In that session, we wrote a keyboard-controlled spaceship and crafted multi-player games, all done in Scheme—specifically in Racket, because it's an excellent way to solidify functional programming concepts. Currently, we have started working on a project titled Nand Tetris, using the book titled The Elements of Computing Systems by Nisan and Shoken.
00:15:14.399
This revolves around constructing a computer from foundational logic gates, starting from a simple NAND gate, which is a universal circuit, through various logical constructs, ultimately leading up to creating logic that underpins a functional computer.
00:15:39.920
We use mailing lists for non-face-to-face communication and generally meet in the same location—except during our monthly socials, which occur at Substantial. The mailing list is essential for disseminating homework and creating structure within the program.
00:16:05.760
We are self-organized and have multiple groups operating independently across the city. Each group has its leader to manage homework and communicate essential details to new members or absentees.
00:16:26.720
Moreover, it's important to accept that not everyone will complete the program due to life circumstances. People will fade away, but that is perfectly fine; it reflects the natural ebb and flow of a cooperative learning environment.
00:16:52.720
So, what constitutes a successful Ruby Brigade? First, select your participants. Figure out the type of group you're trying to cultivate and the activities they will embrace. Food and drinks often make a significant difference; if you promote pizza and beer, attendance will likely increase.
00:17:34.239
That being said, it's crucial to recognize that these offerings will attract certain types of individuals, possibly those looking to watch us present rather than participate. Ensure that the group stays centered around the right audience.
00:17:52.559
Be passionate about your vision for the group and be supportive. We've had many newcomers walk through our doors over the years, and one memorable instance involved a person who had just picked up Chris Pine's book on programming. They sat down, read through two pages, and asked us about text editors. That's exactly the kind of engagement we want.
00:18:29.440
It's essential to have participants bring projects, questions, or issues they wish to resolve. For the right balance in the group dynamic, organizing at multiple levels is beneficial. We host hack nights, show-and-tell sessions, and regular presentations.
00:18:53.920
Central to our approach is the understanding that having fun ensures success. The right location can considerably enhance accessibility, so meeting downtown or in a central area opens participation to more individuals.
00:19:13.920
However, consistency matters even more. Meet every week without lengthy breaks; that way, missing meetings won't feel significant, and over time, attendance generally grows.
00:19:35.680
Regarding successful study groups, choose a book that challenges attendees. Although I prefer physical copies, providing accessibility in digital formats is equally vital since not everyone is an experienced software engineer.
00:19:53.280
It's crucial that the material is challenging, evoking enthusiasm. Ensure group meetings are loosely organized but should have enough structure to avoid chaos.
00:20:16.160
Using a mailing list for ongoing communication helps keep everyone in the loop. I suggest groups meet weekly to maintain continuity in studying, especially for coordinating homework.
00:20:37.520
Self-organization is critical: multiple parallel groups can co-exist. Each group can operate independently, setting their homework, solidifying their unique identity.
00:20:57.440
Ultimately, it's imperative to allow people to drop in and out at their own pace, as life has a tendency to interrupt plans.
00:21:18.080
Thank you for your time! I find it amazing that I actually managed to keep this consecutive talk, maybe even giving all of you a surprise.
00:21:31.680
As you might have gathered, I love this book—it’s outstanding for pedagogy and sheds light on how our computers operate. I also appreciated the previous talk's points, drawing parallels between our work and the monumental efforts behind the moon landing.
00:21:52.920
For instance, it begins with the simple NAND gate—a fundamental circuit from which you can construct all types of logic gates. Alongside understanding these concepts, we learn to build complex electronic systems layer by layer, crafting substantial devices merely from what appears as simple gates.
00:22:32.560
Each component contributes uniquely until you can grasp how a functioning computer operates, often simplifying intricate processes down to mere components. The learning curve here is manageable—even enjoyable.
00:23:02.640
I’d recommend both books to anyone looking for a fun yet challenging journey into programming and computing fundamentals. Based on the dynamics of our community and what we offer, I’m hopeful that anyone can find parallels in their learning.
00:23:48.320
So thank you yet again, and I look forward to seeing how these insights can empower your efforts in building, engaging, and evolving tech communities.
00:24:11.440
And I appreciate everyone's patience and attention through this talk, as well as a special thanks once more to those who've helped coordinate this experience.
00:24:33.679
I don't want to overstay my welcome, so take it easy, everyone. I’ll stop before it gets too late—thank you!
00:25:22.880
That's it!