<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: tomekowal</title><link>https://news.ycombinator.com/user?id=tomekowal</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 31 May 2026 17:07:11 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=tomekowal" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by tomekowal in "Domain expertise has always been the real moat"]]></title><description><![CDATA[
<p>The article says that domain expertise is more valuable now because agents can code well, but not understand the domain well.<p>I believe there are domains that are very well encoded. The model very often can know that a shift can't be longer than 11h and if you ask an agent for scheduling software it can surprise the developer by encoding that rule.<p>Both domain knowledge and coding skills became cheaper.<p>It might depend on the domain. Highly regulated domains like finance have entire books around how they should work.<p>However, I agree that verification skills became more important in both areas. A domain expert needs to catch 12h work shifts and experienced programmer needs to catch when the LLM accidentally put a route in a section that doesn't require authentication.<p>Both require some kind of harness and automatic verifications methods.</p>
]]></description><pubDate>Sun, 31 May 2026 09:02:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48344127</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=48344127</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48344127</guid></item><item><title><![CDATA[New comment by tomekowal in "A Verilog to Factorio Compiler and Simulator (Working RISC-V CPU)"]]></title><description><![CDATA[
<p>Can it run Doom?</p>
]]></description><pubDate>Sun, 29 Mar 2026 09:15:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47561565</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=47561565</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47561565</guid></item><item><title><![CDATA[New comment by tomekowal in "Warcraft III Peon Voice Notifications for Claude Code"]]></title><description><![CDATA[
<p>Attention! Lawsuit from Blizzard imminent.</p>
]]></description><pubDate>Thu, 12 Feb 2026 13:02:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46988313</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=46988313</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46988313</guid></item><item><title><![CDATA[New comment by tomekowal in "If you're going to vibe code, why not do it in C?"]]></title><description><![CDATA[
<p>There is a hidden hypothesis in this article that AI "does not struggle" with things like undefined behaviour, off by one errors and undefined behaviour.<p>Yes, it can consistently generate code that works and seems to be on top of it all due to a lot of training data. But wouldn't that use up more tokens and computational resources to produce than e.g. the same program in python?<p>If using more complex languages requires more resources from LLM, the same principles apply. One-off scripts are better in high level languages. Hot paths executed millions of times a second are better in lower level languages with high optimisation potential.<p>LLMs might slightly shift the correct choice towards lower languages. E.g. a small one-off script in C is much more viable with LLM's help. But the moment one needs to reuse it, it grows, and needs to be modified, one might regret not using higher level language.</p>
]]></description><pubDate>Wed, 10 Dec 2025 08:50:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46215535</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=46215535</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46215535</guid></item><item><title><![CDATA[New comment by tomekowal in "Two million checkboxes (written in Elixir)"]]></title><description><![CDATA[
<p>Awesome! Would it be possible to make checkbox number part of the url? This way, I could send someone a link straight to part of canvas, that I worked on :D</p>
]]></description><pubDate>Fri, 28 Jun 2024 12:25:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=40819939</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=40819939</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40819939</guid></item><item><title><![CDATA[New comment by tomekowal in "Things I like about Gleam's Syntax"]]></title><description><![CDATA[
<p>Short answer: scheduler.<p>Long answer: web applications have usually tons of independent request. Each request does its own thing, might never communicate with other requests, touches the DB and returns. You have two choices in such scenarios. You can either maximise throughput or minimise latency. BEAM's scheduler choses the latter which is usually what you want for web. More detailed discussion: <a href="https://tkowal.wordpress.com/2015/01/27/the-unintuitive-latency-over-throughput-problem/" rel="nofollow noreferrer">https://tkowal.wordpress.com/2015/01/27/the-unintuitive-late...</a><p>With:<p>- per process garbage collection<p>- one BEAM process per request<p>- short lived HTTP processes<p>you might never trigger garbage collection, the whole memory is deallocated at the end of requests.<p>It basically means, BEAM gives you high level languages like Gleam or Elixir that are fast to write and prototype as Rails or Django, but are almost as performant as handwritten memory managed applications written in low level language.<p>This is magic sauce in startups: the freedom to go fast, prototype and iterate with scalibility issues popping up waaay later than in Ruby/Python stacks (sometimes never - if your startup is successful without supporting whatsapp's user base :P)<p>And that's just if you are donig plain old HTTP backend. With new reactive architectures, keeping persistent processes server side and using LiveView instead of JS frameworks can again cut development time.<p>And then, there is support for AI with LiveBook and NX... It is weird how many hard issues BEAM just makes much easier.</p>
]]></description><pubDate>Fri, 27 Oct 2023 10:40:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=38036849</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=38036849</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38036849</guid></item><item><title><![CDATA[New comment by tomekowal in "Ambient: The Multiplayer Game Engine"]]></title><description><![CDATA[
<p>Nice idea and cool looking website!
I would re-record the video. It is jittery and it makes the top of the website off-putting.
Good luck!</p>
]]></description><pubDate>Thu, 23 Feb 2023 07:50:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=34907992</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=34907992</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34907992</guid></item><item><title><![CDATA[New comment by tomekowal in "The beautiful Silent ThunderBolt-3 PC"]]></title><description><![CDATA[
<p>I see standing desk and a monitor arm. My question is: does the arm wobble much when you adjust height? If not: what kind of arm are you using?</p>
]]></description><pubDate>Wed, 23 Dec 2020 13:56:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=25517645</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=25517645</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25517645</guid></item><item><title><![CDATA[New comment by tomekowal in "To find great remote employees, prioritize candidates with strong writing skills"]]></title><description><![CDATA[
<p>My two cents:<p>1. English is not my first language, and Grammarly helps a lot. Small things like correct punctuation and articles make the text much easier to read for native speakers.<p>2. I try to make communication "modular". There is tension between over-communicating (giving full context) and under-communicating (leaving out details). The first sentence of each paragraph summarizes the point. If you know that stuff already, you can skip. If you are re-reading, you can quickly get up to speed by skimming first sentences. If you are surprised by the first sentence, read the paragraph.<p>3. I often use numbers so that my recipient can answer or discuss just one point from my text. That usually starts with "Ad2". You can then "split" the discussion by numbering annotations "Ad2.1". If the conversation gets too long and convoluted, we need to add a summary of what we've written. Both Slack and email have flat conversation structure (Slack threads can go one level deep). That flat structure is usually a good thing for someone following the discussion.<p>It is very natural, and most people reply in the same way instinctively.</p>
]]></description><pubDate>Wed, 18 Nov 2020 10:02:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=25135022</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=25135022</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25135022</guid></item><item><title><![CDATA[New comment by tomekowal in "People Recognize Objects by Visualizing Their “Skeletons”"]]></title><description><![CDATA[
<p>I think that object recognition is hard because humans have much more data than computers. People see with two eyes which can focus on different distances, so our brain has 3D data to learn from. We later learn to recognise the same objects on pictures.<p>Computers usually start from flat pictures, and that trips the learning process.<p>I have zero data to back it up. Just my hunch :D</p>
]]></description><pubDate>Wed, 11 Sep 2019 13:58:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=20940275</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=20940275</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20940275</guid></item><item><title><![CDATA[New comment by tomekowal in "Questions to ask a company during a job interview"]]></title><description><![CDATA[
<p>I would change the part:
```
Do you use source control?
Do you test code?
Do you use bug tracking?
Do you use CI/CD?
```
to
```
How do you use source control?
How do you test code?
How do you perfrom bug tracking?
How do you solve CI/CD?
```<p>For really good companies asking if they test code seems insulting :P</p>
]]></description><pubDate>Mon, 09 Sep 2019 12:30:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=20917475</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=20917475</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20917475</guid></item><item><title><![CDATA[New comment by tomekowal in "Ask HN: How to not bring emotion from work back home?"]]></title><description><![CDATA[
<p>I feel like StarCraft and RTSes in general work really well in this scenario, because they occupy every brain cell available. Concentrating really hard on something non work related totally resets the brain.</p>
]]></description><pubDate>Thu, 08 Jun 2017 08:06:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=14512682</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=14512682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14512682</guid></item><item><title><![CDATA[New comment by tomekowal in "On Conference Speaking"]]></title><description><![CDATA[
<p>To me ideas just come unexpectedly and often because I see someone mistaken <a href="https://www.xkcd.com/386/" rel="nofollow">https://www.xkcd.com/386/</a><p>I had a talk where I showed how Elixir and Elm programming languages complement each other and someone in the audience asked what are we using Elixir for in our company. When I said that for payment systems he looked surprised, because he heard about "let it crash" in Elixir and he thought it is unusable for anything critical. That inspired me to talk about how we use Elixir for handling money.<p>I also answered questions on Stak Overflow for some time. Of course there are many typos or library quirks that are simply missed, but often you see a person that just entirely misunderstood the concept. This is also a target for talks. There might more people struggling with the same thing (especially if your question gets more views).<p>Pay attention to what surprises people when you are talking with them. If someone didn't know what you find obvious, there is a good chance more people don't know it. We have some kind of bias where we think that what WE know is common knowledge and automatically EVERYONE ELSE is smarter than us (because they know everything we know and some more that we don't). That is obviously not true :)<p>If you find a topic that surprised couple of people it means you have and idea worth sharing. It doesn't have to be novel! I often put quotes and references from blog posts that I read about given topic to show that this idea is not new at all! Old ideas are often not widely known or forgotten. They are perfect for conferences, because they might be crystalized over years, so it is easy to research them.</p>
]]></description><pubDate>Wed, 31 May 2017 09:38:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=14451311</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=14451311</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14451311</guid></item><item><title><![CDATA[New comment by tomekowal in "Elixir v1.3 released"]]></title><description><![CDATA[
<p>I am working full time with Elixir and Phoenix for more than one year now and worked with Erlang before that. It is great to see how well thought out all the abstractions are (both in the language and in the framework). I saw couple of companies cautiously introducing Phoenix in their stack and then going all in. One of such stories will be presented at Erlang User Conference: <a href="http://www.erlang-factory.com/euc2016/ben-marx" rel="nofollow">http://www.erlang-factory.com/euc2016/ben-marx</a><p>Comparing to Ruby: Phoenix promises to be as productive as Rails, but more performant and it keeps the promise if all the libraries you need are already ported to Elixir. Even if not, people consider writing them from scratch.<p>Comparing to Erlang: Elixir fixes a lot of problems like encoding or inconsistencies in standard library. It introduces many new concepts borrowed from Ruby so it might be a little overwhelming for Erlang developers (Erlang is really small and simple language - the hard part is OTP).<p>Learning Elixir is like learning to touch type. Initially it slows you down, because you have your habits. You need to learn new abstractions, because old solutions just don't work. After short period you are as productive as before. After a month you can deliver hight quality code quicker which is the ultimate goal of every programmer :) And it magically scales on more machines or at least utilizes all of the cores.</p>
]]></description><pubDate>Wed, 22 Jun 2016 07:11:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=11952073</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=11952073</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11952073</guid></item><item><title><![CDATA[Observing Erlang/Elixir production releses]]></title><description><![CDATA[
<p>Article URL: <a href="https://tkowal.wordpress.com/2016/04/23/observer-in-erlangelixir-release/">https://tkowal.wordpress.com/2016/04/23/observer-in-erlangelixir-release/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=11566398">https://news.ycombinator.com/item?id=11566398</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 25 Apr 2016 18:53:53 +0000</pubDate><link>https://tkowal.wordpress.com/2016/04/23/observer-in-erlangelixir-release/</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=11566398</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11566398</guid></item><item><title><![CDATA[New comment by tomekowal in "Ten lessons I wish I had learned before teaching differential equations (1997) [pdf]"]]></title><description><![CDATA[
<p>Please, write another textbook.<p>The internet changed drastically the process of writing books. I saw people making profit from books available online for free. I saw books written chapter by chapter with errors found quickly by first readers. I saw systems that allow commenting parts that are not clear enough with comments how to clarify them.<p>If you promise to deliver a textbook that teaches skills relevant to engineers, they will fund the time it takes to write the book. I would spare couple of dollars even if you said that it will take 5 years. I believe, there will be even companies that will give you funds upfront. If you reach out for help there will be people who will help you collect example problems from different fields to replace couple of "salt tank problems".<p>I am not a mathematician, so I don't know how mathematics textbooks are written and how much effort goes into them, so feel free to point out that this idea is stupid.</p>
]]></description><pubDate>Wed, 02 Mar 2016 08:38:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=11208776</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=11208776</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11208776</guid></item><item><title><![CDATA[New comment by tomekowal in "Why We Moved to React"]]></title><description><![CDATA[
<p>Have you checked Elm? I know there is a big difference between switching frameworks and entire language, but the benefits are really nice. Elm really enforces unidirectional data flows throughout entire application. For me it's like react on steroids.</p>
]]></description><pubDate>Sat, 27 Feb 2016 07:21:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=11186392</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=11186392</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11186392</guid></item><item><title><![CDATA[What problems does Elm solve?]]></title><description><![CDATA[
<p>Article URL: <a href="https://tkowal.wordpress.com/2016/01/18/what-problems-does-elm-solve/">https://tkowal.wordpress.com/2016/01/18/what-problems-does-elm-solve/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=10924506">https://news.ycombinator.com/item?id=10924506</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 18 Jan 2016 14:23:18 +0000</pubDate><link>https://tkowal.wordpress.com/2016/01/18/what-problems-does-elm-solve/</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=10924506</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10924506</guid></item><item><title><![CDATA[Failing fast and slow in Erlang and Elixir]]></title><description><![CDATA[
<p>Article URL: <a href="https://tkowal.wordpress.com/2015/10/20/failing-fast-and-slow-in-erlang-and-elixir/">https://tkowal.wordpress.com/2015/10/20/failing-fast-and-slow-in-erlang-and-elixir/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=10896874">https://news.ycombinator.com/item?id=10896874</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 13 Jan 2016 19:38:12 +0000</pubDate><link>https://tkowal.wordpress.com/2015/10/20/failing-fast-and-slow-in-erlang-and-elixir/</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=10896874</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10896874</guid></item><item><title><![CDATA[New comment by tomekowal in "Why Go Is Not Good (2014)"]]></title><description><![CDATA[
<p>Argument "that language was not designed for that!" is valid almost anytime anyone tries to criticize a programming language. Go was designed within Google for Google. Where your system has millions of lines of code and thousands of developers work on them constantly. So they thought about three things: compilation speed, memory management and concurrency. Go compiles fast, so you can iterate quickly. This requires giving up most of the compilation safety checks. They can be done by static analysis tools in parallel. Explicit memory management means, you can sometimes optimize this 0.05% memory on your program. This means a lot, when you run your code on million machines. Concurrency isn't hard in Go, but explicit memory management makes it harder than in Erlang for example (in Erlang, you have "share nothing" policy). Go is also very simple, so one developer won't be surprised by other developer using some obscure feature.<p>That being said. I wouldn't recommend using Go outside of Google, Facebook or Microsoft. It solves problems, that companies and developers usually don't have. If you need always running and quickly evolving software - there is Erlang and Elixir. If you need guarantees on correctness, use static typing from Haskell. If you can resign from some guarantees to have grater control on memory, there is Rust. If you are writing in browser, there is Elm. If you want to easily transition from OO to functional programming - try Scala. If you need to prototype app for your startup quickly - there is Ruby.<p>Every popular language has its purpose and its trade-offs. Rust isn't strictly better than Go, but with high probability, it is better than Go <i>for your problem</i>.</p>
]]></description><pubDate>Wed, 09 Dec 2015 16:18:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=10704533</link><dc:creator>tomekowal</dc:creator><comments>https://news.ycombinator.com/item?id=10704533</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=10704533</guid></item></channel></rss>