Code
In my free time, I try to contribute to open source software; my GitHub username is @codetalker7. On this page I’ll try to describe the different projects I’ve contributed to, along with any other things that make life easy for me.
Config
OS and Desktop Environment
I’m running a machine with Focal Fossa and use KDE Plasma as my desktop environment with the Layan Dark theme. For Konsole
(and the Gnome Terminal) I’m using the Ubuntu Mono Nerd Font which is needed for status bars like powerline
and tools like colorls
.
This is a picture of my configuration.
zsh
and tmux
I use the zsh
shell configured with Oh My Zsh and the powerlevel10k theme. I use the following plugins for zsh
.
git
zsh-autosuggestions
, a very handy plugin which automatically displays suggestions as you’re typing.zsh-syntax-highlighting
, a cool plugin for syntax highlighting for commands.zsh-vi-mode
, a plugin to support a vim-like mode for your terminal.
I also use tmux
configured with Oh my tmux (a powerline
-like theme for tmux
) and tpm
. Apart from these, I came across some really cool tools to help speed up the development process.
fzf
, a must have tool if you’re a Linux user. The idea is simple: it takes in a list fromSTDIN
and writes toSTDOUT
. The power comes in the use cases it supports.bat
; can be thought of as a modern version ofcat
.colorls
, a Ruby gem to beautify thels
command with colors and icons.
vim
My default text editor is vim
. I’ve configured vim
to use the powerline
status bar (vim-airline
is an alternative that I also like) and Vundle
.
For my usual workflow, I use the following plugins.
fugitive
forgit
integrationNERDTree
(a file system explorer)vim-commentary
(to comment stuff out easily)vim-sendtowindow
(a plugin to send selections to a different pane/window; very useful if you have a REPL opened)vim-startify
, a fancy start screenvim-devicons
, file type icons forvim
.
Along with these I use a bunch of plugins for markup and live note taking (see the bottom of this page).
This is a picture of how my
vim
setup looks like (the code is for theSurvey.jl
package).
The Julia Language
I was part of 2022 edition of Google Summer of Code, where I was selected as a contributor for The Julia Language. My project was to make improvements to the CRRao.jl package. I made a final report for the same.
Apart from this, I’ve contributed to the following Julia packages as well.
- Lowess.jl, which is a pure Julia implementation of the LOWESS smoother.
- NighttimeLights.jl, which is a package to analyze satellite data. We also worked with Rasters.jl.
- TSFrames.jl, a package for Timeseries in Julia.
- Survey.jl, a package for complex survey analysis in Julia.
All of this work has been possible because of the help I got from people at the xKDR organization.
The Document Foundation
I’ve also contributed to the LibreOffice suite. My work mainly revolved around tinkering with LO’s UI, using tools like gtk and Glade, along with working with LO’s registry; for example, here are two of my patches.
- A patch for the Paste Special Dialogue
- A patch for the open-locked query box.
LO has one of the best workflows I’ve encountered thus far. They use Gerrit for code review and Jenkins for CI, along with a bunch of other tools which they have embedded in their codebase.
Get Involved!
If you want to contribute to OSS and like C++, LO might be a great choice to get started. LO’s core developers very actively look for new contributors, and are always available to help. It’s not hard to get involved.
Typesetting
I regularly typeset any notes that I take while attending classes or self-studying math. Although Overleaf is great for this, it can be a bit inconvenient for taking notes in class.
After following a bunch of tutorials/blogs on this, I’ve realized the the following is the fastest workflow for note taking (for me).
-
pandoc
, used to convert from one markup format to another. This is a really helpful tool, because it haspdflatex
,xelatex
andlualatex
support formarkdown
. -
To watch the files as I’m editing them, I use
docwatch
, which has support forpandoc
by default. Though other tools can be used for this. -
These with
vim
make a great combination. To get the best experience, I use thevim-pandoc
andvim-pandoc-syntax
for syntax highlighting along with the UltiSnips plugin for snippet support.
Find out more information about this at this repository.