うっかりエンジニアのメモ

未来の自分に宛てたメモ

こやさんが2018年買ってよかったリスト

2018年もあっという間でした。振り返りましょう。

シモンズ ゴールデンバリューグレーシャスN

f:id:entropiajp:20181224011055j:plain

IT業界ですっかり腰をやられてしまった僕とあらみす @aramis1311 は最高の睡眠を提供してくれるベッドを求めて池袋まで来た。僕はシモンズを、彼はサータを買った。二人共、最高の睡眠を手に入れた。

~完~

ザ・プレミアム ソフゥール敷毛布

ウール100%の敷毛布。最高に肌触りがよく、無限にもふもふできる。
四隅にバンドも付いているので、マットレスへの固定も簡単。

f:id:entropiajp:20181120022350j:plain
ベッドに設置してみた

羽毛ファクトリーすやすや ポーランドマザーグース 羽毛肌掛け布団

春~秋用に買った。羽毛布団というのは昔から訪問販売の話があって胡散臭いイメージがどうしても拭えないけれど、とりあえず「羽毛ファクトリーすやすや」で買っておけば間違いない。僕は無印の掛けふとんカバーを掛けて使ってる。最高。とにかく蒸れない、それでいて暖かい。 この羽毛布団は真冬用のかさが厚い羽毛布団ではないけど、上に書いた敷毛布と組み合わせることで冬も十分暖かく眠れる睡眠環境を作れている。(うちがマンションの高層階でそもそもそんな寒くないというのもある) とにかく、高いものを一度バシッと買ってしまえば、お買い物ジプシーは簡単に終わる。君はオーディオインターフェースをこれまで何台買い替えてきた?最初からRMEにしとけって… そういうことだ。

無印良品 ベッドフレーム オーク材

f:id:entropiajp:20181007183241j:plain

それまで楽天で買った安物のベッドフレーム使ってたので、せっかくシモンズ買ったならベッドフレームも買い換えようということで導入。 まず見た目が良い。そして寝返りをうってもきしむ音が一切しない。 あと、無印の不用家具引取サービスが最高。これは、商品を買い換える場合、古いものを無料で引き取ってくれるサービス。今回の場合ベッドフレームを買ったので、古いベッドフレームを無料で回収してくれる。粗大ごみの手配もめんどいし、そもそも1Fまで一人でどうやって持ってくのか、とか手間を考えるとこのサービスは素晴らしいと思う。あまり知られてないようなので、もっと宣伝するべき。

Sony 4K有機ELテレビ BRAVIA KJ-55A8F

ラ・ラ・ランドインターステラーを最高の環境で観たかった、ただそれだけで購入。 有機ELテレビは2017年はまだかなり高かったけど、2018年には現実的な値段になってきたと思う。来年はもっと下がりそう。 前評判どおり、リモコン操作に対する反応がややもっさりしていてそこだけは不満。

f:id:entropiajp:20180908003801j:plain
PS4 Detroit: Become Human
f:id:entropiajp:20180923065230j:plain
4Kバージョン「君の名は。

Panasonic ドラム式洗濯乾燥機 NA-VX8800

自動洗剤投入は神

前使ってた洗濯機が買って6年経ってたから必要な買い物だったと自分に言い訳しているが、どう考えてもガジェット好きの延長である。 自動洗剤投入機能が神。洗剤、柔軟剤をあらかじめタンクに入れておくと、毎回勝手に衣服の量に応じて適量を投入してくれる。たしかに、言われてみれば機械にできそうなことなのに、なんで今までの洗濯機にはついてなかったんだろう。不思議だ。
ほとんどの洗濯物はドラム式で完結させてるけど、Yシャツは綿50%アクリル50%のものを洗ってみたらややシワが残ってしまうので、取り出してハンガーにかけて乾燥してる。

Panasonic 食洗機 NP-TH1

