2012年11月29日木曜日

Microsoft Officeのファイル検証機能で Excel→PowerPoint への貼り付けに時間がかかる


Excel→PowerPoint への貼り付けをした時に
「このファイルを開こうとしたときに、Officeファイル検証機能によって問題が検出されました。このファイルを開くのはセキュリティ上危険である可能性があります。」
と警告が出てるトラブルが起こった。
調べてみたら、この原因は Office のファイル検証機能 のようだった。更新で昨年 (2011 年) 2003 にも入ったらしい。

 (参考)Officeファイル検証機能によって問題が検出されました。
 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1166681236




これとは別に、Microsoft Office の Excel の図を PowerPoint に貼り付ける時に異様に時間がかかるときがある。
数分から数十分かかる時もあって、とても我慢できない長さ。

1 つめのトラブルと関係あるかもしれないと思って調べたら、前述の Office のファイル検証機能のせいで、Excel ファイルを開くのに非常に時間がかかる場合があることがわかった(Officeのファイル検証機能について調べてみたExcel 2003で.xlsファイルのオープンが非常に遅くなったときの対処方法)。
Excel から PowerPoint への貼り付けをすると、Excel ファイルを内部的に開いている様子なので、この検証機能が貼り付けに時間がかかる原因なのではないか?



両方の問題の解決方法は、現時点で
Office のファイル検証機能の無効化 (Fix it など)
・共有フォルダ上で Office を使用しない
・Excel ファイルを手荒に扱わない(バージョンまたいで編集したり)
とかになるが、どれも一長一短ある。

1 つ目の「Office のファイル検証機能の無効化」は根本的な解決にはなるが、副作用があるから利用しないほうがいい。試してみた範囲では、うまくいくようだ。
運用で回避するのが一番無難なんだけど、それも難しいだけにうまく解決しない問題のようだ。


2012年9月11日火曜日

Photoshop (CS2、CS4) 起動時のフリーズ

6 月ぐらいから Windows XP 上で photoshop CS2 が動かなくなって、起動時にカラープロファイル関係の問題があったのかと思ってた(下ツイート)。昨日、他の XP 上の CS4 も別の挙動だけど動かなくなった。

これやばいな、アプリケーション自体全然起動しないし、再現するが、突然だから原因はわからない。ちょっといじった限りで改善しない。トラブル報告も少ない(英語ならあるのか?)。これは詰んだか…。>Photoshop CS2 のモニタのカラープロファイル関係のトラブル
posted at 2012年06月27日
この件でアドバイスいただいたんですが、気がつかずすみませんでした。ありがとうございました @yamma_ma さん)


昨日動作しなくなった CS4 は、立ち上げ時に環境読み込み時に固まるので、そちらの方面で検索したら、環境設定ファイルを削除する方法(Windows Photoshop 環境設定ファイル削除方法) があることが分かった。CS4 環境で実行したら見事解決したので、試験的に CS2 のほうでもやってみたら、こちらも解決した。
CS2 のほうはカラープロファイル関係みたいだと思ったけど、環境設定ファイルの問題だったんだろうか? Photoshop はあまり使わないから分からないが、環境設定ファイルの問題はよくあることなのだろうか?
というか photoshop を動かしてる 2 環境で、同じように環境設定ファイルを削除しないといけなくなるってことは、使い方が悪のかもしれない……。


(参考)Windows Photoshop 環境設定ファイル削除方法
  http://miraiz.jp/web/20110420/windows-photoshop-delete.html

2012年4月10日火曜日

Thunderbird 10 以降で umin.ac.jp 等に接続するためのシェルスクリプトの書き方 for linux

Thunderbird 10 以降で umin.ac.jp 等にSSL接続するためのシェルスクリプトの書き方 for linux


------------------------------------------------------------------------------------
2012 年 5 月 31 日追記
この問題について Umin サーバーの修正が終わり、umin.org と umin.ac.jp が 6 月に順次 Thunderbird 10 以降に対応するそうです。


2012 年 7 月 2 日追記
umin.org のメールサーバーは 6 月 4 日に Thunderbird 10 以降に対応し、アクセス可能になりました。 umin.ac.jp のサーバーは 7 月中に対応する予定とのことですので、今しばらくお待ちください。


2012 年 7 月 10 日追記
umin.ac.jp、umin.org のメールサーバーともに、以下の設定をしなくても Thunderbird 10 以降で使用できるようになりました。対応、修正にご尽力いただいた担当の方、ありがとうございました。
------------------------------------------------------------------------------------

