The Majestic Sea Creature http://blog.majesticseacreature.com Pure, unadulterated moxie from Gregory Brown posterous.com Tue, 16 Aug 2011 09:44:00 -0700 Ruby Mendicant: Progress Report #12 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-12 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-12

Since December 2010, I've been working directly for the Ruby community on a full-time basis. Monthly contributions from community members help make that possible. If you like what I'm doing and want to support it, please find the PayPal subscribe button at the bottom of this post. Currently I have 76 subscribers for a total of $800/mo before PayPal fees. This is not yet nearly enough to live off of, but does help offset my expenses.

Not as much publicly visible work has happened over the last two weeks as in previous weeks because I had to focus on making money. But now that I've done that, I will have some free time once again for getting back into Mendicant mode, for at least a few more weeks.

Practicing Ruby

The second part of the Thoughts on Mocking article has been posted to the RBP Blog. As I mentioned in previous progress reports, I've also been working hard on Practicing Ruby: Volume 2. I now have a total of three unpublished articles in the backlog: one on closures, one on code loading, and one on how to make progress on sticky problems. All three of these articles have been sent to the Mendicant supporters, as a way of saying thanks for their monthly contributions and also because I could use the feedback!

Mendicant University

Even though this is a recess month, we have a lot of exciting things going on at Mendicant University.

Last week I came up with an idea for a weekend hackfest focused on "coding for good" in some form or another, and our alumni had lots of interesting thoughts about how we could go about doing that. We're having a planning meeting some time this week and I should have an announcement out sometime between now and the next progress report with some of the details. This will be an online event that is open to anyone who wants to participate, and will happen some time in October.

We are also experimenting with the idea of running a Mendicant University podcast. It won't necessarily be about programming, but instead be about various topics our students, staff, alumni, and friends find interesting. We've already recorded one episode and shared it with the Mendicant supporters and alumni, and we plan to start publicly releasing episodes within the next week or two.

Yesterday I met with Shane to start the planning for the September core skills session, and we've already worked out most of the ideas for the exercises that we'll run. We are working hard to make this session our best one ever, as it will be the opening session for Mendicant University's second year.

Today I am meeting with Jordan to overhaul our code review request system in university-web. This is one area of the software that has fallen out of sync with the way we run our courses, and so I'm excited to be able to fix this before the September session starts up.

Prawn README Overhaul

A while back I promised the Prawn core team I'd replace our aging and out of date README with a more streamlined and modern one. Now we have exactly that. That having been said, all the real documentation in Prawn is thanks to Felipe Doria's amazing Prawn by Example manual.

RubyGems

Before I dig into other issues with RubyGems, I decided to scratch my own personal itch by trying to get the maintainers to use an official blog for making announcements. This is something I proposed back in June and Nick Quaranto immediately did the legwork on, but the core team never got around to testing out what Nick set up. A few days ago I published at test post to blog.rubygems.org and confirmed that things worked as expected. It's just a simple Jekyll based blog on Github pages, so it's very easy to work with.

We still have some things to get sorted out on that blog, such as deciding whether blog.rubygems.org is the right subdomain, or if news.rubygems.org would be better. We may also do some style tweaking and cleanup of the archives, but most of that I'll leave up to the RG maintainers. What I want to see is release notes getting posted to blog.rubygems.org every time there is a new release, and perhaps a monthly summary of what's been happening on the project and where they plan to take it. We should be able to make this happen within the next few weeks.

The guides have been seeing some love from Erik Michaels-Ober and Gabriel Horner over the last few weeks, so I haven't been focusing on them much. That said, I will definitely look at any pull requests that come in, so feel free to contribute if you can.

In addition to the above, I've got a couple issues I'm working on investigating within RubyGems, but I rather announce them once I've dealt with them, rather than making promises I can't keep. They're minor things, but things that have been annoying me that I'd like to see changed.

Software Development for Beginners (Training in New Haven, CT)

We'll be running a community session for beginner software developers here in New Haven tomorrow. I'm going to try to either record some of it, or make some really good class notes so that folks reading this blog could benefit from the materials or at least share them with someone who can. I'm excited about tomorrows lesson, because it involves MineCraft ;)

Want to Contribute?

If the things I'm working on sound worthwhile to you and you want to support it, please subscribe! It will help me keep doing good stuff for the community without having to focus too much on making ends meet. I've been doing this since December but only recently started accepting funding, so it will really help me counterbalance several months of burning through my savings.

 

 

How much do you want to invest?

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Sat, 13 Aug 2011 11:18:00 -0700 Link Dump #2 http://blog.majesticseacreature.com/link-dump-2 http://blog.majesticseacreature.com/link-dump-2

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Wed, 10 Aug 2011 18:18:00 -0700 Quitting twitter may have been a good idea after all http://blog.majesticseacreature.com/quitting-twitter-may-have-been-a-good-idea-af http://blog.majesticseacreature.com/quitting-twitter-may-have-been-a-good-idea-af
After quitting twitter this past weekend, I thought for sure I'd go into withdrawls and really feel like I was missing out on things. But three days later, the sky hasn't fallen yet. I've been a bit more productive without the distraction, and I've been having deeper and more meaningful conversations online, even if they're smaller in number.

After seeing that I'd left twitter, several folks have emailed me to share their own stories about difficulties with social networks. These stories have inspired me, and they've reminded me of how hard it would be to have this sort of communication over something like twitter. As an example, here's an email from Gregory Parkhurst, a newly accepted Mendicant University student who will be attending our September session.

I have a friend who people pestered, half-jokingly, to interact on Facebook. He refused to open an account. He later revealed to me that he /had/ opened an account. As he told it, he signed up at 2 AM on a Saturday, and within 24 hours, he had over 200 contact requests. Most of these were from people he hadn't spoken to in 10+ years.

His thought was, if any of these people wanted to make the trivial effort to contact him (or vice versa) during that vast span of time, they would have. If they really wanted to be friends, in the present tense, in any meaningful sense of the word, they wouldn't have waited for the social networking / viral marketing soup du jour to "enable" it. This wasn't enabling at all; it was a burden.

He cancelled the account that same weekend.

I doubt you share precisely the same motivation, but speaking as one of those who jumped on the new Twitter account without having engaged in any deeper interaction first, I think I understand.

People aren't capable of having deep relationships with hundreds of other people. Most relationships are necessarily shallow. The trouble with the current social tools is that they tend to be binary, or at least they start out that way: We're connected or we're not. If there's a middle ground, it may be limited to a select list on a form. The tools aren't smart enough to detect that I'm never going to have an interest in what person X's kids are having for dinner, or that person Y is really, really excited about his faith, even if these are people I otherwise enjoy spending time with.

And then there's this <http://xkcd.com/386/>. Try as you may to avoid it, it's just a matter of statistics.

We have a long way to go before the tools are capable of externalizing a meaningful subset of my preferences when dealing with other people. I probably won't be happy with anything less than a semi-autonomous filtering agent. For now, I use the tools sparingly and I refuse to take them seriously.

Given what we have to work with today, I hope you can find a balance.

While it may seem deeply old-fashioned, I much prefer the lost art of letter-writing to the highschool cafeteria banter of Twitter. I still think Twitter is a useful broadcast medium, but conversations there suck badly, and all it takes is a couple days away to realize that.

