Skip to content

Instantly share code, notes, and snippets.

View CharlesOkwuagwu's full-sized avatar

Charles CharlesOkwuagwu

View GitHub Profile
@CharlesOkwuagwu
CharlesOkwuagwu / fisher_yates.ex
Created July 29, 2015 15:07
Fisher–Yates Shuffle Elixir Implemetation
defmodule FisherYates do
@moduledoc """
Fisher–Yates Shuffle explained and implemented in javascripy with animated demo - http://bost.ocks.org/mike/shuffle/
Reference implementation: http://stackoverflow.com/a/12646864/44080
Usage:
iex(2)> FisherYates.shuffle [1, 2, 3, 4, 5, 6, 7, 8, 9]
[5, 7, 8, 9, 4, 3, 6, 1, 2]
"""
@CharlesOkwuagwu
CharlesOkwuagwu / to_words.ex
Last active December 5, 2015 17:59
Converts any positive integer to words (up to 10^1004 -1 :))
defmodule ToWords do
@moduledoc """
Converts any positive integer to words (up to 10^1004 -1 :))
"""
#http://www.olsenhome.com/bignumbers/
@illion ~w[
@CharlesOkwuagwu
CharlesOkwuagwu / error1.txt
Last active February 23, 2016 16:09
Error trying file upload with Sugar-framework and Plug.Upload
Erlang/OTP 18 [erts-7.2.1] [64-bit] [smp:8:8] [async-threads:10]
Compiled lib/simple/controllers/main.ex
Generated index.html.eex
Generated show.html.eex
Generated index.html.eex
Interactive Elixir (1.3.0-dev) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
16:54:44.422 [error] Ranch listener Simple.Router.HTTP had connection process started with :cowboy_protocol:start_link/4 at #PID<0.451.0> exit with reason: {{%Plug.Parsers.ParseError{exception: %RuntimeError{message: "could not find process Plug.Upload. Have you started the :plug application?"}, plug_status: 400}, [{Plug.Parsers.MULTIPART, :parse, 5, [file: 'lib/plug/parsers/multipart.ex', line: 14]}, {Plug.Parsers, :reduce, 6, [file: 'lib/plug/parsers.ex', line: 186]}, {Simple.Router, :do_call, 2, [file: 'lib/simple/router.ex', line: 1]}, {Plug.Adapters.Cowboy.Handler, :upgrade, 4, [file: 'lib/plug/adapters/cowboy/handler.ex', line: 15]}, {:cowboy_protocol, :execute, 4, [file: 'src/cowboy_protocol.erl', line: 442]}]}, {Simple.Router, :call, [%P
@CharlesOkwuagwu
CharlesOkwuagwu / too_many_warnings.ex
Created February 28, 2016 17:09
too many warnings
defp send_messages(msg_list, s, do_timer_reset) do
if do_timer_reset do
if s.acks != [] do
ids = s.acks
s = %{s | acks: []}
log "adding acks: #{inspect ids}"
msg_list = msg_list ++ [{TL.msgs_ack(ids), false}]
end
# if s.resends != [] do
@CharlesOkwuagwu
CharlesOkwuagwu / factorizer.ex
Last active June 19, 2016 02:13
Fast simple integer Factorizer
defmodule Factorizer do
def factorize(n) do
t = System.system_time
x = pollard(n, 2_000_000, 2_000_000)
y = div(n, x)
p = min(x, y)
q = max(x, y)
@CharlesOkwuagwu
CharlesOkwuagwu / Telegram-proc.ex
Last active September 29, 2016 17:37
sample data-proc for telegram
## Process Inbound Data
def handle_info({:tcp, _, data}, s) do
s = proc_raw(s.extra <> data, %{s | extra: ""})
:inet.setopts(s.socket, active: :once)
{:noreply, s}
end
defp proc_raw(raw, s) do
@CharlesOkwuagwu
CharlesOkwuagwu / bulma-test.html
Created October 11, 2016 12:21
center an image
<div class="hero-body">
<div class="container has-text-centered">
<div class="columns is-vcentered">
<div class="column">
<h1 class="title is-1 is-bold">
RSG Management Portal
</h1>
<h2 class="subtitle is-4">
Simple. Efficient. Fast.
</h2>
// Core types (no need to gen)
//vector#1cb5c415 {t:Type} # [ t ] = Vector t;
///////////////////////////////
/////////////////// Layer cons
///////////////////////////////
//invokeAfterMsg#cb9f372d msg_id:long query:!X = X;
//invokeAfterMsgs#3dc4b4f0 msg_ids:Vector<long> query:!X = X;
defmodule TL do
use Bitwise
defmodule UserInfo do
defstruct user_id: nil,
first_name: "",
last_name: "",
mobile: "",
access_hash: 0,
username: ""
@CharlesOkwuagwu
CharlesOkwuagwu / App.vue
Last active September 9, 2017 02:29
vuetify project
<template lang="pug">
div#app
v-fade-transition(mode="out-in")
component(:is="component")
slot
</template>
<script>
const meta = require('./router/meta.json')