<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: danneu</title><link>https://news.ycombinator.com/user?id=danneu</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 19 Jun 2026 21:14:05 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=danneu" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Idea: Fixing a common React bug with a Stable type]]></title><description><![CDATA[
<p>Article URL: <a href="https://gist.github.com/danneu/4051f5a3ea180aa31358892153beb90b">https://gist.github.com/danneu/4051f5a3ea180aa31358892153beb90b</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43764444">https://news.ycombinator.com/item?id=43764444</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 22 Apr 2025 17:30:00 +0000</pubDate><link>https://gist.github.com/danneu/4051f5a3ea180aa31358892153beb90b</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=43764444</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43764444</guid></item><item><title><![CDATA[New comment by danneu in "Ask HN: Freelancer? Seeking freelancer? (March 2020)"]]></title><description><![CDATA[
<p>SEEKING WORK<p>Location: I'm generally based in Austin but I'm currently living abroad (US citizen)<p>Remote: Yes<p>Willing to relocate: Yes, though remote work opportunities are my top priority at the moment.<p>Technologies: The past 5 years, I've mostly been working on server applications with Node + Postgres and web client applications with React or Elm. I've been the first hire of the largest bitcoin casino. I've built a popular forum from scratch. <a href="https://github.com/danneu" rel="nofollow">https://github.com/danneu</a><p>Email: danrodneu@gmail.com</p>
]]></description><pubDate>Mon, 02 Mar 2020 17:06:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=22466277</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=22466277</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22466277</guid></item><item><title><![CDATA[New comment by danneu in "Ask HN: Who wants to be hired? (March 2020)"]]></title><description><![CDATA[
<p>Location: I'm generally based in Austin but I'm currently living abroad (US citizen)<p>Remote: Yes<p>Willing to relocate: Yes, though remote work opportunities are my top priority at the moment.<p>Technologies: The past 5 years, I've mostly been working on server applications with Node + Postgres and web client applications with React or Elm. I've been the first hire of the largest bitcoin casino. I've built a popular forum from scratch. <a href="https://github.com/danneu" rel="nofollow">https://github.com/danneu</a><p>Email: danrodneu@gmail.com</p>
]]></description><pubDate>Mon, 02 Mar 2020 17:05:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=22466267</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=22466267</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22466267</guid></item><item><title><![CDATA[New comment by danneu in "Ask HN: Who wants to be hired? (August 2019)"]]></title><description><![CDATA[
<p>Location: Guadalajara (US citizen)<p>Remote: Yes<p>Willing to relocate: No<p>Technologies: The past 5 years, I've mostly been working on server applications with Node + Postgres and web client applications with React or Elm. I've been the first hire of the largest bitcoin casino. I've built a popular forum from scratch. <a href="https://github.com/danneu" rel="nofollow">https://github.com/danneu</a><p>Email: danrodneu@gmail.com</p>
]]></description><pubDate>Thu, 01 Aug 2019 20:14:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=20587865</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=20587865</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20587865</guid></item><item><title><![CDATA[New comment by danneu in "Ask HN: Freelancer? Seeking Freelancer? (June 2019)"]]></title><description><![CDATA[
<p>SEEKING WORK | US citizen | Remote only (or Guadalajara)<p>Tech: The past 5 years, I've mostly been working on server applications with Node + Postgres and web client applications with React or Elm.<p><a href="https://github.com/danneu" rel="nofollow">https://github.com/danneu</a><p>I've been the first hire of the largest bitcoin casino. I've built a popular forum from scratch with Node. I'm open to short-term work and longer term work, part-time work and full-time work.<p>Just shoot me an email: danrodneu@gmail.com</p>
]]></description><pubDate>Mon, 03 Jun 2019 17:26:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=20085693</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=20085693</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20085693</guid></item><item><title><![CDATA[New comment by danneu in "Ask HN: Who wants to be hired? (February 2019)"]]></title><description><![CDATA[
<p>Location: Austin, TX<p>Remote: Yes<p>Willing to relocate: No<p>Technologies: My github profile will show a breadth of tech. Day-to-day over the last couple years I've mainly used Node, Postgres, React, and Elm.<p>Résumé/CV: Available upon request. <a href="https://github.com/danneu" rel="nofollow">https://github.com/danneu</a><p>Email: danrodneu@gmail.com<p>Two of the most interesting projects I've worked on over the last few years were a large open-source forum I built from scratch with 1000s of logins per day and the work I've done for some of the largest projects in bitcoin gambling. Feel free to ask.</p>
]]></description><pubDate>Fri, 01 Feb 2019 18:14:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=19056742</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=19056742</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19056742</guid></item><item><title><![CDATA[New comment by danneu in "Ask HN: Who wants to be hired? (December 2018)"]]></title><description><![CDATA[
<p>Location: Home base in Austin, TX b<p>Remote: Yes, preferred<p>Willing to relocate: Possibly<p>Technologies: The main day-to-day production user-facing systems I've worked on in the last few years involve Javascript, Node.js, Express/Koa, Postgres, React, AWS, Websockets, Elm. My Github profile showcases a productive grasp of a lot more technologies.<p>Résumé/CV: Available upon request. <a href="https://github.com/danneu" rel="nofollow">https://github.com/danneu</a><p>Email: danrodneu@gmail.com<p>If there's one thing that best demonstrates my breadth of ability, it's that I built an open-source message board from scratch, myself, for an active community with Node + Postgres in my free-time over the years that gets thousands of registered logins per day.<p>While my resume will reveal my experience doing this repeatedly on team/co-founded projects, my solo forum project best shows all of the hats I can wear (from technical skills to soft skills) and my ability to execute in such an open-ended environment to ensure that I'm not just shipping code, but shipping a product that users like.</p>
]]></description><pubDate>Tue, 04 Dec 2018 17:52:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=18601790</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=18601790</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18601790</guid></item><item><title><![CDATA[Amazon is pathologically incapable of keeping your account safe]]></title><description><![CDATA[
<p>Article URL: <a href="https://medium.com/@espringe/amazon-is-pathologically-incapable-of-keeping-your-account-safe-78f0be5dc2fe">https://medium.com/@espringe/amazon-is-pathologically-incapable-of-keeping-your-account-safe-78f0be5dc2fe</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=17903762">https://news.ycombinator.com/item?id=17903762</a></p>
<p>Points: 22</p>
<p># Comments: 1</p>
]]></description><pubDate>Mon, 03 Sep 2018 17:22:15 +0000</pubDate><link>https://medium.com/@espringe/amazon-is-pathologically-incapable-of-keeping-your-account-safe-78f0be5dc2fe</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=17903762</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17903762</guid></item><item><title><![CDATA[New comment by danneu in "Fusion.js: A Plugin-Based Universal Web Framework"]]></title><description><![CDATA[
<p>Years ago, I played with the idea: <a href="https://github.com/danneu/klobb" rel="nofollow">https://github.com/danneu/klobb</a><p>I went on to implement it in Swift (<a href="https://github.com/danneu/hansel" rel="nofollow">https://github.com/danneu/hansel</a>) and then seriously improved on it in Kotlin (<a href="https://github.com/danneu/kog" rel="nofollow">https://github.com/danneu/kog</a>).<p>It was fun but hard to really make a convincing upgrade to Koa once you consider the rest of the ecosystem. For example, since Koa exposes Node's req/res, then you can still use existing Node/Express middleware.</p>
]]></description><pubDate>Wed, 01 Aug 2018 19:18:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=17665985</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=17665985</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17665985</guid></item><item><title><![CDATA[New comment by danneu in "FFmpeg 4.0 released"]]></title><description><![CDATA[
<p>Wow, that's great.<p>Here's my attempt at building something for language learning since my listening skills trail so far behind my reading skills: <a href="https://www.danneu.com/slow-spanish/" rel="nofollow">https://www.danneu.com/slow-spanish/</a><p>It parses this painstakingly created file: <a href="https://github.com/danneu/slow-spanish/blob/a455da3a230632c2919747c270172156bb2f2087/src/stories/threepigs/transcript.txt" rel="nofollow">https://github.com/danneu/slow-spanish/blob/a455da3a230632c2...</a><p>Unfortunately it's really hard to generate the source material (timestamping a transcript).<p>So my idea was to upload some slow-speaking audio to Youtube and let it autogen its .srt subtitle files. The subtitles don't come out perfectly, but it's the timestamp data I'm after since the goal is a UI that makes it easy to replay and scrub around spoken audio.</p>
]]></description><pubDate>Sat, 21 Apr 2018 13:43:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=16891392</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=16891392</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=16891392</guid></item><item><title><![CDATA[New comment by danneu in "Duolingo podcast: The kiddnapping of Luis von Ahn's aunt"]]></title><description><![CDATA[
<p>Exactly. I thought it was a great speed, and there really aren't many slow-spanish resources online which makes it hard to transcend intermediate hell.<p>The English sections work well to give you context for the Spanish sections. Losing track of context is definitely one of the hardest parts of listening to a different language. "Wait, I thought we were still talking about his aunt." The English also makes it more of a leisurely exposure.<p>Another issue I have with most resources is that there's no way to easily replay chunks of audio. I'd prefer to be able to listen to bite-sized chunks until I understand them. I built <a href="https://www.danneu.com/slow-spanish/" rel="nofollow">https://www.danneu.com/slow-spanish/</a> (the three lil pigs) to prototype an idea where you listen to a story and can prev/next/replay any sentence.</p>
]]></description><pubDate>Mon, 05 Feb 2018 14:30:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=16308919</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=16308919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=16308919</guid></item><item><title><![CDATA[New comment by danneu in "Show HN: Airmash – Multiplayer Missile Warfare HTML5 Game"]]></title><description><![CDATA[
<p>I started building a lil thing inspired by Continuum: <a href="https://github.com/danneu/p2-space-arena" rel="nofollow">https://github.com/danneu/p2-space-arena</a><p>Never did much game dev before but it gave me a lot of respect for people who can build one. It would probably take me a year just to figure out lag compensation.</p>
]]></description><pubDate>Tue, 12 Dec 2017 21:26:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=15909631</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=15909631</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15909631</guid></item><item><title><![CDATA[New comment by danneu in "Show HN: Javalin 1.0 – A Kotlin/Java web framework"]]></title><description><![CDATA[
<p>You can write two-way interop -- I didn't mean to suggest otherwise.<p>But there are Kotlin features that don't map like type-safe @Dsl's which puts you in a position where you have to make concessions for interop.</p>
]]></description><pubDate>Wed, 08 Nov 2017 01:06:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=15649219</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=15649219</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15649219</guid></item><item><title><![CDATA[New comment by danneu in "Show HN: Javalin 1.0 – A Kotlin/Java web framework"]]></title><description><![CDATA[
<p>I don't have interop issues with your examples either. Calling Java from Kotlin is very pleasant.<p>What I found is that it's the other direction that takes some thought. For example, my Kotlin library needs more help than just @Jvm annotations to be usable from Java.</p>
]]></description><pubDate>Wed, 08 Nov 2017 00:57:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=15649170</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=15649170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15649170</guid></item><item><title><![CDATA[New comment by danneu in "Show HN: Javalin 1.0 – A Kotlin/Java web framework"]]></title><description><![CDATA[
<p>I'm really rusty, but if I can recall the simplest example correctly, you can't just naively go from this Kotlin code:<p><pre><code>    Server { req -> Response().html("<h1>Hello world</h1>") }
</code></pre>
to this Java code:<p><pre><code>    new Server(req -> new Response().html("<h1>Hello world</h1>") 
</code></pre>
Because Server is implemented in Kotlin and the Java lambda certainly isn't a kotlin.Function.<p>If that's a bad example (foggy memory), another one would be the use of @DslMarker or reflection to build my type-safe router: <a href="https://github.com/danneu/kog#type-safe-routing" rel="nofollow">https://github.com/danneu/kog#type-safe-routing</a>. Or how about inline functions with reified generics.<p>Kotlin does have Kotlin->Jvm interop annotations, but my take-away was that you would have to put some thought into your API and possibly make concessions so that you could sufficiently annotate it to the point that it's pleasant to use from Java. Not everything maps.<p>For example, you can see that OP went the route of using Java at the interface edges yet Kotlin internally to solve interop for their project.<p>I admit that "effectively one-way interop" is too heavy-handed of a statement, but there's definitely asymmetry that I ran into on my own project. For example, I would not recommend building something in Kotlin in the hopes that, once you're done, you can just sprinkle on some @Jvm annotations and end up with an API that's compelling to use from Java.</p>
]]></description><pubDate>Wed, 08 Nov 2017 00:33:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=15649082</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=15649082</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15649082</guid></item><item><title><![CDATA[New comment by danneu in "Show HN: Javalin 1.0 – A Kotlin/Java web framework"]]></title><description><![CDATA[
<p>Good job reaching a stable release.<p>I have a Kotlin microframework that never made it past hobby-level stability[1].<p>One thing I found out is that you really have to write a library in Java if you want it to be used in both Java and Kotlin. Java -> Kotlin is effectively one-way interop.<p>I also found async programming to be really hard in Java which is why I wrapped Jetty. Meanwhile async APIs like Netty and Undertow were completely exotic to me.<p>For example, I couldn't figure out how to go from `Request -> Response` to `Request -> Promise<Response>` by wrapping Netty.<p>One thing I did find out was that Kotlin is probably my favorite language. Very similar to Swift, though I wish you could re-open 3rd party classes to make them conform to additional interfaces which you can do with Swift protocols.<p>I also never figured out how to hot reload code without restarting the server. Even JRebel didn't work for me. Looking at Jetbrains' own framework, their code that implements reloading is pretty intimidating[2].<p>OP is also the author of <a href="https://github.com/tipsy/j2html" rel="nofollow">https://github.com/tipsy/j2html</a> which I've been using in my own small servers. I couldn't figure out a better way to get typesafe html templating in the ecosystem.<p>[1]: <a href="https://github.com/danneu/kog" rel="nofollow">https://github.com/danneu/kog</a>
[2]: <a href="http://ktor.io" rel="nofollow">http://ktor.io</a></p>
]]></description><pubDate>Tue, 07 Nov 2017 16:54:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=15644996</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=15644996</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15644996</guid></item><item><title><![CDATA[New comment by danneu in "WhatsApp Cofounder on How It Reached 1.3B Users Without Losing Its Focus"]]></title><description><![CDATA[
<p>The big telecom companies in Mexico like Telcel also don't charge you for WhatsApp data usage which showstops any potential competitors.</p>
]]></description><pubDate>Mon, 04 Sep 2017 20:51:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=15170787</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=15170787</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15170787</guid></item><item><title><![CDATA[New comment by danneu in "State of Elm 2017 Results"]]></title><description><![CDATA[
<p>Comma-first makes sense since you're chaining off the right-hand side of an expression more than most other languages, e.g. with |> operators.<p>That decision will probably save man-years of wasted time spent managing a trailing comma.</p>
]]></description><pubDate>Fri, 28 Jul 2017 13:55:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=14874277</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=14874277</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14874277</guid></item><item><title><![CDATA[New comment by danneu in "State of Elm 2017 Results"]]></title><description><![CDATA[
<p>Elm's JSON combinators are great.<p>I'm sure one reason so many people have particular trouble with them is because, according to the survey, the vast majority of them come from a dynamically-typed language where you'd just go `user = JSON.parse(string)`.<p>I think a lot of people would be helped by tacking a bunch of real-world examples onto the actual Json.Decoder docs like how to decode `[1, [3, 5], 7, 9]` (nested range) into `[1, 3, 4, 5, 7, 9]`. One issue is that it's pretty hard to derive understanding from just function signatures, so a dozen quick-start / cookbook examples gives people something to chew on.<p>Combinators are really good at forbidding runtime errors which is a central theme of Elm, but it comes at the expense of a steeper learning curve than the weaker alternatives that come to mind: reflection and manual  descent.</p>
]]></description><pubDate>Fri, 28 Jul 2017 13:30:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=14874085</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=14874085</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14874085</guid></item><item><title><![CDATA[New comment by danneu in "Passwords Evolved: Authentication Guidance for the Modern Era"]]></title><description><![CDATA[
<p>But if there's any money at stake, then any money exfiltrated from your users is money that you never receive, so there's certainly an incentive but also trade-offs.</p>
]]></description><pubDate>Wed, 26 Jul 2017 15:00:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=14856726</link><dc:creator>danneu</dc:creator><comments>https://news.ycombinator.com/item?id=14856726</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14856726</guid></item></channel></rss>