FWIW, I’ve personally enjoyed email hosting by Migadu.
Same here. Switched after self-hosting mail for a couple years. Can absolutely recommend Migadu.
I’m the author of the post. I hadn’t heard of Migadu before, but it almost looks like it would work. The only issue is their Micro plan ($19/year) only allows 200 inbound emails per day. I guess that may not be an issue most of the time, but there are days where I receive more than 200 emails. The inability to control how much inbound email you are receiving makes me hesitant to use such a service.
I also use migadu for a family account. The thing I really like about it is that you can add as many accounts as you like for your domain: email@example.com, firstname.lastname@example.org, email@example.com, it’s so nice.
But yes, the 200-in limit has been my concern too. I subscribe to a few mailing lists and have a worry that one day some big heated mailing list conversation will put me over. This FAQ answer suggests they are lenient and that emails won’t actually be lost (assuming senders follow correct email practices!), but my tentative plan has been to wait and see if I ever get a warning email, and upgrade to the next tier if it becomes an issue. It hasn’t so far, after a year or so.
For what it’s worth, it’s not a hard limit. They won’t block the 201st email — if it’s a recurring thing, they’ll ask you to upgrade. This is mentioned in their docs, somewhere. cc @jeremyevans
I checked and it is in their documentation. So maybe that would have been a simpler option. I might have switched to Migadu instead of using a VM if I had known about it first. I think the only issue is the next level up from the $19/year plan is the $90/year plan, which is a pretty significant jump. But for someone who isn’t likely to go over their limits, Migadu looks like a really nice option.
It’s mentioned in the FAQ answer I linked to
Ah, didn’t notice you’d done that.
Re: using multiple addresses at the same domain:
Which email client(s) do you use? Last time I checked, Thunderbird doesn’t put design thought toward this use case. As such it is clunky to use for sending emails from different addresses.
I’m on Evolution now, but always looking for better options.
I primarily use mutt, which I have configured with 4 different email accounts: 1 work, 1 gmail, 2 migadu. So I don’t actually send from different addresses exactly (although I think that is easy to do in mutt), but have commands which switch me completely to a different account and inbox.
But what I meant about migadu is not that they give you multiple email addresses to send to and from within your domain, but that they let you add as many accounts as you like within that domain. So my daughters get their own email addresses and passwords and can sign into them on whatever mail client they like. And I can give these out to as many of my family as I like (the domain is a play on our surname), as long as I don’t hit the 200/20 limit.
Thanks for posting your setup. I’ve been sniffing at things adjacent to this for a while, looking at some other providers for SMTP. mailroute was the one that had looked most promising, but their definition of a “user” would have had me paying heavily for all the aliases I use, so I had not made the jump yet. Tuffmail’s EOL is going to force my hand.
Right now, I’m deciding between Migadu and a setup similar to what you’ve done. I had almost given up on the self hosted setup. Sendgrid could work for me, though. My only heartburn about it is, if they decide to kill off their free plan, it’s a huge jump up to $15/mo while I work out an alternative. Where I’d be flirting with the 200 in/day limit on Migadu, the jump up to the next tier isn’t as nasty if I need to do that.
Really sad to hear about Tuffmail. They were truly the best option.
Awesome! 5 years of adding packages and I never thought to just dig in to built in functionality. We need more of these articles!
Thanks for this.
About 7 years ago I was diagnosed with PTSD, and was prescribed a drug called propranolol. It’s a blood pressure medication with interesting properties that is used off-label for PTSD, anxiety, and various other things.
I used to have severe arachnophobia (not directly related to the PTSD, or at least the arachnaphobia wasn’t why I sought treatment). To the point where when I was around 20 I found a spider on me and stripped naked and ran screaming into the backyard.
Anyway, one day after having been on propranolol for some time, I was out hiking with friends and we stopped under a tree. After a few minutes I realized there was a spider on my shoulder. I picked it up in my hand and suddenly it dawned on me – I wasn’t afraid. Not even a little.
I went home and started seeking out spiders to pick up and hold. I went from being absolutely terrified of them to becoming excited whenever I saw one – it became like seeing an old friend. This persists to this day, and I’ve been off propranolol for several years now.
Anyway, I live in New Mexico now, and right now it’s spider season, so black widows (which have a needlessly bad reputation) and other spiders are out in force. So the best part of my day lately has been walking around the backyard and checking on all of the webs in the garden and around the house, and occasionally giving them a little drink of water. It’s been wonderful watching their progress and getting to know each of them.
A footnote re propranolol – years after my experience with it, I learned that the effects of propranolol on arachnaphobia were studied with results very similar to mine! In a way it makes sense – there are a lot of commonalities between PTSD and phobias, and one could imagine there are similar mechanisms at play especially when it comes to memory.
black widows (which have a needlessly bad reputation)
black widows (which have a needlessly bad reputation)
Seconded! I have even accidentally lightly mushed them while moving pots around with bare hands to no fanfare from them. Youtube search black widow bite videos and people really have to harass them for a reaction.
Or, learn VIM commands while learning elisp. Emacs with VIM bindings is best of two worlds.
With the caveat that:
I’ll take Vim over all that. With a really short config everything’s fast and doesn’t break on every turn. (It helps when your way of working (in this case the vim way) is the default way.)
The meme that emacs is slow to start up really needs to be put to bed.
Your browser is slow to start up but you don’t start it up every time you want to view a web page. You start it once and open pages as you go. Same with emacs. Start it up once when you login. Then open files using emacsclient. Then it’s no slower than vim.
“Don’t perform a startup” is not a good counterargument to “startup is slow”. It’s like answering “don’t shutdown your computer when using Windows” to “Windows is slow to boot”.
Yes, my browser is slow to start up and I think of my browser as a pile of garbage. I don’t enjoy using it. I’m forced to use it. Besides, that was only a minor point. Yes, once I start Emacs, I can open files from there. But I just wrote how: 1. finding files is slow; 2. basic operations like “undo” are ridiculously slow. I don’t know, maybe Emacs mines bitcoins when I hit undo, as punishment for my mistakes. So anyway, leaving Emacs open doesn’t make it any more responsive further down the road.
I tend to start a session in a Tmux window. Sometimes when I exit to reboot I find buffers that are months old…
Re: #3 - gccemacs may be integrated with master and deliver real perf gains: https://akrl.sdf.org/gccemacs.html#org4c175c8
If you’re the kind of person who’s willing to put up with a learning curve and a smaller ecosystem of plugins to gain access to a powerful editing model, also consider Kakoune. It’s like Vim, but moreso.
I simply can’t go back to Vim after using Kakoune. Feels like a step back to me.
I am in the same boat. I think by and large Kakoune is a step up from Vim. That said, it is not emulated in very many other places (it is in vs-code now via dance) – so you do lose the ability to pop into IDE of your choice and have a good experience.
Dance is cool, but there are a lot of little things that does not work the same way and it’s annoying.
When i’m at the beginning of a line and press x, it doesn’t select the line. It selects the line below. If i go forward one character before pressing x, it works.
It’s good enough…
That smells like a bug more than a difference.
I wish emacs had a kakoune mode like the evil mode. It would help me pick up emacs finally. Each time I have tried evil, I got stuck in small differences with vim.
Unfortunately every emulation of another editor is not the same thing.
I use kakoune to write small programs and scripts, but i have vscode as well. Vscode has a plugin called “dance”, it is a kakoune simulation plugin. It works, but not very much…
The problem is the little things… there is always something that doesn’t really work the same and becomes annoying.
How would you say the transition to Kakoune from someone who’s been using vim for awhile is like? I took it for a spin and am very confused, but I can already see things that I like.
I switched from vim to kakoune about 6 months ago. I think the majority of the users, including the author himself, came from vim. My strategy was to switch entirely for a week then decide if it was worth committing fully or not. I never went back to vim. Once you get over the initial hurdle of unlearning your vim muscle memory, kakoune is very intuitive to learn, more so than vim in my opinion.
Seconding ifreund’s experience, I came to Kakoune after maybe 20 years using Vim and it took me maybe a month for Kakoune to feel comfortable. The biggest hurdles for me were a few commonly-used key-bindings that changed (x in Kakoune is “select the current line”, not “delete the character under the cursor), and that Kakoune is a little bit like that “Snake” game on old Nokia phones: as you’re moving around, you need to be conscious of where the “tail” of your selection is as well as the “head”.
The thing I love most about Kakoune is global search-and-replace. In Vim, I’d often wind up in a cycle of “write a replacement regex, try it, check the document, find a mistake, undo, try again”, which was particularly frustrating when the thing I wanted to select was easy to describe in Vim’s normal mode (like % to select a matched pair of brackets) but difficult to describe in regex. Meanwhile, in Kakoune, I can match a regex across the entire document, producing multiple selections, cycle through them all to check I’ve selected the right things, manually adjust them with normal-mode commands or even drop false-positives, and then do the replacement. It’s more work than the best-case Vim equivalent, but far smoother and more pleasant than the worst-case Vim equivalent.
I know you don’t use Vim anymore but for anyone else who has the problem described in the second paragraph: traces.vim offers a live preview that makes searching and replacing easier, if not quite as easy as it seems to be in Kakoune. As you’re typing a :s command, the plugin will highlight the parts of the file or line that would be matched, and it will also show you what they would be replaced with. It’s pretty magical.
I really want to, but the hidden benefit of Vim keybindings is they translate to other programs too (I assume Vim people are just very militant and force devs to support them ;) ) so I can use IntelliJ or Emacs or even a web-based IDE and have access to those bindings. If I changed muscle memory to Kakoune, I’m going to be in trouble for hopping between programs.
powerful editing model
powerful editing model
Can someone pitch to me, the established emacs user, what the benefits of Kakoune are? I have multiple cursors package enabled, plus helm and swoop (intra file fuzzy matching), but I presume Kakoune presents more benefits.
EDIT: This explains it better https://kakoune.org/why-kakoune/why-kakoune.html
Disclaimer: I’ve used Emacs for fewer than 10 hours in my life. I remember very little.
The last time I looked into it, the big difference that Kakoune brings to the table is that nouns come before verbs. This feels minor but in practice it makes discoverability so much easier because you’re deciding which text to act upon before doing an action.
For example, in Vim if you want to delete three words you type d3w, and if you realize that you meant to delete 2 words then you have to undo and try again. Kakoune lets you make your selection first, highlighting as you go, and makes it easy to change your selection before taking an action. It’s also constantly auto-completing with all of the possible commands you might want to make, which is much simpler than reading through a manual.
Not having used the Emacs multiple cursors package (or Emacs at all, really) it’s hard for me to say what the advantages of Kakoune’s editing model might be. If I had to guess, though, I suspect the biggest difference would be that since the Emacs core is only built for single selections, most Emacs functionality (including third-party extensions, etc.) only works with single selections, except for the things that the multiple cursors package specifically modifies. Meanwhile, all of Kakoune’s standard features and third-party extensions deal with multiple selections, so you don’t need a mental model of how single-selection features interact with multiple-selection data.
I don’t know how complete Emacs’ multiple cursors package is, but I expect it has all the same kinds of cursor interactions as Kakoune, like selecting substrings of the selection that match a regex, splitting the selection on a regex, dropping selections that do/do not match a regex, dropping selections interactively, rotating content through selections, etc. If not, that might be another reason to try Kakoune!
I finished re-writing dumb-jump, so I’m continuing my Elisp spree by starting to create my own use-package clone.
Love dumb-jump! It’s great for projects I’m a tourist in.
What’s made you want to clone use-package, just as a personal challenge or is there anything in particular you don’t like?
I’ve recently moved my configuration off of use-package, mostly because I thought it was a pretty big black box considering what I used it for. I didn’t write a replacement though, I just have autoloads all through my config now.
Partially an experiment in macro-writing, but also because I agree that use-package is too much of a blackbox with too many heuristics. My intention is to have one user-macro (setup), an extension macro (setup-define) and use that to define a few basic keywords. Kind of like the suckless approach to implementing their alternatives, but for Emacs.
New ps4 game; long bike ride with a pal; hike further on a trail than last time; finally starting that clojure project.
Aaand getting my shit together and coming up with a system for reading books, both in choosing from a queue and the act of reading. My intent is to make reading more interactive: note taking, chapter/book summaries, and criteria for sticking with a book or putting it down. (Good interview with P. Collison on Econtalk where he covers how he values his time and how to qualify if a book is worth it.)
Current two books:
This week I started a project to implement a DVCS for relational data and it’s going pretty good, I’m eagerly awaiting working on it on the weekend :) I’m still a little surprised that this seems to not have been done yet, if anybody knows of prior work in this area, hints would be much appreciated.
Sounds fascinating! What is the use case you have in mind?
Reminiscent of Clojure’s Datomic in that it would keep all history of mutations.
Reliable, efficient and private synchronization of application data between devices and people, it can be anything really. I saw Datomic before but it seems to be proprietary, right? That would be a no-go for me.
Yep, proprietary, Datomic seems to be another path to revenue for R. Hickey and other clojure folk.
Love this idea. Two weeks ago on vacation I fantasized about this concept for personal ‘human-scale’ data - an encrypted (at rest?) syncthing + git storage backend for email, contacts, etc..
My personal org file setup almost achieves this: an encrypted filesystem in a file (cryptomator) synchronized via syncthing.
Please post notable progress!
Yeah I personally like working with Git and use it for all my projects and I thought “why doesn’t my calendar/contacts/nutrition tracking work like this?”. But the problem with Git is that it’s text-based and thus not a good database backend for graphical applications. And with Git it’s not easy to provide a good UI/UX for syncing that regular users can use, especially if there are merge conflicts.
What are you imagining for UI/UX? Planning to support mobile? Syncthing drops a “.conflict” file with alternate versions and lets you sort it out.
Conflict resolution is the thing I want to make better than in Git or Syncthing. Because I version relational data, there is much more structure to work with when conflicts arise and some conflicts like whitespace/formatting-related problems don’t arise at all. The user will have to choose between two (or more) conflicting data sets, but it will be much easier than fixing a Git merge conflict or dealing with Syncthing’s .conflict-files. Everything will be graphical, so yeah mobile will be supported, too.
https://github.com/39aldo39/DecSync uses the file-system in a conflict way, and therefore can be used with syncthing to sync k/v data between devices. There’s RSS/Contact support right now.
Drinking too much coffee, camping (the classic social distancing activity), reading more about clojure and possibly starting on a site to track pandemic/financial trends (in clojure).
Drinking too much coffee
Drinking too much coffee
And guilt-free at that.
Thank you for this validation! s/too much coffee/copious amounts of coffee/
I am going to sit down and give Intuit some money to do my taxes. On the bright side, I should get a little bit of a return back. I also want to polish up a couple pull requests I have open and get those closed out.
Please consider joining me in boycotting Intuit. I did so after I heard about them lobbying against IRS run filing solutions and tricking users into paying when they tried to use free file.
My fed and state taxes aren’t ‘simple’ but I found doing them manually takes maybe 20% longer than using one of these tools. I’m also happy that these companies don’t get any more of my income/tax/asset data.
My brother told me that CreditKarma lets you file for free and you can also itemize deductions. But it looks like Intuit is feeling the heat and is acquiring them! I may have to resort to manually doing them.
This tbh, though as a student my taxes are fairly simple. I still refuse to use any Intuit product.
Visiting home state, bringing work laptop to meet a deadline, bringing personal laptop to cross off personal todo items, and probably sipping whiskey!
Want: Synthesizer and sampler! To get into making electronic/chillwave music.
Give: new phone for family (I’m better at deciding what), booze, charity donation… not sure what else. Economists are right, gift giving is inefficient: https://fs.blog/2013/12/the-economic-inefficiency-of-gift-giving-why-you-shouldnt-buy-presents-for-the-holidays/
For the sequencer/sampler, teenage engineering have some pretty cool hardware in a wide price range. On the low end, their pocket operators are a really easy way to get into synths and there’s a wide enough variety that you should be able to find one with sounds that you like. On the higher end, their OP-1 is a pretty sweet synth/sequencer that‘s popular for electronic music and the OP-Z is a sequencer that looks super weird but could be fun to play with.
Their stuff is all pretty hackable and composable compared to most music hardware I‘be seen. You can homebrew firmware for the OP-1 and the pocket operators are basically begging me to pull out my soldering iron. Also they’re pretty self contained, meaning they don’t require some other device to function (the OP-Z requires a mobile device for some functions but that’s the only one afaik).
Thanks for the recommendation! OP-1 looks a bit pricey for me to begin with. Are there guides on how to get started?
Which synth or sampler are you looking at getting? I’ve been bedroom producer for about a decade and have some solid experience with getting small set ups going if you wanted some advice or direction.
I’ve been recommended the Electribe, but past that I’m clueless. I’d love advice! I’d like to go cheaper in case I’m terrible at it and end up not using it so much.
I have an Electribe MX (The synth) and I can say without a doubt it is a tonne of fun to play and make tunes on. The new Electribe series look good, I’ve played around with the Sample and had no qualms with it. As with everything, there is going to be a bit of a learning curve involved, but just stick with it.
Its definitely a good idea to go with cheap first. Have you thought about using software at all?
Awesome, I’ll check out the new series. What software options are there? Pros/cons vs HW?
The software options are vast and most will get you to the end result, but be a little different along the way. There’s a wealth of knowledge and resources for Ableton and FL Studio. If you’re on MacOS there’s DAWs like Logic which are very good. I personally use Ableton and a tracker called Renoise. My honest advice is just pick one, hop on YouTube and follow a few tutorials.
I should mention I have a Casio PX160 with midi out. I think this can be used in the setup somehow? I really need just a noob’s guide to all the jargon
MiracleBind! Removable pages! Completed checklists move to the back - most recent checklist is always at the front!
Search MiracleBind on AMZN or other.
I paid off all of my loans and have some savings for emergency. So, I’m going to look into investing in some stocks. I am a total newbie when it comes to investment. So, I don’t want to start it without knowing what I am getting into.
On technical side, I am going to try Google’s Sentiment Analysis APIs for one of my private projects.
I work in finance, and most people who actively manage portfolios buy passive stuff (like ETFs or low-fee funds) for themselves with their “important” money.
With then some amount of play money they often invest in the latest fad like cannabis stocks or some other bullshit, and they usually lose as much as they gain on average.
Point is, keep it boring, with fees <70 basis points if you just want to leave your money alone for a decade or two. Don’t stock pick unless you would be willing drop the same amount on blackjack or poker.
Robo-advisors (like Schwab or Betterment) offer a compelling solution, investing your moneys in index funds (passive stuff), rebalancing automatically and in certain situations, ‘tax-harvesting’ on losses.
Still not an excuse to not understand what’s going on, but reduces labor (and potential mistakes).
My problem with robo advisors for taxable investment accounts is that they have a certain amount of lock in - transferring shares out in kind creates a mess that’s fairly difficult to manage by hand. TLH/rebalancing is also quite easy to do manually once or twice a year on a small ETF or mutual fund portfolio.
I like the idea of keeping it boring. Like I said, I am really new to investment. So, stocks might not be the only options I want to pursue. Also, I am not making a lot of money right now but I though it would be a good idea to do some study when I have time. Thanks for you suggestions.
One piece of advice that got my attention was to contribute to your employer 401k program - specifically contribute as much as your employer would match. That way you know you’re getting a 100% return on that money, which is basically unmatched anywhere else. The catch is that contributing more than what your employer matches actually brings that % return down.
The idea that marginal returns are what matters was particularly powerful to me - basically paying down your credit card debt at 18% interest rate is equivalent to investing in a stock with 18% return. So unless you can guarantee that you can get an 18%+ return on your investment, you may as well just “invest” in paying off your credit card.
I am contributing to my 401k as much as my employer matches right now. I plan to increase my contribution in future though.
Some books I recommend
I agree with the no stock picking / buy an index advice even though these are about stock picking :)
I’ve heard Mastering the Market Cycle book is a good introduction to investing.
This is a ~16 page book that I recommend for new investors. It packs a bunch of useful advice in a very short volume:
Past that, the Boglegeads wiki and forum has a wealth of information and people who can help if you want to learn more or ask about your specific situation.
As a novice myself I found A Random Walk Down Wall Street refreshing.
Thanks for the recommendation. I will definitely check it out.
Good work getting to debt free!
Thanks. I did not have huge debt. It was mostly student loan and my car installment. Still, it was a huge relief.
Congrats on paying off your loans! One piece of advice (among the hundreds of unsolicited pieces of advice you’ll get when talking about investment online) is to only buy risky¹ investments with money that you don’t need to survive with. If you imagine that pile of money disappearing, would you still be able to pay for food, rent, and other daily expenses? It’s also prudent to plan for the occasional emergency expense such as last-minute travel for a funeral. You obviously can’t plan for everything (nor should you), but you don’t want to be put in a position where you have to sell stocks at a loss to pay for a plane ticket.
¹ “risky” in this context means anything that only makes sense as a long-term multi-year investment, such as stocks
Congrats on paying off all your loans!
On the off-chance that you end up looking at peer-to-peer investment sites like LendingClub and Prosper, be aware that your money stays locked up for years in those loans. With LendingClub you may be able to sell some of your loan investments on a third party site (FolioFN) but Prosper does not have this. You won’t be able to get your money out easily (or at all) if you need it - you’ll get it back (hopefully with a profit) in a trickle as loans are (hopefully) repaid. I see these platforms now as essentially a medium term bet on economic stability, and I am personally not a sophisticated enough investor (or maybe I’m just too risk averse) to make that bet. I’m gradually withdrawing my investments as they’re repaid (that’s not intended as investment advice 😀)
Great article! Could you add a sentence explaining why the threaded version has a speedup despite the GIL? If it were just that “threads are spawned” then it should take just as long as the ‘map’ version.
In case anyone’s genuinely wondering and doesn’t want to wait, the explanation is that the GIL is not the all-devouring monster most people assume it is. The GIL is a lock on the interpreter and its C API; pure-Python threads release it whenever they block on I/O, and C extensions can release it whenever they’re executing code that doesn’t require the interpreter/C-API.
Which in turn means that the GIL is mostly an issue for workloads which are both CPU-bound and pure Python. The example in the article is pure Python, but it’s I/O-bound, so threading does speed it up significantly.
That‘s a great explanation, I couldn’t have put it better.
Sat: MTN biking, hosting miracle berry + food tasting party!
Sun: Cleaning, studying elixir and some kind of mobile+web frontend framework
Pen and notebook. I find the ability to pull out and reorder pages to be optimal; my latest tasks are always in the front. Possible with notebook like this: https://smile.amazon.com/gp/product/B003981LH6/
… still need to put in the work to learn a GTD-like system.
Writing up a presentation on using mypy to enforce types in python.
For public consumption at some point? I’d love to pitch python as a safe language at my company! We are 95% modern C++.
I’ll perhaps share it here. I’d need to get my blog working again. But we’ll see.
What would you use python for that you currently do with C++? I always assume that if you’re using C++, performance constraints pretty much make using python (at least normal cpython without any fancy interpreter or jit compilation) impossible.
We have an informal and cultural directive to do everything in C++ because it’s ‘safe’ (typed) and peformant. Unfortunately this gets used as a crutch, as devs assume it’ll be fast because it’s C++, not because of the design of algorithms. End result is slow, bloated, tech-debt-heavy C++ GUI apps (because verbose, coupled C++ code is harder to change than python IMO).
So to answer your question, we’d use python for rapid prototyping, and GUI development, and ideally C++ for the low level algorithmic stuff.
Playing catch up. I’m a consultant and for whatever reason I absolutely cannot make progress during the week or during business hours when I have people interrupting flow state.
This was supposed to be a 100% offline weekend for my wife and I but I’m afraid I’m gonna need to spend most of it holed up in my office jamming on client work.
Not dreading it, quite the contrary. But I definitely need to work on getting this under control so I can make the best use of my time during normal business hours so I’m free to spend what society considers off time with my wife.
Have Deep Work (the book) queued up but haven’t read it yet.
+1 for Deep Work. I’m 75% done and it’s practical, if a tad fluffy.
Gathering at a friend’s; breakfast out downtown Saturday and some clothes shopping, followed by Link’s Awakening; Sunday maybe go see an antique sale, maybe followed by Dark Souls, or AOE2 and UT2004.
All in all quiet. Last weekend way crazy.
Should maybe squeeze some reading in there.
Fighting off a small cold too. Actually hit me hard yesterday and couldn’t go to the gym.
Link’s Awakening! Have you played the original? I’m curious how much they kept the same. The 3ds version of A Link To The Past was really well done but very different.
I have; it was probably the second video game I’ve ever played :) First being pokemon.