Software projects

Welcome to Andrea Alberti’s personal page. Below, you find a list of projects I have been currently maintaining in my past time.

Research Tools

  • JupyterLab Image Downloader for SVG and Common Image Formats: A userscript to add a download button to images and SVGs rendered in JupyterLab notebooks. This script supports both .svg and common image formats like .png and .jpeg. The download buttons appear in the top-right corner of the rendered output, allowing you to save the plot with a single click.

  • JupyterLab extension for Mapyter: A JupyterLab extension providing syntax support for Mapyter kernel. It also provides a plugin for JupyterLab for downloading plots with a button. The button is particularly convenient to save plots shown as vectorial .svg graphics.

  • Keynote Progress Bar: This AppleScript program adds a customizable progress bar to presentations created with Apple Keynote. The progress bar is configured using commands placed in the presenter notes of your slides. This project utilizes a custom Objective-C framework, KeynoteProgressBarHelper, for generating vector graphics (PDF) images of the progress bar.

  • Mapyter: A JupyterLab kernel to develop MATLAB in a notebook. The project started before Mathworks started their development of MATLAB kernel for JupyterLab. It offers more advanced features than those currenlty provided by the official kernel, such as the possibility to update plots live, create animations, and display progress bar (even for parfor loops!). Unfortunately, the documentation page is still missing.

  • Millennia Laser Control App: Application for controlling and logging Spectra-Physics Millennia Lasers. It covers all functions provided by the app shipped originally with the laser. It also provides new features, most notably, the possibility to log multiple parameters of the laser. Moreover, it gives a feedback about the instantaneous RMS noise level of the laser (5s integration time). And it allows controlling multiple lasers when these are connected to the same computer via USB.

Obsidian Plugins

These are plugins developed to improve the workflow with Obsidian personal knowledge management system.

  • Annotations for Obsidian Community Plugins: A plugin that allows users to add personal annotations to each installed plugin in Obsidian. This is particularly useful for keeping track of why certain plugins are installed and their specific use cases.

  • BibDesk Integration Plugin: A plugin that integrates the macOS BibDesk application with the PDF++ plugin in Obsidian, enabling you to manage and open PDFs associated with BibDesk entries directly from Obsidian. It works with external BibTeX files, leveraging BibDesk’s bdsk-file- fields, which act as macOS bookmarks, allowing seamless file access even if files are renamed or moved.

  • Dataview Recent Files: A plugin visualizing a list of recently create and modified files in a fuzzy search modal in Obsidian. It extends the functionality of Obsidian Dataview plugin. The list of the recently created and modified files is determined by the frontmatter fields, rather than on the timestamp of the MarkDown file, which can change in an uncontrolled manner, especially if syncing the vault between multiple Obsidian devices. The dcumentation page is still misisng.

  • Icon Bar Manager: A plugin for hiding undesired icons in Obisdian. Many plugins install icons without offering the possibility to hide them, resulting in a cluttered interface. The plugin allows controlling the order of the few icons one wishes to use. Unfortunately, the documentation page is missing. Furthermore, the plugin is still in an alpha stage and possibly only useful to expert users who can tweak it.

  • Import Attachments+ Plugin: A plugin that enhances the attachment management experience in Obsidian. It allows you to import, organize, and handle attachments (like images, documents, and other files) seamlessly within your vault.

  • Minimize on Close: A plugin that minimizes the application window to the dock or taskbar when all open panes are closed. This behavior is particularly standard on macOS and can now be optionally applied across all platforms.

  • Recoll Search Engine Plugin for Obsidian: A plugin for Obsidian to search the vault using the powerful Recoll Search Engine.

LaunchBar Actions

These are plugins developed to improve the workflow with LaunchBar personal knowledge management system.

Sublime Text Editor Plugins

  • Nearly syntax highlighting for Sublime Text Editor: A Sublime Text syntax highlighting file for Nearley. Nearly is a simple, fast, and powerful parsing toolkit. The Nearley.sublime-syntax file enables Sublime Text to recognize and highlight the syntax of Nearley grammar files (*.ne) effectively.

  • Sublime Project Pyright to Basedpyright Converter: This utility converts Sublime Text .sublime-project files configured for LSP-pyright to use LSP-basedpyright. LSP-basedpyright extends the functionality of LSP-pyright by providing enhanced support for Python projects in Sublime Text

  • Virtualenv Manager for Sublime Text: A Sublime Text plugin that provides a simple and efficient way to manage Python virtual environments directly from the editor.

macOS Utilities

  • SSHuttleBar: This apps allows you to control the CLI utility sshuttle direclty from the macOS menu bar. Thereby, one can emulate the functionality of a VPN by leveraging SSH connections. The program works, but the documentation is still missing. It integrates with 1Password SSH agent to retrieve automatically the password of remote servers.

  • Magic Warnings: A lightweight macOS app that monitors the battery levels of your Apple Magic Mouse, Trackpad, and Keyboard.

  • Volume Control App: This app allows you to directly control the volume of Apple Music and of Spotify using volume-up and volume-down keys from your keyboard.

  • iTunes Volume Control: The app is discontinued and superceded by Volume Control. The reason is that iTunes does no longer exist in recent macOS versions. Also, the newer app, Volume Control, is no longer restricted to Apple Music. It also works with Spotify and a few other music players.