2007-05-1720070517
■ [かんがえメモ]ペッパーランチ暴行事件の反応から

まぁこんな替え歌作ってる人間がいうのもなんだけど,昨日報道された事件が非常に盛り上がっている。
で,思ったのが,この事件の感想で,「ペッパーランチという企業全体がいかん,〔全部?〕廃業しろ」とかいう意見がでていること。(上記のYahooグルメの「クチコミ」で昨日そういう意見が結構書き込まれていたが,いま見たら大部分消えてた)
むろんこの犯人の行為は当然罰するべきだが,なんでこの心斎橋店以外のほかの店や,企業全体まで責が及ぶのか,よくわからない。上層部からこのような事件を起こすような指令とかが出ていたんならともかく(そんな企業があるとはとても考えられないが),この店長らが独断でやったことだろう。なんで他の店とかも廃業しなければいけないのか。仮に全部の店が廃業したなんて場合,店員やアルバイトの雇用はどうなる。他の店の店員らに責任はないだろうに
(おそらくヒステリックに反応してるんだろうが)
2007-04-0720070407
2007-03-3020070330
■ [かんがえメモ][プログラム]いま(嫌々)Perlを勉強中なのですが

……どうもこの言語の文法とかって自分のいままでの言語遍歴(C->C++(VisualC++MFCも少し)->Java)の各言語の性質と勝手が違うせいか,難しい。
(ちなみに,仕事のためではなく,今度受けるテクニカルエンジニア(情報セキュリティ)試験のため。)
教材は昨日購入した「新版 Perl言語プログラミングレッスン入門編」(結城 浩氏著,ソフトバンククリエイティブ)を使用している。この本自体はさすが結城氏のご著書だけあって平易でいいんだけど,言語の文法がどうも。以下,気になる点やら不満やらを,メモとして箇条書き。
(なお,Javaを勉強したときも結城氏の「Java言語プログラミングレッスン(旧版)」を最初に使っていた。前掲書は現在3章まで読了)
(1)なんで変数名の前に$をつけにゃならんのか
これはPHP(以前,少し勉強した)にもいえるのだけど,なんで変数名の前に$をつけないといかんのか。押しにくいんですよ。$って(自分は普通の人より手が小さく,指が短いため,$をタイプするために左手の小指で左側shiftを押さえながら,左手の人差し指で「4」のキーを押すのが結構つらかったりする。また,左手でshift+右手で「4」は,普段キーボードの右側に位置している右手を移動する位置が大きいので,これもちょっと時間がかかる)。
あと,配列の前に@をつけないといけないとかいうらしいのですが,これも…(まだ前掲書の配列の章までいってないが)
(2)なんでelsifなのか
条件分岐は比較的C等と近い記述で書けるようだけど,if {~} else if {~} …じゃなくて if {~} elsif {~} なのが……(Cなどの記述と違うのでややこしい)。最初,前掲書のサンプルコード見たとき「誤植か」と思ったが,"elsif"が正しいって書いてあって……
(3)演算子
and, or, not, eq, ne, lt…とかの比較演算子が(ry
(4)文字列連結
これもPHPにもいえるのだけど,文字列連結の演算子が"+"ではなく"."というのが…(Cなどで,"+"は文字列連結,"."は構造体等のメンバ参照か小数点というふうに認識しきっているせいで困る)
まえ,PHPでつい,Javaなどのノリで
$dt = $test + " is a " + $xxx + " .\n";
とかいうコードを書いてしまい,なぜ連結できないのかえらい長い間悩んだことがある……
よいと思った点
よいと思った点も。
(1)if文の記法 … if文の中身の文が一つだけでも必ず{}で囲うことが必要な点(Cなどでは省略可能,前掲書47ページ)。これはif文などの影響範囲を明示するためのわかりやすい規則だと思う(自分も,Cなどでもかならず書くようにしている)。
(2)標準入出力が簡単
1行入力が my $a = <STDIN>; でいいってやつ(これがJavaだと,1行入力するだけで(略))
自分でもプログラムを書いた
前掲書のサンプルは,(まだ最初の方の章だから)読んだだけで意味がわかるのが多いので,自分でプログラムを書いて動かしてみた(以下)。
use strict; use warnings; #入力 my $mess = <STDIN>; if( index( $mess, "ウホッ" ) == 0 ) { print "やらないか\n"; } if( index( $mess, "アッー!" ) != -1 ) { print "しゃぶれよ\n"; }
use strict; use warnings; #入力 my $mess = <STDIN>; if( index( $mess, "ウホッ" ) != -1 ) { print "やらないか\n"; } elsif( index( $mess, "好きです" ) != -1 ) { #elseifじゃないんかい print "うれしいこと言ってくれるじゃないの\n"; } else { print "お前オレのケツの中で(ry\n"; }
(……って,最初に書いたプログラムがこんなのか)
2007-03-2020070320
■ [かんがえメモ]井原西鶴の2万句のエピソードってウソ臭くないか

江戸時代の小説家・俳人の井原西鶴の有名なエピソードとして,42歳だかのときに1日で2万以上の句をつくって「二万翁」と呼ばれた,というのがあるのだが,これってウソ臭くないか。
西山宗因に師事して談林派の俳諧を学んだ。奔放で機知に富んだ句を詠む談林派でも、自由奔放な作品を作り「オランダ西鶴」と呼ばれた。また当時流行した、連続で多くの句を作る「矢数俳諧(大矢数)」の分野でも活躍し、一昼夜に2万3500句を詠む多数吟の最高記録を打ち立てた。句自体の記録は残っていない。
http://ja.wikipedia.org/wiki/%E4%BA%95%E5%8E%9F%E8%A5%BF%E9%B6%B4
仮に1昼夜=1日と考えると,1日=24時間=86400秒
86400秒/23500句=3.6765957446808510638297872340426=約3.7秒/句
つまり,1句詠むのにおよそ3.7秒以内で詠まなければならないのだが,3.7秒って計ってみればわかるけどあっというまですよ。こんな早く句が作れるわけがない。
(「あああああ あああああああ あああああ」とかいうのも俳句とする,というルールがあれば可能かもしれないが)
仮に可能だったとしても,それをどうやって記録しておいたんだ。当時は鉛筆もメモ用紙もないから筆かなんかで書くしかなかっただろうが,それで2万句も書けるか! 上記引用の「句自体の記録は残っていない。」っていうことからも,このエピソードはどうも怪しい。
2007-03-0920070309
■ [CMネタ][かんがえメモ]なぜ注意系CMはこわいのか

以前,話題になったナショナルのCM(あの,一酸化炭素中毒で危険だってやつで,ナレーションだけがずっと流れるやつ)もそうだけど,さいきん朝やってる「リンナイ」や「ヨドコウ(http://www.yodoko.co.jp/ )」のCMもこわかった。
その理由はまだわからないのですが,おそらく,「BGMがないから」じゃないか,と思う。ふつうのCMはナレーションとか台詞の背後になんかBGMが流れるんだけど,それがないから違和感があるのでは(あと,あのナレーションの口調も問題だが)
2007-03-0820070308
■ [かんがえメモ]インド式教育とやらがあるらしいのですが

いま,テレビの6chで「インド式教育」をやってる学校(塾?途中からちょっとみただけなのでよくわからないが)が特集されていて,「1日30分授業を9時限分」,「休み時間が,おやつタイムと30分の昼休み以外ない」とか,「うちのカリキュラムにはゆとりという概念がない」とか,「九九をたくさん暗記する」とかいう教育の方法で,これで学力をアップさせるとかいわれていたのだが,
(-_-;;) .。O(そんな教育だと頭いい子と落ちこぼれの格差がますます広がるだけなんじゃないか??)
と思った
(それとも,それが狙いなのか。でも,小学校低学年ぐらいの子達だったのに……)
2006-12-1820061218
■ [かんがえメモ]Javaでのプログラム

(今回の記事はプログラム知らんひとにはわからないと思う)
Javaでクラスのオブジェクトを使用するときは
class AbeTakakazu { public static void main( String[] args ) { String s = new String(); } }
などというふうに,【クラス名】 【変数名】 = new 【クラス名】(…);
とかやるんだけど,どうもこれって同じクラス名を2回も書かなあかんのが面倒で……
Stringぐらいならまだしも,これが
import java.util.ArrayList; class MichishitaMasaki { public static void main( String[] args ) { ArrayList<String> ar = new ArrayList<String>(); // JavaSE5.0以降 } }
なんてふうに長いクラス名になると2個目(右側)のを打つのは面倒だし,かといってコピペするためにカーソルをいちいち行頭にもってって(またはマウスでカーソルを移動して)ドラッグ→コピーとかってのも,左側のクラス名が長いと面倒になりがちではないか,と思うのだが。
Java3Dとかだと,
// Java3D用のimportは面倒なので略 class YamakawaJyunnichi { public static void main( String[] args ) { KBRotPosScaleSplinePathInterpolator kb = new KBRotPosScaleSplinePathInterpolator(/*略*/); } }
なんてのがあるんですよ奥さん!
(わざと自作したのではなく,公式のライブラリに本当にこういうのがある → http://download.java.net/media/java3d/javadoc/1.5.0/com/sun/j3d/utils/behaviors/interpolators/KBRotPosScaleSplinePathInterpolator.html)
で,
ABC a = new ABC();
とかいうふうに,変数の型のクラス名とnew以降のクラス名が同じ場合は,
ABC a = new();
とかいう省略記法がOKになれば楽になるのに,と考えた
HashMap<String,List<Map<String,List<Integer>> m = new(); ??
Map<String,List<Integer>> m = new Hashmap(); ??
ありがとうございます