<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: ckok</title><link>https://news.ycombinator.com/user?id=ckok</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 26 May 2026 18:18:22 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ckok" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by ckok in "Marmot – A distributed SQLite server with MySQL wire compatible interface"]]></title><description><![CDATA[
<p>The MySQL protocol is a lot saner and easier to implement than the pgsql one. I can imagine thats a factor? Once connected the sql dialect matters really little</p>
]]></description><pubDate>Sat, 03 Jan 2026 13:06:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46476129</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=46476129</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46476129</guid></item><item><title><![CDATA[New comment by ckok in "Slack has raised our charges by $195k per year"]]></title><description><![CDATA[
<p>Curiously if you ask if they would consider properly supporting notifications from the mobile web version then the answer is always no. Pwa would be perfectly fine but its crippled on Zulip</p>
]]></description><pubDate>Thu, 18 Sep 2025 21:46:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45295409</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=45295409</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45295409</guid></item><item><title><![CDATA[New comment by ckok in "From string to AST: parsing (2019)"]]></title><description><![CDATA[
<p>I believe the proper term for what i am describing is a recursive descent parser. With which it is also quite doable to generate proper error handling and even recovery. Some form of this is used in almost every production language I think.<p>It has been years since I've written a proper parser but before that every time I had to write one I tried the latest and greatest first. ANTLR, coco/r, combinators. All the generated ones seemed to have a fatal flaw that hand writing didnt have. For example good error handling seemed almost impossible, very slow due to Infinite look ahead or they were almost impossible to debug to find an error in the input schema.<p>In the end hand crafting seems to be faster and simpler. Ymmv.<p>My point about the article was mostly that all the formal theory is nice but all it does is scare away people, while parsing is probably the simplest thing about writing a compiler.</p>
]]></description><pubDate>Sat, 23 Nov 2024 06:30:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=42219503</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=42219503</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42219503</guid></item><item><title><![CDATA[New comment by ckok in "From string to AST: parsing (2019)"]]></title><description><![CDATA[
<p>I think this makes it sound a lot more difficult than it has to be, with the formal theory.<p>When it's really one of the most simple things if you divide it in parts and look at it from a tokenizer (string to list of tokens) and parser on top. Where the tokenizer can usually be very simple: a loop, large switch on the current character, where a choice is made on "what can this be", and making it into a formal token or error. Then a simple recursive parser that can almost be a 1 to 1 copy of the (E)BNF.</p>
]]></description><pubDate>Fri, 22 Nov 2024 13:56:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=42213857</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=42213857</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42213857</guid></item><item><title><![CDATA[New comment by ckok in "Building LLMs from the Ground Up: A 3-Hour Coding Workshop"]]></title><description><![CDATA[
<p>This has been said about pretty much every subject. Writing your own Browsers, compilers, cryptography, etc. But at least for me even if nothing comes of it just knowing how it really works, What steps are involved are part of using things properly. Some people are perfectly happy using a black box, but without kowning how its made, how do we know the limits? How will the next generation of llms happen if nobody can get excited about the internal workings?</p>
]]></description><pubDate>Sun, 01 Sep 2024 05:02:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=41414424</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=41414424</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41414424</guid></item><item><title><![CDATA[New comment by ckok in "Show HN: Struct – A Feed-Centric Chat Platform"]]></title><description><![CDATA[
<p>Sso should be the default really. And as a starting point every language has openid connect implemented. Yes it needs work but surely better than the average password reuse?<p>For large and small companies surely the best way to maintain their users</p>
]]></description><pubDate>Sun, 03 Mar 2024 17:12:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=39582196</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=39582196</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39582196</guid></item><item><title><![CDATA[New comment by ckok in "Making Rust binaries smaller by default"]]></title><description><![CDATA[
<p>Macho executables don't contain debug info. Just references to .o files.</p>
]]></description><pubDate>Wed, 24 Jan 2024 13:16:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=39116906</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=39116906</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39116906</guid></item><item><title><![CDATA[New comment by ckok in "SQLite 3.45 released with JSONB support"]]></title><description><![CDATA[
<p>The only thing missing with Json support now seems to be something like a gin index on jsonb fields to make querying efficiently on any member of the field itself.</p>
]]></description><pubDate>Tue, 16 Jan 2024 06:21:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=39010063</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=39010063</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39010063</guid></item><item><title><![CDATA[New comment by ckok in "JSONB has landed"]]></title><description><![CDATA[
<p>Does anyone know if SQLite has a public roadmap? This combined with a gin or gin like index would be a killer combination</p>
]]></description><pubDate>Wed, 06 Dec 2023 17:40:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=38547083</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=38547083</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38547083</guid></item><item><title><![CDATA[New comment by ckok in "Pg_bm25: Elastic-Quality Full Text Search Inside Postgres"]]></title><description><![CDATA[
<p>Does this also cover some kind of facetted search? (Counting the different colored and sized t-shirt) in an efficient way? As that is also a large part that elastic can do but PostgreSQL isn't very good at.</p>
]]></description><pubDate>Mon, 09 Oct 2023 20:30:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=37825107</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=37825107</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37825107</guid></item><item><title><![CDATA[New comment by ckok in "Perseus – NextJS alternative in Rust"]]></title><description><![CDATA[
<p>I couldn't find it in the docs but does this also support working in a htmx like mode? Where the server renders pages and it does partial updates of parts? Or what some frameworks now call server components?<p>Or is everything more like a initial render on the server and pure wasm from that time on?</p>
]]></description><pubDate>Sun, 09 Apr 2023 18:30:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=35505202</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=35505202</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35505202</guid></item><item><title><![CDATA[New comment by ckok in "Meilisearch 1.0 – Open-source search engine built in Rust"]]></title><description><![CDATA[
<p>Does it have any kind of master/slave or replication abilities? Couldn't find anything in the docs.</p>
]]></description><pubDate>Wed, 08 Feb 2023 17:39:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=34711642</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=34711642</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34711642</guid></item><item><title><![CDATA[New comment by ckok in "Parser generators vs. handwritten parsers: surveying major languages in 2021"]]></title><description><![CDATA[
<p>Parser generators generally suffer from at least speed, recovery, error handling and lack of debuggability.
They also require you to learn a new language, the parser generators language.<p>Last but not least, what you actually end up wanting to build is an ast, as at some point you want to do something with the input, for most parsers you then have to implement even more code to build up the ast.<p>It is much easier to hand write it. In the end its faster to write and usually faster to run.<p>Every few years I evaluate the new options for the languages I use (c#, pascal), every time so far I am disappointed with the tooling. Maybe one year.</p>
]]></description><pubDate>Sat, 21 Aug 2021 21:04:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=28260571</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=28260571</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28260571</guid></item><item><title><![CDATA[New comment by ckok in "The Plan for the Rust 2021 Edition"]]></title><description><![CDATA[
<p>But that's the right way to do it really... I remember an obscure thing in c# when var was introduced that if you have a type called 'var' in scope, type inference doesn't work and it uses that type instead. This is the way new features should be introduced.</p>
]]></description><pubDate>Tue, 11 May 2021 17:32:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=27120912</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=27120912</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27120912</guid></item><item><title><![CDATA[New comment by ckok in "Swift Evolution: Actors"]]></title><description><![CDATA[
<p>I can't help but get the feeling that plan with Swift is to be the only language you can effectively use for Apple platforms, but also is probably going to be the language that will only be used on Apple platforms because of Apple's whims like the function builders.</p>
]]></description><pubDate>Tue, 16 Mar 2021 20:14:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=26482217</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=26482217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26482217</guid></item><item><title><![CDATA[Writing a Native Code Debugger]]></title><description><![CDATA[
<p>Article URL: <a href="https://blogs.remobjects.com/2021/02/24/writing-a-debugger/">https://blogs.remobjects.com/2021/02/24/writing-a-debugger/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=26254196">https://news.ycombinator.com/item?id=26254196</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 24 Feb 2021 19:11:20 +0000</pubDate><link>https://blogs.remobjects.com/2021/02/24/writing-a-debugger/</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=26254196</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26254196</guid></item><item><title><![CDATA[New comment by ckok in "Swift for TensorFlow Shuts Down"]]></title><description><![CDATA[
<p>The annoying thing is that all these new libraries can only be used from swift. As interop with swift is a pain from any other language.</p>
]]></description><pubDate>Sun, 14 Feb 2021 13:11:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=26132124</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=26132124</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26132124</guid></item><item><title><![CDATA[New comment by ckok in "Who Is Debugging the Debuggers? Exposing Debug Bugs in Optimized Binaries"]]></title><description><![CDATA[
<p>The curious thing is that is isn't a bug in the debugger itself usually. It's the optimizer process that doesn't leave proper instructions of where "x" is at this point.</p>
]]></description><pubDate>Thu, 03 Dec 2020 07:24:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=25286461</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=25286461</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25286461</guid></item><item><title><![CDATA[New comment by ckok in "Delphi 2 can compile large .pas files at 1.2M lines per second"]]></title><description><![CDATA[
<p>No duplication. There's a single file where every type reference or method reference exists once. Note that it's not a library file. The compiled dll or exe has no relationship to the original way it was stored in .cs file. Instead it's a set of tables which hold all types, all members.</p>
]]></description><pubDate>Sat, 10 Oct 2020 05:07:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=24736807</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=24736807</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24736807</guid></item><item><title><![CDATA[New comment by ckok in "Swift on Windows"]]></title><description><![CDATA[
<p>Sort of. I can't comment on Kotlin, but Swift is a different beast though. Swift's generics are very different from say c#, java or even c++ templates, especially when you mix them with protocol associated types, which are also sort of, but not exactly generics.<p>In Elements we spent a lot of time on getting it right, and I think we have most edge cases covered for user code. The way generics are used in the Swift runtime library seems impossible to map perfectly on top of the concept of generics as C# has them though.</p>
]]></description><pubDate>Wed, 23 Sep 2020 06:15:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=24563560</link><dc:creator>ckok</dc:creator><comments>https://news.ycombinator.com/item?id=24563560</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24563560</guid></item></channel></rss>