皿洗いはもともと嫌いではない、というか好きな方の家事なんだけど、今回の引っ越しは「時短」がテーマの一つだったので、思い切って導入してみた。今となっては無くてはならない家電の一つになった。
時短効果もさることながら、60℃のお湯と、手洗いでは使えない強い洗浄力を持つ専用洗剤が使われることで、手洗いでは「絶対に到達できない」レベルで綺麗に仕上がるのが嬉しい。紅茶の茶渋がついたサーモスタンブラーが新品同様になったときには本当に驚いた。 アドバイスできることがあるとすれば、食器の良い置き方(説明書に書いてある)を早く覚えるのと、一番でかいやつを買え
Amazonのレビューにもあるけど、一人暮らしこそ一番大きなサイズを買うべき。

SKAGEN 腕時計

昨年も買ったSKAGEN買い足し。落ち着いた色合いとデザイン、そして何より見やすい盤面(最重要)。それでいて1万円前後と安いので気軽に買える。個人的に北欧テイスト大好きなので来年も買うと思う。

つば屋 三徳包丁

f:id:entropiajp:20181224001537j:plain
V金10号ワイン 牛刀 赤柄

料理するなら包丁に1万くらい出しとこ。一生モノです。 昔買ったものは母親にあげてしまったのでこの度の引っ越しに伴って買い直し。 「つば屋」は浅草近くの合羽橋道具街にある包丁専門店。

Roland RD-2000

言わずもがな、ローランドのフラッグシップステージピアノ。
V-Pianoテクノロジーによるアコースティックピアノ音源も勿論美しいのだけど、なによりタッチが素晴らしい…。RD-2000で弾くだけで強弱がきちんと付くようになるので巧くなったと錯覚する笑
ちなみに僕はソフトシンセ音源「Ivory II」でいつもピアノを弾いてるけど、それでも他のMIDI鍵盤で弾いた場合よりも自分の表現がより的確に伝わっている感触がある。

防音マット 防音カーペット 静床ライト

夜弾いてたら家族から「打鍵音がうるさい」とクレームが入ったので導入した防音マット。電子ピアノはヘッドホンを使えば外に音は出ないけど、鍵盤を打鍵するコツコツという音は相変わらず外に鳴ってしまう。このマットはずっしりと重さがあって、床に響く音(≒振動)を軽減してくれる。

f:id:entropiajp:20180216102541j:plain
設置前
f:id:entropiajp:20180216103058j:plain
設置後

結果的には買って大正解。鍵盤楽器を弾くなら必須だと思う。あと、子どもが床に物を落とした時とか階下に響く音を軽減できるんじゃなかろうか。ファミリー向けにもおすすめ。

ヨネックス ラケバ BAG1729

普通、ラケバ(ラケットバッグ)って横型が多くて、かっこいいんだけど電車移動があったりすると持ち運びにちょっと苦労する。 このラケバは完全に背負う形にしつつ、ラケットがすっぽり2-3本入るようになってる。自分が現役の中高生バドミントン部員だったら絶対買ってた。黒に蛍光イエローのデザインもGood。

Apple iPhone 8

iPhone SEを長く愛用していたけど、iOS 12になり動作が怪しくなってきたのと、バッテリーが1日持つかどうか怪しくなってきたので、えいやでApple Store新宿で買ってきた。本当にサクサク動いて快適&満足。意外な嬉しさとしてはApple Payの便利さ。コンビニの買い物はApple Payで済ますようになったので、現金を使う機会がかなり減った。このままノーキャッシュライフにしたい。

終わりに

2018年も、沢山の良いものと出会えました。 来年も、沢山の良縁がありますように。

Spring Socialについて自分用メモ

概要

SpringアプリケーションからTwitterFacebookなどのSNSサービスを手軽に利用するためのライブラリ。

Spring Socialを使うメリット

  • SNSのユーザ認証が手軽に実装できる(OAuth, OpenID Connectの詳細を知らなくてもOK)
  • Twitter, Facebook, LinkedIn, Githubなど大手SNSなら、それらのREST APIのラッパーSDKが利用できる
  • Spring Securityと連携したユーザ認証機構を手軽に実装できる

おことわり

この記事では、接続するSNSとしてTwitterを例として話します。
Spring Socialのreferenceをもとに話します。
Spring Social Reference

build.gradle

compile("org.springframework.boot:spring-boot-starter-social-twitter")