Thunderbird の 10 以降で umin.ac.jp に接続する場合について、windows で当面対処する方法を書きましたが(Thunderbird 10 以降 (10/11) で umin.ac.jp 等にSSL接続するための batch の書き方 for windows)、linux でシェルスクリプトで同様に対処する方法を記事にしてみました。

Thunderbird を実行する際に環境変数に、NSS_SSL_CBC_RANDOM_IV=0 を追加すると、thunderbird の動作が少し変わり、umin.ac.jp と umin.org に接続できます。Windows では batch ファイルで実施しましたが、linux ではシェルスクリプトで実現しています(mac でも実施できるかもしれませんが確認していません)。


以下、batch の作成方法(ubuntu 11.10 で動作確認)。

(1) シェルスクリプト用のテキストファイルを作成する。

(2) export NSS_SSL_CBC_RANDOM_IV=0 と thunderbird を 1 行ずつ書く(コピペする)。「thunderbird」の行は、thunderbird にパスが設定されている必要があります(パスが設定されていない場合、実行ファイルのパスを代わりに記載しても OK だと思います)。
    こんな感じです。

   export NSS_SSL_CBC_RANDOM_IV=0
   thunderbird

    上記は最低限の記載です。シェルスクリプトの書き方や作法は他サイトをご参照ください。


(3) ファイル名を xxx.sh (xxx は任意) に変更したのち、シェルスクリプトのファイルを実行可能にする(権限を変更する。chmod 等。参考:第4回 Linux基本操作(2) (その1) )。

(4) 作成したシェルスクリプトファイルを、GUI でダブルクリックし実行する、もしくはターミナルなどで実行すると、thunberbird が起動します。umin.ac.jp、umin.org のサーバーに接続できます。

シェルスクリプトファイル上での環境変数の変更のため、起動した thunderbird 以外には影響を及ぼさないと思われますが、念のため、ご利用は自己責任でお願いします。

2012年2月7日火曜日

Thunderbird 10 以降で umin.ac.jp 等に接続するための batch の書き方 for windows

Thunderbird 10 以降 (10/11) で umin.ac.jp 等にSSL接続するための batch の書き方 for windows


------------------------------------------------------------------------------------
2012 年 5 月 31 日追記
この問題について Umin サーバーの修正が終わり、umin.org と umin.ac.jp が 6 月に順次 Thunderbird 10 以降に対応するそうです。


2012 年 7 月 2 日追記
umin.org のメールサーバーは 6 月 4 日に Thunderbird 10 以降に対応し、アクセス可能になりました。 umin.ac.jp のサーバーは 7 月中に対応する予定とのことですので、今しばらくお待ちください。


2012 年 7 月 10 日追記
umin.ac.jp、umin.org のメールサーバーともに、以下の設定をしなくても Thunderbird 10 以降で使用できるようになりました。対応、修正にご尽力いただいた担当の方、ありがとうございました。
------------------------------------------------------------------------------------

Thunderbird の 10 以降で umin.ac.jp に接続して少し困っている例が身の回りに数件あって、結構需要があるようなので (Thunderbirdご利用の注意 (umin))、thunderbird の 10/11(10 以降)で umin.ac.jp 等にSSL接続するための batch の書き方を記事にしてみました。(4/9 修正)
基本的には UMIN サイトの thunberbird 9 を使う対処が手軽でよいと思いますが、 間違って upgrade すると thunderbird 自体がフリーズしてエクスポート等手出しできなくなることもあることや、thunderbird は 9 では脆弱性の修正が受けられないため、なるべく新しいものを使用したほうがいいので、新しいバージョンの thunberbirdを 動かせるよう、batch (bat) の作り方を紹介しています。

Windows の環境変数に、NSS_SSL_CBC_RANDOM_IV=0 を追加すると、thunderbird の動作が少し変わり、umin.ac.jp と umin.org に接続できるようです。Windows 全体にこの設定を行うと、悪影響が出る可能性が少しありますので、batch ファイルを作成し thunderbird のみに作用する方法を掲載しています。


以下、batch の作成方法(windows xp のみで動作確認)。

(1) メモ帳で batch 用のテキストファイルを作成する(右クリックして「新規作成」→「テキストファイル」など)。

(2) set NSS_SSL_CBC_RANDOM_IV=0 と "C:\Program Files\Mozilla Thunderbird\thunderbird.exe" を 1 行ずつ書く(コピペする)。後ろの行はダブルクォーテーションも書いてください。thunderbird のインストール場所を変えていたら、後ろの行のパスを適宜変更してください。
  こんな感じです。

   set NSS_SSL_CBC_RANDOM_IV=0
   "C:\Program Files\Mozilla Thunderbird\thunderbird.exe"


