Can jump straight to https://www.ioccc.org/2025/#inventory
HN user
lifebeyondfife
Life Beyond Fife is my tech blog where I write random articles and applications about all sorts of software development subjects. http://lifebeyondfife.com/
You're correct, the horizontal and vertical flips for the square, are already accounted for in the wreath product. And I miscounted the products themselves. Up to 1.2*10^12 symmetries.
The exponential number of symmetries present in sudoku problems, means that once you've found one valid instance, you've actually found up to 9! * 3!^4 * 8 which are exactly the same.
The numbers themselves are all interchangeable, so you have 9! combinations: 362,880.
Columns 1-to-3 are all interchangeable, as are 4-to-6, and 7-to-9. On top of this, these blocks of columns (1-to-3, 4-to-6, 7-to-9) are all interchangeable. Read about wreath products in group theory to know more. Each of the above symmetries are 3!, combined to yield 3! * 3! = 36 combinations. As well as the columns though, the rows have the same property, so those can be combined too: 36 * 36 = 1,296.
Finally, there are the symmetries of a square. Combining all rotations and flips yields a further 8.
In total, sudoku has 3,762,339,840 symmetries. Owing to the starting state of the sudoku puzzle being incomplete, the orbit of the set of points (more group theory) will be smaller than 3 billion, but it provides an efficient method of recreating many more puzzles with the same property. In this case, human complexity.
You can use the waybackmachine. This works for Worldle as well.
http://web.archive.org/web/20231127182010/https://imois.in/g...
Wait, But Why? has a fascinating series of posts on this. https://waitbutwhy.com/2013/10/why-procrastinators-procrasti...
I bought the 52x90 poster where each square is a week of your life. I've filled in significant events. It helps me ensure I keep working on making those events coming.
Plug for my Constraint Solver if anyone wants a simple example https://github.com/lifebeyondfife/Decider
When I worked at Skyscanner, we'd volunteer at events where high school kids would be shown tech stuff. We'd setup Raspberry Pis with Minecraft on them and show them some basics of running Python scripts to alter the world (with the conclusion being programmatically create loads of dynamite blocks and explode them). Then at the end of the session, give every kid their own Raspberry Pi.
It was interesting reaching the occasional child who assumed this kind of thing wasn't for them.
Only US citizens are permitted to deploy code to the US government production servers, or look at the telemetry from those servers.
(I'm a UK citizen, based in the UK, and I have local colleagues supporting products that are deployed to both commercial .com, and US .gov domains. They deploy to .com themselves, but another team based in the US deploy to .gov)
The pandemic is ongoing, but despite its lasting impacts e.g. hybrid or remote is the norm, many things are back to normal. One thousand days out, how are things for you?
I created a CloudFormation script specifically to do this (including CloudFront for CDN). Yes, there's reasonable complexity, but it's a trade-off of security and configuration. As others noted, the documentation is good, and this took me a weekend to write including learning CloudFormation from scratch.
Budget: how many are working on the project? Features: what should the project do? Timeliness: when do you want the project done?
You get to choose only two.
You're correct, yes, I didn't realise how generous the free tier is. If you're doing fewer than 500 updates per month, Cloudflare looks good https://pages.cloudflare.com/
Because I have other resources and projects in AWS I'll keep this setup. It's so close to free that cost doesn't bother me.
Familiarity with S3, Route53, and CloudFront was a draw for me personally.
AWS is all about abstractions. Some of them are worth learning but increasingly there's a wall of options in AWS and, for me, it's not worth spending time staying on top of all of them. The few services needed for this setup are some of the most popular and will be there in the future.
Nothing particularly novel but the setup of configuring CloudFront to connect to S3 and handle SSL termination, a DNS record pointing to CloudFront, an S3 bucket to hold the contents, an S3 bucket security policy which restricts access just to CloudFront... well, it's complex and easy to misconfigure.
In terms of pricing, you can store 1GB in S3 for a year for a fraction of a dollar. The majority of the cost comes from CloudFront. Unless you have serious traffic, this is extremely cheap:
https://aws.amazon.com/cloudfront/pricing/
The interface (just put files in S3) suits me. I have a site where I deploy and invalidate the CloudFront cache in a GitHub Action: https://github.com/lifebeyondfife/whisky-menu/blob/master/.g...
Cloudflare Pages looks like a more productionised version of this, yes.
In terms of advantages, I'd say price, and the maturity of using AWS. I deploy a static site with a GitHub Action (look at my other repo whisky-menu for how to do this) which builds a React app, copies it to S3, and invalidates the CloudFront cache.
Completing a PhD is risky. I'd recommend reading this to see some of the ways it can go wrong: https://100rsns.blogspot.com/
Ultimately it's a big commitment. Speak to as many people as you can who've walked the specific path you want to head down i.e. being an industry researcher.
I completed a PhD in my early twenties, and though I took a completely different career path, the skills I picked up completing it have been extremely useful. I was lucky in that it was fully funded, and was setup to finish it inside 4 years. A lot of that was down to the research group I joined, and in particular the supervisor.
I agree with you, those are absolutely fundamental. The bar should be set higher though, especially for senior engineers.
https://benjiweber.co.uk/blog/2021/04/10/dont-hire-top-talen...
This is why I stress the importance of culture. I got into engineering because I loved coding, I loved problem solving, I loved writing programs and making things happen on the screen. It's so easy for the team sport aspect of software engineering to become a blindspot if it's something you're not interested in.
I'm an engineering manager in my 40s and I've hired engineers older than me.
I appreciate you're absolutely correct, age discrimination does happen. One thing to consider for older engineers is that, though your technical expertise improves through the decades, it's not just technologies that you have to keep up with but also cultural practices. That is, the bad culture fit isn't necessarily code for "We don't want you because you're old." but could be a genuine reason.
As an example, consider the book The Phoenix Project which dissects the reasons for discarding segregation of roles like developers, QA, and ops in separate teams into service teams of DevOps / T-shaped engineers. If you haven't worked in that environment or don't appreciate the difference, you may be judged accordingly.
This is a great question.
Diversity is the solution to groupthink. From the book Surrounded By Idiots, the author demonstrates that people with different backgrounds and behaviour models come together to make stronger teams.
As engineers become more senior, they have a hand in design, in product etc. they bring something of themselves to their software solutions. Making software with only a team of white dudes means you miss the mark on issues important outside that group.
Also, inclusion goes hand in hand with diversity. People from all ethnicities and not just cis males can code, but if your team is mainly white guys, you have to work twice as hard convincing others that they'll be welcome and fit right in otherwise it becomes a self perpetuating pattern.
Also, "abilities" is subjective. If your exemplar for software engineer progression is a path that fits a majority white man route into the industry, and plays to the strengths of the people you promote, you'll over-index on those abilities. It's a good question to ask, what skills are we missing out on because our lack of diversity leads us to self selecting?
For transparency, I'm a white cis male manager, who manages a team of almost exclusively white cis males. I'm working on some long term strategic projects to help foster diversity in engineering in my city.
Working on the most important items: automate measuring the most important metrics for your team. Releases, paging events, outages, bugs, support issues. You can look at your data and get a feel for trends and whether you need to focus on quality, or delivering more features.
Look into KPIs (key performance indicators). They should be proxies for customer success - Key means only have a few. The engineers should know what they are and be given the autonomy to influence the roadmap and innovate on how best to improve them.
This is a great website... favourited.
I think tech workers (office workers in general) definitely should be exercising more and increasing strength, but it is so easy to do so in an inefficient or dangerous way. Targeting a single muscle group, or set of muscles on their own can cause body imbalances that lead to injuries.
I've blogged mostly about tech for 10 years now, but the last 1.5 years I decided to go off tangent to write about fitness. My goal was to help anyone with limited time who wanted to get fit, providing them a concrete, manageable set of lessons that would help guide them to doing so sensibly, and enable long term (lifelong) beneficial changes. You can read the full blog post series here https://lifebeyondfife.com/fitness, which I've since compiled into an ebook https://www.amazon.co.uk/Route-Fitness-Before-Setting-Foot-e...
There are two versions of you: the experiencing self and the remembering self. If you only pleasure the experiencing self then you make lots of short term decisions e.g. it's the experiencing self who enjoys the cake, but the remembering self gets almost no benefit from it. Worse, they have to deal with the consequences of the extra calories.
I'd convinced myself that there were things I didn't like so I wouldn't do them anymore, like travelling for long holidays. But after hearing this idea I realised sometimes the pain and inconvenience of being away from home, and being stressed by travel is a temporary pain for the experiencing self. The remembering self however gets lifelong benefit.
I use this model to analyse the cost/benefit to each persona which helps make better long term choices.
Completely agree on the not going any faster point. The Mythical Man Month demonstrates this exact concept perfectly.
The budget lever is still available in limited forms e.g. do you devote two engineers from the team to project A or three? The point here is that the engineers have to be already up to speed on the codebase and already know how to work with their colleagues; and adding more on project A leaves fewer for project B, C, and D etc.
Also there is monetary budget. Can I solve an engineering inefficiency by throwing larger servers, or buying a licence for a relevant software service?
The team I work in has a product manager, a designer, a cloud infrastructure automation engineer, as well as seven software engineers. Together we collectively advocate for our users and help with those tradeoffs.
As for "Ultimately it's not about trust, it's about
accountability and predictability" that's precisely
the characterization I reject.
How do you know if you're effective? Perhaps it's a difference from one company to another but I don't think it's unfair that my manager (and others dependent on my team's output) want to scrutinse my decisions, and the outcomes of the team.
Likewise, I can scrutinise the choices of engineers with weekly sprints, to ensure the goal is hit i.e. a timely release with flexible features, or a feature complete product that might overrun.
JIRA doesn't magic effectiveness, agreed. It can help show the truth of the decisions taken toward a goal and how work is progressing. I'm not advocating waterfall (any estimate of "this fully specced feature should be finished in two months" is pure fiction) but JIRA or other similar products can work to let managers know ahead of time, "We're not going to finish this by our initial estimated delivery date." That's a useful tool.
That's non-negotiable to me. You can make a short-term decision e.g. this implementation will only scale for the next month, but automated testing, clean code, other standards must be maintained.
As a manager I follow two principles that help me to prioritise tasks for a weekly sprint.
First, every project has three levers: budget, timeliness, features. Choose two. So it's not about not trusting the development team. It's about understanding the tradeoffs and how the delivery date will be affected.
Second, how well can you predict what you can achieve as a developer in one day vs one hundred days? The estimate for the former is more reliable. Likewise the estimate of what you can achieve is more reliable in a one week sprint than a two week sprint. Being able to break fully deployable commits into smaller chunks (up to three days coding time) is a skill that gets better with practice. But sometimes you just don't know how long something will take because it needs breaking down and investigating. One week sprints are ideal for timeboxing investigations; here the output isn't software but discrete software tasks that fit in a one week sprint.
Ultimately it's not about trust, it's about accountability and predictability. Sprint planning tools when used appropriately don't constrain engineers, but rather highlight the truth of how things are going.
Tech: some coding projects e.g. an old constraint solver in an Excel spreadsheet which helps pick a fantasy football team, opinions on software development, how I designed my wedding ring, and a series of git-for-beginners posts.
I used to self-enforce "must make a post at least once per month" for a few years, but it's been a while since I last blogged regularly. Plan to restart this year with a series on fitness for tech/office workers.
Top tip: choosing a subject matter agnostic name means that you can alter what you blog about as your interests change over the years.
The date of Brexit at present is 29th March. One worst case scenario is that all aeroplanes entering/leaving the country are grounded. I think it's unlikely but it has been discussed in the press https://www.theguardian.com/business/2017/mar/09/brexit-airl...
You'll probably be fine as a tourist but as I said, it's the uncertainty that's the problem. If it were me, I'd leave a week or two before 29th March.
No problem.
The unpredicatable nature of weather in Scotland means that if it looks bright and sunny in the morning, you still need to leave your house with a jacket because you cannot guarantee that it won't rain heavily later in the day. Depending on when you take lunch or arrive at work, some people will be drenched, some will enjoy clear skies and sunshine. This isn't necessarily like this every day, but prepare for variability.
The dry air in the winter can make dry your skin, so moisturise well. It can also get windy.
That said, it's fairly temperate. The weather usually goes as low as minus single digit celsius, and as high as sub-30 celsius. And compared to other locations in Scotland it rains a lot less.
https://www.climatedata.eu/climate.php?loc=ukxx0052&lang=en
With regard to Brexit, it's hard to know where to begin so I'll recap and potentially editorialise.
The Conservative party (popular right wing political party), which is currently ruling as a minority government, has historically been split on the subject of integration with Europe. One side likes banks, free trade, free movement and big business and doesn't mind a bit of bureaucracy (pro Europe); the other likes deregulation, sovereignty, controlled immigration, "brass plaques", and small/medium business (anti Europe). This argument led to a polarising vote to the populace about whether we should leave the European Union or not.
Joining the European Union, which the UK did in the 1970s, was initially about centralising trade agreements. Now though it has a common currency (though the UK retains its own independent currency), legislates and regulates on many varied aspects of life and business, and takes huge membership fees and pays out lots of grants. Some see this as a good system even if reform is needed, some absolutely hate this with a passion.
The public vote polarised the country greatly and ended 52%/48% in favour of leaving the EU. Even if the result was conclusive the fact it's within a rounding error, the winning side committed electoral fraud and made lots of promises which they instantly backed down from, and there's evidence of Russian intereference, so there's a lot of bad feeling from both sides as many can't accept the result as final.
The key take away is that the UK has had 2 years to negotiate leaving but being in the EU affects so many aspects of life, that almost nothing has been decided and there remain so many grey areas. The worry now is that no deal will be reached and leaving the EU without a deal creates massive legal uncertainty in almost every industry conceivable, and means all trade between UK and the rest of the world (currently done via EU trade agreements) will instantly get WTO tariffs - in effect putting instantaneous costly barriers to all goods and services.
At present we're hoping politicians will become sensible and sort something out that doesn't plunge the country into financial ruin, but it's the uncertainty that's the problem at the moment.
Add to this, many in Scotland wish to be independent (another similarly polarising issue) and feel their wishes regarding Brexit are being ignored by the UK government (Scotland in comparison to the rest of the UK wanted to decisively remain in the European Union 62%/38%).
So in conclusion: (a) there's a lot of uncertainty about the UK leaving the European Union in spring next year and what this will do to the smooth running of the country (b) if the UK does leave in a crash and burn style, that may lead to renewed calls for Scotland to become independent and who knows what that will look like. Caveat emptor.
(and for full transparency of my personal bias: I'm pro European, anti Conservative party, pro Scottish independence, and was on the 100,000+ march for a 2nd independence referendum at the weekend)
+1 to Edinburgh, from a biased local.
Most (but far from all) startups in Edinburgh are based in the Codebase building: https://www.thisiscodebase.com/. We also have a couple of unicorns that were started here, Skyscanner and FanDuel; Amazon and Smartsheet also have offices; and Rockstar North is where GTA is developed.
All of the above companies are within 10-20 minutes walk of the Edinburgh Waverley train station. Public transport is awesome mainly because the city is quite small and buses are frequent and cheap.
There are plenty of meetups too - see https://techmeetup.co.uk/ for the biggest general one, which is also live streamed. There are others on security, JavaScript, Go, Machine Learning etc.
If you like hiking/camping/hill walking then Scotland is a great country for you - you have a view of the Pentland hills from the city, and Arthur's Seat in Holyrood park right next to our parliament buildings. You can be in the Cairngorms national park within a few hours by car/train.
Upper end for Senior Engineer take home pay after taxes is around £4,000 pm. You could rent a nice apartment for £1,000 pm, but could get something small and habitable for £600.
Edinburgh is Scotland's most international city, which is a double edged sword as the tackiness of the tourist shops up and down the Royal Mile showcase. But there's lots of great things to do and see, and varied places to eat and drink. The University of Edinburgh is one of the UK's best (I recently walked past Prof Peter Higgs :) and students come here from all over. The Edinburgh Festival is (one of?) the biggest arts festivals in the world and runs for the whole month of August. The Fringe Festival is a world famous testing ground for stand up comics - there's a great Netflix special from Hannibal Buress about his experience of the Edinburgh Fringe.
Big downside to the city is that it doesn't have a tech sector as well developed as, say, London. Also for as stunning and booming as the city is, the weather is pretty bad especially owing to its unpredictability i.e. four seasons in one day. It's drier than most of Scotland but that's not saying much. It's cold and the winters have short days. The flip side is that a sunny summer's day will be one of the most enjoyable of anywhere in the world.
EDIT: and yeah, I echo other warnings about waiting until the Brexit debacle has concluded to see what things are like for the UK