Has your Python application been running a bit slow lately? We’ve all been there! Luckily, continuous profiling can help you catch those sneaky performance issues before they slow everything down. It’s like having a constant health check for your code. In this blog, we’ll explain how continuous profiling works—and why it’s a game-changer for keeping your Python apps fast and …
The Foundations of SAFe: Part II (Core Principles)
Welcome back to Part II of our series covering Scaled Agile Framework. As a quick refresher, I’m a lead consultant at Keyhole Software, and for the past year, I’ve been helping my client adopt SAFe methodologies and practices. I’ve certainly learned a lot, and I want to share that knowledge with you.
Last time in Part I, I gave an overview of SAFe and discussed the four core values: Alignment, Transparency, Respect for People, and Relentless Improvement. Today, we’ll dive a little deeper, talking through SAFe’s ten core principles. Next time in the third and final installment, we’ll take a practical look at the pros and cons of SAFe and some tips for implementing it.
The Foundations of SAFe: Part I (Overview + Values)
For several years, I have been a lead software engineer for one of Keyhole’s clients. More recently in the last year, they started a journey to implement SAFe (Scaled Agile Framework) methodologies and practices. If you are new to or have not heard of SAFe, this short, three-part blog series will give you the perfect launch pad.
In Part I (this post), I’ll give a high-level overview and then we’ll walk through SAFe’s four core values. In Part II, we’ll dive into its ten core principles. In the final installment (Part III), we’ll discuss the benefits and drawbacks and then we’ll get a bit more practical. I’ll teach you how it can be used for small teams, some key points a developer should know, and some considerations for if SAFe is right for your organization and teams.
Your Keyboard as an Output Device?
Though we don’t really see as many of them as we used to, they are still with us. One helps indicate if a 10-key is in number or cursor mode. Another helps show when we use capital letters without holding the shift key. You might even have another to show if you accidentally hit the scroll lock key. I’m talking of course about keyboard state indicators.
Most people only think of a keyboard as an output device, but given that it has a changeable state, it most definitely can be used for output as well! Unfortunately, producing meaningful output using a keyboard state indicator (beyond their intended purpose) is rather tedious because they only have two states; the indicator light is either on or off. And to convolute things further, most keyboards these days don’t have many indicators in general. For example, the very keyboard I’m typing on only has a caps lock indicator! Thankfully, there is a well-established encoding that requires only one “bit” to be useful: Morse code!
In this article, I will show how I approached the development of a small utility to output Morse code on the caps lock LED. Even if it’s impractical, I wanted a challenge, and I had fun working through it. Though I’m certainly not an expert, I used the C programming language because I figured it would be the simplest approach.
I hope it is as clear to you, the reader, as it is to me, especially since I tried to make this as simple as possible. And don’t worry if you don’t have a caps lock indicator, either, as we will display the Morse code, too.
Service Highlight: Java Development
Attention: This article was published over 2 years ago, and the information provided may be aged or outdated. While some topics are evergreen, technology moves fast, so please keep that in mind as you read the post.From its humble beginnings to its current status as a cornerstone of enterprise applications, Java has profoundly shaped the world of software development. Not …




