うなすけとあれこれ

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日
2017年01月29日

高専DJ部 #11 でした

kosendj-bu #11

セトリ

  1. Champagne Showers - LMFAO Feat. Natalia Kills
  2. Sexy Beast - Stereotronique
  3. You Need Fxxkin’ Anthem (feat.Yuyoyuppe) - DJ'TEKINA//SOMETHING
  4. Rock ‘N’ Roll (Will Take You To The Mountain) - Skrillex
  5. Wormhole (Original Mix) - Far Too Loud
  6. LMFAO - Shots (Camellia’s ShaShaSha Bootleg) - かめりあ
  7. Your Boobs (feat.Yuyoyuppe) - DJ'TEKINA//SOMETHING
  8. Kill EVERYBODY - Skrillex
  9. Run Wild feat. Jake Reese (Extended Mix) - Hardwell, Jake Reese
  10. Five Gorilla5 - GAT
  11. [e-] - かめりあ
  12. Keep On Rocking - F.O.O.L
  13. Speed Complex - Srezcat & Kobaryo
  14. Mind Mapping - Ryu☆
  15. Need You - F.O.O.L
  16. Fugitive - Case & Point
  17. This is Rock n Roll maybe - かめりあ

部長はじめ多くの方々に「上手くなったね」とか「良かったよ」と言われとてもうれしいです。

コントローラー持ち運びからの脱却

さて僕は、DDJ-SBを持っています。

DDJ-SB PERFORMANCE DJ CONTROLLER (black) - Pioneer DJ

今までの高専DJ部では、このPCDJコントローラーを持って行ってDJをしていました。 どう考えたって大変です。

そんな折、#kosendj Advent Calendar 2016の14日目、

PCDJ しか使ったことない人向けの CDJ + rekordbox 移行ガイド - polamjaggy

を読み、これを期にCDJをやってみようと思いました。

なので、slackにnagomixの解放dayの告知を流す部屋をつくり、部活動当日までの解放になるべく参加してCDJができるようになろうと思いました。

slack nagomix部屋

結果として当日までに計3回、nagomixでCDJの練習をし、まあ、それなりにできるようになりました。

2017年01月29日
2016年12月27日

blogのデザインをなおしました

pull request

どこがどう変わったのか

そんな感じです。よろしくお願いします。

2016年12月27日
2016年12月25日

やぎすけ Advent Calendar 24日目 status codeの修正

pull request

やぎすけ Advent Calendar

やぎすけ Advent Calendar 2016 - Adventar

24日目です。遅れましたがやっていきましょう。

serachにparamsがない場合

まず最初に必須パラメータのnameがあるかチェック、ない場合はエラーなjsonを返却。

やぎ小屋 | Ruby on RailsでつくってみるAPI(2日目)

とのことですが、エラーの場合はHTTP status codeもそれ相応のものを返してやったほうがいいと思うので、そうします。

この場合だと400が適当でしょうか。

List of HTTP status codes - Wikipedia

なので、このように書き替えます。

def search
  if params[:name].blank?
    render status: 400,  json: [{"error": "100", "msg": "必須パラメーターがありません", "required": {"key": "name"}}]
  else 
    @result = Character.where("name like ?", "%" + params[:name] + "%")

    if @result.empty?
      @result = Character.where("phonetic like ?", "%" + params[:name] + "%")
    end

    render json: @result
  end
end

Return 400 if params is not present · unasuke/imas_api_rails@07185c5

2016年12月25日
2016年12月20日

高専DJ部 Advent Calendar 2016 20日目MIX

dj

#kosendj Advent Calendar 2016

#kosendj Advent Calendar 2016 - Adventar

20日目MIX

ジャンル名は「カラオケ」です。

「準備はいいんかね!?」で始まり、「これでお終いさ」で終わるのは狙いました。

セトリ

  1. ルンがピカッと光ったら - ワルキューレ
  2. survival dAnce ~no no cry more~ - TRF
  3. Pick Me Up - Perfume
  4. ワンルーム・ディスコ - Perfume
  5. WILD STARS - μ’s
  6. Darling!! - 西木野真姫 (Pile)
  7. Hotel Moonside (Extended Live Version) - 速水奏 (CV:飯田友子)
  8. レーザービーム (Album-mix) - Perfume
  9. ショコラ・ティアラ - 三村かな子 (大坪由佳)
  10. さよならトリップ - Dormir
  11. Snow Crystal - Another Infinity Feat. Mayumi Morinaga
  12. Just Be Friends - Dixie Flatline Feat. 巡音ルカ