Want to reach me about this or something else that's on your mind? Email me at gregory.t.brown@gmail.com or find me in the #seacreature channel on Freenode.

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Wed, 10 Aug 2011 06:37:00 -0700 Link Dump #1 http://blog.majesticseacreature.com/link-dump-1 http://blog.majesticseacreature.com/link-dump-1

One thing I used to use twitter for is recording links for future reference while simultaneously sharing them with others. I will be trying to use my blog for that purpose now, so here's a link dump. It's worth mentioning that several of these links come from my favorite link blog, Trivium.

Want to reach me about this or something else that's on your mind? Email me at gregory.t.brown@gmail.com or find me in the #seacreature channel on Freenode.

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Sun, 07 Aug 2011 12:18:00 -0700 I quit twitter, so you'll need to find me in other places now. http://blog.majesticseacreature.com/i-quit-twitter http://blog.majesticseacreature.com/i-quit-twitter

UPDATE: Even though I've left twitter, Mendicant University has not. You should follow @mendicant_news if you want to keep track of the day to day happenings at MU.

I'm sure I'll cave in and go back to old habits within a week or so, but for now I've decided to quit using twitter.

I haven't deleted my accounts because I don't want to have to rebuild my social network if I do go back at some point, and also because I want to keep them around for archival reasons. I want to experiment with more slow-cooked communications, and with making deeper connections to the people I interact with. I already have the Mendicant University alumni network and the Ruby Mendicant supporter network for discussing things with people who are interested in my work or working on projects with me. I plan to use those more often now. I will also blog here more often, so perhaps that's a positive side effect.

But I suppose I will need at least *some* replacement for twitter, and for that reason, I've created the #seacreature channel on Freenode. It is currently public with everyone having voice, but I may change that later if I feel like it. I will also of course frequent existing public channels for projects, but this is the channel I will use to post random links, engage in random discussions, and also hopefully, allow my friends to meet each other and have some cross-pollination of ideas happen. For more focused Ruby discussion, I'll probably use the public #rmu channel, so that our students can benefit from those conversations, but we'll see how it goes.

Yep, this sucks even more than two twitter accounts. But we'll see how it goes.

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Sat, 06 Aug 2011 17:39:00 -0700 Loose Tweets Sink Fleets http://blog.majesticseacreature.com/loose-tweets-sink-fleets http://blog.majesticseacreature.com/loose-tweets-sink-fleets

Today I decided to start splitting up my tweets across two accounts. The account most folks have been following (@seacreature) will be used for tweeting announcements about projects I'm working on, as well as links to things I find interesting. This account will remain public and is still the best place to keep track of what I'm working on at any given moment. Pretty much everything else, including any conversations, will be done through my new private account (@gregory_t_brown). This is going to be a bit of a pain in the ass for me and has some downsides for the folks in my extended social network, but I think the experiment is worth it.

In the last three months, I've gained over 300 new non-spammer followers on twitter. My primary account is now followed by close to 1700 people, where I think a year ago it probably was watched by no more than 400 or so. This rate of gaining new followers is MUCH faster than than I could reasonably get to know the people who want to interact with me. When you add in the second tier effect of seeing followers of followers join into conversations, it means I'm spending more time talking to complete strangers than I am to my friends. While a bit of random interaction keeps things interesting, it is not something that scales upward gracefully.

Here's something that I struggle with all the time: I am emotionally impacted by pretty much every statement that is made to me or about me, and typically feel the need to respond to any question or comment someone has for me. When I am friends with someone or at least know who someone is and appreciate their work, I can apply a lot of context to my interactions with them, which helps prevent me from getting too worked up about disagreements or conflicts. In fact, I really enjoy healthy arguments with people I know and respect, because they challenge me and broaden my perspective on things. However, the same cannot be said for arguments with strangers.

More and more often on Twitter, I find myself in faux arguments with people who I feel either don't know or don't care about the relevant experience I have which forms the basis for my opinions. Similarly, I don't have the means to get to know everyone I interact with at even a superficial level, so I don't know how to evaluate their attitude on things. These arguments are usually silly, because they resemble something not unlike what you find on Reddit: people talking at each other rather than to each other. This is made worse by the fact that you can't help but be aware that these conversations are happening out in the open, in which a few thousand people could potentially be watching and judging your each and every move. I would like to think that it doesn't influence my behavior too much, but it'd be ridiculous to say it has no impact on me at all.

So that brings me to my experimental splitting up of my tweets. I like the broadcast functionality of twitter for sharing news about my projects or links to my writing. I like being able to have concise conversations that can be overheard by friends who might throw me a curveball every once in a while. But I don't like being a talking head getting rattled at by other talking heads, and maybe this change will prevent me from feeling that way. It's worth a shot, at least.

NOTE: I've also disabled comments on this blog, for the same reason as I mentioned above. If you want to respond publicly, write a blog post in response. If you want to respond privately, email me!

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Fri, 29 Jul 2011 14:01:00 -0700 Help Eleanor get to RubyConf http://blog.majesticseacreature.com/help-eleanor-get-to-rubyconf http://blog.majesticseacreature.com/help-eleanor-get-to-rubyconf

UPDATE: Eleanor now has the funding she needs to make it to NOLA for RubyConf. Thanks for stepping up, folks. This post is still possibly worth reading for the broader point about conferences and communities.

Hi folks,

I have a favor to ask of you. Please help my friend Eleanor get to RubyConf. She didn't ask me to write this appeal, but I feel like it's necessary to do so, and I'll explain why.

Eleanor has been in the Ruby community a LONG time. She was working with Ruby nearly a decade ago, which means that she was around when I started Ruby back in 2004. Folks who have been around that long represent a very small part of our population as a community, but are very important because they possess historical context that many newcomers lack.

The primary way I've interacted with Eleanor is through conferences. I don't particularly follow her day to day work, and now that we're not hanging on the same mailing lists and IRC channels, I don't bump into her regularly. But I make a point to catch Eleanor at every conference I see her at, because the hallway track conversations I've had with her have been some of the most fascinating that I've had in my life.

I've seen Eleanor talk several times, and the opinions that others have had about her presentation style have been varied. She picks super hard topics that are easy to get lost in, and sometimes that happens. I personally find her style fascinating, but I'd be lying if I didn't say she can ramble on at times, or go off on tangents that seem to lead to place far from where she started. But whether you love or hate her presentations, that shouldn't let you miss an important point: Conferences are about people, not talks. I know there are a lot of deserving people who can't make it to RubyConf, but since I know Eleanor personally, and since she has such a peculiar background, I want you to help her out.

People are often hesitant to donate to things like this. They think that someone else will do it. Unfortunately, Eleanor tried and failed to raise funds to get to LSRC 5, even though she had an accepted talk there. They think that they don't have enough money themselves to help others. However, what people really seem to think is that if they offer $5 or $10, it'll seem like too small a donation to be worthwhile, and they're not comfortable giving large sums. If everyone who had that though just ponied up the $5.00, this pledgie would be closed already. They think it's not their responsibility. It isn't, but again, conferences and communities are about PEOPLE, and helping people is a good way to keep communities strong and make sure our conferences are full of interesting people.

