kiyo_hikoのブログ

メモ+日記?

Windowsで、Gitのリモートリポジトリをローカルフォルダーに置く

以下のようなとき、この方式の使いでがあると思うからメモっとく。

  • リモートリポジトリのしくみを学習中だったり、WindowsのLAN内で完結する作業で、わざわざGitサーバーを置くほどでもない場合。
  • またはGitHubとかクラウドのリモートリポジトリが会社のポリシーとかで禁止されてる場合。

自分はリモートリポジトリの学習するときもっとワンタッチでリモート置けないかと思って調べたらこの方式があった。今までGitHubべったりでちゃんと学習してなかった。

結論

ここにやり方が書いてある。→ Git - プロトコル

終わり。

せっかくなのでサンプルケースを設定し詳細手順を

サンプルケースと手順の概要

ここではサンプルケースととしてC:\dev_repo 以下にローカルリポジトリとリモートリポジトリを作る。そしてローカルでやった作業をリモートにpushするまでをコマンドで示します。
※dev_repoフォルダーはもう存在してるつもり。

次の7手順がこの記事に書くすべて。

  1. ローカルリポジトリ用フォルダーを切る。フォルダー名はtestとする
  2. ローカルをinit
  3. ローカルで何か作業をする
  4. リモートリポジトリ用フォルダーを切る。フォルダー名はtest.gitとする
  5. リモートをinit
  6. ローカルがリモートを参照できるようにする
  7. push
↑の詳細手順

まずコマンドプロンプトを起動。

1.

C:\> cd dev_repo
C:\dev_repo> md test

2.

C:\dev_repo> cd test
C:\dev_repo\test> git init

3.

C:\dev_repo\test> echo hello,world > hello.txt
C:\dev_repo\test> git add .
C:\dev_repo\test> git commit -m "initial commit"

4.

C:\dev_repo\test> cd..
C:\dev_repo> md test.git

5.

C:\dev_repo> cd test.git
C:\dev_repo\test.git> git init --bare --shared=true 

6.

C:\dev_repo\test.git> cd ..\test
C:\dev_repo\test> git remote add origin file:///c:/dev_repo/test.git

7.

C:\dev_repo\test> git push -u origin master

ローカルフォルダーにリモートリポジトリができました。めでたしめでたし

  _
  \ヽ, ,、
_  `''|/ノ
\`ヽ、|
 \, V
    `L,,_
    |ヽ、)                ,、
   .|                   ヽYノ
   /                     r''ヽ、.|
  /        ,.. -──- .、    `ー-ヽ|ヮ
 .|      , ‐'´   __     `ヽ、  `|
  |    / , ‐'"´       ``''‐、  \  |
  |   / /             \ ヽ |
  ヽ,  y'   /` ‐ 、    ,.. -'ヘ   ヽ. }ノ
   ヽ,'     /   /`,ゝ' ´     ヽ   Y.
.    i    ,'     { {        ヽ   `、
    l    ,イ─- 、.._ ヽ ,, _,.. -─:}   !
