52% of all B2B payments in the UK are done by bank transfer, but is it time to retire bank transfer as a B2B payment method for high-growth businesses?
22 Jan 2019
At Small Improvements, we are always keen to learn about our customers and how we can make the product better for them. Speaking to customers is great (and we do it all the time) but using the data we hold to find trends and usage patterns helps to find things that the customer won’t tell […]
B-Tree indexes are perfect when your data is uniformly distributed. They are not really useful, when you have skewed data. I’ll explain later why this is the case, but let’s first learn how to detect “skew” What is skew? Skew is a term from statistics when a normal distribution is not symmetric. The example given … Continue reading Calculate Percentiles…
Everything US businesses need to know about identifying and combating churn.
The introduction of advanced statistical methods is reshaping the UX of alerts
Some time ago I’ve started working on updating automated tests written in selenium with java. After working a bit with it I’ve noticed that from time to time constructing XPath expression can get ugly. We are writing our tests in pure java and "ugliness" usually comes from string concatenation when some extra parameters must be taken into account. I’ve decided…
21 Jan 2019
Receiving “com.amazonaws.services.s3.model.AmazonS3Exception: Not Found” when using Jenkins’ pipeline-aws-plugin and s3Upload step with Minio
SchakkoI am currently working on a Jenkins declarative pipeline to connect the Jenkins builds with Kubernetes, Helm and Netflix Spinnaker. One of TODOs has been to deploy different artifacts (e.g. a helm chart my-chart-0.0.1.tar.gz) to an AWS S3-compatible bucket inside a Minio installation with help of pipeline-aws-plugin. When running withAWS(endpointUrl: […] The post Receiving “com.amazonaws.services.s3.model.AmazonS3Exception: Not Found” when using Jenkins’…
My top used shell command is |. This is called a pipe. In brief, the | allows for the output of one program (on the left) to become the input of another program (on the right). It is a way of connecting two commands together. For example, if I were to run the following: echo "hello" I get the output…
This article explores different ways to create iterators and iterable values in Javascript for dynamic sequence generation, specifically using functions, iterators, iterables and generators. It provides code examples for implementing the Fibonacci sequence with each approach.
20 Jan 2019
A personal 2018 year in review including achievements like migrating my blog to a serverless setup, 8 conference talks, career growth at Vectra, open source contributions, and reflections on side projects. Outlines goals for 2019 like writing more, releasing middy 1.0, and getting advanced AWS certifications.
18 Jan 2019
Reviewing code Happy new year! The beginning of the year is a great time to reflect on our strengths, our accomplishments, and our areas of opportunity. Perhaps you’ve decided that code reviews are one of your areas of opportunity. Wonderful! I’m so glad you’re here. I highly recommend checking out parts 1 and 2 of this series, as code review…
Are you working on an agile team? Odds are high that you probably are. Whether you do Scrum/Kanban/lean/extreme, you are all about getting work done with the least resistance possible. Heck, if you are still on Waterfall, you care about that. But how well are you doing? Do you know? Is that something a developer […]
Choosing a push or pull payment method can hugely impact payment collection.
Support for a long awaited GNU C extension, asm goto, is in the midst of landing in Clang and LLVM. We want to make sure that we release a high quality implementation, so it’s important to test the new patches on real code and not just small test cases. When we hit compiler bugs in large source files, it can…
17 Jan 2019
From setting your goals to streamlining your quoting process and profiling your clients – here's our seven step guide to a successful fee increase for Australian firms.
16 Jan 2019
Static Maps API on MapTiler Cloud now allows adding colorful markers.
15 Jan 2019
At Jane Street, our web UIs are built on top of an in-house framework called Incr_dom, modeled in part on React’s virtual DOM. Rendering different views efficiently in response to changes made to a shared model is a quintessentially incremental computation—so it should be no surprise that Incr_dom is built on top of Incremental.
14 Jan 2019
Russian Translation by Akhmad Karimov My software setup has been surprisingly constant over the last decade, after a few years of experimentation since I initially switched to Linux in 2006. It might be interesting to look back in another 10 years and see what changed. A quick overview of what’s running as I’m writing this post: Motivation My software priorities…
This post introduces paging, a very common memory management scheme that we will also use for our operating system. It explains why memory isolation is needed, how segmentation works, what virtual memory is, and how paging solves memory fragmentation issues. It also explores the layout of multilevel page tables on the x86_64 architecture. This blog is openly developed on GitHub.…
Wondering when to use Terraform and/or the Serverless Framework for your infrastructure as code? We've got answers.
13 Jan 2019
I thought it might be fun to write a blog post on “The Life of a GitHub Action.” When you go through orientation at Google they walk you through “The Life of a Query” and it was one of my favorite things. So I am re-applying the same for a GitHub Action. For those unfamiliar Actions was a feature launched…
12 Jan 2019
I’ve now been the co-founder and CTO of Splice for almost 6 years. It’s officially the longest place I ever worked at. It’s funny because it does feel like we just started yesterday. I decided to write down some unedited thoughts and share them here. I remembered thinking that I’d love to know what it was really like to be…
11 Jan 2019
The next GoReleaser version will have a more flexible Docker configuration format. In this post we’ll explore it a bit.
10 Jan 2019
At work I’m are engaged in the maintenance and development of a pretty big legacy monolithic application. Some time ago team size basically doubled. To keep things simple and activate more people we decided that we need to split the huge team into smaller more focused parties. Here is how we are working on many features of the same code…
Introduction Greetings, Everyone! It has been several months since I’ve blogged, so it seems fitting to start the New Year off with a post about two topics that I thoroughly enjoy exploring: Application Control/Application Whitelisting (AWL) and the Component Object Model (COM). As the title suggests, I stumbled upon a technique for bypassing Microsoft Application […]
9 Jan 2019
Check out the latest Serverless Framework v1.36 release, bug fixes and quality of life improvements for all!
I wrote a blog post for LogRocket about CSS Houdini and the Paint API! Complete with demos and illustrations.
8 Jan 2019
Some people really liked the dark DDNet theme for Halloween by Soreu, so we decided to keep it possible to use the default bright or the dark theme. Thanks to xse we got a JavaScript based theme switcher. After some improvements I finally I switched it away from JavaScript entirely and finally am also using it on this blog with…
Writing a good Go package starts with its name. Think of your package’s name as an elevator pitch, you have to describe what it does using just one word. A common cause of poor package names are utility packages. These are packages where helpers and utility code congeal. These packages contain an assortment of unrelated functions, […]
With expanding web technoligies, we can now interpret responsive design as the way it affects a user’s context, and how we can be the most responsive to the user’s needs and experience.
7 Jan 2019
What is Machine Learning: the various tradeoffs engineers must make in devising, developing, and improving effective and useful ML algorithms.
Looking for a resolution for 2019? Improve business cash flow and beat late payments with these 10 tips
GoCardlessRing in the new year by waving goodbye to late payments.
6 Jan 2019
Optimise your payments strategy to drive changes in key business metrics like Churn Rate and Customer Lifetime Value, with this cheat sheet for Australian businesses from GoCardless and ChartMogul.
4 Jan 2019
Reviewing how my 2018 went, and discussing goals for next year!
3 Jan 2019
2 Jan 2019
Standard SQL is a beautiful language. Vendor specific implementations, however, have their warts. In Oracle, for example, it’s not possible to update any columns in a MERGE statement, which have been referenced by the ON clause. For example: Now, in MySQL, we can run a non-standard INSERT .. ON DUPLICATE KEY UPDATE statement like this: … Continue reading How to…
31 Dec 2018
Two men start running at each other with loaded pistols, ready to shoot! It’s a foggy morning for a duel. Newton and Leibniz have decided this macabre contest is the only way to settle their dispute over who invented Calculus. Each pistol is fitted with a silencer and has a single bullet. Neither can tell when the other has attempted…
Mount volumes and when not to mount volumes, that is the question
CSC - IT Center For Science - Cloud Team".. it's like attaching a USB drive to the instance. " - Some Openstack trainer in most Linux based distributions I've seen, if you know other ways please comment below!) every time the server reboots is to put something like this into /etc/fstab: /dev/vdb1 /mnt ext4 defaults 0 0 All clear so far I hope. It mounts block device /dev/vdb…
30 Dec 2018
How did personal computing start? Many credit Apple and IBM for this radical shift, but in 1973, years before the Apple II and IBM PC, Xerox built the Alto, a computer its makers thought could become the “computer of tomorrow.” The Alto embodied for the first time many of the defining features of personal computing […]
27 Dec 2018
Garbage collection is a field with its own terminology. Concepts like like mutators, card marking, and write barriers create a hurdle to understanding how garbage collectors work. Here’s an analogy to explain the operations of a concurrent garbage collector using everyday items found in the workplace. Before we discuss the operation of concurrent garbage collection, let’s introduce […]
21 Dec 2018
The best bloopers and funny moments from all the FAQ Friday videos of 2018.
We built a plugin to let you use API Gateway WebSockets with the Serverless Framework, even in advance of CloudFormation support! Try it out.
20 Dec 2018
Saying farewell to the year of the global payments network and looking to 2019.
19 Dec 2018
Many businesses choose to automate payment collection through Direct Debit: but what exactly is the benefit?
Are you using Direct Debit as a fast, efficient, low-cost method to collect regular fees, subscriptions or one-off payments from your customers? Or considering adding Direct Debit to your payments mix?
Our first cohort of OpenAI Fellows has concluded, with each Fellow going from a machine learning beginner to core OpenAI contributor in the course of a 6-month apprenticeship.
18 Dec 2018
In a previous post, Docker PHP/PHP-FPM Configuration via Environment Variables, I described how to use environment variables to configure PHP FPM and CLI. With my method you can override one of over 650 PHP INI settings. More INI settings are but a PR away! In a more recent post, PHP Modules Toggled via Environment Variables I extended this concept to…
The new version of the open-source OpenMapTiles project adds support for docks, piers, and multilingual street names.
17 Dec 2018
The past few years have been an amazing time for the deployment of encryption. In ten years, encrypted web connections have gone from a novelty into a requirement for running a modern website. Smartphone manufacturers deployed default storage encryption to billions of phones. End-to-end encrypted messaging and phone calls are now deployed to billions of users. While this … Continue…
Customize your terminal prompt with Bash PS1 variable and RANDOM function to show a random emoji on each command. Learn Bash arrays, escape sequences, and functions. Emojis make your terminal more fun and keep your morale up during debugging.
Caching things can be hard to do and hard to test. In this post I’ll demonstrate a convenient way of doing that using interfaces.
Sqquid uses AWS Lambda and the Serverless Framework for their core product and marketing website. See what it’s like to be a fully serverless startup.
Check out the latest Serverless Framework v1.35 release, featuring Ruby invoke local support, CloudFormation config, and more.
15 Dec 2018
I have developed a bad habit of picking up vanity domain names and not really doing much with them. Last month at AWS Re:Invent I picked up ServerlessSecurity.org and really wanted to do something with it but didn’t feel like maintaining, or paying for, a VPS so after doing some looking around I found that is was possible to point…
I have written some exporters to observe things on GitHub. This is how and why.
14 Dec 2018
We’ve discovered that the gradient noise scale, a simple statistical metric, predicts the parallelizability of neural network training on a wide range of tasks. Since complex tasks tend to have noisier gradients, increasingly large batch sizes are likely to become useful in the future, removing one potential limit to further growth of AI systems. More broadly, these results show that…
In my previous post, Docker PHP/PHP-FPM Configuration via Environment Variables I introduced my new PHP image that uses environment variables to configure its INI settings. The Dockerfile is a beast, to be sure. At over 650 lines it documents my attempt at bringing true flexibility to an immutable PHP image. With it, you can set any number of PHP INI…
3 surprisingly straightforward ways everyone can gain access Direct Debit.
MapTiler Desktop 10 can now render vector data into map tiles.
13 Dec 2018
Being Reviewed Putting your code up for peer review can be a scary proposition. You’ve artfully crafted this code over multiple hours and cups of coffee. Your precious, perfect baby is about to be exposed to the big, dark, scary world and torn to pieces by your coworkers. Okay, maybe I’m overstating things a bit. But code reviews can be…
12 Dec 2018
Deploy a simple Slackbot powered by Functions for basic chatbot message receiving and response.
Still Looking Good While Testing: Automated Testing With a Visual Regression Service Part II
BazaarvoiceIf you’ve followed our blog regularly, you’ve probably read our post on using visual regression testing tools and services to better test your applications’ front end look and feel. If not, take a few minutes to read through our previous post on this topic. Now that you’re up to speed, let’s take what we did […]
GoCardless is now live in Canada, the 30th country in our global network.
10 Dec 2018
Here is a list of my favorite security books from 2018 if you are looking for that last minute gift or have some extra time around the holidays to catch up on some reading. The GCHQ Puzzle Book 2 I just got The GCHQ Puzzle Book 2, and like the original, it has quickly become the book that I always…
7 Dec 2018
Annotation processors can be useful as a hacky workaround to get some language feature into the Java language. jOOQ also has an annotation processor that helps validate SQL syntax for: Plain SQL usage (SQL injection risk) SQL dialect support (prevent using an Oracle only feature on MySQL) You can read about it more in detail … Continue reading How to…
Direct Debit isn't just for regular, fixed-amount payments.
6 Dec 2018
Our newest demo showcases PubNub in its simplest form, blazing-fast pub/sub messaging to any number of connected users.
We’re releasing CoinRun, a training environment which provides a metric for an agent’s ability to transfer its experience to novel situations and has already helped clarify a longstanding puzzle in reinforcement learning. CoinRun strikes a desirable balance in complexity: the environment is simpler than traditional platformer games like Sonic the Hedgehog but still poses a worthy generalization challenge for state…
Ever wanted to validate your Packer image with Goss? Well, you can!
DynamoDB On-Demand allows truly serverless billing for your applications. Learn how to use it here, and when you should or shouldn't go on-demand.
5 Dec 2018
★★★★★ Review of the manga “Opus” by Satoshi Kon. “Opus” is a brilliant postmodernist introspection of the challenges of writing, creativity, and the cliches of pop culture; delivered in a manga format. Author Satoshi Kon worked on this manga between 1995-1996 as it was serialized in “Comic Guy” manga magazine until the magazine closed abruptly in 1996. The final 3…
European Space Agency awarded the MapTiler team for our work on the the seamless satellite map made from the Sentinel-2 satellite imagery.
When the California Camp Fire displaced thousands of people from their homes, I built a simple serverless Twitter bot to help people get placed in temporary housing!
4 Dec 2018
Your at-a-glance view of all the available 2019 Bacs processing dates.
AWS Lambda now supports Ruby! Here's how you can get started and build an API with the Serverless Framework.
I want to brag a little - my npm packages have been downloaded more than 1 million timesStats are coming from npm-stat.com. this year! And I finally got a real domain: https://muffinman.io/ I've been quiet for the last couple of months. Mostly because I was busy with other things, both work and personal. But I do have a few small…
3 Dec 2018
For the system at work, I am on call one week every seven weeks. For most of the past ten years, I have been on organized on call rotations for the systems I have been developing. I think being on … Continue reading →
1 Dec 2018
For the last four years I’ve been working on a book for programmers who want to learn mathematics. It’s finally done, and you can buy it today. The website for the book is pimbook.org, which has purchase links—paperback and ebook—and a preview of the first pages. You can see more snippets later in the book on the Amazon listing’s “Look…
I spent this last week in Las Vegas attending AWS Re:Invent. This event is mind-numbingly massive with classes happening at 4 or 5 hotels all over the strip. I personally spent over an hour every day on their (nice but extremely slow) shuttle buses between the MGM Grand, Aria and the Sands Expo Center. It would be impossible to see…
30 Nov 2018
How integrating GoCardless with your finance software can help your business.
AWS has just announced “Bring Your Own Runtime” to AWS Lambda. We’re launching the Serverless Open Runtime to take it to the next level.
29 Nov 2018
What business advice would these practice owners, advisors and tech specialists give their younger selves?
This is #4 in a very long series of posts on Stack Overflow’s architecture. Stack Overflow: How We Do Deployment - 2016 Edition What is monitoring? As far as I can tell, it means different things to different people. But we more or less agree on the concept. I think. Maybe. Let’s find out! When someone says monitoring, I think…
Learn about AWS's recently introduced Lambda Layers and how to publish and use them with Serverless Framework.
AWS just announced API Gateway WebSockets support, and the serverless community got pretty excited. Here's why.
28 Nov 2018
AWS open-sourced Firecracker, the Lambda and Fargate core. Here’s what it means for the serverless community.
27 Nov 2018
How can Direct Debit impact the numbers you care about most? Find out as we explain the relationship between Direct Debit and three key subscription success metrics.
While the dust is yet to settle, GoCardless is prepared for every outcome.
Not at AWS re:Invent? That's ok; we're compiling all the most important serverless announcements and updates. Updating live all week.
26 Nov 2018
The in-depth guide for optimising your subscription payment page.
Self-Review Code reviews are an integral part of software engineering, and unless you work alone, are likely to be a regular part of your work life in building software products. Code reviews can occasionally be contentious, and about as fun as a root canal, but they don’t have to be! Over the course of this three-part blog series, I will…
We are making some changes to the cPouta flavours offering You won't be able to launch _new_ hpc-gen1.*core, hpc-gen2.2core, hpc-gen2.8core, hpc-gen2.16core flavours. We are adding hpc.4 flavours. We are adding a standard.xxlarge flavour. hpc.4.5core - 5 cores 22GB RAM - replacement for hpc-gen1.1core, hpc-gen1.4core, alternative to hpc-gen2.2core, hpc.4.10core - 10 cores 44GB RAM - replacement for hpc-gen1.8core, alternative to hpc-gen2.8core…
Poor cash flow is responsible for almost half of small business insolvencies in Australia. In this guide, we ask small business leaders to tell us how they took control of cash flow, and what lessons they learned along the way.
We’re closing out #NoServerNovember with a special-edition virtual hackathon for AWS re:Invent. Participate from anywhere, win cool prizes.