<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: V1ndaar</title><link>https://news.ycombinator.com/user?id=V1ndaar</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 13 Jun 2026 02:33:20 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=V1ndaar" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by V1ndaar in "Volkswagen blocks Home Assistant by requiring client assertion"]]></title><description><![CDATA[
<p>Huh, I completely missed that. I've been using python-garminconnect [0] for a few months without issues. I agree though that it's annoying, though not reason enough for me to switch away from Garmin yet.<p><pre><code>  [0]: https://github.com/cyberjunky/python-garminconnect</code></pre></p>
]]></description><pubDate>Fri, 29 May 2026 08:37:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48320643</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=48320643</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48320643</guid></item><item><title><![CDATA[New comment by V1ndaar in "Nim 2.2.6"]]></title><description><![CDATA[
<p>It's cheap to hide behind a pseudonym here and complain as you do. Given the time scales you mention and how you are complaining, I have a theory under what nick you were present in the Nim community though.<p>If I'm correct, I find your complaints especially about our moderators especially unfair. Arguably the only drama with moderators was in the context of Dom and you know that.<p>I really don't see where any of the current moderators can be described as "toxic", but you'll just say "you're one of them" anyway, so why do I even bother...</p>
]]></description><pubDate>Wed, 05 Nov 2025 21:57:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=45828624</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=45828624</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45828624</guid></item><item><title><![CDATA[New comment by V1ndaar in "Francois Chollet is leaving Google"]]></title><description><![CDATA[
<p>I didn't realize Keras was actually released before Tensorflow, huh. I used Theano quite a bit in 2014 and early 2015, but then went a couple years without any ML work. Compared to the modern libraries Theano is clunky, but it taught one a bit more about the models, heh.</p>
]]></description><pubDate>Thu, 14 Nov 2024 05:47:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=42133449</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=42133449</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42133449</guid></item><item><title><![CDATA[New comment by V1ndaar in "Ask HN: Who wants to be hired? (August 2024)"]]></title><description><![CDATA[
<p><p><pre><code>    Location: Spain (80%) | Germany (20%)
    Remote: Preferred, but open to hybrid positions in Spain
    Willing to relocate: Not currently, but open to work-related travel
    Technologies/Skills:
      - Languages: Nim, C, C++, Python, Go, Rust, Emacs Lisp
      - Scientific computing, simulations, data visualization, research, ML
      - Open-source library development (plotting, dataframe, static physical unit checking, ...)
    Github: https://github.com/Vindaar
    Résumé/CV: Available upon request
    Email: work@vindaar.de
</code></pre>
PhD in Physics | Scientific Computing | Open Source<p>About me:<p>Recently defended my PhD in physics with extensive experience in scientific computing:<p><pre><code>  - Data processing and visualization
  - Training / validating ML models for classification
  - (Monte Carlo) simulations
  - Developed many open-source libraries for the Nim programming language
</code></pre>
Seeking opportunities in research-focused roles or software development positions. The ideal company has ambitious goals beyond profit, particularly interested in:<p><pre><code>  - ML / AI research (advancing state of the art)
  - Energy production (nuclear & renewables)
  - Aging-related research
  - ZK cryptography
  - Motorsport
</code></pre>
Quick learner with strong programming foundation, eager to tackle new challenges. While I may not check every "years of experience" box, I combine scientific rigor with practical coding skills.<p>Recent experience with freelance work; open to similar opportunities.</p>
]]></description><pubDate>Fri, 02 Aug 2024 10:12:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=41137523</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=41137523</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41137523</guid></item><item><title><![CDATA[New comment by V1ndaar in "Computer scientists invent an efficient new way to count"]]></title><description><![CDATA[
<p>I would blame the majority of your criticism on the fact that HN is not the best place to read code. Also, syntax highlighting & basic familiarity with Nim helps.<p>His code is doing a few more things than necessary. The actual algorithm is inside the `uniqCEcvm` template. The `it` it receives is anything you can iterate over (a collection or an iterator). Multiple things in one line really only appear where they directly relate to the part at the beginning of the line.<p>The `when isMainModule` is Nim's way of Python's `if __name__ == "__main__"`. The entire part below that is really just a mini CL interface to bench different (random) examples.
Final thing to note maybe, the last expression of a block (e.g. of the template here) will be returned.<p>And well, the style of comments is just personal preference of course. Whether you prefer to stay strictly below 80 cols or not, shrug.<p>I grant you that the usage of 2 sets + pointer access to them + swapping makes it harder to follow than necessary. But I assume the point of it was not on "how to write the simplest looking implementation of the algorithm as it appears in the paper". But rather to showcase a full implementation of a reasonably optimized version.<p>Here's a version (only the algorithm) following the paper directly:<p><pre><code>    proc estimate[T](A: seq[T], ε, δ: float): float =
      let m = A.len
      var p = 1.0
      var thr = ceil(12.0 / ε^2 * log2(8*m.float / δ))
      var χ = initHashSet[T](thr.round.int)
      for i in 0 ..< m:
        χ.excl A[i]
        if rand(1.0) < p:
          χ.incl A[i]
        if χ.card.float >= thr:
          for el in toSeq(χ): # clean out ~half probabilistically
            if rand(1.0) < 0.5:
              χ.excl el
          p /= 2.0
          if χ.card.float >= thr:
            return -1.0
      result = χ.card.float / p</code></pre></p>
]]></description><pubDate>Fri, 17 May 2024 14:57:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=40390646</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=40390646</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40390646</guid></item><item><title><![CDATA[New comment by V1ndaar in "Chinchilla Scaling: A replication attempt"]]></title><description><![CDATA[
<p>That is certainly true (and why added a general "embed plot data as bitmap into SVG/PDF" option to <a href="https://github.com/Vindaar/ggplotnim">https://github.com/Vindaar/ggplotnim</a> that works not only for raster heatmaps). But realistically such plots are often not ideal anyway (too many data points in a plot is often a sign that a different type of plot would be better; typically one that aggregates in some way) and it's just another argument to make the data for plots available as well.</p>
]]></description><pubDate>Fri, 19 Apr 2024 08:02:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=40084392</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=40084392</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40084392</guid></item><item><title><![CDATA[New comment by V1ndaar in "Chinchilla Scaling: A replication attempt"]]></title><description><![CDATA[
<p>And not only that, in many cases they will tell you (if they reply) "oh, we can't find the source of that plot anymore". Happened to me quite a few times (although in physics).<p>I'm pretty sure I'm not the only one who's written themselves a mini tool to even extract data from a bitmap plot based on the axes. Involves some manual steps (cropping mainly), but is very convenient for the cases where people not even use vector graphics, but sometimes even just screenshots of plots... Do I like it? Hell no! It's why I've put quite some effort in doing it better for my PhD thesis.</p>
]]></description><pubDate>Thu, 18 Apr 2024 16:22:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=40077833</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=40077833</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40077833</guid></item><item><title><![CDATA[New comment by V1ndaar in "Orgzly Revived: a community-maintained version of Orgzly"]]></title><description><![CDATA[
<p>Thanks your your input. You made me realize I can use my Hetzner storage box for precisely the same. Neat!</p>
]]></description><pubDate>Fri, 16 Feb 2024 18:11:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=39400773</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=39400773</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39400773</guid></item><item><title><![CDATA[New comment by V1ndaar in "Mastering Nim, 2nd edition"]]></title><description><![CDATA[
<p>> The Datamancer data frame library is incredibly robust.<p>Thank you for the kind words! :) Especially given that it's a one-man side-project always makes me a bit worried people will stumble over all sorts of issues.</p>
]]></description><pubDate>Thu, 07 Dec 2023 09:42:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=38554601</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=38554601</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38554601</guid></item><item><title><![CDATA[New comment by V1ndaar in "Switch off bad TV settings"]]></title><description><![CDATA[
<p>My hope is that thanks to stuff like DLSS frame generation in video games (or maybe AR/VR) that the opinion of a majority of people will change over time. So that eventually maybe... we might actually see movies being filmed in higher framerates. People's conditioning really stands in their way, imo.<p>The only bad thing about motion interpolation on most TVs in my book is the fact that the /implementation is often pretty bad/. If perfect frame interpolation was a thing, I'd watch everything upsampled to 165Hz of my monitor. Well, I do it anyway using the Smooth Video Project. But that also suffers from artifacts, so is far from perfect. Much better than judder though...</p>
]]></description><pubDate>Mon, 04 Dec 2023 23:05:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=38524478</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=38524478</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38524478</guid></item><item><title><![CDATA[New comment by V1ndaar in "Show HN: Numbat – A programming language with physical dimensions as types"]]></title><description><![CDATA[
<p>I nowhere said impossible! All I say it is tricky and that likely the code you write will have to be adapted in certain cases (compared to current existing implementations of numerical algorithms).</p>
]]></description><pubDate>Fri, 17 Nov 2023 18:49:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=38308114</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=38308114</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38308114</guid></item><item><title><![CDATA[New comment by V1ndaar in "Show HN: Numbat – A programming language with physical dimensions as types"]]></title><description><![CDATA[
<p>I mean that article of yours highlights the difficulties one encounters fairly well, I would say. I don't disagree that this is (generally) a tricky problem!<p>Nim allows you to do a lot, e.g. derivatives of a unitful expression with measurement errors [0]. But other aspects run into the reality of dealing with a static type system. For example in Measuremancer [1], the library handling measurements with uncertainties, each `Measurement` is a single generic `Measurement[T]`. Each measurement stores the derivatives for error propagation. Obviously the derivatives have different units. Now, we could make `Measurement` a two-fold generic, `Measurement[T, U]`, but that just makes things more unwieldy in practice, for not much gain.<p>Without rewriting a majority of existing code you will always run into trouble where your perfect unit type system will either break or you'll need to work around it anyway (e.g. calling into some C library for part of the code).<p>[0]: <a href="https://github.com/SciNim/astGrad#extra-fun">https://github.com/SciNim/astGrad#extra-fun</a><p>[1]: <a href="https://github.com/SciNim/Measuremancer/">https://github.com/SciNim/Measuremancer/</a></p>
]]></description><pubDate>Fri, 17 Nov 2023 08:11:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=38300854</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=38300854</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38300854</guid></item><item><title><![CDATA[New comment by V1ndaar in "Show HN: Numbat – A programming language with physical dimensions as types"]]></title><description><![CDATA[
<p>Yeah, unicode characters in Nim code are supported. However, if by `x²` you'd want to square an identifier `x`, that won't work. The Nim lexer parses `x²` as a single identifier.<p>We do have infix unicode operators though. So `x ÷ y` (spacing required though!) could be implemented easily. I use this for `±` in Measuremancer [0] (which btw also supports Unchained units, for error propagation on unitful measurements).<p>[0]: <a href="https://github.com/SciNim/Measuremancer">https://github.com/SciNim/Measuremancer</a></p>
]]></description><pubDate>Fri, 17 Nov 2023 07:52:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=38300721</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=38300721</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38300721</guid></item><item><title><![CDATA[New comment by V1ndaar in "Show HN: Numbat – A programming language with physical dimensions as types"]]></title><description><![CDATA[
<p>Gaussian elimination in what context even? If your LA library supports generic types, it might work. But generally generic math operations are tricky to get right, because math often does things that from a pure physical perspective don't make a whole lot of sense / you run into trouble with too many competing types due to temporary multiplication / divisions etc (which is a big issue in any statically typed language, because your container (vector, matrix, tensor whatever) type is typically a single unit type!</p>
]]></description><pubDate>Thu, 16 Nov 2023 20:51:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=38295299</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=38295299</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38295299</guid></item><item><title><![CDATA[New comment by V1ndaar in "Show HN: Numbat – A programming language with physical dimensions as types"]]></title><description><![CDATA[
<p>Whoops, guilty as charged. I did indeed glance over that (both the text and the equation not actually being 1/r²).<p>In this case to get compiler help it's pretty much identical to Numbat. Annotating the "force" variables with a `Force` type. There's a few technicalities involved though. Normally the user is supposed to use explicit type annotations for variables. Quantities like `Force`, `Energy` etc. are mainly supported for function arguments (they are "concepts" in Nim lingo, a specific version of generics).<p>Technically you can abuse these concepts for type checking, by annotating with `Force`, e.g. `let force_sun: Force = ...`. That will correctly raise a CT error about mismatching units in this case. <i>However</i>, the code will /also/ not compile if you type `Energy` due to the underspecified type.<p>So what you're supposed to do is:<p><pre><code>    import unchained
    
    let earth_mass = 5.972168e24.kg
    let solar_mass = 1.9885e30.kg
    let lunar_mass = 7.342e22.kg
    
    let distance_sun = 1.AU  # astronomical unit
    let distance_moon = 384_400.km
    
    let force_sun: N = G_Newton * earth_mass * solar_mass / distance_sun
    let force_moon: N = G_Newton * earth_mass * lunar_mass / distance_moon
    
    echo force_sun / force_moon
</code></pre>
which will correctly raise a<p><pre><code>    Error: type mismatch: got 'Joule' for '...' but expected 'Newton = Alias'

</code></pre>
(or any other unit of force; note that if it was a non SI unit, e.g. `eV` for an energy, you'd need to explicitly convert the RHS expression into `eV` using `.to(eV)`. That will perform the CT check of whether the conversion is valid, and if so, hands you the value in `eV`. Implicit conversions to explicitly given types is not supported)<p>So I think we more or less do the same things. :)<p>And just to clarify, I'm always happy to see more libraries / programs etc. that do units as types. But for the same reason you hadn't even heard about Unchained, is the reason I can't stop myself from mentioning it in such a context. :D (niche programming language + niche topic clearly doesn't help).</p>
]]></description><pubDate>Thu, 16 Nov 2023 20:47:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=38295235</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=38295235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38295235</guid></item><item><title><![CDATA[New comment by V1ndaar in "Show HN: Numbat – A programming language with physical dimensions as types"]]></title><description><![CDATA[
<p>Or you could just use Nim [0], where this sort of thing can be implemented in Nim's macro system. Then you have a regular programming language combined with CT safe units. :)<p>It even pretty much looks identical to those Numbat snippets!<p><pre><code>    import unchained
    
    let earth_mass = 5.972168e24.kg
    let solar_mass = 1.9885e30.kg
    let lunar_mass = 7.342e22.kg
    
    let distance_sun = 1.AU  # astronomical unit
    let distance_moon = 384_400.km
    
    let force_sun = G_Newton * earth_mass * solar_mass / distance_sun
    let force_moon = G_Newton * earth_mass * lunar_mass / distance_moon
    
    echo force_sun / force_moon
    # 69593.6 UnitLess

</code></pre>
Sorry for the shameless plug. ;) Numbat looks quite cool though and the article talks about a lot of things to think about when writing such a program / lib / programming language.<p>[0]: <a href="https://github.com/SciNim/Unchained">https://github.com/SciNim/Unchained</a></p>
]]></description><pubDate>Thu, 16 Nov 2023 17:01:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=38292060</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=38292060</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38292060</guid></item><item><title><![CDATA[New comment by V1ndaar in "Formalising modern research mathematics in real time"]]></title><description><![CDATA[
<p>> An obvious question when formalising a maths paper is how much the proof needed to change to be formalised: in other words whether there were any flaws in the paper. This question is surprisingly subtle, but a simple summary is that most of the mistakes I identified were easily fixable. Importantly all mistakes were fixable in a way that preserved the spirit of the argument, so the Lean version of the proof can reasonably be said to be a translation of the informal proof.<p>> I like to consider certain such small mistakes “mathematical typos”. It’s fair to call them errors, and just like typos in English prose can confuse a non-native speaker, mathematical typos can impede meaning for a reader who isn’t familiar with mathematics. However, with a little experience, it’s not hard to see what the intended meaning was, and fixing it isn’t too bad. A mathematical typo certainly doesn’t constitute a flaw in the proof, and almost all the problems I found fall in this category.<p>If only we had better ways to distribute fixes to papers. These kind of issues happen all the time and unlike in code where someone can just come in and provide a fix, these usually remain forever in papers. Yes, some publish errata or upload a new version to the arxiv, but the majority remain as a form of horrendous "exercise for the reader". 
If I'm an expert in a field I may quickly notice such issues, but more often than not I won't spend the time required to do so. And hence I probably propagate wrong information myself / wonder why my numerical calculations don't produce the correct result etc.<p>It is especially bad when branching out into areas somewhat out of your area. The amount of mistakes and utterly wrong information I had to deal with just in the last few months thanks to papers being sloppy is just sad. So much time wasted. :( (I'm a physicist)</p>
]]></description><pubDate>Tue, 07 Nov 2023 22:50:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=38184190</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=38184190</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38184190</guid></item><item><title><![CDATA[New comment by V1ndaar in "4th edition of Physically Based Rendering is now freely available online"]]></title><description><![CDATA[
<p>Oh, thanks a lot for the clarification! And thanks for the work on the book in general. :)<p>I need to look into the changes then. The spectrum implementation of the 3rd version served as inspiration for an X-ray raytracer I've been working on.</p>
]]></description><pubDate>Thu, 02 Nov 2023 17:32:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=38117127</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=38117127</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38117127</guid></item><item><title><![CDATA[New comment by V1ndaar in "4th edition of Physically Based Rendering is now freely available online"]]></title><description><![CDATA[
<p>Pretty sure the 3rd edition already contained that, no? At that time (not sure if that's still the case now) the choice was a compile time option, iirc.</p>
]]></description><pubDate>Thu, 02 Nov 2023 16:04:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=38115537</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=38115537</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38115537</guid></item><item><title><![CDATA[New comment by V1ndaar in "SumatraPDF Reader"]]></title><description><![CDATA[
<p>Evince does the same. It's a great feature, I agree.</p>
]]></description><pubDate>Tue, 24 Oct 2023 11:29:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=37997532</link><dc:creator>V1ndaar</dc:creator><comments>https://news.ycombinator.com/item?id=37997532</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37997532</guid></item></channel></rss>