~/devreads

13 Sept 2023

1 min read

Table of Contents Last time we defined folders and used them to enable some canonicalization and the sccp constant propagation pass for the poly dialect. This time we’ll add some additional safety checks to the dialect in the form of verifiers. The code for this article is in this pull request, and as usual the commits are organized to be…

12 Sept 2023

Developer Relations Team 1 min read

gRPC is an open-source remote procedure call (RPC) framework for building high-performance, language-agnostic APIs for distributed systems.

Paul Brown (Head of Engineering) 1 min read

Since you’re here… please find somewhere comfortable to sit and read my story about the journey the Supporter Revenue team has undergone since I joined them as an Engineering Manager back in January 2016 Our readers’ support is vital to the Guardian’s future, and the Supporter Revenue engineering team is responsible for developing digital experiences that engage our valued supporters.…

David Walsh 10 min read

You’ve visited countless websites, and now you’re designing your own. Stop and think for a minute about what you’ve liked and didn’t like about some of those you visited. Was it the front page, the layout in general, or the functionalities that either met with your satisfaction or turned you off? The helpful tools and resources for designers presented here…

1 min read

Bootstrap Icons v1.11.0 has arrived with 100 new icons—including new floppy disk icons, additional brand icons, new person icons, new emojis, some birthday cake, a few new science icons, and more. We’re now at over 2,000 icons! 100 new icons Here’s a quick look at all the new icons in v1.11.0: Check out the pull request for all the details…

11 Sept 2023

1 min read

Table of Contents Last time we saw how to use pre-defined MLIR traits to enable upstream MLIR passes like loop-invariant-code-motion to apply to poly programs. We left out -sccp (sparse conditional constant propagation), and so this time we’ll add what is needed to make that pass work. It requires the concept of folding. The code for this article is in…

10 Sept 2023

8 Sept 2023

Courtney Webster 3 min read

The September 2023 release of the Python and Jupyter extensions for Visual Studio Code are now available. This month's updates include updates to the Create Environment command, a new terminal auto-activation experiment, and a new yapf extension. Keep reading to learn more! The post Python in Visual Studio Code – September 2023 Release appeared first on Microsoft for Python Developers…

pythonvisual studio codejupyterpylancerelease

7 Sept 2023

1 min read

Table of Contents Last time we defined a new dialect poly for polynomial arithmetic. This time we’ll spruce up the dialect by adding some pre-defined MLIR traits, and see how the application of traits enables some general purpose passes to optimize poly programs. The code for this article is in this pull request, and as usual the commits are organized…

David Walsh 1 min read

It’s rare that I’m disappointed by the JavaScript language not having a function that I need. One such case was summing an array of numbers — I was expecting Math.sum or a likewise, baked in API. Fear not — summing an array of numbers is easy using Array.prototype.reduce! a + b, 0); The 0 represents the starting value while with…

6 Sept 2023

Developer Relations Team 1 min read

Learn how MQTT's lightweight design and pub/sub model make it ideal for efficient communication between devices in IoT systems and sensors

5 min read

Note: This is translated from the German original, which was used as a homework for the Programming Paradigms course at Karlsruhe Institute of Technology a long long time ago when I was co-holding the practical courses. Snake is a computer game in which a snake has to be moved through a playing field. Eating food increases the snake’s length. When…

Zac Sweers 5 min read

Embarking on a journey Stepping out of SFO with the familiarity of the fogginess of the city, my story at Slack unfolds once again. As a return intern, I found myself prepped for another exciting summer, and this opportunity encompassed a renewed sense of anticipation — a mix between known pathways and new adventures. Returning…

uncategorizedandroiddevtoolsinternshipskotlin

5 Sept 2023

1 min read

Problem: Compute 16% of 25 in your head. Solution: 16% of 25 is equivalent to 25% of 16, which is clearly 4. This is true for all numbers: $x\%$ of $y$ is always equal to $y\%$ of $x$. The first one is $\frac{x}{100} y$ and the second is $\frac{y}{100}x$, and because multiplication is commutative and associative, both are equal to…

Brian Grinstead 2 min read

Firefox performance on Vue.js has improved significantly throughout the year. Most recently, we sped up reactivity with Proxy optimizations. This change landed in Firefox 118, so it’s currently on Beta and will ride along to Release by the end of September. The post Faster Vue.js Execution in Firefox appeared first on Mozilla Hacks - the Web developer blog.

