忍者ブログ
日々の研究生活のメモ書きなど

■ 参考 : 【 du 】コマンド――ディスクの使用量を表示する

オプションメモ
-h : 数字をわかりやすくする、KBとかMBとかGB
-c : トータルを表示する
-d1 : どこまで深く表示するかを選べる、-d2とかみたいに
du -h -c -d1 .









PR
7/1
・今持ってるとある株が今月末の配当金の確定に向けて単調に値段が上がってるのでさらに100株追加で買った
こっちの儲けはまだ累計1200円とか
配当金の確定直前に売る or 配当金と株主優待をもらってから売るの2択
本当は前者のつもりだったけど、配当金が割とでかいので後者または長期保有でも良い気がしてきた

・楽天が好きなので楽天の株を100株買った
この日はずっとこの楽天の値段変動が気になってしょうがなかった
簡単に+/-20円くらい変動するので、そのたびに一喜一憂してた・・・
これを1000株買った日には+/-2万円くらい簡単に変動するってことやからなぁ・・・ 恐ろしいわ
まぁ今のうちに慣れておこう


現状↓
種銭30万+ 儲け2903円
https://coffeepote.tumblr.com/post/185981110623/201972

・もうあと20万ほど種銭を追加したほうがいいのかな、と考え中
というのも数種類しか株を持ってないのは、儲けがその数種類の変動に強く依存してしまうので





■ このあたりでtwitterのアカウントを作った
ので、そっちを貼り付けていく


■ 自分の売買のスタイルとしてはかなり短期的に投資が多い
デイトレほど真面目にではないけど、買ったら1~2日以内には売る
1つだけこの1ヶ月ほどずっと保有してる株があるけど、それは株主優待と配当目当て


■ ファミマ株を買ってみた




■ 起きたらなぜか値上がりしてた


■ まだはっきりとは理解してないけど、市場が開くのは9時〜11時半 + 12時半〜15時で
それ以外にも深夜の売買が可能(指値で予約するだけ?)
SBI証券なら、市場が閉まってる時間帯でも独自の市場があってそこで売買できると聞いたこともある
まだ理解できてないが、その影響なんだろうか?


■ 結局9時すぎには微黒だったのでそのまま売却
+1640


■ 2週間後の今となってはこの案はだいたい合ってると思う
そして、変動が大きい株を探す方法がわかったので、来週はもっと利益を拡大できそう



■ 株を初めたときに最初に買った株がなぜかずっと好調に伸び続けてるらしい


■ 指値と成行すら知らないのに株の売買をしてた・・・・


■ 板と歩み値は超大事
板は見せかけの指値がいっぱいあることもあるけど、歩み値は実際に変動した値の履歴なので
そこに2億円分の値動きとかがあったら、すぐにこっちも反応しないといけないし



■ 今もまだはっきりとはわかってないけど、約定(株の売買が成立)しない限りは手数料はいらないんだと思う




■ 個人的にはチャートで大雑把な傾向を掴んで、その後板と歩み値をちゃんと吟味する必要があると思う
長期的に保有したいなら業績とか増配かどうか見るんやろうけど、自分は見方もわからんし



■ (っていうか7/4の投稿多すぎるやろ・・・)


■ 当時はまだ東証一部しか見てませんでした


■ 指値のことを誤解してて「xxx円になったら売る」ってしたかったのに、ミスでそのまま売ってしまった
はじめての赤字






■ 7/5


■ この後NISAで取引を何回かしてわかったこと
120万円まで非課税ってのは要するに120万円しか購入できないですよ、ってこと
120万円分の利益が非課税になるのかと思ってた・・・
要するにNISAは長期保有する人向けのサービスやなぁ


■ ファミマチャレンジ


■ ファミマ +1500


■ この株が伸びすぎて怖い
「なんぴんは辞めろ」という注意は何度も見た
なんぴんすると、損したときの額がでかくなるし、悪い癖になるらしい

その逆で株価が伸びてるときに買い足す行為は良いらしい
利益が爆発的に伸びるから
このときに種銭を100万くらいまで増やしてこれを実践していればたぶん20万くらい儲かってたと思うわw(今更やけど)
次のチャンスはもう見逃さない





■ 7/6




■ 株主ミッドナイト






■ 7/8

■ はい




■ 不死鳥







■ 7/9

■ 今更やけど、IPO株の購入は注文時にお金がいるだけなので、11日までに購入資金を用意する必要はなかったっていう






■ 7/12

■ 株を売買してる大口の投資家からしたら大した金額ではないのかも知らんなぁ








■ 7/18

■ 東証二部にとんでもなく値上がりを続ける株があったので買ってみた
1つ笑ったのが本当に直線的に値上がりし続けていくので、全然指値で買えないのw
しょうがなくて成行で買ったけど、それでも全然儲かった


■ 売るタイミングはばっちりだったけど、あと10秒ほど遅かったら15000円どころじゃなくてもっと儲かってて笑ったw
ただまずは儲けることが大事なので、これでOK









■ 7/20

https://coffeepote.tumblr.com/post/186419063758


株式売買を始めて最初の1ヶ月はそんな感じでした
種銭をこれ以上増やす必要はなさそうなんで、ひとまずこのまま100万超え目指します
その後はもっと増やす〜






■ 椅子を買ってIKEAを出た瞬間のツイート




■ IKEAで椅子を買って帰ったときの流れ





■ 椅子を買った直後のツイート
右下にあるバックパックが30cmくらい



結局電車は座れてずっと寝てた
そのせいで、降りるときには疲労で死にかけた・・・
なんとかタクシーとか使わずに家まで帰れた


■ あとで別の記事に書くかもしれんけど、この日は株で8000円ほどの赤字(今朝すぐに取り戻せたけど)

■ 帰って確認したら、うちの冷蔵庫よりでかかった。重さは同じくらい
https://coffeepote.tumblr.com/post/186398507903


■ もしこの後で初期不良が見つかってIKEAとトラブルを起こしていた場合の犯行予告↓


■ 早く帰って椅子を満喫しなければ






まずはテーブル名を取得する
teminalで
sqlite3 something.db
sqlite> .table
で表示するのが通常の方法

pythonだけでもテーブル名は見れる

