2017-01-01から1年間の記事一覧

2017年に読んだ本たち

2017年に読了した本*1 増補改訂版Java言語で学ぶデザインパターン入門作者: 結城浩出版社/メーカー: ソフトバンククリエイティブ発売日: 2004/06/19メディア: 大型本購入: 51人 クリック: 762回この商品を含むブログ (397件) を見る 古典。今更感はあるが、…

error while loading shared libraries: libfontconfig.so.1

環境 CentOS release 6.5 事象 karmaでPhantomJSを起動しようとするとエラーでこけた。エラーは以下。 ERROR [launcher]: Cannot start PhantomJS xx/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs: error while loading shared libraries: li…

vue-cliのwebpack productionビルド時にconsoleログ出力を削除したい

vue-cliでwebpackでproductionビルドを行う際に、以下のように UglifyJsPluginにcompress.drop_console オプションを追加するとconsole.log, console.errorなどのconsole.xのコードを削除できる build/webpack.prod.conf.js new webpack.optimize.UglifyJsPl…

moment.jsでマシン依存しないサーバ時間を扱いたい

moment.jsを扱っていて、クライアントサイドアプリケーションでマシン依存しない時間を扱いたい場合の方法。 サーバからタイムスタンプを予め取得し、マシン時間との差分を保持しておく。 以降はその差分を計算することで正確な現在時刻を求める。 // timest…

nodejsで簡単なAPIモックサーバを作る

フロントエンド開発をしていて、API実装前にさらっと動きを確認したいときなど、モックAPIがあると便利。 json-serverを使っていたけど、意外と細かいところに手が届かなかった*1の自分用に前でモックAPIのテンプレートを作った。 REST API(express) CORSの…

error: [vuex] vuex requires a promise polyfill in this browser

現象 Vuexで構築したアプリケーションをIE11で動かすとエラーになった。 error: [vuex] vuex requires a promise polyfill in this browser promise がIEだと使えないようだ。 解決 babel-polyfill を入れる babeljs.io npm install --save-dev babel-polyfi…

stylefmtでcssプロパティをアルファベット順に並び替える方法

