~/devreads

14 Jun 2021

David Walsh 2 min read

Most websites and mobile apps collect all sorts of data to try to gain insights into what users are doing, not doing, and to gain insight into what users may want. Those metrics are useful but there’s a more valuable way to get information: direct feedback from users. Userwell is an awesome service that makes gathering, implementing, and delivering direct…

1 min read

We’re ironically searching for counterexamples to the Riemann Hypothesis. Setting up Pytest Adding a Database Search Strategies Unbounded integers Deploying with Docker Performance Profiling Scaling up Productionizing In the last article we added a menagerie of “production readiness” features like continuous integration tooling (automating test running and static analysis), alerting, and a simple deployment automation. Then I let it loose…

1 min read

Weird flex: been making cheese fondue for lunch because I make the rules here. One of the (many) amazing things about being a Canadian living in California is that this state (unlike, say, no-rules-nevada) doesn’t recognize non-US driving licenses. This means that after almost 20 years of getting my first driver’s license I had to do the whole circus show…

13 Jun 2021

11 Jun 2021

jonskeet 2 min read

I’m delighted to announce that I’ve been hard at work contributing to a new book. The book is called “Software Mistakes and Tradeoffs: How to make good programming decisions” and the principal author is Tomasz Lelek. The book was Tomasz’s idea, and he’s written the vast majority of the material, but I’ve contributed a chapter … Continue reading New book:…

books

10 Jun 2021

David Walsh 1 min read

Writing good code is important — writing code that’s easily human readable is a next level skill. It’s not often that APIs are introduced whose seemingly only useful function is making code more readable, but let me introduce you to JavaScript numeric separators: an API that lets developers use underscores to make numbers more readable! Consider the following number in…

Nathalia Torres 1 min read

Remote work has been an increasingly present companion for all of us in software development. It was in the spotlight especially in 2020, when the pandemic kept us all locked in our homes. In this remote work "Big Bang", we realized that the challenges of teamwork are intensified due to variables that go beyond the project itself. The team is…

Ke Qi 1 min read

The aesthetics of modern Chinese digital products can look very different to primarily English-based apps and websites. If you explore some of China’s most popular websites and apps, such as 163.com (news), Jing Dong (e-commerce), Taobao (e-commerce) and Didi (ride-sharing), you will find that they have high information and feature density and highly saturated colors. Why is this? This article…

9 Jun 2021

Ulzii Otgonbaatar 4 min read

Context At Clever, we rely on nearly two thousand infrastructure secrets like DB access keys, API tokens, and session secret keys to provide our services to students and teachers. Properly securing these secrets so we don’t expose them in our various environments requires thorough engineering efforts. In fact, securing secrets is generally a hard problem […] The post How Clever…

security

1 min read

Online Coding Platforms and Code Evaluators are susceptible to this attack as they accept raw code from the user and execute it. So, if you are building one, do ensure you are protected against it and infinite loops.

Simon Clarke 1 min read

As new core functionality within banking apps shifts to third-party integrations, what does this mean for banking customer loyalty when customers will prefer to engage a bank via an alternative platform that is more in-touch with their day-to-day living?

Simon Clarke 1 min read

In this series (see Part 1 if you missed it) we explore how customers’ use of their banking apps will decrease and their desires to have transactional information injected into richer platforms more integrated into their daily activities. In this second and last part, we explore how the proliferation of aggregated, open banking fuelled experiences will allow customers to open…

Puneetha Pai 1 min read

This is the second part of two part series blog, discussing how you can achieve continuous delivery for machine learning (CD4ML) using Jenkins and DVC pipelines. In part One, we explained what is CD4ML, why you should care, and how Jenkins pipelines can be used to implement it

8 Jun 2021

Matthew Gaudet 11 min read

When implementing a language feature for JavaScript, an implementer must make decisions about how the language in the specification maps to the implementation. Private fields is an example of where the specification language and implementation reality diverge, at least in SpiderMonkey– the JavaScript engine which powers Firefox. To understand more, I’ll explain what private fields are, a couple of models…

featured articlefirefoxjavascriptprivate fieldsspidermonkey

Rachel Ackerly 1 min read

Roaming users, remote offices with direct internet access, cloud and SaaS applications — today’s workplace needs have evolved beyond the capabilities of traditional perimeter-based security. As the digital perimeter expands outwards it’s important to understand the potential impact this can have on your cyber security and some of the benefits of moving to a cloud […] The post Cloud security…

securitycloud security benefits

Cam Jackson 1 min read

I recently finished up at a client after spending a little over two years there, working as a lead developer building mortgage application tools for bankers. In general terms, that's not that long to stay at one workplace, but as consultants, we tend to move around a lot, so it's kind of a long time! It's twice as long as…

Puneetha Pai 1 min read

This is the first part of two-part series blog, discussing how you can achieve continuous delivery in machine learning (CD4ML) using Jenkins and DVC pipelines.In this blog we will discuss how to setup this automation process for your project and few use-cases which are achieved as a byproduct of this automation.

AJ Iniguez, Aditya Batavia 1 min read

In the wake of more mobilized social movements around the world, ‘allyship’ is a term that gets tossed around a lot. While anyone can claim to be an ally, to truly stand in solidarity with the LGBTQIA+ community requires going beyond hashtags, Pride flag-inspired photo frames on social media and marching in Pride parades. So how can you go from…

5 Jun 2021

kevin 2 min read

