ADHDエンジニアのL2キャッシュ

ADHDの能力を駆使して自由な発想を落としていくよ

企業のブラックリスト

自分が今後関わりたくない事業者の一覧をメモしておきます。
追記していきます。

可能な限り利用を避ける事業者

ヤマダ電機

強引なものの売り方が気に入らない。

ブラック企業大賞2014』で大賞を勝ち取った輝かしい経歴を持つ。
職場もブラックらしくKill-Count数も結構稼いでいる。

ダイキンからエアコンを卸してもらえないなど、メーカーに対してもなにかあるようだ。

日経BP社のアフターサービスランキングでも最下位を記録した上に、逆上して日経BP社を訴訟するという堂々たる風格。

私自身の体験からしても店員の対応が無責任で信用できない。
レジを通すことさえできればよいという考えが透けて見える。

売上至上主義に取り憑かれた20世紀の負の遺産

同じ量販店ならばヨドバシカメラを推したい。
商品知識が桁違いで、しかもモノ売る気あるのかと疑わしいくらい営業してこない。ほんとうに必要なものが買える。

また、商品説明が不要ならば通販を使ったほうがいいだろう。

敬語を消し去ろう

敬語はあんまり好きじゃない。
というのもあんまり存在意義を感じないからだ。

ということで敬語めっちゃディスります。

敬語って無駄だよね

敬語を完璧に使いこなしている人はどれくらい居るだろう?
敬語がとても簡単なものだと思う人は滅多にいないだろう。

  • 相手は目上?目下?
  • 相手は年上?年下?
  • これは謙譲語?それとも尊敬語?
  • 初対面ではとりあえず丁寧語を使うとして、いつ崩す?

こんなことを文面/会話問わず常に考えていないといけないのだ。
ハッキリ言って無駄だ。無駄無駄無駄無駄ァ

そもそも日常的なコミュニケーションでこんな複雑怪奇なルールを常に考慮し続けるのはアホではないか?
いや断言する、アホだ。

ちなみに私の場合は考え事しながら言葉に出していることが多いので、結構敬語が抜けたりする。
まぁそれではいかんなぁと思いながら適当に末尾にですますつけてるので、誰に対しても敬語を使うし、誰に対しても敬語を外すというカオスな運用になっている。
アホじゃねぇか。

伝統文化説

OK、文化を守ることは大切だ。
こういう人はきっと毎日着物を来て馬に乗って出勤してるのだろう。

私は日常的に使用することに疑問を覚えているだけで、文化を滅ぼす気は特にない。 茶室あたりで好きに使ってくれればいいので、ぜひ刀を置いてもらいたい。

敬語でコミュニケーションが円滑になる説

OK、そういう一面もある。認めよう。
特に年配の方にタメ語を使うと窘められるだろう。場合によっては激怒するかもしれない。

ただこれは敬語を使うことでコミュニケーションが円滑になったというより。
敬語に執着する連中がコミュニケーションを阻害しているのでは?

マイナスがゼロになっただけではないのか?

丁寧語ぐらい我慢して使えや説

OK、たしかに丁寧語は比較的単純だ。
語尾にですますをつけるだけでもなんとなくそれっぽく聞こえる。
でも全部につけるならそもそもいらなくないか?

語尾に少しつけるぐらいぎゃぁぎゃぁ言うなって?
じゃぁお前明日から語尾に「にゃん」追加な。 いいですかにゃん?

敬語が役に立つシーン

くどい敬語は相手をいらだたせるのに最高のツールだ。
へりくだった表現で懇切丁寧に謝罪の言葉を連ねながら相手の間抜けさ加減を強調することで、最大限の効果を発揮することが出来る。
その点ではとても優秀なツールである。

とか言いつつ・・・

散々ディスっておいてなんですが、結局使います。
常識の圧力の前には私は余りに無力です。
日本の伝統カルチャー『村八分』により人権剥奪されるのは流石にゴメンです。

和の国なので相手のご機嫌取り気持ちを慮るということも時に大事です。
まぁでもジワジワなくなって言ったらいいなぁと思っています。

ロリポップにWordPressを入れたときのメモ

welcome.htmlを削除する

サンプルページがwelcome.htmlとして用意してあります。

f:id:ksilverwall:20180204212956p:plain

これは最優先でロードされるようです。
つまりWordPressをインストールしても画面は切り替わりません。

自分はアホなのでこのファイル消す前にWordPressをインストールしてしまいました。
WordPressファイルが展開されるとルート直下はごちゃごちゃするので精神の安定のためにも最初から空にしておきましょう。

ロリポップサーバの場合「ロリポップFTP」という機能があってブラウザからFTPアクセスできます。

WordPressをインストールする

なんかすごい便利になっていて、フォームに幾つか必要情報を入れてるだけで自動的にインストールしてくれます。
何も書くことがない。。。。

あとはここと同じように管理画面からよしなにしていくだけです。

WordPressセットアップ

最初の記事を書く前にしておくことがあります。 それがパーマリンク設定。

http://ドメイン/カテゴリ名/タイトル とするのが理想のようなのですが、 カテゴリに関してはまだしっかりと練れていないのでカテゴリ無しで設定します。

GoogleAdwordセットアップ

一応統計を取れるようにしておきます。

新しくサーバを借りるときのメモ

サーバを検討

要件

WordPress対応

独自SSL対応

料金比較

以下のサイトを参考に要件に合う物をピックアップします。 レンタルサーバー比較|料金と機能の一覧【2018年・最新情報】

サービス 初期費用 年間費用 MySQL ディスク容量 転送量 独自SSL
エックスサーバー(X10) ¥3,000 ¥12,000 50 300GB 70GB/day 無料
さくらインターネット(スタンダード) ¥1,500 ¥5,142 20 100GB 80GB/day 無料
ロリポップ(ライト) ¥1,500 ¥3,000 1 50GB 60GB/day 無料

決定

今回はそんなにスペックを要求する予定がなく、複数サイト運営も予定していないためロリポップサーバを使用します。

ドメイン取得先を検討

ドメイン 取得」で検索をかけると「お名前.com」がトップに躍り出てきますが、焦らず慌てず比較サイトで検討します。

www.domain-hikaku.com

要件

.comドメイン

ドメインの種類によって価格が違います。
有名所だと .net<.com<.jp のような価格設定になっています。
.orgとかも公開されているけどこれは一般人が取れても良いのか?笑
.co.jpは法人しか取れないので今回は対象外。

.orgのドメインは使ってもいいのか?SEO的な効果を.comや.bizと比較する - なまけるのに飽きるまで-仮想通貨攻略

自動更新が使える

ドメインは専有し続ける必要があるので、万一切れてしまっては困ります。

Whois情報公開代行を行っている

Whois情報=ドメイン保有者情報 今回は個人所有なので自分の住所を載せるわけにはいかないので、ドメイン会社に代行してもらいます。 そのため無料である必要はないのですが料金を込みで考えます。

料金比較

企業 料金 更新料 参考URL
ムームードメイン ¥1160 + ¥1,280 x N ¥1280 ドメインの価格一覧 ( 取得・更新・移管 ) | ムームードメイン
お名前.com ¥1160 + ¥1,280 x N ¥920 ドメインの種類と料金|ドメイン取るならお名前.com
エックスドメイン ¥1,180 + ¥1,180 x N ¥1,180 ドメイン価格一覧 | ドメイン取得&無料レンタルサーバー Xdomain(エックスドメイン)

ぶっちゃけどこもそんなに代わりません。 サービス内容も差別化しにくいので横並びになるようです。

決定

サーバをロリポップしたことからムームードメインに決定します。

コンパスを探しに東京へ

こんばんわ、にまさんです。

別に円弧を描く必要はないんですが、ちょっくら人生の迷子ついでに東京にいってコンサルティングを受けてきました。

コンサルさんは岩田麻央(Maoさん)と言って以下のサイトを運営してる人です。

Sketch Life |地球と人生を楽しくするメディア

うちの社長も岩田っていうし何かと岩田という名前に縁があるな~と言う感想はどうでもいいとして、どんな人かというと一言で言うのはちょっと難しい。

厨二王ニーチェの言葉、『あらゆる人間は、現在でも奴隷と自由人に分かれる。自分の一日の三分の二を自己のために持っていない者は奴隷である。』
に照らすとすれば我々とは違う側にいる人間ということは言えそうです。

そんなわけで世間のレールからちょっと外れて自由にやってらっしゃるMaoさんとお話できたのはとても良い体験になりました。

RubyRailsに乗って成功したのであるから、人生もある程度レールに乗って進んで行くのが楽なようにも思えるのですが、まぁ人生というのは理不尽ゲーなのでいい感じに楽してクリアするだけが華ではないというもの。
どのみちノリで大津波起こしちゃう史上最悪の愉快犯のおもちゃであるならいい感じに踊り狂うのもまた人生かなと思います。

そんなわけで来年はちょっと今までの道から一本脇に逸れて新しい景色を見て来ようと思います。
長く厳しく楽しい戦いになるかもしれませんが、『この世』の舞台、男性役者も女性役者も来年の公演に合わせてコンディション整えていきましょう。

リファクタリングの手順

普段自分がリファクタリングをどうやっているのか簡単にまとめます。

名前を正す

リファクタリングの基本中の基本。
命名規則なども規定されていると思いますが基本的には以下のことを問いながらrenameしていく。

クラス名

お前はどういう『モノ』なのか?
オブジェクト指向を知っているものなら誰しも躓いた事があるクラスの概念。
厳密にはクラスは『モノ』そのものではない(『モノ』自体と対応するのはインスタンス)が、名前をつける上ではこの感覚でいい。 名詞で名付ける。

メソッド名

お前は『何を』するやつなのか?
処理の変更なので頻繁に仕様変更がかかるため、一番ひどい有様になっている。
動詞もしくは動詞+名詞で命名をつけるようにとあらゆる命名規則で散々言われているのに忘れてしまいがち。

ちなみに動詞(+名詞)で名前をつける理由は、大概の言語がvar_name.method_name()の構文で呼び出すからだ。
正しく命名すれば 主語+動詞(+目的語) と一般的な英語の構文になる。
var_name.method_name(status)ならSVOC構文になるようだ。よく出来てるな)

一番外部から参照される回数が多い名前なので、リファクタリングには結構勇気がいる。
きちんと命名できていればコード全体が英文に近くなり読みやすくなる。
(ただしJava君、君はちょっとやり過ぎ)

変数名

お前は『何』なのか?
メンバ変数もローカル変数も環境変数も同じ。(グローバル変数?死ね)
クラス名と同じ名前をつけがちだが、わざわざ変数に突っ込んでいるということは目的があるはずである。
名詞に拘ったり、型名とか付与するより(ハンガリアン記法、テメーのことだよ)、目的を書いてあげたほうが良い。

特に引数名はDocをきちんとかけばIDEなどで表示されるので真面目に命名しておきたい。

メソッドを分割する

メソッドの名前が決めがたい場合がある。
そういう場合、メソッドは一度に多くのことをやりすぎだ。
最初はスタイリッシュなメソッドでも機能追加して行く中で丸々と太ってしまう場合もある。

分割すると言ってもデブメソッドの一部を無節操に分割したところであまり意味はない。
メソッドを幾つか種類分けしてそれに沿うように分割して命名している。

getter/setter

メンバ変数に対してget/setすることのみを行うメソッド。
基本的にはそれ以外行ってはいけない。

このメソッドはメンバ変数と命運をともにする。 そのためクラスの構造をいじらない限り滅多に変更することはない。

publicのみならずprotectedも実装すると、protectedのメンバ変数を根絶できる。
変数のスコープは小さいほど読みやすいので是非とも導入していただきたい。

一般的にはgetXXX / setXXXという命名をする。 bool代数の場合は enableXXX / disableXXX、全メンバを纏めて操作するなら import / export、データを消すならclearXXXのほうが読みやすい。 言語によっては専用の構文をサポートしている場合もある。(C#, PHPなど)

過激派?の意見

クラス内でのメンバ変数参照も全てgetter/setterを通すべきという意見がある。 実際試してみた感覚では面倒なだけで得るものが少ないし、コードが冗長になって却って読みづらい。
ファイル内を検索かければ全て洗い出せるのでそこまで神経質にカプセル化する必要はないだろう。
一応setterを実装しないことでset禁止のコントロールが可能というメリットがあるが、多くの言語は読み取り専用変数を宣言できる。
PHPくんはいつやるのかな?)

データ操作メソッド

getter/setterより特殊なデータ操作をするメソッド。
データの操作手順を一気に切り出せば長いメソッドはだいぶ見通しが良くなる。

UnitTestでこのメソッドをきちんとテストしておけば、デバッグの際にロジックに注力できる。
キュー操作の enque / dequeue 、スタック操作の push / pop 、データを逆順にする reverce など名前は様々。

判定関数

引数やメンバ変数情報をもとにbool代数を返す関数。
メンバ変数に変更を加えない。

超ややこしい条件判定文などに効果を発揮する。
IF文の中に&&||を大量に詰め込むのなら判定ロジックだけ切り出してしまおう。

境界値条件が変わったり判定条件が変わったりした場合はこのメソッドだけいじればいい。

これと言って命名規則は無いがisXXXとかいう名前が多い。 checkXXX などという名前にすると「どっちがTrueだっけ・・・」と悩むことになるので避けよう。

メンバ変数を変更しない方法

C++ではメソッド宣言時にconstをつけることでメンバ変数に変更を加えないことを保証できる。
宣言と実装がバラバラであるC++ならではの仕様だ。

変換処理

データを別のデータに変換する処理。
変換にのみに注力しメンバ変数へアクセスしない。

変換元か変換先のデータ構造を変更しない限り変更することはない。
アルゴリズム的なロジックを切り話すと業務ロジックに専念できる。

クラスメソッドにするべき?

メンバ変数にアクセスしないのでメソッドである必要がない。
こういうメソッドはstatic宣言をつけてクラスメソッドにすることができる。

staticメソッドはUnitTestでテストしにくい。 またメンバ変数にアクセスしないのにそのクラスに所属する意味はあるのか?という問題が有る。
正解としては変換元のデータをオブジェクト化して、そいつのメンバにするべきだろう。
ただしクラスを作るとなると大げさな話になるので一旦切り出し元のクラスに置いておく。

業務関連メソッド

残ったコードが、本当に実装したいロジックだ。 仕様変更&機能追加の影響を一番受ける。

クラスを分割する

クラスに対して「結局お前何者やねん」とツッコミを入れたくなったら、そのクラスは仕事のしすぎだ。
メソッドとメンバの数が多くなっていないだろうか?

has-a関係の切り出し

前述のようにメソッドが正しく分割されていれば、特定のメンバ変数しかアクセスしないメソッド群が見えてくるはずだ。 そいつらを纏めてクラス化して、has-a関係にしてしまおう。

データの塊の切り出し

等価に扱われる大量のメンバ変数が並ぶようなら、そいつらは1つのデータとして扱ったほうが良い。
連想配列や構造体を使って纏めてしまおう。

構造体

全てのメンバがpublicで、コンストラクタしか持たないクラス。

例外をエラーに変える

処理の流れが追いにくい?
途中でやたらと例外を投げていないだろうか?

throw/try/catchを見かけたら誰だってうんざりする。catch句内で例外の投げ直しなんてしてたら殺意を持っていい。 例外とは節度を持ったgoto文なのだから使えば使うほど読みにくくなるのは当然だ。
(実際例外を言語仕様に含まないC言語はgoto文で例外処理を実装する)

それは本当『例外的な』処理だろうか?
例外処理はエラー処理ではない。
DB接続エラーやネットワーク接続エラー、ハードウェア故障などのプログラム以外の要因で引き起こされるものは仕方ない。
それ以外は極力エラーコードを返すべきだ。

例えばInvalid Argument例外をわざわざ投げるなら、それはシステム設計上本当にあり得ない入力に対して「ありえない、なんてことはあり得ない」の気持ちで実装すべきだ。

まとめ

とりあえずいろいろ語りましたが長くなったのでここで切ります。
コードをどんどん綺麗にしていきましょう。

お金が無限にあったら何がしたい?

皆さんお金ほしいですか?
自分はめっちゃ欲しいです。

でも実際に欲しいのはお金じゃないですよね。
お金で手に入る色々が欲しいのです。

でも実際なにが欲しいかというと答えに困りがち。

そこで輪転機をゲットしたという想定で、何をしたいか考えてみました。

人工衛星を飛ばす

なんとなく飛ばしてみます。 最近では観賞用アルミ箔を飛ばしてめっちゃ顰蹙を買った人達も居ますね。
衛生一本飛ばすだけでGPSの精度が向上したりと何かと便利です。
お金だけでなく各所調整が要りそうですね。

とある国の将軍様が最近はミサイルよく飛ばして不動産屋のおじさんと遊んでますが、ミサイルは別に飛ばしたいとは思いません。

ルンバを買う

ルンバ可愛いですよね。
見てるだけで癒やされます。
YouTubeには猫がその上に乗って調子乗ってる動画が沢山見受けられるので猫も飼いたいものです。

最先端のMac製品を揃える

MacBookiPhone、MacServer、AppleWatch、その他諸々揃えてみます。
多分殆ど使わないけど。
やっぱりはPCはMacですね。(Windowsディスるつもりは毛頭ありません)
Androidも捨てがたいですがPCをMacにするならスマホもやはりiPhoneでしょう。(WindowsPhoneをディスるつもりは毛頭ありません)

