I have a little under 2 weeks before I start at my new job. It’s my first time not being self-employed since leaving University 10 years ago. Mentally preparing for that, as I am not sure at all how I will cope. The good news is that I do not strictly need the job, so only good things can come out of it. I’m mostly hoping the team is nice!
Then I will be the guy who says that I’ve been running mine for many years with minimal effort. Not sure why the different experience, I do the basics (TLS, SPF, DKIM) but it was fine even before I was doing all that. My outgoing mail is immaculate though. Low volume personal stuff, no newsletters or anything else that recipients would consider unsolicited.
+1. I’ve been running Mailinabox.email on a cheap local VPS for 5 years now for my personal email. It’s been absolutely fine, 0 issues with spam or deliverability, despite everyone saying it’s not nowadays. Not sure if I just got lucky with a clean IP or others are exaggerating / repeating others.
You got lucky, or else you’re good at detecting and avoiding moron advice.
Of which there is a lot. You can’t run email at home by folliowing other people’s advice blindly, you have to understand your configuration files, and your configuration has to be correct, not just close. “OK my DKIM is not quite right but gmail should not care” leads to failure, “I don’t get this DKIM shit, it’s too complicated” leads to failure.
and your configuration has to be correct, not just close. “OK my DKIM is not quite right but gmail should not care” leads to failure, “I don’t get this DKIM shit, it’s too complicated” leads to failure.
There are free online services you can use that tell you whether your config is correct and even whether you are on any blacklists or whether you’ve configured an open relay, etc. It takes almost zero effort to check those and see what you might have configured incorrectly.
There are indeed online services, youtube is well known. That wasn’t the question.
The question was: Given that the way he tried to do it failed, how quickly should he have done it in another way to escape that accusation that he tried to hide anything? Not “what’s the fastest” but “what’s fast enough to escape accusation”?
FYI, in that 200-page report the investigators said a week was fast enough for them.
Unfortunately, the “works for me”-bros don’t change anything about the reality that it’s very difficult to have reliable email delivery these days. It happens to work for you because you were lucky with IP ranges, reputation, blacklists, etc. You won the lottery - good for you. But it’s no longer like this for everyone. And emails getting lost just isn’t something everyone can afford - we are talking about answers to recruiters, clients, family and loved ones, etc. You don’t want these messages to go missing - especially in a way you cannot detect. A single lost message can alter the course of your life.
It happens to work for you because you were lucky with IP ranges, reputation, blacklists, etc. You won the lottery - good for you.
No, not necessarily. You can send your email through an existing email service and take advantage of their IP ranges and reputation. As an example, my opensmtpd server sends all my domain’s email via Fastmail’s servers, so I don’t have to worry about any of that.
I did set up TLS, SPF, DKIM, DMARC and reverse DNS. And just in case, I also checked whether my server’s IP address was on any blacklists. I think my former server’s IP address was in one of them, but IIRC it wasn’t hard to ask for removal.
I also haven’t experienced any deliverability issues (in many years of usage).
In my experience, when you dig into most people’s complaints about email deliverability issues you’ll find that they didn’t set up at least one of the standards I mentioned above (or reverse DNS).
As someone who likes self-hosting but has been deterred from running a mail server by stories like those in this thread, running your own mail server but also relying on a third-party service seems like the worst of both worlds.
running your own mail server but also relying on a third-party service seems like the worst of both worlds.
I don’t see why. Fastmail’s servers have been 100% reliable and trouble-free and if I had any issues, it would be almost trivial to switch to another third-party server or even send my email through my own server, since I already have everything set up correctly (except for the new part of the config). It’d just be a couple of simple changes.
Maybe you’re wondering what are the advantages of running your own server. For me, there are a few:
It’s trivial to backup my emails (whereas with GMail, good luck backing up millions of emails – yes, I’m subscribed to a few very high-traffic mailing lists. In the end, it’s doable, but it was a never-ending source of problems and unreliability).
Everything is very fast (whereas with GMail, the interface was horribly slow).
My spam detector actually learns when I classify things as ham or spam (whereas with GMail it never did, it always classified the same emails as ham even though I marked them as spam dozens of times, and vice-versa – absolutely infuriating if you can’t unsubscribe and don’t want to create dozens of manual filters).
No lock-in, so I don’t have to worry about Google locking my account and losing access to decades-worth of personal emails with no recourse (I’ve heard many horror stories).
The major downside for me (apart from the initial setup) is maintenance: basically, just ensuring my server is up-to-date, which usually only requires a few minutes per week (and I was already doing that anyway). I do major OS updates twice per year and only once did it require fixing my config due to config syntax changes in opensmtpd (which was easy enough to fix).
I’ve run my own email server for over twenty years now. It was about two years ago I had to change IP addresses (hosting provider made some internal changes, I received a new IP in a new /24 block), which was upsetting at the time, since it had been … a decade or more since my last mail server IP change.
But it was fine—I don’t recall there being any issues with the new IP address. Now, that could be due to my domain having a good reputation or the IPs not having a bad reputation, I don’t know.
Edited to add: I use Postfix, and have for almost 20 years now. Again, no problems with it.
I do the basics (TLS, SPF, DKIM) but it was fine even before I was doing all that.
Mine wasn’t. TLS + SPF wasn’t enough, I routinely ended up in people’s spam folder, sometimes when replying to them. To be fair I only noticed this on GMail, but their market share is difficult to ignore. And from time to time Hotmail blacklisted my entire IP block.
My outgoing mail is immaculate though. Low volume personal stuff, no newsletters or anything else that recipients would consider unsolicited.
So was mine, and I got my IPv4 15 years ago.
Now if you can convince all your contacts to get off the giant oligopoly that spies on them, yeah, you’ll probably be fine.
I’ve been self hosting since before gmail launched and not had problems with them. I occasionally had to use my personal account to email gmail users in my last job because gmail decided mail sent from my official @microsoft.com (which, obviously, runs on M365) was spam, but never had to do the converse.
I think gmail is just nondeterministic and will sometimes decide things are spam. I suspect it does this deliberately to see if people move things out of the spam folder to give a strong not-spam score. It didn’t seem worse self hosting than using a big provider, but if you self host you feel like you should be able to do so,etching about it.
To be honest my biggest obstacle to running my own mail server is the sheer hassle of configuring it. The first time I did so took me almost a week. The second time took me a good day. The third time I just moved over to my provider’s turnkey email solution. I had TLS (self signed, I started before Let’s Encrypt) and SPF, but no DKIM, no DMARC, and no reverse DNS, and I really didn’t look forward to implementing them all.
I have a simple use case:
All email sent to my domain name should go to my inbox…
…except perhaps spam, but I’m okay running the spam filter later on my mail user agent.
I can retrieve my emails with IMAP (or maybe that newer fancier alternative).
No open relay. Only the mail I send is routed, I authenticate myself with whatever standard credential.
Now I want a setup that does this with one install command and about this much configuration:
I can survive if it takes 3 times as much work, but beyond that I’ll consider writing myself an alternative. Though I’ll probably start with the web server, configuring nginx is just as painful as configuring Apache, and I have yet to convince it to turn on content negotiation (for multilingual support).
I have a similar theory that they sometimes send people down alternative routes on google maps, just to see what the traffic is like and how long the route actually takes.
Gmail has bugs sometimes. They deploy new code very often.
I know that one affected mail from one of my then-customers, and I know it was a bug, and it was fixed a little later. Later on the same day, or the next day, I don’t remember.
In my experience, you can do everything right: low volume and follow all the latest SMTP communication standards and your email will still be marked as spam. The only thing that consistently worked for me was changing which outgoing IP I used. In that case I have to conclude it’s a matter of winning the IP lottery in the end.
Since you have had consistent long term success, can you share what hosting platform or AS you are using for your outgoing SMTP server? That would help me reach your level of deliverability success.
If you route your email through a blessed smarthost your mail won’t be marked as spam. If you’re exceptional at configuring your SMTP server you can make it so that the smarthost is only used when communicating with the most hostile email hosts (Google, Microsoft).
Ooh, that’s an interesting prospect, actually. Rent an email relay from google to use for emailing google users, one from microsoft to use for emailing microsoft users, etc. Now you’re not giving anybody any email data you wouldn’t have anyway. Drawback is, um, expensive. And you do reveal your name/payment information.
There are smarthosts that have a fairly generous free tier, and can deliver fine to google/microsoft. For personal, low-volume email, that’s a perfect fit, imo.
The point is that that reveals information to the relay host. If I use google to relay messages to google, that doesn’t reveal anything to them—they already know I’m sending messages to them.
Exactly. You could have probably figured this out on your own but for the sake of discussion: to make it cheaper, you can open a free gmail and Hotmail account and rewrite the from header and mail from envelope to those respective addresses when you route through the freely provided smarthosts for the respective platforms. This is a decent compromise when you’re the only identity using the mail server.
You can “configure” this stuff fairly painlessly using a filter script with postfix and the sender_dependent_relayhost_maps option so it’s all automatic.
I’m defo not an exper in mailservers yet I managed to run one for like a decade. I can’t speak of absolute truths, just my experience. At some point I even misconfigured mine to be an open relay. I did got flagged but I also didn’t have much trouble to get off spam lists once I fixed the issue. It took a bit of time but that’s about it.
Re: my job application at a local university of last week. Well, I made it through the first round of candidates and am meeting in person next week, so I’m going to be preparing for that over the weekend! My CV is not particularly impressive because of being self-employed basically all my life but my accompanying letter apparently made an impression. Now I need to make sure I don’t undersell myself. It’s hard not to be a little intimidated by all these academic titles while I come from a much more practical angle.
Also, my brother is coming over from the other side of the country (not that impressive, it’s NL), so I’m making pizza (again)!
Applied for a job at the local university involving C++ and cryptography. Well outside my comfort zone, given the fact that I have been self-employed and WFH for pretty much my entire working life (14 years).
Also I have never used C++ professionally, so I have some learning to do. I do know a fair amount of C and Rust though, so I have at least some relevant knowledge. Here goes nothing!
Any tips, pointers or anecdotes are very much appreciated.
Tips: In my experience, university people are usually motivated to find someone they think they’ll enjoy working with, so be friendly and pleasant and show interest in them as people if the situation allows and all that sort of stuff. Don’t worry about your lack of specific experience: university people are likely to decide that you’re flexible and therefore can pick it up, or inflexible in which case they wouldn’t have wanted you anyway (in your case, I’m sure the former).
Thank you! The job opening did indeed read as if there’s was a lot of room in terms of specific experience with some extra items like not being afraid to be al little idealistic or enjoying working in an office with others. I’ll do my best to be the most charming version of myself. :)
I recently rediscovered Sublime Text and am very happy to be using it again. I moved from Sublime to the Jetbrains suite back in 2013 because the Jetbrainds IDE’s were so much better at things like Go To Definition, but now with LSP’s (at least in the case of Go and Python), Sublime comes pretty damn close (and is a lot faster). It also doesn’t require me to switch between editors when switching between certain languages, eg Ultimate (web stuff) and CLion (C/Rust).
It’s not open source but I really like how a small team can build a great editor that’s loved by many and seems to be able to sustain itself financially in a healthy way.
I’d love to learn it as well as I’m a huge pizza geek and would love to go there on a regular basis to visit famous pizza places, but something like Spanish or French would probably be more useful overall for me to learn..
Spanish would definitely be more practical for me, too.
But I’m half Italian, so that was the main reason I picked it. Nobody in my family speaks it or anything like that, but it’d be fun to learn a little and take a trip to Italy.
me and my partner have been practicing at chess! my goal is to get to at least 1200 elo, which seems like a reasonable goal based on stories I’ve heard from others getting into chess around out age.
Nice, good luck! Just remember that 1200 ELO on Chess.com is vastly different from 1200 ELO on Lichess, which in turn is vastly different than 1200 ELO OTB. But yeah, I’d say 1200-1400 is the sweet spot in terms of required time investment and diminishing returns.
I’m afraid it’s no different on Lichess in a certain ratings bracket. The only solution is to memorize defences against those openings and the opponents will usually give up quickly.
I was never very good at chess but I was all right. I taught my older son (12) how to play when he was younger and now I have to uh…let him win. That’s it.
As a maintainer of a few popular projects, I prefer GitHub. It is fun how people try to “avoid” GitHub. Literally all significant projects are hosted there. Show me something popular what isn’t hosted on GitHub, can’t you?
No, it isn’t. Linus’ official tree is on his computer, this is but a mirror, like any other. You can’t open issues, you can’t submit PRs, development is not done on GitHub. Thus, the official repo of the Linux kernel is not this one.
This is Linus’ official tree, as linked to by kernel.org, and pretty much everything else, including documentation.
Well that’s kind of the problem, isn’t it? They are trying to avoid GitHub despite it having such a monopoly (although kind of inflated because of all the hobby/student projects on GitHub).
The point is that posting content there means opting in to the Copilot training on your code base (something the OP objects to). Even if you don’t care about that particular issue, hosting content on GitHub also means you’re cementing their monopoly even more, so it’ll be even harder to switch away if they decide to do something you do object to. Monopolies are never good, even if you actually like the offering. We should’ve learned that lesson by now, but history keeps repeating in plenty of areas. Even us nerds keep giving companies all this power (Google being another prime example).
As a mailbox.org user, I’m curious why you decided to move to TransIP. Mind sharing? I found the low prices, eco-concious priorities, and Germany hosting attractive. The price increases felt pretty steep for me though because I don’t use most of the bundled services.
I’m actually fairly happy with Mailbox.org for much of the same reasons as you. It’s just that my contract is due for renewal soon and I’m taking the moment to consolidate a few things at TransIP, another provider I’ve been happy with for over a decade now (+ it’s local to me).
I just sat down to explore the email offer from TransIP more thoroughly, but it’s not up to par with Mailbox.org. Sure, the interface is more slick whilst that of Mailbox.org feels a little clunky. With TransIP, I was unable to have several domains under 1 email account (except for purchasing multiple 5EUR/month packages). Mailbox.org makes that easy and I only have to deal with their interface once a year, so I just paid for another 2 years of Mailbox.org!
I’ll know in 3 hours! Basically I was always using an overnight pre-fermentation phase (poolish) before coupled with relatively short rise and rest times (~6h) for the final dough. This time I didn’t use pre-fermentation but went for a slow rise (~30h) of the final dough right away.
I had the same problem. I’ve managed to solve it via:
breathing (wim hoff method, pranayama, running / jogging) – effects were immediate, I could breath easily for days
ear and body candles (no English articles, perhaps you can translate this: http://talp-masszazs.hupont.hu/31/ful-es-testgyertya) – it took me two years to clean up completely my head, ears and face; however this can easily take just weeks or months
I moved from OSX to Ubuntu + Gnome in 2016, then Arch + Gnome a few years later and then Arch + Sway recently. Been very pleased with the overall experience. Running all this on a €900 Lenovo Yoga with AMD Ryzen 7 and it blows my previous MacBook (which was more than 3x as expensive) out of the water on all fronts.
Both run full screen Linux VMs quite well ;) I’m actually not joking. VMware if you can pay or something like utm https://mac.getutm.app/ works great.
This of course assumes you’re not bound by some os specific tools, but if there’s a win/Mac choice, that’s unlikely.
imapsync has never failed me. Used it to transfer my backlog of 20 years worth of emails and it did not miss a single one.
It seems the author was confused over its price, which I understand looking at the website. For me it always was available in my distro’s package manager, so is the price listed really only for support and perhaps people on Windows then?
Officially, a license for the software costs €60. However, you don’t have to look too far on the website to find that there’s a copy sitting in /dist/. And like you say, some package managers (including brew) include it.
The software is released under the No Limit Public License, and there’s this note in the source code:
Gilles LAMIRAL earns his living by writing, installing, configuring
and sometimes teaching free, open, and often gratis software. Imapsync
used to be “always gratis” but now it is only “often gratis” because
imapsync is sold by its author, your servitor, a good way to maintain
and support free open public software tools over decades.
The answer is simple: because it was there. I’m self-taught, and I don’t have much in the way of formal training. Except maybe for the occasional online course I’ve taken, I have no piece of paper with a stamp on it from a prestigious university that says I can tell computers what to do.
This is the crux of it, and there’s a lot of implicit things going on in these sentences. First off, there is a clear jab at people who do have degrees and formal training. “Prestigious” is used pejoratively and sarcastically here. This wasn’t the author’s path, so they resent people who did take that path. Of course when you are self taught, you skew towards any tool that can get you up and running the easiest and quickest. Note how I said “up and running” - it’s not the tool that is best in the long run, it’s the tool that gets you a picture on the screen the quickest. By the way, there’s value in that too, but I wouldn’t base all of the dimensions of my evaluation just on something “being there.” Availability is valuable, but it’s not the only valuable quality.
This is a viewpoint that’s very common in the industry, I personally meet a lot of people who share this mindset. I don’t think it’s entirely wrong, but I think it’s a very limited way of thinking, and the people who hold it tend to be self-righteous like this. I understand that PHP might have been your path, and it might have worked for you. But a tone like this reeks of criticizing and minimizing other people’s path. I get that they feel defensive because people are attacking PHP, but I don’t think that’s causing this philosophy, I think this is many people’s true philosophy under the hood, this was just an excuse to write about it.
Where does this philosophy come from though - can anyone name any popular programming language that was designed for “CS graduates?” Python? Java? Javascript? These are the most pragmatic and un-academic languages on Earth. The pragmatists and proudly un-educated have won, why are they claiming to be the ones that are being persecuted?
Btw, if it’s important to anyone, I don’t have a CS degree, I studied Electrical Engineering. I definitely took CS electives, but I also consider myself mostly self-taught in terms of actual programming and CS. But I don’t knock the academic side of CS, on the contrary I think it’s responsible for every single good idea that makes its way into “practical” programming languages.
I don’t necessarily have a problem with people using something that gets content on a screen quickly. But I don’t accept the excuse that self-taught means you can’t or shouldn’t grow beyond that. I’m self taught. I don’t even have a college degree and yet I learned Haskell. I can write Rust code. I started out in PHP but I outgrew it eventually. Anyone who can become an expert in PHP can do the same.
It’s fine to get payed to write PHP. There is code out there that needs maintaining in PHP. But PHP earned it’s reputation as a deeply unsafe language to develop in and even with the improvements the language has made much of that unsafe core still remains.
While the author of the article is being contemptuous to those with more educated backgrounds, I think you’re doing a bit of the converse here. Programming is as wide as humanity itself; if there’s a way for a computer (for some definition of computer) to accept input and provide output, I can guarantee you that someone will have probably programmed it. There doesn’t need to be a single, good path to programming. Whether your path involves writing PHP, unsafe C, or Haskell, it doesn’t really matter.
It’s difficult in a comment forum to give an appropriately nuanced take on stuff like this. I didn’t intend to come off as contemptuous. If you get hired to help maintain a PHP codebase then the responsible appropriate thing to do is to work on PHP code. There is no shame or condemnation for it.
Sometimes though I think people get stuck or pigeonholed as “PHP developer” or “Python developer” and never learn other tools or approaches. I want to encourage those people that they can be more than just $LANG developer. There are better tools than PHP out there that you can use when you get the opportunity. Learning to protect yourself from the flaws of a given language is a valuable skillset. There is no shortage of work for people who became experts in avoiding the pitfalls.
But ,when you have the opportunity, it is hugely valuable to be able to choose a language with less pitfalls. Where the defensive programming is less about defending against the language itself and more about defending against the environment your software has to run in. Being able to choose those languages is also a valuable skillset that no one should feel is out of their reach.
But ,when you have the opportunity, it is hugely valuable to be able to choose a language with less pitfalls. Where the defensive programming is less about defending against the language itself and more about defending against the environment your software has to run in. Being able to choose those languages is also a valuable skillset that no one should feel is out of their reach.
It’s difficult in a comment forum to give an appropriately nuanced take on stuff like this. I didn’t intend to come off as contemptuous. If you get hired to help maintain a PHP codebase then the responsible appropriate thing to do is to work on PHP code. There is no shame or condemnation for it.
I figured which is why I tried to keep my reply soft. I agree with everything you just said.
Also, a CS degree doesn’t teach you programming anyway. It’s not meant to. It teaches you CS (or at least tries to). You probably self teach some programming along the way but it’s harly a focus of coursework.
I don’t think that’s universally true. The first two years of required classes for a CS degree at the universities around me (US) were heavily focused on programming (Java… C++…), and failing any of those would have meant no CS degree.
But a tone like this reeks of criticizing and minimizing other people’s path.
I don’t entirely agree with your interpretation, but I will note for sake of irony that this is more or less how un-credentialed (in the sense of not having a degree in CS or other “relevant” field) developers feel for pretty much their entire careers. There’s a huge and powerful trend in tech hiring of prioritizing people who have a degree from one of the handful of trendy top universities, and a feedback loop wherein people who work at major companies help develop and teach “how to pass our interview” courses at those universities. The result is that if you are not someone who has a CS (or other “relevant”) degree you are constantly the odd one out and near-constantly being reminded of it.
I still feel this coming up on 20 years in to the industry and with a résumé that largely lets me avoid a lot of the BS in interviewing/hiring.
I still feel this coming up on 20 years in to the industry and with a résumé that largely lets me avoid a lot of the BS in interviewing/hiring.
(I’m hoping this comment isn’t too off-topic.) I certainly agree. I myself come from one of those trendy elite CS universities (though it’s been a good while at this point) and am well credentialed, but I’ve started to use large numbers of junior engineers out of good schools to usually be a light negative signal when applying for a company. The culture of hiring in software is such that companies often overselect for credentials while ignoring effectiveness, at least in my opinion.
There’s a huge and powerful trend in tech hiring of prioritizing people who have a degree from one of the handful of trendy top universities
This depends entirely on your experience. I’ve never seen this trend, I’ve seen quite the opposite - a large chunk of people I work with don’t come from a CS or engineering background. Nor do I see anyone being hired over someone else because of where they went to school.
The fact that you’ve never seen FAANGs go on-campus at certain universities (but not others) to recruit, help develop “how to pass the interview” curriculum to be taught at certain universities (but not others), etc., doesn’t mean that it doesn’t happen or that it doesn’t have an effect both on their resulting workforce/company culture and on everyone who emulates their hiring (which is unfortunately a large chunk of the industry).
can anyone name any popular programming language that was designed for “CS graduates?”
My glib answer: yes. Go. From Rob Pike, the creator: “The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.”
More seriously, I think this “self-taught persecution” attitude is related to imposter syndrome and the increasing credentialism in society. A former coworker of mine tended towards a self-defense attitude and I chalk that up to his not having a CS degree as a developer (he did, however, have formal training as a jazz musician).
It’s also not as if PHP is alone in this hate—C is probably hated just as much, if not more, than PHP.
Rent seeking isn’t hate. C dominates everything. So if you invent a new programming language, there’s only two paths to being successful. You can either (1) appeal to the new generation of young people to learn your language instead of C. That’s how PHP and Node did it. Or (2) you can run PR campaigns vilifying C until you’ve convinced enough VPs to convert their departments. That’s how Java did it.
I agree with everything you said here. I even share your perception that many people seem to be insecure and/or defensive about not having a CS background or not really understanding some of the popular concepts we read about in blog posts, etc. Like you said: The “pragmatists” won- what are they worrying about?
In some ways, computer programming is very much like engineering– engineering jobs/tasks/people fall on a wide spectrum of “how academic” from “glorified assembly line work” all the way to “indistinguishable from pure science research.” And attitudes similarly span that spectrum. That’s not a bad thing–just an observation.
What’s extra frustrating to me is that it’s now turned a corner where if you do criticize a language like PHP, you’re seen as an irrational troll who just thinks you’re smarter than everyone else. It’s become anti-cool to shit on PHP, even though it’s still literally the least capable backend language being used today besides maybe Python (no async, no threads, no generics in its tacked-on type system, object equality is not customizable and will crash your program if you have a ref cycle, etc).
As a developer that has experience building web backends in PHP but also some experience with Go, Python, Ruby (w/ Rails) and Rust, I wonder what language you deem capable as a backend language that still provides the same level of abstraction as, say, Laravel or Symfony. Rails obviously comes to mind, but what else is there (if Python w/ Django is out of the question)?
Keep in mind that I’m not trying to evangelize “the one true backend language” or anything like that. My main point was just to gripe that there are still (what I consider to be) legitimate criticisms of PHP as a (backend) programming language, but whenever I point them out as reasons that I might suggest someone avoid starting a project in PHP, I’m met with more skepticism and defensiveness than I think is justified.
The secondary point is that I truly believe that PHP is strictly inferior to other backend programming languages. What I mean by that is that we all work differently and have different preferences: some people will like dynamically typed languages, some will like statically typed; some like OOP, some like FP. That’s all great. Scala is a very different language than Go, which is a very different language than Clojure. But if you look at “modern” PHP projects and “best practices” advice, it’s almost literally the same thing as the “best practices” for Java 7 in 2010, except that PHP doesn’t have good data structures in its standard library, has no threading or async, no generics, etc. And if you compare modern PHP with a recent version of Java… oh, boy! Java now has ADTs, Records, Streams, and a few other really nice additions that make writing code a little less painful.
So, it’s not just that I think PHP is a bad language, it’s that it’s, IMO, a less capable subset of another language. If it were actually different, then I might just shrug it off as a preference thing. I mean, PHP even stole the class semantics right from Java (single inheritance, interfaces, static methods, abstract classes, final keyword, etc).
I know people love Laravel, but my contention isn’t that Laravel isn’t good (I don’t honestly have much experience with Laravel, but I have worked with Symfony). But Laravel is not PHP. I’m talking about the language. If there’s something written in PHP that’s so valuable to your project that you choose to work with it, that’s great. But in my opinion, the sane attitude should be one of “Well, I guess it’ll be worth it to deal with PHP so that we can use XYZ.” and not “PHP is a good language and @ragnese is just an anti-PHP troll. What backend language could possibly want async IO or easy fire-and-forget tasks, anyway?”
I don’t like rails either for slightly different reasons. I would rather develop in Go if I’m creating a backend web service than Python, Ruby, or PHP. I don’t find that I usually need much more abstraction than say gorilla most of the time. And Go doesn’t suddenly surprise me with strange behavior as often.
Phoenix in Elixir is pretty good — very batteries-included, high-velocity, and extremely good with async/concurrency/parallelism. I don’t know if “object equality is not customizable” applies, it’s immutable with value-based equality at all points, so…
The tacked-on type system is pretty awful (Dialyzer is well worse than, say TypeScript, mypy, or Sorbet) but I don’t think it’s strictly worse, considering what you get from the framework/library.
Based on their complaints (“no async, no threads, no generics in its tacked-on type system, object equality is not customizable and will crash your program if you have a ref cycle, etc”), and assuming they’re not using a really esoteric language, I’m willing to bet they use Scala, Java, C#, or Rust. I’m definitely curious about this too.
Whether or not those have a web framework that competes with Laravel, I’m not sure. That’s also not the measure of success though, for example if people are working with a lot of services a monolithic web framework isn’t as important or even desired. That’s one other thing to consider here - I think it’s accurate to say that PHP is synonymous with building monolithic web apps, and not everyone builds monolithic web apps.
PHP isn’t dead. That much is obvious if you look around the industry a little bit. I’ve personally never said PHP was dead.
However PHP lost my trust years ago. I’ll never write another line of PHP nor will I willingly work on maintaining an existing PHP codebase. Fool me once shame on me. Fool me twice… Well you know how that quote ends.
I would love to hear more about how you lost trust in a language that has grown considerably in the last couple of years (decade?) to be a more “mature” language with a pretty in-depth feature set. I’ve built a career working in PHP (and other languages too, but mostly PHP), so statements like this always pique my interest.
This is probably in part because it lost my trust several decades ago. There are so many great languages that I can be employed to write that don’t have any of that historical baggage to deal with. Java, Go, Rust, C#. Why go back to a language that due to backwards compatibility will always have footguns waiting in the codebase for me. Layering on safer ways to do things can improve a language over time but unless you also remove the highly unsafe bits as you go the language will always fundamentally be working against you.
I have the luxury of not having to choose PHP ever. I’m grateful for it.
That’s understandable. I began my career with PHP in the early 2000s, migrated towards C/C++, C#, node and eventually Go before coming back to PHP.
The PHP of today is very much not the language it was ten years ago*, doubly true for 20 years ago. While it’s still my daily driver I do enjoy working in Golang, TypeScript and both React and Vue on the front end.
Its very true to look at some legacy PHP codebases and wince in terror at all the bad stuff. I agree as well, that they need to seriously look at removing some legacy from the codebase - but you have to admit its kind of impressive how well they have managed to keep a lot of backward compatibility. I always recommend every PHP developer, especially new ones, read A Fractal of Bad Design to understand how PHP got the reputation it has. But then to also read PHP The Right Way so they can contribute to our larger application codebase efficiently.
Like everyone else has said though - the langauge and ecosystem has evolved quite a bit and when you look at it as say, middleware between a client (browser) and other services (databases, queues, what ever), you see it fits nicely as a solution for certain problems. If I’m thinking about building a website, or webapp, or simple RESTful service, I will always grab PHP first but I would never say some one not using is wrong. I don’t care what brand of hammer you use, as long as we’re hitting nails.
Seconded. I’ve been working with PHP (but not exclusively PHP) for over a decade and have never experienced anything that would cause me to put down such a statement. Very much interested to hear what happened.
I don’t do web programming in general, but I won’t even work for a company that uses PHP. I take that as a sign the company does not make good decisions. Cheers.
Planting some chillies. Looks like they’re going to take a few months to grow, that’s even longer than it takes to compile Firefox from source which I didn’t know was possible :’(
Worst case is around 80 minutes on my Lenovo x series laptop. You can get it down to 10 with a regularly updated tree, a decent machine or an sccache cluster.
Good luck with your chili project. Sounds like a better plan than compiling Firefox Ina weekend for sure :-)
That’s because the majority of cases so far have been in China, which appears to have gotten the disease under control through strict lockdown/quarantine policies. If you look at the charts for the rest of the world on the same page, they tell a very different story: lagging behind China in absolute number of cases but a clear exponential growth rate.
Again, you’re not understanding that the risk isn’t the virus. The risk is everything you take for granted breaks down.
Grocery stores. Hospitals. Public transit.
Let me ask you this. Who do you think is going to take care of a million patients globally? Are there even enough beds? And when there’s not, then what?
And that doesn’t even get into the question of what we should do with people who have the virus. Put ‘em in isolation, okay. Then what? People in isolation need food. Who’s going to bring it to them? When are they safe to release? Are they ever safe to release? If not, what then?
Work out the exponential growth.
It’d be one thing if the virus was only targeting certain subsets of the population. But it’s targeting all of us. Anyone can be a carrier, even if they’re not at risk of dying.
My wife said something along the lines of “I have a conference in the summer, I guess we have all had the virus by then and life can go on as usual”.
I did a quick back-of-the-envelope calculation to show that this is probably not what we want. I saw recent estimates that during a pandemic (which would probably happen if no further measures are taken) an expected ~60% of the population would be infected. I think the current statistics state that ~20% of the ill need to be hospitalized. The Netherlands has ~17 million inhabitants, so roughly ~2 million people would need to be hospitalized. Even if the 20% somewhat overestimated (because cases where COVID-19 is like a mild cold are not reported), this is going to be absolutely brutal. For reference, NL had 37.753 hospital beds in 2017 [1]. Of course, most hospital rooms are not going to be prepared for this scenario (fitted with proper fans, etc.). Besides that, this would also result in ~200,000 deaths (at the 2% mortality rate).
Everything possible should be done to slow down this corona virus. First to have headway to scale up capacity and to have time to study existing cases to see what therapies are effective and what not (a vaccine is probably still too far away to be helpful).
At least the officials in our country have been honest honest on what to expect. They try to avoid panic, but they have also stated in very clear terms that they believe that scenarios where a significant chunk of the population will be infected are realistic.
Besides that, this would also result in ~200,000 deaths (at the 2% mortality rate).
Nah, way higher. It’s 2% when those who need emergency care do get hospitalized. When the amount of available beds is a rounding error of the amount of needed ones, you’re in deep trouble wrt mortality rate.
Since the serious cases require respirators and oxygen, there’s a threshold where mortality will increase sharply: when there are no more respirators available doctors are going to have to start making hard decisions.
If we manage to keep the rate of new cases low enough, this will be not much worse than a normal flu. If the rate is too high, things look bleak for those over 70 years old.
But it’s not like it’s an airborne ebola with an R0 rate of 5. The current media frenzy (social and traditional media alike) is overblown, IMHO.
Sitting in SEA for three months doesn’t feel particularly travel-centric. I’m not backpacking. I’m renting an apartment and living here for an entire quarter.
Also, I’m not sure if the command at the end of your comment was directed specifically at me. If it was, then that’s a pretty weird thing to say to a stranger.
I am in Vietnam, where they have done a relatively good job of containing the virus. People here are not self-isolating, and there is absolutely no panic-buying. There’s a seemingly endless supply of toilet paper and hand sanitiser.
People here are wearing face masks in public places like supermarkets, but not at cafés or the beach.
People are still working. People are still going into offices every day. We are going into an office every day.
The sensationalism prevalent in Western society — and apparently also among the members of this forum — is the reason why people are panic-buying and our grandparents are put in a compromised position where they may have to do without basic supplies. I still think many people on this forum are very stupid. I won’t point fingers, but I will say again that the implication that COVID-19 is a life-long affliction is one of the stupidest things I’ve read in this community. We’re all meant to do some kind of scientific work, aren’t we? Doesn’t that mean measuring and looking at real data? Don’t we already have a huge amount of data on the recovery rate? Even if you [not you specifically] do think the panic is rational, surely nobody’s case is helped by just making shit up?
Naturally I expect to get downvoted into oblivion again, as people are awfully touchy here.
Battling this flu that is currently still very much winning. Finding someone that is both skilled enough at PHP and JavaScript and willing to sit in my place and take over development and support for my WordPress plugins. The first part on its own is easy, but combining it with the latter makes it incredibly hard. Even though I’m willing to pay (really) well. It strengthens my resolve for getting out of this golden cage, because if others are “picky”, why not me?
I have to link this comment from Rust’s memchr crate author @burntsushi too, which adds some context to the claimed benchmark results.
A version that doesn’t require JavaScript is also available: https://old.reddit.com/r/rust/comments/1ayngf6/memchr_vs_stringzilla_benchmarks_up_to_7x/krwqkif/.
I have a little under 2 weeks before I start at my new job. It’s my first time not being self-employed since leaving University 10 years ago. Mentally preparing for that, as I am not sure at all how I will cope. The good news is that I do not strictly need the job, so only good things can come out of it. I’m mostly hoping the team is nice!
I hate to be “that guy” but running an email server now-a-days is insanely hard not to be tagged as spam.
Then I will be the guy who says that I’ve been running mine for many years with minimal effort. Not sure why the different experience, I do the basics (TLS, SPF, DKIM) but it was fine even before I was doing all that. My outgoing mail is immaculate though. Low volume personal stuff, no newsletters or anything else that recipients would consider unsolicited.
+1. I’ve been running Mailinabox.email on a cheap local VPS for 5 years now for my personal email. It’s been absolutely fine, 0 issues with spam or deliverability, despite everyone saying it’s not nowadays. Not sure if I just got lucky with a clean IP or others are exaggerating / repeating others.
You got lucky, or else you’re good at detecting and avoiding moron advice.
Of which there is a lot. You can’t run email at home by folliowing other people’s advice blindly, you have to understand your configuration files, and your configuration has to be correct, not just close. “OK my DKIM is not quite right but gmail should not care” leads to failure, “I don’t get this DKIM shit, it’s too complicated” leads to failure.
There are free online services you can use that tell you whether your config is correct and even whether you are on any blacklists or whether you’ve configured an open relay, etc. It takes almost zero effort to check those and see what you might have configured incorrectly.
There are indeed online services, youtube is well known. That wasn’t the question.
The question was: Given that the way he tried to do it failed, how quickly should he have done it in another way to escape that accusation that he tried to hide anything? Not “what’s the fastest” but “what’s fast enough to escape accusation”?
FYI, in that 200-page report the investigators said a week was fast enough for them.
Unfortunately, the “works for me”-bros don’t change anything about the reality that it’s very difficult to have reliable email delivery these days. It happens to work for you because you were lucky with IP ranges, reputation, blacklists, etc. You won the lottery - good for you. But it’s no longer like this for everyone. And emails getting lost just isn’t something everyone can afford - we are talking about answers to recruiters, clients, family and loved ones, etc. You don’t want these messages to go missing - especially in a way you cannot detect. A single lost message can alter the course of your life.
No, not necessarily. You can send your email through an existing email service and take advantage of their IP ranges and reputation. As an example, my opensmtpd server sends all my domain’s email via Fastmail’s servers, so I don’t have to worry about any of that.
I did set up TLS, SPF, DKIM, DMARC and reverse DNS. And just in case, I also checked whether my server’s IP address was on any blacklists. I think my former server’s IP address was in one of them, but IIRC it wasn’t hard to ask for removal.
I also haven’t experienced any deliverability issues (in many years of usage).
In my experience, when you dig into most people’s complaints about email deliverability issues you’ll find that they didn’t set up at least one of the standards I mentioned above (or reverse DNS).
As someone who likes self-hosting but has been deterred from running a mail server by stories like those in this thread, running your own mail server but also relying on a third-party service seems like the worst of both worlds.
I don’t see why. Fastmail’s servers have been 100% reliable and trouble-free and if I had any issues, it would be almost trivial to switch to another third-party server or even send my email through my own server, since I already have everything set up correctly (except for the new part of the config). It’d just be a couple of simple changes.
Maybe you’re wondering what are the advantages of running your own server. For me, there are a few:
The major downside for me (apart from the initial setup) is maintenance: basically, just ensuring my server is up-to-date, which usually only requires a few minutes per week (and I was already doing that anyway). I do major OS updates twice per year and only once did it require fixing my config due to config syntax changes in opensmtpd (which was easy enough to fix).
I find it simpler to keep home my MTA running smoothly than e.g. the web site I’m working on today during working hours.
I’ve run my own email server for over twenty years now. It was about two years ago I had to change IP addresses (hosting provider made some internal changes, I received a new IP in a new /24 block), which was upsetting at the time, since it had been … a decade or more since my last mail server IP change.
But it was fine—I don’t recall there being any issues with the new IP address. Now, that could be due to my domain having a good reputation or the IPs not having a bad reputation, I don’t know.
Edited to add: I use Postfix, and have for almost 20 years now. Again, no problems with it.
Mine wasn’t. TLS + SPF wasn’t enough, I routinely ended up in people’s spam folder, sometimes when replying to them. To be fair I only noticed this on GMail, but their market share is difficult to ignore. And from time to time Hotmail blacklisted my entire IP block.
So was mine, and I got my IPv4 15 years ago.
Now if you can convince all your contacts to get off the giant oligopoly that spies on them, yeah, you’ll probably be fine.
I’ve been self hosting since before gmail launched and not had problems with them. I occasionally had to use my personal account to email gmail users in my last job because gmail decided mail sent from my official @microsoft.com (which, obviously, runs on M365) was spam, but never had to do the converse.
I think gmail is just nondeterministic and will sometimes decide things are spam. I suspect it does this deliberately to see if people move things out of the spam folder to give a strong not-spam score. It didn’t seem worse self hosting than using a big provider, but if you self host you feel like you should be able to do so,etching about it.
To be honest my biggest obstacle to running my own mail server is the sheer hassle of configuring it. The first time I did so took me almost a week. The second time took me a good day. The third time I just moved over to my provider’s turnkey email solution. I had TLS (self signed, I started before Let’s Encrypt) and SPF, but no DKIM, no DMARC, and no reverse DNS, and I really didn’t look forward to implementing them all.
I have a simple use case:
Now I want a setup that does this with one install command and about this much configuration:
I can survive if it takes 3 times as much work, but beyond that I’ll consider writing myself an alternative. Though I’ll probably start with the web server, configuring nginx is just as painful as configuring Apache, and I have yet to convince it to turn on content negotiation (for multilingual support).
I have a similar theory that they sometimes send people down alternative routes on google maps, just to see what the traffic is like and how long the route actually takes.
Gmail has bugs sometimes. They deploy new code very often.
I know that one affected mail from one of my then-customers, and I know it was a bug, and it was fixed a little later. Later on the same day, or the next day, I don’t remember.
In my experience, you can do everything right: low volume and follow all the latest SMTP communication standards and your email will still be marked as spam. The only thing that consistently worked for me was changing which outgoing IP I used. In that case I have to conclude it’s a matter of winning the IP lottery in the end.
Since you have had consistent long term success, can you share what hosting platform or AS you are using for your outgoing SMTP server? That would help me reach your level of deliverability success.
Yep - relevant blog (not mine) on the matter: https://cfenollosa.com/blog/after-self-hosting-my-email-for-twenty-three-years-i-have-thrown-in-the-towel-the-oligopoly-has-won.html
This is simply not true and I wish this myth would die.
There are a handful of things you need to take care of and none of those things are insanely hard.
If you route your email through a blessed smarthost your mail won’t be marked as spam. If you’re exceptional at configuring your SMTP server you can make it so that the smarthost is only used when communicating with the most hostile email hosts (Google, Microsoft).
Ooh, that’s an interesting prospect, actually. Rent an email relay from google to use for emailing google users, one from microsoft to use for emailing microsoft users, etc. Now you’re not giving anybody any email data you wouldn’t have anyway. Drawback is, um, expensive. And you do reveal your name/payment information.
There are smarthosts that have a fairly generous free tier, and can deliver fine to google/microsoft. For personal, low-volume email, that’s a perfect fit, imo.
The point is that that reveals information to the relay host. If I use google to relay messages to google, that doesn’t reveal anything to them—they already know I’m sending messages to them.
I was reflecting on the expensive part. For my case, the info leak is an acceptable compromise for not having to give money to google or microsoft.
Exactly. You could have probably figured this out on your own but for the sake of discussion: to make it cheaper, you can open a free gmail and Hotmail account and rewrite the from header and mail from envelope to those respective addresses when you route through the freely provided smarthosts for the respective platforms. This is a decent compromise when you’re the only identity using the mail server.
You can “configure” this stuff fairly painlessly using a filter script with postfix and the
sender_dependent_relayhost_mapsoption so it’s all automatic.So, if you give in to the racket you won’t be excluded…
There’s a problems with such deals though: their terms tend to change, and all we can do is pray they do not change further.
I’m defo not an exper in mailservers yet I managed to run one for like a decade. I can’t speak of absolute truths, just my experience. At some point I even misconfigured mine to be an open relay. I did got flagged but I also didn’t have much trouble to get off spam lists once I fixed the issue. It took a bit of time but that’s about it.
Re: my job application at a local university of last week. Well, I made it through the first round of candidates and am meeting in person next week, so I’m going to be preparing for that over the weekend! My CV is not particularly impressive because of being self-employed basically all my life but my accompanying letter apparently made an impression. Now I need to make sure I don’t undersell myself. It’s hard not to be a little intimidated by all these academic titles while I come from a much more practical angle.
Also, my brother is coming over from the other side of the country (not that impressive, it’s NL), so I’m making pizza (again)!
Applied for a job at the local university involving C++ and cryptography. Well outside my comfort zone, given the fact that I have been self-employed and WFH for pretty much my entire working life (14 years).
Also I have never used C++ professionally, so I have some learning to do. I do know a fair amount of C and Rust though, so I have at least some relevant knowledge. Here goes nothing!
Any tips, pointers or anecdotes are very much appreciated.
Tips: In my experience, university people are usually motivated to find someone they think they’ll enjoy working with, so be friendly and pleasant and show interest in them as people if the situation allows and all that sort of stuff. Don’t worry about your lack of specific experience: university people are likely to decide that you’re flexible and therefore can pick it up, or inflexible in which case they wouldn’t have wanted you anyway (in your case, I’m sure the former).
Thank you! The job opening did indeed read as if there’s was a lot of room in terms of specific experience with some extra items like not being afraid to be al little idealistic or enjoying working in an office with others. I’ll do my best to be the most charming version of myself. :)
I recently rediscovered Sublime Text and am very happy to be using it again. I moved from Sublime to the Jetbrains suite back in 2013 because the Jetbrainds IDE’s were so much better at things like Go To Definition, but now with LSP’s (at least in the case of Go and Python), Sublime comes pretty damn close (and is a lot faster). It also doesn’t require me to switch between editors when switching between certain languages, eg Ultimate (web stuff) and CLion (C/Rust).
It’s not open source but I really like how a small team can build a great editor that’s loved by many and seems to be able to sustain itself financially in a healthy way.
I’m learning to play Go, and how to use Vulkan.
I also might try to learn Italian again.
If I may ask, why Italian?
I’d love to learn it as well as I’m a huge pizza geek and would love to go there on a regular basis to visit famous pizza places, but something like Spanish or French would probably be more useful overall for me to learn..
Spanish would definitely be more practical for me, too.
But I’m half Italian, so that was the main reason I picked it. Nobody in my family speaks it or anything like that, but it’d be fun to learn a little and take a trip to Italy.
me and my partner have been practicing at chess! my goal is to get to at least 1200 elo, which seems like a reasonable goal based on stories I’ve heard from others getting into chess around out age.
Nice, good luck! Just remember that 1200 ELO on Chess.com is vastly different from 1200 ELO on Lichess, which in turn is vastly different than 1200 ELO OTB. But yeah, I’d say 1200-1400 is the sweet spot in terms of required time investment and diminishing returns.
Useless pedantry of the day: It’s Elo, not ELO. It’s not an abbreviation, but named after its inventor, Arpad Elo. :-)
Hah well, not that useless. I actually knew that but still always typed it all uppercase. TIL not to do that!
yeah, I should probably try lichess at some point. people on chess.com are kind of assholes, lots of going straight for scholars mate 😅
I’m afraid it’s no different on Lichess in a certain ratings bracket. The only solution is to memorize defences against those openings and the opponents will usually give up quickly.
I was never very good at chess but I was all right. I taught my older son (12) how to play when he was younger and now I have to uh…let him win. That’s it.
As a maintainer of a few popular projects, I prefer GitHub. It is fun how people try to “avoid” GitHub. Literally all significant projects are hosted there. Show me something popular what isn’t hosted on GitHub, can’t you?
Oh, lets see some significant things…
How about the linux kernel? Or GNOME? Or KDE? Or glibc? Or Emacs? Or wlroots? Xorg? Wayland?
Just a few off the top of my head.
Linus’ official tree is this https://github.com/torvalds/linux/
No, it isn’t. Linus’ official tree is on his computer, this is but a mirror, like any other. You can’t open issues, you can’t submit PRs, development is not done on GitHub. Thus, the official repo of the Linux kernel is not this one.
This is Linus’ official tree, as linked to by kernel.org, and pretty much everything else, including documentation.
That’s just a mirror.
Well that’s kind of the problem, isn’t it? They are trying to avoid GitHub despite it having such a monopoly (although kind of inflated because of all the hobby/student projects on GitHub).
I don’t see the point. Only saying Microsoft, don’t justify moving from GH.
GH is only the platform. The content what is posted there is matter.
The point is that posting content there means opting in to the Copilot training on your code base (something the OP objects to). Even if you don’t care about that particular issue, hosting content on GitHub also means you’re cementing their monopoly even more, so it’ll be even harder to switch away if they decide to do something you do object to. Monopolies are never good, even if you actually like the offering. We should’ve learned that lesson by now, but history keeps repeating in plenty of areas. Even us nerds keep giving companies all this power (Google being another prime example).
As a mailbox.org user, I’m curious why you decided to move to TransIP. Mind sharing? I found the low prices, eco-concious priorities, and Germany hosting attractive. The price increases felt pretty steep for me though because I don’t use most of the bundled services.
I’m actually fairly happy with Mailbox.org for much of the same reasons as you. It’s just that my contract is due for renewal soon and I’m taking the moment to consolidate a few things at TransIP, another provider I’ve been happy with for over a decade now (+ it’s local to me).
I just sat down to explore the email offer from TransIP more thoroughly, but it’s not up to par with Mailbox.org. Sure, the interface is more slick whilst that of Mailbox.org feels a little clunky. With TransIP, I was unable to have several domains under 1 email account (except for purchasing multiple 5EUR/month packages). Mailbox.org makes that easy and I only have to deal with their interface once a year, so I just paid for another 2 years of Mailbox.org!
Pizza! Trying out a new dough recipe. Also dealing with my first cold and consequent sinus issues in well over 8 months, had a good run.
Maybe spend some evening time on my static site generator “Gozer” too. Such a fun input -> output project.
What’s the recipe? And did it work?
I’ll know in 3 hours! Basically I was always using an overnight pre-fermentation phase (poolish) before coupled with relatively short rise and rest times (~6h) for the final dough. This time I didn’t use pre-fermentation but went for a slow rise (~30h) of the final dough right away.
How to fix my damn sinus issues. I have vasomotor rhinitis and as long as I don’t get a cold or the flu, it’s fine.
As soon as I catch either of those, I am unable (literally unable, like zero) to sleep for at least a few nights. It is driving me to the edge.
I had the same problem. I’ve managed to solve it via:
Amazing, I wonder what caused the sudden jump?
I moved from OSX to Ubuntu + Gnome in 2016, then Arch + Gnome a few years later and then Arch + Sway recently. Been very pleased with the overall experience. Running all this on a €900 Lenovo Yoga with AMD Ryzen 7 and it blows my previous MacBook (which was more than 3x as expensive) out of the water on all fronts.
It’s simply because it’s not the same initial question from previous years.
In the past, you could only select one main OS, while in 2022 you could select more than one.
I have two bets, WSL2 getting really usable with working GUI, and Steam Deck.
I’m running NixOS on Ryzen 7 5850U, with Gnome.
I also agree, WSL isn’t exactly “Linux desktop”.
Anyway, next year I’ll gonna contribute in the other direction, the new company offers me either windows or Mac, so count one Linux less :(
Both run full screen Linux VMs quite well ;) I’m actually not joking. VMware if you can pay or something like utm https://mac.getutm.app/ works great.
This of course assumes you’re not bound by some os specific tools, but if there’s a win/Mac choice, that’s unlikely.
I wonder too, it’s a really big jump. Perhaps people gave up on their COVID sourdough starters and started a Linux install instead?
The best tool to move IMAP accounts is https://imapsync.lamiral.info/ .
Actual working example, with the host names changed:
imapsync has never failed me. Used it to transfer my backlog of 20 years worth of emails and it did not miss a single one.
It seems the author was confused over its price, which I understand looking at the website. For me it always was available in my distro’s package manager, so is the price listed really only for support and perhaps people on Windows then?
Officially, a license for the software costs €60. However, you don’t have to look too far on the website to find that there’s a copy sitting in /dist/. And like you say, some package managers (including brew) include it.
The software is released under the No Limit Public License, and there’s this note in the source code:
In the “Why PHP?” Section:
This is the crux of it, and there’s a lot of implicit things going on in these sentences. First off, there is a clear jab at people who do have degrees and formal training. “Prestigious” is used pejoratively and sarcastically here. This wasn’t the author’s path, so they resent people who did take that path. Of course when you are self taught, you skew towards any tool that can get you up and running the easiest and quickest. Note how I said “up and running” - it’s not the tool that is best in the long run, it’s the tool that gets you a picture on the screen the quickest. By the way, there’s value in that too, but I wouldn’t base all of the dimensions of my evaluation just on something “being there.” Availability is valuable, but it’s not the only valuable quality.
This is a viewpoint that’s very common in the industry, I personally meet a lot of people who share this mindset. I don’t think it’s entirely wrong, but I think it’s a very limited way of thinking, and the people who hold it tend to be self-righteous like this. I understand that PHP might have been your path, and it might have worked for you. But a tone like this reeks of criticizing and minimizing other people’s path. I get that they feel defensive because people are attacking PHP, but I don’t think that’s causing this philosophy, I think this is many people’s true philosophy under the hood, this was just an excuse to write about it.
Where does this philosophy come from though - can anyone name any popular programming language that was designed for “CS graduates?” Python? Java? Javascript? These are the most pragmatic and un-academic languages on Earth. The pragmatists and proudly un-educated have won, why are they claiming to be the ones that are being persecuted?
Btw, if it’s important to anyone, I don’t have a CS degree, I studied Electrical Engineering. I definitely took CS electives, but I also consider myself mostly self-taught in terms of actual programming and CS. But I don’t knock the academic side of CS, on the contrary I think it’s responsible for every single good idea that makes its way into “practical” programming languages.
I don’t necessarily have a problem with people using something that gets content on a screen quickly. But I don’t accept the excuse that self-taught means you can’t or shouldn’t grow beyond that. I’m self taught. I don’t even have a college degree and yet I learned Haskell. I can write Rust code. I started out in PHP but I outgrew it eventually. Anyone who can become an expert in PHP can do the same.
It’s fine to get payed to write PHP. There is code out there that needs maintaining in PHP. But PHP earned it’s reputation as a deeply unsafe language to develop in and even with the improvements the language has made much of that unsafe core still remains.
While the author of the article is being contemptuous to those with more educated backgrounds, I think you’re doing a bit of the converse here. Programming is as wide as humanity itself; if there’s a way for a computer (for some definition of computer) to accept input and provide output, I can guarantee you that someone will have probably programmed it. There doesn’t need to be a single, good path to programming. Whether your path involves writing PHP, unsafe C, or Haskell, it doesn’t really matter.
It’s difficult in a comment forum to give an appropriately nuanced take on stuff like this. I didn’t intend to come off as contemptuous. If you get hired to help maintain a PHP codebase then the responsible appropriate thing to do is to work on PHP code. There is no shame or condemnation for it.
Sometimes though I think people get stuck or pigeonholed as “PHP developer” or “Python developer” and never learn other tools or approaches. I want to encourage those people that they can be more than just $LANG developer. There are better tools than PHP out there that you can use when you get the opportunity. Learning to protect yourself from the flaws of a given language is a valuable skillset. There is no shortage of work for people who became experts in avoiding the pitfalls.
But ,when you have the opportunity, it is hugely valuable to be able to choose a language with less pitfalls. Where the defensive programming is less about defending against the language itself and more about defending against the environment your software has to run in. Being able to choose those languages is also a valuable skillset that no one should feel is out of their reach.
Great explanation of this idea.
I figured which is why I tried to keep my reply soft. I agree with everything you just said.
Also, a CS degree doesn’t teach you programming anyway. It’s not meant to. It teaches you CS (or at least tries to). You probably self teach some programming along the way but it’s harly a focus of coursework.
I don’t think that’s universally true. The first two years of required classes for a CS degree at the universities around me (US) were heavily focused on programming (Java… C++…), and failing any of those would have meant no CS degree.
I don’t entirely agree with your interpretation, but I will note for sake of irony that this is more or less how un-credentialed (in the sense of not having a degree in CS or other “relevant” field) developers feel for pretty much their entire careers. There’s a huge and powerful trend in tech hiring of prioritizing people who have a degree from one of the handful of trendy top universities, and a feedback loop wherein people who work at major companies help develop and teach “how to pass our interview” courses at those universities. The result is that if you are not someone who has a CS (or other “relevant”) degree you are constantly the odd one out and near-constantly being reminded of it.
I still feel this coming up on 20 years in to the industry and with a résumé that largely lets me avoid a lot of the BS in interviewing/hiring.
(I’m hoping this comment isn’t too off-topic.) I certainly agree. I myself come from one of those trendy elite CS universities (though it’s been a good while at this point) and am well credentialed, but I’ve started to use large numbers of junior engineers out of good schools to usually be a light negative signal when applying for a company. The culture of hiring in software is such that companies often overselect for credentials while ignoring effectiveness, at least in my opinion.
This depends entirely on your experience. I’ve never seen this trend, I’ve seen quite the opposite - a large chunk of people I work with don’t come from a CS or engineering background. Nor do I see anyone being hired over someone else because of where they went to school.
The fact that you’ve never seen FAANGs go on-campus at certain universities (but not others) to recruit, help develop “how to pass the interview” curriculum to be taught at certain universities (but not others), etc., doesn’t mean that it doesn’t happen or that it doesn’t have an effect both on their resulting workforce/company culture and on everyone who emulates their hiring (which is unfortunately a large chunk of the industry).
Let me repeat what I said:
My glib answer: yes. Go. From Rob Pike, the creator: “The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.”
More seriously, I think this “self-taught persecution” attitude is related to imposter syndrome and the increasing credentialism in society. A former coworker of mine tended towards a self-defense attitude and I chalk that up to his not having a CS degree as a developer (he did, however, have formal training as a jazz musician).
It’s also not as if PHP is alone in this hate—C is probably hated just as much, if not more, than PHP.
Yet if you know C well, you’re probably seen as much better “programmer” then if you knew PHP well. But yeah, perceptions.
Rent seeking isn’t hate. C dominates everything. So if you invent a new programming language, there’s only two paths to being successful. You can either (1) appeal to the new generation of young people to learn your language instead of C. That’s how PHP and Node did it. Or (2) you can run PR campaigns vilifying C until you’ve convinced enough VPs to convert their departments. That’s how Java did it.
I agree with everything you said here. I even share your perception that many people seem to be insecure and/or defensive about not having a CS background or not really understanding some of the popular concepts we read about in blog posts, etc. Like you said: The “pragmatists” won- what are they worrying about?
In some ways, computer programming is very much like engineering– engineering jobs/tasks/people fall on a wide spectrum of “how academic” from “glorified assembly line work” all the way to “indistinguishable from pure science research.” And attitudes similarly span that spectrum. That’s not a bad thing–just an observation.
What’s extra frustrating to me is that it’s now turned a corner where if you do criticize a language like PHP, you’re seen as an irrational troll who just thinks you’re smarter than everyone else. It’s become anti-cool to shit on PHP, even though it’s still literally the least capable backend language being used today besides maybe Python (no async, no threads, no generics in its tacked-on type system, object equality is not customizable and will crash your program if you have a ref cycle, etc).
As a developer that has experience building web backends in PHP but also some experience with Go, Python, Ruby (w/ Rails) and Rust, I wonder what language you deem capable as a backend language that still provides the same level of abstraction as, say, Laravel or Symfony. Rails obviously comes to mind, but what else is there (if Python w/ Django is out of the question)?
Keep in mind that I’m not trying to evangelize “the one true backend language” or anything like that. My main point was just to gripe that there are still (what I consider to be) legitimate criticisms of PHP as a (backend) programming language, but whenever I point them out as reasons that I might suggest someone avoid starting a project in PHP, I’m met with more skepticism and defensiveness than I think is justified.
The secondary point is that I truly believe that PHP is strictly inferior to other backend programming languages. What I mean by that is that we all work differently and have different preferences: some people will like dynamically typed languages, some will like statically typed; some like OOP, some like FP. That’s all great. Scala is a very different language than Go, which is a very different language than Clojure. But if you look at “modern” PHP projects and “best practices” advice, it’s almost literally the same thing as the “best practices” for Java 7 in 2010, except that PHP doesn’t have good data structures in its standard library, has no threading or async, no generics, etc. And if you compare modern PHP with a recent version of Java… oh, boy! Java now has ADTs, Records, Streams, and a few other really nice additions that make writing code a little less painful.
So, it’s not just that I think PHP is a bad language, it’s that it’s, IMO, a less capable subset of another language. If it were actually different, then I might just shrug it off as a preference thing. I mean, PHP even stole the class semantics right from Java (single inheritance, interfaces, static methods, abstract classes, final keyword, etc).
I know people love Laravel, but my contention isn’t that Laravel isn’t good (I don’t honestly have much experience with Laravel, but I have worked with Symfony). But Laravel is not PHP. I’m talking about the language. If there’s something written in PHP that’s so valuable to your project that you choose to work with it, that’s great. But in my opinion, the sane attitude should be one of “Well, I guess it’ll be worth it to deal with PHP so that we can use XYZ.” and not “PHP is a good language and @ragnese is just an anti-PHP troll. What backend language could possibly want async IO or easy fire-and-forget tasks, anyway?”
I don’t like rails either for slightly different reasons. I would rather develop in Go if I’m creating a backend web service than Python, Ruby, or PHP. I don’t find that I usually need much more abstraction than say gorilla most of the time. And Go doesn’t suddenly surprise me with strange behavior as often.
The person they’re asking definitely doesn’t use Go though, because of:
Phoenix in Elixir is pretty good — very batteries-included, high-velocity, and extremely good with async/concurrency/parallelism. I don’t know if “object equality is not customizable” applies, it’s immutable with value-based equality at all points, so…
The tacked-on type system is pretty awful (Dialyzer is well worse than, say TypeScript, mypy, or Sorbet) but I don’t think it’s strictly worse, considering what you get from the framework/library.
Based on their complaints (“no async, no threads, no generics in its tacked-on type system, object equality is not customizable and will crash your program if you have a ref cycle, etc”), and assuming they’re not using a really esoteric language, I’m willing to bet they use Scala, Java, C#, or Rust. I’m definitely curious about this too.
Whether or not those have a web framework that competes with Laravel, I’m not sure. That’s also not the measure of success though, for example if people are working with a lot of services a monolithic web framework isn’t as important or even desired. That’s one other thing to consider here - I think it’s accurate to say that PHP is synonymous with building monolithic web apps, and not everyone builds monolithic web apps.
PHP isn’t dead. That much is obvious if you look around the industry a little bit. I’ve personally never said PHP was dead.
However PHP lost my trust years ago. I’ll never write another line of PHP nor will I willingly work on maintaining an existing PHP codebase. Fool me once shame on me. Fool me twice… Well you know how that quote ends.
I would love to hear more about how you lost trust in a language that has grown considerably in the last couple of years (decade?) to be a more “mature” language with a pretty in-depth feature set. I’ve built a career working in PHP (and other languages too, but mostly PHP), so statements like this always pique my interest.
This is probably in part because it lost my trust several decades ago. There are so many great languages that I can be employed to write that don’t have any of that historical baggage to deal with. Java, Go, Rust, C#. Why go back to a language that due to backwards compatibility will always have footguns waiting in the codebase for me. Layering on safer ways to do things can improve a language over time but unless you also remove the highly unsafe bits as you go the language will always fundamentally be working against you.
I have the luxury of not having to choose PHP ever. I’m grateful for it.
That’s understandable. I began my career with PHP in the early 2000s, migrated towards C/C++, C#, node and eventually Go before coming back to PHP.
The PHP of today is very much not the language it was ten years ago*, doubly true for 20 years ago. While it’s still my daily driver I do enjoy working in Golang, TypeScript and both React and Vue on the front end.
Its very true to look at some legacy PHP codebases and wince in terror at all the bad stuff. I agree as well, that they need to seriously look at removing some legacy from the codebase - but you have to admit its kind of impressive how well they have managed to keep a lot of backward compatibility. I always recommend every PHP developer, especially new ones, read A Fractal of Bad Design to understand how PHP got the reputation it has. But then to also read PHP The Right Way so they can contribute to our larger application codebase efficiently.
Like everyone else has said though - the langauge and ecosystem has evolved quite a bit and when you look at it as say, middleware between a client (browser) and other services (databases, queues, what ever), you see it fits nicely as a solution for certain problems. If I’m thinking about building a website, or webapp, or simple RESTful service, I will always grab PHP first but I would never say some one not using is wrong. I don’t care what brand of hammer you use, as long as we’re hitting nails.
Seconded. I’ve been working with PHP (but not exclusively PHP) for over a decade and have never experienced anything that would cause me to put down such a statement. Very much interested to hear what happened.
I don’t do web programming in general, but I won’t even work for a company that uses PHP. I take that as a sign the company does not make good decisions. Cheers.
Planting some chillies. Looks like they’re going to take a few months to grow, that’s even longer than it takes to compile Firefox from source which I didn’t know was possible :’(
I wonder, is this due to Servo being written in Rust or was it always slow to begin with?
Worst case is around 80 minutes on my Lenovo x series laptop. You can get it down to 10 with a regularly updated tree, a decent machine or an sccache cluster.
Good luck with your chili project. Sounds like a better plan than compiling Firefox Ina weekend for sure :-)
This just isn’t true. Within the next four weeks, there will be a million cases at this rate.
The panic is entirely rational. https://bedford.io/blog/ncov-cryptic-transmission/
The virus isn’t the problem. The problem is that our social structures are at risk of breaking down under the strain of trying to care for everyone.
The number of active cases is on a down trend or stable at ~40.000. Certainly no trend towards a million. https://www.worldometers.info/coronavirus/coronavirus-cases/#active-cases
That’s because the majority of cases so far have been in China, which appears to have gotten the disease under control through strict lockdown/quarantine policies. If you look at the charts for the rest of the world on the same page, they tell a very different story: lagging behind China in absolute number of cases but a clear exponential growth rate.
Again, you’re not understanding that the risk isn’t the virus. The risk is everything you take for granted breaks down.
Grocery stores. Hospitals. Public transit.
Let me ask you this. Who do you think is going to take care of a million patients globally? Are there even enough beds? And when there’s not, then what?
And that doesn’t even get into the question of what we should do with people who have the virus. Put ‘em in isolation, okay. Then what? People in isolation need food. Who’s going to bring it to them? When are they safe to release? Are they ever safe to release? If not, what then?
Work out the exponential growth.
It’d be one thing if the virus was only targeting certain subsets of the population. But it’s targeting all of us. Anyone can be a carrier, even if they’re not at risk of dying.
If you don’t believe how fast this thing spreads, look at this: https://twitter.com/luisferre/status/1235235076193112070
Merely driving someone to the hospital was enough. Close proximity = infection.
My wife said something along the lines of “I have a conference in the summer, I guess we have all had the virus by then and life can go on as usual”.
I did a quick back-of-the-envelope calculation to show that this is probably not what we want. I saw recent estimates that during a pandemic (which would probably happen if no further measures are taken) an expected ~60% of the population would be infected. I think the current statistics state that ~20% of the ill need to be hospitalized. The Netherlands has ~17 million inhabitants, so roughly ~2 million people would need to be hospitalized. Even if the 20% somewhat overestimated (because cases where COVID-19 is like a mild cold are not reported), this is going to be absolutely brutal. For reference, NL had 37.753 hospital beds in 2017 [1]. Of course, most hospital rooms are not going to be prepared for this scenario (fitted with proper fans, etc.). Besides that, this would also result in ~200,000 deaths (at the 2% mortality rate).
Everything possible should be done to slow down this corona virus. First to have headway to scale up capacity and to have time to study existing cases to see what therapies are effective and what not (a vaccine is probably still too far away to be helpful).
At least the officials in our country have been honest honest on what to expect. They try to avoid panic, but they have also stated in very clear terms that they believe that scenarios where a significant chunk of the population will be infected are realistic.
[1] https://www.staatvenz.nl/kerncijfers/ziekenhuisbedden
Nah, way higher. It’s 2% when those who need emergency care do get hospitalized. When the amount of available beds is a rounding error of the amount of needed ones, you’re in deep trouble wrt mortality rate.
Since the serious cases require respirators and oxygen, there’s a threshold where mortality will increase sharply: when there are no more respirators available doctors are going to have to start making hard decisions.
If we manage to keep the rate of new cases low enough, this will be not much worse than a normal flu. If the rate is too high, things look bleak for those over 70 years old.
But it’s not like it’s an airborne ebola with an R0 rate of 5. The current media frenzy (social and traditional media alike) is overblown, IMHO.
I mean, you’ve already established in past threads that you place a high value on your travel-centric lifestyle.
Wash your hands, comply with local public health officials, and tell the truth about where you’ve been during border screenings.
Sitting in SEA for three months doesn’t feel particularly travel-centric. I’m not backpacking. I’m renting an apartment and living here for an entire quarter.
Also, I’m not sure if the command at the end of your comment was directed specifically at me. If it was, then that’s a pretty weird thing to say to a stranger.
Ah, I think the ending that said “that’s the best any frequent traveler can do” was eaten by a grue.
Ah, sorry. Yes, I think you’re right.
Sorry for being defensive.
I wonder, do you still hold this opinion?
Yes. I still hold this opinion.
I am in Vietnam, where they have done a relatively good job of containing the virus. People here are not self-isolating, and there is absolutely no panic-buying. There’s a seemingly endless supply of toilet paper and hand sanitiser.
People here are wearing face masks in public places like supermarkets, but not at cafés or the beach.
People are still working. People are still going into offices every day. We are going into an office every day.
The sensationalism prevalent in Western society — and apparently also among the members of this forum — is the reason why people are panic-buying and our grandparents are put in a compromised position where they may have to do without basic supplies. I still think many people on this forum are very stupid. I won’t point fingers, but I will say again that the implication that COVID-19 is a life-long affliction is one of the stupidest things I’ve read in this community. We’re all meant to do some kind of scientific work, aren’t we? Doesn’t that mean measuring and looking at real data? Don’t we already have a huge amount of data on the recovery rate? Even if you [not you specifically] do think the panic is rational, surely nobody’s case is helped by just making shit up?
Naturally I expect to get downvoted into oblivion again, as people are awfully touchy here.
Battling this flu that is currently still very much winning. Finding someone that is both skilled enough at PHP and JavaScript and willing to sit in my place and take over development and support for my WordPress plugins. The first part on its own is easy, but combining it with the latter makes it incredibly hard. Even though I’m willing to pay (really) well. It strengthens my resolve for getting out of this golden cage, because if others are “picky”, why not me?