Skip to content

Instantly share code, notes, and snippets.

@samisalkosuo
samisalkosuo / citizens.csv
Created February 19, 2026 06:12
Sample citizens data set.
We can make this file beautiful and searchable if this error is corrected: Unclosed quoted field in line 6.
"citizen_id","ssn","first_name","last_name","birth_date","phone_number","profession_name","address","postal_number","municipality_name","latitude","longitude","iban"
"1","190796-C142D73","Onerva","Poutala","1996-07-19","075-6815206","TIEDEKESKUKSEN PÄÄLLIKKÖ","Pohjoinen metsäpolku 26","90365 ","Föglö","6.00112886510000010E+01","2.04254812729999990E+01","FI7943787317229618"
"2","121260-73B9559","Taavetti","Niilo-rämä","1960-12-12","089-7209499","MATKAHALLINTASIHTEERI","Läntinen metsäkierros 6","90305 ","Vårdö","6.02443510180000033E+01","2.03753380919999998E+01","FI2546322317297175"
"3","021188-C531124","Ilmo","Hägg","1988-11-02","078-4590452","VALOSUUNNITTELIJA","Pohjoinen metsäkatu 16","90400 ","Parikkala","6.15551296300000033E+01","2.95010658130000003E+01","FI1742697317391372"
"4","050282-1D69890","Ulla","Nummila","1982-02-05","078-6667559","NÄYTTELYPÄÄLLIKKÖ","Läntinen metsäkierros 67","90392 ","Karstula","6.28766038569999992E+01","2.48005048180000003E+01","FI2047440718030661"
"5","210869-A3
from streamsets.sdk import ControlHub
import os
import sys
STREAMSETS_CREDENTIAL_ID = os.environ.get("STREAMSETS_CREDENTIAL_ID", "<default-credential-id>")
STREAMSETS_TOKEN = os.environ.get("STREAMSETS_TOKEN", "<default-token>")
STREAMSETS_ENGINE_ID = os.environ.get("STREAMSETS_ENGINE_ID", "<default-engine-id>")
STREAMSETS_PIPELINE_NAME = os.environ.get("STREAMSETS_PIPELINE_NAME", "Lab - Drone Ops - MQTT to Kafka")
ASTRADB_API_ENDPOINT = os.environ.get("ASTRADB_API_ENDPOINT", "<astradb-api-endpoint>")
ASTRADB_KEYSPACE_NAME = os.environ.get("ASTRADB_KEYSPACE_NAME", "default_keyspace")
from streamsets.sdk import ControlHub
import os
import sys
import json
STREAMSETS_CREDENTIAL_ID = os.environ.get("STREAMSETS_CREDENTIAL_ID", "<default-credential-id>")
STREAMSETS_TOKEN = os.environ.get("STREAMSETS_TOKEN", "<default-token>")
STREAMSETS_ENGINE_ID = os.environ.get("STREAMSETS_ENGINE_ID", "<default-engine-id>")
STREAMSETS_PIPELINE_NAME = os.environ.get("STREAMSETS_PIPELINE_NAME", "Lab - Drone Ops - MQTT to Kafka")
ASTRADB_API_ENDPOINT = os.environ.get("ASTRADB_API_ENDPOINT", "<astradb-api-endpoint>")
var records = sdc.records;
for(var i = 0; i < records.length; i++) {
try {
var documentMap = {};
documentMap["drone_id"] = records[i].value['drone_id'];
documentMap["event_time"] = records[i].value['event_time'];
documentMap["phase"] = records[i].value['phase'];
documentMap["altitude"] = records[i].value['altitude'];
documentMap["latitude"] = records[i].value['latitude'];
@samisalkosuo
samisalkosuo / postgres_to_wxdata_1min_v2.py
Last active January 20, 2026 11:38
Sample Spark-application running on IBM watsonx.data and decorated with IBM Databand SDK.
# %% [markdown]
# Drone Ops raw data from PostgreSQL to watsonx.data
#
# Uses Databand. Code uses Databand Python SDK to decorate with Databand tracking.
#
# See https://www.ibm.com/docs/en/dobd?topic=python-tracking-functions.
#
# See also Databand docs https://www.ibm.com/docs/en/dobd?topic=integrations-code-based-workflows.
# %%
@samisalkosuo
samisalkosuo / send_msgs_to_astradb.py
Created November 6, 2025 12:04
Sample app to send messages to DataStax Astra DB
import os, time, threading, random, sys
from datetime import datetime
from astrapy import DataAPIClient
TOKEN = os.getenv("ASTRA_TOKEN")
ENDPOINT = os.getenv("ASTRA_API_ENDPOINT") # e.g. https://<id>-<region>.apps.astra.datastax.com
KEYSPACE = os.getenv("ASTRA_KEYSPACE", "default_keyspace")
COLL_NAME = os.getenv("ASTRA_COLLECTION", "test_messages")
MPS = int(os.getenv("MESSAGES_PER_SECOND", "1"))
@samisalkosuo
samisalkosuo / generate_username.py
Last active January 5, 2017 09:57
Simple function to generate random usernames.
import sys
def generate_username(formatStr,capitalize=True):
"""Generate random user name. formatStr is like CVC-CVC which generates username with consonant-vowel-consonant-consonant-vowel-consonant.abs
C=consonant
V=vowel
N=number
+=space
"""
@samisalkosuo
samisalkosuo / create_ios__icons.sh
Created December 14, 2015 05:28
Create iOS icons from source image.
#!/usr/bin/env bash
#uses clpargs
#https://github.com/samisalkosuo/clpargs
source $GITDIR/clpargs/clpargs.bash
clpargs_program_description "Create iOS app icons from original 1024x1024 icon."
#iOS icon sizes
#https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html
@samisalkosuo
samisalkosuo / lsp.bash
Last active November 26, 2015 13:04
LS files in dir with full path. http://rnd-dev.com/ls-files-with-full-path/
#!/usr/bin/env bash
if [[ "$1" != "" ]] ; then
cd $1
fi
ls -1 | sed "s;^;$(pwd)/;"
@samisalkosuo
samisalkosuo / maze.py
Last active November 17, 2017 03:52
Some mazes classes translated from Ruby from book: Mazes for Programmers (https://pragprog.com/book/jbmaze/mazes-for-programmers). Used in MazinGame: https://github.com/samisalkosuo/mazingame
#!/usr/bin/env python
#Some mazes classes translated from Ruby
#from book "Mazes for Programmers" by Jamis Buck.
#https://pragprog.com/book/jbmaze/mazes-for-programmers
#
#Includes modifications.
#
#Execute this and you see mazes.