余談

DJコントローラーぶっ壊れたので明日のadvent calendarが厳しい

— うなすけ(ミートアップ) (@yu_suke1994) 2016年12月19日

USBポート変えたら直ったので嬉しいが、つまりmacbookが壊れている……

— うなすけ(ミートアップ) (@yu_suke1994) 2016年12月19日
2016年12月20日
2016年12月16日

やぎすけ Advent Calendar 16日目 testの追加

pull request

やぎすけ Advent Calendar

やぎすけ Advent Calendar 2016 - Adventar

16日目です。やっていきましょう。

testを書く

さて、今のdevelopment branchではtestが落ちるので、直していきましょう。

不要なhttp methodを削る

Remove unneed controller tests · unasuke/imas_api_rails@56d92f3

GETしかないので、それ以外は消します。

fixtureにデータを登録

Define character fixture · unasuke/imas_api_rails@3b78b84

天海春香さん。

testするurlの変更

Fix test url · unasuke/imas_api_rails@874afe9

indexはまだなにもないので、allに対してテストするよう変更します。

response.bodyも見る

Check response body · unasuke/imas_api_rails@bb50504

response.bodyにちゃんとcharacterがはいっているか確認します。

searchのtestを書く

Add test characters#search without params · unasuke/imas_api_rails@a3bc2a5

searchにparamsがない場合のtestを追加しました。

2016年12月16日
2016年12月14日

このblogのCIをCircle CIからwerckerに変更しました

wercker

やぎすけ Advent Calendar

やぎすけ Advent Calendar 2016 - Adventar

14日目です。大半がやぎにいなのでプレッシャァ。

Circle CIへの不満

遅い

無料のci serviceに言う文句じゃない気もしますが、とにかくtestがpassするまでの時間が長いと感じていました。

たとえばRubyの2.3.3など、わりと新しめのversionを使おうとすると毎回インストールを実行するので時間がかかります。

インストールの様子

werckerなら速そう

そこでwerckerを選択しました。werckerはciを実行する環境がdocker containerの中になるので、適切なcontainerを 選んでやれば環境構築の手間は最低限で済みます。

werckerでmiddlemanのbuild

こちらになります。

box: ruby:2.3.3
init:
build:
  steps:
    - install-packages:
        packages: nodejs
    - bundle-install
    - script:
        name: middleman build
        code: bundle exec middleman build
deploy:
  steps:
    - install-packages:
        packages: nodejs rsync
    - bundle-install
    - add-ssh-key:
        host: unasuke.com
        keyname: deploy
    - add-to-known_hosts:
        hostname: unasuke.com
        fingerprint: $FINGERPRINT
    - script:
        name: middleman build
        code: bundle exec middleman build
    - script:
        name: middleman deploy
        code: bundle exec middleman deploy

master branchでciが実行された場合は、deploy pipelineが実行されるようにしています。

workflow設定

どのくらい速くなったのか

build ci

deployが発生しない、通常のciが終わるまでに要した時間を適当に5つ抜き出してみました。

circle ci

だいたい3分間といったところ。

wercker

ほぼ1分間という感じ。

deploy ci

deployが発生する場合に、deploy終了までどれだけの時間を要したかを適当に5つ抜き出してみました。

circle ci

これもだいたい3分から4分の間。1回だけ13:06かかったことがあり謎。

wercker

werckerに移行してからあまりdeployしてないのでサンプルが少ないですが、早くなっています。

参考

2016年12月14日
2016年12月05日

高専DJ部 Advent Calendar 2016 5日目MIX

dj

#kosendj Advent Calendar 2016

#kosendj Advent Calendar 2016 - Adventar

5日目MIX

ジャンル名は「哀愁」です。

セトリ

  1. Paradigm - Leslie Wai
  2. Snowblind (feat. Tasha Baxter) - Au5
  3. Surface - Aero Chord
  4. Keep On Rocking - F.O.O.L
  5. Sometime (Vocal) - Seamless ft Veela
  6. Magnolia - Guriri
  7. Blossom - Au5
  8. Valkyrie II: Lacuna (feat. Cassandra Kay) - Varien
  9. 532nm - Ryu☆
  10. 405nm (Ryu☆Mix Extended) - Another Infinity
  11. Riot - Tanchiky

もっとうまくならなきゃ……

2016年12月05日
2016年12月04日

whywaita advent calendar day4

slack

whywaita Advent Calendar 2016 - Adventar




whywaita











alitaso

2016年12月04日
新しい投稿
古い投稿