Hatena::ブログ(Diary)

やねうらお−ノーゲーム・ノーライフ このページをアンテナに追加 RSSフィード

GT-Rの買取ならここですわ。どこよりも高く買取ってもらえるはず。お勧め!GT-R 買取
電王戦出場記念! 書籍化されたで! 監修したで!(`ω´) 絶版なってしもた Kindle版で復活!! 記事書いたで!
解析魔法少女美咲ちゃん マジカル・オープン!

YaneuLabs / やねうら王公式 / やねうらおにメール / twitter / プロフィール

 | 

2012-06-25 定期的に繰り返し実行する簡単ではないお仕事

[] 定期的に繰り返し実行する簡単ではないお仕事  定期的に繰り返し実行する簡単ではないお仕事を含むブックマーク  定期的に繰り返し実行する簡単ではないお仕事のブックマークコメント


いやー、この問題は本当に難しい。難しすぎて、どうやって解決すればいいかいまだによくわからない。わからないので、ここに書いてみる。


最初とあるお客さんのために「ひよこの餌やりプログラム(仮)」を作っていたんだ。開始ボタンを押すとひよこの餌が出てくる。たったそれだけのプログラム


今回は、これを「定期的に実行する機能が欲しい」と言われた。

この要望を実現するのがすこぶる難しかったんだ。


やねうらおってそんなプログラムすら書けないの?老害なの?」


とか言わないで欲しい。この問題、本当に難しいんだよ!


■ 1度目のひよこの全滅


まず、この要望に沿って、私の会社プログラマが当初、次のようなダイアログをつけたわけだ。


f:id:yaneurao:20120625134749p:image


繰り返し実行のところにチェックを入れた場合、ここで指定された時間後にも繰り返し実行する。単位は分で指定する。1日ならば60×24 = 1440を指定する。そうすると、ひよこの餌やりのタスクが終わったあとに1440分待機するような動作になる。


ところが、このプログラムを使ったところ、ある日、ひよこの餌が出てこなくて、ひよこが全滅した。これにはお客さん、カンカンで…って、以前似たような話を書いたが*1、今回のケースは少し状況が違うので順番を追って書いていく。



あらかじめ予告しておくけど、今回はこのあとひよこは何度も全滅するんだぜ…。



さて、なぜ、最初ひよこが全滅したのかその原因を書いておこう。

次図をご覧の通り、お客さんのイメージでは24時間ごとに餌やりをして欲しかったわけだ。お客さんの言う「定期的に」と言うのは、「(餌やりのタイミングが)一定間隔になっていて、その間隔が調整できること」が本来の要件だった。


f:id:yaneurao:20120625134750p:image:w800


ところがこの要件が正しくヒアリング出来ていなくて弊社プログラマが次図のように実装してしまった。


f:id:yaneurao:20120625134751p:image:w800


こういう実装にしてしまうと「ひよこの餌やり」タスクが長引くと次の餌やりのタイミングが遅延してくる。間違った実装と言えるかも知れないが、後者のほうがお手軽な実装だし、タスクの内容によってはこれで事足りる場合もあるから、これがありえないような実装というわけでもないとは思う。しかし、今回のタスクはこの実装ではまずく結果としてひよこが全滅したということだ。


ここまではヒアリング不足、要求仕様の理解不足と言えると思う。


■ 2度目のひよこの全滅


そこで、上の前者の図(お客様要望)のようになるようにプログラムを修正した。UIはさきほどと同一である次のUIのままである


f:id:yaneurao:20120625134749p:image


しかし、ここでお客さんから待ったがかかった。


前回のことで煮え湯を飲まされたお客さんは「あと何分後にひよこの餌やりタスクが実行される予定なのか画面に表示させて欲しい」という追加仕様を出してきたのである


これは「さもありなん」という感じで、「(次のタスクの実行が)あと何分後」という表示があれば、次のタスクの実行がきちんと予定されていることが目で見てわかるし、また、その表示があれば上の後者の図ではなく前者の図のように実装されているかのチェックにもなる。なるほど、我々は最初からこのような表示をするべきだった。


ということで次図のようなダイアログに変更した。


f:id:yaneurao:20120625134752p:image


それで気分よく運用していたお客さんであったが、ある日、Windows UpdateがあってOS再起動した。これでひよこはまたもや全滅した。


今回製作しているアプリ自体はOS起動時に自動的に起動するようになっている。アプリが起動していなかったので餌やりタスクが実行されなかったとかではない。


またアプリは定期的に状態を保存して(シリアライズして)、起動時に状態を戻す(デシリアライズする)。ゆえに、UI上の数値などはアプリを終了〜再起動した場合も前回の状態のままであるアプリが設定されたUI上の数値を保存していなかったなどでもない。


それでは原因は何かと言うと、「次回の実行は XXXX分後です」の数字インターバルタイマーで定期的に(1分ごとに)1を引く実装になっており、ここが0になった時点で再度タスクが実行されるという実装にしてあった。


ところが、この実装だとアプリを終了させ、次回起動するまでの時間ノーカウントになってしまう。ゆえに、そのノーカウントである時間の分だけ餌やりのタイミングが遅れてしまうわけだ。


ついでに言えばWindows Updateのあと、お客さんとしてはまだ実行を開始する時間じゃないからしばらくパソコンの電源を切ったままにしていたらしいのだが…。


そこで正しい実装としては次のようになっているべきだったのだ。


(1) タスクを開始した時点で、

次回予定実行時刻 = タスク開始時刻 + 何分後に実行するのかのテキストボックスで設定された時間

とやって次回予定実行時刻というのを算出する。


(2) アプリ終了時にはこの次回実行時刻を保存しておき、アプリ起動時にはこの次回実行時刻を復元する。


(3) 「次回の実行は XXXX分後です」という表示は

XXXX = 次回予定実行時刻 − 現在時刻

とやって算出して表示するべきだし、XXXXが0を下回って、かつ、「繰り返し実行する」のチェックボックスにチェックが入っていれば、そのタイミングで再度タスクが実行される。


これで万事うまく行くように思えた。ところが…。


■ 3度目のひよこの全滅


このプログラムを長時間動作させているとまたもやひよこが全滅した。


お客さんは、昼の12:00から24時間ごとにタスクを実行するつもりで1440分と設定していた。


なのに次第にタスク開始時刻が日に日に数秒ずつずれて来て、長期間運用すると何時間も開始時刻が昼の12:00からずれてしまっていた。


これは、

(4) (3)でタスクが再実行されたとき

タスク開始時刻 = 現在時刻

としていたためだ。ここは、

タスク開始時刻 = 次回実行予定時刻

としなければタスク再実行〜現在時刻の取得までの分の誤差が累積してしまうというのが原因だった。


3度目のひよこの全滅を目の当たりにしたお客さんは「毎日昼の12時にひよこの餌をやって欲しいだけなのに、なんでこんな簡単なこと出来ないの?馬鹿なの?死ぬの?」と怒り心頭に発した。


さて、(4)の修正をして、さすがに三度目の正直、これでうまく行くだろうと安易に考えていたのだが…。


■ 4度目のひよこの全滅


お客さんは、タスクの開始時刻が12:00からずいぶんずれてしまったので、明日はまた12:00から開始したいとおっしゃるわけであるしか12:00にパソコンの前に正座して開始ボタンを押したくはないので、明日12:00に開始されるように設定できないのかと言われたわけだ。


ああ、わかりました。設定できるようにしましょう。

ということで、「次回の実行は XXXX分後です」と表示されていたXXXXの部分をテキストボックスにしてここの値を変更できるようにした。


f:id:yaneurao:20120625134753p:image


ここの値は自由に変更できるので残り時間明日12:00までの時間になるように設定してもらえればいいですよ、と。


そこでプログラムには次の処理を追加した。


(5) 「次回の実行は XXXX分後です」のXXXXの部分がユーザーによって変更された場合は、

次回実行予定時刻 = 現在時刻 + XXXX

と再計算する。


ところが、このようにアプリ仕様を変更したところ、ひよこがまた全滅した。お客さんが残り時間計算を間違えて設定してしまったからだ。


お客さんいわく「昼の12:00に実行したいだけであってそのために残り時間とか電卓計算したくないんだよ!全滅したひよこは弁償してもらいますからね!」だそうで、確かに使いにくいUIかも知れないが、そのUIでいいと言ったのもあんただし、計算を間違えたのはあんただろと思いながらも、やはりこのUIには問題があることは認めざるを得なかった。


すなわち、「次回実行は XXXX分後です」ではなく、最初から「次回の実行予定時刻は 2012/06/06 12:00:00です」のようにDateTimeが表示されているべきだったのだ。


そして、次回実行予定時刻を変更したいという要望に対しては、この値をDateTimePickerで選択できるようになっているべきだったのだ。


■ 5度目のひよこの全滅



以上の試行錯誤のすえ、我々が最終的に行き着いたUIは次のUIだった。


f:id:yaneurao:20120625144846p:image


なるほど、これは素晴らしい。


お客さんがある日このアプリの起動を忘れていて12:10に起動した場合も、次回実行予定時刻はその日の12:00になっているので、即座にタスクは開始されたし、(4)の処理により、次回実行予定時刻は翌日の12:00になった。翌日も12:00になればきちんと処理が開始される。


これにはお客さんも「大変素晴らしいアプリを作ってくれた!」と掌(てのひら)を返したように大喜び。


ところが、喜びも束の間。数日後にまたもやひよこが全滅したのだ。


そうだ。お客さんが、ある日、ひよこ部屋の掃除のためにその日は手動で餌をやったのだ。


アプリの起動を2日後に起動させられたこのアプリは、二日分のタスク連続して実行した。つまり通常の二倍の餌が1日で与えられたわけである


我々は、アプリが起動時に2つ以上のタスクが実行される予定になっているときは警告ダイアログを出すようにした。つまり次の条件である


(6) 警告ダイアログを出す条件

(次回実行予定時刻 <= 現在時刻 + XXXX * 2)

※ この条件を満たすとき連続して2つ以上のタスクが実行されることになるので。


■ 6度目のひよこの全滅


ある日、このお客さんの会社の重役の人がこのアプリを別PCにもインストールして別の施設のひよこの餌やりにも使うことにした。その人は、繰り返し設定として1440分後に実行するように設定した。


しかし「次回の実行予定時刻」を設定するのを忘れた。この項目、初回起動時には1900/01/01 00:00:00になっている。


この状態で実行するとタスクが2つ以上連続実行されるという警告ダイアログが出る。


そこで次回の実行予定時刻のところを次回に実行して欲しい明日12:00にセットした。


その結果…またもやひよこが全滅した。タスクが実行されなかったのだ。


そうだ。「次回の実行予定時刻」のところはタスクの実行を開始した瞬間にXXXXだけ加算される。つまり、この表示は「次回の実行予定時刻」だが、開始ボタンを押す前に設定すべき値は「(今回の)実行予定時刻」なのだ。いますぐ実行を開始したいなら現在時刻になっていなければならない。


この重役の人はカンカンで、「ここの値はアプリの初回起動時は現在時刻になっているべきではないのか」と言ってきた。なるほど、それもそうだ。


あと「次回の実行予定時刻」という表記も紛らわしい。

「2012/06/25 12:00:00 にひよこに餌をやるのを開始」というように変更した。


■ そして別のお客さんからクレームの嵐


これらの処理を入れたのちは長期間この仕様運用し、実績も出来、我々のUIプログラム完璧だと自負していた。


他のお客さんからも「定期的に実行したいんだけど」と言われれば、必ずこのUI提供することにした。


ところが、他のお客さんにとっては、これが非常にわかりづらいらしく「もっとシンプルにならないの?」「何分後に実行するかだけ設定できればそれでいいんだけど?馬鹿なの?死ぬの?」など歴史は繰り返すわけである


それらのお客さんもここに書いてきたような試行錯誤を経て、やがて理解はしてくださるわけだが、毎回毎回、「定期的に実行したいんだけど」と言われるごとにこれらの話を説明するのが面倒なのでこのように記事にまとめておく次第である


■ まとめ


「定期的にタスクを実行する」ためにはどういうUI提供し、どういう設計にすればいいのか、私が直面した課題を一通り書いた。これにより、簡単に出来そうな内容なのに一筋縄ではいかないことがはっきりわかったと思う。


私として、ここで書いたものが決定打だとは思っていないが、「タスクを定期実行したい」というありがちな要求仕様を満たす、一番シンプルUIでありロジックだと思っている。ただし、お客さんからの受けはあまりよろしくない。


これよりいいUI/設計があるならコメント欄で教えていただきたい。


■ 2012/6/25 21:00 追記


twitterのほうでmsmhrtさんから「ひよこの餌やりプログラム(仮)」のUI、こんな感じでいかがでしょうか? → http://goo.gl/m4Pxu  」と提案いただきました。*2


f:id:yaneurao:20120625210228p:image

これ、わかりやすいですね!こうやって皆さんの力で、「定期的に実行する」ためのスタンダードUI確立していくといいのですが。(他力本願)


■ 2012/6/25 21:30追記


はてブお勧めされた。面白そうなのであとで読む

パーセニーパーセニー 2012/06/25 16:43 田舎プログラマなので参考になるか判りませんが・・・

僕が作るなら最終形とほぼ同一の仕組みを作るかと思います。
ただ、Datetimeの生情報はお客様にとって判りづらい気もするので、日本語的な文面になるかと思いますが。

次の実行予定時刻〜などの情報は、Web系なら閲覧ページやTOPページ、またはデスクトップ上に出てくると判りやすいかな?

タスク管理を行う処理自体はさほど難しくないんですが、お客様のイメージとのすり合わせがピッタリ合うまでが・・・お客様との相性等々次第で、難しいですね。

yaneuraoyaneurao 2012/06/25 17:57
> 僕が作るなら最終形とほぼ同一の仕組みを作るかと思います。

一発で最終形に到達できる人は稀有な、優れたプログラマの人だと思います。
自信を持って良いのではないでしょうか。

「定期的に実行する」って簡単そうに見えて、結構、誰でもやってしまいがちな地雷がたくさんあるんだなーというのが私の印象でした。

こういう問題をきちんと処理する能力というのは純粋なプログラミング能力とはまた違った能力だと思うのですが、こういう部分ってこの手のいろんな問題に取り込んで経験を積んでいかなければならず、書籍なんかでは教えてくれない部分なのでなかなか経験値が上がりにくいですね。

通りすがり通りすがり 2012/06/25 19:13 個人的に、東芝のRDレコーダーの予約録画の思想が好きなので(古い型だとダビング作業を強制終了させてまで「予約録画を確実に実行」する)同じようなアプローチで出来ないでしょうか。それこそユーザーが設定し忘れていても、基本デフォルト設定を強制発動して、時刻設定なんかが狂ってる時はアプリ側で勝手にカウントダウンして強制的に餌やりしてしまうようなアプリです。掃除などで手動で止めるときは、パスワードを入力したり、何度も確認ダイアログが出たりひどくめんどくさいシステムにするのも忘れずに。餌をやり過ぎるより、やり忘れるほうが危機的な状態になるので、やり忘れるほうが難しいというめんどくさいアプリのほうが役に立たなでしょうか?

yaneuraoyaneurao 2012/06/25 19:23
そうですね。やり過ぎに対するペナルティがゼロに近い場合はおせっかいすぎる設計もアリだとは思います。

yaneuraoyaneurao 2012/06/25 19:25
今回の記事がまたもやGIGAZINEのヘッドラインニュースで紹介されていた。
http://gigazine.net/news/20120625-headline/

一つ前の記事も紹介されたばかりなのに…。
http://gigazine.net/news/20120620-headline/

二つ連続して取り上げてくれるだなんて、GIGAZINE大ちゅき!

ドラ焼きドラ焼き 2012/06/25 19:27 こんにちは、学生プログラマなんで実績も糞も無いので、生意気言ってたらすいません。
クライアントもほんとめんどくさいですね(笑)
ひよこの餌やりぐらい自分でやればいいじゃん!と思いました(笑)


というのは置いといて、UIですが間隔の設定も、○分だけにするよりは○時間○分としたほうがミスが減ると思います。
あとは、クライアント次第ですが、曜日指定なども必要な場面もでできそうですね(笑)

それにしてもえさやり機とはUSBで接続しているのでしょうか?

koba789koba789 2012/06/25 19:41 これと同じわかりづらさを経験したことがあると思ったら、同業者の cron でした。

hikipurohikipuro 2012/06/25 20:29 UIをタブブラウザのような構成にして、
・「毎週」「毎日」「毎時間」 というようなタブを作る
・「毎時間」の場合は"分"を選ぶセレクトボックスをタブ内に表示
・「毎日」の場合は"時"を選ぶセレクトボックスをタブ内に追加
・「毎週」の場合は"曜日"を選ぶセレクトボックスをタブ内に追加
(スケールの数が増えたら、スケールに応じたセレクトボックスを追加する)
・開始ボタンをタブの外に配置し、開始ボタンを押した後は、タブとその中身を Disable 表示にして触れないようにする
・停止ボタンを押すと触れるようにする (開始ボタンが押されたら、ラベルが「停止」になるという実装の方がボタンの個数が減って理解がしやすいと思います。)

というのはいかがでしょうか。

hikipurohikipuro 2012/06/25 20:31 すみません、上の感じだと2時間毎とかできないですねw

yaneuraoyaneurao 2012/06/25 20:33 ↑*2 Googleカレンダーがそんな感じですかね。( twitterで言及のありました→ http://twitpic.com/a0c5zm )

あれは、日にち単位でのスケジュール設定がしたい場合には結構優れたUIだと思います。

tsuyoshitsuyoshi 2012/06/25 22:48 古い考え持ちですが

んー、なんというか仕様レベルでの意見の擦り合せが、まずできてなかったんじゃないか、という気がどうしてもしてしまう。

固い開発なら仕様の洗い出しが重要になるんだし、そこで出せない(出しきれなかった)仕様についてはサポートできんと事前に強く念を押せる環境(というか立場)を持てないと厳しそう。

アジャイル的というか改善を繰り返すなら影響の少いテストベッドで改善を素早く繰り返すようにしないと被害がでちゃう。

---
この状況でどういうUI/動作になる、っていう話も、見えてない周辺の状況でさらに色々変りそうだし、なんとも言えないなぁ...(状況読む力がたりないな > 自分)

とりあえずとりあえず 2012/06/25 23:53 確認の意味で、あなたも含んだ両者に餌やり終わったらメールもらえるようにすればいいのでは?

t_tutiyat_tutiya 2012/06/26 00:07  msmhrtさん版のUIを見ると、「定期的に実行する」というシンプルな問題領域でさえ、汎用UIの設計が如何に困難かが分かって面白いですね。
 警告の意図が不明瞭なので(きっと、この警告は見てる人にスルーされる)、「次回給餌時刻は、指定された繰り返し間隔より[長く|短く]設定されています」と付記したらどうでしょう。
 あと、「前回の給餌時刻を修正する」というのは、意図は分かりますが、実際に行われた「前回の給餌時刻」と、見た目上の「前回の給餌時刻」が不一致になるのは分かりにくいですね(餌やりログを残す場合にも変な事になりそう)。

Ta(ryTa(ry 2012/06/26 02:35 なにか1秒毎にカウントダウンしてるものが数字を1つ飛ばしてカウントダウンしても気にしない

へぇ〜へぇ〜 2012/06/26 08:48 面白いですね。悪い意味じゃなくて、ソフト屋さんの発想が面白いです。

私、元々ハード屋で今はサーバ屋(ネットワーク屋)ですが、サーバ屋的には「何分後」といった「間隔」ありきという発想はしないです。常に「時刻」という絶対的な基準を基にしますね。
まぁ、元ハード屋としては一つ一つクロックを数えて・・・という間隔の考え方はありますから、そこから今回の課題で言えば「間隔」を補足します。これ、純粋なサーバ屋さんには無い考え方です。

karmenkarmen 2012/06/26 10:34 http://www.atmarkit.co.jp/fwin2k/win2ktips/335tasksched/tasksched.html
要件を満たせるかどうかはさておき、タスクスケジューラが標準で付いてますヨット。

toctoc 2012/06/26 10:38 同じような経験あります。
このケースは時刻表示が日本標準時だけですが、様々なタイムゾーンを考慮するUIが必要になったりするともっと混乱します。

Error401Error401 2012/06/26 12:44 うーん、「定期的に実行するタスク」のUIの見本として、何故最初にWindows等のタスクスケジューラやUnixのcronを思い浮かべなかったのかが謎です。そうすれば、最初から最終形に近いUIや機能が実現できてたと思います。
「定期的に実行するタスク」の要件として、アプリケーションの再起動はもちろんのこと、OSのリブートも越えて「定期的」になるよう実装すべきだということは常識な感じなんですが、そうでもないんでしょうか。

yaneuraoyaneurao 2012/06/26 15:18 ↑*1,↑*3
> そうすれば、最初から最終形に近いUIや機能が実現できてたと思います。

当初は問題の複雑さを理解していなかったので、「こんなものぐらい簡単だろう」という気持ちがあって何も考えず自前実装の道を取りました。

あと、本文の例では24時間の定期的な実行(≒定時実行)ですが、実際はここは23時間とか22時間とかかも知れないのでタスクスケジューラやcronはあまり参考にならないと私が思ったため、参考にしませんでした。

それから、タスクスケジューラやcronは
・ntpで時刻合わせが起きて時刻が少し巻き戻った場合、同じタスクが二度実行されないか
・ntpで時刻合わせが起きて時刻が少し進んだ場合、タスクが実行されなかったりすることはないのか
・PCがN日電源がONにならなかった場合、未消化のタスクがどう実行されるか
・PCがONになった瞬間に実行予定時刻が過ぎていた場合、そのタスクはどうなるのか
など、やはり今回の記事と同じ問題を孕んでいると私は思うのです。(そもそもそういう問題があること自体が当初は気づいていなかったわけですが…)

anonymousanonymous 2012/06/26 18:36 3度目(1度目も?)の奴はゲームで使うFPS管理タイマの実装でもよくあるトラブルのような気がするんですが、ゲームプログラミング本でそのあたり言及してませんでしたっけ?

↑*5
>常に「時刻」という絶対的な基準を基にします
ソフト屋でも時刻を使いたがる人は少なくないというか、数時間を超える計測で(しかもトラブル発生後の修正でも)間隔基準の思考を続けてたらソフト屋にも頭が固いと言われるんじゃないかと思います。

ii 2012/06/26 19:21 長期間でタスクをリピートするのであれば、cron的な方針でいくと思います。
実行ログを取っておいてダブリや漏れを減らす方向で。
実行中やログ書き換え中に吹き飛んだ場合とか、えさやり機械がエラー投げ返した場合とか、例外の複合とか全部フォローするのは難しいので、予算とご相談ということで。
あと、サーバのリソースが枯渇していて想定する時間内にバッチが終わらないと結構悲劇的なことになりますね。
金融系で定期的にトラブルが起きてたはず。

asdfasdf 2012/06/27 12:09 > ntpで時刻合わせが起きて時刻が少し巻き戻った場合、同じタスクが二度実行されないか
> ntpで時刻合わせが起きて時刻が少し進んだ場合、タスクが実行されなかったりすることはないのか
> PCがN日電源がONにならなかった場合、未消化のタスクがどう実行されるか
anacronというのがあってですね、、、と言いたくなります...
http://linux.die.net/man/8/anacron
anacronでは連続餌やりの禁止はしませんが、こういうのを知っていれば「給餌時刻にPCに電源が入っていなかったらどうします?」ぐらいの質問はできると思います。

> そうだ。お客さんが、ある日、ひよこ部屋の掃除のためにその日は手動で餌をやったのだ。
鉄道事故が信号の手動扱い時に起きやすいように、手動と自動の切り替えは難しい。要件がタスクスケジューリングなら、一定時間が経ったら済んだことにするでも良いけど、他の要件なら「餌をやったことにする」ボタンをつける。でもできれば付けたくない。絶対押し忘れるから。

ところで、日本ではないですが、冬時間→夏時間、夏時間→冬時間の切り替わりでひよこを全滅させる人もいるそうです。(切り替わる時間が夜中の12時ではないというのが罠)

asdfasdf 2012/06/27 12:45 anacronをそのまま使うことはできないが、連続餌やりの禁止はしないためというのはおかしかった。

yaneuraoyaneurao 2012/06/27 12:58 ↑*2
> こういうのを知っていれば「給餌時刻にPCに電源が入っていなかったらどうします?」ぐらいの質問はできると思います。

anacronは知りませんでした。なるほどですね…。

まあ…この手の問題って、自分が実際に直面してみるまでは「XXXぐらい簡単だろう」とかナメてかかってるところがあって、なかなか他のツールの実装状況を調べたりしないんですよね。「XXXは難しい」という事前知識だけでもあると違うと思うのですが。

Ta(ryTa(ry 2012/06/28 00:52 ↑*2
DSTといえばどちらの切り替わりも「午前2時」だから重複する1時間と失われる1時間が生じるなんてものがあって困った。
isDstも記録しておかないと重複する1時間からUNIX Epochなどに変換出来なくなっちゃって。

kawakawa 2012/06/28 17:56 「ライト、ついてますか」もオススメの本です

通りすがり通りすがり 2012/06/30 10:52 UIの問題なのかなぁ…
ミスを犯す人間がミスを犯さずに設定し続けないとひよこが全滅するのが問題では。
餌をやらない条件を決め、それ以外は必ず餌をやればよかったのでは。
さらに機構部にも各種センサーを取り付け故障検知したり、フェールセーフの考えで異常時に縮退運転したり、色々できそうですが…

yaneuraoyaneurao 2012/06/30 17:23 ↑*1
> さらに機構部にも各種センサーを取り付け故障検知したり、フェールセーフの考えで異常時に縮退運転したり、色々できそうですが…

例えば予算が3000円でそのようなセンサーを買って設置してそれを検知して対処するプログラムを書くことが出来ますでしょうか。限られた予算、限られた作業工数のなかで現実レベルで通用するソリューションを提供していかなければならないのです。

100%確実である100万円の製品より、99%正しく動く1万円の製品のほうが求められることは現実世界ではよくあることなのです。

ぽぺぽぺ 2012/07/01 01:39 実際の業務をかなり抽象化・変更して公開されていると思うんですけど、どの分野の仕事だったのか、聞いてみたいなーなんて(チラチラ

うちの会社だと、お客様と瑕疵担保で問題になった場合は、やっぱり仕様書に書いてあるかどうかだけが争点になるですが、なかなかそういうのはお付き合いとかがあるから難しいんですかねー。
こー、99%動く1万円の製品作るお仕事って、すごくよく言われて、引き合いも多いんですが、イバラな道って分かってるので、うちの会社は断ったりすることが多いんですよー。そんな仕事やっていらっしゃるのかー、すごい技術力ある会社だなー、とか思ってしまったですよ。

akirameiakiramei 2012/07/01 14:59 担当したプログラマさんが画面(UI)から作り始めたのが問題だった気がします。間隔設定時にスケジュールが決まるか、実行中に変わっていくか仕様確認して最初に決まるならその時点でタイムテーブルを作ってしまう方が堅い気がします。実行時の処理はシンプルが良いのでデータに仕事を押し付けられるならそうするのが楽かなー

Ta(ryTa(ry 2012/07/08 15:52 この前のうるう秒でもやっぱりひよこは全滅だったの?
ひよこが弱過ぎない?

nucnuc 2012/07/13 00:39 どうもお久しぶりです。
もう少し広げると、これは、制約を満たしたまま、好みの動作をさせるというものなので、難しいのでしょうね。
なので、制約の中身を UI に含めようとする追記の方法は正攻法だと思います。

yuayua 2012/09/05 18:41 大切なのは一番マズい事が何かを理解することなのかな。(この場合はひよこが死ぬこと)
ヒアリングの際に何時間餌をやらなかったら死ぬの?と聞けばいいのかしら。
一番マズい事さえ回避できれば、後は運用なりなんなりで回避できることは多いと思う。

2012-06-20 Ubuntu 12.04 vs Windows 8 RP

[] Ubuntu 12.04 vs Windows 8 RP  Ubuntu 12.04 vs Windows 8 RPを含むブックマーク  Ubuntu 12.04 vs Windows 8 RPのブックマークコメント


なんか流行ってるみたいなのでUbuntu 12.04をインストールしてみた。

f:id:yaneurao:20120620131502p:image


ログインすると最初に左側にショートカットが用意されていてすぐにブラウザOffice互換ソフトが使える。よくわかってるね!


f:id:yaneurao:20120620131917p:image:w800


AppStoreみたいなSoftware Centerという機能が用意されている。有料のゲームもあるようだ。



×ボタン(ウィンドウを閉じるボタン)がウィンドウの左上に配置されていて、かつアプリショートカットは左側、メニューは上部という構成なのでアプリ起動→メニュー→閉じるのときマウスの移動距離が少なくて済む。よく考えてあると思う。


「これがWindows 8だぜ!」と言われたら信じてしまいかねない。



それではWindows 8 RP(Release Preview)もインストールして試してみよう。


f:id:yaneurao:20120620133107p:image:w800


すまない。インストール直後の画面のスクリーンショットを撮るの忘れてしまった。上の画面は少しいじったあとのものだ。


メール」というアイコンがあったのだが、クリックするとWindows LiveIDログイン画面が出てきたのでアイコンを消してやった。メール出すのにWindows Liveなんか関係ねーんだよ!メーラー起動せんかい


「Maps」というアイコンがあったのだが、起動にすこぶる時間がかかり(初回のみ?)、やっと起動したかと思ったらすこぶる操作性の悪い、Google Mapsよりすごく遅い使い勝手の悪い地図が出てきた。そんな独自地図いらんのだよ!ブラウザGoogle Maps開いてくれたほうがよっぽど嬉しいんだよ!もちろん亜光速アイコン消してやった。


メッセージング」というアイコンがあったのだが、Windows LiveIDログイン画面が出てきたのでこれまたアイコンを消してやった。ログインしてなくても起動ぐらいせんかい!どうやら、Windows Live Messengerのような機能なのだが、それならSkypeで間に合ってる。そんなWindows 8を使ってるユーザーしかコンタクトの出来ない機能いらんわい!


気を取りなおして「ニュースアイコンを押そう。


f:id:yaneurao:20120620134052p:image:w800


アプリ起動中のアイコン。5秒〜10秒待たされる。せめてまずはニュースの一部でも表示されて欲しいと思うのだが…。


f:id:yaneurao:20120620134053p:image:w800


BINGニュースらしい。画面下に注目。スライダーがあってこれをずーっと右側にスライドさせていかないと全文読めない。超超超横長のディスプレイを想定しているのか?んな阿呆な…。



f:id:yaneurao:20120620134054p:image:w800


スライダードラッグして動かさなくともマウスホイールを回すと画面の右側が見れるようだ。

しかし一昔前に流行った、個人が趣味で作っている自動生成系のマッシュアップサイト並のクオリティだ。こんなもの見るぐらいなら、ブラウザYahooニュースでも開いてくれたほうが遥かに読みやすくて嬉しいのだが…。



気を取りなおして「天気」をクリックしてみよう。住所を設定しておくとその住所の天気がいつでも見れるようだ。


f:id:yaneurao:20120620134926p:image:w800


一画面に収まってすらいない。もうちょっとそのスクロールせずにぱっと見れるようにしようとか思わなかったのだろうか…。仕方ないのでホイールを回して右側にスクロールさせると…。


f:id:yaneurao:20120620134927p:image:w800


おやおや何か出てきたぞ。なんだよこれ。株価チャートか!


f:id:yaneurao:20120620134928p:image:w800


表の見方すらわからない。下に表示されている数字単位が何かもわからない。(ちなみに今日6月20日からこの数字は日付を意味するものではないようだ) やばいな、この天気情報。何の参考にもならない。Yahoo天気のほうが100倍マシ。いらない機能つけなくていいんで、ブラウザYahoo天気が開くようにしてくださいよ、マジで



お次は「ビデオ」をクリックしてみよう。


f:id:yaneurao:20120620135759p:image:w800


今度は画面が見れたぞ、よしよし。


f:id:yaneurao:20120620135800p:image:w800


画像クリックするとそのビデオの紹介文が表示される。すまないが、この説明でこの映画を借りたいとは思わないんだけど。なんでこんなに文章ひどいの?機械翻訳なの?


ちなみに「レンタルアイコンクリックすると…。


f:id:yaneurao:20120620135801p:image:w800


Windows LiveIDサインイン画面が出てくる。まあ、これは仕方ないとして…なんだ、その…この「ビデオ」の機能だけどブラウザツタヤサイトでも開いてくれたほうがよっぽどありがたいんだけど。



気を取りなおして、「カメラアイコンを押してみよう。


f:id:yaneurao:20120620140526p:image:w800


カメラが繋がってないとこのような画面になります…。



ミュージックアイコンを押してみよう。


f:id:yaneurao:20120620140527p:image:w800


この画面はヤバいな…ショボ過ぎてこれで音楽を聴く気になれないのだが…。iTunesが立ち上がってくれたほうが遥かに嬉しい。



今度は「スポーツアイコンクリック


f:id:yaneurao:20120620141011p:image:w800


アプリの起動で5秒〜10秒待たされて…表示されたのが…


f:id:yaneurao:20120620141012p:image:w800


また超超超横長のレイアウト。文字の右端がちょんぎれていてスクロールしないと読めません。いい加減にしろ!


ブラウザYahoo!スポーツでも開いてくれたほうがよっぽど嬉しいし、そもそもスポーツなんか興味ないかWindows 8ログイン直後のアプリ画面に出てこなくていいんだよ。こんなの表示するスペースがあるならコントロールパネルとかシャットダウンさせるボタンとかを最初から配置しておいてくれ。



お次は「トラベルアイコン


f:id:yaneurao:20120620141953p:image:w800


例によって5秒〜10秒待たされる。このくるくる回る白いボールみたいなのがイライラを助長させる。


f:id:yaneurao:20120620141954p:image:w800


BINGトラベルが表示された!例によって右側にずーっとスクロールさせないと見れません。



f:id:yaneurao:20120620141955p:image:w800


おすすめ目的地」が表示される。何をどういう根拠でお勧めされているのかすらわからん。たぶん全員に同じものお勧めしているのだろう。こんなものなら、ブラウザYahoo!トラベルを開いてくれたほうが100万倍マシなんだが…。そもそも、そんなに旅行なんてしないかアプリトップ画面にでかでかと表示してくれなくてよろしい。



f:id:yaneurao:20120620142843p:image:w800


トラベルニュースクリックしたからだと思うが、アプリ画面にニュース(ニュース1つだけ)とトラベル(行き先1つだけ)が表示されるようになった。これはウザイな。アイコン部分に勝手画像が表示されるからアイコンの形状で何のアイコンだか記憶している人には迷惑以外の何物でもないな。


あと、IEアイコンは消してChromeインストールしてChromeとコントロールをアプリ画面に登録した。上図のようにChromeとコントロールパネルのアイコンはすこぶる小さくしか表示されない。設定で変更も不可。なにこれ、すごく見難いです…。



そう言えば時計はどこに行ったのだろう…。カーソルを画面右下にホバーさせてみると…。


f:id:yaneurao:20120620142844p:image:w800


出てきたけど…時計ぐらいつねにどこかに表示してて欲しいなぁ。あと、どうせならカレンダーとかスケジューラーがあったほうが…。いや、Microsoftさんは、こんなクオリティUIしか作れないんでしょうからGoogleカレンダーブラウザ自分で開きますはい



f:id:yaneurao:20120620142845p:image:w800


アプリ一覧なのだが…XPSビュアーとかステップ記録ツールとか文字コード表とか一般人がめったに使わなさそうなものを同じアイコンの大きさで表示していいのだろうか。すごく邪魔なんだけど…。一般人にとって一番必要なのはシャットダウン」「サスペンド」「コントロールパネル」ではないのだろうか。




以上、ざっとWindows 8 RPの目玉機能を調べてみました。皆さん、いかがでしたでしょうか。


「どっかの学校学生卒業制作で作ったUI」と言われたら私は信じてしまいそうです。こんな卒業制作出してきたら私が先生ならその生徒には単位あげませんが。ちなみに、この新しいUIMetroと呼ぶらしいのですが、名前のとおり地下にでも潜って、決して地上に出てきて欲しくないと思いました。

yaneuraoyaneurao 2012/06/20 15:18 Ubuntu 12.04を10.04とtypoしておりました。修正しました。すみませんすみません。

kkkkkk 2012/06/20 17:13 2年もまえのUIと比較してDisるなんてすごい!と思ったらやっぱりTypoですよね。
UbuntuのUnityも評判よくないみたいですけど、それ以下のMetroはもっと酷いですね。

yaneuraoyaneurao 2012/06/20 18:23 ↑Metroは2年前どころか20年前のUIと比較するぐらいでちょうどいいんではないでしょうか…と思うぐらいの残念なUIですね。

通りすがり通りすがり 2012/06/20 19:20 うーん、どんな環境で実行しているのか知らないですが、VMWare Playerで実行しても、各アプリの初回起動に5〜10秒はかからないですよ。1〜5秒くらいです。
あと、次からは1秒かかるかかからないかで起動します。
一応「初回のみ?」って書いてますが、さすがに批判が恣意的過ぎませんか?
そもそもMetroっていうタブレット向けUIだけ引っ張ってUbuntuっていうデスクトップ向けUIを比べてもしょうがないでしょう。
タッチパネルでUbuntu使って「糞UIだな!」って言ってる人がいたら同意出来ます?
Metro部分はAndroidタブレットとかiPadと比べましょうよ。
デザインは人の好みなので、別にどう批判しても良いと思いますが、タブレットUIとしてみると「いちいち色々でかい」「横スクロールが多い」という事の理由が想像つくと思います。
普通のWebサイトみたいに細々と文字のリストでニュース出されるより、でかいボタンで出された方がタブレットでは間違いなく使い勝手が良いはずです。
Metro版Windows8とデスクトップ版Windows8に分けて売れ、若しくは設定で完全に分離可能にしろ、という事を遠回しに言っているのであれば、同意しますが。
あと、時計くらい常に出てほしい、というのもものすごく同意です。

trickarttrickart 2012/06/20 20:11 ちなみにUbuntuは11.04からあのUIですよ。
Ubuntuもタブレット向けデザインなんですけどね。やはりデスクトップ用としては不満が出てるみたいですが。
個人的にはWinキー+数字でアプリランチャになってるのがWin7と統一されてて好みですね。

ごんべえごんべえ 2012/06/20 20:39 まともな意見すぎる。どうせ提灯かと思った
発売後にこの点は良かったから買いみたいな八方美人やらないでね

yaneuraoyaneurao 2012/06/20 21:39 ↑*3
> VMWare Playerで実行しても、各アプリの初回起動に5〜10秒はかからないですよ。1〜5秒くらいです。

VMWare Workstation 8.0 + USB3.0接続のHDDでテストしてました。それでやや遅かったのかも知れません。

ここでかかっている時間の正体についてはまだよく調べてないのですが、なんにせよ、ブラウザでサイトにアクセスすれば一瞬で表示される情報なのでそういう意味では「アプリの起動遅すぎない?」「アプリのレンダリング遅過ぎない?」みたいな話にはなると思います。

> Metro部分はAndroidタブレットとかiPadと比べましょうよ。

Metro搭載のタブレットがあるとします。MetroのUIでは長手方向を横方向にしての使用が前提になっているのだと思うのですが、普通の多くのサイトは縦長です。つまり、「スポーツ」を見て、次にブラウザでどこかのサイトを見ようと思うとその都度タブレットを90度回転させないといけないということになります。現在、PCに費やす時間の多くはブラウザ作業なので、この点ひとつ取っても非常にイケてない設計だと私は思うのです。

tabataba 2012/06/20 22:04 Win8が大コケした後は林檎がシェアを奪っていくと予想。

t_tutiyat_tutiya 2012/06/20 22:07 個人的にはWin8はタブレット市場をAppleと二分する力を持っていると思っています。UIもレスポンスも後から修正出来ますし。と、折角なので記録を残してみたり。

通りすがり2通りすがり2 2012/06/20 22:32 デスクトップPCでは、無理にMetroアプリを使わなくても良いと思いますよ。
既にされているように、Chrome等をスタート画面の目立つ場所に置いておくのが正しい使い方と思います。
使用頻度の低いアプリは検索で。

と 2012/06/21 03:33 Metro部分はタブレット向けなんだからAndroidタブレットとかiPadと比べろっていってる人がいますが、PC向けOSでもある以上PC向けOSとも比べられるのは当たり前でしょう。
根本的な問題はタブレット向けとしては使いやすいUIもPC向けとしては使いづらいってことでしょう。
iPadであれだけ成功したAppleですらPC向けOSとタブレット用OSを明確に分けているのはなぜなのか考えたらわかると思うのですが。
個人的にはWindows8はVISTA以上に受け入れられないと思います。

AgateAgate 2012/06/21 03:39 コンセプトそのものはいいのにね。

とおりすがりとおりすがり 2012/06/21 04:54 Windows使いの人がMac触って分化が肌に合わないのを設計方針が糞だって批判してるのと同レベルの記事になってるので、ちょっと文句言わせてもらいます。

>画面に収まってない
端が切れるってのは「コンテンツが続いていることを示すサイン」で、「そういうUI設計方針」だったはずです。
「コンテンツの続きがある時はスクロールバーが表示されていて云々」って説明がなくとも続きがあることを初心者に理解してもらうためのデザインです。
横長を想定したデザインってわけではありません。
そんなUI設計方針なんてクソ食らえって意見ならともかく、UIの設計方針を理解もせずに一見で批判するのはどうかと思います。
自分の住んでいる場所とは違う文化圏を「俺の知っている文化じゃないからゴミだ」って批判するのは見当違いです。

>Windows 8を使ってるユーザーとしかコンタクトの出来ない機能
Windows 8というよりWindows Liveでは?

>Windows LiveのIDのログイン画面が出てきたのでこれまたアイコンを消してやった
Android端末でGoogleのアカウントと紐付くサービスを無視して評価するとか、iTunesと紐付くサービスを無視してiOSを評価するのと同等の行いのような気がします。
Windows Liveを避けて使うなら避けて使うで、「標準ではWindows Live前提になっているので一通り入れ替える必要がある」程度の評価に留めるべきです。
一々各アプリの評価としてWindows Liveだからゴミって書いてくのは冗長だしアンチ臭いです。

>時計ぐらいつねにどこかに表示してて欲しいなぁ
そういうタイルを追加しろって話だと思いますが。
デフォルトでタイルが入ってないのは問題ですが、表示できない仕様ってわけじゃないでしょう。

とおりすがりとおりすがり 2012/06/21 11:53 天気のグラフの下にある数字は月でしょう
英語版では文字表記だったのを翻訳者が数字に直したってことくらいわかりませんか

yaneuraoyaneurao 2012/06/21 12:02
月でしたか…!年間の気温の変化なんですね、なるほど…。私は「天気」は「天気予報」(近々の天気の予報)のことだと思い込んでいたのですが、これは「天気」なんですね。そうかそうか…。

yaneuraoyaneurao 2012/06/21 12:03 ↑*3
> Windows 8というよりWindows Liveでは?

なるほど。Windows Live Messengerなど、Windows Liveを利用している人とならチャットが出来るようですね。いま仕組みを理解しました。他の人が掲載していたスクリーンショットを見る限り、voice chatは出来ないような?ならば、Windows Live Messengerでいいような気がします。

しかし私がWindows Live Messengerの何がまずくてSkypeに乗り換えたのかと言うと、Windows Live Messenger、他のところでログインするともう片方からはログアウトしてしまう仕様のようで(OSXのMicrosoft Messenger for Mac 8.0.1と、WindowsマシンでWindows Live Messengerとを併用して確認)、同時ログインできる設計になっているSkypeとは使い勝手が違います。

Skypeのほうは、片側のマシンの電源を切っている状態で、別のマシンで受信したメッセージであっても、その切っていたほうのマシンがオンラインになったときに、それらのメッセージを受信できます。Windows Live Messengerはこれが出来ず、複数のマシンを使う場合、会話が途切れ途切れになって非常に困るのです。

あ 2012/06/21 14:51 コメ欄に、続いていることを暗に示す意図があるとか言っている人がいるけど、冗談だろう。ニュースとかリスト表示にしてくれた方が、時間を喰われなくていいよ。確実にコケるね

Ta(ryTa(ry 2012/06/21 19:02 これは使いたくないw
いくら親指を横に動かす操作がとても効率的だったからってこれは使いたくないw
iPhoneの横へスワイプする操作に毒された製品による低迷期が続くのか。

髭と私髭と私 2012/06/21 21:15 WindowsPhoneも、触ってみた時のガッカリ感が半端無かったので
同意できますね

この気持ち、まさしく愛だこの気持ち、まさしく愛だ 2012/06/21 23:43 >こんな卒業制作出してきたら私が先生ならその生徒には単位あげませんが。
のくだりがクヌースとTEXをdisってる↓のコラムを彷彿とさせるノリですね
http://nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/h/tensai
(初出は確か95年頃のインターフェース誌)

yaneuraoyaneurao 2012/06/22 01:37 ↑萩谷昌己さんのエッセイですね。私もTEXに関しては萩谷さんと同じような思いが少なからずあります。

ところで、そのテキスト、いまでも貴重な資料だと思うのですが、いまどきのブラウザですとエンコードとしてISO-2022-JPを指定しないと読めないのが何ともアレですね…。

06/21 04:54の通りすがり06/21 04:54の通りすがり 2012/06/26 10:23 ↑*5
>続いていることを暗に示す意図があるとか言っている人がいるけど、冗談だろう
公式の解説かは知りませんが、冗談じゃなく、Windows Phoneの解説書か何かでそう説明されてました。
↑*6
Windows Liveは使い勝手の悪さが売りなんじゃないかと。
記事に文句言いながらこういうのもアレですが、Windows LiveのHotmailとか重いわLocalProxyと干渉でもしたのかIEですらエラー吐くわPOP3アクセスもしょっちゅうエラーになってるわ…メッセンジャも重いわしょっちゅうログイン失敗するわ、Liveサービスってダメな印象しか無いです。

valpvalp 2012/07/03 18:37 Windows Live Messengerは、Windows版やWindows Phoneだと複数箇所同時にログインできるようになったのですが、未だにMac OS X版は非対応なので困ります。

koremokoremo 2012/07/04 06:25 Metroについてわかりやすく解説されているページ
ttp://blog.fenrir-inc.com/jp/2012/04/metro-ui.html

aruefuaruefu 2012/07/04 15:13 横長すぎて記事まで隣にかかってしまっている物は、単にMSが「メトロとはこんなデザイン」と見せつけるのに気負いすぎただけだとおもいます。

WindowsPhone7.5のアプリも「記事は横ぴったりで下スクロールの方が良いんだ」って作られた物も多いですし、ニュース表示とかはそう言う不満を持った人がたぶんすぐに「こういうのが使い勝手が良いんだっ!」っていうものを開発してくれますよ。

あとは音楽CDの2,3枚も入れていない空の状態で「音楽アプリがしょぼい」というのはどうかと。
iTunesだって音楽いれてなくてオフラインで初めて見てどのような使い方出来るのか分からない状態で「カッコイイ・使いやすい」とはならないでしょう?

でもRP版のメールアプリが暫定過ぎるのは確かに不満。Hotmailを正しく設定して1度目の起動時は受信したのに2回目からは無反応になったし(汗)

satesate 2012/07/05 21:03 少なくともUbuntuよりWindows8の方がずっとましなのはよく分かった

(また都合の悪い書き込みは隠蔽されちゃうかな?)

yaneuraoyaneurao 2012/07/05 21:07 ↑ここはチラシの裏じゃないのよ!ヽ(`Д´)ノプンプン

批判でもなんでも大いに結構なんですけど、他のコメントをしている人たちを見習って、何か読者にとって有益な書き込みをしてくだされ。

Win7最強Win7最強 2012/07/12 02:15 この記事はいくつかの出来の悪いメトロアプリを批判しているだけにとどまってます。
今のメトロアプリは確かにすべからく酷い出来ですが、アプリが改善したらそれで万事解決です。
これではWindows8の暗黒面は伝わらないです。
自分はWindows8の本質的な問題は、デスクトップとメトロとの相互運用性にあると思ってます。
アプリの終了や切り替え方法、右クリックのような暗黙の了解のある機能に対する挙動の違い、デスクトップとメトロアプリにおけるチャームの役割の違い、などなど。
まるでVMなどでLinuxとWindowsを切り替えて使っているかのような、いやそれ以上にギャップのあるものを押し付けているのがWindows8なんです。
デスクトップ単体なら、Windows8は性能改善され、悪くないOSになってますし、メトロだけなら出来の良いアプリが出てこれば十分に使えるものになるとおもいます。
これらが混ざることによって最悪なものになっているんです。

2012-06-15 twitterの使い方がわからん

[] twitterの使い方がわからん  twitterの使い方がわからんを含むブックマーク  twitterの使い方がわからんのブックマークコメント


