2024年4月8日

怒る人の存在が不思議

先日スーパーで小さい豆腐が3つセットになってるの買ったんですけど、会計時レジでカゴからカゴへ移すときにバラバラになっちゃったんですよ

会計係がバラバラにしたんですけど別に中身に対しては全く影響なくて別にどうでも良かったんですけど、なんかこういうことに対してでも怒り狂う人って良そうだなって思いまして

多分冷静に考えればどうということもない出来事のはずで怒り狂う必要ないと思うのだけど少しでも想定外のことが発生するとそのことに対して過剰に反応してしまうのが怒りなのかなと

思い通りにいかないことに対して次の手を考えることができないから怒るしかないって言うか

怒り狂うことで想定通りの道筋に戻す選択肢しかないとするなら、それはいわゆる借金を積み重ねているようなものなんじゃないかな

想定通りいかないことなんて多々あるだろうに、そのたびイチイチ怒り狂うというのはその度に信用みたいなのを失い続けているんだろうなと

そのうち返済する時が訪れそう

2024年4月7日

日本国外でアーケードゲームの復刻が開発されていることについて

東亜プランのアーケードゲーム16タイトルだったかをせっせと現代に蘇らせている人たちが日本国外の北欧の人達だってのを目にしまして、なかなかさみしい話だなと言う感じですね

でも例えば自動車なんかでも日本で生まれたわけじゃなくて、でも日本は自動車大国になったってことからオリジナルと発展は違う場所で行われることもあるんだなってことなのかもしれないな

日本人にとっては珍しくもなんともなくて別にどうでもいいシューティングゲームとか北欧の人たちからみると欲しくてしかたがないものなのかもしれなくて、シューティングゲームのためなら苦労もいとわないってことなのかね

2024年4月6日

世の効率化について思うところ

みんな効率化って発言好きなんだけどさ、効率化って唱えると効率化してる気になってくるからなんだろうけど

現場の責任者が部下に向かって「お前ら効率化が重要だからな、効率化しろよ」って言って回ってる姿って会社辞めたくなる気が増すだけで会社にとってはマイナスしかない気がしますが

とりあえず「お前が効率化できてない」ってことなんですけど、今まで実際見てきた効率化の様子を例えるなら「マウスとキーボードを実際に動かす機械をわざわざ作ってる」感じするんだよな

モニタとにらめっこして仕事してる雰囲気出してるのに必死な人達が沢山いらっしゃるんだけど、あれやってる人達ってコンピュータが紙の代わりにしかなってないんだよな

あの辺の人達を一掃することができたら真の効率化が実現できるのかもしれませんね

2020年5月13日

会社の飲み会について2020年版

って言っても別に先日の実際の出来事なんですけどね

まったく興味がない話を延々聞かされるわけよ
キャバ嬢は給料もらえるからまったく興味がない話題も少しは聞いてられるけど、会社の飲み会の場合はこっちがお金払うわけだからね
お金払って全く興味ない面白くもなんともない話を聞かされるって加害者は実刑でもいいのではないかと思うのだけど
FXの極意とかパチンコの歴史(話主の青春時代限定)とか金払って聞くってバカなんじゃないのかと思うんだけど
そんで飲みたくもないクソマズイアルコール飲まされてさ
本当に馬鹿馬鹿しいなんて生易しいレベルじゃなくてせっかく産んでくれた母親に申し訳ない気持ちでいっぱいです

あと飲み会とちょっと話がずれるけど、なんで湿気った会社の代表者って自分の会社で働けることが楽しいと思ってるのかね
いや、本当に面白くもなんともないのだけどさ
会社に仕事しに行くなんて苦痛100%で構成されてるんだけどな
それ以外の要素がないんだけど
あなたは好き勝手やって楽しいと思うんだよね
でもこっちは苦痛100%

いちいち手入力してるプログラミングのなんて非効率なことか

キーボード押していちいちプログラムを入力してる人達がいるんだけどなんて非効率なことしてるんだろうかね

人間が入力したものなんて遅いし間違いだらけだしでいいことなんてなんもないのにね

