<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: tommyage</title><link>https://news.ycombinator.com/user?id=tommyage</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 29 Aug 2026 08:09:30 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=tommyage" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by tommyage in "GUIs should be fully keyboard-driven"]]></title><description><![CDATA[
<p>A GUI is indeed superior to a TUI. And keyboard driven should be both. But neither is my preferred UI. I want CLI programs callable from my shell.<p>This way I can quickly repeat an action from the past. I get a history of commands inserted.
_And_ I can bind my own keyboard shortcuts if necessary. TUI and GUI do not meet this level of platform independence.<p>If a tool is TUI only I will not adapt it.
That's not the case with a GUI, though.</p>
]]></description><pubDate>Fri, 28 Aug 2026 19:31:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=49483193</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=49483193</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49483193</guid></item><item><title><![CDATA[New comment by tommyage in "Someone is running mass vulnerability scans, spoofing AI bots like ClaudeBot"]]></title><description><![CDATA[
<p>I, temporarly, banned some ip range.
I didn't find a source for pinpointing countries; though I am interested. Could you point me to some sources which, deterministically, resolve to some countries? To my knowledge you can not reliably identify countries by ip since this would be dependent on DNS servers. Though I am just a application programmer!<p>Thanks in advance.</p>
]]></description><pubDate>Wed, 12 Aug 2026 16:47:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=49275259</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=49275259</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49275259</guid></item><item><title><![CDATA[New comment by tommyage in "“Code was never the hard part” is an insult to all programmers"]]></title><description><![CDATA[
<p>I want append:<p>We have studied. We constantly educate ourselves (I have still not yet managed to work through the entire SICP on my own). Our tools are changing constantly. We are juggling information through devops, requirement engineers and customers. We advise daily. We get consolidated if something is complicated to summarize. We do forensics. Constantly under the pressure that some bit rot may open a new urgent bug we have to investigate. Money AND reputation on the line.
It is a damn stressful job.
So if we do our craft, we do it with incremental knowledge. Carefully.
We build community of trust in our free time to get connected and improve. Any new member gets welcomed and onboarded. His knowledge im the future will supplement ours. So we mentor additionally.<p>Now comes AI. Collects the knowledge and hands it over to anyone. And we know: It is UNSAFE. 
Don't get me wrong; I consolidate it now as well, just to keep up with the increasing pressure to investigate. But the thing is:<p>While we did our craft so that we won't have to touch it in the next five years, the complexity increases every single day. And its out of our hands. If some junior comes in and starts writing decent code with ai it is nice. Until it breaks and AI won't help. Or worse: Gets applied on customer data in the wrong way.<p>A new ticket for the greybeards (by no means, I am not such).
I think we are on the wrong track.
Using ai decreases my abilities.
It increases the load.<p>I think we should get twice the salaries.
It has become unbearable.<p>Could you imagine that your local file server for your family consists of a enterprise database, a key-value store, possibly multiple reverse-proxies, a vector database.... my point beeing: Complexity. Invariants, frameworks to get familiar with... And the tool to supplement the demand is intransparent (but probably deterministic? Idk). It feels just so wrong.</p>
]]></description><pubDate>Mon, 10 Aug 2026 01:12:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49238125</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=49238125</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49238125</guid></item><item><title><![CDATA[New comment by tommyage in "Developers are attached to tools because tools encode trust"]]></title><description><![CDATA[
<p>Wait; So you say you outsource development to a LLM fully knowing that it will not write sound/deterministic code and your quality requirement are your test cases, right?<p>I further suppose you are not writing the test cases in its whole by hand. But you try to specify them before you hand out the development task to the LLM, right?<p>It sounds like you just introduces a new team member which is not trustworthy yet.
Normally you would review each change of him and explain how to improve hisself and the code.
But that's not possible to a fixed-state LLM.
That sounds exhausting.<p>If your Markdown Files should aim at improving the LLM contributions, you are again stuck with the fact that it did not follow in the first place.<p>So I conclude: You pay for an Intern who is not trustworthy and pay additional input token on Markdown Files to still no be certain about future contributions.<p>I just don't grasp how we as engineers are accepting this and integrate it into our craft.
And: Everybody using External LLM Services, possibly providing the entire project as context, is allowed to let the source code of your company be leaked to some third party. I hope that party is trustworthy and does not have a track record of copyright infridgement. Because this would be fairly naive and reason to be fired. So we as Engineers  knowing the implications should therefore point to these issues at the correct management level.<p>At least that's what I am doing <i>shrugs</i></p>
]]></description><pubDate>Sun, 02 Aug 2026 20:34:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=49148058</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=49148058</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49148058</guid></item><item><title><![CDATA[New comment by tommyage in "LLMs corrupt your documents when you delegate"]]></title><description><![CDATA[
<p>All of software is hard-coded algorithm.<p>If you differ between AI source code and engineer source code say so. "Getting things done" is a business need. Which things get translated to a deterministic language executable by a computer is code.<p>There are entire languages dedicated for lesser engineers/domain experts to formulate business requirements.<p>Anyhow; What's your point?
That we received a framework for "soft algorithms" where the output does not need to be correct and deducible?
What's even the point of putting it into software.
Just forward your input to the reader and let him judge on its own.</p>
]]></description><pubDate>Sat, 09 May 2026 17:56:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=48076844</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=48076844</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48076844</guid></item><item><title><![CDATA[New comment by tommyage in "Ferron – A fast, memory-safe web server written in Rust"]]></title><description><![CDATA[
<p>I am also wondering about this.<p>To me, your FAQ quickly addressed all questions I had to get a first grasp of the capabilities.
It appears to me that you had a determined scope and I very much like that!</p>
]]></description><pubDate>Sat, 05 Apr 2025 09:23:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=43592113</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=43592113</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43592113</guid></item><item><title><![CDATA[New comment by tommyage in "Thunderbird 115"]]></title><description><![CDATA[
<p><a href="https://www.thunderbird.net/en-US/get-involved/" rel="nofollow noreferrer">https://www.thunderbird.net/en-US/get-involved/</a><p>Your professional input may be desired. Though I did not contribute to Thunderbird either (, yet?).
Thing is, your critique may result in guidance to make part of these changes according to your skillset!
But I am just a hopeless dreamer in the good of many things.</p>
]]></description><pubDate>Mon, 10 Jul 2023 12:13:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=36665232</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=36665232</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36665232</guid></item><item><title><![CDATA[New comment by tommyage in "Saying Goodbye to GitHub"]]></title><description><![CDATA[
<p>> Unfortunately moving to Gitlab or Sourcehut doesn't really help, because the underlying model (GPT-x) is trained on the entire internet, so that includes all scrape-able websites. The only way for your data not to be used in GPT (and therefore Copilot) is to not to put it on any website or make it very difficult to access, like encrypting it.<p>Having the entire git history decorates specific chunks (at least entire commits) with context by the commit message. So you may not only process the entire repo at one specific state in time, but the entire history in at this point in time.
There is valuable knowledge while making sense of it; But this is not accessible to us. It relies in the knowledge base of one company (or two).</p>
]]></description><pubDate>Mon, 03 Apr 2023 06:56:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=35419525</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=35419525</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35419525</guid></item><item><title><![CDATA[New comment by tommyage in "Designing Good Interfaces"]]></title><description><![CDATA[
<p>> Thanks for your reply! I will need more research to reflect on the examples you give.<p>Please note my sibling answer which shows I am opinionated.
I have memorized my own takes from such terms so researching about my answer may be time not used well.
Sorry.<p>> - <a href="https://www.eiffel.org/doc/solutions/Design_by_Contract_and_" rel="nofollow">https://www.eiffel.org/doc/solutions/Design_by_Contract_and_</a>...<p>Does indeed overlap.
I only read about contract-based programming; contract by design via API documentation in a java environment.<p>> and it seemed to me the main concern was program correctness/consistency<p>It is. There are multiple factors to deploying correct software though.<p>> Maybe I mix up different concerns and good interface design is more about satisfying use case?<p>Apparently your are on the right track. But I would strongly agree on the latter. Such formal correctness proves didn't cross my career yet. But I am assuming safety-critical systems or systems haed to update may benefit here the most.
Which would explain my lack of certainty.<p>Keep it up; Sorry.</p>
]]></description><pubDate>Thu, 16 Mar 2023 21:24:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=35188884</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=35188884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35188884</guid></item><item><title><![CDATA[New comment by tommyage in "Designing Good Interfaces"]]></title><description><![CDATA[
<p>> Invariants are not a synonym for mixins, I'm not even sure where that idea might have come from. Invariants are assertions that are true throughout a program or subset of a program (like loop invariants). Where did you get this notion they were synonyms for mixins and what would that even mean?<p>It was my own understanding; Thanks for suggesting clarification.
I falsely associated such mixins with encapsulated behaviour. It was my take on mixins and may have translated the term invariant wrong.
Appreciated.</p>
]]></description><pubDate>Thu, 16 Mar 2023 21:11:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=35188696</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=35188696</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35188696</guid></item><item><title><![CDATA[New comment by tommyage in "Designing Good Interfaces"]]></title><description><![CDATA[
<p>> Is this what we refer to as design by contract?<p>No. One need a specification of the intended behaviour. Behind this specification lays the interface (data type, here a Object-class). This data type on the other hand can have different representations.<p>Design by contract is a term i didn't read as an agreed scientific term.
It is used in OO-languages for some pattern, where you "generate" (read imply) a specification. E.g. two unrelated services use the same data type within their communication. This may be injected or included within their dependencies. To me its related to code generation. It may aid the collaborations between multiple developers across multiple projects to 'move faster'. I have limited and bad experience with this.<p>> If so, what about invariants? Are invariants related to good interface design?<p>Invariants in my book are then a synonym for mixins. Which in OO-Design would be represented via dependency inversion.
Invariants can be necessary at best.
Its no measure for a good interface.
If your data types are specified such that invariants do not missbehave, they can be used.<p>But don't trust me on this.</p>
]]></description><pubDate>Thu, 16 Mar 2023 11:04:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=35180418</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=35180418</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35180418</guid></item><item><title><![CDATA[New comment by tommyage in "European Lisp Symposium 2023"]]></title><description><![CDATA[
<p>> Are square brackets part of the spec now? I can't get over ((((( for everything with no real easily visible distinguishability between parts of a definition. Clojure gets the Lisp-like syntax as right as possible IMO.<p>Square brackets are replaced by normal parenthesis to my knowledge.<p>Though I have to admit that I strongly dislike them. They put more cognitive effort into the syntax than they aid.</p>
]]></description><pubDate>Fri, 10 Mar 2023 05:59:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=35090929</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=35090929</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35090929</guid></item><item><title><![CDATA[New comment by tommyage in "ChatGPT broke the EU plan to regulate AI"]]></title><description><![CDATA[
<p>People posting such articles (from sites highly neglectable) without their informed take is ruining this community as well.<p>We shouldn't raise any questions but leave participations to themselves.</p>
]]></description><pubDate>Mon, 06 Mar 2023 01:30:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=35036434</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=35036434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35036434</guid></item><item><title><![CDATA[New comment by tommyage in "Ask HN: How do you test SQL?"]]></title><description><![CDATA[
<p>Relational databases rely on math.
You may test your implementation; Or the input to your statements.</p>
]]></description><pubDate>Tue, 31 Jan 2023 23:27:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=34603873</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=34603873</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34603873</guid></item><item><title><![CDATA[New comment by tommyage in "GitHub is sued, and we may learn something about Creative Commons licensing"]]></title><description><![CDATA[
<p>> How are you a "creator" (in an attribution-worthy sense) if you are producing an unoriginal implementation of an old algorithm that thousands of coders have produced before you?<p>So your requirements are pseudo-code which you simply have ti translate. I see. No creativity required. Jepp.<p>> Most coding is not innovative, and that is the kind of code that these tools are producing and derived from in most cases.<p>I see what you want to suggest.
Then it woulnb't be required to learn on these datasets and simply build a "fair use" product which covers these cases with a snippet engine.<p>Don't be naive.</p>
]]></description><pubDate>Fri, 06 Jan 2023 16:07:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=34276340</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=34276340</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34276340</guid></item><item><title><![CDATA[New comment by tommyage in "Five Walled Gardens: Operating systems are holding browsers back [pdf]"]]></title><description><![CDATA[
<p>> Can someone ELI5 what Mozilla did to deserve this derision?<p>Assumption:
People have troubles with certain web applications like MS teams, goto-meeting,.. or youtube.
Mozilla has to adapt to undocumented changes. There are an increasing amount of applications which do not support firefox (strange, because the web should be browser independent).
People think Mozilla is responsible for this.<p>Mozilla does not generate income with Firefox (besides dontations!). Why is it so important to have the biggest market share with a browser? I suppose there is data to be collected by the other players.</p>
]]></description><pubDate>Wed, 28 Sep 2022 07:32:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=33005182</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=33005182</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33005182</guid></item><item><title><![CDATA[New comment by tommyage in "A plain-text file format for todos and check lists"]]></title><description><![CDATA[
<p>You are right, I didn't wanted to imply that these lists can only be used by speakers fluent in english.
I wanted to imply that grammars of languages are best represented in ASCII.<p>There are languages written from right to left or top to bottom. No standard I know of are supporting such flexibility in syntax. And it shouldnt be necessary - if the <user text> items within the grammar support unicode  but the keywords are ASCII only it can MORE easily adapted than supporting unicode....</p>
]]></description><pubDate>Mon, 22 Aug 2022 21:43:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=32557686</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=32557686</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32557686</guid></item><item><title><![CDATA[New comment by tommyage in "A plain-text file format for todos and check lists"]]></title><description><![CDATA[
<p>> - doesn't support UTF-8 checkbox emoji<p>That's a good thing. Its also unicode, not utf-8. Your plugin can display it with a unicode character. Having a simple ASCII char set helps portability _a lot_. No benefit in supporting unicode code points.<p>> - doesn't support nested lists<p>If you can tick all items within a nested list, why bother writing it with dedicated TODO items? Additionally, you can just create more files for elaboration. Your file system is at your dispense. Additionally, that can be implemented in your plugin of choice. Goes with your first point in hand.<p>> - specifies a specific space character when a character class would be better<p>ASCII has no official character class. If your are refering to tabs; I don't think this is bad or good. Maybe you can follow uo on the use case..<p>> - not clear what "item must not contain blank lines" means<p>Probably that a blank line is used as a separator<p>> - description indentation limit of four space characters is a problem for nested items<p>I don't see why. The fixed amout of four characters obviously lines up to the start of the text from an item.
This helps readability a lot.
And is a simple standard for identation rules.<p>> - description supporting blank lines (properly indented) would be useful for longer descriptions<p>I disagree. A TODO list should be simple to grasp. Details and elaborations can be put in a dedicated directoy and refered to.
Also, it is a _very bad_ idea to work with invisible lines. Users are dump and quick to judge.<p>> - date should support an ISO or other standard date format<p>This is the most portable standard, but extended for human editing..<p>> - timezone is necessary for events happening in specific timezones or across timezones<p>I tend to agree. But the person hosting the list should probably be the one defining the time zone. But I haven't read anythinf about time zones in the primer. Nothing stops one to simply append it to a time. No need for the standard to define such.<p>I think it is well put and the first one which checks all the boxes for me.
Congratz to the author.<p>I don't see why such a comment is #1.</p>
]]></description><pubDate>Mon, 22 Aug 2022 21:13:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=32557358</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=32557358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32557358</guid></item><item><title><![CDATA[New comment by tommyage in "Coping with Copilot"]]></title><description><![CDATA[
<p>Who should fix the bugs in the future? Nerds?
Where are they coming from 60 years from now?<p>E(very) S(ingle) W(ord) S(hould) be (no [ACCEPTED] completion here) W(ritten) W(ith) C(onscience). You should be responsible for your code submitted. Are your feeling confident?<p>Won't touch Co-Pilot. Probably you are spending equal time proof reading than _understanding what needs to be written_ in advance. At least that is what I am hoping about. Of course you don't have to proof read, and most things can probably be grasp in a glance. But you rely on a black-box. From a corporation. To me that sounds like agreeing with a dictator.<p>Wouldn't promise my craftmanship for things I didn't grasp in advance. But maybe that's a culture hindrance. I like it though. I want to know the code I am corrected about.
I want to archive mastery.</p>
]]></description><pubDate>Sat, 20 Aug 2022 22:50:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=32535854</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=32535854</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32535854</guid></item><item><title><![CDATA[New comment by tommyage in "Uno platform: Build single-codebase applications across all platforms"]]></title><description><![CDATA[
<p>C# can be natively compiled, doesn't it?</p>
]]></description><pubDate>Wed, 17 Aug 2022 09:39:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=32494140</link><dc:creator>tommyage</dc:creator><comments>https://news.ycombinator.com/item?id=32494140</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32494140</guid></item></channel></rss>