<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: ralphstodomingo</title><link>https://news.ycombinator.com/user?id=ralphstodomingo</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 28 Apr 2026 19:47:34 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ralphstodomingo" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by ralphstodomingo in "On DMA eve, Google whines, Apple sounds alarms, and TikTok wants out"]]></title><description><![CDATA[
<p>I don't think the tech advances these companies made were irrevocably tied to the anti-competition practices. If anything, if we made it easier and cheaper for anyone to build on top of the things already existing, we could have had much more.</p>
]]></description><pubDate>Thu, 07 Mar 2024 13:06:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=39628591</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=39628591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39628591</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Ask HN: Show me your half baked project"]]></title><description><![CDATA[
<p>I am dubious about the actual value of feedback given just to trade. You want feedback coming from people looking to actually use and/or pay, not from people who also have something to sell of their own.</p>
]]></description><pubDate>Sat, 14 Oct 2023 05:28:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=37878303</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=37878303</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37878303</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Migrating Netflix to GraphQL safely"]]></title><description><![CDATA[
<p>Hmmm I'm not aware if the word 'custom' applies to resolvers - to an extent, you're always going to write them out as such for optimal benefit, can't imagine a non-custom one if that's what you meant.<p>> What’s the logical authorization entity? In rest, it’s (typically) the endpoint itself. What is it in graphql? Does a specific entity resolver have authorization? What does it look like in pseudocode?<p>You can have both API-wide and resolver-defined auth. In your graphql server config, there's a `context` config option you can pass a function to, and it has access to the whole HTTP request (typically, depends on the integration but I assume all of them treat it the same), it's where you'd probably e.g. check for auth headers and run them against db or the cache layer for auth etc. You can already throw errors and whatnot within this function, so that's the API-wide part.<p>The returned value of this context function is then included in the params of any executing resolvers, so you can have that resolver throw if e.g. the user stored in context does not have the sufficient roles to access this entity.<p>There's also directives: say you want to have an `@auth` directive that you can just slap on typedefs that makes auth logic reusable across a subset of entities, but you don't want to handle it on both API-wide and resolver levels, you just write a transform fn, register it in the config, and put that directive on the schema itself.<p>> How hard is it to write custom resolvers that also produce efficient sql? A gql query can be arbitrarily complex (ie nested), no? How to curb that complexity in practice?<p>Yes, a gql query can be complex and nested, but you only need to write the resolver in a way that all the ways you need to resolve that entity are taken into account. A query resolver returning one instance of Entity A via their unique ID in most cases is enough, for example - it does not matter how deep into the gql query the entity appears, graphql will do the heavy lifting and refer or run every resolver fn until all entities in that query have been resolved.<p>The next question is, that means graphql will hit the db one-to-many-times depending on the schema, and yes, that'll happen, but there are again, granular ways to handle that depending on the integration - Apollo at least lets you configure your own in-memory cache or use Redis for example, and be able to cache results in the schema-wide, resolver and response levels.</p>
]]></description><pubDate>Tue, 20 Jun 2023 03:09:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=36399273</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=36399273</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36399273</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "ELO Everything"]]></title><description><![CDATA[
<p>Currently in first now</p>
]]></description><pubDate>Mon, 19 Jun 2023 17:45:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=36394240</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=36394240</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36394240</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Migrating Netflix to GraphQL safely"]]></title><description><![CDATA[
<p>> simply replacing REST adds resolver complexity [...]<p>To put it simply, even with REST, you're already dealing with the concept of "how does clients get a handle of a particular entity?" With REST, the answer is usually muddled by client data fetching mechanisms and backend architecture that you've opted to use - so just because two projects are doing REST does not mean they're handling these entities in a similar, understandable nature and it requires a lot of background context, same with auth.<p>graphql makes all that a deliberate matter instead. So take whatever's in your db, decide which fields are you going to expose, and write resolvers that return just that - you can't get any more foolproof than that, it's basically the same thing you do with REST, just without all the client-side fumbling and coordination.<p>But what I'd argue the thing it does best, is that with REST, you'd probably write code for handling Entity A, and if Sub-Entity A and B rely on Entity A, you'd probably write specific code to ensure the right entities are returned in your endpoints. With graphql, you just reference that entity and it's resolved automatically, because you have written the resolver for that entity already. Resolvers have access to the parent entity that's referencing it, so if Sub-Entity B has stricter controls in what it should expose, the Entity A's resolver can be written to accommodate that (see directives among other ways for how to scale this better).<p>As for auth, whatever middleware you're already using in your REST endpoints can also be reused one way or another for the gql endpoint, no issue.<p>> this hyper graph thing is only valuable with other graphql services.<p>Even without other graphql consumers/services, there's huge value in not having to write multiple ways of handling a certain entity anymore, among other things.<p>> So, I guess graphql can be good if you marry it and go 100% all in?<p>All of my recent work related to graphql happened in projects that incrementally adopt it - there's no requirement whatsoever to fully commit to it 100%. It definitely helps that you can reuse whatever your REST endpoints use to comprise code that builds up towards resolvers, like util/helper fns. Nothing stops you from serving the same entity in both REST and graphql forms, heck there's specific usecases that benefit from it (i.e. maybe your mobile app can't keep up with it yet, and you're trying it out for web for now etc)<p>Say, in such kinds of projects, what I can recommend is identifying a subset of entities that your backend serves that you think (at least superficially) will benefit from it e.g. a relatively new entity that is essentially WIP across releases, and you'd benefit from at least not having to redo the entire REST API endpoint subset for this entity whenever you're making drastic changes, or a particularly old one that could use a rethinking anyway, among other use cases. After a couple of releases you'll get a feel for how it works, and then it'll be enjoyable to port more of the entities later on.</p>
]]></description><pubDate>Mon, 19 Jun 2023 15:55:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=36392526</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=36392526</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36392526</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Migrating Netflix to GraphQL safely"]]></title><description><![CDATA[
<p>A lot of the sentiment coming from non-gql people in this thread start with: "gql is impossible to X, Y, Z" which is immediately untrue by inference if you base it from how well existing companies in the wild have adapted to it, and provable on your own if you just went out and tried it yourself.<p>"from what I can see in the landing page, REST can do everything it does anyway" is partially true, but is not useful, because how else would have gql picked up adoption if it can't provide similar benefits as REST? I'm smelling a lot of cope from people who have buried their heads so deep in the sand that they cannot fathom a world that doesn't prefer REST anymore. At least try the tech for your own and make informed opinions.</p>
]]></description><pubDate>Mon, 19 Jun 2023 03:52:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=36387139</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=36387139</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36387139</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Growing from engineer to manager"]]></title><description><![CDATA[
<p>I agree, but ICs winging it have less potential negative impact compared to managers winging it.</p>
]]></description><pubDate>Mon, 12 Jun 2023 08:41:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=36290231</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=36290231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36290231</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Growing from engineer to manager"]]></title><description><![CDATA[
<p>Exactly, what merit is there to putting a manager that pushes failure onto the team? Might as well have the team itself report to senior management if one is too eager to get out of the way.</p>
]]></description><pubDate>Sun, 11 Jun 2023 10:22:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=36279958</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=36279958</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36279958</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Growing from engineer to manager"]]></title><description><![CDATA[
<p>With the right team/leader, there'd be room for your inputs on the matter. Even if you find yourself in a not-so-good team setup, I'd argue there's still merit in letting your opinion be known, regardless of whether you end up implementing said solution in the way you were told or not.</p>
]]></description><pubDate>Sun, 11 Jun 2023 10:18:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=36279933</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=36279933</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36279933</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Clever code considered harmful"]]></title><description><![CDATA[
<p>> Using "clever" as a criticism is implicitly an ad personam argument, passing value judgement on the person who wrote it ("Oh, they must have written it to show off") instead of an argument about the code itself.<p>I don't know how you got this conclusion.<p>I can see judgement being passed to the code with respect to not just who wrote it, but also who's going to need to understand it later, who's going to need to make changes to it. In that sense, calling code "too clever" makes sense, right?<p>There's hyper-specific reasons why you'd need code that's going to be complex/too clever for that group, esp if it saves cost or is faster than the simpler alternatives, but in most cases there's nothing that justifies it.</p>
]]></description><pubDate>Mon, 29 May 2023 10:52:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=36112689</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=36112689</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36112689</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Clever code considered harmful"]]></title><description><![CDATA[
<p>The fun, intellectually stimulating part definitely takes a back seat in priority over keeping the lights on for customers/colleagues most of the time, except in personal/weekend projects.</p>
]]></description><pubDate>Mon, 29 May 2023 10:44:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=36112626</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=36112626</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36112626</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "“Please don't waste maintainers' time on your KPI grabbing patches”"]]></title><description><![CDATA[
<p>See, this will just cause additional communication overhead for the maintainers, too. And for what benefit, just to accommodate the behavior we see here?</p>
]]></description><pubDate>Fri, 25 Jun 2021 14:47:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=27631452</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=27631452</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27631452</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Regular afternoon naps linked to improved cognitive function"]]></title><description><![CDATA[
<p>I would suggest you also look at the criticisms about the book you mentioned, Why We Sleep. I'd take the book's conclusions with caution.</p>
]]></description><pubDate>Sun, 31 Jan 2021 04:24:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=25975922</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=25975922</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25975922</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Ask HN: Who is hiring? (January 2021)"]]></title><description><![CDATA[
<p>Hi! Was really interested to send an application, but just had to confirm - are you remotely hiring only in the US?</p>
]]></description><pubDate>Tue, 05 Jan 2021 05:44:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=25642558</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=25642558</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25642558</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Ask HN: Who wants to be hired? (January 2021)"]]></title><description><![CDATA[
<p><p><pre><code>  Location: Philippines
  Remote: Yes
  Willing to relocate: Yes
  Technologies: React, Typescript, GraphQL, deck.gl/Mapbox, Electron, Node, Express, PHP, Laravel, PostgreSQL, MySQL, Docker, AWS
  Résumé/CV: https://ralphstodomingo.com/CV.pdf
  Email: yo@ralphstodomingo.com