いまだにtwitterの使い方がよくわからない。最近ダイレクトメッセージという機能があるのに気づいた。気づいたというか、以前見た気がするんだけどすっかり忘れていた。いま確認したらどっさり送られてきていた。ごめん。反省はしてない。あと、公式リプライ?んなもん知らんがな!


まあ、それはそれとして、twitterをどう活用していいかわからん。たった140文字で何が書けると言うのだ。140文字で面白いことが書けるとでも言うのか。


f:id:yaneurao:20120615100914p:image*1


こうか?こうなのか?この書き込みは面白いのか?わからん。さっぱりわからん…。


■ 追記(2012/6/15 20:30)


f:id:yaneurao:20120615202423p:image


今回のツイートをして10時間後にfavstarで調べると30 FAVS、48RTSだった。そこそこふぁぼられている。ふだんこの手のツイートをしない私が突然このようなツイートをしてもきちんとふぁぼられるのは凄いと思った。


きっと今回のツイートは私のフォロワーでかつネタクラスタに属する人がRTして、それを見た人がRTすることによって、ネタクラスタ内で何度もRTされて、その結果、ふぁぼられたのだと思うのだけど、このように元のメッセージ指向性によって、そのメッセージを読むに適したクラスター周辺で連続的にRTされ、自動的にそのメッセージを読むべき人の元へとツイートが到達する。


