ページ「キーボード」と「Xamarin.MacでNLogを使う」の間の差分

提供: MonoBook
(ページ間の差分)
ナビゲーションに移動 検索に移動
imported>Administrator
 
imported>Administrator
(Administrator がページ「Xamarin.Mac/NLogを使う」を「Xamarin.MacでNLogを使う」に移動しました)
 
1行目: 1行目:
'''キーボード'''(Keyboard)とは、手指で[[キー]](ボタン)を押すことで[[コンピューター]]に信号を送信する[[入力装置]]である。
+
[[Xamarin.Mac]]でも[[NLog]]を使えると捗る。
  
キーボードというと[[パソコン]]用の100個くらいのキーが並んだ板が一般的だが、[[電卓]][[ガラケー]][[携帯電話]])の[[テンキー]]みたいなのもキーボードの一種である。
+
==実装1==
 +
[[Xamarin.Mac]]でも[[NLog]]はなんら問題なく使用できる。[[NuGet]]から一発[[インストール]]である。試してはいないが[[MonoMac]]でも同じだと思う。
  
== キーボードの優位性 ==
+
ただし[[ファイル]]に出力する場合に注意が必要で、[[Mac OS X]]ではあらゆる[[ファイル]][[アプリ]]の外部に保存する必要があるため、NLog.configファイルの設定例でよく見かける「basedir変数」以下に書き込む設定は使えない。
その圧倒的な入力性能により、8ビットの時代から現代まで一貫して使われており、[[マウス]][[タッチパネル]][[Kinect]]に代表される[[モーションキャプチャー]]などの入力装置が生まれているなかでも安定した勢力を保っている。
 
  
また、最近では[[iPhone]]や[[Android]]などの[[スマートフォン]]や[[iPad]]などの[[タブレット]]などが[[パソコン]]にとって代わる勢いだが、それらにおいても[[タッチパネル]]をキーボード化する[[ソフトウェアキーボード]]が圧倒的な勢力を占めており、今後もこの状況は続くものと思われる。
+
===ファイルに出力するNLog.configの設定例===
 +
そこで以下の例では[[Mac OS X]]では定番の「~/Library/Logs/」以下に出力してみた。
  
キーボード操作を極めると、早口言葉で喋るよりも高速に文字入力ができたり、ショートカットキーの高速連鎖で人間業とは思えない速度でパソコンを操作したりすることができる。
+
<source lang="xml">
 +
<?xml version="1.0" encoding="utf-8" ?>
 +
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
 +
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 +
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
 +
      autoReload="true"
 +
      throwExceptions="false"
 +
      internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log" >
  
かつて[[人間アセンブラ]]と呼ばれた人々のテンキー入力をはじめ、[[vi]]の達人、[[電卓]]の達人、携帯メール打ちの達人、[[Age of Empire]]の達人、などの指の動きは異常である。
+
  <variable name="appname" value="monobook"/>
  
== キーボードの重要性 ==
+
  <targets>
[[プログラマー]]から一般事務員まで、多くの[[パソコン]]を使う人にとって1日中使うもっとも重要な[[周辺機器]]であり、もっとも気を使うべきパーツである。
+
    <target xsi:type="File" name="logfile"
 +
    fileName="${specialfolder:folder=MyDocuments}/Library/Logs/${appname}/${shortdate}.log"
 +
        layout="${longdate} ${uppercase:${level}} ${message}" />
  
劣悪なキーボードを長時間使い続ければ腱鞘炎になるぞ。
+
    <target xsi:type="Console" name="console" />
  
== 劣悪なキーボードの氾濫 ==
+
  </targets>
キーボードはその性能を明示的な数字で表せないため、とくに[[パソコン]]においては真っ先にコスト削減の対象となっており、2012年現在では吐き気がするほどに劣悪なキーボードが世にあふれるという状況となっている。
 
  
== 関連項目 ==
+
  <rules>
; [[キーボード配列]] - キーボード上のキーの並び方
+
    <logger name="*" minlevel="Trace" writeTo="logfile" />
* [[QWERTY配列]] - もっとも一般的なキーボード配列。
+
    <logger name="*" minlevel="Info"  writeTo="console" />
** [[ASCII配列]] - QWERTY配列をベースとした英語キーボード配列。
+
   </rules>
** [[JIS配列]]   - QWERTY配列をベースとした日本語キーボード配列。
+
</nlog>
* [[DVORAK配列]] - 英数字最速伝説を目指したキーボード配列。
+
</source>
* [[NICOLA配列]] - 日本語最速伝説を目指したキーボード配列。通称[[親指シフト]]。
+
NLogに設定するパスは[[絶対パス]]なので、ホームディレクトリのパスの取得は「[[MonoMac/特殊ディレクトリのパスを取得する]]」を用いてMyDocumentsを指定することで取得した。
* [[TRON配列]] - [[親指シフト]]のライバルと言われる[[変態配列]]
 
  
; 有名キーボード
+
また、NLog.config中でアプリ名を動的に取得する方法がわからなかったので、この例では自前でappname変数を用意している。
* [[CHERRY Keyboards]] - CHERRYのキーボード
 
