布団が俺を呼んでいる

丘山大一のぶろぐ

Windows Phone (Windows Mobile) アップデートがかかってた……(trinity) 201609

気が付いたら更新されていました……
ぐぬぬ。

バージョン
OSのビルドバージョンは 10.0.10586.545 で変わっていません。
ファームウェアリビジョンは、 1028.020.001.92 になっていました。
本日時点の各バージョンは、
  • バージョン:1511
  • OSビルド:10.0.10586.545
  • ファームウェアリビジョン番号:1028.020.001.92
  • ハードウェアリビジョン番号:1.0
  • 無線ハードウェアバージョン:1.0
  • チップSOCバージョン:8952
ファームウェアリビジョンが上がっている=trinity側の更新のはずだ、ということでタイトルにはtrinityをくっつけてます。
違ったら記事をなおそう。



Firebird Embededのお勉強 ISQLの使い方 DBの作り方

公式ドキュメントにも詳しく書いてありますし、検索すれば色々出てきます。

これは単なる自分メモ

isql.exe
CREATE DATABASE 'HOGE.FTB' USER 'SYSDBA' PASSWORD 'masterkey'' PAGE_SIZE = 8192 DEFALUT CHARACTER SET UTF8;

CREATE後は、そのままそのDBに接続されている状態なので、クエリを実行できます。


達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

新品価格
¥2,808から
(2016/8/31 20:45時点)

SQL Server BCPユーティリティ 空文字はNULL文字として出力される

恥ずかしながら知りませんでした。

ココで確認

>bcp ユーティリティは、データを抽出するときに、空文字列を NULL 文字列で、NULL 文字列を空文字列で表すことに注意してください。
NULLをNULL文字 で、ではなく、NULL なら空文字。
空文字なら NULL文字。
直感と逆なんですね。

なんでコレに困ったか

bcpで吐き出したファイルを別プログラムで処理しようとしました。
んが、途中でNULL文字が入っているため、本当なら空文字として取り扱いところが、終端文字として扱われてしまってうまく処理できなかった、という。

SQL Server 2016の教科書 開発編

新品価格
¥3,888から
(2016/8/27 22:22時点)

FAManagementStudio なるものを作ってもらっています

お手軽に使える Firebird Embedded 用のGUIツールがなかったため、「欲すいよー」と言っていたら作ってくれました。

色々

FlameRobin なんか使いにくくね?
インストーラー不要で、配置するだけで使えるのがEmbedded の強みなのに、GUIツールが要インストールって不便じゃね?
と駄々を捏ねていたら開発が始まったというシロモノです。

詳細はwiki or メイン開発メンバが色々書いています。

ちなみに

動作確認や、仕様の検討、ドキュメント整備なんかはやっているのですが、ソースはほとんどいじっていません。
あと、宣伝しようしようと思っていてすっかり忘れていたのは秘密。
一応、ブログのサイドメニューにリンクを貼って置いたからこれで許してもらおうという計画。


GitHub実践入門 ~Pull Requestによる開発の変革 (WEB DB PRESS plus)

新品価格
¥2,786から
(2016/8/16 22:01時点)

NuAns NEO Anniversary Update配信 遅れる模様

ぐぼあ(吐血)

まあ配信されてから問題が起きても困るしね。
きちんとテストされているということが分かって何より。

続報

9月の定例アップデートのタイミングになるみたいですね。


佐渡島旅行へ行ってきました

ボッチは一人旅上等。
そして佐渡島の人たちはめっちゃ親切

1日目:佐渡 ~ニッポニア・ニッポン~

大宮経由で、新幹線でゴトゴト。
新潟港から両津港までカーフェリーで移動します。
カーフェリーは2等なら事前予約無しで乗れます。時期にもよると思いますが、椅子に座ることもできました。
船にカモメがついてくる様子は見ているだけでも楽しいものです。


佐渡島に着いたら、速攻でレンタサイクルを借ります。到着した観光案内所で借りられます。
これも時期によると思いますが、幸いにも借りることができました。また、24時間レンタルとしたので、担当者様のご厚意により、バッテリー(一つにつき約4時間)を二つお借りしました。
ここまでで、おおむね3時半。トキを見るためには、自転車で1時間弱移動しなくてはなりません。
さっそく移動して、さっそく迷子になり、田んぼの中を爆走してなんとか着きました。
※私はどこに行っても、高確率で迷子になります。