twitterは単純な仕組みながら、よく出来たメッセージの伝達システムなんだなと思った。


■ 追記(2012/6/16 23:30)


f:id:yaneurao:20120616233112p:image

さらに1日経過して52 FAVS , 84RTS。初めて50 FAVSを突破した。

だいたいのさじ加減がわかった。

hoaruenayhoaruenay 2012/06/15 19:05 Twitterは自分でつぶやくよりも、他人のつぶやきを検索する使い方の方が面白いですね。例えば渋滞の時に「京都 1号線 渋滞」とかで検索すると、何で渋滞してるのかが分かったりします。

yaneuraoyaneurao 2012/06/15 20:42 なるほど。そういう使い方が!

通り(略通り(略 2012/08/05 15:16 私もツイッターの使い方がよく分からないから、なにか高度な使い方の記事かと勝手な期待を抱いて見たところ、見事にタイトル通りの記事でございました…(笑)

トラックバック - http://d.hatena.ne.jp/yaneurao/20120615

2012-06-13 【速報】Thunderbolt→Giga Ethernet Adapterが地雷

[] 【速報】Thunderbolt→Giga Ethernet Adapter地雷  【速報】Thunderbolt→Giga Ethernet Adapterが地雷を含むブックマーク  【速報】Thunderbolt→Giga Ethernet Adapterが地雷のブックマークコメント


MacBook Air(以下MBA)にはUSB3.0LANポートがなくて、USB2.0WiFiがメインだったわけですけど、昨日のWWDCでThunderbolt→Giga Ethernet Adapterが発表になり、それもたったの2,800円。


MBA使いの皆さんは当然Apple Online Storeでポチってて、明日にはご自宅に配送されてくると思うのですが、気の早い人は店頭で購入しているのかも知れませんね。


このアダプターを使うにはThunderbolt Software Update 1.2が必要なのですが、これが重度のバグ持ちだったらしく*1、配布が現在止まっています。


参考)

Thunderbolt Software Update 1.2 Causing Boot Failures for Some Users

http://forums.macrumors.com/showthread.php?t=1384982


いやはや。新製品導入の際にはタイムマシン必須ですね。

*1インスト失敗→再起動カーネルパニック→起動失敗→再起動→起動失敗の繰り返しらしい。

yaneuraoyaneurao 2012/06/14 15:21 Thunderbolt Software Update 1.2を入れて起動しなくなった人は、↓この方法でなおるらしい。
http://www.alexhutnik.com/2012/06/13/how-to-fix-kernel-panic-from-thunderbolt-update-1-2-without-reinstalling-os-x-lion-or-booting-from-another-mac/

yaneuraoyaneurao 2012/06/15 06:46 まだ新しいThunderbolt Software Updateが来なくて使えない。もどかしい。

日本のオンラインのApple Storeのほうは誰も動いた/動かないについてレビューを書いておらず。

U.S.のほうは、not workingで★1つの人と、Thunderbolt Software Update 1.2を当てて動いて★5つの人と二極化。

yaneuraoyaneurao 2012/06/16 20:56 まだThunderbolt Software Updateの新しいのが来ない。なのに誰も日本のオンラインのApple Storeの商品ページにコメントを書かない。たぶん日本のApple信者はよく訓練されていて、こんなことは日常茶飯事であり、書き込む前にググってちゃんと調べるんだろうな…。

yaneuraoyaneurao 2012/06/17 07:44 KBが公開されました。

Mac is unresponsive on startup after installing Thunderbolt Software Update 1.2
http://support.apple.com/kb/TS4303

> Apple apologizes for the disruption this caused for customers with affected Macs.

よしよし許してやるぞよ。

> Apple is investigating this issue and plans to release a new version of Thunderbolt Software Update 1.2 soon.

お待ちしておりまする。

yaneuraoyaneurao 2012/06/19 20:06 来ました。

Thunderbolt Software Update 1.2.1
http://support.apple.com/kb/DL1544

OSXのソフトウェアアップデートに来るまで待ったほうがいいのかも知れませんがせっかちなのでさっそく適用してみます。

yaneuraoyaneurao 2012/06/19 20:27 Update適用しました。普通に動いてます。VMWare fusionで使用している仮想マシンのファイルをWindowsマシンの共有フォルダに転送してみたところ平均的には50MB/s程度でした。

yaneuraoyaneurao 2012/06/20 01:02 なんかケーブルがちょっと熱くなりますね。

USB3.0とThunderboltの発熱具合の比較。
http://www.tomshardware.com/reviews/thunderbolt-performance-z77a-gd80,3205-6.html

Thunderboltケーブルはアクティブなときに50℃ぐらいになるようです。

ありゃありゃ 2012/06/20 20:26 ウチのは今回のバージョンアップを適用したら、ブラックアウトしてしまい、電源を切って再起動を試みたら、ブートできなくなりました。ディスクユーティリティでも復元できません、と言われました。

トラックバック - http://d.hatena.ne.jp/yaneurao/20120613

2012-06-04 銀行振込だと領収証を発行しない?

[] 銀行振込だと領収証を発行しない?  銀行振込だと領収証を発行しない?を含むブックマーク  銀行振込だと領収証を発行しない?のブックマークコメント



なんかときどき銀行振込なのに領収証を発行してくれという会社さんがいて困る。収入印紙もタダじゃないんだぞ!と私は思う。


ちょっと私の理解を以下につらつらと書いておくので間違ったことを書いていたらコメント欄で教えていただきたい。



■ 領収証の発行を請求する権利


民法 第486条に次のように書かれている。


「弁済をした者は、弁済を受領した者に対して受取証書の交付を請求することができる。」


まり領収書の発行を請求する権利はある。請求されたほうは、これに応じなければならないとは書かれていないし、応じなかったときの処罰に関しても書かれていない。


とまあ、とんでもなく穴のある書き方になっているように思えるのだが、日本の商慣習上は「領収証の発行を請求されたらそれに応じるべき」と考えられている。


ゆえに、以下では領収書の発行の請求に素直に応じるものとして話を進める。



収入印紙の額


領収証には収入印紙を貼らなければならない。記載された受取金額に応じて次のように定められている。


3万円未満→非課税

100万円以下→200円

100万円超200万円以下→400円

200万円超300万円以下→600円

300万円超500万円以下→1千円

(以下略。詳しく知りたければググれ)



■ 領収証に貼る収入印紙は誰が負担するべきなのか


領収証に貼る収入印紙は誰が負担するべきなのか。


これは、印紙税法 第3条の2に次のように定められている。


「(納税義務者) (中略)…その作成した課税文書につき、連帯して印紙税を納める義務がある。」


このことから文書の作成者(領収証の発行者)が負担しなければならないことがわかる。



銀行振込時の印紙税


銀行振込をする場合、振込み金額が3万円以上になると振込み手数料が少し上がる。


ATMから打ち出される振込み明細には「印紙税申告納付につき××税務署承認済」と書かれている。このことから、振込み手数料印紙税が含まれていることがわかる。



■ 誰が印紙税を支払うべきか


誰が印紙税負担しているのかよく考えてみよう。


1) 銀行振込→振込みする側が印紙税負担する

