うなすけとあれこれ

2017年06月18日

maekawaのversion 0.5をリリースしました

清楚前川

Released! 🎉

上のみくにゃんはリリース記念に描きました。やる気の続く限り、maekawaのリリースごとにみくにゃんを描いていこうかと思います。

「前川みく」/「うなすけ」のイラスト [pixiv]

What’s new?

TargetのRoleArn指定対応

いつの日からか、TargetにもIAM Roleを指定できるようになっていたのでそれの対応をしました。

Profile指定対応

cliで実行するときに、aws credentialのprofileを指定して実行できるようにしました。

EcsParameters対応

今回のリリースのメインです。

Amazon ECS Now Supports Time and Event-Based Task Scheduling

spice lifeでは CloudWatch Eventsからecs taskを実行するのに、今まではlambdaを中間層として実行していました。

しかしTime and Event-Based Task Schedulingによって、中間層となるlambda functionが不要となり、直接ecs taskを実行できるようになりました。

今回のリリースで、maekawaからEcsParametersを取り扱えるようになりました。

KinesisParameters対応

いつの日からか、Kinesisにも対応していたのでmaekawaでも取り扱えるよう対応しました。

しなかった対応

InputTransformerとRunCommandPrametersには対応していませんし、今後するつもりもありません。

理由として、まずこの2つの機能をspice lifeで使っていないこと、そして実装が困難であることが理由です。

Golangを初めて触って作成した初めてのcli applicationなので、実装にまだ整理されていない部分があります。その上、言語知識がまだ不足しているので、複雑な構造の型への対応が今の僕には困難です。

なので実装予定はありません。

ただ、もちろんPullRequestを頂けるのならありがたく頂戴しますし、Amazon Wishlistなどの手段で圧を掛けてくだされば実装する気持ちになると思います。

今後の予定

outputをもうちょっとかっこよく(色とか差分とか)できたら1.0.0としてリリースしたいですが、いつになるかは未定です。

2017年06月18日
2017年05月22日

middleman-hatenastarというgemをつくりました

howto page

つくりました 🌟 🌟 🌟

@yu_suke1994 あなたとはてなスター、いますぐ設置 https://t.co/sihB5jvGDx

— あそなす (@asonas) 2017年5月17日

ということがあり、つくりました。

Tokyo Middleman Meetup#3 - connpass というイベントを開催したのですが、そこでのLTでlive cordingをして、日曜から清書してできあがり、という経緯があったりします。

つかいかた

はてなスターのトークンを取得する

はてなスターをブログに設置するには - はてなスター日記

を参考に、トークンを取得してください。

middlemanの設定でhatenastarを有効にする

これは例です。詳しくは はてなスターをブログに貼り付ける - はてなスター日記 を読んでください。

activate :hatenastar,
  token: 'your token',
  uri: 'h2 a',
  title: 'h2 a',
  container: 'h2',
  entry_node: 'section.article'

layoutにhatenastar_tagを設置する

<head>のどこかで = hatenastar_tag を呼び出して完了です。

また、引数でconfig.rbの設定値を上書くこともできます。

= hatenastar_tag(entry_node: 'div.article')

既知の問題点

複数要素に対応していない

エントリの複数指定、1エントリ内での複数スター表示にまだ対応できていません。pull requestを送ってくれてもいいんですよ ❓

よろしくお願いします

とりあえずスター連打してください。

2017年05月22日
2017年05月17日

middleman-somemojiというgemをつくりました

somemoji

つくりました :v: :v: :v: :v:

middlemanでemoji記法 :example: をemoji画像に置換するmiddleman pluginをつくりました。 🎉

unasuke/middleman-somemoji

あ、middleman v4以降必須です。

動機

絵文字使いたかった、けどunicode emojiの入力ってけっこうしんどい、なのでGitHub風に絵文字を入力したかった。

できるならemojiのproviderも選べるようにしたかった…… そんな感じです。

つかいかた

bundle install

Gemfileに次の行を追加して、bundle installします。

gem 'middleman-somemoji'

somemojiを使ってemoji画像をひっぱってくる

$ bundle exec somemoji extract --provider=twemoji --destination=./source/images/emoji

このへんは本家 r7kamura/somemoji を見に行ったほうがいいかもしれません。

middlemanの設定でsomemojiを有効にする

activate :somemoji,
  provider:    'twemoji',
  emojis_dir:  '/images/emoji'

上のコマンドそのまま実行すると設定はこんな風になります。

あと、asset_hashを使っているならemoji画像以下はhashを付けないようにしてください。

# こんなふうに
activate :asset_hash, ignore: 'images/twemoji'

emojiを入力する

😄 🎊 👀 :star: 👍 💤 🈂 🤘

既知の問題点

preのなかも変換する

<pre><code>の中にあるemoji記法も否応なしに<img>タグに変換してしまうので、これを直したいです。見通しは立ってます。手を動かすだけです。

asset_hash対応

これ必要かなぁ…… ❓

よろしくお願いします

🙏 🙏 🙏 🙏 🙏 🙏 🙏 🙏 🙏 🙏 🙏 🙏 🙏

2017年05月17日
2017年05月12日

mastodonインスタンス、立てたはいいけど不安定

red mastodon

(2017-05-13 10:53 誤字修正)

立てて2週間ほど

こちらになります → lupinus.bouquet.blue

赤い

やぎにいが一晩でやってくれました。 dark pink color theme by yagi2 · Pull Request #3 · unasuke/mastodon

不安定とは

頻繁に500

ALBが頻繁に500を返すので、ログを見たらpumaが起動直後に死んでるのでインスタンスタイプをt2.mediumに上げたら安定しました。

before t2.micro

after t2.medium

streamingが動かない

つらい。

wss can't connect

nodeからpostgresへの接続がうまくいっていないのか、Missing access tokenで怒られている。

DDoS https://lupinus.bouquet.blue/@unasuke/59

他インスタンスから(他インスタンスの)画像が取得できない

mastodon rch

mastodon pawoo

S3のACLはpublicにreadできるはずなのに、何故。

現状

以下、現状(t2.medium)です。

mastodon metrics

2017年05月12日
2017年04月30日

mastodon instanceをaws上に構築しました

something went wrong

はじめに

まだログインできません。

断念

最初、いちからterraformで構築しようと思っていたのですが面倒すぎたので r7kamura/mastodon-terraform をforkして作成しました。

追加で作成したリソースは、SESとlog用のS3 bucketとRoute53のzoneやrecordです。

運用

構成は前述のリポジトリと変えている部分はないのでスケールしやすい構成ではあるのですが、スケールすると大変なことになるのでしばらくはおひとりさまインスタンスとして色々いじってみたいと思います。

が、新規アカウント作成できるようにするつもりではあります。

2017年04月30日
2017年03月29日

高専DJ部 #12 でした

kosendj-bu-12

右のDJでした。

謝罪

はしゃぎすぎて機材のコンセントを踏み抜いてしまったこと、大変申し訳なく思っております。

セトリ

今回はB2Bなので、僕が流した曲を順に貼っていきます。

  1. ウッーウッーウマウマ(゜∀゜) (Ryu* Remix) - Ryu☆
  2. Fury - Feint
  3. Such Kick (Deathmachine Remix) - N-Vitral
  4. Shot Thru Da Speaker (Original Mix) - Kurt, Mike Ahmet
  5. Rise Again (Buzzman & Summa Jae Remix) - Mark Breeze, Lost Witness
  6. Downside Up (Original Mix) - The DJ Producer
  7. Hentai (DJ Edit) - S3rl
  8. Industrial Machinery (Original Mix) - eDUB

togetter

KosenDJ-bu #12 - Togetterまとめ

2017年03月29日
2017年03月07日

maekawaというAWS CloudWatch Eventsのcli clientをGolangで作りました

commits

What’s “maekawa” ?

unasuke/maekawa: AWS CloudWatch Events client

maekawaは、Golangで書かれたAWS CloudWatch Eventsのcli clientです。Yamlに定義されたRuleとTargetを登録します。

冪等性を持つようになっているので、便利です。

なんで作ったか

軽く探したのですが、CloudWatch Eventsの操作をするcli toolが見当たらなかったので作りました。

なんでGolangか

1. クロスプラットフォーム

Golangはクロスコンパイルが容易にできる言語です。1つのソースから複数環境に適したバイナリを生成することができます。

手元のmacOSで実行したり、CIサービスで稼動しているLinux上での実行をしたりすることを考えると、クロスプラットフォーム対応は必須でしょう。

2. aws-sdkがある

Golang向けのaws-sdkがあるので、awsの機能を使用するプログラムが簡単に作成できます。

aws/aws-sdk-go: AWS SDK for the Go programming language.

3. やってみたかった

最大の理由です。

クロスプラットフォームも、aws-sdkも、どちらも僕の慣れているRubyで書くことにしても、同じ利点があります。

ただ、何か静的型付けでコンパイルする言語を学習しておきたいなと思ったので、Golangを選択しました。

名前の由来

隣の席の人に「どんな名前にしたらいいですかね」って聞いたら「maekawaでいいんじゃない」って言われたのでそうしました。

つかいかた

READMEを読んでください。

あとまだ安定してないので実戦投入オススメしないです。直せてプルリク送れるレベルで使ったほうがいいです。

そこそこ安定したらversion 1.0.0にします。

もともと社内で使うために作ったので、そのへんも追々会社のブログに書こうと思います。

2017年03月07日
2017年03月06日

