はてなキーワード: 取説とは
俺はTOEICで200点前後しか取れない、欠陥プログラマーだ。
システムを作っていると、取説が英語のみだったり、ライブラリが英語だったりして、なかなかに辛い。
中国人グループが突如やってきて、根ほり葉ほり聞いてくるのだが、英語だった。中国語も話せて英語も話せてすばらしい連中だ。が、アポも取らず、ノウハウを聞きに来るのはやめてくれ。それ以前に、日本語で話せ。っていうか、なぜノウハウを聞きに来たのかよく分からんのだが、後で調べたら、どうやら弊社のプロジェクトで「中国国産化作業」というのを受注したらしい。ナニソレ???日本人が作って、日本人が中国人にノウハウ教えて、それが「中国国産化」なんですか?わけわからん。何考えてんだ、これ受注した馬鹿は。中国国産化以前に、弊社はエンジニアリング会社なんだから、ノウハウ漏らしちゃだめだろ。これだからエンジニアリングを理解していない経営者や管理者が(ry
あるシステムのプログラムをしていた時の事だった。上司が外注を雇ったのだが、俺のところにやってきたのは中国人だった。日本語はそれなりに話せる。が、プログラミング能力はイマイチだった。不具合多いんだよな。組み合わせ試験すると全然進まないので、直せ、と言ったんだが、絶対に自分のミスを認めない。仕方が無いので、不具合の証拠を突きつけてもミスを認めない。さらに仕方が無いので、上司に相談したんだが、「お前が直したら?」との返答。わけわからんわ。
それ以降、時々中国人プログラマーと仕事をする事があったんだが(外注に出すと、外注がさらに中国に下請けに出す事が多い)、概して、自分のミスを認めない。仕事がやりにくくてたまらん。
あるシステムの総合試験をしていた時の事だった。なんか広報みたいな人が外国人をぞろぞろ連れて見学に来た。ここは関係者以外立ち入り禁止だし、企業秘密事項も多いところなんだがな。その辺はどうでもいいのか、このボケ、とは言わなかったが、黙々と試験を続けていた。その広報みたいな人が突如英語で話すと、一斉にその外国人達は俺に英語で話しかけてきた。韓国人だったけどね。つーか、ここは日本だ、日本語で話せ。英語が分からない俺は、ところどころ聞こえてくる専門用語(さすがに専門用語は世界共通だから聞き取れる)から判断するに、やっぱりシステムのノウハウを聞きたがっているようだ。試験のじゃますんじゃねー。
それ以降、時々韓国人SEと仕事をする事があったんだが(何故かSE業務を韓国人がやっている日本製品???)、こいつら契約って言葉を知らないのか、不都合があると来なくなる、逃げる、果てには帰国してしまう。SE業務を外注に出し、しかも出したら韓国人が来た、というオチの上司に相談したら「お前がやったら?」との返答。タヒね。今までの経験上、韓国人と仕事をすると、逃げられる事が多い。仕事がやりにくくてたまらん。
別に外国人すべてがそう、とか言うつもりは無いが(上海人の友達もいる事だし、別に外国人が嫌いではないし、差別するつもりもない)、仕事を一緒にするのはご勘弁願いたい。お友達として増えるのは歓迎だが。特にアキバ系オタク。これから先、ベトナムやインドに出す事が多くなるだろうが、そこの人達はどんなんだろうなぁ……。日本人の優秀な奴を当ててくれよ。俺、英語が出来ないんだから。
あるシステムの開発をしていた時の事だった。突如東京のメーカーが「システム構築のノウハウを教えてくれ」と来た。つーか、あんたら誰?アポも取らずに何しに来たの?どうやらあるハードとソフトの組み合わせでシステムを構築しようとしたんだが、うまくいかなくて困っているらしい。俺はそのハードとソフトの組み合わせでミッションクリティカルなシステムを構築していたから、その辺を弊社の誰かから聞きつけて聞きに来たらしい(弊社に来たのは別の用件だったようだ)。そりゃ色々ノウハウはあるが、なんで他社に教えなきゃならんの?「そう言われても、そんな風に作ったから、としか言えないんですけど」とお茶を濁した。
・簡易留守録は携帯の内部に留守電を録音、1416留守番電話(センター留守録)は、留守番電話センターのサーバに録音し、1416番でそれを聞きに行くものである。
・1416留守番電話(センター留守録)は、ソフトバンク同士、他キャリア関係なく(同額)、
けっこう高額(1通120円など)な通話料がかかる。
・よって、通常は簡易留守録にしておき、携帯を切っている時は、自動的に1416留守番電話(センター留守録)に録音できるようにすると良い。
[設定方法]
●シャープ系
→ 応答時間設定 → 29秒
・待ち受け画面 → CLEAR/BACKボタンを3秒長押し
●831N
簡易留守録を利用する
取説 3-4
→呼び出し時間を29秒にする
取説 3-17
→呼び出し時間を30秒にする
簡単携帯とは名ばかり。
NECにはUI(ユーザーインターフェイス)デザイナーが一人もいないのでしょうか?
電話帳への登録・削除といった基本的な事すら簡単にできない。
電話帳の相手先を削除する場合に「電話"帳"削除」メニューから入らなくてはできないなど、日本語すらおかしい。
今まで様々な工業製品を使用して来ましたが、情報機器カテゴリー内ならまだしも、一般家電まで含めて
これほど使いづらい製品は初めて見ました。よくこんな製品を販売する気になりますね。
肝心の老人向けも、UIが悪いので、まず何をしていいのかがわからないのでは意味がないでしょう。
http://anond.hatelabo.jp/20100207000918
どうやら、ネットに関しては、そこらへんにボーダーラインがあるらしい。同じ歳で携帯電話で写真を撮って保存してメールするということが出来ない人がいる一方で、仕事の打ち合わせはほとんどメールという人もいる。
昔昔(10年くらい前かなあ)はインターネットに電話を繋ぐのは、通話料(3分10円)と同額かかるから、下手にネットでうろうろしようもんなら、あっと言う間に電話代の請求書が1万円超えたんで、私より上の世代の新しいものに飛びつかない層は、どうもインターネットそのものに手を出していないっぽい。そのころ、テレホーダイってサービスがあって、夜の11時越えると定額(月1800円だったかな)で電話をつなげるようになったので、11時から12時、夜中の1時くらいまでがネット時間だったなあ。
そのうちADSLってのが出来て、24時間繋ぎっぱなしで定額になったから、もう、ぜんぜん接続料意識しないで使うようになって、今じゃ、そこそこ使えるけれども。10年前に電話代がもったいないと思ってたら、きっと、今でもネット使えなかったろうなあーと思う。現状でも新しいシステムは覚えられない。システムを作っている人の思想が読めないので、直感で操作出来ないから、使えるようになるまでに時間がかかる。新しい予約システムなんて、取説見ながらじゃないと、絶対出来ないだろうなあって自信があるよ(;^_^A
84歳の父はパソコンでインターネットを使うけれど、入力は私に頼んで来る。キーボードの使い方を覚えられないんだって。83歳の母は新しいシステムが覚えられないようで、携帯電話のメール機能さえ使えない。電話をかけて機械の声で応答されると切ってしまうほどの機械オンチだから、その病院の新しい予約システムは使えないと思う。
で、取説とは別に簡単操作マニュアルって名前の簡易説明書がついてる。
だったら最初からその薄さにまとめろよ!って思うけど、必要事項は漏れなく盛り込んでないとなにかあったときにいろいろと大変なんだろうなと思った。
説明書で思い出したんだけど、手順書の話。
バケツに水汲んだりブラシに洗剤つけて器具あらったりする手順書でさえけっこう分厚い。
語句の定義とか、手順書の適用範囲とかから始まって、それで数頁。
延々と、
この手順書においてバケツとはとってのついた円筒型の容器を指し、特に注釈がない場合ポリカーボネートあるいはポリプロピレン製のものを指す。
みたいなことから始まるわけ。
でもね、この作業に携わる人間の半数は派遣で、製造業派遣は事務派遣よりも安給料で派遣されてくる人材なんだぜ。
活字が苦手でケータイ小説も読めないっていう人間だらけなんだぜ。
法律文書のような手順書が読めるかっていったら疑問だ。
まして、ISOなんてわかってるはずがない。
そりゃ手順書逸脱も起きるわな。
普通のコマンド(ちょっと分かり辛い)を「裏コマンド」だと思っておくと
ちょっと幸せな気分になれるんですよ。
あと、使った後の取説読書は真剣に且つ取りこぼしなく行います。
以下の二つに留意、つまり乱用禁止。
取説未満
// ==UserScript== // @name anond pickup of the day // @namespace http://anond.hatelabo.jp/ // @description pickup section of the day at Hatelabo::AnonymousDiary // @include http://anond.hatelabo.jp/2* // ==/UserScript== (function(){ var trackbackThreshold = 10; var ignoreList = { "/20070801172335": 33, "/20070806163721": 10, }; // only section of the day if (! location.pathname.match(/^\/\d{8}$/)) { return; } // regist ancher that kick main routine var a = document.createElement("a"); a.href = "#"; a.innerHTML = "pickup of the day"; a.addEventListener("click", grab, false); var firstPager_l = document.evaluate("//div[@class='pager-l']",document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue; firstPager_l.appendChild(a); function Outline() { this.outline = document.createElement("ul"); this.text = document.createElement("textarea"); this.text.style.overflow = "auto"; this.text.style.width = "100%"; this.text.style.height = "15em"; this.text.innerHTML = "</ul><\n><ul>\n"; this.list = new Array(); } Outline.prototype.setup = function() { var parent = document.getElementById("body"); parent.insertBefore(this.outline, parent.firstChild); parent.insertBefore(this.text, parent.firstChild); } Outline.prototype.append = function(section) { var h3 = section.getElementsByTagName("h3")[0]; var sectionName = h3.firstChild.pathname.replace(/\//,""); var sectionText = h3.textContent.replace(/\s*$/,""); if (sectionText == "\u25a0") { sectionText = sectionName; } this.text.innerHTML += '<h2>[http://anond.hatelabo.jp/'+sectionName+ ":title="+sectionText.replace(/^\u25a0/,"").replace(/]/g,"&#93;")+"] "+ '<a href="http://b.hatena.ne.jp/entry/http://anond.hatelabo.jp/'+sectionName+'">'+ '<img src="http://b.hatena.ne.jp/entry/image/http://anond.hatelabo.jp/'+sectionName+'">'+ "</a></h2>\n"; h3.firstChild.name = sectionName; var li = document.createElement("li"); li.innerHTML = '<a href="#'+sectionName+'">' + sectionText.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">") + "</a>"; var nextSibling = 0; for (var i in this.list) { if (nextSibling < i && i < sectionName) { nextSibling = i; } } if (nextSibling) { this.outline.insertBefore(li, this.list[nextSibling]); } else { this.outline.appendChild(li); } this.list[sectionName] = li; } var outline = new Outline(); function CC(day) { this.li = document.createElement("li"); this.li.innerHTML = '<a href="/'+day+'" target="_blank">' + day + "</a>"; this.day = day; this.n = new Array(); } CC.prototype.pp = function(id) { this.n.push(id); if (this.n.length > 10) { this.li.innerHTML = '<a href="/'+this.day+'" target="_blank">' + this.day + "</a> " + this.n.length; } else { this.li.innerHTML += ' <a href="/'+id+'" target="_blank">*</a>'; } } function Count() { this.count = document.createElement("ul"); this.list = new Array(); } Count.prototype.setup = function() { var parent = document.getElementById("body"); parent.insertBefore(this.count, parent.firstChild); } Count.prototype.append = function(day, id) { var nextSibling = 0; for (var i in this.list) { if (nextSibling < i && i <= day) { nextSibling = i; } } if (nextSibling == day) { this.list[nextSibling].pp(id); } else { var cc = new CC(day); if (nextSibling) { this.count.insertBefore(cc.li, this.list[nextSibling].li); } else { this.count.appendChild(cc.li); } this.list[day] = cc; cc.pp(id); } } Count.prototype.appendSection = function(section) { var id = section.getElementsByTagName("h3")[0].firstChild.pathname.replace(/\//,""); var today = id.match(/\d{8}/)[0]; var anchors = section.getElementsByTagName("a"); for (var i=0; i<anchors.length; i++) { if (anchors[i].href && anchors[i].host == "anond.hatelabo.jp" && anchors[i].pathname.match(/\/(\d{8})\d{6}/) && RegExp.$1 != today) { this.append(RegExp.$1, id); } } } var count = new Count(); function Hide(){} Hide.prototype.setup = function() { this.style = document.createElement("style"); this.style.id = "hide"; this.style.type = "text/css"; document.getElementsByTagName("head")[0].appendChild(this.style); var self = this; this.a = new Object(); this.a.visible = document.createElement("a"); this.a.visible.id = "visible"; this.a.visible.href = "#"; this.a.visible.innerHTML = "visible hide section"; // this.a.visible.setAttribute("onclick","document.getElementById('hide').innerHTML = 'div.hide {display: block}';document.getElementById('visible').style.display = 'none';document.getElementById('unvisible').style.display = 'inline';"); this.a.visible.addEventListener("click", function(){self.visible()}, false); firstPager_l.parentNode.insertBefore(this.a.visible, firstPager_l); this.a.unvisible = document.createElement("a"); this.a.unvisible.id = "unvisible"; this.a.unvisible.href = "#"; this.a.unvisible.innerHTML = "unvisible hide section"; // this.a.visible.setAttribute("onclick","document.getElementById('hide').innerHTML = 'div.hide {display: none}';document.getElementById('visible').style.display = 'inline';document.getElementById('unvisible').style.display = 'none';"); this.a.unvisible.addEventListener("click", function(){self.unvisible()}, false); firstPager_l.parentNode.insertBefore(this.a.unvisible, firstPager_l); this.unvisible(); } Hide.prototype.visible = function() { this.style.innerHTML = "div.hide {display: block}"; this.a.visible.style.display = "none"; this.a.unvisible.style.display = "inline"; } Hide.prototype.unvisible = function() { this.style.innerHTML = "div.hide {display: none}"; this.a.visible.style.display = "inline"; this.a.unvisible.style.display = "none"; } Hide.prototype.append = function(section) { if (section.className.match(/hide/)) { return; } section.className += " hide"; count.appendSection(section); } Hide.prototype.is = function(section) { return section.className.match(/hide/); } var hide = new Hide(); // main routine function grab(){ if (! document.body.innerHTML.match(/<div class="pager-r">(\d+)/)) { return; } var pages = RegExp.$1 -0; if (pages <= 0 || pages > 40) { // check error and limit 1000 entry return; } //pages = 2; firstPager_l.style.display = "none"; outline.setup(); hide.setup(); count.setup(); var mainbody = document.evaluate("//div[@class='body']", document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue; mainbody.innerHTML = "\n"; for (var i=1; i<=pages; i++) { cat(mainbody, i); } } // page load and concatenate function cat(container, page) { container.innerHTML += "<!-- page " + page + " -->\n"; GM_xmlhttpRequest({ method: "GET", url: "http://anond.hatelabo.jp" + location.pathname + "?page=" + page, onload: function(result) { result.responseText.match(/<div class="body">((.|\s)*?)\s*<\/div>\s*<\/div>\s*<div class="pager-l">/); container.innerHTML = container.innerHTML.replace("<!-- page " + page + " -->", RegExp.$1); if (! container.innerHTML.match(/<!-- page \d+ -->/)) { // document.documentElement.innerHTML = document.documentElement.innerHTML.replace(/(src|href)=\"\//mg, "$1=\"http://anond.hatelabo.jp/"); pickup(); } } }); } // pickup section at last cat() concatenate after function pickup() { var target = document.evaluate( "//div[@class='section' and child::*[not(@class='sectionfooter') and descendant::a[starts-with(@href,'http://anond.hatelabo.jp/2') or starts-with(@href,'/2') and not(child::span[@class='sanchor'])]]]", document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null); for (var i=0; i<target.snapshotLength; i++) { hide.append(target.snapshotItem(i)); } var tbs = document.evaluate( "//p[@class='sectionfooter']/a[2]", document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null); for (var i=0; i<tbs.snapshotLength; i++) { var tb = tbs.snapshotItem(i); if (tb.innerHTML == "\u30c8\u30e9\u30c3\u30af\u30d0\u30c3\u30af(0)") { hide.append(tb.parentNode.parentNode); } else if (! hide.is(tb.parentNode.parentNode)) { trackback(tb); } } } // count trackbacks function trackback(tb) { GM_xmlhttpRequest({ method: "GET", url: "http://anond.hatelabo.jp/" + tb.pathname.match(/\d{14}/), onload: function(result) { var link = result.responseText.match(/<a name="tb">(.|\s)*/)[0].match(/<li>\s*<a href="http:\/\/anond.hatelabo.jp\/\d{14}"/g); var n = link.length; for (var l in link) { var m = "/" + link[l].match(/\d{14}/); if (m in ignoreList) { n -= ignoreList[m]; } } if (n < trackbackThreshold) { hide.append(tb.parentNode.parentNode); } else { tb.innerHTML = tb.innerHTML.replace(/\)$/, "/"+n+")"); outline.append(tb.parentNode.parentNode); } } }); } })();