通信環境を最強にする

今でもそんなに困ってないけど、いつでも最高の通信速度が出るようにしておきたい。
どうせそんな使わないけど。
無駄に超重たいWebGLのページとかやたら高画質の動画を読み込んで「おおー」と感激したい。

無駄にガチャを回す

今やってるデータは無課金縛りプレイを楽しんでいるので置いといて、別途課金アカウントを作って超課金ブーストしてみる。 多分1日で飽きる。

ロードローラーを買う

ロードローラーだッ!!」って言いたいだけ。

山のようにぬいぐるみを買う

手ずから選別した可愛いぬいぐるみを集めてもっふもっふする。
メンテは任せる。

ブラック企業と遊ぶ

ブラック企業とダダかぶりする事業内容で会社起こして、倍の賃金で社員全員引き抜く。
んで未払賃金の集団訴訟起こさせて遊ぶ。

交通事故遺族に寄付する

とても気の毒なのでとりあえず沢山寄付する。

ロースクールに通う

弁護士資格を取って逆転裁判ごっこがやりたいだけ。

ピカチュウを作る

ラットの遺伝子をベースにコーディングしてピカチュウを作ってみる。

レールガンを作る

旧時代の火薬兵器をディスりながら自宅に配備してみる。

最強の遊戯王デッキを作る

多分下手くそなので普通に負ける。

巨大ロボを作る

レールガンも装備しておこう。

オートコーディングAIを作る

自動化を自動化する。
もうコーディング人間がやらなくてもいいじゃん。
なんなら設計も人間がやらなくてよくね?
もう人間何もやらなくてよくね?
ちょっとスカイネット作ってくる。

羽を生やす

飾りじゃなくて飛べないと駄目。
タケコプターはダサいので却下。

温泉にゆったり浸かる

癒やし

人間と同等のヒューマノイドを量産する

これで人口問題は解決である。
めでたしめでたし。

ARを本格導入する

視神経に直接シグナル送ってAR眼鏡とか不要になると素晴らしい。

時計にノートを仕込めるようにする

たまにシュッと出してニヤニヤする。

玉座を作る

いざという時には変形して敵を撃退できる。

オンライン学校を作る

安心して思う存分引きこもっていただきたい。

爆弾を爆発させる

C4爆弾を威力を検証する。 専門家監修の元、超安全地帯から観察する。

バイオハザードの装備を揃える

アメリカで行うのが望ましい。 専門家監修の元、超気をつけて試射する。

自宅を全部センサー駆動にする

所為スマートルームというやつである。 鍵、照明、空調、全部自動でコントロールしてもらう。

AIBOを買う

ソニーがまたペットロボット作るらしいので番犬にする。

ポケモン図鑑をコンプリートする

今何匹居るっけ? とりあえず揃える。

空飛ぶスケートを作ってみる

バック・トゥ・ザ・フューチャーに出てくるあれ。 多分派手に転ぶので雪山で試乗します。

片っ端からデバッグする

人を遣って身の回りの気になったバグを潰していきます。

ロンギヌスの槍を作る

とりあえず護身用に玄関に飾っておく

日本刀を配備する

海外在住の方はご存じないかもしれないが、殆どの日本家屋には日本刀が配備されている。
しかし9割の日本人は真剣白刃取りが出来るため実戦投入されることは少ない。
とりあえず和室においておく。

矢文を飛ばす

日本ではメールの次にメジャーなコミュニケーション手段である。

物理の勉強を存分にやる

とりあえず最先端物理学に追いつく。
粒子加速器もたまに使わせてもらう。

スカイダイビングをする

たまには自由落下してみるのもいい。

公式書類からハンコを撲滅する

全部デジタル署名にする。

『安全なパスワード』を滅ぼす

覚えられないパスワードほど危険なものはない。
記号入れろとか余計なお世話じゃ。
できれば全て統一された公開鍵認証で行えると素晴らしい。

リーマン・ゼータ予想に挑む

おそらくこの世の最強の一角である。

優しい世界を作る

イライラしてる人には休暇をあげて、暇そうな人は遊びに連れていき、困っている人は助けてあげよう。

まとめ

結構色々出てきました。
意外とたくさん出るものですね。

お金がなくてもできそうなことが混ざっています。
出来ることからやっていけば人生楽しいと思います。