<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: mkhalil</title><link>https://news.ycombinator.com/user?id=mkhalil</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 19 Jun 2026 22:29:41 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mkhalil" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mkhalil in "Cell-based architecture for resilient payment systems"]]></title><description><![CDATA[
<p>microservices / clusters / zones - really all of these are other "cell-based" architectures as well. there is absolutely no written rule that a microservice was just an API or a singular service, it basically can be a independent instance that is testable/usable/gives value on itself.<p>that said: still a nice write up, learning about some of the architectural choices that AMEX makes is definitely insightful (and relavent/useful to what i am working on right now as well!)</p>
]]></description><pubDate>Fri, 19 Jun 2026 00:53:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48593644</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=48593644</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48593644</guid></item><item><title><![CDATA[New comment by mkhalil in "YouTube to automatically label AI-generated videos"]]></title><description><![CDATA[
<p>> "while also working out how to make AI generated video that's impossible to detect."<p>what gives you that impression?<p>Google is spends millions of dollars researching and implementing SynthID [0]; ensuring all videos generated have a watermark to ensure they can be detected. As well as using SynthID to detect AI-generated videos, which is what I am guessing they are using @ YT to detect and label the AI videos.<p>I am far from a Google or AI fanboy, closer to an admiring hater, but I just don't see how they are making AI generated video impossible to detect if they are going out of the way to ensure SynthID /AI watermarks are present in any video generated on the platform.<p>unless you mean impossible to detect by human eyes; but if that's the case, so is everyone else.
except everyone else is NOT spending resources on research for watermarking and keep the detection algorithms ahead of the curve.</p>
]]></description><pubDate>Wed, 27 May 2026 20:40:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=48300327</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=48300327</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48300327</guid></item><item><title><![CDATA[New comment by mkhalil in "Leaving GitHub for Forgejo"]]></title><description><![CDATA[
<p>>> * Moving code off of GitHub doesn't change any of this: AI companies are free to download your git repo no matter where it is hosted, just like they can any other content on a publicly accessible website.<p>C'mon, I'm not even apart of the movement to move away from GitHub, but that's not really a valid argument. Sure, they CAN download the source code, but its not nearly as automatic. They don't get to download it all, en masse, from copying hard drives/databases they already own. They have to go over the internet. They don't get automatic notifications when new code gets pushed. And finally, if one wanted, they can make it harder for bots.<p>I certainly believe that these companies do get away with a lot more than the average Joe - see: Facebook downloading Anna's Archive, every pirated eBook - but that doesn't mean you have to hand it to them on a silver platter.<p>Plus, even if your code is private on GitHub, you can guarantee that they can't train there models on it anyway; unlike if you host it yourself, or somewhere else.<p>Does anyone else find it ironic when closed-source GitHub claims it's some super hero for open source?</p>
]]></description><pubDate>Thu, 14 May 2026 00:42:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48129707</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=48129707</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48129707</guid></item><item><title><![CDATA[New comment by mkhalil in "GitHub Copilot is moving to usage-based billing"]]></title><description><![CDATA[
<p>Why would folks be better paying 5.5% fee to OpenRouter ("Open") if most people just use one or two providers? Just use the provider's API.</p>
]]></description><pubDate>Mon, 27 Apr 2026 20:35:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47926973</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=47926973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47926973</guid></item><item><title><![CDATA[New comment by mkhalil in "Tax Wrapped 2025"]]></title><description><![CDATA[
<p>yeah, the context is federally here; so from my federal income taxes which are MUCH higher than my state, sales, and property taxes combined</p>
]]></description><pubDate>Sat, 25 Apr 2026 20:27:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47904308</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=47904308</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47904308</guid></item><item><title><![CDATA[New comment by mkhalil in "Qwen3.6-Max-Preview: Smarter, Sharper, Still Evolving"]]></title><description><![CDATA[
<p>Not to mention, that Opus cost orders of magnitude more money.
These are VERY impressive and usage.<p>FAANGS love to give away money to get people addicted to their platforms, and even they, the richest companies in the world, are throttling or reducing Opus usage for paying members, because even the money we pay them doesn't cover it.<p>Meanwhile, these are usable on local deployments! (and that's with the limited allowance our AI overlords afford us when it comes to choices for graphics cards too!)</p>
]]></description><pubDate>Tue, 21 Apr 2026 06:42:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47845359</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=47845359</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47845359</guid></item><item><title><![CDATA[New comment by mkhalil in "Tax Wrapped 2025"]]></title><description><![CDATA[
<p>So we spent more on interest for the deficit than we spent on the doubling the combined spending on all of the following:<p>transportation
government operations
natural resources
community development
education & social services
agriculture
international affairs
science & space
and energy<p>...anxiety rises.</p>
]]></description><pubDate>Mon, 13 Apr 2026 21:17:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=47757938</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=47757938</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47757938</guid></item><item><title><![CDATA[New comment by mkhalil in "Pebble Watch software is now open source"]]></title><description><![CDATA[
<p>I'm sure its happened before, but this is the first time i finally get to see some sort of modern hardware in KiCad.<p>Pretty cool to see all 6 layers, paste layers, and adhesive layers as well.
I've always wondered how the cake was made and if big projects do/could use KiCad. 
Seems like a lot more work relative to those Single Layer PCBs on YouTube for things like emulators and custom PCBs. Glad I now know for sure, that I can't do this.</p>
]]></description><pubDate>Mon, 24 Nov 2025 20:44:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46039064</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=46039064</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46039064</guid></item><item><title><![CDATA[New comment by mkhalil in "Shai-Hulud Returns: Over 300 NPM Packages Infected"]]></title><description><![CDATA[
<p>I use pnpm, but even so: thankfully naming things is hard, and <i>all</i> my env variable names are very_convuluted_non_standard_names for things lol.</p>
]]></description><pubDate>Mon, 24 Nov 2025 20:26:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46038831</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=46038831</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46038831</guid></item><item><title><![CDATA[New comment by mkhalil in "The last-ever penny will be minted today in Philadelphia"]]></title><description><![CDATA[
<p>That's why it should be rounded for everything. No pennies should probably mean that any final transaction totals are rounded to the nearest nickel. Whether they pay with cash, credit, debit, snap, gift card, etc...<p>IMO, rounding for cash purchases only sounds worse than keeping the pennies.</p>
]]></description><pubDate>Thu, 13 Nov 2025 04:48:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=45910788</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=45910788</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45910788</guid></item><item><title><![CDATA[New comment by mkhalil in "AOL to be sold to Bending Spoons for $1.5B"]]></title><description><![CDATA[
<p>1.5 billion used to be an absolute ridiculous number to pay for a company not long ago. AOL? 1990s AOL?<p>But with 5 trillion dollar companies these days that are "worth" more than the entire GDP of Germany, why not. It's not real. It's just a number on a computer at this point.</p>
]]></description><pubDate>Thu, 30 Oct 2025 03:52:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=45756253</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=45756253</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45756253</guid></item><item><title><![CDATA[New comment by mkhalil in "The Swift SDK for Android"]]></title><description><![CDATA[
<p>Huh? Did you read the link? Did you notice the ONE screenshot clearly shows the app has a material-ui look.<p>I'm going to say this because I think you might not know this, but also because I think many others might not have thought about this:<p>Almost always, a programming language is UI agnostic.
Swift SDK for Android means: You can now write Android Apps in Swift.
This doesn't magically include Apple's components / SwiftUI.
When you write code for a platform, specifically an SDK for an OS, all you do is expose that platform to that language.<p>So, as long the SDK/bindings are there, a new "Window" means whatever a the OS thinks is a Window. A Button is what is defined (or exposed/binded to) as a Button in Android.<p>Swift was sorta released for Windows: a new Window looks like a generic Win32 Window. The same one you would get if you used C, C++, Rust, etc..<p>All your examples are GREAT examples to explain how this works:
- Flutter has "Cupertino" to allow people to use Flutter to make Apple apps, and not have to learn names/methods/interface of the native Apple UI.
- React Native: A LOT of work was put in to make/bind Apple native objects to a React component. And the same for Android.<p>So again:<p>The Swift SDK for Android means you can write your Android apps in Swift. The same apps you might of wrote in Java or Kotlin, you can now use Swift. Meaning whatever it looked like in Java/Kotlin (using native api's), it would look like in Swift.<p>The SwiftUI, Apple's component library written/exposed to Swift, is something completely different.</p>
]]></description><pubDate>Sat, 25 Oct 2025 04:36:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45701382</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=45701382</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45701382</guid></item><item><title><![CDATA[New comment by mkhalil in "Windows Subsystem for FreeBSD"]]></title><description><![CDATA[
<p>It *is* confusing but in actuality, it kind of works: It's a Windows Subsystem - as in the Hypervisor/VM platform - to boot a Linux VM. And, more importantly IMO, Linux distro is using this Windows Subsystem for: booting, drivers, and networking (.e.g. the "/sys/wsl" folder, and whether the Window Subsystem will generate fstab, etc..)</p>
]]></description><pubDate>Sun, 12 Oct 2025 00:53:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=45554138</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=45554138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45554138</guid></item><item><title><![CDATA[New comment by mkhalil in "A 16.67 Millisecond Frame"]]></title><description><![CDATA[
<p>The "demo" is kind of bologna.<p>1) The code that is running is not what's presented; it executes (non-transpiled) vanilla JS.* Why not just show that?<p>2) Removing the box shadow massively makes the two closer in performance.<p>3) The page could just be one sentence: "Reflowing the layout of a page is slower than moving a single item." GPU un-related.<p>---<p>*Code that actually is running:<p>```js<p><pre><code>        , u = t => {
        h && clearTimeout(h),
        l.forEach( (e, s) => {
            const {top: o, left: n} = m[r[s]];
            t ? (e.style.transform = "translate(0px, 0px)",
            e.style.opacity = "0.7",
            e.offsetHeight,
            e.style.transform = `translate(${n}px, ${o}px)`) : e.style.transform = `translate(${n}px, ${o}px)`,
            e.style.top = "",
            e.style.left = ""
        }
        ),
        t && (h = window.setTimeout( () => {
            l.forEach(e => e.style.opacity = "1")
        }
        , 500))
    }
        , d = t => {
        y && clearTimeout(y),
        l.forEach( (e, s) => {
            const {top: o, left: n} = m[r[s]];
            e.style.top = `${o}px`,
            e.style.left = `${n}px`,
            e.style.transform = "",
            t && (e.style.boxShadow = "0 14px 28px rgba(239,68,68,0.45)") // REMOVING THIS LINE = BIG DIFFERENCE
        }
        ),
        t && (y = window.setTimeout( () => {
            l.forEach(e => {
                e.style.boxShadow = "none"
            }
            )
        }
        , 500))
    }
           </code></pre>
```</p>
]]></description><pubDate>Thu, 09 Oct 2025 23:52:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45534217</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=45534217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45534217</guid></item><item><title><![CDATA[New comment by mkhalil in "TiVo exiting legacy DVR business"]]></title><description><![CDATA[
<p>Thank you.<p>Honestly, the "could of" is more of a "sometimes I write how I sound" thing, but anything else, is more of a middle of the night brain mush.<p>I actually re-wrote that bottom part at least twice because I had a lot to say, but didn't know how to say it concisely. As I was writing it, I kept having less and less confidence that any readers would have prior knowledge about I was writing about (ex: Plex, HDHomeRun, TiVo Edge), so I kept defining or explaining things in parenthesis and re-ordering the sentences; so at one point I just had to say, good enough, <i>click reply</i><p>I hate lengthy/wordy comments that coulda' () been just a couple of sentences, but I also love to explain things in a way that a wide range of people can comprehend, so it's a battle at times. (this reply is a good example...<i>reply</i>)</p>
]]></description><pubDate>Thu, 09 Oct 2025 23:15:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=45534008</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=45534008</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45534008</guid></item><item><title><![CDATA[New comment by mkhalil in "TiVo exiting legacy DVR business"]]></title><description><![CDATA[
<p>Holy moly this thing has grown. I seen the Apple TV/Android app many many years ago and figured it was just another basic/forked IPTV/M3U viewer but looking at the website and "<a href="https://getchannels.com/releases/" rel="nofollow">https://getchannels.com/releases/</a>" -- what an app / features; can't imagine the codebase lol. Def. going to check out, thank you!</p>
]]></description><pubDate>Wed, 08 Oct 2025 21:46:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45520977</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=45520977</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45520977</guid></item><item><title><![CDATA[New comment by mkhalil in "TiVo exiting legacy DVR business"]]></title><description><![CDATA[
<p>I always felt TiVo really did a great job at identifying how important good UX and UI are for consumer products. Partially, the monopolies/cable companies knew/know they were able to get away with poor UI since consumers didn't really have a choice when it came to cable providers/cable boxes so it wasn't hard to beat them, but TiVo did actually do a good job.<p>I felt like they had consumer awareness at one point. Maybe if they went with there own premium streaming service, as oppose to only trying ad-based streaming services (like Pluto) OR continuing to try to make money charging people monthly for a subscription to use a device they first have to purchase.**<p>Instead they kept the old business model and went to more of a business-to-business service oriented offerings. Selling metadata, APIs, TV Guides, Car infotainment, all oddities IMO as most IPTV providers like to use turn key solutions.<p>I actually use the Tivo Stream 4K as my smart device. Works great, gives me 4K, can download Android TV apps, and is cheap $35.<p>Not a fan of ad-based TV (which is the Tivo+ thing, like Pluto, etc...), but I use it mostly for YouTube, Plex, etc.<p>--<p>*: My Plex server uses my HDHomerun for live tv; TiVo could have been both if it was more open. A TiVo competitor to Plex's Pass + Live TV service could of been there subscription revenue, and a TiVo competitor to HDHomeRun's devices could of replaced their DVR revenue. They could take the Tivo Edge, open it way up (as the HDHomeRun takes cable and give you actual m3u8's; this lets you decide where you view or record TV, and makes the device actually useful for commercial deployments as well (offices, restaurants, dorms, hotels, etc...). Pretty much: add features similar to Plex (i.e. combining my OTA/Cable recordings with my local media) + Plex's Live TV (Tivo already has the richest data and a sleeker guide) and combine the Tivo Edge CableCard and OTA in one device. This would appeal to many users, bring the hardware price down as it's one model, and provide them with both revenue streams like they are used to.</p>
]]></description><pubDate>Wed, 08 Oct 2025 05:17:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45512336</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=45512336</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45512336</guid></item><item><title><![CDATA[New comment by mkhalil in "Doing Rails Wrong"]]></title><description><![CDATA[
<p>>> "Complexity is not inherent to web development"<p>>> "Hotwire is sort of vanilla rails and it enables you to create very modern experiences with content live updating through web sockets and it is basically a one liner to setup."<p>My point was that web development isn't complex, but the core is simple; but modern web development is.<p>Your "Hotwire is sort of vanilla rails" statement is a perfect example.<p>What you claim to be simple, is a big list of tooling, web-sockets included, integrated together. The end result is using it might be a "one-liner", but that doesn't mean it's simple. And that's OKAY. Because simplicity should be the standard; and adding things, like sockets for live updates, should be something you explicitly enable (with modern web-apis, its definitely simpler than it used to be, but that doesn't mean its simple)</p>
]]></description><pubDate>Tue, 07 Oct 2025 18:58:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45507278</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=45507278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45507278</guid></item><item><title><![CDATA[New comment by mkhalil in "Doing Rails Wrong"]]></title><description><![CDATA[
<p>This article has been re-written for over a decade.
The so-called "complexity" is just a list of tools that each solve a specific problem.<p>Tooling isn't the problem: The complexity is inherent to modern web development. You see similar "hidden" complexity in other frameworks like ASP.NET, and GUI desktop frameworks as well.<p>If you're using Rails as an API backend with React handling the frontend, it's almost a completely different application architecture than a traditional Rails monolith. So the list of tools (Vite, React, Prettier, etc..) is almost for a completely different problem (again, unless you use Rails for FE; if you want to use Rails for Frontend, use Rails for Frontend; not a fan of the mash-up at all.)<p>The real issue is learning methodology:
A lot of developers today start their careers with frameworks (point 4) before learning the fundamentals of the web (points 1-3).<p>HTML for markup.<p>CSS for styling.<p>Learning server-side logic (e.g.: <forms> can POST and can return a completely different page at the same URL) and databases for dynamic content.<p>Then, JavaScript for interactivity.<p>Embrace the tools: Each tool on the list (Vite, Tailwind, etc.) exists for a reason, and they're all necessary for a modern web application. 
Saying there are "too many" is an amateur take on the reality of the ecosystem.</p>
]]></description><pubDate>Tue, 07 Oct 2025 18:17:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=45506725</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=45506725</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45506725</guid></item><item><title><![CDATA[New comment by mkhalil in "Slack has raised our charges by $195k per year"]]></title><description><![CDATA[
<p>Unpopular opinion: I think it's wild that ANY ORG would pay $200k for a chat app.
If I ever ran an org that needed a chat app and the costs came even close to $200k a year, I would rather hire an engineer, contract a designer, and create our own, or more likely, contribute/fork an open source project like Matrix; providing us with the ability to *really* integrate it into our company/tools - as oppose spending it on IRC+ for "good enough" integration. PLUS ... our data stays on under our control.</p>
]]></description><pubDate>Thu, 18 Sep 2025 04:48:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45285523</link><dc:creator>mkhalil</dc:creator><comments>https://news.ycombinator.com/item?id=45285523</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45285523</guid></item></channel></rss>