布団が俺を呼んでいる

丘山大一のぶろぐ

Firebird Embededのお勉強 ISQLの使い方

業務の都合上、Firebird Embededについて勉強しなくてはならなくなりました……。
日本語情報が少ないよー!

ISQL の使い方

Firebird にはISQL というコマンドラインツールがあります。
Embeded では使えないのかなー、と思っていましたが、
isql.exe を配置。
・fbembed.dll → fbclient.dll に名前を変更
すれば使えるようです。
exe直たたきでも使えますが、私はコマンドプロンプトから実行しています。
実際の使い方はこんな感じ。

cd C:\fb
isql.exe
Use CONNECT or CREATE DATABASE to spcify a database
SQL> CONNECT hoge.ftb
CON>user 'SYSDBA' password 'masterkey';
Database: hoge.ftb User: SYSDBA
SQL> SELECT * FROM Table1;
SQL> Commit;

SELECT しかしてないんで最後のCommitはいらないですけど、使い方のイメージということで載せています。

何分勉強初めてまだ数日。
ココをチマチマと呼んでいる段階です。
間違っていることがあってもご容赦ください。


Firebirdの書籍の有名どころって、↓しかしらないんですが、他にいいのないですかねえ。


Firebird 徹底入門

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

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

手動再起動。

今回はこんな感じ

いつものごとく、アップデートファイルのダウンロードや更新自体は完了しているので、再起動にかかる時間だけです。
画面上に歯車が出てきてクルクル回るのがほぼ10分。
ロゴが表示され続ける時間が1分ほど。
プログレスバーが5分。
大きく上記3ステップ、合計16分ほどで更新が完了しました。
途中のプログレスバーの残りがまだまだあったはずなのに、いきなり更新が終わった気がします。
そんなもん?

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


バージョン

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

「Windows 10 Mobile の更新履歴」は全然更新されませんね……




サーバの共有フォルダの中身を整理してみた

梅雨の時期は体調が悪くて……更新さぼってました。
さて、共有の名のもとにカオス化するアレを整理する話。

なぜ整理したか

開発グループの利用の目安が2GB制限だったが、18.5GB使用していた。
ドキュメントが整理されておらず、何がどこにあるか分からない。ドキュメント探索という無駄なコストが発生。
「整理しなきゃ」「整理しなきゃ」と言う人はいるものの、いつまでたっても整理しない。

なぜ整理されないか

必要かもしれない(削除できない)。
自分以外が置いたファイルはよくわからない(削除できない)。

思ったこと

そもそも2GB制限って少なすぎ。サーバ管理者はアホかなんなら適当な1TBハードディスク2~3本買ってきてRAID組めば解決の予感。
削除できない原因は、ようはうっかり必要なファイルを削除していまったときに責任をとりたくないという話。
あとただたんに面倒くさいという話(最大の原因)。

やったこと

全ファイルを容量が空いている他のローカルにバックアップ(複数個所)
ディレクトリリストを出して、削除するファイル一覧を抽出。他のメンバにメールで送りつける(削除するって言ったからね? という予防線)。
なんとなく、「自分だったらこんな感じで整理する」やり方で整理開始。ガンガン削除。
自己基準のみで削除しまくり。

結果

18.5GB から 2.18GB へのスリム化に成功。
もし必要なファイルが後から出てきた場合はバックアップから戻す予定。
そのバックアップは1年後を目安に削除する予定。

共有フォルダとはどうあるべきか

本当にファイルを整理したいなら、それこそ履歴管理できるシステムを導入するべきなわけです。
しかし、共有フォルダにはそれを圧倒的に上回る便利さがある。
それは何より「手軽さ」。
これは何物にも代えがたいメリットなのです。たとえ将来カオス化すると分かっていても。
共有フォルダの問題点の指摘や、それを解消するための枠組みやルールなんかも色々提唱、提案、導入されていますが、2GB程度の容量なら適当でオッケー(今回は10GB超えで制御不能になっていたので整理しちゃいましたけど)。
むしろ下手にルールなんて導入したら、唯一最大のメリットである「手軽さ」が損なわれてしまう。
これは避けたいところです。
というわけで、こんなエントリを書いていますが、共有フォルダはルールではなく、モラルと時々の整理整頓で対応するのが個人的には好きです。



学校では教えてくれない大切なこと 1 整理整頓

新品価格
¥918から
(2016/7/8 23:23時点)

Windows Phone (Windows Mobile) アップデートの再起動ににかかる時間(trinity) 201606

近頃体調不良でどうにも……

さて、本日更新しました。

再起動を手動でかける
画面の歯車がクルクル回るのが約5分。
プログレスバーが約6分。
合計12分弱くらいでした。

バージョン

OSのビルドバージョンは 10.0.10586.420。
ファームウェアリビジョンは、 1028.020.001.79 になっていました。
本日時点の各バージョンは、
  • バージョン:1511
  • OSビルド:10.0.10586.318
  • ファームウェアリビジョン番号:1028.020.001.79
  • ハードウェアリビジョン番号:1.0
  • 無線ハードウェアバージョン:1.0
  • チップSOCバージョン:8952

更新内容
リリースノートはこちら。
あれ、カメラが動かないなー、と思ったことがあったけどファームウェア側の問題だったのか……
でもこうしてアップデートで対応してくれるのはありがたいですね。


PowerShell 特定の画面を非表示にする(Win32API利用)

以前、C# のソースは書きましたが、
ちょっと違う画面を、という時に不便なのでPowerShellで書き直してみた。
サクッと画面名で絞り込んで使えるように、というわけで今回はプロセスからWindowTitleだけで絞っています。

$signature = @"
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
"@
$SW_HIDE = 0
$func = Add-Type -MemberDefinition $signature -Namespace "Win32Functions" -name "ShowWindowFunction" -passThru

$Process = Get-Process | Where-Object {$_.MainWindowTitle -match "ほげほげ"}
foreach($p in $Process){
    $func::ShowWindow($p.MainWindowHandle, $SW_HIDE) 
}


【改訂新版】 Windows PowerShell ポケットリファレンス

新品価格
¥3,002から
(2015/12/3 23:18時点)

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

いい加減、今回からタイトルを「Windows Mobile」をメインに変えるべきだろうか
OSはWindows 10 Mobileだしなあ……でもWindows Phoneの方が通りがよくて、なかなか変えられない。

いつものように、更新後の再起動を手動でかける

手動再起動!

今回はこんな感じでした

前回と同じく、アップデートファイルのダウンロードや更新自体は完了しているので、再起動にかかる時間だけです。
手動で再起動をかけると、画面上に歯車が出てきてクルクル回り始めます。ほぼ10分。
これまで書いていませんでしたが、ロゴが表示され続ける時間があります。1分ほど。
それが終わった後、プログレスバーが出てきます。5分
大きく上記2ステップ、合計16分ほどで更新が完了しました。
感覚的には前回より、僅かに長くなったかな? いずれにせよ誤差の範囲です。

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

バージョン

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


UWP BackgroundのBinding で はまる

以前はまったもののメモ。
ただの知識不足という体たらく。

色の指定だけどColorじゃないよ

UWP で 色を指定するとき、BackgroundやForegroundに値を突っ込みますが、
こいつらって
名前空間 Windows.UI.Xaml.Media
クラス SolidColorBrush
なんですね。
何も考えずに 名前空間 Windows.UI の方の Color を使ってしばらく悩んでいました。

UWPって書くときに既存の知識に引きずられて失敗することが多いなぁ……


Windows 10ユニバーサルアプリ開発【Windows 10 Mobile対応】 ThinkIT Books

Windows Server に Git環境を構築 (GitBucket導入)

空いているパソコンサーバ(使わなくなったデスクトップPCにサーバOSを突っ込んだヤツ)があったので、
そこにGitBucketを入れてみました。
一応運用実績のあるサーバ=色々環境が入っているサーバ
ですので、下記手順で足りない・多いものがあってもご容赦ください。
OSはWIndows Server 2012 です。
また、ローカルイントラネットでの運用を想定しているのでセキュリティなどはとくに考慮していません(ホントはダメだよ!)

GitBucket のインストール

Javaで動作しているので、JREが必要です。
あたりで落としてきます。
WIndows Server でブラウザを開いて作業するのが面倒な場合は、先にクライアントマシンでファイル落としてからコピーするのが楽です。

つづいて、GitBucket本体です。
からwarファイルを落としてきます。
これを実行する形になるので、今後のことも考えそこそこの階層に配置することにします。
C:\GitBucket\gitbucket.war

