【Git】ベアリポジトリとはなにか

目次

ベアリポジトリとは

ベア(bare)とは

露出した、本来あるべき物が無いという意味がある。

つまり

これをGitのシステムとして解釈すると、「本来あるべき物が無い」=「ワーキングディレクトリがない」という意味になる。
更新履歴のみを持っているリポジトリということになる

リモートサーバー上に「ベアリポジトリ」を作成して、ローカルで編集したリポジトリを管理するために使う(GitHubと同じ動作をする)

作成時の注意点

  • ベアリポジトリを作る場合のファイル名は末尾に.gitをつける必要がある

【Winodws】コンソールのスクリーンバッファを複数枚作る

スクリーンバッファとは?

  • 実際の文字が書き込まれるバッファのことで、実際にコンソールに描画されるのはこのスクリーンバッファの内容
  • コンソールが作成された時点で既定で1つ作成されている(描画されから当たり前)
  • 独自のスクリーンバッファを作成して出力を行うことも可能

CreateConsoleScreenBuffer

1
2
3
4
5
6
7
HANDLE WINAPI CreateConsoleScreenBuffer(
DWORD dwDesiredAccess,
DWORD dwShareMode,
const SECURITY_ATTRIBUTES *lpSecurityAttributes,
DWORD dwFlags,
LPVOID lpScreenBufferData
);
引数型 解説
dwDesiredAccess スクリーンバッファへのアクセス権を指定 GENERIC_READ | GENERIC_WRITE
dwShareMode スクリーンバッファを共有するための定数を指定(共有しない場合は0) 0
*lpSecurityAttributes SECURITY_ATTRIBUTES構造体のアドレスを指定するが普通はNULLを指定 NULL
dwFlags CONSOLE_TEXTMODE_BUFFERを指定 CONSOLE_TEXTMODE_BUFFER
lpScreenBufferData NULLを指定 NULL
戻り値 戻り値のスクリーンバッファハンドルはCloseHandleで閉じる

SetConsoleActiveScreenBuffer

  • スクリーンバッファをアクティブにしてコンソールに描画
1
2
3
BOOL WINAPI SetConsoleActiveScreenBuffer(
HANDLE hConsoleOutput
);
引数型 解説
hConsoleOutput スクリーンバッファのハンドル(CreateConsoleScreenBufferの戻り値)を指定

【Android Studio】Materila Designを使用して見た目をリッチにする

参考資料

手順

  1. build.gradle(Project:プロジェクト名)にgoogle()が含まれているかチェック

    1
    2
    3
    4
    5
    allprojects {
    repositories {
    google() <- これが記述してあればOK
    }
    }
  2. build.gradle(Module:app)にライブラリを記述

    <version>の部分は以下のURLを参考にする
    - https://mvnrepository.com/artifact/com.google.android.material/material

    1
    2
    3
    4
    5
    dependencies {
    ...
    implementation 'com.google.android.material:material:<version>'
    ...
    }
  3. 一度ビルドする

  4. styles.xmlを書き換えてみる

    生成したての状態

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    </style>

    </resources>

    これの<style>ブロックのparentパラメーターを書き換えることで、テーマを変更できる

    1
    <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">

    このテーマを書き換えることで、<Button><AutoCompleteTextView>の XML コンポーネントをそれぞれ <MaterialButton><MaterialAutoCompleteTextView> に置き換えます。

    他のコンポーネントのテーマを変えるには、XMLに直接記述する必要がある

【XCode】TableViewのCellをカスタマイズする

環境

  • MacBook Air M1
  • OS : 11.2(20D64)
  • XCode : 12.4
  • Swift : 5.3.2

参考

1. 新規ファイル追加でCocoa Touch Classを選択

新規作成

2. 作成時の設定

  • Class : 好きな名前(今回はCustomTableViewCell)
  • Subclass of : UITableViewCell
  • Also create XIB file : ON
  • Language : Swift

作成時オプション

2つの新規ファイルが生成されればOK
作成済みチェック

3. CustomTableViewCell.xibを編集

Cellにラベルを追加

ラベル追加

Rostoration IDの設定

任意の文字列でいい(セル生成時に使用する)
Identifier

4. CustomTableViewCell.swiftでラベルの参照を設定

ラベル参照

5. Main.storyboardを編集

Table Viewを追加
TableVIew

6. ViewController.swiftを編集

Main.storyboardで指定した、Table Viewの参照を設定

  • 参照時の変数名を今回はTableViewとする

TableView参照

viewDidLoad()に追記

  • UITableViewに対して、delegateと使用するCellの情報を設定
    • TableView.register : 使用するカスタムセルの情報を登録
      • nibName = 作ったCellのクラス名
      • forCellReuseIdentifier = xibで指定したidentifier名
    • TableView.delegate :
    • TableView.dataSorce :
1
2
3
4
5
6
7
8
9
10
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.

// ここから
TableView.register(UINib(nibName: "CustomTableViewCell", bundle: nil), forCellReuseIdentifier: "CustomCell")
TableView.delegate = self
TableView.dataSource = self
// ここまで
}

UITableViewDelegate,UITableViewDataSourceを継承

  • どちらのメソッドも、optionalなので、最低限のメソッドの定義をすれば、他のメソッドは定義しなくてもいい
  • UITableViewDelegate : TableView内のデータが選択や生成、編集されたときに呼び出されるメソッドが定義されたプロトコル群
  • UITableViewDataSource : テーブルに表示させたいデータを設定するためのプロトコル群
1
2
3
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
...
}

継承すると、エラーが出るはずなので、Fixをクリックしてメソッドを2つ自動生成してもらうと、以下のようなメソッドが自動生成されるはず

1
2
3
4
5
6
7
8
9
10
11
//	UITableViewDelegateの継承によって生成された
// TableViewに生成するセル数を設定する(Int型を返す)
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
Code
}

// UITableViewDataSourceの継承によって生成された
// TableViewに表示するセルのデータを設定する(UITableViewCellを返す)
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
Code
}

今回は、生成するセルを10個、表示するデータを各セルを上から数えたときの番号にする

1
2
3
4
5
6
7
8
9
10
11
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell",for: indexPath) as! CustomTableViewCell

cell.Label.text = String(indexPath.row)

return cell
}

実行した結果

完成

ViewController.swiftの完成形

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import UIKit

class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {


@IBOutlet weak var TableView: UITableView!

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell",for: indexPath) as! CustomTableViewCell

cell.Label.text = String(1)

return cell
}


override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
TableView.register(UINib(nibName: "CustomTableViewCell", bundle: nil), forCellReuseIdentifier: "CustomCell")
TableView.delegate = self
TableView.dataSource = self
}


}

【Git】タグの扱い方

タグはなんのためにあるのか

コミットを指定するためにSHA 1IDを使用するが、毎回選択するのは面倒くさいし間違える可能性があるので、よく使う可能性のあるコミットに命名することで、いちいちSHA 1IDを指定しなくてよくできる

コミットにタグを追加する

タグをつける

1
git tag タグ名 タグをつけたいSHA1

タグをつけるときは、-mスイッチを使用すればメッセージをつけることもできる

1
git tag タグ名 -m "コメント" タグをつけたいSHA1

タグを消去する

1
git tag -d タグ名

これが表示されれば成功

1
Deleted tag 'タグ名' (was SHA1)

タグの一覧を表示する

1
git tag

【Kotlin】View内のコンポーネントの取得方法

Javaっぽく取得する

データバインディングというらしい?

1
2
3
4
5
6
7
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

// コンポーネントに設定したID(textView)からTextViewを取得する
val textView = findViewById(R.id.textView) as TextView
}

Kotlinっぽく取得する(Kotlin Android Extensions使用)

Kotlin Android Extensions

Kotlinが公式で提供している、Androidアプリ開発をサポートしてくれる拡張機能
https://archive-blog.yagi2.dev/2017/10/18/good-bye-findviewbyid.html

1
2
3
4
5
6
7
8
9
10
11
// Inportする必要がある
// <layout>には取得したいLayoutXMLの名前を指定
import kotlinx.android.synthetic.main.<layout>.*

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

// 後はViewないで指定した、コンポーネントのIDから呼び出せる
textView.text = "テストだよ"
}

【Ubuntu】キーボードの初期設定

Ubuntu Serverで使用するキーボードレイアウトを日本語配列に変更する

  1. sudo dpkg-reconfigure keyboard-configurationを入力
    1
    $ sudo dpkg-reconfigure keyboard-configuration
  • dpkg-reconfigure : 指定したDebianパッケージがdebconfを採用している場合に、パッケージの再設定をすることができるコマンド
    • debconfに対応しているリストはls /var/lib/dpkg/info/*.configでみることができる
  • keyboard-configuration : キーボードのレイアウト設定ファイル

ここからは矢印キーとEnterキーで操作する(GUI風になる)

  1. Generic 105-key (Intl)PCを選択
    2

  2. Japaneseを選択
    3

  3. Japaneseを選択
    4

  4. /etc/default/keyboardの設定を書き換えている場合表示される

  • キーボードオプションを維持する場合はYesを選択、初期化していい場合はNoを選択
    5
  1. 「The default for the keyboard layout」を選択
    6

  2. 「No compose key」を選択するとコンソール画面に戻る
    7

  3. コンソール画面が表示され必要んな情報を生成してくれるので少し待つ(ネットワークが必要?)

    1
    2
    3
    4
    5
    6
    7
    Your console font configuration will be updated the next time your system
    boots. If you want to update it now, run 'setupcon' from a virtual console.
    update-initramfs: deferring update (trigger activated)
    Processing triggers for initramfs-tools (0.137ubuntu12) ...
    update-initramfs: Generating /boot/initrd.img-5.8.0-1006-raspi
    ....

  4. 入力待機画面に戻れば成功

「Caps Lock」を「Ctrl」に変更する

/etc/default/keyboardXKBOPTIONSに以下を書き加える

  • デフォルト

    1
    XKBOPTIONS=""
  • 書き換え後

    1
    XKBOPTIONS="ctrl:nocaps"