うちの会社なんて非効率な働き方してると賞賛にあたいするわけで社内で競争だもんね
誰が一番非効率な働き方ができるか
非効率であればあるほど、間違えれば間違えるほどに褒められる

逆に早く仕事を終わらせると怒鳴られるしアホだバカだ言われる始末なわけでさ

さらに早く変えると罰としてコップを洗うとか気が違ってるのではと思うほどだもんな

システム開発なんて簡単なのにさ、みんな一体なにやってるのか不思議で仕方がないのだけど

本当にバカバカしくて仕方がないから早く辞めたいですね

2019年11月14日

仕事の効率化とかそういう話について

仕事が簡単になるか担当する当人の能力を上げるかしか方法がないような気がするのだが


現状のこの悲惨な現場をなんとかするには仕事の難易度を下げて能力が低い人でもまっとうできるようにするか、難易度はそのままで割り当てた人の能力を上げてまっとうできるようにするかしかないと思うんだけど


できない人に無理やり仕事押し付けてもさ、結局できないか不具合だらけになっちゃうわけで


「この仕事はお前が受け持て」と命令すれば誰でもできるわけじゃないと思うのだけどね


やっぱりphp程度がやっとできる、C#なんて逆立ちしてもできないような人達には無理な話なんじゃないかなと思うんだけどね


今の仕事は激しく楽で簡単であくびが出て毎日会社で暇だから良いのだけどさ
つまらないのは圧倒的につまらないよね


毎日定時までどうやって時間を潰すか悩ましいのだけど

2019年10月9日

C#のローカルで関数定義の冗長さについて

C#でローカル関数を定義してそれを再帰的に呼び出したい場合

var f = new Func<int, int, int>((acc, i)=>
{
    if(i == 10)
    {
        return acc;
    }
    else
     {
          return f(acc + i, i + 1);
     }
});
とかやりたい場合、これではコンパイルエラーなので一旦fがあるよってことを示すためだけに
var f = new Func<int, int, int>((acc, i) => 0);
みたいなのを一旦宣言してから再度本物の関数を記述してるのだけどこれがとんでもなく煩雑な気がするのだけどどうするのかね
Aggregateって案はもちろんなしで
なんか便利な方法しってる人は教えてほしいな

2019年9月24日

普通に仕事がしたい

普通の会社で普通に働くって難しいんだな


普通に仕事するだけでいいのに


なんで余計なことばっかりあるのだろうか


仕事が遅れる人の存在によって雑用がどんどん増えていくのだけどこれは仕方がないことなのだろうか


ただ一点だけ潰れなければどうでもいいんだけどさ


これだけ変なことばかりやってて先行きが不安で仕方がないのだが


こんな状況で下手に潰れられてもこっちとしても困っちゃうんだけど

2019年8月18日

いままで数社に勤めたことが有る身として

これほど会社と言うものを言い表した言葉に出会ったことがなかったので


無茶な仕事を命じられ、論理的に反論することなど決して許されず、「お茶を濁す仕事」に自分の人生の時間を投入し続け、人に迷惑をかけてることには目をつぶるしかない


日本の会社においては8割はこんな感じの状況なんじゃないのかな

2019年2月17日

企業における教育の弊害

新卒採用とか仕事できない人を雇うの止めたほうがいいと常々思うんだけどその理由とか考えたので

お金がもったいない
当然、企業の資本は有限なので予算配分はとても重要
仕事ができる人を集めたかったら企業として教育制度がないことをアピールすると良いと思うんだけど
教育制度に予算を割かず、その分報酬として還元しているとすればいいだけ


採用してる側もその分給料を上げづらい
教育が必要な前提で給料テーブルを決定しているとどうしても給料の上昇が遅れるので
って言うか経年で給料が増えるってどういうことなの?
日本も必要な分だけ必要な人に働いてもらうって言うことになればいいのに
個人が組織に縛られる人生なんておかしいでしょ
そんなのは一部の人だけでよくて他はそれこそ流動的でいいんじゃないのかと思うんだけど、でも組織に身を捧げることによって得られる保証が抗いがたいんだろうな、日本国が健康で文化的な生活を保証してるはずなんだけどね


