[1] https://www.craftinginterpreters.com [2] https://github.com/search?q=crafting+interpreters
522 karma · joined May 22, 2010
[1] https://www.craftinginterpreters.com [2] https://github.com/search?q=crafting+interpreters
This discussion did lead to me to find a particular touchscreen test video by Moto Development Group <https://www.youtube.com/watch?v=JR1sJhtgkK4> -- their blog disappeared when they were acquired, but apparently their youtube channel [1] wasn't deleted. I used to link to that blog post to point out how bad the touchscreen drivers were in certain phones.
Anyway, if you have more questions feel free to send to tp at tompark.com and I can try to connect you with someone who knows the answer.
> Was your Treo also a Windows Mobile device or the PalmOS version?
I'd given up on Palm long before they switched to WinMo. But it that was computing history repeating itself, where previously Apple's problems with System 7 led to the consideration of BeOS, Solaris, and eventually the acquisition of NeXT.
> Didn't RIM perfect the convergence of PDA and phone or did Blackberries have their own issues?
Blackberries were perfect as messaging devices. The carriers had a special class of messaging devices to be sold to customers who wanted hardware qwerty keyboards. Blackberries were definitely best-in-class of that category.
But it was simply a different story once there was a phone with a near desktop-class browser, not to mention a GPU, and a pre-emptive OS with memory-protection, whose system developers who had years of experience with a similar OS. The phone manufacturers were simply out-classed. It doesn't surprise me that Google was the one to step up (or, well, the Danger/Android guys), because you had to have that kind of expertise to match Apple. Even then, it took Google until about 2012-2013 before Android was nearly on-par with iPhone. When Jobs said Apple had a 5 year lead on everyone else, he nailed it.
> Were those proprietary OSs a form of *nix, TRON, or something else entirely? I thought Motorola's RAZR phones, like the Sony Ericssons, licensed Symbian from Nokia, but I could be mistaken.
No idea about the proprietary OSes. The early RAZR always struck me as a digital form of the analog StarTac. It was amazingly thin, but not great for anything else. It looks like there was a Linux version [1]. And you're right, in 2009 there was a Symbian/UIQ version [2].
> How deep into the hardware were you when you were building games for those platforms (e.g. ARM asm, special undocumented microcode, etc.)?
Not at all. You could code in assembly for BREW, and some game developers I knew did that for a few inner loop routines, but I never bothered. As far as access to phone internals, you pretty much needed a special relationship with the manufacturers. The game publishers I worked for did get pre-loads on phones, and sometimes that did require some hardware-specific work. Once when Nokia was attempting to make CDMA phones, we got preloads on one of their phones and I found out that their version of the OS had no way to relocate memory so everything had to be pre-allocated a special way. Before I worked for the game publishers, I worked on MobiTV's BREW client and they got some kind of preload deal with Qualcomm, which led to me getting access to their hardware video decoder, but it had an API. It was a little annoying because it wasn't designed for streaming, so the entire chunk of video had to be fully downloaded before it would play.
> Were gaming phones like the N-Gage or Xperia any better than their purely mobile counterparts in coding or feature-set?
Yes, but we never made special games for them. The N-Gage could run J2ME, and so we just ported J2ME games to it, even pre-loads.
> While you had those Japanese phones in your hand, did you try iMode or play any games on them? Any models that were notable to you in '99? Any features you were hoping would make it stateside?
Honestly I had a hard time understanding what I was looking at. One friend had one that looked more like a short colorful ruler than a phone. She hung it from her purse with trinkets hanging off of it. At the time ('98-2000) I was living in Sāo Paulo, consulting for BCP Telecomunicações (now Claro Brasil) on one of the largest cellular deployments of its time (later to be dwarfed by ones in China and India), and the phones in Japan were utterly different from anything in Brazil or the US. Japanese phone culture was so alien at the time, the way people accessorized them and messaged each other. Emojis didn't exist elsewhere.
> Did you ever work on older mobile systems like the Apple Newton, EPOC32, and GEOS/Palmtop PCs?
Nope. I mostly worked on PC games during the 90's. I did have an Apple Newton though. I think I might still have it, somewhere in a box in storage.
[1] https://en.wikipedia.org/wiki/Motorola_Razr2 [2] https://en.wikipedia.org/wiki/Motorola_Razr3
Non-smartphones had a proprietary OS (to handle the phone functionality, SMS, contacts, call history), but licensed Sun's J2ME and/or Qualcomm's BREW to run downloadable apps/games. I don't recall those manufacturers having smartphones before 2007.
> What company were you working for that gave you access to so many phones at once?
I worked for two mobile game publishers, Mforma (renamed to Hands-On Mobile) and Digital Chocolate. Prior to smartphones, mobile operators/carriers ran phone app stores like game consoles. They partnered with select game publishers to stock their app stores. Premiere publishers had to commit to deliver multiple games per month and support a minimum number of phones. For example, our delivery commitment to just one US carrier (Verizon) was two new games per month, supporting over 40 handsets. The handset list got updated every month. We received new phones weekly. By 2010 we had huge boxes filled with old discontinued phones and their proprietary chargers. Every carrier had unique handsets, each handset had unique bugs that thwarted you from putting a generic game build on it. It wasn't just differing screen sizes, they'd have different codes from the keyboards, vastly different memory and speed configurations. Because of these kinds of demands, during the 2000's mobile game publishers went through consolidation and acquisition of mobile game studios all over the world -- e.g. Mforma had studios in Manchester and Seoul; DChoc had studios in Finland and Barcelona, and set up porting shops in Bangalore and Mexicali. Supercell (Clash of Clans) was formed by former DChoc developers at the Finland studio.
> Did you ever work with Japanese phones models (NEC, Kyocera, etc.)?
Not really, only rare ones that were offered by US carriers, and only to port a game to it. But in 1999, I was in Japan at a reunion (I attended high school in Yokohama) and had a chance to play with a couple phones there. They were cool, very slim phones with all kinds of functionality.
> While you've said quite a bit about how easy the Palm was to use, which was the best one to work with? Or, at least, which one would have been a hacker's choice.
There were other different PDA platforms like Msft PocketPC and Sony Clié, but I had developed an app only for PalmOS. It was possible to use GCC[1], but I bought Metrowerks Codewarrior. I suppose nowadays that's like buying an IntelliJ IDEA license. (BTW, when I got into doing BREW development, the compiler cost $2500, and that was after a discount that Qualcomm got from ARM for a special limited-function edition of their compiler.)
Here's an example of how phone platforms were so behind on computing. PalmOS had its contacts/calendar/notes functionality on device but you could also run that on Windows/Mac in an environment called Palm Desktop. It wasn't obvious to phone manufacturers that they had to do anything similar. In 2005 I had a Nokia 6620 (Symbian Series 60), and accidentally deleted a contact. To restore it from a backup was convoluted. The last backup I had was a couple months old. It was a monolithic binary image that restored in one block to the phone, wiping out any information that was entered after the backup was made. So first I had backup the phone, restore the older backup, get the one phone number that I needed, then restore the backup I'd just made, and type in the phone number into the phone again. Later they developed something like Palm Desktop but it was years later.
[1] https://web.archive.org/web/20000819061955/http://www.palmos...
One of the reasons for all this speculation is that smartphones totally sucked back then.
Russell Beattie, one of the main mobile/smartphone bloggers at the time, wrote a great piece in 2004: "Steve Jobs has a mobile phone. I'm not sure which mobile phone it is, but he's definltely got one. And he hates it. He curses at it every day. He hates it like he hated the original IBM PC. He hates how hard it is to add contacts and make calls and he cringes at the web experience and the Java games, if he's even bothered to try them. He holds it in his hand during long trips and admires some things about it, but knows he could do it better. He knows that if Apple decided to make a mobile phone, it would be the most intuitive and elegant mobile phone in the world."[2]
It's hard to understand how bad the situation was without actually using the mobile computing technology that existed at the time. In the late 90's, I had owned a couple generations of Palm PDAs, which were pretty good, but I stopped carrying a PDA around because I didn't want to fill my pockets with both a Palm and a Nokia flip phone. I started developing mobile apps in 2002 (mostly BREW/J2ME, later Blackberry/Symbian/WinMo), so I was in the industry and had access to literally 100's of phones of every type. They were all terrible. By the late-2000's I had been waiting 7 years for a phone that was as sleek and usable as a Palm PDA.
My work phone was a Samsung Blackjack (Windows Mobile). If the screen brightness was set to anything bright enough so it was visible indoors in a brightly lit room, the battery would die in 3 hrs. Even when I dimmed it so it was hard to read (indoors, mind you), the battery life was barely over 4 hours. It was slow and flakey, and I only used it to read email occasionally.
My personal phone was a Sony Ericsson M600. I bought it in 2006 despite knowing Symbian was terrible (based on my experiences with Series 60 and 90 devices), because I had gotten tired of waiting for a decent smartphone, and this one was thin enough to fit easily in a pocket. But it sucked. Totally unreadable screen outdoors. Unusable as a pocket computer.
You'd hear nice things about Danger Hiptop/Sidekick, but that was mostly due to the ease of typing on the keyboard. Same with Blackberry keyboard along with the scroll wheel. Usability-wise, the Palm Treo was nice, but it was fat and clunky, with a non-preemptive OS that kept crashing. Oh also, people liked those phones because they were much, much better at messaging. On WinMo and Symbian, text messages used to be like email. You could not view your text conversation with a person in one scrolling view -- instead, incoming messages went to an inbox, and your outgoing messages were in a sent folder.
So when I saw the iPhone keynote in 2007, I was blown away. It looked amazing. I was not expecting a non-stylus phone. I had no doubt that I'd get one, but at $700, it was out of my budget. A few months later Apple dropped the price to $400 so then I immediately bought one, and it was just amazing in hand as in the keynote.
It was interesting how there were a lot of people who were still skeptical about the iPhone. It took years before it seemed to dawn on everyone in the industry that the iPhone would destroy Nokia, Blackberry, and Windows Mobile.
Every phone manufacturer was desperately trying to make a touchscreen phone that was anywhere near as good, but it took them years to figure it out, and some never did. They were quick to copy the form factor with a big touchscreen, but there were so many details that made the whole experience. It wasn't just the touch UI or things like the dynamic keyboard's dynamic touch areas, there were numerous other aspects that didn't get copied until years later. The non-user-replaceable battery life. The way a photosensor adjusted the screen brightness based on ambient light, and turned off the screen when pressed against your ear. The debate over capacitive vs resistive touchscreen technology [3].
There are very few times I've seen something that was as totally disruptive. You might have been too young to remember the iPhone in 2007, but you might be more aware of how Tesla Model S was winning street races and winning safety awards, until finally all the automotive manufacturers capitulated and announced plans to start building EVs? And certainly you're aware of SpaceX's rise to dominance in the space launch market, or how Starlink is disrupting satellite internet service. The iPhone was sort of like that, but the competition was much worse, if you can imagine that.
[1] https://www.fakesteve.net/2006/09/tabula-rasa.html [2] https://www.russellbeattie.com/blog/1008182 [3] https://web.archive.org/web/20100327033813/http://labs.moto....
What about Agda? I was impressed how Agda allows you to use a lot of Unicode operators and ascii character sequences to do the same thing (e.g. → and `->`). Not sure about the situation he mentions above, but I'd bet Agda supports it too.
First, in Chapter 3, he introduces "light NREM sleep" as stage-2 NREM, while "deep NREM sleep" is stage 3-4 NREM.
Then, throughout most of Chapter 6, he says that you get a huge "memory restoration" benefit from light stage-2 NREM, due to sleep spindles:
* "The memory refreshment was related to lighter, stage 2 NREM sleep, and specifically the [...] sleep spindles."
* "The more sleep spindles obtained during sleep, the greater the restoration of learning."
* "The concentration of NREM sleep spindles" happen in stage-2 NREM, and you get the most of this type of sleep after 6 hrs of sleeping.
* In the first 6 hrs, you've gotten all your deep NREM sleep: "we obtain most of our deep NREM sleep early in the night, and much of our REM sleep (and lighter NREM sleep) late in the night."
* "Sleep six hours or less and you are shortchanging the brain of a learning restoration benefit that is normally performed by sleep spindles."
* Furthermore, stage 2 NREM is important for other kinds of restorational benefit: "The increases in speed and accuracy, underpinned by efficient automaticity, were directly related to the amount of stage 2 NREM, especially in the last two hours of an eight-hour night of sleep [...]. Indeed, it was the number of those wonderful sleep spindles in the last two hours of the late morning—the time of night with the richest spindle bursts of brainwave activity—that were linked with the offline memory boost."
So he firmly establishes this point about light NREM sleep throughout Chapter 6.
However, but there's a section ("SLEEP-THE-NIGHT-AFTER LEARNING") where he makes a big deal about the distinction between deep NREM and light NREM sleep, calling it a "battle royal":
> You will recall from chapter 3 that we obtain most of our deep NREM sleep early in the night, and much of our REM sleep (and lighter NREM sleep) late in the night. > After having learned lists of facts, researchers allowed participants the opportunity to sleep only for the first half of the night or only for the second half of the night. In this way, both experimental groups obtained the same total amount of sleep (albeit short), yet the former group’s sleep was rich in deep NREM, and the latter was dominated instead by REM. > The stage was set for a battle royal between the two types of sleep. The question: Which sleep period would confer a greater memory savings benefit—that filled with deep NREM, or that packed with abundant REM sleep? > For fact-based, textbook-like memory, the result was clear. It was early-night sleep, rich in deep NREM, that won out in terms of providing superior memory retention savings relative to late-night, REM-rich sleep.
This doesn't necessarily contradict the idea that the spindles during light NREM sleep are restorative, but it says light NREM is less effective than deep NREM, and then he doesn't cite any more research on deep NREM's memory benefits. In chapter 7 he focuses on how deep NREM sleep has other benefits. The author does mention "deep NREM sleep" as important for cognitive benefits later in the book when it seems he meant to say "light NREM sleep".
Also, to say they allowed participants to sleep "only for the second half of the night" is strange, and I don't know what that means. Looking at the original study https://www.jstor.org/stable/1414040 it looks like there were ONLY TWO subjects, and it's not clear to me that this study was described accurately by Walker.
If this point was already discussed elsewhere, I'm not aware of it, and would appreciate a link.
It's bewildering to me that anyone can get offended (to vehement profanity) by the text. At the same time, I'm kinda used to criticisms of the mobile game industry. When I switched from a job in AAA games to the nascent mobile games industry (back in J2ME/BREW days, before smartphones), a number of former colleagues were questioning and even dismissive of my move. They did not consider such a crappy platform as worthy of a game developer. I didn't blame them for having that attitude. I just thought it was fun to be able to make and design games all by myself (instead of being on a team of over 90, about half being programmers) and be able to carry them around in my pocket!
https://www.newyorker.com/magazine/2008/10/20/late-bloomers-...
> Ben Fountain did not make the decision to quit law and become a writer all by himself. He is married and has a family. [...] “When Ben first did this, we talked about the fact that it might not work, and we talked about, generally, ‘When will we know that it really isn’t working?’ and I’d say, ‘Well, give it ten years,’ ” Sharie recalled. To her, ten years didn’t seem unreasonable. “It takes a while to decide whether you like something or not,” she says. And when ten years became twelve and then fourteen and then sixteen, and the kids were off in high school, she stood by him, because, even during that long stretch when Ben had nothing published at all, she was confident that he was getting better.
Just a few months ago I read a blurb (in Scott Young's Ultralearning) about Eric Barone's 5 yr effort to build Stardew Valley. Amazing story. Imagine resisting the pressure to take "a real job" for 5 years so you can work on a game.
For many years one of my favorite talks about indie games development was Jonathan Blow's speech at UC Berkeley CSUA (2011) (http://the-witness.net/news/2011/06/how-to-program-independe...)
Initially I loved his main message during the talk: "You have to be brutally effective to finish a project in a reasonable amount of time."
But there's a part in the Q&A that later grew to be even more poignant to me:
https://www.youtube.com/watch?v=JjDsP5n2kSM#t=1h13m8s
> Q: You said you worked on many projects before Braid which didn't quite get completed. What was special about Braid which made you complete it?
> A: What was special was it had been a long time since I'd finished anything on my own, and I sat down and decided that "Dammit I'm going to finish something this time". And, "To that end, so I can finish this, I'm gonna make something that is technically pretty simple"...
For some of us, it's REALLY HARD to complete a side-project while working full-time job. For most of my career I had completed a real game only when it was for a job (or for a client) and I worked on it full-time.
The single reason I hadn't made a game as a side project was because I'd quit before I finished. I finally figured out something that worked for me, and it was counter to all the advice I'd heard. I'm sure this is different for other people, but for me the key to working day after day consistently (not quitting) on a project while working full-time was to eliminate all the "shoulds".
When my conscious brain is always telling myself that I should do the project a certain way, my subconscious rebels and suddenly I become unproductive. There's a ton of great advice out there such as: "Don't reinvent the wheel, build your game not a game engine." The problem is sometimes my subconscious wants to build the game engine, not the game. I can coerce it to do the right thing when it's for an employer, but it's a different story for a side project.
Ever since I stopped "should-ing" myself, I've become much more consistent and productive on side projects. If you want to make games on your own as an engineer, but are having trouble forcing yourself to spend a couple hours every day on it, then I'd suggest that you try to just code whatever the hell you want to code instead of the thing you're supposed to code. You may find, like I did, that it's better to gain some coding velocity, because this velocity gives you the momentum fly over humps that you weren't able to overcome back when you were trying to start working on your game from a standstill.
The times I rented/hired a campervan in New Zealand and in Iceland, they were manual transmission. I heard recently the ones in New Zealand are automatic nowadays. (That's good because I wasn't used to shifting with my left hand and was kinda freaked out for the first half hour or so of driving.)
A guy I knew had volunteered on Lesbos during the refugee crisis and can't drive a stick so he couldn't drive there. The availability of rental cars on islands can be pretty limited. A couple years ago I was on Madeira and apparently the only affordable rentals there are manual transmission subcompacts.
It sounds like you already have figured out a lot about dealing with inventory, but if you haven't already, you might be interested in reading up on operations management, or watching some youtube videos/lectures about it (e.g. Q,R inventory model vs Newsvendor model).
For anyone else interested, J.Vidal has a repo full of NetLogo examples at: https://github.com/josemvidal/FMAS
And he has a Youtube playlist (34 videos) on this topic at: https://www.youtube.com/watch?v=D9iD72cuh98&list=PLSx7bGPy9g...
Off-topic, but how does the exact same URL get submitted again within a day? Do you need a certain level of karma to do that?
It's not a perfect metaphor but it's an easy-to-grasp mental model for explaining certain Lean Startup concepts. Coincidentally, I am currently developing an online poker game (literally! that was the main reason I clicked on this link). Today in a conference call with my project partner, we were talking about what hypothesis-driven goals we had for pre-launch testing, and I was glad I saw the article because it was like an abstract mini-refresher.
I don't use SSBs to eliminate UI. On the contrary I usually keep the tabbed browser UI in a SSB.
I like SSBs because I can remain logged-in to a site without those cookies being available to a browser that I'm using across the open web.
Also I can clear all the cookies on my regular browser and not get logged out from the SSB site.
The killer aspect is being able restore workspace sessions: It's easy to close the SSB with multiple tabs and restore it later with all the tabs. For example lately I've been using Epichrome to log into various gsuite accounts. For any account, I'll tend to have multiple tabs open to gmail/gdocs/gdrive/gcalendar. I wouldn't want to keep this these tabs open in my regular browser. I just need these tabs open (all at once) whenever I'm doing work for that particular client. So if I make a SSB for that account I can recreate my workspace session easily and close it all at once easily, and it's not eating up laptop RAM/swap space unnecessarily when I'm not using it.
I remain logged in on Firefox only, with an extension that blocks me from accidentally visiting any other sites that are not on the "allow-list".
For Google sites, I used to use Firefox but at one point it said Firefox support was deprecated so now I use Chromium-based SSBs.
For open web browsing, I used to use Chrome but now use Safari. I never login to any site on Safari and regularly clear the site data. I can't use incognito mode because I want to keep the history which is useful to me, but I suppose at some point I'll just make an extension to log my own history.
Regarding auth session duration, I noticed that Google seems to have a much shorter session lifetime if you don't use 2FA. Not sure if other sites do that. I rarely look at FB/Twitter so it never surprises me if they ask for the password.
You raise a good question about whether the investment is worthwhile, but if you earn money from targeting Apple platforms then it's a no-brainer.
When I was in the game industry, pretty much everyone I knew had the attitude that you had to be an expert in one language, C++, and it was career suicide to take a job working in a different language. But I've always felt that there's nothing wrong with using multiple languages. Over the course of my career I've had to use many different languages, at this point it doesn't seem like a big deal pick up another one. When I had to do a Unity game, it seemed like it took less than a month to get ramped up on C#. Just this year I've jumped back and forth extensively between Swift, Typescript, Elm, Elixir, Python, and Golang, while also doing some small projects in Agda, Haskell, and a few others. Yes, I do get the syntax mixed up, particularly right after a transition, and sure, I'd probably be more hireable if I honed my skill in a single language, but really learning a language is not such a big investment once you get the hang of it.
The Apple frameworks are a different story -- that's a bigger time investment, but it's incremental. You don't have to learn all of them to make an app, or to be productive in Swift.
[edit: fix typo]
I could still type, mostly, and was back at work (at EA) within a few days. The cast came off at 6 weeks, but it took years before I could do pushups without pain. I finally got the full range of motion back after several years.
Hope your injury heals fully.
Same experience here. I can't blame the companies though.
I was essentially a workaholic for decades. I wanted to believe I had a noble mission to fulfill, aka "true believer" or "clueless" àla Gervais Principle. It took me a long time to realize this attitude was incredibly damaging and wasteful. It's tantamount to smoking or other major self-destructive behavior.
You focused specifically on physical health. Others have given good advice (teeth, hearing, etc). I'd add several other points:
-- At around 50, your chances of getting cancer hit an inflection point on the "hockey stick" growth curve [1], so you need to get regular (annual) screenings. A good health plan is helpful; when I was on Kaiser HMO they were really good about following up on this. [1] https://www.cancerresearchuk.org/health-professional/cancer-...
-- Exercise doesn't have to be intensive to work well. I rarely go to a gym now; when I was younger, the overhead of going to the gym made me think I had to workout for an hour or more, but in my case it backfired, bc it led to a gut reaction of "ugh" whenever I thought of the gym. I'm pretty committed to hiking, so now I walk outdoors (mineral sunscreen, of course) for an hour per day and that's enough. If you can choose to live somewhere where you can do this year-round then do it. That alone is transformative. When I first started hiking, my knees would hurt, especially going downhill, but after a few painful hikes, it eased up and now many years later my knees never bother me.
-- Highly-suggested weight training books (e.g. Starting Strength) insist on free weights, barbells. I find that 30 min of body weight circuits (and dumbbells) 3x/wk is plenty. Just get into the habit. The benefits accrue over time, whereas you'll see peers your age or younger neglect this and that neglect also accrues over time. Most people don't add 25 lbs of belly fat in one year, it's more like 2-5 lbs per year over decades.
-- Most my friends are younger than me and alcohol is still a big part of socializing, but as I get older I dislike the effects more. Not that I drank much in the first place, but now I've cut back even more. On average not even once per month, and never more than 2 drinks per occasion.
-- Diet is obviously important. Michael Pollan's advice: "Eat food. Not too much. Mostly plants." I still eat too much meat but include greens in every meal. My advice is to cook. As I got older I started cooking at home more. Over the course of a decade I eventually worked up to cooking every meal at home. It helps to establish the habit if you have someone (spouse, family) to cook for, but now I have the habit, it's easy to cook for myself. When you cook, you can eliminate added sugar. All processed food has sugar in it, so I cook everything from scratch. It sounds like a pain, and when I was younger I would never have imagined myself doing it, but when you practice it, you can do it quickly. I eliminated sugar on weekdays. If you follow David Sinclair's longevity advice, you'd cut out sugar entirely, but I still partake on weekends.
-- So far I've been super lucky and have no major health issues/struggles. I'm "old", but not elderly. I still do long distance treks. People I meet are always surprised at my age and energy level. The biggest tell is white hair, or dry scraggly hair. I used to think I'd be interested to hear health issues from people in the 70-90 age range, but I suspect it's so different for everyone that it wouldn't be that useful. I believe there's enough longevity advice out there that if you pay attention to the right sources then you can see what's coming up and what you should be doing.
Because that's what everyone here is talking about.
This is factually incorrect.
By not explaining that what scaling options were tried in the article, it strongly appears that the author did not try them.
By not explaining here on HN what was tried in more detail, it appears to be handwaving away the issue.
It's totally possible that a smaller screen is better for his productivity, but that's a minor argument compared to the incorrect assertion made in the article and here.
It's pretty cool, but yeah, I don't see ever using this on desktop. It makes a whole lot more sense on mobile while you're out in the mountains and can see the scenery.
Regarding the AR apps:
In 2018 I downloaded both the PeakFinder and PeakVisor iOS apps while in Namche Bazaar during my EBC trek. PeakFinder's maps were much smaller and downloaded over bad wifi fairly quickly, whereas I never managed to download all of the PeakVisor maps while on the trek (it was several GB). But oddly, PeakFinder did not give me any more information than PeakVisor. So when a mountain label was missing in PeakVisor, PeakFinder wouldn't tell me either.
It's a pain to export photos from the PeakFinder app, so I did use it for a couple days on the way up to Lobuche, but not much after that.
The PeakVisor display was a lot nicer than PeakFinder's back then, so I preferred those photos and ended up using it exclusively. It looks like PeakFinder has better/shorter peak labels now, but still takes extra steps to export a photo, which is kind of a dealbreaker.
A nice thing about PeakFinder is that it still costs a fixed price for the app. If this is the only mountain AR app you use, it's worth it.
PeakVisor has transitioned to an IAP "Pro" subscription. Since I bought PeakVisor in 2018, they grandfathered my install with all the original features, with temporary free access to Pro features, so I can't tell what features are Pro or not, but it's super fancy now. If you're into hiking, then I suggest you give PeakVisor a try as well. (I have no affiliation.)
Duolingo does change the UI a lot. During the time I've been using it, various features have come and gone. Just in the past couple months, it has changed appearance on me 3 times. It's amazing that they'll do that but won't provide a setting to allow you to disable something that's clearly and understandably annoying some users.
All I can say is that I'm glad it doesn't bother me as much as it bothers some people. I appreciate Duolingo and benefit from it for free, so can't begrudge one or two boneheaded features.