Teaching the Unfortunate Parts
Learn programming languages like TypeScript, Python, JavaScript, SQL, and regular expressions. Interactive with real code examples.
Alar: The making of an open-source dictionary
The story of a massive Kannada dictionary created by V. Krishna single handedly over four decades, and its accidental discovery and open sourcing at an unlikely place, a stock brokerage.
Programming a space invader in OCaml and OpenGL: lessons learned
After a first experience with ReasonML, I wanted to check if its parent language, OCaml, was also that good. It took me an entire game to form a clear opinion.
Infrastructure Monitoring with Prometheus at Zerodha
How we developed a hybrid multi-DC and cloud monitoring stack with Prometheus, Grafana, and Victoria metrics for monitoring system, app and service, and also business metrics.
Advanced usage of Python requests: timeouts, retries, hooks
Learn about the advanced features the requests library hides under the hood. DRY base URLs, hooks, retry on failure, default timeouts and mocking.
Electron 11.0 released with support for Apple Silicon
Electron 11.0.0 has been released! It includes upgrades to Chromium 87, V8 8.7, and Node.js 12.18.3. We've added support for Apple silicon, and general improvements. Read below for more details!
How we designed Dropbox’s ATF – an async task framework
I joined Dropbox not long after graduating with a Master’s degree in computer science. Aside from an internship, this was my first big-league engineering job. My team had already begun designing a critical internal service that most of our software would use: It would handle asynchronous computing requests behind the…
The C++ Lifetime Profile: How It Plans to Make C++ Code Safer
This blog post explains what the C++ Lifetime Profile is and how it intends to make the language safer and help avoid memory management problems.
Lessons in Managing Haskell Memory
At Channable, we process several billion product data records for our customers every day according to user-customizable rules. Internally, this work is subdivided into jobs, where one job takes a set of products and the rules for how to process them as input, and returns the transformed set of products as output…
A REST View of GraphQL
In this article, we will talk about: What does the REST architectural style mean? What is GraphQL? What problems does it solve? How is GraphQL incompatible with REST?
Towards Crystal 1.0
Currently the main goal of the Crystal core team is to reach 1.0 in the near future. Since achieving that goal involves a number of non-obvious tradeoffs, we want to use this post to shed some light on those inherent tensions and how they drive our work and priorities for the next few releases.
Autonomous Rust Unikernels in Google Cloud
What if you could reboot an entire server in seconds in response to an active attack and get a brand new memory layout? While not feasible under linux it's an uniquely unikernel feature.
The Importance of End-to-End Thinking in System Design
I once attended a talk by Yoky Matsuoka when I was young – so young, in fact, that I don’t remember when or where the talk was. What I do remember is her telling the story of designing…
GDPR guide for developers
Is this guide only for developers? This guide is mainly aimed at developers working alone or in teams, team leaders, service providers but also at anyone interested in web or application development. It provides advice and best practices, and thus gives useful keys to understand the GDPR for every stakeholder…
Using Visual Studio Code for Qt Applications
In this short blog series, I will show you how to get up to speed with a Qt project using Visual Studio Code in more detail.
How we test the TeamCity UI
Developing a working piece of software is difficult. Just like building an airplane, it requires talented people, working components, and a testing framework. No plane leaves the hangar before everyth
PP-YOLO Surpasses YOLOv4 – State-of-the-art object detection techniques
Baidu publishes PP-YOLO and pushes the state of the art in object detection research by building on top of YOLOv3, the PaddlePaddle deep learning framework, and cutting edge computer vision research.
Investigating the Performance Overhead of C++ Exceptions
C++ exceptions have their place, but using an alternative is recommended for general program flow control.
A new RISC-V version of uLisp
The RISC-V version of uLisp is designed to support microcontroller boards based on the RISC-V processor.
How the ARM32 Linux kernel decompresses
ARM traditionally uses compressed kernels. This is done for two major reasons: It saves space on the flash memory or other storage media...
Graphics in Qt 6.0: QRhi, Qt Quick, Qt Quick 3D
The state of Qt 6.0 graphics on Vulkan, OpenGL, Metal, Direct3D 11. Qt Quick API changes. Qt Quick 3D new features in Qt 6.
Questions to Ask at the Start of a New Software Project
There's a lot you should know before you start creating software. Take time to understand the product, business, users, and overall project journey.
Creating Org mode sparse trees in Emacs and organice
When you have lots of information in an Org file, it helps to narrow it down to just the topic that interests you right now. There's many ways to do that depending on what exactly you want to do. Creating an Org mode sparse tree is one of those options!
Moving Away from Travis CI
At rOpenSci, we encourage R package developers to take advantage of Continuous Integration services to automatically check the package on different platforms, with different versions of R. The rOpenSci dev guide dedicates chapter 2 to the topic of Continuous Integration Best Practices, and recommends a few common CI…