SNSアカウントでアプリにログインする機能がほしい場合はさらにspring-social-securityが必要。 compile("org.springframework.social:spring-social-security:1.1.0.RELEASE")

用語説明

provider

OAuth認可フローにおける、tokenの発行者。

consumer

OAuth認可フローにおける、tokenの受取者。

つまりSNSを利用するアプリがconsumerで、利用するSNSがproviderとなる。

SNSAPIを呼び出す単純なアプリ(connecting to providers)

SNSとのOAuth認証部分が全てspring-social側で実装されているので、開発者が書くコードは驚くほど少ない。

ConnectController

org.springframework.social.connect.web内で実装されているController
下記エンドポイントが自動的に利用できるようになる。

GET /connect

すべてのproviderについて、アカウント接続状況を一覧で表示する

GET /connect/{providerId}

指定したproviderのアカウント接続状況を表示する。

POST /connect/{providerId}

指定したproviderへの接続処理を開始する。

GET /connect/{providerId}?oauth_token={request token}&oauth_verifier={verifier}

Receives the authorization callback from the provider, accepting a verification code. Exchanges this verification code along with the request token for an access token and completes the connection. The oauth_verifier parameter is optional and is only used for providers implementing OAuth 1.0a. (※リファレンス引用)

DELETE /connect/{providerId}

指定したproviderへの接続情報を削除する。

DELETE /connect/{providerId}/{providerUserId}

ユーザのproviderUserIdに基づいて、指定したproviderへの特定の接続のみ削除する。

{providerId}TwitterであればtwitterFacebookならfacebookのような文字列。

viewはデフォルトで未定義なので、別途用意する必要がある。 サンプルアプリではtemplates.connectフォルダ以下にthymeleafのテンプレートファイルが作られている。

  • twitterConnect.html Twitterに未接続の場合表示されるview
  • twitterConnected.html Twitterに接続済みの場合表示されるview

SNS接続済みかをチェックする

connectionRepository.findPrimaryConnection(Twitter.class)で判別できる。
すでに認証できていれば Connection<Twitter> クラスのコネクションが返ってくるし、未接続ならnullが返る。

Connection<A>はspring-socialの根幹をなすinterface。

public interface Connection<A> extends Serializable {

    ConnectionKey getKey();

    String getDisplayName();

    String getProfileUrl();

    String getImageUrl();

    void sync();

    boolean test();

    boolean hasExpired();

    void refresh();

    UserProfile fetchUserProfile();

    void updateStatus(String message);

    A getApi();

    ConnectionData createData();

}

認証情報の永続化

OAuth認証に必要な情報は以下の4つ。

  • アプリのconsumer ID
  • アプリのconsumer secret
  • ユーザのaccess token
  • ユーザのaccess token secret

上2つはSNSでアプリ登録するとアプリ1つにつき1つ付与されるので、それをPropertiesファイルなどに記載すればよい。 下2つはユーザごとに異なるので、ユーザごとにconnectionから取得し、DBなどに永続化することになる。

access tokenとaccess token secretはそれぞれconnectionから以下のメソッドで取得できる。

  • connection.createData().getAccessToken()
  • connection.createData().getSecret()

providerのAPIコール

REST APIコールをラップするクラスが用意されている。
ConnectionインタフェースのgetApi()メソッドでラッパーのインスタンスを取得できる。型はprovider名と同じ。(TwitterならTwitterクラス)

@Controller
@RequestMapping("/")
public class HelloController {

    private Twitter twitter;

    private ConnectionRepository connectionRepository;

    @Inject
    public HelloController(Twitter twitter, ConnectionRepository connectionRepository) {
        this.twitter = twitter;
        this.connectionRepository = connectionRepository;
    }

    @RequestMapping(method=RequestMethod.GET)
    public String helloTwitter(Model model) {
        if (connectionRepository.findPrimaryConnection(Twitter.class) == null) {
            return "redirect:/connect/twitter";
        }

        model.addAttribute(twitter.userOperations().getUserProfile());
        CursoredList<TwitterProfile> friends = twitter.friendOperations().getFriends();
        model.addAttribute("friends", friends);
        return "hello";
    }

}