時間がかかる
今どきの商売なんて早さ勝負なわけでイチイチ教育してできるのを待っているなんてありえない
普通に最初からできる人雇って仕事割り当てればいいだけの話なんだけどな
そんな簡単なことわからないのかな


賭け事なんてするべきじゃない
まともな企業はそんな無謀な賭け事をするべきじゃない
新卒採用して数年教育するとすると
三年想定で毎年500万円ってことは数千万円必要な訳でさ、そんでまさかものにならないなんて酷い話はありえないでしょ
俺ならこんな馬鹿な賭け事しないわ
仮に三年教育してものになったとしても三年の時間と数千万円は必要になるわけだしね
だったら最初から普通にできる人雇えばそれで済む話でさもう本当に考えられないんだけど


最後に今までの体験談なんだけど、いわゆる若い人を教育が必要な人を雇ってさ、そいつに雑用とかやらせてるんだけどこれがそもそもアホらしいと言うかなんて言うか非効率極まりないと思うんだけど
雑用は雑用専門の人を安い給料で雇うべきでその若人は一日でも早く一人前になるべきでそのためにも雑用なんてやってる場合じゃないわけよ
電話番のために横に座ってて仕事ができるようになるわけじゃないから
まったく何も向上しないし好転しないからって当たり前なんだけどさ
お茶出しとかさせる暇があったらその分まともな仕事させて早く仕事できるようになってもらったほうがお互いのためにもいいと思うんだけどね
本当にこういうことやってる会社ってアホじゃないかなと思うわけよ
お前と違ってこっちは別に暇じゃないんだよ
なぜそうなるのか全然わからないのだけどあの空間で過ごすと自然と仕事ができるようになるとでも言うのだろうか
「あの空間でお茶出しやら電話番やらすること」が一体何に作用するのか全く不明なんだけど
そんなもんお茶が出せるようになったり電話番ができるようになるだけな気がするんだけどね
他の能力は一切伸びない気がするんだけど、気のせいなのかな
俺には分かんないな

2019年2月14日

保険とか健康保険とかガン保険とかそういうもの

日本人って憲法で文化的な最低限度の生活が保証されているわけでさ、だったら保険とか入ることってなんなの?って話なんだけど
日本国があてにならんと言いたいわけなのか
例えば身体が不自由になってしまったとして、例えば半身不随とかで
そうした場合、当然働けないわけなんだけどそうなったら普通に考えると日本国が文化的な最低限度の生活を保証してくれるわけで、そうなると保険とか入る意味がよくわからんのだけど
加入しなくてもよくね?

最後に本当に鬱陶しいと思うのがこういうことを言うと財源がどうのとか言ってくるヤツいるんだけどさ、本当に鬱陶しいんだけど財源とかひっくるめて実現の方法を考えるために公務員とか国会議員とかいるんだけどね
こういうこと言ってくる人ってなんか人のことを蔑んで俺様頭良い〜って悦に入りたいんだろうな、きっと

2019年2月1日

企業における評価方法について

企業って言うか、組織って言うかそんな集団での評価方法について
結局のところ給料ってことでいいと思うんだけどさ、どこの会社か知らなけどとんでもなくしょうもない評価方法を採用しててさ、辟易しちゃうんだけどね
あしたのチームとか言う訳わかんない詐欺集団の提供する方法を採用しちゃってるもんだから参った
本当に会社全体で詐欺に遭ってるようなもんでさ、社長も付き合いとか色々で大変なんだろうけどさこんな変なものに付き合わされて大変なんだろうなと同情したくなるような仕組みで終わってるんだけど
評価基準って普通にどれだけ貢献したかだけで十分だと思うんだけどそれじゃダメらしい、意味わからん
とにかくアピールが重要だと言いたいらしいんだけど、実際そうたいして役に立ってないとしてもなんかやってる感じを出せることがとても重要らしいんだけど、実際やってみて感じるのはなんて言うか実行できない残念な人のためにあるって感じかな
普通になんだかんだでなにかできる人にとっては別のどうでもいいのだけど、能力とか低くてなんもできない人でもなんかやったことにできると言うか見かけだけ取り繕えると言うかそんな制度で本当にこの方法を採用する価値が全く感じられないもう完全に邪魔なだけでこの何の役に立つかわからんものに支払っているお金を普通に配ったほうがいいんじゃないのかとしか思えないんだけどさ

