Translucent Completion
Sometimes completion windows get in the way of reading the surrounding code. With Builder Nightly, you can press and release Left Control to toggle translucency of the completion window.
Sometimes completion windows get in the way of reading the surrounding code. With Builder Nightly, you can press and release Left Control to toggle translucency of the completion window.
One thing Builder has done for a long time is make terminals work seamlessly even if distributed using container technologies. Because pseudo-terminals are steeped in esoteric UNIX history, it can be non-obvious how to make this work. I’m in a place to help you not have to deal with that pain because I’ve already gone … Continue reading Flatpaking Terminals
One of the things I talked about in my talk at Scale 17x is that there are a number of platform features coming that are enevitable. One of those is application sandboxing. But not every component within an application is created equal or deserves equal access to user data and system configuration. Building the next … Continue reading Designing for Sandboxes
A reminder that I’ll be speaking at Scale 17x in Pasadena on Sunday, March 10th about all the cool stuff we’ve been doing in Builder and how that plays into the role of modernizing our development stack. Also, Sri is speaking. Matthias too.
Years ago, when starting the Builder project, I added a real-time CPU graph so that it was easy to detect slow-downs quickly while hacking on the product. If I ever saw a main-loop stall, it would be immediately obvious. Over the years I added more advanced features like a Sysprof-based profiler. That duplicated the feature … Continue reading Removing my favorite feature
One dead give-away of a GNOME/Gtk programmer is how they format their headers. For the better part of two decades, many of us have been trying to keep things aligned. Whether this is cargo-culted or of real benefit depends on the reader. Generally, I find them easier to filter through. Unfortunately, none of indent, clang-format, … Continue reading Keeping those headers aligned
For the past couple of weeks, Builder from git-master has come with a new gnome-builder-clang subprocess. Instead of including libclang in the UI process, we now proxy all of that work to the subprocess. This should have very positive effect on memory usage within the UI process. It will also simplify the process of using … Continue reading Moving clang out of process
GTask is super handy, but it’s important you’re very careful with it when threading is involved. For example, the normal threaded use case might be something like this: state = g_slice_new0 (State); state->frob = get_frob_state (self); state->baz = get_baz_state (self); task = g_task_new (self, cancellable, callback, user_data); g_task_set_task_data (task, state, state_free); g_task_run_in_thread (task, state_worker_func); The … Continue reading GTask and Threaded Workers
I’ve been working on some groundwork features to sneak into Builder 3.28 so that we can build upon them for 3.30. In particular, I’ve started to land device abstractions. The goal around this is to make it easier to do cross-architecture development as well as support devices like phones, tablets, and IoT. For every class … Continue reading Device Integration
Over the past couple of weeks I’ve been heads down working on a new tool along with Patrick Griffis. The purpose of this tool is to make it easier to integrate IDEs and other tooling with GNU-based gadgets like phones, tablets, infotainment, and IoT devices. Years ago I was working on a GNOME-integrated home router … Continue reading Introducing deviced