beats solo³ wirelessを買った

beats solo³ wireless

今頃感

ヲチモノ- 【ヘッドホン】Beats 『Solo3 Wireless』 レビューチェック

発売開始はどうやら2016年の9月。なんで今頃になって買ったのかと言うと、発売当初になかった(PRODUCT)RED色がいつの間にかラインナップに追加されていたからです。

(PRODUCT)REDというか赤が好きなので。

音質

音質は僕はどうこう言える耳を持っていないのでなんともですが、今までに使っていたbeatsのヘッドホン(Mixr)と同様に低音がちゃんと出ているように思います。

DJブースでも使ってみましたが、モニターヘッドホンとして支障なく使うことができました。

つけ心地

しっかり押さえつけてくれるので、うがいとかしても外れません。ただやっぱり長時間つけてると耳が痛くなりますね。眼鏡もかけてるし。これは最初からわかってました。

いくら(PRODUCT)REDとはいえ赤すぎでは???????

2017年03月06日
2017年02月27日

福井技術者のつどい 第7.5回と属人性について

fukuitech 7.5th

発表資料

unasuke/fukuitech-07.5

みつ君がDockerを初めたとのことだったので、Dockerの話をしました。

資料を見てもらえるとわかるかと思いますが、社内での所属が変わりました。 TMIXの開発から離れ、インフラをメインにやっていくことになりました。どこかでちゃんと書きます。

7.5回とは

我々福井技術者の集いは、重龍・α改・うなすけの3名で開催致しました。 その主要メンバーの全員が、今年3月をもって福井の地から巣立つことになります。 よって、初期福井技術者の集い運営メンバーの卒業と、 新しい福井技術者の集いの始動を記念してここに"7.5"回を開催致します。 皆様のご参加を、心からお待ちしております。

福井技術者の集い その7.5 - connpass

僕については結構前から福井を離れてはいますが、つまりはそういうことです。コミュニティの引き継ぎが行なわれたわけですね。

属人化

「fukuitechを支える技術」 #fukuitech

— うなすけ(ミートアップ) (@yu_suke1994) 2017年2月25日

fukuitech、福井技術者のつどいですが、第2回からUstreamでの配信、Youtubeへの録画の公開をしています。

福井技術者のつどい - YouTube

そして第5回以降は、HDR-CX485LiveShell 2を用いた Youtube Liveでの配信をしています。

このYoutube Liveでの配信で、それ以前のUstream配信と比較すると、大幅な配信品質の向上ができました。

また個別の発表の録画についても、Ustreamを使用していたころはWebカメラやPCに備え付けのカメラを使用していたのが、 動画撮影に特化したハードウェアを使うことで、高画質、高音質のものが公開できるようになりました。

しかし、これらの機材はfukuitechとして所有されているものではなく、僕個人の機材を持ち出して使用しているにすぎません。

つまり、僕が参加しない回については、配信・録画の質の低下に留まらず、それらが行われないことも考えられます。

福井技術者のつどいの配信関連は、完全に僕個人に依存している状況になっています。

主催に関しては希望すればやってもらうことはできるでしょうが、配信関連に関しては、やる気のみでなく、機材の確保もやってもらうことになるので、 なかなか誰かにお願いすることもできません。

最近は配信機材をかかえての夜行バスでの移動も苦痛になってきました。

これは答えの出ないポエムのようなものですが、この属人化について、なんとかしたいなあ……と思っています。

2017年02月27日
2017年02月14日

unasukecopというgemをつくりました

unasukecop

リポジトリ

https://github.com/unasuke/unasukecop

config以下にrubocopの定義があります。理由もコメントしてあります。

つかいかた

おもむろにGemfileに次のような行を追加します。

gem 'unasukecop', require: false, group: :test

そしたらbundle installをして、.rubocop.ymlに次のように書きます。

inherit_gem:
  unasukecop:
    - "config/rubocop.yml"
    # - "config/rails.yml" # railsのCopを使いたい場合コメントを外す

すると僕の好みのrubocop設定がつかえます。誰得ですか。

inspired by onkcop

元ネタです。

onk/onkcop: OnkCop is a RuboCop configration gem.

initコマンドの移植をしなかったのは、必要性を感じなかったからです。

きっかけ

社内でrubocopを本格的に使っていくことになり、Copを調教するにあたって自分の好みを把握しておくべきかなと思ったので、やりました。

そのためにrubocopのCop定義を全部読みました。気づいたら翌朝になってました。

Cops - RuboCop: The Ruby Linter that Serves and Protects

所感

命名規則に従うならunasukecopだけど語呂悪すぎではrubocop-unasukeとかのほうがいいのではと思っている

— うなすけ(ミートアップ) (@yu_suke1994) 2017年2月13日
2017年02月14日
新しい投稿
古い投稿