Skip to content

Instantly share code, notes, and snippets.

View ecoologic's full-sized avatar

Erik ecoologic

View GitHub Profile
@ecoologic
ecoologic / alchemy_poc.js
Created November 7, 2025 00:45
Alchemy blockchain connector
// index.js
process.loadEnvFile();
const { APP_ID, API_KEY, ALCHEMY_NETWORK = "eth-sepolia" } = process.env;
console.log(`Using APP_ID=${APP_ID}`);
class AlchemyConnector {
constructor({ apiKey, network }) {
this.httpUrl = `https://${network}.g.alchemy.com/v2/${apiKey}`;
this.id = 0;
[user]
email = [email protected]
name = Erik Ecoologic
[core]
editor = vim
pager = less -R
excludesfile = /home/erik/.gitignore_global
# excludesfile = /home/erik/.gitignore
@ecoologic
ecoologic / .bash_aliases
Last active October 1, 2025 01:26
.bash_aliases
# echo ${(q)PS1}
# %\(\?:%\{$'[01\;32m%\}%1\{➜%\}\ :%\{$'[01\;31m%\}%1\{➜%\}\ \)\ %\{$'[36m%\}%~%\{$'[00m%\}\ \$\(git_prompt_info\)
# lsb_release -a # Ubuntu release or...
# cat /etc/lsb-release
# du -ah dir/ | sort -n -r | head -n 20 # biggest directories
# find dir/ -type f -printf '%s %p\n' | sort -nr | head -10 # biggest directories
# sudo vim /usr/bin/window-jumper.py # laptop:2560x1500 lenovo: 3840x2160
# https://stackoverflow.com/questions/7318497/omitting-the-first-line-from-any-linux-command-output
# alias ssh='ssh -o StrictHostKeyChecking=no'
#!/bin/bash
# From https://forums.linuxmint.com/viewtopic.php?t=261998
# Enable "natural scrolling" (reverse mouse wheel) in Linux
# to debug
# set -x
echo "reverse-mouse-scroll"
mouseid=$(xinput --list | grep "DaKai 2.4G RX Mouse" | sed -E 's/.*id=([0-9]+).*/\1/' | head -n1)
@ecoologic
ecoologic / window-jumper.py
Created March 30, 2025 23:39
Linux mate: move windows between monitors (for shortcuts)
#!/usr/bin/env python3
# This script moves the active window to the other monitor.
# From (customised) https://askubuntu.com/questions/804211/create-keyboard-shortcuts-to-move-windows-to-different-monitors-without-compiz
# The size of your monitor.
THRESHOLD_X = 3840
import gi
gi.require_version('Gdk', '3.0')

VS Code

VS Code Shortcuts

  • ^ is crtl .

Basic editing

  • ⌥↓ / ⌥↑ Move line down/up
  • ⇧⌘\ Jump to matching bracket
@ecoologic
ecoologic / meditation.md
Last active October 2, 2022 00:20
Meditation Checklist

Meditation

It's practically an all-purpose training of the mind.

Meditation has the objects of stable attention and mindfulness (sati in pali), the latter being the optimal interaction between attention and peripheral awareness.

The practice consists in listening to the meditation object (the breath). Whenever you realise the mind wondered off, you happily move back to the meditation object. That's it, everything else are techniques to remove the time you're not following the meditation object.

Advantages Explained

@ecoologic
ecoologic / vsc.md
Last active January 5, 2021 04:31
Visual Studio Code Shortcuts
  • ctrl+k e explorer (sometimes ctrl+shift+e)
  • ctrl+1 focus on editor
  • alt+up move line up
  • shift+alt+right extend selection
  • f12 go to definition
  • shift+f12 see usages
  • ctrl+d select occurrences
  • ctrl+k ctrl+d skip last selected occurrence and select next (editor.action.moveSelectionToNextFindMatch)
  • ctrl+u undo select occurrence
  • ctrl+alt+- go back
@ecoologic
ecoologic / suggestions_to_a_beginner_developer.md
Last active July 25, 2019 06:06
Suggestions to a beginner developer

Suggestions to a beginner developer

  • Be very very humble
  • Pick up small and tedious jobs (bug fixes?)
  • Understand the product and the user
  • Read and fully understand the task
  • Think of the best UX, don't compromise
  • Think of possible bugs in your code
  • Read the stack trace carefully
  • Ask for pairings when stuck

Design Patterns

  • Value: (read-only) does some math or manipulation with one input value, like a model, but for one value only
  • Presenter: (read-only) takes complex data, like different models, and provides extra presentation values, even HTML
  • Service: (mainly-write) Has a main method that writes data through delegation, and can expose the results as read-methods (eg: errors)
  • Query: (read-only) Joins different models and performs SQL queries on them, ideally through SQL views
  • Gateway: (read-write) LIB Wrap of an API (lib: favour primitives, don't depend on app)
  • Serializer: (read-only) Converts input to a string like JSON, CSV, PDF blob etc (prefer others)
  • Parser: (read-only) convert data from one format to another (prefer others)
  • Decorator: (read-only) extends an object with extra value otherwise written in a presenter (prefer others)