M.C.P.C.

―むり・くり―プラスコミュニケーション


« 2011年1月 | トップページ | 2011年3月 »

2011.02.28

久しぶりにMac起動したらウイルス対策ソフトESET NOD32 Macベータの期限が切れていた……

あんまりMacを使わないようになってしまったので、今日久しぶりにMacをつけたら、画面上部にあるNOD32のアイコンが赤くなってしまっていて、どうやらベータテストが終わってしまったようです。

まだMacってMcafeeとウイルスバスターとウイルスバリアしか無いんでしたっけ。

と思ってみていたら、カスペルスキーのMac版があるのですね。

カスペルスキーといえば、ウイルス対策ソフトのバージョンアップで、ブートアップしなくなる事があったので、微妙に不安なんですよね……

[パソコン・インターネット] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.02.27

うげぇ! CPANで一度アップロードしたファイル消しても、同じ名前だとアップできない、ような……

Perlのモジュールを3つ更新してアップしようとして、開発サーバでBuildしたのブラウザのhttpでとってきてPAUSEでアップロードしたんですけれども、httpで取ってきた時点で壊れてしまっていたらしく、正常に処理されないので、一度PAUSEでファイルを削除予約して、削除されたのを確認した後にアップロードしようとしたら、警告が出て駄目ぽでした。

どうやら、素直にバージョン番号進めたほうが賢明らしいですね。まあ、僕一人しか使わないと思うモジュールなんでバージョン番号なんてDでもEのかもしれません……

[Perl] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.02.26

郵便番号枠が7桁になって13年か。

13年前(1998年)のラジオ番組の録音を聞いているんですけれども、郵便局のCMが入ってる。

男声:郵便局への質問。

男声:郵便番号枠が5桁のはがきや封筒、もう使えないの?

女声:大丈夫、使えます。7桁番号の、6・7桁目を、4・5桁枠の下にお書きください。

男声:なるほど!

女声:3月31日までは、無料交換なども行っていますので、詳しくは、郵便局へどうぞ。

そろそろ、郵便番号枠が5桁であったことを知らない人が出てきそうだよな。

僕が印刷会社に入ったときはもうすでに7桁になった後だったけれども、前のデータの修正で5桁の郵便番号枠を7桁にするっていうやつがあったなあ。

[DTP] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.02.25

やばいSnowLeopard使わないうちにLionとか言ってやがる

もともとMac OS X 10.5(Leopard)が入っていたMacBookに、Mac OS X 10.6(Snow Leopard)を入れたのは、iPadでアプリを作るのにSnow Leopardがいるからでして、HDDを500GBにして領域を半分こにして両方起動するようにしていたんですけれども、独学でやってみたものの挫折してしまい、それっきりSnow Leopardを起動しなくなったわけですが、

アップル - Mac OS X Lion [www.apple.com]

iPadで実現させた最良のアイデアのすべてを、Mac OS X Lionと共にMacへ。 2011年夏、登場。主要な機能の一部を、先行してご紹介します。

とか言ってやがる!

このメーカーは本当にOSをころころ変えやがりますな……

[パソコン・インターネット] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.02.24

WWW::Mechanizeはmetaタグを見てデコードするが、charset=Shift_JISのコンテンツって実際にはCP932なので化けるじゃねえか問題

WWW::Mechanizeという、Perlで使う画面表示がないブラウザがあるんですけれども、こいつは取得するHTML文書がShift_JISでも、UTF-8でも、metaタグのcharset指定を読み込んで、デコードしてくれる機能が今は付いています。

(追記:自動でデコードしてくれる機能は、2006年9月の、バージョン1.21_01からのようです。HTTP::Messageモジュールの、decoded_contentメソッドを呼び出すことで実現しています。)

この機能は、WWW::Mechanizeの主な機能、自動巡回をするときに生きてくるのです。たとえば、「次の20件」のリンクをたどりたい場合は、

use utf8;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new;
$mech->get('http://www.example.com/');
$mech->follow_link(text => '次の20件');

でたどれるのも、WWW::Mechanizeが自動的にデコードしてくれるからなのです。

しかし、この自動デコードって困りませんか?

世の中には、charsetにShift_JISを指定していても、実際にはCP932のコンテンツであることって多いです。

例えば、

Filename: sjis.html(シフトJISで保存)

<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=Shift_JIS" />
    <title>髙橋 山﨑 テスト</title>
  </head>
  <body>
    <p>髙橋</p>
    <p>山﨑</p>
  </body>
</html>

これを、こんなコード

use strict;
use warnings;
use utf8;
use WWW::Mechanize;
binmode STDOUT => ':utf8';
 
my $mech = WWW::Mechanize->new();
$mech->agent('Windows IE 6'); 
$mech->get('http://www.example.com/sjis.html');
print $mech->content();
 