上記のコードでは、OAuth認証後にはtwitterインスタンスを用いてTwitterの各種API呼び出しができるようになっている。
例えばtwitter.friendOperations().getFriends()でログインユーザのフォローしている人の情報を取得できる。

SNSアカウントでログインするアプリ(signing in with provider account)

いわゆるソーシャルログイン。

利用例

単純なアプリ例との違い

  • ユーザが同じブラウザでTwitterにログイン中で
  • そのアプリのアクセスをすでに許可している

と、認証を要求されずスムーズにログインできる。 (authorizeせず、authenticateだけ行われる)

先ほどの単純なアプリの場合、上記条件を満たしていても、いちいち「(アプリ名)があなたのアカウントを利用することを許可しますか?」というTwitterの画面にリダイレクトされる。

  • 単純なアプリでエンドポイントを提供するConnectControler
  • SNSアカウントでログインするアプリでエンドポイントを提供するProviderSignInController

どちらのControllerにも定義されているConnectSupportクラスのフィールドにboolean useAuthenticateUrlという値があり、これがいちいちSNSのアプリ認証画面を出すかどうか左右している。

実装方法は2種類ある

SocialAuthenticationFilterを使う方法と ProviderSignInControllerを使う方法がある。

どのように両者を使い分けるかはSpring Social Referenceに記載があり

Although both options will work with Spring Security, we recommend using SocialAuthenticationFilter in applications where Spring Security is in play.

とあるように、Spring Securityを利用しているアプリケーションでは、SocialAuthenticationFilterを使う方法が推奨される。

一方で、

ProviderSignInController, on the other hand, is agnostic to the security mechanism your application employs and can be used in applications that aren’t using Spring Security.

とあるように、ProviderSignInControllerはSpring Securityと独立して(agnostic to security mechanism)動作するので、Spring Securityを利用しないアプリケーションでもProviderSingInControllerを使えば、ソーシャルログイン機能を実装することが可能になる。

SocialAuthenticationFilter

Spring Securityのconfigurationに.apply(new SpringSocialConfigurer())を追加する。

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .formLogin()
            .loginPage("/signin")
            .loginProcessingUrl("/signin/authenticate")
            .failureUrl("/signin?param.error=bad_credentials")
        .and()
            .logout()
                .logoutUrl("/signout")
                .deleteCookies("JSESSIONID")
        .and()
            .authorizeRequests()
                .antMatchers("/admin/**", "/favicon.ico", ...).permitAll()
                .antMatchers("/**").authenticated()
        .and()
            .rememberMe()
        .and()
            .apply(new SpringSocialConfigurer());
}

ProviderSignInController

SNSのアカウントによるログイン機能をSpringアプリに追加するにはProviderSignInControllerをbeanとして設定する。

@Bean
public ProviderSignInController providerSignInController(
            ConnectionFactoryLocator connectionFactoryLocator,
            UsersConnectionRepository usersConnectionRepository) {
    return new ProviderSignInController(
        connectionFactoryLocator,
        usersConnectionRepository,
        new SimpleSignInAdapter(new HttpSessionRequestCache()));
}

参考情報

ニュー・シネマ・パラダイス

※2012年の日記をサルベージ。

高校の頃付き合ってた彼女は,映画監督を目指していた.
頭も良くて,本も沢山読んでいた.当時図書委員だった僕なんかより,ずっと沢山.吹奏楽部でOb.を吹いていたのもあってか,音楽の大切さもわかっていて,そしてちょっと人付き合いが不器用だった.
もう数年会っていないし,メールのやり取りもない.まったくの音信不通である.
彼女は結局,映画監督になったのだろうか??

そんな彼女がこよなく愛していたのが,この映画だった.
当時,この作品は必ず観てほしいと何度も勧められていたが,あらすじだけ聞いた感じだと自分にはピンと来るものが無く,エンニオ・モリコーネ氏の音楽だけ気に入って何度も聞いていた.

そうやって,僕のiPhoneには6年前からこの題名のアルバムが入っている.

最近,そういえばこれは映画音楽だったと思い出し,DVDを買ってきた.
今日やっと本編を観ることができた.