(3) ファイル名を xxx.bat (xxx は任意) に変更して(拡張子を .bat にする)、batch ファイルとして実行できるようにする(windows 側で拡張子を表示するようにしないとできません。拡張子の変更についてはこちらを参考にしてください)。拡張子を .bat にすると、ダブルクリックをした時に編集画面にならずに batch ファイルを実行してしまうので、再編集時には右クリックして「編集」を選んでください。

(4) 作成した bat ファイルをダブルクリックするとプロンプトが開き、thunberbird が起動します。umin.ac.jp、umin.org のサーバーに接続できます。

batch ファイル上での環境変数の変更のため、起動した thunderbird 以外には影響を及ぼさないと思われますが、念のため、ご利用は自己責任でお願いします。

今回の原因は、UMIN によると
Thunderbirdのバージョン10.0がUMINサーバに対してPOPの規定でないコマンドを送っているため
となっていますが、この batch ファイルで動くので、おそらくここで指摘されている umin サーバ側の問題かもしれません。

2011年6月5日日曜日

JSlider でクリックした位置にノブを動かせるようにする

1. JSlider でクリックした位置にノブを動かす場合の課題

Java Swing で JSlider(スライドバーみたいなもの)を使う場合、そのままではバーの特定場所をクリックしても、近くのメモリ上にスライダーは動きますがメモリの間の細かいところには動きません
このスライダーを使うのが数回程度なら、別にクリックで細かく動かせるようにしなくてもいいのではと思いますが、これで操作を行うような場面が何回もある場合、クリックで細かい指定ができないと不便なのですよね。

「JSlider」、「クリック」等、日本語で検索すると、以下の比較的有名なサイトの解決方法が上位に出てきて、このクリック時の問題をうまく解決することができます(非常に参考になります)。
 JSliderでクリックした位置にノブをスライド
  http://terai.xrea.jp/Swing/JumpToClickedPositionSlider.html

ですが、コードを見るとわかるように、「new MetalSliderUI()」となっており、Nimbus 等の Metal でない look and feel を使っている場合、うまく動きません。個人的に Nimbus を使いたい場面もあり、問題でした。


2. 簡単に出来る解決方法(挙動がヘンだけど…)

どういう look and feel でもこの問題を解決できる方法はないかと探してみましたが、日本語で検索した場合、上位に以下のような示唆しか見つかりませんでした。

 スライダーの値をマウスのクリックで設定する方法
  http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=17944&forum=12
  「現時点では簡単な実現方法がないため、
   とりあえずクリックされた座標から値を計算するようにしたいと思います。 」

これをなげやりに実装すると、以下のようになります。固定値の 8 などは location を計算するための補正です(もっと丁寧な方法があると思います)。

 slider.addMouseListener(new MouseListener(){

  @Override
  public void mouseClicked(MouseEvent mouseEvent) {
   Point point = slider.getMousePosition(); 

   int width = slider.getBounds().width - 8*2; 
   int location = (int)(((double)point.x-8.0)/(double)width*slider.getMaximum()); 

   slider.getModel().setValue(location);
  }

  @Override 
  public void mouseEntered(MouseEvent arg0) {  } 

  @Override 
  public void mouseExited(MouseEvent arg0) {  } 

  @Override 
  public void mousePressed(MouseEvent arg0) {  } 

  @Override 
  public void mouseReleased(MouseEvent arg0) {  }
 });

しかし、やってみると分かりますが、この実装にするとクリック後の動きがかなりでこぼこします(1 どキリのいいメモリに動いてから、上記の location の位置に動くため)。


3. 実用的な解決方法

英語で調べてみると、Metal UI でない場合のもう少しスマートな解決方法がありました。

 JSlider question: Position after leftclick
  http://stackoverflow.com/questions/518471/jslider-question-position-after-leftclick

上のほうのコードの方法は、1 で紹介したのと類似で Metal 用ですが、下の「This question is kind of old, but I just ran across this problem myself. This is my solution:」以下のコードは、それ以外の look and feel でも動きます。

