<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: aleksi</title><link>https://news.ycombinator.com/user?id=aleksi</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Apr 2026 12:05:10 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=aleksi" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by aleksi in "Malus – Clean Room as a Service"]]></title><description><![CDATA[
<p>I was on this talk expecting to hear about MongoDB abusing open source (as you could guess from my profile, that’s a topic dear to my heart). Instead, I saw the most entertaining talk in my life.</p>
]]></description><pubDate>Thu, 12 Mar 2026 17:04:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47353948</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=47353948</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47353948</guid></item><item><title><![CDATA[New comment by aleksi in "Inspecting the Source of Go Modules"]]></title><description><![CDATA[
<p>Yet most, if not all, READMEs of official branches recommend using mutable vM tags. Not even branches — tags that they re-create.</p>
]]></description><pubDate>Sun, 15 Feb 2026 18:43:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47026210</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=47026210</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47026210</guid></item><item><title><![CDATA[New comment by aleksi in "Inspecting the Source of Go Modules"]]></title><description><![CDATA[
<p>See also <a href="https://github.com/golang/go/issues/66653" rel="nofollow">https://github.com/golang/go/issues/66653</a> (that I don’t think is linked from the article)</p>
]]></description><pubDate>Sun, 15 Feb 2026 12:23:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47023149</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=47023149</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47023149</guid></item><item><title><![CDATA[New comment by aleksi in "Finland detains ship and its crew after critical undersea cable damaged"]]></title><description><![CDATA[
<p>You omit the fact that he took those words back and said “Crimea is Ukraine” while being in prison, knowing well it will not make his life (and death) easier</p>
]]></description><pubDate>Sat, 03 Jan 2026 18:35:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46479965</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=46479965</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46479965</guid></item><item><title><![CDATA[New comment by aleksi in "Clicks Communicator"]]></title><description><![CDATA[
<p>> What languages will be supported?<p>> As a real keyboard with the QWERTY layout, Communicator supports languages that use the Latin alphabet: [...] Russian<p>Weird</p>
]]></description><pubDate>Fri, 02 Jan 2026 17:54:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46467418</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=46467418</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46467418</guid></item><item><title><![CDATA[New comment by aleksi in "Open-source Zig book"]]></title><description><![CDATA[
<p>Aaaand it's gone!</p>
]]></description><pubDate>Tue, 18 Nov 2025 06:00:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=45961859</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45961859</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45961859</guid></item><item><title><![CDATA[New comment by aleksi in "Baldur's Gate 3 Steam Deck – Native Version"]]></title><description><![CDATA[
<p>You can make it run much better by increasing the game's process priority with `renice`. I know that sounds like something that should not work, but it does.</p>
]]></description><pubDate>Wed, 24 Sep 2025 09:04:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=45357909</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45357909</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45357909</guid></item><item><title><![CDATA[New comment by aleksi in "Go has added Valgrind support"]]></title><description><![CDATA[
<p>You are right; I stand corrected</p>
]]></description><pubDate>Tue, 23 Sep 2025 14:45:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45347788</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45347788</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45347788</guid></item><item><title><![CDATA[New comment by aleksi in "Go has added Valgrind support"]]></title><description><![CDATA[
<p>> If you have a struct with a simple int field, and you store that somewhere as an *int, the entire struct and anything it points to will be kept alive.<p>While Go allows interior pointers, I don't think what you say is true. runtime.KeepAlive was added exactly to prevent GC from collecting the struct when only a field pointer is stored. Take a look at this blog post, for example: <a href="https://victoriametrics.com/blog/go-runtime-finalizer-keepalive/" rel="nofollow">https://victoriametrics.com/blog/go-runtime-finalizer-keepal...</a></p>
]]></description><pubDate>Tue, 23 Sep 2025 12:34:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=45346144</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45346144</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45346144</guid></item><item><title><![CDATA[New comment by aleksi in "Logging in Go with Slog: A Practitioner's Guide"]]></title><description><![CDATA[
<p>As a producer of the response, if I didn't care about being understood, I would use a made-up language. As a consumer, you may care about understanding my response, but you cannot do anything about it.</p>
]]></description><pubDate>Sat, 13 Sep 2025 09:31:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45230692</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45230692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45230692</guid></item><item><title><![CDATA[New comment by aleksi in "Logging in Go with Slog: A Practitioner's Guide"]]></title><description><![CDATA[
<p>I think you missed the “any handler” part. Currently, the types that my library package could use depend on the handler used by the caller. This limits types to an unspecified subset, making things quite impractical.</p>
]]></description><pubDate>Sat, 13 Sep 2025 09:27:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45230669</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45230669</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45230669</guid></item><item><title><![CDATA[New comment by aleksi in "Logging in Go with Slog: A Practitioner's Guide"]]></title><description><![CDATA[
<p>1) The idea is that your library should accept the slog logger and use it. The caller would create a logger with a handler that defines how log messages are handled. But there are problems with supported types; see my other comments.<p>2) It is improved in 1.25. See <a href="https://github.com/golang/go/issues/59928" rel="nofollow">https://github.com/golang/go/issues/59928</a> and <a href="https://pkg.go.dev/testing#T.Output" rel="nofollow">https://pkg.go.dev/testing#T.Output</a>. Now it is possible to update slogt to provide correct callsite – the stack depth should be the same.</p>
]]></description><pubDate>Fri, 12 Sep 2025 14:11:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45222357</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45222357</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45222357</guid></item><item><title><![CDATA[New comment by aleksi in "Logging in Go with Slog: A Practitioner's Guide"]]></title><description><![CDATA[
<p>My problem with that is that it makes it impossible to use slog logger safely without knowing what handler is being used. Which kind of defeats the purpose of defining the common structured logging interface.</p>
]]></description><pubDate>Fri, 12 Sep 2025 13:56:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45222224</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45222224</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45222224</guid></item><item><title><![CDATA[New comment by aleksi in "Logging in Go with Slog: A Practitioner's Guide"]]></title><description><![CDATA[
<p>Not sure I understand your sarcasm. I read the documentation, source code, handler writing guide, and issues in the Go repository multiple times over two years, and I use slog extensively. Go is my primary language since r60. I think I know how to read Go docs.<p>Now, please point me to the place in the documentation that says if I can or can't use a value implementing the error interface as an attribute value, and will the handler or something else would call the `Error() string` method.<p>My definition of "supported" is simple – I could pass a supported value to the logger and get a reasonable representation from any handler. In my example, the JSON handler does not provide it for the fmt.Stringer.</p>
]]></description><pubDate>Fri, 12 Sep 2025 13:53:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=45222190</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45222190</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45222190</guid></item><item><title><![CDATA[New comment by aleksi in "Logging in Go with Slog: A Practitioner's Guide"]]></title><description><![CDATA[
<p>So clearly not all values are supported.<p>And I know that I can create a wrapper for unsupported types. My problem is exactly that – I don't know what types are supported. Is error supported, for example? Should I create a wrapper for it? And, as a handler author, should I support it directly or not?</p>
]]></description><pubDate>Fri, 12 Sep 2025 11:49:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=45221123</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45221123</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45221123</guid></item><item><title><![CDATA[New comment by aleksi in "Logging in Go with Slog: A Practitioner's Guide"]]></title><description><![CDATA[
<p>Well, is fmt.Stringer supported? The result might surprise you:<p><pre><code>  req := expvar.NewInt("requests")
  req.Add(1)
  
  attr := slog.Any("requests", req)
  
  slog.New(slog.NewTextHandler(os.Stderr, nil)).Info("text", attr)
  slog.New(slog.NewJSONHandler(os.Stderr, nil)).Info("json", attr)
</code></pre>
This code produces<p><pre><code>  time=2025-09-12T13:15:42.125+02:00 level=INFO msg=text requests=1
  {"time":"2025-09-12T13:15:42.125555+02:00","level":"INFO","msg":"json","requests":{}}
</code></pre>
So the code that uses slog but does not know what handler will be used can't rely on it lazily calling the `String() string` method: half of the standard handlers do that, half don't.</p>
]]></description><pubDate>Fri, 12 Sep 2025 11:22:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=45220981</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45220981</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45220981</guid></item><item><title><![CDATA[New comment by aleksi in "Logging in Go with Slog: A Practitioner's Guide"]]></title><description><![CDATA[
<p>My biggest gripe with slog is that there is no clear guidance on supported types of attributes.<p>One could argue that supported types are the ones provided by Attr "construct" functions (like slog.String, slog.Duration, etc), but it is not enough. For example, there is no function for int32 – does it mean it is not supported? Then there is slog.Any and some support in some handlers for error and fmt.Stringer interfaces. The end result is a bit of a mess.</p>
]]></description><pubDate>Fri, 12 Sep 2025 09:34:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45220388</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45220388</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45220388</guid></item><item><title><![CDATA[Linux Foundation says yes to NoSQL via DocumentDB]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.theregister.com/2025/08/25/linux_foundation_says_yes_to/">https://www.theregister.com/2025/08/25/linux_foundation_says_yes_to/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45019978">https://news.ycombinator.com/item?id=45019978</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 25 Aug 2025 22:35:34 +0000</pubDate><link>https://www.theregister.com/2025/08/25/linux_foundation_says_yes_to/</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45019978</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45019978</guid></item><item><title><![CDATA[New comment by aleksi in "Microsoft Contributes DocumentDB, a MongoDB Alternative, to Linux Foundation"]]></title><description><![CDATA[
<p>And our (FerretDB) take on it: <a href="https://www.linkedin.com/feed/update/urn:li:share:7365677213309976577/" rel="nofollow">https://www.linkedin.com/feed/update/urn:li:share:7365677213...</a></p>
]]></description><pubDate>Mon, 25 Aug 2025 14:22:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=45014181</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45014181</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45014181</guid></item><item><title><![CDATA[New comment by aleksi in "DocumentDB Joins the Linux Foundation"]]></title><description><![CDATA[
<p>And our take on it: <a href="https://www.linkedin.com/feed/update/urn:li:share:7365677213309976577/" rel="nofollow">https://www.linkedin.com/feed/update/urn:li:share:7365677213...</a></p>
]]></description><pubDate>Mon, 25 Aug 2025 09:36:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=45012003</link><dc:creator>aleksi</dc:creator><comments>https://news.ycombinator.com/item?id=45012003</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45012003</guid></item></channel></rss>