Browser
On my laptop/desktop I use Edge. Previously was on Firefox but it was extremely slow at loading PDFs and didn’t play nice with Microsoft SSO which is why I gave up. On mobile, I use Firefox because you can’t add extensions to Edge for Android. It’s annoying in terms of syncing tabs and history between devices, but having the extensions is worth it (and I have Firefox installed on my laptop anyway, so it’s just one extra step to sync tabs). Xi recommends Arc but I haven’t tried it.
Extensions I use on both laptop and mobile are:
- Bitwarden (password manager, also for passkeys)
- I use Microsoft Authenticator for 2FA, not because I like the design (you just have to scroll through all the sites to find the one you want, I’m sure they could have a better UI) but it’s required for my university SSO and I might as well have everything in the same place.
- Clear URLs (stops tracking of affiliate links etc)
- uBlock Origin (the best ad blocker I’ve come across, plus you can configure it to also block things like cookie popups by going into “Filter list” settings and switching on “AdGuard annoyances” filtering. Sometimes this messes up a website but less than once a week for me, and you can just toggle it off, decline cookies, and then continue)
- Dark Reader to switch websites into dark mode according to my system settings, if they don’t have native support. Again, occasionally messes up websites but usually changing the filtering mode sorts it out.
On laptop, I also have:
- Save to Notion linked to a database of articles / blogs / tweets I’ve read
- React Developer Tools which has thus far not been very helpful when doing React development, but maybe will come in handy
I used to not save browsing history, but that ended up being annoying and also kind of pointless. However, I still do block all third-party cookies and tracking content (you can achieve this in Edge with “Strict” mode)
On my mobile, I have DuckDuckGo installed to use its “App Tracking Protection” and also email address masking. (Firefox has its own email relay service but there’s no way to just generate a new email in two taps, as far as I can see.)
Apps
- Auto Dark Mode to switch the system theme on my Windows laptop, since for some reason that’s not an automatic option
Mobile data
- Lebara has a very reasonable £5/month SIM-only plan which gets you 5GB data plus free roaming in the EU and 100 minutes to international numbers
- I normally use under 1/3 of the data and hardly any of the 1000 minutes/texts but it’s the cheapest tariff I’ve found anywhere
- Also have a pay-as-you-go Tesco SIM card in my phone just for the convenience of an additional phone number to receive SMS on (you don’t need to put any money on it to activate the number; presumably at some point I’ll need to top up to avoid getting deactivated but it’s effectively free)
- e.g. so that I can have WhatsApp Business as well as a personal account
- For going to the US, have discovered that Three gives you free roaming on their PAYG plans and you can get a month with 10GB for £10
Search
- DuckDuckGo by default. It has “bangs” which are super handy, e.g. I can just type in
!w
to search Wikipedia, etc. You can configure this at a brower level too but it’s much nicer having it all set up already - Sometimes I use Perplexity or Elicit but haven’t found either to be a particularly big help. Gavin writes about how to find information
Knowledge management
-
I have a lot of notes in Notion, it’s my main place to store ideas.
- Not academic ones though, because I handwrite those and it’s quite bad at dealing with PDFs. In particular I like how with OneNote on mobile you can scan in a multi-page document and use filters so that the quality is better (though annoyingly for some weird reason you can’t apply to all pages at once when using OneNote even though in the Office app, which looks like it has exactly the same scanning backend, you can). The disadvantage is that OneNote isn’t super portable, but you can use ConvertOneNote2MarkDown to help
- As mentioned above, I use their template “reading list” database to store all the articles etc I read which seem interesting, plus a short snippet of text to help me with searching back for them. It’s super frustrating when I vaguely remember something but can’t find where I read it originally, and this has helped reduce that a lot (I’ve tried using various LLMs to search but they almost never find it. And sending a message on a discord server asking if anyone else knows isn’t practical every single time this happens).
-
Also use Obsidian along with Obsidian-Git (I don’t want to pay for their own syncing service) for two specific databases where Graph View is helpful:
- Keeping track of the people I’ve met + basic facts about them that I otherwise wouldn’t remember (e.g. which university & course, some interests, etc), and then an outline of what we talked about. Don’t do this all the time or with everyone, but it’s nice being able to look back and find where I first met somebody I half-recognise. Using tags also makes it easy to search for e.g. “who do I know who’s at MIT?”, etc. I know Arjun Panickssery used to do something like this in more detail, but think he’s stopped and unsure if he ever wrote about it.
- Writing notes on academic papers etc, also because Obsidian is much faster and smoother than Notion, and when I’m only writing up text or inserting an occasional screenshot, there’s really no need to use Notion.
-
Anki for flashcards and spaced repetition
Programming
I use Windows with a Linux subsystem – have found that it leads to fewer installation errors etc, and also tutorials / LLMs are often better giving bash instructions than Powershell ones
VS Code is great!
- some good extensions I’ve got installed:
- Copilot and Copilot Chat extensions (if you’re a student you get it for free)
- I disabled it for markdown because when I’m writing posts, although I ignored its suggestions, just seeing them was distracting and I suspect subconsciously influenced what I was saying. Also disabled for plaintext, .env and yamls, because I don’t really want those being sent across to their servers (though possibly they still are…?)
- LTeX for spellchecking in markdown posts
- change language to British English
- Ruff for Python formatting, it uses Black style but is faster
- Toggle Light/Dark Theme, though don’t use it that much now that VSC respects system settings
- Jupyter Cell Tags so that you can just type
# %%
to break up your code into chunks that can be run interactively - gitignore to help automatically generate
.gitignore
files
- Copilot and Copilot Chat extensions (if you’re a student you get it for free)
- settings I’ve changed:
- files.autoSave = afterDelay, same behaviour as I’m used to in Office etc and means no need to worry about ctrl + s
- set editor.tabSize = 2, I think it looks better for JS/HTML and avoids weirdness happening with md files. Have overriden it to be 4 for Python though (since that’s what Black specifies)
- set editor.wordWrap = bounded, don’t understand why you’d ever want lines running off the screen, and I limit it at 150 chars using editor.wordWrapColumn = 150 for when I’m on an external monitor
- workbench.colourTheme = lightModern, using dark mode in the day has always confused me
- window.zoomLevel = -1, on my laptop otherwise I can’t fit enough in and I can see it fine
- explorer.confirmDelete and explorer.confirmDragAndDrop = false, just slows you down and there’s always ctrl + z
- remote.autoForwardPorts and remote.forwardOnOpen = false because it leads to annoying popups in the side and I don’t think I need any ports being forwarded
- workbench.editor.tabSizing = fixed to mimic the behaviour in browsers where all tabs have the same size and shrink when you start to run out of space. makes closing multiple tabs with the cursor a lot easier (and it’s satisfying so I refuse to just use ctrl + w)
- strict type checking in Python, useful when doing Pytorch stuff
- interactiveWindow.executeWithShiftEnter = true
- typescript.updateImportsOnFileMove.enabled and javascript.updateImportsOnFileMove.enabled = always, speeds things up to not be prompted and I can’t think of a time I wouldn’t want to update the imports
- r.plot.useHttpgd, it’s a much better R viewer
- git.autofetch = true
- added a snippet to do the boilerplate for a sidenote when writing my blog. Gave it a keybinding too, which took a lot of searching, but adding the following to my
keybindings.json
was what worked:
where{ "key": "ctrl+k 1", "command": "editor.action.insertSnippet", "args": { "name": "add_sidenote" } },
"add_sidenote"
is the key for the snippet I want to insert, i.e. mysnippets.code-snippets
file has an entry"add_sidenote": { "scope": "markdown", "prefix": "sidenote", "body": [ "\{\{% sidenote $1 \"$2\" %\}\} $0 \{\{% /sidenote %\}\}" ], "description": "Insert a sidenote structure" }
- gotchas to be careful of
- if using settings sync and you have multiple devices, careful that you exclude r.{rterm / rpath}.{linux / windows} if you have different versions installed across your devices, as the path includes a version number
Finance
- Monzo is great, significantly prefer it to Starling Bank (which I ditched about a year ago so maybe they’ve improved) – interface is clean, you can split bills really easily & the monzo.me links are helpful, doesn’t charge a markup for foreign transactions
- Wise for making/receiving large international payments -
- When receiving my EV grant, I saved several hundred pounds by using them instead of Santander
- Most sneakily, Santander doesn’t publish their (dreadful) retail exchange rates anywhere online, so I had to ring up to ask. Then, the first person I talked to was quite sure that the bank didn’t know what the exchange rate I’d receive would be. So I had to spend about 5 minutes convincing him that he would definitely be able to find it somewhere, and that yes I understood it would only be an indication of the actual rate I’d receive, and no I’m not trying to use a debit card abroad. (Patrick McKenzie’s “Seeing Like a Bank” gives a convincing explanation of why this happened.) Anyway, eventually I got what I was after
- Lots of bank accounts offer switching incentives which pay very well on a per-hour basis. One friend didn’t believe me on this, was eventually persuaded, and I think got about £800 (it’s not really a thing you can cash out on repeatedly as they’re only for new customers, but probably worth doing sooner rather than later as I expect the rewards won’t rise in line with e.g. a tracker fund)
- If you’re starting university, there are a load of banks which offer incentives to create a student account too. Some are cash, others do railcards or other perks. Whilst obviously one should never be dishonest on an application for a financial product, you might reasonably hypothesise that (apart from when they have different trading names but are really the same, e.g. Lloyds/Halifax/Bank of Scotland) banks can’t talk to each other and work out whether you’ve set up a student account elsewhere, so you could in theory open accounts with all of them.
- Note that applying for loads of accounts will be bad for your credit score in the short term because each does a hard search, so if you want to get a credit card maybe do that first. And there’s no effect after two years (some other sources say six months, who knows)
LLMs
- Currently prefer Claude Sonnet 3.5 to GPT-4o
- Switch on Artifacts if you’re using their website, makes copying across code files a lot easier
- If you’re on the free version and run out of credits, you can use the Poe wrapper for 15 messages daily too
- If you’re not using file upload much, then you can also just pay-as-you-go with an API key and it will work out cheaper. I’ve installed LWE onto Linux and I just access it through the built-in terminal, I remember it being a bit fiddly to set up but works great now
Web projects
- Porkbun is by a very long way the best domain registrar I’ve come across. No stupid pricing structures, clean & unbloated website, good customer support. Their email offering is cheap too ($24/yr).
- I use Hostinger for web hosting when I’m doing a Wordpress site, they do use irritating sales tactics but the product seems reasonably-priced and works well. Plus their AI customer service chatbot is the best I’ve encountered, generally extremely helpful even on technical issues
- Google Cloud is great for projects where you need a server, they’ve got a very
generous always-free tier plus you get initial credits.
- One thing I only recently realised is that you can set it so that you always have an instance running, because previously the website would have to do a cold start every time someone opened it for the first time in a while. Claude misinformed me that the relevant thing in app.yaml was
automatic_scaling/min_idle_instances
; in fact it isautomatic_scaling/min_instances
, which I’ve set to 1. The docs say that you also need to set up warmup requests for it to work, but for my app I just return a 200 status straightaway beacuse there isn’t really anything to do besides connect to the database, which it does on app initialisation anyway.
- One thing I only recently realised is that you can set it so that you always have an instance running, because previously the website would have to do a cold start every time someone opened it for the first time in a while. Claude misinformed me that the relevant thing in app.yaml was
See also
- https://s8mb.medium.com/things-i-recommend-you-buy-and-use-second-edition-457a8e7163f6
- https://www.gleech.org/browser
- https://www.gleech.org/stuff
- https://arjunpanickssery.substack.com/p/stuff-i-recommend-you-use and they also have many other “See also” sections