Skip to content

Instantly share code, notes, and snippets.

View codenoid's full-sized avatar

Rubi codenoid

View GitHub Profile
@magnetikonline
magnetikonline / README.md
Last active October 31, 2025 20:11
NSSM - the Non-Sucking Service Manager cheatsheet.
@heyalexej
heyalexej / gsm-setup.md
Last active August 20, 2025 21:09
SIM Card Management Through GSM Modem On Linux

SIM Card Management Over GSM Modem

A small guide on how to send and receive USSD codes on Linux

I am using the built in GSM (UMTS) modem of my Thinkpad X1 extensively because I am often in places with flaky internet connections. I connect through the standard Network Manager on Ubuntu and everything works fine. There was one major annoyance though. Every time I wanted to top up the SIM balance or book a new package, I needed a phone to send and receive USSD codes. So I took some time to figure out how to do it from the shell. I wrote this down as a help for others and a reminder for myself. Without further ado...

First intsall gammu and picocom.

~  sudo apt-get install -y gammu picocom
@djui
djui / totp.py
Last active July 24, 2021 13:30
Simple TOTP implementation in Python as CLI
#!/usr/bin/env python
from __future__ import print_function
import base64
import hashlib
import hmac
import struct
import sys
import time
@pnc
pnc / observer.md
Last active April 1, 2025 21:38
Using Erlang observer/appmon remotely

Using OTP's observer (appmon replacement) remotely

$ ssh remote-host "epmd -names"
epmd: up and running on port 4369 with data:
name some_node at port 58769

Note the running on port for epmd itself and the port of the node you're interested in debugging. Reconnect to the remote host with these ports forwarded:

$ ssh -L 4369:localhost:4369 -L 58769:localhost:58769 remote-host
@mvmaasakkers
mvmaasakkers / simplemongoiteration.go
Created February 19, 2014 09:01
Simple iteration of mongo documents
// This is an example program that iterates over all
// items in a mongodb collection in a memory safe way
package main
import (
"labix.org/v2/mgo"
"labix.org/v2/mgo/bson"
"fmt"
)
@boj
boj / benchmark.go
Last active April 9, 2019 16:26
mgo insert loop - parallelized vs. standard - The point of this test isn't to check the throughput of inserting 10000 records using mgo, but to explore the difference between doing standard and parallel loops using an overblown common case. Out of curiosity I have added a bulk insert benchmark at the bottom, which is clearly the most powerful wa…
package test
import (
"fmt"
"labix.org/v2/mgo"
"labix.org/v2/mgo/bson"
"testing"
)
const INSERT_COUNT int = 10000
@rantav
rantav / README.md
Created June 27, 2012 05:18
MongoDB increment or insert

In mongodb it's easy to make at upsert, meaning update-or-insert by calling

db.collection.update({criteria}, {updated fields}, true)

The third parameter means - insert a new document if the document doesn't exist yet. So, for example, the following will insert a new document for the user if there's no document for that user yet, and will update it if it already exists:

 db.users.update({user_id: '1234'}, {user_id: '1234', name: 'Ran'}, true)
@jeromer
jeromer / compassbearing.py
Last active November 19, 2025 20:13
compass bearing between two points in Python
# LICENSE: public domain
def calculate_initial_compass_bearing(pointA, pointB):
"""
Calculates the bearing between two points.
The formulae used is the following:
θ = atan2(sin(Δlong).cos(lat2),
cos(lat1).sin(lat2) − sin(lat1).cos(lat2).cos(Δlong))