rubyでgemを使ってライブラリをインストールしようとするとSSL証明書の有効期限切れするとか出る。いろいろ方法があるが追加証明書をインストールした。詳しくはここかここを参考にしました。thanks!
エラーメッセージ:
Unable to download data from https://rubygems.org/ - SSL_connect retur ned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed ( https://api.rubygems.org/latest_specs.4.8.gz)
が出る場合は、これを
https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem
ここ
....libruby2.*.*rubygemsssl_certs
にコピーするだけ。
Rubyで凡ミス。if文の構文終わりのend にifをつけても次段(行)になにか値を返すものがあればエラーが出ない。末尾ifが条件式(print 3)として値はnilで解釈されて、前段のif文すべてが実行されない。end ifとしてしまうのがそのそもの間違いだが、then以下もelse以下も実行されないので30分くらい悩んだ。例文は短くて見通しがいいが、実際はthen~else~end部分が長かったので、末尾にifをつけていたのに全然気が付かなかった。また例文の(print 3)のところが普通の式(ex. x = x + 1)だと通ってしまうことがあるので困りもの。その場合(x = x + 1)部分が先に実行されるので、ますます挙動がわからなくなる。
if a==1 then print 1 else print 2 end if print 3
Windows 7でプログラム上から、ある再生デバイスを「既存の再生デバイス」として設定するには、IPolicyConfigオブジェクトからSetDefaultEndPointメソッドを使う。Microsoftのundocument apiなのでいつか使えなくなるかも。
参考にしたのはイム日記とZorn Softwareとそのsvnにあるサンプルソースです。特ににヘッダはここ。Thanks!
HRESULT hr = CoCreateInstance(__uuidof(CPolicyConfigClient), NULL, CLSCTX_ALL, __uuidof(IPolicyConfig), (LPVOID *)&pPolicyConfig ); hr = pPolicyConfig->SetDefaultEndpoint(defaultTag, eConsole);
Chromeで何の拍子かアンチエイリアスがかからなくなったので設定をいろいろ試してたときのメモ。
設定画面の「Chrome://flags」から
ソフトウェア レンダリング リストをオーバーライド : 無効 DirectWrite を無効にする: 無効 LCD テキストのアンチエイリアス:無効
をすべて無効。最後のやつは一見有効が正解のような気がしますが、「無効にすると、アクセラレート合成の際に LCD(サブピクセル)の代わりにグレースケール アンチエイリアスでレンダリングされます。」とのことなので、無効にしてグレースケールAAにしましょう。
Assassin’s Creed® IV Black Flag™がSteamでセールをしてたのでぽちった。最近のUnityもセールしてたけどまだ高いので、もちょっと待とうか。アサシンシリーズは初体験だが、WatchDogsと操作はほぼ同じ。 IVがとっつきやすそうだったので、ここから試しです。Steam中の右のカラムにある言語についての対応で日本語が「サポートされていません」と出ているが、これは大丈夫。日本語でガンガンしゃべってます。steamではよくあるが、そうかいてあっても、説明文中にOnly English and Japanese languages are available in Japan.とかあって対応している場合がある。パッケージ版とかの配慮?。よく読むか、ネットの情報を調べるべし。
Firefox 36/36.0.1が会社のPC(Win 8)の調子が悪い。立ち上げてしばらくはふつうに動くが、しばらくして新しいページを読み込みにいったら、そのまま帰ってこないときがある。いったん起こると、どのタブも読み込みしにいったまま帰ってこない。終了ボタンで終了させてもウインドウは閉じるが、バックグランドでプロセスが動いている。再起動するとプロファイルにアクセスできない、となるので、多分ファイルをつかんだまま。プロセスがゾンビ化していてタスクマネージャからも落とせない。Win8だから?8.1に上げたいが社内システムの関係で上げられない(泣)、うちのWin7proでは問題がない。とりあえず会社ではChromeを使っている。
まてよ今思いついたが会社はプロキシ経由なので、firefox36でリリースされたhttp2が悪さをしているかも。明日ためす。
スクリーン上のマウス座標を取得し、WPFの論理座標に変換する方法。マウス座標はデバイス座標なのでWPFで使うには論理座標に変換が必要。
System.Drawing.Point dp = System.Windows.Forms.Cursor.Position; System.Windows.Point wp = new System.Windows.Point(dp.X, dp.Y); // マウス座標から論理座標に変換 PresentationSource src = PresentationSource.FromVisual(this); CompositionTarget ct = src.CompositionTarget; System.Windows.Point p = ct.TransformFromDevice.Transform(wp);
テキストファイルTest.txtをDLL形式リソースのTest.resources.dllにコンパイルする方法。内部識別子をつけるオプション/embed:filename,specified root nameのところがミソだったのでメモ。
resgen.exe Test.txt Test.resources al.exe /t:lib /embed:Test.resources,Usernamespace.Test.resources /out:Test.resources.dll
C#で外部にあるDLL形式のresourceを動的に読み込む方法。内部に埋め込む方法やサテライトDLLを使う方法はよくあったけど、こちらの方法はあまり紹介されてなかったので、メモ。
System.Reflection.Assembly asm; asm = System.Reflection.Assembly.LoadFrom("Test.resources.dll"); string[] manifests = asm.GetManifestResourceNames(); string manifest = manifests[0].Replace(".resources", string.Empty); ResourceManager rm = new ResourceManager(manifest, asm); string text = rm.GetString("String1"); // string resource
WPFでデータバインドをコードだけで実現する方法がわかりにくかったのでメモ。XAMLだとサンプル例は見つかりやすいんだけど、コードだけの例は少なかった。WPFの主旨からはずれるのかな。
バインドされるクラス側のコード(プロパティ変更の通知あり)
Class Class1 { private int _test; public int test { get { return _test;} set { _test = value; OnPropertyChanged("test"); } } public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(string name) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(name)); } } public Class1(int x) { test = x; } }
コードだけでバインドする時
obj = new Class1(1); label1.DataContext = obj; label1.SetBinding(Label.ContentProperty, new Binding("test"));
XAMLも使ってバインドする時のXAML側
<Label Content="{Binding test}" name="label1"/>
XAMLも使ってバインドする時のコード側
obj = new Class1(1); label1.