webエンジニアさもの挑戦

RubyやPython, JSなど、IT関連の記事を書いています

これまで作った画像処理プログラムをwebサービスにしてみました。

こんにちは、エンジニアのさもです。

これまでプログラムを公開してきた「python画像処理シリーズ」を全部では無いですが、webから使えるようにしてみました。

画像変換の実験室

herokuの無料版で動かしているので、アクセスが多くなるとすぐに重くなるかもです。

続きを読む

herokuでbundle installが実行されない

こんにちは エンジニアのさもです。

herokuにdeployしたとき、なぜかbundle installが実行されていないようだったので、メモです。

(よくある原因のひとつに、開発環境でbundle installしていなかったというがありますが、今回はこれが原因ではありませんでした。)

いつもどおりcloud9にてアプリの金型作成し、git pushしたところ、ログを見る限りビルドは成功しているようでした。

ですが、なぜかApplication Errorの画面しか出ずに、実行時ログには

/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- bundler (LoadError)

というみたこともないエラーが!

原因は、build packにrubyが入っていないためでした。

f:id:s-uotani-zetakansu:20171207185128p:plain

普通は最初から入っているはずなのですが・・・

add buildpackでrubyを追加して、適当にcommitしてpushしたら動きましたとさ。

読者登録をしていただけると、ブログを続ける励みになりますので、よろしくお願いします。

python画像処理9 透過PNGに変換する

こんにちは、エンジニアのさもです。

先日デザイナーさんに、透過PNGってどうやって作ってるんですか?って聞いたところ、「Photoshop使ってます」と言っていました。

有料やんけ・・・

透過ぐらいならpythonで書いてしまおうと、スクリプトを書いてみました。

続きを読む

なにかと批判されがちな「ゆとり世代」からの反論

f:id:s-uotani-zetakansu:20171206132030j:plain

こんにちは、エンジニアのさもです。

先日、あるツイートに返信しました。何人かの方がいいねしてくださったので、少しだけ僕の思いを「ゆとり世代を批判する世代(40代50代60代)への反論」という形でもう少し詳しく書きたいと思います。

続きを読む

Rubyの3つドットで指定する範囲([1...4]等)はいつ使うか

こんにちは、エンジニアのさもです。

普段Rubyを使っている方や、Rubyを使い始めた方もuser_list[0..3]のように配列に対して範囲を指定できることはご存知かと思います。

一方、user_list[0...3]のように3つドットを使うとindexが0から2(3は含まない)の範囲の要素をとってくることができます。

これ、いつ使うねんとずっと思っていたのですが、使うと記述が簡単になる場面に遭遇したので紹介します。

続きを読む

私が育休を取ると決めた理由と育休の制度まとめ

f:id:s-uotani-zetakansu:20171203010049j:plain

こんにちは、エンジニアのさもです。(↑サンタ服をきた長男1歳半です。美白)

実は、今妻が妊娠5か月です。いわゆる安定期に突入した時期です。

予定日は2018年の春です。妻の出産した日から(夫である私が)育休を取るの予定なのですが、なぜ育休を取ることに決めたのかを書いてみたいと思います。

また、育休について知らない方の為に、ざっくりと育休という制度についてご説明します。

(注)ざっくりなので、あらゆるパターンの取得方法は説明しません。あくまで基本的な私が取得を考えているパターンです。

続きを読む

Rubyでどう書く?配列からターゲットの周囲5件を抜き出す

こんにちは、エンジニアのさもです。

仕事で次のような要件のメソッドを実装しました。

  • 配列[1,2,3,4,5,6,7,8,9]がある。
  • この配列から、指定した数字(実際は検索結果の配列に対して、一つのオブジェクトを指定)を含む周囲5件を抜き出した配列を作る

(具体例)

  • 1を指定した場合は、[1,2,3,4,5]
  • 2を指定した場合は、[1,2,3,4,5]
  • 5を指定した場合は、[3,4,5,6,7]
  • 8を指定した場合は、[5,6,7,8,9]
  • 9を指定した場合は、[5,6,7,8,9]

今回は、実装したメソッドの紹介と、Minitestでのテストコードを紹介します。

テスト駆動ではなかったので、後で完成したテストコードを載せています。

続きを読む