Irrationally, I always think that posts like this are about me in my own role at work. Thankfully, I’m not this out of my depth. My impostor syndrome has decreased by 6% today.
I recently went down the rabbit hole to find a dumb TV. It was surprisingly difficult. I ended up with a Sceptre 65 inch TV, to which I’ve plugged in a rooted, jailbroken Chromecast.
It’s been awesome. The TV is fast to boot up, responsive, doesn’t spy on me, and doesn’t need useless software updates.
What's the benefit of rooting and jailbreaking a Chromecast? You can already cast anything you want to them, so I'm assuming there must be added functionality.
Something I’ve learned as someone with high proficiency in another language that I learned in adulthood (I would never say fluent, maybe “functionally” fluent):
Poor pronunciation (I.e. thick accent) but good grammar is usually more forgiven by a native than great pronunciation but poor grammar. Because then you sound more native, but you sound a bit… mentally slow.
I am in the latter camp. My Mandarin Chinese accent is really quite good. But I sound like a child.
So my suggestion to all learning a new language: keep a bit of your accent and heavily index on correct grammar and vocab and listening skills.
I agree. I've been speaking (American) English 99% of the time for the past thirty years but still have a noticeable German accent, never get any flak for that. Apparently Joseph Conrad spoke with a heavy Polish accent so that's my excuse.
What's sad is that educated people look down on people speaking "grammatically incorrect" even if their way of speaking is consistent within their group and conveying meaning perfectly. I just call that snobbery.
> but still have a noticeable German accent, never get any flak for that.
My experience of working with Germans in tech is that the accent is actually an asset. It's totally playing into a certain stereotype of all Germans being great engineers. "I mean...he is German...he must be smart!"
Henry Kissinger was also known as a ladies man. Once he was in his hotel room with a pretty woman when a world crisis broke out that required his attention. However, he was not answering the phone, so a desk clerk was sent up to the room. He knocked on the door and said "Mr Kissinger, I have a message for you". From behind the door he heard, "Go avey!" but it was important so he knocked again and said "Mr Kissinger, it is urgent that I speak to you!" and again "Go avey!" so for the third time he said "It is urgent, are you Kissinger!?" and the reply "No! I'm fuckingher! Now go avey!"
My gf's mother told me that joke back in the day, with a very heavy South American accent, but it still worked, maybe a little better because she said "Kissin-gher".
I saw Henry himself just a few years ago, right before Covid, in a NYC restaurant. He's extremely old, but he seemed very together.
You might call him a "statesman", but he wasn't precisely a politician. Also, the post WWII/Cold War era opened the door, so to speak, to a large number of displaced Europeans, scholars, to give advice about East and Middle European issues, advanced science, etc. Zbigniew Brzezinski, Werner von Braun also come to mind.
my German accent only got less notable after speaking a ton of English living in English speaking countries for several years. For some reason losing the accent was way harder than getting rid of an accent in French.
Especially words like 'strength'. If German is your first language there is something about 'r' and 'th' sounds that's so hard to get right.
- If your accent is not noticable, people will assume you have native-like fluency, speak fast and use colloquialisms that you may have trouble understanding. Try to work on comprehension at least as much as accent.
- Everyone in the English-speaking world has an accent anyways. Californians don't speak like Texans, English don't speak like Scottish, there are people throughout the former Commonwealth that speak a version of English that is what "native" means in their country but sounds like acquired language to others.
- When speaking with people who lack fluency in comprehension, better to speak their language if you can, even if you struggle with it. They will have less trouble detecting your incorrect expression. Too often, people who lack fluency in comprehension are afraid to say they don't understand.
I.can often tell people who a fluent non native speakers because I can't figure out where they are from. Different areas have different accents and foreign learners end up with a very understandable accent that is an average that no native speaks.
All countries/languages have multiple accents. My mother was from Devon (and the forties!) and could make herself nigh on unintelligible to me and my brother and I lived in Plymouth (Devon) for eight years.
You are probably familiar with the generic south west of England accent - "aarr me hearties" and all that fake pirate bollocks. Now listen to the greatest Cockney who ever lived - Dick van Dyke - "Cor blimey Mary Poppins. Very different accents. If you drift up north, why not take a detour via Wales - several accents, quite noticeable when put side by side. The midlands has the Black country "yam yam" and Brummie, go east and there is a whole host of the bloody things. Carry on up and you got "eee bah gum" - Yorkshire and more - bear in mind that Yorkshire alone has a larger population than each of the other nations of the UK and is rather more diverse than even many Yorkies think. Lancs, Mancs and Cheshire, oh and don't forget Liverpudlean (find a recording of the Beatles speaking - they are from Liverpool). Nip on up through Geordie land and Cumbria (Cumbric has only recently died out as another Brythonic language). The Borders, where England and Scotland blur somewhat and the it gets a bit tartan flavoured.
Scotland manages to deploy a lot of accents for roughly 5.5M people. Glasgow and Edinburgh are distinguishable for me and they are only about 50 miles apart. There's Aberdeeeeeen and Perrrrrth and many more!
Over in Ireland (the island) there are several accents. The Dublin "brogue" is considered the easiest accent for a foreigner to understand, which is quite ironic. The Republic of Ireland is home to multiple accents as is Northern Ireland (UK).
The accent that D van D deploys in Mary Poppins is generally known as "Mockney" and that pirate thing is a variety of "Mummerset". Mummer is an old word for actor and Somerset is in the south west of England. This comment is getting lengthy, so I won't delve into Cockney rhyming slang, which is worth looking up if you fancy a right larf, me old septic 8)
In the English speaking world, high tolerance for accents does seem to be the norm. My experience is that there are also countries outside of it with a much stronger normative accent seen as the "right" way to speak the language.
Fellow good accent, poor grammar haver (but in Czech) - hello! I agree completely. In fact we are not alone, here’s a video where a YouTuber is praised for his use of English (including contemporary idioms etc) in comparison to someone who has a good accent but comparatively poor command of the language itself: https://youtu.be/-81TSnMUA68?si=4j4mxiSssnQIBVRq
Personally when it comes to speaking English I find a false American or English accent quite unnerving.
I will have to disagree here. I have a South Indian accent and a good grip on grammar, at least when I'm speaking, Most of the native English speakers I encountered had trouble understanding some of the words I was pronouncing even if it was within context.
My understanding is that everyone's brain is wired to expect a word in a certain way and unless you have encountered other accents, the speaker has to repeat what they have been saying.
I think what the GP means is that if you speak in grammatically correct sentences and are intelligible, people are less likely to complain or look down on you. I.e. that's a deliberate choice on the listener. If your pronunciation is so off that your listener can't understand you then that's something that's outside of their control; either they pretend to understand and go "uh-huh", or they have to ask you to repeat yourself.
>My understanding is that everyone's brain is wired to expect a word in a certain way and unless you have encountered other accents, the speaker has to repeat what they have been saying.
Nah. People get used to understand certain sequences of sounds and eventually get used to your particular accent, even if initially they had no idea what you were saying. One time I had to work with a Vietnamese woman (let's call her Anna) who said "transaction" like "trunsun" or something; definitely one syllable too few. After several months I was quite able to understand most of what she said, although occasionally I needed her teammate (Barbara) to translate for us. To restate GP's point, both Anna and Barbara spoke grammatically correct English and had definite East Asian accents, but Barbara pronounced things correctly and Anna didn't, so Barbara was easier to speak with, while when speaking with Anna I often had to ask her to repeat herself.
That's been my strategy for a long time and indeed it seems to pay off more than any of my other friends who have a perfect pronunciation but can hardly detect sarcasm or can't write a complex text
The problem I've had with Mandarin is keeping my accent means imparting tones to the words which could change their meaning. But I agree with your general point.
The language is still strongly typed, and with the language being purely functional, I found myself not missing static typing nearly as much as I thought I would. Things just work, and they break during compilation if they don’t.
I will say that editor support for static languages is categorically better due to the language server being able to more completely reason about the state of your code. That’s the one drawback.
Parent is making a distinction between “strongly” and “statically” typed. By some definitions. Type conversions in Elixir are generally explicit (contrast with JavaScript) and the type of a variable matters at runtime (e.g think about pattern matching), and so some people would call it “dynamic and strongly typed”.
You also can't do "foo" + "bar" to get "foobar", you have to do "foo" <> "bar" giving it even more type "strength" than many strongly typed dynamic languages have.
Is that a common source of typing errors? Genuinely wondering as I don't have a whole lot of experience with statically typed languages. I've personally never had a bug related to it.
I wasn't meaning to imply everything is perfect, though. For example equality operators take anything. I believe there may be changes coming around there.
I think it is pretty standard in functional languages not to overload operators. There may be technical reasons as well, I'm a bit out of my depth here, but it probably is better for performance with pattern matching knowing the type? Like `"hello " <> there = "hello there"`. Of course it's not just strings—concatenating lists uses ++ and for dates have their own functions.
OCaml takes it a step further with numbers where `+` only works on integers. You need to do `+.` to add floats. This lets it be statically typed without having to actually specify any types.
Again, a little out of my depth in terms of rock solid explanations.
We’re experiencing this at my place of work. Our backend stack is Python, and coming from an Elixir/Phoenix background, adding a durable queue to our infrastructure should be trivial but because of the nature of Python, it is all but impossible to run the queue in the same codebase and application server.
Elixir and the BEAM make it so easy and pleasant to run extremely complicated infrastructure in the same codebase and in the same application context. Hard problems made easy.
Interesting, most of my work has been 'across the stack' but for desktop applications. This looks like a better match for me than most other approaches to web applications.
It is a very good point: I did a lot of desktop apps at one point (the largest being a mixture of C# and legacy C++ wrappers), and the first time I tried LiveView it somehow reminded me of WinForms!
Every time I see microservices, or Kafka, or Redis, ... I can't help being disappointed because we seem to be stuck reinventing BEAM/Erlang (and Elixir) 30 years after the fact, except with technologies that are slower, more fragile, more complicated to use and harder to deploy.
Someone in the Erlang community named our processes “nanoservices” as a joke. I thought that was pretty apt though, a gen_server is pretty close. And you can have 3M of those on one node!
> it is all but impossible to run the queue in the same codebase and application server.
I am surprised, both in terms of the difficulty you faced and that you would want to; I have beef with the fact that using Celery with Django runs "worker" process on the application server by default.
It sounds mad but because of the process isolation within the language you can trust running services within your application and message passing can be local or to a different machine in the BEAM cluster. It opens up a whole new way to think about a runtime once everything is an actor model process with a mailbox you can send messages to.
It's much better than having to worry about extra infrastructure, just deploy your app and because it's code you control you can customise what the queue is going in really bespoke and application specific ways.
But why? I have one project that is a single Python codebase that embeds the whole http server, task scheduler, a durable queue implementation, and job processing implementation using those queues all in a single process.
I'm sure you're right that the nature of Elixir makes wrangling all the different services easier but is there something special it does to make embedding easier as well?
Are there any examples online of doing these things with simple (or just not as complex) elixir code compared to using dedicated libraries in other languages
FYI "all but impossible" usually means the opposite of what you think it means - "all but" meaning "everything except". Seen this usage a lot and it bothers me, because both usages are common and theyre the exact opposites.
If I didn't have context clues, it'd be difficult to know which one you mean.
Agreed, to me the meaning unpacks like: "it meets or exceeds every category of difficulty that is less severe than Impossible."
Compare to a disaster described as "the destruction is all-but-total".
That phrase does not mean "you could describe the destruction by any label except total." For example, whatever just happened it definitely not "tiny" or "moderate".
“All but” = “almost” (which presumably historically was “all most”).
Like “all but dead”. Everything except dead, as in as close to death as possible without actually being dead (and certainly not the opposite of dead, as in perfect health).
I'm not sure how it makes sense to claim that an action is "everything except impossible." This is more in the classic sense of "the battle was all but lost" for a battle was practically but not actually lost. You could implement a queue in a Python server, but it would be technically awful to do.
In this context I meant “all but” == “everything except” i.e it is almost impossible. Are you saying it means the opposite of how I used it? I’m not certain what you mean.
It tripped my “trying to hard to write eloquent, witty prose” senses. I proofread a lot of papers in college and wrote a lot of columns in the school newspaper. This is a common style. Thesaurus-driven word choice.
I don't know if it's the guy's case, however, there are people who actually delight themselves in writing complex sentences comparable to a mathematician's delight in doing mathematics or a painter's artistry on canvas.
I'm noticing it's mainly an US-centric trend to have negative feelings towards good and complex writing.
i used to do exactly this as an undergrad! i thought it made my writing sound whimsical or whatever, as if emulating the style of Lemony Snickett or _why the lucky stiff
i've since replaced this (bad imho) habit with other bad habits, fortunately
It goes without saying you shouldn't imitate the style of other people but have your own. Also, there's actually a feeling of joy in writing good prose and seeing the result, which is something I never mastered in English, as evidenced for example by my repeated use of "but", but (yeah..) kind of did in my native language.
It seems that every ShowHN that features an Elixir project is well-polished, has a sensical API, and has friendly, solid documentation. Is this a function of the nature of the language, the community, or a mix of both?
I use Elixir as my primary language in my day job and I'd say it's a mix of the community and the ecosystem. Most modules seem to have great documentation, so if you're producing one you also put in the effort. However, ExDoc (the documentation module) is also really solid with loads of great features, including the ability to run your examples as unit tests.
That said, it's not all that uncommon to be searching for something like an implementation of a SaaS API and find a totally undocumented module. It's not the norm by any stretch though.
But...the issue is packaging/distributing a CLI built with Elixir. Comparatively to building a CLI in something like Rust, there is a lot of overhead that comes with a VM-based language and framework. Especially if you want to target multiple OS and processor architectures (or distributions). Not to say that it is impossible, just maybe not as simple. It is one thing to run Mix tasks, or access the Owl API from REPL, it is another to run an Owl-based app on macOS, Linux and Windows and get it there.
It still has limitations (the biggest one is the requirement for the os&architecture to match between the builder and the deployment target) — but the result is a standalone binary which not only embeds the VM and preloads the app's bytecode, but even "trims" the stdlib to only ship the required functions.
Right, so the moral of the story centers on the target user of the CLI tool. If you're building something for the Elixir community - game on I suppose, though there is still the complexity of build-env per OS/arch.
I wonder where WASM/container enters the discussion.
> Firefly compiles Elixir applications faster and more efficiently than the BEAM can, and introduces WASI targeting to run applications in resource-constrained environments.
Containers are already solved, its trivial to build and boot a mix release - but whether that's appropriate for a CLI tool depends on the complexity of the tool I guess, but not too far from flatpaks etc no?
Undeniably it's not going to be as convenient, but the divide isn't what it used to be. BEAM apps can be compiled to a binary, and as long as that binary was compiled for the platform, that should be good enough.
I'm doubtful I'll see it used much outside the BEAM community, but then again it's been a "successful despite a lack of mass usage" community for awhile.
The Elixir community has good internal (and official!) tooling around libraries and documentation. I would say it's a positive feedback loop. The nice community resources attract good programmers, good programmers make nice community resources.
As someone going through a horrible divorce, replete with custody fights and the whole nine yards, I’d still say that you’re thinking about this wrong.
I am the father of a three-year-old girl. I would go through my marriage a thousand times, complete with abuse and emotional trauma, if it meant I could get my daughter in the end.
I’ve found that happiness has never been found by endeavoring to avoid any and all potential suffering. I cannot control how my wife behaves. I can only control my reaction.
Find a partner that is emotionally resilient, calm under pressure, and has a desire to continually better themselves, then go for it. It may still end in divorce, but I promise you it will be worth it.
> Find a partner that is emotionally resilient, calm under pressure, and has a desire to continually better themselves, then go for it.
It sounds like you're blessed (whether in the religious or random probability sense) with a daughter who is your joy. The worst partner and the ugliest divorce in the world can't offset that.
I have no assurance that I'll be similarly blessed, and I don't want to roll those dice, because I have no idea to what degree the game is rigged against me, genetically, environmentally and circumstantially speaking.
Adults can marry, get along, fight with, or divorce adults. But once there's a child in the mix one's hands are tied.
If it's a healthy, loving and developing child, it might all be worth it. The odds of that are not only unknowable, they're relatively risky.
Not every critical or mean-spirited comment is bigotry. You got your fee-fees hurt because there’s probably some truth to the comment, even if it’s mean. Buck up, quit complaining, prove the parent comment wrong in your day-to-day work. Right now you’re just deepening a few MBA stereotypes at the moment.
Flamewar comments, name-calling, and personal attacks will get you banned here, regardless of how wrong someone else is or you feel they are. Please don't post like this to HN.