うまくスキップができない

理系大学院生の備忘録だったり,頭の中身

Raspberry Pi 3にGitサーバーを構築してみた

背景

諸事情によりインターネットから隔離された環境で ラズパイを使った開発をしなければいけなくなったので 開発を便利にするためにサーバー用のラズパイ3を持ってって そこにGitサーバー構築便利だよねってことで

環境

必要なもの

  • OSを書き込んだSD
  • RaspberryPi3
  • (2ならwi-fiモジュール)←今回は無線接続を想定

手順

  • いつもの(apt-getの更新)
sudo apt-get update
sudo apt-get upgrade

Gitのインストール【gitがインストールされていなければ】

sudo apt-get install -y git
sudo apt-get install -y wget git-core

Git serverへのユーザー作成

sudo adduser git

そしてパスワード等を入力する
※Full Name等の情報は未入力でもいいらしい

Git リポジトリ作成

今回は/home/piにgitディレクトリを作成し
その中にhoge.git[ディレクトリ]を作成する
hoge:作成したリポジトリの名前

mkdir /home/pi/git
cd /home/pi/git
mkdir hoge.git

※サーバーのGitリポジトリhoge.gitとするらしい

Git リポジトリを初期化@/home/pi/git/hoge.git

git init --bare
git init

設定変更

たぶん今のままだと

git config --get-all core.bare
false

となっていると思うので

git config --bool core.bare true

とする
確認するとtrueになっている

git config --get-all core.bare
true

ローカルリポジトリ作成

git init
  • remoteを追加
git remote add repo pi@XXX.XXX.XXX.XXX:/home/pi/git/hoge.git

piはユーザー名
repoは適当な名前で大丈夫です
* 適当なファイル(test.txt)を作成して

git add test.txt
  • コミットしよう
git commit -m "first commit"
  • プッシュしよう
git push --set-upstream test master

※これ以降はgit push testでいけたはず

クローンする

これでクローンできる

git clone pi@XXX.XXX.XXX.XXX:/home/pi/git/hoge.git

完璧ではないかもだけどとりあえず動いてるっぽい
何か間違っている部分があったら随時追記します

エラー集【今回おきたエラーなどなど...】

  • fatal: No configured push destination.
  • fatal: does not appear to be a git repository これは単純にpathの間違いでした
    最初remoteにaddするときに
git remote add test pi@XXX.XXX.XXX.XXX:/home/git/hoge.git

としていて
正解は

git remote add test pi@XXX.XXX.XXX.XXX:/home/pi/git/hoge.git

でしたよ(piが抜けてた),という話

  • failed to push some refs to
    git pushしたときに発生したエラー
    こんなの
Counting objects: 3, done.
Writing objects: 100% (3/3), 211 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To XXX.XXX.XXX.XXX:/home/pi/git/hoge.git
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'pi@XXX.XXX.XXX.XXX:/home/pi/git/hoge.git'

このコマンドで解決git config --bool core.bare true

git config --get-all core.bare
false

であることが原因らしいtrueにしたらpushできた

参考

www.webprofessional.jp nilfigo.hatenablog.com Raspberry Pi3を Gitサーバとして設定する方法、Git単体と GitLabを使用する方法 (ラズパイ3でローカルの Gitサーバを動かす方法。GitLabをインストールする方法)

Windows上でSublimeText3のTeX環境設定

研究室のWindowsPCのSublimeTextでTeXを書きたいので
そのための環境設定
毎回設定に苦労してる気がする...


#環境
OS: Windows 10 Pro
Sublime Text 3

  • TeX Liveをインストール

Installing TeX Live over the Internet - TeX Users Group
URLのページの赤枠をクリックしてZipファイルをダウンロード
(※exeファイルをダウンロードすると警告がでて実行できなかった)
f:id:appli-in:20170903231514p:plain
Zipファイルを展開して
"install-tl-windows.bat"を管理者権限で実行
あとは指示に従ってインストール
結構時間かかります・・・

  • SumatraPDFをインストール

www.sumatrapdfreader.org

  • Package Controlをインストール

https://packagecontrol.io/installation#st3
メニューバー
[View]->[Show Console]
出てきたコンソールに上記URLの文字列(※画像参照)をコピーして貼り付けでEnter
f:id:appli-in:20170903205724p:plain

  • TeX Toolsをインストール

メニューバーの
[Preferences]->[Package Control]
出てきたウィンドウで"Install Package"
インストールするパッケージ名として
TeX Toolsを選択しインストール

  • TeX Toolsの設定

