$ cat ~/wolfe.id.au/archives.md

Archive

archive  ·  62 entries
  1. AI Is Bringing Mashups Back

    A mashup is a term that became popular in the 2010s for applications that combined two or more data sources into a single user interface. Recently, I have seen a steady stream of AI-generated side projects, small apps, …

    #062
  2. How I Work with AI Coding Agents

    For anyone who has been following AI and software development, things are changing rapidly, this includes how we build software. Over the last few months, I have found myself going from working alone to working with an …

    #061
  3. Why Connect RPC is a great choice for building APIs

    Connect RPC is a suite of libraries which enable you to build HTTP based APIs which are gRPC compatible. It provides a bridge between gRPC and HTTP/1.1, letting you leverage HTTP/2’s multiplexing and performance …

    #060
  4. Why OIDC?

    Over the last few years there has been a push away from using machine identity for continuous integration (CI) agents, or runners, and instead use a more targeted, least privileged approach to authentication and …

    #059
  5. What you should consider when storing datasets in s3

    As an Amazon Web Services (AWS) developer, I am often asked what is the best way to organise datasets in S3 . A dataset could comprise data exported by business systems, or data emitted by AWS services, such as …

    #058
  6. Using a Monorepo to publish Lean Go Packages with Workspaces

    As a developer who works with Go in my day-to-day development, I constantly struggle with third party packages or tools which bring in a lot of dependencies. This is especially true when you’re trying to keep your …

    #057
  7. Getting started with AI for developers

    As a software developer, I have seen a lot of changes over the years, however few have been as drastic as the rise of artificial intelligence. There are a growing list of tools and services using this technology to help …

    #056
  8. Avoid accidental exposure of authenticated Amazon API Gateway resources

    I have been working with Amazon API Gateway for a while and one thing I noticed is there are a few options for authentication, which can be confusing to developers, and lead to security issues. This post will cover one …

    #055
  9. RIP AWS Go Lambda Runtime

    Amazon Web Services (AWS) is deprecating the go1.x runtime on Lambda , this is currently scheduled for December 31, 2023. Customers need to migrate their Go based lambda functions to the al2.provided runtime, which uses …

    #054
  10. Stop using IAM User Credentials with Terraform Cloud

    I recently started using Terraform Cloud but discovered that the getting started tutorial which describes how to integrate it with Amazon Web Services (AWS) suggested using IAM user credentials . This is not ideal as …

    #053
  11. Automated Cloud Security Remediation

    Recently I have been looking into automated security remediation to understand its impacts, positive and negative. As I am a user of AWS, as well other cloud services, I was particularly interested in how it helped …

    #052
  12. My Development Environment

    I was inspired by others to document the tools I use working as a software developer professionally, and hacking on side projects out side of work. One thing to note is in my day job I work on an Apple Mac, but my …

    #051
  13. Diving into AWS Billing Data

    Billing is an integral part of day to day AWS account operation, and to most it seems like a chore, however there is a lot to be learnt interacting with AWS Billing data. So why would you ever want to dive into AWS …

    #050
  14. GitHub Actions supply chain attacks

    There has been a lot of press about supply chain attacks recently, these type of attacks are nothing new and understanding them is really important for developers using services such as GitHub Actions , given Continuos …

    #049
  15. Why isn't my s3 bucket secure?

    We have all read horror stories of Amazon Simple Storage Service (S3) buckets being “hacked” in the popular media, and we have seen lots of work by Amazon Web Services (AWS) to tighten up controls and messaging around …

    #048
  16. AWS Events reading list

    For some time now I have been working on internal, and some product related services which use AWS events, some of this has been paired with AppSync subscriptions , slack and AWS SNS . To help everyone come up to speed …

    #047
  17. Starting a Go Project

    Given the changes with Go Modules I wanted to document a brief getting started for Go projects, this will focus on building a minimal web service. Before you start you will need to install Go, I recommend using homebrew …

    #046
  18. How do I Structure my Go Project?

    Assuming you read my Starting a Go Project post you should have the starting point for a minimal go web service. For your first project it is easier to keep all your code in one folder, in the base of your project, but …

    #045
  19. Building a WLToys A979 donkey car

    In my spare time I spend a bit of time building and working on a scaled down self driving RC project which uses an opensource project called donkeycar . I have been through a few generations of car, learning how both the …

    #044
  20. Getting started with Cognito?

    The AWS Cognito product enables developers to build web or API based applications without worrying about authentication and authorisation. When setting up an applications authentication I try to keep in mind a few goals: …

    #043
  21. Why CDK?

    Early this year amazon web services released the Cloud Development Kit (CDK) which is best summed up by a quote from the GitHub project. The AWS Cloud Development Kit (AWS CDK) is an open-source software development …

    #042
  22. Serverless Background jobs part 2

    Step Functions allow you to build pipelines involving one or more amazon, or external service. Some examples of this are: complex customer on boarding processes jobs which provision resources then send a welcome email …

    #041
  23. Serverless Background jobs part 1

    Background jobs form the backbone of a lot of modern applications, they are used to perform a range of asynchronous tasks, from image processing through to order processing, fulfillment and shipping. Wherever there is a …

    #040
  24. Using AWS DeepRacer for ROS development

    So the DeepRacer was released with much fanfare by Amazon Web Services (AWS) at this years Reinvent conference in Las Vegas. This combines an off the shelf radio control (RC) car chassis, with an intel based compute …

    #039
  25. Diving into vgo from the Golang project

    I have been looking into the Versioned Go Command which was released recently by Russ Cox . In summary this project is a pretty rethink of how golang retrieves and stores packages used to build applications, and more …

    #038
  26. AWS User Federation with Keycloak

    As a user of Amazon Web Services (AWS) in large organisations I am always mindful of providing a mechanism to enable single sign on (SSO) to simplify the login process for users, enable strict controls for the …

    #037
  27. So you want to use DynamoDB?

    Over the last few months I have been working on a project which uses DynamoDB almost exclusively for persistence, this has been a big challenge for everyone on the team. As a developer, most of us are comfortable using a …

    #036
  28. bootstrap an apex golang project

    Lately I have been using apex to build a side project, this tool stream lines building and deploying serverless applications using AWS Lambda . While working on this project I have helped others get started with golang …

    #035
  29. bootstrap a golang project

    I have been helping a few people get up and running with golang lately and thought it was about time to post a brief getting started. This is primarily for OSX as this is what most of my colleagues use. Firstly you will …

    #034
  30. Development with Webpack and Docker

    This describes how to develop front-end projects with webpack inside a docker container using boot2docker on OSX. So firstly why would we even do this? The main aim of using docker for development is: Portable build …

    #033
  31. IoT Development with Docker Containers

    With the almost continuous release of new Internet of Things (IoT) hardware platforms and development boards it is not surprising that SDK delivery has seen a shift to piecemeal and “some assembly required” …

    #032
  32. Github Security

    Having worked with Github for the last six years, commercially for the last three I thought I would do a post on security, or more specifically, protecting your projects, and the ones you work on for others, this may be …

    #031
  33. syslog logging driver for Docker

    This post will illustrate how to use the new syslog logging driver for Docker , along with some notes on using docker-machine . The first thing to be clear on is the syslog logging driver enables you to relay the log …

    #030
  34. Using Sublime Text for Go Development

    For the last 6 months I have been using Go as my primary development language and for a large part of that I have been using sublime text 3 . Along the way the go developers have released quite a few handy and time …

    #029
  35. Golang can I have a package manager please?

    Currently golang has no standard package manager; this in my view makes it a harder for those new to the language. golang has for the most part been a pleasure to use, built-in features are well thought out and help new …

    #028
  36. Configuring a simple IPv6 network

    Recently I have been helping Andy Gelme with a project which uses contiki-os , and 6lowpan on a device called a MeshThing . This required us to setup a small IPv6 network from scratch, independent of the internet, this …

    #027
  37. Getting a new node project started with npm

    The aim of this guide is to get people getting started with Node.js and npm , while also showing some of the handy commands I use to bootstrap my projects. Create your project directory. mkdir npmtest Change to the …

    #026
  38. Adding an ICSP header to the ATmega256RFR2

    I am currently working on building a simple wireless sensor using the ATmega256RFR2 Xplained Pro Evaluation Kit . This kit includes a base board and a bunch of other peripherals to mess around with. When I started …

    #025
  39. Heroku logging what I have Learned

    Recently I started work for a new employer who runs has a number of applications hosted on Heroku , my typical strategy when faced with a new environment and systems is try and get some monitoring in place as soon as …

    #024
  40. Installing Ruby 2.0.0 with Dtrace Support

    The aim of this post is to guide the reader through the process of installing ruby 2.0.0 into rbenv with dtrace probes enabled. As rbenv uses ruby-build , which currently downloads and compiles a copy of openssl rather …

    #023
  41. Raspberry Pi Temperature and Humidity Project Construction

    For some time I have had a Raspberry Pi languishing on my desk, like many I bought one early on and played around with it for a while and then got busy with other stuff. Recently however I have been looking into …

    #022
  42. What is HMAC Authentication and why is it useful?

    To start with a little background, then I will outline the options for authentication of HTTP based server APIs with a focus on HMAC and lastly I will provide some tips for developers building and using HMAC based …

    #021
  43. Building Ruby Projects with Bundler and the Bamboo Ruby Plugin

    The latest release of the Ruby plugin I develop for Atlassian Bamboo now includes some new configuration options for Bundler along with a number of other additions and improvements. In this post I want to focus on the …

    #020
  44. Bundler gems and binstubs

    I have been working on an update of my Bamboo ruby plugin which uses bundler to install all the gems for a given project within the working copy of the project and then run rake using these gems. The aim of this post is …

    #019
  45. Less is more especially when it comes to CSS

    I am currently working on new design for my site using HTML5, CSS and a sprinkling of JavaScript. Once I started building my basic design I was re-acquainted with a process that really, really annoys me; the constant …

    #018
  46. Tips for Bamboo Plugin Developers

    Having recently developed a plugin (Ruby Rake Plugin ) for Atlassian’s Bamboo continuous integration (CI) server I thought I would put together a list of tips for those looking to do the same. As there are some …

    #017
  47. Monitoring the OpenJDK from the CLI

    Currently I do quite a bit of work in and around the Java virtual machine (JVM), most of the time on Linux. When things go awry and I am trying to establish why, I reach for the Java performance analysis tools. These …

    #016
  48. How I use chef-solo with ubuntu 12.04

    Having recently started working with chef I have come up with a simple method of kickstarting use of it in the small end of town. This really is designed for those of use managing a large number of very similar servers, …

    #015
  49. JIRA and the not so great new installer

    The following post is a review of the new installer added in 4.4 of Atlassian JIRA. It details my experience with this installer and provides some advice on how to improve it. Since it’s recent release I have seen …

    #014
  50. Road Testing Gradle

    For a while I have been tempted to stray from the relative safety of Maven and Ant . Every time I fight with these tools, or in the case of maven am stunned and amazed out how simple things can require so much xml, I …

    #013
  51. Hacking rails on Ubuntu with rvm

    Over the last few days I have been familiarising myself with some of the rails source code and surveying it for use in my own projects. In doing so I noticed there were quite a few gotchas getting Ubuntu and ruby set up …

    #012
  52. GHTest Getting Started

    Recently I have caught the OS X software development bug and started hacking on a small project in this environment. As I am normally pretty keen to try out new APIs and indeed a whole new language, I was keen to get …

    #011
  53. RHOK Survival Guide

    Last weekend I was fortunate to have participated in first ever random hacks of kindness event. This was quite an amazing experience and one I really enjoyed, however going into this event I had no idea what to expect, …

    #010
  54. Working with the html5boilerplate project

    Recently I started work on a new site which I plan to use underscore.js and backbone.js . Starting a site from scratch can be quite a chore, as well as time consuming. To remedy this I decided to take the plunge and give …

    #009
  55. Using Apache CXF And Maven With a Proxy Server

    I discovered a couple of interesting issues when using Apache CXF and Maven behind a proxy this week. It started when I sent out a package of stubs in a Maven project I had built to enable developers of integration …

    #008
  56. How to build server with Bamboo and Ubuntu

    Recently I have been looking into setting up my own build server, having used Cruisecontrol, Hudson, Teamcity in the passed I wanted to give something new a try. With the recent release of Bamboo 3.1.1 I thought I would …

    #007
  57. Using Jackson with Apache CXF

    Whilst working on my Javascript, ExtJS 4 and Apache CXF skills I came across a solution to a problem I encountered getting ExtJS to talk to Apache CXF using JSON. The basis for this issue revolves around …

    #006
  58. Apache CXF Logging Configuration

    Configuring logging in Apache CXF can be confusing at first, in my view this is further compounded by Apache Tomcat’s logging architecture. In my cxf based projects the first step is to use the logging …

    #005
  59. Building Apache CXF web service clients namespace mapping

    Recently I have been doing quite a bit of work around Apache CXF , both on the server side and the client side. Over the next few weeks I will post some of the tricks I have learnt. In this post I will summarise one of …

    #004
  60. Moving to Jekyll and Disqus

    First post from my newly migrated blog reviewing migration from wordpress to Jekyll and Disqus. Jekyll for site generation. Sass for simplified css goodness. Pygments code highlighting. Disqus Following some of the sites …

    #003
  61. Installing Ruby with RVM on Ubuntu 10.10

    Been installing RVM on anything that runs *nix lately, ran into some issues with using this great tool on Ubuntu 10.10 . After a bit of reading I discovered a couple of solutions, either I could build and install some of …

    #002
  62. Maven, where I start

    More often than not today I start my Java projects using an Apache Maven archetype. Whether it be for an Apache CXF based web service, a simple web application or some sort of service most are started from an archetype. …

    #001