Both of my parents are teachers of a European language. They both have phd's in linguistics, and rate very highly with students (who basically adore them).
All of this context to say that not once has anyone using Duolingo been able to "test out" of the first ("101") class that they teach. Duolingo self-learners come in with a very unequal mix of vocabulary and... not much else. Unable to use declension properly [0], unaware of most rules around gender, verb tenses, etc.
I'm sure (and I should look it up) that there have been academic papers written on these quite different methods/approaches: gamified learning vs "academic" learning, immersion by moving to a country, etc.
But in my parents' experience of teaching (which spans ~40 yrs), Duolingo students pretty much all became disappointed in the app: these students thought that they had developed skills when it turns out they mostly got addicted to a game that overpromised useful learning over entertainment.
---
Imho, the ugly truth is that language learning as an adult is deeply hard and requires a tremendous amount of effort and "tricks" to keep yourself motivated. People who watch native media with subtitles, play with AI apps (such as the YC backed https://www.issen.com/ which is quite nice), take a mix of "classic" classes, spend time in a country where the language is spoken and force themselves into situations where they "have" to speak, etc. all do much better. But it's a ton of effort.
Two quotes from the article stand out. First, from the X screenshot: "something about the process of writing makes your ideas 10x better". Second from near the beginning: "The most important person to convince is the author."
Design documents are so essential that even after mumble years in the industry, I am amazed when people, including putative "Product Managers" push back on the idea. As Leslie Lamport noted, "Writing is nature's way of telling us how sloppy our thinking is."
The structure I prefer for a technical design document is like a three-layer onion.The first layer is the problem statement, goals, non-goals, and requirements, both functional and non-functional. The next layer is the functional specification, which describes precisely how the system will work from an external perspective. The third and final layer is the technical specification, which describes the internals.
Each section should follow from the previous. The design doc should justify to the reader (and author) that the problem is understood, the requirements are necessary and sufficient, the functional spec meets the requirements, and the technical spec implements the functionality and non-functional requirements.
As a corollary, if one section has a fatal flaw, there is no need to read on. If the problem is misunderstood, then the functional spec is likely wrong. If the functional spec doesn't meet the requirements, then the implementation is moot.
The issue I see very frequently is technical design documents that provide only the final section—a simple description of the system that will be built. As a design reviewer, there is limited feedback I can provide on such a design. Sure, it's a system, but will it solve the problem? Does the team even agree on the problem to be solved?
Yes, it is 5 hours long. At least 4 of those are worth it.
Many people confuse caching with DP. I’ve had that conversation too often. I think it’s down to the memoization examples people choose being too toy and just looking like caching. Caching is global shared state, whereas memoization can be scoped to the current calculation and still be useful.
But they always skip over tabulation, which is where I believe DP distinguishes itself.
I like this article. Lots of comments are stating that they are "using it wrong" and I'm sure they are. However, it does help to contrast the much more common, "use Postgres for everything" type sentiment. It is pretty hard to use Postgres wrong for relational things in the sense that everyone knows about indexes and so on. But using something like L/N comes with a separate learning curve anyway - evidenced in this case by someone having to read comments in the Postgres source code itself. Then if it turns out that it cannot work for your situation it may be very hard to back away from as you may have tightly integrated it with your normal Postgres stuff.
I've landed on Postgres/ClickHouse/NATS since together they handle nearly any conceivable workload managing relational, columnar, messaging/streaming very well. It is also not painful at all to use as it is lightweight and fast/easy to spin up in a simple docker compose. Postgres is of course the core and you don't always need all three but compliment each other very well imo. This has been my "go to" for a while.
If you’re interested in doing local web development with “real” domain names, valid ssl certs, etc, you may enjoy my project Localias. It’s built on top of Caddy and has a nice CLI and config file format that you can commit to your team’s shared repo. It also has some nice features like making .local domain aliases available to any other device on your network, so you can more easily do mobile device testing on a real phone. It also syncs your /etc/hosts so you never need to edit it manually.
Check it out and let me know what you think! (Free, MIT-licensed, single-binary install)
Basically, it wraps up the instructions in this blogpost and makes everything easy for you and your team.
For #4 (divide and conquer), I've found `git bisect` helps a lot. If you have a known good commit and one of dozens or hundreds of commits after that is bad, this can help you identify the bad commit / code in a few steps.
I jumped into a pretty big unknown code base in a live consulting call and we found the problem pretty quickly using this method. Without that, the scope of where things could be broken was too big given the context (unfamiliar code base, multiple people working on it, only able to chat with 1 developer on the project, etc.).
I just started “Build Your Own Text Editor”[0], but using Odin instead of C. So far, I’m impressed with Odin. It’s the most ergonomic C replacement I’ve tried. I wish it had been around 25 years ago when I was professionally working with unmanaged code.
https://pragprog.com/titles/pwrdata/seven-databases-in-seven... - A book by the same name. Instead of giving you a brief blurb on each database, the authors attempt to give you more context and exercises with them. Last updated in 2018 it covers PostgreSQL, HBase, MongoDB, CouchDB, Neo4J, DynamoDB, and Redis. The first edition covered Riak instead of DynamDB.
If anyone's interested and wants to hear more, I have a mix of 92/93 era Jungle [1]
Some rough mixes here and there (especially the first one) because it was live from a NYE event. But it suits the style of music, that era was so raw and fresh, the future was being invented right there! Very happy days :)
As others have said the C4 model is a great way to address a number of these issues.
I can’t find the right video at the moment but Simon Brown (creator of C4) gives a great talk about creating his DSL, Structurizr, for C4, which he developed during COVID lockdown (if memory serves). There are many videos on YouTube of Simon talking about “C4 Models as Code” so I’m sure any one of those will suffice.
The focus is on creating the model of your system architecture, from which the diagrams you extract are a specific projection of that model. Rather than a diagram be the main artifact. It’s a simple but very powerful concept that I’m always surprised isn’t more widely used.
Structurizr models can also be exported to display as ilograph diagrams, mermaid diagrams and more.
Also very much worth a mention is icepanel, a lovely tool for architectural model that implements the C4 model heavily.
I saw Simon talk at a conference in Sydney about 10-15 years ago and heard about C4 for the first time in that talk, it’s been one of the most influential talks I’ve been to in my career as it made a lot of fuzzy things in my head all start to come together in a way that just made sense.
Personal anecdote: I've used Vim for many years, but I never progressed much beyond the basics, because I almost never put much active effort into learning more advanced motions. About a year ago, I discovered the Helix editor, which has a (IMO) genius feature, where pressing a key to start a motion or other action pops up a little pop-up box that shows all the possible options. It just perfectly clicks with my brain, I can easily ignore the pop-up once I've got the muscle memory, or I can even disable the pop-ups altogether. It's brilliant for discoverability.
With this, I've passively memorized far more advanced motions in the last 12 months than I did in the ~8 years before that. And since Helix is a vim style editor, many of these motions also work in vim!
I feel like Helix is the perfect editor for people like me who know just enough vim to be comfortable, but never got very deep into customizing or muscle memory with advanced motions. Helix does some things differently compared to Vim, which I hear puts off some more advanced Vim users.
The built-in LSP & highlighting support with a stack-based "jump to symbol" and keybinds to traverse the stack also perfectly maps to how I want to navigate code, it has made me far more productive than ever before.
I'm not affiliated with the project myself, I'm just super happy I found the perfect editor for me :]
We have effective pest control for roaches, probably developed around the same time. Using growth regulators like Gentrol make it so the cockroaches can’t breed effectively, so after a generation or two they go extinct. Somehow roaches got into our suburban home and I was able to destroy them using this method. Pesticides and roach bait didn’t do much — the growth regulators were key in permanently removing the infestation.
I’d guess the difficulty in a place like New York is similar to the problem I’m having with mice because we have a forest behind the house — an essentially endless reservoir of new roaches living in the pipes and throughout the city.
Source: was professional exterminator about 15 years ago. Growth regulators were the only thing that worked.
I just made a very cursory look into this, but this is possibly that a Group Policy default that has changed to a different setting in Windows 11 than it had been in previous versions of Windows.
It absolutely does work if you disable UAC via Group Policy, but disabling UAC in my opinion is much a step too far as that loosens security in too many areas and would greatly increase Windows 11's attack surface.
I'll open an issue to investigate trying to identify the Group Policy setting to change to specifically re-enable this behavior without disabling UAC. Be advised that it'll be a few weeks as I'll be waiting until the January patch to drop (should be January 9th, 2024) for me to test prior to the January 2024 update to the guide.
I think the best way to try this out is with LLaVA, the text+image model (like GPT-4 Vision). Here are steps to do that on macOS (which should work the same on other platforms too, I haven't tried that yet though):
One of the best things I ever did was get strong through a basic barbell training program called Starting Strength.
Squat, deadlift, overhead press, bench press, chinups, eat, sleep. It really is that easy.
Highly recommend it for anyone interested.
1. Any back pain I had disappeared completely.
2. When I have to lift something awkward (eg, furniture), I don't injure myself. If you can deadlift 200KG, awkwardly leaning over your lawn mower to grab a 20KG bag of concrete is pretty easy.
3. It is really really handy being able to move heavy things.
4. Basically everything else improves. Going for a tough hike uphill? Your legs will be a lot less sore if you can squat 150KG. Need to hold your screaming baby for 40 minutes? Easy!
The one that I find easiest to understanding is still the one that I wrote about a decade ago when I first had to work with OAuth 2. All others I understanding by mapping what they said to concepts in mine, and that seems to work pretty well.
Compared to competitors, Apple TV+ currently appear to put much more emphasis on quality over quantity in their original content. I really enjoyed some shows like Severance, For All Mankind, Trying, Acapulco, Foundation. It reminds me of the time when Netflix Originals stood for content to be excited about. What they don't have is a back catalog of licensed films and shows included with the flat rate offering (they all cost an extra fee).
All of the real meditation traditions around the world - including the ones inside of Christianity - spend decades training highly skilled teachers to help people
1) avoid problems like this, and
2) clean up problems like this when they do happen.
And even so those traditions never, ever (in my experience) describe themselves as anything other than perilous. "The way is long and narrow." "Like a snake entering a bamboo tube." And so on.
I put together a system for solo practitioners working with absolutely minimal oversight in 2015. People doing it since then, I talk to them roughly once (on average) to check they're doing it right, then don't hear back from them for years until they're getting into the weird "foothills of enlightenment" end stage stuff -- if they make it that far. Most don't, they plateaux. Which is fine, that's a good, safe place to be.
Instructions here. There's a bunch of other stuff in that same directory structure. It's fine.
YMMV, but I recommend more people try High Intensity Training (HIT). HIT explicitly contradicts several of the (well-supported) claims in the article, but I've personally found it effective, and I think there's a good case that it's a better fit for most adult lifestyles.
[ETA: Just to clarify, HIT is different from the more widely-known HIIT. This wikipedia article[1] is a good introduction, and the book "Body By Science" is an excellent deeper dive.]
I'm a 40-ish male with a long history of resistance training, and have tried many variations of sets/reps/volume/rest etc over the years.
For a few years now I've been doing a version of HIT, basically single sets (to failure), no (or little) rest between sets, full-body training once a week, supervised by a trainer. It sucks, but it's over quickly.
It's great. I'm significantly stronger than I've been in many years, have remained injury-free throughout (rare for me), and play competitive basketball several times a week without issue (beyond my inconsistent shooting).
The article cites its sources, has solid (for exercise science) evidence backing its claims, and is pretty convincing - if you're a college student with plenty of time, and you're seeking to maximize muscle growth, then yes there's a good case that you should do several workouts a week with more rest between sets.
However, if you're a working stiff who just wants to get it done efficiently, HIT is much easier to fit in a busy schedule. I think it's worth considering for the median person reading fitness articles on HN.
For most people, I suspect HIT is essentially just as effective as the type of protocol advocated in the article, but that's just a hunch and not a claim I could support with anything beyond personal experience.
"Everybody wants to be a bodybuilder, but nobody wants to lift no heavy-ass weights." - Ronnie Coleman
I have gained quite a bit of muscle mass after building out a home gym during covid. I'm no scientist but following the Reddit PPL[1] workout and eating lots of protein did the trick for me.
All of this context to say that not once has anyone using Duolingo been able to "test out" of the first ("101") class that they teach. Duolingo self-learners come in with a very unequal mix of vocabulary and... not much else. Unable to use declension properly [0], unaware of most rules around gender, verb tenses, etc.
I'm sure (and I should look it up) that there have been academic papers written on these quite different methods/approaches: gamified learning vs "academic" learning, immersion by moving to a country, etc.
But in my parents' experience of teaching (which spans ~40 yrs), Duolingo students pretty much all became disappointed in the app: these students thought that they had developed skills when it turns out they mostly got addicted to a game that overpromised useful learning over entertainment.
---
Imho, the ugly truth is that language learning as an adult is deeply hard and requires a tremendous amount of effort and "tricks" to keep yourself motivated. People who watch native media with subtitles, play with AI apps (such as the YC backed https://www.issen.com/ which is quite nice), take a mix of "classic" classes, spend time in a country where the language is spoken and force themselves into situations where they "have" to speak, etc. all do much better. But it's a ton of effort.
[0] https://en.wikipedia.org/wiki/Declension