2006年12月アーカイブ

ボディーソープを買うために訪れたマツモトさんの家のモニターで星占いが放送されていました。
三位がわたしの星座の次の星座で、二位がわたしの星座の前の星座。
これはその間にあるわたしの星座が一位かなと期待。
でも、一位はまったく違う星座……その後の最下位がわたしの星座でした。
そんな寒い冬の日々です。
寒い冬を少しでも暖かくしたい!
なので今週末から公開予定のアニメ映画「鉄コン筋クリート」を観に行こうかなと思っています。
原作が元々大好きなんです。温かくてかなり泣けますよね。松本大洋さん、昔からけっこう応援しています。
でも、実はマンガのアニメ化はあまり肯定派ではないです。
だって、マンガとアニメって似ているようでまったく違うわけで、原作を超えることは無理だって思っているわけです。
マンガの良さをアニメで完全に再現するのは無理だって。
逆もまたしかりでしょう。
マンガのアニメ化だけではなくて、小説の映画化やドラマの小説化なんかも肯定的ではないです。
マンガの他ジャンル化、NANAやDEATH NOTEやのだめカンタービレを例に出すまでもなく、多いですよね。
何年か前からの傾向ですが、特に最近多く感じます。
否定派だと断言もできないのは、やっぱりそこに魅力もあると思っているからでしょう。
原作とは別物だと割り切れば楽しめたりするわけで。
ある意味「原作と全然違うよ!」と愚痴を言うのも楽しかったりするわけで。
原作とは違った魅力もあったりするわけで。
もう一つ、気になるアニメ化のニュースはやはり以前にこのblogでも書いた超お気に入りマンガ「おおきく振りかぶって」でしょうか。
以前からかなり噂になっていました。
今日、ネット上で偶然、本当に決まったっぽい情報へのリンクを見つけました。
アニメイトの通販サイトのアニメディア2月号の紹介ページへのリンクです。
確かに書かれている……。
アフタヌーンでも重大ニュース発表ってありましたし、間違いないのかしら?
おおきく振りかぶってのアニメ化もやはり複雑な気持ちだったりします。
してほしくなかったり、楽しみだったりします。
ワガママなヤツです。
映画「鉄コン筋クリート」公式サイト
おおきく振りかぶって アニメ化証明ページ?
Wikipedia 鉄コン筋クリート
Wikipedia おおきく振りかぶって
今年も残りあとわずか、いかがお過ごしでしょうか?
わたしはまたまた風邪をひいていたりします。困るぐらいに声が出ない日が続きました。
あまり声を出さないようにしてクールを装いながら、クールと無口は違うんだなと実感する日々だったりします。
そんなわたしの最近のマイブームが「綺麗なC言語プログラム」です。
C言語という単語、知らない人もけっこういらっしゃいますでしょうか。
多々あるプログラム言語の中でもかなりメジャーな一つなので、知っている方の方が多いかなと勝手に推測しています。
約三十年前に生み出され、現在も第一線で使われているプログラム言語です(C++やJavaとの関連も含め、第一線と表現させていただきました)。
言語としては長い歴史を持っているため、もちろんかなり研究されています。
プログラミングのコンテスト等もありますので。
そんなC言語において、単純な処理を少しでも綺麗に書きたいというのが最近のマイブームなんです。
間違いなくすでに誰かが考えついていることなので、それほど生産性がある行為だとは思っていません。
パズルを解くのと同じような感覚の趣味です。
ただ、ここに書くことでどこかの誰かの役に立ったら良いなぐらいは思います。
ちなみに、綺麗なプログラミングの定義は特にないですが
「提供されている標準ライブラリをあまり用いずできるだけ少ない手順で処理を完了する」
みたいなところでしょうか。
「経験の浅い寿司職人が握り寿司一つに七手かけるのに対して達人は三手しか用いない」みたいなものです。
ただ、わたしは寿司一つに八手かけるぐらいの実力なので、ここに掲載するコードが綺麗だなんて胸を張りはしません。
自分なりの綺麗なソースです。
今回はそんな中で「四捨五入」と「桁数カウント」の二つのコードを掲載します。
※注意
入出力にprintfとscanfを用いているのはポピュラーだからで、ベストだからではありません。
メイン処理のアルゴリズムを考えるのが趣味のため、例外処理は考慮していません。
/*以下、キーボードから入力した正の整数を四捨五入するプログラム*/
#include<stdio.h>
/*指数演算関数 aのb乗*/
int mul(int a,int b){
int c,d=1;
for(c=0;c<b;c++)d*=a;
return d;
}
int main(void){
int a,b;/*a:入力した数値 b:四捨五入対象部分*/
int pla=2;/*整数何桁目で四捨五入するか*/
scanf("%d",&a);
b=a%mul(10,pla);/*pla桁分の数値の取得*/
a=a-a%mul(10,pla)+mul(10,pla)*(b/(mul(10,pla)/2));
printf("%d",a);
return(0);
}
/*以下、キーボードから入力した正の整数の桁数をカウントするプログラム*/
#include<stdio.h>
int main(void){
int a,b=0;
scanf("%d",&a);
while(a>0){
b++;
a/=10;
}
printf("%d",b);
return(0);
}

