他の人がブログとqiitaをどう使い分けているか、13個の記事を調べてみた。

調べた結果、qiitaに受けた印象 qiitaは、自分の技術的な記事で繋がるSNSという感じがしました。読者がプログラマーで、反応が得られやすいです。個人ブログで専門的なことやニッチなことを書いても、なかなか人が集まらないでしょう。集まったとしても反応…

CoffeeScriptでプライベート変数を定義する方法

CoffeeScriptのプライベート変数は、コロンではなくイコールで 下記は、人間に自己紹介させるクラスです。_nameはプライベート変数にしてあります。CoffeeScriptでは、プライベート変数はクラス定義の直下に書きます。プラベートメソッドの場合は、変数の値…

railsの複合ユニーク制約をshoulda_matchersでテストする

Railsのユニーク制約をshoulda-matchersを使ってテストしてみました。結果として、このマッチャーは複数カラムをまたいだ制約の時は使わない方がいい気がしました。1つのカラムでのユニーク制約も、複数カラムのユニーク制約も同じ扱いになっているようです…

rspecでundefined method validate_presence_ofとエラーが出る

rspecでundefined method validate_presence_ofというエラーがでました。not null制約のためにvalidate_presence_ofを使ったのですが、こんなメソッドないと言っています。他のプロジェクトでは使えていたので、比較してみるとバージョンに問題がありました。…

gemsetからvendor/bundleにgemを移したら、rspecコマンドがつかえなくなった

vendor/bundleにbundle insatllすればrbenbのgemsetを使う必要がなくなったので、gemsetを削除して切り替えました。するとbin/rspecが使えなくなりました。bin/rspecがrspecの実行ファイルなので、これを自動作成する時の読み込みパスがgemsetのどこかになっ…

コマンド「QUEUE=resque_sample rake environment resque:work」を読み解く

Railsのコントローラで定義したメソッドの中で、長い処理は非同期で行いたいときはありませんか?例えばユーザー登録のメール送信などは、コントローラのメソッドの中でメールが送信されるまで処理を止めるのではなく、非同期にして先に「登録が完了しました…

【やる夫で学ぶRedisの雰囲気】String型とHash型でクラスの名簿管理

KVSのRedisがRDBとどう違うのか?実際に使っているところを見ながら確認したいと思い、「やる夫で学ぶ」シリーズとして作成してみました。基本ログに一言添えただけです。詳しい説明は載せていません。次の目的に使えるかと思います。 Redisの雰囲気を掴みた…

zshrcとzshrc-eの違い

zshでlsofやnestatコマンドが使えなくなっていたので、調べたらbrew install zsh --enable-etcdirで直るとのこと。zshを一度消して、再インストールをしたらホームディレクトリに.zshrc-eとファイルが出来ていました。 zsh5.0.5を入れたら、PATHがおかしくな…

Railsのモデルをループで回してdestoryする時に、関連テーブルのレコードも削除したい

下記のモデルと対応するテーブル、3つずつ作成して実験しました。括弧内はカラムを表しています。 Post(title) Tag(name) PostTag(postid, tagid) これでdb/seeds.rbにレコードの追加、削除を記述します。title1という記事につけられたtag2を削除します…

Railsのモデルバリデーションとカラム制約のユニークはどう挙動が変わるのか

下記のモデルと対応するテーブル、3つずつ作成して実験しました。括弧内はカラムを表しています。 Post(title) Tag(name) PostTag(postid, tagid) db/shema.rbにadd_index :tags, :name, unique: trueを追加して、モデルにバリデーションを追加すると、…

JavaScriptで座標を配列とオブジェクト、どちらで管理した方が処理が早くなるか実験

オブジェクトより配列を使ったほうが、計算が早くなると思いましたが実際は違いました。C言語の時は、プリミティブ値が連続的に配置された集まりだったから配列の走査が速いのかもしれません。JavaScriptだと配列はArrayオブジェクトなので、なるべくオブジ…

Wordpressにgistを貼り付けると行番号がずれて、文字と重なってしまう

ブログにログを貼り付ける際にgistを使用したのですが、行番号がずれてしまいました。使用しているテーマはWordpressのTwenty Fifteenです。 下記の記事によると、cssの競合が起こっているようです。 CSS Conflict between WordPress Twenty Fifteen and emb…

gitでコミットを取り消す方法を、初心者向けにログで解説

gitでさっきのコミットを取り消して、変更したい時がありますよね。その実演を初心者向けにログとして残しておきます。今回は、gistを使いましたが長いログを残すのには便利かなと思いました。gistを整理できるGistBoxというのがあるのですが、タグ機能は公…

Wantedlyの検索ページからURLの構造を学ぶ

RailsでのURL設計に悩んでいます。今回は検索ページのルーティングを学ぶために、Wantedlyを調べてみました。 検索ページのURLの構造 検索ページは次のようになっています。 https://www.wantedly.com/projects/mixed?fresh=true&occupations%5B%5D=engineer…

vuejsのグラフサンプルであるレーダーチャートの座標計算を読み解く

vue.jsの公式サンプルであるレーダーチャートの仕組みを見ていきます。 これはpolygonというsvgの多角形を描画する要素に、各頂点の座標を渡すことで描画しています。正多角形ではなく、各ステータス値によって頂点を変動させます。重要なのはこの頂点の座標…