featured articlefirefoxjavascriptperformancejs

Rob 1 min read

For some automation that I"m writing, I need to get the Bundle ID for some Mac applications. The easiest way to do this is with AppleScript: osascript -e 'id of app "{Application Name}"' This can easily be turned into a bash script such as `bundle-id-of` like this: #!/usr/bin/env bash osascript -e 'id of app "'"$1"'"' And we can now obtain…

software

vladmihalcea 1 min read

Introduction Welcome to a new issue of the High-Performance Java Persistence Newsletter in which we share articles, videos, workshops, and StackOverflow answers that are very relevant to any developer who interacts with a database system using Java. Articles The pick of this edition is this article, which explains how you can use the Hibernate Statistics in order to assert the…

newsletterhibernatejavajpamysql

4 Sept 2023

Developer Relations Team 1 min read

Discover how Server-Sent Events (SSE) enable real-time communication by letting servers push data updates to clients via a single HTTP connection!

Michael Carroll 1 min read

A State of Agile report found 71% of teams adopt Agile & DevOps practices into workflows to meet quick turnaround times without affecting quality.

3 Sept 2023

1 Sept 2023

Developer Relations Team 1 min read

Protect patient data and avoid breaches! Learn how to build HIPAA-compliant healthcare apps with secure, scalable infrastructure and trusted vendor partnerships

1 min read

OCaml with Jane Street extensions is available from our public opam repo. Only a slice of the features described in this series are currently implemented.

31 Aug 2023

1 min read

Bookmarks for September 2023: 11 links - Measuring developer productivity? A respon...; How to pass a coding interview with me - R..., and more.

Developer Relations Team 1 min read

Check how real-time messaging API powers instant, low-latency communication for chat, IoT, gaming, and live updates—fast, reliable, and scalable!

Developer Relations Team 1 min read

Looking to build custom features into your virtual event app? Learn how you can create a fully-featured virtual events platform.

Craig Peters 3 min read

Since we released GitHub Codespaces in 2021, we’ve made a number of updates aimed at improving usability, controlling cost, and more (for example, free usage for all, one click into templates, and concurrency policies). Now, GitHub has improved our developer experience and reduced usage costs at the same time by taking advantage of new virtual machines that provide all of…

Matt Cutts 2 min read

Hey folks, I hope you’re doing well, and wanted to catch you up to speed on some new life happenings. Namely: babies. Two of them at once. Lindsay and I welcomed healthy fraternal twin boys into the world a few months ago. So far, Twin A is big, open, loud and easygoing with his smiles. […]

personal

vladmihalcea 1 min read

Introduction In this article, we’re going to see how the PostgreSQL JDBC Driver implements Statement Caching and what settings we need to configure in order to optimize the performance of our data access layer. Prepared Statements The JDBC API allows you to create a PreparedStatement by calling prepareStatement(java.lang.String) method on a given Connection reference. For this reason, it’s very common…

databasesqlconnection poolingpostgresqlprepared statement

1 min read

We’re releasing a guide for teachers using ChatGPT in their classroom—including suggested prompts, an explanation of how ChatGPT works and its limitations, the efficacy of AI detectors, and bias.

company

Edgar Trujillo 4 min read

On the racetrack of building ML applications, traditional software development steps are often overtaken. Welcome to the world of MLOps, where unique challenges meet innovative solutions and consistency is king. At Bazaarvoice, training pipelines serve as the backbone of our MLOps strategy. They underpin the reproducibility of our model builds. A glaring gap existed, however, […]

artificial intelligencebig datadevopsopen sourcesoftware architecture

30 Aug 2023

Oliver Carson 1 min read

Rust developers can now take advantage of PubNub's Rust SDK to support real-time features in their applications.

29 Aug 2023

28 Aug 2023

Radha Kumari 8 min read

Slack handles billions of inbound network requests per day, all of which traverse through our edge network and ingress load balancing tiers. In this blog post, we’ll talk about how a request flows — from a Slack’s user perspective — across the vast ether of the network to reach AWS and then Slack’s internal…

uncategorizedinfrastructurenetworking

24 Aug 2023

Cara May-Cole 4 min read

Instead of removing reliable legacy systems entirely, effective use of Erlang can help to improve system performance whilst preparing them for future use. The post Future-proofing legacy systems with Erlang appeared first on Erlang Solutions.