引用:

 JSlider slider = new JSlider(/* your options here if desired */) {
 {
  MouseListener[] listeners = getMouseListeners();

  for (MouseListener l : listeners)
   removeMouseListener(l); // remove UI-installed TrackListener …(i)

  final BasicSliderUI ui = (BasicSliderUI) getUI(); // …(ii)
  BasicSliderUI.TrackListener tl = ui.new TrackListener() {

   // this is where we jump to absolute value of click
   @Override
   public void mouseClicked(MouseEvent e) {
    Point p = e.getPoint();
    int value = ui.valueForXPosition(p.x);

    setValue(value);
   }

   // disable check that will invoke scrollDueToClickInTrack
   @Override
   public boolean shouldScroll(int dir) {
    return false;
   }
  };
  addMouseListener(tl);
 }
 };

簡単に説明すると、JSlider を拡張して、 (i) JSlider 中にあるクリックを受け取るリスナ (MouseListener) を一旦 remove して、(ii) クリックで細かく動く listener に新たに設定し直している、ということですね。
これなら実際に動かしてみても、キレイに動きます。

ある程度使う場面が考えられるような機能なので、簡単な設定でこのような挙動で実装できるようになっているといいなと思うのですが、Java 7 でも機能追加されないかな?

基本的に目的の達成を目指して実施してきた過程で副産物的に得られた知見で、英語で調べられれば誰でも解決できる話なのですが、多少他の人の役に立つかなと思い少しまとめてみました。

2011年3月7日月曜日

Office suite のクラウド連携 vs クラウドストレージ

最近 google docs のインターフェイスが新しくなって使いやすくなりましたが、今回さらに google docs をバックエンドとしてデスクトップの microsoft office を連携させていくようです(グーグル、「Cloud Connect」を公開--Officeファイルを「Google Docs」と同期)。この流れだと、Open Office (Oracle) と Libre Office でもプラグインの形式で対応してくるかもしれない。
Google は microsoft のように既存のデスクトップアプリケーションを販売することにこだわらなくていいので、他の office suite もブラウザでの使用もきっちり対応できて、ほんの少しだけ有利かも。

でも、Microsoft Office が同じような機能をやっていたときから疑問に思っていたのですが、こういう office suite のクラウド連携と、DropBox などのクラウドストレージサービスを使って連携するのと、どっちがいいんでしょう? 機能を統合している前者がいいのか機能ごとにわかれていて連続して使用する後者がいいのか。個人の使い勝手という観点や、ビジネスの構造(垂直統合と水平分業の意味で)がありますが、それぞれの視点で考えられると思います。

個人の使い勝手という観点からいうと、office suite に対応していないファイルも取り扱えるので、後者の方が気分的には楽かなとも思います。一方、前者のほうがアップの手軽さで、後者では同期時に不可が大きくなるため、単純な使い勝手だと前者の方がいいという人もいるような気がします。
結局どっちがと決定づけるのは難しいかなと思いますが、主流としてはどちらになっていくのか、気になります。

ビジネスの構造の視点では、前述の個人の使い勝手とも関連してきますが、水平分業を進めることで規模のメリットや 1 つの機能の追求、メンテナンス性の向上などの利点があったり、他方統合しているほうが all in one で売りやすいというメリットも見えてきます。

結局分野や情勢、ブロックバスターとなる商品のスタイルなどによってこの、統合型と水平分業連携方のどちらがいいのかは変わってきて、永遠の議論対象なのかもしれません(例:統合型の Mac と水平型の windows、ビジネスモデルとしての垂直統合的な日本の携帯電話(やapple?)と欧米の水平型市場)。

2011年3月4日金曜日

ネットの実名と匿名と、密結合と粗結合 (twitter の"次"が facebook?)

1. 密結合と粗結合が作り出す複数のネットワークの構成

人のつながり方の密結合と粗結合について、これまでにいろいろと書いているけれど(人のつながりにおける密結合と粗結合)、そのつながり(結合)によって構築されるネットワークについて考えてみた。
特に今いろいろと話題(問題)になっている facebook と実名性でのネットワークと、それに対応する匿名空間について考えたいと思います。

人のつながり方の密結合と粗結合については、まえの記事で書いたけれど(人のつながりにおける密結合と粗結合)、その粗密に関係する要素の「背景情報の共有度」は結構重要なことで、特に (1) 実名か (2) ハンドルネームか (3) 匿名か、という部分は各種エンジンで簡単に検索して名寄せできるネット上では重要になりますし、この 3 つのどれがネットワークを主に構成しているかでネットワークの性質が異なってくるように思います。
 具体的には、(1) 実名の場合には密で現実に(いい意味でも悪い意味でも)裏打ちされたネットワーク、(2) ハンドルネームではやや緩いけれど、継続性を持ったネットワーク、(3) 匿名だと粗結合で自由度が高いけれど、継続性がない関係性になって、現在のコミュニティの性質をよく繁栄しているのではないでしょうか。