…なんで僕は,今までずっと観てこなかったのだろう.
ラストの,つなぎあわせたフィルムを主人公が試写室でひとり観るシーンは,ひたすらに切なかった.

舞台は映画館のある小さな村.幼少を映画技師の男アルフレードと過ごした少年トトが初恋,徴兵,挫折を経てやがて大人になり,村を捨てて一人前の映画監督として巣立つ.しかし,ある晩に電話で映画技師の死を知る.彼は葬式へ参列するため,30年振りに故郷に戻ることとなる.

お話としては,こういうことだし,映画の最初から最後まではたった1日の話.
しかしほとんどを占める主人公の回想シーンで,アルフレードがトトに語りかける台詞が素晴らしい.

「自分のすることを愛せ。子供の時、映写室を愛したように」

「人生は、お前が見た映画とはちがう。人生は、もっと困難なものだ」

当時,トトは青年に成長していた.しかし徴兵がきっかけで初恋の相手エレナと音信不通となる.失意のどん底にあるトトに,アルフレードが投げかけたのが上の台詞.

アルフレードは年齢が離れているが,トトの良き理解者だった.トトをなぐさめ,エレナとの恋路を応援する選択肢もあっただろう.しかし,アルフレードはトトと接する中で,トトの映画監督としての素養と映画に対する並々ならぬ愛を感じていた.だからこそ,アルフレードはトトに,夢を目指してほしかった.”郷愁に惑わされ”村に留まって映画技師を続けた自分の様な人生を,彼には歩んでほしくなかった.…愛するトトだからこそ.彼の愛はいつだって不器用で,そして深かった.それは最後のシーンでトトが観る,アルフレッドが遺したフィルムにも表れている.

この映画の良さに6年前に気付いていた彼女は,今いったいどんな感性を持っているんだろうと,ふとぼんやり考えてしまった.トトが恋と郷愁を捨てて,将来の夢のために知らない土地を目指していったように,彼女もまた,僕との恋を捨てて夢のために歩く決意をしたのなら,ほんとうに彼女はかっこいい人間だと思う.

ジュゼッペ・トルナトーレという名監督を教えてくれた点も,感謝したい.

ほんとうに,いい映画だった.

AdobeCCはデジハリで買うと最安。しかも即利用開始できる

趣味で同人誌や動画の制作をしているので前からAdobe CS4を使ってきたのだけど、さすがに古すぎて動作が厳しくなってきた。 そこでAdobeCCが必要になった、が、まともに買うと年6万円。合法的に安く調達する方法を調べた。

まとめ

デジハリで「Adobeマスター講座[ソフト付属]」を契約すると、AdobeCCを29800円(税込)で12ヶ月間利用できる。 AdobeCCシリアルコードは申込完了後、メールアドレス宛に即時発行されるので、すぐに利用開始できる。

Adobe Creative Cloud 基礎講座 | Web、CG、映像、アプリ、造形はデジハリの通信講座

なぜデジハリなのか

この記事を読んでいる人なら、デジハリ/ヒューマンアカデミー/アドバン あたりを比較検討中だと思う。 価格差からアドバンがまず候補から外れて、デジハリヒューマンアカデミーになる。 デジハリは最近Adobe講座の仕組みをリニューアルして、AdobeCCのシリアルコードを即時発行できるようになった。

f:id:entropiajp:20180116164051p:plain

僕の場合、30日の試用期間が切れていた and すぐに使い始めたかったので、デジハリの即時発行は大変素晴らしかった。 実際、申込みボタン押して30秒でシリアルコードが届いた。

FAQ

商用利用OKなのか?

OK

卒業後(受講期間終了後)も利用できるのか?

できる。が、12ヶ月経過後も利用するなら再びAdobeCCライセンス付きの講座を受講するか、あるいはAdobeCC通常版を別途契約する必要がある

アカデミック版ではなく通常版のセールでこのくらい安くならないか?

ならないっぽい。直近だと2017年7月頃にAmazon Prime Dayで44%OFFの33432円まで実績*1があるようだけど、それでも29800円には到達しない。

こやさんが2016年買ってよかったもの、後悔したもの、活動まとめ