配置はこれだけで完了。起動するコマンドは
java -jar C:\GitBucket\gitbucket.war
となります。適当なスクリプトを組んでおけば便利。
バッチファイルで実行した場合、DOS画面を閉じるとGitBucket自体も終了してしまうので、終了しないように。

この後、外部からアクセスできるようにするため、ポート8080を開けておきます。
ファイアウォールの受信の規則で、ポート指定で「8080」を開放します。

アクセス

インストールしたサーバ自身から参照するとき:「http://localhost:8080/」
外部クライアントマシンから参照するとき:「http://<IPアドレス>:8080/
初期ユーザは、root 
初期パスワードも root
のようです。

ユーザの追加

rootだけで運用するわけにはいかないので、ユーザを作ります。
ログイン後、画面右上のアイコンから「System administration」を選択。
画面左側から「User management」を選択。
ここでユーザとグループの追加・管理ができます。
使いそうな人はとりあえず登録してしまいましょう。

リポジトリの追加とこれ以後

リポジトリの追加は画面右上のアイコンの「New Repository」から。
サクッとカンタンにできます。
リポジトリの実態ですが、デフォルトでは
C:\Users\<ユーザ名>\.gitbucket
にできるようです。
保存先のドライブを変更する場合は、早めにやっておいた方がよさそうです。


独習Git

新品価格
¥3,542から
(2016/6/11 20:25時点)

開発者向けWindows 10仮想マシンを覗いてみた

ツールやら何やら色々入っているヤツだそうで。

起動するまで

とりあえずダウンロード。
20ギガくらいあるのでのんびり待ちます。
終わって解凍するにも長いので、さらにのんびり待ちます。
解凍できたら、適当なところにほうりこんでHyper-Vでインポート。
……しようと思ったのですが、エラーが出たのでインポートは中止。
新規に仮想マシンを作成し、中のVHDファイルに直結させます。
起動させると、突然接続が切れる現象に見舞われる。
どうやら拡張セッションだとブツブツ切れちゃうようなので、通常の(拡張でない)接続に切り替え。

入っているもの

主にこんな感じ
OS:Windows 10 Enterprise Evaluation(英語)
VS2015
VS2012 ツール類(おそらくWindows Phone 8.1用)
Microsoft IoT 関連
ODBC Driver 関連
WIndows Phone SDK
Git (!)

IoT 関係が入っているのが非常に気になりますが、知識がないのでどういうものなのかサッパリ。
利用期限が60日間限定みたいなので、フルに使いこなすのは厳しいと思いますが、開発環境の感触をつかむには十分そうですね。

……しかし、なんで拡張セッション切れちゃうんだろう?
他の人も一緒なのかな?




クライアントHyper-V徹底入門Windowsの上でLinuxもUNIXも全部動かそう!

新品価格
¥3,024から
(2016/6/7 22:44時点)

XAML 多角形の中に文字を表示したい

多角形作って、中にTextBlock突っ込めばオッケー、簡単ですね。
あれ?

多角形(Polygon)の中にTextBlockは突っ込めないみたい

な、なんだってー。

というわけで

正解はTextBlock の裏に多角形を仕込むことみたいです。

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApplication1"
        xmlns:exshape="clr-namespace:Microsoft.Expression.Shapes;assembly=Microsoft.Expression.Drawing"
        xmlns:exctrl="clr-namespace:Microsoft.Expression.Controls;assembly=Microsoft.Expression.Drawing"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBlock Text="12" FontSize="24"
           Width="50"
           Height="50"
           Padding="10,10,0,0">
            <TextBlock.Background>
                <VisualBrush>
                    <VisualBrush.Visual>
                        <exshape:RegularPolygon Width="50" Height="50" Stroke="Black" PointCount="5"  Opacity="0.25" />
                    </VisualBrush.Visual>
                </VisualBrush>
            </TextBlock.Background>
        </TextBlock>
    </Grid>
</Window>

ポイントは TextBlock の Padding 。
これで文字位置を微調整する必要があります。

うーん、イマイチ

多角形の中に文字列が存在する のではなく、
文字列の裏側に多角形が存在する というのは、直観に反しているのでなんかイヤ。
もっといい方法ないかなあ……。

あと、もしかして……

UWPってRegularPolygonを呼び出せない……??

Windows 10ユニバーサルアプリ開発【Windows 10 Mobile対応】 ThinkIT Books