exit;
 
__END__

で取得すると……

$ perl sjis.pl
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=Shift_JIS" />
    <title>��橋 山�ア テスト</title>
  </head>
  <body>
    <p>��橋</p>
    <p>山�ア</p>
  </body>
</html>$

となってしまう。CP932には、髙や﨑が入っているんですが、metaタグのcharset指定ではShift_JIS指定だからしょうがない……

WWW::Mechanize使うコンテンツって、結構「髙橋 山﨑」が入っていることって多くないですか?

他の人はどうやっているんだろう……


(2011-02-25 2:24追記)

本文中の、WWW::Mechanizeがいつから自動デコードするようになったか、という情報を追加。

[Perl] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.02.23

QuarkXPress 9は「L リュウミンL-KL」と「細明朝体」の混植データに対応できるのやろか

15年前のDTPデータもiPad電子書籍化可能、「QuarkXPress」最新版を4月発売 -INTERNET Watch [internet.watch.impress.co.jp]

ていうニュースが。QuarkXPress 9が2011年4月なのか。

んと、僕のQuarkXPress観つうのは、オペレータがコンソールの前に座りQuarkXPressを使い脳汁を出しながら同じ作業を延々と繰り返すためのもので、そのためにはQuarkXPressとオペレータの脳みそがつながっている感覚が得られることが必要であったわけで、4.1Jまではその感覚もあったかもしれませんがそのあとは……ていう感じ。ライバルのInDesignがドミノ倒し型のち密な事前の準備が必要なアプリなんですが(本来はな)、結果としてこんなにも水をあけられてしまったっていうのがすげえと思うのです。

僕もQuarkXPress 4も6も8も個人で持っているんだけれども、8が出たあたりでDTPのオペレータから外されちゃったので個人でテストする必要もなくなり今に至る。

そんで、

15年前のDTPデータもiPad電子書籍化可能、「QuarkXPress」最新版を4月発売 -INTERNET Watch [internet.watch.impress.co.jp]

 製品発表に先立ち報道関係者向けに行われた事前説明会では、インプレスがその昔、QuarkXPress 3.1で制作したという出版物のDTPデータを借り、これをQuarkXPress 9で開いて電子書籍として出力するデモも行われた。同バージョンがリリースされたのは1990年代のこと。QuarkXPressはかつて日本のDTPソフト市場を席巻するシェアも持っていた時代があり、出版社にはQuarkXPressによるDTPデータが多く残っている可能性もある。権利処理という大きなハードルはあるため、あくまでも技術的にではあるが、過去の資産を電子書籍に生かせる環境が提供されることになるとしている。

が気になるんですけれども、15年前のデータって、「L リュウミンL-KL」と「細明朝体」と「・Biblos細明朝体」が混在していたり、ニィスがRKSJじゃなくてSJISだったりした時代だったと思うんだけど、今そんなデータどうやってリフローなしに処理できるのかすげえ興味ある。

誰か試して!

[QuarkXPress] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.02.22

GMailがPostScript表示対応したので、PSインタプリタごとに表示が変わるEPSを送信してみたよ!

GMailがPSDやらEPSやら表示できるようになったそうです。

Google DocsとGmailでExcelやPhotoshopファイルの表示が可能に - ITmedia News [www.itmedia.co.jp]

さっそく、ものすごく前に作った「線数を出力する製版記号EPSファイル」を送信してみました。ちなみに、このEPSは、面付けソフトで配置して、フィルムの出力線数を線数ゲージなど見なくても数字で見られるようにしたものです。

現場には投入されなかったんだけど。僕が自分で書くコードは社内では使われない傾向があります……

線数を出力する製版記号EPSファイル [www.on.rim.or.jp] (XMLなので注意)

結果は……

Lpiepsgmails
▲GMailのPSビューアの線数は106.0lpi

んーと106dpiってGhostScriptあたりで出る線数だっけ? 忘れた。

というわけで、DTPやっている人は300MBとかのEPS平気であるからそれを送ったらどうなるかとかやってみたらいかがでしょうか。そもそも送れるかどうか知らん。

[DTP] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.02.21

Simplism iPad用アウトドアバッグを、もっとSimpleに。

週に一度、飲み屋さんに通って飲んでいるわけですけれども、その時に、飲み屋さんまで歩いて40分もあるのでしゃあないのでiPadを入れるポシェットケースを買ったんです。正確にはヨドバシゴールドポイントで。

こうなった。

Simplism01
▲材質を考えましょう ●2点

ミシン強い以前に、このワンポイントゴムなのでどうしてもこうなるわな。両面テープ止めのほうがなんぼかまし。

Simplism02
▲マミる

こんなワンポイント、最初からなかったんだ!

