Skip to content

Instantly share code, notes, and snippets.

View wilk's full-sized avatar

Vincenzo Ferrari wilk

View GitHub Profile
function InMemoryStorage() {
return {
store: <T>(): Map<string, T> => new Map(),
set: <T>(key: string, value: T) => (store: Map<string, T>) => store.set(key, value),
get: <T>(key: string) => (store: Map<string, T>): T => store.get(key),
};
}
const storage = InMemoryStorage();
const store = storage.store();
storage.set<number>('a', 10)(store);
@wilk
wilk / OOP_FP.ts
Last active March 22, 2020 14:48
OOP vs FP (both with immutables)
interface IElement {
state: string;
temperature: number;
warm: (degrees: number) => IElement;
cool: (degrees: number) => IElement;
deriveState: (temperature: number) => string;
};
class WaterElement implements IElement {
private _state = 'liquid';
@wilk
wilk / cloudSettings
Created April 5, 2019 07:53 — forked from kmox83/cloudSettings
Visual Studio Code Settings Sync Gist
{"lastUpload":"2019-04-04T10:16:23.142Z","extensionVersion":"v3.2.7"}
@wilk
wilk / keybase.md
Created March 25, 2019 13:49
keybase proof

Keybase proof

I hereby claim:

  • I am wilk on github.
  • I am wilky (https://keybase.io/wilky) on keybase.
  • I have a public key ASDZt0A4Ieh9cSawmTbDB_DkoEDiPqgfRtTzZfVYCSgHvwo

To claim this, I am signing this object:

@wilk
wilk / settings.json
Created March 25, 2019 09:19
vs code settings
{
}
@wilk
wilk / table.php
Created November 28, 2018 08:10
table
<table>
<tr>
<td>INDEX</td>
<td>CAZZO</td>
<td><input type="button" value="CAZZO" onclick="sendInterface(this.value)">SEND DATA TO ANSIBLE</button>
</tr>
</table>
@wilk
wilk / fetch.js
Created November 28, 2018 08:07
fetch post qs
async function sendInterface(data) {
try {
await fetch(`your_page.php?data=${data}`, {method: "POST"})
} catch (err) {
console.error(err)
}
}
@wilk
wilk / microjob-async.js
Created September 8, 2018 10:03
microjob async example
const res = await job(async () => {
let i = 0
for (i = 0; i < 1000000; i++) {
for (let j = 0; j < 1000000; j++) {
for (let k = 0; k < 1000000; k++) {
await http.get('www.google.it')
}
}
}
@wilk
wilk / microjob-data.js
Created September 8, 2018 10:00
microjob data example
const res = await job(data => {
let i = 0
for (i = 0; i < data.counter; i++) {}
return i
}, {data: {counter: 1000000}})
console.log(res) // 1000000
@wilk
wilk / microjob-context.js
Last active September 8, 2018 10:00
microjob context example
const counter = 1000000
const res = await job(() => {
let i = 0
for (i = 0; i < counter; i++) {}
return i
}, {ctx: {counter}})
console.log(res) // 1000000