十二月もそろそろ半分です。今年ももう終わりです。本当に早いものです。
時なんて放っておいても流れていくので、気づけば来年の今頃だったりするのでしょう。
今日、また、一つのお別れがありました。
ある意味別れについて書くのがこのblogの名物みたいになっていますね。
出会いは放っておいてもなにかを生むけれど、別れは自ら動かない限りなにも生まない気がします。
気のせいかもしれないですが。
サヨナラという単語で今日、「サヨナラバス」という歌を思い出しました。
まあ、今更説明の必要もないほど全国区になったゆずの曲です。
ゆずは名曲揃いで、「夏色」「雨と泪」「飛べない鳥」「アゲイン2」等など好きな歌がたくさんあります。
この「サヨナラバス」という歌も、明るさが逆に切なくてとても好きです。
「僕の知る事の出来ない明日へ 君を連れ去って行く」
胸に刺さるフレーズです。
多くの人と出会い、そのほぼ全員がわたしの知らない明日を生きていく……。
別れを喜ぶことはやっぱりできないけれど、別れを経験には結び付けたいとは思います。
そうしないといけないのでしょう。
出会いの数は背負った約束の数の気がします。
それがどんな約束かというと、前を向くという約束です。
♪以下、サヨナラバスより抜粋♪
サヨナラバスはもうすぐ君を迎えに来て
僕の知る事の出来ない明日へ 君を連れ去って行く
サヨナラバスよどうか来ないでくれないか
やっぱり君が好きなんだ

本日、職場にて手作りのアップルパイをいただきました。
とても美味しかったです。
お店で買うよりも美味しかったです。
そんなことを書くとお世辞にとられるかもしれないですが、けれど実際、手作りだからこその良さってありますよね。
どこが違うのかと尋ねられると困るんですが、「大量生産のもの」と「手作りのもの」の間には大きな開きがあるように思うんです。良し悪しの話ではないです。
昔から手作りのケーキなりチョコレートなりを食べる度にそんなことを思ってきました。
材料が同じでも、大量生産のものと手作りのものは違う味になる気がするのです。
それって、もしかすると「食品」の持つ力だけではなくて、「食べる側」の気持ちの問題だったりするのかもしれないですね。
手作りなんだと思って食べると手作りの味がするのかなとか思います。
大量生産の商品でも手作りなんだと聞いて食べると手作りの味がするのかもしれません。
正露丸を飲むと5秒で腹痛が治るのと同じ理論です。
美味しかったです。ありがとうございます。
見ている方々にとっては特に関係ないことかと思いますが、このblogに使用しているMovable Typeのバージョンを3.3から3.33にアップグレードいたしました。
Movable Typeというのは世界中で使用されているblogソフトウェアです。おそらく最も有名なソフトウェアなのだと思います。今ではblogに当たり前のように搭載されているトラックバックという機能は、こちらのソフトウェアが最初に搭載したものだそうです。
旧バージョンを使うことによる不具合は特になかったのですが、まあ、長く使うつもりなので早い段階のうちにアップグレードを試してみたかったんです。
もしかしたら自分で気づいていない不具合があるかもしれないですが、一応うまくいったつもりでございます。
役に立つかはわからないですが、その際の手順を覚え書きの意味も込めて掲載いたします。
マニュアルを熟読せず進めた作業結果です。
以下の通りにアップグレードしてうまくいかなかったからといって責任は追及しないようにお願いいたします。
Movableタイプはblogを構築するモジュール(アプリケーション)とblog内容が別のフォルダに格納されます。
この記事ではそれぞれを「blogモジュール格納フォルダ」「blog記事格納フォルダ」と記載しています。
その1.バックアップの保存
実際にはとったバックアップはプラグインファイル一つしか使用しなかったのですが、念のためにです。
管理ページのユーティリティより「読み込み/書き出し」を選択し、エントリーの書き出しを行いました。
ちなみにこのユーティリティはIEで行うとうまくいかないことがあるそうなので、Mozilla系のFirefoxを使用しました。
また、blogのモジュールを格納しているフォルダの直下にある全ファイル及び後々必要になりそうな「default_templates」「plugins」「search_templates」フォルダをダウンロードしておきました。「db」フォルダについてはmtdbのみバックアップしました。
blogの記事を格納しているフォルダもすべてバックアップしました。管理ページのユーティリティであるエントリーの書き出しではエントリーやコメント、トラックバックの内容のみしかバックアップできないらしかったので(画像やCSS等はバックアップされません)。
その2.mt-config.cgiの書き換え
mt-config.cgiの内容をサーバ設定に合わせて変更いたしました。
パス等です。
その3.既存ファイルの削除
blogモジュール格納フォルダの中身をdb以外すべて削除いたしました。本当にすべてを削除する必要があったのかはわからないですが、古いモジュールが残ってバージョンアップした意味がなくなるのが嫌だったので。
ちなみにdbフォルダを削除しなかったのは、格納されているのがインストール後に作成されるもののため、バージョンには無関係と判断したからです(関係あることが判明したら削除の上でやり直そうと思いました。実際やり直さなかったですが)。
その4.ファイルのアップロード
ダウンロードしたver3.33のファイルをすべてサーバのblogモジュール格納フォルダにアップロードいたしました。
ffftpを使用して、バイナリモードでのアップロードです。
その5.cgiファイルの属性変更
モジュール格納フォルダ直下にあるcgiファイルの属性をすべて755に変更いたしました。
その6.mt-check.cgiにアクセス
ブラウザにてmt-check.cgiにアクセスし、システムチェックを行いました。
その7.mt-check.cgiの削除
mt-check.cgiを削除いたしました。
その8.pluginの追加
トラックバックに関するプラグインmt-pingedentry.plを使用していたので、そのファイルをpluginsフォルダにアップロード。
その9.blogが正常動作していることの確認
手順としては以上です。
システムメニュー上のバージョンも3.33-jaになっていますし、とりあえずちゃんとアップグレードできたつもりですが、不具合がありましたらご連絡いただければ幸いです。
手順でまずい点がございましたらそれもご指摘いただけると嬉しいです。

