タグ

ブックマーク / r7kamura.hatenablog.com (14)

  • amakanの本番環境をDockerに移行した - ✘╹◡╹✘

    https://amakan.net/ のこの辺の改善の続き。 amakanをUnicornからPumaに移行した - ✘╹◡╹✘ amakanでyarnを使うようにした - ✘╹◡╹✘ amakanでRuby 2.3.3を使うようにした - ✘╹◡╹✘ amakanを Ruby 2.3.3 から 2.4.0-preview3 に移行した - ✘╹◡╹✘ amakanのフロントエンドを色々改善した - ✘╹◡╹✘ amakanをSidekiqに移行した - ✘╹◡╹✘ amakanの開発環境をDockerに移行した - ✘╹◡╹✘ 番環境で使うDockerイメージ これまで開発環境でのみDockerを動かしていたが、番環境でDockerを動かすには、番環境で利用できるようなDockerイメージを用意する必要がある。そこでamakanでは、こういう方法を取った。 開発環境と番環境で同

    amakanの本番環境をDockerに移行した - ✘╹◡╹✘
  • katatema.js - ✘╹◡╹✘

    次のようなコードを書いて、 import React from "react" export default () => <div>Hello!</div> 次のようなコマンドを叩くと、 katatema build 次のようなファイルが生成されるという、katatema というツールをつくった。 <!DOCTYPE html> <html> <head> </head> <body> <div>Hello!</div> </body> 最先端の消耗 前に キーボードショートカットをカスタマイズするブラウザ拡張 - ✘╹◡╹✘ で、こういうことを書いた。 id:moznion へ、寒い日が続きますがお元気ですか。ともあれChrome拡張を1つこさえれば、大の大人が寄ってたかってモダンと言い合う類のものが一通り学べるだろうと思います。 最近のJavaScriptの周辺環境は大変で、何をやるに

    katatema.js - ✘╹◡╹✘
  • キーボードショートカットをカスタマイズするブラウザ拡張 - ✘╹◡╹✘

    この文章は https://github.com/r7kamura/keyworks/ の製作記である。Keyworksはキーボードショートカットをカスタマイズするための凡庸なブラウザ拡張であり、つい先日、思いつきによりつくられた。 いま見ているページをTwitterで共有するとき、あるいはMarkdownで書いた文書にページのリンクを載せるとき、皆どのようなツールを利用しているのだろう。この話題を出すと、それ専用のChrome拡張や、秘蔵のブックマークレット、VimEmacs風のキーバインドを実現するツールのプラグインなど、みな懐から様々なツールを取り出して楽しませてくれる。自分はというと、これまでKeyconfigというChrome拡張を使っていた。 Keyconfig - Chromeウェブストア https://github.com/os0x/ChromeKeyconfig Ke

    キーボードショートカットをカスタマイズするブラウザ拡張 - ✘╹◡╹✘
  • Podcastのやっていきかた - ✘╹◡╹✘

    9mとsoramugiから、やっていきエフエム という名前でPodcastをやりませんかという話を承け、Podcastをやることになった。既にサイトが公開されていて、https://yatteiki.fm からアクセスできる。昨日できたばかりで準備中なところが幾つかあるが、サイトを開いて音を聴けるという点では最低限の体験は保証されている。 10月25日にSlackチームを立ち上げ 10月28日に練習でSkypeで通話 10月29日に1回目を収録 10月30日に公開用のサイトを作成 という流れで、発足から企画、収録、公開まで進み、この順調さには当の我々ですら驚かされた。 個人的には、雑談レベルの会話が淡々と展開されていくような、例えばカンファレンスの懇親会での会話を隣で聴いているような、あるいは飯屋での雑談を隣で聴いているような、更に言えばマックで隣の女子高生のガールズトークを聴いているよう

    Podcastのやっていきかた - ✘╹◡╹✘
  • エディタの実装をcycle.jsでMVIベースにしてみた話 - ✘╹◡╹✘

    最近Electronでエディタをつくっており、最初はReact.jsを使いながらゆるいFlux風の設計でつくっていたのを、cycle.jsを使いながら一部をMVI風の設計に置き換えてみた。400行程度の一画面のコードだったので3時間ぐらいで置き換えられて、前よりも責務が適切に分割されるようになったので、体部分も次の機能追加時に置き換えようと思っている。 とりあえずプレビュー画面だけ置き換えた 置き換えたのは、編集中のファイルを別画面でプレビューとして表示する画面で、ただプレビューするだけの機能のほかに連続したスライドとして表示するプレゼンテーション機能もある。1つ前のブログ記事を見てもらうとわかりやすいと思うけれど、次の画像のようなやつ。ボタンをクリックしてモードを切り替えたりキーボードを使って移動したり、またエディタ側でファイルの内容が書き換わったりと、それっぽく言えば幾らか動きのある

    エディタの実装をcycle.jsでMVIベースにしてみた話 - ✘╹◡╹✘
  • Reactのバケツリレーに疲れたら - ✘╹◡╹✘

    理性捨ててprops全部渡すぞ import Footer from './footer' import Header from './header' import Main from './main' import React, { Component } from 'react' export default class Root extends Component { render() { return( <div className="root"> <Header {...this.props} /> <Main {...this.props} /> <Footer {...this.props} /> </div> ); } }

    Reactのバケツリレーに疲れたら - ✘╹◡╹✘
  • 全てがJSONになる - ✘╹◡╹✘

    TL;DR JSON Schemaを使ってこういうことが実現可能になった。 ダミーAPIサーバの提供 ドキュメントの自動生成 APIクライアントの動的定義 APIサーバのバリデータの動的定義 APIサーバのレスポンスの自動テスト JSON Schemaとは JSON SchemaというのはあるJSONのデータ構造を記述するための方法および書式の仕様で、 JSON SchemaもJSONで記述される。 これを利用すれば、リソースベースの(=RESTfulライクな)APIの仕様が簡便に記述できる。 例えば、我々のAPIレシピとユーザというリソースを扱っていて、 それぞれCRUDのAPIを備えており、レシピはidとtitleとdescriptionという属性を持つ、 という旨をJSON Schemaで表現できる。 なんで最近ちょっと流行ってんの Mobile First、 Service Or

    全てがJSONになる - ✘╹◡╹✘
  • Railsアプリつくった - ✘╹◡╹✘

    最近APIサーバ用途でRailsアプリを1個つくったので振り返る。 概要 接続元はiOSやAndroidアプリとか、Webブラウザとか、別のWebアプリケーションとか。1ホストあたり秒間数百リクエスト、平均応答時間10msぐらい。Rails 4.1.0.rc2、Unicorn、Nginxを使ってる。正直Railsは全部入りで重いイメージがあったので何となく平均50ms以内程度であれば良いところだろうと思ってたけど、意外と速い。多分そもそもサーバの性能が良いんだと思う。実装時に気を付けたことは普段の開発と特に変わりない。いつもは大勢でワイワイ開発するものに少し手を加えるということが多いんだけど、今回は珍しく自分一人でつくったから目が行き届いてたのかもしれない。DBへの問合せの効率に気を配るとか、Rubyでの処理の無駄を省くとか、アプリケーションのプロセスに無駄なコードを読み込ませないとか、計

    Railsアプリつくった - ✘╹◡╹✘
  • 全自動モヒカンさん - ✘╹◡╹✘

    https://github.com/r7kamura/code_hunter Railsのコードを静的解析して指摘してくれるツールをつくりました。 使い方 Ruby 1.9 があれば使えます。 $ gem install code_hunter $ code_hunter --help Usage: code_hunter [options] --application-path= (default: ./) rails application root path --format= (default: yaml) output format (yaml or json) --no-brakeman (default: false) disable brakeman --no-pendaxes (default: false) disable pendaxes --no-rails-be

  • Boxenを実行すると何が起こるのか - ✘╹◡╹✘

    http://boxen.github.com/ https://github.com/boxen/boxen https://github.com/boxen/our-boxen スゴイスゴイと言われていて誰も使っていないBoxenだけど、昨日の朝コードを読んでみた。折角なので、boxenコマンドを実行すると何が起こるのかというのを、Rubyのメソッド単位のコールグラフという形で簡単に説明する。 処理の流れ 1. レポジトリをgit-pullで更新 2. 環境変数や前回実行時に保存しておいたJSONから設定を読み込み 3. 前処理 4. コマンドライン引数に応じて 4-A. puppet-applyを実行 → 後処理 4-B. その他便利コマンドを実行 → 終了 Puppetの扱い librarian-puppetという仕組みが利用されていて、Puppetfile(=Puppet版Gem

    Boxenを実行すると何が起こるのか - ✘╹◡╹✘
  • 自分のコード綺麗って思ってんの? - ✘╹◡╹✘

    guideline.gem https://github.com/r7kamura/guideline 恐怖体験があって、震え上がり、少しでも綺麗なコードが書けるようなGemつくってる。複雑過ぎるメソッドや、使われていないメソッドが定義されていないかとか、長過ぎる行を書いてないかとか、簡単なチェックを自動化できる。こういうコードは綺麗ではないみたいなことがふわっと言われているよりは、綺麗ではないコードというのがコードで表現されている方が安心感があると思った。もしコーディングルールとして文書化したのでみんな守ろうみたいな感じにしても、コードを書くときに常にそれを覚えていなければ意味がないし、常にそういうことを気にしながら、ずっと緊張しながらコードを書かないといけない。そういう風に常に何かに気を配りながら作業するというのは、意識は高いけど、疲れるから極力やりたくないし、そもそも新しくその文化

    自分のコード綺麗って思ってんの? - ✘╹◡╹✘
  • 最近のPerlのデバッグ - ✘╹◡╹✘

    Perlよく分からないけど最近こうやってデバッグするようにしてる。 Data::Printer これまで値の確認にはData::Dumperを利用していたけど、程良く整形して色付けしてくれるData::Printerを使うようになった。use Data::Printerの代わりにuse DDPというエイリアスでも利用できる。useするとpという整形出力用メソッドを提供してくれる。Rubyで言うと、ppを利用していたのがap(=awesome_print)を利用するようになったというイメージ。これは適当にSelenium::Remote::Driverクラスのインスタンスをpメソッドで出してみた図。 Carp::REPL REPLはコード中で処理を止めてPerlの対話環境を開くやつ。これまで使ってなかったけど、良さそうという話をTLで見かけたので、適当にData::Printer入れて値確認

  • PerlbrewとCpanm、あるいはCpan祭り - とある技術の備忘録

    Perlはてなでアルバイトを初めて1ヶ月が経ちました。私の時計は4/21まで止まったままです。日CpanからCpanmに移行するついでにPerlの環境を入れ直したので、導入履歴を記しておきます。 Perlbrew$HOME/Perl5以下にPerlを置いてバージョン毎にCPANを使い分けられるなど色々便利な、Perlbrewを入れます。 $ curl -LO http://xrl.us/perlbrew $ chmod +x perlbrew $ ./perlbrew install $ rm perlbrew $ cd perl5/ $ ~/perl5/perlbrew/bin/perlbrew init $ echo "source ~/perl5/perlbrew/etc/bashrc" >> ~/.bashrc $ . .bashrc $ perlbrew install per

  • 小さなマイクロブログ『mio』を作っています - とある技術の備忘録

    Ruby これは何?小規模のグループで緩くコミュニケーションを取るための、Twitterクローンなマイクロブログです。Rails製です。このGW中に作りました。予め決められたグループで運用することを想定しているため、twitterに比べるとFollow機能等がありません*1が、その分グループ運用に適した他の機能も加わっています。 Timeline Wiki - Show Wiki - Edit なぜ作った?大学の研究室で日々の成果や意見等をつぶやくことで、学生や教員間で進捗を管理しつつコミュニケーションを取り、良い研究室生活を送ろう、という目的のもとで作りました。研究室でなくとも、友人間のグループや小規模なプロジェクト等、色々な用途に使えるのではないかと思っています。 また、Rails3を使ってまともなWebアプリを作ってみたかったので、その学習も兼ねています。コードはこちら(github

  • 1