Eleanor is like me: she has given up offers for significant commercial gain so that she can focus on open source and on community. Even if this does not affect you directly, having more people like this in our ecosystem would be a good thing. So please, go to pledgie right now and just give $5 to Eleanor so that she can get to RubyConf. It will be a better conference if you do, and the community as a whole will benefit from whatever mind warping ideas Eleanor puts in peoples heads, both on the stage and in the hallways.

More folks need to adopt a social investment mindset rather than than sticking to the narrow possibilities of economic consumerism. This is one small way you can do that, and I don't think you'll regret it if you do.

Those who would like to help financially, but can't do so for whatever reason: please just show your support by spreading the word on Twitter or wherever else you might find people who can help.

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Fri, 29 Jul 2011 12:28:00 -0700 Ruby Mendicant: Progress Report #11 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-11 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-11

Since December 2010, I've been working directly for the Ruby community on a full-time basis. Monthly contributions from community members help make that possible. If you like what I'm doing and want to support it, please find the PayPal subscribe button at the bottom of this post. Currently I have 74 subscribers for a total of $788/mo before PayPal fees. This is not yet nearly enough to live off of, but does help offset my expenses.

Practicing Ruby

Last week I mentioned that I have decided for a number of reasons to start my paid newsletter Practicing Ruby back up. Within the next few weeks, folks will be able to Practicing Ruby volume 2, which will be a weekly newsletter sold for $8/month. But for now, I am working on getting all the volume 1 articles released under a Creative Commons license to the RBP blog. Six articles have been released since the last progress report, which means there are now 19 articles in total available for free. I'm working on building a nice index for them, but for now, here are some links to the most recent ones:

There are still 7 more to be publicly released from volume 1, but I've already begun work on volume 2. Members of the Ruby Mendicant supporter network already have access to two of the articles, one on code loading and another on closures. If you haven't yet subscribed, that may be an incentive for you to join, as you'll continue to get early access to Practicing Ruby rough drafts even once the newletter starts up again.

Mendicant University

Shortly after last week's progress report, I announced the plans for the next year of Mendicant University. You should read that article for details, but essentially these plans call for us to create a smaller, tighter program that is more sustainable. However, we plan to counterbalance that by increasing our emphasis on things like our mentoring program, which will allow us to reach a larger amount of people while asking for a smaller time commitment from them. We are also introducing some minor changes to the core skills course that will increase the amount of impact Mendicant University has on the open source community (and vice versa) by connecting students with mentors from popular open source projects.

Our admissions process for the September core skills course was wrapped up in a flash, with the course filling up 24 days before the exam deadline. That goes to show that the demand for spots in our courses is still extremely high, perhaps moreso than it has ever been. This is simultaneously a good and bad thing, because we wish that we could accomodate more people, but we also want to make sure we don't grow too quickly, either.

In more recent news, our July core skills session just wrapped up, with six students successfully completed the course. You can find the list of new alumni, the exercises from the session, and student projects in this announcement.

NOTE: Last week I mentioned we were close to releasing a new public site, but that plan has changed due to us shifting our priorities to other things for the moment. I'll let you know when we have more news about that.

Ruby Rogues Session

I participated in another Ruby Rogues session, this time on metaprogramming. This was a fun session, but I actually kind of hate the topic. It gets me all worked up, and someone even commented after listening that I tended to interrupt the other panelists too much. That person was right, and this podcast would have been better if I hadn't done that. I guess it still turned out to be an interesting talk at least. :)

minitest-helpers

I put my minitest helpers that I mentioned in a previous progress report up on Github, so that others can try them out and contribute to them if they'd like. However, I may decide to go back to trying out minitest/spec and seeing if it suits my needs. If it does, I'll either update this code to be minitest/spec based, or wipe it out entirely. But at least there is now a more permanent place than a gist for it to live and get worked on :)

RubyGems

Now that Mendicant University is in a recess month, I'm going to turn my attention back to RubyGems a bit. Specifically, I plan to go back over what commitments were made by the RubyGems team and get status updates on them. I may also begin working on a guide or two, if time permits and I feel I have enough information to write about.

In general, it seems like some things have gotten better while other things have stayed the same. I've been away from the project for a couple weeks, so I need to dip back in and get my bearings before I can comment further. Expect a blog post with updates some time before the next progress report.

Software Development for Beginners (Training in New Haven, CT)

A few weeks ago we taught our first community session for our Software Development for Beginners course. However, Mendicant University has kept us more than busy, and so our followup session plans got put off. However, we've decided that we want to keep this idea alive, even if we need to scale it back a little. We'll probably try to go with monthly sessions and see how things go from there. Jordan has already sent out a survey to our students to try to pick a date, I'll post an update once we've got more news.

We've decided to charge $20/session for these meetings, even though they're worth a lot more than that. We figured this would put us at a price point comparable to a yoga class or a dance lesson, and that'd give us a more broad cross-section of the community to work with. We contemplated making the sessions entirely free but figured we could use the extra trickle of revenue. That said, we told our students if price is a factor for them, that we'd work something out with them.

Financial Transparency

As my bank account starts to look more and more anemic, I will need to do some commercial work to help me cover my living expenses and travel costs. Right now I'm looking at doing a mixture of work on written materials such as Practicing Ruby, private trainings, and private coaching sessions. All of those things will be relatively fixed commitments and will keep me in the education space, making them somewhat less distracting.

However, because I am asking the community for financial support, I think that if I'm taking in any substaintial commercial income that I owe some sort of report of my revenue and expenses for the sake of transparency. I am unsure of exactly what level of detail those reports will look like, but expect the first one at the end of August. It should at least give you a rough sense of how much I actually need the money from this support program.

Want to Contribute?

If the things I'm working on sound worthwhile to you and you want to support it, please subscribe! It will help me keep doing good stuff for the community without having to focus too much on making ends meet. I've been doing this since December but only recently started accepting funding, so it will really help me counterbalance several months of burning through my savings.

 

 

How much do you want to invest?

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Thu, 21 Jul 2011 19:25:00 -0700 p0wning House Flies with Science http://blog.majesticseacreature.com/p0wning-house-flies-with-science http://blog.majesticseacreature.com/p0wning-house-flies-with-science

Tonight my wife and I fell victim to what can only be described as a total aerial assault on our home, carried out by an angry mob of house flies. The combination of it being garbage pickup night, the temperature being higher than it has been all year, and our poorly installed air conditioners made us the softest target on the block. One fly in the house is annoying, over a dozen buzzing around feels like armageddon. The fact that I don't intentionally kill bugs just added insult to injury.

But in a bizarre twist of fate, my evening was saved by a junky little children's toy and a little bit of science.

5963023966_18dd67cb83
I originally was chasing flies around the house crazily with this little vacuum gun and mostly just getting frustrated. Then, Jia had the smart idea to put the porch light on and kill all the other lights in the house, to try to trap the flies out on the porch. A smaller space made it easier to catch them, but still resulted in a mostly ridiculous game of fly and human in which the fly was impossible to catch until it landed nearby in sheer chance. After struggling for about 10 minutes, we were able to catch the two flies we trapped on the porch and release them outside. When I got back in the house, all the lights were off, and so I turned on the little red light on this cheap plastic gun that I always assumed was a shoddily built wannabe laser pointer. That's when the Eureka moment happened.

