Skip to main content

QuteBrowser and LastPass

2 min read

I've been using QuteBrowser for the past 2 days (more on that later), and the only thing I missed so far was a LastPass integration.

Now, QuteBrowser does not come with a plugin store like Firefox or Chrome, but it is still possible to use LastPass with it.

First we need to install lastpass-cli and login to the service. I'm running Manjaro Linux on my laptop so I use yaourt :

yaourt lasstpass-cli

Now we login to Lastpass :

lpass login <email@domain.tld>

A prompt pops-up, asking for your master password. If everything went right, the CLI should responds with

Success: Logged in as <email@domain.tld>.

Since we're good to go, we can now download the QuteBrowser userscripts :

mkdir -p $/.local/share/qutebrowser/userscripts && cd $_

wget https://raw.githubusercontent.com/welps/qutebrowser/9a85796ac30ef33218dd7dee9db6a3c28364f668/misc/us...

chmod +x qute-lastpass

The script is installed. We can restart QuteBrowser by typing :restart.

Now everytime you need to find your login/password for a given page type :spawn --userscript qute-lastpass

Troubleshooting

Process stderr:
Traceback (most recent call last):
File "/home/cedric/.local/share/qutebrowser/userscripts/qute-lastpass", line 50, in <module>
import tldextract
ModuleNotFoundError: No module named 'tldextract'

Solution : pip install tldextract --user

FileNotFoundError: [Errno 2] No such file or directory: 'lpass': 'lpass'

Solution : install lastpass-cli

FileNotFoundError: [Errno 2] No such file or directory: 'rofi': 'rofi'

Solution : install rofi

Cleanup old git branches

1 min read

Yesterday I had to clean some very old branches on a project's codebase. Here's a few git tricks I had to use.

List merged branch (excluding master and staging) :

git branch --merged | egrep -v "(^\*|master|staging)"

Delete them locally :

git branch --merged | egrep -v "(^\*|master|staging)" | xargs -n 1 git branch -d

Delete them remotely :

git branch -r --merged | grep -v "origin/master$" | grep -v "origin/staging$" | sed 's/\s*origin\///' | xargs -n 1 git push --delete origin
git remote prune origin

Source : https://stackoverflow.com/questions/6127328/how-can-i-delete-all-git-branches-which-have-been-merged

Display branches with oldest commit datetime :

for branch in `git branch -r | grep -v HEAD`;do echo -e `git show --format="%ci %cr" $branch | head -n 1` \\t$branch; done | sort -r

I Need A Budget - Using YNAB with belgian bank accounts

1 min read

I recently discovered that budgeting might not be as boring as I thought. Better yet, budgeting might help me achieve my goals in life.

The problem is in this pre-PSD2/XS2A world, syncing my bank accounts with YNAB is a real pain and I tried to automate the process to the best that I could.

Current workflow :

  • Downloading my accounts statements in CSV from by bank (BNP Paribas Fortis) (manual - i tried to automate this step with iMacros for Firefox, but failed)
  • Parsing the CSV and converting it to a valid OFX file via https://csvconverter.biz/ (semi-manual, but at least i've got the file just right)
  • Import each file to YNAB through drag'n'drop (manual, but easy)

I started using YNAB only a week ago, I'll probably have a lot more to say about it in the next few months.

AttributeError: module 'ofxstatement.plugins.alfabank' has no attribute 'AlfabankPlugin'

2 min read

I just installed ofxstatement to play around with, but i'm stuck with this error while running ofxstatement list-plugins

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2324, in resolve
return functools.reduce(getattr, self.attrs, module)
AttributeError: module 'ofxstatement.plugins.alfabank' has no attribute 'AlfabankPlugin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/bin/ofxstatement", line 11, in <module>
load_entry_point('ofxstatement==0.6.1', 'console_scripts', 'ofxstatement')()
File "/usr/lib/python3/dist-packages/ofxstatement/tool.py", line 150, in run
return args.func(args)
File "/usr/lib/python3/dist-packages/ofxstatement/tool.py", line 68, in list_plugins
available_plugins = plugin.list_plugins()
File "/usr/lib/python3/dist-packages/ofxstatement/plugin.py", line 26, in list_plugins
return sorted((ep.name, ep.load()) for ep in plugin_eps)
File "/usr/lib/python3/dist-packages/ofxstatement/plugin.py", line 26, in <genexpr>
return sorted((ep.name, ep.load()) for ep in plugin_eps)
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2316, in load
return self.resolve()
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2326, in resolve
raise ImportError(str(exc))
ImportError: module 'ofxstatement.plugins.alfabank' has no attribute 'AlfabankPlugin'
$ python --version
Python 2.7.14

Please let me know if you need additional information