まどろむまどろいど!

日頃のちょっとしたハウツーとかを書きます。まどっちが大好きです。This client is best choise for deep Madorer.

異なるPC間でマウス・キーボードを共有するSynergyがマジで最高

外出用のラップトップ機と自宅用のデスクトップ機を一台のマウスで操作したい!といったような需要って結構偏在すると思うのですが僕だけでしょうか.外出用のチープな小型マウスを靴下さながらに放棄,自宅に備えたG700s辺りの怪物を境界に依存せずギュンギュン取廻したい人って結構いると思うんです.Synergyはそういった「一台のマウスでの複数マシンの操作」を実現します.主な設定手順は以下の通り.

Synergyのダウンロード

Synergyを以下のページよりダウンロード.

http://synergy-project.org/Synergy - Mouse and keyboard sharing software

設定(サーバ側)

Synergyはマウス・キーボードのシェアをTCP/IPによる遠隔操作で再現するため,サーバー,クライアントで別個にSynergyを起動する必要があります.以下ではサーバー,クライアントの順に設定を行います.

Synergyを起動し,「Server」にチェックを入れ,「Configure Server...」をクリック.
f:id:madoroid:20140813020409p:plain


右上のアイコンを白地な枠内の任意箇所へドラッグ.

グリッドの位置関係はマウスをシェアした際のデスクトップの位置関係とリンクします.サーバ機の上部にクライアント機を設定した場合,デスクトップ機のデスクトップ上部外側へマウスポインタを移動させるとクライアント機のデスクトップ下部からポインタが出現します.

f:id:madoroid:20140813020422p:plain


「Screen name」の欄へクライアントとなるコンピュータのコンピュータ名を入力し,OKをクリック.

f:id:madoroid:20140813012922p:plain


以上でサーバー側の設定は終了.

設定(クライアント側)

サーバへ接続するためにIPアドレスを確認する必要があるので,サーバー側でコマンドプロンプトを起動し,「ipconfig」を入力→Enter
これで,現在接続されているネットワークアダプターのIP情報が表示されるので,サーバーとする適切なアダプタ名(通常有線接続であれば 『イーサネット アダプター イーサネット』)のIP(v4)アドレスを確認.
f:id:madoroid:20140813014434p:plain


続いて,クライアント側でSynergyを起動し「Server」にチェックを入れ,「Server IP」の欄に確認したIPアドレスを入力.
f:id:madoroid:20140813020403p:plain


以上でクライアント側の設定は終了.


起動

サーバー機クライアント機双方で起動直後の画面右下に表示される「Start」ボタンをクリックすればマウスのシェアが開始されます.

D-Sub でディスプレイ出力すると文字が滲む件について

先日新しくディスプレイを購入し,DVIポートが既に埋まっていた為,余剰のD-Subポートで出力を行った所,全く同じディスプレイ(DVI接続)と比較し文字に滲みが生じていることに気が付きました.

原因は DVI のデジタル出力に対し D-Sub がアナログ出力であることに起因するもので,D-Sub のアナログ信号が DAC での信号変換や伝送時のノイズによって信号が乱れる事により映像が乱れるからであるよう.特に解像度の高いディスプレイでは比較的顕著に DVI とのギャップが感じ取れるようです.

で,要するに D-Sub を避けて映像出力を行う必要があるのですが,取れる対策は 3 つあります.

  1. USBディスプレイアダプタを使う
  2. ビデオカードを買う
  3. D-Sub -> DVI/HDMI/DisplayPort の変換アダプタを買う
  4. 余剰のデジタル信号用のポートがあれば変換アダプタ等を併用して流用

1. はレスポンスが然程要求されない用途であれば一応は実用に耐える,との事ですが,USB自体映像出力用の企画でない上,現状流通している USB2.0 用のディスプレイアダプタは,その転送速度も手伝って動画等の比較的リソースが必要なファイルの再生は中々厳しい物があります.

2. はやはり増設の手間が掛かる,費用がかさむ点についてやはりネックです.
3. は DAC で D-Sub 用に生成されたアナログ信号を再度デジタル信号へ出力するため,グラフィックボードで生成されたオリジナルのデジタル信号を出力する場合に比べ画質が落ちるとの事.

余剰のディジタル信号用のポート(HDMI等)がなければ上記の何れかを選択する他ありませんが,そうでない場合は 4. が最も安価で簡単に済ませられるのではないかと.例えば,私の購入した U2412M は DisplayPort にこそ対応していますが,HDMI には対応していません.一方,余剰の出力端子は D-Sub と HDMI です.こういった場合,HDMI -> DisplayPort の変換アダプタ/ケーブルを購入すれば,高画質でディスプレイへ映像を出力することが可能です.

DVI,HDMI,DisplayPortは相互にアダプタ/ケーブルによる相互に変換が可能なので,企画の不一致により利用できなかった方は是非.二次的な機能ゆえ不対応の製品もありますが,DisplayPort は HDMI の音声信号も伝送可能です.

java.lang.~ cannot be cast to java.lang.~ が出る問題の対策

java.lang.○○ cannot be cast to java.lang.●●