最近、掛け算の話題とかActionScriptの話とか、堅い話ばかり書いていたので、どうでもよい話を書いてみます。
わたしにとってはそれほどどうでもよくないのですが、きっと皆さんにとっては最高にどうでもよい話なので……。
そろそろ今年も終わりです。
ついに師走です。
お坊さんではなくても師匠ではなくとも妙に急かされて走らずにはいられなくなってしまう季節です。
意味もなく学生時代のジャージを取り出してジョギングをしてしまう季節です。
なんとなく今年の締めくくりとして「自分の中の年間ビッグニュースベスト10」なんてのを作っていて、ベスト10に収まりきらずベスト12ぐらいになってしまう季節です。
ということで、わたしの今年のビッグニュースくだらない部門1位の話です。
確か10月だか11月だかにあった、くだらないけれどかなり感動した出来事です。
西部池袋線の某駅にて、エスカレータに乗っていたんですね。
上りのエスカレータです。
けっこう人が多い駅構内です。
で、エスカレータに乗った状態で足を上げようとしたら、上がらないんです。
左足です。
なんでだろう?
そう思って足元を見たら靴紐がエスカレータの段と段の間に挟まっていたんです。
ちょっと感動でした。だって、なんだかマンガにありがちなわりに現実にはなさそうなエピソードじゃないですか。
感動してその状態を携帯で写真にとりたいのですが、周りに人がたくさんいるし、そんな時間はないわけですよ。
早く紐を抜き取らないといけないわけです。
わたしの乗っている段がエスカレータの最上部に到達しました。
エスカレータに引き込まれて紙みたいにぺらぺらになった自分を思い描いたのですが、幸いなことに紐は挟まっているだけで、エスカレータを止めてその流れを遮ることはなかったです。
わたしはその場にしゃがみこんで、横を人が通過していく中、紐を抜こうとしてみました。
抜けません。引っ張っても無理です。
さて、どうしたものでしょう。
靴を脱いで捨てていくというのが一つのアイディアですが、裸足で帰るのはさすがに……。
それに、8月3日のblogにも書いたお気に入りの靴だから、そんなことは無理。
エスカレータの停止ボタンを押すのもあまりに周りに迷惑すぎるので……
引きちぎりました。
で、何事もなかったかのように去りました。
この記事の最初に載っている写真は左足の靴の紐の両端です。
片方がちぎれているのわかるかしら?
わたしの中ではかなり衝撃的な出来事でした。今年のビッグニュースくだらない部門第一位に文句なく推薦です。
人生のうちでエスカレータに靴紐が挟まるって、稀ですよね? もしかしたら死ぬまでないかもしれないんですよ。
皆様、エスカレータに乗る際には気をつけてくださいね!
ちなみにエスカレータが元々登録商標だったってご存知ですか?
一昨日、コンポーネントの拡大と縮小の説明の際に、拡大と縮小の一定ではない変化を実現するコードを記載しました。
その点についてちょっと詳しい説明です。
別にわたしが思いついたわけではないアイディアなので、わたしが偉そうに説明するものではないですが、応用が色々とききそうな考え方ですのでご紹介です。
たとえば、nowxという変数値が最初100で、それを0に近づけたいとします。
以下のコードはnowxを10ずつ0に近づけていきます。
実際はif文の処理はこのコードではちょうど0で止まるため必要ないです。
//コードここから
var nowx:Number = 100;//変数nowx
var nextx:Number = 0;//nowxの終値
var diffx:Number = 10;//nowxの変化値
//nowxをdiffxずつnextxに近づけるループ
for( ; nowx > nextx ; nowx -= diffx){
if(nowx < nextx)nowx = nextx;//nowxがnextxより小さくなった際にnextxに戻す
}
//コードここまで
前回の拡大縮小のコードでは、一定間隔の変化ではなく、変化値を減らしていきたかったため、以下のようなコードを使用しました。
if文の条件でnxtxに1をプラスしているのは、最後の方の細かい変化はただの負荷にしかならない場合が多いかと思ったからです(細かい変化を求める場合には不要かもしれないですね)。
//コードここから
var nowx:Number = 100;//変数nowx
var nextx:Number = 0;//nowxの終値
var diffx:Number = 2;//nowxの変化分
//nowxとnextxの差を1/diffxずつ狭めるループ
for( ; nowx > nextx ; nowx -= (nowx - nextx) / diffx){
if(nowx < nextx + 1)nowx = nextx;//nowxがnextx+1より小さくなった際にnextxに戻す
}
//コードここまで
上記のコードではnowxが
100
50
25
12.5
6.25
3.125
1.5625
0
というように変化します。nowxとnextxの差が半分ずつ(つまり1/diffxずつ)に縮まっていっているということです。
diffxの値を3にするとnowxの変化が
100
66.6666666666667
44.4444444444444
29.6296296296296
19.7530864197531
13.1687242798354
8.77914951989026
5.8527663465935
3.90184423106234
2.60122948737489
1.73415299158326
1.15610199438884
0
というように緩やかになります。差が1/3ずつになっているからです。
ありがちなのかどうかわからないですが、個人的によく使用するアルゴリズムです。
スクロールを表現するとき、見た目的に自然な減速になるので。

