As someone who knows four languages[1] (picked every single one up during childhood) and is currently learning Sanskrit, I have to say that Krashen's input hypothesis and Orberg's Lingva Latina is probably the way to go if you are learning languages as an adult.
The direct teaching method works but is time-consuming and generally used for languages that lead to an occupation, viz. English. The grammar translation method is a waste of time. It might satisfy your intellectual curiosity about the structure of the language but you won't be able to make yourself understood after a lifetime of study. I wonder at the sheer lunacy of dumping thousands of random sentences into your lap and translating it from one language to another.
After a year and a half of false starts, I started reading a couple of Sanskrit stories every day. Because the context is maintained across the story, your brain starts recognizing patterns in sentences. You keep reading sentences like
sarvē janāḥ kāryaṁ kurvanti
sarvē janāḥ gacchanti
sarvē janāḥ namanti
and you automatically associate sarvē (all) with janāḥ (people) without needing to know the declension of those words. This applies to the cases as well.
To be able to converse about or understand a wide variety of topics, you will eventually have to move beyond stories due to restrictions on the tense/aspect/moods you encounter as a result of the nature of the material. But that is doable.
[1] Much of India is bilingual. A substantial minority might know four or more languages due to the many mother and father tongues and heavy internal migration across the states (whose boundaries were drawn on linguistic lines post-independence)
I just realized that modern web applications are a group form of procrastination. Procrastination is a complex thing. But essentially, it's putting something off because of some perceived pain, even though the thing may be important or even inevitable, and eventually the procrastination leads to negative outcomes.
Web applications were created because people were averse to creating native applications, for fear of the pain involved with creating and distributing native applications. They were so averse to this perceived pain that they've done incredibly complex, even bizarre things, just so they don't have to leave the web browser. WebSockets are one of those things: taking a stateless client-server protocol (HTTP) and literally forcing it to turn into an entirely new protocol (WebSockets) just so people could continue to do things in a web browser that would have been easy in a native application (bidirectional stateful sockets, aka a tcp connection).
I suppose this is a normal human thing. Like how we created cars to essentially have a horseless buggy. Then we created paved roads to make that work easier. Then we built cities around paved roads to keep using the cars. Then we built air-scrubbers into the cars and changed the fuel formula when we realized we were poisoning everyone. Then we built electric cars (again!) to try to keep using the cars without all the internal combustion issues. Then we built self-driving cars because it would be easier than expanding regional or national public transportation.
We keep doing the easy thing, to avoid the thing we know we should be doing. And avoiding it just becomes a bigger pain in the ass.
Spacing is a challenge. And you lose some legibility giving up proportional fonts. I think kerning in proportional fonts makes a big difference, letting your eyes recognize the shape of different letter groupings.
Monospace text is fine if you avoid long-form text, like when it's structured and highlighted in a code editor.
But it sure is pretty! Especially with Unicode charts and ASCII art.
Do you mind sharing that list of plugins you use? I have never used plugins with vim/neovim and only used them vanilla up to this point but interested in checking out the plugin ecosystem.
It isn’t for everyone, but I can’t imagine not using 1Password + Fastmail’s masked emails for registrations anymore.
All the privacy of throwaway email addresses with strong passwords. Services can store passwords in plaintext and use public blockchains as databases for all I care.
Figuring our which service leaked my email and blocking all messages from it is one click away.
If you like this kind of thing, the rest of qntm's work is definitely worth checking out - as evidenced already in several comments. Another good pointer to follow is to Unsong and Scott Alexander's other fiction (all shorts, spread through his old blog Slate Star Codex and new blog Astral Codex Ten).
Both of those were already mentioned, so let me drop a recommendation for something new - Worm, the first (and absolutely massive) book in Wildbow's Parahumans series. Iirc it's longer than all 5 published ASOIAF novels combined, so it's a big commitment, but that length moves through a ton of different arcs. It's centered around a "superheroes" kind of scenario with a level of analysis and thought that'll tickle the fancy of certain kinds of nerds. The main character's power is to control bugs - and it's a lot of fun to see the author make that seemingly lame power into something incredibly useful and lethal. It's just a fun read overall, lots of room to nerd out about it. I haven't read the sequel yet, but I've read good things.
Also, though they're more mainstream, Greg Egan and Ted Chiang are some of the best spec-fic / sci-fi authors I know of, and do a similarly great job of breaking down interesting concepts into compelling stories.
This extraordinary book from Frances Yates explains how before writing, scholars and story tellers would visualize architecture so they could store memories in rooms, then they would walk from room to room and recover memories, for example to tell very long stories.
It's been posted on HN before but it's probably relevant to this thread. Steve Yegge had a post about how Emacs was used heavily inside Amazon's customer support system https://sites.google.com/site/steveyegge2/tour-de-babel
If you are new to Clojure and would like to experiment with it in a way that is immediately useful, I highly recommend the Babashka runtime for scripting [0]. It's very fun, approachable, and one of the more polished parts of the Clojure ecosystem.
It's a particularly good entry point because unlike full-JVM Clojure it has a very fast startup time. Newcomers can use any file-watching /reloading tools (e.g. nodemon) that they're already familiar with to work with it interactively.
Hopefully, a enthusiastic user will graduate to using a REPL connection in their editor for a fully interactive setup. But newcomers tend not to do this... its an unfamiliar workflow to most, and can be pretty cumbersome to setup.
It is interesting to see most people lay the blame at the feet of developers.
The reality is that these are all business decisions:
1) Move to the cloud because the business likes the steady payout of subscriptions. Business customers love not having to hire IT teams and demand six 9s of uptime because it is someone else’s responsibility. But performance needs to just be acceptable to end users.
2) Customers refusing to upgrade on-premises software, that led to long maintenance cycles and endless patches
3) Developing once for the web vs. Multiple times for different platforms – each needing its own developers and testers.
No amount of expertise on the part of developers is going to address these fundamental forces.
When I took Fundamentals of Programming Languages 20 years ago - I nearly failed the class. Lambda calculus was simply too esoteric for me to appreciate and much less understand intuitively.
Fast forward 20 years, and I see the fundamentals of Alonzo Church’s system in every computation problem I encounter. It’s one of those concepts that age like wine. The only other concept I put on the same level is Shannons “informational entropy” and maybe Wolfram’s Ruliad.
This is a cute categorization. The stories they tell are charming and reinforce the categorization. But, I've never found things to be so cut an dry. For example, a lot of the work we did in AWS often fell into the hair on fire category, and the products that showed future vision e.g. AWS Glue, Aurora, DynamoDB were the ones that rose above the noise.
It mostly boils down to this: delight customers and iterate as fast as you can.
Figured I'd mention an open source guide of mine here, as I expect I'll have a way to disable these ads without any third-party tools, as I have done to address all the other things so far:
------
So I had many of the same concerns regarding Windows 11's nonsense when it came out, but I sat down, learned how to clean it up, and put a Creative Commons open source guide for others to follow. I knew many other reluctant friends who are senior devs at prolific companies in the tech space, and with my guide they seem to have no real remaining complaints.
It covers both the initial installation, as well as all my post-install recommendations. It eliminates I believe all the tracking, adware, suggestions, Cortana, feeding the Bing/ChatGPT machine, telemetry, etc. Absolutely nothing breaks. No need for a Microsoft account. It should be straightforward and to-the-click/keystroke.
Any study recommendations (beginner friendly to advanced) on this topic i.e. Probability/Randomness and Computation?
Google brings up Probability and Computing: Randomization and Probabilistic Techniques in Algorithms and Data Analysis by Eli Upfal and Michael Mitzenmacher but i can't find any beginner/introductory books/articles/videos.
I used to be very impressed with people that wrote programming books, spoke at conferences, and so on. Decades on, I look at the best programmers and managers I’ve ever worked with and notice they’ve never done these things. On the flip side people I’ve worked that were always off doing this kind of thing never seemed all that impressive when it came down to building our products and business.
There’s only so many hours in a day—-are you using them to build software or your personal brand?
One engineering leader I worked with lost out in a corporate power struggle and left to “spend more time with his family.” While he was doing that, he produced a series of blog posts. Once he found his next role the posts petered out. This strikes me as a publication model for actual high performers.
Humans seek work that provides satisfaction and meaning in their life.
For every technological advancement, artisans are the first to be made obsolete.
Sure we have landfills full of unworn textiles, the market says its good, but overall, we keep destroying what allows humans to seek meaning.
Our governments and society have made it clear, if you don't produce value, you don't deserve dignity.
We have outsourced art to computers, so people who don't understand art can have it at their fingertips.
Now we're outsourcing engineering so those who don't understand it can have it done for cheap.
We hear stories of those who don't understand therapy suggesting AI can be a therapist, of those who don't understand medicine suggesting AI can replace a doctor.
What will be left? Where will we be? Just stranded without dignity or purpose, left to rot when we no longer produce value.
I ask this question often, with multiple contexts, but to what end? Who benefits from these advancements? The CEO and shareholders, sure, but just because something can be found for cheaper, doesn't mean it improves lives. Our clothes barely last a year, our shoes fall apart. Our devices come with pre-destined expiration dates.
Where will we be in the future? Those born into money can continue passing it around, a cargo cult for the numbers going up. But what about everyone else?
If you work at a company where software is a cost center, then I think you should be. Those companies will try to reduce software costs as much as they can. Non-technical executives who don't understand software will be particularly prone to shoving as much AI in as possible. I think this will lead to the same outcome as the first wave of outsourcing - garbage software that opens the door for technical startups to disrupt incumbents.
If you work at a company that sells software products, there is still a lot of value in craftsmanship and experience. AI will be an accelerator for high performing engineers to be able to do their job more effectively
All the time. I think it's a great way to "learn" the environment you're coding in sometimes.
When I was first learning PHP I spent a year or two without a debugger. The first time I tried one I learned about a whole bunch of global variables I had no idea about.
I recently set up nvim-dap and have wonderful debugging experience while still in the "purity of not using IDEs or debuggers" realm.
> The beauty of Scheme is that the full language only needs 5 keywords and 8 syntactic forms.
Is there a learning resource that covers exactly this for those wanting to write software in lisp in 2024?
As "first principle thinkers" in some ways all hackers crave for that "fundamental building blocks approach", a bit like wanting to know how we go from transistors to full computers and every step along the way. Most of us have made peace with accepting the many abstractions because we're slinging highly abstracted mostly python, and javascript code at startups.
So learning Lisp seems like a nice digestible point to start from along the continuum if indeed there's some eloquent way to learn:
>only needs 5 keywords and 8 syntactic forms.
I worked in climate policy for awhile. I got out of it because I lost hope. I believe our governments have lost hope also. Covid taught us that if they inflict the necessary pain to control carbon, our governments will be consumed by populist anger. Only the Chinese system appears to have any hope of controlling people’s behavior that much without riots. And what a terrifying system! Even their control began to slip after a few years of zero Covid.
We will just have to deal with the consequences while we try to innovative our way out of this mess. It’s made me a AI accelerationist. Of the two civilizational dooms, I’ll take my chances with the computers.
The dominant shift in the internet of the last ten years was monopoly consolidation and a dramatic reduction in access to information since almost all of it is behind their walls.
Mobile has extended these walls with mafia racketeering app stores and absolutely atrociously designed gambling-addict games, information stealing, and outright fraud.
The dream of the internet died completely about five years ago.
This overpaid google shill isn't worth listening to. Google had about a decade of plausable deniability on "do no evil". They stopped the charade, and we know what they are. Like sociopaths always do, they tell you and you should listen.
AI is an even more intrusive, dangerous penetration and control of our lives, and a massive power grab by these tools of the very very very elite few.
The guy is right: the internet WAS about access to the evolving body of human knowledge, WAS about sci-fi level capabilities and conveniences, and WAS a miracle.
WAS.
AI is the rocket fuel that accelerates the vector from the momentary point of near-idealism to the dystopian corporate control we are currently mostly in, that as a DOUBLE BONUS serves as fine grained total information awareness for all the state actors of the world, and likely a worldwide destruction of the last semblances of democracy.
The direct teaching method works but is time-consuming and generally used for languages that lead to an occupation, viz. English. The grammar translation method is a waste of time. It might satisfy your intellectual curiosity about the structure of the language but you won't be able to make yourself understood after a lifetime of study. I wonder at the sheer lunacy of dumping thousands of random sentences into your lap and translating it from one language to another.
After a year and a half of false starts, I started reading a couple of Sanskrit stories every day. Because the context is maintained across the story, your brain starts recognizing patterns in sentences. You keep reading sentences like
sarvē janāḥ kāryaṁ kurvanti
sarvē janāḥ gacchanti
sarvē janāḥ namanti
and you automatically associate sarvē (all) with janāḥ (people) without needing to know the declension of those words. This applies to the cases as well.
To be able to converse about or understand a wide variety of topics, you will eventually have to move beyond stories due to restrictions on the tense/aspect/moods you encounter as a result of the nature of the material. But that is doable.
[1] Much of India is bilingual. A substantial minority might know four or more languages due to the many mother and father tongues and heavy internal migration across the states (whose boundaries were drawn on linguistic lines post-independence)