技術メモのかけら

内容はもとより調べたことすら忘れてしまうので個人的なメモです。とにかく短く、結論だけ書いていきます。

nilを判定する

type Point struct {
    x, y int
}

func main() {
    point := Point{x: 20, y: 50}
    if point == nil {
        fmt.Println("point is nil")
    }
}

こんな感じにpoint == nilと比較するとエラーなります。 cannot convert nil to type Point

要は値とnilを比較するのがダメなので、 point := &Point{x: 20, y: 50} point := new(Point) のように参照をpointに設定するか、 &point == nilのように参照と比較するとすれば良い。

Subversionのパスワードを変更

毎回パスワードを入力するのは面倒なのでTortoiseSVNを使うときパスワードを保存するようにしているのだが、Subversionアカウントのパスワードを変更したら問題が発生した。

SVN Updateするとパスワードを聞かれたので新しいパスワードを入力。
パスワード保存するにしているので、もうパスワードは聞かれまいと思ったのだが、Show Log するとまたパスワードを聞かれる。
また新しいパスワードを入力するも変なエラーになる。(どんなエラーだったかは忘れた)
Tortoiseの設定から認証データをクリアしてもダメだった。

%USERPROFILE%\AppData\Roaming\Subversion\configにパスワードが書かれてしまっているので、そこを書き換えたらうまく言った。

[tunnels]
ssh = "C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe" -ssh -l foo -pw foo1234

正しいやり方とも思えないけど会社のルールで半年後にまたパスワード変更しないといけないので、とりあえずメモっておこう。

Textareaをリサイズできないようにする

Chrome、Fire Foxはテキストエリアがリサイズできてしまう。

可能なのは良いけど、デフォルトがリサイズ可能なのは困るケースが結構ある。
調べたら、こんな感じにCSSで制御可能なようだ。

textarea {
  resize: none;
}

幅のリサイズだけを可能にしたり

textarea {
  resize: horizontal;
}

高さのリサイズだけを可能したりもできる。

textarea {
  resize: vertical;
}

ただ、Fire Fox はマウスカーソルの形で区別できるが、Chromeは見た目で分からないのでとても使いづらい。

SafariでOsakaフォントでBold表示すると直後に変な余白ができる

ネットで調べても分からなかったが、MacOSSafariOsakaとかOsaka-Monofont-weight:boldで表示すると直後に変な余白が空いてしまう。

ここのフォントは`Osaka`です。ここは太字でけど、MacSafariで見るとこの後に変な余白が開いてしまうのですよ。ここに余白はないはず→←ここ

ここのフォントは`Osaka-Mono`です。ここは太字でけど、MacSafariで見るとこの後に変な余白が開いてしまうのですよ。ここに余白はないはず→←ここ

ここのフォントは`ヒラギノ角ゴ Pro W3`です。ここは太字でけど、MacSafariで見てもこの後に余白は開きません。ここ→←ここ

Safariのバグなのだろうか。良く分からないけど、別のフォント使うようにして対応。

IE9でoverflow:autoしたボックス内のテーブルでhoverするとレイアウトが崩れる

テーブルにhoverするとテーブルの下にある要素がどんどん下に下がっていく変なバグがあった。
IE7、8、10、11は大丈夫なのになぜかIE9だけで起きる。

結果的にはIE9のバグっぽい。
問題のテーブルは横長になるので、overflow-x:auto;にしたdivで括っているのだが、tableにhoverを仕込んでいると発生するようだ。

overflow-x:scroll;にしたら問題の現象は起きなくなったけど、レコード0件のときに必要ないスクロールバーが出るようになっちゃった。
0件のときにはdivを非表示にするとか、そもそもhoverするのを止めるかどうしようかな。
IEがちゃんとバグを直してくれると良いのですが。

参考

http://128bit.blog41.fc2.com/blog-entry-307.html