[Preferences] -> [Package Settings] -> [LaTeXTools] -> [Settings - User]
の中の
"builder_settings" : {
の次の行に

"command" : ["latexmk", "-cd",
"-e", "$latex = 'uplatex %O -no-guess-input-enc -kanji=utf8 -interaction=nonstopmode -synctex=1 %S'",
"-e", "$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'",
"-e", "$bibtex = 'upbibtex %O %B'",
"-e", "$makeindex = 'upmendex %O -o %D %S'",
"-e", "$dvipdf = 'dvipdfmx %O -o %D %S'",
"-f", "-%E", "-norc", "-gg", "-pdfdvi"],
を追加

【以下は必要ないかも?上記の手順でうまくいかなかった場合試してみてください】
メニューバーの[Preferences] -> [Browse Packages]
ダイアログが開いて[LaTeX Tools] -> [builders] -> traditionalBuilder.pyを編集
17行目あたりの"DEFAULT_COMMAND_LATEXMK","DEFAULT_COMMAND_WINDOWS_MIKTEX"をコメントアウトして以下のように追加

# DEFAULT_COMMAND_LATEXMK = ["latexmk", "-cd", "-f", "-%E",
					# "-interaction=nonstopmode", "-synctex=1"]
# 
# DEFAULT_COMMAND_WINDOWS_MIKTEX = ["texify", "-b", "-p", "--engine=%E",
					# "--tex-option=\"--synctex=1\""]
DEFAULT_COMMAND_LATEXMK = ["latexmk", "-cd",
"-e", "$latex = 'uplatex %O -no-guess-input-enc -kanji=urf8 -interaction=nonstopmode -synctex=1 %S'",
"-e", "$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'",
"-e", "$bibtex = 'upbibtex %O %B'",
"-e", "$makeindex = 'upmendex %O -o %D %S'",
"-e", "$dvipdf = 'dvipdfmx %O -o %D %S'",
"-f", "-norc", "-gg", "-pdfdvi"]

DEFAULT_COMMAND_WINDOWS_MIKTEX = DEFAULT_COMMAND_LATEXMK


これであとは編集しているtexファイルを開いた状態でCtrl+Bでコンパイル&PDFの表示ができるはず!!

UbuntuブートUSB作成

研究室のPCに急遽Ubuntuを入れなければ行けなくなってブートUSBを作成したのでメモ

環境

OS : OS X El Capitan ver.10.11.6
USB : Transcend JetFlush 330 (4G)

手順

1. USBをPCに接続する.

2. hdiutilを使って.isoファイルを.imgファイルに変換

hdiutil convert -format UDRW -o /path/to/save/name.img /path/to/ubuntu.iso

※この時拡張子が.dmgがつくので注意

3. diskutil listで確認
USBがdiskNになっているかを確認

4. diskutilでマウント解除

diskutil unMountDisk /dev/diskN

5. ddコマンドでイメージ書き込み

sudo dd if=/path/to/save/name.img of=/dev/rdiskN bs=1m

※Ctr-Tで書き込み状況を確認できる.

参考URL

qiita.com

PyCharmでリモート先の任意の場所にファイルを転送したいとき

PyCharmでリモート先の任意の場所にファイル転送

RaspberryPi 上でコードを書くのは面倒なので
PythonIDEのPyCharmを使ってます.
内部でやっていることは
編集したファイルをsshでリモート接続してファイル転送
そしてRaspberryPi内部のPythonで転送されたファイルを実行
(しているんだと思います)

今回はRaspberryPiとうまく連携できたんだけど
プロジェクトを作成したディレクトリにしかコードが転送されなくて
プロジェクト内の任意の場所ににコードを転送したい場合の設定を
忘れない様にメモ

こんな感じ
f:id:appli-in:20170811100937p:plain

状況はRaspberryPi上のhome/pi/Raspberryというディレクトリにファイルが毎回転送されてしまう
home/pi/Raspberry/Codeに転送したい
図の大きい方のディレクトリがhome/pi/Raspberry
図の小さい方がhome/pi/Raspberry/Codeと思っていただければ

具体的なやり方

メニューバーの[Tools]->[Development]->[Configuration]を選択
するとこんなダイアログが出ます.
f:id:appli-in:20170811101916p:plain
ダイアログ上部の赤丸のmappingをクリック
出てきたダイアログの図のDevelopment path on serverの部分(図の赤枠部分)
f:id:appli-in:20170811102736p:plain
を転送したいパスに変更すればOK

一人暮らしおすすめソファ

お題「新生活」

おすすめのソファの紹介

”2人掛けソファ EJ-2107 ブラウン”
Amazon|2人掛けソファ EJ-2107 ブラウン|ソファ オンライン通販
item.rakuten.co.jp



現在一人暮らし中で
以前まで主に部屋でのホームポジションは座椅子の上だったんですけど
(座椅子って座りにくいし,あんまり居心地良くないことに気づいた...)
ある日ソファがほしいなと思って探すことに
条件は

  • 今の部屋に合う
  • 二人がけソファ
  • 値段が10000円ほど
  • 作りはしっかりしたもの

で探してました
来年引っ越す(予定だ)し
最悪その時捨てても惜しくないって意味で
10000円という予算設定にしました.

そこで見つけたのがこれ
”2人掛けソファ EJ-2107 ブラウン”
Amazon|2人掛けソファ EJ-2107 ブラウン|ソファ オンライン通販
item.rakuten.co.jp

雰囲気はめちゃくちゃ良い!!!
部屋にも合いそう!!!
値段もちょうどいい!!!
ってことでめちゃ気に入ったのですが
探せど探せどレビューが少ない...
(今はそんなことないみたい.現在楽天では結構高評価)

流石に安くはない買い物なのでちょっとためらったけど
思い切って買ってしまいました

最終的に買ってめっちゃよかった!!!!!!

サイズ感が一人暮らしの部屋に置きやすい横幅115cmで
部屋を圧迫しません

実は足は取り外し可能で,
”足あり”も”足なし”もどちらでもいける
当初は”足あり”で使う予定でしたが
結局”足なし”で使っています(テーブルの高さが合わずご飯が食べづらかった)
テーブルの高さに合わせて変えられるので
今後テーブルを変えたときにも適応可能!

クッション性はあんまり期待していなかったのですが
全然悪くないです!むしろちょうどいい
程よいクッション性があります
流石にふかふかではないですけど
なので寝るには向いていません(サイズも小さくて体痛めます)


ちなみに実際に部屋に置いた写真はこちら



組み立ても簡単だし
一人暮らしで
・今後長年使うかわからない(引っ越しが近々控えてる等)
・あんまり部屋は大きくない
・お金を余りかけたくない
けどソファが欲しい方にはめちゃめちゃおすすめしたいソファ


ぜひ!!!!

google apps scriptとSlack 連携でのエラー色々

研究室での連絡ツールがSlackで
掃除当番や雑務管理をgoogleスプレッドシートで管理して
GAS (google apps script)で
必要に応じてSlackにポストするってことをしようとしたときに
起こった色々なエラーをまとめる
起こったエラー一覧

  1. 文字が無効です
  2. 関数内のpostMessageが実行されない
  3. onEdit関数内でSlackのpostMessageが実行されない
  • 番外編

1. 文字が無効です

google apps scriptのスクリプトエディタではパッと見
丸括弧( )の全角半角の区別が付きづらく (ほとんどわからない)
全角で括弧を入力していたせいでエラーがずっと出てた
意外と見落としがちだった


2. 関数内のpostMessageが実行されない

これはpostMessageより前で

SlackApp.create(slack["token"]);

をしていないことが原因だった
そりゃpostされないわけだ
これが発生したのが編集時のトリガーで実行される関数だったから
デバッグが出来ず無駄に時間を使ってしまった...
こういう問題であまり時間をかけず解決できる様になりたい


3. onEdit関数内でSlackのpostMessageが実行されない

これがマジで一番厄介だったし,本質的に解決していない
何が起こったかというと
編集を読み込まないmyfunction()関数ではpostMessageされるのに(以下ソース)

function myFunction() {
  var slackApp = SlackApp.create(slack["token"]);
  var Message = slackApp.postMessage(
      slack["ChannelId"],
      "ok"
      ,{username : slack["userName"],icon_emoji: slack["iconEmoji"]});
}

編集をトリガーに実行されるonEdit(e)関数ではpostMessageが実行されない(以下ソース)

function onEdit(e){
   var range = e.range;//書き込みがあったセルのオブジェクト
   var slackApp = SlackApp.create(slack["token"]);
   var Message = slackApp.postMessage(
      slack["ChannelId"],
      "ok"
      ,{username : slack["userName"],icon_emoji: slack["iconEmoji"]});

というもの
myfunction()では実行されるから
token,チャンネル,userName, 絵文字が間違っているわけではない
myfunction()のコードをそのままコピーしてきてるから半角全角問題もない
しまいにはBrowser.msgBoxで直前まで実行されることは確認できてて
いよいよ原因がわからない...
ほとんど最初から書き直すレベルで修正したけど結局うまく実行されない
結果的にスプレッドシートを作り直して(生成し直し)
一から全部やりなおしました...(泣)
新しいスプレッドシートではなんの問題もなくスムーズに実行されたから
もっと早くからやり直しておけばよかった

もし原因がわかる人がいたら教えて欲しいです(切実)




※番外編
onEdit(e)関数内で

  //イベント関連の変数
  var ROW = range.getRow();
  var COLUMN = range.getColumn();
  var PCID = sheet.getRange(ROW,1).getValue();
  var STATUS = sheet.getRange(ROW,2).getValue();
  var PERSON = sheet.getRange(ROW,3).getValue();
  var START = Utilities.formatDate(sheet.getRange(ROW,4).getValue(), 'JST', 'MM月dd日');
  var END = Utilities.formatDate(sheet.getRange(ROW,5).getValue(), 'JST', 'MM月dd日');

みたいに宣言したとき
それぞれのセルに文字(ここではPCID,STATUS等)が入ってないと
その以下は実行されないみたい(もしかしたら自分だけかも)


google apps script めっちゃ便利なので
今後も色々理解して書いていきたい

Windows7でのFILCO Majestouch MINILA US67の設定+google日本語入力で入力切り替え設定

新年度になり
研究室のデスクトップPCが入れ替わることになり

先輩の高スペックのPCが下がってくることになったのですが
次のPCがくるまでしばらく待って欲しいということで
暫定的に余っているPCを使うことになってしまいました.

 

今使っているキーボードが

FILCO Majestouch MINILA US67

https://www.amazon.co.jp/dp/B00BG0ZR6K?psc=1

でUS配列なので設定を変更しないと日本語キーボードとして認識されてしまう
しかも日本語とローマ字の入力切り替えキーがないので

 

①USキーボードとして認識してくれるまでの設定手順

②USキーボードで日本語とローマ字の切り替え設定手順

を忘れないように記録(今年度導入のときもやったのにすっかり忘れていた...)

 

USキーボードとして認識してくれるまでの設定手順

レジストリエディタで変更するのが簡単ぽいのでそれでやりました

他にも方法はあるみたい

【以下手順】

はじめに検索でregeditでレジストリエディタを開く

-[HKEY_LOCAL_MACHINE]

 +[SYSTEM]

  +[CurrentControlSet]

   +[service]

    +[i8042prt]

にある[Parameters]のパラメーターを変更

LayerDriver JPN: [kbd106.dll] -> [kbd101.dll]

OverrideKeyboardIdentifier: [PCAT_106KEY] -> [PCAT_106KEY]

OverrideKeyboardSubtype: [2] -> [0]

に変更し再起動で使用可能になった.

(Windows10ではキーボードレイアウトの変更かなにかでできた気がする)

以下の記事を参考にした

codenote.net

USB英語キーボード付けた。(英語、日本語キーボードの共存、KeyboardTypeOverride) 202122

 

 

USキーボードで日本語とローマ字の切り替え設定手順

IMEgoogle日本語入力を使用

ノートPCがMacなのでCtrl+Spaceで入力を切り替えたい

以前はgoogle日本語入力で入力切り替えできなかった気がしたんだけど
久しぶりにやったらできた

【以下手順】

google 日本語入力をインストール

・インストール後[入力モード](”あ”とか”A”とかになるところ)を右クリック

・[設定]をクリック

google日本語入力の[プロパティ]を選択

・ウィンドウ下部のキー設定の選択の[編集]をクリック

一番左の列が”入力文字なし”の”英数入力切り替え”の”入力キー”をCtrl Spaceに

(入力キーのところをクリックしてウィンドウが開いたらCtrl Spaceを押せば勝手に入力されます)

同様に”直接入力”の”IME有効化”の”入力キー”もCtrl Spaceに

実際どれがうまく作用しているのかはわからなかったけど(なんとなく設定した)

とりあえずCtrl Spaceで英数と日本語の切り替えができた

 

昔はうまくいかなくてMicrosoftIMEを無効化して

ちからわざで入力切り替えしていたので

以前より良くなった