Skip to content

Instantly share code, notes, and snippets.

View kelunik's full-sized avatar

Niklas Keller kelunik

View GitHub Profile

Given you have the following classes:

interface GenericInterface<T> {
   default List<T> returnGenericList() {
      return List.of();
   }
}

// Note: T isn't the same as in GenericInterface
public class PlatformContextProvider implements ContextDataProvider {
private static final Map<String, String> CONTEXT = new ConcurrentHashMap<>();
static {
CONTEXT.put("service.version", ...);
CONTEXT.put("service.environment", ...);
}
@Override
@kelunik
kelunik / HashFunction.ts
Created October 6, 2020 10:48 — forked from halfnibble/HashFunction.ts
Hash function to debug absolute paths sent to the update chunk hash method in webpack.
import * as crypto from 'crypto';
import * as fs from 'fs';
import * as path from 'path';
/**
* Interface for Webpack's hashFunction
*/
export interface IHashFunction {
update: (data: string | Buffer, encoding: string) => IHashFunction;
digest: (encoding: string) => string | Buffer;
<?php
$confirmedEmails = yield $db->select()
->stream()
->filter(fn (User $user) => $user->isEmailConfirmed())
->map(fn (User $user) => $user->getEmail())
->toArray();
$pagedConfirmedUsers = yield $db->select()
->stream()
<?php
use Amp\Loop\Internal\TimerQueue;
use Amp\Loop\Watcher;
require __DIR__ . '/vendor/autoload.php';
$input = \file_get_contents('/home/kelunik/Downloads/tq-A805-3.log');
$timerQueue = new TimerQueue;
@kelunik
kelunik / Form.vue
Last active January 17, 2020 21:10
<template>
<VueForm action="/api/test.json">
<FormLabel label="First name">
<FormInput name="firstName"/>
</FormLabel>
<FormLabel label="Last name">
<FormInput name="lastName">
</FormLabel>
@kelunik
kelunik / cmd.txt
Last active December 17, 2019 19:25
gdb --batch --command=gdb.bt -return-child-result --args ./a.out
<?php
namespace Kelunik\LightD;
use Amp\Deferred;
use Amp\Delayed;
use Amp\Dns\DnsException;
use Amp\Dns\Record;
use Amp\Loop;
use Amp\Promise;
@kelunik
kelunik / example.php
Created April 17, 2019 16:41
Short closure return value handling
<?php
class EventManager {
private $handlers;
public function onEvent(callable $callback) {
$this->handlers[] = $callback;
}
public function invoke(Event $event) {
<?php
use Amp\Loop;
use Amp\Mysql\ConnectionConfig;
use Amp\Mysql\Pool;
use Amp\Mysql\ResultSet;
use Amp\Mysql\TimeoutConnector;
use Amp\Socket\ClientTlsContext;
use Illuminate\Support\Collection;