Mac,環境構築

こんにちは、しきゆらです。

今回は、Githubにあるブランチのすべてをローカルリポジトリへpullしてくる方法を知ったのでメモしておきます。

 

状況

まずは、こんなことをしようと思った経緯をメモしておきます。

先日、メインで利用しているMacbook ProのOSアップグレードをしました。

はい、「High Sierra」から「Mojave」へのアップグレードです。

 

毎回、OSの名前が変わるたびにクリーンインストールしていた私。

今回も例に漏れず、アップグレード後にクリーンインストールしました。

SSDによりPC本体に記録できる容量がHDDに比べて少なくなりましたが、オンラインストレージ等のおかげでほぼ不便なく利用できています。

Mac標準のiCloud、Windowsでも利用しているOneDrive、普段遣いのDropboxと3つを併用しています。

基本的なファイルは、これらの場所においているため、クライアントソフトをインストールすればすぐに利用できるようになります。

 

開発しているプログラムも、殆どはGit/Githubで管理しています。

そこで、クリーンインストールした後homebrewでGitをインストール。

あとはGithubからリポジトリをcloneしてくれば全て解決。

・・・と思ったら、デフォルトでクローンしてくれるのはmasterブランチだけなんですね。

知らなかった。

 

・・・長々と書いてきましたが、ここまでが前置き。

Githubにあるmaster以外のブランチを全てローカルリポジトリにpullしたい。

ということで本編です。

 

解決方法

本編のほうが短いです。

なんと3回コマンドを打つだけなので。

 

調べてみると、こんな記事が。

全部ランチをリモートリポジトリからpullする – Qiita

https://qiita.com/muraikenta/items/e590a380191971f9c4c3

まさにほしい情報でした。

古い記事でしたが、この手順で完了できました。