評価方法がわからない悩める経営者にとって朗報みたいな感じなんだけど、評価方法がわからん時点で相当経営者に向いていないから辞めてほしいところではあるんだけどね
だってさ、ある人の行動や成果などが自分の会社にどれだけ役に立っているかわからんって言ってるわけだからね
こんなに酷い話はそんなにないような気がするんだけど
って言うかさ、もし仮にこの評価方法が画期的で会社の発展に大きく貢献するんだったらこのあしたのチームって言う会社はなんでこんなにショボイんだっての
もうさ、それこそ何て言うかマイクロソフトなんて全然目じゃなくてグーグルなんて軽く凌げるような組織になっててもらわないとって思うんだけどね
もしかして遠慮してるのか?
だったらそんな必要全くないからどんどんやってくれって感じなんだけど

2019年1月20日

企業の採用活動について

まず一言「企業はもっと採用に予算を割くべき」
何社か働いて本当にそう感じる
採用後に施す教育によって伸びる可能性はほぼないかな
結局採用時点、面接時点で未来は決まっていると思うんだけど
だったら教育なんかに予算を使わないで採用とか、他の福利厚生だったり劣悪な労働環境だったり給与や賞与に反映させたほうが絶対有意義だと思う


エクセルのマクロしかできない人をシステム開発とかで採用しちゃうと大変なことになると思うんだよ
って言うか、このエクセルのマクロ程度しかできなくて、でも現代は色々なところから適当なプログラムをダウンロードして、例えばJavaScriptなんかでなにかしら作れたりするから別に普通にできるんじゃないの?と勘違いしちゃってると思う人の存在が相当罪深いと思うのだけど
こういう人の言い分としては「散々な目に遭った」「酷く過酷な仕事を押し付けられて精神的に追い込まれて病気になった」「夜中泣きながら仕事した」「仲間はずれにされた」とかそんなこと言うことになると思うのだけど
働かせる側を擁護するつもりはないけど仕事割り当てる側としてもできるだけまっとうできそうな人に割り当てたいんだけどね
エクセルマクロしかできない人に仕事させたくないっつうの
だったら別に俺がやってもいいよ、そのほうが圧倒的に楽だしさ


今の時代新卒大学生を採用することすら相当なリスクを抱えてると思うね
新卒と言うことで費用かけて教育とかするのだけど、その人が役に立つ人材になる可能性が運だし、辞めちゃうかもしれないしさ
教育コスト費やすに値する対価を得られそうにない
相当な無理ゲー
だったら新卒とかどうでもいいから普通に出来る人雇えばいいのに
そうすればいきなり役に立つ上に教育コストも必要ないし、別に辞めちゃっても普通に働いてもらえて別に損害も無いしさ
新卒採用って相当なリスクがあってこんなものそのへんの中小企業が手を出すもんじゃないよな
新卒学生一年教育で雇うなんてヘタしたら1千万円とか必要になったりしないか?
そこまでいかないか、そこまでいかないにしてもさ、新入りを電話番とかお茶くみとして使うのはもう完全に止めたほうがいいよね
そんなもんパートのおばちゃんとか雇えば終わりで終了な気がするのだけど


だから採用する企業側に安全弁が必要になるんだけど
まあだからその分採用コストも上がるって寸法なわけで
募集に対する応募はそれなりにあるのかもしれないけど最低限の条件を超えた人がどれくらいいるのかが問題のような気もするし


多分
・人事
・管理者
・被採用者
三者で言い分が異なるわけよね
人事としては役に立つ人を採用できたといいたいわけよ
だけど現場からしたらエクセルマクロしかできない人に仕事はさせられないってことで別に頭数が増えただけで手間は全然減ってない、逆に増えてるくらいだと
んで、被採用者にしてみたら酷い目にあったので精神的に病気になった
ってなるわけでさ、こうなると一番効率的なのは人事で篩をかけることがやっぱり一番効率的だと思うんだけどね
エクセルマクロしかできなくても華々しくシステム開発で活躍する夢を見ることは勝手だしさ、プログラムとかチョロいって思うのも勝手なんだけどね

