Skip to content

Instantly share code, notes, and snippets.

@oharsta
oharsta / playbook.yml
Created February 12, 2025 10:07
testing ansible playbooks
- hosts: localhost
gather_facts: no
vars:
my_var: "en,nl"
tasks:
- debug:
msg: |
{% for lang in my_var.split(',') %}
Language: {{ lang }}
{% endfor %}
@oharsta
oharsta / ansible_test.sh
Last active February 12, 2025 10:08
testing ansible templates bash
#!/bin/bash
ansible localhost -m debug -a 'msg={{ "en,nl".split(",") }}'
@oharsta
oharsta / template.py
Created February 12, 2025 10:05
Testing ansible templates in python
from jinja2 import Template
template = Template("""
{% for lang in my_var.split(',') %}
Language: {{ lang }}
{% endfor %}
""")
output = template.render(my_var="en,nl")
print(output)
@oharsta
oharsta / FullSearchQueryParser.java
Created December 11, 2024 11:38
MySQL full text indexes autocomplete query parser
public class FullSearchQueryParser {
//SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_DEFAULT_STOPWORD;
private static final List<String> stopWords = List.of(
"a", "about", "an", "are",
"as", "at", "be", "by",
"com", "de", "en", "for",
"from", "how", "i", "in",
"is", "it", "la", "of",
"on", "or", "that", "the",
@oharsta
oharsta / forms.js
Created November 8, 2024 09:57
Post JS form programmatically
const formPost = (fields, path) => {
const form = document.createElement("form");
form.method = "POST";
form.action = path;
Object.entries(fields).forEach(field => {
const hiddenField = document.createElement("input");
hiddenField.type = "hidden";
hiddenField.name = field[0];
hiddenField.value = field[1];
form.appendChild(hiddenField);
@oharsta
oharsta / mariadb.sh.sql
Last active September 26, 2024 06:59
Running MariaDB latest in docker with named constraint - mySQL has default conventions
colima start
docker run --detach --name some-mariadb --env MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 mariadb:latest
docker exec -it some-mariadb bash
mariadb
CREATE DATABASE test;
USE test;
CREATE TABLE users(
id int NOT NULL AUTO_INCREMENT,
name varchar(100),
@oharsta
oharsta / BaseException.java
Created July 15, 2024 13:14
Suppress stack-trace in BaseException
public class BaseException extends RuntimeException {
public BaseException(String message) {
super(message);
}
protected boolean suppressStackTrace() {
return false;
}
@oharsta
oharsta / regExp.js
Created June 5, 2024 13:23
JS mail regular expression
const mailRegExp = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.?[a-zA-Z]*$/;
mailRegExp.test("a@a")
// true
mailRegExp.test("a!@a")
// false
mailRegExp.test("a!@a/x")
// false
mailRegExp.test("[email protected]")
// true
@oharsta
oharsta / range.js
Created March 22, 2024 13:43
JS range
const range = (start, end, includeEnd=false) => Array.from({ length: end - start + (includeEnd ? 1 : 0) }, (_, i) => i + start);
@oharsta
oharsta / duplicates.sql
Created August 17, 2023 09:30
Find duplicates based on multiple columns
select s.id, t.*
from service_groups s
join (
select short_name, service_id, count(*) as qty
from service_groups
group by short_name, service_id
having count(*) > 1
) t on s.short_name = t.short_name and s.service_id = t.service_id;