Skip to content

Instantly share code, notes, and snippets.

View openapi.md

TL;DR

  • server: apisprout
  • editor: VSCode

server

localroast

View job queue.md
### global
[vars]
var qname  = "foo"

### job request
var data = "bar"
var id   = (redis) INCR /slack/job/${qname}/ids/max
(redis) HSET  /slack/job/${qname}/datas ${id} ${data}
(redis) LPUSH /slack/job/${qname}/ids ${id}
@maiha
maiha / 1.概要.md
Last active Feb 3, 2020
Rustことはじめ
View 1.概要.md
@maiha
maiha / 1.概要.md
Last active Feb 3, 2020
Ponyまとめ
View 1.概要.md
View CentOS7.md

ポートを開ける

  • 8080にAPIを立てる
cat /usr/lib/firewalld/services/http.xml | sed -e 's/80/8080/g' > /etc/firewalld/services/http-api.xml
systemctl reload firewalld

firewall-cmd --add-service=http-api --zone=public --permanent
firewall-cmd --zone=public --list-services --permanent
@maiha
maiha / 1.機械学習の概要.md
Last active Feb 16, 2020
機械学習の素人による素人のための最初の1歩まとめ情報 (間違いの指摘はwelcome)
View 1.機械学習の概要.md

「ルール」に関する最初の2択

  • 機械学習 : 法則やルールを予めユーザが与えることで、未知のデータに対して解答を作る
  • 深層学習 : 何の指示も与えずに、AIが自分でデータの特徴やルールを学習していく (ディープラーニング)

前者は人がルールを与えるため、準備が大変だが、学習の方向性はコントールし易い。(まあ飛車が点数高いからそうなるよね。評価関数を変更しよう)。 後者は学習のコントロールが難しい。(正解かもだけど、なんで初手3八金なん?)

「教師」に関する3択

  • 教師あり学習 : 訓練データ(入力と出力のセット)を元に、入力に対して答えを返すモノを作る。正解を知っている教師によって、「これはこう作業してね」と教育する「OJT研修」。 (過去データから未来の値を予測できる)
  • 教師なし学習 : 出力値(正解)を必要としない分類。正解とかこまけぇこたぁいいんだよ派。とにかく集団に線引して、「似てる奴ら」を集める。 (クラスタリングができる)
View maiha.ahk
^+a::
IfWinExist PuTTY
WinActivate
Else
Run,C:\Users\kazunori.nishi\app\putty-0.70-jp20170713\puttyjp.exe
return
^+b::
Process,Exist,chrome.exe
View UNIXの便利コマンドまとめ.md

cronの多重起動防止

基本方針

pidof コマンドを使う (稼働中のプロセスIDを返す)

  • || で繋げてコマンド実行すればOK
  • /proc/$$/comm あたりと同じ動作なので、スクリプトの場合 bash が入ってしまう
  • pidof -x foo のように -x を入れるとスクリプトは対応できる

誤検出

@maiha
maiha / print-func.js
Created Feb 28, 2019
Javascript AST: print CallExpression or FunctionDeclaration
View print-func.js
/* npm install acorn acorn-walk */
/* usage: nodejs print-func.js foo.js --call */
let mode = 'name';
let index = process.argv.findIndex(function(e) { return e == "--call"});
if (index > 0) { process.argv.splice(index, 1); mode = 'call'; }
let filename = process.argv[2];
if (!filename) throw "file not found";
You can’t perform that action at this time.