Skip to content

Instantly share code, notes, and snippets.

View okapies's full-sized avatar
💭
⌨️

Yuta Okamoto okapies

💭
⌨️
View GitHub Profile
@okapies
okapies / keymap.c
Last active July 8, 2021 12:54
ErgoDash keymap implementing “correct” dual role RAISE/LOWER keys without `LT` advanced keycode
#include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
#define _QWERTY 0
#define _LOWER 1
#define _RAISE 2
#define _ADJUST 16
enum custom_keycodes {
@okapies
okapies / perf_chx_take.py
Last active February 12, 2019 09:59
Benchmark script for `ndarray.take` in ChainerX
import argparse
import timeit
parser = argparse.ArgumentParser()
parser.add_argument('--number', type=int, default=20)
parser.add_argument('--device', type=str, default="native:0")
parser.add_argument('--batch-size', type=int, default=1)
parser.add_argument('--indices', choices=['list', 'numpy', 'chainerx'])
parser.add_argument('--data', default='mnist', help='Path to the directory that contains MNIST dataset')
args = parser.parse_args()
@okapies
okapies / perf_variable.py
Last active January 21, 2019 10:26
Benchmark script for `Variable` in Chainer
import argparse
import timeit
parser = argparse.ArgumentParser()
parser.add_argument('--number', type=int, default=10000000)
parser.add_argument('--device', type=str, default="native:0")
parser.add_argument('--variables', type=int, default=1)
parser.add_argument('--require-grad', action="store_true", default=False)
parser.add_argument('--batch-size', type=int, default=1)
parser.add_argument('--unsafe', action="store_true", default=False)
@okapies
okapies / perf_extract_apply_in_data.py
Last active January 17, 2019 11:28
Benchmarking for `_extract_apply_in_data` in Chainer's `function_node`
import argparse
import timeit
parser = argparse.ArgumentParser()
parser.add_argument('--number', type=int, default=10000000)
parser.add_argument('--device', type=str, default="native:0")
parser.add_argument('--nargs', type=int, default=2)
parser.add_argument('--wrap-variable', action='store_true', default=False)
parser.add_argument('--batch-size', type=int, default=1)
args = parser.parse_args()
@okapies
okapies / chainer_iter_perf.py
Last active December 20, 2018 11:42
A performance testing for Chainer's `Iterator` on various `ndarray`s
import sys
import timeit
sys.stdout.write("numpy array: ")
print(
timeit.timeit(
"[iter.next() for i in range(0, 60000, 100)]",
setup="""
import numpy as np
import chainer
import $ivy.`io.skuber::skuber:2.0.5`
import skuber._
import skuber.json.format._
val nginxSelector = Map("app" -> "nginx")
val nginxService = Service("nginx").withSelector(nginxSelector).exposeOnNodePort(30001 -> 80)
import akka.actor.ActorSystem
import akka.stream.ActorMaterializer
@okapies
okapies / gist:b5880ac5cb507871ad43e6dd13d8b835
Created January 9, 2018 02:52
Kubernetes 入門メモ

ローカル環境で Kubernetes を構築できる Minikube (https://github.com/kubernetes/minikube) を使っていろいろ試してみる。

導入手順

公式の手順にしたがって手元のマシンに minikubekubectl をインストールする。基本的に VirtualBox で動かすので併せてインストールする(Linux の場合は --vm-driver=none を使えば Docker 上で動かせるが起動時にセキュリティ関連の設定をするように警告が出る)。

触ってみる

下記の記事の手順にしたがって操作してみる。minikube start で k8s を起動したあとは kubectl を使う。ダッシュボードを出すには minikube dashboard

https://qiita.com/nirasan/items/6207cf7ef94e04640fbf

@okapies
okapies / UserClient.scala
Last active December 4, 2017 08:11
akka-http and JSON
import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.model.{HttpMethods, HttpRequest, StatusCodes, Uri}
import akka.http.scaladsl.unmarshalling.{FromEntityUnmarshaller, Unmarshal}
import akka.stream.ActorMaterializer
import de.heikoseeberger.akkahttpcirce.FailFastCirceSupport
import scala.concurrent.{ExecutionContext, Future}
import scala.util.{Failure, Success}
@okapies
okapies / QueryOptionalColumn.scala
Created November 18, 2017 11:06
Problem in filtering an optional column in Slick 3.2
// ref. https://gist.github.com/cvogt/9193220
// See the example in http://slick.lightbend.com/doc/3.2.1/gettingstarted.html
// I add an optional `buyer` column to Suppliers:
class Suppliers(tag: Tag) extends Table[(Int, String, String, String, String, String, Option[String])](tag, "SUPPLIERS") {
...
def buyer = column[Option[String]]("BUYER")
...
}
@okapies
okapies / keymap.c
Created November 3, 2017 16:53
QMK Layer Tap (LT) in Let's Split
#include "lets_split.h"
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.