個人的な認識ですが、現実の関係やネット上の関係を含めた、人と人とのつながりの構造、ネットワークの構成を図にしてみました。



2. 密結合と粗結合が作り出すネットワークの性質

結合が密な実名層は、実社会に張り付くように存在し、結合は強固でローカルな楽しさがあります。反面、その関係から離れにくかったり、社会的な立場やその他の考え方が異なると似た趣味でもなかなかつながりを作れない、友人関係や印象等いろいろと配慮をしなければいけない、など実社会を超えたつながりを、特に動的に作るのには不都合な点が多いです。
一部の仕組みで流動性も多少あるけれど、非常にソリッドで固体的なのが特徴かなと思います。

これに対し、匿名の関係性(blog のコメントで見られる匿名コメントや捨てハンドル、2ch での匿名コメント(ID がついていたりもするけど))は、趣味や嗜好、考え方で集まりクラスタリングできるけれど、つながりの持続性が弱く離散しがちで、何かの議論や話をする場合、同じ展開を何度も繰り返してしまったりします(その点、2ch ではテンプレート等で対応している様子)。
流動性が高すぎ、発散する非常に気体的な特徴があります。

他方、ハンドルネーム層は、継続的に同じ名前や ID を使うため、関係性やつながりはゆるく担保されるが、実名や実社会の関係に基づかないため、比較的関係を作ったり切ったりするのが簡単。そのため、比較的強いつながりが残り続け、同じような趣味や嗜好、考え方を持った人が集まりやすく、つながりを保持しつつクラスタリングしやすい。相手の情報も限定的なため、フラットな関係で話をしやすい。
また、継続的にハンドルネームを使用していると人柄がある程度わかるので、実名のアカウントともやり取りをしやすい。他方、何かあっても実社会への影響は起こりにくいため、比較的匿名層ともやりとりをしやすい
全体的な柔軟性と適度な流動性、クラスターを作るところからみて、とっても液体的(水のクラスターみたい。※ クラスターの小さい水を使うといい製品ができるとか、そういう擬似科学ではないです><)。
特に twitter ですと、実名でも匿名的にも使えるし、クラスタリングもかなりすばやく効きますし、クラスタを超えた伝播も多く、かなり優秀な液体ではないでしょうか?


mixi から、twitter への(一部の?)流れは、擬似同期的な速さの楽しさのところもあったかもしれませんが、上記のネットワークの性質の面から考えると、実社会に縛られずクラスタリングされる楽しさの部分が結構大きかったのではないかなと思います。mixi も実名から匿名へ、実社会に固まっていたところから流動性を高める方向に動いている(いた?)ようにも思います(ほとんど使ったことないので分かりませんが)。
また、同じような嗜好や趣味のクラスタの楽しさと、実社会からの強い束縛を保持しつつ、関係性や継続性の担保が欲しくて、2ch 等大規模掲示板から twitter に来た(メインを移した)人も(少しは?)いるように思います。


3. ネットワークを楽しむユーザーの視点で見て、twitter の"次"が facebook なの?

このように束縛されすぎず関係性を楽しめる液体的な特性のため、twitter が使われるようになってきた気がする(仮説)のですが、twitter の次は facebook だという人もいます。

関係性が流動的で、実社会の関係を超えて広く繋がれることを楽しむようになってきたつ言ったーユーザーは、また現実社会に張りつけられ(以前よりより強く?)束縛されたコミュニティに戻りたいと思うのでしょうか?あるいは、facebook で日常のつながりをより強固で動かしがたくしたいと思うでしょうか。日常のソーシャルグラフを活かしつつ趣味でつながりたいなら facebook よりいいサービスが他にあると思いますし(鍵かけて twitter 使うのもいいと思う)。
もちろん、人の好みによりますが、上で述べたような感性の人も多いように思いますし、twitter ユーザーが全体的に facebook のほうに流れるとはどうしても思い難いです。

実社会にへばりつく facebook は、実社会の関係性を強化するために使うほうがいいですし(距離や仕事が離れた友人との関係には便利ですね。これ以上密結合を密にする方向に進むのは、?という気がします)、流動的な twitter は実社会のクラスタを含みつつ超えて、オープンでフラットな立場でつながりを楽しむのに使うのがいいんじゃないでしょうか。

次は twitter だとか、次は facebook だとか、そういうビジネス的な視点での流行を信じて動くより、そのつながり方の性質を見て、自分の頭で考え、好みを決めるのが大事だし、楽しいんじゃない?