社会人になると1年があっという間に過ぎていきます。

  • 買ってよかったもの
  • 買って後悔したもの
  • 活動まとめ
    • WHITE-LIPS「誓いの言葉」をピアノで演奏してみた
    • Zektbach「The Sealer ~ア・ミリアとミリアの民~」をピアノで演奏してみた
    • 28歳SEが星野源『恋』(TV size) をピアノで演奏してみた
  • 最後に

例によってAmazonで買えるものはアフィリエイトを貼っています。気になったら是非。

Predawn Absence

アコースティックギター、時にテレキャスターを担ぐ女性シンガーソングライターです。 ほとんどの曲が英詞なんですが、彼女の楽曲の世界観と魅力的なヴォイスには、やはり英詞がよく合います。 品川のグローリアチャペルという教会であったライブが本当に神懸かりだったので、とにかく一聴していただきたく。

年の瀬にレコ発ライブも行けたし、今後も応援していきたいです。

KOKIA moment

何年かぶりに「音楽を聴いて泣く」という体験をしたCDという意味で、このアルバムとの、そしてKOKIAとの出会いは2016年の特筆すべき出来事です。 リードトラックの「moment 〜私は生きる〜」の、心に迫る感じはそう簡単に味わえるものじゃないと思います。

辛かったことは忘れればいいと言うけど 未来は全てを抱きしめてゆくことで 輝きを増すこと 私は知ってる 失ってものがあるなら それにも増す愛で生きよう

この強さ。このしたたかさ。これからもライブに行きたいです。

四月は君の嘘

奔放なヴァイオリニストである宮園かをり。周りを振り回しつつ、圧倒的なセンスと才能で黙らせる… ヒロインと主人公との距離感の変化も楽しかったけど、奔放そうに見えて実は繊細なgiftedが大好物な自分には最高でした。年末年始で最終巻まで読むぞ!

SONY ワイヤレスノイズキャンセリングステレオヘッドセット MDR-EX31BN

遮音性が気に入ってもともとetymotic researchのイヤホンを使っていたのだけど、年末にフリンジが耳に残って取れなくなって耳鼻科行くという恐怖体験(大げさ)をして、フリンジが入り過ぎずそれでいて周りの音はある程度カットしてくれるイヤホンを探してました。 これはいいですね。移動中だったり仕事中に聞くんで音質なんかこだわっても仕方ないしでbluetoothイヤホンにしたけど、bluetoothイヤホンの意外なまでの取り回しの良さに気づけたし、いい出会いでした。カラーバリエーションに赤があるのもイイね。

TSdrena 覗き見防止プライバシーフィルター

MacBook Pro Late2013 - Late2015で覗き見防止フィルターはこれが決定版では。シール不要で、ディスプレイの縁に安定して置けるので綺麗に使えます。

MIDWEC ケーブル付き モバイルバッテリー 10000mAh

なぜかモバイルバッテリーって分厚いのが多いですよね。うっすいモバイルバッテリーを探してました。これは最高です。2.0A出力の口もあり、充電のスピードも問題ないです。

君が望む永遠

もう2001年のゲームか…。名作でした。紹介してくれた友人ありがとう。
私は遥推しです。

救命センター当直日誌

現役の救急救命センターの医師によるエッセイ。フィクションの体ですが、筆者の実務経験に裏打ちされた臨場感ある筆致で、サクサク読めます。
救急救命センターの出来事なので、人の生死も当然ありうる場のですが、そういった場だからこそ、患者の家族をはじめとした周りの人たちの人間性がよく出るんですね。
主人公の医師が措置の終わった後、一息ついている時に研修医とやりとりをする場面があります。そこで交わされる会話から筆者の人間へのまなざしが垣間見える所に、この本の良さがあります。

MOTHERHOUSE バッグ Antique Slim Business

shop.mother-house.jp

同じブランドの麻のバッグを使っていて、汚れが目立ってメンテに出すことになり代わりに買ったバッグ。これが本当にいいブラウンの色合いで… 中のポケット類もスマホや小物を入れるためによく考えられた設計になっていて、長くメンテしながら使っていきたいなぁと思っています。

三千櫻

michizakura.jp

