MogLog

メモというか日記というか備忘録というか

「既存のコードがそうなっているから」は逃げる理由になりがち

何らかの追加実装の作業をしているとき、往々にして既存のコードと類似した実装をする、あるいはそうできる場面に遭遇することがあると思う。 このような時、既存のコードと同じパターン・同じ構成で実装するというのは1つの選択肢になる。 なぜならそのよう…

【Rails】データベース名を明示せずにActiveRecordでMySQLに接続する

環境 Rails 5.1.6 MySQL 5.7.21 状況 データベースはまだ存在しないが、ActiveRecordでMySQLへの接続だけは確立したい。 何も考えずに次のようなコードを実行すると... ApplicationRecord.connection.execute("<なんかSQL>") 次のようなエラーが起こる。 Act…

【Rails】app/以下に新規作成したディレクトリのファイルが読み込まれない件

結論:springの再起動が必要だった あらまし Ruby On Railsアプリケーションの開発中、app/以下に新しくvalidatorsというディレクトリを作ることになった。 最近のRailsではapp以下のファイルを自動で読み込んでくれるようになっているので、追加の設定は不…

draperを使ってみた

draperとは なぜdraperを使うのか 使ってみる セットアップ デコレートメソッドを追加する Controllerでモデルをデコレートする Viewでデコレートメソッドを呼び出す アソシエーションに対応する その他のメモ draper というデコレーター(またはプレゼンタ…

ActiveModel::Serializersを使ってみた

出鼻をくじかれる README.mdを読んだ fast_jsonapiの登場 Getting Started アソシエーションに対応させる アダプタを切り替える 独自の属性を追加する その他気になった機能 使ってみての雑感 ActiveModel::Serializers(AMS) という、出力するJSONをいい感じ…

SOP(Same Origin Policy)とCORS(Cross Origin Resource Sharing)について調べた

Web

SOP(Same Origin Policy)の理解が怪しいなぁと思ったのでちゃんとした仕様を調べた。 同時にCORS(Cross Origin Resource Sharing)についても調べることになったのでまとめて整理した。 SOP(Same Origin Policy: 同一生成元ポリシー) Webブラウザなどの…

属人化の排除と責任感のトレードオフについて

スクラムでプロダクト開発をするようになって、約1年が経過した。 スクラムは実によくできたフレームワークであり、スクラムから得られたものはたくさんある。 例えば.. 今自分がやっていることに対して納得感を持って取り組むことができるようになった 発生…

三浦半島 自転車旅行記

三浦半島を自転車で巡ってきたのでその記録を残す。 三浦半島とは 三浦半島(みうらはんとう)は、神奈川県南東部にある半島である。 ※ from: Wikipedia 地図で言うと大体この辺り。 ルート(当初計画) ルートは、大まかに次のように設定した。 地元の駅 → …

TOEICリスニングの問題が全然わからないので原因と対策を考えてみる

あらまし 最近TOEICのリスニング問題を解いているのだが、びっくりするくらい全然わからない。 これはアカンということで自分なりに原因と対策を考えてみたい。 解けないのはPart3とPart4 TOEICのリスニングは全部で4つのPartから構成されるようだ。 Part1: …

「成るようになる」のではなく「人事を尽くして天命を待ち」たい

成るようになる いろいろと気を揉んだり焦ったりしなくても物事はうまい具合に進行する、流れに任せてしまえばよい、といった意味合いで用いられる表現。「ケセラセラ」とも言う。 ※ from: 成るようになるとは - 日本語表現辞典 Weblio辞書 人事を尽くして天…

今更ながらベイマックスを見たら脳が震えた

ベイマックス (字幕版)発売日: 2015/04/17メディア: Amazonビデオこの商品を含むブログを見る 中身のない日記です。 AmazonでKindle本50%OFFセールがやっていたので適当に気になった本を数冊買ったところ、Amazonビデオの割引クーポンが送られてきたのでベ…

LPICレベル1 合格体験記

LPICレベル1を受験し、無事に合格できたので感想やら何やらを書いていく。 受験の動機 ことのはじまりはSREに興味があって、SREにどんな技術セットが求められるかを調べたりしていたところ、Linuxの深い知識を求められる傾向があると気づいたことだった。 ま…

『Web開発者のための大規模サービス技術入門』がめっちゃ良かった

『Web開発者のための大規模サービス技術入門』を読んだ。とても勉強になった。 [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ)作者: 伊藤直也,田中慎司出版社/メーカー: 技術評論社…

『知識ゼロからの宇宙入門』を読んだ

『知識ゼロからの宇宙入門』を読んだ。 知識ゼロからの宇宙入門作者: 渡部潤一,渡部好恵,ネイチャー・プロ編集室出版社/メーカー: 幻冬舎発売日: 2010/07メディア: 単行本 クリック: 1回この商品を含むブログ (1件) を見る 読みはじめた動機 突然、宇宙につ…

初めてのスペイン旅行を楽しむためのスペイン基礎知識

...っていうタイトルの記事があったら嬉しいな〜、と思って調べたけど無いようなので書いた。 この記事のスコープは、スペインのかなり基礎的な知識。 ※ 注意:記事の内容がタイトル通りになっている保証はありません 内容のほとんどは、以下の書籍とスペイ…

地球に季節ができる仕組みについて調べた

知識ゼロからの宇宙入門作者: 渡部潤一,渡部好恵,ネイチャー・プロ編集室出版社/メーカー: 幻冬舎発売日: 2010/07メディア: 単行本 クリック: 1回この商品を含むブログ (1件) を見る 『知識ゼロからの宇宙入門』という本の中に「地球に季節がある理由」とい…

『話したくなる!つかえる物理』を読んだ

『話したくなる!つかえる物理』という本を読んだ。 話したくなる! つかえる物理 (アスカビジネス)作者: 左巻健男出版社/メーカー: 明日香出版社発売日: 2013/02/14メディア: 単行本(ソフトカバー)この商品を含むブログを見る 読みはじめた動機 とにかく物…

Tokyo RubyKaigi11に行ってきた

http://regional.rubykaigi.org/tokyo11/ 2016年5月28日に秋葉原コンベンションホールで開催されたTokyo RubyKaigi 11に行ってきた。満足度の高い勉強会だったので簡単に感想を残しておく。 発表一覧 Streem mruby/c Rubyに型があると便利か 最速ウェブサー…

心労業務

最近やっているプロジェクトで最高に心労の高まりを感じたギョームについて書く。 v2移行時のDB構成変更に失敗。残ってしまった不要なレコードを手動で削除する v2移行時にDB構成を結構変えた。 特に大きな変更が、論理削除から物理削除に変更した部分だった…

2015年の振り返り

少し時間が経ってしまったが、以前自分が書いた振り返りブログを見返すと当時のことを鮮明に思い出せて「ああ、こんなこともあったなぁ。こんな感想持っていたのかー。」という感じになっておもしろかったので、2015年分の振り返りも書くことにした。 時系列…

DBとかパフォーマンスとか

チラ裏です。 そのカラムにインデックスを張るべきか否か、そしてそれはどう判断すべきなのか かなり頻繁にwhere句として使われる カーディナリティは極端に小さい(現状2パターンしか無い。直近増える予定もない) ...というカラムがあった。時間が無いなり…

詰まったことリスト2

sandragon.hatenablog.com これの続き。 よくもまあここまで詰まりポイントがボンボン出てくるもんだと自分の無能っぷりに呆れてきたところです。 この無能感を越え、強くなりたい。 activerecord-importの罠 activerecord-importはINSERTのクエリを1SQLにま…

詰まったことリスト

最近、業務でRailsアプリケーション開発をしている。 が!Railsに限らずだが何かと行き詰まってばかりなので忘れないうちにこの怒りと苦しみの元となったネタどもをリストアップしておきたいと思う。 ※ ほとんど単なる調査不足・知識不足が原因だと思います …

ブログのデザインを変更した

新年なのでなんとなく変えてみた。 公式テーマを使いつつ、font-familyだけカスタマイズした。

YAPC::Asia Tokyo 2015に行ってきた

8/22(Fri)、8/23(Stu)の2日間、YAPC::Asia Tokyoに参加してきた。 YAPCについては、一昨年・昨年とはてブやTwitterで盛り上がっているのを見ていて、一度は行ってみたいなぁと思っていたら今年が最後らしいという情報を聞きつけて勢いで申し込んだ。なので、…

pgrep、pkill

pgrep 現在実行中のプロセスからパターンにマッチするプロセスのプロセスIDを標準出力にリストする pgrep [pattern] fオプションでマッチさせる範囲をコマンドライン全体にする lオプションで結果にプロセス名も表示させる uオプションで実行ユーザIDを指定…

【Ruby】Hash#delete(key)、Hash#delete_if

Hash#delete(key) keyに対応する要素を削除する 取り除かれた要素の値を返す。マッチしないkeyを指定した場合はnilを返す。 ブロックを渡すことも可能で、このブロックは与えられたkeyにマッチする要素が無いときに評価される。 hash = { one: 1, two: 2, th…

【Ruby】Hash#assoc、Hash#store、Hash#clear

ただのリファレンスの写経です。 class Hash Hash#assoc(key) ハッシュがkeyをキーとして持つとき、キーと値のペアを配列として返す。 hash = { one: 'a', two: 'b', three: 'c' } p hash.assoc(:one) # => [:one, 'a'] p hash.assoc(:two) # => [:two, 'b']…

TCPひとめぐり

TCP

業務でTCPの知識が無いことで困ることが増えてきたので、『マスタリングTCP/IP』を中心にTCPの概要をひとさらいした。今回はなんとなくでスライド形式でまとめてみたけれど、単純なテキストよりも知識の整理にはなっているような気がした。 次はTCPコネクシ…

HomebrewでVim7.4をluaオプション付きでインストールする

vim

単純に7.4をインストールするだけなら以下のコマンドでOK。 $ brew install vim ただし、上のコマンドでインストールするとluaオプションがついていないため、neocompleteが使えない。 neocompleteをインストールしてvimを起動すると、以下のようなメッセー…