「テストケース」を含む日記 RSS

はてなキーワード: テストケースとは

2017-12-03

転職ついでにネタで経歴わざと変にしてITキャリアカウンセリング受けて思った事

営業職とエンジニア両方そこそこやってという変な経歴の持ち主だけど上記の通りのことしたら、お定まり下流で下積みしてから上流へ…みたいなことを言われてて、草生えそうになったのを我慢しながら聞いてて、ふと思ったけど

IT系キャリアって35歳過ぎたら営業マネジメント行くしかいか問題だし、そのための準備とか一切させてもらえないで転向から問題なんだろうな

幾ら優秀なエンジニアでもいきなり営業マネジメントやって上手くできるはずがない、営業総合職ですら最初から少しずつできそうなところからやって、ようやく27~8で物になるってくらいのものなのにさ

なのに、院卒でも大卒でも、最初の3~4年間はインフラならサーバー監視から数年経験を積んで…とかプログラマーならテストから数年経験を積んで…とか

そんなことしか言われないし、ネットIT転職でも、そんな大間違いの話しか流れていないのが不思議しょうがない。

だったら最初から1年か半年で切りあげて、技術系の法人営業にでも転向しないと(俺の場合は順番が逆だったけ)、どう考えても35歳定年説より先を生き残ることなんて不可能なのにさ

1月~4月生まれの奴ならさ、大学卒業してこの道で3年サバ監やテストケースエクセル方眼紙職人した日には、27歳だぞ?27歳、27歳でやったことはサーバー監視テストだけってweb系でもどこも拾ってくれなくなるし、かといってwebから入っても滅茶苦茶変な技術になるしビジネスマナーすらつかないから、いざ転職の時に全く潰しが効かないなんてこともよくある。

どう考えても、35歳過ぎてこの業界で生き残ってるとか稼いでる奴等は口をそろえて「営業力>>>>>>>>>>>>>>技術力」というくらい、そっち方面ノウハウがいるのに、それを積まさせないようなキャリア常識になってるのが、ホント不思議しょうがないわ、IT系って

一番不思議なのはネットですら転職サイトIT転職系のHP見てたら、このこと一切書いてないんだよな、お決まりのように社内SEPMweb系か…みたいなことしか言わないという

すごい疑問なんだけど、現状のIT系キャリアで、実際や本当のこと話したら、政府IPAから刺客が放たれて暗殺される危険性があるから言えないとか、そんなことでもあんの?

2017-11-17

炎上プロジェクトに放り込まれプログラマ

テスターとして参加している。

全く説明のない状況で諸々の設計書とプログラムからテストケースを起こしテストしろという。

無茶言うなと思いながらも何とかこなした。

今度はまるまる作り忘れた機能があったか設計書を作れという。

要件を知らずともできる一般的ものから、とメール連絡が来た。

社員は諸々の不具合対応で手が空かないんだそうだ。

自分達は顧客と詳細な要件打合せを長期に渡ってやって設計書作るのに、こちらにはメール1本であるもの見て察して作れと。

バカなのかなと思う。

2017-08-05

[]ダブル即席ラーメンを開発したのでシェアしま

みなさん、即席ラーメンという便利な食料のことはご存知でしょうか。

揚げ麺や乾麺が袋詰めされ、粉末や液体のスープがついていますほとんどの製品は約3分間、お湯で煮ることによってぴちぴちの麺になる。とても調理簡単です。

手軽に作れる半面、老若男女問わず食べやすい量に設定されているため、ボリューム感足りない。これはまぎれもない事実です。

この問題点解決するため今回ご紹介するレシピダブル即席ラーメンを開発するに至りました。

ボリューム感を出す方法はあまたあれど、だいたい時間がかかったり、おいしさを損ねてしまます

2回に分けてインスタントラーメンを作ることを考えてみると1回つくる、そして、食べる、食べている間にお湯をわかす、2回目をつくる、そして、食べるという手順を踏むことになります。1回目と2回目の食べる行為の間に間ができてしまリズムがよくない。無理してひとつの鍋で2つ分を一度に作ることは、即席ラーメン開発者想定外の作り方です。即席ラーメン開発者テストケースからも外れているのか、もしくは、倍量の即席ラーメンと通常量の即席ラーメンに対する水分量・加熱・スープに対する麺の割合などの側面で共存できない開発側の理由があるのか、実際にやってみると味がぼんやりしたり、麺のゆで具合に致命的な影響が出てしまます

ここまでの説明で、お腹が空いているときに即席ラーメンを2つ作ることによるデメリットが大きいことがわかります。即席ラーメンメリットである時間料理完了することを損なわない調理方法お腹いっぱい食べる方法を考えてみましょう。

今回お伝えする方法は、家の台所では思いつきませんでした。ヒントはラーメン店カウンター席にありました。カウンター席は知見の宝庫です。

そのお店は豚骨ラーメンを主に提供するラーメン店でした。頼んだ豚骨ラーメンが配膳され、半分ほど食べ始めたところで、店の主人が「替え玉はいかがですか。」と尋ねてきたのです。

替え玉というのは、あとから麺を追加で入れることがサービスです。大盛では最初から麺の量が多くなりますが、替え玉ではあとから麺が増えます。最終的な麺の摂取量に変化がないので、どちらでもいいのではないかという反論に対しては、断固、替え玉と大盛は違うと答える。普通盛りで温度・うまみ・塩気・油などの完全なバランスを達成しているラーメンの麺の分量を1.5倍にした場合、往々にしてバランスが崩れてしまます。麺に合わせてスープを1.5倍にすればいいのかというとそんな単純な話ではありません。麺に残存する水気であったり、温度の変化であったり、うまみや油の絡み方であったり、何かしらの要素で普通盛りのバランス感を超えることできません。これを解決する手段として、替え玉ひとつの最適なソリューションです。替え玉方式にすると、最初は、普通盛りで作るので、作り手の最適なバランスラーメンをを提供することができますさらに量的に足りない人には、麺を追加でいれることにより満足感を付加することができるメリットがあります

ということで、自宅で作る即席ラーメンでも、替え玉を実現してみようと思います。思いました。

今回、必要材料です。

・即席ラーメン(お好みで)

生麺(お好みで)

この二つがあれば、ダブル即席ラーメンを作ることができます家事に忙しい主婦の方も、仕事に忙しい会社員の方も、近所のスーパーで売っている手に入りやす材料のみで今回のレシピは完成します。

即席ラーメンを2つ用意して、片方のスープを使わずに麺のみを入手する方法も考えたのですが、即席ラーメンスープが台所にどんどんと積み上がり近い未来ごみ屋敷の基礎となってしまいそうな気がしたので、生タイプ生麺を選びました。生麺にはスープがついていないものを選んでください。スープ付きの生麺を選ぶと、やはり、スープだけのコレクションが台所に増え続けていきます精神安定上よくない。できるだけ人生必要のないものは買わないようにしましょう。

材料がそろいました。調理に入ります

即席ラーメンの作り方は、袋の裏に書いてある調理方法に従いましょう。日夜、即席ラーメンの開発のために身を粉にしている研究者が考えた調理方法を我々は超えることできません。水の量はきちんとカップで計量し、火加減を守り、ゆで時間タイマー管理します。ゆで時間に関しては、30秒短く作ることが多いです。これは、火を止めてから盛り付けるまでの手際限界というか、トラブル対処する時間稼ぎのためです。3分と袋の裏に書かれていれば、2分30秒、4分と書かれていれば、3分30秒にタイマーをセットします。

まず、鍋をふたつ用意し、お湯を二つ沸かします。片方が即席ラーメン用、片方が生麺用です。

スープどんぶりに入れ、お湯が沸くのを待ちます。カップには水を汲んでおきましょう。

沸騰したところで、タイマースタートし、即席ラーメンを作り始めます。そのとなりの生麺のほうにも麺を入れてゆで始めます

生麺は、1分ほどで吹き上がってきますので、カップの水入れ、水温を下げます。もう一度吹き上がりかけたところで、火を止めて水切りをします。

水切りができたあたりで、タイマーが鳴り、即席ラーメンが茹で上がります時間設定はシビアです。モタモタしている暇はありません。

即席ラーメン替え玉用の麺ができ上りました。

即席ラーメンは、少し固めに茹でた以外は即席ラーメン研究者の考えた通りのものができています

体調が悪くない限りおいしい。問題がない仕上がりです。

この先の即席ラーメンに対する替え玉は、未知の領域の方が多いことでしょう。

人生経験を豊かにするために一度は試していただきたい。

近年の即席ラーメンスープは即席ラーメン研究者たちの研究心により、高度に発達しているので、そのスープ生麺を入れて、おいしくないわけがありません。

しかしながら、替え玉の最大の弱点は、一度普通盛りを食べてしまったあとのスープが少し薄くなってしまっていることです。

塩気やうまみが足りないと感じた人は、替え玉盛り付けときにあらかじめ、麺にだし醤油を一回りかけておくといいと思います

これで、今回のレシピの紹介はおしまいです。ちょっとした工夫で即席ラーメンボリューム感をアップすることができました。ご家庭でもぜひお試しください。

2017-07-10

https://anond.hatelabo.jp/20170710120403

勉強会に出入りするような人間と、

PHPぐらいしかできない、やろうとしない」人間が交わる世界って無いよな

明らかに適正がないのにPGしてる人間なんてゴロゴロいるしな

テストケースすらかけないような奴ら、普通にいるし

派遣営業からは「ベテランPG」って触れ込みなんだけどな

2017-06-30

テストが超面倒で嫌い

といっても学校テストの話ではない。

プログラミングのあとに控えている試験作業のことだ。


システム開発は色々面倒な作業がつきまとうが、特にテストしんどい

設計フロー1個1個にテストケースを作ると、それだけで1メソッドあたりのケース数が30くらいになってしまう。

何よりケースを抽出し、文章にするのはどうやっても効率化できない。


それだけならまだいい。

テストコードを書くとかふざけてるだろ。

基本コピペであっても記述量が膨大で、書いても書いても終わらない。

そんなことを要求してくるJUnitは最低最悪のツールだと思う。

なんであんなのが重宝されているのか意味がわからない。

大体、テストコードで開発が効率化されるとか、寝言抜かすなと思う。

テストコード書かないより作業量増えてるし。


そして以上の作業を1メソッドにつき1週間でやるとか、遅筆の自分には無理。

そもそもフローで書かれた手続きJava実装しようとすると、処理のネストは深く、かつ記述量も長くなってしまって非効率この上ない。

大きな開発でJava使う意味なんて、というかオブジェクト指向を持ち出す意味なんて殆ど無いどころか、書きにくくなるばかりで、これまた開発の効率化なんて嘘だと思う。

マジで辛すぎるし、ぶっちゃけネット情報鵜呑みにしてJavaオブジェクト指向をもてはやすなと言いたい。

2017-06-07

おそろしく単純なバグ

何人かこのテストケースやってるけど見逃したの俺だけか……

2017-03-27

何の不良かもわからないプログラムを治して

仕様書の在り処も知らないのに、テストさせられて

テストケース作るのに何時間もかかって

何度も何度もそれを繰り返してる

職場の人たちはやさしいけど

もう限界かもしれない

2017-03-23

わたしはしごとがあんまりできない。

具体的に言うと、

日本語での説明あんまりうまくできない。今日も後輩にJVMってなんですか、Staticってなんですかって聞かれたけど、なんかうまく説明できなかった。

あーなってこうなってっ説明しても、相手は「???」みたいな顔をしている…。

・深く考えられない。相手から意見言われと、思考が停止して「それが正しいまさに正解だ」という気持ちになってしまう。

たぶん他人から「1+1は3だよ」って言われたら、「えっ!?そうなの?そうなのか…」みたいな気持ちになって、最終的に納得してしまう。そんなレベル

不適切な場面で万能感が湧き上がることがある。「なんかできる気がする!!!スイッチが突然入る。

ただ、それは大体「気がする」止まりで、最終的に痛い目をみることが多い。

今日JVM説明するとき説明筋道考えてる最中に突然「なんかできる気がする!!!スイッチONになってしまい、

その勢いのまま説明を始めてしまった。結局、私の口からはぐしゃぐしゃした言葉しか出てこなかった。

単体テスト仕様書を作ると、割りとテストケースが足りてない。しかもそれは難しい観点のケースじゃないんだ。

自分の中で、もはや当たり前になってた観点なのに、ときどきボロンと抜け落ちる。

・誤字脱字などのケアレスミスも多い。印字切れとかもよくやる。

主体性がない。責任感がない。当事者意識がない。進んであれやりますこれやりますって、言ったことないなあ。


…もし上記を読んで「あーああいタイプ人間ね」みたいに想像ついた方いらっしゃったら、

恐れ入りますが現状を改善するためのアドバイスいただきたいです…。

上司に「そのままのキャラでいいよ」といじられるけど、本音は"もう諦めてる"なのかなあ。

ちゃんとした人間になりたいよ。

2017-02-21

懸念事項など箇条書きでまとめるのはなんとかなるんだけど、

次のアクションに移るのための資料作りになると、どういうフォーマットにすればいいのか悩む

スケジュールやら調整事項やらテストケースやら。

なんかフォーマットがないと、うまくまとめられなくなってしまった

2017-02-15

http://anond.hatelabo.jp/20170214233309

負の数値でも二桁でいいの?

小数値が入力されたら入力と結果のどちらをどう丸めるの?それともエラー

数値以外は全部エラー?数値に見える文字列も?

などなど全部決めてテストケースも回していざ動かしてみると

なんで50+99で149って結果になるんだよ

二桁の「整数の和」って仕様じゃん

整数の和が三桁なのにエラーにしてないかバグ

2017-01-31

この三年で出会ったクソSEたち


派遣会社から派遣されてくるSEの質が悪すぎて怒りを通り越して無に近づいてきてる。

クソみたいな障害を切り分け、ひと段落ついたついでに愚痴らせてくれ!!!!!!!!!

派遣SEから酷いのか、酷いか派遣しか働けないかは知らない。

今まで三年働いてきて、周りで見ていてひどかった奴らを順番に紹介していく。

そいつらは、私の会社が入れた奴だったり、元からその現場にいたやつだったり様々だ。

1、エクセルドット絵じじぃ

推定50歳。構築、テスター要員として突入

5ページ構築するごとに「疲れた、もう無理」と嘆き、周囲に不満を漏らす。

同時に、タバコ休憩に向かう。休憩に行ったら30分帰って来ないが、そんな奴はよくいる

構築をサボって普段使わない端末の前に座っていたため何してるのかと覗き込むと、ひたすはエクセルドット絵お絵かきをしていた。

参考URLはこちら。

http://tera-hirakata.jugem.jp/?eid=791

2、数日で蒸発

よくいる奴。今まで3人ほど遭遇。

数日出社したのち、インフル風邪だと言って来なくなり、そのあと連絡が途絶える奴。

40ちかい派遣おっさんによくいる。就職氷河期だったから大変だったんだよね!わかる!わかるよ!!わかるからさっさとIT業界から消え失せろ。

3、メンヘラ女とDV

25くらいの女と40くらいの男。

二人はこの作業場出会った。ペアで作業をすることが多かったが、作業をしているよりも言い争いをしている時間の方が長いのではないかというくらい酷い奴らだ

ある日突然二人とも休み、その翌日、男は会社に来たが、その日以降女は会社に来なくなった。

どうやら「女の両親が倒れた」らしい。真実は闇の中だ。きっとDV男と一悶着あったんだろう。

男と女が休んだぶん、女がこなくなってから1週間の仕事はすべて当時最年少だった私に降って来た。許すまじ。

ただ単純作業だったため、やつらが23時まで残業してた作業が定時で終わったのが唯一の救いだ。どんだけ非効率なんだよ。

4、システムエンジニアではない糞男

30男。中身は粋がってる中学生男子

本気で消えろ、トラウマクソ野郎

業務内容の説明をすると、「うっす」「ういっす」と返事をする。返事をするが一切内容を理解できていない。

何度もこの環境にはA、B、Cの環境があり、それぞれのIDパスワードはコレだ、と言ってもメモも取らず返事をするだけ。

案の定パスワードを間違えまくりアカウントロックさせ、「なんか入れなくなったんっすけど」と言いやがる。

メモしてください」と言ってようやくメモするが、メモしたノートを見ないためまたアカウントロックさせる。

そんなクソ野郎なのに、shiftdeleteで完全削除できるという小ワザを身につけやがってて、本番サーバファイルを消し、隠蔽しやがった。

ファイル更新日付を確認したいと言ったはずなんですけど?????????なんで消えとんじゃ、クソ男。

何が「これ、テストサーバーじゃないんっすか?」だよ、作業前にこのテストドメイン使えって言ったのに本番ドメイン接続しやがったのお前だろ?しね。

消えてから2年近く経つが、思い出すだけで今でも相当胸糞悪い。

5、反抗期ワキガ

30男。ただの反抗期。4の男と類似メモを取らない、覚えないためいつまでたっても私に聞いてくる。

大事ことなのでメモ取ってください」というと、「今取ろうと思ってた」と言い紙とペンは手に持つが、何も書かない。

テスト中に集中力が明らかにキレてるため、「15分休みましょう」と言うも、「いいっす、大丈夫っす」と言い、テストを間違えまくる。間違えた部分を仕方なくダブルチェックで指摘すると、「テストケースの書き方が悪い」とキレる。

そしてワキガで超臭い。隣でテストをしてるとその匂いに頭が痛くなり、テストに集中できない。

お金貯めてワキガの手術してください

同期や同業他社の友人にこの話をしても、そんな人今までに1人出会たかどうかくらいだ、と口を揃えていう。

ほんとかよ?????

2017-01-10

エビデンスって何のために取るの?

転職して参画した案件PHPWeb業務システム構築)が、ネットで聞いてた「SIerあるある」まんまだった。

その中でも結合テストが謎。

1000項目以上あるテストケースの一つ一つ、心を込めてエビデンスを取っている。

・WinShotでログインから動作ずつキャプチャとる(ボタンのところにカーソル合わせて「ここ押す」感まで出す)

Apacheログアプリログ試験前後DBdumpをとる

これ、誰が見るんだ。何のために取るんだ。

お客に対して「ちゃんとテストしたよ!証拠もあるよ!」くらいの意味しか見出せない(お客だってマリーくらいしか見ないだろう)。

メンバー曰く、「不具合があった時にどういう状況でテストたか確認するため」とのこと。

どういうテストたか、なんてテスターの不備を追求してる暇があるなら、さっさとバグを直せばいいじゃん。

そんなに吊るし上げしたいのか。

一番怖いのは誰も文句わず黙々とキャプチャとってること(自分もだけど)。

キャプチャとる方が試験するよりも時間かかる。

その時間テストコード書くなり、モンキーテストでもした方がよっぽど品質高まると思うのだが。

これだからSIerは(ブツブツ...)

有意義理由存在するなら教えてほしい。

2016-10-10

http://anond.hatelabo.jp/20161008231807

生産性IT技術を使えば上がりますよ。

日本ではソースコード印刷してお客先に収めたりとか馬鹿なことやってるでしょ。無駄要件定義仕様書テストケースとか印刷するのもそう。

海外だとそこらへん全部電子化されてるんだわ。

2016-06-19

全てのRubyエンジニアはだいたい糞である

汎用系のエンジニアからRubyエンジニアとして転職して1年。

コボラー(笑)なんて言われることも多いが、この1年で出会ったRubyエンジニアは全て糞だった。

その特徴はだいたいこの3つだ。

1.テストを甘く見ている

やれテスト自動化だ、やれテスト駆動開発だの口だけ達者なエンジニアの多いこと。

そもそもブラックボックステストホワイトボックステストを分かっていない奴が多すぎ。

テストコードカバレージが100%だったとしても実際の打鍵結果でエラーは弾けることが多いのにリリースしてしまう。

そもそもテストケース表を若いうちに書く習慣が無いからだ。

ドキュメント揶揄し机上デバッグも行わない、こんな状態で「アジャイルですから」とかドヤ顔でいってしまRubyエンジニアは糞である

2.パフォーマンスを考えない

Rubyエンジニアパフォーマンスを考えない。

どのメソッドがどれくらいの負荷なのか意識せず実装を行う。

便利だから、ただそれだけの理由なのである

そもそも自分が行おうとしているソートが何ソートなのか知っているのか?計算回数を考慮した上での実装か?

便利なメソッドがたくさんあるのは知っている。

ただ、中身くらいは知っておこうよ。

eachで回してばかりだから複雑なループ対応もできない。

新人に教えたらバカにされたけど、まずフローチャート書くようにしようぜ。

3.外部ライブラリに対する絶対的根拠の無い信頼

Gemに対する絶対的な信頼感、あれなんなの?

Githubで公開されてましたんで導入しました」じゃねーよ。

結局他のGemバッティングしているじゃねーか。

得体の知れないコードをたくさん詰め込んだプログラムをよく動かせるな。

そんで都合の悪いところだけコードを読んでオーバーライドする。

影響範囲を全く調査せず、Gem絶対神話を唱える。あれなんなの?



いや、Rubyが便利なのは認めるよ。俺だってPLIとかCOBOLより書いてて楽しいよ。

インデント合わなくてコンパイルエラーとかないしな。

でもあまりにもRubyエンジニア糞すぎだろ。

エンジニアもどき量産言語だね。どれか1つでも当てはまった奴は小学校からやり直せ。

日本の将来が心配だわ。


追記

意見がたくさんもらえて喜ばしい。

文化の違いという意見もあったが、「よくわからないけどなんかうまくいく」コードだとデバッグも大変だし不具合も起きやすい。

それで納品するのはプロとしておかしい。

主語が大きい

「だいたい」とあるだろう。全てのだいたいだ。

フローチャート

ロジックを整理するツールとしては優秀。

精神論に聞こえるかもしれないが、フローチャート書いて育ったエンジニアは頭の中でロジックの組み立てと凡その演算回数が計算できるようになるよ。

カバレージが100%だったとしても実際の打鍵結果でエラーは弾ける

あー、ここは誤タイピングだわ。

自動テストカバレージ100%です、そして画面数回触ってリリースしますーっていう奴が多いってこった。

単体だけじゃなく画面使ったテストもケース表書いて網羅性を担保しないとダメだろ。

もちろん慣れて頭に入ってくれば勘所がわかるんだが、そんな属人的ものよりもケース表書くのが無難だろう。

2016-03-26

http://anond.hatelabo.jp/20160326075910

最初テストをする前提にすると、

テストパスするだけのダミー実装オブジェクト最初に作っておけばよくて

全ての処理を正しく行う完全実装を後回しにできるメリットがある。

いろんな機能を分担して開発するにはすごく便利な概念だと思う。


けれど、スタープログラマ一人で全実装を行う場合

テストケースを書いている時間に完全実装を終えることができるのでテストいらない。

になるってことですか?

2016-03-08

えきねっとのきっぷ予約は、ホント使いにくい。これ作ったの誰だよw

えきねっと切符を予約し、

日付と時間帯を変更しようとすると、

「人数が変更されてません」エラーになる。

人数が変更されていないので、あってるよw

多分、使うことを考えていない想像力ないやつらと、

テストケース書いてることに満足して、

偉そうに、「テストOK!」と言ってるやつらがいるんだろうな。

無駄に払戻ししてお金かかったわ。

まあ300円くらいだからいいけど。

えきねっといつもしょうがないから使ってるけど、

ホント使いにくい。

ログインしてからと、しない場合

切符を購入するまでの遷移が違うのもイライラするし、

なんでログインした時の方が検索するの面倒なのかな〜

ホント使いにくい。

改札のSuicaなんかはホントスピード早くて

使いやすいのに、

ソフトウェアがアレで、ホント悲しい。

殿様商売ならではですね。

ホント使いにくいシステムありがとう

2015-11-08

ちゃんとした杭が届いた例しがない

そろそろ報道が下火になってきた、神奈川の傾斜マンション事件。どうしても個人の犯罪に変換したい報道姿勢はどうかと思うのだが、安心するためには仕方ないのだろう。

しかし、現代においてマンション以上の社会基盤であるコンピューターシステム設計にはどうして一級建築士のような資格制度がないのだろうか。東証が止まりニューヨークストックマーケットが止まり空港業務がとまりATMがとまり、1月1日午前0時に流量規制実施されるというのに、今回のマンションほど加熱した報道もなければ、犯人探しもない。実に奇妙だ。世界中コンピューターシステム関係者擁護しているのかもしれない。時折ほとぼりがさめたころに敗軍の将が兵を語る程度である。実に、実に奇妙だ。これほどの影響が出るのだからもっともっと事件として扱うべきだろうし、設計には資格を設けるべきだろう。しかし、実際の設計現場には何の知識もない派遣社員があふれかえり、テストケース過去のそれを流用し、他システムソフトウェア設計を流用し、ハードウェア構成を流用しているだろうに。

今回の傾斜マンションは個人の財産が毀損したため「もしかしたら私のマンションも」という不安が背景にあるのは想像理解もできる。しかし、あなたが使っているスマホに謎のチップが、プログラムが、世界のどこかのサーバデータを送り続けている、グーグル検索記録が残り続ける、文字変換の履歴が残り続ける、ネットにつないだテレビレコーダから利用履歴がどこかのサーバに、ラインログが残り続ける、あらゆるアクセスしたサイトログが残り続けるのは不安ではないのだろうか。おそらく今回のマンション事件は誰でも目に見えてわかるからこれほど煽情的事件となったのだろう。ケータイショップ店員のグチ、家電量販店店員のグチ、とかをみると、説明してもわからない人の事例が目立つ。とにかくバカバカだと思い知らされることを恐れるのだ。しならい、わからない、と言わないのだろうか。よく新人社員に「同じことを二回聞くな」という低能がいるが、それに通じる自己尊大化の患者だろう。

システム開発現場にいると、マンションで例えるな、ちゃんとした長さの杭が届くことがマレだ。なんだかんだで届かない。杭が届けばまだいい方だ。杭が来たのだから

そうやって組み立てられるシステム今日も動いている。単に運がいいだけだ。

2015-08-06

今の会社システムがやっぱり分からない。

サーバ屋が友達紹介で仕事も持ってきて、そいつが客との窓口をやっているのに、金のことは知らないといってきやがった。

ボクの初仕事でどうなるかわからないから格安で受けたと取締役に説明を受けていたのに、そんなことは知らないといってきやがった。しらないわけがないだろう!ボクがへまやらかして、今その調整をしているのはそのサーバ屋なんだから

今思えば、”初仕事から格安”ってどういう意味なんだろ?今陥っている状態は”初仕事格安”だから仕方ないのか金額が少なくて済んでいるのか。

人懐っこい感じの取締役で、この人となら仕事できるかなーと思ったけど、単なる人たらしらしいや。

でも悪い人じゃないだろう。順境なら「この取締役出会えてよかった!」と思っているはず。人たらしなだけで、最初からボクをだますつもりじゃなかったろうからね。

この取締役、よく言えばボクたちを個人事業主としてちゃんと立てて話をしてくれる。それなのに身内として取り扱ってくれる。ただし今のような状態になったら容赦しない。←文面にすると企業取締役として当然だね。むしろ懐が深い。

サーバ屋と取締役との温度差をすごく感じる。ベクトルが違う。会社って外から見ると全員が同じ性格価値観と思ってしまうけど実際は違う。取締役はその器でサーバ屋を抱えているのかもしれないが、サーバ屋と仕事するボクはサーバ屋のまっすぐすぎて曲がらないところを直撃してる。まず謝らない。というか、悪いと思っていない。

毎日のようにAの仕事の進捗を上げて遅れてることを認識しているはずなのに、Aの次に行う予定だったBの仕事が順調に進んでいると思っていたようだ。少し言い方が違うか、Aが遅れていることがBの遅れに直結しなかったようだ。

Bが遅れている事態相談をするときに「連絡をくれてすみません」と取締役サーバ屋にハングアウトしたらサーバ屋が「たしかに遅かったですね」と上から目線でいってきた。ボクの感覚からすると、会社取締役に対しては連絡遅れはサーバ屋も共犯だと思うんだがなぁ。Aの遅れもボクの担当する前のやつの部分の直しがほとんどだ。それに気づかずに遅れてしまっているのもボクのテストケースが少ないから気づかなかったからで100%ボクが悪いらしい。簡単にネットの強い言葉を使いたくはないが「アスペじゃないか」とサーバ屋を否定しないとボクのほうで気持ちが落ち着かないところまで来てしまった。サーバ屋とはもう作業はできない。

他人事に思えばボクが悪い。やると言ったのに約束を守れないボクが悪い。迷惑をかけているのはボクだ。でも、もう金払うから開放してほしい。

2015-04-12

http://anond.hatelabo.jp/20150412180927

全く持って同意で見つけるべく努力テストケース作成)をして、見つけられる限り全部潰すしかない。ただ潜在不良はいくらテストをしても必ずどこかで出てくるもので、出てきたときを想定した対策こそが重要だと思ってる(今回はルール上それをできなかった)。

リリース時に潜在不良も含めすべて取り切れない(と思っている)以上、リリース時にバグを失くせ、っていう論理での批判には違和感があるんだ。

2015-02-08

いまSHIROBAKO見ててSI業界に疑問をもったんだけど

アニメ業界って分業化が適切に進んでて、それぞれの職種が有機的に結びついてて、監督権限責任)が行き届いてて組織として結構理想的な気がする。(実際の現場はしらないけど)

絵コンテを書いて衆目にさらされる最終的な成果物全体像を導く監督的な人ってSIにいるっけ?

アニメでいうところの原画動画、動件、CG、BG、音響、その他諸々の専門っぽい人は下流の下請けで指示書通りに作って、

元請け制作進行(この言葉が正しいのかわからないけど)的なことが中心になってない?

どうも仕事の分業や各職種間のパワーバランスおかしい気がする。

***********

疑問に思ってるのは元請け様が偉そうにふんぞり返って作業指示ばかりしているなんてことではなく、

(実際、アニメ制作進行が激務なように、要件の調整や、折衝等で作業的にはトップレベルに大変だろうし)

分業のありかたに違和感があるのと、

言語フレームワークの選定や、(拡張性なり保守性なり効率性なりなんなりを重視した)モジュール設計デザインの監修みたいな

成果物本質的品質バグ検出密度テストケース密度なんてものではなく)に責任を持つ役割の人がPMBOK的・ウォーターフォール的な組織にはあんまりいないんじゃないかってことです。

なんでだろう。

監督みたいなクリエイティブ仕事属人性が高すぎるのかな。

業界歴長い人とかいたら教えて。

2014-08-04

Excelスクリーンショット意味があるのはいいが、それ以前の問題

食当たりっぽい腹痛で仕事休んでて暇なので、駄文を書く。

なんか、変に話が大きくなってますが、元SIerとしては単なるあるある系のクソ仕事話の一つって感じの、Excelスクショエビデンスについて話をしておこうと思います

最初に結論を言っておくと、

意味があるのは分かっているが、そもそも責任回避のための資料作りなんて出来るだけやりたくないし、そんなのが大量に必要であること自体が気に入らねえ!」

ってことです。

参考:

Excelスクショ問題について周りの方へのお願いと、今職人となっている方への励ましの言葉(元職人より) | 羽根帽子の太公望

まあ、意味があるのは分かる。やってた事もある。

とは言え、何の意味かというと発注元の企業とゴタゴタが起こった時の責任回避の資料作りという意味で。

後になって問題が起きた時に原因究明の資料になるとかいう話もありましたが、それはかなり怪しい。

適切な粒度で切られたテストケース更新がある度に正確にメンテされ続けるドキュメント管理力が必要ですが、そんな信用度の高い文書あんまり見たことない。

結局、動いてるシステムソースコード見るしかない。その時の参考資料になるドキュメント必要だと思いますが、それがExcelスクリーンショットかというと……。

どうしても再現環境を用意できず、机上で推論するしかない場合は役に立つかもしれませんが、そもそもそんな重要システムで何でそんなところケチってるのか意味が分かりません。

後、ソースコード読めない上流のSEバグ原因を推定してお客様に説明する、という不毛な作業をする時にも役に立ちますね。

やはり、責任回避のための言い訳資料を作る、という名目が強いように思えます

大半の人にとって、そもそもこういう資料作成自体不毛でやりたくないと思います

テスト工程とか余計なこと言わずに、訴えられて損害賠償請求されたくねーからやってんだ!と新人に説明すべきだと思う。

(こういう事ネットには色々書いてあるんだけど、会社は教えてくれないんよね、何故か)

大体、なんでこんな事やってるかっていうと発注元の受け入れ作業をベンダーが肩代わりしてるからです。

自分が注文したものがちゃんと動いてるのかの確認までベンダーに投げるので、「やった」「やらない」を過剰に説明する資料が必要になる。

専門知識を持った人材を抱えておくことをコストだと考えてるからもっと無駄な事が世の中に発生してしまう。

そして、これのせいで付随して更なる問題が発生する。

顧客提出する資料に専門用語を含めた説明文を書くと、言葉理解できない、という理由でリテイクをくらう場合があります

説明資料じゃなくて、開発者運用担当者が参照するための技術資料なのに、技術的に正しい、とかはどうでも良くて顧客理解できる言葉で書け、ってことですね。

向こうのレベル感を探り探りしつつ文言を選んで説明分を付与する不毛仕事が求められるのです。

これが顧客に対する誠意だと言うんですからお笑い種なんですが、まあ向こうがそれに金払う、って言ってんだから作るんでしょう。

既に十分不毛なんですが、これに輪をかけるのが体裁というやつです。

スクリーンショットの位置や文頭が微妙にズレてたりすると怒られるやつです。

それが、そんなに重要なのかどうかについては、最後まで分かりませんでした。

項目幅を調整して印刷可能なページに適切に収めるのに消費される時間が辛い。

後、カーソルA1に戻しとけ、とかも全く意味が分からないし、納品前に数時間かけて印刷して判子を押して回るのも意味が分からない。

そして、最も問題なのが大半の人間がこれを手動でやることだ。

こんな単純作業を人間が手動でやっててミスらん訳が無いだろうに。

気を付ける、とか真剣にやる、とかで解消できると思ってるなら、お花畑過ぎるだろと言わざるを得ない。

しかも、自動化するために諸々やってると、最悪サボってると見做されるし、ひどい場合は、作業用PCに使えるソフト限定されてて、スクショ取るツールさえ入れられない事があるらしい。

そこまで行かなくても、社内プロキシの穴を付いて開発環境を落としてきたりして、最悪セキュリティ担当の人に怒られる場合がありますね。

なんでこんな面倒なことしなきゃならんのだとソウルジェムガンガン濁っていきます

(メモ帳でもありゃいいだろ、という話もあるかもしれませんが、俺のような凡人はそれはそれでソウルジェムが濁ります)

最悪、家で作ってWeb上においてダウンロードとか……。

まあ、それを回避して何とか自動化して省力化できるようになったら、他の人の作業時間と同じぐらいの見積り出して、本当にサボるんですけどね。

ダラダラと色々書きましたが、まとめるとこういう事です。

企業活動として意味があるのは分かるが、その根本的な目的は誰かが手抜きしたコストを肩代わりしてるだけに思える。

ただ資料を作るだけじゃなくてすげー細かい注意が必要になるのだが、そこに合理的意味があるのか分からない。

作業自体めっちゃ面倒くさいのだがその面倒くささを解消する方法に何故か制限がかけられている。

そして、世の中のプログラマーがどうであるかは知らんけど、俺はそんな作業が大嫌いだ。

しろExcelスクリーンショットを取って張るなんてのはどうにでもなるんだけど、それに付随している業務慣習の大半が意味からなくてクソ喰らえである

というわけで、意味があるとかそういう主張はどうでも良くて、そんな仕事やりたくない。

まあ、それしか金を得る方法が無いんだったら、嫌々でもやりますが……。

しかし、そもそもの話、実際冒頭で挙げた参考エントリの人も心病んでるし、他にも病院送りにされてる例が多数あるわけで、

仮にこれが本当に必要だと認めるにしても、人間の心をすり潰してまでやらなきゃならないような工程が、

当然のものだと受け入れられてる業界は最悪じゃねえのかと思う。

従業員精神を壊してまでやらなきゃいけないような事なのか、これは。

必要とか必要でないとか以前に、こういう事やると人間の心が病むんだよ。そんなもの仕事なんだったら、そりゃ人間働かなくなるだろうよ。

そんなすぐに世の中変えようもないしどうしても作らなきゃいけないんだ、という場合は、せめて自動化に対する障壁を外して欲しい。

見た目の凝り具合とかは本当に必要な最小限度の体裁にして欲しい。

障壁全然無い場合は、少しは本人の能力次第でマシな世の中になるはずなので。

2014-07-14

働きながら、エロエロによるエロのためのWebサービスをつくりました

テクノブレイク.jpという、エロ専用RSSサービス公開しました

これは、自分お気に入りエロサイト更新動画を、サイトすべてに訪問して確認しなくてもチェックすることができる、というエロのための時間効率化させるWebサービスです。

http://technobreak.jp

僕は誰か

僕は、大手IT企業で働くゆとり社会人です。

今年文系大学卒業し、まったくの未経験大手IT企業入社し、研修を経て初めてプログラミングを触ることになりました。

それでも少しはできるようになったため、「ゆとり」でも「未経験」でも「文系」でも自分webサービスが作れるんじゃないか?と思い至り、ちょっと力試しということでやってみるか!!!とこのサービス作りました

僕は以下のような人間ですが、「仕事」を通じてプログラミングを学びました。もちろん今も勉強中です。

まだまだ働き始めたばかりなので、僕はプログラミング初心者が数ヶ月勉強したという方と同じような人間です。

なので現在上記にあてはまる人でも作ろうと思えば「自分サービスを作れる」ということがわかっていただけたらと思います

テクノブレイク.jpで解決したいことってなに?

僕はオナニーをする時は、スマホアプリで必ずエロ動画を探すのですが、だいたい以下のようなステップを踏むんですよね。

(1)動画ダウンロードアプリを開く
(2)ブックマークしたエロサイトを開く
(3)エロサイト更新記事を見る
(4)気になった更新記事を新規タブで開く
(5)あとでそのタブを見るため消さずに、元のタブ(更新記事一覧が表示されたタブ)に戻る
(6)また気になった更新記事を新規タブで開く
(7)(4)〜(6)を繰り返す
(8)溜めておいた気になる記事のタブを一つずつ開き、動画ダウンロード
(9)ダウンロードした動画を見る

このように1つの動画を見るために、9つのステップを踏むんです。

もう何がいやだって、(7)ですよ。これが面倒くさい。

それから(2)のブックマークからエロサイトを開くことも面倒じゃないですか。

だって(1)〜(9)をサイトごとにやらないといけないわけですから

これらを簡単にすることができないもんかなと。

で、テクノブレイク.jpを使うと、、、、

(1)動画ダウンロードアプリを開く
(2)RSSサービスを開く
(3)登録したエロサイト更新記事を見る
(4)気になった更新記事を「あとで見る」に登録する
(5)(3)と(4)を繰り返す
(6)「あとで見る」溜めておいた記事を一つずつ開き、動画ダウンロード
(7)ダウンロードした動画を見る

どうですか。2ステップも楽になる!!!!!!!!!

テクノブレイク.jpの特長

採用技術

これでわかる通り、必要最低限の技術で済みます

採用ツール

制作プロセス

すべてそこそこで、80%でリリースしろ

社会人には、自分時間を取ることが難しい方が多いはずです。

から、毎回だらだら開発を進めると時間がかかり、最終的にモチベーションが下がり、何もしなくなってしまうんです。

でもやることはすごくたくさんあります(笑)

プログラムだけじゃありません。デザインを考えたり、仕組みを考えたりしないといけません。

あとで、このプログラムじゃ、仕組みじゃダメだったな、ってわかり手直しをすることだってあります

から、毎回100%を目指すと時間が足りないんです(笑)

すべてをそこそこ、80%におさめてください。

それでさっさとリリースしましょう。

それからサービス改善していくんです。

テクノブレイク.jpもそうです。

最初はすべて80%です。

ここで言う100%とは、あなたの考える理想を100%叶える、という意味です。

Webサービス完璧はありません。日々、改善必要です。

そういった意味では100%はありませんが、あなたにとっての理想の100%はありますよね。

それを最初から目指すのはやめましょう。

走りながら、目指してください。

そうすると、本当に求められるものが早くわかる

早くリリースすればするほど、ユーザーからの声を早く拾うことができます

ユーザーの声こそ、そのサービスの目指すべき姿のことが多いです。

80%完成してリリースすればいいのに、残りの20%を埋めようとあなたが頑張ったとします。

しかしたらその自分勝手な20%は、ユーザーに取っては不必要な20%かもしれませんよね。

だと、20%のために使った時間と労力が無駄になります

から、80%の法則で頑張りましょう。

ドメインは先、サーバーはあと

ドメインを先に取ると、開発をせざるをえないと考えます

なぜならドメイン代を支払ってるんですから。その金を無駄にしたくないですよね。

で、サーバーは後、というのは開発が無駄に3ヶ月かかったとすると、その3ヶ月分のサーバー代金が無駄ですよね。

サーバーテストは、テスト環境テストを終えてからやればいいかなと思ってます

目標、計画を立てる

まずどんなコンセプトか、どんな機能必要か、どんなUIにすべきかという目標をたてましょう。

それから、その目標を達成するための方法を考えましょう。

そして、その方法を実行するスケジュールをたてましょう。

なぜこうするかというと、常に自分が何をすべきかが明確になるからです。

なにも決めずにやろうとすると、

なんてことになります

今日は何をするのかを明確にしましょう。

そして、今日はそのことだけに集中しましょう。

から、頑張りすぎなくていいんです。

スクレイピングについて

Webスクレイピングとは、サイトコンテンツから欲しいデータを取得する方法です。

僕がどうやってRSSサービスを作ったかというと、このwebスクレイピングのおかげなんです。

まずサイトの主要コンテンツ部分を検知します。

主要コンテンツとは、更新記事一覧部分です。

広告、注目動画アーカイブなどのそのサイトコンテンツははじきます

で、その主要コンテンツから、記事の画像タイトルURLをゲットしてきます

やり方としては、主要コンテンツからそのサイト内部のリンクが貼られたimgタグを探し出します。

そして、そのリンクタイトルまたは記事のタイトルを取得します。

こうすることで、そのサイト更新一覧から更新記事のURLタイトル画像がわかります

bootstrapについて

BootstrapウェブサイトWebアプリケーション作成するフリーソフトウェアツールであるタイポグラフィフォームボタン、ナビゲーション、その他構成要素やJavaScript拡張などがHTML及びCSSベースデザインテンプレートとして用意されている。

Wikipediaによると上記の説明となります

これを利用すると、基本的Webサイトデザインhtmlcss)が手に入れることができ、そのまま利用できたりします。

デザインを作る上で、非常に助かります。なぜなら最初からすべて自分コーディングする必要がないからです。

いつ僕はサービスを開発していたのか

僕は以下の時間に開発をしてました

上記の時間で、「え?」って思う時間は恐らく

だと思います

僕は外出中はノートパソコンを使わないで開発をしています

どうしているかというと、Readdleの「Downloads」というスマホアプリを利用しています

これは写真ファイルクラウド上に保存したり、Dropboxや外部サーバーファイル共有をすることができるアプリです。

filezillaスマホで利用できる、みたいな感じです。

画面は小さくてストレスがかなーーーりありますが、僕は外出中はこれでプログラミングをしています

通勤中にこれでプログラミングをし、降車した後の徒歩で続きのプログラミングをキリが良いところまでする、という感じです。

また、歩きながらでもテストはできると思うので、歩きながらプログラミングは難しいという方はテストだけでもやってみはどうでしょうか。

最後

だまされたと思って、テクノブレイク.jpを使ってみてください(笑)

本当にオナニー時間が快適になりますよ。

Webサービス俺もやってみようかなーと少しでも思ってくださった方へ、

僕は開発をしながら、本当にやりたいことがあったら、時間はいくらでもつくりだせるなって感じました。

歩いてるときだってトイレにいるときだって電車にいるときだって、いつだって今の時代はできるんですよ。

それだけ現代って便利で、生きやすくて、なんでも挑戦しやす環境のある時代なんです。

恐らく、少し前の時代スマホが出る前の時代では歩きながらプログラミングなんて考えられないと思います

そう考えると数年前と今って格段に何かを始めることができやす時代なんですよ。

それでも挑戦しないって、もったいないねーなーって思ったんですよね。

から、なにか本当にやってやりたい!!!ってことがあれば、まず一歩を踏み出してみてください。

意外と手段っていっぱいありますから

ググれば、一発ですよ。

こんなことGoogle日本に来るまでは考えられないことですよ。

だって、昔の検索エンジンって十分に欲しい情報が手に入らなかったですもんね。

僕も高校時代とかCROOZ?とかヤフーカテゴリー?とかで携帯ぽちぽち検索してた記憶があります

まぁとにかく、Googleもあるしスマホもあるし、なんでもできる時代ですから安心してやってみてください。

2014-06-29

あぁ、俺ってプログラミング初心者なんだな。

https://paiza.jp/

コーディングスキルチェックというのをやってみた。

 初心者向けのランクC問題でさえ、回答想定時間に間に合わない。

 Cを使ってるが、文字列の扱いだけで結構手間取る。1個だけたまたま時間内にできたのでCランクになったけれど他のCランクの問題に挑戦するも時間切れ。想定回答時間20分の問題に2時間かかる。そして提出するもテストケースエラーが発生する。もちろん問題に記述されているテストケースクリアした上で提出している。しかし、それじゃダメなんだろう。Dランクと言われても受け入れるしかないくらい。仕事で行うプログラミングは、あらゆる状況を網羅したテストケースを作ることが出来なければ通用しないってことなのだろう。テストケースが用意されてれば、それに対応できるとは思うのだけど。あらゆる状況を網羅したテストケースを作れるほどにはスキルがない。

 趣味プログラミングやってる程度だけど「俺だってやろうと思えばプログラミング仕事くらいできるよ」とか思ってたが、全くダメだ。なんだか恥ずかしくなってきた。

 プログラミング歴30年、ランクC 初級プログラマ。フフフ・・・・なんだか情けなくなってきた。笑っちゃうよ。

2014-04-22

理由は簡単。

http://anond.hatelabo.jp/20140422184326

パスワードの文字数を無制限にすることは出来ない。

ゆえに必ず、制限が生じる。

制限が生じると、制限を超えて入力した場合テストケースが発生する。

つ・ま・り

テスターテスト入力やすいように、短く制限しているのだ!

2014-02-27

Apple's SSL/TLS bug (22 Feb 2014)の意訳

例のAppleSSL/TLSバグの件、日本語情報がなかったので意訳しました。

Adam Langleyさんによって書かれた原文はこちら。要所要所に親切なリンクがついているので、ぜひ原文も見てみてください。

Apple's SSL/TLS bug (22 Feb 2014)

https://www.imperialviolet.org/2014/02/22/applebug.html

(Hi Adam Langley, Than you for your blog! We really appreciate you.)

-----

昨日、AppleはばかばかしいiOS向けのセキュリティアップデートを発行した。
それは詳しく明かされていないが、SSL/TSLについてとんでもなく恐ろしい間違いを示すものだった。

その答えは既にハッカーニューストップにタレこまれている(https://news.ycombinator.com/item?id=7281378)し、アップルが隠したい秘密はもうバレてしまっていると思う。
そして現在、俺たちはその誤った情報を正すステージに来ているんだ。

ほらここに、Applebugがあるんだ。:
static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,
                                 uint8_t *signature, UInt16 signatureLen)
{
 OSStatus        err;
 ...

 if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
  goto fail;
 if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
  goto fail;
  goto fail;
 if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
  goto fail;
 ...

fail:
 SSLFreeBuffer(&signedHashes);
 SSLFreeBuffer(&hashCtx);
 return err;
}(Quoted from Apple's published source code.)
(訳者注:(Quoted from Apple's published source code)→sslKeyExchange.c)

2行のgotoがあるだろ。
2行目のgotoは、見て分かる通り常に発動する。
変数[err]にはエラーを示す値が入らず、正常を示す値のままfailに飛ぶってことだ。
それって成功したのと同じなんだよね!

この署名検証処理は(訳者注:SSL/TLSハンドシェイクのやりとりのうちの一つである)ServerKeyExchangeメッセージ署名検証するものだ。
このServerKeyExchangeでは、"the ephemeral key"(通信のための一時的な鍵)を交換するためのDHE や ECDHE という暗号スイートが使われる。
そのサーバーは言うんだ。
「ここに"the ephemeral key"と署名があるよ、ほら、これが証明書だ。君はこれが僕からのものだってわかってくれるよね!」

今、もし"the ephemeral key"と証明書関係が破たんしているならば、すべては無意味なんだ。
これってつまり、正規の証明書チェーンをクライアントに送信したけど、ハンドシェイクへの署名には正しくない間違った(つまり適当にその辺で作った)鍵を使ったり、そもそもハンドシェイク署名しなかったりってことができるってことなんだよ!

そこには、今君が通信しているサーバーが、サーバー証明書に含まれる公開鍵秘密鍵を持っているってことの証明が、何もないんだ。

これはSecureTransport(というライブラリ)に入っていて、以下に影響する。
・iOS 7.0.6より前(俺は7.0.4で確認した)
・OS X 10.9.2より前(10.9.1で確認した)
(訳者注:つまりiOS 7.0.6、OS X 10.9.2で解決した)

これはSecureTransportを使っているすべてに影響するけど、ChromeFirefoxはそうじゃない。
ChromeFirefoxSSL/TLSのためにNSSを使っている。
でも、それはあんまり君のマシンがSecureTransportを使っていないってことを意味しないよ。(ソフトって更新されるしね)


超特急テストサイト作ってみたよ。https://www.imperialviolet.org:1266
ポート番号に気を付けてね。(テストサイトCVE番号になってるよ)
443は通常通りに動いているからね。

ポート1266のサーバーと443のサーバーは同じ証明書を送っているけど、完全に異なるキー署名しているんだ。
君がもしポート1266のHTTPSサイトアクセスできたんだったら、君のマシンはこのイケてるバグを抱えてるってことだね。:)


それってつまり証明書チェーンは正しいってことで、そしてハンドシェイク証明書チェーンの関係は壊れたってことで、もう俺はどんな証明書も信じないよ。

またこれは、DHE または ECDHE 暗号スイートを使っているサイトに影響を及ぼすだけじゃないんだ。
攻撃者は、この暗号スイートを使うサーバー自分で建てるようになるだろう。

また、これはTLS 1.2には影響しない。このバグを含まないTLS 1.2の別の関数があったから。
でも攻撃者は使うプロトコルをある程度選ぶことができるから安心できないよ。
(訳者注:サーバー側がTLS1.2を使えないことにしていたら、それ以外の例えばSSL3.0とかTLS1.0とか1.1で通信が始まっちゃうから。)
でもでも、クライアント側でTLS1.2だけを使えるようにしておけば、それは今回の問題の回避策になる。。
同じく、クライアント側でRSA暗号スイートだけを許可するということも、ServerKeyExchangeが発生しなくなるので今回の問題の回避策になる。
(2つのうち、1つ目のほうがだいぶ好ましい。)

俺のテストサイトでは、iOS 7.0.6 と OS X 10.9.2で問題は解決していた。
(更新:このバグOS X 10.9 のときに入ったように見えたけど、iOS6にもっあったぽい。iOS 6.1.6は昨日リリースされたよ。)

こんなような微妙バグって、悪夢だ。
俺はこれは単なるミスだと思うし、なんかもうほんと最悪って思う。


ここに、今回の問題を明らかにするコードがある。:
extern int f();

int g() {
 int ret = 1;

 goto out;
 ret = f();

out:
 return ret;
}
もし俺が"-Wall "を付けてコンパイルしたとしても、XcodeGCC 4.8.2 や Clang 3.3は死んでるコード(the dead code)について警告をしないんだ。
本当にビックリだよ!!!

ここで警告が出ていたらこの問題は止められたのに。でもたぶん、現実には死んでるコードが多すぎて無視することにしてるんだろうね。
(ピーターネルソンが教えてくれたけど、Clangはこれを警告するための"-Wunreachable-code"を持ってる。でもこれ、なんと"-Wall "には含まれてない!)

if文に{}をつけないことを許すコーディングスタイルはこの問題を誘発したかもしれない。
でも、人は{}を付けたとしても間違ったプログラムを書くことがあるから、これは俺はあんまり関係ないように思う。

テストケースはこれを見つけることができたはずだけど、今回のはいろいろ条件が複雑なやつだったから難しかったと思う。
TLSのめちゃめちゃ多くのオプションを試さなきゃいけなかったからね。しかも正常系じゃないやつも。
俺、TLSLiteでちゃんとテストしてるか思い出せないもん。(月曜日怖いかも)

コードレビューはこの種類のバグについて効果的でありえる。
ただし単なる審査じゃなく、それぞれの変更に対してしっかりとレビューすることだ。
Appleコードレビューカルチャーがどんなもんか知らないけど、もし俺が同じようなことをやっちゃったとしたら、同僚のWan-Teh や Ryan Sleevi がばっちり見つけてくれたと、固く信じてる。
でも、誰もがそんなにいい仲間を持てるわけじゃないよね。


最後に。昨日、Apple証明書ホスト名をちゃんとチェックしていなかったことについて多くの議論があったんだけど、
それは OS Xコマンドラインcurlを使うと、IPじゃない証明書でもIPHTTPSにつながっちゃうってだけだったよ。変だけど。
Safariはこの問題には関係なかったよ。
ログイン ユーザー登録
ようこそ ゲスト さん