<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>James Alvarez</title><link>https://jamesalvarez.co.uk/</link><description>James Alvarez is an award winning Research Software Web Developer based Brighton, UK. He has been helping build software for academic applications for 10 years. He leads a small team at Sussex University, and offers freelance services.</description><language>en-gb</language><copyright>CC BY-NC 4.0</copyright><lastBuildDate>Mon, 09 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jamesalvarez.co.uk/index.xml" rel="self" type="application/rss+xml"/><item><title>YouTubeToLingQ - turning YouTube videos into A2 German reading practice</title><link>https://jamesalvarez.co.uk/blog/youtube-to-lingq/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://jamesalvarez.co.uk/blog/youtube-to-lingq/</guid><description>&lt;p&gt;I've been stepping up with my learning German and currently one of my favourite tools is &lt;a href="https://www.lingq.com"&gt;LingQ&lt;/a&gt;. You can read upload text in your target language, and get an instant translation of specific words in the reader, and it keeps track of your vocabulary over time.&lt;/p&gt;
&lt;p&gt;LingQ has a YouTube import feature, but it's not reliable and you can't pick English videos to get them in German. I wanted a way to take any YouTube video, get the transcript, and have it translated into A2-level German, which is the level I'm at.&lt;/p&gt;</description></item><item><title>Why you do not need blockchain for archiving historical data</title><link>https://jamesalvarez.co.uk/blog/blockchain-historical-data/</link><pubDate>Wed, 18 Dec 2024 00:00:00 +0000</pubDate><guid>https://jamesalvarez.co.uk/blog/blockchain-historical-data/</guid><description>&lt;p&gt;&lt;strong&gt;TLDR: You can take the useful part of blockchains - hash chains - and reject the resource wasting over complexity.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I learnt recently that a prominent historical archive was an early adopter of blockchain technology to ongoingly verify the historical accuracy of their records, including written testimonies, photographs and historical accounts.&lt;/p&gt;
&lt;p&gt;I think this is &lt;em&gt;almost&lt;/em&gt; a good use for the technology - but there are simpler alternatives - including one which has proven it's strength in the wild... of digital piracy.&lt;/p&gt;</description></item><item><title>Combining Ancestry and 23andMe Data with AWK</title><link>https://jamesalvarez.co.uk/blog/genome/</link><pubDate>Sat, 14 Sep 2024 00:00:00 +0100</pubDate><guid>https://jamesalvarez.co.uk/blog/genome/</guid><description>&lt;p&gt;I'm a big fan of learning about health and genetics, and for me, there is no better site than &lt;a href="https://www.geneticlifehacks.com/"&gt;Genetic Lifehacks&lt;/a&gt;, which has a ton of well written and accessible detailed articles. With membership, it also allows you to connect your own genetic data to explain whether various genetic factors apply to you.&lt;/p&gt;
&lt;p&gt;I originally just had &lt;a href="https://www.23andme.com/"&gt;23andMe&lt;/a&gt; data, but in order to get more SNPs, I also took the &lt;a href="https://www.ancestry.com/dna/"&gt;AncestryDNA&lt;/a&gt; test. There is overlap in coverage between the two tests, but each also has unique SNPs (single nucleotide polymorphisms) for various traits.&lt;/p&gt;</description></item><item><title>When to use React... maybe never?</title><link>https://jamesalvarez.co.uk/blog/react/</link><pubDate>Fri, 05 Jul 2024 00:00:00 +0100</pubDate><guid>https://jamesalvarez.co.uk/blog/react/</guid><description>&lt;p&gt;I've used React for many projects in my career, and it's a framework I'm quite comfortable with and can develop with
quite quickly, and I do like building things with it! But in every single case I've doubted whether it's the right choice,
and have often ended up believing it has slowed development time down due to making the project tooling over-complex.&lt;/p&gt;
&lt;p&gt;Recently at work I have been debating with my team about whether to use React for a new project, I've been arguing against
it and have compiled a list of links to articles that make the case well:&lt;/p&gt;</description></item><item><title>So it turns out PHP rules the web?</title><link>https://jamesalvarez.co.uk/blog/php/</link><pubDate>Sat, 09 Sep 2023 00:00:00 +0100</pubDate><guid>https://jamesalvarez.co.uk/blog/php/</guid><description>&lt;p&gt;PHP is often the butt of jokes online, but I've always thought that quite unfair. Turns out, that I am certainly not the only one, as outlined in this article '&lt;a href="https://timotijhof.net/posts/2023/an-internet-of-php/"&gt;The Internet of PHP&lt;/a&gt;' where I learn that PHP is powering 77.2% of the top 10 million website backends, with the next contender being ASP.NET at a measly 6.9%. A large amount of this is Wordpress (obviously), but either way, it's a huge amount of the web and to me the summary of this article captures why:&lt;/p&gt;</description></item><item><title>The way things are going...</title><link>https://jamesalvarez.co.uk/blog/waythingsgoing/</link><pubDate>Wed, 22 Mar 2023 00:00:00 +0000</pubDate><guid>https://jamesalvarez.co.uk/blog/waythingsgoing/</guid><description>&lt;p&gt;I have now been using &lt;a href="https://openai.com/research/chatgpt/"&gt;Chat-GPT&lt;/a&gt;, and &lt;a href="https://copilot.github.com/"&gt;Github's Copilot&lt;/a&gt; for coding for 3 months, and I just have to say, some days I am just breezing through tasks that would otherwise take me ages. For me, it's perfect as it excels at the tasks I actually struggle with, e.g. boring boilerplate, repetitive, data entry type things, leaving me to feel more mental space to think about the big picture as well as staying more organised.&lt;/p&gt;</description></item><item><title>Chat-GPT is not coming for my job just yet!</title><link>https://jamesalvarez.co.uk/blog/chatgpt2/</link><pubDate>Sun, 26 Feb 2023 00:00:00 +0000</pubDate><guid>https://jamesalvarez.co.uk/blog/chatgpt2/</guid><description>&lt;p&gt;The dust has settled a bit after the wide release of Chat-GPT and my excitement has tempered somewhat. It is capable of some very cool stuff, but its main limitation is accuracy. There are a &lt;em&gt;lot&lt;/em&gt; of mistakes, and it asserts itself so confidently you have to be very careful when using it. Despite this I have been using it daily, finding it especially useful for SQL and React and as a general search engine for programming language questions. It is very good with error messages for instance, and if stackoverflow.com doesn’t instantly give me the answer, often Chat-GPT will. It is also surprisingly good at converting data. I turned a hastily written design brief into a well formatted JSON structure, a task that would have otherwise been 15mins of cutting and pasting.&lt;/p&gt;</description></item><item><title>Check out the Perception Census...</title><link>https://jamesalvarez.co.uk/blog/pc/</link><pubDate>Wed, 01 Feb 2023 00:00:00 +0000</pubDate><guid>https://jamesalvarez.co.uk/blog/pc/</guid><description>&lt;p&gt;Here is one cool project I have been working on recently. This is the &lt;a href="https://perceptioncensus.dreamachine.world/"&gt;perception census&lt;/a&gt;, a &lt;em&gt;huge&lt;/em&gt; study of perceptual diversity undertaken by world-leading academics Anil Seth from the University of Sussex and Fiona Macpherson from the University of Glasgow.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://perceptioncensus.dreamachine.world/"&gt;&lt;img src="https://jamesalvarez.co.uk/pix/2023/perceptioncensus.png" alt="Image of the perception census website"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You get to go through a tour of perception and finding out how your brain works, whilst taking part in important research. It's been a joy to work on!&lt;/p&gt;</description></item><item><title>Using Chat-GPT to do my job</title><link>https://jamesalvarez.co.uk/blog/chatgpt/</link><pubDate>Tue, 06 Dec 2022 00:00:00 +0000</pubDate><guid>https://jamesalvarez.co.uk/blog/chatgpt/</guid><description>&lt;p&gt;I am so excited! Today after reading articles about Chat GPT I decided to see if I could start using it to help me do my job. Here is my first bit of work:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How can I prevent a user from signing up with a particular email address, without retaining the email address itself?&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you want to prevent a user from signing up with a particular email address, but do not want to retain the email address itself, one possible solution is to create a hash of the email address and store the hash instead of the email address itself.&lt;/p&gt;</description></item><item><title>Python environment joy</title><link>https://jamesalvarez.co.uk/blog/countrymap/</link><pubDate>Wed, 30 Nov 2022 00:00:00 +0000</pubDate><guid>https://jamesalvarez.co.uk/blog/countrymap/</guid><description>&lt;p&gt;I love python, I had what seemed like a fairly complicated task, I googled and found two packages that basically do it all. One simple conda command to install.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Wait a sec.... let me just spend an inordinate amount of time fixing my python installation so I can use these packages...&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ok, back to our main program - (no joy with conda, so uninstalled and now using pyenv to run a downgraded environment for this project's dependencies).&lt;/p&gt;</description></item><item><title>Filter coffee as a gateway to caffeine abuse</title><link>https://jamesalvarez.co.uk/blog/coffee/</link><pubDate>Wed, 16 Nov 2022 00:00:00 +0000</pubDate><guid>https://jamesalvarez.co.uk/blog/coffee/</guid><description>&lt;p&gt;For my birthday I got a &lt;a href="https://www.hario.co.uk/products/simply-hario-v60-glass-brewing-kit"&gt;Hario V60 Glass Brewing Kit&lt;/a&gt;, which I asked for because I thought 'Hey it will be nice to be able to make myself and my partner, a nice morning coffee together, rather than making two Moka pots'.&lt;/p&gt;
&lt;p&gt;One thing led to another, and now I am drinking two delicious cups of proper coffee in the morning instead of one, which is... not what I had originally intended, but certainly a welcome outcome!&lt;/p&gt;</description></item><item><title>Checking for blacklisted IPs</title><link>https://jamesalvarez.co.uk/blog/virus/</link><pubDate>Fri, 28 Oct 2022 00:00:00 +0100</pubDate><guid>https://jamesalvarez.co.uk/blog/virus/</guid><description>&lt;p&gt;I had a project where users were reporting intermittent flags from malware software. This wasn't something I had encountered before, but apparently if a scammer uses a hosting service's ip address, they get put on various blacklists, and then an innocent project can then accidentally inherit this blacklisted IP causing problems. The solution is to check the IP for problems and complain if there are issues. There are some sites that allow you to check for this for free here:&lt;/p&gt;</description></item><item><title>Celebrating some unsung wins</title><link>https://jamesalvarez.co.uk/blog/wins/</link><pubDate>Wed, 12 Oct 2022 00:00:00 +0100</pubDate><guid>https://jamesalvarez.co.uk/blog/wins/</guid><description>&lt;p&gt;When you are the only programmer on a project, you sometimes get an unsung win, something which you are proud of, but that no one really understands so didn't notice fully 🥲. Often it's little things, like being able to add a new feature really easily after 'past me' did well on the software architecture. I had a few bigger ones recently, and so here's a little post to celebrate.&lt;/p&gt;</description></item><item><title>Using soap instead of laundry detergent</title><link>https://jamesalvarez.co.uk/blog/soap/</link><pubDate>Thu, 22 Sep 2022 00:00:00 +0100</pubDate><guid>https://jamesalvarez.co.uk/blog/soap/</guid><description>&lt;p&gt;A year and a half ago I spent £21.99 on soap flakes from &lt;a href="https://chateaudusavon.com/"&gt;Chateau du Savon&lt;/a&gt;, to use in place of laundry detergent for clothes washing. I am now thoroughly convinced that laundry detergent is basically a con.&lt;/p&gt;
&lt;p&gt;Here are some facts about my soap flakes journey:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I have about 3/4 worth of the soap flakes still remaining, a year and a half of clothes washing has cost me circa £6&lt;/li&gt;
&lt;li&gt;My clothes do not smell, and also seem to last longer than before&lt;/li&gt;
&lt;li&gt;I have not had to throw any plastic in the recycling&lt;/li&gt;
&lt;li&gt;I have not breathed in or absorbed any of the crazy who-knows-what-it-is is stuff that they put in detergents&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Obviously circa £5 a year or so on laundry is not in the slightest bit profitable. It's a huge saving, and when I've mentioned this to other people, I get the impression that it's so unbelievable they must think there are downsides, and that only crazy hippies would choose this!&lt;/p&gt;</description></item><item><title>Mice, over-optimization and AWS</title><link>https://jamesalvarez.co.uk/blog/mice/</link><pubDate>Tue, 13 Sep 2022 00:00:00 +0100</pubDate><guid>https://jamesalvarez.co.uk/blog/mice/</guid><description>&lt;p&gt;I've always known that you should take animal studies with a grain of salt - demonstrated clearly by the awesome and often hilarious &lt;a href="https://twitter.com/justsaysinmice"&gt;Just says in mice twitter account&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;However today I heard something on the &lt;a href="https://peterattiamd.com/mattkaeberlein3"&gt;Peter Attia podcaast&lt;/a&gt; that reinforces that hugely - lab animals live in a pathogen free environment. What may extend their lives and improve their health, may also reduce their ability to deal with pathogens, but we would never know from these studies alone!&lt;/p&gt;</description></item><item><title>Thoughts on SwiftUI dev experience</title><link>https://jamesalvarez.co.uk/blog/swiftui/</link><pubDate>Mon, 25 Jul 2022 00:00:00 +0100</pubDate><guid>https://jamesalvarez.co.uk/blog/swiftui/</guid><description>&lt;p&gt;I have just completed a &lt;a href="https://github.com/jamesalvarez/capturingthepast"&gt;new iOS app&lt;/a&gt; and it was my first time using SwiftUI. I have to say the developer experience felt almost... phenomenal... although recently the bar has been pretty low after wrestling with react native!&lt;/p&gt;
&lt;p&gt;Specifically the amount of time I spent trying to solve issues that should not be issues, or wrestling with style and layout were essentially zero. The amount of time I spent managing third party code was in the minutes, and the new package manager is simple and forgettable which is exactly how it should be.&lt;/p&gt;</description></item><item><title>Drop everything and work on this one thing!</title><link>https://jamesalvarez.co.uk/blog/dropeverything/</link><pubDate>Thu, 30 Jun 2022 00:00:00 +0100</pubDate><guid>https://jamesalvarez.co.uk/blog/dropeverything/</guid><description>&lt;p&gt;In a timely coincidence &lt;a href="https://twitter.com/GergelyOrosz/status/1542061516912037890?s=20&amp;amp;t=_RQv2digfK8yKMpRiwOwDQ"&gt;this tweet&lt;/a&gt; came up on my timeline just when it basically happened three times to me in one week from different projects I was working on:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As a tech lead or eng manager, you so frequently get request from above or from other teams to drop what you are doing and work on this thing they need, &lt;em&gt;now&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This happens &lt;em&gt;all the time&lt;/em&gt; and it is frustrating as I do often identify with the next part of the tweet:&lt;/p&gt;</description></item><item><title>Do I have Javascript fatigue?</title><link>https://jamesalvarez.co.uk/blog/javascriptfatigue/</link><pubDate>Tue, 28 Jun 2022 00:00:00 +0100</pubDate><guid>https://jamesalvarez.co.uk/blog/javascriptfatigue/</guid><description>&lt;p&gt;Recently I had to spend a few hours updating a React project, and fixing breaking changes from all the new dependencies and upgrades on npm packages, and in timely fashion I came across this article discussing &lt;a href="https://medium.com/@ericclemmons/javascript-fatigue-48d4011b6fc4"&gt;Javascript fatigue&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This point landed particularly hard, especially after spending more than an hour figuring out why my source maps were no longer working:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ultimately, the problem is that by choosing React (and inherently JSX), you’ve unwittingly opted into a confusing nest of build tools, boilerplate, linters, &amp;amp; time-sinks to deal with before you ever get to create anything.&lt;/p&gt;</description></item><item><title>Live Photo Cleaner</title><link>https://jamesalvarez.co.uk/blog/livephoto/</link><pubDate>Sun, 05 Jun 2022 00:00:00 +0100</pubDate><guid>https://jamesalvarez.co.uk/blog/livephoto/</guid><description>&lt;p&gt;Came across this great open source app for iOS that automatically removes the annoying, space-hogging 'live' effects from photos taken on iPhone. It is called &lt;a href="https://livephotocleaner.app/"&gt;LivePhotoCleaner&lt;/a&gt;. Cynicism alert: This live photo feature surely is about nothing other than filling up more iCloud space - with the side effect of wasted energy and resources. After reading &lt;a href="https://www.goodreads.com/en/book/show/34466958"&gt;David Graeber's Bullshit Jobs&lt;/a&gt;, I can suggest that 'live photos' are surely a prime candidate for a 'bullshit feature'.&lt;/p&gt;</description></item><item><title>Solvitur ambulando</title><link>https://jamesalvarez.co.uk/blog/solvituramblando/</link><pubDate>Tue, 24 May 2022 00:00:00 +0100</pubDate><guid>https://jamesalvarez.co.uk/blog/solvituramblando/</guid><description>&lt;p&gt;The latin phrase &lt;a href="https://en.wikipedia.org/wiki/Solvitur_ambulando"&gt;Solvitur Ambulando&lt;/a&gt; is translated as &amp;quot;it is solved by walking&amp;quot;. It has a funny double meaning: classically it has meant &amp;quot;the problem is best solved by actively trying to solve it&amp;quot; as opposed to thinking or planning up front. But some people seem to use it to mean almost the opposite now, which is - solve the problem by literally going for a walk (and whence thinking about it!)&lt;/p&gt;</description></item></channel></rss>