甘めの日本酒が好きで、と近所の酒屋に相談したらこれをお勧めされて、以来、宅飲みではこれを買って行くようにしてます。 岐阜県中津川市の小さな酒造が作っているとても美味しいお酒です。

買って後悔したモノ

Playstation VR

とにかく酔った。VRの面白さに辿り着く前に、生理的なストレスに圧倒されて終了。 来年出るエースコンバット7のVRコンテンツまで寝かせておきます。

スプラトゥーン(買ったの2015年だけど)

めちゃくちゃプレイした。したけど。 正直、後半の方イライラした記憶しかなくて、総プレイ時間のうち1000時間くらいは無駄としか言いようがなかった。 長時間プレイしたけど、それはゲームの面白さから来るものではなくて、このゲーム(のガチマッチ)が本質的に持つ"ギャンブル性"によるものだと、自分は理解しています。

Splatoonスプラトゥーン)』は当社の開発チームの若い力を集結してできたもの

2015年10月29日(木) 経営方針説明会 / 2016年3月期 第2四半期決算説明会 - 質疑応答

とのことだけど、小学生から任天堂のゲームをやってきて、こんなにイライラしたことはなかったので(※よくイライラすると言われるスマブラはあまりやったことない)、このようなイライラするデザインのゲームが今後も出されるなら、自分と今後の任天堂のゲームはもう相性悪いんだろうだなという結論。

Apple Watch Series 2

www.apple.com

Genius Barの店員は商品知識がないなら正直に「わかりません」と言おう
顧客に嘘を吐くのはやめて。以上。

活動まとめ

2016年はピアノアレンジ動画を3作アップできました。

WHITE-LIPS「誓いの言葉」をピアノで演奏してみた

2000年代のエロゲの曲です。近未来SF×サン・テグジュペリという奇特な世界観を持ち、絵本のような穏やかな雰囲気の中、後半は怒涛のSFが展開されます。そのED曲がこの「誓いの言葉」なんですが、私は初回プレイ時、ボロ泣きでこのEDを迎えました。全く個人的な思い出として、大学生の頃、山形に免許合宿に行く時にノートPCを持っていってこのゲームを毎晩プレイしていたので、この旋律を聞くと懐かしさでむずがゆくなります。

Zektbach「The Sealer ~ア・ミリアとミリアの民~」をピアノで演奏してみた

soundcloudの自分のアカウント見返していたら、なんとこのプレビュー版が2012年にアップロードされていました。。

真面目に耳コピしてアレンジして熱心に練習したのに、面倒くさがって動画に残さずにいたらいつのまにかアレンジ忘れてる…みたいな悲しいことが去年何回かあったので、ちゃんと動画にしよう!と意気込んでアップロードしたのがこのア・ミリアでした。 ニコニコ動画のコメにあった「こやさんのおかげでゼクトが好きなりました」というコメが本当に嬉しかったです。そうやって好きの幅を広げてくれる出会いって実はあまりないんで、きっかけになれて嬉しいです。サンホラ好きは、ゼクト好きになる素質があると思います!

28歳SEが星野源『恋』(TV size) をピアノで演奏してみた

プロの独身なんで。
年末でクッソ忙しい時期だったんですが、毎週逃げ恥見ていて、本当にいい曲だったので弾きました。実際アレンジしようとすると、POPなだけでなくおしゃれで楽しい曲でした。
それにしても星野源、マルチだなぁ…

最後に

今年は、長年付き合いがあった人から不意打ちで瘴気の篭った言葉を当てられることが多く、なかなか気が滅入りがちでしたが、その一方でより深まった縁もあって救われる場面が印象的な年でした。モノに関しては、なかなかいい出会いが多かったように思えます。
来年も良いご縁と恵まれますように。あと音楽面でも新しい方向に踏み出してみようかと思っています。

良いお年を!

Ubuntu 14.04 + Apache 2.4 + Python 3.5.1 で Flask動作環境を構築する

OSインストール直後の状態からflaskの動作確認まで。

環境

コマンド実行

# use japan mirror server
sudo sed -i'~' -E "s@http://(..\.)?(archive|security)\.ubuntu\.com/ubuntu@http://ftp.jaist.ac.jp/pub/Linux/ubuntu@g" /etc/apt/sources.list

# update installed package
sudo apt upgrade
sudo apt update

# install apache2
sudo apt install apache2

# install python 3.5.1
sudo apt install -y build-essential
sudo apt-get -y build-dep python3.4
mkdir downloads
cd downloads
wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
tar -zxvf Python-3.5.1.tgz
cd Python-3.5.1
./configure --enable-shared --prefix=/opt/python-3.5.1
make
sudo make install
echo "/opt/python-3.5.1/lib" | sudo tee /etc/ld.so.conf
sudo /sbin/ldconfig

# create virtualenv & install mod_wsgi
cd ~
/opt/python-3.5.1/bin/python3 -m venv example-env
. example-env/bin/activate
pip install -U pip
pip install mod_wsgi-httpd
pip install mod_wsgi

# install flask
pip install flask

ファイル作成

/etc/apache2/mods-available/wsgi_express.conf

WSGIPythonHome /home/vagrant/example-env
WSGISocketPrefix /var/run/wsgi

/etc/apache2/mods-available/wsgi_express.load

LoadModule wsgi_module /home/vagrant/example-env/lib/python3.5/site-packages/mod_wsgi_packages/httpd/modules/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so

/etc/apache2/sites-available/example-site.conf

<VirtualHost *:80>

    WSGIDaemonProcess example-site user=www-data group=www-data threads=5 python-path=/home/vagrant/example-env/lib/python3.5/site-packages
    WSGIScriptAlias / /var/www/example-site/app.wsgi
    WSGIScriptReloading On

    <Directory /var/www/example-site>
        WSGIProcessGroup example-site
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

/var/www/example-site/app.py

# -*- coding:utf-8 -*-
from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'completed!'

if __name__ == '__main__':
    app.run()

/var/www/example-site/app.wsgi

import sys, os
sys.path.append('/var/www/example-site')

from app import app as application

コマンド実行

sudo a2enmod wsgi_express
sudo a2dissite 000-default
sudo a2ensite example-site
sudo service apache2 reload

テスト

ブラウザに completed! と表示されればOK

参考

2015年まとめ

社会人になってからは毎年あっという間に過ぎていますが、やはり今年もせわしく一年が過ぎ去ってしまいました。 入社して3年近くが過ぎ、ブログのタイトルにある技術支援部署も、来月から異動で離れることになりました。 諸先輩方、大変お世話になりました。新卒で最初に配属された部署が、技術的に尖った先輩がいる環境で良かったです。 (この会社でそういう環境に居られたのは、なかなか運が良かったと思います)

今年勉強したもの

その割に記事が全然書けてませんね…反省します。

resultoon

ひそかにGitHubで10 starsを獲得する目標があり、9月頃に公開したアプリケーションで達成することができて良かったです。

entropiajp/resultoon · GitHub

任天堂のゲームソフト「スプラトゥーン」の戦績を記録するアプリです。HDMIキャプチャの入力を元に画像認識で各種情報を読み取るので、ユーザ入力0でプレイしてるだけで勝手に記録されて便利です。ちょうどエンジニア界隈でスプラトゥーンが流行っていたこともあり、多くの人に知ってもらうことができました。

学生時代の私のネット上の活動といえば、耳コピして演奏した動画を投稿したり、ピアノアレンジの楽譜を起こしたりすることでした。

趣味のアプリではありますが、こうしてエンジニアの人々の目に留まったことで「ピアノを弾く人」から「エンジニア」に一歩衣替えできた気分になり、とても嬉しいのです。

ただし、あまりにスプラトゥーンにはまりすぎて、resultoonを作れたことは良かったのですが、正直、学習はおろそかになってしまいました。。 費やした時間を考えると暗澹たる気持ちになりますが、行けるところまで行ったのでもう悔いはありません。

f:id:entropiajp:20151231233855p:plain

抱負

来年はいよいよ現場で仕事することになります。
今まで培ったことも下地にしつつ、いい意味でまた新入社員のような緊張感を持って、現場の仕事に馴染んでいきたいと思います。
年末年始はこたつでAWSの勉強するぞーー

それでは皆さま良いお年を。