Skip to content

Instantly share code, notes, and snippets.

View keik's full-sized avatar

KATO Kei keik

View GitHub Profile
/**
* Hook of List UI state manager
* - filter
* - pagination
* - sort
*
* @flow
*/
export const useFunctionalList = ({ items, filterableColumns }) => {
const [listOpts, setListOpts] = React.useState({
@keik
keik / japanese.json
Created December 5, 2017 13:55
Karabiner-Elements で shift + space での IME トグル
{
"title": "For Japanese",
"rules": [
{
"description": "toggle eisuu with shift + space",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "spacebar",
@keik
keik / designable-input-file.html
Last active February 1, 2016 02:00
example of designable <input type="file"> implementation
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
<body>
<h1>Designable <code>&lt;input type="file"&gt;</code></h1>
@keik
keik / smbp
Created January 12, 2016 00:11
function smbp() {
if [[ $1 == "smb"* ]]; then
echo $(${1//\//\\\\}#smb:)
else
echo smb:${1//\\/\/}
fi
return 0
}
var fs = require('fs');
function autoReload (pkg, varName) {
fs.watch(pkg, function () {
this[varName] = reload(pkg);
}.bind(this));
}
function reload (pkg) {
delete require.cache[require.resolve(pkg)];
return require(pkg);
/**
* Internet Explorer's maxlength bug fix
*
* @author keik <k4t0.kei@gmail.com>
* @license MIT
*
* [ref]
* https://support.microsoft.com/ja-jp/kb/2922126
*
* The workaround in the above article could causes other problems such as render issues.
gulp.task('connect', function() {
connect.server({
port: 8888,
middleware: function (connect, opt) {
return [
function (req, res, next) {
var urlobj = url.parse(req.url);
var filename = __dirname + urlobj.pathname + (urlobj.pathname.substr(-1) === '/' ? 'index.html' : '');
if (!filename.match(/\.s?html$/)) {
@keik
keik / build.js
Created June 29, 2015 08:24
gulpfiles
module.exports = function (gulp, config) {
var util = require('util'),
path = require('path'),
es = require('event-stream'),
gutil = require('gulp-util'),
del = require('del'),
filter = require('gulp-filter'),
inject = require('gulp-inject'),
htmlmin = require('gulp-htmlmin'),
@keik
keik / わたしとJAVA.md
Last active August 29, 2015 14:10
今すぐダウンロード

Springの抽象化技法(個人の意見です)

※ Spring 歴 2 週間です。

フルスタックフレームワークなので色んな技術要素があるが、抽象化手法のアプローチがそれぞれで異なり、当たり外れを感じる。

技術 つらみ(5段階) 詳細
Spring MVC (Spring Framework) 2 REST の原則を部分採用し、リクエストの処理を、URI・HTTPメソッド・パラメータの組み合わせに応じて振り分けることで、制御フローを制御する。URI に .json といった拡張子をつけることで特定のメディアタイプを要求する Content Negotiation 機能をあわせると、少ないルールで CRUD 処理、さらに画面遷移か Web サービスかを決定できる可能性があり、かつ実装の自由さは委ねられている。
AOP (Spring Framework) 1 特定の処理に追加処理を仕込むための条件をパターンマッチで定義し、また仕込むタイミングを 処理実行前処理実行後 など 5 種より選択することで、制御フローを制御する。 ルールがシンプルで、かつ仕込む処理内容は自由。
@keik
keik / latex.py
Last active August 29, 2015 14:05
sphinx.writer.latex -- fix double footnote in tabulary
# -*- coding: utf-8 -*-
"""
sphinx.writers.latex
~~~~~~~~~~~~~~~~~~~~
Custom docutils writer for LaTeX.
Much of this code is adapted from Dave Kuhlman's "docpy" writer from his
docutils sandbox.