トキの森公園には、明確な駐輪場がありませんでしたので、施設の方に聞いて公園の片隅に停めさせて頂きました。
そしてトキ。


学名ではニッポニア・ニッポンというらしいです。めっちゃ日本日本してる名前ですね。

その後、港でお勧めされたソフトクリームを食べて小休止。
体力を快復させてから、本日の宿「宿屋ふくろう」に向けて爆走します。
島の真ん中を横断する大きい通りを使ったほうが確実でしたが、田んぼの中の道を通った方が交通量が少ない+道が広い+気持ちいいのでそちらへ。
時折農作業していらっしゃる現地の方々に挨拶しながら、「宿屋ふくろう」に到着しました。
※幸い、ここでは迷子にならなかった

部屋にはふくろうがいました。(鍵かけ)


もうヘロヘロでしたが、折角なので近所をちょろっと回り、それから泥のように眠りにつきました。

2日目:佐渡 ~金山・そして流血へ~

ケツが痛い。
とりあえずケツが痛い。
そんな痛みに耐えつつ、宿で道の様子を聞いた後に自転車でGO。

素晴らしい青空と青い海。

こういう素晴らしい景色を見ていると本当に思います。

なんで俺は日々ビルに閉じ込められて、PCの前でカタカタやってるんだろう?

いやまあ、お金のためですけど。

しばらく海沿いを走り、その後山道を爆走(電動自転車全開)。
ひいこら いいながら佐渡金山へ。


……佐渡金山デケー!
さすがに圧巻でした。トロッコや、かつて使用されていた道具の展示もあり、昔の人の苦労が忍ばれます。
同時に男の子心をくすぐってくれます。
佐渡金山見学の注意点として、鉱山の中は概ね摂氏10度前後と寒いこと。
バスで来た観光客は長袖を羽織れば「涼しい」と感じるくらいなのでOKですが、自転車で来た人は、汗が冷えて風邪をひく可能性があります。
長袖+汗ぬぐい用のタオルは忘れずに。

さて、再び旅へ。
金山でちょっとゆっくりした後は、再び海沿いを走ります。
景色を堪能しながら、夫婦岩へ。
夕焼けがきれいらしいのですが、あいにく時間的な余裕がないので見られませんでした。


ここでラストスパートの体力を養うべく大休止……だったのですが……

……ここで悲劇が起きました……

荷物の中にあったカミソリ(髭剃り用)で、小指をズバッとやってしまいました……

結構血がドバドバ出てしまい、自力で止血できず。
手が血まみれに。
10秒で無理だ、こいつぁやばいぜ、ということで手当たり次第に助けを求めることに。
おばさま、おじさま方に助けをいただき、ガーゼで止血、指の根本を縛り、タオルで手首を縛り、心臓より高い位置に傷口が持っていくようにしてしばらく休憩。

……といっても、自転車を返す時間とフェリーの時間があるので、あまり長くは休めません。

特に、片手が使いにくくなる = 自転車のブレーキのタイミングが遅れる というのは、坂が多い佐渡島では大変危険です。
ここまで、おおよそ時速12キロで移動しましたが、その速度が維持できなくなるのは明白であり、この後の距離を考えると、少しずつでも進まなくてはまずい、という結論に達しました。
そのため、お礼を伝えてから、旅を再開。
「あー、が流れてるなー」という感覚を味わいながらの移動です(汗)。
おまけに海沿いは日陰が少なく、あっという間に熱中症に。
……汗+流血で体中の水分がガンガン減りながら、という状態でしたので仕方ない。
それでもなんとかかんとか、両津港まで戻れました。
本当は近くをウロチョロ見て回りたかったのですが、諦めました(泣)
体調を整えておかないと船酔いしますからね……

本土への帰りは夜のフェリー。
夜間に船に乗るのは初めてです。とりあえず、灯台の光が思った以上に遠くから見えることに驚愕。

ここには書ききれませんが、上記夫婦岩ドライブインの方々をはじめ、佐渡島の人たちは非常に親切な方が多かったです。
色々教えてくれますし、非常事態になったら助けてくれる。
ありがたやありがたや。
旅が無事(かどうかは微妙ですがw)に終わったのも、島民の皆様のおかげです。

