Skip to content

Instantly share code, notes, and snippets.

@helospark
helospark / HsqlAutoserverManager.java
Last active May 30, 2017 12:57
Code to implement H2's ";AUTO_SERVER=true" functionality for HSQLDB
package hsql_test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import static org.mockito.BDDMockito.given;
import java.util.ArrayList;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@helospark
helospark / LogFileExposer.java
Created September 18, 2017 08:09
Expose a log file via HTTP
package com.example;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@helospark
helospark / Main.java
Last active January 31, 2018 20:20
Java superpermutation finder
package com.helospark;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ConcurrentSkipListSet;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@helospark
helospark / TestDialog.java
Created August 6, 2018 11:13
Darkest-dark theme missing CheckboxTableViewer
package dialogtest.handlers;
import java.util.Arrays;
import javax.annotation.Generated;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ICheckStateProvider;
import org.eclipse.jface.viewers.TableViewerColumn;
@helospark
helospark / SunExchangeCalculator.java
Last active October 9, 2019 19:24
Simulates return and results on the SunExchange
package com.helospark.invest;
import java.util.ArrayList;
import java.util.List;
/**
* Simulates return and results on the SunExchange.
*/
public class SunExchangeCalculator {
private static final double ZAR_TO_USD = 0.066;
@helospark
helospark / scrape_bet.sh
Created September 19, 2020 11:35
Scrape daily stock data from Budapest Stock Exchange (BÉT) and saves data to Graphite DB
stocks="3564,4IG 6494,ALTEO 4042,ANY 6329,APPENINN 8208,AUTOWALLIS 424,BIF 6515,CIGPANNONIA 9864,DUNAHOUSE 4338,GSPARK 506,KONZUM 7217,MASTERPLAST 518,MOL 511,MTELEKOM 540,OPUS 528,OTP 546,PANNERGY 604,RABA 608,RICHTER 3263,TAKAREKJZB 11141,WABERERS 639,ZWACK"
curl -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0' -v "https://bet.hu/oldalak/adatletoltes" > /tmp/out.html 2>&1
sessionid=`cat /tmp/out.html | grep JSESSIONID | sed 's/< set-cookie: JSESSIONID=//g' | sed 's/;.*//g'`
csrf=`cat /tmp/out.html | grep csrf | sed 's/\s\+<meta name="_csrf" content="//g' | sed 's/".*//g'`
defaultStart=`date --date="2 day ago" +"%Y.%m.%d."`
today=`date +"%Y.%m.%d."`
# Max is 5 years
startDate=$1
package com.helospark.bike;
/**
* Calculates the amount of calories & body fat burned from generated electric power in my exercise bike generator.
* @author helospark
*/
public class ExerciseBikeWhToKcal {
static final int wh = 95;
public static void main(String[] args) {
package com.helospark.bike;
/**
* Calculates how many watts I have to generate to burn the amount of calories on my exercise bike generator.
* @author helospark
*/
public class ExerciseBikeKcalToWh {
static final int kcalEaten = 640;
public static void main(String[] args) {
@helospark
helospark / SourceDataLineWriteHangs.java
Created May 8, 2021 11:21
Repro OpenJDK hanging bug on Linux (using ALSA) playback device. It doesn't always work with the same SIZE, delay, and stream size parameters on every machine. I guess it depends on sound hardware, buffers, etc.
package com.test;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
/**
OpenJDK bug report: