読者です 読者をやめる 読者になる 読者になる

波打際のブログさん

主に、プログラミング備忘録など。

俺のBEMは間違っているがわかりやすい

はじめに 私はデザイナーではないです、cssを全く理解してないエンジニアです。そんなエンジニアが最近scssでBEMを使う時に主張したいことがあったのですが、ネット上にそんな記事はなく [要出典] とか [独自研究] とかつけられそうなので主張しておきます。…

【今更感】XmingとPuttyでWindowsに最高の開発環境を作る

はじめに Windowsを使用して開発を行う場合、苦しい思いをしてコードをビルド・実行する環境を整えたとしても、 パーミッション破壊マン とか CRLF奴wwww とか EUC-JPおじさん に いつもなって なることが時々あると思います。 「Macにしよ!」という声…

シェーダー入門したくないけど書いてみたい その6 ライティング編

はじめに この記事ではシェーダに関して入門することができません。とりえあずUnityでシェーダを書いて見たい人向けのブログです。今回はライティングに対応したシェーダを書いてみます。 事前準備 事前準備が済んでいない方は、第一回目の事前準備の項目を…

シェーダー入門したくないけど書いてみたい その5 透過編

はじめに この記事ではシェーダに関して入門することができません。とりえあずUnityでシェーダを書いて見たい人向けのブログです。今回は透過に対応したシェーダを書いてみます。 事前準備 事前準備が済んでいない方は、第一回目の事前準備の項目を参考に事…

シェーダー入門したくないけど書いてみたい その4 テクスチャ編

はじめに この記事ではシェーダに関して入門することができません。とりえあずUnityでシェーダを書いて見たい人向けのブログです。今回はテクスチャを利用したシェーダを書いてみます。 事前準備 事前準備が済んでいない方は、第一回目の事前準備の項目を参…

シェーダー入門したくないけど書いてみたい その3 プロパティ編

はじめに この記事ではシェーダに関して入門することができません。とりえあずUnityでシェーダを書いて見たい人向けのブログです。今回はプロパティを使ったシェーダを書いてみます。 事前準備 事前準備が済んでいない方は、第一回目の事前準備の項目を参考…

シェーダー入門したくないけど書いてみたい その2 UV編

はじめに この記事ではシェーダに関して入門することができません。とりえあずUnityでシェーダを書いて見たい人向けのブログです。 事前準備 事前準備が済んでいない方は、第一回目の事前準備の項目を参考に事前準備を行ってください。 シェーダー入門したく…

シェーダー入門したくないけど書いてみたい その1

はじめに この記事ではシェーダに関して入門することができません。とりえあずUnityでシェーダを書いて見たい人向けのブログです。シェーダに関する詳細な知識は一切紹介しません。予めカミングアウトしておくと筆者もシェーダー入門してません。 前提 Unity…

Slackでボットを5秒以内に作れるツールを作った

はじめに 最近エンジニア界隈で話題沸騰中のSlackですが、IRCに比べてBOTを作る際に手間がかかります。自称クソボットクリエイターの私にとってはこれは死活問題です。そこでボットを超簡単に量産できるプロダクトを開発して公開したのでご紹介いたします。 …

レールから外れないためのActiveRecordリファレンス

はじめに RailsのActiveRecordはとても優秀なORMですが、使い方を理解せずに生のSQLを書いてしまうと、DBアダプターを変更した時に正しく動作することが保証されません。 今回はActiveRecordのレールから外れてしまいそうになった時、護輪軌条となるように、…

kakurenbo-putiというrails4.2に対応した論理削除gemの紹介

