MCP servers are powerful tools but they have no power over how the model decides to use them. They register their tools, describe them in a schema, and then sit there while the model guesses which ones to use. Every toolwhether relevant or not, gets loaded into the prompt, burning tokens and increasing the chance the model picks incorrectly. If the user asks "what does my project note about…
Programming is older than code, but we keep talking as if they are the same thing. That confusion is now making itself apparrent with the discrourse around "AI" in software for both the zealots and the nay sayers. Whether you like it or not, LLMs are writing more code every day, while some are claiming that this is the end of software engineers, others are... Read more
For a long time, there has been a gap between "I have a problem" and "I can justify building software for this". If the problem was too niche, the answer was usually to live with a bloated professional tool, pay a subscription for features you barely use, or keep doing the task manually. Closing that gap is, I think, the biggest impact agentic coding will have on software. AI-assisted development…
Divan is letting me write on his blog. In fact, he's letting me write everything today, you see... Functional Software Stockholm AB posted a Christmas coding puzzle, and there's a claim floating around that LLMs like me produce messy, unreadable code. Divan... Read more
It's a common trope in web development to say, "I just use console.log," especially for those who started development outside the domain of paid-for IDEs. Some people will tell you that you should be using a debugger all the time. It's a simple tool that you can attach to a process and pause mid-execution to see what's happening inside. And yes, it is a powerful tool—when it works... There is,…
In the time when I was toying with sentiment analysis in 2017, I came to a conclusion about AI driven systems as they applied to me as a Software Engineer who isn't a data scientist and doesn't run their own machine learning clusters: I am not the person who is going to train or run the greatest model, when that model comes, it will be too expensive to run locally, and will probably require…
While there are many options for using Swagger/OpenAPI with express some of them require that you use an entire framework, while others like to enforce strange structures that quite frankly feel like they interfere with your independant descisions way too much. In this tutorial I will cover what I think is... Read more
Microservice architectures are popular these days, but while they provide certain benefits they also introduce new problems. One of these problems is that even if you have only a few services, connecting to them via IP address can quickly become painstaking. Lets take the following... Read more
Let's say we are tasked with creating a RESTful API that will return a user object based on the user Id, e.g. http://myApi/user/123 will return the user with the ID 123. This endpoint is to be consumed by other developers in our company as part of a micro-services architecture. We cannot simply leave this endpoint undocumented, since this would... Read more
There are two types of people, those who think Docker is an absolute game changer when it comes to web application development, and those who don't know what Docker is. If you belong to the latter group, my goal here is to make you part of the former. Most modern web applications who's scope extends beyond "Hello World" will at some point encounter a situation where they will interact with another…
When working with traditional monolithic applications, you can very quickly become used to a certain style of debugging when something has gone wrong. Logs can reveal quite a lot on their own and the logs for each request may even have a unique identifier so that you can track down what went wrong with a particular request. If that fails, assuming you can replicate your issues on your developer…
In it's simplest form. A feature flag is an if statement. Lets take the example of an endpoint that returns the string "Hello World" when the user browses to /greeting : Now lets suppose that we deploy this useful functionality to production, but after a few weeks, we get the idea that maybe we want to change... Read more
Update: While this site is still clearly no longer medium based, I have moved on from Hugo and have instead gone for my own implementation of a Markdown -> HTML converter For a few years now my blog has primarily been on the Medium platform, and for good reason. The platform provided a clean interface with a nice easy to use editor and supports cool things like notes, highlights and allowing…
I think one of the most elegant things that Go does is output a single portable binary. So when building a full web application, it would be nice to keep the output just as simple. Luckily, I wasn’t alone in this thought, and a neat... Read more
The idea with this article is to simply provide a quick tutorial on how to set up a simple Node.js project with nodemon for development reloading and of course unit tests. This means I have gone for a minimalist approach and tried to keep everything as generic as possible by not doing things like sticking to my preference of Yarn or adding unnecessary dependencies. Let’s start off the same way we…
When you build services for the web you want to make sure they don’t fall over completely when too many users hit your system all at one time. What you want, is to be able to simulate that load spike before it happens in production. I have used artillery.io in the past to get this done, and there are many other services that will test basic load, but I wanted to find a go-to tool that I... Read…
Some time ago I wrote about my experience writing a small Desktop UI in Go using libui. I ended off by saying that I would attempt something in Kotlin next, this project did start in Kotlin, however I switched to Scala after a short time for a reason based solely on personal preference(Kotlin is a better Java but a worse Scala in my opinion). But enough of that, here is what happened when I…
If you scroll through your Twitter feed sometimes you may see a lot of negativity or tweets that make you ask yourself “Did this person read this before they posted?”. This made me think of the times I might have done this, and whether or not I would have posted so many negative tweets if I knew that most of them had a negative sentiment. This of course brought to mind... Read more
I started my career as a Software Developer building iOS apps. I had a passion for crafting user interfaces that had been realized in college when I leaned heavily towards the menu building portion of a 2D game I was writing at the time. As time moved on I found myself doing more and more web UI’s , which makes sense, that is the way things are heading, especially in the enterprise. After some…
Don’t reinvent the wheel! Build on the shoulders of giants! These terms have been irreversibly planted into our heads, and for good reason, but in an industry that is continually producing new options and opinions , it can be difficult to decide who’s shoulders to stand on. It’s not just tools and frameworks either. There are many processes, philosophies and the definitions of “Good code”;... Read…
When you get started with Scala one of the first things you are going to come across is sbt, Scala’s very own build tool. When I started using Scala, I just generated projects via Activator and ran the basic test and run commands in sbt. When things get serious though, you need to add some libraries. So you open up the build.sbt file and are greeted with things that look like madness: the := , +=…
This will be part one in a series where I (a software developer) share my experiences in an attempt to build a fully wireless robot. The purpose of this is to hopefully help other developers who might be interested in the subject learn from my mistakes, or for engineers to have a good laugh. Before actually buying any hardware I decided on a... Read more
So you want to run a node server as a production server on windows, but IIS is running on the machine and taking up port 80. You have probably heard of IISNode, and while it seems to work well, I was not happy with the idea of having to use XML to configure it and not being able to have any flexibility over which ports I use. My solution was to set up IIS as a reverse proxy to a node process. This…
Running node alongside Apache takes little effort, all it requires is a reverse proxy, which is way less of an effort to set up in Apache than it is in IIS and a way to run your node process as a service. To set up a reverse proxy in apache simply add the code in the following gist to... Read more
Wire an LED to pin 13 on the Arduino and plug the Arduino into your development machine. Then follow the instructions on the johnny-five readme to get your Arduino ready for communication. Create a folder for your project and create... Read more
This tutorial will be broken up into 3 sections. You can choose to do either 2 or 3 for the client or both if you desire , I have chosen to break it... Read more
This tutorial assumes you already know whats going on when it comes to creating a project and populating a UITableViewController's table with some data. A lot of the time you can end up with a very long list of items in a UITableView and you really need a search bar to filter what you want.... Read more
Prerequisites: You should be able to create a project and set up a UITableViewController and table view in the storyboard. Description: Lets start by setting up a new project with a UITableViewController I wont bother populating it as this isn't required to get the UIRefreshControl working.Basically all we have to do after setting up the table is to create a UIRefreshControl ,set it up and…
This is just a quick tip on how to determine what device the user is running, this can be useful if you are writing an app for both iPhone and iPad and want to implement a feature in one device but not the other: Code snippet: Another thing we can check for is the version of iOS the user is running... Read more
In Part 1 of Creating a hidden menu in iOS I showed how to add gestures to handle the hide/reveal functionality. The swipe gesture is a great and gives a good impression , but it can be better. It is much nicer to have the effect that the *content *View is following the users finger , and that is exactly what we are going to do here. Lets start with the project form the previous tutorial , if you…
In this tutorial we will create an iPhone app with a hidden menu system using animations and gestures.We start off by creating a new single view project. I have just recently upgraded to Xcode 4.5 and so I have the option to develop for iOS6 and the iphone 5 so the screenshots will be a little taller than normal. I named my project HiddenMenu. Our menu will be based on a table view so drag one of…
What really sets some iOS apps apart from the rest are the way they look , generally , a good look gives the impression that the app was well designed an should therefore work well. This isn't necessarily true but sometimes impression outweighs fact,especially from the point of view of the user. In this tutorial I will demonstrate how to customise the generally boring look of the…
Deprecated Time has moved on , IOS has moved forward to the point where this is no longer a supported way of doing things Connecting to a web service is a requirement for many iOS applications , especially in the enterprise. In this tutorial , I will be covering how to connect to a web service that returns and handles JSON formatted data. I prefer JSON as it is easier to convert to objects native…
Xcode uses about as much screen real estate as Queen Elizabeth II and one of it's largest elements is the toolbar. This is fine on a large screen ,but if you are working on a laptop,then this is probably space you would rather use for other things. Spaaaaaaaaaaaaaaaace The solution , learn the shortcuts and get rid of it. I found that the list of reasons to have it present is very short compared…
One of the great things about developing for iOS in Objective-C is the amount of freely available MIT licensed libraries out there .While some just make your life easier so that you don't have to re-invent the wheel,others like FMDB are almost essential to certain functionality.Here is a list of some libraries I just cant live without. FMDB One of the major issues I stumbled over when working with…
In this tutorial I will create a simple iPhone app to demonstrate how one would create a UIPickerView with custom contents. I started by creating a single view iPhone app (If you are not familiar with this I suggest you read this ). Note: I always use Automatic... Read more
With all the cool science thats been going around I decided that it would be fun to take some of the things I remember from High School physics and turn it into code. I decided to write a class that calculates the force between two objects using Universal Gravitation : $$F = G... Read more
When developing in iOS you need to know one very important thing; where to start.There are many secrets to Here I will be trying my very hardest to give you that information by listing things you need to know and great places to find the information you might need. I will start by listing a few rules of iOS development Originally posted... Read more