~/devreads

5 Aug 2020

ericlippert 5 min read

Holy goodness, we are on part 30; I never expected this to go for so long and we have not even gotten to Gosper’s algorithm yet! We will finish up Hensel’s QuickLife algorithm soon I hope. Code for this episode … Continue reading →

conwayslife

lukaseder 1 min read

There are a few ways to compare two similar tables in SQL. Assuming PostgreSQL syntax, we might have this schema: It is now possible to use UNION and EXCEPT as suggested by Chris Saxon: In PostgreSQL, we can write: Notice how TABLE x is just standard SQL, and PostgreSQL, syntax sugar for SELECT * FROM … Continue reading Use NATURAL…

sqlexceptfull joinfull outer joinnatural full join

Dilraj Aujla, Greg Davis 1 min read

We know that, in energy, the winds of change are approaching gale force. The Covid-19 crisis has only amplified and accelerated matters. Yet, the entrenched nature of existing systems and players raise impediments - both cultural and systemic - that have held change back. So, how to get ahead of the disruption wave? Where to even start, when the future’s…

4 Aug 2020

Ayman Nadeem 8 min read

The Semantic Code team shipped a massive improvement to the language support system that powers code navigation. Code navigation features only scratch the surface of possibilities that start to open up when we combine Semantic‘s program analysis potential with GitHub’s scale. GitHub is home to over 50 million developers worldwide. Our team’s mission is to analyze code on our platform…

Mike Conca 5 min read

Browsers are changing the default value of the SameSite attribute for cookies from None to Lax. This will greatly improve security for users. However, some web sites may depend (even unknowingly) on the old default, potentially resulting in site breakage. At Mozilla, we are slowly introducing this change. And we urge web developers to test their sites with the new…

featured articlefirefoxsecuritycookiesnetwork

Greg Davis 1 min read

Our previous blog looked at 7 D's inexorably driving change in the energy sector. None are dramatically new or surprising. Yet, change has felt frustratingly slow in coming; as if (the Japanese might say) current market participants have ‘heavy bottoms’. This blog looks at some of the main drag factors.

3 Aug 2020

Julián Duque 4 min read

There are always challenges when it comes to debugging applications. Node.js’ asynchronous workflows add an extra layer of complexity to this arduous process. Although there have been some updates made to the V8 engine in order to easily access asynchronous stack traces, most of the time, we just get errors on the main thread of […] The post Let’s Debug…

engineeringdeveloper toolsjavascriptnode.jsproduct features

1 min read

Last time I used Windows on my main development machine was sometime in the early 2000s. Over the years, I had several side Windows machines (usually because I needed Visual Studio) but I was never really serious about using a PC as my main dev machine. Things have changed a lot in almost 20 years, and especially recently. Apple is…

ericlippert 10 min read

We’ve built the foundation of the QuickLife algorithm; now let’s make it go fast. This is going to be a longer episode than usual because we have a large volume of code to get through to perform a relatively straightforward … Continue reading →

conwayslife

David Walsh 1 min read

The Promise object has many useful functions like all, resolve, reject, and race — stuff we use all the time. One function that many don’t know about is Promise.allSettled, a function that fires when all promises in an array are settled, regardless of whether any of the promises are resolved or rejected. Promise.all is great but then isn’t called if…

Greg Davis 1 min read

The first words you see when you land on Thoughtworks.com are 'prepare for the unpredictable'. We help companies embrace the new norm of uncertainty and change. The energy sector sits on the cusp of a Business Model Innovation, only magnified by the Covid-19 crisis. Industry players need to get ahead of the wave, or be swamped by it.

2 Aug 2020

Stanko 1 min read

You can play with algorithm here and download images. It took me ages to find appropriate pens to plot this one. Also check the blog post about how it is made. On the images below you can see two different drawings. Created: August 2020 Size: 42x30cm Paper: Fabriano Black Black 300gsm Pens: Sakura Gelly Rolls

1 Aug 2020

1 min read

