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…
13 Sept 2023
We’re growing our presence in Europe with an office in Dublin, Ireland.
12 Sept 2023
gRPC is an open-source remote procedure call (RPC) framework for building high-performance, language-agnostic APIs for distributed systems.
From a zebra to a rotating banner: how we stepped up your ability to Support the Guardian over the last seven years
GuardianSince 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.…
Unveiling 15+ Essential Tools & Resources for Web Designers and Agencies in 2023 (Sponsored)
David WalshYou’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…
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…
We’re once again at the end of our internship season, and it’s my task to provide a few highlights of what the dev interns accomplished while they were here.
11 Sept 2023
HTTP/3 (or HTTP-over-QUIC) is an application layer protocol for communication between web browsers and servers.
Truly effective conversational AI involves things like comprehending context and modifying responses in real time.
This blog post looks at WebSockets vs REST, the differences in performance, use cases, and how to take WebSockets to the next level.
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
I really like this quote from Jeff Bezos: “Anybody who doesn’t change their mind a lot is dramatically underestimating the complexity of the world we live in.” Lately I have been thinking about what I have changed my mind about … Continue reading →
8 Sept 2023
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…
7 Sept 2023
Technical debt is undermining business performance and costing money. Here’s how to tame it. The post Pay down technical debt to modernise your technology estate appeared first on Erlang Solutions.
This blog post is an introduction to the PubNub Data Stream API, enabling you to stream and send data in 1/10 second or less to any device.
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…
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
Learn how MQTT's lightweight design and pub/sub model make it ideal for efficient communication between devices in IoT systems and sensors
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…
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…
Developer registration for in-person attendance will open in the coming weeks and developers everywhere will be able to livestream the keynote.
5 Sept 2023
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…
Experience cloud computing with Python on Azure during Python Day 2023! The post Announcing: Azure Developers – Python Day appeared first on Microsoft for Python Developers Blog.
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.
A comparison between build vs buy when it comes to real-time infrastructure for data streaming and other real-time functionality
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…
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…
4 Sept 2023
Discover how Server-Sent Events (SSE) enable real-time communication by letting servers push data updates to clients via a single HTTP connection!
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
A method for real-time web communication that enables low-latency, bidirectional data streams between clients and servers, used in dynamic web apps
1 Sept 2023
Protect patient data and avoid breaches! Learn how to build HIPAA-compliant healthcare apps with secure, scalable infrastructure and trusted vendor partnerships
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
Bookmarks for September 2023: 11 links - Measuring developer productivity? A respon...; How to pass a coding interview with me - R..., and more.
Check how real-time messaging API powers instant, low-latency communication for chat, IoT, gaming, and live updates—fast, reliable, and scalable!
Looking to build custom features into your virtual event app? Learn how you can create a fully-featured virtual events platform.
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…
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. […]
PubNub Data Streams lets you stream data to global audiences in under a 1/4 second. Here are 5 things you can do with that.
PubNub joined what felt like the entire European gaming community for two back-to-back events in Cologne during August 2023
The effective use of AI is becoming the next great differentiator for business, but many SMEs are confused about what to adopt and how to adopt it. The post What businesses should consider when adopting AI and machine learning appeared first on Erlang Solutions.
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…
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.
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, […]
30 Aug 2023
A look at the key benefits of separating game servers from infrastructure for in-game chat.
Improve engagement with your Unity game by adding real-time Item Trading, Leaderboards & Moderation with PubNub
Rust developers can now take advantage of PubNub's Rust SDK to support real-time features in their applications.
29 Aug 2023
How to mitigate or prevent subscription sharing of account information for SaaS companies, specifically for those with a subscription pricing model.
28 Aug 2023
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…
Get enterprise-grade security & privacy and the most powerful version of ChatGPT yet.
Edit maps quickly and easily with our powerful map design tool.
24 Aug 2023
Improve engagement with your Unity game by adding real-time Messaging and Social Features with PubNub
We’ve moved from the programming era we’ve been in for decades to the cognitive era, combining the strengths of computers and humans
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.
OpenAI’s customers can leverage Scale’s AI expertise to customize our most advanced models.
23 Aug 2023
22 Aug 2023
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.…
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…
Project Spotlight: Optimizing ChannelAdvisor Integration: Real-Time Product Catalog Synchronization
Kogan.comIntroduction: 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
Developers can now bring their own data to customize GPT-3.5 Turbo for their use cases.
21 Aug 2023
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…
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
In this post I’m going to talk about some old text editors you probably never heard of, what is modal text editing, and why people like it so much.
18 Aug 2023
Watch now, to see the panel discussion on how Blu Sky is utilising Direct Debit to grow their business and create great customer experiences.
17 Aug 2023
Chat Integrations let you connect services like AWS, Azure, and GCP to your chat app for features like video chat, profanity filtering, and more.
This blog post gives an overview of WebSockets, the pros and cons, and talks about what kind of applications you can build with WebSockets.
16 Aug 2023
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…
Rust is an ideal language for writing AWS Lambda functions. Its performance can reduce execution time and memory usage, lowering costs. Its safety features like no nulls and error handling can reduce bugs.
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…
The entire team has joined OpenAI.
These four new features include: animating display and content-visibility on a keyframe timeline, the transition-behavior property, the @starting-style rule, and the overlay property.
15 Aug 2023
In this article, we'll explore how you can optimize user experiences with the help of artificial intelligence (AI).
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…
We use GPT-4 for content policy development and content moderation decisions, enabling more consistent labeling, a faster feedback loop for policy refinement, and less involvement from human moderators.
14 Aug 2023
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
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
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…
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…
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…
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…
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
Serguei explains the unique benefits of using Rust, stating that it "essentially makes me a better programmer."
A little over 100 commits in small-ish quality-of-life improvements.
8 Aug 2023
Separate social, info-sharing, and decision-making meetings. Effective meetings require a process owner, agenda, preread, and curated attendees.
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.
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.
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…
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
First-time Kubernetes has challenges: High costs due to unoptimized deployments. Steep learning curve. Optimizing HPA autoscaling for stability.
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…
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…
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
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
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…
In our latest post, Cara May-Cole explores blockchain in sustainable programming and its impact on achieving greener solutions. The post Blockchain in Sustainable Programming appeared first on Erlang Solutions.