“Wait.. I know how to fix this..” frustrated vibe coders LLMs have made coding more accessible, but this doesn’t mean you don’t need to learn software development. These techniques can slightly improve the outputs of LLMs, but it doesn’t ‘know’ anything. Asking it “do not hallucinate” doesn’t make it follow those instructions, it changes…
Recently I’ve been looking at the large Cloud providers like AWS, Azure and GCP and how their value proposition has changed over the last decade. While On-Demand compute that these companies can provide are still great for small experimentation or low volume messaging/orchestration, the value they provide to any kind of larger compute needs has been getting worse. I’m putting together…
In a previous role, I needed to optimize a Postgres database to store 2-3 billion total rows using an r4.xlarge instance on AWS RDS. This was storing weather data parameters for the world where parts were being updated every 5-15 minutes as new data came in, and old data needed to be removed. The total data stored was only for 2-3 weeks, so the whole database would be recycled with new data in…
I thought I’d write up some of my experiences at Solcast building a global solar forecasting system, and some of the challenges I had storing and updating millions of forecasts every 5-15 minutes. Problem We needed somewhere to store weather and solar forecast data being generated every time a new satellite image was pulled from various geo-stationary satellites like Himawari-8/9, GOES-17,…
Professional Background I’m freelance software developer with over 15 years of experience specializing in creating easy to use and efficient web APIs and developing versatile developer tools among building anything for the web. My background is in managing large-scale data and implementing cloud infrastructure solutions. I have extensive experience with AWS and am comfortable provisioning…
I’ve recently found a good setup for using locally powered LLMs in the IDEs I use every day. Specifically, I almost exclusively use Jetbrains IDEs like Rider, WebStorm, PyCharm, etc. After building a large chunk of my own LLM integration for these IDEs, I have finally found a setup that I wanted via the Open Source plugin called CodeGPT. In this guide, I’ll walk you through the steps…
TL;DR I recently build my own homelab using a Dell T7910. Compared to a similar AWS setup, it cost me less to purchase than a single AWS monthly bill. AWS is raking in the profits, if you have to use AWS for large compute, upgrade instance type as much as possible. I intend to try and power my server using 100% home generated solar, will try to post projects at homelab.
It might sound cynical, but it isn’t often a new piece of software comes a long, and I’m immediately won over. SQLite SQLite’s utility when it comes to proof of concept or testing environments has been something I’ve been leaning on for a number of years. For example, in any demo, personal project, it is my default choice simply because it is easy to use, and embedded right…
If you’ve seen much of twitter at all, you will know pretty quickly I don’t like cryptocurrencies. To be clear, I don’t hate the technology behind cryptocurrencies. Cryptography is an extremely useful bit of maths that enables a lot of what we do on the internet long before the term “cryptocurrency” was common place. Distributed databases are an interesting problem.…
It has been over 10 years since I started blogging on a few technical/software related topics. Having my blog tied to a platform like Blogger didn’t really encourage me to do anything with it, so I’m finally getting around to starting the blog a new and try to document the process of migration if anyone else wants to do the same. Markdown from HTML Thankfully most platforms do provide…
Demis Bellot recently responded to a question going into depth why a message based architecture approach works, I wanted to add this post to highlight how this approach is paying dividends for reuse across frameworks, languages and runtimes and empowering polyglot developers to build rich strongly typed clients in a simpler way. A common story for ASP.NET developers For the first few years of my…
I recently had the problem of automating the build of an IntelliJ plugin so more of the process of updating the plugin could be automated. I found a lengthy write up by Arjan Molenaar which I followed to originally get ServiceStackIDEA building on a new CI server. This use the idea gradle plugin to handle some of the IntelliJ project specifics. Although it works, it’s quite verbose and…
Over the past year I’ve been lucky enough to work at ServiceStack focusing on continuously improving the developer experience for developers using ServiceStack. A part of this role, I was tasked with improving developer workflows for multiple IDEs by integrating ServiceStack’s Native Types feature for all major IDEs. Though all IDEs tend to grapple with the same or similar constructs…
I’ve recently been exploring the idea of using Dart for the client side of my next web project as I think the language lends itself to a more maintainable code base at larger sizes copared to JavaScript. However, due to the large number of frameworks JavaScript already has at it’s disposal, it would be silly to not try to leverage those frameworks. One in particular, is the SignalR JS…
I’ve been doing a fair bit of AngularJS development over the past 18 months (currently full-time) and I’ve come across a pattern I’ve found my self using a fair bit. For the most part it seems to hold water and make my life easier, but I don’t know if that’s just a short term gain that will come back to bite me (or someone else) in the near future. I also wanted to…
Over the past couple of months, I’ve been spending more time with Dart and trying to get my head around how to use it in my current set of favourite tools and workflows. I’ve also been working on a site to share and collaborate on Tiled map editor maps called ‘TiledStack’. The site is currently written in AngularJS and I have ~80% of the functionality I want the site to…
Thought I’d post another update for TiledStack as I finally had some what of a win for one of the main features I’ve been trying to get done at various points in the past couple of weeks. Map preview for web. I want users to be able to (if they choose) to let their maps to be visible to rest of TiledStack users. Eg, visible in search/browse and also available to all other users via the…
A couple of days ago at work, I was thinking about how we might reduce number of errors and avoid some of the more repetitious code that we were writing. I’ve known about Visual Studio templates for a while but never bothered to look into them. Code generation (even though I’ve written T4 templates and the like) is something I tend to shy away from as they can becomes brittle quite…
In the past week or so I have been doing a bit more work on ‘TiledStack’, specifically web, server persistence of map changes and user management. I have also been updating the 2 clients main clients. The MonoGame client (AKA, run-time client) and the file watcher client which looks at changes in the local tiled file and generates requests to the server (collaboration client). Server…
I’m continuing on with a project I am calling ‘TiledStack’ which is a set of libraries, web services and clients that assist in the development and running of games that utilise the Tiled map editor. This past week or so I have focused on ‘developer workflow’. How developer(s) make changes to a map and how those changes get incorporated into the iteration and feedback…
Recently in my projects I’ve been finding more use for extension methods in C#. If you’re not familiar with extension methods, they go something like this. public static class Extensions { public static string AsScoreString(this MyClassA myclass) { return myclass.Foo.ToString() + ' points!'; } } public class MyClassA { public int Foo { get;set; } } Basically some syntax sugar. Instead…
Recently in my spare time, I have been playing around with idea of using a simple HTTP services for messaging between game clients, specifically updating Tiled maps. Traditionally, networking between games has been done by TCP sockets as it is a far more efficient and light weight tech to use for games.However, as an enterprise developer by trade and games developer hobbyist, I’m not too…
I’ve been using Windows 8 as my primary operating system for around 3 months. With any software that I have to spend a decent amount of time with, I try to learn tricks to help me as much as I can. I am a huge proponent of avoiding the mouse as much as possible during development and trying to use hot-keys instead. So I Ctrl-Q pretty much every where on Windows 8 that I can.
More recently I have been playing with the range of projects from the Xamirin team, specifically Mono and MonoGame. Mono is a .NET equivalent framework that works across other platforms. Xamirin’s tools even spread across the mobile space with MonoTouch and MonoDroid. Now, even though I’ve just been saying how good it is to look vary your experience with different tech, there are…
Last week I was lucky enough to attend TechEd 2012 on the Gold Coast. If you follow my twitter feed, you’ll know thatI didn’t have high hopes for it being anything but a giant sales pitch. However, thankfully, a few good speakers saved me from maintaining that impression. Favourite Talks (no specific order) Adam Cogan - Whats New in Visual Studio 2012 Adam did a really good job at…
Open Source Software When I first started in software development, I worked in a large enterprise environment. Lots of terms were getting thrown around and accepted by other developers around me. Phrases like, “Enterprise solution” and “Commercial Quality” which I also accepted, but didn’t really think too hard about. One thing I did notice after a while was that…
I haven’t posted in over a year, however I thought it’s about time I try to get more into writing down some of my internal arguments regarding software development. I started this blog focusing on the XNA framework, which was something I was having a great time with as a hobby about a year ago, however, it’s something I’ve had less time for lately. So, in an effort to get…
Recently I’ve been optimising my WP7 game to avoid garbage and run the core of the game with plenty of performance left for future features. I was putting together a post regarding some of the problems and resolutions I came across, but I stumbled across this article this morning and it says everything and more. I highly recommend reading this article and related links if you are currently…