<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: raminf</title><link>https://news.ycombinator.com/user?id=raminf</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 22 Apr 2026 22:11:12 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=raminf" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by raminf in "Dulce et Decorum Est (1921)"]]></title><description><![CDATA[
<p>We had to memorize this back in grade school. It still gives me shivers every time I read it.</p>
]]></description><pubDate>Thu, 05 Mar 2026 02:04:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47256579</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=47256579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47256579</guid></item><item><title><![CDATA[New comment by raminf in "XSLT RIP"]]></title><description><![CDATA[
<p>Many years ago, I was leading a team that implemented a hyperfast XML, XSLT, XPath parser/processor from the ground up in C/C++. This was for a customer project. It also pulled some pretty neat optimizations, like binary XSLT compilation, both in-mem and FS caching, and threading. On the server-side, you could often skip the template file loading and parsing stages, parallelize processing, and do live, streaming generation. There was also a dynamic plugin extension system and a push/pull event model. The benchmarks were so much better than what was out there. Plus, it was embeddable in both server and client app code.<p>Would have been great if it had been open-sourced, but they paid for all the development and owned the codebase. They wanted to use it to dynamically generate content for every page for every unique device and client that hit their server. They had the infrastructure to do that for millions of users. The processing could be done on the server for plain web browsers or embedded inside a client binary app, so live rendering to native could be done on-device.<p>Back then, it was trivial to generate XML on-the-fly from a SQL-based database, then send that back, or render it to XHTML or any other custom presentation format via XSLT. Through XSD schema, the format was self-documenting and could be validated. XSLT also helped push the standardizing on XHTML and harness the chaos of mis-matched HTML versions in each browser. It was also a great way to inject semantic web tags into the output.<p>But I always thought it got dragged down with the overloaded weight of SOAP. Once REST and Node showed up, everyone headed for new pastures. Then JS in browsers begat SPAs, so rendering could be done in the front-end. Schema validation moved to ad-hoc tools like Swagger/OpenAPI. Sadly, we don't really have a semantic web alternative now and have to rely on best guesses via LLMs.<p>For a brief moment, it looked like the dream of a hyper-linked, interconnected, end-to-end structured, realtime semantic web might be realizable. Aaand, then it all went poof.<p>TL;DR: The XML/XSLT stack nailed a lot of the requirements. It just got too heavy and lost out to lighter-weight options.</p>
]]></description><pubDate>Mon, 10 Nov 2025 16:47:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=45877802</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=45877802</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45877802</guid></item><item><title><![CDATA[New comment by raminf in "Jeep pushed software update that bricked all 2024 Wrangler 4xe models"]]></title><description><![CDATA[
<p>In a past life I had a Wall of Shame of headlines on firmware update fails.<p>The lesson was you built firmware updates upfront and right into your development process so it became a non-event. You put in lots of tests, including automatic verification and rollback recovery. You made it so everyone was 100% comfortable pushing out updates, like every hour. It wasn't this big, scary release thing.<p>You did binary deltas so each update was small, and trickle download during down-time. You did A/B partitions, or if you had flash space, A/B/C updates (current firmware, new update, last known good one). Bricking devices and recalls are expensive and cause reputational damage. Adding OTA requires WiFi, BLE, or cell, which increases BOM cost and backend support. Trade-off is manual updates requiring dealership visits or on-site tech support calls with USB keys. It doesn't scale well. For consumer devices, it leads to lots of unpatched, out-of-date devices, increasing support costs and legal risk. OTA also lets you push out in stages and do blue-green deployment testing.<p>For security, you had on-device asymmetric encryption keys and signed each update, then rolled the keys so if someone reverse-engineered the firmware, it wouldn't be a total loss. Ideally add a TPM to the BOM with multiple key slots and a HW encryption engine. Anyone thinking about shipping unencrypted firmware, or baking symmetric encryption keys into firmware should be publicly flogged.<p>You also needed a data migration system so user-customizations aren't wiped out. My newish car, to this day, resets most user settings when it gets an OTA. No wonder people turn off automatic updates.<p>The really good systems also used realistic device simulators to measure impact before even pushing things out. And you definitely tested for communication failures and interruptions. Like, yoink out a power-line mid-update and then watch what happens after power is back on. Yes, it's costly and time-consuming, but consider the alternatives.<p>The ones that failed the most were when they spent months or years developing the basic system, then tacked on update at the end as part of deployment. Since firmware update wasn't as sexy as developing cool new tech, this was doled out to lower-tier devs who didn't know what they were doing. Also, doing it at the end of the project meant it was often the least-tested feature.<p>The other sin was waiting months before rolling out updates, so there were lots of changes packed into one update, which made a small failure have a huge blast radius.<p>These were all technical management failures. Designing a robust update system should be right up-front in the project plan, built by your best engineers, then including it in the CI/CD pipeline.<p>Just for context, the worst headline I had was for update failure in a line of hospital infant incubators.</p>
]]></description><pubDate>Sun, 12 Oct 2025 18:03:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45560314</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=45560314</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45560314</guid></item><item><title><![CDATA[New comment by raminf in "Intent Weaving for AI Coding Agents"]]></title><description><![CDATA[
<p>Feel like we're revisiting heuristic planning and General Problem Solving by Simon, Shaw, and Newell.</p>
]]></description><pubDate>Fri, 10 Oct 2025 05:58:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=45535736</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=45535736</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45535736</guid></item><item><title><![CDATA[New comment by raminf in "A New Internet Business Model?"]]></title><description><![CDATA[
<p>100% agree with statement of problem. Only partly on-board with the possible solutions. There are many other ways, and most likely not a single solution to fit all.<p>Kudos to CF for pointing out the dips in the road ahead. A big, juicy problem to tackle.</p>
]]></description><pubDate>Tue, 23 Sep 2025 05:55:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45343213</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=45343213</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45343213</guid></item><item><title><![CDATA[New comment by raminf in "UUIDv7 Comes to PostgreSQL 18"]]></title><description><![CDATA[
<p>One of the main points of using a UUID as a record identifier was to make it so people couldn't guess adjacent records by incrementing or decrementing the ID. If you add sequential ordering, won't that defeat the purpose?<p>Seems like it would be wise to add caveats around using this form in external facing applications or APIs.</p>
]]></description><pubDate>Sun, 21 Sep 2025 16:28:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=45324160</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=45324160</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45324160</guid></item><item><title><![CDATA[New comment by raminf in "How to use Claude Code subagents to parallelize development"]]></title><description><![CDATA[
<p>Was going to ask how much all this cost, but this sort of answers it:<p>> "Managing Cost and Usage Limits: Chaining agents, especially in a loop, will increase your token usage significantly. This means you’ll hit the usage caps on plans like Claude Pro/Max much faster. You need to be cognizant of this and decide if the trade-off—dramatically increased output and velocity at the cost of higher usage—is worth it."</p>
]]></description><pubDate>Sat, 13 Sep 2025 04:58:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=45229427</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=45229427</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45229427</guid></item><item><title><![CDATA[New comment by raminf in "Build and Host AI-Powered Apps with Claude – No Deployment Needed"]]></title><description><![CDATA[
<p>> You MUST include the ENTIRE conversation history in each prompt to Claude, not just the last message.<p>> ALWAYS include ALL messages from the beginning of the conversation up to the current point.<p>That doesn't seem very scalable.</p>
]]></description><pubDate>Thu, 26 Jun 2025 17:36:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=44389499</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=44389499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44389499</guid></item><item><title><![CDATA[New comment by raminf in "Disaster awaits if we don't secure IoT now"]]></title><description><![CDATA[
<p>Any post about IoT security that doesn't mention or link to Shodan (<a href="https://www.shodan.io" rel="nofollow">https://www.shodan.io</a>) is missing a lot of context. It's way worse than you think.<p>Also, with tools like Chip Whisperer (<a href="https://www.newae.com/chipwhisperer" rel="nofollow">https://www.newae.com/chipwhisperer</a>) the physical security of the hardware root of trust needs to be reevaluated.</p>
]]></description><pubDate>Mon, 02 Jun 2025 19:40:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44162254</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=44162254</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44162254</guid></item><item><title><![CDATA[New comment by raminf in "OpenAI asks White House for relief from state AI rules"]]></title><description><![CDATA[
<p>Wonder if the rules will protect the information providers or the consumers.</p>
]]></description><pubDate>Fri, 14 Mar 2025 04:31:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=43359587</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=43359587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43359587</guid></item><item><title><![CDATA[New comment by raminf in "Happy 20th Birthday, Y Combinator"]]></title><description><![CDATA[
<p>HN has been a daily read for last 15 years. Appreciate the information flow.<p>Incidentally, after years of lurking, applied to the latest YC batch. Didn't make it, but will try again once further along, or with a new idea.</p>
]]></description><pubDate>Wed, 12 Mar 2025 04:23:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=43339938</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=43339938</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43339938</guid></item><item><title><![CDATA[New comment by raminf in "Inheriting is becoming nearly as important as working"]]></title><description><![CDATA[
<p>Relevant Calvin and Hobbes: <a href="https://www.gocomics.com/calvinandhobbes/1991/11/29" rel="nofollow">https://www.gocomics.com/calvinandhobbes/1991/11/29</a></p>
]]></description><pubDate>Sat, 01 Mar 2025 00:23:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=43213906</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=43213906</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43213906</guid></item><item><title><![CDATA[New comment by raminf in "Claude 3.7 Sonnet and Claude Code"]]></title><description><![CDATA[
<p>> Hacker News<p>> You'll finally stop checking egg prices at Costco and instead focus on writing that definitive 'How I Built My Own Super App Without Getting Rejected By Apple' post.<p>On it!</p>
]]></description><pubDate>Mon, 24 Feb 2025 22:10:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=43165535</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=43165535</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43165535</guid></item><item><title><![CDATA[New comment by raminf in "Eggs US – Price – Chart"]]></title><description><![CDATA[
<p>Costco people recommended showing up early. Went there right at opening in the morning and there was plenty. To their credit, they haven't raised their prices.<p>Also, shocked to see people hoarding multiple boxes of 50 eggs. Hoping it was for a commercial purpose and not someone panic-buying like they were for TP during the pandemic.</p>
]]></description><pubDate>Thu, 06 Feb 2025 02:31:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=42958303</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=42958303</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42958303</guid></item><item><title><![CDATA[New comment by raminf in "Apple is open sourcing Swift Build"]]></title><description><![CDATA[
<p>Lattner left Apple a long while ago. He's been working on Mojo, a different (Pythonic) language and runtime: <a href="https://www.modular.com" rel="nofollow">https://www.modular.com</a></p>
]]></description><pubDate>Sat, 01 Feb 2025 22:24:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=42903064</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=42903064</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42903064</guid></item><item><title><![CDATA[New comment by raminf in "Building a T1D smartwatch for my son from scratch"]]></title><description><![CDATA[
<p>I didn't mean to send you down a rabbit-hole since you've already built an awesome-looking platform. Just googling, came across a devkit: 
<a href="https://ameridroid.com/products/pinetime-smart-watch?variant=33098731487266" rel="nofollow">https://ameridroid.com/products/pinetime-smart-watch?variant...</a><p>The DevKit is mainly there to allow easy access the SWD pins. It can be flashed via a Pi: <a href="https://wiki.pine64.org/wiki/PineTime_Devkit_Wiring" rel="nofollow">https://wiki.pine64.org/wiki/PineTime_Devkit_Wiring</a><p>Aaron Christophel (go-to guy for hacking wearables) has a video on flashing them via an ESP32: <a href="https://www.youtube.com/watch?v=Iu6RoXRZxOk" rel="nofollow">https://www.youtube.com/watch?v=Iu6RoXRZxOk</a><p>For OTA flash, some folks have had good luck with <a href="https://gadgetbridge.org" rel="nofollow">https://gadgetbridge.org</a><p>For those interested in going the cheap-o activity tracker route, here's another old thread on Hackaday, featuring Aaron. More good info in the comments: <a href="https://hackaday.com/2019/02/20/custom-firmware-for-cheap-fitness-trackers/" rel="nofollow">https://hackaday.com/2019/02/20/custom-firmware-for-cheap-fi...</a><p>Also, one last tidbit: I know the idea was to stay away from the more expensive devices, but many Apple and Android watches have built-in BLE central capability so they can scan and connect to peripherals without having to go through the phone. In later models, they can even scan in the background and update complications.<p>Again, not remotely as cool as building one's own device!</p>
]]></description><pubDate>Thu, 30 Jan 2025 22:19:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=42882751</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=42882751</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42882751</guid></item><item><title><![CDATA[New comment by raminf in "Building a T1D smartwatch for my son from scratch"]]></title><description><![CDATA[
<p>Awesome work building it all from scratch!<p>Hate to be that guy, but was using something hackable like a PineTime (<a href="https://pine64.org/devices/pinetime/" rel="nofollow">https://pine64.org/devices/pinetime/</a>) and doing a direct BLE connection to the device using the Blood Glucose Profile (<a href="https://www.bluetooth.com/specifications/specs/glucose-profile-1-0-1/" rel="nofollow">https://www.bluetooth.com/specifications/specs/glucose-profi...</a>) not an option?<p>Another approach could be to hack one of those cheap fitness trackers (<a href="https://rbaron.net/blog/2018/05/27/Hacking-a-cheap-fitness-tracker-bracelet.html" rel="nofollow">https://rbaron.net/blog/2018/05/27/Hacking-a-cheap-fitness-t...</a>). I got a few off AliExpress a few years ago for $9 each.<p>Again, not to take away anything from the amazing accomplishment to build a device from scratch, but if anyone else wants to try making one, maybe they could start with less of a steep learning curve.</p>
]]></description><pubDate>Thu, 30 Jan 2025 18:40:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=42880724</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=42880724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42880724</guid></item><item><title><![CDATA[New comment by raminf in "I automated my job application process"]]></title><description><![CDATA[
<p>I remember talking to techie friends about this a couple years ago. With the advent of AI screeners, it would only be a matter of time before candidates figured out how to craft and rewrite not just their cover letter, but their whole resume to semantically best-fit a job listing. It could even A/B test for the best response.<p>Everyone laughed and said it was too much work. I predicted it would be a YC company before long.<p>Only a matter of time before AIs will be talking to AIs to have a technical interview and negotiate salary.</p>
]]></description><pubDate>Sat, 28 Dec 2024 19:58:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=42534033</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=42534033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42534033</guid></item><item><title><![CDATA[New comment by raminf in "macOS menu bar app that shows how full the ISS urine tank is in real time"]]></title><description><![CDATA[
<p>On semi-related news...<p>Santa Cruz Wharf’s fallen restroom becomes an unlikely tourist attraction: <a href="https://archive.ph/k1lwt" rel="nofollow">https://archive.ph/k1lwt</a></p>
]]></description><pubDate>Wed, 25 Dec 2024 17:22:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=42509834</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=42509834</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42509834</guid></item><item><title><![CDATA[New comment by raminf in "One of our clients hasn't paid us $130k – or "Why Every Contract Clause Matters""]]></title><description><![CDATA[
<p>Back when I was consulting, I always made sure to stay in touch separately with three people:<p>a) The internal project owner. Usually a VP or Director.<p>b) The owner's assistant/gatekeeper, who made sure they saw and signed documents.<p>c) The accounts payable person who actually pushed the button that cut the checks <- The most important one if you want to get paid on time.<p>I also never did more than Net-30 (and often Net-7). Things went smoothly with the larger companies (once everything was signed). Startups and medium-size ones, though, had no problem stiffing you on a bill if their funding was wobbly. Those were often payable on invoice, or upfront retainer.<p>Still got screwed multiple times. My own damn fault for taking on projects just because they sounded cool.</p>
]]></description><pubDate>Wed, 11 Dec 2024 19:32:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=42391786</link><dc:creator>raminf</dc:creator><comments>https://news.ycombinator.com/item?id=42391786</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42391786</guid></item></channel></rss>