クローズドな環境でのナレッジ共有ツールを自作しているという話 -> 現在プライベートにしてます。

[追記]

現段階では前職に迷惑がかかる恐れがあったので非公開にしました。
Starをして下さったみなさんありがとうございました。

全く別のプロダクトになったと思った時再度公開したいと思います。


[以下は元の記事]

久しぶりに記事を書いたので現状を報告すると、先日の1月10日付でIncrementsを退社しました。
今はインディーズゲームして遊んでます。PZFTL楽しいです。


そんなことはどうでも良くて。


先日から数人で作業をするため、PivoralTracker + HipChatで情報共有していました。
しかし、それらのツールだけだと整理された情報の共有が出来ないので、Qiita:Teamで情報共有しようと思ったのですが、"wiki"と"スマホで閲覧"したかったので自作してOSSにしました。



camelmsa/connect

機能について

実装済みの機能は以下です。

  • wiki機能
  • ブログ機能
  • markdown対応
  • 絵文字対応
  • 変更履歴機能
  • 通知設定(HipChat連携)
  • レスポンシブ

レスポンシブにすることでスマホでも情報を読めるようになるのはやっぱり便利。
Heroku, Sqaleで動作するのも確認済みです。

レスポンス速度が早いSqaleでの運用がおすすめです。

技術的な話

Rails 4.0.2 + Ruby 2.1で開発&動作しています。

何の機能を実装するのも基本的にgemがあるものはそれらを用いました。
そのためcontroller, modelがかなり薄くなってます。複雑な事をしていないという方が大きいかも。
(定番ですがdevise, devise_invitableはログイン周りの実装を大分楽にしてくれます)

デザインはbootstrap3を使いました。bootstrapを用いてもデザインは難しい。

markdown parserにkramdownを使用してましたが、ドキュメントが豊富ということもありredcarpetに変更しました。

redcarpetは昨年作者がメンテナーを募集していましたが、無事メンテナーも見つかり引き続き開発が続いてます。

これから

既に自分で使い始めていて使いにくい箇所を最優先で改善していこうと思います。また並行して下記の作業していきたい。

  • 検索機能
    • 現状実装していなくて不便
  • markdown preview
    • Qiita:Teamと比べるとまだまだ書きにくい
    • リアルタイムプレビューしたいが開発効率とのバランスを考えたい
  • Vagrant box もしくは Docker base imageを作成
    • 社内で動かしてみたいという声を頂いたため
    • 技術的に強く興味がある
  • 英語対応
    • view側で日本語を使用していないので、localeファイルを追加で英語対応はできる
  • gemによるプラグイン
    • これはまだ先の話
    • コア部分の実装を小さくし、欲しい機能だけgemで追加する仕組みにしたい

GitHubのStarを頂けたらモチベーションが上がり開発が加速しますので是非ともStarをお願いします :D

camelmsa/connect
issue・PR頂けると嬉しいです!

Incrementsに入社しました。


色々考えてQiitaを運営するIncrementsに入社しました。
相談にのって頂いた諸先輩方有り難うございます。

第1号社員としてcamelmasaが++erに入社!そして会社設立1周年、オフィス移転のお知らせ

やること

Railsを用いてQiitaの新機能開発や改善が主となります。
またミドルウェア周りの整備も含めて改善をする事になります。

応援お願いします!

新オフィスに色々置きたいが、お金がない…。
wishlistを作成したので、宜しくお願いします!
(ビールとか欲しいです)

http://www.amazon.co.jp/registry/wishlist/26KPYXR25SDKR/ref=cm_wl_sb_v?reveal=unpurchased&filter=all&sort=priority&layout=standard&x=4&y=18

最後に

Qiita, kobitoをもっと便利にしていきますので、Qiitaユーザーの皆様応援宜しくお願い致します。

kamadoを退職しました。



mixiへ全株式を売却したのを転機と捉え、本日付けでkamadoを退職しました。

フリーで仕事をしていたのが2010年の10月までで、そこから社員1号として2年4ヶ月kamadoにコミットしてました。

やった事

営業以外の事は大抵やりました。

関係者の皆様

kamado在籍中は大変お世話になりました。
これからも日本のIT業界に貢献していきますので、今後とも宜しくお願い申し上げます。

最後に

川崎さん(もちろん奥様も!)には仕事もプライベートでとてもお世話になりました。
様々な事を川崎さんから学ばせて頂きました。
kamadoにコミットした事は最善の選択でした。
これからもお世話になります。焼き肉ご馳走してください。


rails pluginコマンドで簡単に出来るgemの作成方法。