</code></pre>
General full stack developer with particular expertise working with geospatial visualizations and web apps, primarily with JS, but have been dabbling with Python and Rust in my free time recently.<p>With 5+ years in the commercial real estate industry and experience in leading teams and projects to accomplish business objectives, also an avid learner and note-taker. Not afraid to start projects and develop organizations, but can also fit in well with existing teams. Open to work in any industry as well.<p>Currently looking for a full-time long-term engagement, in roles that will benefit from someone like me that's on the practical side of things. Always up to solve problems.</p>
]]></description><pubDate>Mon, 04 Jan 2021 17:15:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=25634459</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=25634459</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25634459</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Show HN: ML News – Like HN, but for Machine Learning"]]></title><description><![CDATA[
<p>Seeing links like these that load and then return nothing: <a href="https://mln.dev/link/ckfh0rqfr28471yyuufr7fkoa" rel="nofollow">https://mln.dev/link/ckfh0rqfr28471yyuufr7fkoa</a><p>just made me realize how much I appreciate HN even more. Stuff just loads.<p>Also, I'm not sure if it's just me, but the font used is barely readable.</p>
]]></description><pubDate>Tue, 29 Sep 2020 09:55:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=24625740</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=24625740</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24625740</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "The Almanack of Naval Ravikant"]]></title><description><![CDATA[
<p>You're in for a surprise: most of everything is shit[0] anyway.<p>[0]: <a href="https://en.wikipedia.org/wiki/Sturgeon%27s_law" rel="nofollow">https://en.wikipedia.org/wiki/Sturgeon%27s_law</a></p>
]]></description><pubDate>Mon, 28 Sep 2020 06:25:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=24613547</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=24613547</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24613547</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "The Almanack of Naval Ravikant"]]></title><description><![CDATA[
<p>This is really valid criticism which not only Naval is guilty, but most of the other intellectual personas on Twitter too.<p>I've always been interested not just in the ideas per se (which are often useful, no doubt) but also how they came to be, and I've had more than one instance where I wanted to trace back where they adapted the idea and I can't find it that easily.<p>That said, it may be the medium's fault, as the inherent character limit only allows for so much information that references and relevant information are considered way lesser in terms of priority... which in turn I think says something about the nature of ideas themselves.</p>
]]></description><pubDate>Mon, 28 Sep 2020 06:16:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=24613497</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=24613497</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24613497</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "The Almanack of Naval Ravikant"]]></title><description><![CDATA[
<p>> If Silicon Valley (the satirical TV show) had a book version, it would look something like this.<p>This can't be farther than the truth. I advise you at least try to peruse it a bit before resorting to such commentary. The point isn't to make money at all.</p>
]]></description><pubDate>Mon, 28 Sep 2020 06:10:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=24613461</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=24613461</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24613461</guid></item><item><title><![CDATA[New comment by ralphstodomingo in "Show HN: Lofimusic.app, an open source Background Music Progressive Web App"]]></title><description><![CDATA[
<p>I mean, that's standard fare these days, but going on YT with an ad blocker just to ensure a smooth, immersive music listening experience seems so... roundabout.<p>Also, I prefer to keep the ad blockers off when I'm on the site just to support those who I want to support, and I'm not on it for most of the time.</p>
]]></description><pubDate>Tue, 15 Sep 2020 10:31:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=24479675</link><dc:creator>ralphstodomingo</dc:creator><comments>https://news.ycombinator.com/item?id=24479675</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24479675</guid></item></channel></rss>