erlanglegacy systems

23 Aug 2023

22 Aug 2023

Stephan Zuercher 8 min read

Summary In recent years, cellular architectures have become increasingly popular for large online services as a way to increase redundancy and limit the blast radius of site failures. In pursuit of these goals, we have migrated the most critical user-facing services at Slack from a monolithic to a cell-based architecture over the last 1.5 years.…

uncategorizedinfrastructurenetworking

vladmihalcea 1 min read

Introduction In this article, I’m going to show you the best way to hide the JPA entity identifier so that the users of your application won’t be able to guess and access data that belongs to other users. This has been a recurring question that I’ve been getting when running training or workshops, so I decided it’s a good idea…

hibernatehideidentifierjpamasquerade

Stephen De Vaux 1 min read

Introduction: In today's e-commerce landscape, seamless integration with third-party platforms is essential for expanding reach and boosting sales. This technical blog post delves into Kogan.com's ChannelAdvisor integration project, offering insights to software engineers on event-driven architectures, infrastructure automation, and efficient CI/CD practices. Understanding the Challenge: Integrating with ChannelAdvisor posed a significant hurdle. As a renowned e-commerce platform bridging variou

project spotlight

21 Aug 2023

Matthew Green 16 min read

Recently a reader wrote in and asked if I would look at Sam Altman’s Worldcoin, presumably to give thoughts on it from a privacy perspective. This was honestly the last thing I wanted to do, since life is short and this seemed like an obvious waste of it. Of course a project devoted to literally … Continue reading Some rough…

cryptocurrency

1 min read

Table of Contents In the last article in the series, we migrated the passes we had written to use the tablegen code generation framework. That was a preface to using tablegen to define dialects. In this article we’ll define a dialect that represents arithmetic on single-variable polynomials, with coefficients in $\mathbb{Z} / 2^{32} \mathbb{Z}$ (32-bit unsigned integers). The code for…

20 Aug 2023

18 Aug 2023

17 Aug 2023

16 Aug 2023

vladmihalcea 1 min read

Introduction In this article, we are going to see what are the best way to use JPA bidirectional sync methods for one-to-many, one-to-one, and many-to-many associations. For an introduction to why you need sync methods for your bidirectional JPA associations, check out this article first. Domain Model For this article, we are going to use the following entities that are…

hibernatebidirectionaljpasync

Philip McMahon 1 min read

On our team we swapped databases 6 times in a year. We’ve landed on Aurora Serverless V2 – was it worth it? Since our migration from Mongo to Postgres in 2018, at the Guardian the search for the perfect database hasn’t stopped. In the last year on the Investigations and Reporting team we’ve spent a lot of time trying out…

15 Aug 2023

Rob 1 min read

I'm a huge fan of ExifTool for manipulating EXIF data in images as it really is the Swiss Army knife for all things metadata related with images. Recently, I wanted to strip some privacy-related metadata from some photos; specifically location, people and keywords. That is, I wanted to keep the title, the camera settings, the creator, and so on, but…

photographysoftware

14 Aug 2023

David Walsh 1 min read

As more of the JavaScript developers write becomes asynchronous, it’s only natural to need to wait for conditions to be met. This is especially true in a world with asynchronous testing of conditions which don’t provide an explicit await. I’ve written about waitForever, waitForTime, and JavaScript Polling in the past, but I wanted to have a more modern way of…

11 Aug 2023

David Walsh 1 min read

One of the larger downloads when requesting a webpage are custom fonts. There are many great techniques for lazy loading fonts to improve performance for those on poor connections. By getting insight into what fonts the user has available, we can avoid loading custom fonts. That’s where queryLocalFonts comes in — an native JavaScript function to gather user font information.…

10 Aug 2023

1 min read

Table of Contents In the last article in this series, we defined some custom lowering passes that modified an MLIR program. Notably, we accomplished that by implementing the required interfaces of the MLIR API directly. This is not the way that most MLIR developers work. Instead, they use a code generation tool called tablegen to generate boilerplate for them, and…

1 min read

Table of Contents This series is an introduction to MLIR and an onboarding tutorial for the HEIR project. Last time we saw how to run and test a basic lowering. This time we will write some simple passes to illustrate the various parts of the MLIR API and the pass infrastructure. As mentioned previously, the main work in MLIR is…

1 min read