が発生する場合,SharedPreferences を使用して作成した xml 内で,既に定義された item の key に 違う型の値を代入しようとしている可能性があり,その場合対象の値を clear(), remove() 等で消去する必要があります.

例えば

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
Editor e = sp.edit();
e.putString("foo", "http://www.foo.com/");
e.putString("bar", true);
e.commit();

とした場合,"パッケージ名.shared_pref.xml" へ

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="foo">http://www.google.com/</string>
<boolean name="bar" value="true" />
</map>

といった具合に値が保存されますが,ここで新たに

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
Editor e = sp.edit();
e.putString("bar", "http://www.foo.com/");
e.Boolean("bar", true);
e.commit();
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
Editor e = sp.edit();
e.putBoolean("foo", true);
e.String("bar", "http://www.bar.com/");
e.commit();

等とした場合です.foo, bar は既に String, Boolean な値を所有しているので,ここで新たにそれぞれ Boolean, String を代入しようとすると例外が発生します.また, CheckBoxPreference のようなクラスを使用する際,レイアウト側で

<CheckBoxPreference
    android:key="foo"
    android:defaultValue="true"
    android:title="@string/foo_title"
    android:summaryOn="@string/foo_on"
    android:summaryOff="@string/foo_off" />

と等とすると,チェックボックスを Activity に配置しただけで例外が投げられるので発見が困難な事があります.
何れにしても,

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
sp.edit().remove("foo").commit();

のように clear(), remove() とすると問題なく動作します.

Majestouch の型番の読み方

型番の表記形式

<接続タイプ> <キー数> <軸色> / <配列タイプ> <印字位置> <本体色> <バージョン名>

 

スラッシュ前

  • 接続タイプ:FKBN(有線接続のみ), FKBC(有線・無線対応)
  • キー数:整数値
  • 軸色:M(茶軸), ML(黒軸), MC(青軸), MRL(赤軸)

スラッシュ後

  • 配列タイプ:N(かな無しJP配列), J(かな有りJP配列), E(US配列)
  • 印字位置(通常は無し):F(Ninja、フロント印字)
  • 本体色:MU(MultiCam), B(Black), W(White)
  • バージョン名(第一世代は無し):2(第二世代)

 

FKBN91MC/EFB2 の場合

有線接続、91キー、青軸、US配列、フロント印字、Blackカラー、第二世代

 

 

ディスプレイの選びにおけるディスプレイサイズ、解像度の重要性

ディスプレイ選びに際して、ディスプレイサイズ、解像度は、共に非常に重要な要素です。ディスプレイが大きければそのまま描画される情報量が増えると思っている方が居る可能性もあるので、詳細な説明は外部のサイトにお願いして、ここでは極めて簡単な紹介をすると、二点はそれぞれは

 

・ディスプレイサイズ→ディスプレイの物理的な大きさ

・解像度→ディスプレイ自体が所持している能力で描画できる領域の広さ

 

を指しています。つまり、ディスプレイがどの程度の領域を描画できるかは最終的には解像度で決まります。しかし、解像度のみを注視してはいけません。ラップトップによくあるケースですが、ディスプレイサイズが小さいにも関わらず、解像度が高いあまりに、1インチ辺りのドット数が比較的大きくなり、フォント等が小さ過ぎて扱いづらい、逆に大きく粗い、と言う事が起こります。そのような事情で、dpi、ドットピッチ等、種々の数値含めて、ディスプレイサイズ、解像度は忘れてはならない存在です。

 

AndroidでのDropboxの「削除」「追加」時の同期挙動

Dropbox側でデータ更新を先行する場合

Dropboxでデータ削除 → Androidでは削除されない

Dropboxでデータ追加 → Androidでは追加されない

 

Android側でデータ更新を先行する場合

Androidでデータ削除 → Dropboxでは削除されない

Androidでデータ追加 → Dropboxでも追加される(Upload)

 

要約すると、Dropbox for Androidでは、特定のフォルダ(カメラフォルダ)に追加されたデータ(写真)を片方向にアップロードするのみであり、双方向の自動同期機能は持っていません。そのような環境はDropsync等のサードパーティ製のアプリケーションを各自インストールする事で実現可能です。

 

なお、デスクトップアプリケーションでは、同期フォルダ内のファイル構成をすべて常時監視するため、双方向同期となります。

Linux Mintで画面の輝度が極端に低い場合の対策

Linux Mintをインストールすると、環境によっては、どう考えても作業が不可能、というよりももう有り得ないほどブライトネスが低くなる場合があります。その場合は、

  1. 起動時に、通常起動でなくセーフモードを選択する。
  2. 端末(ターミナル)から sudo nano /etc/default/grub を入力

  3. GRUB_CMDLINE_LINUX="" を GRUB_CMDLINE_LINUX="acpi_backlight=vendor"に置換して保存
  4. ターミナルに sudo update-grub を入力

で、取りあえずは作業ができる程度にブライトネスが活用されます。しかし、このままだとブライトネスが常に100%のままなので、その場合は適宜、

sudo apt-get install xbacklight

xbacklight -set 70(数字部は任意の値(百分率))

したり、パネルに「Brightness」アプレットを追加したりして輝度を好みの強さに調整できます。