.    |  r‐i| ー=ェェ:ゝ ,.∠ィェェ=ー' |r 、.  l
   |  {ト」l|.      : | "    ``: |!トリ  |
.  │  ヽ、|      ;.」_      |'ソ    !
.  │     ヽ      r──ッ    /ノ    |
    |      lヽ    ̄ ̄     / イ    │
.    !    丶ヾヽ    ~   , ' ノ │   !
    ト.    ミ.ゝ ヽ.____./  /  l   /
    ヽ  ヽ           イ ,' / , '  ┼ヽ  -|r‐、. レ |
     \.             ノレ'/    d⌒) ./| _ノ  __ノ

ActiveRecordでDB更新したらログ吐かせたい

データの変更とか追いたいから、モデルがsaveされる(DBが更新される)ごとにログ吐くようにする。

以下2手順にて実現

1.モデルの共通的なベースを作る(前準備)
2.ベースのafter_saveフック内でログを吐かせる(やりたかったこと)

もっといい方法あるかもし、このやり方がうまげって保証無し。

手順1.モデルの共通的なベースを作る(前準備)

まずモデルにアプリ内で共通的に使う拡張機能を付ける。
このやり口はやっとくと便利な取り組みだと思ってる。開発とか数件しかしたこと無いけど。

ここでやることは2種類

concernという仕組み使ったモジュールを書き、これをアプリの標準的なモデルに取込ませる。

やること1.concern例:

共通の機能はActiveSupport::Concernを継承したモジュール書いてそれにメソッドとか定義。

models/concerns/regular_model.rb

# このアプリの共通的なモデル拡張
module RegularModel extend ActiveSupport::Concern
  def common_method
    # 何か共通的な処理
  end
end
やること2.model側の取込み例

modelのコードに以下の「これ」を追加。→ concernで定義した機能をmodelが持つ!

class Unko < ActiveRecord::Base
  # ↓これ
  include RegularModel
end

手順2.ベースのafter_saveフック内でログを吐かせる(やりたかったこと)

先にコード例。そのあと補足1点。

models/concerns/regular_model.rb

# このアプリの共通的なモデル拡張
module RegularModel extend ActiveSupport::Concern
  included do
    after_save :after_save_log
  end

  def after_save_log
    logger.warn "#{Time.now.localtime.strftime('%H:%M:%S')}#{self.class.name}が更新されました。" # ← ログ出力
    self
  end
end
補足1.includedてなんなの

ペラペラのモデルにフック書くなら

after_save :method_name # メソッド名シンボルを書く

でいいはずなのだけども、この方式はそのままconcernには持ち込めない。
includedで囲ってやる必要がある。

ruby on rails - Is it possible to define a 'before_save' callback in a module? - Stack Overflow

included do
  after_save :method_name
end

複数のWebページを巡回して自動でスクショとりたい

CrenaHtml2jpg というソフト

Windows環境下で手早くて有用そう。
GUIコマンドラインからWebページのスクリーンショットが取れる。

www.picolix.jp

作業を楽にするため、コマンドライン用に自動化バッチファイルを書いた

自動化ソフトの更に自動化。

getss.bat

@echo off
setlocal

for /f "tokens=1,2 delims= " %%a in (url.txt) do (
  CrenaHtml2jpg -o%%a -fjpeg -w1920x1080 -s1920x1080 -l5 -p -q92 -t25 -u%%b
)

endlocal
exit /b

バッチ使い方

getss.bat と 同じフォルダーに url.txt というのを置いて、

1.jpg http://www.yahoo.co.jp
2.jpg http://www.google.co.jp

みたいな感じで画像ファイル名+半角スペース+URLを記述して保存。

> getss.bat

課題

ログインを要求するサイトには何か別のしくみがひつようなのかな

参考にしたサイト

stackoverflow.com

はてブにMyベストタグを作った

あとで読み返してすごがるとかうけるために「○○Myベスト」というタグを置いた。それだけです。
たとえば雑学とかエロとか。

はてブの読み返したさを管理するいい方法ないかなー。。

雑学Myベストに関するkiyo_hikoのはてなブックマーク
エロMyベストに関するkiyo_hikoのはてなブックマーク

Rubyでゼロ埋め文字列 (printf %0s的な何か)

なんとなく必要になって書きました。

def printf_0n(n, str)
  n <= str.length and return str
  "#{1.upto(n - str.length).map{0}.join}#{s}"
end

旅行(2) 計画2~広島旅行前半

年末年始の広島旅行記

旅程の計画は画像のようになった。
計画してすぐ出発したから、既に旅程の半分ぐらいに差し掛かりつつある。
10連休ぐらいあれば1週間ゆっくり止まりたかったけどさほど日数がなく、4泊の行程でただいま2泊めである。

旅程の計画の画像

日程に関わる部分だけ抜粋

f:id:kiyo_hiko:20170101225305p:plain:w200:left
f:id:kiyo_hiko:20170101225316p:plain:w200:left

前半の行動と感想

初日:12/31

初日は朝、モサッと起きてのぞみ乗って広島駅に降り立った。

着いたのが14時ぐらいであるが、ホテルのチェックインは15時であることが事前にわかっており、本当はそれに合わせて着きたかった。
新幹線予約がギリギリだった弊害である。なるべく早く予約しないとダメだな。。

暇つぶしにいきなりゲーセンに行く(ダメ人間)。
その後駅至近のホテルにチェックインし、夕方市内散策。
徒歩で白鳥→広島城原爆ドーム平和記念公園と歩き回り、アーケード街のフタバ図書で買い物したりして帰投。
あと路面電車って歩行者的にはどう相手をすればいいのかわからなくてビビっていたけど、だいたい車と同じような感じで信号で停まったり?していたし特に気にしなくていいことわかった。広島市街を3時間ぐらい歩いた。

漫才とかクイズサバイバーとか笑ってはいけないシリーズ見たりしてゲラゲラしてたら年が明けた。めでたい。
ベッドで気がついたら寝ていた。

2日目:1/1

尾道行くつもりだったが午前中超寝てしまって行動開始タイムとか13時だったし呉に行くことにした。

f:id:kiyo_hiko:20170101153231j:plain:w400

往路はgoogle:image:227系でかっこよかった。
歴史の見える丘に徒歩で行って大和ミュージアム見学してフラフラしてた。展示内容が充実しすぎてて午後から行くと全然時間足りないこと判明した。
駆け足で回ってしまい、いつかちゃんとフルでみたい。

  • 企画展示で写真技術とかやってた。
    • ベスト・ポケット・コダックとか国産のコピー製品?とかあった
  • 呉の歴史とか見た
  • 金剛の缶?とかあった
  • 艦船模型いっぱいあった。高雄。ちょうど夕日が差して、壁に艦橋のシルエットが映ってかっこよかった。

f:id:kiyo_hiko:20170101163127j:plain:w400

  • 1/10大和

f:id:kiyo_hiko:20170101160019j:plain:w400

  • 人との比較でスケール感

f:id:kiyo_hiko:20170101163808j:plain:w400

あと歴史の見える丘行ったらDDH-182「いせ」が見えた。

f:id:kiyo_hiko:20170101144524j:plain:w400

そのあとフタバ図書で本見たりしていた。クルーズとかあったけど行けなくてショックを受けた。
帰りは黄色い各駅停車で帰った。呉駅のホームが超寒かった。呉市街+ミュージアムと緑地?を4時間ぐらい歩いた。

f:id:kiyo_hiko:20170101165534j:plain:w400

潜水艦の下にハルヒ痛車が居た。

f:id:kiyo_hiko:20170101151755j:plain:w400

夜になったら脚にガタが来てて辛くなった。モウ歳なんで今後旅行とかあれば歩く距離とかも検討する必要がありそう。
あるていどゲーセンで遊んで帰投。

旅行(1) 計画1

帰省とか考えなくていい天涯孤独な独身のうちに年末年始使って旅してくることにした。
旅程を練っており、そのとき考えたことの記録。

30日になってから計画立て始めたので即席の雑なプランだけど、先月の株式売却益が10万程度あるし、あるていど金で解決できそう

計画前構想

コンセプト:行ったことのない大阪以西の本土に行きたい
(中学高校の修学旅行で行った京都が今まで行った本土の西の限界な模様)

  • 予算:8~10万円程度
  • 行先:広島
妄想

計画たて中:寄り道する?

尾道いくなら今治までチャリ乗れるんでは?と思い調べる。

など、もやりもやりと考えてルートを勘案してみたら、2つの候補になった:

  • サンライズ瀬戸で高松まで行って予讃線今治か松山で1泊、翌朝自転車で四国を離れ本州上陸、尾道泊まる
  • オレンジフェリーで大阪南港を出発し東予港に朝到着、そのまま自転車で本州に渡り、尾道泊まる

…。

もともと呉とか三原あたりでのんびり3泊ぐらいして戻って2日ぐらい自宅でまったりと思っていたが、これでは何かハードスケジュールであり、休んでる余地が薄い。。
年末年始休業は1週間ちょっとであり、今年はあまり余裕が無い。(有給は余ってて捨てまくってるけど使ってる余裕もない)

ということで便乗で四国行く案は却下とした。

道中にあたる大阪や神戸も行ったこと無くて行ってみたかったけど日程的に却下。どうせなら2~3週間ぐらいのバカンスほしい

計画たて中:広島で完結か

行きたいところリストアップしてみる

  • 尾道
    • ラーメン
    • 山?
    • 小道?

なお12/30、12/31は平和記念資料館はお休み、広島城もお休みだそうで、広島市内行くなら正月か。
呉では大和ミュージアムは開いてるものの、てつのくじら館はお休み、入船山記念館もお休み。

交通手段検討

余裕が無いので青春18きっぷムーンライトながらやローカル線乗り継ぎは却下。サンライズで岡山行くか、なければのぞみで岡山行く。
よくわからないが往復割引乗車券で往復3万円強?
新尾道行くのは岡山-尾道の所要時間を半減させられるが、乗り換えが発生してめんどくさそうだった

岡山-尾道山陽本線で1.5時間弱 1,320円
尾道-呉が山陽本線安芸路ライナーで2時間弱 1,660円
呉-広島が安芸路ライナーで40分 500円

であり、呉を泊地としてこのへんの見どころをうろうろしたい。
あと内陸では神龍湖というところすごそうだったけど、Google候補で心霊とかでてきてビビったし、時間も貧しそうなので行かない。
絞った旅程では、18きっぷは使うメリットなさげ

ラッシュとかも検討

帰省しないのに帰省ラッシュに巻き込まれるの避けたいので。
ピークは12/31が下り、1/3が上りっぽい。こりゃ1月4日まで旅先でごろごろするかな。

その他

カメラとか忘れずに持っていきたい。

天候的には晴れ時々くもりが続くと予想されている。
南部(広島)の天気 - Yahoo!天気・災害

詳細な旅程は引き続き練る