CORNE CHERRYを買ってみた
背景
もともとHHKB Professional BTシリーズを使用していたけど、分割キーボードが肩こり対策に良いと聞いたので分割キーボードを試してみる。 自作の経験はなかったので、既製品のMiSTEL BAROCCO MD600が欲しかったのだけど、すでに生産終了で断念。 ならば自作をするか、、、と考えたが、夜の短い間に狭いスペースではんだ付けをする心身的余裕がなかったので、欲しかったキーボードのうちプラモデル感覚で作れるkitを購入。
購入したもの
キーボード本体
- Corne Cherry
ビット・トレード・ワン Corne Cherry | 遊舎工房 キーボードが42個と少ないのが特徴。その分手を動かさなくて済むので、負荷が小さそうとコレにした。
- キースイッチx42個
内訳 | 軸 | 用途 |
---|---|---|
26個 | 赤軸静音 | アルファベット |
16個 | 赤軸 | その他 |
個人的には青軸が好みなのだが、会社で使うことや子供が寝た後使用することを考えて静音の軸を選択。
- キーキャップx42個(1u x 40個 + 1.5u x 2個)
色 | 用途 |
---|---|
エメラルドグリーン | 全て |
本当はアルファベットとその他で色を変えたいのだけど、まずは試しなので一色。
- TRRSケーブル
安いので、まずは動かすの優先で見た目は気にしない。
実際はkitに入っていたので購入は不要だった。 TRRSケーブル 1m | 遊舎工房
** 金額
購入物 | 金額 |
---|---|
Corne Cherry | 18,000 |
赤軸静音 30個 | 2,700 |
赤軸 20個 | 1,800 |
キーキャップ 2個 | 2,000 |
TRRSケーブル | 300 |
初期費用は約3万円。嗜好品といえば嗜好品。半年後のお仕事必需品になっているとよいな。
AWSでPython自動実行まで
きっかけ
普段ノートPCで実行している家計簿(PythonでtweetからGoogleスプレッドシートに転記)を自動実行したくて、AWSにサーバ立ててみた。
ノートPCを家でつけっぱなしにしておくのも嫌だったのでAWSの無料枠で作成。
AWSでのサーバ構築内容はこちら。アクセス制限とかもしてみたよ。
実行コマンド
■ Python3 のインストール
$ sudo yum install python3
■ モジュールのインストール
$ sudo python3 -m pip install tweepy $ sudo python3 -m pip install datetime $ sudo python3 -m pip install gspread $ sudo python3 -m pip install json $ sudo python3 -m pip install oauth2client --upgrade
■ 各種ファイルの移動
SCPで移動するのが正解な気がするけどviで新規したファイルにコピペ
$ mkdir writeTweet2GogleSpreadSheet $ cd writeTweet2GogleSpreadSheet ## twitterの認証用ファイル vi ./config.py ##スプレッドシートにアクセスするための認証用ファイル vi ./■■■■■■■■■■■■■■.json ## Pythonファイル vi ./writeTweet2GoogleSpreadSheet.py
■ crontabの設定
$ sudo crontab -e ### FILE PATH FILE_PATH_WT2G="/■■■■■■■■■■■■■■" #1Hごとに実施 0 9-23 * * * cd $FILE_PATH_WT2G ; python3 ./writeTweet2GoogleSpreadSheet.py >> $FILE_PATH_WT2G/log/log_cron_writeTweet2GogleSpreadSheet.log 2>&1 # * * * * * command to be executed # - - - - - # | | | | | # | | | | +----- day of week (0 - 6) (Sunday=0) # | | | +------- month (1 - 12) # | | +--------- day of month (1 - 31) # | +----------- hour (0 - 23) # +------------- min (0 - 59) # minute hour day_of_month month weekday command:
Windows10で定期実行
きっかけ
FXのエントリーポイントをtweetするスクリプトを作ったので次は定期的にスクリプトを実行したい。
Cygwinのインストール
標準アプリであるタスクスケジューラを使用してみたが、いまいち動かし方と実行状況がわからない。そしてなにより重い。
ということで、Cygwinに頼ることにした。
黒いターミナル■が画面にあると落ち着く、不思議!
GUI:cygwin window10
で検索して一番上を参考にCygwinをインストール。
Windows 10 に Cygwin 64bit 版をインストールする | digitalbox
GUI:その後は下記を参考にcronとcygrunsrvのパッケージを追加でインストール。
Cygwinでcronを使うときのメモ - kkobayashi_a’s blog
cronをサービスに登録。
$ cygrunsrv -I cron -p /usr/sbin/cron -a -n
cygrunsrv -S でスタートして、cygrunsrv -Q で状態を確認。
$ cygrunsrv -S cron $ cygrunsrv -Q cron Service : cron Current State : Running Controls Accepted : Stop Command : /usr/sbin/cron.exe -n
あとは crontab -e
でcronの設定が可能。(管理者権限で実行をわすれないこと!)
PythonでRCI,MACD,移動平均線
RCI
RCIの説明は下記のサイトを参考
QuantXでRCIを実装してみた - Qiita
そのまま実装したのが下記。
# rci_short = get_rci(close,9) で呼ぶ # closeは各足の終値 def get_rci(close, period): rci = [] table = [[0] * 4 for i in range(period)] df = pd.DataFrame(close, columns=(['close'])) for i in range(len(close)): if i < period: rci.append(None) else: d_ = 0 for j in range(period): table[j][0]=close[i] table[j][1]=period - j rank_price = df[i - period + 1: i + 1].rank(method='min', ascending = False).values for j in range(period): table[j][2]=int(rank_price[j]) for j in range(period): d_ = d_ + (table[j][1] - table[j][2]) * (table[j][1] - table[j][2]) rci.append( 6 * d_ / (period * (period*period -1))) rci[i] = (1-rci[i])*100 return rci
MACD
インストールした際の経緯は下記
import talib macd, macdsignal, macdhist = talib.MACD(close, fastperiod=12, slowperiod=26, signalperiod=9)
移動平均線
import talib sma5 = talib.SMA(infected_count, timeperiod=5)
Python3でグラフを描画
きっかけ
コロナの棒グラフを見ていたら、5日移動平均線とMACDとRCIをプロットしてみたくなった。ふと、描画したいなと思ったときにできるようになっておきたく。
matplotlib のインストール
どうやら、matplotlibがよく使われるらしい。下記でインストール。
> py -m pip install matplotlib
補足:pipが最新版ではなかったので下記で更新。
> py -m pip install --upgrade pip
とりあえず matplotlib にて y=x でも描画
感染者数を手入力でもinputして、棒グラフで出力
※上の数は適当。ファイルかなにかから取得すれば簡単に配列には入れられそう。
感染者数を取得(できればlistから)
date = list() infected_count = list() try: f = open(path) lines = f.read().split() except Excption as e: print(e) finally: f.close() #棒グラフ for i in range(int(len(lines)/2)): date.append(lines[i*2]) infected_count.append(int(lines[i*2+1]))
5,25日移動平均線の追加(7日、14日が適切?
MACDの追加
一度計算用の関数を作ったけど、モジュールがあったのでそちらを使用。
関数を作ったことで、MACDがどんな計算で算出されているのかをすることができたのは収穫。
https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib にて下記をダウンロード
64bitOS ⇒ TA_Lib-0.4.17-cp36-cp36m-win_amd64.whl
pip install TA_Lib-0.4.17-cp36-cp36m-win_amd64.whl
codeでは下記のように使用。np.arrayに手間取った。
import talib ### 感染者数と日付のデータをlistに入れる infected_count_int = list() for i in range(int(len(lines)/2)): date.append(lines[i*2]) infected_count_int.append(int(lines[2*i+1])) infected_count = np.array([float(x) for x in infected_count_int]) #MACD macd, macdsignal, macdhist = talib.MACD(infected_count, fastperiod=12, slowperiod=26, signalperiod=9)
下記サイトを参照しました。
python3でTA-Libをインストールする方法をまとめてみた - Qiita
日本語対応
タイトルなどに日本語を使用したかったので、下記をインストールして本文でimport
> py -m pip install japanize-matplotlib
↓
import japanize_matplotlib
次(計算めんどくさくて後日に...。
- RCIの追加
Paizaでよく使う関数
標準関数
入力
・input_line = input()
・input_line = input().rstrip().split(' ')
※ スペース" "で区切って格納 して下記のように変数に代入ができる
※ first = input_line[0]
※ second = input_line[1]
改行なしのprint
print("moji", end="")
配列の初期化
list = [0] * 3
[0,0,0]が作成される
リストの最小値、最大値
min(list)
mx(list)
辞書
dictionary = {"A":1,"B":2,"C":3,"D":4}
0埋め
moto = 1 zeroume = moto.zfill(2) print(zeroume) → 01
。zfill(x)のx桁分だけゼロ埋め
import math
切り捨て切り上げ
- 整数に切り捨て
- math.floor
- 整数に切り上げ
- math.ceil