I've written ~15 of the higher-level reference exercises for Elixir on Exercism, and do try to comment when I can, but my day job keeps me from it a lot of the time. Some sort of reminder system would definitely be great, especially as more people use the site.
I'd be curious to see if certain locations trigger surge pricing, too. My wife and I got sideswiped about a month ago, had to go to the ER in Austin.
Got out, had no way to get back to our truck, nor to our house an hour outside Austin. Called Uber, figuring we'd at least get a ride back to the truck to get our stuff, and see if any friends could take us the rest of the way home.
Despite nothing going on in town that night, and only being about 8:30pm, the app warned me of surge pricing, saying it would be 1.5x the usual fare. Didn't have many other options, and had been happy with Uber in the past, so went ahead.
Driver was cool, and not only took us back to the truck, but drove us all the way home, complete with a flat tire we helped him change on the side of a busy, dark toll road, and running out of gas.
Wound up being $98, and that guy really earned his tip. I still wonder if the fact that we called from the exit of the ER triggered surge pricing, though. Not a great time to experiment, but I could've probably walked a few blocks and tried again, if my wife wasn't in the shape she was in at the time.
As a friend of mine said when I was interviewing with her to escape the 100-hour-week death march at the "unicorn" I was at: "You're not a unicorn until someone buys you for $1 billion."
They may be valued at $1B+, but they're not worth that much.
I use 'jf' instead of 'jk', so I can type "Dijkstra" occasionally, not to mention they're both on the home row, under your index fingers, typically have physical nubs on the keys, and no words in any language I can find contain the letters 'jf'.
Definitely worth it. I had to drop out around week 5 due to a lack of time, but just started a new job that'll take me back to 40-hour weeks (down from 80-100), so I'll give it another shot next time they run the course.
Opening a new buffer. Figured I'd try :new, and wound up getting good at splits. Still don't know how to just open up a new, blank buffer in the window I'm in without specifying a filename to :e.
One of the best things I've done, though I personally use 'jf', since they've both got little nubs on the keys, and I occasionally have to spell "Dijkstra".
I've had similar problems with FluentMigrator, even though it orders things nicely using an attribute on the migration class that has a long value representing the order things should run in.
I just use timestamps for when the migration was created, like 201509010034, and for the most part, things are great. Until we got a high priority ticket, and a migration with a later timestamp got pushed ahead of an earlier one, so it never gave us the option to migrate the earlier one.
Easy fix was just to update the timestamp of the earlier migration when it finally got through QA, since they weren't dependent on each other, but things could've gotten really messy, so I'm not 100% happy with the way migrations currently work.
Agreed. Also, I'm pretty sure one of, if not the main point(s) of mocking is "How does this unit of code respond if an external dependency returns bad data?"
If you're not already following it, check out Handmade Hero (https://handmadehero.org/). Great, free video series from Casey Muratori that guides you through building a game from scratch.
That was my assumption, too. They do memoize the length, but I'm sure those bytes add up, having run into OutOfMemoryExceptions building huge amounts of strings before.
That does answer an unanswered question I had on SO about string hashing. If strings are immutable, why isn't the hash code memoized? Seems like it would make HashSet/Dictionary lookups using string keys much faster.