I could see a fly sitting completely still on the living room wall, and decided to try to sneak up on him, fully expecting him to fly away at the last moment. But for some reason, he didn't budge at all and I was able to catch him with ease. Before I had a chance to turn the lights back on in the room, I noticed another fly on the wall on the opposite side of the room, and repeated the process. Sure enough, I was able to walk right up to him and suck him up into the gun with ease. This is the exact moment where I realized that flies can't see well (or seemingly at all) in red light!

Within the same amount of time it took us to catch the first two flies, we hauled off 12 more by simply turning on a white light to attract them into the general area, then switching over to red light and sucking up two or three at a time. This was proof enough for me that the approach worked, but I wanted to verify it before writing about it so I'd appear at least slightly less insane. Sure enough, there is a fancy graph from a scientific paper that confirms my hypothesis.

Light-sensitivity-fly

That cliff you see on the right side of the graph is the red light spectrum, in which a fly starts to fail to see an approaching vacuum gun that is perched about 1cm from its face. Clearly, the manufacturer of this silly children's toy that saved me from a terrible night must have known that. It's sort of embarassing to admit that I didn't, but hopefully it made for an interesting story nonetheless.

While this informal experiment was conducted by accident due to my religious practices, I can only say one thing in summary that I might as well let XKCD say for me.

Science

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Wed, 20 Jul 2011 06:02:00 -0700 The Constant Gardener http://blog.majesticseacreature.com/the-constant-gardener-22299 http://blog.majesticseacreature.com/the-constant-gardener-22299

It used to be that every morning as soon as I got out of bed I'd sit down to clear my email and check twitter. The idea was that if I could take care of that first thing in the morning, it'd distract me less throughout the day. That idea is actually valid, but it comes with a cost.

I find that whatever I do first thing in the morning sets the tone for the day. By checking email and twitter as my first activity, I was basically spinning a roulette wheel. Some mornings I'd have a message waiting for me that inspired me, other times there were things that irritated me or just made me feel down. Even if those emotions arose just from some minor issue, I found they'd stick with me throughout the day. After a while I got sick of the rollercoaster ride and its effects on my productivity. I needed a more consistent morning activity to balance things out.

A couple months ago we set up some planter boxes to try our hand at square foot gardening. Below you can see what it looked like when we first started building them.

5767282886_de30e13daa

Because I work from home, I could pick any time of day to focus on working on the garden. But I sort of accidentally got in the habit of going out and working on it as soon as I woke up, for the same reason that I used to check my email: I was excited to see what the changes were. Now, I've never properly gardened before, so what I didn't realize is that change happens FAST. The picture below is from only maybe 5 weeks after we planted seeds and tiny starter plants.

5944020162_5b8c005253

As I continued to work on the garden, I noticed a major change in my overall mood consistency. Sure, some times I'd go outside and see some bad news. One time I woke up to find one of my buttercup squash smashed in half and about 40 feet away from my garden. The zucchini plants you see in the picture above, after giving us a great yield eventually got a disease and I had to rip them out. But for the most part, I'd see things that were good news. The plants would grow bigger, new vegetables would come in. The bees would be pollinating new flowers that had bloomed the night before. But for better or for worse, the garden was a fixed universe with real limits on the range of possibilities for good and bad news in the morning. This is a huge contrast to email, which can bring news that affects your entire life.

Building a garden wasn't an intentional exercise in personal development. Instead, it was an activity that fell into my life simply because I wanted to grow my own vegetables. But when I noticed the positive effects it was having on me, I re-enforced the habits that I was starting to form around the activity. Now, it has just become part of my daily routine and I don't need to motivate myself to work on it. I find that this 15 minute buffer zone between me and my inbox is more than enough to at least partially immunize me from the rapid moodswings that clearing my inbox can cause. I wonder if there are other small hacks like this that I should be applying in my life, because this one certainly worked!

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Tue, 19 Jul 2011 11:33:00 -0700 Mo' Puzzles, Mo' Problems http://blog.majesticseacreature.com/mo-puzzles-mo-problems http://blog.majesticseacreature.com/mo-puzzles-mo-problems

We try to keep the process of joining Mendicant University fun and light hearted through our use of PuzzleNode problems for our entrance exams. The neat thing about PuzzleNode is that it is designed to be accessible to anyone who wants to work on coding exercises, not just Mendicant University applicants. We've worked hard to make sure that PuzzleNode has its own look and feel, and doesn't directly associate itself with Mendicant University beyond acknowledging that it's one of our projects. While one group of folks are treating these puzzles as an entrance exam, others are just hacking on them for fun.

A side effect of this approach is that up until now, we've not had a policy on spoilers. We assumed our students would know not to look at other people's work or share their own solutions during an entrance exam, even if other people using PuzzleNode might be doing that. Unfortunately, that assumption was incorrect, because two of our applicants posted their solutions publicly within 24 hours of the exam opening. As a knee jerk reaction, I initially disqualified both of these applicants, without consulting the rest of the Mendicant University staff. This got me in trouble with Jia, who is not only my wife, but also one of Mendicant University co-founders. That lead to a staff meeting today to discuss what happened and figure out where to go from here.

First of all, we made a mistake by not making our assumptions clear to potential applicants about sharing solutions with others. Without communicating our wishes about that, it wasn't fair for me to simply disqualify people on the basis of an unwritten rule. But as we discussed the issue further, we contemplated two valid arguments about why posting your solutions after you have already submitted your application might not be so bad. The first argument is that if for example, someone puts their solutions on github but doesn't broadcast them to others, it's very likely that they just don't have a paid account for storing their code privately, or don't have the habit of doing so. In this situation, the person is not inviting others to view their solutions, that might just happen by accident. The second argument is that the honor system approach we take is still valid if we assume our students won't go looking for solutions before they submit their application.

Both of these arguments are reasonable, but something we'd still rather not have to think about. As the demand goes up for spots in Mendicant University courses, so too does the potential for gaming the system somehow. But we don't want to be reactive, a mistake I made last night, and we also don't want to get mired in policies about theoretical threats rather than actual problems. We're just not that beurocratic. So we've decided that rather than having a policy about this, we'll just exert a bit more social pressure discouraging people from sharing solutions before the admissions process is completed for any given set of problems.

Now when you visit any of the puzzles currently being used as an entrance exam problem, you will see the following message

Note: This problem is currently being used as part of a Mendicant University entrance exam. We'd appreciate if you don't share your solution with others until after August 18th.

We're hoping that just by asking nicely, this problem will go away. Also, we hope that by including a date in the message, that it's clear that it's not that we don't want folks to share, but that we just want them to wait a little while before doing so. We don't have a policy beyond this about disqualifying people for Mendicant University sessions, because we figure we can take it on a case by case basis from here.

Additionally, we've reversed our decision and apologized to the students that we disqualified as a result of my reactive, not-so-well-thought-out decision. One of the two students has already been accepted, and the other has had his solution sent back to the alumni network for review.

