✖
CARNIVAL
低ビットレートエンコしてノイズ入れて大音量で聴くと気分がとてもいいですね。あとこの曲の PV の後半はなにがなんだかわからないけど腹の底が強く圧縮される感覚があって素敵だと思う。ピロウズまじでかっこいいなぁ。
一貫性
コーディングルールについて、僕はかなり神経質に考えている。プロジェクト全体の一貫性のなさが一番の悪だと思うからだ。そういうものは全く美しくない。汚いコードが、プログラミングをはじめたときから一貫して嫌いだ。コードだけじゃない。GUI のデザイン、特に昔よくあった、何故かボタンとかに無駄に色をつけて Windows の標準 UI を逸脱するようなものとか、そういうのがめちゃくちゃ嫌いだ。
僕はコーディングルールを定めて (というか書いてたら勝手に定まるものだけど)、書きくだしてる。でもそれはいつも守っているとは限らない。もっといい方法をいつも探している。より強い一貫性を探している。読みやすさと、一貫性が最重要なルールなので、それを守っていればそれより下のルールは変えていける。逆に、他人のコードを編集するときは周りのコードからルールをできるだけつかんで、自分が好まなくてもそっちのルールにあわせる。一貫性がなくなるのが嫌だからだ。
とにかく一番嫌なのは、一貫性がないこと、汚いこと。ルールを他人に決めてもらって、その範囲で「できるならなんでもやっていい」は間違っていると思う。
関連エントリー
- ✖ 何のためか、誰のためかを忘れないようにするのが重要だと思う。僕は未来の自分が読みやすいようにコードを書いてるから (すなわちそれは、今の自分...
- ✖ 仕事で意識高い系の記事がとかキツい。全く面白くない。 自分でルールを作って、そのルールに沿って生きていくのが人生だと思うが、他人にルールを強...
- ✖ 本心は隠さなければならない、みたいなルールをなぜかいつの間にか持ってしまっていて不思議だと思います。子供ころからそうですし、多くの人がこのル...
- 自分の強みってなんだ なんなんだろうって考えてた。僕はけしてプログラムを書くのが超絶早いほうではないし、知識もそんなにあるわけじゃない。数学的なこととかになるとわ...
- ✖ 某所の就活日記が腹立たしくしてしかたないのだけれど、グループ一括購読なので Plagger 側に除外ルールを加えなければならなく、しかしなが...
✖
何のためか、誰のためかを忘れないようにするのが重要だと思う。僕は未来の自分が読みやすいようにコードを書いてるから (すなわちそれは、今の自分よりもスキルがある誰かを想定してる)、そのためのコーディングルールを持ってる。
目的を円滑に遂行するために作ったルールなのだから、ルールを守ることを目的にしてはいけない。ただそれだけだ。ルールを作らなくていいという意味じゃない。
関連エントリー
- 一貫性 コーディングルールについて、僕はかなり神経質に考えている。プロジェクト全体の一貫性のなさが一番の悪だと思うからだ。そういうものは全く美しくな...
- ✖ プログラミングの場合、ウェブ上にほとんど全ての情報があるので、何かを作りたいときにそれを制限する要素が極めて少ない。ほぼ自分の理解力・実装力...
- OsmAnd で自転車ルートをターンバイターン・ルートナビゲーション 概要 OsmAnd はターンバイターンで事前に決めたルートをナビゲーションできる現状でほぼ唯一のアプリケーション OSS なため挙動が謎なら...
- ✖ 見るたびにいちいちコードを読まないと安心して使えないライブラリなんてライブラリの価値がない。ライブラリ自体はブラックボックスになっていても、...
- ASUS Xonar U7 ASUSTek ハイレゾ対応 USB DAC 7.1ch対応 Xonar U7 cho45 ASUS ★ 5.0 / 5.0 cho45 現...
✖
コードを読むときは、読めないコードが出てきたときに、読めないことを恥じ、コードを書くときは、読めないコードを書かないようにし、読めないコードを書いてしまったときにはそれを恥じる。そういうバランスが、御互いに必要っていう、あたりまえのことだ。そこにコストを感じすぎるなら、たぶん一緒にやる相手を間違ってる。
関連エントリー
- ✖ ある状態である対象に言わないほうが良い言葉というのは多々ある (言葉というか、それを含めた行動について)。「それをお前が言ったらダメだろ……...
- ✖ コード書くこと、そのこと自体は別に好きではなくて (書くこと自体が好きだったら、コードを短くするためのライブラリとか作らないわけです)、コー...
- ✖ コンピュータでタイプして、消したりするときは、消しゴムみたいに、痕跡が残ったりはしない。だから、どれだけ推敲しているかっていうのは、読む人か...
- ✖ コード読んでる時間のほうが長かった。自分のプロジェクトではない以上、どういうふうに書かれているか、どういう方向で書こうとしているかを読み解く...
- ✖ 元気が全く、全然出てこなくて、どうしようもない。1回大きい負荷がかかって以来全方面にすっかり心が折れてるのがずっと続いてる。 コーディングは...
✖
✖
fotolife は画像のサイズを設定できるのと、縮小法が汚くないのがいいっぽい。でもオリジナルを保存するっていう用途では別の使ったほうがよさそう。
✖
✖
✖
言語覚えるのは十分に暇じゃないと無理だ。最初のうちは誰の役にも立たないものしか作れないし、そういう期間は結構長い。ある言語の面白さを熟知するには、暇じゃないといけない。
日付っぽいもの全てに、現在からの相対時間を付与する
var walker = document.createTreeWalker(
document.body,
NodeFilter.SHOW_TEXT,
{
acceptNode : function (node) {
return NodeFilter.FILTER_ACCEPT;
}
},
false
);
var hits = [];
while (walker.nextNode()) {
var node = walker.currentNode;
var str = walker.currentNode.nodeValue;
var m = /(\d{4})-(\d\d)-(\d\d)|(\d+)年(\d+)月(\d+)日/.exec(str);
if (m) {
var time = new Date(
+(m[1] || m[4]),
+(m[2] || m[5]) - 1,
+(m[3] || m[6])
);
hits.push({
match: m,
node: node,
date: time
});
}
}
for (var i = 0, len = hits.length; i < len; i++) {
var m = hits[i].match;
var node = hits[i].node;
var surround = document.createElement("span");
var range = document.createRange();
range.setStart(node, m.index);
range.setEnd(node, m.index + m[0].length);
range.surroundContents(surround);
var info = document.createElement("span");
var style = info.style;
style.position = "relative";
style.top = "-0.5em";
style.fontSize = "80%";
var diff = (new Date()).getTime() - hits[i].date.getTime();
day = Math.floor(diff / 1000 / 60 / 60 / 24);
info.appendChild(document.createTextNode("("+day+"日前)"));
surround.appendChild(info);
}obsolete フラグ を見ていて、とりあえず相対時間表示がほしいなぁとおもったので userscript かいた。けど、なんか日本語が Greasemonkey でうまいことマッチしなくてめんどくなった……
TreeWalker で nextNode よんでるところと、実際 DOM を操作しているところを別にしているのは、DOM で子要素にまたマッチするノードを追加したりすると、nextNode() でそれがヒットしてっていう無限ループになるからです (なんか回避策あるのかな)。あとは普通に Range つくってるだけ…… クロスブラウザとか考えたらこんな簡単には書けないだろうなぁ
nextNode よぶ位置だけかえてワンパスにしてみた
var walker = document.createTreeWalker(
document.body,
NodeFilter.SHOW_TEXT,
{
acceptNode : function (node) {
return NodeFilter.FILTER_ACCEPT;
}
},
false
);
var node = walker.nextNode();
while (node) {
var str = node.nodeValue;
var m = /(\d{4})-(\d\d)-(\d\d)|(\d+)年(\d+)月(\d+)日/.exec(str);
var next = walker.nextNode();
if (m) {
var time = new Date(
+(m[1] || m[4]),
+(m[2] || m[5]) - 1,
+(m[3] || m[6])
);
var surround = document.createElement("span");
var range = document.createRange();
range.setStart(node, m.index);
range.setEnd(node, m.index + m[0].length);
range.surroundContents(surround);
var info = document.createElement("span");
var style = info.style;
style.position = "relative";
style.top = "-0.5em";
style.fontSize = "80%";
var diff = (new Date()).getTime() - time.getTime();
day = Math.floor(diff / 1000 / 60 / 60 / 24);
info.appendChild(document.createTextNode("("+day+"日前)"));
surround.appendChild(info);
}
node = next;
}
✖
[niconico:sm3063884] いいうただなー




