Skip to content

Instantly share code, notes, and snippets.

View remore's full-sized avatar

Kay(Kéi) Sawada remore

View GitHub Profile
require "compute_runtime"
req = ComputeRuntime::Request.new
resp = ComputeRuntime::Response.new
begin
req.method = "GET"
req.uri = "https://www.ruby-lang.org/en/"
result = req.send ComputeRuntime::Body.new.handle, "origin_0"
resp.send_downstream ComputeRuntime::Body.new(result[1])
rescue Exception => e
# worked with ruby 2.3.3 && byebug 10.0.2
# Usage:
# ruby byebug_test.rb & byebug -R localhost:8080
require 'byebug'
require 'byebug/core'
Byebug.wait_connection = true
Byebug.start_server('127.0.0.1', 8080)
puts 1234
@remore
remore / how-to-use-slack-dump.md
Created September 6, 2017 11:05
dicebattle/slack-dumpを利用した時のログ

Environment & Requirement

Usage

あらかじめgoをインストールしてpathが通った状態にしておいた上で以下を実行(以下はgeneral, random, support, developmentという4つのチャネルをエクスポートしたい場合の例):

@remore
remore / kachidoki_elevator.cc
Last active February 15, 2017 11:29
(1: 最適化問題) 下記パラメータのままでElevator::tick()のみを最適化して平均待ち人数を最小化する / (2: 並列化問題) 以下のプログラムをマルチスレッドで動作させると何倍早くなるか実装して検証する / (3: チューニング問題)並列化以外の方法で本プログラムの実行時間を短縮するためにどのような改修を加えるとよいか考察する
#include <iostream>
#include <iomanip>
#include <random>
#include <unistd.h>
using namespace std;
const int MAX_FLOOR = 14;
const int ELEVATOR_COUNT = 4;
const int RAISING_PROBABILITY = 10;
skl = VirtualModule.new(:lang=>:python, :pkgs=>["sklearn"=>["datasets", "svm", "grid_search", "cross_validation"]])
include skl
iris = datasets.load_iris(:_)
clf = grid_search.GridSearchCV(svm.LinearSVC(:_), {'C':[1, 3, 5],'loss':['hinge', 'squared_hinge']}, verbose:0)
clf.fit(iris.data, iris.target)
p "Best Parameters: #{best_params = clf.best_params_}" #"Best Parameters: {\"loss\"=>\"squared_hinge\", \"C\"=>1}"
score = cross_validation.cross_val_score(svm.LinearSVC(loss:'squared_hinge', C:1), iris.data, iris.target, cv:5)
p "Scores: #{[:mean,:min,:max,:std].map{|e| e.to_s + '=' + score.send(e, :_).to_s }.join(',')}" # "Scores: mean=0.9666666666666668,min=0.9,max=1.0,std=0.04216370213557838"
jl = VirtualModule.new(:julia=>["Clustering"])
r = jl.Clustering.kmeans(jl.rand(5, 1000), 20, maxiter:200, display: :iter)
p jl.Clustering.assignments(r) # [3, 13, 2, 7, 15, 12, 10, ... 13, 1, 8]
require 'natto'
manpages={}
natto = Natto::MeCab.new
%w"ps ls cat cd top df du touch mkdir".each do |cmd|
list = []
natto.parse(`man #{cmd} | col -bx | cat`) do |n|
list << n.surface
end
manpages[cmd] = list
end

POSTD Podcastの第二世代の機材

  • 3人以上の録音ができるように入力系統を増やすべく(UR22だと2系統の録音までしかサポートされていない)、オーディオインターフェースにScarlet 18i8を利用。
    • これで4系統の録音が可能に
  • マイクについては、OM-3に加えてオーディオテクニカのAT2035を1機入手
    • OM-3ではマイクを顔にかなり近づけないとゲインを稼げないので、ゲスト音声録音用に収音能力の高いコンデンサマイクを準備(ただし今回のマイクは予算の都合もあり単指向性固定のマイク)
    • コンデンサマイクは音質は期待できるが、取り扱いに注意が必要な上に、ファンタム電源とか底面に重さを兼ね備えた比較的高級なマイクスタンドだとか、付属品も色々必要になるので注意が必要
  • POSTD Podcast #4以降はこのセットで収録予定

POSTD Podcastの第一世代の機材

set urlList to {"http://b.hatena.ne.jp/entry/", "https://www.reddit.com/submit?url=", "https://hn.algolia.com/?sort=byPopularity&prefix&page=0&dateRange=all&type=story&query="}
set numURLs to (count urlList)
open location (item 1 of urlList) & (get the clipboard)
tell application "Safari"
activate
tell window 1
repeat with i from 2 to (numURLs)
set current tab to (make new tab)
set URL of document 1 to (item i of urlList) & (get the clipboard)
end repeat
require 'benchmark/ips'
Benchmark.ips do |x|
command = "bundle version"
yomikomu = "export RUBYOPT='-ryomikomu' && export YOMIKOMU_AUTO_COMPILE='true'"
yomikomanai = "export RUBYOPT='' && export YOMIKOMU_AUTO_COMPILE='false'"
x.report("yomikomanai") { p `#{yomikomanai} && #{command}` }
x.report("yomikomu(fs)") { p `#{yomikomu} && export YOMIKOMU_STORAGE='fs' && #{command}` }
x.compare!
end