okkyの日記: 『倉廩満ちて礼節を知り、衣食足りて栄辱を知る』管仲
衣服が揃ってる程度では「勝った負けた」しか判らん、貯金ができてやっと礼儀が判る、の意。
と捉えると、毎年、成人の日にケッタイな格好で暴れるガキどもの行動が実にすんなりと説明がつく。
ようするに「衣食足りて礼節を知る」と省略しちゃった奴が間違ってるんだよ、と。
okkyさんのトモダチの日記、みんなの日記も見てね。 アカウントを作成して、スラッシュドットのモデレーションと日記の輪に参加しよう。
衣服が揃ってる程度では「勝った負けた」しか判らん、貯金ができてやっと礼儀が判る、の意。
と捉えると、毎年、成人の日にケッタイな格好で暴れるガキどもの行動が実にすんなりと説明がつく。
ようするに「衣食足りて礼節を知る」と省略しちゃった奴が間違ってるんだよ、と。
思わず笑いながら同情してしまった。「あの会社の弱点を明確に指摘する本」という観点からするなら、満点に近いわ~(なんかものすごい毒を吐いてる…)。一番遠いポイントにいたはずの私ですら、そう感じたんだもの。
ただし、立ち上がりがあまりにもローカルなネタなのに、そこに引きこまれたから一気に読んだのだ、という辺りに、この本最大の弱さを見た。確かにこの辺りに住んでいる人たちが学習しなくちゃいけないことが満載なんだけどさ。
というわけで、極稀に、ドトールで見かける人が書いた本ということもあって、Amazonの評価、星の数を端数切り上げしてしまった。
http://www.sudo.ws/sudo/alerts/sudo_debug.html
from @matsuu さん。
まて、なんだこれは…誰?! ARGV[0]を printf 系関数に入れようって考えた人はっ!!!
最低最悪でも printf( "%s 以下略", ARGV[0], ... ) ってしなきゃ駄目でしょうにっ!!
-------
2012/Feb/01 16:25
追記: http://d.hatena.ne.jp/boscono/20120131/p1
素晴らしく判りやすい説明でした。
誰?! printf 系を2段階仕掛けようとか考えたバカは!! (ーー゛)
-------
2012/Feb/01 16:50
追記:RPM Seach で sudo を検索したり、あちこちの sudo を調べた
SUSE11SP1: sudo-1.6.9p17
RHEL6.2: sudo-1.7.4p5-7 (CentOSとかScientificLinuxも)
で、これでもう安心したので、後は趣味の世界:
http://rpm.pbone.net/index.php3 で sudo を検索
Rawhide download.fedora.redhat.com/pub/fedora/linux/development/rawhide/x86_64/os/Packages/s/sudo-1.8.3p1-3.fc17.x86_64.rpm
Rawhide download.fedora.redhat.com/pub/fedora/linux/development/rawhide/i386/os/Packages/s/sudo-1.8.3p1-3.fc17.i686.rpm
Fedora 16 download.fedora.redhat.com/pub/fedora/linux/updates/16/x86_64/sudo-1.8.3p1-1.fc16.x86_64.rpm
Fedora 16 download.fedora.redhat.com/pub/fedora/linux/updates/16/i386/sudo-1.8.3p1-1.fc16.i686.rpm
OpenSuSE 12.X ftp.opensuse.org/distribution/12.1/repo/oss/suse/x86_64/sudo-1.8.2-2.1.2.x86_64.rpm
OpenSuSE 12.X ftp.opensuse.org/distribution/12.1/repo/oss/suse/i586/sudo-1.8.2-2.1.2.i586.rpm
OpenSuSE ftp.opensuse.org/factory-tested/repo/oss/suse/x86_64/sudo-1.8.2-1.1.x86_64.rpm
OpenSuSE ftp.opensuse.org/factory-tested/repo/oss/suse/i586/sudo-1.8.2-1.1.i586.rpm
Fedora 16 download.fedora.redhat.com/pub/fedora/linux/releases/16/Everything/x86_64/os/Packages/sudo-1.8.1p2-2.fc16.x86_64.rpm
Fedora 16 download.fedora.redhat.com/pub/fedora/linux/releases/16/Fedora/x86_64/os/Packages/sudo-1.8.1p2-2.fc16.x86_64.rpm
Fedora 16 download.fedora.redhat.com/pub/fedora/linux/releases/16/Everything/i386/os/Packages/sudo-1.8.1p2-2.fc16.i686.rpm
Fedora 16 download.fedora.redhat.com/pub/fedora/linux/releases/16/Fedora/i386/os/Packages/sudo-1.8.1p2-2.fc16.i686.rpm
(以下、1.7系列なので略)
ぎゃああああああああっ。
というわけでおうち帰ったら update かけるっっ (っ.T)。
#include <stdio.h>
#include <stdlib.h>
#define BUFSIZE (4*1024* 4*1024)
char buffer[BUFSIZE];
int
main( int argc, char *argv[] )
{
getchar();
getchar();
getchar();
while( !feof(stdin) ) {
size_t insize, outsize;
insize = fread( buffer, 1, BUFSIZE, stdin );
outsize = fwrite( buffer, 1, insize, stdout );
}
}
そういえば昔、ノートパッドがBOMをどうしても入れてくるのがうっとうしくて作った覚えがあったわ。
見ての通り、stdin から最初の3「getchar()」を読み捨てて、残りを stdout に送りつけます。エラー処理はしていません。
今朝思いついたが、専門外なのでここにさらすネタ。
ノートPCの天板(液晶モニターの裏側)に、携帯電話の画面を保護するシートのようなものを張る。あの、粘着面がべとべとしてて、相手が多少でこぼこしててもべとーっと張り付くが、張ったりはがしたりできる奴。
で、そこにマジックテープの硬い側を張っておく。------- (1)
ACアダプターとかマウスとか、PocketWiFiとかにマジックテープの柔らかい側を適当に張り付けておく。 ------(2)
ノートPCをちょろっと持ち運ぶときには、マウスとか電源とかは (1) に張り付ける。
ちょっと見栄えが悪いが便利。
--
で。(1)みたいなものをどこか作ってくれないだろうか。もちろん、それとは別に (2) を作るための柔らかい側マジックテープ(反対側が粘着テープ)も。
会社とかでノートPCを持ってうろうろしている人が結構いるのだが、ときどき周辺デバイスの忘れものがある。あと、持ち運びの最中に落とす人もいる。周辺デバイスを袋に入れたりするのもいいが、この方が時間がかからなくていいと思うんだ…
「ほとんどインターフェースは変わらないよ」
とあるので、とりあえず既存のプログラムを一つ Excel::Writer::XLSX に入れ替えてみた。するとワーニングが出まくる。
Use of uninitialized value $date_time in substitution (s///) at /usr/lib/perl5/site_perl/5.10/Excel/Writer/XLSX/Worksheet.pm line 2666, <STDIN> line 87.
Use of uninitialized value $date_time in substitution (s///) at /usr/lib/perl5/site_perl/5.10/Excel/Writer/XLSX/Worksheet.pm line 2667, <STDIN> line 87.
Use of uninitialized value $date_time in pattern match (m//) at /usr/lib/perl5/site_perl/5.10/Excel/Writer/XLSX/Worksheet.pm line 2670, <STDIN> line 87.
Use of uninitialized value $date_time in pattern match (m//) at /usr/lib/perl5/site_perl/5.10/Excel/Writer/XLSX/Worksheet.pm line 2673, <STDIN> line 87.
Use of uninitialized value $str in length at /usr/lib/perl5/site_perl/5.10/Excel/Writer/XLSX/Worksheet.pm line 2094, <STDIN> line 87.
Use of uninitialized value $str in exists at /usr/lib/perl5/site_perl/5.10/Excel/Writer/XLSX/Worksheet.pm line 4200, <STDIN> line 87.
Use of uninitialized value $str in hash element at /usr/lib/perl5/site_perl/5.10/Excel/Writer/XLSX/Worksheet.pm line 4201, <STDIN> line 87.
Use of uninitialized value $str in hash element at /usr/lib/perl5/site_perl/5.10/Excel/Writer/XLSX/Worksheet.pm line 4205, <STDIN> line 87.
え??! というのでとりあえず、Worksheet.pm line 2666 の辺りを調べてみた。
sub convert_date_time {
my $self = shift;
my $date_time = $_[0];
my $days = 0; # Number of days since epoch
my $seconds = 0; # Time expressed as fraction of 24h hours in seconds
my ( $year, $month, $day );
my ( $hour, $min, $sec );
# Strip leading and trailing whitespace.
$date_time =~ s/^\s+//; <-- line 2666
$date_time =~ s/\s+$//;
あれ?? というわけで convert_date_time の引数を調べてみると、
###############################################################################
#
# convert_date_time($date_time_string)
#
引数一個だよねぇ。で、最初の引数を
my $self = shift;
って $self に入れたら…その次の行の
my $date_time = $_[0];
…これって何を参照しているの??
というわけで、存在しない第2引数に対して正規表現を掛けまくっているから warning がでるんだ、と言うのは判った。が、そうなると「前」はどうだったのか…というわけで Spreadsheet::WriteExcel の方を調べる:
sub convert_date_time {
my $self = shift;
my $date_time = $_[0];
my $days = 0; # Number of days since epoch
my $seconds = 0; # Time expressed as fraction of 24h hours in seconds
my ($year, $month, $day);
my ($hour, $min, $sec);
# Strip leading and trailing whitespace.
$date_time =~ s/^\s+//; <---- これや!
$date_time =~ s/\s+$//;
?? おんなじやん。ちなみに引数が1つしかないのも変わらない。
なんで前は問題なくて今回は問題が????
というわけで上の方を調べてみた。
Exce::Writer::XLSX
:
# perltidy with the following options: -mbl=2 -pt=0 -nola
use 5.008002;
use strict;
use warnings;
use Carp;
use File::Temp 'tempfile';
Spreadsheet::WriteExcel
:
#
use Exporter;
use strict;
use Carp;
!! use warnings; がないっ!! これや!!
というわけで、どうやら、かなり古いバグがある事が判った。 orz
苦労した甲斐の無さが…
と書いた段階で備忘録としては完成しているが…
CPAN でこいつをインストールする事。Spreadsheet::WriteExcelに代わるライブラリとして使う。
$ cpan
cpan> install Excel::Writer::XLSX
:
cpan> quit
でできる。
Excel::Writer::XLSX は .xlsx ファイルを perl から作るライブラリ。
Windows だけじゃなく Linux からも .xlsx ファイルを作れるというすぐれもの。
というわけで、『この世で一番おもしろい ミクロ経済学』。
漫画のコーナーに最初に入った外人さんの漫画はこれです。
# ちなみに、原作者と絵師では絵師が優先します。なので「経済学」関係のところには入りません。
すごく簡単に言うと「マンキュー経済学」が示す、10のキーポイントの内最初の7つ(残り3つはマクロ経済学)を初心者向けに解説したもの。
でまぁ、この本の偉い所は、かなり難しいはずの内容の中でも珍しい結果に至るものを、幾つかピックアップして説明しようとしていること。その中の一つが「税金をどこにかけるか」問題。面倒なので、本を読んでくれ。そこをサボるような奴はどのみち理解する能力がないから、説明する気はない。
というわけで、結構面白いので是非、読むことをおすすめする。
あ、そうそう。翻訳者は山形浩生。
世界中の存在はもとより、ただのエネルギーまでもが喜ぶ日。
fjの教祖様の誕生日である。
祝え!!! (^w^)。
# 祝うのは、空間湾曲場で構成されている全ての存在の義務です (^^;)
UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア