Skip to content

Instantly share code, notes, and snippets.

View mtovmassian's full-sized avatar

Martin Tovmassian mtovmassian

View GitHub Profile
@mtovmassian
mtovmassian / php-TestUtils.php
Last active October 17, 2022 09:54
Helpers for PHP unit testing
<?php
namespace Tests;
use PHPUnit\Framework\TestCase;
class TestUtils
{
public static function invokePrivateMethod(object $object, string $methodName): callable
{
@mtovmassian
mtovmassian / python_deprecation_helper.py
Last active October 17, 2022 09:54
Python deprecation decorator
def deprecated(arg):
if callable(arg):
return deprecated_auto_message(arg)
else:
return deprecated_user_message(arg)
def deprecated_auto_message(func):
def wrapper(*args, **kwargs):
message = "Function {} is deprecated.".format(func.__name__)
warn_deprecation(message, 3)
@mtovmassian
mtovmassian / python_cache.py
Last active October 17, 2022 09:55
Cache store with memoizing behavior and decorator
import logging
import pickle
from datetime import datetime
from sys import getsizeof
logger = logging.getLogger(__name__)
class CacheStore:
@mtovmassian
mtovmassian / ssh-go-ssh-agent.sh
Last active October 17, 2022 09:55
Qick ssh key adding to ssh-agent
#!/usr/bin/env bash
main() {
ssh_key_path="${1}"
if [[ -z $ssh_key_path ]]
then usage; exit
fi
ssh-add "${ssh_key_path}"
ssh-agent
}
@mtovmassian
mtovmassian / url_quote_unquote.py
Last active February 24, 2021 14:50
Url encoding/decoding
from urllib.parse import quote, unquote
# https://www.urlencoder.io/python/
url = "https//hello.world.api.com/v1/print?value=hello world"
quoted = quote("https//hello.world.api.com/v1/print?value=hello world")
unquoted = unquote(quoted)
print(quoted)
@mtovmassian
mtovmassian / java-deploy-jaunt-jar-to-gitlab.sh
Last active October 17, 2022 09:55
Deploy Jaunt Jar to Gitlab package registry
# https://jaunt-api.com/download.htm
# https://stackoverflow.com/questions/60156835/how-to-deploy-private-jar-to-gitlab-maven-repository*
PROJECT_ID=""
GITLAB_MAVEN_REPOSITORY=""
mvn deploy:deploy-file \
-DgroupId=com \
-DartifactId=jaunt \
-Dversion=1.6.0 \
@mtovmassian
mtovmassian / palindrome_check.py
Created February 14, 2021 22:49
Mathematically check if a number is a palindrome
def extract_digits_left(num):
if num < 10:
return [num]
else:
return [*extract_digits_left(num // 10), num % 10]
def extract_digits_right(num):
if num < 10:
return [num]
@mtovmassian
mtovmassian / demlo_triangle.py
Created February 10, 2021 20:46
Demlo palindromic triangle
def calc_base_one_repunits(n):
# https://en.wikipedia.org/wiki/Repunit
return sum(
map(lambda x: pow(10, x), range(0, n))
)
for i in range(1, int(input("Triangle size: "))+1):
print(pow(calc_base_one_repunits(i), 2))
@mtovmassian
mtovmassian / python_anonymous_class.py
Last active September 3, 2021 14:11
Anonymous class in Python
# https://stackoverflow.com/questions/1123000/does-python-have-anonymous-classes
anonymous_class = type(
"",
(),
{
"attr1": None,
"get_attr1": lambda self: getattr(self, "attr1"),
"set_attr1": lambda self, value: setattr(self, "attr1", value)
}
@mtovmassian
mtovmassian / ssh-tunnel.sh
Created December 8, 2020 09:29
Open a SSH tunnel
ssh -i <path/to/my/private/ssh/key> -L <remote_port>:127.0.0.1:<local_port> <user>@<hostname> -N -vv