Skip to content

Instantly share code, notes, and snippets.

@drewcsillag
drewcsillag / JSONExplode.sql
Created February 28, 2021 20:47
Explode a JSON column to a new table is SQLite
-- Create a table that will contain all the JSON object keys
CREATE TABLE KEYS (attrname STRING, expr STRING);
INSERT INTO KEYS
SELECT DISTINCT(e.key), e.fullkey AS key
FROM json_each(log.line) e, log;
-- Generate the CREATE TABLE with all the JSON object keys
.once eval.sql
SELECT 'CREATE TABLE exploded (k_' || group_concat(attrname,' TEXT, k_') || ' TEXT);'
FROM (SELECT attrname FROM keys);
@drewcsillag
drewcsillag / createtrial.java
Last active December 7, 2016 14:53
Create a trial
final ThreadPoolExecutor experimentExecutor = new ThreadPoolExecutor(
1, 1, 0, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(1));
trial = new Trial(
experimentExecutor,
metricRegistry,
"password.succession",
() -> WhichReturn.valueOf(featureService.getFeature("password.succession")),
Trial.IDENTITY_WRAPPER, hibernateWrapper);
@drewcsillag
drewcsillag / runtrial.java
Last active December 6, 2016 21:16
run a trial
final Observable<Boolean> result = trial.doTrial(
control, experiment, trialIsEqual, "checkpassword");
@drewcsillag
drewcsillag / trialresultisequal.java
Last active December 6, 2016 19:35
create trial is equal
final IsEqual<TrialResult<Boolean>> trialIsEqual = Trial.makeIsEqual(
bothOrNeitherThrow, passwordCheckIsEqual.pairwiseEqual());
@drewcsillag
drewcsillag / moregeneralisequal.java
Last active December 7, 2016 17:00
More generalized isEqual
final IsEqual<Boolean> passwordCheckIsEqual = new IsEqual<Boolean>() {
@Override
public boolean apply(final Boolean control, final Boolean experiment) {
final List<String> mismatches = new ArrayList<>();
final IsEqualUtil.MismatchConsumer consumer = IsEqualUtil.consumeToList(
mismatches);
final boolean success = checkNullity(control, experiment, consumer)
&& startCompare(consumer)
.dotEquals(control, experiment, "checkmatches")
.get();
@drewcsillag
drewcsillag / bothorneitherthrow.java
Last active December 7, 2016 16:31
both or neither throw
final IsEqual<Throwable> makeBothOrNeitherThrow = new IsEqual<Throwable>() {
@Override
public boolean apply(final Throwable control, final Throwable experiment) {
final boolean result = ((control == null) == (experiment == null));
if (!result) {
/// log relevant info to Kafka
}
return result;
}
};
@drewcsillag
drewcsillag / controlexperiment.java
Last active December 6, 2016 19:02
Example of trial framework control and experiment
final Callable<Observable<Boolean>> control =
() -> oldPasswordCeckingApi.matches(username, password);
final Callable<Observable<Boolean>> experiment =
() -> authService.doPasswordCheck(username, password);
[ see https://github.com/drewcsillag/rebaseit ]
[note
gls = git log --format='format:%h : %s'
]
This is a theoretical example based off of real events.
So I'm in my git repo for my project and I start doing work.
Because git is awesome and I do stupid things, I commit *all* the
time. Between refactoring passes and tests passing, I just
commit, because editor undo only goes so far sometimes. Not only
@drewcsillag
drewcsillag / gist:982ace5f3d779b38b953
Last active August 29, 2015 14:09
revert docker from 1.3.1 to 1.0....
sudo apt-get purge lxc-docker lxc-docker-1.3.1
sudo rm -rf /var/lib/docker
sudo sppuppet agent -t -v
@drewcsillag
drewcsillag / gist:1d7f51ec0c17f7237f86
Created June 13, 2014 18:31
script I have in mind to start kubernetes
etcd --name=localkubernetes &
kubelet -etcd_servers=http://localhost:4001 &
apiserver -etcd_servers=http://localhost:4001 machine_list=localhost:10250 &
...more servers here...
echo "Press enter to stop everything>!"
read blah