Thanks to the complete GitHub Actions for MSYS2, it is easier than ever to construct a continuous integration setup for building with compilers and toolchains which can run on MSYS2.

31 Jul 2020

Jeni Ogilvy 1 min read

Due to the ongoing challenges of COVID-19, we decided to run the 7th edition of XConf, our yearly technology conference, in a virtual format. XConf Online covered a wide range of topics including: mutation testing, docker container security, data science, unit testing COBOL and much more. Here are a few key highlights from the day. You can write unit tests…

30 Jul 2020

ericlippert 5 min read

We now have enough gear to make a naïve “proto-QuickLife” implementation as a test to see (1) does it work at all? and (2) what is the performance compared to our other implementations at various levels of sophistication? Code for … Continue reading →

conwayslife

29 Jul 2020

28 Jul 2020

Florian Scholz 7 min read

Firefox 79 offers a new Promise method, more secure target=_blank links, logical assignment operators, tooling improvements for better JavaScript debugging, and many other updates of interest to web developers. In addition, shared memory is back at last, with a safer implementation. The post Firefox 79: The safe return of shared memory, new tooling, and platform updates appeared first on Mozilla…

developer toolsfeatured articlefirefoxfirefox releasesjavascript

Ella Smith 1 min read

It’s pretty much instilled into us since the day we arrive at university that the end goal is to get a fulfilling job in an industry you love. Within my first few days of my degree, career fairs and internships were ingrained into our brains. I remember thinking...this three years is going to end. I’m going to have to get…

27 Jul 2020

1 min read

Understanding the Nacha operating rules is important for managing ACH payments.

ericlippert 6 min read

We’re continuing with our deep dive into Alan Hensel’s QuickLife algorithm, rewritten in C# with an emphasis on clarity. When last we left off we had the following established: A Quad2 is an immutable wrapper around a ushort A Quad3 … Continue reading →

conwayslife

26 Jul 2020

1 min read

In my book, A Programmer’s Introduction to Mathematics, I describe the Taylor Series as a “hammer for every nail.” I learned about another nail in the design of modern smartphone accelerometers from “Eight Amazing Engineering Stories” by Hammack, Ryan, and Ziech, which I’ll share here. These accelerometers are designed using a system involving three plates, which correspond to two capacitors.…

24 Jul 2020

David Walsh 7 min read

A portfolio site is one of the best marketing and sales tools you as a web developer have in your arsenal. And if it’s set up right, it’ll save you a bunch of time having to: Chase down new clients, Spend time convincing them to work with you, Answer questions about your experience as a coder and what you can…

1 min read

We’re busy preparing for our software engineering fall hiring season. Over the years we’ve done our best to make our interview process more transparent to candidates. While many candidates show up knowing something about what our interviews look like, much of the information floating around on the internet is outdated or wrong. These past few months have also changed a…

23 Jul 2020

Jeffrey Mew 2 min read

We are pleased to announce the release of our new experimental extension, Gather! Gather is a notebook cleaning tool that analyzes and determines the necessary code dependencies within a notebook and performs code cleanup, automating this difficult and time-consuming task. The post Gather: A New Way To Clean Notebooks appeared first on Microsoft for Python Developers Blog.

pythonvisual studio code

ericlippert 6 min read

Last time on FAIC we saw how we could start with nine 2-quads — a 12×12 grid of cells — and with only a handful of ands, ors and table lookups we could get an 8×8 grid of cells of … Continue reading →

conwayslife

Henrik Warne 5 min read

To check if a program is doing what it should, you can inspect the output from a given input. But as the system grows, you also need logging to help you understand what is happening. Good log messages are crucial … Continue reading →

debuggingprogramminglogging

Chris Mills 12 min read

MDN Web Docs turns 15 years old! This celebratory article highlights fifteen big wins of the last five years. With initiatives like the browser compatibility data project, learning areas and new pathways for beginning devs, interactive examples, as well as the Product Advisory Board, the Web DNA Report, and the MDN Swag Store, the MDN community has been busy sharing…

featured articlemdncommunitycontenthackonmdn