As a young organization, we fuck up sometimes. This was one of those times, and I'm sorry for the frustrations I caused our applicants and for the tone that this sort of harsh action sets. Hopefully our follow-up actions have set things back on a better course.

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Tue, 19 Jul 2011 07:35:00 -0700 The Frustrating Economics of Digital Goods http://blog.majesticseacreature.com/the-frustrating-economics-of-digital-goods http://blog.majesticseacreature.com/the-frustrating-economics-of-digital-goods

I love that it's possible to make money off of digital goods as an independent content producer. But I hate the way that most buyers and sellers perceive value in the digital marketplace.

In an age where open source software has reached into pretty much every nook and cranny you can think of, it's absurd to think that there are still many people out there who think that releasing content for free is a sign of a lack of confidence in that work. It doesn't matter if it's a software project, a book, a screencast, or any other digital artifact. People will tell you, if you really value your work, you'd charge for it. And you'd charge a lot!

But these people always seem so insecure to me. Do you really need money to keep score on how much value you are producing in the world? I don't. That having been said, there is nothing wrong with making money, or even being profitable, assuming that profit is going to make something else that's awesome possible. It's hard to produce awesome stuff if you can't pay your rent or grocery bills, and ideally, you to make that money doing the thing you love, not something else that's "just a job" to you.

The mindset of extracting maximum value from any given piece of work forces you into a model of artificial scarcity. The model of not giving away anything for free unless it's been completely squeezed dry actually seems to be an effective way to rake in cash, but again, it seems to exhude a lack of confidence even though it is meant to express the opposite. Personally, I think that this model does not give customers enough credit.

My ideal customer is one who purchases something not simply to jump a pay wall, but because they believe in the work that I'm doing. I want a customer that is smart enough to realize that producing good works costs money, and that their payments to me are a way to help me recover my costs, and also help me get by while I focus on improving my existing works or starting new interesting projects. That customer understands that by paying me, they're actually investing in my projects, and in me. As a paying customer, they share in the successes and failures of my ventures, and my successes and failures are dependent on them.

What this boils down to is that I seek customers that are investors, not consumers, when I produce digital goods. My revenue stream is a combination of a tip jar for a job well done, and a bet on my future for those who trust me and my work. With this kind of customer, I can give as much away for free as I'd like and still make money. With this kind of mindset, I can focus on making new things rather than squeezing cash out of old things. It is not a quick or easy way to make a living, but it sure is a satisfying one.

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Sun, 17 Jul 2011 06:37:00 -0700 The Next Year of Mendicant University http://blog.majesticseacreature.com/the-next-year-of-mendicant-university http://blog.majesticseacreature.com/the-next-year-of-mendicant-university

UPDATE: Text below has been updated slightly to reflect the current plan as of November 2011. Small changes have been made, but the spirit of the original idea has been preserved.

Throughout the first year of working on Mendicant University, we grew faster than anyone could have expected us to. We managed to make it a whole year without a formal plan, growing and changing organically as we worked on finding our way. But with the growth came the growing pains, and a couple months ago we began to worry that if we continued at the pace we were going without at least some minimal planning, we'd burn out.

It took us several weeks to regain our bearings, but now that we have, I'm happy to announce the plans we have for next year. What follows is just a summary, but it should give you a glimpse into where we plan to take things.

  • We are changing our community service exercise in the core skills course so that it is now mandatory, but more open ended. Students will be able to select from a list of open source projects and community mentors and then are expected to make a small contribution to the project they choose. This will give the students an opportunity to contribute to an existing open source project in a supportive learning environment. This new requirement will effectively double the publicly visible impact of our sessions, as students will still also be releasing their own individual projects as open source.

  • We are reducing the number of core skills courses from six per year down to three. The next three sessions will be held in September 2011, January 2012, and May 2012. We may or may  not reduce the class size from 15 down to 12, but September will run with 15 seats open. There are many reasons why we need to reduce the number of core skills sessions, but the main one is that it is the most labor intensive course we have to run. In addition to being a huge commitment for the students, it takes the effort of two instructors, three alumni mentors, and a visiting teacher to bring folks through this session. We want to make sure that we focus on quality rather than quantity, and reducing the number of core courses is one way to do that.

  • We plan to greatly expand and extend our mentoring program. Eric Gjertsen and Shane Emmons are still working on a plan for exactly how we will go about growing the program, but our goal is to be reaching a much broader audience of folks who could use a code review or some guidance about what they should be studying and practicing. This will hopefully counterbalance the reduction in core skills courses, as many folks will still be able to engage with Mendicant University even if they're not formally taking courses here.

  • We are increasing the number of courses taught to our alumni. We plan to run web development sessions, software design sessions, and several pilot sessions as well. Pilots may include technical writing, statistics for programmers, and possibly a session on Ruby in the industry.

  • We will be doing an increasing amount of projects with our alumni, some public facing, some meant to help shore up Mendicant University's infrastructure. However, it's very likely that within the next year you'll see our students and staff working on projects of high importance to the community, on an as-needed basis. (EDIT: As an example, we've done a Ruby documentation drive and a social good hackfest in October 2011)

These changes will hopefully lead to a more sustainable, stronger program. It isn't quite as ambitious as what we shot for in the first year, but it's solid and I think we'll be able to make it all happen. Our goal was to come up with a plan for our second year that would make sure we'd still be here in our third year, and I think this will do that. Have a question about where we're headed? Just ask in the comments section below.

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Sun, 17 Jul 2011 05:41:00 -0700 Ruby Mendicant: Progress Report #10 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-10 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-10

Since December 2010, I've been working directly for the Ruby community on a full-time basis. Monthly contributions from community members help make that possible. If you like what I'm doing and want to support it, please find the PayPal subscribe button at the bottom of this post. Currently I have 73 subscribers for a total of $760/mo before PayPal fees. This is not yet nearly enough to live off of, but does help offset my expenses.

PuzzleNode

With the help of Andrea Singh (@madebydna), and several testers from the Mendicant University alumni network, I launched four new PuzzleNode problems. Our goal was to create problems that encourage the use of object oriented programming, but they're still very much language and paradigm agnostic. I think we may have accomplished that goal with all but Puzzle #12, which we allowed to be a wildcard.

Mendicant University

Our July session is under way, and eight of our twelve students made it through the first checkpoint. The assignments we are running in this session are very challenging, but I'm happy to see the students rising to meet that challenge. It's been a lot of hard work, but it's also been fun.

We will open up admissions for our September session on Monday, July 18th. Those who wish to get a head start should focus on solving at least two problems from PuzzleNode #9-#12.

Thanks to alumnus Andrew Cox (@coxandrew), Mendicant University will soon have a brand new public website. Jordan (@Jordan_Byron) and I will be making some final revisions to the design Andrew created and populating the new site with content over the next week or so. We expect that if all goes well, the new site will launch within the next 7 days.

Practicing Ruby, Volume 2

I am starting to reach the point where I need to have more revenue coming in to make sure my bills get paid, but I'd rather not go back to consulting work just yet. The mendicant supporter money has helped extend my runway, but I need to augment it somehow. I've decided that it's worth a try to restart my Practicing Ruby newsletter, which was highly successful the last time I ran it. When I asked whether people would resubscribe if I started it back up, the response was overwhelmingly positive, with 25 "Hell Yeah" type comments within the first few hours, and close to 100 trickling in over the next several days.

