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

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

プログラミングにおける様々なstaticまとめ

コード書いてる時にちらほら見かけるstatic
こいつらっていったいなんだっけ?

staticメモリ

プログラムが扱うメモリは大きく分けてstatic/stack/heapの3領域あります。

  • static: あらかじめ予約されたサイズ固定の領域
  • stack: 動的に確保できる領域。スコープが決まっており、そこを抜けると強制的に解放される。高速
  • heap: 動的に確保できる領域。任意のサイズ、任意の順で確保開放できる。低速。

ここでいうstaticと言うのは「プログラム全体を通してstaticに確保されるメモリ」という意味です。
プログラムした時点でサイズが決定し、プログラム起動時にまとめて確保されてしまいます。

C言語では以下の2つが該当します。

  • global変数
  • 関数内でstatic宣言された変数

大概はheapで確保したメモリへのポインタをglobal変数に格納するという合わせ技で使われます。
ちなみにstack変数のポインタを格納しても勝手に開放されるので意味ないです。と言うかバグです。

コンパイル単位制限

C/C++でしかお目にかからない構文です。

  • global変数の頭につける(global static変数)
  • 関数宣言の頭につける(static関数)

数あるstaticの中で一番意味不明な振る舞いをします。

最近はスクリプト言語が多いので忘れがちですが、プログラムは以下のステップで作成されます。(末尾はC言語の場合の拡張子)

  1. ソースコードにテキスト処理を施す(プリプロセッサ
  2. ソースコードからオブジェクトファイルを作る(コンパイル
  3. オブジェクトファイル同士を静的に結合してライブラリにする(静的リンク)

global変数や関数はスコープが無いため、同名があればコンパイル時、静的リンク時にエラーになってしまいます。 しかしstatic宣言をすることで、その名前はコンパイル時にしか使用しませんよ、という制約を加えることができます。 (つまり静的リンク時に衝突しない)

インスタンスに対してstatic

多分一番お目にかかるstaticです。
クラスのメンバに付与することで効果を発揮します。

staticフィールド

本来クラスはインスタンスの雛形で、フィールドはインスタンスごとに固有のメモリ領域を持ちます。
しかしこのstatic指定を追加すると、フィールドはインスタンスではなくクラスで管理され、全インスタンスで共有されます。
オブジェクト指向とは何だったのか。

staticメソッド

staticフィールドのみにアクセスし、通常のフィールドにアクセスできないメソッドです。
引数だけで結果が確定する関数などでも使用されます。

staticクラス

staticなメンバしか保たないクラスの宣言に使います。 基本普通のクラスなんですが「どうせ全部staticなのだからnew禁止しといてあげるね♪」というおせっかいがつきます。

まとめ

ややこしくて仕方がない。
違う概念に同じ名前をつけるの辞めてほしいですね。

急いでガチャガチャと組み込んだコードはコケる

今日の学びシリーズ。

当たり前の結論なんですが全然動いてなかったです。

なんですけど、試しに回した時はタスク実行ログには完了フラグが立っていて、静かにおなくなりになっていたので見落としていました。

※テストフェーズで発覚したのでリリースはしていません。

Issueが仲間になりたそうにこちらを見ている

歩いていると道にバグが落ちている。

よくあることですよね。

バグと言わないまでもこうした方が良いんじゃないかとか有ると思います。

そんな時しれっとついでに改修できれば最高にCOOLですが、それでバグったら最高にFOOLですね。

そんなBOOLの世界で大概TOOLは言うことを聞いてくれないのでPOOLしておくのが正しい決断なのだなと思いました。

ログ大事

ログと言ってもいくつか有るんですが、一番親プロセスの吐くログにはエラー出てなかったんですね。

子供がちゃんと怪我せずに帰宅したのかちゃんと見とけよ、ネグレクトかよ、とか思いましたが、子供はきっちり例外ログ吐いてました。

ちゃんとログを全部見ろという当たり前の話。

Revertも手間

まとまったコミット積んでるなら素直にRevertすればいいだけなんですが、間にマージが入ったりして、なんだかよくわからない網目構造になっていました。

もはや履歴を追いかける気力はなく、masterとのdiffを確認しながら切り離しにかかるというなんか手間なことをしました。

まとめ

君子危うきに近寄らず。

優先度というものが有るので時にそっとしておくことも大事。

でも記録は残しておこう。

会議には目的を

今日から始まった「今日の学びシリーズ」第一弾はコレです。

最悪なのは目的がないこと

会社で過ごす時間のうち最も無駄な時間が「目的のない会議」です。

さて言われるがままに、もしくは慣習どおりに人を集めたが何を話し合おう?

毎週、毎月予定は入れているが、何を話し合うかはっきりしない。

なかなかそこまで酷い会議はないとは思いますが、有るならきっと大きな(闇の)力でそこに固定されています。

心してかかりましょう

ゴールがはっきりしない

会議の目的が「レビュー」とか漠然としたままではないですか?

準備を疎かにするってこういうことだと思います。やらかしがち。

今日テスト設計書のレビュー突っ込んだんですが、明確なゴールポイントをハッキリイメージしていなかったので初手で赤ゲージまで削られました。

といっても、レビューなのでおおよそ問題点の洗い出しができたので何とかかんとかなりました。

ゴールを掲示していない

予定表に入れる時点でゴールポイント書いときなさいという話ですね。

文章に書き卸しておくと、議題が行方不明になる心配もないですし、任意参加者も参加の判断がし易いというもの。

まとめ

ゴールをハッキリ明記してから会議始めるの大事

企業のブラックリスト

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

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

ヤマダ電機

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

ブラック企業大賞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(エックスドメイン)

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

決定

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