$ for remote in `git branch -r`; do git branch --track ${remote#origin/} $remote; done
$ git fetch --all
$ git pull --all

何をやっているのかよくわかりません。

git branch -rでリモートのブランチを取得し、--trackの部分はわかりませんが、取得したブランチ全てを指定しているのかな?

そして、fetchとpullして取得。

・・・わからん。

 

まとめ

調べてみると、やはり似たようなことをしたい人がいて一安心。

GitやGithubはそれなりに使っていましたが、未だによくわからない部分が多いです。

特に、pullとかcloneとか。

プルリクエストもいまいちわかっていません。

まぁ、基本的に1人で使うことが多いので使う部分が限られるのですが・・・。

 

では、前置きが本編の記事でした。

今回はここまで。

おわり

Ruby

こんにちは、しきゆらです。

今回はExcelで書き出したCSVファイルをRubyで読み込むときに躓いたところをメモしておきます。

 

状況

Excelで管理していたとあるデータをCSVで書き出し、Rubyで変換しつつDBへ突っ込もうと思っていました。

CSVファイルは、先頭にヘッダーとなるタイトルをつけていて、2行目からが実質のデータでした。

 

ExcelでCSVファイルを吐き出す

Excelで書き出すことができるCSVファイルは2種類あります。

  • 「一般的な形式」の中にある「CSV UTF-8 (コンマ区切り) (.csv)」
  • 「特別な形式」の中にある「CSV (コンマ区切り) (.csv)」

「特別な形式」では、文字コードがShift-JISのため「一般的な形式」の方で吐き出しました。

あとは、RubyのCSVライブラリで読み込んでforeachなどですべての行を読み込めば終わり。

・・・と思っていた時代が私にもありました。

このUTF-8が曲者でした。

 

詳しくは、続きから。

 

日記

先日の北海道胆振東部地震にて、全道的に停電が起きました。

私の住んでいるところも例に漏れず、1日以上停電が発生しました。

これまでの人生の中で、このような状況は初めてでした。

 

地震にて被害を受けて、感じたことや必要だと思ったものを記しておきます。

 

日記

こんにちは、しきゆらです。
今回は、先日のAmazonタイムセールで売っていたノートを買ってみたので使い勝手をメモします。

 

ここ数年は、紙にメモすることが多くなりました。
使っているノートは、マルマンのMnemosyneです。
マルマン ノート ニーモシネ 7mm罫 A4 N199A
書きやすく、大きさやページ数もちょうどよかったのですが、そのへんのノートよりやや高い・・・。
年間数冊ほど書くので出費はかなりのものです。

 

また、ノートが増えると見返すのも大変。
どこに何を書いたのか、探すのが大変。
どうしたものかと思っていたところに、見つけました。
ストーンペーパーノート。
HOMESTEC スマートノート B5 消せる機能のノート デジタルノート 電子文具 おもしろ 文房具 メモ 付箋 手帳 2018 おしゃれ 一瞬で消せる キャンパスノート 学習ノート 単語帳 筆談ボード 家計簿 (B5)
今回は、使った所感を書いておきます。

 

日記

先日、初めて利用したライブラリに対してissueを投げました。

そこに至るまでの心境とか、経緯とかをまとめていきます。

 

Ruby

こんにちは、しきゆらです。

今回は、タイトル通りですが、GoogleのAPIを利用したアプリケーションを作るときの流れを見ていきます。

大まかな流れとしては、以下のとおりです。

  • Google Cloud Consoleから、APIを有効にする
  • APIを叩くための認証を通す
  • 認証情報をもとに、APIを叩く

では、それぞれ見ていきます。

Ruby,Slack

こんにちは、しきゆらです。

前回・前々回とSlackとのやり取りをさっくりと確認していました。

前回の記事

【Ruby】Slack Botことはじめ

前々回の記事

【Ruby】Slack Appことはじめ

タイトルが似ているので間違えそうですね・・・。

Slack AppがBotも含んだ広い意味でのSlack上で動くアプリ全般を表しています。

Slack BotはAppの中でもBotとして振る舞うようなアプリを指しています。

 

今回は、Slack Botでもう少し複雑なこともしたいので、RTMを利用してみます。

 

RTMとは?

タイトルにもある通り、Real Time Messaging APIの略で

Slackと常に接続し、ユーザの動きを監視して特定の行動が起こったら反応する、というようなことができるAPIです。

例えば、

  • ユーザが入力を始めたとき、通知する
  • メッセージが変更されたとき、前後の差分を表示する

などができそうです。

この辺は発想次第でなんとでもできそうですね。

 

では、実際に使って行きます。

 

Linux,Mac

こんにちは、しきゆらです。

今回は、特定のバックグラウンド処理をログアウト後も継続してほしいときに使えるコマンドを知ったのでメモしておきます。

 

何らかの処理をバックグラウンドで処理させていて、ログアウトすると

そのタイミングでバックグラウンドの処理は止まってしまいます。

処理が終わるまで継続してほしいが、自分はログアウトしたい。

そんなときには、「nohup」コマンドを使いましょう。

【 nohup 】コマンド――端末を閉じてもログアウトしても処理を続ける

http://www.atmarkit.co.jp/ait/articles/1708/24/news022.html

ログアウトしてもバックグラウンド ジョブを継続する方法

https://www.codereading.com/nb/ignore-the-hangup-signal.html

 

nohupコマンドの使い方

バックグラウンドで処理させたいときは、こうすると思います。

command &

これだと、ログアウトしたときに止まってしまうようです。

 

nohupコマンドは、この前につけてあげます。

nohup command &

これにて、commandはバックグラウンドで実行されて、ログアウトしても処理が終わるまで続けてくれます。

 

 

まとめ

簡単ですが、バックグラウンド処理をログアウトしても止めずに続けて貰う方法でした。

SSH接続時などでは威力を発揮しそうなコマンドでしたね。

 

今回は、ここまで。

おわり

Ruby,Slack

こんにちは、しきゆらです。

前回はSlackのAppを作ってみました。

前回の記事

【Ruby】Slack Appことはじめ

 

今回は、Botを作っていきます。

といっても、前半は前回の記事とほぼ同じになります。

詳しい手順は、続きからどうぞ。

 

Ruby,Slack

こんにちは、しきゆらです。

今回は、最近話題のSlackのAppを作ってみます。

 

Slackは、最近色んな所で使われているチャットツールです。

こいつは、ただのチャットツールではなく、様々なAPIやサービスと連携できたり

アプリとして自分で拡張することができるなど、自由度がかなり高いツールとなっています。

 

いろんな事ができるようAPIも公開されています。

これを利用して自分用のAppを作ってみましょう。