I expect that the newsletter will officially relaunch some time in August, but for now I am working on building up a backlog of content. I've decided to release my early drafts of the articles to the Mendicant Supporter network, both as a way of saying thanks for supporting me, and also because I could use some feedback. I sent the first one of those out last night: an article that explains the differences between load(), autoload(), require(), and require_relative().

I also plan to complete the conversion of the articles from volume 1 and release them for free on the Practicing Ruby blog. The first thirteen issues are already up there, if you haven't seen them already. There are thirteen more that have not yet been released, so prepare yourself for a massive dump of free Ruby content over the next few weeks!

Software Development for Beginners (Training in New Haven, CT)

Jordan and I ran our intro session for our "Software Development for Beginners" course on July 6th. The event was a huge success, we ended up overbooking our space even though we announced the event only a week before it started. If you're interested in how it went, you can check out the course notes and code examples. Additionally, one of our students wrote a review of the session.

We will be charging for these events in the future, but we plan to aim for something akin to a dance class or yoga lesson, at $20/session. Our goal is to reach a wide cross-section of the community, and not just those who are already writing code professionally.

RubyGems Work

No new tickets have been entered for RubyGems guides, but #3 and #4 remain open if folks want to do a little bit of easy work. Right now my work on RubyGems is on the back burner because there are no urgent issues I'm aware of and I've got lots of other things to work on. What I have been doing is watching the RubyGems keyword on Twitter and watching what problems people are having. I help them where I can, but I am also making mental notes for when I do eventually get around to writing guides myself. Please let me know if you're still experiencing major problems or frustrations with RubyGems, I'll make sure that they get looked into.

Want to help RubyGems in a more substantial way? Nick Quaranto (@qrush) is looking for some folks to help maintain GemCutter. I'm too busy to do this myself, but I'd totally recommend helping Nick out, he's a great guy and GemCutter is obviously an important project.

 

Want to Contribute?

If the things I'm working on sound worthwhile to you and you want to support it, please subscribe! It will help me keep doing good stuff for the community without having to focus too much on making ends meet. I've been doing this since December but only recently started accepting funding, so it will really help me counterbalance several months of burning through my savings.

 

 

How much do you want to invest?

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Tue, 05 Jul 2011 05:58:00 -0700 Ruby Mendicant: Progress Report #9 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-9 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-9

Since December 2010, I've been working directly for the Ruby community on a full-time basis. Monthly contributions from community members help make that possible. If you like what I'm doing and want to support it, please find the PayPal subscribe button at the bottom of this post. Currently I have 69 subscribers for a total of $696/mo before PayPal fees. This is not yet nearly enough to live off of, but does help offset my expenses.

RubyGems Work

A couple weeks ago I volunteered to help shore up the RubyGems documentation effort, working on the RubyGems guides in particular. However, it's been slow going because I'm so busy with many other things. I still plan to work on this eventually, hopefully finding time for writing some guides in August. Between now and then I will still review and commit their patches as they come in. The guides site is a simple jekyll static site hosted on github, so it is very easy to contribute to.

Want to help but not sure where to start? Tickets #3 and #4 only need a bit of work before I can merge something, so that's probably as good a place as any to dip your toe in. 

MiniTest Helpers

With the exception of mocking frameworks, I typically don't go beyond Ruby's standard library to meet my testing needs. That means that over time I've been building up a test helper file that is gradually growing with things I find to be generally useful. As a fan of citrusbyte/contest on Test::Unit, this does something similar for MiniTest while adding a couple other features as well. To some extent it is a duplication of MiniTest::Spec, but doesn't load in the assertion syntax and has some other important difference I can't remember.

I am thinking of possibly releasing this test helper file as a gem, but not in the traditional sense. Instead, the gem would set up something like a minitest-helper script that could be used to generate a helper file locally rather than requiring these helpers directly from a library. This is the workflow I'd prefer, so that this helper just starts as a base and then gets built up as your project goes on. It will also make it so that you never need to worry about versions since you don't actually depend on my gem. If that idea interests you, please let me know and I'll get a gem out.

PuzzleNode

My main focus for the last several days has been on preparing the next batch of PuzzleNode problems. Rather than sourcing puzzles from our entire student body at Mendicant University, we're taking a more curated approach this time. I came up with the basic idea behind all four problems, and one of our instructors-in-training, Andrea Singh (@madebydna), has been helping me flesh them out. We've tried to create problems that encourage the use of object oriented programming, but they're still very much language and paradigm agnostic.

The puzzles will be released to the public on July 15th for the next Mendicant University entrance exam. My paid supporters as well as the Mendicant alumni network will get access to them some time this week to help test them and shake out any problems before they go live.

Mendicant University

We have reviewed and accepted proposals for twelve student projects to be worked on during our July core skills session. We've got some folks building games, some building developer tools, and some others even building educational programs. It's the usual mix of awesome ideas, so be sure to check out the results at the end of July and see what comes out of this session.

Andrea and I have our curriculum fleshed out for the course, we just need to prepare some writeups. We don't publicly discuss exercises in detail until the sessions are completed, but we are thinking of doing something with FFI for our integration problem, something to do with Train games for the challenge problem, and possibly a parsing problem for the academic problem. The community service project will as usual, feature a range of things that can be done to help out the school, including work on university-web, puzzlenode, and other things.

Software Development for Beginners (Training in New Haven, CT)

Jordan (@Jordan_Byron) and I launched the registration page for our "Software Development for Beginners" course intro session last week, and we'll be running the session with over 10 people tomorrow (6/6) at the SeeClickFix offices downtown New Haven. This should be exciting because it'll be the first time that I try to teach a group of raw beginners about how to write code. Andrea helped us a lot with forming some ideas for cool demonstrations we can do, so I'll be sure to report back next week with how the first session went.

Supporters Network

The Mendicant supporters network is shaping up to be interesting and useful, even if we haven't quite figured out what to do with it yet. Since the last progress report, we've traded a few emails on the mailing list doing a quick code review for one of the supporters. I also want to use it for bouncing ideas off a smaller group of folks who are supportive of my work before making public commitments. Over time, I think that this network will become something of value in of itself for those that have been making monthly contributions to me, but for now most folks there have reassured me that these semi-regular updates on my blog is enough to keep them happy. That means they're really nice people :)

Want to Contribute?

If the things I'm working on sound worthwhile to you and you want to support it, please subscribe! It will help me keep doing good stuff for the community without having to focus too much on making ends meet. I've been doing this since December but only recently started accepting funding, so it will really help me counterbalance several months of burning through my savings.

 

 

How much do you want to invest?

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Sun, 26 Jun 2011 08:29:00 -0700 Ruby Mendicant: Progress Report #8 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-8 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-8

Since December 2010, I've been working directly for the Ruby community on a full-time basis, with no formal sponsorship or funding beyond individual contributions. I want to make this sustainable on an ongoing basis by accepting small monthly payments from folks who want to support my community projects. At the time of writing this post, I have 70 subscribers backing me for a total of $728/mo before paypal fees. Taking in account my wife's income, I still need to come up with about $1300-$1800/month more to maintain our current lifestyle. However, the current subscribers have given me a great start, and I'm continuing on with the experiment for now. To remain transparent, I am doing frequent updates on what I've been working on so that folks know what their money is supporting.

