カテゴリー: 技術系

  • Apple、Mac版Java 6のセキュリティアップデートを公開

    Mac版のJavaってメンテナンスをしないといっていたような気がするのだけど、
    気のせいだったのかな?
    影響が大きいから、サポートを打ち切るといいつつ、
    Javaの利用が下火になるのを待っているということだろうか?
    どちらにしても、セキュリティアップデートは当てないといけないですね。

    http://www.itmedia.co.jp/enterprise/articles/1210/18/news024.html

  • Acrobat ProでPDFのフォームを編集したらファイルが肥大化する場合の対処

    Windows7でAcroabat X Pro でフォームを作成したり、フォームを編集したら、
    元が数10KBのファイルが数MBにまで肥大化した。

    PDFのファイルを最適化するために、別名で保存しても圧縮できない画像があるとかで
    ファイルのサイズはほぼ変わらず。(数10KB小さくなっただけ)
    PDFファイルの圧縮などを試していたら、フォーム自体が消えてしまったり。
    それでもファイルは小さくならない。
    前に同じような編集をした際には、ここまでPDFファイルが肥大化することはなかった。
    原因不明の謎な現象。

    前に編集したときと条件が異なるのは、Windows OSのバージョンだけ。
    ためしにWindows XP にAcrobato Proをインストールして同じ編集をした。
    すると、フォームを作成したときに若干ファイルサイズが大きくなるものの300KBくらいになった。
    (ここで編集したのは、肥大化したPDFファイルではなくて、フォームを作成する前の元のPDFだ。)
    XPの方で、別名で保存を行えば、PDFが最適化されてさらにコンパクトになった。

    結論: PDFファイルが肥大化した原因は、Windows7とAcrobatの組み合わせ

    原因はまったくもってわからないが、OSのバージョンによってAcrobatの動作が変わっている模様。
    そのため、PDFファイルに余計なものがついてファイルサイズが肥大化したようだ。
    不可解だが、なんとか解決。

    Windows 7 でPDFファイルの肥大化に困ったら、とりあえずWindows XPで試してみるとよい。

  • Google AppsによるGoogle+の管理機能

    Google+のApps用管理機能がリリースされた。

    http://cloud.watch.impress.co.jp/docs/news/20120830_556313.html
    http://googleenterprise-ja.blogspot.jp/2012/08/google.html

    Google+の管理機能は、Appsのコントロールパネルから、
    設定→サービス→Google+の順に選択し、
    全般のタブから、Google+ Premium機能をプレビューを選択することで有効になる。

    現在の機能で制限できるのは、

    • 投稿の共有設定 「新しい投稿のデフォルト設定を制限付きにする」
    • ハングアウトのオプション 「Apps以外のユーザは、招待されない限りハングアウトに参加できません」

    の2種類のみ。

    また、AppsのアカウントでGoogle+を行っているかどうかをプロフィールからユーザ毎に確認できる。

    ためしに登録してみてわかった注意点。

    1. プロフィールについては、管理者が公開範囲を指定することはできない。
      ユーザが自由に公開範囲を設定することができるため、個人情報をダダ漏れにすることも可能。
    2. Appsのユーザだけでなく、外部のG+ユーザともつながれる。
      (オープンなSNSなので、これも当然といえば当然なのだが。)
    3. 写真の共有は、Picasaを使うので、Google+を許可すると、Picasaも許可しなくてはならない。
    4. 日記の機能はなく、FB,TW,YMと同じく、つぶやき形式でのコミュニケーションになる
    5. ハングアウトでウェブ会議が可能。
    6. 情報公開の設定は、わかりにくく、設定を間違えると、Apps以外のユーザにも公開されてしまう。
      (ちょっと集中管理ができるくらいのFBと思った方がよさそう。)
    7. つぶやきについても、ユーザが自分で公開範囲を変更すれば、組織外のユーザにも公開できてしまう。
    8. 設定できる機能はいまのところ少ないが、Google Appsに作成した組織単位で設定をすることができる。

    これから管理機能がふえてくれることを期待したい。
    基本的には、ユーザの・・・使い方次第。
    いろいろと縛れると思っていたので、ちょっと拍子抜けな感じがする。

    あと、このPremium機能は、2013年末まで無料とかいてある。
    その後は、管理機能に対して別途、利用料をとるということなんだろうか。

  • VBで「August 31, 2012」のフォーマットで日付を表示させる方法

    VBで、どうしても「アルファベットの月表示 日, 年」のフォーマットで出力する必要があった。
    表示が「August 31, 2012」になるように整えなければならなったのだ。
    (今回は、本当にVB.NETでやった。古くて大変だった・・・)
    いろいろと調べてみると、上のフォーマットに曜日や時間つきで
    表示するフォーマットはあったが、月と日と年だけを表示するという
    フォーマットはなかった。

    組み合わせることによって、下記のフォーマットでいけることが判明。

     "MMMM d, yyyy"
    

    ポイントは、MMMMのところ。これにより、月が省略されない形で表示される。

    しかし、問題はこれだけではなく、日付の出力では実行環境のロケールをみていることが判明。
    英語で出力しようとしていたら、日本語で出力されて、文字化け。
    (ちなみにどんな日本語で出力されたかは不明・・・)
    整形して出力する際に、ロケールを指定する必要があった。

    こんな感じで書くとよい

     Dim usDate as Date = Date.Now()
     Dim culture As New System.Globalization.CultureInfo("en-us")
     Label.text = usDate.ToString("MMMM d, yyyy", culture)
    

    関数にするなら、こんな感じ。
    (日付フォーマット以外の文字列を渡すとクラッシュするので、その場合は空文字を返すようにしている)

         '----------------------------------------------------
         ' August 31, 2012 のフォーマットで文字列を返す関数
         '----------------------------------------------------
         Private Function getDateMDYformat(ByVal str As String)
             Try
                 Dim usDate As Date = str
                 Dim culture As New System.Globalization.CultureInfo("en-us")
                 Return usDate.ToString("MMMM d, yyyy", culture)
             Catch ex As Exception
                 Return ""
             End Try
     
         End Function
    

    ロケールによって出力が変わるというところは、かなりハマった。
    CultureInfoでちゃんと指定してやれば、US以外のフォーマットでも出せるとわかったのはめっけもん。
    VBは、やれることは多いんだけど、調べるのが大変だ。

  • Firefoxがウェブサイトみていると固まる

    WindowsでFirefoxを使っている人は要注意。Firefoxで無効にしたshockwaveプラグインがプラグインのアップデートによって有効化され、それが原因でいろいろなサイトでFirefoxが固まる。固まると、Firefoxから「スクリプト〜〜〜」という警告がでるまで、まともな反応を返さなくなってしまう。(タブの閉じるをクリックしても、反応するまでに結構時間がかかるので、反応しているのかイマイチわからない。)厄介なのは、自分で無効化したものが勝手に有効化されているので、原因の特定までに時間がかかるということ。

    サイトをみているだけで、Firefoxが固まる人は、プラグインでshockwaveプラグインを無効化したほうが良い。これを無効にすることで、Flashのコンテンツも見れなくなる。FlashよりもFirefoxが固まらなくなるほうが重要。

  • VBで改行コードを文字列に入れる方法

    VBで変数やコントロールに改行コードを入れるには、vbCrLfを指定する。
    (ControlChars.CrLf と指定してもよい)

    ■使い方

     Dim str As String
     str = "一行目" & vbCrLf
     str &= "2行目"
    

    ちなみに vbCr ならキャリッジリターン、vbLf ならラインフィードになる。
    開発によっては、vbLfを使うこともありえる。

  • VBで定数宣言などの部分を折りたためるようにまとめる方法

    VBでコードを書いているとコードの冒頭に定数宣言などを多数書く。
    これが長くなってしまうとソースコードの可読性が下がってしまう。
    定数宣言などが長くなる場合には、#Region ディレクティブ / #End Region ディレクティブ を使用し読みやすくする。

    #Region ディレクティブを使用することで、Visual Studioのコードのアウトライン機能で 展開や折り畳みができるようになる。

    ■使い方

    Public Class DefaultClass
    
    #Region "定数宣言"
       Private Const ACTIVE_FLAG = 1
       Private Const NONACTIVE_FLAG = 0
       Private Const TAX = 0.05
    #End Region
    
  • Windowsの日本語入力モードで大量の数字を入力すると、最初のほうが自動的に半角に変換されてしまう事象について

    Windowsの日本語入力モードで、メモ帳やブラウザのテキストボックスで大量の数字を入力すると、 変換をしていないのに勝手に半角の数字として確定されていることがある。 全角の数字を大量に入れたいというときに、これは困ってしまう。 (アプリのテスト以外にそんな場面はないと思うけど) また、PCをかえてみると、半角では全角の数字で確定されていることもある。 数字だけでなく、アルファベットでも発生する。

    この不可解で気持ち悪いな現象は、WindowsのIMEの設定によるものだ。

    Windowsに標準搭載されているMS-IMEでは、仕様として未変換の文字列が長くなると、自動変換するようになっている。 この自動変換が勝手に半角の数字に変換されている原因。 MS-IMEでは、自動変換時に変換候補の1つ目に変換するようになっている。 数字を普段から、半角数字に変換している場合、変換の1つ目が半角数字なので、 大量の数字を入力した際に自動変換で半角に変換されている。 もし、普段から全角数字を使っている場合は、全角数字に自動変換される。

       日本語入力モードで大量の文字を入力する
          ↓
       MS-IMEの自動変換の閾値を超える
          ↓
       変換候補の1つ目に自動変換される
          ↓
       この間もユーザは入力が続けられる
    

    MS-IMEの設定で、自動変換の長さは変えられるのだが、「短め」と「長め」の2つしかなく、 何文字で変換されるかの設定はできない。 通常は「長め」に設定されているため、ほとんどの場合、効果はいまひとつだ。

    あきらめて、ある程度の長さで変換/決定をするか、1つ目の候補を自分で変えておく方がよいだろう。

    ■参考
    自動的に変換する未変換文字列の長さを変える
    http://office.microsoft.com/ja-jp/support/HA010102742.aspx

  • TracLightningでアクセス権があるのにもかかわらず、アクセスするとアクセス権がないと表示されるようになった場合

    Windows のTrac(TracLightning)を長く使っていると、
    ある日突然今までアクセス権のあったページがアクセス権がないといわれる。
    ブラウザで何回か再読み込みを行うと、普通にアクセスできることもある。

    アクセス権まわりの処理がなんとも不安定な状態にTracが陥った。
    念のため、アクセス権の有無も調べてみたが問題なし。
    いろいろと調べていくと、Tracのログが肥大化し、100MB以上になっていることを発見。

    ログが原因とも思えなかったのだが、念のためログの名前をかえて、ログファイルを新しくしてみた。
    ログを新しくした後は、アクセス権も正常に戻った。

    ログファイルの切り替え時にTracのプロセスの再起動をしているのも関係あるかもしれない。
    しかし、Tracの再起動だけだとアクセス権は安定しなかったので、ログは関係しているかも。

    ■ログの場所

     C:\TracLight\projects\trac\プロジェクト名\log
    

     

  • Excelでデータの入力規則の編集ができない場合の対処

    結論:Excelでブックの共有を行っている場合は、データの入力規則の編集はできない。ブックの共有を解除する。

    ■対処方法

    Excelでデータの入力規則を設定していて、選択できる値を変更したいとする。
    Excel2010だと、入力規則の設定はリボンの「データ」の「データツール」の部分に
    「データの入力規則」がある。そこで設定・編集することができる。

    この「データの入力規則」だが、
    Excelでブックの共有を行っている場合は、データの入力規則の編集はできない。

    その場合は、リボンの「校閲」から「ブックの共有」を選び、
    編集の「複数のユーザーによる同時編集と、ブックの結合を許可する」のチェックを外し、
    OKをクリックする。

    これで、共有が解除され、データの入力規則が設定できるようになる。

    ■おまけ:データの入力規則の設定

    データの入力規則の設定は、

    1. リボンの「データ」→データツールの「データの入力規則」を選択する。
    2. 設定のタブから、「入力値の種類」を選択する。
      もし、ドロップダウンリストから選択させたい場合には、リストを選択し、 「ドロップダウン リストから選択する」のチェックを入れる。
      「元の値」でリストに表示させるセルを選択する。
      セルの値を使わない場合には、カンマ区切りで値を入力する。
    3. OKをクリックする

    これで設定は終了。