2018年11月9日

コーディング規約と言う名の

会社でソースコードの書き方、あるいはルール的なものを決めるとかなんとか言ってるんだけどこの内容が本当にこれこそ噴飯ものと言う表現に相応しいような内容で呆れてるんだけどさ

ただでさえ酷いのに、さらにそれなりに残業しないと終わらないって言うのにそんな何の役に立つのかさっぱりわかんないものを策定するために時間を使ってると言うのが笑えるんだけど

インデントとかのルールを決めるとなにがどうなって品質が向上すると言うのか想像できないんだけどさ

コンパイラって普通にインデントとか無視するんだけどねと思ったりそんな程度のことをあーだこーだと議論してるって言うのがよく分からんのだが
だったら多態性とかについて勉強したほうがよっぽど実になるんじゃないかと思うんだけどさ

あとさ、弊社の取り組みとしてこんな規約を採用してるって言うとどうなると思ってるんだろうか

普通にできる人は面倒なことがある会社だって言うことで避けるんじゃないのかと

って言うかよく分からんルールがあるとソースコードが読みやすくなるらしいんだけど、何て言うか厳密にルールに従っていないと理解できないとかなんか意味がさっぱりわかんないこと言われてるんだけどさ、会社なんだからそういう人を雇わないでおけばいいだけじゃないかと思わないでもないしそういう人に合わせるのは退屈極まりないからなるべくなら避けたいんだけどどうしようかな

2017年12月13日

self.redirectに全角を渡す場合

Google App Engine
webapp2のredirectについて
Pythonの場合


webapp2.recirectはstrを受け付ける

unicodeは受け付けない

unicodeを渡す場合はunicodeをutf-8でエンコードしてurlエスケープしてformatに渡して出来上がったものをwebapp2.redirectに渡す




aa = u'あ'
(aaはunicode)
self.redirect('{0}'.format(urllib.quote(aa.encode('utf-8'))))



参考
webapp2.request.get()
<type 'unicode'>

type(u'あ')
<type 'unicode'>

type('あ')
<type 'str'>

type(u'あ'.encode('utf-8'))
<type 'str'>

2017年6月1日

変数を箱と言わないで表現すると

別名が付けられるかな
例えば3.1415926じゃなくてpiと呼べるとか
寿限無寿限無じゃなくてaと呼べるというか


common lispみたいなレキシカルスコープだとなんかこんな感じが強い


変数は箱って言うのはノイマン型コンピュータのアーキテクチャと密接につながった概念だと思うな
だからコンピュータアーキテクチャを説明したい場合は有利なのかもしれないけど、JavaScriptの解説には不向きな気がするよね
時代が時代なだけにJavaScriptを軽く身につけたいって言う人もいると思うんで、そういう人に対して変数が箱って言うのはやっぱり少々わかりにくい気がする

特に変数が箱と言う説明が向いていないのがGCがある環境の場合
GCがある場合とか、JavaScriptみたいにリソースとかもあんまり考えなくても良い場合なんて特に箱は向いていなくて別名でいいんじゃないかなと思う

2016年11月28日

codeiqの広告

頻繁に表示されるcodeiqの広告についてなんですけど
なんかphpとか言うクズ言語のソースが10行程度表示されてましてこれ実行するとどうなるかだってさ
ってかさ、これってphpとか言うクズ言語が使えるかどうかなわけじゃないですか
それって必要なんですかね
そのあたりがイマイチ理解できないところなんですよね
世の中として求められているものがphpとか言うクズ言語の言語仕様を把握しているかどうかってことなわけでさ、それって求職者に対して望むべき能力なんですかね
と言うか、この質問に対していわゆるドヤ顔で鼻息荒く答えはなになにですって答えられたとしたらですけど、そんな人採用対象として失格じゃないでしょうか
ってか、失格対象としますけどね、って思うんだけど

