✖
理科系の作文技術 (中公新書 624) cho45
文章作法学ぶなら (理科系に限らず) とりあえずこれを読んでおけというぐらいの本だそうで、「何か文章を書くコツが書いてある本でも欲しい」と書いたら、すすめられたり、社内の編集の方が他の人に薦めているのを見たりしたので、さっそく買って読んだ。
一度読んだ限りだと、段落をどう構成するかというのが一番参考になった。今まで段落をなんとなくで分けていたけど、トピックセンテンスを意識して必要ないことはひとつの段落に入れるなということで、(もちろん知っている人にとっては当然なんだろうけど) なるほどなあと思った。
他にも、普段気を付けていること (毎日このクソみたいな日記をつけることによって学びとった基本的なこと) も簡潔に纏めてあった。やってきたことに関して、とりあえずそんなに間違ったことを考えているわけではないと分って良かった。こういう本は場合によっては「お前は全く間違ったことをしているぞ」と言われかねないので、おそるおそる読むのだけれど、今回はそうひどいことは言われなかったように思う。
まだ十分生かしきれるほど飲み込めていないので、今後何度も読みかえす必要がある。というかもっと早く読んでいれば… と思った。
関連エントリー
- ✖ 最近、雑誌原稿やら、社内のドキュメントやら、日記やらで、文章を上手く書けるようになりたいとしみじみ思うことが多いものの、どうやったら上手くな...
- ✖ 情報量が多すぎるのだから、積極的に (自分の責任において) 情報をフィルタリングするのは全く間違っていない。それは他人によるブロッキング (...
- ✖ プログラミング言語については強く興味を持ち言語仕様を調べたりするのに、自然言語、例えば日本語についてはそんなに仕様を調べたりしないのは変だな...
- ✖ ある状態である対象に言わないほうが良い言葉というのは多々ある (言葉というか、それを含めた行動について)。「それをお前が言ったらダメだろ……...
- @amasawa さんへ 心底軽蔑とはなんだったのか - Togetterまとめ というのがあって (id:kageroh_ さんによる纏めです)、さっき日記のリファ...
✖
プログラミング言語については強く興味を持ち言語仕様を調べたりするのに、自然言語、例えば日本語についてはそんなに仕様を調べたりしないのは変だなとふと思った。
たぶん、間違いに気付きにくいことが大きな違いだと思った。プログラミング言語はコンピュータが解釈するから間違えているのが即座にわかるけれど、自然言語の場合、他人に読んでもらわないと間違いに気付かない。他人に読んでもらうというのはすごく敷居が高いしコストがかかる。そのうえ他人からの間違いの指摘というのは、コンピュータからの指摘と違って、大きく自尊心を傷付けられることがある。
さらに自然言語で特に母国語の場合、言語仕様について特に知らなくても運用できてしまう。なんとなくで使えて、なんとなく理解してもらえてしまうものだから、コンピュータ言語ほど厳密に書こうという動機が生まれない。
また、人間同士の場合、片方が理解しようとしている限り、コミュニケーションのコストをその片方に押し付けてしまうことができる。片方が伝える努力をしなくとも、片方が理解しようとする努力をしている限り、理解しようとしているほうに甘えてしまうことができる。コンピュータ相手であれば、コンピュータは理解しようという気がまるでないので、こちらが一方的に伝える努力をする必要がある。
人工言語であろうが自然言語であろうがコミュニケーション言語には変わりないので、もっと自然言語の仕様について敏感でもいいし、もっと伝えようと努めてもいいなと思った。
関連エントリー
- ✖ 理解力がないのはどうにもならないが、知識がないというのはコンピュータによってどうにでもなる。
- ✖ 自分にコミュニケーション能力がないことによって、かえってコミュニケーションの重要性について実感できるのは良い。伝えるべきこともあるし、伝える...
- ✖ LLM に我々(誰)が必要な図を描かせる場合、今のところは「matplotlib で描け」と指示するのが良さそう。特に↑のように2つのグラフ...
- 優生学はどう否定されるか、多様性はなぜ必要か 行動遺伝学に関する本を読んでから自分の中でちょっとモヤモヤした点を整理した。 優生学ってのは現代だとタブーとして扱われている。しかしこれは部...
- ✖ 人が写ってる写真を写真展とかで見ると、これは写真作品なのか、ともやもやする。それは当然もちろん間違いないのだけれど、顔の印象の大部分を支配す...
✖
文章間の論理の繋りについての感覚がいまいちない。これは日記を書きはじめた当初からずっと感じていることで、なかなか改善しない。読みなおしてあれ?と気付ける範囲であればまだ改善ができるかもしれないけど、読みなおしてもわからないことがある。
「間違いがない」ことを証明できないと、間違いがあるかもしれないという不安からは解放されない。当然そんな証明はできっこないので、文章を書くときはいつも不安である。
関連エントリー
- 台風19号 1Fに住んでいて、ハザードマップでは最悪2mの浸水、ということは事前に調べてあった。土曜日10時ごろには既に、浸水地域に対してエリアメールで...
- ✖ ブログを続けるには!?みたいなブログ記事を読むと、その感覚がよくわからなくて不思議な気持ちになる。もしかすると「筋トレを続けるには!?」みた...
- ✖ もっと丁寧に日記を書いたほうが良いということはしばしば思っているんだけど、それだと気力が持たない。将来的に自分が困りそうなのでメモ書きとして...
- ✖ 理科系の作文技術 (中公新書 624) cho45 木下 是雄 ★ 3.0 / 5.0 cho45 文章作法学ぶなら (理科系に限らず) と...
- ✖ プリンタ買っていくつかプリントして見て、ウェブ向きに撮りすぎているような感じがした。ポスプロでの処理方とかそういう問題ではなく、撮影時からウ...
Universal Block Protocol
✖
✖
サービス開発とか向いてないんじゃないか。
✖
思い返してみたけど、事実として成功体験が少なく、別に過剰な思い込みによる勘違いではなかった。
ACE のシンタックスハイライトルールを独立で使う
function dependon (check, src) {
return function () {
var ret = Deferred();
check = new Function('try { return !!(' + check + ') } catch (e) { return false }');
if (check()) {
Deferred.next(function () { ret.call() });
} else {
var script = document.createElement('script');
script.charset = 'utf-8';
script.src = src;
document.body.appendChild(script);
setTimeout(function () {
if (!check()) {
setTimeout(arguments.callee, 100);
} else {
ret.call();
}
});
}
return ret;
};
}
var Supported = {
'perl' : 'Perl',
'javascript' : 'JavaScript',
'css' : 'Css'
};
function highlight (container) {
container.find('pre.code').each(function () {
if (/lang-(\S+)/.test(this.className)) {
var lang = Supported[RegExp.$1.toLowerCase()];
if (!lang) return;
var pre = $(this);
var code = pre.text();
Deferred.chain(
dependon('ace', '/js/editor/ace/ace-uncompressed.js'),
dependon('require("ace/mode/' + lang.toLowerCase() + '_highlight_rules")', '/js/editor/ace/mode-' + lang.toLowerCase() + '.js')
).
next(function () {
var Tokenizer = require("ace/tokenizer").Tokenizer;
var rules = require("ace/mode/" + lang.toLowerCase() + "_highlight_rules")[lang + 'HighlightRules'];
var tokenizer = new Tokenizer(new rules().getRules());
var parent = document.createDocumentFragment();
var state = 'start';
var lines = code.split(/\n/);
return Deferred.repeat(lines.length, function (i) {
var line = document.createElement('span');
line.className = 'line';
var tokens = tokenizer.getLineTokens(lines[i], state);
for (var j = 0, it; (it = tokens.tokens[j]); j++) {
if (it.type == 'text') {
line.appendChild(document.createTextNode(it.value));
} else {
var span = document.createElement('span');
span.className = it.type;
span.appendChild(document.createTextNode(it.value));
line.appendChild(span);
}
}
line.appendChild(document.createElement('br'));
parent.appendChild(line);
state = tokens.state;
}).
next(function () {
pre.empty().append(parent);
});
}).
error(function (e) {
alert(e);
});
}
});
}


