Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 03/10/2025Ufuk is a board member of Ruby Central and an employee of Shopify. DHH is on the board of Shopify. Aaron is a Shopify employee. Shopify is Ruby Central's primary sponsor. Shopify is the second largest publicly traded company in Canada. Shopify holds a net worth close to $200 billion. 220
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 03/10/2025I suppose in your mind things must be one but not the other. 110
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 03/10/2025There were two co-chairs. One of the two is a Shopify employee and Ruby Central board member. The program committee was not involved in this decision. So... even if the idea of unity was the underlying *intent* -- there's an inherent conflict of interest and no, it wasn't a consensus decision. 000
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 03/10/2025Sharing this for context. I've submitted a relevant question to Ruby Central and hope they give an official reply. 110
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 13/05/2025An expanding awareness of what you don't know is a natural consequence of growth. Sometimes zooming out and comparing where you are now to where you started can help. 030
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 10/05/2025One of my math teachers started the very first convo with the class by asking us all to write down an example of "20 coin flips" and then immediately pointed out how common it is for people to assume random = even distribution when that's not guaranteed at all. This thread + that made me try this: 220
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 08/05/2025If you're somebody who enjoyed Civ 6 and are thinking of getting into Civ 7, and particularly if you're a fairly experienced player.... these are the starting settings I'd recommend. (Can bump to Deity once comfortable) It's a *lot* better than the reviews make it seem. @civilization.2k.com 010
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 15/04/2025This code is meant to compute the next state of a cell for Conway's Game of Life, but it has a flaw that will prevent it from working correctly. What will go wrong specifically, and what will the `state` and `live_neighbors` variables be set to when things fail? 162
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 11/04/2025v0.5.0 of Bug Hunt: Volume 1 is out! There are now 20 exercises and 10 field notes included in early access for everyone who has picked up a copy. Already purchased? Download the latest here: www.skillstopractice.com/view/downloa... Want to try a free sample? Go here: bh-1.skillstopractice.com 022
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 23/03/2025Just released v0.3.0 of Bug Hunt: Volume 1. Includes two new exercises, two new field notes, and some revisions to existing materials. Already preordered? Download it here: www.skillstopractice.com/view/downloa... Still need to buy a copy? Go here: www.skillstopractice.com/bug-hunt-vol... 211
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 19/03/2025Here's a (very low level) hint. If you install the parser gem, and run these examples, you should get the same result. Note the difference with and without parentheses... 010
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 19/03/2025Slight bit of Ruby trivia that I don't know I've ever needed in practice. But a curiosity nonetheless. #1 and #2 look like they're equivalent to one another, and there's no obvious ambiguity that needs to be resolved in the example program. So what makes their behavior different and why? 150
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 15/03/2025First ever early access release for Bug Hunt : Volume 1 has officially rolled out. Includes three new exercises not included in the free trial, and four new field notes. Weekly updates will begin from here on out until 1.0.0. (1 of 2) 161
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 14/03/2025The world would be better off with a lot more independent + purposeful small businesses. After two decades of running a small Ruby + Rails based web dev consultancy, this year I'm going all in on building something new. Here's to the next 20 years of rediscovering and sharing the art of practice. 0121
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 13/03/2025It does! I've not really thought about this in a *LONG* time (mostly have had custom errors in a few open source projects I maintained) but even this as a general pattern seems interesting... 110
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 13/03/2025Something I pretty much consistently forget which I love about Ruby... exceptions are plain old objects that sometimes have useful state on them that can assist with debugging. (And you can define your own exceptions this way too!) 3194
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 12/03/2025🙌 Removing all the RSS code and just doing URI.open() would reproduce the same error. It comes across as a Socket Resolve error because that's the first point where the lack of connection causes an issue. Made obvious as soon as you search in a browser because you'd get something like this... 020
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 12/03/2025Suppose you have a small script that grabs news headlines over RSS and convert them to a simple Markdown list of links. It's been working fine, then one day when you run it, you get a Socket::ResolutionError with the message "getaddrinfo(3): nodename nor servname provided, or not known" (1 of 2) 322
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 11/03/2025No idea the performance characteristics of this, but after reviewing the Array methods and coming up empty, I attempted this just out of curiosity. (The single pop gets rid of the trailing nil) 210
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 08/03/2025Don't read code like prose. Trace execution paths instead. 181
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 07/03/2025Just finished it this afternoon. It's currently the landing page for skillstopractice.com until I find a better home for it. (No guarantees I won't completely swap individual parts out as I let the set evolve, but I'm happy with where it is for now) 110
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 07/03/2025You can try a feed building tool yourself not necessarily to publish them but to do quick filters beyond what's in the app. This uses @skyfeed.app which is a little glitchy but does the job. There are other tools out there ( @graze.social is an alternative) 020
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 07/03/2025Over the last couple weeks I've been writing a personal love letter of sorts to the art of practice. I only need three more phrases to round this out... They'll come to me soon enough I am sure. 1151
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 07/03/2025Re: your simulation... I coded it and ran it a bunch of times with much larger numbers and the power law effect does consistently show up. You can't predict which group will take the lead but it always does happen. My operating theory is *folding* of networks is the main intervention point. 1 / 2 100
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 06/03/20251) In the early evening, an invoice was keyed in for $4100. 2) A couple minutes later, it was edited to $4250. 3) This should have been the only detail that changed, but something else also changed, due a bug in the invoicing software. What changed that shouldn't have? What is the likely cause? 100
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 06/03/2025Free sample of my "Bug Hunt : Volume 1" guidebook is now live. Check it out here: bh-1.skillstopractice.com (10 of 56 exercises included) Please preorder if you expect the full guide will be useful to you after trying the sample. Much more to say on all this, but for now, happy hunting! 61713
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 03/03/2025Solve a quick puzzle or two, then flip to the back of the book by following a link to learn some context + techniques, then rinse and repeat. I'm hoping people end up loving working through these materials as much as I've loved putting them together. 020
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 03/03/2025Wanted to refresh my memory on this so I built a little demo program that will reproduce it. Screenshot below is same as linked gist. When run it'll halt at 65536 until you hit enter, and then reading the buffer will leave enough space for the writer to finish. gist.github.com/practicingde... 140
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 02/03/2025Write Useful Books is the first book in recent memory that after having read it cover to cover in the span of a few weeks, I'm immediately going back through it for a second read. (I bought it in 2021, and can't believe I let it sit on the shelf for years before picking it up for a proper read) 2100
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 27/02/2025Twenty years into coding professionally, I can't believe how it's almost universal that people receive no formal training in what syntax errors are and how to interpret them. They're seen as "typos" and that's technically true but does not help build a mental model. So I'm working on that. 031
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 22/02/2025I like that the simulation goes through different type of actors and their strategies and shows the emergent effects of that. The conclusion also seems of value, as it informs design activities for building higher trust environments. 010
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 21/02/2025A few weeks ago I ran an informal survey on software defects. One thing I am trying to make sense of is that 85% of the people who responded rated their own skills at finding and fixing bugs as advanced or expert... but nearly 2 out 3 still dealt with urgent context switching in the last month. 110
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 19/02/2025This is absolutely a tangent but upon looking at the comment in the specs about testing for warnings... I was reminded that it's possible to do things like this in Ruby and it feels both powerful and also like a giant hack. 020
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 13/02/2025Small quiz from Bertrand Meyer's "Object-oriented Software Construction" on what weak and strong preconditions and postconditions mean in formal logic, in the form of a silly scenario about trying to find the easiest job ever. 021
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 07/02/2025Since the start of 2025, I've shared helpful posts from the 50 folks listed below to the Ruby + Rails : Distilled feed. Thanks for bringing signal to a world filled with noise! 2182
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 04/02/2025A small exercise in bug hunting for a relatively common problem that can come up when reorganizing code in your projects. (Intro image is shown below, followed by the full problem across the four images that follow in the second post in this thread) 311
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 01/02/2025I just remembered today that you can inherit from Module and build mini module building macros that way. (Example is contrived but it's a fun pattern) 170
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 30/01/2025I also had stumbled across the idea of "riffing" from @kaspth.bsky.social This is a technique where you try to figure out a rough sketch for a domain model for a Rails app while doing all your definitions of models in a single file, and just tinker with it. github.com/kaspth/riffi... 120
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 30/01/2025This is by all accounts, probably a bad idea for any sort of production use... But I really do like the idea of a Markdown file that is also a Ruby program... for a few reasons. (I'm gonna tag a couple folks who each inspired part of this idea for me... based on stuff they've shared here) 470
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 30/01/2025There are probably a million reasons not to do this but I think I just made a literate programming version of Ruby with a few lines of code... 050
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 30/01/2025Choose 20 books that have stayed with you or influenced you. One book per day for 20 days, in no particular order. No explanations, no reviews, just covers. (1/20) #BookSky #20daybookchallenge 💙📚 040
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 29/01/2025Slowly sending out invites to try the free sample problem set. Doing that in small batches over the next couple weeks. If you'd like an invite, either DM me (open to all), or use the form at the bottom of skillstopractice.com/now to be notified via email. Reply here if you've got questions! 110
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 29/01/2025I agree. Maybe I'll take inspiration from this in my experiments to build contract constraints. I'm injecting them via Module#prepend so it can be turned off with a runtime flag at no cost. But the code itself is awkward due to the internal DSL. Could introduce a parser / code generator... 110
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 29/01/2025Found an example in the wild that you might find interesting... bsky.app/profile/davi... Check out the scenario in the attached thread and then compare to my notes in the image. 110
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 29/01/2025I often think about Christopher Alexander's "Timeless Way of Building" and how he talks about if you are building with prefab parts + they don't fit land perfectly you'd need to cut down trees rather than build around them. For now, code competence is what lets us cut a hole in the deck instead. 130
Gregory Brown [MOVED, SEE BIO] @skillstopractice.com · 24/01/2025I'm trying to put a clear promise right on the front of this workbook, and then it'll be my job to make sure I deliver on it. Your thoughts? 342