How many times have you been working on an application, and in the middle of writing some logic, asked yourself: "Is this the right place to…
16 Sept 2019
I get a lot of emails about which DI container to use. InversifyJS? Awilix? "Angular and NestJS use their own inversion of control…
I love bookmarklets, those small and elegant lines of javascript that you can bookmark and which do random functions in the browser when clicked. uri-editor.js is 1-line of HTML that’ll run a text editor in your browser. Drag the link into your bookmarks to save it as a quick browser-based editor tool for those moments you need a quick editor…
Using Lambda@Edge is a great way to speed up your application. And the Serverless Framework now has support for it.
Action beyond targets As millions of people around the world take action in the Global Climate Strike, Thoughtworks is formalizing our climate strategy, starting with a commitment to the Science Based Targets initiative. This is the next step of our journey, and we also commit to sharing this journey openly here in the hope that the lessons we learn can…
15 Sept 2019
I often get contacted by recruiters asking if I am interested in changing company. Even if I am happy where I am, I briefly check out companies I have not heard of before. One reason is that you never know, … Continue reading →
If a component is really stable, it's likely it's going to be serving more purposes for more groups of people, and for different problems…
Every system has stable components and volatile components. Stable components are components that aren't expected to change that often…
In the header image, component A relies on component B which relies on component C. The problem is that component C also relies on A. That…
13 Sept 2019
Two days at PDX DevOpsDays, a gathering of system administrators who use version control, and write a lot of YAML.
12 Sept 2019
Today we are thrilled to announce the general availability (GA) release of Heroku Enterprise Accounts. All Enterprise Teams associated with a company are nested under an Enterprise Account which delivers a higher level of visibility and accountability. With an Enterprise Account, executives and admins can ensure trust and improved agility with simple fast management of […] The post Announcing General…
Five women on Clever’s engineering team discuss what inclusivity looks like at Clever, how to grow and maintain female leadership at a tech company, and the challenges they are excited to tackle within their roles. The engineering team is passionate about improving education and solving hard problems. One problem the Clever team is constantly solving […] The post How Clever…
In an electric car, the (enormous) battery is a major part of the price. If electric car prices are decreasing, battery costs must be decreasing, because it’s not like the cost of fabricating rubber, aluminum, glass, and steel into car shapes can decline that much,
Use captureError to monitor and debug caught errors in your Serverless Framework services even when they are caught by your code.
Please note that I'm not using Jekyll anymore, so this post might be outdated. I'm using Staticman as a comment system on this blog. Unfortunately public instance can't handle all of the requests coming in. That resulted in some readers being unable to post a comment. That is why I decided to run my own instance on Heroku. It was…
My name is Geison Goes. I'm 35 years old, a tetraplegic and a Senior Consultant at Thoughtworks. I currently work as a technical leader on a team that helps deliver one of the largest video and OTT content delivery platforms in Brazil.Having worked as a Software Engineer for 10 years, the experience of translating technical expertise as a consultant has…
11 Sept 2019
One of the first things we learn in programming is to decompose large problems into smaller parts. That divide-and-conquer approach can help…
Using the right data type for some calculation sounds like some obvious advice. There are many blogs about using temporal data types for temporal data, instead of strings. An obvious reason is data integrity and correctness. We don’t gain much in storing dates as 2019-09-10 in one record, and as Nov 10, 2019 in the … Continue reading Oracle’s BINARY_DOUBLE…
Ionic 5 and Angular 8: Restful API User Authentication Login and Signup using Guard and Resolver
Srinivas TamadaThis is a continuation of my previous article creating an Ionic Angular project with welcome and tabs home page. Today’s post explains how to implement login authentication system for your Ionic Angular application with guards and resolvers. It will show you how to log in with a user and store the user data and protect the routes, so it deals…
New Geocoding API service is available for free: use place name search, reverse geocoding, proximity search, and other functionality.
We’re happy to announce that you can now deploy Twilio Functions using the Serverless Framework. Here's how!
Why should you care about problem-solving? Problem solving is one of the most important skills in life and work. At an early age, we learn to deal with simple problems, big and small. From our first wobbly steps, where we solve the problem of balancing on two ridiculously small feet at the end of our limbs, to figuring out the…
10 Sept 2019
img.plot { max-height: 400px !important; } My job nowadays involves a lot of music and JavaScript. You know what musicians really care about? Paychecks (support your local musicians, go to concerts, don’t steal music from indie musicians). But also: keeping time. Keeping time in JavaScript is kind of a joke, not just because time is a social construct (this is…
9 Sept 2019
Online Direct Debit resources for accountants
A guide to major local payment methods in Europe.
A detailed guide to Direct Debit in Australia.
A user guide for Direct Debit in New Zealand.
A comprehensive guide to Direct Debit in Denmark.
How to collect Direct Debit payments in Sweden.
Insight and advice to help you master cash flow.
A guide for anyone who wants to learn more about Direct Debit.
Everything you wanted to know about Direct Debit.
A complete guide to invoicing and invoices.
A guide to invoicing for Australian businesses, including how it works and best practices
Online payments for businesses: a complete guide.
The complete guide to Direct Debit in Canada.
Find out how to create an effective RFP.
Our guide to collecting payments by SEPA
Everything businesses need to know about SCA.
How to take ACH payments from customers in the US.
Today we’re announcing the integration of MDN’s compat data into the caniuse website. Together, we’re bringing even more web compatibility information into the hands of web developers. The post Caniuse and MDN compatibility data collaboration appeared first on Mozilla Hacks - the Web developer blog.
A nice little gem in PostgreSQL’s SQL syntax is the DISTINCT ON clause, which is as powerful as it is esoteric. In a previous post, we’ve blogged about some caveats to think of when DISTINCT and ORDER BY are used together. The bigger picture can be seen in our article about the logical order of … Continue reading Using DISTINCT…
Conferences are fun - they are a melting pot of inspiration, ideas and innovation. They help you and your company grow, by hearing first hand the stories and journeys of your peers. I love both attending and presenting at conferences - but as a mother of three, with the littlest still very much dependant on me, conferences can pose challenges…
8 Sept 2019
Learn how to configure NPM packages to publish only the files needed by users, avoiding bloating node_modules folders.
7 Sept 2019
25 actionable tips to write code as unmaintainable as possible
6 Sept 2019
Find out more about the expansion of our partnership with Zuora.
MapTiler team was presenting at FOSS4G 2019 open-source conference with two talks.
Through my journey working as a Software Developer, I have encountered numerous individuals who are considering a career change into the tech industry. In the early stages of deciding if a career change was the right move for me, as everyone does, I looked for inspiration on the internet. This was mostly to learn from others’ experience, and to give…
5 Sept 2019
Writing a Go/C polyglot Someone on a Slack I’m on recently raised the question of how you might write a source file that’s both valid C and Go, commenting that it wasn’t immediately obvious if this was even possible. I got nerdsniped, and succeeded in producing one, which you can find here. I’ve been asked how I found that construction,…
Firefox Debugger has evolved into a fast and reliable tool chain over the past several months and it’s now supporting many cool features. Though it's primarily used to debug JavaScript, did you know that you can also use Firefox to debug your TypeScript applications? Jan 'Honza' Odvarko walks through some real world examples. The post Debugging TypeScript in Firefox DevTools…
This is a post about performance. Most of the time when worrying about the performance of a piece of code the overwhelming advice should be (with apologies to Brendan Gregg) don’t worry about it, yet. However there is one area where I counsel developers to think about the performance implications of a design, and that […]
Quantified comparison predicates One of SQL’s weirdes features are quantified comparison predicates. I’ve hardly ever seen these in the wild: The above example is equivalent to using the much more readable IN predicate: This equivalence is defined in the SQL standard. There are more esoteric cases that could be solved using such quantified comparison predicates … Continue reading Quantified LIKE…
4 Sept 2019
WebAssembly has begun to establish itself outside of the browser via dedicated runtimes like Mozilla’s Wasmtime and Fastly’s Lucet. While the promise of a new, universal format for programs is appealing, it also comes with new challenges. At Mozilla, we’ve been prototyping ways to enable source-level debugging of .wasm files using existing tools, like GDB and LLDB. The post Debugging…
I regularly get asked the question: “What’s so special about Internet of Things (IoT) data?”
3 Sept 2019
For our latest excellent adventure, we’ve gone and cooked up a new Firefox release. Version 69 features a number of great new additions including JavaScript public instance fields, the Resize Observer and Microtask APIs, CSS logical overflow properties (e.g. overflow-block) and @supports for selectors. The post Firefox 69 — a tale of Resize Observer, microtasks, CSS, and DevTools appeared first…
2 Sept 2019
Business Disability Forum is a not-for-profit membership organisation that makes it easier and more rewarding to do business with and employ disabled people. By providing pragmatic support, sharing expertise, giving advice, providing training and facilitating networking opportunities, they help organisations to be disability smart.
30 Aug 2019
Find out about our work with Xero in New Zealand.
Modern web applications load and execute a lot more JavaScript code than they did just a few years ago. While JIT (just-in-time) compilers have been very successful in making JavaScript performant, we needed a better solution. We’ve added a new, generated JavaScript bytecode interpreter to the JavaScript engine in Firefox 70. Instead of writing a new interpreter from scratch, we…
Here's how to get your tenants to pay rent on time
Jane Street’s intern program yet again is coming to an end, which is a nice opportunity to look back over the summer and see what they’ve accomplished.
Until recently, one of the top technical risks facing SoundCloud’s Android team was increasing build times. Our engineering leadership was well aware of the problem, and it was highlighted in our company’s quarterly goals and objectives as modularization. Faster build times means more productive developers. More productive developers are happier and can iterate on products more quickly. Modularization is key…
In part one of this two-part series, I look at the importance of professionalism, feedback, and collaboration in technical teams. In part two, I'm expanding on these thoughts by looking at ways to reduce the effort for others in this context. Try to reduce efforts for others instead
29 Aug 2019
I recently discovered a programming term, Heisenbug. No, I'm not talking about about a certain chemistry teacher turned criminal drug-lord…
We talk about a lot of advanced Node.js and TypeScript concepts on this blog, particularly Domain-Driven Design and large-scale enterprise…
jOOQ 3.12 has been released with a new procedural language API, new data types, MemSQL support, formal Java 11+ support, a much better parser, and reactive stream API support In this release, we’ve focused on a lot of minor infrastructure tasks, greatly improving the overall quality of jOOQ. We’ve reworked some of our automated integration … Continue reading jOOQ 3.12…
28 Aug 2019
As outlined in a previous blog post, Heroku Data services undergo routine maintenances for security and patching. In this post, we describe the process used to minimize downtime for Heroku Postgres and Heroku Redis premium ‘High Availability’ plans and how we optimized the process to perform up to 75% faster. Data Services Architecture High availability […] The post Up to…
“You may have to fight a battle more than once to win it.” — Margaret Thatcher In 1968 during the Mexico City Summer Olympics, a marathon runner named John Stephen Akhwari found himself thousands miles away from his home country of Tanzania, in East Africa. While running the marathon at the high altitude of Mexico City he got hit by…
We surveyed 4000 consumers, this is what they said.
I recently worked on a project with VAKT, a start-up that is backed by an energy and finance consortium, to build a commodities post-trading management platform built on the blockchain platform Quorum.
27 Aug 2019
Before you undertake any business with a customer, whether they’re new or existing, you should clearly establish the terms and conditions of sale (T&Cs). They act as the agreed rules for everyone involved, to guide everyone to a mutually satisfying result.
As I promised to continue the Angular/Ionic project series, as a developer perspective mock server is the most important to progress the development. We should not depend on the production or development API for front-end development. This post is about creating a simple Node Express server with mock JSON object files. You can import the project to any of the…
Learn how to setup monitoring for your existing existing Serverless projects in 2 minutes.
26 Aug 2019
In this two-part series, I look at the importance of feedback and professionalism as the basis for effective teamwork using practical technology examples and how to reduce the effort for others in this context. It's easy to have conflicting opinions when you look at the same thing from different perspectives. You see this in almost every project.
24 Aug 2019
Shortly after I had started the work on nerdhood.de I built a deployment pipeline. The bash-based build script for my Laravel application was easy but triggering the deployment itself turned out to be more difficult than expected. In the end I built something with two AWS Lambda function, SNS, an […] The post Deploying with SSH using GitHub Actions appeared…
23 Aug 2019
How we built our onboarding programme and the results in employee engagement.
How to build a real-time chat app that turns chat messages into natural speech with Amazon Polly and PubNub.
How to build a real-time chat app that turns chat messages into natural speech with Amazon Polly and PubNub.
22 Aug 2019
Chat in real time with the other pirate ducks on rafts distributed around the world.
Chat in real time with the other pirate ducks on rafts distributed around the world.
We’ve developed a method to assess whether a neural network classifier can reliably defend against adversarial attacks not seen during training. Our method yields a new metric, UAR (Unforeseen Attack Robustness), which evaluates the robustness of a single model against an unanticipated attack, and highlights the need to measure performance across a more diverse range of unforeseen attacks.
21 Aug 2019
This is the second post in a two-part series about accessibility. The first post shares why designing for accessibility is important to us and why we encourage you to incorporate it into your software design process. Heroku’s first accessibility initiative was to reach Level AA for luminance contrast ratio as defined by the internationally recognized […] The post Designing for…
People are excited about running WebAssembly outside the browser. People are also excited about running WebAssembly from languages like Python, Ruby, and Rust. Lin Clark's Code Cartoons are back, illustrating an in-depth look at WebAssembly Interface Types, and the proposed spec to make it possible for WASM to interoperate with All The Things! The post WebAssembly Interface Types: Interoperate with…
Microsoft called TypeScript JavaScript that scales... what's so unscalable about JavaScript? With respect to software development, there are…
In a lot of ways, I owe my professional career to music. If it wasn’t for music, I wouldn’t have learned about samplers, sequencers, MIDI and the crazy world of synthesizers. Those machines led me to computers and computer music which led me to both sound engineering and reverse engineering (RE). RE led me to a social community of hackers…
For a customer of us we had to set up two webserver environment on physical servers. We picked up both server systems (having a Super Micro X10DRI-LN4+ and a PNY Quadro P1000 installed in addition to other components) and booted up the system. During the IPMI initalization phase, the whole […] The post Super Micro X10 hangs with “PEI –…
How to easily deploy a serverless content delivery network (CDN) using Serverless Components.
Is people-wrangling part of your daily duties? Do you spend your life herding people down the path you need them to take? If your answer is yes, then chances are you’re either involved in project management or you are a parent.
20 Aug 2019
I’ve never thought of myself as a “car person.” The last new car I bought (and in fact, now that I think about it, the first new car I ever bought) was the quirky 1998 Ford Contour SVT. Since then, we bought a
Go allows authors to write functions in assembly if required. This is called a stub or forward declaration. package asm // Add returns the sum of a and b. func Add(a int64, b int64) int64 Here we’re declaring Add, a function which takes two int64‘s and returns their sum.Add is a normal Go function declaration, […]
Helping your business to go further
Chatbots are scaling customer service teams across the web. But how are they being built? And how close are they coming to actual human interaction?
Chatbots are scaling customer service teams across the web. But how are they being built? And how close are they coming to actual human interaction?
We’re releasing the 774 million parameter GPT-2 language model after the release of our small 124M model in February, staged release of our medium 355M model in May, and subsequent research with partners and the AI community into the model’s potential for misuse and societal benefit. We’re also releasing an open-source legal agreement to make it easier for organizations to…
Learn how to get instant visibility into your AWS Lambda functions with zero instrumentation using Serverless Framework.
We’ve seen profound advances in technology, especially with the development of artificial intelligence and deep learning which are increasingly for voice assistants. This, in turn, promises to bring about huge changes in consumer behavior — what’s being called “voice commerce”. This is a new channel, governed by a new set of rules. Here, communication is key. These shopping assistants use…
19 Aug 2019
[*] Introduction .NET Core is an open-source, cross-platform framework for building and running applications. The framework was introduced in 2014 as the (eventual) successor to the ever-popular .NET Framework. .NET Core runs on Windows, *Nix, and MacOS operating systems. The .NET Core management tool, DotNet (dotnet.exe), potentially offers an untapped attack surface on Windows when […]
The UK is getting an 18-month phased implementation of SCA
I received lots of tutorial requests from my readers in that most of them asked me, how to use Ionic 5 to create a welcome page with login and signup pages. Ionic updated there code base with latest Angular 8 features. Now we can implement the routes and guards pretty easy way. Ionic is recommending to use Capacitor to generate…
Back when the Raspberry Pi was first released in 2012 Michael Bacarella wrote a blog post on using OCaml and Async on this little device. Since then installing OCaml via opam has become a pretty smooth experience and everything works out of the box when using Raspbian – the default Raspberry Pi distribution.