2016年11月9日

センスについて

「プログラムはセンスで書く。インスピレーションで書く。」とか「根性で書く」や「おまじない」等の様な対話について思うこと
こういうことを言う人は、相手に対して説明できるような能力を有していないと言うこと
いわゆる職人とか言われているような集団において、技を盗めだとかそういうことを言うのも近いものがある
要は説明できない、相手が理解できるような説明をすることができないので、やれ「根性」だ「盗め」だ言いたがる、挙句「おまじない」だってさ
自分が好んで参考にする書籍でこのような表現を使っているものが皆無であることの理由は、それら書籍の著者はプログラムについて深い理解をし、それを相手に伝えることができる能力を有しているから
それら書籍においては決して「センス」やら「インスピレーション」やら「根性」なんて単語は登場しない
もし仮に現在「根性」や「おまじない」なんて言ってお茶を濁しているのだったら、それはそのことについて理解が不足している証拠を提示していることにほかならない
その場合は素直に「分からない」「知らない」と言ったほうがより好意的に受け取ってもらえると思う
そこでお互い、説明能力の有無の是非については不問にするとより良いと思うのだが質問時の場合、質問者と回答者の立場の違いによりなかなかそういうわけにもいかないのが問題
質問者が回答者に対して説明能力が無いと正確に認識してくれればいいのだけど、質問者が回答者に対して能力が無いと評価するのが問題になる
いわゆるプログラムの能力の有無と説明能力の有無を切り離せることが必要なのだけど、能力があると当然説明能力も有していることになるところがマズイんだよね
あと、たまに素人に対してあいつは説明能力を有していると勘違いされてさ、肝心のプログラムの能力が乏しい場合があるのがこれまた問題なんじゃないかなと
       |1|2|3|4
プログラム能力|x|x|o|o
説明能力   |x|o|x|o
だから4はもう本当に問題ない
多分次にいいのが3で最悪なのが2なんじゃないのかな1はもともと範囲外だからね
って言うか2ってどんな人物のことなのか具体的に思いつかないけど、多分ああいう人のことなんだろうな

2016年10月4日

実践common lisp第24章

一気に難易度上昇、跳ね上がりましたね、これは
やっぱりマクロが登場すると次元が一つ上がると言うか、はっきり言って訳分からんのじゃないかなと
プログラムを生成するプログラムを作ると言うことがこれほどまでに難易度が高いとは
抽象度を上げるということはこういうことなんだと言うことで、抽象度を上げるためにはこういうことをやることになると言うか
一つ一つの関数単位と言うか、各部分は別に難しいことをやっているわけでもなんでもないのだけど、アルゴリズムとかデータ構造が難しいわけでもなんでもないのだけど、一体なにをやっているのかわかりにくいったらありゃしない、のは当然そうなわけなんだけど

