196の日記

完全に開発メモと雑談、その他忘れそうな計算式などを書き溜める場所になっています!

メモ github originとmasterとdevelop

以前のcommitまで変更を戻す

参考にしたサイトさん
git reset --hard で指定した時点の履歴に戻る方法 | roundropブログ implements Programmable


まずコミット履歴をみて、戻りたいコミットのハッシュ値を調べます。(おそらく黄色の文字)

>git log

git resetコマンドで指定コミットまで戻ります。

>git reset --hard 9e879460f2fd56e5fbc0b31e7290368a12dd4414


変更をpushします。

git push -f  origin 9e879460f2fd56e5fbc0b31e7290368a12dd4414:現在のブランチ名

Dropboxでファイルの直リンを作る方法

https://maimokumemo.blogspot.jp/2016/10/dropbox.html

上のサイトさんがまとめてくれていました。

リンクが切れた時用に一部引用させていただくと、、

URL最初のhttps://www.dropbox.comの部分を、
https://dl.dropboxusercontent.comに置換し、最後の?dl=0を削除する。

だそうです。ありがたいです。

Mac Finderでvarフォルダなどのprivateなものを開く

Mac、Finderで/usrとか/varとかを見る方法 - ugon105の日記


上のサイトさんを参考にいたしました。リンク先が消えた時に不便なので一部を引用させてもらうと、

ターミナルを開き、下記のようにコマンドを打ちます。

$ open /usr

ドットで始まる隠しフォルダも同様に見ることができます。

$ open ~/.Xcode

MacBook IPアドレスを手入力

メモです。基本的なことだけれど忘れそうなので。。

Wi-Fiなどは大抵、飛んでいる電波を選んでパスワードを入力するだけの簡単な設定で接続完了しますが、手入力でIPアドレスサブネットマスク諸々を設定したい時どうするか。




上部のバーに表示されているWi-Fi電波マークをクリックして、ネットワークの環境設定を開きましょう。


f:id:thinline196:20170327235706p:plain

普段はこの"自動"という設定に甘えている状態です。


なので、ここに新しいネットワーク環境を追加してください。その後、Wi-Fi(有線など自分の設定したい項目)を選んで右下の詳細をクリックすると、下の図のようなものが出てくるので、下の図のようにTCP/IPを開き手入力を選んでください。これで、自分で設定することが可能です。


f:id:thinline196:20170328000222p:plain



自宅や職場など、環境に合わせて設定を保存しておけば、環境設定の画面でパパッと切り替えることが可能なので楽ですね。



というわけで、Macにして初めてのIPアドレス設定でした。

メモ 2017/3/24

クラス名#メソッド名
・こうやって書きあらわす。

visual studio for Mac previewのインデントをスペースに
・インデントモードをスマートから自動にすることで、コピペした際に挿入されるインデントがタブからスペースに変わる(幅は同じエディタ上でなら変わらない)

C# Dictionaryにジェネリックをもつクラスを保持させたい

タイトルの日本語があっているかは微妙ですが、以下のようなことをやりたかった。

Dictionary<T,Hoge<T>> dict = new Dictionary<T,Hoge<T>>();

class Hoge<T> where T : 何か{
    //処理
}
Tに共通のインターフェースを継承させる

例えば、baseTというインターフェースをTに入るものが全て継承することにすれば、DictionaryのHogeHogeと書くことが可能になる。

object型を指定する

baseTを継承したところで、取り出す際には結局キャストをして上げなければならない。なら、わざわざインターフェースを継承させる手間を増やす必要もない。(すでに同じものを継承しているなら別) objectは全てのクラスなどの元となっているため、Dictionaryとした上で、取り出す際にキャストをしてあげるという手段もある。

object (C# リファレンス)

Dictionary<Type,object> dict = new Dictionary<Type,object>();

//入れる時
dict.add(typeof(T),hoge);

//出すとき
var hoge = (Hoge<T>)dict[typeof(T)];


ちなみに、typeofはリフレクションという割と処理が重い操作らしいので、多用しないようにすること。
初めて見たときにわかりやすいサイトさんがあったのでそちらも参考にしてください。
リフレクションを利用して文字列からクラス操作 - (void*)Pないと