アトラシエの開発ブログ

株式会社アトラシエのブログです

2016-12-16から1日間の記事一覧

Railsではてな記法っぽい独自の記法を実装する

弊社のリフォームメディア、ミライエはRailsで開発しています。 miraie.me システム的にはCMSを実装しているのですが、データ的にはmarkdownとHTMLを混在させて保存しています。これでも回っているのですが、 引用, リンク などは一定のフォーマットで入れた…

シンプルなデコレータで記事内のページングを実装する

シンプルなデコレータで記事内のページングを実装する ブログのような記事の内容をページングしたいとき、どうやって実装するか?というお話です。 ページングといえば検索結果のページングと、東洋経済のようなサイト(こういうやつ http://toyokeizai.net/a…

railsで煩雑なリダイレクトの管理

ウェブサービスを運用していると設計の変更や記事・ページの削除が頻繁にあります。 例えば今まで:author_name/articles/:idというURLで提供していたページがあったとして、これをシンプルにarticles/:idで提供するとします。 このとき何も考えずにURLを変更…

nasneでiMacをテレビ化する

nasneとは? nasneはSonyから出ているレコーダー兼ストレージです。wifiのネットワークにつなげば、パソコンやスマホから録画予約ができてスマートフォンで再生できます。 ↓これが実物 nasneはmacで再生できなかった 以前からMacで再生したいなと思っていた…

railsの画像最適化でpietを使う

前回の記事でレスポンシブの画像は多少妥協しても大きめのものを使うしかまともな解決方法がないという話をしました。 blog.attracie.com ところで、弊社の運営しているミライエはリフォームの施工を解説しているのですが、写真が多いものだと20~30枚くらい1…

ベンチャーにとってのLTV(顧客生涯価値)

顧客生涯価値とは? 最近顧客生涯価値(Life Time Value = LTV)について考えることがあったので、その内容をまとめてみます。 LTVとは顧客一人を獲得したときにどれだけ企業にとって価値があるかを、長期に渡って考える一つの考え方です。 例えば新聞を購読す…

responsiveなサイトの画像サイズ問題は無理やり頑張るより妥協したほうが良さそう

ミライエは工数の問題やSEOの観点からレスポンシブレイアウトを採用しています。 miraie.me レスポンシブレイアウトがSEO上良いという点はこちらを御覧ください。 www.suzukikenichi.com ところがこの記事で言及されている通り、基本的にPCと同じhtmlやasset…

起業する場所の選び方

弊社は2014年4月設立ですが、2014年2月に私が港区赤坂に引っ越し、2ヶ月後に自宅兼事務所という形で自宅住所を使って会社登記しました。 こういうように、起業する場合でも自宅を事務所にしたり、バーチャルオフィスを使うことで、いきなり事務所を借りたり…

Railsであまり重要でないcolumnをスキーマレスに設定したい

Railsではserializeをうまく使えばスキーマレスにシンプルなデータを定義することができます。 これをもう少し通常のカラムライクに使用したかったので、gemを作成しました。 github.com 使い方ですが、まずはRailsのモデルを作成します。このとき適当でいい…

bootstrapでresponsiveのgrid systemだけ使いたい

bootstrapでは.containerでセンタリングし.rowでマイナスマージンをセット, .col-sm-3や.col-xs-6等でデバイス幅に応じたレスポンシブレイアウトを可能にする グリッドシステム を提供しています。 この機能は非常に便利です。他にグリッドシステムを提供し…

ERROR Rack::Multipart::MultipartPartLimitError: Too many open files - Maximum file multiparts in content reached

Rails4.2がリリースされましたね。 目玉機能はActiveJobということですが、これは実態はSidekiqやresqueのアダプタということで、本質的には新機能という感じではないですね。 AdequateRecordはすごそうですね。要するに内部でもろもろをキャッシュしてうま…

default_scopeよりaround_actionとscopingを使おう

default_scope is evil は浸透してきたが... qiita.com 最近では Railsでdefault_scope使うのはやめよう! という意見が強くなりましたね。 default_scopeは default_scope -> { where(removed: false) } こんなふうに論理削除を実装するときに便利です。 し…

Railsでfull_messagesを加工したい

基本的にRailsのvalidationは class Blog < AR::Base validates :title, presence: true validate :title_or_content_needed end のようなとき、@blog.errors.full_messagesにはattribute名 + エラー本文に加工されます。 ところで、title_or_content_needed…

Railsでbase64エンコードされた画像を使う方法

例えば必須の入力フォームの左側に小さい※を画像で出したい時、画像を使ったほうが楽なケースがあります。ただ、小さい画像でも画像数が増えてしまうと当然Webサーバのリクエスト頻度が増えるので、このような画像はbase64エンコードした上でcssに埋め込みた…

定番 スタートアップとは何か・スタートアップを知るための本

ビジネスモデル・ジェネレーション ビジネスモデル・ジェネレーション ビジネスモデル設計書posted with amazlet at 14.12.12翔泳社 (2013-10-03)売り上げランキング: 12,693Amazon.co.jpで詳細を見る ビジネスモデルの構造をパートナーや顧客セグメントとい…

社内共有ツールのまとめ

t-kot です。社内共有ツールは多くの企業でも使われていると思います。一般に社内の重要な情報が特定の人にしか知られていない場合、その人が退職するとフローが回らなくなるなどのリスクがあるので暗黙知は減らすべきとされています。 弊社ではQiita team …