gemを作成する際、rails pluginコマンドを使用していますが、余り使われていない、記事にされていない印象を受けたので記事を書きました。

Rails Engine, rails pluginコマンドについて詳細はこちらです。
http://d.hatena.ne.jp/passingloop/20110801/p1


上記の記事にはRails Engineの作成する方法にrails pluginコマンドが書いてあります。
(実際にはrails plugin new gem_name --mountable)
その際一緒にGemfileも作成されるので、gem pushするだけで実は簡単にgemの登録が出来てしまいます。

実際にやってみる

今日githubのexploreにあったdaneden/amimate.cssをGemfileに1行追加して簡単に利用出来るgemを作成し、Rubygems.orgにpushしてみます。
(https://github.com/daneden/animate.css)

Rails Engineの作成

まずrails pluginコマンド

rails plugin new animate-rails --mountable

作成されたディレクトリ内に先のcssを入れる

mkdir -p vendor/assets/stylesheets/animate
cd vendor/assets/stylesheets/animate
wget https://raw.github.com/daneden/animate.css/master/animate.min.css
mv animate.min.css index.css

animate-rails.gemspecの編集

$:.push File.expand_path("../lib", __FILE__)

# Maintain your gem's version:
require "animate-rails/version"

# Describe your gem and declare its dependencies:
Gem::Specification.new do |s|
  s.name        = "animate-rails"
  s.version     = AnimateRails::VERSION
  s.authors     = ["Masahiro Saito"]
  s.email       = ["camelmasa@gmail.com"]
  s.homepage    = "https://github.com/camelmasa/animate-rails"
  s.summary     = "animate.css for rails"
  s.description = "animate.css for rails"
                          
  s.files = Dir["{lib, vendor}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"]
  s.test_files = Dir["test/**/*"]
                      
  s.add_dependency "rails", "~> 3.2.9"
  # s.add_dependency "jquery-rails"
                          
  # s.add_development_dependency "sqlite3"
end

”TODO”の文言が入っている箇所を編集し、s.filesにvendorを追加します。

これでgemの完成です。
実際にRailsで読み込んでanimate.cssが動くか試してみます。

サンプルプロジェクトの作成

プロジェクトの作成

rails new animate-rails-sample

Gemfileに追加

gem 'animate-rails', path:"../animate-rails"

app/assets/stylesheets/application.cssに1行追加

*= require animate

サーバーの立ち上げ

rails s

ブラウザからhttp://localhost:3000/assets/animate/index.css?body=1にアクセス

animate.cssが表示されるのが確認できました。

Rubygems.orgに登録する

次にRubygemsに登録します。
animate-railsディレクトリに移動。

下記コマンドを実行

gem build animate-rails.gemspec

WARNING:  description and summary are identical
  Successfully built RubyGem
  Name: animate-rails
  Version: 0.0.1
  File: animate-rails-0.0.1.gem

WARNINGはdescriptionとsummaryが一緒の場合に表示されます。

最後にRubygems.orgに登録。

gem push animate-rails-0.0.1.gem

https://rubygems.org/gems/animate-rails

無事登録出来ました。

まとめ

rails pluginコマンドで簡単にgemを作成してみました。
後はgithubに登録すると色々指摘が貰えて幸せになれそうですね。

animate-railsディレクトリで

git init
hub create animate-rails
git add .
git ci -m 'first commit'
git push origin master


今回のgemはこちらにあります。
https://github.com/camelmasa/animate-rails

Subtle Patternsで提供されている画像を簡単に扱えるgem subtlepatternsを作成しました。

id:ken_c_loさんが作成された”ズルいデザインテクニック”の中で紹介されていたSubtle Patternsが仕事でもプライベートでも使用していて、便利だなーと思ってたので、もっと簡単に利用出来る様gemにしました。
参考 http://d.hatena.ne.jp/ken_c_lo/20121115/1353004699

使い方

githubのREADMEに書いてありますがこちらにも記します。

Railsへのインストール方法

Gemfileに追加

gem "subtlepatterns"

コマンドを実行

bundle install

application.cssに追加

*= require subtlepatterns/prefix

CSSのクラス名にprefix(subtlepattern)が要らない場合

*= require subtlepatterns


これでインストール完了です。

使用方法

後はHTML内で指定していきます。

<body class="subtlepattern_xv">

<div class="subtlepattern_zigzag">

と指定します。

すると、background-imageにSubtle Patternsの画像が表示されます。


CSSのクラス名一覧はgithubのREADMEを参照してください。
https://github.com/camelmasa/subtlepatterns