bowerパッケージ登録時にFailed to readとエラーが出る

bowerパッケージを作成する際にFiled to readというエラーが出ました。これは他にbower.jsonのフォーマットに問題がある場合に発生します。今回は、行末尾にカンマのつけ忘れでした。修正後はGithubにpushしてバージョンのタグを修正後のコミットに付け直せ…

TodoMVCのBackbone.js版はどのようにtodoを新規作成して描画しているのか

様々なJavaScriptフレームワークを使って、同じTodoアプリを作る企画TodoMVCをご存知でしょうか?今回はBackBone.js版のソースコードを読み解いていきます。全てを追うのではなく、タスク名を入力して新規タスクがどのように作られるかを掴んでいきましょう…

Railsチュートリアルのサインインの仕組みをまとめる

railsチュートリアルのサインインの部分を、自分用にまとめました。 第8章 サインイン、サインアウト | Rails チュートリアル viewのレンダリングまでの大まかな流れ app/controllers/users_controller.rbのnewメソッドを見てみます。この中には@user = User…

vaingloryアップデート1.8で抑えるべきところの簡易まとめ

1.7はアイテム周りなど細かい調整が多かったですが、1.8はかなり大きなアップデートになっています。新キャラSKYの追加だけでなく、既存キャラも大きく調整されました。下記で日本語にて詳細を確認することができます。ここではざっと抑えるべきことをまとめ…

rubyのopensslのパス問題の次は、bundle installでfatal: No live threads left. Deadlock?に遭遇した

bundle installがうまくいかない場合はお試しください。今回はopensslのパスの問題と一緒にfatal: No live threads left. Deadlock?というエラーも出てきました。 # 有効なopensslコマンドのバージョンを調べます。 # これはmac osに最初から入っていたもの…

rbenvでruby2.1.1がインストールできないので、ソースコードからmake installでコンパイルした

Everyday Rails - RSpecによるRailsテスト入門を購入したので、チュートリアルをこなしていこうと思ったら、rbenv: version '2.1.1' is not installedとターミナルで表示されました。どうやら.ruby-versionというファイルに2.1.1を使用するように書かれてい…

masterが更新された場合に、トピックブランチにその分を取り込んで作業する方法

Git

特定のコミットの内容を再編集するためにgit rebase -iを使っていましたが、ただrebaseがどういうものなのかは知りませんでした。次のような状況で使うといい教えてもらったのでシェアします。rebaseが何に使うのかわからない方には役立ちます。 やりたいこ…

他サイトへのリンクを貼る際に、その記事のタイトル文を使うか代替文を使うか

他のサイトの記事の感想文を書いたのですが、その際のリンクの表記の仕方を変更しました。 before 働きやすい工夫をするという、楽する方法を考えるのが好きです。そのために色々な改革を行っているcookpadのCTOの対談の記事がありました。読んでみて私がい…

CookpadのCTOから働きやすい工夫がある文化づくりを学ぶ

働きやすい工夫をするという、楽する方法を考えるのが好きです。そのために色々な改革を行っているcookpadのCTOの対談の記事がありました。読んでみて私がいいなと思えた部分を取り上げてみたいと思います。【前編】 元・超ワガママエンジニアのクックパッド…

railsでrake db:createをするとCan't connect to local MySQL server through socket '/tmp/mysql.sock'と表示される

dbを作成しようにもCan't connect to local MySQL server through socket '/tmp/mysql.sock'というエラーが起きて作成することができませんでした。brewでmysqlをインストールしたのでmysql.sockというファイルが違う場所にあって見つからないのかなと思った…

rails newがrun bundle installで止まってしまう

rails new myappname -d mysqlを実行するとlogがたくさん出てrun bundle installでずっと止まっていました。rails newmyappnameでは完了しました。どうやらmysqlが入っていなかったようでbrew install mysqlでインストールすれば、無事railsをプロジェクトを…

開いているタブからタイトルとリンクをmarkdown形式で取得するChrome Extensionを作成してみた

現在開いているタブのタイトルとリンクをmarkdown形式でクリップボードにコピーするエクステンションを作りました。必要なファイルは下記の3種類です。 icon用の画像 js/backgound.js manifest.json Chrome extensionを作成するのは今回が初めてです。その際…

pythonと同じだと思い、rubyのインタプリタが起動しない問題にハマってしまった

pythonだとコマンドpythonで2.xが、python3で3.xのpythonインタプリタが起動します。rubyも同じだと思い,rubyコマンドを引数なしで実行していました。そうしたら次の行に改行されるけどプロンプトが表示されず処理が終わらない状態になりました。 原因はコマ…

Rails初心者のアセットパイプラインに関する疑問19個をまとめてみた

下記のページで読んで浮かんだ疑問をまとめてみました。アセットパイプラインがあるので、GruntやGulpなどのタスクランナーを使って、プリコンパイルする必要がなくなるのはとってもいいですね。 アセットパイプライン | Rails ガイド そもそもアセットって…

Rails初心者のマイグレーションへの11個の疑問をまとめてみた

Railsのマイグレーションの学習をしながら、いくつか疑問をまとめてみました。わかっていても疑問文を作っています。その方が頭に残るのと、視点を変えて学習できると思うので。 マイグレーションファイルはどこにある? アプリケーションルート/db/にありま…