Skip to content

Instantly share code, notes, and snippets.

@naranjja
naranjja / hash.R
Created October 14, 2019 22:46
Hash minute timestamp + userId on Node.js, Nativescript, and R
# import digest library (default R-base library)
library(digest)
# get current date in UTC as ISO string and keep all chars up until minutes
# eg. 2019-10-14T17:40
date <- strftime(as.POSIXlt(Sys.time(), tz = "UTC"), "%Y-%m-%dT%H:%M")
# get userId
userId <- "0000123"
@naranjja
naranjja / users-permissions.sql
Created August 20, 2019 00:16
List all users and permissions in Azure SQL
SELECT DP1.name AS DatabaseRoleName,
isnull (DP2.name, 'No members') AS DatabaseUserName
FROM sys.database_role_members AS DRM
RIGHT OUTER JOIN sys.database_principals AS DP1
ON DRM.role_principal_id = DP1.principal_id
LEFT OUTER JOIN sys.database_principals AS DP2
ON DRM.member_principal_id = DP2.principal_id
WHERE DP1.type = 'R'
ORDER BY DP1.name;
@naranjja
naranjja / .lintr
Last active October 4, 2019 03:17
How to lint R project
linters: with_defaults(
line_length_linter(120),
camel_case_linter = NULL
)
@naranjja
naranjja / yolov3-less.cfg
Created May 3, 2019 17:46
YOLO v3 Simple config
[net]
# Testing
# batch=1
# subdivisions=1
# Training
batch=1
subdivisions=1
width=416
height=416
channels=3
@naranjja
naranjja / parallelize_for_loop.py
Created March 15, 2019 05:11
Simple parallelizing of for loop in Python
import multiprocessing, joblib
def parallelize(iter_expression, func):
func = func.replace("(", ")(")
n_jobs = multiprocessing.cpu_count()
return eval("joblib.Parallel(n_jobs={})(joblib.delayed({} {})".format(n_jobs, func, iter_expression))
parallelize("for i in range(10)", "print(i)")
@naranjja
naranjja / parallelize.py
Last active March 15, 2019 07:28
Parallelizing Pandas row appending in Python
import time
import pandas as pd
from multiprocessing import Pool
def worker(i):
t = time.time()
time.sleep(0.5) # simulate processing something
d = {
"name": "Player {}".format(i + 1),
"points": (i + 1) ** 2.0
@naranjja
naranjja / index.js
Last active March 10, 2022 00:16
Google Analytics tracking using Dialogflow API v2 and some REST API
const ua = require("universal-analytics");
const request = require("request-promise");
const { https } = require("firebase-functions");
function getUserID (obj) {
if (!obj.source) {
return "dialogflow";
} else {
switch (obj.source) {
case "twilio":
@naranjja
naranjja / trim_padding.py
Last active January 12, 2019 01:01
Trim padding on string
import re
def remove_padding(char, s, left=None, right=None):
if not left and not right:
print("You must specify either left or right.")
return
elif left:
return re.findall(re.escape(char) + r"*(.+)", s)[0]
elif right:
return re.findall(re.escape(char) + r"*(.+)", s[::-1])[0][::-1]
@naranjja
naranjja / get_body.py
Created November 21, 2018 17:46
Get body HTML from HTML string using LXML
# pip install lxml cssselect
import lxml.html
from lxml import etree
html = """
<html>
<body>
<p>Hello world</p>
</body>
@naranjja
naranjja / main.sh
Created November 16, 2018 01:18
Use Virtualenv within Jupyter Notebook
# Install virtualenv
pip3 install virtualenv
# Go to project folder
cd path/to/project-name
# Create environment 'env'
virtualenv env
# Activate environment