Ellen König 1 min read

Data is the fuel for intelligent decision making for both humans and machines. Just like high quality fuel ensures that jet engines run efficiently and reliably in the long run, high quality data fuels effective and reliable decision making.

Margaret Plumley 1 min read

The world has changed dramatically in just a few months, going from crowded bars and tourist spots to an almost world-wide lockdown. While we are still learning about the virus which caused this pandemic, we can clearly see the major impact it has had on our daily lives and the economy. In the fitness world, gyms are closed and people…

22 Jul 2020

Joe Kutner 5 min read

YAML files dominate configuration in the cloud-native ecosystem. They’re used by Kubernetes, Helm, Tekton, and many other projects to define custom configurations and workflows. But YAML has its oddities, which is why the Cloud Native Buildpacks project chose TOML as its primary configuration format. What is TOML? TOML stands for Tom’s Obvious, Minimal Language. It’s […] The post Ground Control…

engineeringbuildpacksdeveloper tools

lukaseder 1 min read

I just fixed a bug. The fix required me to initialise an Object[] array with the init values for each type, instead of just null, i.e. false for boolean, 0 for int, 0.0 for double, etc. So, instead of just doing: I needed: For the subjective 8E17th time, I wrote a loop. A loop that … Continue reading Could we…

javaaplarrayloopset

Sally Vedros 6 min read

In today’s global economy, English proficiency unlocks opportunity. People all over the world are motivated to improve their English skills in order to make a better life for themselves and their families. Cambly is a language education platform that helps millions of learners advance their careers by connecting them with English-speaking tutors from a similar […] The post How a…

lifeapp architecturecustomersdeveloper toolseducation

Garima Singh 1 min read

In our new series ‘Career Pathways’, we’ll share inspiring, real-life stories from our Thoughtworkers based in Australia on how they began their careers in technology, their learnings, and how their journey at Thoughtworks has continued to enable their career as technologists.Name: Garima Singh

María Caparrós 1 min read

While Thoughtworks hires technologists all around the world, our recruiters encounter similar questions from candidates regardless of their location. We asked recruiters from multiple countries for the most frequently-asked questions they get from candidates. Here are the top 7 FAQs.1. What are the main technologies that Thoughtworks works with?

Arne Lapõnin, María Peláez 1 min read

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.

21 Jul 2020

Anne van Kesteren 5 min read

At Mozilla, we want the web to be capable of running high-performance applications so that users and content authors can choose the safety, agency, and openness of the web platform. Shared-memory multi-threading is an essential low-level building block for high-performance applications. However, keeping users safe is paramount, which is why shared memory and high-resolution timers were effectively disabled at the…

domfeatured articlefirefoxjavascriptperformance

20 Jul 2020

David Walsh 1 min read

One of my favorite and most essential Function method is bind, a function we added to MooTools when it wasn’t featured in the JavaScript language itself. We often think of using bind to simply bind a method’s call to its host object, but did you know you can also bind arguments with the host object? You’ve probably done something like…

ericlippert 7 min read

Let’s crisp up the problem from last episode. The problem for today’s episode is to write a method that takes these nine 2-quads: Computes these sixteen 1-quads: And returns these four 2-quads: Those four 2-quads form a 3-quad; I haven’t … Continue reading →

conwayslife

Schakko 3 min read

rsync access can be restricted with a custom wrapper script or an official script named “rrsync”. Access to your remote filesystem should always be restricted so you won’t leak any information in case of a security breach. I’ve used GitHub Actions a lot in the last few months. For web […] The post Restrict SSH to rsync for deploying files…

ci cd

Stanko 1 min read

Generative process allows me to work with huge number of elements and tiny details. These details are sometimes impossible to plot, as they would just get lost in the process. That's why I love large format prints - they allow tiny details to be seen and shine through. Created: July 2020 Size: 60x84cm (can't remember for the small one 🙈)…

Anthony O'Connell, Duncan Stephens, Jonathan Pangrazio 1 min read

