<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: utdemir</title><link>https://news.ycombinator.com/user?id=utdemir</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 12 Apr 2026 08:58:19 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=utdemir" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by utdemir in "Hegel, a universal property-based testing protocol and family of PBT libraries"]]></title><description><![CDATA[
<p>PSA: On the surface it looks great - but it's something that spawns a Python server (with uv - I think) and does communicate with it during tests. I don't think it's complexity we need to take on on our unit tests.<p>A saner approach would be to start with a FFI-friendly language and create bindings. I don't think just being able to use an already written framework in Python is worth the trade-off.</p>
]]></description><pubDate>Thu, 09 Apr 2026 21:40:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47710543</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=47710543</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47710543</guid></item><item><title><![CDATA[New comment by utdemir in "Ask HN: What Are You Working On? (December 2025)"]]></title><description><![CDATA[
<p>Trying to make my Rust library `composable-indexes` more ergonomic. It is for indexing a collection on multiple dimensions in a type-safe and composable manner.<p>In other words, something safer & more concise than maintaining multiple HashMap's, but a lot less involved & simpler than an in-memory SQLite.<p>It's better explained by the example here: <a href="https://github.com/utdemir/composable-indexes/blob/3baa36762049c894c4f73b511f8f12c067f5fc4f/crates/composable-indexes/examples/session.rs#L24-L53" rel="nofollow">https://github.com/utdemir/composable-indexes/blob/3baa36762...</a>.<p><a href="https://github.com/utdemir/composable-indexes" rel="nofollow">https://github.com/utdemir/composable-indexes</a></p>
]]></description><pubDate>Sun, 14 Dec 2025 21:14:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46266989</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=46266989</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46266989</guid></item><item><title><![CDATA[New comment by utdemir in "AWS data center latencies, visualized"]]></title><description><![CDATA[
<p>I did some research about this a while back: <a href="https://utdemir.com/posts/choosing-cloud-regions.html#:~:text=are%20geographically%20closer.-,Cloud%20Regions,-Interestingly%2C%20there%27s%20no" rel="nofollow">https://utdemir.com/posts/choosing-cloud-regions.html#:~:tex...</a><p>You are right, the best region that optimises median latency against all internet users over the world is `us-west-3`, which is Paris - I believe. Likely because it has much better latency towards Asia where the majority of internet users are.<p>I also investigated which two regions to choose for a multi-region setup, which ends up being London and Japan.</p>
]]></description><pubDate>Thu, 24 Oct 2024 10:26:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=41934098</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=41934098</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41934098</guid></item><item><title><![CDATA[New comment by utdemir in "Dondurma: The Turkish ice cream eaten with a knife and fork"]]></title><description><![CDATA[
<p>Turkish here. It's hard to believe, but there are different kinds of ice cream in Turkey.<p>The average ice-cream ("dondurma" in Turkish) you'd get in Turkey is the one you expect: sorbet or gelato, usually in a cone. It's what you'd get when you ask for an ice-cream at a random place.<p>The one described in this post is a specific kind of ice-cream we call "ice-cream from Maraş" ("Maraş dondurması" in Turkish). Which is great - but the post makes it sound like it is "the Turkish ice-cream" which is a bit misleading. You don't find it everywhere.</p>
]]></description><pubDate>Mon, 22 Jul 2024 03:49:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=41030773</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=41030773</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41030773</guid></item><item><title><![CDATA[New comment by utdemir in "Nix at Scale"]]></title><description><![CDATA[
<p>You're right! All layers except the topmost layer consist of non-overlapping store paths. It's not one-path-per-layer as there's a hard limit on number of layers, so we smush the packages "deeper" in the dependency tree together within a single layer. There was some work recently where you could specify which paths should correspond to which layers but I can't recall the exact function.<p>You do have the ability to add a "customisation" layer on top of your image in case you want to create some directories or run arbitrary modifications which does end up as an extra layer which _can_ override the previous layers hence it's always the topmost. But you usually don't need it.<p>Source: I did a large-ish refactor to the `buildLayeredImage` functions a couple of years ago. My contribution was adding a `streamLayeredImage` function where you can "stream" a derivation to a Docker image on-the-fly without copying any files/layers in the disk.</p>
]]></description><pubDate>Tue, 26 Mar 2024 04:04:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=39824183</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=39824183</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39824183</guid></item><item><title><![CDATA[New comment by utdemir in "Nix-Lisp: A Lisp implementation written in Nix"]]></title><description><![CDATA[
<p>Hey, author of the library here, thanks for your comment! Disclaimer: It's been more than a year since I've written this, so I might've forgotten things.<p>This actually teaches me that one thing I should make it clear is this was essentially a weekend experiment from someone who has never used, let alone written a Lisp before.<p>There's no way it's a production grade software, there are places where the evaluator just borks for valid expressions.<p>I learned a lot when writing it, so I can probably do a large-ish refactor that would simplify many things and fix the inconsistencies.<p>> this uses lazy evaluation, because most Lisps use strict evaluation.<p>The evaluation semantics are pretty weird. It's lazy-ish mostly, but when evaluating there are a lot of places where I unnecessarily force evaluation of things. So I should make the semantics clearer and document them.<p>> The behaviour of the top-level forms changes when they are wrapped in `begin`<p>This is a bug, you are right .<p>> Since this dialect is pure (no side effects)<p>It's mostly pure. There are a couple of constructs like `assert` and `log` that perform side effects. And also as you mentioned the expressions in a begin can be macros that end up modifying the environment.<p>>  The way `if` handles values other than true/false is backwards compared to most Lisps<p>You are likely correct and this is a bug!<p>---<p>Thanks again of your comments, I'll try to find some time to either rewrite the project, or at least document it better.</p>
]]></description><pubDate>Sun, 20 Nov 2022 22:25:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=33686121</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=33686121</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33686121</guid></item><item><title><![CDATA[New comment by utdemir in "Armenia’s miserable dilemma"]]></title><description><![CDATA[
<p>I'm sorry in advance for perpetuating the flamewar.<p>Disclaimer: Turkish here. I do not deny the Armenian Genocide, or think it was right for Azerbaijan to reclaim Karabakh with this way.<p>You are falling to the same fallacy as the Turkish government:<p>* Claiming Khojali massacre is a lie, disregarding the documented facts. Do not bring yourself down to the same level as genocide deniers; they will beat you with experience.<p>* The "they did that too" argument; as if any horrible act legitimizes the other one.<p>So, it makes a much better discussion if we all agree on documented facts and try to move forward from there (if there is any solution to move forward to). The "Armenian Genocide didn't happen" versus "Khojali Massacre didn't happen" discussion seems childish at this point, and it is not going to help either side in the long run.</p>
]]></description><pubDate>Fri, 04 Mar 2022 01:43:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=30549569</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=30549569</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30549569</guid></item><item><title><![CDATA[New comment by utdemir in "The Curse of NixOS"]]></title><description><![CDATA[
<p>As someone who is using NixOS for 8+ years, I do agree with both your problems.<p>(1) I do find that it's very rare having to implement a low level transitive dependency from scratch (most low-level system dependencies are already there, and for dependencies of a specific programming-language ecosystem you'd usually auto-generate them from things like `yarn2nix` or `poetry2nix`). However, I agree that once you need to do that for non-trivial library it quickly becomes painful and require intimate knowledge of both the build system and Nix environment.<p>(2) This is my main issue. My workflow is also having a local `nixpkgs` clone, and go find the function and the parameters I can use every time I don't remember how to use it. I also think that it is sustainable. There are many exciting improvements going on with the new CLI, so hopefully we will get nicer error messages and better tooling support in near future.<p>> but the execution has been a miserable experience for me to the extent that I can't make sense of people who report such positive experiences.<p>There are pain points, but the advantages for me were indispensable. Being able to pin dependencies accurately, reproduce an exact development environment deterministically, and use the single language to define applications, configurations, and even entire system images is a great benefit that I would need to use 10+ tools with individual quirks otherwise.</p>
]]></description><pubDate>Mon, 24 Jan 2022 19:31:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=30062705</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=30062705</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30062705</guid></item><item><title><![CDATA[New comment by utdemir in "'New Zealand wants you': the problem with tech at the edge of the world"]]></title><description><![CDATA[
<p>I can consider living somewhere else; especially Wellington is a good option as you said. However currently I am happy with my job and living arrangements here, but definitely I will consider them when I want a change.<p>But honestly, I always thought that those cities had even less variety than Auckland.</p>
]]></description><pubDate>Wed, 27 Jun 2018 04:18:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=17405719</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=17405719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17405719</guid></item><item><title><![CDATA[New comment by utdemir in "'New Zealand wants you': the problem with tech at the edge of the world"]]></title><description><![CDATA[
<p>Yes, I live very close to Auckland city centre.</p>
]]></description><pubDate>Tue, 26 Jun 2018 21:24:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=17404117</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=17404117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17404117</guid></item><item><title><![CDATA[New comment by utdemir in "'New Zealand wants you': the problem with tech at the edge of the world"]]></title><description><![CDATA[
<p>One and a half years ago I migrated to New Zealand from Turkey.<p>* It was almost my first time abroad, my English wasn't great, and I was new to the culture. However I was amazed that how welcoming and patient people were. I hear the opposite from my friends living in Europe and US.<p>* I found a job while in Turkey, and the company sponsored me for the visa; and since they were an accredited employer the visa process was painless.<p>* Job variety is definitely small. I think it is not that hard to find _a_ job since there's usually demand for IT; however they are all pretty similar to each other(big finance/telco companies). If you have a specific interest (FP/Haskell and smaller companies in my case) it would be hard to find a job you like.<p>* Rent is expensive. Almost every one of my single friends flatshare, but I was able to find a one bedroom flat to live with my partner. I pay about 40% of my salary to the rent.<p>* However I do not think living expenses are too much. Our weekly shopping are usually cheaper compared to Turkey relative to the income. And most of the stuff we like to do for fun is usually cheap or free.<p>* People are nice. The city feels safe. Nature is great, lots of great hikes just an hour drive from the city center.<p>Overall; I can not compare with Europe or US since I've never been there, but I'm glad I am here now. And moving here was not that hard, so I think it has everything it needs to be a Tech hub, other than momentum.</p>
]]></description><pubDate>Tue, 26 Jun 2018 11:28:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=17399618</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=17399618</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17399618</guid></item><item><title><![CDATA[New comment by utdemir in "20+ machine learning tools in python"]]></title><description><![CDATA[
<p>I'm just today converted a 300ish lines of Python computer vision-machine learning script to MATLAB. Mind that I'm a long time Python programmer(4+ years), and just used MATLAB once or twice.<p>But surprisingly, the resulting MATLAB code was fast, clean(cleaner than Python version) and also compatible with vast amaount of machine learning algorithms written in MATLAB(thats the very reason I had to switch to MATLAB).<p>I always thought that Python can do everything cleaner and more elegant, but I'm sad that in MATLAB, its easier and cleaner.<p>At least, now I don't need to import numpy, cv2, scipy, scikit-image, scikit-learn, pylab, matplotlib and ipython. Also, installing them was pretty hard too(specially scipy).</p>
]]></description><pubDate>Wed, 09 Jul 2014 12:21:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=8009235</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=8009235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8009235</guid></item><item><title><![CDATA[New comment by utdemir in "Show HN: Create pretty resumes in HTML, Latex, Markdown from a single JSON"]]></title><description><![CDATA[
<p>I also made an attempt to unify my resume in different formats.<p>But I ended up in much simpler, but not so advanced solution. I'm just writing in Markdown and use a Makefile to generate other outputs using Pandoc.<p>Here is the input: <a href="https://raw.githubusercontent.com/utdemir/resume/master/resume.md" rel="nofollow">https://raw.githubusercontent.com/utdemir/resume/master/resu...</a><p>HTML Output: <a href="https://rawgit.com/utdemir/resume/master/build/resume.html" rel="nofollow">https://rawgit.com/utdemir/resume/master/build/resume.html</a><p>PDF Output: <a href="https://github.com/utdemir/resume/blob/master/build/resume.pdf" rel="nofollow">https://github.com/utdemir/resume/blob/master/build/resume.p...</a><p>And here is the whole project(I mean, the Makefile, and my Markdown resume): <a href="https://github.com/utdemir/resume" rel="nofollow">https://github.com/utdemir/resume</a></p>
]]></description><pubDate>Sun, 08 Jun 2014 09:11:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=7864296</link><dc:creator>utdemir</dc:creator><comments>https://news.ycombinator.com/item?id=7864296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=7864296</guid></item></channel></rss>