3日目:新潟 ~そして帰宅~

新潟は、特に何もなかった。



るるぶ新潟 佐渡'17 (国内シリーズ)

新品価格
¥907から
(2016/8/9 20:52時点)

Firebird のお勉強 計算時の小数点以下の有効範囲

SQL上で計算した時の結果がどうにも理解できなくてはまりました。
しかし、同じことを考える人はいるもので。結論はStack overflow に出ています。

以下、ちょっと解説。

計算時の有効桁数具体例
Firebird の 計算時の小数点以下の有効桁数は、「計算に使用した型が持つ有効範囲」を足し合わせたものになります。
……と、こう書いても意味不明なので具体例。

SELECT cast (1/999999999999 AS numeric(18,13)) FROM HOGE;
SELECT cast (1.000000000000/999999999999 AS numeric(18,13)) FROM HOGE;
SELECT cast (1.000000/999999999999.000000 AS numeric(18,13)) FROM HOGE;
SELECT cast (1E0/999999999999 AS numeric(18,13)) FROM HOGE;

結果は、
0.0000000000000
0.0000000000010
0.0000000000010
0.0000000000010
となります。

1つ目は、分子・分母両方とも小数点以下が存在しません。そのため、計算時の有効桁数は「0 + 0 = 0」です。有効桁数が足りないので、結果表示時にnumeric(18,13)を指定しても、結果は「0.0000000000000」となります。
2つ目は、分子に小数点以下の桁数が存在しています。そのため、計算時の有効桁数は「12 + 0 = 12」です。
3つ目は、分子・分母両方に小数点以下が存在します。そのため、計算時の有効桁数は「6 + 6 = 12」です。
4つ目は、分子に「小数点以下を表示するための記号」である「E0」が指定されているため、計算時の有効桁数はdouble 型となるようです。

テーブルで確認してみる

簡単なテーブルを作成してみます。

CREATE TABLE HOGE(
    KEY_NO integer,
    VALUE_INT integer,
    VALUE_NUMERIC_SHORT numeric(18,1),
    VALUE_NUMERIC_LOMG numeric(18,13)
);
INSERT INTO HOGE VALUES(1,1,99999,99999);
SELECT cast (VALUE_INT /VALUE_NUMERIC_SHORT AS numeric(18,13)) FROM HOGE where KEY_NO = 1;
SELECT cast (VALUE_INT /VALUE_NUMERIC_LOMG AS numeric(18,13)) FROM HOGE where KEY_NO = 1;

結果はこうなります。
0.0000000000000
0.0000100001000

理屈は上記と一緒ですね。

無理矢理計算するなら、さらにCASTをかませるという手もなくはありません。

SELECT cast (VALUE_INT / (cast (VALUE_NUMERIC_SHORT AS numeric(18,13))) AS numeric(18,13)) FROM HOGE
where KEY_NO = 1;

こうすれば、
0.0000100001000
となります。


達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)

新品価格
¥2,592から
(2016/8/14 21:47時点)

Windows Phone (Windows Mobile) Windows Update 後の再起動ににかかる時間(10.0.10586.545)

バタバタしているので、ちょっと更新のタイミングをずらしました。

今回はこんな感じ

いつものごとく、アップデートファイルのダウンロードや更新自体は完了しているので、再起動にかかる時間だけです。
画面上に歯車が出てきてクルクル回るのが10分弱。
ロゴが表示され続ける時間が1分強。
プログレスバーが5分。
大きく上記3ステップ、合計15分強で更新が完了しました。
更新にかかる時間を計測し続けていますが、デスクトップと違って安定していますね。

状況によって時間は大きく前後すると予想されますので、目安の一つとして。


バージョン

端末はNuAns Neoです。
本日時点の各バージョンは、
バージョン:1511
OSビルド:10.0.10586.545
ファームウェアリビジョン番号:1028.020.001.79
ハードウェアリビジョン番号:1.0
無線ハードウェアバージョン:1.0
チップSOCバージョン:8952

Anniversary Update はもうちょっと先みたい

正確なことはよくわかっていませんが、もうちょっと先になるみたいですね。



VRでB規格サイズの紙が無くなるのではないかと想像する

想像というか妄想シリーズ。
kindle unlimitedも開始されました。

VR上で、「紙」の規格が統一されるのではないか?