ちなみにこのケース、一部の人には大人気のマジックテープ式です! やめてー

[日記・コラム・つぶやき] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.02.20

CGI::Applicationで、セッションオブジェクトをテンプレートエンジンに自動で渡す

CGI::Applicationで、セッションオブジェクトに入れておいたパラメータをそのままテンプレートエンジンに渡すとき、

package TEST;
 
use strict;
use warnings;
use utf8;
use base 'CGI::Application';
use CGI::Session qw(-ip_match);
use CGI::Application::Plugin::Session;
 
sub cgiapp_init {
  my ($self) = @_;
  $self->session_config(
    CGI_SESSION_OPTIONS => [
      'driver:File',
      $self->query,
      { Directory => 'session_dir' },
    ],
    COOKIE_PARAMS => {
      -path    => '/',
      -expires => '+1h',
    },
    SEND_COOKIE => 1,
  );
  $self->query->charset('UTF-8');
}
 
sub setup {
  my $self = shift;
  $self->start_mode('index');
  $self->run_modes(
    index     => 'index',
  );
  $self->header_add( -charset => 'UTF-8');
}
 
sub index {
  my $self = shift;
  my $s = $self-&gt;session;
  my $t = $self-&gt;load_tmpl( 'index.tmpl' );
  $t-&gt;param( hoge =&gt; 'fuga');
  $t-&gt;param( $s-&gt;param_hashref() );
  return $t-&gt;output;
}
 
1;

こんな感じで書くことができます。でも、例えばサイトにログイン中はセッションオブジェクトにユーザIDなどが入ってるなどした場合、各RumModeで毎回$t->param( $s->param_hashref() );を書くのは面倒……

そんな時は、テンプレートエンジンのフックを使ってこうしてみましょう。

package TEST;
 
use strict;
use warnings;
use utf8;
use base 'CGI::Application';
use CGI::Session qw(-ip_match);
use CGI::Application::Plugin::Session;
 
sub cgiapp_init {
  my ($self) = @_;
  $self->session_config(
    CGI_SESSION_OPTIONS => [
      'driver:File',
      $self->query,
      { Directory => 'session_dir' },
    ],
    COOKIE_PARAMS => {
      -path    => '/',
      -expires => '+1h',
    },
    SEND_COOKIE => 1,
  );
  $self->query->charset('UTF-8');
  $self->add_callback('load_tmpl',\&load_tmpl_callback);
}
 
sub setup {
  my $self = shift;
  $self->start_mode('index');
  $self->run_modes(
    index     => 'index',
  );
  $self->header_add( -charset => 'UTF-8');
}
 
sub index {
  my $self = shift;
  my $s = $self->session;
  my $t = $self->load_tmpl( 'index.tmpl' );
  $t->param( hoge => 'fuga');
  return $t->output;
}
 
sub load_tmpl_callback {
  my ($self, $ht_params, $tmpl_params, $tmpl_file) = @_;
  my $s = $self->session;
  $ht_params->{'die_on_bad_params'} = 0;
  
  # 各RumModeで$t->param( $s->param_hashref() );する代わり
  my $s_hashref = $s->param_hashref();
  foreach my $key ( keys %$s_hashref ) {
    next if $key =~ m/^_/;
    next if $key =~ m/access_token/i;
    $tmpl_params->{ $key } = $s_hashref->{ $key };
  }
  return;
}
 
1;

セッションオブジェクトの中に、テンプレートエンジンに渡してはならないものもあると思うので、ブラックリストを使って排除するのは必要かなあと思います(next if~を羅列する)。

[Perl] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

2011.02.19

Webサイトサムネイル画像生成サービスWebSnapr 2.0の仕組みが変わっていた

いつも便利に使わせてもらっていた

WebSnapr 2.0 [www.websnapr.com]

というウェブサイトのサムネイル画像生成サービスがあるんですが、ちょっと前から、サイトのサムネイルの代わりに、こんな画像が出るようになっていました。

Websrapr20update
▲いままでサムネイル画像だった所がすべてこれ

書いてある通り、

http://www.websnapr.com/code/

にアクセスしてみると、どうやら、新しい仕組みは、JavaScriptであとからimg要素をdocument.writeするようです。

一応、JavaScriptなしでも見られるように作っていたサイトなので、どうしようか今検討中です。手持ちのLinuxでFirefox入れてimg返すシステムを組むってこともできるようなんですけれども、メモリ的になんか辛い感じがするし……

mozshotあたりにすればいいのかな……


[Web] | 固定リンク | コメント (0) | トラックバック (0) | このエントリーをはてなブックマークへ追加 livedoor Clipでこのサイトを登録している人数livedoor Clipでこの記事をクリップ!

< 最後 « これより前10ä»¶ | 全件