Skip to content

Instantly share code, notes, and snippets.


Anton Kaliaev melekes

View GitHub Profile
melekes /
Last active Feb 22, 2022
Wavegirls Dashing widget




Dashing widget to display random girls. Check out this video to see how it works.


melekes /
Created Dec 27, 2021
BST || k_largest element
use anyhow::anyhow;
use anyhow::Result;
use std::mem::swap;
type Child = Option<Box<Node>>;
#[derive(Debug, Eq, PartialOrd, PartialEq, Clone)]
pub struct Node {
pub value: i32,
melekes /
Created Aug 30, 2013
Yet another Google Calendar Dashing widget

Yet another Google Calendar Dashing widget

Yet another Google Calendar Dashing widget


Dashing widget to display first two coming-up Google Calendar events.

Basically, you do not need more than two events on your dashboard, but it can be easily extended to the neighboring cells and show, say, 4 events instead of 2.

View stdlib_logger.go
package log
import (
stdlog "log"
type stdlibLogger struct {
melekes /
Created Feb 15, 2020 — forked from calebamiles/
Notes on Open Source Governance Models

Node.js Foundation

  • Healthy Open Source
    • explicit goal to be a lightweight process
    • concrete ability to scale to hundreds of contributors
    • good fundamental goals
      • transparency
      • participation
      • efficacy
    • ecosystem projects encouraged but not required to adopt foundation governance templates
  • creation of projects under TSC explicity delegates authority from TSC to project TC
View overflow_uint64.go
// addOrMax performs safe addition: if result overflows, it returns MaxUint64
func addOrMax(accum, value uint64) uint64 {
if (accum + value) < accum {
return math.MaxUint64
} else {
return accum + value
// subOrZero performs safe subtraction: if result underflows, it returns 0
melekes / do_monad.erl
Last active Dec 27, 2019
Erlang snippets
View do_monad.erl
-spec do(any(), [fun((...) -> any())]) -> any().
do(Arg, []) ->
do(Arg, [Fun | Funs]) ->
case Fun(Arg) of
{error, Data} ->
Data ->
do(Data, Funs)
melekes /
Last active Jun 1, 2019
Requirements for a Tendermint client

Requirements for a Tendermint client

Broadcasting transactions

  1. An evil proposer can drop valid transactions (tendermint/tendermint#3322). To ensure tx A will be committed, the client needs to a) send it to multiple nodes b) subscribe for its result or query the result later using /tx API endpoint (requires the tx indexer enabled)

  2. Multiple nodes above requirement comes from a simple fact that an evil node can drop your tx.