Googleの画像検索1位
なぜか無くはなさそうなキーワードでGoogle画像検索の1位になってしまった
キーワードは「スモウレスラー」…
お相撲さんを差し置いて1位獲得
スモウレスラーサイズで検索すると八木が出てくる、ってんで会社でネタにしてたら
いつの間にかスモウレスラーで1位になってた、ビックリ
ただスモウで1位はダークソウルの処刑者スモウだった…勝てそうにない
XREAのページ閉鎖
XREAでのページ公開をやめることにした
XREA+が先月末で切れて、もう今更レンサバで続けんのもどーかなってことで
世の中くらうどーーとか言って、まぁやってないけど
ちょっとしたシステムならこんてなーーとか言って、やってないけど
もうperlでCGIなんか流行んないって、時代だな時代
というわけでXREAさん、今までありがとう
ログを見たら少なくとも2003年からダラダラやってたみたいだ
ログだけで6GB、まぁ少ないほうかな
月間PVは過去最高で60万?
これがトップページからリンクすら張ってない内輪向けコンテンツがサーチエンジンに拾われて叩き出した数字だからビックリだったなぁ
翌月からキャッシュさせてサーバアクセスこないように変えたったから最終いくら行ったか知らんけど・・・
最後にアクセス数をグラフにしてみた
やっぱあん時が突出しすぎて、他の月がちっさすぎて分かんない
本当のメインコンテンツは2006年付近の黄色の部分なんだけど、2008年以降見えねーよ(^^;
Boogie Board Syncを買った
Boogie Board Syncを買った、保存できてBluetoothで取り出せるやつ
BB-2がすごい使いやすいけど、やっぱり保存できたほうがいいよねってことで
なんか、超うすいんですけど、文字が
BB-2は細く書こうとすると、まず付属のスタイラスじゃ無理ってくらい分厚い
BB-6は頑張っても太く書けない
店頭で触って分かってたけど、やっぱ薄い
遠目で何かいたかわかんないくらい
薄いのはなれの問題だろうけど、、、Windowsで接続できない!
なんでだろう、BluetoothのペアリングはできたけどSyncVDCで再度接続せんかいボケって出る・・・
とりあえずAndroidのほうでは見れたから良しとしよう
ローカルリポジトリをGitHubへ後から上げる方法
毎回よくわからなくなるのでメモ
GitHubでリポジトリは作っておく、リモートリポジトリの設定はGUIでやっておく
リポジトリ名は.gitって付いているほう
https://github.com/zenuas/Roku
https://github.com/zenuas/Roku.git
git fetch git merge origin/master # たぶん.gitignoreあたりがコンフリクトする # 差支えなければGitHubのものをそのまま使う git commit git push
今までまっしろけだったcontributionsとかゆーのがわずかに緑になった
みぎっかわだけ
.NETのジェネリクス解決
.NETのジェネリクス解決が意外とめんどくさい
型にジェネリクスがついている場合と関数にジェネリクスがついている場合がある
例えばListなんかは型にジェネリクスがついているのでこんな感じ
Dim list = GetType(List(Of )) Dim list_add = list.GetMethod("get_Item") ' この時点で「T List(T).get_Item(int32)」 Dim list_str = list.MakeGenericType({GetType(String)}) Dim list_str_add = list_int32.GetMethod("get_Item") ' これで「string List(int32).get_Item(int32)」
Dim list = GetType(List) Dim list_add = list.GetMethod("get_Item") ' この時点で「T List.get_Item(int32)」 Dim list_str_add = list_add.MakeGenericMethod({GetType(String)}) ' これで「string List.get_Item(int32)」
list_addだけ見たらほぼ違いがないっていう
レシーバがIsGenericTypeなら型のジェネリクス解決して
list_addがIsGenericTypeなら関数のジェネリクス解決する感じ?
とりあえずList型だけ動かしたかったのでレシーバ決め打ちで解決をしたけど、型と関数が両方ジェネリクスだとどーしたらよかんべか
var xs = List(Int)() List.Add(xs, 10) var a0 = List.get_Item(xs, 0) # ←例えばApplyじゃなくてこの第一引数を使う?
型と関数に別々のジェネリクスを設定したケースを用意して同時にApplyできるか考えよう
・・・そんな都合のいいクラスあったか?
.NETのメソッドが呼べた
.NETのメソッドが呼べるようになった
作っている言語にメソッドなんて概念をつけていないので「型.メソッド(引数)」の並びを「メソッド(型, 引数)」に変えて関数コールするようにした
幸いCILではどっちでも一緒だしね
ちょっと面倒なのが名前空間
「DateTime.Parse(a)」は「DateTime::Parse(a)」と「Parse(DateTime, a)」の2種類の解釈ができるから「DateTime」が型なのか名前空間なのか判定しなきゃいけない
でもメソッドなんてないので、便宜上↓みたいなイメージに展開している
namespace System struct DateTime var x = xxxxx namespace DateTime sub Parse(s : String) DateTime xxxxx sub ToString(self : DateTime, s : String) String xxxxx
これじゃDateTimeが型なのか名前空間なのか型付けしてみるまでわかんない・・・
自分のソース部分だけなら型と同名の名前空間なんかコンパイルエラーにしちゃえばいいけど.NETアセンブリ読み込みのところだけは、まぁできるようにしておく
おかげでシンタックスシュガーの変換が型のinfer中に行うはめになって、どんより
.NETのコンストラクタが呼べた
.NETのコンストラクタを呼べるようになった
値型でコンストラクタの引数無しはinitobjなの?
とりあえずnewobjしか対応してない、DateTimeを引数無しで作成することができへんけどまぁええわ
コンストラクタの解決はめんどくさかったのでこんな風にしておいた
デフォルト引数も可変長引数も当面無視する感じ
TypeInfo.GetConstructors.FindFirst( Function(ctor) ctor.GetParameters.And( Function(arg, i) root.LoadType(arg.ParameterType.GetTypeInfo) Is args(i)))
しかし、デフォルト引数ってCILでは呼び出し側がスタックにプッシュするんやな
呼び出された側かCILがあんじょうやってくれるもんやと思ってた・・・
gitのお勉強ついでにブランチを切ってnon-fast-forwardでマージした
前回はfast-forwardでマージしちゃってよくわかんなくなったので、今回はいい感じにコミットグラフが残った
まぁ別にmaster一本でも困らないんだけど、ヨカッタヨカッタ