<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: codesnik</title><link>https://news.ycombinator.com/user?id=codesnik</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 27 Jun 2026 02:50:24 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=codesnik" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by codesnik in "LuaJIT 3.0 proposed syntax extensions"]]></title><description><![CDATA[
<p>yes, ruby inherited this from perl, though 'or' has lower precedence than 'and' in perl, and they're equal in ruby. Which sounds like something going to cause mistakes, but I yet to see 'and' and 'or' together in the same expression in ruby.</p>
]]></description><pubDate>Thu, 25 Jun 2026 10:45:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48671592</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48671592</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48671592</guid></item><item><title><![CDATA[New comment by codesnik in "Show HN: Oak – Git alternative designed for agents"]]></title><description><![CDATA[
<p>yep. claude keeps "habitually" trying to use `rg -rn` instead of `rg -n` because it was instructed to use "rg" instead of "grep" by Anthropic, but uses arguments for grep: `grep -rn`. My instructions and "memory" are not helping. "Oh, I did it again, and you've instructed me not to". Older tools are better for current "agents".</p>
]]></description><pubDate>Tue, 23 Jun 2026 05:07:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48640557</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48640557</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48640557</guid></item><item><title><![CDATA[New comment by codesnik in "Ian's Secure Shoelace Knot"]]></title><description><![CDATA[
<p>but glasses were made of glass, and nowadays most are plastic.</p>
]]></description><pubDate>Thu, 04 Jun 2026 21:42:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48405012</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48405012</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48405012</guid></item><item><title><![CDATA[New comment by codesnik in "Ian's Secure Shoelace Knot"]]></title><description><![CDATA[
<p>Instead of relearning how to knot bunny ears, I make the first crossing the opposite way to granny knot, it's somehow easier for me.</p>
]]></description><pubDate>Thu, 04 Jun 2026 21:40:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48404998</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48404998</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48404998</guid></item><item><title><![CDATA[New comment by codesnik in "Domain expertise has always been the real moat"]]></title><description><![CDATA[
<p>I had the same problem in air travel industry. Our ticketing officers were never able to communicate how the ticket commission rules from our partners should be interpreted. I ended up adding a test framework, that allowed to add examples and counterexamples of existing flights to each rule, to verify that they are applied the way they'd assign commission by hand.</p>
]]></description><pubDate>Sun, 31 May 2026 10:06:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48344417</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48344417</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48344417</guid></item><item><title><![CDATA[New comment by codesnik in "Jira Is Turing-Complete"]]></title><description><![CDATA[
<p>nowadays you can vibecode some half-ass headless browser automation using your email-password or even weird corporate sso.</p>
]]></description><pubDate>Mon, 25 May 2026 09:22:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48264940</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48264940</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48264940</guid></item><item><title><![CDATA[New comment by codesnik in "Project Hail Mary – Stellar Navigation Chart"]]></title><description><![CDATA[
<p>but why solar system is so out of scale?</p>
]]></description><pubDate>Thu, 21 May 2026 20:31:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48228493</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48228493</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48228493</guid></item><item><title><![CDATA[New comment by codesnik in "Mercurial, 20 years and counting: how are we still alive and kicking? [video]"]]></title><description><![CDATA[
<p>git's mental model is very, very small, if you care to learn it. Then all the commands and their "inconsistencies" start to make sense - they operate on the model almost without any magic, and not on whatever is user's intent (it can vary a lot)</p>
]]></description><pubDate>Sun, 17 May 2026 20:53:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48173094</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48173094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48173094</guid></item><item><title><![CDATA[New comment by codesnik in "iOS 27 is adding a 'Create a Pass' button to Apple Wallet"]]></title><description><![CDATA[
<p>contactless ATMs</p>
]]></description><pubDate>Fri, 08 May 2026 05:40:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=48059030</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48059030</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48059030</guid></item><item><title><![CDATA[New comment by codesnik in "iOS 27 is adding a 'Create a Pass' button to Apple Wallet"]]></title><description><![CDATA[
<p>I've tried to come up with the reason they don't do it, and thought MAYBE they were afraid people would put PINs for the cards there and they thought it's a bad idea. I wonder why I even tried to invent a good reason for them, designers could just lack perspective and do not care at all, even in apple.</p>
]]></description><pubDate>Tue, 05 May 2026 21:52:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48029129</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48029129</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48029129</guid></item><item><title><![CDATA[New comment by codesnik in "iOS 27 is adding a 'Create a Pass' button to Apple Wallet"]]></title><description><![CDATA[
<p>good for you and your particular bank.</p>
]]></description><pubDate>Tue, 05 May 2026 21:49:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=48029100</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48029100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48029100</guid></item><item><title><![CDATA[New comment by codesnik in "iOS 27 is adding a 'Create a Pass' button to Apple Wallet"]]></title><description><![CDATA[
<p>give me ability to write a damn whatever on the card. My bank provides USD, EUR and other currencies on different cards with exact same cover. Maddening.<p>I can imagine that we don't have this option just because people would put their PINs there, and maybe it's not exactly secure enough, but sprinkle some validation on top and we'd be ok.</p>
]]></description><pubDate>Tue, 05 May 2026 21:45:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48029058</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48029058</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48029058</guid></item><item><title><![CDATA[New comment by codesnik in "iOS 27 is adding a 'Create a Pass' button to Apple Wallet"]]></title><description><![CDATA[
<p>which is much better than nothing, but is a fairly recent addition</p>
]]></description><pubDate>Tue, 05 May 2026 21:38:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48028952</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=48028952</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48028952</guid></item><item><title><![CDATA[New comment by codesnik in "Ghostty is leaving GitHub"]]></title><description><![CDATA[
<p>huh, I've never thought to check my github id. I don't remember myself being an early adopter.</p>
]]></description><pubDate>Wed, 29 Apr 2026 03:47:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47943970</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=47943970</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47943970</guid></item><item><title><![CDATA[New comment by codesnik in "High Performance Git"]]></title><description><![CDATA[
<p>i think it is the other way around. Git is pretty simple internally, and its ui is just knobs and levers to reach into that simple reliable internal structure. This is why for some people it seems like a mess - they want button "do what I want" (and all people and their needs are different), and for other people it's clean - open the throttle, engine will rev.</p>
]]></description><pubDate>Tue, 28 Apr 2026 09:17:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47932129</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=47932129</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47932129</guid></item><item><title><![CDATA[New comment by codesnik in "Turning a MacBook into a touchscreen with $1 of hardware (2018)"]]></title><description><![CDATA[
<p>huh. I just did what you describe above (on tahoma) and was able to tab into the list of bluetooth devices, no problem.<p>do you have "Settings > Keyboard > Keyboard navigation" on? I thought it is on by default, but apparently it isn't. Without it "tab" only jumps between text fields and checkboxes.<p>There's also an "Accessibility > Keyboard > Full keyboard access", which gives more controls.</p>
]]></description><pubDate>Wed, 01 Apr 2026 16:14:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47602835</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=47602835</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47602835</guid></item><item><title><![CDATA[New comment by codesnik in "Turning a MacBook into a touchscreen with $1 of hardware (2018)"]]></title><description><![CDATA[
<p>strange. Some keyboard shortcuts in os x are kinda weird and not intuitive to linux or windows users, but they are there. It's totally possible to use mac without trackpad. even cmd+tab switcher has a lot of hidden (but googlable) things: while still holding cmd after initial cmd+tab, you can close apps with q, switch to other apps with tab and (cmd+)shift+tab or left/right arrows, show app windows with down, etc.
There's also a cmd+` for switching between one app's windows. I still find that distinction weird from usability perspective, but it's not too hard to adapt to it.</p>
]]></description><pubDate>Mon, 30 Mar 2026 23:16:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47580890</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=47580890</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47580890</guid></item><item><title><![CDATA[New comment by codesnik in "Python 3.15's JIT is now back on track"]]></title><description><![CDATA[
<p>yes they do. check ruby for example.</p>
]]></description><pubDate>Wed, 18 Mar 2026 13:21:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47425486</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=47425486</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47425486</guid></item><item><title><![CDATA[New comment by codesnik in "Python 3.15's JIT is now back on track"]]></title><description><![CDATA[
<p>I wonder, why that kind of ambiguity or complexity even comes to your mind at all. Just because python is weird?<p>def foo(self, arg=expression):<p>could, and should work as if it was written like this (pseudocode)<p>def foo(self, arg?):
   if is_not_given(arg):
      arg=expression<p>if "expression" is a literal or a constructor, it'd be called right there and produce new object, if "expression" is a reference to an object in outer scope, it'd be still the same object.<p>it's a simple code transformation, very, very predictable behavior, and most languages with closures and default values for arguments do it this way. Except python.</p>
]]></description><pubDate>Wed, 18 Mar 2026 11:46:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47424477</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=47424477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47424477</guid></item><item><title><![CDATA[New comment by codesnik in "Python 3.15's JIT is now back on track"]]></title><description><![CDATA[
<p>you could just treat argument initialization as an executable expression which is called <i>every</i> time you call a function. If you have a=[], then it's a new [] every time. If a=MYLIST then it's a reference to the same MYLIST. Simple. And most sane languages do it this way, I really don't know why python has (and maintain) this quirk.</p>
]]></description><pubDate>Wed, 18 Mar 2026 06:40:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47422292</link><dc:creator>codesnik</dc:creator><comments>https://news.ycombinator.com/item?id=47422292</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47422292</guid></item></channel></rss>