Skip to content

Instantly share code, notes, and snippets.

View bbottema's full-sized avatar

Benny Bottema bbottema

View GitHub Profile
@bbottema
bbottema / Read ajax binary response data to base64
Created September 30, 2015 18:19
Complete example using FormData to post a variable and file to a service and parsing the binary result to base64
var formData = new FormData();
formData.append("user", "Mario");
formData.append("testdot", imgData);
createRequest("POST", "some webservice", callback).send(formData);
/*
* SOLUTION 1
*/
function callback(file) {
var reader = new FileReader();
@bbottema
bbottema / Express with base64 file upload and read back to client
Last active December 14, 2022 14:34
A complete Express 4 example using multer to read base64 png data and reading the file back to the client as binary data
var express = require('express');
var fs = require('fs');
var multer = require('multer'); // v1.0.5
var app = express();
app.use(express.static('./public'));
var upload = multer(); // for parsing multipart/form-data
app.post('/testFormData', upload.array(), function(req, res) {
@bbottema
bbottema / Express with multipart-form-data file upload and read back to client
Last active September 30, 2015 19:20
A complete Express 4 example using multer to read multipart/form-data png file upload and reading the file back to the client as binary data
var express = require('express');
var busboy = require('connect-busboy'); // middleware for form/file upload
var fs = require('fs');
var app = express();
app.use(express.static('./public'));
app.use(busboy());
app.post('/testFormDataBinary', function(req, res) {
req.pipe(req.busboy);
@bbottema
bbottema / jquery-css.js
Last active May 28, 2018 13:48
jquery plugin that triggers event when a css style property is being changed
/*
Usage:
$ele.on('style', function(e, prop, value) {
if (prop == 'left') {
console.debug('new value for left: ' + value);
}
});
*/
// This plugin also throws events for individual style properties incase the entire 'style' attribute is removed
(function() {
@bbottema
bbottema / PizzaSorter.java
Last active October 26, 2021 17:08
Demonstration of various techniques for sorting based on multiple properties. Also, see: http://www.bennybottema.com/2013/06/21/ways-to-sort-lists-of-objects-in-java-based-on-multiple-fields/
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import com.google.common.collect.ComparisonChain;
import org.apache.commons.beanutils.BeanComparator;
import org.apache.commons.collections.comparators.ComparatorChain;
import org.apache.commons.lang3.builder.CompareToBuilder;
@bbottema
bbottema / List 2 Pairs
Created October 23, 2017 08:21 — forked from ktejnora/List 2 Pairs
Java 8 Create list of pairs from List of items. Java does not have Pair and groupBy uses AtomicInteger trick.
package cz.tejnora.pokusy;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
@bbottema
bbottema / index.html
Created June 7, 2018 19:06
Console log to HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Log to HTML</title>
<link rel="icon" href="data:;base64,=">
<script>
(function(eleLocator) {
fixLoggingFunc('log');
@bbottema
bbottema / Dijkstra.java
Created September 6, 2018 17:50
Minimal Dijkstra Java (uses Lombok)
// cleaned up generics version of Baeldung's Dijkstra (https://www.baeldung.com/java-dijkstra)
public class Dijkstra {
public static <T> void findShortestPathToAllOtherNodes(Node<T> startingPoint) {
startingPoint.setCost(0);
Set<Node<T>> settledNodes = new HashSet<>();
Set<Node<T>> unsettledNodes = new HashSet<>();
unsettledNodes.add(startingPoint);
@bbottema
bbottema / example.sh
Last active November 27, 2023 21:40
Truncate GIT history
# <commit-rev> = commit you want to reset repo to
# <target-branch> = branch you want to truncate (probably master or develop)
git checkout --orphan temp <commit-rev>
git commit -m "Truncate history or Initial commit"
git rebase --onto temp <commit-rev> <target-branch>
git push --force
@bbottema
bbottema / REST.md
Created March 4, 2019 15:33 — forked from chrisnicola/REST.md
Is REST specific to HTTP?

Davy Brion and Jef Claes were discussing whether or not you can have REST without HTTP. Is this another peanut butter and chocolate thing? I think it's hard to extract REST from HTTP because that is how it is defined. I mean quite literally how it is defined in Fielding's dissertation. REST, the term, is short for "representational state transfer" but it still specifically describes an architectural style of representing state transfer via the HTTP specification.

But what if we didn't let such a little thing like semantics get in our way here and only took REST for it's literal name definition and not as the specification laid out in Fielding's dissertation? What if REST only meant a representation of state transfers? I'm not muc