<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: ghoward</title><link>https://news.ycombinator.com/user?id=ghoward</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 13 Apr 2026 08:59:45 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ghoward" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by ghoward in "Apparently I am a robot"]]></title><description><![CDATA[
<p>Hey, what tool are you using for detection? I'd like to run it on my own comments and on my blog posts.</p>
]]></description><pubDate>Sun, 11 Dec 2022 15:20:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=33943884</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33943884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33943884</guid></item><item><title><![CDATA[New comment by ghoward in "Getting Started with Tmux"]]></title><description><![CDATA[
<p>I do this too! [1]<p>It's amazing how well tmux works as a project setup tool.<p>[1]: <a href="https://gavinhoward.com/2020/12/my-development-environment-and-how-i-got-there/" rel="nofollow">https://gavinhoward.com/2020/12/my-development-environment-a...</a></p>
]]></description><pubDate>Sun, 11 Dec 2022 15:10:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=33943812</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33943812</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33943812</guid></item><item><title><![CDATA[New comment by ghoward in "A new CMake Scripting Language?"]]></title><description><![CDATA[
<p>> I would definitely write (or at least read) a few Bazel rules before writing a new build system that improves on it!<p>You have a point there; I didn't because everything I've seen is that people like the <i>results</i> of Bazel, but they hate writing rules, so Bazel rules seemed like something to <i>not</i> emulate.<p>But point taken.<p>And thank you for the explanation. It seems providers allow for multiple outputs on a target. My build system allows that, but bundling such outputs together is a good idea that I need to add.</p>
]]></description><pubDate>Wed, 07 Dec 2022 14:51:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=33894936</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33894936</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33894936</guid></item><item><title><![CDATA[New comment by ghoward in "A new CMake Scripting Language?"]]></title><description><![CDATA[
<p>Er, <i>most</i> of the capabilities of Bezel and Buck just appear.<p>That said, can you explain providers to me? I looked up the docs, and I'm no closer to understanding them.<p>I want to understand them and their uses do that my build system can have the same capabilities.</p>
]]></description><pubDate>Wed, 07 Dec 2022 13:28:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=33894087</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33894087</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33894087</guid></item><item><title><![CDATA[New comment by ghoward in "A new CMake Scripting Language?"]]></title><description><![CDATA[
<p>I agree.<p>My build system will actually have a command-line option to reverse the dependency resolution. Instead of building a given target, updating its dependencies as necessary, it will build the default target(s), marking the files given on the command-line as "changed" and resolving dependents up to the default target(s).<p>This will mean that building the "current file" will be a simple command-line switch that can be part of the file generated for that IDE.<p>But yes, I'm going to put in a lot of work to make IDE's work as smoothly as possible.</p>
]]></description><pubDate>Tue, 06 Dec 2022 23:21:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=33888511</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33888511</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33888511</guid></item><item><title><![CDATA[New comment by ghoward in "A new CMake Scripting Language?"]]></title><description><![CDATA[
<p>Yes, I'm a solo dev and not looking for contributors. My style is too eccentric to accept outside contributions.<p>Funny you should mention Bazel and Buck; I'm coming for them too! I'm also coming for Nix; I want its advantages to be easily accessible for mere mortals.<p>I think I can do better alone than those teams have because they have all made assumptions that weren't great. I'm learning from their mistakes.<p>Also, UX matters, and I'm putting a lot of effort into that.<p>But the other reason is that if you do Nix right, the capabilities of Bazel and Buck just appear.<p>Thank you for the encouragement!</p>
]]></description><pubDate>Tue, 06 Dec 2022 19:39:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=33885832</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33885832</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33885832</guid></item><item><title><![CDATA[New comment by ghoward in "A new CMake Scripting Language?"]]></title><description><![CDATA[
<p>> That's the critical selling point of CMake in my estimation. When I'm on Windows, I can generate a Visual Studio project and use its excellent debugger and code analysis tools. When I'm on Mac, I can generate an XCode project. Or a CLion project, or Makefiles, or...<p>I've already addressed some of this in another comment ([1]), but you bring up more points, so I'll address it here.<p>CMake's model <i>forces</i> it to generate build files for other build systems. The better model does not force the build system to, but it also <i>does not preclude doing so</i>.<p>Separately from actually running a build (and that's important), my build system will be capable of generating files for VS, XCode, and other IDE's, but the files it generates will simply tell the IDE's how to integrate with my build system by telling them how to call it with the correct build profile. And yes, it will generate multiple possible build profiles, allowing VS users to select the solution the want to build from within VS.<p>But this means that my build system will not only integrate better with IDE's than CMake, it will still retain full control of actual builds.<p>This includes using debuggers and analysis tools, by the way. I wouldn't consider my work done on IDE integration until all of that is as easy as possible, and definitely as easy as CMake.<p>> Isn't that exactly what an INTERFACE library is for?<p>Maybe? It might be enough. At first glance (and I fully acknowledge that I could be wrong here), it seems like CMake expects the "target" to be a library of some sort. That's not the sort of thing I would personally want.<p>I would want to be able to depend on any target for any target.<p>But again, I could be wrong. I've never been able to understand the CMake docs.<p>[1]: <a href="https://news.ycombinator.com/item?id=33885476" rel="nofollow">https://news.ycombinator.com/item?id=33885476</a></p>
]]></description><pubDate>Tue, 06 Dec 2022 19:33:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=33885753</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33885753</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33885753</guid></item><item><title><![CDATA[New comment by ghoward in "A new CMake Scripting Language?"]]></title><description><![CDATA[
<p>Sure, but doing so doesn't mean that the generating build system had to have the same model as CMake.<p>Here's how my build system will do it: the programmer will list default build profiles. Then the build system will generate Visual Studio or XCode files that include all of those default build profiles, but those VS or XCode files will simply call my build system with the correct build profile.<p>Thus, when a build is run from VS or XCode, my build system is still in full control.<p>In essence, instead of generating build files for use by other build systems, my build system will generate files to tell VS and XCode how to call my build system. It will tell VS and XCode how to integrate it.</p>
]]></description><pubDate>Tue, 06 Dec 2022 19:15:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=33885476</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33885476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33885476</guid></item><item><title><![CDATA[New comment by ghoward in "A new CMake Scripting Language?"]]></title><description><![CDATA[
<p>Disclaimer: author of a build system that will compete against CMake when it's released.<p>I'm not impressed, for two reasons:<p>* Backwards compatibility for the CMake language is <i>not</i> desirable. It would be better to allow files to be translated to the new language completely. Sure, CMake could support having files in the old language and files in the new language, but the CMake language is so bad that a break from it is the best path forward.<p>* The CMake language is <i>not</i> the only drawback to CMake, unlike the claims in the presentation. CMake's model is hamstrung as well, in several ways.<p>Here are some ways in which the CMake model is hamstrung:<p>* Generating a build file for another build system. This means that CMake always gives up control of the build. It can only tell the other build system the dependency graph and then sit back and watch. It can't regulate the build itself.<p>* No dynamic dependencies. If you need dynamic dependencies, you need to call into CMake to generate a <i>new</i> and <i>separate</i> build file for the second build system and then call that. And because the two build files that CMake generated don't know anything about each other, it's hard to regulate the use of computing resources between them; you either have to complete the one and start the other, or you risk over-extending on your computing resources.<p>* No way to generate a target that doesn't call an outside process. More generally, the only way to generate a target (unless my CMake knowledge is old) is to have the second build system create a child process. This is strictly less powerful than having the same scripting language available during configure also available in targets. For example, LaTeX is only properly built with a loop that checks for a fixed point. If you can't loop in your target, you have to use an outside bash script or something of the sort to make up for it.<p>* No way to have targets that do not generate files and have other targets depend on those targets. If a target does not generate a file, CMake does not know how to make other targets depend on it (unless my CMake knowledge is old).<p>* The model of "configure in Turing complete language and then build" also means that configuring often has to happen more than once before a build. You see this if you use `ccmake`: you configure, and new options appear. You set the options and configure again. More options might appear. Using plain `cmake` hides this by using defaults, but that just means the user might end up with a build they didn't want because they didn't get a chance to set all of the options they might care about.<p>Anyway, rant over.</p>
]]></description><pubDate>Tue, 06 Dec 2022 15:53:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=33882035</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33882035</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33882035</guid></item><item><title><![CDATA[New comment by ghoward in "Author warns about 'epidemic of self-censorship'"]]></title><description><![CDATA[
<p>> Your comments in this thread were doing ideological battle on a classic flamewar battlefront. You even used the word "fighting" to describe what you were doing. Surely you can understand how lines like ""wokeists" have caused so much damage to this country" and "The community you love has done damage to [...] society" are flamebait?<p>No, not really. I was answering certain accusations with my opposing opinions.<p>Unfortunately, I can't understand where a person is coming from if I don't understand their definitions of certain terms, and I can't understand your definitions of flamewar and flamebait.<p>> If you get into back-and-forths with an opposing user around that kind of thing, you're perpetuating flamewar. This is clearly not curious conversation.<p>I guess I misunderstand the purpose of HN because this line of yours makes it seem (to me) like I cannot debate political things at all, or rather, certain topics (does "around that kind of thing" means political things?), but that doesn't seem right either.<p>> However, there are many ways to lower the expected value of a thread, and flamebait/flamewar is just one of them.<p>That's why I think putting the lowering of the expected value of a thread into the guidelines is the right choice: it covers more situations.<p>> I think it's important to be specific.<p>I have shut off the discussion you didn't like, but it would be helpful to me if you were more specific about what you see as flamebait and flamewar. If I understand what you want me to not do, I'll avoid it, but I can't avoid something I'm unclear on. I also don't like self-censoring more than necessary (that is what the posted article was about, after all).<p>However, I expect that you're busy and won't be able to answer me, so extra self-censoring might be what I have to do. It makes me sad, though; I felt like HN was one place where I didn't have to do that, and now, it does not.<p>Edit: one thing that I could consider is trying to not answer every accusation that I'm a terrible person. Ten years ago, my Christian faith would not be attacked so openly. Now, people consider me a terrible person for believing those same things, and I find myself defending my faith a lot, albeit indirectly.<p>I will try to do that less on HN at least. Would that be what you are doing of me?</p>
]]></description><pubDate>Fri, 02 Dec 2022 01:18:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=33825527</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33825527</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33825527</guid></item><item><title><![CDATA[New comment by ghoward in "Author warns about 'epidemic of self-censorship'"]]></title><description><![CDATA[
<p>Please define "perpetuate flamewars" for me because I don't understand how you use that phrase.<p>I didn't attack the messenger, which is the definition of that phrase I usually use. I also very carefully only addressed the points the other person made.<p>Edit: also, I have read your comment from a long time ago about the expected value of a discussion. Perhaps that is the definition you personally use? As in, you consider any comment to be "perpetuating flamewars" once it is made in a discussion with a lower expected value than you want to accept.<p>I can't argue with that definition; in fact, I would accept it wholeheartedly, but (and this is just a suggestion) it might be better to make <i>that</i> the site guidelines, as well as to adjust your wording when you tell people to knock it off as you just did.<p>For example, if you came to me and said, "The expected value of this discussion is lower than the value that this site can accept, so please stop this discussion here," I think I personally would take it much better than being accused of perpetuating flamewars. And I would be more likely to obey.<p>You can still ban people for not obeying such requests too. I think you should.<p>Anyway, I hope this comment was helpful.</p>
]]></description><pubDate>Thu, 01 Dec 2022 17:53:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=33819841</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33819841</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33819841</guid></item><item><title><![CDATA[New comment by ghoward in "Author warns about 'epidemic of self-censorship'"]]></title><description><![CDATA[
<p>Guilt by association is a logical fallacy. That is not a good argument.<p>The community you love has done damage to the society you depend on. I have no viciousness towards any one of them except where they insist on remaking society in their image to the detriment of all others.<p>Ignorance through force of law would apply if the history were factual. But it's not. Preventing bad ideas from being taught is the opposite of codifying ignorance.</p>
]]></description><pubDate>Thu, 01 Dec 2022 00:28:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=33810378</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33810378</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33810378</guid></item><item><title><![CDATA[New comment by ghoward in "Author warns about 'epidemic of self-censorship'"]]></title><description><![CDATA[
<p>Parents seem to like it, though, so I don't see what the problem is.<p>And yes, people other than history faculty do know how to teach history better than history faculty. I don't trust academics.</p>
]]></description><pubDate>Wed, 30 Nov 2022 16:48:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=33803439</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33803439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33803439</guid></item><item><title><![CDATA[New comment by ghoward in "Ask HN: Do you look angry while you work?"]]></title><description><![CDATA[
<p>I do.<p>And like many others, I can also look like I'm experiencing other emotions because I am. But I have a resting angry face, and it gets more extreme the more deeply I am thinking.<p>My wife works in a company with programmers, and they keep their webcams off during virtual meetings because, "We don't want people to see our thinking faces." Yes, that is an exact quote.</p>
]]></description><pubDate>Wed, 30 Nov 2022 15:18:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=33801884</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33801884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33801884</guid></item><item><title><![CDATA[New comment by ghoward in "Choosing Nim out of a crowded market for systems programming languages"]]></title><description><![CDATA[
<p>Because indentation-based languages have very limited formatting they can do. They can't do any indentation formatting.</p>
]]></description><pubDate>Sat, 26 Nov 2022 02:19:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=33749210</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33749210</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33749210</guid></item><item><title><![CDATA[New comment by ghoward in "My New York State audit is over, here are the results"]]></title><description><![CDATA[
<p>Because they are.</p>
]]></description><pubDate>Fri, 25 Nov 2022 01:13:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=33738013</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33738013</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33738013</guid></item><item><title><![CDATA[New comment by ghoward in "Ccache – a fast C/C++ compiler cache"]]></title><description><![CDATA[
<p>And the saddest part is that Nix could be <i>exactly</i> there <i>and</i> solve another one of their problems at the same time: content-addressed outputs.</p>
]]></description><pubDate>Thu, 24 Nov 2022 21:14:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=33736311</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33736311</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33736311</guid></item><item><title><![CDATA[New comment by ghoward in "A programmer-friendly I/O abstraction over io_uring and kqueue"]]></title><description><![CDATA[
<p>Funny. I've implemented something like this as well, but over `poll()`, and I made it handle child processes too.<p>I could probably change it to use io_uring and kqueue on those platforms, but I wanted to make a POSIX-compatible version first.</p>
]]></description><pubDate>Thu, 24 Nov 2022 05:56:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=33728171</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33728171</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33728171</guid></item><item><title><![CDATA[Ask HN: Where did the “unread” marker go?]]></title><description><![CDATA[
<p>I've been using HN for a while and asked to be one of those with the "unread" marker (an orange vertical line to the left of unread posts).<p>It stopped appearing today, or maybe yesterday.<p>Where did it go? Did I miss some sort of announcement?</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=33708041">https://news.ycombinator.com/item?id=33708041</a></p>
<p>Points: 3</p>
<p># Comments: 5</p>
]]></description><pubDate>Tue, 22 Nov 2022 17:07:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=33708041</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33708041</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33708041</guid></item><item><title><![CDATA[New comment by ghoward in "C23 Implications for C Libraries"]]></title><description><![CDATA[
<p>Without standardization, I have to rely on specific compilers. That's not great, either.</p>
]]></description><pubDate>Mon, 21 Nov 2022 21:43:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=33698409</link><dc:creator>ghoward</dc:creator><comments>https://news.ycombinator.com/item?id=33698409</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33698409</guid></item></channel></rss>