2) 領収証→お金を受け取った側が印紙税負担する(収入印紙を貼る)


1)と2)では印紙税負担している側が違う。

1)の場合常識的には振込みする側が振込手数料負担する。



銀行振込されたお金に対して領収証を発行するのは何故おかしいのか


銀行振込には振込み手数料印紙税が含まれていると考えられる。銀行振込のときに領収証を発行して収入印紙を貼った場合印紙税が二重に課税されていることになる。


からと言って「銀行振込だから振込み時に印紙税負担しているはずなので、領収証に収入印紙を貼らなくてよい」という取り決めはない。領収証を発行する以上は(記載された受取金額が3万円を超えるならば)収入印紙は貼らなければならない。


常識的には同じ種類の税金が二重に課税されることはないはずなので、これはおかしいように思えるし、日本の商慣習上も、銀行振込されたお金に対する領収証は発行しないのが普通である



■ 本当に印紙税は二重に課税されることはないのか?


AさんがBさんに3万円で何かを売るとする。このときAさんがBさんに領収証を発行し、収入印紙を貼る。


さらにそれをBさんがCさんに3万円で売るとする。このときBさんがCさんに領収証を発行し、収入印紙を貼る。


以下、何度もそれを他の誰かに売るごとに、領収証には収入印紙が貼られることになる。


これは印紙税が二重に課税されていることにならないのだろうか?


上記の例は非現実的な例だと思われるかも知れないが、上記の例と同じ構造で、次のようなケースが起こり、現実的によく問題となる。


例) 建設工事で重層的な下請関係があるとき、一つの工事に対して、工事請負契約書が下請けの数だけ存在していて、工事請負契約書の数だけ収入印紙を貼っている。


この場合などは明らかに多重に印紙税が課税されている。


まり、このことから印紙税が多重に課税されてはならないという原則など存在しないのではないように思える。上記のような例は「多重に課税されているとは解釈しない」と主張する人もいるようなのだが…。


ともかく、印紙税法自体が二重納付が発生しうるおかし税制なのだと私は思う。



■ まとめ


日本の商慣習上、銀行振込のときは領収証は発行しない。その理由は「印紙税が二重納付になるから」というのが模範解答なのだと思う。


しかし印紙税の二重納付になるとまずいというその法的な根拠がどこにあるのかは私にはよくわからない。誰かコメント欄で教えてくだされ!


.

yaneuraoyaneurao 2012/06/04 07:18 それとも……印紙税は二重納付になるのはまずくないが、銀行振込の明細には証拠能力(?)があるので領収証がなくとも経理上、これで事足りるので領収証を発行してもらう必要がない。

領収証を発行してもらっても構わないが、必要のない手間を相手に負担してもらうこともないので普通は銀行振込のときは領収証の発行を請求しない。

ということなのかな…。

allezvousallezvous 2012/06/04 13:25 ちょっと調べてみましたのでご参考までに。なお、私は法律の方は専門ですが租税の方はかじっただけです(租税法の文献は参照しています)。

>■ 領収証の発行を請求する権利

>つまり、領収書の発行を請求する権利はある。請求されたほうは、これに応じなければならないとは書かれていないし、応じなかったときの処罰に関しても書かれていない。

民法をはじめとする民事実体法では、権利規定があるときには反対側に義務があります。二重に記載すると文章量が増えて無駄なので、権利と義務のどちらかしか記載しません。判例上も、弁済の交付義務と受取証書の交付義務が同時履行の関係にあるとされています。

>■ 領収証に貼る収入印紙は誰が負担するべきなのか
>このことから文書の作成者(領収証の発行者)が負担しなければならないことがわかる。

納付義務者は文書作成者ですが、経済的負担を誰が行うかは契約内容によって決まります。
なお、納付義務が誰にあるかは、滞納の場合に徴収を誰に対して行うかという場面で問題になります。

>■ 銀行振込時の印紙税
>ATMから打ち出される振込み明細には「印紙税申告納付につき××税務署承認済」と書かれている。このことから、振込み手数料に印紙税が含まれていることがわかる。

そうですね。

■ 誰が印紙税を支払うべきか

>1) 銀行振込→振込みする側が印紙税を負担する
>1)の場合、常識的には振込みする側が振込手数料を負担する。

これは契約ないし慣習の問題で、どちらが印紙税を負担するかの決定は当事者次第です。印紙税法にいう納税義務者はどちらでもありません。
銀行振込の場合における印紙税法の納税義務者は、預金通帳が同法別表第一の第18号物件であることから、預金通帳の作成者である金融機関となります。

>■ 銀行振込されたお金に対して領収証を発行するのは何故おかしいのか

>銀行振込には振込み手数料に印紙税が含まれていると考えられる。銀行振込のときに領収証を発行して収入印紙を貼った場合、印紙税が二重に課税されていることになる。
>だからと言って「銀行振込だから振込み時に印紙税を負担しているはずなので、領収証に収入印紙を貼らなくてよい」という取り決めはない。領収証を発行する以上は(記載された受取金額が3万円を超えるならば)収入印紙は貼らなければならない。

おっしゃるとおりです。印紙税法上、課税文書(契約書や領収証等の、印紙税法2条の課税物件たる「課税対象となる文書を作成すること」の対象文書のことです。)ごとに印紙税が課されることになっているので、収入印紙を貼らなければなりません。

>常識的には同じ種類の税金が二重に課税されることはないはずなので、これはおかしいように思えるし、日本の商慣習上も、銀行振込されたお金に対する領収証は発行しないのが普通である。

まさに印紙税が二重に発生してしまうという理由が、振込の場合に領収証を発行しない慣習が成立する根拠の一つです。ほかの根拠には、銀行振込と領収証とで、別個の売上が2件あるように見えてしまいかねない点や、領収証の郵送費用負担をどちらがするかという問題が発生する点があります。

>■ 本当に印紙税は二重に課税されることはないのか?
>以下、何度もそれを他の誰かに売るごとに、領収証には収入印紙が貼られることになる。
>これは印紙税が二重に課税されていることにならないのだろうか?

課税文書が複数あるので、二重課税にはなりません。実質上も、契約が複数あるので、二重という考え方自体が妥当でないといって問題ないと考えます。
そもそも、印紙税が課税されるのは、契約書や領収証等の文書が作成されるところには、経済取引があり、利益が生まれているので、ここに担税力を見いだしたという理由です。

>つまり、このことから、印紙税が多重に課税されてはならないという原則など存在しないのではないように思える。

1つの契約に対して2度印紙税を課税することを「多重課税」というならばおっしゃるとおりなのですが、印紙税法では、文書ごとに印紙税を課しているので、多重課税とはなりません。印紙税法が課税標準を文書ごとにする理由は、契約や弁済を課税標準としてしまうと、口頭の契約や領収証の発行を伴わない弁済をも課税標準とすることになり、課税標準の発生の有無が紛争になりやすいことから、税収額に比べて租税行政上の負担が過大になるためです。

>ともかく、印紙税法自体が二重納付が発生しうるおかしな税制なのだと私は思う。

契約ごとに納付義務が発生すると考えるとその通りですが、現行法上、そのような考え方は採用しないところです。

yaneuraoyaneurao 2012/06/04 18:58 ↑細かく教えていただき、ありがとうございます。大変勉強になりました。

yaneuraoyaneurao 2012/06/04 19:08 ときどき六法全書なんかを読んでいてプログラマーとして気がつくのは

・六法全書は意外と読みやすい(プログラミング言語に似ているから?)
・法律の言葉って、もっと厳密に定義されているのかと思ったら、案外そうでもない。(プログラミング言語ほどではないという意味で)

いかに法律用語と言えども自然言語に依拠していたり、あるいは判例ベースで考えないといけなかったり、そのへんがプログラミング言語とは少し違うなぁと思います。

しかし実際のプログラミングにおいても他人のソースコードの変数の意味を解読するために実際にソースコード全体に渡ってその変数の用法(用例)を調べたり、実際にプログラム全体を実行させてみてその結果から推察することはあるので、そのへんの感覚は似たものがあると思います。

結局、何が言いたいのかと言いますと、プログラマーなら六法全書をプログラミング言語だと思って読むと楽しめるんじゃないかというお話でした。

andalusiaandalusia 2012/06/04 19:22 印紙税は、課税文書に対して課税されるものです。
文書がなければ金銭を受け取っても課税されませんし、
契約書を3通作成して甲乙丙それぞれ保管・・・みたいな場合は3倍要ります。
ということで二重課税になるのはまぁ当然ということで。

あ、あと法律(というか通達上)、こういうケースは予め想定されています。
http://www.nta.go.jp/shiraberu/zeiho-kaishaku/tsutatsu/kihon/inshi/betsu01/07.htm
の第17号文書の4をご覧ください。

『売買代金等が預貯金の口座振替又は口座振込みの方法により債権者の預貯金口座に振り込まれた場合に、当該振込みを受けた債権者が債務者に対して預貯金口座への入金があった旨を通知する「振込済みのお知らせ」等と称する文書は、第17号文書(金銭の受取書)に該当する。』

yaneuraoyaneurao 2012/06/04 20:11
> ということで二重課税になるのはまぁ当然ということで。

なるほど、そうか…そうなんですね…。

> 第17号文書の4

なるほど!大変参考になりました。ありがとうございます。

マルサのおっさんマルサのおっさん 2012/06/04 22:11 結論としては相手方にとっての節税対策なんですかねぇ(´・ω・` )

モノたろうモノたろう 2012/06/05 00:34 印紙税は、(紙の)文書に対して課税するという、古い税法なので、いろいろと不具合もあります。
電子データなら課税されないとか、細かいところで時代遅れとなっています。
民法は素人なのですが、民法 第486条 の受取証書を電子データでのみ発行する特約をもうけた場合、これは有効なのでしょうか。
電子署名つきPDFでも出せば相手もなっとくするのかな?
まぁ、税務や会計上では紙の領収書にこだわりはないですが、たまに社内ルールで紙(宛名手書き)に限る。
なんていうところもありますが。

ちなみに、税法は他の法律に比べて定義、構成がしっかりしている、と言われていますが、それでもかなりアバウトです。
きっちり書きすぎると、かえって穴が多くなってしまうのでしかたがないとはいえ、そのアバウトな部分にしょっちゅう泣かされています。

たろうたろう 2012/07/04 18:41 そうそう
だからネットバンキングだと
全く印紙税取られないんですよね。

なので主さんもネットバンクとかクレジットにすれば
領収書発行しろの要求にもイラダチは覚えないかもですよ。

たろうたろう 2012/07/04 18:41 すいません7月かと思ったら6月の記事でした

通りす(略通りす(略 2012/08/05 15:44 つまり「領収書」と称した私文書にそれっぽいことを書いて、会社印なり領収印なりを押して交付すれば事足りるという理解です。

tennteketennteke 2012/08/22 21:18 会社の経費で本を買うとき、まず図書カードを購入して領収証を貰い、その図書カードで本を購入してまた領収証を貰う人がいました。
あと昔のテレビ番組「大橋巨泉のこんなモノいらない」で印紙を採り上げたことがあり、双方が契約書を同時に朗読し捺印する、その一連の行為をビデオカメラに納めたら書類に署名捺印するわけではないので印紙はいらない、ってやったことがあります。

通りすがり通りすがり 2017/09/07 22:19 あのー、無知ですみませんが、私も二重徴税になるのではと思います。

印紙税としての二重取りという意味ではなく、売上金額に対する領収証で印紙税を取られ、また、その売上の一部は所得でもあるわけで当然、所得税を課税される訳ですよね。

一つの利益に対して、税金を重複してかけられる事になりますよね。

そうじゃないのかな?

トラックバック - http://d.hatena.ne.jp/yaneurao/20120604

2012-06-03 金の切れ目が縁の切れ目

[] 金の切れ目が縁の切れ目  金の切れ目が縁の切れ目を含むブックマーク  金の切れ目が縁の切れ目のブックマークコメント



「金の切れ目が縁の切れ目」の「縁」って「円」に掛けてあったんだな…。


39年も生きてきて、ようやくいま気づいたわ…。



.

Roy.Roy. 2012/06/03 22:36 うわ、37年生きてきた私も、言われて気づきました

人生お金じゃない!っていいたいところだけども

トラックバック - http://d.hatena.ne.jp/yaneurao/20120603
 | 

1900 | 01 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 06 | 08 | 10 | 11 | 12 |
2015 | 01 | 02 |


Microsoft MVP
Microsoft MVP Visual C# 2006.07-2011.06