ここでやってることって、敢えて類似で例を上げるとするならいわゆるO/Rマッパーを作っていることになるんじゃないかなと
データベースの定義がまあなんかあるとして、仕様書でもなんでもいいのだけど、主キーがなんとかidとかでタイトルと日付とあれやこれやとカラムがあるとして、そのデータを元にO/RのOのソースコードを自動で書かせようって魂胆なんだろうな
O/RのOを作る場合、なんとかidが64bit整数で、タイトルがvarchar(256)で日付があって本文は文字数制限が無いタイプだと言うクラスを作りたいとすると、具体的にC#だとこんな感じのコードを書くことになるのだけど
class BlogRow
{
private long id;
private string title;
private DateTime date;
private string body;

public long ID
{
get { return id;}
set {id = value;}
}
// title,date,bodyに関しても同じようにプロパティを用意すること
}
これを
(define-or-mapper BlogRow (long id) (string title 256) (DateTime date) (string body))
みたいなものから生成させようって言う魂胆ね
このデータベースの定義からソースコードを生成するために必要なものって、このデータベースの定義をパースする処理っていうのが一番骨が折れるところで、それを自動でコンピュータにやらせようってなるとまあこうなっちゃうんだよね
さらに、C#で例を作ったんでC#の話になると、多分C#のO/Rマッパーって動的に生成されると言うか実行時にこういったものを生成しようとすることになるものが多いんじゃないかな
キャストとか、型情報を取り出して、動的に分岐させてOへ変換するって言うか
さらにtitleは256だから、あるストリーム(データベースじゃないけど)から256読み込むみたいな処理まで作ろうとしているのかな
setがストリームを引数として受け取ってtitle = is.read(256)みたいなソースコード生成しようとしてるんじゃないのかな
そこで問題になるのがC#のソースコードを自動で生成するのはちょっと骨が折れるんだよね、でもCommon Lispなら全然難しいことじゃないって言うことがここでは言いたいのだろう
C#と全然違うけど、多分wordpressとかphpとかそういう界隈で提供されているようなものってまあそういうことになってると思うのだけど、そうなるとどうしても実行時に遅くなったり、いちいちコードを書いたものと比べると色々と見劣りするものになっちゃうのだけど、Common Lispの場合はそういうのをコンパイル時に生成してしまおうってことで、こういうややこしいものを作ることによって、実行時のコストを下げることができる
なんでこんなにもややこしいことをするかって言うと、実行時のコストを犠牲にしないで、でも必要な情報はなるべく少なく記述したい、コピペするとかもってのほかで、データベースの情報からあたかもいちいち手でコードを書いたようにしたいと
今回はこれ一つしか利用しないけど、毎日毎日データベースで、テーブル作って、それを読み書きするコードを書いて、表示させて、登録してって言うことをやるんだったら、こうやってソースコードを生成することができるプログラムを作ることによって毎日の作業を軽減することができるというわけで、とてもじゃないけど常人には理解しがたいものでこんなもん説明されたらいやになっちゃうよね
って言うことがここで行われている
ここで実際にやっていることは、いろいろなフォーマットのファイルに柔軟に対応したオブジェクトマッパーの生成プログラムのことについてであって、ここで問題になっているID3ファイルに対してはさっぱり取り上げられていないところを勘違いすると大変なことになる、なりました、はい
そんで多分次章では、ここで作ったマクロを利用してID3ファイルの読み書きを実際に行うことになるんじゃないかなと思います

2016年9月29日

実践common lisp第23章

intern-feature関数内でのorの使い方は良く登場する
orは論理演算なのだけど、一つ目がnilの場合は二つ目が実行されるって言うのを利用するためにorでやっているので別にifでもいい
個人的にはこれはあんまり好きじゃないので素直にunlessを使うほうがよさそうだと思っている
Pythonは実現方法は一つと言う方針だけど、Common Lispは実現方法は複数あるとでも言いましょうか

clear-database内のsetfに複数の引数を渡して一括で初期化するのもCommon Lispっぽい
可変長引数と言うか、たまにこういうふうになっているのを見かける

ここでのプログラムは相当細かいものまで分割して実装されている
実際ここまで細かく分割する必要があるかと言う話なのだけど、Common Lispではこれくらい細かくてもいいんじゃないかなって思ってます
特にincrement-countは非常に細かい
けど、この注釈にも記述があるとおり、別のデータ型を定義してincrementの方法を用意したい場合にこの記述が生きてくる
って言うのが拡張性とかそういうことに繋がってくるのだけど、このあたりの話はリファクタリングともかぶってくるので
つまり、拡張するためには現在defunで定義してあるincrement-countをdefmethodにして、さらにdefclassで別のデータ型を作ってって言う作業が必要になると言うことでも十分拡張可能なプログラムになっている

CL-PPCREを利用するメモ
http://weitz.de/cl-ppcre/
上記ページによると
(ql:quickload :cl-ppcre)
らしいので先ずQuicklispと言うものをインストールすると良さそう

https://www.quicklisp.org/beta/
上記ページによるとquicklisp.lispをダウンロードしてインストールするようだ
ちなみにファイルを入手後はCommon Lispのなんか(quicklispページではSBCLを利用していた)を起動してインストールする
その後、コマンドラインから
(load "~/quicklisp/setup.lisp")
とするとquicklispが利用可能になるので、その後cl-ppcreを読みこめば無事利用可能になる