Table of Contents Last time, we covered a Bazel build system setup for an MLIR project. This time we’ll give an overview of a simple lowering and show how end-to-end tests work in MLIR. All of the code for this article is contained in this pull request on GitHub, and the commits are nicely organized and quite readable. Two of…

1 min read

Table of Contents As we announced recently, my team at Google has started a new effort to build production-worthy engineering tools for Fully Homomorphic Encryption (FHE). One focal point of this, and one which I’ll be focusing on as long as Google is willing to pay me to do so, is building out a compiler toolchain for FHE in the…

1 min read

Today my team at Google published an article on Google’s Developers Blog with some updates on what we’ve been doing with fully homomorphic encryption (FHE). There’s fun stuff in there, including work on video processing FHE, compiling ML models to FHE, an FHE implementation for TPUs, and improvements to the compiler I wrote about earlier this year. TODO: add mower…

9 Aug 2023

8 Aug 2023

Ilya Grigorik 3 min read

Separate social, info-sharing, and decision-making meetings. Effective meetings require a process owner, agenda, preread, and curated attendees.

decsion makingmeetingsleadership

Nic Raboy 1 min read

As seen in a previous tutorial, creating a serverless function for AWS Lambda with Java and MongoDB isn't too complicated of a task. In fact, you can get it done with around 35 lines of code! However,... The post Serverless Development with Kotlin, AWS Lambda, and MongoDB Atlas appeared first on MongoDB.

Ben Dean-Kawamura 5 min read

This blog post will walk through how we developed UniFFI: a Rust library for auto-generating foreign language bindings. We will walk through some of the issues that arose along the way and how we handled them. The post Autogenerating Rust-JS bindings with UniFFI appeared first on Mozilla Hacks - the Web developer blog.

featured articlefirefoxjavascriptrustuniffi

0xADADA 2 min read

Denis Villeneuve, expert of visual storytelling, frequently employs the panning shot with an extensive use of the parallax effect to immerse viewers in his films, allowing them to experience a sense of place, scale, and depth like never before. He uses these teqniques most visibly in “Blade Runner 2049” (2017), “Enemy” (2013), and “Dune” (2021), highlighting how his use of…

notesfilmart

jesalg 8 min read

Unraveling growth challenges: Could a system architect be the solution? Serverless Architecture from Classic Programmer Paintings Most startups that go through hyper-growth tend to face the inevitable Bottlenecks of Scaleups, as masterfully described by ThoughtWorks. Having navigated the hyper-growth journey myself, I’ve witnessed firsthand how these technical bottlenecks can impede business progress, causing churn and chaos. Bottlenecks of Scaleups In…

7 Aug 2023

1 min read

Suppose we’ve got a service. We’ll gloss over the details for now, but let’s stipulate that it accepts requests from the outside world, and takes some action in response. Maybe those requests are HTTP requests, or RPCs, or just incoming packets to be routed at the network layer. We can get more specific later. What can we say about its…

vladmihalcea 1 min read

Introduction In this article, we are going to see how the SQL Server useBulkCopyForBatchInsert configuration property works when using JDBC, JPA, or Hibernate. SQL Server PreparedStatement batching When using JPA and Hibernate, the generated SQL statements are going to be executed using the JDBC PreparedStatement because prepared statements increase the likelihood of statement caching, and you to avoid SQL injection…

javasql server

David Walsh 1 min read

Web debugging tools are so incredibly excellent these days. I remember the days where they didn’t exist and debugging was a total nightmare, even for the simplest of problems. A while back I introduced many of you to Logpoints, a way to output console.log messages without needing to change the source files. Another great breakpoint type is XHR/fetch breakpoints, allowing…

4 Aug 2023

Stanko 3 min read

What if I told you that we can make a timer without using setTimeout, setInterval or requestAnimationFrame? JavaScript is still necessary, but we can create the timer just by toggling some CSS classes. While I was working on an autoplay feature for a carousel, I thought to myself - CSS animations are kinda like timers. They have animationstart and animationend…

3 Aug 2023

Courtney Webster 4 min read

The August 2023 release of the Python and Jupyter extensions for Visual Studio Code are now available. This month's updates include a pre-configured dev container for the Python extension, a new debug configuration, an npm package for the Python extension API, and error-tolerant pytest discovery with the testing rewrite. Keep reading to learn more! The post Python in Visual Studio…

pythonvisual studio code