先に「本」の規格が統一されるのではないか? というエントリを書きましたが、当然その前に「紙」の規格ができるはずです。
なぜなら、複数の紙が重なった本を表現するよりも、単一の紙を表現する方が簡単だからです。
フツーに考えて、簡単な規格から模索・策定されるでしょう。
さて、その時どの紙から規格化されるのか、と考えたとき、もっともA規格だと思われます。
国際標準規格らしいですし、実物の紙をトレースするならまずこれをベースにするでしょう。
で、おそらく、拡大・縮小表示するにしても、「A規格サイズをベースに」拡大・縮小するようになるのではないかと想像するわけです。
そうすると、「現物の紙を取り込んでVRで見る」あるいは「VRのデータを紙で出力する」ということをすることになった場合、「A規格サイズ」とくにA4をベースにアプリケーションが開発されるのではないでしょうか。
そうなってくると、データのやり取りが「A4サイズデータでくれ」みたいになる気がします。
逆に、なんぼ日本人になじみがあろうとも、世界的にマイナーな「B5」なんてサイズをベースにするメリットは小さいです。いや、むしろネックになりかねません。
VRによって駆逐された最初のものは、まさかの紙の規格であった……なーんてことになるかと想像しました。


そして最終的には

さらに、「VR上ではA4サイズで表示する」みたいな規格が世界なんちゃら組織とかで決定し、
さらにその後、さながらWeb業界のXMLとJSONのごとく全く別の規格がデファクトスタンダードになっちゃうことまで想像した。



コクヨ PPC用紙 共用紙 FSC認証 64G B5 500枚 KB-35N

新品価格
¥402から
(2016/4/20 22:45時点)

Firebird のお勉強 外部参照キーを一時的に取り外したい

う~ん、知識不足が原因の大半なわけですが。
Firebird、システムテーブルの構造がイマイチピンとこない。

背景

外部参照キーがあると、外部から適当にデータを流し込むときに邪魔になることがあります。
「外部参照キーを考慮して流し込めよ」と言われれば、そりゃそうなのですが、まあ邪魔なんです。

ISQL.exeを利用して、外部参照キーを取得する

データベースにConncet して、
SHOW TABLE ほげほげTable;
でとれます。

SQLでは?

えらく難しい。
丸一日ほどなやんでいましたが、最終的にこちらを参考にしました。
まとめてとるならこんな感じになるらしい。

select 
 PK.RDB$RELATION_NAME as PKTABLE_NAME
,ISP.RDB$FIELD_NAME as PKCOLUMN_NAME
,FK.RDB$RELATION_NAME as FKTABLE_NAME
,ISF.RDB$FIELD_NAME as FKCOLUMN_NAME
,(ISP.RDB$FIELD_POSITION + 1) as KEY_SEQ
,PK.RDB$CONSTRAINT_NAME as PK_NAME
,FK.RDB$CONSTRAINT_NAME as FK_NAME
from
 RDB$RELATION_CONSTRAINTS PK
,RDB$RELATION_CONSTRAINTS FK
,RDB$REF_CONSTRAINTS RC
,RDB$INDEX_SEGMENTS ISP
,RDB$INDEX_SEGMENTS ISF
WHERE  
 FK.RDB$CONSTRAINT_NAME = RC.RDB$CONSTRAINT_NAME 
and PK.RDB$CONSTRAINT_NAME = RC.RDB$CONST_NAME_UQ 
and ISP.RDB$INDEX_NAME = PK.RDB$INDEX_NAME 
and ISF.RDB$INDEX_NAME = FK.RDB$INDEX_NAME 
and ISP.RDB$FIELD_POSITION = ISF.RDB$FIELD_POSITION 
order by 1, 5 

FKTABLE_NAME が外部参照しているテーブルで、参照先がPK_TABLE_NAME になります。
あとはSELECT結果をもとに、外部キーを外したりつけたり。

外す
ALTER TABLE  ほげほげテーブル DROP CONSTRAINT INTEG_ほげほげ;

つける
ALTER TABLE ほげほげテーブル
ADD FOREIGN KEY (col1, col2)
REFERENCES ほげほげ参照先テーブル(colA, colB)

外すだけなら

こちらも参考にできそうです。
SQLというよりスクリプトですかね。



Firebird 徹底入門

新品価格
¥4,104から
(2016/7/14 23:43時点)