はじめに kakurenboを公開してから1年が経過し、いろいろ思うところがあり acts_as_paranoid の呪縛から脱却した論理削除gemである kakurenbo-puti を公開しました。経緯についてはこちらをご覧ください。 kakurenbo-puti kakurenbo(acts_as_paranoid系のgem…

論理削除gemを1年ほど保守してみて。重大な欠点にやっと気づいたポエム。

はじめに kakurenboというgemはご存知でしょうか?paranoiaの欠点を克服すべく1年ほど前に私が開発を始めたgemです。(参考:Rails4と3で論理削除を行うためのGem Kakurenbo の紹介と今更論理削除Gemを実装した理由。 - 波打際のブログさん)issueやpullreques…

数学を放棄したエンジニアの3Dプログラミングさんすう入門 第一回 sin、cosってなんぞや

はじめに この記事は高校数学を放棄したエンジニアが、ウェブ系エンジニアになって安心していたところに、突如3Dプログラミング(Unity)案件が降ってきて、悪戦苦闘しながら3Dプログラミングのためのさんすうを勉強した内容のまとめです。 目標 Unityにおいて…

ActiveAdminノウハウまとめ

はじめに 私が関わったプロジェクトでActiveAdminを使い倒す機会があったので、ドキュメントに掲載されていないことを中心に トラブル編 と 活用編 の2項目を備忘録程度にまとめてみました。 想定環境 Rails4 + ActiveAdmin(1.0.0.pre) トラブル編 Rails4で…

論理削除Gem、 Kakurenbo をアップデートしました。

様々なわけがあってkakurenboは非推奨です。新規のプロジェクトではkakurenbo-putiの使用をおすすめします。 Kakurenboとは Rails4で論理削除を実現するためのGemです。実装に至った経緯は Rails4と3で論理削除を行うためのGem Kakurenbo の紹介と今更論理削…

Rails4のバリデータをテストまでしっかり書いた備忘録

はじめに Rails4には様々なバリデータが用意されていますが、プロダクトを実装する過程で自作のバリデータを定義して使いたくなることが稀によくあります。稀によくある事なので、その都度使い方を調べていていますが、バリデータの実装からロケールファイル…

クラウドIDEを使ってみた Nitrous.io & Codeanywhere

はじめに お久しぶりです。昨年末から関ってきた某プロジェクトを5月にリリースし、最近やっと落ち着いてきました。落ち着いてきたついでに先週末ごろから開発環境を0から作り直しているのですが、開発環境の構築って面倒くさいですよね。検証環境なんかはVa…

nginxモジュールのテストを書く

仕事でシステムの構成を考えていると、nginxを拡張したいなーとか思うことってあると思います。nginxはC言語で割と簡単に拡張モジュールを書くことができます。(今回は拡張モジュールの書き方については触れませんが・・・) だがしかし、仕事なんだからテス…

RailsのEnumと相性が悪い人向けのInumをバージョンアップさせた話。

はじめに Railsの列挙型事情 Rails4.1以前では公式に列挙型が実装されておらず、列挙型を実現するために様々なgemが生み出されてきましたが、Rails4.1でついにActiveRecord::Enumという列挙型のクラスがやっと実装され、長い列挙型宗教戦争が終わろうとして…

Rails4と3で論理削除を行うためのGem Kakurenbo の紹介と今更論理削除Gemを実装した理由。

様々なわけがあってkakurenboは非推奨です。新規のプロジェクトではkakurenbo-putiの使用をおすすめします。 Kakurenboとは Rails4及びRails3で論理削除を行うためのGemです。paranoia及びacts_as_paranoidと互換性があるので、gemを置き換えるだけでそのま…

Ubuntu13.10でiBusを捨ててfcitxを使う

はじめに Ubuntu13.10がリリースされて3ヶ月ほど立ちました。Ubuntuのサポート期間はLTS版を除き、9ヶ月というとても短い設定となっています。今まで使用してたUbuntu13.04のサポート期限は去年の12月いっぱいなので、継続して使用するためにUbuntuのバージ…

Ruby on RailsのI18nで使用する名前空間に関してのまとめと、ベストプラクティスの検討。

はじめに Ruby on RailsにはI18nというgemが標準で同梱されており、特に何もせずとも文章の国際化を行うことができる仕組みになっています。ちなみに、I18nとはinternationalizationを表しており、iとnの間に18文字あるから `I18n` だそうです。 最近関わっ…

RubyでInteger値を持つEnum、Inumを作ってみた。

この記事はバージョン2.x系の記事で、現行バージョンの3.xとは互換性がありません。 RailsのEnumと相性が悪い人向けのInumをバージョンアップさせた話。 - 波打際のブログさん こちらの記事がバージョン3.x系の記事となります。 はじめに 最近Rubyを使用する…

rbenv-railsを使用して、バージョン指定したrailsプロジェクトを30秒で生成する。

はじめに 以前、Bundlerを使ってローカルなRailsから新規プロジェクトを作る 方法を紹介しましたが、プロジェクトを生成するたびに実行するのは結構面倒です。そこでこの作業を自動的に行うシェルスクリプトを書いたので紹介します。 → 追記:せっかくなので…

Playframework2.1のCSRF対策

はじめに Playframework2.1では新機能としてCSRF対策が追加されたそうです。そもそもCSRF対策の機能はPlayframework1.x系には存在した機能ですが、2.0では機能そのものが消えていました。当然といえば当然の復活です。 公式の新機能紹介( Highlights )にも N…

Bundlerを使ってローカルなRailsから新規プロジェクトを作る

はじめに 本項では、ローカルなRailsから新規プロジェクトを作成し、gitで管理を行います。グローバルな環境にRailsをインストールしないことで、複数のバージョンのRailsを使い分けしやすくなります。 環境 CentOS6.4 rbenvを使って3分でRubyをインストール…

rbenvを使って3分でRubyをインストールする方法まとめ。

はじめに 最近モダンなrbenvを使って、3分の作業時間でRubyをインストールできたのでその方法をまとめておきます。 rbenv rbenvはrvmと同様にRubyのバージョン管理ソフトです。rvmよりも黒魔術を使わないため、副作用が少なく、最近モダンらしいです。乗るし…

Apacheのログ設定まとめ

はじめに apacheのログについて、調べる機会があったので備忘録としてまとめておきます。 環境 CentOS6.4 apache2.4.4 バーチャルホスト毎にログを記録する バーチャルホストで複数のサービスを運営している際に、それぞれのホスト毎にログファイルを分ける…

PHP5.4でLibpuzzleを使って画像の類似度判定を行う

PHP

はじめに Libpuzzleとは特徴検出のアルゴリズムにより、高速な画像類似度判定を行うことができるライブラリです。しかし、このライブラリをPHP5.4で利用しようとした場合、エクステンションがPHP5.4からロードされた瞬間にセグメンテーション違反(segmentati…

CentOS6.4でFuelPHPを導入するための下準備

はじめに 最近流行りのFuelPHPをCentOS6.4に導入した際の備忘録です。今回は導入に必要な環境構築を行います。 前提条件 次の2つの記事に沿ってApache2.4.4をコンパイルしてインストールし、設定を済ませていること。 CentOS6.4にApacheをコンパイルしてイ…

CentOS6.4でsambaを使用してWindowsとファイル共有を行う。

はじめに CentOS6.4上でsambaを使用してファイルサーバを構築する際にいくつか手間取ったポイントがあったので備忘録としてまとめておきます。 環境 CentOS6.4 samba3.6 sambaのインストール パッケージはyumを使用してインストールします。 sudo yum instal…

Apache Solr でデータインポートハンドラを使ってMySQLと同期する。

はじめに Apache Solrを初めて使用したので備忘録です。Apache Solrを設定し、検索用のデータをMySQLと同期する方法を紹介します。 Apache Solrとは Apache Solr(ソーラ)とは、オープンソースの検索エンジンです。これで具体的に何をしたいかというと、外部…

CentOS6.4にインストールしたApacheを設定する。

はじめに 前回(CentOS6.4にApacheをコンパイルしてインストールする - 波打ち際のブログさん)、インストールしたApacheの設定を行い、バーチャルホスト機能で複数のホストごとのサイトを用意します。 Q.なぜいきなりバーチャルホストなの!? A.とりあえず起…

CentOS6.4にApacheをコンパイルしてインストールする

はじめに CentOS6.4にApacheのソースコードをコンパイルしてインストールする方法を備忘録として残しておきます。 使用するソフトウェアのバージョン CentOS6.4 Apache2.4.4 コンパイル環境構築 コンパイラ(gcc)のインストール yumを使用して一括でインスト…

Playframework2.0でカッコ良くAjax通信を実装する方法

はじめに javascript(jQuery)からPlayframeworkへのAjax通信は、通常のAjax通信の方法で実装することができます。通常の実装方法で特に問題はありませんが、もしサーバー側の仕様を変えることになってAjaxのリクエスト先が変わってしまった場合、javascript…

Playframework2.0で認証機能を実装する。

はじめに 今回はPlayframework2.0での基本的な認証プロセスを紹介します。 コーディング secured.java package controllers; import play.mvc.Result; import play.mvc.Http.Context; import play.mvc.Security.Authenticator; public class Secured extends…

Vagrantを使ってサクッと仮想環境を準備する

はじめに VPSを利用した時に、本番環境でいきなりサーバー構築を試みるのは恐ろしかったので最近覚えたてのVagrantで仮想環境を構築しました。その備忘録です。 Vagrantとは 仮想マシンの管理ツールです。 仮想環境を利用する際に、OSのisoを落としてきてイ…

mavenを導入してpom.xmlをEclipseプロジェクトに変換する方法

はじめに mavenプロジェクトのソースコードを編集する必要が出てきたので、手順をメモしておきます。 pom.xmlとは mavenのプロジェクト定義ファイルです。 mavenとは プロジェクト管理ツールで、プロジェクトの作成からパッケージング(ビルド)まで行うツー…

Playframework2.0でTwitterやFacebookのOAuth認証を簡単に扱えるplay-pac4jまとめ

pac4jとは OAuthやOpenIDを利用した様々なウェブサービスの認証を簡単に行うためのライブラリで、TwitterやFacebookを始めとする14サービスへの認証を行うことが可能です。(2013年6月現在)pac4jを利用することで、各サービスのプロトコルに依存せず、統一し…

Playframework2.0でライブラリ依存関係を追加する方法

方法1 libディレクトリ playで作成したアプリケーションのルートディレクトリ直下に、libフォルダを作って中にjarを突っ込むという方法。 手元にjarファイルが存在する場合には手っ取り早い方法ですが、推奨はされていません。 (自分でコンパイルしたjarを…