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 Relational database management system (RDBMS) systems, so the move to a primitive key value store has been fun, but we have learnt a lot. To try and capture some of these learnings I have written this article, hopefully it will help those who embark on a similar journey.
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 at the same time as apex.
My general strategy for building apex applications is to build a standalone version of the functionality on my machine, typically in a way which makes the code reusable, then I import and use that in apex.
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 need to install golang and setup your GOPATH. If your on OSX you can just install homebrew and use it to install golang.
brew install go Then in OSX I append a couple of lines to my $HOME/.
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 environment Simplified on-boarding of new developers Consistency between development and continuous integration (CI) In summary tools like docker make it very easy to package up a development environment and share it among a team of developers.
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” solutions. The majority of hardware companies have trouble delivering Software Development Kits (SDKs) which just work.
Docker presents an opportunity to really make a big leap forward in providing a simple to deploy packaged SDK environments for hardware platforms.
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 friends, or it could be a company. Either way the aim of this post is to encourage you to review the security of your personal Github account.
Two Factor Authentication As soon as you start build things in Github for other people I recommend you enable two factor authentication, the process is pretty straight forward and services such as Authy and Google Authenticator make this even easier.
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 messages written to stdout/stderr within a container, to syslog service on the host machine.
For this example I am going to do this for an agent of the buildkite continuous integration (CI) service running inside a Docker container.
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 saving tools which have all been supported by GoSublime with some assembly required. This post will provide a rundown on how to setup go-sublime and the array of tools which make golang development as productive as possible.
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 users get started fast. Dependency management is by contrast a jarring and painful experience for those starting with golang. To understand why I believe this is the case I have put together a proposal of sorts for a package manager.
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 turned out to be quite a bit different an objective of most of the how to’s we found so I decided to document our method, as much for others as myself.
In our case the network looked as follows: