「dump」を含む日記 RSS

はてなキーワード: dumpとは

2022-08-16

アメリカホットウィール攻略法(前編)

まえがき

から数年前、アメリカホットウィール(以下Hotwheels)収集情熱を注いでいた。Hotwheelsというのはアメリカミニカーブランドで、日本で言うトミカみたいなものだ。詳しくはWEBで。当時は血眼になって探しまわっていたので、足繁く店を訪ねたり情報を集めたりして、それなりに買い集めることができるようになった。

残念ながら今となってはアメリカに行く機会はほとんどなくなってしまった上に、当時ほどの情熱がなくなってしまったので、苦労して獲得した得たノウハウは使われることもなくこのまま記憶と共に薄れていく運命にある。ただその一方で、苦労して得たノウハウがこのまま自然消滅してしまうのがもったいないという思いもあった。そんな折、増田存在を知り、思い出代わりに記録を残すのも悪くないなと思ったので、ここに書き連ねることにした。

この投稿を読む人はきっと日本に住んでいる人だろうから、あまりニーズはないとは知りつつも、それ故に読んだ人同士が競合する心配も少ないと考える。日本語でのここまでの情報は希少なはずなので、アメリカ旅行出張、赴任、移住するなど現地で買い物をする機会のあるコレクターにはちょっとは役立つだろう。当時は2年半で2000台以上購入し、良い時でスーパートレジャーハント(以下$TH)を1年間で12台見つけることができたので、その程度のノウハウだと捉えてほしい。話が右往左往して乱文になってしま申し訳ないが、この情報で少しでもハンティングを楽しんでいただけると幸いだ。

文字数関係で前編後編に分けた。コンテンツは下記のとおり。後編がより実践的な情報

■前編
■後編

それではここから前編。後編はこちら→https://anond.hatelabo.jp/20220816012401

アメリカでのHotwheelsの売られ方

発売日など決まった予定はない。アソートの順番をある程度守りながらそれなりの時期にバラバラと入荷される。同じWalmartであっても店舗が違えば違う日に入荷することもある。どの店員に聞いてもいつ入荷するか知らない。急に古いアソートが入荷されることもある。入荷がランダムなので開店待ちする人は少ない。メインラインの実売価格は一番安くて約$1。それ以外は$1.25とか$1.5とか$2とかが多い。うらやましい。サイドラインは$1だったり$2だったりアソートによって異なるが理由はよく分からない。プレミアムは$6ぐらい、Team Transportは$14ぐらい、Mystery Modelsは$1。

BrickSeekから見たHotwheelsの市場

非公式であるが、数年前まではBrickSeekというWEBサイトWalmart店舗ごとの在庫数が検索できた。残念ながら現在在庫数ではなく在庫の「有無」だけの表示となり実質役に立たない情報になってしまった。WalmartでHotwheelsの在庫がなくなることはほぼあり得ないからだ。一応、メインライン在庫SKUコード「34253677」で検索できる。たしか店舗の値札にUPCコードが書いてあるので、それさえ分かればメインライン以外も検索できた。ただし私がプレミアムラインサイドラインウォッチしていた限りだと、メインライン以外の情報実態と合ってなさそう。

今は使えないサイトだが、ここから得た情報がある程度参考になると思う。私がこのサイト存在を知ってから数ヶ月間ほぼ毎日複数店舗Walmart在庫ウォッチした。その結果、ある程度Hotwheelsの流通量が見えてきた。集計したデータによると2~3週間ごとに数箱の入荷が近隣店舗でほぼ一斉にあり、在庫の多い店舗ではたまにDump Binと思われる500台以上の大量入荷があるような周期だった。それ以外にもランダムで1、2箱の入荷もあった。そしてThanks Givingが終わって間もない12月初旬には、クリスマス商戦に向けて数多くの店舗で大量入荷がある、といった感じだった。だが、BrickSeekの在庫増加と実店舗の陳列増加は残念ながら一致しないことも多くハンティング空振りになることもしばしばだった。感覚的には打率5割強といったところかも。誤情報なのか陳列までの時間差なのかは判別できなかった。さらに、店に着いた時にはすでに開封済みだったということもよくあった。結局このBrickSeekの情報をもってしても戦果は1ヶ月あたり1台ぐらいに留まった。

ここからは余談だが、これだけの頻度で入荷しているにも関わらず次の入荷までにはしっかりと在庫が減っている。入荷される箱には、一部の人気車種以外にも人気薄の実車架空車などが多く同梱されている。要するに抱き合わせ販売だ。人気車種はもちろんすぐ売れてしまうのだが、在庫ちゃんと減っているということは、不人気の架空車もちゃんと売れているということになる。日本だと架空車といえば不良在庫という印象で、個人的にはなぜこんなに謎めいたミニカーをたくさん作っているのだろうと疑問を持っていたが、このデータによるとHotwheels発祥アメリカではちゃん架空車も市場に受け入れられているようだ。

アメリカコレクター事情

アメリカはHotwheels本場だけあってコレクターが多いので基本的にはライバルだらけだ。いくら入荷がランダムからと言っても、たまたま立ち寄った店に$THがぶら下がっているなんてことはほぼ期待できない。$THを手に入れようと思うと箱の開封直後か、何なら開封前に立ち会わないといけない。競争率には地域差があるようだが、Mattel社の地元ロサンゼルスさらコレクターが多いらしく、競争も激しいようだ。噂で聞いただけだが、定年後で時間を持て余しているベテランコレクターが店の裏でトラックが来るのをのんびり待ち構えているらしい。もし本当なら陳列どころか、店に入る前に狩られてしまうので勝ち目がない。大量の在庫を見つけても人気の1車種だけはどこに行っても見つからないということも少なくない。

まだ先述のBrickSeekが機能していた頃は入荷がある程度把握できたが、残念ながらガチコレクターは当然のようにその情報を知っているから、これだけではライバルには勝てない。入荷日に店舗に行くとおもちゃ売り場からジッと倉庫の方を凝視しているおっさんいたこともある。きっと私と同じように入荷情報を掴んで待ち構えているコレクターなんだと思う。強面で大柄なおっさんだったから、仲良く待つなんてことは考えずその店はあきらめて立ち去った。

ライバルについて非常に悔しい思いをしたことがある。今までで最大のチャンスに遭遇し、それを目の前でかっさらわれてしまった決して忘れられない記憶だ。いつものようにBrickSeekをチェックしているとWalmartのある店舗で2500台を超える大量の在庫増加があった。エラーじゃないのと思いつつ今晩その店舗行ってみることにしたが、その日は仕事がなかなか片付かず狙っている時間よりも遅くなってしまった。ようやく仕事を終え半信半疑おもちゃ売り場に向かうと、なんとHotwheelsの箱がタワーのように積み上げられているではないか。入荷数はエラーじゃなく本当だったんだと興奮した次の瞬間、その場で写真を撮っている人物を見つけて敗北を悟った。彼の手にはすでに6個の$THがあった。聞いてみると30分前に来たらしい。惜しい!負けを噛みしめつつ箱を数えると72個入りが36箱だった。$THは6箱に1個の割合という計算になる。その勝者が教えてくれたのだが、72台入りの箱の上下2段のうち$THは常に上段に入っているらしい。もしもライバル鉢合わせスピード勝負になった場合には役立つ情報だ。ちなみにその彼は子供の頃からコレクターで毎週のように$THをゲットしているらしい。しかも手に入れた$THは売らないとのこと。きっと膨大な数の$THを持っているんだろう。うらやましい。

実は、BrickSeekが機能しなくなった今でも、Instagramを見ると毎週のように$THを手に入れているコレクターがいる。きっとBrickSeek以外にもノウハウがあるんだろう。別のコレクターに聞いた話だが、そのInstagramコレクターは常にそこらじゅうの店に行っているらしい。足で稼ぐというのも大事な要素のようだ。だが私も毎晩のように複数店舗パトロールしていたのでそれなりに足は使っていたつもりだ。にも関わらず$THを手に入れられたのは月に1個ペースだ。なので他に理由が考えられるとするならば、店の人間と仲良くなって情報をもらう、自分が行くまで陳列を待ってもらう、ぐらいだと推測する。実は私も一番良く行くWalmart店員セールスマネージャーと顔見知りになった。だが残念ながらセールスマネージャーさえ入荷を事前には知らず、彼らの恩恵にあずかれることはないままその店舗にはもう行かなくなってしまった。生活様式英語も含め、ここまでがにわかコレクターである自分限界だったんだろう。Instagramの彼ほどになるにはさらに何歩も先を行かなければならないようだ。いやー、本当にどうやって見つけてるんだろう。秘訣を教えてほしい。

一応アメリカにも買い占めや転売屋に対する批判はある。だが日本ほどではない。勝者が独り占めするということが受け止められやす文化だと推測する。一方で、Walmart出会ったコレクターは「次の人のために残す」と言って一部は買わずに置いて行った。層が厚いのでいろいろなコレクターがいるのだろう。あるいは、日本と違って一斉に発売しないから買い占められて終わりということが起きにくいのかもしれない。

返品

ミニカーに限らずアメリカ小売店特にチェーン店は返品に対して寛容だ。新品でレシートがあれば基本的に何でも返品できる。理由を聞かれることもあるが「要らないから」と中身のない答えでも受理される。Walmart同士なら買った店舗とは別の店舗でも返品することが可能だ。ここからお勧めしない方法なのだが、とりあえず多めに買っておいて買い過ぎたと思ったら返品できちゃう。また、例えばA店で買った商品がB店でより安く売られていたとする。たとえA店で買った商品がすでに開封して新品じゃなくなってたとしても、B店で同じ商品を安く買ってA店で返品できてしまう。つまり事実上B店で安く買ったのと同じことになる。あくまでも理論上できるというだけで実際にやって良いかは分からない。もちろん不良品なら新品でなくてもほぼ返品できるだろう。ただし返品できるカスタマーサービス24時間営業Walmartでも昼間しか開いていない上に長い列ができていることが多いから、旅行中など時間に余裕がない時には不向きだ。

返品しやすいということは、裏を返せば中古品も新品のように売られているということだが、それだけではない。悪意のある人間商品を購入し中身をすり替えて返品することもある。Walmart店員はせいぜいバーコードを読んでレシートと照らし合わせるぐらいで、Hotwheelsのパッケージと中身が同じかなんて区別できる訳もない。よっぽど不自然な修復でもない限りすり替えは検知できないだろう。さらに残念なのはこれがそれなりの知識を持ったコレクター仕業であるということだ。最小限の加工でパッケージを開け、用意しておいた安価替え玉へとすり替え、目立たないようにパッケージを修復する、というのは知識技術を持つコレクターしかできない。ミニカーなんて高くても数ドルだろうし、自分の好きな趣味であるはずのミニカーのためにこれだけの計画的犯行に及ぶ気持ちが到底理解できない。私自身も実際に何度かすり替えられた商品を見たことはあるし、残念ながら買ってしまたこともある。マルチパック限定特定モデルが欲しくて、中身を見て買ったか結果オーライだったのだが、すり替えに気付いた時はすごく気持ち悪かった。たとえWalmartやTargetなどの正規販売店であっても中身には常に注意を払う必要がある。

コンベンションなど

■Annual Hot Wheels Collectors Convention

アメリカでは有志(たぶん)によりコンベンションと言われるHotwheelsのイベントが年2回開催されている。こちらがMattel社やデザインセンターのあるロサンゼルスで毎年10月頃に開催される方だ。もう一方は後述。有志とは言えほぼ公式イベント様相で、コンベンション限定モデルが発売されたり、これから発売されるリー情報プレゼンされたり、いろいろなコンテンツが催される。残念ながら私がコンベンション存在を知った時にはとっくにチケットは売り切れていたし、次のチャンスに買おうとしたがすぐ売り切れてしまい結局コンベンションに参加することは叶わなかった。そもそも日本からだと遠い。なので申し訳ないがコンベンションコンテンツ自体はあまり知らない。

だが、チケットがなくても実は行く価値はそれなりにある。アメリカ中や外国からも集まったコレクターが会場となるホテル宿泊するのだが、その客室でフリーマーケットのように大量のHotwheelsが売られるのだ。最新のモデル、古いモデル、$TH、RLC、カスタムカーなど非常に幅広いモデルが売られており、ここまでの種類と量が一度に買える場所はおそらく他にはないだろう。しかも値段も良心的な物が多い。人によってはメインラインが$1だったり$TH$10で売ってたりもする。もちろん業者が売っていたり、プレ値も普通にあるが相場以下で買えることも多かったように思う。私が直接買えなかったコンベンションカーもその場で転売されていて$50ぐらいだった。定価よりももちろん高いが日本で買うよりずっと安い。また、売っている人がコレクターからと思うが子供にはとっても優しい。割引してくれたり無料でくれたりする。コンベンションが開催される数日間の間、ホテル内を歩くとあちこちのドアが開いていたり、張り紙がしてあるので、客室に入る敷居は高くない。ただし、コンベンションに参加するコレクターの客室なので、イベント中やそれぞれの用事がある時には閉まっている。つまり、全フロア1周しても、次回る時には別の部屋が空いてたりする。それぞれの部屋でたくさん売っているので、とても1日では見切れないぐらいのボリュームだ。これだけでも楽しい。私はチケットは買えなかったが、旅行のついでに会場のホテルに泊まり、たくさんのモデルを買い漁ることができた。コンベンション公式サイトには一切こういうことは書かれていないので、もしコンベンションへの参加を検討するなら買い物を楽しめることも含めて考えてみると良いと思う。

■Annual Hot Wheels Collectors Nationals

先述のコンベンションのもう一方で、こちらは年ごとに開催地が変わりアメリカ各地で4月頃に開催される。コンテンツはおそらくロサンゼルスの方と同様と思われるが、こちらも私はチケットが買えなかったので、申し訳ないがよく分からない。ただ、少なくとも客室でたくさんHotwheelsが売られているのは同様で、私はこちらでも買い物を楽しんだ。

■トイショー

日本と同様だと思うが、地元コレクターが集まりちょっとしたイベントミニカー販売をする。アメリカ内の各地で開催されているようだ。価格良心的で相場より安い印象がある。

RLC

HotwheelsにはRed Line Clubという有料の会員制度がある。詳細はWebで。その会員だけが購入できるRLC限定モデルがあり、Hotwheelsのコレクションにある程度のめり込むと買いたくなる人もいると思う。私も最初ミニカーに$20も出せないとスルーしていたが今ではほぼ毎回買ってしまっている。高いがそれなりに良い物だと思う。日本からの購入方法はこの投稿の主旨から外れるので割愛する。私が知っているのは過去5年ほどだが、発売はいつも火曜日カリフォルニア時間の午前9時だ。当然多くのアメリカ人は勤務時間内はずだが、よっぽどの不人気モデルでない限り数分で売り切れるのが常だ。日本サラリーマンならとてもそんな時間ネットショッピングなどできないのが普通だが、すぐ売り切れるということはフレキシブルな働き方をしているアメリカ人が多いということなんだろう。こういうところでも文化の差が感じられて面白い

Hotwheelsにまつわる英語

アメリカホットウィール攻略法(後編)

文字数関係で前編後編に分けた。コンテンツは下記のとおり。後編がより実践的な情報

■前編
■後編

ここからは後編。前編はこちら→https://anond.hatelabo.jp/20220816013839

売ってる店舗とその攻略法

流通量の多い(主観)≒買いやすい順になんとなく並べて説明する。

Walmart Supercenter

たぶん流通も最大で価格も最安なので、Hotwheelsを買うならWalmartが主戦場と言える。ここが攻略法の一番の山場だ。

在庫 何より流通が一番多いのでたくさん買えるだけでなく入荷の頻度もたぶん一番高く、良いモデル出会確率も高い。72個入りが1箱とか数箱の単位で数週間おきに入荷するのが通常のようだ。入荷頻度は高くないがDump Binと呼ばれるバスタブに仕切りを入れたようなでっかい箱に大量のHotwheelsが放り込まれて売られているのを目にすることも多い。残念ながら私はそのチャンスに恵まれなかったが、入荷直後の手付かずで独り占めできたら$TH複数台手に入る可能性が高い。たしか、72台入り9箱ぐらいの量だったと思う。それ以外にもSide Kickと呼ばれる、陳列棚の側面に設置される薄い箱の形態での入荷もある。クリスマスの時期には大量のHotwheelsが入荷される。Dump Binだけでなくもっと大きい箱が並ぶこともある。11月末のThanks Givingが終わるとすぐにクリスマス商戦が始まるのでその頃が狙い目だ。

Dump Bin Dump Binは入っている台数が多い上に、並んでいないから物色するのに一苦労だ。全部見ようと思うと30分以上はかかる。空のショッピングカートを持ってきて、3つに仕切られたDump Binのうち1枠から順にHotwheelsを取り出して、物色しながらショッピングカートへ移動させる。これだけでもショッピングカート結構埋まるが、たまに「これ全部買うの?」と他の客に驚かれることがあるので少し恥ずかしい。1枠が空になったら、2枠目のHotwheelsを空いた1枠目に移動させていく。そして3枠目も同様に2枠目に移動させる。最後に、ショッピングカートに入れたHotwheelsを空になった3枠目に戻すという作業になる。SNSなどで「Dump Binの底から$THが見つかった」という投稿を時々見かけるが、自分自身は一度も見つけたことはないので期待しない方が良い。買い逃した古いモデルや人気で品薄の、文字通り掘り出し物が見つかることはある。時間はかかるが何だかんだで楽しい

Walmart限定モデル MattelWalmartが主戦場と捉えていると思われ、Walmart限定モデルも多くリリースされる。代表的なのはZAMACで、ほとんどのモデルは人気が高いのでそれなりに入手困難だ。見つけたらラッキーなのですぐ買った方が良い。DATSUNなんか特に人気で$TH並みに捕獲困難だ。ワイルドスピードバットマンなどのサイドラインWalmart限定が多いし、ベーシックよりも日本との価格差が大きいので欲しいのがあるなら買った方が良い。ただしWalmart限定であってもサイドラインは全店舗に入荷するとは限らないようだ。Mistery ModelsもWalmart限定だ。ブリスターではなく中が見えないビニール袋に入っていてガチャのような売り方をされている。とは言え、袋には中身に対応した番号が印刷されているので実態としてはガチャではない。運が良ければレアチェースモデルが手に入る。ガチャじゃないのに運と書いたのは、やはりライバルが多くて目ぼしいのはすぐに買われてしまうからだ。

重要タイミング 陳列は夜10時頃が定刻のようで、その時間帯になると商品の箱が載ったパレットが続々と倉庫からフロア搬入され通路に並べられる。そして各売り場に配置されたスタッフ開封商品を陳列していく。Hotwheelsの入荷があった日ならこの時刻が狙い時だ。しかし注意が必要だ。スタッフが陳列する時にはすでに先客が目ぼしいのを抜いた後かもしれない。あるいは、スタッフ開封するのを待っている間に別のコレクターが来て箱を開けてしまうかもしれない。確実に手付かずの状態で物色したいなら未開封の箱を見つけてその場で開けてもらう必要がある。かと言って箱に許可なく触るのはご法度だ。荷崩れするリスクがあるからだと思われるが、きっとスタッフに怒られて、たとえ頼んでも箱を開けてくれなくなってしま可能性がある。箱には決して触れず、笑顔でしっかりあいさつし、丁重にお願いすればよっぽど断られることはないだろう。顔見知りになると「今日は入荷あるよ」と聞く前に教えてくれることもある。

店員 その一方で、逆に嘘をつかれたと思われることもあった。先述のクリスマス商戦の頃、大量入荷の情報をつかんだのでその店舗に行ってみたが箱は見当たらなかった。近くに店員に聞いたら、入荷して倉庫にあるけど古いシボレーのアソートだよ、と言われたのでその店舗は立ち去った。そして別の店舗に行ったが、その店舗が帰り道の途中だったので念の為再度行ってみた。そしたらデカいHotwheelsの箱が陳列されていたのだ。陳列されたばかりだし、この入荷数からすると$THが1台や2台ぐらいありそうだったの喜んだ。しかし、物色してみると、売れたのはわずか数台だけだったが$THはすでになかった。この状況だと邪推してしまうが、店員は他のひいきのコレクターのために嘘で私を追い払い、そのコレクターが$THだけを抜き取ったのではなかろうか。後日、運良く別の店舗で同じ箱に遭遇し$THを2台見つけたので、やっぱりそうだったんだと思う。

BrickSeek 前編に書いた情報だが、以前はBrickSeekという非公式WEBサイトWalmart店舗ごとの在庫検索できた。行く予定の店舗を数日前からウォッチしていれば入荷されたかどうかが分かる。入荷された日は朝に在庫数が増え、その日の晩に陳列されるという時系列だったので、毎朝チェックして入荷が分かればその日の晩に捕まえることができた。

営業時間 地域にもよるが24時間営業店舗が多いので、そういう店舗では開店待ちそのものがなく、先述の夜10時ごろの陳列のタイミングを狙うのが最も効率が良い。もちろん夜10時以外に陳列されることもあるのでチャンスがない訳ではない。箱買いしたことがある人なら知っていると思うが、メインラインなら3個と3個が向かい合わさった6個が一列となって箱詰めされている。もしその6個ずつが並んだ状態DumpBinに入っていたら手付かずのラッキーチャンスだ。速攻で物色しよう。タイミングについて書いたが、Walmartの多くが24時間営業のおかげで閉店時間を気にしなくて良いし、どの時間でも多少なりとも掘り出し物に出会えるチャンスはある。

いろいろ書いたが、結論としては一番良い物が安くたくさん買える。なので私はWalmartが大好きだ。

Walmart Neighborhood

Supercenterと同じWalmartだが食料品メインなので、Hotwheelsが売っていないこともある。あったとしてもSupercenterよりかなり少ない。とは言え、可能性は低いが小さめのDump Binがあってそれなりの量を売っていることもある。望み薄だがシラミ潰しに狩りたい場合は寄ってみても良いかと思う。買い逃していたZAMACのモデルを見つけたこともある。

■Target

たぶんWalmartに次いで流通量が多いと思う。価格Walmartとほぼ同じ。毎年のメインラインの中にTarget専用のRed Editionというセグメントがあるのは有名な話だが、それ以外にも年間いくつかのサイドラインがTarget限定で発売されたりするし、Hotwheels idシリーズも実店舗での正規販売はTargetだけだ。Red Editionも特に実車結構人気なので入荷直後でないと入手は難しい。Walmartと違って夜は閉店するので開店待ちでの出会いにも一応期待できる。その一方で、開店時間中に陳列されることもある。Walmartほど決まった時間ではないようなので、「まだ陳列してないHotwheelsない?」と店員に聞けば奥から出してくれることもある。残念ながら、他のコレクターも同じように物色しているから、陳列前の箱だとしてもすでに狩られた後の可能性は高い。

執筆時点での話だが、Targetにも店舗ごとの在庫チェックできる「Target Price Check & Inventory」というWebサイトがある。Hotwheelsのメインラインコードは「087-07-0027」だ。Target内のコードのようで、他の商品コードが知りたいなら値札に書いてある。行く予定の店舗が決まっているなら前日かそれ以前からチェックして、行く当日に在庫が増えていたら入荷があった証拠だ。先述のようにいつ陳列されるか分からないが極力早く買いに行った方が良いだろう。

■Kmart

経営難によりどんどん店舗が減っているがWalmartやTargetと同様のキャンペーンやKmart限定モデルなど息が長く続いている。残念ながら自分の行動範囲ほとんど店舗がなかったので情報は少ないが、WalmartのようなDump Binなどでそれなりの数が売られているようだ。地域によるが、店舗が少ない故にKmart限定モデルは若干希少な存在のような気がする。

■Kroger Marktplace

いわゆるスーパーマーケット系列店が全国に展開されている。Krogerという店の中でもMarketplaceという大型店があり、Hotwheelsの流通量も結構多い。Kroger限定モデルも発売されていて、メインラインカラーバリエーションだったり、Kroger系列限定サイドラインもある。毎年恒例のHalloweenサイドラインもKrogerやスーパーマーケット限定で売られているようだ。それだけではなく、日本キャンペーンカーと呼ばれている無料モデルもKroger向けに例年用意されている。これは特例のエピソードだが、後述するToysrus破綻により、その年にToysrus限定で用意していたモデル販売できなくなり、受け皿として急遽Kroger限定に切り替えられて発売されたこともある。一見普通スーパーマーケットのようだがHotwheelsとの繋がりは強いようだ。

この店舗でもDump Binがあったり、専用の陳列BOXがあったりなど、かなりHotwheelsに注力している様子が分かる。玩具コーナーも一列程確保されていてその陳列棚のペグにかかっているが通常だが、クリスマス商戦の時期にはWalmart以上に大きい陳列BOXが広い通路のど真ん中に鎮座することもある。たまに聞くHotwheelsのバグだが、Kmart限定モデルがKrogerで手に入ったことがある。

Krogerの入荷も他と同じくランダムだ。店員に聞いても知らないのも他と同じ。とあるKroger限定モデルがすごく欲しくて必死に探していたことがある。店員と少し顔見知りになって入荷したら教えてくれることになったが、結局電話がかかってくることはなかった。自分でも探していたが結局近隣の店舗には入荷しなかったっぽい。仕方がない。

■Kroger

Marketplaceではない通常のKrogerは食料品メインの普通スーパーだ。ごくわずかではあるがおもちゃコーナーには必ずHotwheelsがぶら下がっている。店舗毎に差はあるが、おもちゃコーナーとは全然違う季節物のコーナーにSide Kickがあったり、食料品コーナーの隅っこに陳列BOXワゴンが置かれていて大量に売られていることもある。無駄足になることも多いが見逃したくなければ店内の通路を一通りチェックする必要がある。価格店舗地域にもよるみたいだがメインラインは$1~2の間で売られているのが通常のようだ。たまに10台で$10という値段が付いていることもある。セット割引のように見えるが、面白いことにこういう場合でも1台が$1で買えたりする。また、店舗によっては2年ぐらい前のアソートが定常的に入荷している様子もあり、買い逃したモデルを手に入れられることもある。Mattel社が2年前のモデルを作り続けているとは思えないのでこの流通は謎だ。WalmartやTargetの陰に隠れて情報も少ないので入荷を狙い撃ちしにくい代わりに、運次第で$THが手に入ることもある。

Krogerという名前全国区ではないので地域によっては別の名前スーパーが展開されている。どの地域が何という店舗かはKrogerの公式Webサイトに載っていたと思うので旅行出張中にハンティングする場合は事前に調べるのが望ましい。例えばロサンゼルス近辺ではRalphsというスーパーだ。ここでもKroger限定モデルが手に入る。

■その他スーパーマーケット

一般的スーパーならHotwheelsが置いてあることは多い。どのスーパーも似たようなレイアウトで似たような取扱商品だ。上で書いた通常店舗のKrogerと同じような状況で、$THに巡り会うチャンスもある。ただし専門性の高い店舗には取り扱いがないようでWholeFoods、TraderJoesでは売っていない。

■Walgreens

侮れないのが薬局だ。どの店舗にもおもちゃコーナーがあり、在庫はまちまちだがHotwheelsも必ずある。Side Kickも頻繁に見る。店舗や時期によっては特設の陳列BOXが置かれていたこともあり、それなりの狩場と言える。そんな薬局の中でも特にWalgreensはかつて限定モデルが設定されていたこともあり、コレクターにとってはスルー出来ない店舗だ。

CVS

Walgreenのような限定モデルはないようだが、同じような在庫状況なので行ってみる価値はあり。

■H-E-B

まり行ったことはないがWalmartと似たような感じの店。在庫もそれなりにありそう。見かけたら要チェック。

■Meijer

Walmartに似たような店舗でHotwheelsもしっかり置いてある。行った経験が少ないのでこの店舗特有情報は持ち合わせがない。

Dollar General

1ドルショップ日本で言う100円ショップみたいな店。ここでもHotwheelsは売っているし、他の特定店舗と同様にDollar General限定モデルキャンペーンが設定されたこともある。店舗自体が大きくないので大量に在庫はないがしっかりとHotwheelsはあるし、SNSなどで$TH捕獲投稿も時々見かける。要チェック。

Dollar Tree

こちらも1ドルショップ。常にHotwheelsの在庫はあるので要チェック。限定モデルなどはないが、クリスマス商戦の時期にはかなり多く入荷されるのでその時期にはパトロールが忙しくなる。$THのチャンスもあるし私自身もここで見つけたことがある。Walmart限定のはずのワイスシリーズも見たことがあるが、それはバグなのかもしれない。

■99cents only

同じく1ドルショップだが、ある時期から極端に在庫が少なくなった。もう取り扱いをやめてしまったのかもしれない。

■GameStop

名前の通りゲーム関連の商品を主に扱うがコレクション向けのフィギュアおもちゃもあり、Hotwheelsの取り扱いもある。数年前にはGameStop限定モデルキャンペーンなども設定されたのでHotwheelsにも注力していると思われるが、私自身の経験では店舗も少なめだし在庫も少ない印象だからまりハンティング向きの店舗ではない気がする。

Five below

$5以下の商品を扱う店舗おもちゃも売っているのでHotwheelsも少しある。在庫は少ないので期待も薄い。

■AutoZone

日本で言うオートバックスみたいな店だ。少しだけ置いてあることがある。わざわざ行くほどでもない。

Home Depot

かなり大手ホームセンターで、たまにHotwheelsを売っていることがある。まれDump Binもあるらしいがわざわざ行くほど期待はできない。

■Hobby Lobby

Greenlightなどの在庫結構多いが、Hotwheelsの取り扱いはない。

■その他ホビーショップ

ホビーショップだとラジコンメインなのでHotwheelsは意外と売ってない。売っている場合は古いモデルが売っていることがある。

■Diecastショップ

アメリカではミニカーのことをDiecastと呼ぶ。ミニカーショップを探したい時にはDiecastで調べてみよう。ミニカーを扱っている店なら必ずと言っていいほどHotwheelsが置いてあるはずだ。

■Collectibleショップ

Collectiblesは日本ではなじみのない英語だがコレクター向け商品意味。Hotwheelsもそれに該当するのでこういうショップで取り扱われていることが多く、検索する際のキーワードとして使うのが有効だ。ただしジャンルが色々あるのでHotwheelsがあるかどうかは事前に確認必要だ。運が良ければHotwheelsだらけの店に巡り会えるかもしれない。

アンティークショップ

もちろんアンティーク家具雑貨がメインだが、Hotwheelsもそれなりに売っていることが多い。アンティークだけあって古いヴィンテージモデルも売っているが、最近モデルも売ってたりする。

フリーマーケット

残念ながらほとんど行く機会がなかったが、フリーマーケットもHotwheelsを買う良いチャンスのようだ。売っているのが一般人だったりコレクターだったりするが、ガッツリ業者が売りに来ていることも多そうなので価格と物はしっかり見極める必要がありそうだ。また、フリーマーケットでも常設の店舗や会場があることもある。そういう場所業者販売しているのだが在庫も多いので欲しい物を見つけるチャンスになるだろう。

移動販売(Burning Rubber Toy Company)

モーターショーなどイベントの物販として出店している。かなりの種類と在庫があるので見ているだけでも楽しいし、車好きならイベントの良いおみやげになるだろう。それなりのプレ値だが相場通りのような印象。

Mattel本社

Mattel社の総本山である本社敷地にも店舗がありそこでもHotwheelsが買える。一度だけ行ったが特に在庫も多くなく値段も高くてパッとしない印象だった。記念に行っておみやげを買う感覚で行くのが良いかも。

Mattel Experience(閉店)

ロサンゼルス空港の5番ターミナルMattel直営店舗があったが現在はすでに閉店してしまったようだ。空港内にあるせいか価格も高かったがコレクターにとってロサンゼルスの良い記念の買い物ができたので残念だ。

Toysrus(閉鎖)

以前はWalmartと肩を並べる戦場だったと思われるが、アメリカではすでに廃業して店舗はもうない。私自身はあまり良いモデル出会たことはない。閉店セールはしていたがダラダラと渋い値引きを続けていたし、最後の方は店内に商品が散乱していて往生際が悪かった印象がある。Goodbye Toysrus!

最後まで読んでいただきありがとうございました!

2022-06-19

anond:20220619084728

そもそもやる気の無いヤツやバカ仕事しないで欲しいので

そういうのが休んだり遊んでるぶんにはまったく問題無くね?むしろありがたい

これ絶対うまくいかねーから、やり直しになるから、間に合わねーからを眺めてる方が圧倒的にストレス

かといって助けを求められてもいないのに勝手にやるわけにもいかねーし

 

あと基本的ベンチャー以外は誰もまともに仕事する気ねーぞ

そもそもベンチャーですら下記だったが?

ベンチャー新規事業業務への気軽な参加や社外の勉強会業務として好きに参加出来る仕組みを作ったけど

ベンチャーですら全員はそれを喜ばなかったし(数字を預かる人や役員の小言/愚痴ではない)

グダグダしている組織に至っては完全に余計なことでしか無かったよ

出来ることが増えることは彼/彼女らにとって嬉しいことでもなんでもなく

ただひたすらに余計なことなのだ

これは優秀/無能学歴職業関係ない

まれ持っての性格という他ない

 

まぁ優秀なボスがいる職場もあるが優秀なボスがいるところって基本的にできること何も無い

化け物エンジニアと同じく再現性もない(真似できるところがない)

SIで開発&テクニカルサポート(運用保守)があったが、

運用保守部隊ボスX 2 がクソ有能だった

Oracleなどのミドルウエアやdump解析やRAC構成相談も含めたテクニカルサポートだったけど、


2021-07-15

オリパラ音楽担当になった小山田圭吾の悪評をreddit投稿しようと考えてる。

このグーグル翻訳を駆使した英文大丈夫か教えてほしい。

増田仕様のせいで空行が入らないので読みにくいかも)

追記:ブコメですでに記事があるという指摘があったので、いまさら投稿しなくてもいいか

なにかに流用したい人がいるかわからんが好きに使ってくれていい。

A creative member of the Tokyo Olympics opening ceremony music was found to have been a fierce bullying assailant in the past.

Keigo Oyamada (born 1969) became a creative member of the Tokyo Olympics opening ceremony music.

In an interview with a music magazine in the 1990s, He talked about being a perpetrator of bullying as if it were a funny thing.

Interview in the January 1994 issue of the music magazine "Rockin' On Japan 20,000-word interview with Keigo Oyamada"

"Also, the bullying was really bad at my school."

 But you said you were the bully.

"Yeah. I bullied him. When I think about it now, it was really awful. I'd like to take this opportunity to apologize (laughs) because I've been bullying him pretty hard."

 Did you do something that bad?

"Yes. Yes, it's against the rules of humanity. I would strip them completely naked, wrap a string around them, and make them masturbate. They feed you shit. And backdropping him after he ate shit."

The school he attended was a combination of primary, secondary, high school and university.

The school offers "joint education" where normal children and disabled children are placed in the same class.

A writer who read this interview planned a dialogue between the "bully" and the "bullied", but it did not happen.

It became a personal interview with Keigo Oyamada.

There was a guy named Sawada. He was a very epoch-making guy, and he came to the school when I was in the second grade. It was a shock to the whole school (laughs). When he moved to a new school and introduced himself, he would suddenly say (in a tone that sounded like he had a speech impediment), "I'm Sawada. It's like, "Wow, that's great! Then, on the first day at the new school, I took a dump. It's a felony for elementary school students to take a dump at school, isn't it?

There was a cardboard box or something like that, and I put Sawada in it, tied it all up with duct tape, made air holes in it (laughs), and said, "Hey, Sawada, are you okay? (laughs) Then, with a chalkboard eraser or something, I slapped it around and said, "Poison gas attack! (laughs) Then, I took a blackboard eraser and said, "Poison gas attack! ...? He said something really interesting. I don't know what it was, but he said something like "Mommy" or something like that (laughs), and everyone burst out laughing.

When it comes to his jersey, everyone takes it off, but it's nothing for him to take his dick out, so he just walks around with it out. But he's got a big dick, and it's been that way since elementary school, but in high school it got even bigger (laughs). (laughs) The girls would react to it, so we would take it off on purpose and have him walk down the hallway.

2021-04-14

「radioactive water」を他の国のメディアではどう表現しているか

各国のメディア記事タイトルと1文目を抜き出してみた。

こうして比較してみると、"radioactive water" はどちらかと言えば強い方の表現だなと思った。

Al Jazeera (カタール)

contaminated Fukushima water, contaminated water

Japan to release contaminated Fukushima water into sea

Japan says it will release more than one million tonnes of contaminated water from the ruined Fukushima nuclear power station back into the sea, in a decision that drew swift condemnation from China, South Korea and environmental groups and is likely to anger the fishing industry.

ttps://www.aljazeera.com/news/2021/4/13/japan-to-release-contaminated-fukushima-water-into-sea

Arirang (韓国)

Fukushima radioactive water, contaminated water

Japan to announce Fukushima radioactive water release into sea

Tokyo appears set to formally announce its final decision on the release of contaminated water from its wrecked Fukushima nuclear power plant into the sea.

ttp://www.arirang.com/News/News_View.asp?nSeq=275277

BBC (イギリス)

wastewater, contaminated water

Fukushima: Japan approves releasing wastewater into ocean

Japan has approved a plan to release more than one million tonnes of contaminated water from the destroyed Fukushima nuclear plant into the sea.

ttps://www.bbc.com/news/world-asia-56728068

CNA (シンガポール)

treated Fukushima water, contaminated water

Japan to release treated Fukushima water into the sea: PM Yoshihide Suga

The Japanese government plans to release more than 1 million tonnes of contaminated water from the destroyed Fukushima nuclear plant into the ocean, Prime Minister Yoshihide Suga said on Tuesday (Apr 13), in a controversial decision that follows years of debate.

ttps://www.channelnewsasia.com/news/asia/japan-fukushima-nuclear-plant-water-sea-yoshihide-suga-14610968

CGTN (中国)

Fukushima wastewater, radioactive water

Japan determined to release Fukushima wastewater despite backlash

Japanese Prime Minister Yoshihide Suga said on Monday that the disposal of radioactive water from the crippled Fukushima nuclear power plant cannot be postponed amid plans to rebuild the plant, despite the looming backlash from both home and abroad, broadcaster NHK reported.

ttps://news.cgtn.com/news/2021-04-12/The-plan-to-release-Fukushima-wastewater-sparks-backlash-ZoFTbhBjG0/index.html

CNN (アメリカ)

treated Fukushima water, treated radioactive water

Japan to start releasing treated Fukushima water into sea in 2 years

Japan will start releasing more than 1 million metric tons of treated radioactive water from its destroyed Fukushima nuclear plant into the ocean in two years, the government said Tuesday -- a plan that faces opposition at home and has raised "grave concern" in neighboring countries.

ttps://edition.cnn.com/2021/04/12/asia/japan-fukushima-water-intl-hnk/index.html

DW (ドイツ)

radioactive water

Fukushima: South Korea summons Japan's envoy over dumping decision

The Japanese government has approved a controversial plan to release radioactive water from the wrecked Fukushima nuclear plant into the ocean. South Korea expressed 'strong regret' over the decision.

ttps://www.dw.com/en/fukushima-south-korea-summons-japans-envoy-over-dumping-decision/a-57177353

France 24 (フランス)

contaminated water

Japan to dump contaminated water from Fukushima nuclear station into sea

Japan plans to release into the sea more than 1 million tonnes of contaminated water from the destroyed Fukushima nuclear station, the government said on Tuesday.

ttps://www.france24.com/en/asia-pacific/20210413-japan-to-release-contaminated-water-from-fukushima-nuclear-station-into-sea

NHK WORLD-JAPAN (日本)

treated water

Suga: Decision on treated water cannot be delayed

Japan's Prime Minister Suga Yoshihide says a decision on how to dispose of treated water from the Fukushima Daiichi nuclear power plant should not be put off.

ttps://www3.nhk.or.jp/nhkworld/en/news/20210412_18/

RT (ロシア)

irradiated water, Contaminated wastewater

Japanese government says it WILL release irradiated water from Fukushima nuclear plant into the sea

Contaminated wastewater at the Fukushima Dai-ichi nuclear plant will be released into the ocean “in around two years,” the Japanese government has announced, despite calls from China and South Korea urging against the move.

ttps://www.rt.com/news/520856-fukushima-contaminated-water-release/

2020-10-02

anond:20201002111016

PostgreSQLでもMySQLでも、dumpしてインポートするって基本は同じだと思うが、バージョンが違うことによるエラーに遭遇すると、一筋縄では行かない

SQL Serverだと簡単なのかは知らないが

2020-09-18

要はアジャコングは行き当たりばったりのサルってことですか?

ダンプ松本core dump吐いてる松本さんってことですか?

2020-04-12

core dump

いつもなら一汗かいストレス発散できるのに、

ジムはもちろん、クラスターの近くなので、外出さえ危ないのでできない

2020-03-08

グレタのラブドールの件でショック受けてる連中

匿名掲示板のグレタのスレとか読んで社会勉強したほうがいいと思うぞ

ここの連中とかの話な

https://b.hatena.ne.jp/entry/s/twitter.com/10255110251/status/1236077579385200640

例えば昨日、某所でスレ立ってたけど反応コレだからね(なおURL先のログは2日程度で消えます

https://b.hatena.ne.jp/entry/s/twitter.com/10255110251/status/1236077579385200640

431263 B20/03/06(金)22:56:46 ID:HNiAfJGsNo.668897354+ 23:57頃消えます

グレタのラブドールを作る外人にはまいるね

120/03/06(金)22:59:38No.668898450そうだねx66

よくもそんなことを!

220/03/06(金)23:00:30No.668898749そうだねx4

フォント気持ち

320/03/06(金)23:01:00No.668898949そうだねx3

かわいい

420/03/06(金)23:02:35No.668899605そうだねx15

まりグレてないな…

520/03/06(金)23:03:11No.668899814+

ノニーきっしょ

620/03/06(金)23:04:01No.668900135+

児ポでは?

720/03/06(金)23:04:17No.668900240そうだねx9

グレタVSメカグレタ

820/03/06(金)23:04:47No.668900419+

サンドバック?

920/03/06(金)23:05:12No.668900578+

顔に麻袋かぶせてならできそう

1020/03/06(金)23:05:19No.668900612そうだねx67

本人よりかわいいのでこれは欺瞞

1120/03/06(金)23:05:23No.668900646+

黙ってればいい感じだな

1220/03/06(金)23:05:52No.668900833+

これはセックスしたい

1320/03/06(金)23:06:26No.668901048+

もっと可愛くして

1420/03/06(金)23:06:30No.668901082+

まんこついてんの?

1520/03/06(金)23:06:36No.668901114そうだねx12

なにちょっと美人にしてんだ

1620/03/06(金)23:07:01No.668901258+

やばいかわいい欲しい

1720/03/06(金)23:08:20No.668901782+

エコだな

1820/03/06(金)23:08:41No.668901956そうだねx2

ひ、ひどい

>I am going to teach her to say Dump your carbon in me daddy

1920/03/06(金)23:08:42No.668901971+

どうせCGでしょ?

マジモンの物質はこの世にないでしょ?

(以下きりがないので抜粋

2220/03/06(金)23:09:21No.668902234+

こんなに可愛くねえだろ

2320/03/06(金)23:10:18No.668902565+

ロボに人権はないのでセーフ

2420/03/06(金)23:10:58No.668902814+

本人も普通にしてたら割と可愛いと思うよ中身は知らんけど

2920/03/06(金)23:12:02No.668903190そうだねx4

私は子供ですからー!子供攻撃するなんてひどいですよー!

って卑怯な手を使いやがるからネット上で匿名攻撃するしか方法がないか畜生

3020/03/06(金)23:12:06No.668903216そうだねx3

こんな美人だったら主張の如何に関わらず世界中ファン出来るんだよなぁ…

3720/03/06(金)23:14:05No.668903909そうだねx4

ここまで憎悪できるのはストレート気持ち悪い

3820/03/06(金)23:14:33No.668904089そうだねx16(←増田註:前の書き込みへのレスとの、読み手評価する「そうだね」の数の差を見てほしい)

>ここまで憎悪できるのはストレート気持ち悪い

なぜ愛ゆえと思えない

4420/03/06(金)23:15:08No.668904344そうだねx1

正直言うと本物よりも可愛いし抜けそう

後略

まあこの体たらくなわけよ、実際にグレタの話がなされる、ある種の空間ってのは

一応念のため、「匿名掲示板から露悪的でも仕方ない」みたいな話をするアホは口を開かないでな?頼むから

2020-02-18

クソ有能な管理者もみたことはある anond:20200218221446

SIで開発&テクニカルサポート(運用保守)があったが、

運用保守部隊ボスX 2 がクソ有能だった

Oracleなどのミドルウエアやdump解析やRAC構成相談も含めたテクニカルサポートだったけど、



↑ こういう成功例を間近で見たので、あらゆることはやる気の問題だと認識していたし

上記のクソ有能な管理者ほどではないけれど、自分自身ベンチャーや小規模組織成功経験を積んだのでそれが当たり前だと最近まで認識していたけれど

どうも「当たり前」じゃないことに最近気づいたよ

ベンチャー新規事業業務への気軽な参加や社外の勉強会業務として好きに参加出来る仕組みを作ったけど

ベンチャーですら全員はそれを喜ばなかったし(数字を預かる人や役員の小言/愚痴ではない)

グダグダしている組織に至っては完全に余計なことでしか無かったよ

出来ることが増えることは彼/彼女らにとって嬉しいことでもなんでもなく

ただひたすらに余計なことなのだ

これは優秀/無能学歴職業関係ない

まれ持っての性格という他ない

2019-02-28

不正アクセスnetgeekリダイレクトしよう

Webサーバ管理してるとこんな不正アクセスログを見ることがあるけど

 - - [06/Oct/2016:20:27:30 +0900] "GET /admin/fckeditor
 - - [06/Oct/2016:20:27:39 +0900] "GET /admin_manage/fckeditor
 - - [06/Oct/2016:20:27:41 +0900] "GET /admin_manage/fckeditor/t0phackteam/webfuck.shell
 - - [06/Oct/2016:20:27:44 +0900] "GET /administrator/
 - - [06/Oct/2016:20:27:46 +0900] "GET dump.sql

こうやってみんなnetgeekリダイレクトしよう(Apache場合

Redirect /admin/ http://netgeek.biz
Redirect /admin/fckeditor http://netgeek.biz
Redirect /admin/fckeditor/t0phackteam/webfuck.shell http://netgeek.biz
Redirect /administrator/ http://netgeek.biz
Redirect /dump.sql http://netgeek.biz

2017-01-10

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2016-12-01

大半のブクマカは知らない、俺だけが知ってるはてブの謎のバグ

1,はてブエクスポートしま

2,はてブを全削除しま

3,0ブクマになりましたね?カップヌードルにお湯を入れ10分ほど待ちます

4,0ブクマ状態はてブエクスポートし、そのファイルExcelで開きます※1のファイルを上書きしないように

5,あら不思議!0ブクマのはずが、何件かエクスポートファイルには残ってるではありませんか!?

(6,元のデータを戻したいときは、1でできたdumpファイルインポートし私に中村静香ちゃんの画像を送れば元に戻ります。)

どういう基準バグが起こるのかは不明だが、削除して一見ブクマになった後も、中のデータにはなんらかの基準ブクマが残っている?

5のエクセルファイルに残ってるブクマを見ると、1年くらい前のものから数日前のものがある。時系列でバラけているので、タイムラグでの消え忘れということは考えにくい。

4でエクスポートしたデータインポートし、マイページから作業はてブ削除をすると完全に消えてくれるようだ。

2016-07-25

gitにおけるコミットログ/メッセージ例文集100

私はコミットログの書き方に悩む英語の苦手な人間である。実際、似たような人は世の中に結構いるようで、頻出単語を集計したりまとめたものは既にあって役に立つのだけれど、これらはあくま単語の話であり、具体的な文を構成する過程でやっぱり困る部分がかなりあった。

要するに、どういう時にどういう文が使われているのか、ということを示した例文集が欲しいのであるググると他にも「例文集があればいいのに」みたいな声はあるくせして、しかし誰も作ろうとしない。何なんだお前ら。それじゃ私が楽できないじゃないか

仕方なく自分でまとめたので、増田に垂れ流しておく。

はじめに

ここで挙げているコミットログは全て実際のコミットログから転載である。当然ながら各コミットログ著作権はそれぞれの書き手にある。いずれも各英文でググれば出てくるし、フェアユース範囲なら許してくれるだろうと考え名前プロジェクト名は割愛したが、ここにお詫びと感謝を述べておきたい。

抽出条件だが、参考にできそうなコミットログを多く含んでいそうなリポジトリGitHubSTARの多い方からざっと目で見て適当に選び、それぞれ最新コミットから5000件抽出した(あわせて前処理として、コミットログ冒頭のタグ情報は消去した)。

結果として対象としたリポジトリは以下の通り。

atomのみ5400件抽出していたため、計25400件のコミットログベースである。このうち、以下の条件に合致するものは参考例にすべきでないとして一律排除した。

こうして残った8540件を眺めながら、適当に切り出したのがこの用例集である個人的に「うーんこの」と思った表現も、散見される場合は載せた。

ということで、以下用例を羅列していく。

用例集

オプションフラグメニューを追加した
ファイルを追加した
メソッド機能を追加した
実装を別のものへ切り替えた
  • Use args.resourcePath instead of args.devResourcePath
  • Use arrays instead of while loops
  • Use auto instead of repeating explicit class names
  • Use weak pointer instead of manual bookkeeping
  • Change all uses of 'CInt' to 'Int32' in the SDK overlay
  • Change Integer#year to return a Fixnum instead of a Float to improve consistency
新しく何かに対応した/機能上の制約を取り払った
何かを使うようにした
より好ましい実装に改良した
何かを出来ない/しないようにした
  • Don't bail reading a metadata instance if swift_isaMask isn't available
  • Don't exit until the parent asks for an instance
  • Don't include Parent pointer in Nominal/BoundGeneric TypeRef uniquing
  • Don't use MatchesExtension for matching filters
  • Don't use ES6 class for AutoUpdater windows class
  • Don't use MatchesExtension for matching filters
  • Avoid `distinct` if a subquery has already materialized
  • Avoid infinite recursion when bad values are passed to tz aware fields
オブジェクトの内容や挙動確認やすくした
Assertを追加した
不要コードを除去した
コードを移動した
名前修正した
さなバグタイポ修正した, 警告を潰した
バグや好ましくない挙動修正した
テストコメントドキュメントを追加した
テストを削除した
テストコメント修正した
ドキュメント修正した

表現傾向とまとめ

以上の用例をふまえ、今回の参考ログ8540件から先頭の単語を出現回数で並べると次のようになった。

Add1149
Fix1014
Update584
Remove566
Use382
Don't260
Make228
Move178
Change103
Rename85
Improve76
Avoid68
Allow65
Implement60
Handle58

コミットログの基本形はもちろん動詞 + 名詞である名詞固有名詞複数形、不可算名詞が多いが、単数形場合冠詞は a が使われるか、あるいは省略される。the はまず使われない。

何かを追加した、という表現では非常に広く Add が使われる。メソッドからテストドキュメントに至るまで大概これでまかなえる。

一方、何かを修正した、という表現では広く Fix が使われる。「何か」は typocrash といった単語からメソッド名まで幅広い名詞を取るが、動名詞はあまり取らないのと、that節は取らないのでその点は注意が必要である

Fix は「何かが正しく動くようにした」ことを示し、正しい動作内容が何かを説明しない。そこで正しい動作内容に言及したい場合Make sure が使われる(こちらはthat節が取れる)。ただし Fix よりもニュアンス的に重い表現と思われ、Fix を使わず Make sure ばかり使うのはちょっとキモいのではないかと思う(Ensure はさらに重い表現っぽい)。

また、Fixtypo 以外でのドキュメント修正に対して使われることは稀である。対して Update はドキュメントコメントテストに使われ、本体コード修正に対しては使われない。本体コード修正にあわせてテスト更新したなら Update が使われる。ただ、テスト機構それ自体バグ修正したなら Fix である

無駄な何かを単純に除去したなら Remove を使う。これまでのもの(A)からのもの(B)に切り替えたのであれば Use B instead of A か Change A to B が使われる。新たに何かを利用するようにしたのであれば Use を、利用を取りやめた場合Don't use を使うことが多い。

何かをしないようにしたなら Don't を、内部実装効率化なら Make A + 比較級/形容詞Improve が使われる。

中身の変更を伴わない単なる名前の変更なら Rename A to B、コード機能論理上の場所を移動させたなら Move A to B である

この辺はリファクタリングと呼ばれる行為と思うが、Refactor というぼんやりした動詞はあまり使われず、このように変更内容の種類に応じて動詞が使い分けられている。

余談

コミットログにはWhyを書くべきだ、というのを何かで見かけたので because とか since を使ったログがどの程度あるかを調べたが、8540件のうち22件だった。基本的に短く、シンプルに、一目で意味が取れるログが好まれる傾向がある。例えば get rid of とか2件しか使われておらず、圧倒的に remove である

一方で、シンプル単語だけど開始単語としては使われないものもある。例えば次のような単語である。Expand(9)、Extend(8)、Print(5)、Optimize(5)、Publish(4)、Append(4)、Modify(3)、Manage(2)、Revise(2)、Dump(2)、Insert(2)、Migrate(2)、Enhance(1)、Edit(1) 。いずれもカッコ内は8540件に対する冒頭での登場回数である。結局、より一般的平易な単語で表せたり、Refactor同様に抽象度が高すぎると使われないのだろう。

おわりに

8000件もログを見たおかげで、迷いなくコミットメッセージが思いつくようになったのが個人的には今回書いてて最大の収穫だった。たぶんカンニングペーパーを作る行為それ自体効率のいい学習になるという話と同じだと思う。

このまとめも100以上用例を転載してあるので、それを読むだけでも多少は効果があるんじゃないかと思う。同じようにコミットログ書きたくねぇなぁ英語わっかんねぇなぁと思っている人にとって、何か役に立つところがあれば幸いである。

2015-10-30

いきなりSEGV

揚げ足取りをしたいわけではなく、単に思い出しただけで、要するにネタなんだけど。

http://blog.practical-scheme.net/shiro/20141013-translation-checklist

オープンソースコードにも質は色々あるけれど、 コンパイルがそもそも通らないとか、実行したらいきなりSEGVするコードを 出してきて「叩き台です」という人はいないと思うんだ。 やりたいことの一部機能まがりなりにも動いて、何をしたいか 客観的にわかコードがあってはじめて、改善案も出せるというもの

「実行したらいきなりSEGVする」のが「やりたいこと」ってケースはあるんですよね。core dumpするコードを書いて最も短かった人が優勝とか定期的に誰かが思いついてはブログに書いたりしてるようですし。

2015-05-25

初めてデリヘルを呼んだら橋本環奈が来た

性欲を持て余していた。31歳独身風俗なんて行ったこと無いし、キャバクラでさえも行ったことなかった。

数年前別れた彼女はもうすぐ結婚するし、一昨日焼肉に連れて行った女子大生は「先週彼氏出来た」とのたまう。ハッ◯ーメールには2万円を要求する女しか居ないし、Yahooパートナーもさっぱり返信がない。FC2動画に有料登録し、俺のマイページは「ニーソ」「マッサージ」「黒髪ストレート」「色白スレンダー」「貧乳」「乳首桜色」「ロリ体型」…などと細かく分類されていつでもオンデマンドで楽しめるようになっていた。

いい加減セックスがしたい。裸で抱き合ってキスをしたい。朝から前立腺が泡立つような感触が続いている。

Google先生で「府中 デリヘル」と検索する。府中は隣町だ。きっとすぐに来てくれる。俺は基本的に一発しか出せない。60分もあれば大丈夫だ。

出てきた風俗情報サイトを上から眺める。やがて一件のダサめのサイトに辿り着く。ロゴ解像度ガバガバやな。今日の出勤に、黒髪ロングストレートニーソ女の子が映る。顔はぼかされている。プロフCカップだがもっと無いだろう。でも、これだ。俺の11cm電探(仮性)に感あり。

20分後、女の子デリバリーされてきた。ドミノ・ピザより早い。インターホンが鳴る。甘ったるいアニメ声だ。期待が高まるオートロックを解除する。ドアを開ける。橋本環奈似の美少女がいきなり抱きついてきてディープキスを迫ってくる。大当たりだ。今までの彼女よりも美少女が来てしまった。夏らしいさわやかな花がらのワンピース。残念ながらニーソではないがそんなことどうでもいい。女の子がお店に到着連絡をし、再び抱き合ってベロチュー。混乱してきて童貞並みにどうすればいいかわからなくなってしまった。今までの彼女は何だったんだろう。シャワーを浴びベッドに向かう。

ベッドの上で裸で抱き合って橋本環奈似の美少女ロチュー。発射なしでももう充分満足してしまっている。やばい彼女つくるより全然良くないか、これ。アップル並みのユーザーエクスペリエンスだ。店長ジョブスなのか?彼女の脇腹をスワイプし、綺麗な桜色のホームボタンの外周をなぞり、口に含む。実物の桜色を目にするなんて初めてある。彼女は僕の性体験をことごとくiOSアップデートしていく。「Hey,Siri.ノーハンドでしてくれ」僕が指示を出すとSiriは嬉しそうに僕のLightningコネクタを口に加える。やがて彼女は僕の足を持ち上げ僕のSiriをむき出しにし、舐め始める。彼女にも舐められたこと無いのに!童貞みたいな声を上げる。僕のセキュリティ・ホール突いた彼女は再びLightningコネクタを咥えroot権限の奪取を試みる。今度は手でしごきながらだ。やがて僕は橋本環奈の口内にめいっぱいcoredumpした。dumpが終わっても彼女アタックし続けた。彼女はまた僕の性体験をiOSアップデートしていった。コアダンプを口にしたまま動かなくなる彼女。「あ、ティッシュいるよね」頷く彼女デバッグは追加料金である

まだ時間はある。再び橋本環奈を抱き寄せベロチュー。何これ、すごい幸せ。ひとしきり腕の中で彼女の体温を感じ、再び咥えてもらう。「こんな短時間に2回とかしたことないんだよね」「がんばれ♡がんばれ♡」急に伊藤ライフがやってきた。口の中柔らかいし上手い。今度はスマタだ。ローションを塗り彼女の股間に当てる。幼い顔から想像できない大きめの赤貝。へイラシャイ築地久兵衛感覚赤貝人差し指中指で覆い握る。あっ、彼女全然濡れてない。仕事でやってるんだなということに気付くもそれ以上の体験がそこにはあり、もはやどうでもいい事であった。なので気兼ねなく思いっきサービスしてもらおう。その後、上になってもらって下からちっぱいをながめたり自分が上になって赤貝に擦りつけたりした後に口で。こんな短時間で2発目はちょっとしかったが、どうしてそこでやめるんだ、そこで!!もう少し頑張ってみろよ!大丈夫かな、あはぁ~ん。不安になってくるでしょ?ならば、一所懸命、一つの所に命を懸ける!そうだ!今ここを生きていけば、みんなイキイキするぞ!!「もっと熱くなれよ!」僕は心で叫びから字通りイキイキした。

再びシャワーを浴びて服を着る。別れ際に抱き合い、またキスし、彼女を送り出す。とても1.5万円とは思えない満足度であった。酒を飲み、fue先生の「フエラハメりっぷす」(巻頭作品アンドロイドがひたすら口でしてくれるもの)で抜いて寝た。月一回くらいだったらいいかも。

枕には橋本環奈匂いが染み付いていた。「彼女いたら呼べないな、これ。」

なんだこの長文。

2013-03-23

プロテクト強化後のもふったーも予想以上に酷かった件(追記あり)

ことのあらまし
  1. Twitterクライアントもふったーの作者「TweetDeckのconsumer secret簡単に抜ける、終わってる」(http://blog.livedoor.jp/blackwingcat/archives/1760823.html)
  2. 別の誰か「もふったーのconsumer secretも簡単に抜ける」(http://d.hatena.ne.jp/kusano_k/20130318/1363640368)
  3. もふったーの作者「プロテクト強化した」(http://blog.livedoor.jp/blackwingcat/archives/1762970.html)

プロテクトかけたアルゴリズムを実装したバージョン差し替え」たなんて言われると本当に「プロテクト」がかかっているのか確かめてみたくなるのが人情というもの。というわけで、プロテクト強化後のもふったー(v0.9.6b)からconsumer secretが抜けるか試してみた。結論から言うと、あっけなく取り出せた。以下に手順を記す。

手順

動作がよくわかっていないアプリケーションを解析して仕様を明らかにすることをリバースエンジニアリングと呼ぶ。ソフトウェアリバースエンジニアリングは基本的に対象を逆アセンブルしてひたすら読むことによって行う(その補助に1命令ずつ実行してレジスターやメモリーの様子を観察することもある)。しかし、よっぽど小規模なものでなければオブジェクトコード全体を逆アセンブルして最初から最後まで読むなんてのは不可能だ。人間の読速度には限界があるし、時間も有限だからだ。そして、詳しい動作を知りたい部分というのは全体のごく一部であることが多いので全逆アセンブリを読むのには非常に無駄が多い。

からリバースエンジニアリングはいかに詳らかにすべき動作を行っているコードを絞り込むか(=読むべき逆アセンブリを少なくするか)が重要になる。

この場合も同様だ。TwitterGUIクライアントを頭から読むのは到底無理なので、どうやって解析すべきコードの範囲を狭めるかを考えた。それにはOAuth認証においてconsumer secretがどのような役割を果たすのかを知る必要がある。

OAuth認証で、consumer secretはそのままサーバーに送信されたりはしない。signatureの生成にHMAC-SHA1が使われ、その鍵にconsumer secretが使われる。HMACは次のように算出される。

HMAC (K,m) = H ((K ⊕ opad) ∥ H ((K ⊕ ipad) ∥ m))

ここで

である

まずはこのあたりから攻めようと思った。SHA-1計算はいくつか特徴的な定数が使われるので、そこからSHA-1計算に使われているであろう関数444190を特定する。この関数エントリーポイントに中断点(ブレークポイント)を設定してOAuth認証をさせるべくもふったーの「ブラウザ認証ボタンを押す。狙い通り中断するので関数を抜けるまで実行する。関数401100の4012DAに出た。少し下を見るとこのようになっている。

CPU Disasm
Address   Hex dump          Command                                      Comments
00401311  |.  33F6          xor     esi, esi
00401313  |   8D8C24 A40000 /lea     ecx, [local.54]
0040131A  |.  394C24 14     |cmp     dword ptr ss:[local.90], ecx
0040131E  |.  75 0E         |jne     short 0040132E
00401320  |.  3BF5          |cmp     esi, ebp
00401322  |.  73 29         |jae     short 0040134D
00401324  |.  0FB68434 A400 |movzx   eax, byte ptr ss:[esi+esp+0A4]
0040132C  |.  EB 21         |jmp     short 0040134F
0040132E  |   3BF5          |cmp     esi, ebp
00401330  |.  73 1B         |jae     short 0040134D
00401332  |.  8B5424 18     |mov     edx, dword ptr ss:[local.89]
00401336  |.  52            |push    edx                                 ; /Arg1 =  [LOCAL.89]
00401337  |.  8D8C24 FC0000 |lea     ecx, [local.33]                     ; |
0040133E  |.  8BD6          |mov     edx, esi                            ; |
00401340  |.  E8 CB4D0000   |call    00406110                            ; \mofooter.00406110
00401345  |.  83C4 04       |add     esp, 4
00401348  |.  0FB6C0        |movzx   eax, al
0040134B  |.  EB 02         |jmp     short 0040134F
0040134D  |   33C0          |xor     eax, eax
0040134F  |   34 5C         |xor     al, 5C
00401351  |.  888434 B80000 |mov     byte ptr ss:[esi+esp+0B8], al
00401358  |.  83C6 01       |add     esi, 1
0040135B  |.  83FE 40       |cmp     esi, 40
0040135E  |.^ 72 B3         \jb      short 00401313
00401360  |.  895C24 3C     mov     dword ptr ss:[local.80], ebx
0040134F  |   34 5C         |xor     al, 5C

が注意を引く。もしかしてこれはopadとのxorではないか?

00401351  |.  888434 B80000 |mov     byte ptr ss:[esi+esp+0B8], al

xorした結果を格納している。

先ほどの中断点は無効化しこのループを抜けた地点である401360まで飛ばす。この時点でesp+0B8を見ると次のようになっている。

Hex dump
64 2E 16 64|37 04 32 6D|0F 0D 26 29|3A 37 1F 2F|
18 69 6E 6E|0D 25 29 33|11 34 29 69|12 36 24 1E|
05 16 33 6A|04 3B 0E 68|7A 5C 5C 5C|5C 5C 5C 5C|
5C 5C 5C 5C|5C 5C 5C 5C|5C 5C 5C 5C|5C 5C 5C 5C|

あとはこれと5Cとをxorすればconsumer secretが手に入る。終わり。

追伸

はてな増田スーパーpre記法で半角の<>が含まれていると投稿が出来ないのを早く直してください。

3/23 18:45追記

もふったーの作者から反応があった。「本気だったつもりのもふったーのデバッグ処理が残ってた」らしい(http://blog.livedoor.jp/blackwingcat/archives/1763951.html)。修正したとのことなので最新版(v0.9.6e)を見てみた。確かに若干変更されているが何の問題もない。SHA-1の呼び出しに中断点を設置して渡されているバイト列を見るだけ。

CPU Disasm
Address   Hex dump          Command                                  Comments
00401324  |.  8D4424 20     |lea     eax, [local.102]
00401328  |.  50            |push    eax                             ; /Arg1 = 
00401329  |.  E8 623A0400   |call    00444D90                        ; \mofooter.00444D90

ここでeaxが指すメモリーを見ると以下のようになっている。

01 23 45 67|89 AB CD EF|FE DC BA 98|76 54 32 10|
F0 E1 D2 C3|00 02 00 00|00 00 00 00|40 00 00 00|
40 4F 73 53|62 54 5C 7E|59 57 53 42|55 45 7A 57|
61 47 7A 5B|42 4F 7B 61|5D 66 5E 7A|42 7F 40 63|
79 66 05 55|79 4C 60 42|02 10 36 36|36 36 36 36|
36 36 36 36|36 36 36 36|36 36 36 36|36 36 36 36|

先頭32バイトゴミ無視して0x36とxorすればconsumer secretが得られる。

2011-03-20

より良いPHPerにならないための20Tips

http://1-byte.jp/2011/03/20/20_tips_you_need_to_learn_to_become_a_better_php_programmer/

良いPHPerだって?そんなものは丸めゴミ箱にでも捨ててしまった方が資源の再利用になる分いくらかマシだ。

つまり俺たちがしなくちゃならないことは「より良いPHPerにならないため」に何ができるかってことなのさ。

それじゃ、始めよう。

1. ?>を使うな

?>なんて使っちゃいけない。そう俺たちはBAD PHPer。

無駄ホワイトスペースの出力に悩まされるくらいなら対称性なんて丸めゴミ箱にでも捨てた方がまだマシだ。非対称性こそが賛美。

2. 設定ファイルPHPで書くな

require_once("config.php");

未だにこんなことやってるやつがいるのかいベイベー。絶対にダメだ。この一行を見たら俺は悶絶する。

ダメだ、早く何とかしないと。

大抵このconfig.phpの中身はこうなっている。見て絶望だ。

$hoge_path = '';
if (!LOCAL) {
    define('FOO_FLAG', 1);
    if (HONBAN) {
        define('HOGE_FLAG', 1);
    }
    else if (TEST) {
        define('HOGE_FLAG', 2);
    }
}
else {
    $hoge_path = '/local';
    define('FOO_FLAG', 2);
    define('HOGE_FLAG', 3);
}

define('HOGE_URL', $hoge_path.'/hoge/');

こういうのが延々と続くわけだ。もういやだ。もう見たくない。

本番環境テスト環境でどういう値の違いがあるのか、ローカル環境だとどうなるのか、まったく把握できる気がしない。

なまじPHPな設定ファイルのせいで処理をついつい書いてしまう。そしてどんどん複雑になってしまう。

やはり設定データは基本的にYAML等のデータしか定義できない形式のもので用意すべきだ。そして環境ごとに設定ファイルを分けるべきである

そうすることで何にどういう違いがあるのかすぐにわかるし、diffすれば一度にすべて把握することができる。

# 本番環境設定ファイル
foo_flag: 1
hoge_flag: 1
hoge_url: '/hoge/'
# テスト環境設定ファイル
foo_flag: 1
hoge_flag: 2
hoge_url: '/hoge/'
# ローカル環境設定ファイル
foo_flag: 2
hoge_flag: 3
hoge_url: '/local/hoge/'

3. コメントを信用するな

そう、あなたはこんな状況に遭遇したことがあるんじゃ?

// ここで後の処理のためにhogeメソッドを呼び出しておく
$q->foo();

// $a['foo']はここに来る時点で真のはず
// 2010-03-10 判定がおかしいので修正
// 2010-06-21 やっぱり値が入ってる方が正しい
if ( !isset($hoge[0]) ) {
}

コメント保守されない。そう、それは真実。こんなコメント発見したら即効削除しよう。コメントは基本信じるな。

俺たちにちょっとしたヒントと大きな損害を与えてくれる、それがコメントの役割なのだ。

4. タブとうまく付き合うしかない

わかる。いいたいはとてもわかる。俺たちはしばしばインデントにスペースを使うはずだ。一方でIDEのしっかりした言語ではタブも使うことがある。しかし悪いことに、両者を混同しているプログラマも一定数いるのだ。

タブを画面上で認識しにくいエディタが世の中には存在する(何とは言わないが)

そして画面上で認識しにくいことを理由にタブを気にしないプログラマがいる。

この二つの条件が重なると、タブとスペースの交じり合ったインデントが完成する。もうぐちゃぐちゃだ。これは永遠に続く戦いだ。

私たちが勝利を掴むためにできることなどせいぜい、常にスペースしか使わない。タブを見つけたらその都度スペースに変換する。そういった地道な活動が明日へとつながるのだ。

5. 変数名に時間をかけるな

われわれがプログラムをするとき、何に一番時間がかかってるか。実は変数の命名なのである。ここで拘り過ぎて時間をかけ過ぎては何も進まない。

御託はイイからさっさと書け、だ。しかしとはいっても変数名は重要。日頃からどういうときにどんな名前を使うかを決めておくといい。

そして変数名に型はまったく必要ない。型宣言のないPHPにおいて、型の変数名をつけること自体ナンセンスだ。

コンパイラ様に保証されてない状態での

$iNumber = 'aaa';

になんの意味もない。コメントを信じるなでも言ったが、これはプログラマを混乱させるだけの害悪なものだ。

6. 変数初期化場所

変数を使う前に初期化するのは、警告を出さないという意味でも良い癖だ。しかし具体的にどこでやるかが問題だ。

$foo = null;
$foo = $q->foo();

こんな初期化意味はない。よくあるのはやはり、if文で値を振り分けるケースだろう

$foo = null;
if ( $hoge ) {
    $foo = 1;
}
else if ( $bar ) {
    $foo = 2;
}

このとき初期化はとても有効だ。もしnullの初期化を忘れたまま$fooを使うと警告が出るが、ちゃんと初期化してるので出ない。基本中の基本だ。

7. 不正なら常に死ね

function getStatus() {
    $bReturn = false;
    if ($i == 2) $bReturn = true;
    return $bReturn;
}

(中略)

もし、何かしらの理由で、あなたの書いたif文が間違っていたら?

この書き方をしていれば、間違った値に対して、常にfalseが返る。

私たちが、PHPでsensitiveなデータを取り扱うなら、正しいデータ入力されるまでは、動かないコードを書くべきだ。

trueとfalseの条件がいまいち明確ではないが、本当に動かないコードを書けというのであれば以下のようにすべきだ

function getStatus() {
    $bReturn = false;
    if ($i == 2) $bReturn = true;
    else if ($i == 1) $bReturn = false;
    else throw new Exception("bad status! $i");
    return $bReturn;
}

中途半端にfalseを返して生存させる必要性はまったくない。今すぐ死ね

8. 連想配列キーアクセスする場合

単なる配列に対して数値をクオートで囲う必要はない。

連想配列キーを指定する場合だけ定数と間違わないようにクオートで囲まなければならない。そして逆に定数を使いたい場合はクオートで囲ってはいけない。

更に後世のプログラマ処理を見たときに、定数が使いたかったのか、文字列が使いたかったのかを明確にした場合はconstantを使うと良い。

// 定数のFOOを使うよということが明確になる
print $a[constant('FOO')];

9. echoよりもprintfを使え

もし、文字列変数の値と一緒に出力するときPHPではコンマの代わりにprintfを使うことが使える。

なぜ?コンマを使うよりも可読性がグッとあがるから

printf( “Hello, my name is %s“, $sName);

以下の代わりに上記のコードを使う。

echoHello, my name is “, $sName;

出力すべき変数が増えれば増えるほど、有効になっていく。とにかく迷ったならば、printfを使え、だ。

10. 三項演算子は一回まで

三項演算子はとても有効だ。しか優先順位に難があるせいで三項演算子ネストしようとすると以下のようなコードになってしま

$n = (($i == 1) ? 2 : (($i == 2) ? 3 :$i));

括弧だらけで読みにくいったらありゃしない。三項演算子を使うなら一回まで。約束守れないやつは丸めゴミ箱にでも捨てちまえ。

11. 真偽値のチェックは生でいけ

if ( $flag ) {
}

仕様をちゃんと把握しているなら真偽値のチェックなどこれで十分。

もし事前にbool型だというのが確定してるのなら「$flag === true」を使えばいい。

12. ++と--の演算子を見極めろ

インクリメント、デクリメント演算子は前に付くか後ろに付くかで意味が変わるので慣れるまでは非常にややこしい

けがからなくなるくらいなら初めから使わないほうが良い。見極められないなら使うな。それがPHPerなのだ。

13. 代入演算子を使え

文句なしだ。これは文句がない。

他にも色々あるので覚えておこう

$a %=  1;
$a &=  1;
$a |=  1;
$a ^=  1;
$a <<= 1;
$a >>= 1;

14. 変数dump関数はより便利に

てっとり早く画面に表示する際にpreはよく使うが、デザインの関係上画面の文字が見えないときがある。

なのでdivを使って以下のようにしとくと便利だろう。

function p($var) {
    echo "<div align='left' style='background-color:white;color:black;'><pre>";
    print_r($var);
    echo "</pre></div>";
}

15. 定数から手を洗え

君らが通常作るアプリケーションなんぞに、定数なんぞ必要ない。いいか、もう一度言う、お前ら程度のもんが、定数使おう何ぞ、おこがましいわ!

大丈夫。なんでもかんでも定数にする必要はない。結局設定ファイルに定数をずらずら作りまくってわけがからなくなってるパターンが多い。

貴様たいなもんに、定数は制御できん。いいか設定ファイルYAML等のデータで持つようにし、その連想配列データ構造を一つ持ってるだけで定数の変わりになる。

このメリットに比べれば、定数だと書き換えられなくて良いという利点などこの歯のカスほどのものだ。そんなものは丸めゴミ箱へ捨ててしまうといい。

認識を改めろ。俺たちはより良いPHPerにならないために努力している。

16. $_GETと$_POSTを生で使うな

できれば何かしら簡単なクラスでもいいのでラップしろ。

class Request {
    private $parameters;
    private $method;
    function __construct () {
        $this->method = $_SERVER['REQUEST_METHOD'];
        if ( strtoupper($this->method) === 'POST' ) {
            $this->parameters = $_POST;
        }
        else {
            $this->parameters = $_GET;
        }
    }
    function param ($key) {
        return isset($this->parameters[$key]) ? $this->parameters[$key] : null;
    }
}

これだけでもいい。たったこれだけでもとても便利だ。ここから拡張してGETやPOSTを明示的に取るメソッドとかも作ってみるといい。自分の手を動かすのだ!

17. 関数だのオブジェクトだのの問題ではな

例が良くない。こんなのは引数20個ある関数からset20回呼ぶオブジェクトに変わっただけではないか

そもそもこの20個の引数はなんなのか。何かのデータ構造なんであれば連想配列にして引数一つとして渡すべきだし、それぞれまったく異なる用途の変数なのであればWindowsプログラミングじゃあるまいし20個も引数取る時点設計が間違えている。

何がいいたいか。別に関数でもオブジェクトでもどっちでもいいということだ。

そんなことで悩んでる暇があったら設計を見直せ。

18. メソッドチェインを愛用せよ

スキあらば自分自身を返せ。スキあらばオブジェクトを返せ。配列はArrayObjectのARRAY_AS_PROPSで返せ。

ひたすらメソッドチェイン。来る日も来る日もメソッドチェイン。とにかくメソッドチェインを使い続けろ。そこに未来はある。

19. コードの汎用化は慎重に

どんなコードも繰り返すな。もし、少しでも同じコードを書いていたなら、それは関数に置き換えてしまえ。

・・・と、いうのはやめなさい。

一見同じように見えた処理でも前後の流れでまったく違うものということが往々にしてある。

まとめ方にも問題があるケースもある。何でもかんでも関数化すると、関数が膨大に増えていく。君は見たことがあるだろうか。common.phpやfunction.phpの恐ろしさを。

かに細かく関数化はされているが、適切に関数化していないのである。結合度が非常に高い。なんでもかんでも盲目的にまとめれば良いという話ではないのだ!

20. 結合度は適切に減らし、適切に結合せよ

あまりに極度に意識しすぎると、プログラムそのものができなくなる。そういう状態に陥る。

気を抜いて。そう気を抜いて。所詮あなたコードなんてすぐに消えてなくなるよ。きっともっと偉い人が作り直すよ。だからまずは思うが侭にやるといい。

結合度を減らすというのは非常に難しい何度何度も失敗し続けて、ようやくここは分けた方が良かったんだなと気付く。次に活かそうと心に決める。そしてまた同じ過ちを繰り返していくわけだ。

まずは実装することだ。これが一番の早道だ。まずはがっつり結合した関数をあえて作るといい。何も考えずに作ろう。

そしてその後に、一部分使いましたいとおもうことがあるはずだ。その時に関数に切り出そう。それを繰り返すといい。そのうち初めから分けた方が良いと気付く。

何事も経験が必要である経験を積まないプログラマ丸めゴミ箱に捨ててしまえ。

さて、先の例で言うならば、私ならadd_result_outputという関数を作ってしまうだろう。だってaddとresultを連続して呼ぶのはめんどくさいんだもん。一連の流れをいつも使うのなら、その流れをやってくれる関数を作ればいいじゃないか

function add_result_output ($iVar, $iVar2) {
    $r = add($iVar, $iVar2);
    echo result($r);
}

もっと言えばクラス化してしまってもいいかもしれない。どんな感じになるかは君の手を動かして確認しよう!

最後

このTipsはとてもわかりにくく、ニッチ過ぎる部分も多いかもしれない。

しかしもう一度タイトルを確認してほしい

あくまでも「より良いPHPerにならないための20Tips」なのだ。

君はこの記事を鵜呑みにしてはならない。PHPPHPと見抜けないPHPerはPHPを使うのは難しい

おまけ

もし、あなたPHPプログラマなら、公式のPHPドキュメントあなたのケツの穴を拭くための紙になるだろう。

私は、それぞれのセクションを眺めて、各関数でどんなことが出来るかなんぞ、歯クソのゴミ程に役に立たないとおもっている。動けばいい。はは。

あなたは、PHPで用意された既製関数で多くのことが実現できることに、(俺の仕事を減らすなと)驚くはずだ。

この記事があなたの役に立たない事を。

どんなコメントでも待ってます

ふざけんな!

個人的な感想

この記事に書かれている内容は、丸めゴミ箱に捨てた方が良いレベルです

もしここまで読んでしまったら、丸めゴミ箱に捨てましょう。

プログラ増田のあなぐら

2009-02-13

[][]

出力関数無限ループを簡単に仕込める仕組みを使ってやるのが良いんでしょうね。

スタックレジスタを簡単に dump できる仕組みを用意すると楽です。




GDB の方では割りとそんな感じのことをやってます(スタックレジスタコードを毎回表示)。ただ、どうしても1インストラクション単位の実行になるので、なんともチマチマした時間のかかる作業です。

# あー、そうか。ソースプログラムからデバッグ情報ダンプできる関数に触れるようにすればいいのか……。つーか、インラインアセンブリを使えばいいのか……。

2007-02-17

rimo.tv.screensaver

>http://www.geocities.co.jp/SiliconValley/8916/Macintosh/rimo.tv.screensaver.html>

rimo.tv.screensaverは、YouTube に掲載されている人気の動画から約1日おきに新しい番組プログラムを生成・配信する はてなサービスである http://rimo.tvを表示するMacOSXスクリーンセーバです。

<<

勝手class-dumpとstringsとotoolで調べたよ。概ね間違っていないと思う。

  • 単一のクラスrimo_tv_screensaverViewで構成され、それをPrincipalClassとするバンドル
  • rimo_tv_screensaverViewはScreenSaverView(/System/Library/Frameworks/ScreenSaver.framework/Headers/ScreenSaverView.h)のサブクラス
  • rimo_tv_screensaverViewは一つのWebView(/System/Library/Frameworks/WebKit.framework/Headers/WebView.h)オブジェクトインスタンス変数に(そしておそらくsubviewとしても)持つ。
  • ページの読み込みはWebFrameクラスの-loadHTMLString:baseURL:で実行。URLは固定(http://rimo.tv/)
  • rimo_tv_screensaverViewは上のWebViewオブジェクトのframeLoadDelegateになっていて、ロード時に-webView:didFinishLoadForFrame:が呼ばれるようになっている(おそらくscale設定をおこなうため)
  • -awakefromNibって何やってるんだろう。

URLとかチャンネルオプション設定で変えられると便利そうだけど、今の超シンプルの方がカッコイイかも。

2007-01-21

ここが変だよコンピュータ用語

ドサッとそのまま落す意から転じて、加工せずそのまま全部出力する的な意味で使われたのかな?

引っかく、こするという意味のほか走り書きする、消す、かき集めたという意味もある。0から自分で作っちゃう事をスクラッチと言うことがあり英語の"from scratch"という慣用表現からきてると思われる。なお、消すと言う意味からテンポラリの意味で使われる事もあったらしい。宝くじなどのスクラッチは銀の部分をこすって落すからこうよぶのだろう。

いや、違う言葉なんだけどね。

昔は思いでの意味でよく歌詞に使われてたなーと。いまじゃ携帯電話帳の事だよなーと。

 
ログイン ユーザー登録
ようこそ ゲスト さん