Skip to content

Instantly share code, notes, and snippets.

View kakajika's full-sized avatar
🏠
STAY HOME

Keita Kajiwara kakajika

🏠
STAY HOME
View GitHub Profile
@kakajika
kakajika / zipWith.swift
Created January 12, 2018 06:15
Simple zipWith method for Sequence in Swift.
extension Sequence {
func zipWith<S2: Sequence>(_ seq2: S2) -> Zip2Sequence<Self, S2> {
return zip(self, seq2)
}
}
extension Unicode.Scalar {
var width: UInt32 {
let code = self.value
if (code >= 0 && code <= 128) {
return 1
} else {
return 2
}
}
}
@kakajika
kakajika / DeployGateTree.kt
Last active April 12, 2018 08:34
Timber Tree implementation for logging with DeployGate.
class DeployGateTree : Timber.Tree() {
override fun log(priority: Int, taf: String?, message: String, t: Throwable?) {
when (priority) {
Log.VERBOSE -> DeployGate.logVerbose(message)
Log.INFO -> DeployGate.logInfo(message)
Log.DEBUG -> DeployGate.logDebug(message)
Log.WARN -> DeployGate.logWarn(message)
Log.ERROR -> DeployGate.logError(message)
}
@kakajika
kakajika / rx-flux.tsx
Last active November 2, 2017 23:42
Simple type-safe flux implementation with RxJS & TypeScript. Inspired by flumpt
import * as React from "react"
import * as Rx from "rxjs"
export class Action<T> {
constructor(public key: string) {}
}
interface FluxContext {
dispatch: <T extends any>(action: Action<T>, value: T) => void
}
@kakajika
kakajika / Brainf_ck.kt
Last active December 5, 2016 11:23
A simple customizable Brainf*ck implementation in Kotlin.
import java.io.File
import java.io.InputStream
import java.io.OutputStream
import java.io.Reader
enum class Token {
NEXT, PREV, INC, DEC, GET, PUT, LOOP, JUMP, ROOT
}
interface Parser {
@kakajika
kakajika / ReaderEx.kt
Last active December 2, 2016 02:11
java.io.Reader extensions for doing something with each chars in Kotlin.
fun Reader.forEachChars(block: (Char) -> Unit) {
while (true) {
val c = read()
if (c != -1) {
block(c.toChar())
} else return
}
}
fun <R> Reader.mapEachChars(transform: (Char) -> R): List<R> {
import Foundation
enum PPAP {
case Start
indirect case Pen(PPAP), Apple(PPAP), Pineapple(PPAP), Finish(PPAP)
var output: String {
switch self {
case .Start: return "ピッピッピコ ピコ太郎〜♪"
case .Pen(let p): return "\(p.output)\nI have a ✏️"
case .Apple(let p): return "\(p.output)\nI have an 🍎"
export function RxAutoDispose<T extends React.ComponentClass<any>>(target: T): T {
target.prototype.disposer = new Rx.Subscription()
const originalMount = target.prototype.componentDidMount
Object.defineProperty(target.prototype, "componentDidMount", {
value: function() {
console.log("componentDidMount")
return originalMount.apply(this, arguments)
}
})
@kakajika
kakajika / RxFirebaseDatabase.kt
Last active April 27, 2020 12:55
FirebaseDatabase events listener with RxKotlin
import com.google.firebase.database.*
import rx.Observable
import rx.lang.kotlin.add
import rx.lang.kotlin.observable
/**
* @author kakajika
* @since 2016/11/08
*/
class RxFirebaseDatabase {
@kakajika
kakajika / hubot-kuromoji.coffee
Created September 1, 2016 11:14
Hubot script for showing result of kuromoji.
# kuromoji.coffee
#
# Description:
# Bot for detecting ikku pattern.
#
{tokenize} = require 'kuromojin'
{nfkc} = require 'unorm'
listit = require 'list-it'