Import Atuin History into Nushell

If you want Nushell’s per-directory auto-suggestions backed by the commands you’ve already captured in Atuin’s SQLite3 history, you can read the full dataset and pipe it into history import. Warning You must be using the SQLite3 backend for Nushell as the text version doesn’t support current working directory (cwd). ...

Oct 30, 2025 · 1 min

Safari not respecting File download location preference?

When Safari ignores your preferred File download location setting, terminating the com.apple.Safari.SandboxBroker process can resolve the issue. ...

Oct 29, 2025 · 1 min

Fix 'Sidecar device timed out' error

When Sidecar fails with a “device timed out” error, terminating the SidecarRelay process on your iPad typically resolves the issue, which saves you rebooting your iPad. Note ...

Oct 11, 2025 · 1 min

lldb: VI mode and tab-completion

lldb uses libedit, which is a BSD licensed alternative to GNU readline. A feature of libedit is the ability to configure per-application settings for command-line bindings via ~/.editrc. Detailed documentation for this configuration file can be found using man editrc or via online documentation, such as developer.apple.com. As I prefer VI bindings, I initially configured my .editrc as follows, to replace the default emacs bindings: lldb:bind -v Unfortunately, when I re-ran lldb, tab-completion was not functioning. I added the following line, which is exported in libedit, and what I assumed would be the default completer function: ...

Jun 23, 2012 · 2 min

Objective-C: ternary operator

The ternary operator, also known as a conditional expression is a C construct. What follows is an example used for conditional assignment: result = condition_expression ? true_expression : false_expression; If condition_expression evaluates to true, result will be assigned the true_expression; otherwise, result will be assigned the false_expression. A GNU extension to the ternary operator, also available in Objective-C, is the ability to omit the true_expression as follows: result = first_expression ?: second_expression; result will be assigned the value of first_expression if it evaluates to true or second_expression if first_expression evaluates to false. ...

Mar 15, 2012 · 2 min