本日、デザインフェスタに行ってまいりました。あまり時間が取れなくてゆっくりとは見られなかったんですが、作品の一つ一つに込められている作者様の思いを感じ、たくさんの刺激を受けました。
目の当たりにした芸術の力、表現の力……きっと来訪者の一人一人が作者様の思いのすべてを汲み取ることはできないとしても、多く集まれば作者様の思い以上の気持ちを生み出せるのかな? なんて思ったりもしました。
青春Bとしてもいつの日にか出展してみたいなぁと考えています。
「こんなことをしたい」って思いはある程度あって、でも、それを実現するにはお金も実力もなにもかもまだ不足していて……。
次回は厳しいとしても一年後ぐらいにはなにかやらかしてみたいですね。
会場を回って、個人的に気になったクリエイター様のサイトを以下に挙げさせていただきます。
クリエイターリンク集掲載依頼も兼ねて近日中にメールも出してみようと考え中です。
- チバサトコ×ingectar-eさん
トップページリンク集にも掲載させていただいているチバサトコさんとingectar-eさんのコラボレーション展示でした。
チバサトコさん御本人様には会えなかったのが残念です。 - MARYCOさん
こちらもトップページリンク集にも掲載させていただいているMARYCOさん。Tシャツ等様々なグッズを販売されていました。
やはり残念ながらご本人様には会えませんでした~。 - ミヤモトヨシコさん
シンプルに優しいイラストがとても眩しくて、思わず足を止めてしまいました。ご本人様と話ができて嬉しかったです! - CNOさん
鮮やかなイラストがお気に入りです。ポストカード購入の際にご本人様と話ができて嬉しかったです。 - あヲいさん
どことなく懐かしい感じのするイラストがとても良かったです。 - おかべゆかさん
多くの色を鮮やかに使ったイラストが個性的でした。 - root7さん
青春Bにて写真を使用させていただいているうみのさんが参加のroot7、インパクトある展示でしたね。
この記事の最初の写真はroot7さんによるroot7タワーです(わたしが勝手に名づけました)。
次回は5月26日、27日、皆様、今から予定を空けておきましょう。
スクリプトなりプログラムなり、言語経験のある人には誰だって「会心のソース」みたいなものがあると思います。
美しい数式を見たときのような感動を覚える自らの生み出したソースです(過去に他の人がすでに思いついていることがほとんどだとしても)。
わたしはこれまでにいくつかの言語に触れてきました。Basic、VisualBasic、C、C++、Visual C++、Java、HTML、CSS、JavaScript……。
そんな学習の中で心震えたソースについて書いていってみようかななんて思いました。
自己満足が大半だとしても、人の役に立つことがけっこうあるかなとも考えましたので。
このblogにも書きましたが、ことしの夏~秋、MdN出版の「プロとして恥ずかしくないFlashの大原則」の執筆を行いました。全体の9ページではありますが。
自分の書いたソースが人の注目を集める形で世に出るということは、恐くて、でも、同時にすごく嬉しかったです。
その中でコンポーネントの拡大と縮小を取り上げました。
Flashではインスタンスにマウスカーソルが乗ったときにそれを察知するメソッドが用意されていますが、すべてのコンポーネントに対応しているわけではありません(わたしが知る限りはですが、そういう前提でソースを書きました)。
そこで、あらかじめコンポーネントのx座標とy座標を取得して、その位置にマウスカーソルが来たら拡大するというソースを書いてみました。
以下、そのソース(省略版)です。
form1というムービークリップ上にコンポーネントを乗せています。
各コンポーネントはcomp1~comp4というインスタンス名です。
//ソースここから
var compArray:Array = new Array();//コンポーネント格納配列
var compNumber:Number = 4;//コンポーネント数
var bigScale:Number = 150;//コンポーネント拡大時スケール(%)
var mcx:Number = form1._x;//ステージから見たformのx座標
var mcy:Number = form1._y;//ステージから見たformのy座標
//全コンポーネントの配列への格納とx座標y座標の取得
for(var i =1 ; i <= compNumber ; i++){
if(i <= compNumber1) compArray[i] = eval("form1.comp" + i);//配列への格納
compArray[i].nextScale = 100;//通常時は100、拡大時は150
compArray[i].x1 = compArray[i].x + mcx;
compArray[i].x2 = compArray[i].x + mcx + compArray[i].width * bigScale / 100;
compArray[i].y1 = compArray[i].y + mcy;
compArray[i].y2 = compArray[i].y + mcy + compArray[i].height * bigScale / 100;
}
//コンポーネント上にマウスが乗った際の拡大表示
_root.onEnterFrame = function():Void{
for(var i = 1 ; i <= compNumber ; i++){
if(_root._xmouse>compArray[i].x1 && _root._xmouse
compArray[i].nextScale = bigScale;//上にマウスがある場合はnextScaleを150にする
}
else{
compArray[i].nextScale = 100;//上にマウスがない場合はnextScaleを100にする
}
//表示スケールをnextScaleに近づけていく。差を2で割ることによって一定ではない拡大縮小を実現する
compArray[i].scaleX += (compArray[i].nextScale-compArray[i].scaleX) / 2;
compArray[i].scaleY += (compArray[i].nextScale-compArray[i].scaleY) / 2;
}
}
//ソースここまで
ソースは以上です。
自分では良いと思っていても人からすれば欠点だらけのソースかもしれないので、意見等いただけると嬉しいです。
Wikipedia ActionScript
Wikipedia プログラム言語
プロとして恥ずかしくないFlashの大原則 MdN出版該当ページ
プロとして恥ずかしくないFlashの大原則 Amazon該当ページ