We live on a street that's about 29 feet wide. There are parked cars on either side that take up about 7 feet each, which leaves 15 feet in the middle of the street for through traffic. There are hundreds or thousands of streets like this in San Francisco; here's a screenshot of one at […]

opinionpedestrian safety

4 Jun 2021

lukaseder 1 min read

One of the biggest advantages of using jOOQ is that you can change all of your complex application’s generated SQL with just a few lines of code. In this article, we’ll look into how to solve some common bind peeking issues just like that, without touching your application code, without the need to explain this … Continue reading How to…

jooq-in-usebind parametersbind peekingbind variablesbinding

Srinivas Murty, Sudarshan Gorur 1 min read

Every organisation that builds a product, has its own view of quality and what it means for the product they are building. To identify what quality means for an organisation it is useful to have a manifesto. While Quality Strategy encomapsses quality aspects in software development, Quality Manifesto helps an organisation define what quality means for them strategically. Based on…

Shraddha Surana 1 min read

There are about 51 galaxies in the Milky Way’s Local Group, about 100,000 in our Local Supercluster, and 100 billion in all of the observable universe. Many of what we see as tiny specs are, in fact, galaxies, containing stars, which, in turn, may have their own solar systems, planets and satellites. While these galaxies may seem inactive in our…

Harshal Hayatnagarkar 1 min read

In the 17th century, Sir Isaac Newton formulated the three-body problem – How do three objects orbit one another under their gravity? For centuries, this problem has remained unsolved until a couple of years ago, when AI solved it. “So, who solved the problem? Did the algorithm solve the problem? Or did the people who wrote the program solve it?,”…

3 Jun 2021

David Walsh 1 min read

I recently wrote a .bat script on Windows to mine Ethereum when I’m not using my gaming PC to frag noobs. I have a friend who also tries to mine cryptocurrencies but their machines have AMD processors; every once in a while, the processor and the mining executable start fighting and all mining comes to a halt. Having the mining…

Maria Sabastian 6 min read

Artwork courtesy of the Jenkins project. At Slack we manage a sophisticated Jenkins infrastructure to continuously build and test our mobile apps before release. We have hundreds of jobs running in a variety of different environments. One day something very odd happened — our Jenkins UI stopped working although the jobs continued to run. This…

uncategorized

Harshal Shah 1 min read

In part 1 we saw a framework to address our anxiety and fear associated with changes by categorising them and seeing them for what they actually mean. In this part let’s get into the crux of implementing those changes. Implementing the change Almost all organisational changes require individuals to adapt in some capacity. To make change successful and sustainable over…

2 Jun 2021

AJ Iniguez 1 min read

Finding the right candidate—and for the jobseeker, finding the right role and company—can sometimes feel like a long and winding road. However, there are certain things candidates do that our Thoughtworks recruiters would love to see candidates do more of (yes, thank-you notes are still a thing!) Naturally, there are also some things that they wish all candidates would simply…

1 Jun 2021

Chris Mills 3 min read

Firefox 89 has smartened up and brings with it a slimmed-down, slightly more minimalist interface. Along with this new look, we get some great styling features including a force-colours feature for media queries and better control over how fonts are displayed. The long-awaited top-level await keyword for JavaScript modules is now enabled, as well as the PerformanceEventTiming interface, which is…

featured articlefirefoxfirefox releasesmdncss

Josh Pyorre 1 min read

In this second edition of the Cybersecurity Threat Spotlight, we’re examining the most important current threats including a backdoor threat, a remote access trojan (RAT), and a loader. Obfuscation, encryption, weaponization of normally benign files, and remote (frequently C2) execution continue to be primary techniques in ongoing use. Threat Name: GoldMax Threat Type: BackdoorActor: NOBELIUMhttps://attack.mitre.org/groups/G0118/Delivery […] The post Backdoors, RATs,…

cybersecurity threat spotlight

31 May 2021

1 min read

CPU cycles are cheaper than they have ever been, and cloud computing has never been more ubiquitous. All the major cloud providers offer generous free tiers, and services like GitHub Actions offer free compute resources to open-source repositories. So why do so many developers still build software on their laptops? Despite the embarrassment of riches of cheap or even free…

David Walsh 1 min read

There are scores of developers who hate CSS; don’t get it, don’t want to get it, etc. Most of that is either down to inefficiencies within the language or misunderstanding of how to properly construct a website structure. I mostly love CSS but there are some parts of the language that I always hated, like having to repeat very similar…

2 min read

Trying out titles because I have enough weeks that even I can’t tell them apart and I lived through them. Sports!!! We went to the Nations League ⚽️ semis and finals in Denver. If you don’t know this about me, I am a bit of a football (soccer) hooligan. Zach and I go to games, we sit in suporter sections,…

30 May 2021

bohops 5 min read

Background As discussed in this previous post, Microsoft has provided valuable (explicit and implicit) insight into the inner workings of the functional components of the .NET ecosystem through online documentation and by open-sourcing .NET Core. .NET, in general, is a very powerful and capable development platform and runtime framework for building and running .NET managed […]

uncategorized

28 May 2021

27 May 2021

26 May 2021

Wolfgang Hennerbichler 4 min read

Over the years, GitHub engineers have developed many ways to observe how our systems behave. We mostly make use of statsd for metrics, the syslog format for plain text logs and OpenTracing for request traces. While we have somewhat standardized what we emit, we tend to solve the same problems over and over in each new system we develop. And,…

Luciano Mammino 12 min read

This article explores how to convert values to strings in Rust using traits like Debug, Display and ToString. It explains the difference between user-facing and debug representations.

rust