Skip to content

Instantly share code, notes, and snippets.

@mokjpn
mokjpn / ImaDokoStack.py
Last active April 12, 2018 02:36
Display ownTracks location on the M5Stack LCD.
from m5stack import lcd
from mqtt import MQTTClient
import time
import ujson
import ussl
import socket
import machine
MACHINE=hex(int.from_bytes(machine.unique_id(), 'big'))[2:]
@mokjpn
mokjpn / M5StackViewImagebyURL.py
Last active July 21, 2022 03:26
M5Stack sample code: Download a JPEG image from given URL, then display it on LCD.
from m5stack import lcd
import socket
import os
def split_list(l, s):
count = 0
ni = []
for i in range(0, len(l)-len(s)):
if l[i] == s[count]:
count=count+1
@mokjpn
mokjpn / npuzzle.R
Last active June 22, 2017 15:55
同じ数の繰り返しで作られる数列について,そこに含まれる数を1つずつ使い、目的の数を作るための式を総当たりで求める
## 同じ整数の繰り返しである数列に含まれる数を1つずつ使い、目的の数を作るための式を総当たりで求める
## Usage: npuzzle(2,4,24) => (2,2,2,2)を1つずつ使って24を作るにはどうするか.
npuzzle <- function(num, nrep, target, twofuncs = list(
"*"=function(x,y){x*y},
"/"=function(x,y){x/y},
"+"=function(x,y){x+y},
"-"=function(x,y){x-y},
"^"=function(x,y){x^y}), onefuncs = list(
" "=function(x){x},
"factorial"=function(x){factorial(x)},
@mokjpn
mokjpn / ggRecruit.R
Created May 12, 2017 15:15
いわゆる目標症例数と症例登録の進捗状況のグラフを書いてみよう
## いわゆる目標症例数とリクルートの進捗状況のグラフ
# ダミーの日付データを作る
# リクルート日付は2014-01-01からの2年間からランダムに100日
dates <- as.Date("2014-01-01") + 365*2*runif(100)
# それぞれの日に10人までのランダムな人数がリクルートされたとするダミーデータ、100日分
number <- floor(10*runif(100))
# 1行1症例のデータセットのイメージ。登録日だけだけど。
@mokjpn
mokjpn / ggRecruit.R
Created May 12, 2017 15:15
いわゆる目標症例数と症例登録の進捗状況のグラフを書いてみよう
## いわゆる目標症例数とリクルートの進捗状況のグラフ
# ダミーの日付データを作る
# リクルート日付は2014-01-01からの2年間からランダムに100日
dates <- as.Date("2014-01-01") + 365*2*runif(100)
# それぞれの日に10人までのランダムな人数がリクルートされたとするダミーデータ、100日分
number <- floor(10*runif(100))
# 1行1症例のデータセットのイメージ。登録日だけだけど。
@mokjpn
mokjpn / ggRecruit.R
Created May 12, 2017 15:15
いわゆる目標症例数と症例登録の進捗状況のグラフを書いてみよう
## いわゆる目標症例数とリクルートの進捗状況のグラフ
# ダミーの日付データを作る
# リクルート日付は2014-01-01からの2年間からランダムに100日
dates <- as.Date("2014-01-01") + 365*2*runif(100)
# それぞれの日に10人までのランダムな人数がリクルートされたとするダミーデータ、100日分
number <- floor(10*runif(100))
# 1行1症例のデータセットのイメージ。登録日だけだけど。
## This gist is obsoleted. Refer https://github.com/mokjpn/Define2Validate/ for the new version.
library(R4DSXML)
library(testthat)
library(validate)
define2validate <- function(domain, file="exampleRules.yaml", definexml="Odm_Define.xml") {
varmd <- subset(getVarMD(definexml), IGD_Name == domain)
cat(file=file, append=FALSE, "")
out <- function(...) cat(file=file, append=TRUE, paste(...,"\n",sep=""))
@mokjpn
mokjpn / WikiTable2Dataframe.R
Created February 23, 2016 06:54
Read MediaWiki's WikiTable text and convert it into a R dataframe
# Read MediaWiki's WikiTable text and convert it into a dataframe
lines <- readLines(file.choose())
columns <- NULL
row <- NULL
df <- data.frame()
ncol <- 0
for(line in lines) {
if((m <- sub("^\\! *(.*)$", "\\1", line)) != line){
/* SpeedButton Sketch */
/* NeoPixel */
#include <Adafruit_NeoPixel.h>
// Digital pin to connect NeoPixel
#define PIN 0
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 16
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
@mokjpn
mokjpn / nquiz.R
Created December 9, 2015 12:41
早押しクイズでn問先取の時,問題をx問用意した時にどのくらいの確率で勝ち抜け者が出るか.ただし一人も正解がない場合はないものとする.
# 早押しクイズでn問先取の時,問題をx問用意した時にどのくらいの確率で勝ち抜け者が出るか.ただし一人も正解がない場合はないものとする.
nquiz <- function(x,n) {
if(n > x) {
stop("n must be smaller than or equal to x")
}
sum(sapply(n:x, function(xx) { ncol(combn(x,xx))})) / (2^x)
}