MogLog

日記 兼 備忘録

心労業務

最近やっているプロジェクトで最高に心労の高まりを感じたギョームについて書く。 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を起動すると、以下のようなメッセー…

Linuxにおけるメモリ管理

DBサーバ上でおもむろにfree、sar、topコマンド等でメモリの使用率を見てみたところ、 メモリの空きがほとんど無くなっていることに気がついて(正確にはそう見えて)、焦りながら色々調べた結果をまとめる。 Linuxのページキャッシュの仕組み まず、メモリ…

RSpec + Guardで自動テスト実行環境を作る

タイトル通り。 TDDのお試し環境として自動でテストが実行される環境を作りたかったので、構築した。 1.作業ディレクトリを作る $ mkdir fizzbuzz $ cd fizzbuzz 2.Gemfileを作る $ bundle init 3.Gemfileを編集する # A sample Gemfile source "https…

【Chef】ローカルのクックブックを削除する

※ 環境 MacOS 10.7.5 Chef 11.10.4 結論:-zオプションをつけてknife cookbook deleteを実行すれば削除できる おもむろに$ knife cookbook create <cookbook-name>と打ってクックブックを作ったんだけど、cookbook-nameを間違えて作成してしまった。 削除したかったので、そ</cookbook-name>…

新卒で入社してからの1年間を振り返ってみる

2013年4月に新卒で入社してから大体1年くらい経ったので1年間を振り返ってみる。 殆ど技術的な仕事の話。 今ではできるようになっていることもあるけど、その時その時は初めて知ることで、理解するので精一杯だったことなどを思い出している。 1. WebAPI開発…

【Ruby】requireメソッドの使い方メモ

環境:ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin11.4.2] sinatraとかnokogiriのような外部ライブラリを読み込みたい時と、同じプロジェクト内にある自身が作ったファイル等を読み込みたい時の2パターンがあって、その時にrequireをどう使…

apt-get/apt-cacheとaptitudeの違い

Ubuntuの情報を調べていると、apt-getとaptitudeの両方を見かけることが多いので気になって調べてみた。 全体 apt-get/apt-cacheはコマンドラインのユーザーインターフェースのみを提供する aptitudeはコマンドラインユーザーインターフェースに加え、フルス…

Google Chromeのinput要素にborder-radiusをつけると現れる影を消す方法

CSS

結論 適当なborderをつけると消える 動作環境 MacOS X 10.7.5 Google Chrome バージョン 31.0.1650.63 タイトル通り、Google Chromeのinput要素(type属性はtext)にborder-radiusをつけると謎の影のようなものが現れたのでこれを消す方法について。 これが…

HTTPリファラについて

リファラとは何か リファラとは 【 referer 】 〔 リファラー 〕 - 意味/解説/説明/定義 : IT用語辞典 あるWebページのリンクをクリックして別のページに移動した時の、リンク元のページのこと。Webサーバーのアクセスログに記録される項目の1つ。 これを辿…

PHPのビルド? Phing?

ビルドまわりについては過去に調べたことがある。 ビルドとかコンパイルとかリンクとか - MogLogしかし、PHPに対してビルドという言葉が使われている記事などを見かけたり、聞いたりすることが多くなって、意味がわからなくなってきた。 (PHPそのものに対し…

cocos2d-xの概要

最近は自分用のWikiにメモやtipsをとることが多くなって、ブログの更新をしていなかった。 でもどんなに些細な内容でもどこかの誰かに役立つ可能性があると思ったので、メモでも作業ログでも何でもwikiとブログの両方に残していきたいと思った。 「スキルな…

ポートベースのバーチャルホストを設定する

ポートベースのバーチャルホストの設定をした時の作業メモ。IPアドレスは同じに、ポート番号だけでリクエストを振り分けて表示するページを切り替える。 今回は、 192.168.56.101:5000 192.168.56.101:7000 192.168.56.101:9000 のようなURLにリクエストをし…

mod_rewriteを使って、リクエスト時の拡張子を消す on Apache2.2 -Ubuntu12.04

mod_rewriteを使ってリクエストを制御する練習。 とりあえずよく使いそうな「ファイルの拡張子を消す」処理を実現してみる。 今回対象とするのは「html」拡張子。 必要なモジュールの確認をする (1) rewrite_module $sudo apache2ctl -M | grep rewrite→ 見…

Ubuntu12.04環境のApache2.2にWebDAVのインストール

Digest認証に続いて、WebDAVのインストールと設定を行った。設定までのメモ。 WebDAV(Web-based Distributed Authoring and Versioning)とは WebDAVはHTTP1.1の拡張プロトコルで、Webサーバー上のコンテンツを管理できるよう、リモートファイルのアップデ…

Ubuntu12.04環境のApache2.2にDigest認証を設定する

Digest認証を設定するまでのメモ。 今までRedHat系しか触ったことが無かったので色々新鮮だった。 Basic認証とDigest認証の違い Basic認証とDigest認証の違いは、「認証情報を暗号化するか否か」という点にある。 Basic認証はプレインテキストで書かれた認証…

surround.vimことはじめ

vim

surround.vimを導入した。 とりあえず、基本的な使い方をいくつかのブログ記事を参考にまとめておいた。 surround.vim概要 テキストを囲うモノを編集するプラグイン。 テキストオブジェクトの操作を強化する感じ。 インストール NeoBundleを使った場合のイン…

ビルドとかコンパイルとかリンクとか

「ビルド」という言葉がどんな意味を指すのか、しっかりと理解していなかった。 コンパイルと何が違うのかもよくわかってなかったし、人に聞かれたら確実に答えらないと思った。 というわけで、調べてみた。まずは定義から調べた。安定のe-words.jp様から拝…

『Webを支える技術』 第9章 HTTPヘッダ まとめメモ

前回に引き続き、『Webを支える技術』を読んで、気になった箇所を簡潔にまとめる(第9章 「HTTPヘッダ」のみ)。■ HTTPヘッダの重要性 ヘッダはメッセージのボディに対する付加的な情報、いわゆるメタデータを表現する クライアントやサーバはヘッダを見て…

『Webを支える技術』 第6章 HTTPの基本 まとめメモ

久しぶりに『Webを支える技術』を読んでみると、忘れている箇所や知識が曖昧な箇所が出てきたので、記憶定着のために重要だと思ったところを簡潔にまとめておく(第6章 HTTP 「HTTPの基本」のみ)。 HTTPの基本 ・HTTPはRESTの重要な特徴である統一インター…