RubyGems Work  (Week 5)

I have been holding off on doing too much new work on RubyGems documentation because I needed to meet with Nick Quaranto (@qrush) to make sure that my plans matched with his original vision for the RubyGems guides. If you check the commit log for the guides, you'll see I pulled in a couple small fixes, but otherwise haven't made much progress on new guides. That said, I finally caught up with Nick over IRC on Wednesday, and we're on the same page, so I'll be able to do a lot more with guides in the coming weeks.

Mendicant University

Our plan for the next year of Mendicant University has been sent out out to our alumni network and the general consensus is that it's a good plan and that we'll move forward with it. I gave paid supporters an inside look at what we're planning by passing along the same video and PDF that I sent to our alumni, and that lead to some interesting discussion on the ruby-mendicant-supporters mailing list. I was excited to see some folks get involved who aren't directly involved in Mendicant University, but are supporting it through this subscription program. For those who aren't in either the Mendicant University alumni network or in the supporters network, we'll make the whole plan publicly available by July 15th.

Additionally, I just sent out the course guidelines for our July course today. That means we'll start seeing students send in project proposals soon!

Teach Me To Code podcast

I mentioned last week that I recorded a podcast with Chuck Max Wood about various things ranging from Mendicant University to RubyGems. It was released a few days ago, so check it out if you want to hear even more about what I've been working on. 

Software Development for Beginners (Training in New Haven, CT)

Jordan and I will be hosting a local training here in New Haven, with our first session on July 6th. The first session will be free, and future sessions will be $20, to keep it affordable for anyone who wants to take it. The goal of this program is to take folks with no programming experience, show them what is possible, and then give them some guidance on how to get involved with programming as a hobby or possibly even a career. Stay tuned to this blog for registration information, and if you have friends or family in New Haven that you think would enjoy this sort of course, please send them our way.

Want to Contribute?

If the things I'm working on sound worthwhile to you and you want to support it, please subscribe! It will help me keep doing good stuff for the community without having to focus too much on making ends meet. I've been doing this since December but only recently started accepting funding, so it will really help me counterbalance several months of burning through my savings.

 

 

How much do you want to invest?

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Fri, 17 Jun 2011 10:44:00 -0700 Ruby Mendicant: Progress Report #7 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-7 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-7

Since December 2010, I've been working directly for the Ruby community on a full-time basis, with no formal sponsorship or funding beyond individual contributions. I want to make this sustainable on an ongoing basis by accepting small monthly payments from folks who want to support my community projects. At the time of writing this post, I have 69 subscribers backing me for a total of $724/mo before paypal fees. Taking in account my wife's income, I still need to come up with about $1300-$1800/month more to maintain our current lifestyle. However, the current subscribers have given me a great start, and I'm continuing on with the experiment for now. To remain transparent, I am doing frequent updates on what I've been working on so that folks know what their money is supporting.

I was away visiting family and trying to ward off sympthoms of burnout for a few days, but still managed to get some things done since the last progress report.

RubyGems Work  (Week 4)

Things have really quieted down around RubyGems, and that means we've had a chance to catch our breath and consider priorities. Some effort is still going to be made on a compatibility layer, likely in the form of a backports gem, but the new plan is to focus on stabilizing the new APIs so that new breakage won't happen, and to help folks port old code to the new APIs as much as possible. That work is best left up to the maintainers of RubyGems, but for my part, what I can do is help with documentation. I now have commit access to RubyGems and the RubyGems guides, and will be gradually improving documentation over the next several weeks.

So far, I've only done a little: patched the README of RubyGems  to fix an outdated reference to the RubyForge tracker, and triaged two requests in the rubygems/guides issue tracker. Due to my relative lack of experience with RubyGems itself, I am trying to encourage folks to contribute documentation patches themselves so that I can just help with cleanup and merging. However, I'm going to keep working on this even if I have to do the legwork myself: I think I can make an upgrade guide for end users and plugin developers that would be handy for those wanting to move to RubyGems 1.8. I have enough material from various tweets I've sent along to those trying to upgrade that I should be able to put together something useful.

Mendicant University

We are still working through our plans for the next school year of Mendicant University, which will start in September of this year. We are making a large number of small changes that should add up to a big difference in the way we do things. We still need to send our plans to our alumni network for review, but the staff has finally reached a consensus and we think we have a good plan put together. We will release the entire thing to the public within a few weeks, but for now I don't want to commit publicly to any of our plans without first getting feedback from our students.

If you're one of my paying supporters and want a bit more of an inside scoop, just ask on the supporters mailing list. These aren't secrets, I just rather not talk about work-in-progress plans in public right now. Everyone else, I apologize for how long this process has taken, we take changes to Mendicant University very seriously and are just trying hard to get it right.

Other Miscellaneous Stuff

I met with Sandi Metz on Tuesday to provide some feedback on her software design book that she's working on. She is doing some awesome stuff, and I'm really excited to be able to help her make the book even more awesome. This isn't exactly related to the Mendicant experiment, but still interesting and worth noting.

I was also a guest panelist once again for the Ruby Rogues podcast, this time around the topic was on debugging. You'll also see me on the Teach Me To Code podcast with Charles Max Wood some time next week. It was recorded yesterday, and covers various topics including Mendicant University, a retrospective on the Ruby Best Practices book I wrote a couple years ago, and my thoughts on community and open source.

Still fighting burnout

There has been so much going on in my life that I still find myself very exhausted and feeling kind of overwhelmed with everything. I think these feelings will pass once I get through all the various planning phases for my numerous projects and can buckle down and just get some work done. But for right now, I'm needing to take a few more breaks than I would like to just to remain feeling halfway productive. Please bear with me for the next few weeks, and then we should see productivity increasing once more.

Want to Contribute?

If the things I'm working on sound worthwhile to you and you want to support it, please subscribe! It will help me keep doing good stuff for the community without having to focus too much on making ends meet. I've been doing this since December but only recently started accepting funding, so it will really help me counterbalance several months of burning through my savings.

 

 

How much do you want to invest?

 

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Tue, 14 Jun 2011 16:44:00 -0700 Giving the RubyGems documentation some love http://blog.majesticseacreature.com/giving-the-rubygems-documentation-some-love http://blog.majesticseacreature.com/giving-the-rubygems-documentation-some-love

Right now, the RubyGems end user documentation sucks. Here's what we can do to fix it:

  • Unify docs.rubygems.org and guides.rubygems.org. These sites both solve the same problem, and should be combined.
  • Update all guides to use the RubyGems 1.8 API, with notes about changes since 1.3.7 where appropriate
  • Add a new guide about the plugin system and how it's meant to be used.
  • Add a new guide about what to expect when upgrading your RubyGems installation
  • Add an up to date "Frequently Asked Questions" guide
  • Actively accept bug reports, requests, and patches from users to the guides.
  • Do other good stuff that the community would benefit from

I now have commit access to github.com/rubygems/guides and will be spending some time making the above mentioned improvements. But I can really use your help figuring out where the problems are. Please file tickets or send pull requests, and I'll be sure to look into whatever you send my way. RubyGems can and should be awesome, but it will take the community's support to make it so.

