This week was almost entirely working on Collatz, both in a good way and a very frustrating one. Spending so much time on a single problem really made me slow down and think about how complex software can be when getting past working code. What stood out most to me was how much of a reliance there is on infrastructure and tooling as opposed to just clever logic written in code. Between setting up the CI/CD pipeline, using checktestdata, and making sure things all worked together, the experience was very similar to that I've had in industry. It was a reminder that in practice, code is such a small piece of software engineering.
Working through a couple of the in class quizzes, I realized how important it is to remember some basic and quick arithmetic in the scope of computation (i.e. that 'n >> 1' is equivalent to 'n / 2', or that 'n & 1' is equivalent to 'n % 2 == 0'). Some quick little bits to produce huge savings in time complexity and computation at a bit and hardware level. Also, being reminded about some bit manipulation tricks to count trailing zeroes and speed up computation made a switch click in my brain that flooded memories of computer architecture and learning about all these little things. A walk down memory lane wasn't something I was expecting from a project here, but it was great.
My tip of the week is another invention from the folks over at Google DeepMind, but not Genie 3. This week, I want to talk about WeatherNext2. Using AI and ML algorithms, this is one of the most advanced weather prediction algorithms ever created. It's being rapidly integrated into every way you interface with the weather across all Google services, and it's wicked good at what it does. Given the insane freezing we've had in the last 5 years, that I had never seen in my life before. Many of us can agree that being able to predict the weather accurately in times where we're getting more and more wild forecasts is extremely important, and this is doing just that.