<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: cycomachead</title><link>https://news.ycombinator.com/user?id=cycomachead</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 16 Apr 2026 21:52:53 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=cycomachead" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by cycomachead in "Doing Rails Wrong"]]></title><description><![CDATA[
<p>Honestly this is still a great way to deploy apps and still some of the best DX there is, IMO.<p>Costs a crap ton for what it is, but it is nice.</p>
]]></description><pubDate>Wed, 08 Oct 2025 04:36:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=45512127</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=45512127</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45512127</guid></item><item><title><![CDATA[New comment by cycomachead in "Doing Rails Wrong"]]></title><description><![CDATA[
<p>I don't think complexity comes just from the number of tools, but the disparate things you "need" them to do. Redis, Vite, large CSS toolkits -- you're learning a bunch of large components.<p>I mean complexity comes from many places, but compared to the 'Unix philosophy' most of these tools are quite large. Obviously, there's quite a bit to learn about the way a *nix OS works, but if you treat tools as small and composable for simpler interfaces it helps a lot.<p>The web dev example of pub/sub is funny, because chances are if you're using Rails your primary DB (probably Postgres) already has a pub/sub system in or. Or you can just use any RDBMS for your job management system.</p>
]]></description><pubDate>Wed, 08 Oct 2025 04:35:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45512116</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=45512116</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45512116</guid></item><item><title><![CDATA[New comment by cycomachead in "Doing Rails Wrong"]]></title><description><![CDATA[
<p>I mean, I think the problem with SPA-like client-side approaches are that there aren't any that have felt _good_ with Rails, let alone great.<p>Absolutely true that not every app needs to be a SPA from day one, but I do with there were a few more common solutions for "hybrid" apps, which use some pages as a SPA. That said, it's not that bad once you've got it setup. I like that Rails offers a solution like import maps, but I do also wish there were better core functionality for using some kind of package manager.<p>Like the redis analogy: Whether or not you need Redis, there are good defaults and very good 'third party' solutions for background jobs (or caching). You don't even need Redis is many cases, but it's easy to grow into.</p>
]]></description><pubDate>Wed, 08 Oct 2025 04:26:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45512065</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=45512065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45512065</guid></item><item><title><![CDATA[New comment by cycomachead in "The evolution of Lua, continued [pdf]"]]></title><description><![CDATA[
<p>Lapis is very cool, but I really struggle with a lack of examples and pre-built solutions for some things.<p>Leafo's itch.io is built with it and I maintain snap.berkeley.edu. A great tool, but I'm also many times more productive in Rails. (It's an unfair comparison, to be sure!) and Openresty + Lapis is quite performant and low overhead which is great.</p>
]]></description><pubDate>Wed, 08 Oct 2025 04:01:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=45511927</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=45511927</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45511927</guid></item><item><title><![CDATA[New comment by cycomachead in "The evolution of Lua, continued [pdf]"]]></title><description><![CDATA[
<p>I believe cloudflare has quite a bit of Lua in some of their products (there's some very good Nginx lua integrations and variants like Openresty).</p>
]]></description><pubDate>Wed, 08 Oct 2025 03:55:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=45511893</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=45511893</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45511893</guid></item><item><title><![CDATA[New comment by cycomachead in "The evolution of Lua, continued [pdf]"]]></title><description><![CDATA[
<p>Agree, especially because it'd be nice for projects that use LuaJIT if you could swap the versions as needed.</p>
]]></description><pubDate>Wed, 08 Oct 2025 02:46:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=45511502</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=45511502</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45511502</guid></item><item><title><![CDATA[New comment by cycomachead in "The evolution of Lua, continued [pdf]"]]></title><description><![CDATA[
<p>I love JS and Ruby, and I spent a bit of time maintaining a web app in Lua.<p>There are parts about the language I really enjoy. I like dynamic languages; I don't run into type issues so often it bothers me, but the tooling around Lua still leaves me wishing for me.<p>Part of this is really my own ability, or lack thereof, but I feel slow and constrained in lua. I have a hard time debugging, but I don't feel these things in other languages.</p>
]]></description><pubDate>Wed, 08 Oct 2025 02:38:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=45511450</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=45511450</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45511450</guid></item><item><title><![CDATA[New comment by cycomachead in "Attenuating Innovation (AI)"]]></title><description><![CDATA[
<p>I have a close friend, who's an Azure dev -- uses his MS laptop for work, his phone for everything else. And I do mean everything - taxes, trip planning, etc.<p>It's not just crazy kids who "know nothing but phones". Even engineers.<p>That said, phones operate too much like appliances. I will not give up my Mac.</p>
]]></description><pubDate>Thu, 02 Nov 2023 01:06:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=38107637</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=38107637</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38107637</guid></item><item><title><![CDATA[New comment by cycomachead in "Demo of =GPT3() as a spreadsheet feature"]]></title><description><![CDATA[
<p>I've been wondering about this... It definitely doesn't feel great to be on the receiving end of something auto-generated. But a "unique" message is at least more interesting to read, and doesn't feel quite as frustrating.<p>A yet if P(someone unknown is a robot) gets too large, it's going to be a weird adjustment period.</p>
]]></description><pubDate>Thu, 03 Nov 2022 06:53:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=33447880</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=33447880</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33447880</guid></item><item><title><![CDATA[New comment by cycomachead in "The 13-Inch MacBook Air"]]></title><description><![CDATA[
<p>Oh I think they are! Gruber is by no means alone in his praise. And the technical details are impressive. (Plus the 14" and 16" are fantastic improvements.)</p>
]]></description><pubDate>Sat, 16 Jul 2022 13:02:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=32117606</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=32117606</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32117606</guid></item><item><title><![CDATA[New comment by cycomachead in "I deleted 78% of my Redis container and it still works"]]></title><description><![CDATA[
<p>No I read it that way too.</p>
]]></description><pubDate>Sat, 16 Jul 2022 12:54:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=32117549</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=32117549</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32117549</guid></item><item><title><![CDATA[New comment by cycomachead in "To Ruby from Python"]]></title><description><![CDATA[
<p>Guard clauses are great, and when used appropriately clean things up. 
This is pretty much my only use of the pattern.<p>(Ending boolean-returning methods with a ? is also a great convention in ruby.)</p>
]]></description><pubDate>Sat, 16 Jul 2022 12:52:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=32117540</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=32117540</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32117540</guid></item><item><title><![CDATA[New comment by cycomachead in "To Ruby from Python"]]></title><description><![CDATA[
<p>Yeah, it's not usually an issue in practice. But I do see students get confused trying things out...and it's likely because learning in an interpreter doesn't often look like "real" code does.</p>
]]></description><pubDate>Sat, 16 Jul 2022 12:48:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=32117499</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=32117499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32117499</guid></item><item><title><![CDATA[New comment by cycomachead in "To Ruby from Python"]]></title><description><![CDATA[
<p>There's a bunch of things to pay attention to in Ruby. I wouldn't say these get too hairy, but they trip students up for very understandable reasons.<p>* `a ||= b` is not just `a = a || b`, but `a || a = b`<p>* The distinction between defaults arguments and hash arguments in functional signatures has many edge cases -- but it's much much better in Ruby 3.<p>* There are still 2 pieces of syntax for hashes (`{a: 1}` and `{:a => 1}`) They are the same.<p>* Curly bases show up a fair bit for a language that's not a braces language. :) They're in hashes, blocks, and % strings. e.g. `%w{a b c}` is the same as `%w|a b c|`. They're also used in string interpolation, e.g. `"Hello, #{name}"`.<p>* There are sometimes many ways to do the same thing. There's Procs, blocks, and lambdas. % strings work with many characters.<p>* `unless` for `if not...` and get wonky.<p>* Overusing "surprise if" e.g. `do_thing if other_thing` can be hard to read.<p>* It's so easy to monkey-patch and extend primitive classes, you might not realize when libraries do it.<p>All of these are features that I actually find nice to use in the right contexts. But they can pop up when you don't expect, and they can definitely make Ruby a challenge to learn. That said with a little discipline (or just a linter ;)), I find a lot of Ruby code a joy to read and write.</p>
]]></description><pubDate>Sat, 16 Jul 2022 09:23:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=32116415</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=32116415</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32116415</guid></item><item><title><![CDATA[New comment by cycomachead in "To Ruby from Python"]]></title><description><![CDATA[
<p>In that case -- I definitely agree Ruby usually gets out of way. It's often my go to for hacking on something, unless it's data science-y.<p>I'll mention: implicit returns, return if, and safe navigation, the &. operator. Ruby's newer pattern matching features are really cool[1], especially for things like JSON structures, but I've only use started using them. Classes are also super easy to extend.<p>Many of these things are also incredibly easy to abuse - but they have their places.<p>[1]: <a href="https://docs.ruby-lang.org/en/3.0/syntax/pattern_matching_rdoc.html" rel="nofollow">https://docs.ruby-lang.org/en/3.0/syntax/pattern_matching_rd...</a></p>
]]></description><pubDate>Sat, 16 Jul 2022 09:07:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=32116352</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=32116352</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32116352</guid></item><item><title><![CDATA[New comment by cycomachead in "The 13-Inch MacBook Air"]]></title><description><![CDATA[
<p>Comparing Apple Silicon and x86 as the difference between having modern plumbing or not...not exactly where I expected the review to go! Gruber's hyperboles can be entertaining for sure.<p>But damn, I can't wait for the time for me to upgrade my Intel Macs.</p>
]]></description><pubDate>Sat, 16 Jul 2022 08:58:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=32116319</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=32116319</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32116319</guid></item><item><title><![CDATA[New comment by cycomachead in "I deleted 78% of my Redis container and it still works"]]></title><description><![CDATA[
<p>This is a valid point, but definitely a misleading title.</p>
]]></description><pubDate>Sat, 16 Jul 2022 08:54:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=32116299</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=32116299</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32116299</guid></item><item><title><![CDATA[New comment by cycomachead in "To Ruby from Python"]]></title><description><![CDATA[
<p>More productive is really hard to say... But I personally prefer Ruby to Python. For smallish scripts, I really like Ruby's backticks for easily executing shell commands. And I find the metaprogramming support in Ruby great for some tasks. I'm not sure if that's what you're getting at.<p>But especially with "modern" Python features like f-strings and the walrus operator there's not tons of differences that really stand out as "productivity".<p>One thing to just remember: Ruby is not just the Ruby on Rails community. Rails is a dominate space, but it's not the only thing out there. At the same time, when it comes to scientific computing, ML, etc. the Python ecosystem is incredibly robust. There's plenty of awesome Ruby tools for these things too, but it is not the same.<p>Ruby and Python are the two languages I primarily teach courses in, and used professionally. Ruby is my cup of tea personally, but they're both modern dynamic interpreted languages.</p>
]]></description><pubDate>Sat, 16 Jul 2022 08:51:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=32116282</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=32116282</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32116282</guid></item><item><title><![CDATA[New comment by cycomachead in "My experience as a Unit-18 Berkeley Lecturer"]]></title><description><![CDATA[
<p>The fact of the matter is that it wouldn't even necessarily need to increase tuition. The UC system is a $50bn/yr enterprise. Lecturer salaries are a tiny amount, and really only about 20% or so of tuition money right now is directly attributed to instruction costs. If the University worked on a budgeting model that valued instruction, then I think the pay gap could be significantly reduced.</p>
]]></description><pubDate>Mon, 23 May 2022 21:35:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=31485049</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=31485049</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31485049</guid></item><item><title><![CDATA[New comment by cycomachead in "My experience as a Unit-18 Berkeley Lecturer"]]></title><description><![CDATA[
<p>This is true, but it also sucks if we assume "part of a career path". That means there's virtually no teaching-focus career paths in the UC system which is terrible for basically everyone. (Students as well as other faculty.)<p>In reality, there's spots where it very well could be a career path but it's incredibly difficult to make it work in CS. (And in many many other fields too!)</p>
]]></description><pubDate>Mon, 23 May 2022 21:32:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=31485022</link><dc:creator>cycomachead</dc:creator><comments>https://news.ycombinator.com/item?id=31485022</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31485022</guid></item></channel></rss>