セキュリティ系の勉強・その他開発メモとか雑談. Twitter, ブログカテゴリ一覧
本ブログはあくまでセキュリティに関する情報共有の一環として作成したものであり,公開されているシステム等に許可なく実行するなど、違法な行為を助長するものではありません.

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アドレス設定でした。

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ないと

Unity キャラクターの移動速度にTime.deltaTimeをかける理由

リファレンスに色々書いてあったのですが、初めてUnityを触った時は気にもしていませんでした。

これは、製作者が意図した移動速度を実現するためにdeltaTimeをかけているのですね。(ちゃんと考えれて大したことではない)



Time.deltaTimeniには、最後のフレームを完了するのにかかった時間が格納されています。
Unity - スクリプトリファレンス: Time.deltaTime

製作者は、キャラクターに一秒間にどのくらい進むのかを指定するのが一般的なやり方だと思うのですが、この時キャラクターに移動の処理を指示するのは、大抵Updateメソッド内です。

このUpdateメソッドは1フレームごとに毎回呼ばれるので、キャラクターの動きも1フレームずつ処理することが可能です。



問題は、1フレームの間隔が一定ではないということ


逆に言えば、一秒間に呼ばれるフレーム数が一定ではないということ!1フレーム1m進むとして、、
・60フレーム呼ばれたら 60×1=60m
・30フレーム呼ばれたら 30×1=30m

倍の差が出てしまう、、



これを解決するのが、deltaTime


製作者はキャラクターに秒速を渡して上げた後、その速度に1フレームの処理にかかった時間(deltaTime)をかけてあげれば、一秒たった後にキャラクターが進んだ距離は必ず一定になるという方法でした。