■ 参考 : pythonでsqliteのテーブル名取得
import sqlite3
filepath="something.db"
conn = sqlite3.connect(filepath)
cur = conn.cursor()

# table一覧を取得する
tables=[]
cur.execute("select name from sqlite_master where type='table'")
for catalog in cur.fetchall():
 tables.append(catalog[0])
print(tables)

cur.close()
conn.close()
みたいな感じ





テーブル名がわかったら、次はそのデータをリストに代入する
import sqlite3
import numpy as np
filepath="something.db"
conn = sqlite3.connect(filepath)
cur = conn.cursor()

# table hogehoge を読み込む
cur.execute("select * from hogehoge")
list_h = cur.fetchall()
# transposed
list_h_T = (np.array(list_h)).T

cur.close()
conn.close()
list_hにhogehogeの中身をすべて代入する
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
みたいな感じで、リストの中にタプルが入っている
このままやとすごく使いにくいので、まずnp.arraryでarray型に変換する
その後で転置すると、

[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

みたいな感じになる
これで list[1] をプロットすると元データのタプルの1列目をプロットすることができる


■ 参考 : Python: plot list of tuples






hogehogeというテーブルのカラム名を取り出したいとき
cur.execute("PRAGMA TABLE_INFO(hogehoge)")
cols = cur.fetchall()
# Pick up column name
col_si = [item[1] for item in cols]
print(col_si)







■ 一様乱数
from numpy.random import *
rand() #0~1の範囲の一様乱数を1個作る
rand(10) #0~1の範囲の一様乱数を10個作る


■ 正規分布に従う乱数を作る
from numpy.random import *
randn() #平均0, 標準偏差1の正規分布に従う乱数を1個作る
randn(10) #平均0, 標準偏差1の正規分布に従う乱数を10個作る

# 平均と標準偏差を変えたい場合は、normalを使う
normal(5, 2) # 平均5, 標準偏差2の正規分布に従う乱数



randint(100) で0~99の整数を1個作れる

randint(0, 100, 20) で0~99の整数を20個作れる


他にもリストからランダムに値を取り出す関数とかもある
random.choice(list_name) # list_nameから1個取り出す
random.choice(list_name, 10) #list_nameから10個取り出す


seed(100)のようにして、初期シードを手で与えることもできる





コマンドのヘルプが知りたいときは
# 下にrange関数の説明をダラッと表示したいときは
help(range)

# 簡単なヘルプを一時的に見たいときは
range ?

# range ?よりも詳細なヘルプを一時的に見たいときは
range ??

セルを切り取りたいときはセルの左をクリックして青色にしてx

セルの内容を貼り付けしたいときはv

セルの内容をコピーしたいときはc

新規セルを下に作りたいときはb
新規セルを上に作りたいときはa

vimのキーコンフィグと似てるらしい








■ 前回記事 : 【GAS】htmlでの入力をgoogleスプレッドシートに流すスクリプト




前回記事ではラジオボックスを使っていた
ラジオボックスでは1つの値のみを読み取ることができる
複数の値を読み取りたいときはチェックボックスを使う

けど、これをGASに渡しても先頭の最初に読み取ったチェックボックスの値のみを出力してしまう・・・・
いろいろと調べてみたけど解決方法がわからんちん

いろいろと調べて、一番自分の疑問と同じことで悩んでた記事↓
■ 参考 : google apps scriptで簡単なwebアプリを作ってみた





ここが割とサンプルコードが載っていて参考になったかも?
一応、GASのサンプルも載ってるけど、この通りにやってできる気がしなかったのでスルー
■ 参考 : 【13】チェックボックス(随時)v2


GASのドキュメントでcheckboxで検索してみた
■ 参考 : 「checkbox」の検索結果 - Google Apps Script


それともう一つ
チェックボックスを作って何も選択されなかったときのデフォルトの値をhiddenで送ることも試したけど
こっちはwebブラウザによって先頭の値を返すのか、最後の値を返すのか挙動が違うらしい
なんということだ・・・

■ 参考 : checkboxが選択されないで送信された時の判定



役に立つかはわからんけど、javascriptでチェックボックスの処理をするときの記事があったのでメモ

■ 参考 : チェックボックスがチェックされているか取得する (JavaScript プログラミング)

■ 参考 : JavaScript チェックボックスの値を取得/設定するサンプル







「テクニカル分析とファンダメンタルズ分析は知っておいた方がいいよ」
というありがたい助言を頂いたので調べてみた


テクニカル分析 : 統計的な手法で株式の今後の変動を予測して売買する
ファンダメンタルズ分析 : 統計的な手法ではなく、今の市場の背景に何が起こっているかを調査し、今後を予測して売買する


っていう風に理解した
テクニカルの方は、各証券口座のページとかにも細かい指標が載ってるので
それを活用するってことだと思ってるがあってるんだろうか?



読んでわかりやすいなぁ〜と思った記事メモ

■ 参考 : テクニカル分析とファンダメンタルズ分析の違い


ある意味テクニカル分析の一つの指標(というかグラフ)の見方について
見方がわかると割と目からうろこな気がする
■ 参考 : 覚えよう「ローソク足」の見かた


株の基本的なことがよーくまとめられてるのでわかりやすい、読みやすい

■ 参考 : 第1話 投資って何だろう?

(たぶん追記するかも?)











今にして思えばなんかjavascriptを使ってうまいことやる方法があるような気がしてた〜〜〜
とりあえずやったことをメモしとく




html自体はテキストファイルを読み込んで、その値に応じて#FF0000とか色を16進法で指定したい

最初に見たのがこういうページ

■ 参考 : WEBカラー作成(グラデーションから選択)

https://coffeepote.tumblr.com/post/185980495773

CSSの機能である色〜ある色へのグラデーションを作れる
これを使って、その中間の色を選択できるのかなぁ〜と思ったけど
この機能はどうやら背景画像の代わりに使う用途っぽい
なのでだめ






rgb()って関数があることはなんとなく察しがついたので
赤色 rgb(255, 0, 0) からその透明度を上げて白色までグラデーションさせることを思いついた

調べてみたら透明度込みのRGBは、次のようにして指定するらしい
最後の1が透明度の値なので0から1を入れる
rgba(255, 0, 0, 1)


ただこれもだめ
というのもhtmlの背景色がそもそも白色じゃないからそっちの色が透過してしまってなんのこっちゃって感じになった


ちなみにやりたいのはこんな感じのをtableの各マスの背景色にしたい


■ 参考 : rgba() …… RGBAカラーモデルで色を指定する







■ 参考 : グラデーション配色の計算方法





結局
< td bgcolor=\"#FF0000\">なんか値<td>
みたいな感じでこれまで通り対応した

#FF0000の部分は値に応じてawkで16進法の色を用意する
color_td=`echo $some_value | awk '{if($1 > 1000){printf "#FF0000)\n"} else printf "#FF%02X%02X\n", 255-$1/1000*255, 255-$1/1000*255}'`

awkのprintfフォーマットで%xとすると16進法で書き出してくれる
%Xは大文字
%xは小文字になる

最初、printfの中の%xで0埋めしてなかったから、赤〜白にはない変な色になって焦った
%02Xで大文字かつ2桁でない場合は0埋めしてくれる

1000以上の値の場合はサチらせて赤にした

■ 参考 : 10進数<=>ASCII<=>16進数変換(bash+awk)



awkを使わなくても単にprintf "%02X" 100とかでもいける

■ 参考 : コマンドライン上で手軽に16進計算
















2018年2月くらいに研究室の先輩と話す機会があった
海外に栄転されるということで、その前に飲もうという流れだった気がする

そのときにいろいろと話を聞いたのが「最近株の売買をやってる」ということ

自分の乏しい経験から株というと、
ミナミの帝王で経営がうまくいっていない中小企業の工場の社長が悪徳金融屋に騙されて売買
その結果、大損をこくものだと思ってた

実際はそんなに気張らないものっぽい

そのときになぜ株をやって理由について聞けた
(1) 銀行に現金で預金してても政府が推進するインフレによって価値がどんどん下がっていく

■ 参考 : 【要対策】お金の価値が目減りする!インフレの意味と生活への影響

によると「現在、政府はデフレを脱却するため2%のインフレ率を目指しており」らしい

あとは銀行の利息がめちゃくちゃ低いこともこちらには不利な点

■ 参考 : 円預金金利

によるとUFJの普通預金なら年0.001%とか
100万円預けてたら10円の利息(白目)

定期預金とかにすると利率は上がるけど、いろいろと条件があるしなぁ〜・・・
おかんに話を聞いてると20年はもっと状況が良かったらしい

# 関係ないけどうちのおかんは資産運用とか20年前からちゃんとしてたなぁ
# 誰かに聞いたってわけではなさそうやから自分で調べたんかな? すごいわ


(2) 株なら買って置いとくだけで、もし企業が成長して株価が上がったらそのまま儲けられる
もし株価が下がったらそんときは損する、ちゃんと企業を選ばないとだめ(自己責任)


(3) 話を聞いた先輩自身の社会勉強
これも自分にとっては割と大事かもしれん
何事も新しいことを経験してかないとどんどん脳が劣化していくし、
新しいことってたいがい新鮮で面白い


今回、働きだして1年経って少しだけ貯金ができたのでその一部を使って社会勉強しようかなと動き出したって感じです





■ 株式売買のためにやるべきこと

(1) ネット証券口座を作る
今回は楽天で作った(楽天大好きなので)

■ 参考 : 初心者におすすめ証券会社8選│株やるなら手数料比較して口座を選ぼう

ネット証券会社はいろいろと種類があるけど、違いは取引ごとに必要な手数料
<5万
5~10万
10~20万
20~50万
とか取引金額に応じて手数料が違う
自分はここはあんまり見てなかった・・・

あとは自分が持ってるネットバンクから証券口座に入金するときの手数料とか
楽天証券の場合は、りそな、UFJからは手数料無料で送金できた
出金するときもたしか手数料無料だった気がする
# 要するに、楽天証券的には間の手数料で儲けを取ってるって感じか


あと、確定申告に関連して特定口座or一般口座を選ぶ必要がある
自分で確定申告するなら、一般口座でOK
それがめんどくさくて勝手に会社に源泉徴収とかも手続きしてもらうなら、特定口座にする
自分はそっちにしておいて

■ 参考 : 特定口座と一般口座の違い│初心者は特定口座・源泉徴収ありを選ぼう



(2) ネット証券口座のアクティベート
ログインの情報は書留で送られてくるので受け取ってログインする
マイナンバーの写真を撮影してアップロードするか、またはコピーを郵送する必要がある


(3) 証券口座にお金を送金する
何事も種銭が大事
送金する側の口座の制限で10万しか送れなかったのでとりあえずそれだけ送金する


(4) 企業研究 + 株を買ってみるor売ってみる
その企業と心中する気があるなら、そのまま長期間置いとく
これで配当がもらえるのと、企業によっては株主優待がもらえる

自分が株を初めた理由としては株主優待が割とでかいけど
いざ探してみたらそんなに魅力を感じないかもしれん

まず株主優待をもらえるだけ株を買うのがかなり重荷・・・
種銭が足りなさすぎる

そして株主優待がそこまで美味いかというとそうでもなさそう(人による)
たぶんこっちは完全におまけくらいに考えておかないと、株主優待をお金を払って買うことになるので微妙かも
長期的に10年くらいその企業を応援するつもりで株を持ってる人向けかもしれん(たぶん本来の意図的にもそうなんやろうけど)





■ 税金について

配当金を受け取ったとき、または、株の売買で儲けが出たときにはその20.315%の税金が取られる
特定口座にしていればそのへんは勝手にやってくれるっぽい

■ 参考 : 28.株式で儲けた場合の税金






今後株関連の記事を書くなら株ってカテゴリーを作るかもしれんけどどうやるやろ
とりあえず株専用のtwitterアカウントは作ろうと思う〜〜〜







この記事に続き
■ 参考 : 【html/Javascript/GAS】投票フォームのあれこれ




htmlでの入力をgoogleスプレッドシートに流そう、と思い立ってあれこれと方法を調べてみました
スプレッドシートを使う利点としては、
・自分でデータベースを用意せずにデータを保存できること
・誰でも閲覧できるように設定できる、なおかつ閲覧のみにも設定できる
・csv形式で書き出すこともできるので、再活用が容易、今回の場合は将来的に使えそうなデータになるかも?
などが挙げられるかと思います

実際にじゃあどうやるのか?と思って調べてみたら簡単なコードも載ってるページがありました

■ 参考 : javascript – 単純なHTMLフォームを介してGoogleスプレッドシートに基本データを追加する

htmlに以下のようなフォームを用意する
<form id="form" method="get" action="スクリプトのURL" accept-charset="UTF-8">
<input type="text" name="newletter_name" placeholder="Name" />
<input type="text" name="newletter_email" placeholder="Email" />
<input type="submit" value="Subscribe" />
Google Apps Scriptとして以下のものを用意する
function doGet(e){
var vals=[];
vals.push(new Date());
for(var i in e.parameter){
vals.push(e.parameter[i]);
}
SpreadsheetApp.openById("スプレッドシートのID").appendRow(vals);
return ContentService.createTextOutput("added");
}
これでhtmlフォームに「name」「Email」を書いてsubscribeボタンを押すと
それがスプレッドシートに追加されます
パラメーターの個数分だけはfor文が回るのですべてスプレッドシートに追加されます





■ 作業手順
1. スプレッドシートをgoogleアカウントで作成する (スプレッドシートのURLを覚えておく)
2. 上のメニューバーからツール→スクリプト エディタ → 上記のスクリプトをコピペする
3. スクリプトに実行権限を与える(permission)
4. 表示されたスクリプトのURLをコピペして、上記のhtmlに貼り付ける

という感じ

3の実行権限のところは以下のページに画像付きで説明がある
■ 参考 : Google Apps Scriptの初回実行に必要となる承認手順

3の実行権限のところは以下のページに画像付きで説明がある
■ 参考 : Google Apps Scriptで簡単にWebアプリケーションを公開する方法





もし事前にパラメーターの名前がすべてわかっているなら、
スクリプトを以下のように置き換えてもOKです
function doGet(e){
var vals=[];
vals.push(new Date());

vals.push(e.parameter.newletter_name);
vals.push(e.parameter.newletter_email);

SpreadsheetApp.openById("スプレッドシートのID").appendRow(vals);
return ContentService.createTextOutput("added");
}
最初の new Date() はスクリプトが実行された時刻が入ります





またスプレッドシートを使ってなにかしたくなったとき用のメモ

■ 参考 : フォーム – フォームを使用してGoogleスプレッドシートの既存のデータを更新する


■ 参考 : JavaScriptを使用してHTMLフォームからGoogleスプレッドシートにデータを送信する方法


■ 参考 : GAS ビギナーが GAS を使いこなすために知るべきこと 10 選
2019年6月段階では1つのスクリプトは6分以内に終了しないといけないって制限があるけど
自分のはとても軽いから問題なさそう


■ 参考 : HTMLのフォームからGASにPOSTする
↑この人がやってることはすごくわかる・・・
スプレッドシートになにかを追加したあとに表示されるページから、すぐに投票のwebページに戻りたいのにどうしたらいいかわからない
自分は投票時に表示されるページを新しいタブorウィンドウで表示させることで対応した


■ 参考 : GASでURLを踏んでスクリプトを動作させたときにパラメータを渡す方法


■ 参考 : 3 分で作る無料の翻訳 API with Google Apps Script
Google Apps Scriptをサーバーとして使ってる
なにか情報を要求したら、それに対する応答が返ってくる
ここでは、翻訳機として使ってる
まだまだ汎用性がありそう







(2019/11/13 追記)

配列にpush()でなにか値を追加したときの挙動が気になったので調べてみた

■ 参考 : GASの配列の扱い方について(定義、要素の追加、削除)

■ shift()
配列の最初の要素を取り除き、取り除いた要素を返す

■ unshift()
配列の最初に1つ以上の要素を追加し、追加後の新しい配列の長さを返す

■ push()
配列の末尾に1つ以上の要素を追加する

■ pop()
配列の最後の要素を取り除き、取り除いた要素を返す

■ splice()
配列内の指定した位置にある古い要素を取り除きつつ、新しい要素を追加する




へぇ〜

■ 参考 : fontタグ使ってる人はもう使うのやめよう

■ 参考 : HTML5で廃止された要素

代わりにCSSを使って文字の大きさとかを指定しましょうってことらしい

これでいいのかはわからんけど
<span style="font-size:20pt; color:yellow;">hogehoge</span>
って感じかな?








天啓を得て、Google Apps Script(通称GAS)を使うことになった
GASにhtmlのformからの情報を流し込む

以前もhtmlのformは使ったことがあったので、
それをまとめた記事があると思ってたけどどこにないので改めてまとめておく




■ 参考 : ピュアな JavaScript でフォーム(form)系要素の値を取得, 設定する方法一覧

formではいろんなタイプの入力方法がある
↑のページでリストアップされているので、改めてここでは書かなくてもいいかぁ〜

inputタグで使えるものとしては以下のものがある
text
radio
checkbox
select
testarea
file
button
などなど

■ 参考 : セレクトボックスを作る

■ 参考 : ラジオボタンを作る

■ 参考 : 隠しデータを送信する
画面には表示はしないけど、入力を送ることができるhiddenとかもある
これで、ユーザーが選ぶ必要がない時刻とかの情報も送ることができる




(2019/07/02 追加)
ユーザーに複数の選択肢を選んでほしいときがあった
ラジオボタンってのは1つの選択肢しか選べないものらしい

複数選択はチェックボタン input type=”checkbox” で実装するらしい






長めの文章を入力してもらう場合は1行のみのtextでは不十分
なのでtextareaタグを使う
<textarea name="comment" cols="50" rows="5" placeholder=\"default comment or fan letter\"></textarea>
みたいな感じで、大きさを5x50にできる

■ 参考 : inputタグ、textareaタグ、selectタグ
で、これらの入力をjavascriptで受け取って何かをやる
ただし、javascriptはユーザー側のウェブブラウザで実行されるので
その後でサーバーのファイルを改変したり〜とかはできない

■ 参考 : HTMLとJavaScriptの関係とは?|呼び出し・制御方法について解説


formの入力に応じてなにか要素を追加したい場合は↓
■ 参考 : JavaScriptで要素を生成・追加する



ただ、GASの場合は、formの入力を受け取ってそれをさらに別の場所に送ったりできる
それについては次の記事でまとめる予定











javascriptを使えるなら、これでOK

■ 参考 : 直前に戻るリンク
<a href="javascript:history.back()">[戻る]</a>
<a href="javascript:history.go(-1)">[戻る]</a>








前回記事
■ 参考 : 【crontab】を使ってジョブを自動化させたメモ




この後も度々crontabにお世話になっていた
そして、今日設定ファイルを修正しようとして間違ってcrontab -rを実行してしまった

rオプションはcrontabの設定ファイルをremoveするためのオプション(要するに初期化)

なんでeの隣のrにしたんだよ・・・
初期化という意味でiとかでいいやろ・・・

普通に殺意沸いたわ・・・実行してしまった自分に・・・ ガチ凹み




twitterで悲鳴をあげていたら、プロからgitで管理しろとありがたい助言を頂いた・・・

ただ、/var/spool/cron/crontab/ は管理者権限がないと見れないらしいので今回は使えない・・・

とりあえず.cshrcに
alias crontab 'crontab -i'
と追記しておいた

これでcrontab -rとしても「本気か?」って確認される
crontabからrオプションを駆逐するのは次回に持越し








下のページを見たらやり方がわかった

■ 参考 : Pythonでファイルの読み込み、書き込み(作成・追記)

■ 参考 : Pythonで文字列のリスト(配列)と数値のリストを相互に変換




やりたいことは all_data という配列に入っている数字の列を
1.11
2.22
3.52
54
2.56
みたいな感じで1つ1つ改行した状態で書き出したい

■ コード例
path_w = "hoge.txt"
str_all_data = [str(x) for x in all_data]
with open(path_w, mode='w') as f:
 f.writelines('\n'.join(str_all_data))
hoge.txtが出力名

新規ファイルを書き出すためにはmode="w"が必要
withの段落はなしでも動くが、ファイルをクローズする動作が別に必要になる(f.close)
なので、こっちのが楽でいいと思う

まず、write()での書き出しは文字列にのみ対応している
なので数字の配列は一度中身を文字列に変換しないといけない
それをやっているのが str_all_far= [str(x) for x in all_far]

write()とwritelines()の違いは確か両端に[]が残るかどうかだった気がする
要するに、配列として書き出しをするか、配列の中身のみを書き出すかの違い

writelines()で書き出すと改行コードが無視される
なので、joinを使って改行を追加する

f.writelinesの前はタブだけどここでは打てないので全角スペースにしてる(なんかコードをきれいに見せてくれるjsとかあるのだろうか)


これで、配列の数字のみを書き出すことができるはず
なんてめんどくさいんだ・・・ 絶対もっと楽にできる方法があるやろうけど、今回はこれでいいや









■ 点線の補助線

■ 参考 : 【Python@matplotlib】matplotlib にて横、縦の補助線を描く方法について


上の例では
fig, ax = plt.subplots(figsize=(5,5))
のようにaxとか書いてるけど、それしなくてもいけるっぽい
xdata = np.arange(0, 6.28, 0.1)
ydata = np.sin(xdata)
plt.figure(figsize=(10,6))
plt.plot(xdata, ydata)
plt.hlines(0.8, -0.8, 0.8, "blue", linestyles='dashed') # hlines
plt.vlines([2, 3], -0.8, 0.8, "red", linestyles='dashed') # vlines
使ってる関数の説明
plt.hlines(yvalue, xmin, xmax, "blue", linestyles='dashed')
って感じ
yvalueのところにx軸に平行な直線をxmin~xmaxまで引く

plt.vlinesはその逆で
plt.vlines(xvalue, ymin, ymax, "red", linestyles='dashed')
xvalueのところにy軸に平行な直線をymin~ymaxまで引く

1つの値xvalueの代わりに配列でも使える


これでプロットした例↓
https://coffeepote.tumblr.com/post/185196541563







■ 領域塗りつぶしプロット

■ 参考 : Fill between two vertical lines in matplotlib
xdata = np.arange(0, 6.28, 0.1)
ydata = np.sin(xdata)
plt.figure(figsize=(10,6))
plt.plot(xdata, ydata)
plt.axvspan(2, 4, alpha=0.2, color="red")
使ってる関数の説明
plt.axvspan(xmin, xmax, alpha=0.2, color="red")

xmin~xmaxに帯を置く
(ここからオプション)
alphaを設定しないと、塗りつぶしなしの帯になる
colorで色を選択できる
他にも
plt.axvspan(xmin, xmax, ymin=0, ymax=1, alpha=0.2, color="red")
みたいにyの範囲を追加することもできる


プロット例↓
https://coffeepote.tumblr.com/post/185196652633






(2019/07/05 追記)

ヒストグラムにこの点線を引くときは、予めヒストグラムの最大値と最小値を知っていないと点線の範囲をきちんと指定できない

ヒストグラムの最小値と最大値を取得して、それを点線の範囲に代入してやればいい

■ 参考 : Python+Matplotlibでグラフに対して追加で縦線や横線を書く話


v = plt.hist(plist, bins=40, range=(0, 1), color="green")
plt.vlines(0.05, 0, [v[0].max()+2], color="orange", linestyles='dashed')

みたいな感じ






scpするときに転送先に、そのディレクトリがなかった
scpのオプションでなんとかできるのかな〜と思ったけど、sshでできるらしい
ssh hoge@hoge.ac.jp mkdir new_dir

アカウント名 hoge
ssh先 hoge.ac.jp
実行するコマンド mkdir new_dir






すでにOSはインストール済のサーバーについて初期設定をしたのでメモ




■ まずは取扱説明書を読む

パスワードやら電源のボタンなどの説明がある
それすら知らないレベルでサーバーのことはわからん




■ 計算機の電源を切るには
% su -
# shutdown -h now
■ 計算機の再起動をするには
# su -
# shutdown -r now

または
# reboot
■ ユーザーを追加する

■ 参考 : ユーザーを追加する
# adduser hoge
この後パスワードを聞かれるので設定する

シェルをtcshにしたい場合は以下の通り
取説には -s /bin/tcsh って書いてあったけどこれではエラーが出た
# adduser --shell /bin/tcsh hoge

ユーザーのパスワードを変更したい場合は
# passwd hoge
ただpasswdと打つとスーパーユーザーのパスワードを変更することになるので注意



■ HDDのパーティションを確認
# df -h
■ OSのversionを見るには
% cat /proc/version



今回はDHCPじゃなくて固定IPで運用する
取扱説明書にはnmtuiってコマンドでネットワーク設定をすると書いてあったので、
そのままやってみた
そしたら、意外とうまくいかなくて詰まった

■ 参考 :ネットワーク設定

にある通り以下の設定ファイルを修正する
# vi /etc/network/interfaces

# 以下追記
auto hoge
iface ens3 inet hoge
# IPアドレス
address 10.0.0.30
# ネットワークアドレス
network 10.0.0.0
# サブネットマスク
netmask 255.255.255.0
# ブロードキャストアドレス
broadcast 10.0.0.255
# デフォルトゲートウェイ
gateway 10.0.0.1
# ネームサーバー
dns-nameservers 10.0.0.10
みたいに書く(値は各人の環境で置き換える)
ただし、自分の環境ではOSがミニマムでインストールされていたのかDNSがきちんと動いていなかった

設定内容の詳細は
■ 参考 :man interfaces 覚書



DHCPで動かしたかったら
# vi /etc/network/interfaces

auto eth0
iface eth0 inet dhcp
でいいはず(やってないのでただのメモ)


■ ネットワークへの接続確認
ping [ゲートウェイサーバーのIPアドレス]
これで何も応答がないならなにかトラブってる

本当に素人なので↓とかのサイトを見ながらあれこれやってみた
■ 参考 :ネットワークにつながらない時に確認する4つの手順Linux

■ 参考 :インターネットに繋がらないときの5つのコマンド(Linux編)Linux



■ DNSサーバーを登録する

dns関連のパッケージが入っていないので手でDNSサーバーのIPアドレスを
/etc/resolv.conf に追記する
これでDSNサーバー問題が解決した

その後はパッケージを最新にしてアップデートする
# apt update
# apt upgrade
必要そうなパッケージをインストールする
# apt -y install dnsmasq resolvconf
# apt -y install emacs
# apt -y install tmux
■ sudoの設定
# apt -y install sudo
すでに入っていた
# visudo

最終行に
hoge ALL=(ALL) ALL
と追記する
他の設定で、再起動や電源を落としたり一部のコマンドをsudoで使えないようにすることも可能



■ ntpサーバーの設定
2つのサービスがある
chronyd : 仮想環境や NTP サーバと常に通信できない環境で選択
ntpd : NTP サーバと常に通信できる環境で選択
# apt -y install ntp
# vi /etc/ntp.conf

# 18行目:コメント化
# pool 0.debian.pool.ntp.org iburst
# pool 1.debian.pool.ntp.org iburst
# pool 2.debian.pool.ntp.org iburst
# pool 3.debian.pool.ntp.org iburst
# 同期をとるサーバーを指定
server 0.0.0.0 iburst
# 50行目:時刻同期を許可する範囲を追記
restrict 10.0.0.0 mask 255.255.255.0 nomodify notrap


ファイルを修正後にntpサービスを再起動する
% sudo systemctl restart ntp
ntpq -pで動作確認できる


■ sshサーバーの設定
sudo apt -y install openssh-server

% sudo emacs /etc/ssh/sshd_config

32行目:コメント解除して no に変更
PermitRootLogin no
■ webサーバーの立ち上げ
sudo apt -y install apache2
設定を書くファイルは通常は `/etc/httpd.conf`だが、Debianは少し違う
■ 参考 : DebianのApache2設定ファイルについて
% sudo emacs /etc/apache2/conf-enabled/security.conf

25行目:変更
ServerTokens Prod
これによってApacheのversionやOS情報を外に出さない

% sudo emacs /etc/apache2/mods-enabled/dir.conf

2行目:ディレクトリ名のみでアクセスできるファイル名を設定
DirectoryIndex index.html index.htm
■ 個人ページの設定
■ 参考 :[3.1] ファイルの置き場所
% mkdir ~/public_html
% sudo emacs /etc/apache2/mods-available/userdir.conf
UserDir public_html`になっていることを確認する
この設定ファイルの内容を反映させる
# a2enmod userdir
% sudo systemctl restart apache2
これでlocalhost/~hoge というページにあるindex.htmlが見れるようになったはず
sudo emacs /etc/apache2/sites-enabled/000-default.conf

13行目の
DocumentRoot /var/www/html
となっている
localhost とfirefoxとかで打って開くページは /var/www/html/index.html
なので /var/www/html 以下にファイルを置くと、webサーバーで公開することができる



さらに.htaccessの設定をしてアクセスにパスワードを要求するようにする

■ 過去記事 :【雑記】サーバーのあるディレクトリ以下にアクセスするときだけパスワードを要求するように設定したい

% sudo emacs /etc/apache2/apache2.conf

<directory var="" www="">
Options Indexes FollowSymLinks
# AllowOverride None
AllowOverride All
Require all granted
</directory>

% sudo systemctl restart apache2

のようにAllowOverride Allに変更する
最後にapacheを再起動する
これでhtaccessが機能するようになるはず





% su
rootに切り替える
ただし今いるディレクトリからは動かない

% su -
rootに切り替える
ただし今いる場所からルートのホームディレクトリに移動する

■ 参考 : su と su - の違い


違いは - の有無
-を付けるとrootの設定ファイルを読み込む
-をつけないと設定ファイルを読み込まないので、一般ユーザーの設定したPATHとかがそのまま引き継がれる







% .libPaths()
でわかる

自分の場合は
/Library/Frameworks/R.framework/Versions/3.5/Resources/library
だった


自分で追加したい場合は
% .libPaths("./hoge")
のようにする
これを ~/.Rprofile に書いておくと勝手に起動時に読み込まれる
(パッケージのインストール先の優先順位はどうなる? )





某申請書類をTeXで作成しようとした(これまでもTeXでやってた)
そしたら次のようなコンパイルエラーが出始めた・・・
This is e-pTeX, Version 3.14159265-p3.8.1-180226-2.6 (utf8.euc) (TeX Live 2018/MacPorts 2018.47642_8) (preloaded format=platex 2019.3.6) 21 MAR 2019 16:03
entering extended mode
restricted \\write18 enabled.
%&-line parsing enabled.
**pd.tex
(./pd.tex
pLaTeX2e <2018-04-01>+1 (based on LaTeX2e <2018-04-01> patch level 2)
Babel <3.18> and hyphenation patterns for 3 language(s) loaded.
(/opt/local/share/texmf-texlive/tex/platex/base/jarticle.cls
Document Class: jarticle 2018/02/04 v1.7h Standard pLaTeX class
\\c@@paper=\\count83
(/opt/local/share/texmf-texlive/tex/platex/base/jsize11.clo
File: jsize11.clo 2018/02/04 v1.7h Standard pLaTeX file (size option)
)

(略)


(/opt/local/share/texmf-texlive/tex/latex/graphics/graphicx.sty
Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)

(/opt/local/share/texmf-texlive/tex/latex/graphics/keyval.sty
Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
\\KV@toks@=\\toks15
)
(/opt/local/share/texmf-texlive/tex/latex/graphics/graphics.sty
Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)

(/opt/local/share/texmf-texlive/tex/latex/graphics/trig.sty
Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
)
(/opt/local/share/texmf-texlive/tex/latex/graphics-cfg/graphics.cfg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: dvipdfmx.def on input line 91.

(略)

(./forms/hook5.tex) (./forms/hook7.tex) (./forms/pd_forms.tex
(./forms/pd_form_03-04.tex
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <10.95> on input line 24.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <8> on input line 24.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 24.
(./blahblah.tex)
! Undefined control sequence.
\\Gread@pdf #1->\\Gread@generic
{#1}\\Gread@extractbb@aux
l.28

?
! Emergency stop.
\\Gread@pdf #1->\\Gread@generic
{#1}\\Gread@extractbb@aux
l.28

End of file on the terminal!

申請書類のTeX版を作ってくれてるYさんにこのエラーを見せて相談したところどうやら
graphicx.styってスタイルシートがめちゃくちゃ古いらしい
確かに1999年だわ・・・

このときのTeX環境はMacPortsですべて作ってて
% sudo port install texlive-lang-japanese texlive-luatex texlive-xetex texlive
って感じでやってた
もしかしたら
% sudo port install texlive-lang-japanese
だけだったかもしれんけど・・・

このあとportであれこれ試してたら完全にTeXがコンパイルできなくなりました
本当にありがとうございました






しょうがないからMacPorts以外の方法でTeXliveをインストールするかぁ〜と探していたら
以下のページを見つけた

■ 参考 : macOS に Tex Live 2018をインストールする

これでもできそうだったけど、いろいろとコマンドを打ったりでめんどくさそうだったのでパス





MacPortsさんであれこれするのは諦めてMacTeXをインストールすることにしました
ここを参考にしました

■ 参考 : 教授でもできるMac OS XへのLaTeXとTeXShopのインストレーション

他にはTeXShopの公式サイトにもMacTeXのダウンロードリンクがあったけど、
そっちはインストール関連の説明があんまりなかったので↑のほうが参考になりました



■ 記事にそってやっていく
1. MacTeX-2018をダウンロードする。

2. MacTeXをインストールする。
インストール先は /usr/local/texlive/2018
アンインストールするときは /usr/local/texlive/2018 を削除すればOK

3. Applications/TeX/TeX Live Utility (「アプリケーション」フォルダーの中のTeXフォルダーの中のTeX Live Utility) を立ち上げて、環境を整備する。
これは
% sudo tlmgr update --self
% sudo tlmgr update --all
するのと同じか?

4. 標準の用紙をA4に設定する
これはいるのかわからん・・・

5. PATHを追加する
/Library/TeX/texbin
をPATHの前に追加する、少なくともMacPortsのPATHよりも前にする

# ここからTeXShop
6. TeXShopを起動する => アップデートを確認で最新のversionにする

7. 環境設定 => pTeX (ptex2pdf) を選択する => TeXShopを再起動して設定を反映する

8. terminalで以下のコマンドを打つ
defaults write TeXShop FixLineNumberScroll NO
defaults write TeXShop SourceScrollElasticity NO
defaults write TeXShop FixPreviewBlur YES

これらのコマンドの意味は↓に書いてあった
■ 参考 : MacTeX 2016 のインストール&日本語環境構築法 (El Capitan 以前/以後両対応)
1行目の FixLineNumberScroll NO は,(10.7 Lionなど)古い OS X において存在した,行番号がスクロールしないOS側のバグに対処するための対症療法を停止させる措置です。最近の OS X ではこのバグが修正されていますので,この対症療法は不要となりました。対症療法が残っていると,スクロール速度が遅くなる原因となります。

2行目の SourceScrollElasticity NO は,スクロール時に上下端で大きく跳ね返るバウンスエフェクトを停止させる措置です。OS X 10.10 Yosemite 以降では,このバウンスがかなり大げさになり,以前の OS X と比べてうっとうしさが目立つようになりました。ですからこのエフェクトは停止させておくのがよいでしょう。

3行目の FixPreviewBlur YES は,OS X 10.10 Yosemite 以降において,プレビューウィンドウのPDFが(一部の環境で)ぼやけて見えてしまうのを防止する措置です。
とのこと


8. コンパイルするTeXソースの一番上は
\documentclass[dvipdfmx,uplatex]{jsarticle}
にする
自分の場合は、これをしなくてもコンパイルできたけど念の為メモ・・・






MacTeXをインストールしてみてすごいなぁ〜と思ったのは、これまで自分が手でインストールしてたスタイルシートが全部入ってること
すばらしい








先週、突然python2からpython3に移行しなければならないトラブルがあった
今のmacportsの上にさらにpython3をインストールしてみたが、うまくいかない
それで一度macportsをアンインストールしてやり直した
そしたらpython3はうまく動くようになった


が明けて今週、gnuplotがx11で動かない
どうやらDISPLAY環境変数がおかしなことになってるけど、それをどうすればいいのかはわからない・・・
x11はxQuartsを公式ホームページからダウンロードしてきてインストールしていた

Macでgnuplotが使えないだけならまぁaquatermとか別のを使って表示させればいいかなぁ〜くらいに思ってたけど
sshした先のgnuplotもxwindowをこっちに飛ばせないのでNG

これはまずい・・・





まずはXquartzのアンインストールをする

■ 参考 :Xquartzのアンインストール

メモ
#Xquartzの自動起動を停止
launchctl unload /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
sudo launchctl unload /Library/LaunchDaemons/org.macosforge.xquartz.privileged_startx.plist

#作成されたファイルを削除
sudo rm -rf /opt/X11* /Library/Launch*/org.macosforge.xquartz.* /Applications/Utilities/XQuartz.app /etc/*paths.d/*XQuartz

#パッケージのインストール情報を削除
sudo pkgutil --forget org.macosforge.xquartz.pkg



その後でmacportでx11をインストールする
% port search xorg-server
xorg-server @1.18.4_3 (x11, devel)
The X.org / Xquartz X server.

xorg-server-devel @1.20.3 (x11, devel)
The X.org / Xquartz X server.

Found 2 ports.

% sudo port install xorg-server
なんかエラーが出て止まる

% sudo port -f activate xinit
% sudo port install xorg-server

インストールのあとで再起動する
これでx11関連のトラブルは解決できた

(今ふと思えば、sudo port -f activate xinitを1回実行したら再インストールなくてもトラブル解決したんじゃないの〜?)






その後、sshログインすると
Warning: No xauth data; using fake authentication data for X11 forwarding.
というエラーが表示されるようになった
プロットとかx11はきちんとできているので、実害は今のところないがなんとかしないと









NISを使ってパスワードを共有している計算機を使う機会があった

hogeというユーザを追加する方法は
% su
% useradd -m -g users hoge
% passwd hoge

% cd /var/yp
% make
これでOK


ユーザが自分自身でNISで共有するパスワードを変更したいときは
%yppasswd

ユーザが自分自身でログインシェルを変更したいときは
%ypchsh










■ plotの基本
plot(x, y)
■ 参考 : グラフィックスパラメータを設定する、確認する


■ 対数表示、常用対数のみ使える
plot(x, y, log="x")
plot(x, y, log="y")
plot(x, y, log="xy")


■ 範囲指定
plot(x, y, xlim=c(0, 1))
plot(x, y, ylim=c(0, 1))


■ タイトルとかラベル
plot(x, y, main="上につくタイトル")
plot(x, y, xlab="x軸のラベル")
plot(x, y, ylab="y軸のラベル")
ラベルとかを大きくするにはtmag=1.5とかするらしいけど、現在のRではもはやサポートされていないらしい
今使えるのは↓
mainを大きくしたいときは cex.main=1.5
labelを大きくしたいときは cex.lab=1.5
数字を大きくすると大きくなる


■ 重ね書き
plot(x, y)
par(new=T)
plot(a, b)
とか、linesを使う場合はpar(new=T)はいらないっぽい
ググった感じ、そっちを奨励してる人もいた
あとpar(new=T)を使う場合はグラフの範囲指定を意識的にしないといけない
plot(x, y)
lines(a, b)


■ 線の色
col = 1
col="blue"
col = rgb(1, 0, 0)


■ 線の太さ
lwd=2





(2019/03/06 追記)
# rhoをギリシャ文字で入れたい場合は
main = expression(rho)

# 通常の文章にギリシャ文字を混ぜたい場合はexpressionの中でpasteを使う
main = expression(paste(lambda, "=5 のポアソン分布 "))

■ 参考 : ggplot2でギリシャ文字や数式を表示したい

■ 参考 : Rコード:プロットのタイトルにギリシャ文字を利用する。







プロフィール
HN:coffee
職業:物理屋(自称)
趣味:映画鑑賞、登山
出身:大阪府の南の田舎
自己紹介:
import MyProfile
import coffee_pote from TWITTER
import amazonのほしい物リスト from WISH_LIST

print "株式売買を始めてだいたい1ヶ月くらい立ちますた"

# 最終更新 2019/07/20
カウンター
ブログ内検索
ツイートするボタン
リンク
相互リンク募集中です (Twitterにてお知らせください)

Demo scripts for gnuplot version 5
(gnuplotのさまざまなデモ画像と作り方がまとめられている、眺めているだけでできるようになった気分になれる)

gnuplotスクリプトの解説
(米澤進吾さんの個人ページ、gnuplotと言えばこのかた)

gnuplot のページ
(Takeno Lab、うちのブログがリンクされていたのでリンク返し)

とある物理の院生日誌~院生は社会へ旅立った~
(研究室の先輩の個人ブログ)

英語例文を見て自然に英語・英会話を学ぶ
(楠本慶ニさんの個人ページ、様々な情報の密度の高さに感動)

Twitterから映画の評価が分かる & 映画の鑑賞記録が残せる coco
(映画の感想をまとめられるサイト、いつもお世話になっています)

Astronomy Picture of the Day Archive
(天文や宇宙関連の最新の話題について画像とともにNASAが説明しているページ)

今日のほしぞら
(任意の時刻の空で見える星を表示してくれる、国立天文台が管理している)

GNUPLOTとアニメーション
(応用の項目の「見せてあげよう!ラピュタの雷を!!」あたりからすごすぎる)

読書メーター
(読んだ本をリストできる便利なサイト)

flickr難民の写真置き場
(20XX年、flickrは有料化の炎に包まれた。あらゆるflickr無料ユーザーは絶滅したかに見えた。 しかし、tumblr移住民は死に絶えてはいなかった。)

教授でもできるMac OS X へのLaTeX, X11, gccのインストレーションと環境設定
(阪大の山中卓さんのwebページ、タイトルにセンスが溢れている、内容は超充実してる、特にTeX関連、学振DCとかPDの申請書類作成時にはお世話になっております)


Template "simple02" by Emile*Emilie
忍者ブログ [PR]