Skip to content

Instantly share code, notes, and snippets.

View kevinmungai's full-sized avatar

Kevin Mungai kevinmungai

View GitHub Profile
@kevinmungai
kevinmungai / sapper_with_firebase_hosting.md
Created December 27, 2020 07:15
Sapper with Firebase Hosting
  1. Create Directory for your app mkdir my-app
  2. get the sapper template npx degit "sveltejs/sapper-template#rollup"
  3. Install the packages npm i
  4. Install express server npm i express
  5. Initialize Firebase firebase init
@kevinmungai
kevinmungai / CurrencyPtBrInputFormatter.dart
Created December 4, 2020 07:51 — forked from andre-bahia/CurrencyPtBrInputFormatter.dart
Flutter TextInputFormatter Currency pt_BR
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
class CurrencyPtBrInputFormatter extends TextInputFormatter {
TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
if(newValue.selection.baseOffset == 0){
return newValue;
}
@kevinmungai
kevinmungai / web-component-v1.cljs
Created April 3, 2020 15:02 — forked from thheller/web-component-v1.cljs
create web-component v1 in cljs without class
(defn component []
(js/Reflect.construct js/HTMLElement #js [] component))
(set! (.-prototype component)
(js/Object.create (.-prototype js/HTMLElement)
#js {:connectedCallback
#js {:configurable true
:value
(fn []
(this-as this
@kevinmungai
kevinmungai / main.dart
Created January 1, 2020 23:25 — forked from felangel/main.dart
Bloc with SearchDelegate
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:bloc/bloc.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@kevinmungai
kevinmungai / file_io.clj
Created September 12, 2019 14:11 — forked from mfikes/file_io.clj
Async file io in Clojure
(ns api-server.file-io
(:use [clojure.tools.logging :only (info warn error)])
(:import (java.nio.channels CompletionHandler AsynchronousFileChannel)
(java.nio ByteBuffer)
(java.nio.file.attribute FileAttribute)
(java.nio.file StandardOpenOption)
(java.util.concurrent Executors))
(:require [clojure.core.async :as async :refer [chan go put! close!]]
[clojure.java.io :as io]))
@kevinmungai
kevinmungai / fsm_ussd.clj
Created September 11, 2019 15:41
finite state machine - ussd
(ns ussd.fsm-utils
(:require
[clojure.string :as str]
[clojure.edn :as edn]
[ussd.sms :as sms]))
(defn check-via
[via]
(let [choices (:choices (edn/read-string (slurp "../../ussd_fsm.edn")))]
(if (contains? choices via)
@kevinmungai
kevinmungai / Curry.md
Created December 19, 2017 14:01
Understanding of how the curry function works in Haskell

Curry in Haskell

So today I am going to go through the function curry in Haskell. I am finding a hard time trying to understand it and this is my way of trying to understanding it.

First the type signature

This is what I get when I type in :t curry

curry :: ((a, b) -> c) -> a -> b -> c
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package areacalculator;
import javax.swing.*;
/**
*
@kevinmungai
kevinmungai / animationOpenGL.cpp
Created November 21, 2017 09:51
Animation in OpenGL
// We will be doing animation in OpenGL
// key concepts are:
// 1. the idle function - idle() will post a replaint and this will lead to activation of the display() function
// 2. Also we will be doing double buffering like this: glutInitDisplayMode(GLUT_DOUBLE);
// In addition we will be introducing other functions such as glPushMatrix, glPopMatrix and glSwapBuffers
#include <windows.h>
#include <GL/glut.h>
#include <GL/gl.h>
@kevinmungai
kevinmungai / checkersTranslated.cpp
Last active November 16, 2017 08:38
translation leading to checkers pattern
/** GL02Primitive.cpp: Vertex, Primitive and Color* Draw Simple 2D colored Shapes: quad, triangle and polygon.*/
#include <windows.h> // for MS Windows
#include <GL/glut.h> // GLUT, include glu.h and gl.h/* Initialize OpenGL Graphics */
void initGL() {
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, 1000.0, 0.0, 1000.0);
glViewport(0,0,1000,1000);
glClearColor(1.0f, 1.0f, 1.0f, 1.0f); // Black and opaque