I really like Secure by Design. The key idea is that there is a big overlap between secure code and good software design. Code that is strict, clear and focused will be easier to reason about, and will have fewer … Continue reading →
22 Mar 2020
A little introduction to frontend frameworks
20 Mar 2020
Good Friday afternoon all and welcome to this working-from-home-and-obsessively-washing-hands edition of FAIC. I am posting today from my recently-transformed spare room which is now apparently my office. Scott Hanselman started a great twitter thread of techies showing off their home … Continue reading →
Find out how to calculate days payable outstanding, and more.
Want to learn how to take your business global? Here’s how to do it.
GAAP standardizes and regulates accounting across different industries.
IFRS provides an accounting framework for international businesses.
Find out everything you need to know about how to prepare a cash flow statement.
How do I register as self-employed in the UK? Find out with our guide.
This articles describes the difference between how component invocation differs when using curlies {{...}}, angle brackets <...> or an (...) s-expression in Ember templates. Ember has three methods for invoking components and helpers in a template, either of the three can be used to invoke both classic and modern glimmer components. The “classic” syntax in the form that uses curly…
Professionals are spending more hours ‘at work’ than ever before. This could be credited to the evolving nature of business priorities coupled with how connected we are today. Organizations like Thoughtworks are working to both understand how this lifestyle change has impacted employees and therefore provide more support.
19 Mar 2020
It's time businesses adopted the mantra of customer choice to payments too.
“What I cannot create, I do not understand.” — Richard Feynman As I promised you last time, today we’re going to expand on the material covered in the previous article and talk about executing nested procedure calls. Just like last time, we will limit our focus today to procedures that can access their parameters and local variables only. We will…
In the second of our illustrated guides to all things crypto, we look at the hugely influential RSA algorithm and explore some of the mathematical concepts underpinning it.
18 Mar 2020
Our comprehensive guide to using net profit margin formulas.
Explore the importance of depreciation in accounting, right here.
A prepayment is money paid in advance for business costs. Find out more.
What is the VAT rate in the UK? Find out with our simple guide.
Learn all about the ins and outs of cash flow management and forecasting.
The people who'll be by your side as GoCardless reshapes how you take payments.
I know, it's 2020. But I was reading my notes on a plan I had in 2017.
17 Mar 2020
A chat tutorial covering messaging in conversations and setting up the chat UI using React and Redux frameworks.
Part 2 of a chat tutorial covering messaging in conversations and setting up the chat UI using React and Redux frameworks.
A chat tutorial covering messaging in conversations and setting up the chat UI using React and Redux frameworks.
Part 2 of a chat tutorial covering messaging in conversations and setting up the chat UI using React and Redux frameworks.
JavaScript promises have always been a major win for the language — they’ve led to a revolution of asynchronous coding that has vastly improved performance on the web. One shortcoming of native promises is that there’s no true way to cancel a fetch…until now. A new AbortController has been added to the JavaScript specification that will allow developers to use…
It happens less frequently these days but there are times when we need to accommodate for a HTTP request timing out. The service could be down, under heavy traffic, or just poorly coded, or any host of other issues. Whenever I need to simulate a long HTTP request, I use a bit of PHP to make it happen: <?php //…
16 Mar 2020
A word of caution from a former AP Computer Science teacher who, with zero real-world programming experience, quit her dependable teaching gig to become a software engineer: Imposter Syndrome is never late to class. When we grow competent in our craft, yet continue to feel unqualified for our role, that feeling is known as "Imposter […] The post “Do I…
Learn more about how to build a SaaS financial model with our guide.
Our comprehensive overview of SaaS subscription management.
Periskop is an exception monitoring service that we built here at SoundCloud. It was designed with microservice environments in mind, but it…
15 Mar 2020
A central issue of contestation is elasticity versus discipline, elasticity for me and discipline for you, alchemy of banking and money funding for me, austerity and borrowing/payment for you. Like 2009, the (coming/arriving) financial collapse of 2020 will reveal the asymmetry of power between the financial sector and the rest of the economy, and it’ll especially highlight how the financial…
14 Mar 2020
Ever needed a simple leader election mechanism on something that will run on a Kubernetes cluster? There’s an easy way to do that!
13 Mar 2020
Steps we're taking to ensure the safety of staff and continuity of our service.
A quick and simple approach
There's a lot to learn about the new AWS HTTP APIs and the Serverless Framework so let's bring it all together in one place.
Over the years, the world has seen remarkable and rapid advancements in technology which are deeply impacting society. Despite this, we continue to struggle with issues such as poverty, violence, and climate change. At Thoughtworks, we believe that technologists have a unique role to play in how we can positively impact society and push for a more equitable tech future.
12 Mar 2020
Get more information about how to do a cash flow margin calculation.
A guide on how to select an ERP system for your business.
The asset manager aims at helping artists to quickly re-use, share and organize assets and production files.
Our comprehensive guide to cash flow forecasting software for small business.
Sophos’ access points are very sensitive with PoE enabled cable connections. If your access point gets disconnected, disable PoE for the given Ethernet port. As a long time reader of my blog, you might know that I am struggling a lot with curious issues like broken L2TP/IPSec VPN connections. This […] The post Sophos UTM and AP15: fixing “ll_read: dead…
We break down how to calculate the provision for bad and doubtful debts.
Learn how to calculate operating cash flow ratio right here.
Alex Gaynor recently asked this question in an IRC channel I hang out in (a channel which contains several software engineers nearly as obsessed with software testing as I am): uhh, so I’m writing some code to handle an econnreset… how do I test this? This is a good question! Testing ECONNRESET is one of those fiddly problems that exists…
11 Mar 2020
This article is more about understanding the Event Emitters in Angular and Ionic. Data flow is the most important when you build an application to communicate with components. Event Emitters will help you to even bind using @Input @Output decorators. Here is a simple example to display and update the user profile using Angular Event Emitters. For this demo I…
I've been comparing notes with people who run corporate engineering blogs and one thing that I think is curious is that it's pretty common for my personal blog to get more traffic than the entire corp eng blog for a company with a nine to ten figure valuation and it's not uncommon for my blog to get an order of…
10 Mar 2020
Here’s an interesting question I saw on StackOverflow recently; it was interesting because the answer seems obvious at first, but making a small change to the question makes the answer very different. The original question was: suppose we have an … Continue reading →
We moved 26,000 lines of SQL into dbt and shaved 2 hours off our ELT pipeline.
The release of Firefox 74 is focused on security enhancements: Feature Policy, the Cross-Origin-Resource-Policy header, and removal of TLS 1.0/1.1 support. We’ve also got some new CSS text property features, the JS optional chaining operator, and additional 2D canvas text metric features, along with the usual wealth of DevTools enhancements and bug fixes. The post Security means more with Firefox…
Intro On most projects I've ever worked collaboratively on, someone takes the role of the code cleanliness champion. It's usually the team…
A run down of the evening, the winners, and the last 12 months that got us here.
The testing package is one of my favourite packages in the Go standard library, not just because of its low noise approach to unit testing, but, over the lifetime of Go, it has received a steady stream of quality of life improvements driven by real world usage. The most recent example of this is, in […]
Deciding between using an existing service or platform, and building your own
Explore Inverse Document Frequency (IDF), a key concept in search & text mining. Learn how it quantifies term rarity and its connection to probability.
Never attribute to stupidity that which is adequately explained by opportunity cost
Erik BernhardssonHanlon’s razor is a classic aphorism I’m sure you have heard before: Never attribute to malice that which can be adequately explained by stupidity. I’ve found that neither malice nor stupidity is the most common reason when you don’t understand why something is in a certain way. Instead, the root cause is probably just that they didn’t have time yet.…
How we supported journalism serving in the public good with our maps.
The Serverless Framework now supports the recently released Lambda Event Destinations.
Every year, The Shaw Trust produces a list called ‘The Power 100’. It’s a list of the 100 most influential disabled people in the UK. Last year, I read the list with interest and noticed that most of them were entrepreneurs or worked in the public or non-profit sectors. There was hardly anyone from the corporate world. I was disappointed…
9 Mar 2020
With the coronavirus spreading and employers telling employees work from home if possible, there are scores of people getting their first taste of working remotely. Depending on your experience and discipline levels, this could be a welcomed change or a complete culture shock. The amount of freedom your find yourself in can be similar the leaving high school — no…
Over the years, the world has seen remarkable and rapid advancements in technology which are deeply impacting society. Despite this, we continue to struggle with issues such as poverty, violence, and climate change. At Thoughtworks, we believe that technologists have a unique role to play in how we can positively impact society and push for a more equitable tech future.
8 Mar 2020
You have a choice. You can be a specialist, or a generalist. Which route should you choose?
The Laughing Man 笑(わらい) い 男(おとこ) (warai otoko) is a fictional character in the anime series Ghost in the Shell: Stand Alone Complex. This lil’ project is an animated SVG using CSS transforms to rotate the text. The Laughing Man logo is an animated image of a smiling figure wearing a cap, with circling text quoting a line from Salinger’s…
7 Mar 2020
In some tutorials, books, or videos, you might have seen the term magic number. What is that?
6 Mar 2020
Yesterday a bipartisan group of U.S. Senators introduced a new bill called the EARN IT act. On its face, the bill seems like a bit of inside baseball having to do with legal liability for information service providers. In reality, it represents a sophisticated and direct governmental attack on the right of Americans to communicate … Continue reading EARN IT…
Learn more about point-to-point encryption (P2PE) with our simple guide.
When using jOOQ to create dynamic SQL statements (one of jOOQ’s core value propositions), it is often necessary to add query elements conditionally, with a default “No-op” behaviour. For first time users, this default “no-op” behaviour is not always obvious as the jOOQ API is vast, and as with any vast API, there are many … Continue reading Create Empty…
We’ve used hex colors for years but 8-digit hexadecimal is still relatively new. While rgba is simple to understand, 8-digit hex is more difficult, as you need to provide a hex representation of a numeric value. The following is a hexadecimal chart of opacity! Opacity ValueHex Code 100FF 99FC 98FA 97F7 96F5 95F2 94F0 93ED 92EB 91E8 90E6 89E3 88E0…
How do we deploy services all collected under a single monorepo in git?
5 Mar 2020
Most jOOQ users use the jOOQ DSL API, which provides compile time type safety and an easy way to write dynamic SQL. But occasionally, this DSL get in the way, because it might be In such cases, you can still benefit from jOOQ’s many secondary features, including for example its nice integration with the Stream … Continue reading Using Java…
A step-by-step guide to configuring a router to assign a static DHCP IP address in your LAN to the Raspberry Pi
4 Mar 2020
Explore cloud computing: what it is, how it can impact and benefit your company, and how it's transforming the world around us.
Explore cloud computing: what it is, how it can impact and benefit your company, and how it's transforming the world around us.
In the early years of web development, there were three standard fundamentals upon which every website was built: HTML, CSS, and JavaScript. As time passed, web developers became more proficient in their construction of fancy UI/UX widgets for websites. With the need for newer ways of crafting a site coming in conflict with the relatively […] The post Building with…
Optimizing the integration of Firefox Developer Tools with the SpiderMonkey JavaScript engine has resulted in many benefits, including the new asynchronous call stack tracking now available in Firefox Developer Edition. In this post you can learn how that was done, down to detailed changes to memory management. The post Future-proofing Firefox’s JavaScript Debugger Implementation appeared first on Mozilla Hacks -…
jOOQ supports a vast amount of SQL syntax out of the box. As such, most users will not think of resorting to string concatenation like in the old days when writing dynamic SQL with JDBC. But every now and then, a vendor specific feature is not supported by jOOQ (yes, it happens). In that case, … Continue reading Never Concatenate…
Explore the importance of the revenue recognition principle for SaaS businesses.
A step-by-step guide to connect to a Raspberry Pi using Rapbian via VNC
CloudPush technology offers manipulation with files on cloud services that are both fast and extremely easy-to-use.
3 Mar 2020
My current clunky “put all the code in the view” approach to V-Drum Explorer is creaking at the seams. I’m really not a WPF developer, and my understanding of MVVM is more theoretical than practical. I’ve read a reasonable amount, but quite a lot of aspects of V-Drum Explorer don’t really fit with the patterns … Continue reading V-Drum Explorer:…
Our guide to payment gateways vs. payment processors vs. merchant accounts.
It appears that our recent beginner SQL articles explaining SQL syntax were quite popular. These include: A Beginner’s Guide to the True Order of SQL Operations A Probably Incomplete, Comprehensive Guide to the Many Different Ways to JOIN Tables in SQL 10 Easy Steps to a Complete Understanding of SQL How SQL DISTINCT and ORDER … Continue reading 5 Ways…
Developers met at the Blender HQ for a two-day User Interface workshop and planning session.
Our comprehensive guide to calculating customer acquisition cost.
My hobby: opening up McIlroy’s UNIX philosophy on one monitor while reading manpages on the other. The first of McIlroy's dicta is often paraphrased as "do one thing and do it well", which is shortened from "Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new 'features.'" McIlroy's…
The topic of datasets is not new, and they have been successfully used at SoundCloud for analytics purposes for a long time. In this blog…
The dispute about software development methods is over. The agile organization is set to establish itself as the dominant organizational form. Current literature, specifically that relating to agile software development, impressively demonstrates this, both in empirical research and in theory.
2 Mar 2020
A step-by-step tutorial to create your own real-time React Native app with PubNub, the real-time communication platform
A step-by-step tutorial to create your own real-time React Native app with PubNub, the real-time communication platform
Meditation, like the foundations of software, is built on top of a binary state: an inhale and an exhale, a breath in and a breath out, a one and a zero. We often believe that to engage in meditation, we need to place ourselves in a room of absolute silence, to dress in comfortable linens, […] The post Culture at…
Forecasting cash flow can help you make important investment decisions...
Having a default commit message is really useful for a number of reasons: It can formalize your commit messages It serves as a good reminder for the information you should add to your commit message, like issue number If you set it to “Drunk AF, don’t accept this” To set a default commit message on your local machine, start by…
A very common misconception I often encounter with SQL users is the idea that DISTINCT is something like a function, and that it can take parenthesised arguments. Just recently, I’ve seen this Stack Overflow question where the OP was looking for a way to express this in jOOQ: Notice the parentheses around (emp.id), which look … Continue reading SQL DISTINCT…
The question might be ‘who am I?’ How do I prove that I am in fact ....me?