stylelint-order プラグインとしてインストールすることで可能。 stylelint-order をインストール $ npm install stylelint-order --save-de .stylelintrc.json に以下のようにplugins と rules を追加する { "plugins": [ "stylelint-order" ], "rules": { …

WebRTC(SkyWay)でコネクションを成立後にローカルビデオのon/offを動的に切り替えたい

やりたいこと WebRTCでコネクションを作ったあとに、自分のビデオ、マイク音声on/offをシームレスに切り替えるようにしたい。 Skypeとかにあるビデオ、音声ミュート機能と同じやつ。 例えば、今ちょっと自分の画面を相手に見せたくないよ、でもコネクション…

都内から格安で富士急ハイランドへ行く

先日初めて富士急ハイランドに行ってきた。 得Qパックという、高速バス往復+フリーパスのチケットが安かった。 bus.fujikyu.co.jp 渋谷から往復して7900円(渋谷以外にも乗り場はある)。フリーパスは正規の値段だと、それだけで5700円なのでかなりお得だ。 都…

vue-cliの開発サーバをhttps化する

vue-cliを使って開発をしていて、開発サーバをhttps化する必要がでてきたため、vue-cliに組み込まれているdev-serverをhttps化することにした。 ソースを見るとなんてことはない、nodejsのexpressを使ってサーバを起動しているだけなので、expressのhttps化…

Vagrantを再起動したら既存のVMが消えた

現象 Mac上で起動しているVagrantのVM内で作業していたところ、バッテリー切れでMacが強制シャットダウンした。 その後、起動して、 Vagrant up でVagrant を起動したところ、作業していたVMではなく、新規VMが立ち上がるようになってしまった。 作業途中の…

vue-cliで作成したアプリケーションをサブディレクトリ上に展開する

vue-cli github.com やりたいこと vue-cliで作成したアプリケーションをサブディレクトリ /test-dir/ に展開したい。 問題 デフォルトの設定でプロダクションビルドし、 $ npm run build webサーバから {vue-cli-project}/dist/ を参照するようにしたが、こ…

Atomでリモートのファイルを直接編集する

先日社内のデザイナの作業を見てたら、ローカルでファイルを編集して、それをVMにFTPでアップロードしていたので、 VM上で直接編集したら?っていう話になった。 VimやEで始まる黒い画面はさすがにデザイナにはおすすめできないので、Atomあたり使ってるなら…

API blueprintでAPIドキュメントを書く

API

APIを作った際にはAPIドキュメントを必ず書かなくてはならない。 API blueprintでさくっと書くのがおすすめ。 デモ https://tic40.github.io/api-blueprint/public/v1.html ソースコード github.com 書き方 まずAPI blueprint 記法でAPIドキュメントを書く。…

採用試験でコーディングスキルチェックを受けた

先日とある会社の採用試験でオンラインコーディングスキルチェックを受けた。 それがなかなか面白かった。 内容は、サーバーサイド(PHP/Ruby(Rails)/Database) に関する問題で、全9題、試験時間は1時間45分程度、出題は全て英語。 最初の3題ぐらいはPHPでの…

Ruby on Rails Guides(v5.1.3) Getting Started with Railsを読む#2

これは、最新のRuby on Rails ガイド(v5.1.3) を読んだ際の学習記録です。 #1はこちら Ruby on Rails Guides(v5.1.3) Getting Started with Railsを読む#1 - Do Something Adding a Second Model Articleにつづいて、2つめのmodelを追加しよう。 Generating …

Ruby on Rails Guides(v5.1.3) Getting Started with Railsを読む#1

これは、最新のRuby on Rails ガイド(v5.1.3) を読んだ際の学習記録です。 Getting Started with Rails — Ruby on Rails Guides #1 Start Here 以下を学ぶ Railsインストール、Railsアプリケーションの作成、そしてアプリケーションをデータベースへ接続する…

第222回TOEIC結果

結果 score: 765 listening: 405 (+0) reading: 360 (-5) スコア推移 感想 あかn 次回受験 2017/09/10 第223回

Cybozu Groon API から当日の予定を取得するPHPスクリプトを書いた

PHP

Cybozu Garoon API Cybozu Garoon を社内で使っているんだけど、APIが公開されていることをつい最近知った。 developer.cybozu.io サイボウズ上の当日の予定をAPI経由で取得できるので、 毎朝チームのチャットグループに自分のスケジュールを自動投稿する、…

#20/20 Bit Manipulation: Lonely Integer [Cracking the Coding Interview Challenges]

#20 Bit Manipulation: Lonely Integer www.hackerrank.com 入力される数は、1つの数を除いて、ペアになっている。 入力される数の中で、ペアになっていない数字を見つけて出力する問題。 solution XOR(排他的論理和)を使うことで、ペアになっていない数字を…

#19/20 Recursion: Davis' Staircase [Cracking the Coding Interview Challenges]

#19 Recursion: Davis' Staircase www.hackerrank.com 1 o 2 or 3段を一度に登れる人間が、n段の階段を登る際に、何通りの登り方が存在するか計算する問題。 以下のような入力が与えられる。 3 1 3 7 最初の行が階段の数。2行目以下は、階段のステップ数。 …

#18/20 Recursion: Fibonacci Numbers [Cracking the Coding Interview Challenges]

#18 Recursion: Fibonacci Numbers www.hackerrank.com 入力される数値nに対して、n項のフィボナッチ数を求めて出力する問題。 solution 問題文の通りに実装すると以下のようになる。 def fib(n) return n if n <= 1 return fib(n-1)+fib(n-2) end puts fib(…

#17/20 Time Complexity: Primalityh [Cracking the Coding Interview Challenges]

#17 Time Complexity: Primality www.hackerrank.com 素数判定を行う問題。 以下のような入力が与えられる。 3 12 5 7 一行目はデータの数。それ以降の数に対して、素数かどうか判定を行い、素数であれば'Prime'、そうでなければ'Not prime'を出力する。 上…

CentOSへKongをインストールする

目標 CentOSへKongをインストールする。 マイクロサービスをAPI Gatewayパターンで実装するため、API Gatewayの構築を考えている。 KongがマイクロサービスのAPI Gatewayとして必要な機能を備えているように見えるため、検証のため今回インストールまで行っ…

#16/20 BFS: Shortest Reach in a Graph [Cracking the Coding Interview Challenges]

16 BFS: Shortest Reach in a Graph www.hackerrank.com 以下の形式の入力が与えられる。 2 4 2 1 2 1 3 1 3 1 2 3 2 最初の行には、クエリの数を示す整数が示される。後続の行は、各クエリを次の形式で示す。 最初の行には、グラフ内のノードの数nとエッジ…

#15/20 DFS: Connected Cell in a Grid [Cracking the Coding Interview Challenges]

#15 DFS: Connected Cell in a Grid www.hackerrank.com 以下のような入力が与えられる。 4 4 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1行目にn行、2行目にm列、それ以降はn行m列分のマトリックスがスペース区切りで与えられる。 マトリックス内で、1のセルが隣接…

都内から江ノ島へ自転車日帰りツーリング

休みに予定がぽっかり空いてしまったので、たまには自転車で日帰り旅でもしようかな、と思い江ノ島に行ってきた。 江ノ島は世田谷区からちょうど往復100kmなので、ロードバイクなら十分日帰り可能だ。 ロードバイク GIANTのDEFY3。確か今はもうDEFYシリーズ…

#14/20 Binary Search: Ice Cream Parlor [Cracking the Coding Interview Challenges]

#14 Binary Search: Ice Cream Parlor www.hackerrank.com アイスクリーム屋で、持っているお金を全てを使い切って2個のアイスクリームを購入したい。 その組み合わせを見つける、という問題。 アイスクリーム屋には、様々なフレーバーのアイスがあり、それ…

#13/20 DP: Coin Change [Cracking the Coding Interview Challenges]

#13 DP: Coin Change www.hackerrank.com タイトルどおり、Dynamic Programming で解く問題。 以下のような入力が与えられる。 4 3 1 2 3 4 3 # {コインの組み合わせで達成したい値} {コインの種類数} 1 2 3 # コインの種類。この場合、価値が1, 2, 3の3種類…

#12/20 Merge Sort: Counting Inversions [Cracking the Coding Interview Challenges]

#12 Merge Sort: Counting Inversions www.hackerrank.com 以下のようなインプットが与えられる。 2 5 1 1 1 2 2 5 2 1 3 1 2 1行目はデータセットの総数 2行目以降はデータセットの総数分だけ以下の入力の繰り返し データの要素の数が整数で与えられる スペ…