* [[Realforce]] - 東プレのキーボード
 
* [[Happy Hacking Keyboard]] - PFUのキーボード
 
* [[Space Saver Keyboard]] - IBMのキーボード
 
  
; 未分類
+
===備考===
* [[メンブレンキーボード]] - 安物の代名詞。富士通の高級品もある。
+
NLog.configは初期状態でビルド時にコピーされない設定になっていると思うので修正するのを忘れないこと。NLog.configファイルのプロパティの「出力ディレクトリにコピー」の値を「新しい場合のみコピー」または「常にコピー」に設定する。
* [[メカニカルキーボード]] - かつて圧倒的勢力を誇った形式
 
* [[静電容量無接点キーボード]] - RealforceやHHK Proが採用している形式
 
* [[パンタグラフキーボード]] - かつてノートPCで圧倒的な勢力を誇った形式
 
* [[アイソレーションキーボード]] - 俗にいうPC-6001形式。復刻版が大流行中。
 
* [[テンキー]]
 
* [[エルゴノミクスキーボード]]
 
* [[ゲーミングキーボード]] - [[ゲーム]]特化型のキーボード。微妙である。
 
* [[ソフトウェアキーボード]]
 
* [[ファンクションキー]]
 
* [[カーソルキー]]
 
* [[ダイヤモンドカーソル]]
 
* [[ブラインドタッチ]]
 
* [[ショートカットキー]]
 
* [[グロッシーキーボード]] - キーに光沢加工を施したキーボードのこと。
 
* [[キートップ]] - キーの上面のこと。
 
* [[ホームポジション]] - 最も効率的だと言われる指の配置のこと。
 
* [[キーボードテンプレート]] - キーボードにかぶせて使う[[ショートカットキー]]の早見表。
 
* [[キーボードカバー]] - きれい好きな人が付けているカバー。どんな高級キーボードも打ち心地が最悪になる諸刃の剣。
 
* [[キーバッファー]]
 
* [[キーピッチ]] - 各キーの間隔。通常はミリ単位。
 
  
== 参考文献 ==
+
===不具合===
<references/>
+
これは2015年8月3日の情報です。
 +
[[Xamarin.Mac]]において「Debugビルド」を行うとアプリ内(***.app内)のMonoBundleディレクトリにNLog.configファイルが生成(コピー)されるが、「Releaseビルド」では生成されないようだ。たぶん[[不具合]]だと思う。
  
== 外部リンク ==
+
==関連項目==
 +
*[[MonoMac/特殊ディレクトリのパスを取得する]]
 +
 
 +
==参考文献==
 +
{{reflist}}
  
 
{{stub}}
 
{{stub}}
 +
 +
[[category:Xamarin.Mac]]
 +
[[category:MonoMac]]

2019年5月22日 (水) 05:13時点における最新版

Xamarin.MacでもNLogを使えると捗る。

実装1[編集 | ソースを編集]

Xamarin.MacでもNLogはなんら問題なく使用できる。NuGetから一発インストールである。試してはいないがMonoMacでも同じだと思う。

ただしファイルに出力する場合に注意が必要で、Mac OS Xではあらゆるファイルアプリの外部に保存する必要があるため、NLog.configファイルの設定例でよく見かける「basedir変数」以下に書き込む設定は使えない。

ファイルに出力するNLog.configの設定例[編集 | ソースを編集]

そこで以下の例ではMac OS Xでは定番の「~/Library/Logs/」以下に出力してみた。

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log" >

  <variable name="appname" value="monobook"/>

  <targets>
    <target xsi:type="File" name="logfile" 
    	fileName="${specialfolder:folder=MyDocuments}/Library/Logs/${appname}/${shortdate}.log"
        layout="${longdate} ${uppercase:${level}} ${message}" />

    <target xsi:type="Console" name="console" />

  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="logfile" />
    <logger name="*" minlevel="Info"  writeTo="console" />
  </rules>
</nlog>

NLogに設定するパスは絶対パスなので、ホームディレクトリのパスの取得は「MonoMac/特殊ディレクトリのパスを取得する」を用いてMyDocumentsを指定することで取得した。

また、NLog.config中でアプリ名を動的に取得する方法がわからなかったので、この例では自前でappname変数を用意している。

備考[編集 | ソースを編集]

NLog.configは初期状態でビルド時にコピーされない設定になっていると思うので修正するのを忘れないこと。NLog.configファイルのプロパティの「出力ディレクトリにコピー」の値を「新しい場合のみコピー」または「常にコピー」に設定する。

不具合[編集 | ソースを編集]

これは2015年8月3日の情報です。 Xamarin.Macにおいて「Debugビルド」を行うとアプリ内(***.app内)のMonoBundleディレクトリにNLog.configファイルが生成(コピー)されるが、「Releaseビルド」では生成されないようだ。たぶん不具合だと思う。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]