Everything is important and urgent, we just need more capacity. Sound familiar? Every organization has more things it wants to do than it can do. This is often viewed as a capacity problem; if only we had more capacity, we could get everything done. However, this is not true. All organizations have a finite capacity and from our experience, there…

19 Jul 2020

jonskeet 8 min read

This is a blog post rather than a bug report, partly because I really don’t know what’s at fault. Others with more knowledge of how the console works in .NET Core, or exactly what the Travis log does, might be able to dig deeper. TL;DR: If you’re running jobs using .NET Core 3.1 on Travis … Continue reading Travis logs…

c#diagnosticsgeneral

1 min read

Bitcask was introduced as the backend for a distributed database named Riak in which each node used to run one instance of Bitcask to hold the data that it was responsible for. In this essay, we take a detailed look into Bitcask, its design, and find the secret sauce that makes it so performant.

17 Jul 2020

16 Jul 2020

Will Farrington 3 min read

I work on Heroku’s Runtime Infrastructure team, which focuses on most of the underlying compute and containerization here at Heroku. Over the years, we’ve tuned our infrastructure in a number of ways to improve performance of customer dynos and harden security. We recently received a support ticket from a customer inquiring about poor performance in […] The post Making Time…

engineeringcloud infrastructuredeveloper toolsperformance optimization

Michael Friis 2 min read

Today we’re sharing three performance enhancements that we have recently rolled out to apps running in Private Spaces: Dynos upgraded to the latest generation infrastructure for 10-15% perf improvement More consistent performance for Small Private and Shield Space dynos Optimized clock source selection Heroku is a fully managed platform-as-a-service (PaaS) and we work tirelessly to […] The post Container and…

newsdeveloper toolsheroku enterpriseperformance optimizationprivate spaces

ericlippert 5 min read

When last we left off we had representations for 0-quads — a single bit — 1-quads — four bits in a row — and 2-quads — a wrapper data structure around an unsigned short that could extract single cells or … Continue reading →

conwayslife

The goal I want to create emails that look their best in all mail clients, whether graphical or text based. Ideally I’d write a message in a simple format like Markdown, and generate the final email from the input file. Additionally, I’d like to be able to include fenced code snippets in the message, and make them available as attachments.…

Inger Dickson 1 min read

Dear No Estimators: You are probably estimating, even if you don’t admit it. When you say something is “small” or “easy”; when you say “yes I think we can get that done” or “these are about the same size for flow” or “these are about the same over time”, you are estimating. And even if you aren’t, please remember that…

15 Jul 2020

1 min read

Summary: Read about my efforts to solve the game of Ultimate Tic Tac Toe. It’s been a fun journey into interesting algorithms and high-performance parallel programming in Rust. Backstory Starting around the beginning of the COVID-19 lockdown, I’ve gotten myself deeply nerdsniped by an attempt to solve the game of Ultimate Tic Tac Toe, a two-level Tic Tac Toe variant…

ericlippert 1 min read

I went out to Shilshole Bay Marina Tuesday night to get a few photos of the comet; it is quite spectacular! If you’re going stargazing this week, bring binoculars, look to the northwest about an hour after sunset, below the … Continue reading →

uncategorized

14 Jul 2020

13 Jul 2020

ericlippert 7 min read

This series is getting much longer than I expected, but I’m having a great time, so let’s keep it going. I want to look at two more algorithms; for the next few episodes we’ll look at the brilliant and subtle … Continue reading →

conwayslife

1 min read

We’re approaching the first anniversary of when I stepped down from my operating role at Splice. The company kept on growing rapidly and be impactful, I am very proud of what the team is doing to change things from within the music industry. I had a blast during my time off: I worked on a great project with Grimes which…

David Walsh 1 min read

We’ve known for a decade that lazy loading resources like JavaScript, CSS, and especially images is a massive performance win for web pages. At first we used tricks and JavaScript to do the lazy loading, but more recently native image lazy loading has debuted in browsers. Did you know that you can also lazy load IFRAMEs using the same loading="lazy"…