1,073 karma · joined November 2, 2008
I’d argue that relying on a tool like cursor to bang out whole routines and types, just using it as “advanced intellisense”, takes away from you truly understanding the solution you’re putting together. It’s fantastic if they make you more productive in the short term, but in the long term, if the generated code is convoluted, difficult to revisit, that’s where you (or a future maintainer like OP) are going to kill time.
You have to admit, there’s something appealing about being able to read the entire spec for a popular, performant, production language over a lunch break. You don’t need to read and/or master a language’s specification in order to use it. But at 130 pages, you can.
[0] https://go.dev/ref/spec [1] https://docs.oracle.com/javase/specs/jls/se23/jls23.pdf
Java-style OO has a place, but it’s not always a perfect fit. Java, C#, and arguably C++ have taken a kitchen-sink and grafted any and all constructs found in other languages so long as they look remotely useful. The result often is useful, but it also results in a more complex language.
While Go isn’t a perfect language, nor is it a great language, I /have/ found it to be a productive language in ways that Java, python, ruby, etc. are not. I attribute this productivity boost to the simplicity of the language (if not the runtime) and to the conservative approach taken to add new features.
Along the lines of magical realism, Kurt Vonnegut seems like a great recommendation too. His books incorporate a bit more sci-fi - Galapagos, Cat’s Cradle, Sirens of Titan, slaughterhouse five, …
https://www.youtube.com/watch?v=nCyzrie_les&list=PLR7yrLMHm1...
Takeaway: Jared Diamond’s Easter Island collapse theory seem remarkably out of touch.
> This is exactly the confusion caused due to mismatched terminology. In the explanation the "client" is a browser. But obviously the browser isn't an active participant in the exchange.
The browser is also understood as a client in other similar exchanges [0]. There shouldn't be much confusion on the term, at least from a developer perspective.
> The actual client of the banking service is the human looking at the browser.
I don't see it this way. The article is clear about what the term "client" means (e.g., "a proper hypermedia client...", "...the client would render this new HTML...", "...the client must know how to interpret the status field...")
It's also clear from Fielding's thesis itself, referenced in the article, what a "client" represents in its description of REST as a "client-server architecture" with hypermedia as a "client-server constraint" [1].
There is confusion about REST as a term. I don't believe it's due to mismatched terminology or a misunderstanding of the term "client" in the context of REST as a network/web architecture.
> The human knows how to react because they know the English word "deposits" and can continue this game of adventure by interpreting whatever comes back, again based on English labels.
The user of a (web) client isn't relevant in this case, nor is it how the user interprets what comes back. The point is that the (web) client can interpret a hypermedia response without any additional knowledge. The (web) client can make any additional actions available to the user without further interpreting the response as it would with the JSON version.
> Now consider how you'd write a script for a computer to use this "API" in automated fashion.
Now, your script is the client, not the browser, and your script is responsible for parsing the relevant data, following links, etc. How it works with RESTful responses and payloads is entirely up to your script. That said, it seems similar to a JSON response, you'll parse out the bits you care about and proceed accordingly.
> ...The area of controversy is how computers should talk to each other. Another way of saying this is that the concept of "self-describing" data is a handwave that is doing a huge amount of work here.
I disagree, but I can see where you're coming from.
Machine-to-machine communication using hypermedia rather than JSON _still_ strikes me as "self-describing" in the sense that being able to locate, navigate, and act on the resources that hypermedia represents is what a "proper hypermedia client" is designed to do. You can still access the API programmatically, but now you have less parsing to do, and things like navigation and resource manipulation come for free. By that I mean there is no need for a dedicated API client that solely speaks the JSON-RPC dialect of the particular API you are accessing. (I'm thinking of "RESTful" API clients I've recently had to work with in one way or another: Box, BusinessCentral, Azure, DocuSign, etc.)
I don't interpret "self-describing data" in the context of a network architecture to mean that the (web) client has attained enlightenment and suddenly knows what deposits and withdrawals are. There shouldn't be too much confusion on that point, even with the most superficial reading. Fielding describes "self-descriptive messages" as simply a RESTful constraint - not magic. You (through a [web] client) ask for deposits, and you receive a response containing details about a deposit and/or ways to manipulate those data further. How the user interprets the message, what they do with it, isn't interesting. What is interesting is that user will work with the resources through a web client: a RESTful web client can interact with a RESTful resource without additional "out-of-band" knowledge in the form of, say, JSON parsing and buckets of javascript imposing some RPC logic.
[0] https://datatracker.ietf.org/doc/html/rfc6749#section-1.1
[1] https://ics.uci.edu/~fielding/pubs/dissertation/rest_arch_st...
(fta) > The client knows nothing about the API end points associated with this data, except via URLs and hypermedia controls (links and forms) discoverable within the HTML itself. If the state of the resource changes such that the allowable actions available on that resource change (for example, if the account goes into overdraft) then the HTML response would change to show the new set of actions available.
> The client would render this new HTML, totally unaware of what “overdraft” means or, indeed, even what a bank account is.
So the client doesn't understand what a deposit is, but it doesn't have to. The response provides actions that the client knows how to incorporate and navigate. The alternative being a JSON response that is completely opaque - requiring additional parsing, explicit interpretation, and templating/interpolation, and DOM insertion before it's useful.
A RESTful web client speaks hypertext. JSON-RPC is useful, but is not RESTful in the original sense of the word.
[0] https://www.bleepingcomputer.com/news/security/auth0-warns-t...
LunarVim is my daily driver, but Helix is screaming fast compared to it in many cases.
[0] https://azpbs.org/horizon/2022/06/saudi-water-deal-threateni...
“We’re humanitarian and noble, we’ve no intention of subjugating other races, we only want to impart our values to them and in return, to appropriate their heritage. We see ourselves as Knights of the Holy Contact. That’s another falsity. We’re not searching for anything except people. We don’t need other worlds. We need mirrors. We don’t know what to do with other worlds. One world is enough, even there we feel stifled. We desire to find our own idealized image; they’re supposed to be globes, civilizations more perfect than ours; in other worlds we expect to find the image of our own primitive past.”
Instead, you leverage what you already have - any modern product is already going to have a web interface. The idea of packaging that interface into a self-contained desktop application with little to no additional effort is just too appealing. Sure, everybody else screws it up when attempting this route, and performance becomes a huge problem, but surely your team will do it right. And besides, webdevs are a dime a dozen compared to C++ guys (and fluent on two or three platforms? Good luck. You’ll pay through the nose the get them and more to keep them.)
Video playback and taking calls on a second, larger (40” 4k) display, have improved slightly but are still bad enough that I’d rather move the app to the laptop’s display (32gb mbp mid-2020)
I do think it’s a second-rate app compared to most of Microsoft’s usual offerings - OneNote being a notable exception. Other than the video item above, I’ve found overall performance to be adequate and not remarkable one way or the other.
> As India transforms, one might expect caste to dissolve and disappear, but that is not happening. Instead, caste is making its presence felt in ways similar to race in modern America: less important now in jobs and education, but vibrantly alive when it comes to two significant societal markers — marriage and politics…
> Inter-caste marriages in India are on the rise but still tend to be the province of the liberal few. For much of the country, with its penchant for arranged marriages and close family ties, caste is still a primary determinant in choosing a spouse…
…and a bit more. Why do you believe caste discrimination isn’t real? That seems like a strong stance.
https://www.youtube.com/watch?v=tVo_wkxH9dU
It’s a family affair in Switzerland, unlike “large spaghetti plantations” in Italy.