<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: mhahn</title><link>https://news.ycombinator.com/user?id=mhahn</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 02 May 2026 11:53:17 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mhahn" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mhahn in "Stop syncing everything"]]></title><description><![CDATA[
<p>I looked at using turso embedded replicas for a realtime collaboration project and one downside was that each sync operation was fairly expensive. The minimum payload size is 4KB IIRC because it needs to sync the sqlite frame. Then they charge based on the number of sync operations so it wasn't a good fit for this particular use case.<p>I'm curious if the graft solution helps with this. The idea of just being able to ship a sqlite db to a mobile client that you can also mutate from a server is really powerful. I ended up basically building my own syncing engine to sync changes between clients and servers.</p>
]]></description><pubDate>Wed, 02 Apr 2025 04:28:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=43553675</link><dc:creator>mhahn</dc:creator><comments>https://news.ycombinator.com/item?id=43553675</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43553675</guid></item><item><title><![CDATA[New comment by mhahn in "New Book: 'Relevant Search'"]]></title><description><![CDATA[
<p>I've only read this and the Definitive Guide to ES. "Relevant Search" is more focused on working through how to tune search results and understand why things are happening and how you can make them work in your favor. They work through a lot of great examples and go much deeper than anything else I've come across.</p>
]]></description><pubDate>Tue, 21 Jun 2016 17:22:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=11947465</link><dc:creator>mhahn</dc:creator><comments>https://news.ycombinator.com/item?id=11947465</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11947465</guid></item><item><title><![CDATA[New comment by mhahn in "New Book: 'Relevant Search'"]]></title><description><![CDATA[
<p>Awesome book. I read the pre-release and it was a great deep dive into various topics that will help improve your search application. I highly recommend for anyone who is working with Elasticsearch (I think they also have a Solr appendix, but I was only interested in ES)!</p>
]]></description><pubDate>Tue, 21 Jun 2016 16:06:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=11946728</link><dc:creator>mhahn</dc:creator><comments>https://news.ycombinator.com/item?id=11946728</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11946728</guid></item><item><title><![CDATA[New comment by mhahn in "Using Protobuf instead of JSON to communicate with a front end"]]></title><description><![CDATA[
<p>I use Protobufs for my startup and it has saved us an incredible amount of time building out iOS, Android, and Web clients. With a small team, any time we can shave by not having to re-write the modeling layer in all of these languages is a big win. As the writer of the APIs, I publish the new Protobuf models/services and then can switch over and instantly start working with real objects in Swift or Java.<p>Coming from a larger startup, I've also experienced the pains of trying to maintain JSON objects between different services. Protobufs have some quirks, but I think its a great solution to get behind at any stage.</p>
]]></description><pubDate>Fri, 05 Jun 2015 19:57:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=9667737</link><dc:creator>mhahn</dc:creator><comments>https://news.ycombinator.com/item?id=9667737</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9667737</guid></item><item><title><![CDATA[New comment by mhahn in "Using Protobuf instead of JSON to communicate with a front end"]]></title><description><![CDATA[
<p>I'm curious if Google has a common envelope they send all service messages with. Ie. A common way of specifying pagination parameters, auth tokens etc. when sending protobuf messages between services. I've been using protobufs for my services and wrote a ServiceRequest object which has worked well. I was more just surprised about not being able to find much documentation on actual deployments as opposed to just simple tutorials.</p>
]]></description><pubDate>Fri, 05 Jun 2015 16:59:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=9666572</link><dc:creator>mhahn</dc:creator><comments>https://news.ycombinator.com/item?id=9666572</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9666572</guid></item><item><title><![CDATA[New comment by mhahn in "Show HN: EventGrid – Event Management and Ticketing"]]></title><description><![CDATA[
<p>1. <a href="https://www.eventbrite.com/reserved-seating/" rel="nofollow">https://www.eventbrite.com/reserved-seating/</a>
2. your event pages look identical</p>
]]></description><pubDate>Fri, 13 Jun 2014 22:54:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=7891265</link><dc:creator>mhahn</dc:creator><comments>https://news.ycombinator.com/item?id=7891265</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=7891265</guid></item><item><title><![CDATA[New comment by mhahn in "GitHub Down with a 503"]]></title><description><![CDATA[
<p>all the overachieving engineers working on a saturday...</p>
]]></description><pubDate>Sun, 11 May 2014 02:46:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=7727511</link><dc:creator>mhahn</dc:creator><comments>https://news.ycombinator.com/item?id=7727511</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=7727511</guid></item><item><title><![CDATA[New comment by mhahn in "Show HN: Automatic weekly meal planner, also plans your leftovers"]]></title><description><![CDATA[
<p>this would be awesome if it had an integration with instacart, ie. you send me the groceries every week</p>
]]></description><pubDate>Wed, 01 May 2013 21:07:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=5640791</link><dc:creator>mhahn</dc:creator><comments>https://news.ycombinator.com/item?id=5640791</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=5640791</guid></item><item><title><![CDATA[New comment by mhahn in "Things I Wish I Had Known About Django Development Before Starting My Company"]]></title><description><![CDATA[
<p>solid list, I would also add that it is extremely useful (I would argue necessary) to use vagrant (<a href="http://www.vagrantup.com/" rel="nofollow">http://www.vagrantup.com/</a>) to manage your development environment.</p>
]]></description><pubDate>Wed, 17 Apr 2013 23:58:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=5568161</link><dc:creator>mhahn</dc:creator><comments>https://news.ycombinator.com/item?id=5568161</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=5568161</guid></item><item><title><![CDATA[New comment by mhahn in "Django Redis Pipeline trick"]]></title><description><![CDATA[
<p>if len(request.pipeline):<p>you want to execute only if it has a length.<p>cool though, I am using pipelines for something at work and read this post and realized I was executing even if there was nothing to execute!</p>
]]></description><pubDate>Thu, 28 Feb 2013 21:48:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=5301278</link><dc:creator>mhahn</dc:creator><comments>https://news.ycombinator.com/item?id=5301278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=5301278</guid></item><item><title><![CDATA[New comment by mhahn in "Django Redis Pipeline trick"]]></title><description><![CDATA[
<p>I would argue that it is more readable to do:<p>if request.pipeline.command_stack:
    request.pipeline.execute()<p>rather than<p>if len(request.pipeline) > 0:
    request.pipeline.execute()<p>thoughts?</p>
]]></description><pubDate>Thu, 28 Feb 2013 18:01:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=5299929</link><dc:creator>mhahn</dc:creator><comments>https://news.ycombinator.com/item?id=5299929</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=5299929</guid></item></channel></rss>