タグ

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

  • MastodonをAWSでシュッと動かすやつ - ✘╹◡╹✘

    MastodonAWS で動かしたい人のために、https://github.com/r7kamura/mastodon-terraform というのをつくった。簡単に動かすという目的以外に、MastodonAWS で動かすために必要な設定をコードで表現することで、どういうインフラが必要になるのかを共有しようというねらいもある。 使い方 https://github.com/r7kamura/mastodon-terraform を fork する CircleCI と連携する 適当な環境変数を与えてビルドする マストドン動く ✌(‘ω'✌ )三✌('ω’)✌三(✌'ω')✌ 別に必ず fork しないといけない訳ではなくて、copy して使ったり terraform module として参照したりしても良い。 構築される環境 ┌---------------┐ | Web B

    MastodonをAWSでシュッと動かすやつ - ✘╹◡╹✘
    fumikony
    fumikony 2017/04/20
    図がいい感じ
  • シリーズ判定最前線 - ✘╹◡╹✘

    10 日ほど前から amakan books の再設計に着手しており、最近ようやく実装を終えた。いまデータ移行処理を実行している最中で、20時間ぐらい掛かるのでゆっくり待ちながらこの記事を書いている。変更理由についておさらいするという意味も含めて、変更内容と意思決定の背景について書き記しておく。 テーブルの変更 旧 DB スキーマ では以下のようなテーブル群を利用していた。 amazon_product_link amazon_product_responses author_product_list_memberships author_product_memberships authors evaluations product_links product_lists products 新 DB スキーマ では以下のようなテーブル群を利用するようになった。 book_authors b

    シリーズ判定最前線 - ✘╹◡╹✘
  • 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に移行した - ✘╹◡╹✘ amakanの番環境をDockerに移行した - ✘╹◡╹✘ CIのビルドに時間が掛かるようになった これはわりとしんどい。CircleCIDockerのバージョンが古く、イメージのキャッシュをしづらいため、毎度新規にイメージをビルドしていることが原因。キャ

    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 - ✘╹◡╹✘
  • サメを支える技術 - ✘╹◡╹✘

    写真のサメのぬいぐるみの購入方法についてです。 1. 体 Original Chumbuddy のやつです。家サイトでは品切れで買えないことが多いので、Amazon.com: Original Chumbuddy Skin (Stuffing Not Included): Toys & Games で買えます。結構な値段します。 2. 綿 上記の商品は皮だけなので中に詰める綿が必要です。8kgぐらいあると安心でしょう。結構な値段します。自分は Amazon | フックラ手芸綿ソフィア 3キロ(300g入り10袋セット) クリスマス飾りつけにも最適 | 手芸わた 通販 を2つ買いました。お腹のところにジップがあるので簡単に詰められます。もうちょっと綿詰めてふっくらさせたい感じもしますが満足しています。ぐったりしてきたら買い足す予定です。 おわり 以上です。掃除のときとかには持ち上げる必要

    サメを支える技術 - ✘╹◡╹✘
  • AmazonのURLを自動的に短縮してくれるやつ - ✘╹◡╹✘

    https://chrome.google.com/webstore/detail/amazon-url-modifier/ajhdkbkpmpojmimfcdhhepjoobmknkck 背景 前に「AmazonのURLを開くと自動的に短縮版のURLにリダイレクトしてあわよくばアファリエイトを付けてくれるChrome拡張が欲しい」 と書いていたのを思い出したので、つくりかたを調べてChrome拡張をつくった。ブックマークレットを押せば動くとかではなくて、勝手に効果を発揮してほしいよね。 これは何 amazon-url-modifierという名前のChrome拡張で、Amazonの商品ページのURLを短縮するためのもの。ここからボタンをクリックすればインストールできる。インストールされている状態で amazon.co.jp の商品ページにアクセスすると自動的に発動する。また設定ページでアフ

    AmazonのURLを自動的に短縮してくれるやつ - ✘╹◡╹✘
  • エンジニア立ち居振舞い: 気持ちよりも行動を評価する - ✘╹◡╹✘

    エンジニア立ち居振舞い」 というお題に対しての投稿。 立ち居振る舞いというか、姿勢、それも比喩的な意味での姿勢の話なのだけど、所謂やっていく気持ちよりも、行動した事実に価値を見出すように努めている。エンジニアと言うとその職業柄、仕事の所作みたいな話が多くなりがちだけれど、何も仕事に限った話ではなくて、例えばブログ記事を書くときなどもそうであると思う。こういうものを頑張ってつくっている最中であるとか、こういうところで困っていて大変といった気持ちを吐露したくなることがある訳だけど、そこは矜持としてグッと我慢して、早くいいものを完成させてみんなを驚かせたいとか、苦しい気持ちはひた隠しにして反骨精神を高めるとか、そういう気持ちに変換して、より大きな成果を上げられるようにしたいと思っている。 自分に限らず他人の行動についてもそうで、何かやりたいと言っている人や、あるいは筋の良さ悪さについて考えあぐ

    エンジニア立ち居振舞い: 気持ちよりも行動を評価する - ✘╹◡╹✘
  • Podcastのやっていきかた - ✘╹◡╹✘

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

    Podcastのやっていきかた - ✘╹◡╹✘
  • 汎用絵文字ライブラリ Somemoji - ✘╹◡╹✘

    ここ最近絵文字で遊んでいて、Somemoji というライブラリをつくったので知見を共有します。 さまざまな絵文字セット 様々なプラットフォームのために、様々な組織が、様々な絵文字セット (絵文字画像の集合) を提供しています。 Apple emojidex EmojiOne Facebook Google HTC LG Microsoft Mozilla Samsung Twitter 大抵の絵文字セットはUnicodeのEmojiの仕様に則って実装されていて、このコードポイントに対応する絵文字画像はこれ、というように互換性があります。Unicode 6.0, Unicode 7.0, Unicode 8.0, ... とバージョンが増えるに従って定義されるEmojiの数も増えていっているので、それぞれの絵文字セットごとに対応具合はまちまちという状況ではあるものの、よく使う主要なものについ

    汎用絵文字ライブラリ Somemoji - ✘╹◡╹✘
  • ソフトバンクからIIJmioに乗り換えた - ✘╹◡╹✘

    iPhone 7を購入するついでにSIMフリー版を選択し、ついでにソフトバンク回線を解約してIIJmioを契約した。 ソフトバンク利用状況 2009年にiPhone 3GSが発売された頃から、iPhone経由でソフトバンクの回線をずっと利用していた。最近の平均的な月額利用料金は8,200円ぐらい。毎月の通信量は3GB強。以下は8月の利用料金の内訳。まあ高い。 通話料 140円 基料 (ホワイトプラン) 934円 パケットし放題フラット for 4G LTE 5,700円 PCダイレクト 1,000円 S!メール (MMS) 100円 S!ベーシックパック 300円 テザリングオプション 500円 IIJ mio IIJ mioにしたのは、周りの信頼できる人間が利用していたからという感じです。SIM1枚でdocomo回線で月3GBの通信量のプランを選んだので、月額利用料金は税抜きで1,60

    ソフトバンクからIIJmioに乗り換えた - ✘╹◡╹✘
  • モデルからJSON生成するときこうやってます2016 - ✘╹◡╹✘

    最近RubyReact.jsをよく利用していて、Rubyで扱っている値をJSONとして表現したいケースが増えてきた。こういうのどうやっていますかと人に聞きたいので、自分はこうやっていますよというのを説明のためにまとめておくことにする。 概観 自分の場合、次のような方法で実装することが多い。 JSONとして表現したいオブジェクトをコンストラクタで受け取るクラスを定義する クラスに #as_json を定義して適当なHashを返すようにする Object#to_json が再帰的に #as_json を利用するようにする (ActiveSupportがやってくれる) コード 具体的には、以下のようなクラスをつくっている。これは最近つくっている掲示板での例で、Megaboard::Resources::Comment はコメントのJSON表現のためのクラスである。いわばコメントのJSON表現に

    モデルからJSON生成するときこうやってます2016 - ✘╹◡╹✘
  • 最終掲示板戦争 - ✘╹◡╹✘

    こんにちは、r7kamuraです。26年なにも考えずに生きてきて、レールに沿った人生を歩んできました。 さて、数日前からなんとなく気が触れてRuby on Rails掲示板をつくってみている。上の画像はいまつくりかけのもの。CSS全部手で書いてみてるからまだ見てくれがかなりショボい。最初に手を動かしはじめたきっかけは、2007年頃に「Railsを使って15分で掲示板をつくってみよう!」という記事を見たのを思い出したのがきっかけ。いまのところ10時間ぐらい経過している。15分はちょっと無理そう。2016年にもなって10時間以上かけて掲示板つくってるのは皮肉すぎる事実。もはや何故掲示板をつくっていたのか分からなくなってきつつある。とりあえず濁り切らない内に考えていることを書いておく。最近なんで掲示板つくってんのって聞かれることが増えてきたので、そのときにこの記事のURL出せると多分便利。 掲

    最終掲示板戦争 - ✘╹◡╹✘
  • SoundCloudの曲を一緒に聴けるやつをつくってみた - ✘╹◡╹✘

    https://syncbeats.herokuapp.com/ ※利用者も減ってきたということで、現在は公開を停止しています。 syncbeats というのを作ってみました。端的に言うとSoundCloudの曲をみんなで同時再生する君 です。部屋をつくってSoundCloudのURLを適当に突っ込むと順番に再生してくれて、あとから部屋に入ってきた人も同じ位置から再生されるというやつ。試しに曲を入れてリロードしてみると、途中から再生されるのが分かる。曲が無くなると、新しい曲が追加されるのを待ち受ける状態になる。たまに壊れるんでリロードすると治る。SlackTwitterで部屋のURLを共有して一緒に聴くみたいな使い方がいいんじゃないでしょうか。 背景 前にシェアハウスに居たときにたまにリビングで音楽掛けることがあったんだけど、SoundCloudだとその場限りのセットリストつくるのも難し

    SoundCloudの曲を一緒に聴けるやつをつくってみた - ✘╹◡╹✘
  • amakanでKindle Unlimitedの上位100件を集めた - ✘╹◡╹✘

    近年、Kindle Unlimited の日上陸により、我々の進捗はますますダメになっている。理想状態において、無限に漫画を読み続けることができれば、人は進捗を完全に停止させることができる。しかしこの仮定は、如何にして読みたい作品を発見するかという問題に我々を導く。 Kindle Unlimitedで作品を探す方法として、masawadaの日記 では「刊行数が少ない出版社順にタブを開く」「星4以上の書籍に限定する」「あとはがんばって全部みる」という手法が紹介されている。id:masawada はこの課題について新たな試みを行ったが、多くの人間はがんばる気概を持ち合わせていない。 先月から開発を始めた amakan.net では、それぞれの作品ごとに、漫画やラノベのシリーズ判定、Kindle Unlimited対応判定、読みたい・読んだの管理を行っている。そこで、このデータを利用して「

    amakanでKindle Unlimitedの上位100件を集めた - ✘╹◡╹✘
  • 作業用に買った4Kディスプレイが届いた - ✘╹◡╹✘

    43型4Kディスプレイ注文したので決め手を書いとく - ✘╹◡╹✘ で書いてたやつが届いたので、様子を紹介します。はてなブログの貼り付け機能便利ですね。全然文章書かなくても貼り付けていくだけで何かが生成される。 購入したやつ Philips 43型ワイド液晶ディスプレイ (4K対応/IPSパネル/5年間フル保証) BDM4350UC/11 出版社/メーカー: Philips(フィリップス)発売日: 2016/04/15メディア: Personal Computersこの商品を含むブログを見る 他の検討候補 DOSHISHA 43型 4K液晶ディスプレイ D431US 出版社/メーカー: DOSHISHA発売日: 2015/10/20メディア: Personal Computersこの商品を含むブログを見る I-O DATA 40型ワイド液晶ディスプレイ (HDMI端子4K/60Hz・HDC

    作業用に買った4Kディスプレイが届いた - ✘╹◡╹✘
  • WikiHubの開発意外と続いてる - ✘╹◡╹✘

    前回の記事 あのWikiHubが天下Wiki武道会に参戦 - ✘╹◡╹✘ で触れたけど、先月から WikiHub というWikiをつくっていて、趣味程度ではじめたものの結構な勢いで開発が続いてる。 最近の変更点 ここ最近の新機能として、 SSL対応 GitHubアカウントでのログイン エクスポート機能 ページテンプレート機能 Markdownでチェックボックスつけられるやつ HipChat・Slack連携 Webhook 二段階認証 などを実装してみたりしていた。CHANGELOG - WikiHub Help に変更点を書いていってあるので、ここ見るともっと詳しい様子が分かって便利。今日これやったぞーっていうのまとめて公開しておくとがんばった感が出るので、WebサービスとかでもCHANGELOGを書いて公開していくのは良い取り組みだと思いました。よく考えたらやってない感も出るので諸刃の剣

    WikiHubの開発意外と続いてる - ✘╹◡╹✘
  • あのWikiHubが天下Wiki武道会に参戦 - ✘╹◡╹✘

    Railsを勉強したいなあと思って最近 WikiHub というWikiをつくりはじめたんですが、なんかいろいろあってWiki界隈の人間を集めて天下Wiki武道会を開催することになりました。たまたま pastak や sora_h と深夜に唐揚げなどをべていたときに「最近Wikiつくってる」「確かにうちの社長もWikiつくってる」「もうWikiとかつくってる老人いないと思ってた」「はてなグループ2とか言ってたらしばゆう釣れそう」「最近あの人なにやってるの」「Wiki Nightやるぞ」「やりだ」「やっていく」「雑では」などの会話が行われました。詳細は未定ですが、3月頃に各々が秘伝のWikiエンジンを見せ合いながら知見を交換する会が行われる予定です。 WikiHub の発端についてもう少し説明しておくと、社内Wikiや公開Wikiなどいろいろな社会的状況で汎用的に使えるWikiが欲しいと思う

    あのWikiHubが天下Wiki武道会に参戦 - ✘╹◡╹✘
  • Node.jsでWebアプリ開発体験してる - ✘╹◡╹✘

    URLにタグを付けるやつ 8月頃からAmazon API Gateway, AWS Lambda, Electronと、徐々にJavaScriptを触る機会が増えてきて結構面白くなってきたので、サーバサイドでの開発も試してみようと思い、一昨日から暇を見つけて簡単なWebアプリをつくってみてる。いまは習作としてURLにタグを付けられるだけのサービスをつくってみてる。コメントとか無くて、タグで情報整理して互いの役に立つことだけでコミュニケーションする。どうしても会話したかったらタグで会話すれば良さそう。公共性のある徳の高いタグをつけた人には何らかの承認をしてあげたいけどまだ特にアイデアが無い。構造的には、ユーザ入力があるし、データは永続化する必要があるし、そこそこ検索も必要だし、キャッシュのしがいもあるし、ログイン機能があるのでセッション管理とかも考えられて、練習に丁度よい。 凝りすぎて進捗ダ

    Node.jsでWebアプリ開発体験してる - ✘╹◡╹✘
  • アプリの外側とのやりとりをModelから取り除く - ✘╹◡╹✘

    変更前 これはクライアントサイドのアプリケーションの例で、Modelの背後でWeb APIやonpopstate/pushStateを利用しており、Modelが太くなってる様子。 HTTP History | ^ | ^ | | | | v | v | .---- View <-- M o d e l <-- Intent <--. | | `----------------> DOM -------------------' 変更後 Web APIもonpopstate/pushStateもアプリケーションの外側にあり、DOMと同レイヤに存在するものであると位置づける。アプリケーションの外界とのやりとりを行う、ビジネスロジックを含まないアダプタを、ドライバーと呼んで抽象化する。ドライバーには入力を受け取る機能と出力を購読させられる機能がある。いまつくってるアプリでは以下の2つのドライバー

    アプリの外側とのやりとりをModelから取り除く - ✘╹◡╹✘
  • Qiitaのトップページのフィードの設計 - ✘╹◡╹✘

    @ainame user.articles.preload(:comments, :stocks_count) みたいにstocks_countのようなassociationを生やしており、stocks_countの内部実装はPreloaderが弄られていてIDだけ取ってる— 内製フレームワーク (@r7kamura) 2015, 8月 23 @ainame これを抽象化するために、Article.has_many(:stocks, counter: true) みたいにすると、article.stocksとarticle.stocks_countがほぼ同じSQLで同時に定義されるようになってる— 内製フレームワーク (@r7kamura) 2015, 8月 23 @ainame それを実現している実装がこれです / k0kubun/activerecord-precount https:

    Qiitaのトップページのフィードの設計 - ✘╹◡╹✘
    fumikony
    fumikony 2015/08/24