If you have any questions, please feel free to let me know what's on your mind in the comments section below.

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Thu, 09 Jun 2011 07:57:00 -0700 Ruby Mendicant: Progress Report #6 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-6 http://blog.majesticseacreature.com/ruby-mendicant-progress-report-6

Since December 2010, I've been working directly for the Ruby community on a full-time basis, with no formal sponsorship or funding beyond individual contributions. I want to make this sustainable on an ongoing basis by accepting small monthly payments from folks who want to support my community projects. At the time of writing this post, I have 68 subscribers backing me for a total of $720/mo before paypal fees. Taking in account my wife's income, I still need to come up with about $1300-$1800/month more to maintain our current lifestyle. However, the current subscribers have given me a great start, and I'm continuing on with the experiment for now. To remain transparent, I am doing frequent updates on what I've been working on so that folks know what their money is supporting.

This week is a bit light on the community side because I had to do a bit of commercial work to keep cash flowing, but there are still a few things worth reporting.

RubyGems Work  (Week 3)

I've been busy on twitter finding people who are having problems with RubyGems and encouraging them to upgrade to 1.8.5 to see if it fixes their problems. For the most part, it has done the trick. Rails 2.3.12 was released yesterday, which fixed the compatibility issues many were experiencing. I've also been talking with Eric, Evan, and Ryan about various miscellaneous things behind the scenes, I'll be sure to report if any of the things we discussed actually materialize. The two main things I want to focus on is improving end user documentation, and on helping Evan with the compatibility layer stuff, but we're still trying to figure out what kind of work I'm best suited for.

In other news, one highly requested change was made: The RubyGems issue tracker is now on Github!

Mendicant University

Last week I mentioned that our May session was the most successful to date. Here are a couple reviews from the students who took the course: one from Vitor Pellegrino, another from Chris Geihsler.

Additionally, Jordan and I met to put together a plan for Mendicant University 2012. Our primary goal was to focus on quality rather than quantity and get together a plan that is sustainable. We are going to be putting this in front of our alumni early next week and will have something to report on by the next progress report.

GoRuCo Lightning Talk

I gave a lightning talk at GoRuCo outlining the history of the transition of PDF::Writer to Prawn, and it sort of came off as a rambling rant. Still, it's an interesting topic, and I've included the transcript of what I originally meant to say in my talk.

Monetization

After a few deep conversations with folks I really look up to at GoRuCo, it became clear to me that in order for my efforts to be sustainable, I need to stop worrying about whether I'm going to have enough money two months from now. These subscriptions help a lot with that, but they're part of the long term game, at least until they're clearing $2000/mo or more. So unfortunately, that means that I will need to spend some time on monetization which will at least partially take me away from my community work. However, I'm going to try to do that in classy ways, at least at first, so as to maximize the amount of social value of the work that I do.

Jordan (@Jordan_Byron) and I have put plans together for teaching an affordable local community course in software development for beginners here in New Haven. It'll be a six week course with the first session for free, and the five sessions to follow that one costing $100 total ($20/session). This won't come close to paying the mortgage, but might just be another trickle of revenue that's a fixed commitment and does something pretty helpful for our local community. I have to say though, the difference in pay is a bit staggering when I'm used to being able to charge $900 for a weekend at Compleat Rubyist. But the whole point of this is to make it affordable... so that's where we stand with that.

We're also still working hard on Duke Nukem Forever the book website for my Ruby Object System eBook. As soon as we get that passed through BrainTree, we can start accepting pre-orders which should help somewhat. We have a laundry list of other ideas as well if these two don't bring in enough in the near term, but in actuality I'll likely need to continue to dip into consulting here and there, which is better than nothing, but manages to be a huge distraction to me. Personally I just hope that these subscriptions continue to grow so that I can not think about these things, but that's just not practical on $700/month. That said, this money is making a HUGE difference for me, so I can't thank those who've subscribed enough.

Want to Contribute?

If the things I'm working on sound worthwhile to you and you want to support it, please subscribe! It will help me keep doing good stuff for the community without having to focus too much on making ends meet. I've been doing this since December but only recently started accepting funding, so it will really help me counterbalance several months of burning through my savings.

 

 

How much do you want to invest?

NOTE: Taking a short break to visit family

Over the next few days I'll be stepping away from the keyboard and visiting with family and generally relaxing. I should be back on top of things by Tuesday, but have felt dangerously close to burnout for the last two weeks and need to recharge the batteries.

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown
Sat, 04 Jun 2011 07:27:00 -0700 Summary of RubyGems 1.8 Breakage Reports http://blog.majesticseacreature.com/summary-of-rubygems-18-breakage-reports http://blog.majesticseacreature.com/summary-of-rubygems-18-breakage-reports

A few days ago I asked for reports of what libraries were broken by RubyGems 1.8. Here's a comprehensive list of what was reported so far, and a status update on each. Please note that while these updates reflect the best of my knowledge, they're based primarily on conversations I've had and aren't necessarily completely reliable. That said, several of these issues are actually slated to be retroactively fixed in RubyGems itself when Evan releases 1.8.6 on Monday, so it may not matter.

Rails 2.3.11 (confirmed and fixed)

There was a small incompatibility issue in Rails that Ryan Davis fixed on May 25th. Rails 2.3.12 will be released on Monday, June 6th and will make Rails 2.3 compatible with RubyGems 1.8.5 again. If you want to try it out now, try updating to the 2-3-stable branch via git.

Redmine (confirmed and fixed) 

Redmine is currently broken, but this is related to the Rails 2.3.11 issue. Should be fixed simultaneously.

Spork (confirmed and fixed)

I looked into this myself, though I only focused on obvious issues because I didn't have a link to a specific mailing list post or bug report. But when I installed the latest stable spork gem (0.8.5), I found that running the spork executable failed to run and spewed out telltale gem related issues. The good news is that from my very limited testing, at least that issue is solved by using the current prerelease (spork-0.9.0.rc8). Please try out the pre-release and let me know if it doesn't fix the breakage for you (and also, file a ticket on github, too)

rake-compiler (confirmed and fixed) 

An issue in the intersection of RubyGems and Rake was found and fixed in rake-compiler 0.7.9. Thanks Luis!

UPDATE: There may be an issue in the intersection of RubyGems and Rake after all, see the comment from Luis Lavena in the comments thread. It is being investigated

There was some breakage in rake-compiler but these seem to be related to Rake 0.9, not RubyGems 1.8. However, one user claims that he cannot get rake-compiler working on RubyGems 1.8.5. So far, I've not seen anyone able to reproduce his issues. I attempted to reproduce them myself, and could not, though I don't know anything aboutrake-compiler and just got as far as compiling "Hello World"

----

So far, this is all I've heard about. Please investigate these reports on your own, because I'm a complete n00b here. But also, please report anything that isn't on this list, so that I can look into new issues as well. RubyGems 1.8 compatibility is important, because it is what will ship with Ruby 1.9.3, and in fact, has already been merged into what will become the Ruby 1.9.3 release.

 

Permalink

]]>
http://files.posterous.com/user_profile_pics/583590/greg1.jpg http://posterous.com/users/5AfJ1zpAS49P Gregory Brown seacreature Gregory Brown