Skip to content

Instantly share code, notes, and snippets.

View ianopolous's full-sized avatar

Dr Ian Preston ianopolous

View GitHub Profile
@ianopolous
ianopolous / id-proof.md
Last active May 12, 2023 04:03
Identity Link Proof
@ianopolous
ianopolous / FileProperties.md
Created September 2, 2019 16:19
file system properties
tar zip cpio git casync ostree squashfs ar (text) iso
has canonical packed form (e.g. no implicit traversal order) not by default yes (not sure how stable) yes N/A
Can be canonicalized (with enough flags) yes (with arbitrary choices no
seekable no yes sorta (packs: no, and don't ask) catar yes
sparse files (kernel API is very recent) yes long story (will store zeros efficiently and…) yes no
abilities: mmap'able yes, but not useful due to no seek catar is
abilities: unpack related trees can conserve disk space no no no hardlink or reflinks hardlink no
abilities: pack related tree can dedup no no yes (it's complicated) rabin blocking (very good) file-scale (no chunking)
abilities: SPECIAL applications popular for src releases source
@ianopolous
ianopolous / JavacFail.java
Last active August 16, 2019 09:14
A bug in javac causing compilation failure
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
public class JavacFail {
static final Map<String, String> MAP = new HashMap<>();
static final String HELP = "" + MAP.entrySet().stream()
.map(e -> e.getKey())
.collect(Collectors.joining(""));
}
@ianopolous
ianopolous / ArraySafety.java
Created February 12, 2017 17:29
Demonstrate non thread safety of arrays
import java.util.concurrent.*;
import java.util.stream.*;
public class ArraySafety {
public static void main(String a){
int threads = 8;
ForkJoinPool pool = new ForkJoinPool(threads);
for (int x =0; x < 100; x++) {
byte[] b = new byte[4096];

Keybase proof

I hereby claim:

  • I am ianopolous on github.
  • I am ianopolous (https://keybase.io/ianopolous) on keybase.
  • I have a public key whose fingerprint is 991E A2B4 92E0 634F CFB1 BE22 945D 0FD5 AD39 0507

To claim this, I am signing this object:

(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(inhibit-startup-screen t))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
function debug() { java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 $@;}
function runcp() { time java -cp Proteus.jar:$1 com.emt.proteus.runtime32.ProcessEmulator -newint -ld-linux ${@:2};}