プログラミングガール

Developing a better me

サービス開発|KPTアプリをリリースしたよ

このあいだ、「KPTer」というKPTiOSアプリをリリースしました!
業務中にKPTをしている方も多いのではないかと思います。ぜひ一度つかってみてください(^^)

アプリはこちらFacebookページはこちら

LPも作ってみました♡ kpter.net

コンセプト

振り返り手法KPTをもちいて、プロジェクトメンバー、友だち、恋人、夫婦などで普段いえないことを共有できるシンプルかつ強力な新しいコミュニケーションツール
ありがとうのきもちを、Keepとして。
むしゃくしゃしたことを、Problemとして。
そして、そこからよりよい明日につながるためのTryを考えていきましょう!

f:id:hana_ori:20160724165759p:plain:w300 f:id:hana_ori:20160724165557p:plain:w300 f:id:hana_ori:20160724165623p:plain:w300 f:id:hana_ori:20160724165649p:plain:w300

なぜ作ろうと思い至ったか

1.新しい働き方が増える時代に置いて、効果的にコミュニケーションがとれる場をつくりたかった
DMM内でもリモートワークのお話が出たりします。リモートワークを採用する会社もこれから増えてくるのではないでしょうか。
そういった働き方の多様化の時代に、アナログな方法のみでKPTを進めていくと臨場感の喪失や手間などからコミュニケーションに支障がでてしまうことがあるのではないかと考えました。
KPTerが仕事環境においてよりみなさんが業務をより円滑に協力して進められるように手助けできればと思います。

2.KPTをより身近なものにしたかった
チーム内でKPTをするようになってから、プライベートでもKPTを行うようになりました。
そうしたなかで気づいたのは、普段自分がいかに相手に気持ちを伝えきれていなかったかということです。
ありがとうの感謝のきもちも、なにがどう悲しかったかも特別なシーンや気合を入れてからしか伝えてこなかったなと自分を振り返って思いました。
仕事場でだけでなく、KPTをもっと身近な存在にすることで家族や恋人、友人とのこころの距離を縮められたら、と考えました。

3.Swiftさわってみたかってん・・・!
It is because we are engineers.
エンジニアの性なのでしょうか、新しい言語とかさわってみたくなっちゃったんです。
サーバー代がかからないというのもたいへん魅力的でした( ´ ▽ ` )

追加予定機能

まだまだ機能たりてないんです・・・(´-ι_-`)
コミュニケーションを取るにはまだまだ足りてない機能がてんこ盛りなので、Ph2.0以降で実装できればと思っています。

  • Web ver
  • 同期機能
  • 共有機能
  • 未完了Try一覧 とかとか。

使ってみてくれたひとの中で、もっとこんな機能ほしーい!っていうのがあったら教えてほしいなぁ(´∀`)

CentOS|SSHログイン時にアスキーアートを表示する

なにがしたい

sshでサーバにログインした時に、AAを表示することでどのサーバにログインしたかをわかりやすくしたい。

HOW TO

1.AAを作成

Text to ASCII Art Generator (TAAG)

2./etc/motdに上記で作成したAAを記述

______              _            _   _             
| ___ \            | |          | | (_)            
| |_/ / __ ___   __| |_   _  ___| |_ _  ___  _ __  
|  __/ '__/ _ \ / _` | | | |/ __| __| |/ _ \| '_ \ 
| |  | | | (_) | (_| | |_| | (__| |_| | (_) | | | |
\_|  |_|  \___/ \__,_|\__,_|\___|\__|_|\___/|_| |_|
                                                   
Production 本番                                                   

3.試してみる

$ ssh production

Last login: Wed Jul 13 15:41:47 2016 from 172.16.100.15
______              _            _   _             
| ___ \            | |          | | (_)            
| |_/ / __ ___   __| |_   _  ___| |_ _  ___  _ __  
|  __/ '__/ _ \ / _` | | | |/ __| __| |/ _ \| '_ \ 
| |  | | | (_) | (_| | |_| | (__| |_| | (_) | | | |
\_|  |_|  \___/ \__,_|\__,_|\___|\__|_|\___/|_| |_|
                                                   
Production 本番 

イエイ!


くれぐれも「STGと間違って本番にデプロイしちゃった☆」みたいなことがないようにしましょう!

Rails|Emailのバリデーション

背景

はじめはemail_validatorを使用していたのですが、
「hogehoge@hoge.com」のように入力された時、うまくバリデーションがかからなく・・・。
あらためて調べてみると、以下の場合はうまくバリデーションがかかっていないようでした。

  • 先頭に半角/全角スペース許容してる
  • 全角を許容してる

うーむ、困った。


解決方法

1.email_validatorに代わってvalidates_email_format_ofを使用する

github.com

  • @前は64文字以内であること
  • 全角は弾く
  • 先頭/email中/末尾の全角スペースは弾く
  • email中の半角スペースは弾く

上記ちゃんとチェックしてくれているようです。


2.先頭/末尾の半角スペースを弾く
バリデーションをかける前に、不要なスペースを排除します。
Stringクラスのstripは前後の空白文字を削除してくれる強いやつ。

class User < ActiveRecord::Base

    before_validation :remove_space

    # バリデーション前に前後の空白文字を削除
    def remove_space
        self.email.strip!
    end

    # validations
    validates_presence_of :email, message: "入力必須です。"
    validates_length_of :email, in: 0..100, message: "100文字以内で入力ください。", if: :email?
    validates :email, :email_format => {:message => '正しいメールアドレスの形式で入力ください。'}

end

iOS開発|Images can't contain alpha channels or transparencies

iTune Connectの画像登録での一コマ

Images can't contain alpha channels or transparencies

↑ iTune Connectの画像登録ででた注意文言

「App Preview and Screenshots」の画像をリサイズして登録しようとしたときに発生。

原因

画像をリサイズした際に、縦横比が変わってしまったせいで発生したもよう。
比率を変えた際に埋めた部分が透過されているよと怒られているようです(詳しく調べてないのでおそらく)。

解決策

PNG形式で保存したため起こった現象なので、JPGで保存し直すことで解決しました。

Rails|レイアウトを新規で作成する

なにがしたい

Viewを表示する際に、「layout.html.erb」とは別のレイアウトを作成して適応したい。

シチュエーション

hana-ori.hatenablog.com

上記の方法でerror画面をカスタマイズすると、Viewに対応するコントローラーがないため、「Template Inheritance※」ができない。
そのため、error画面を出す際、メタ情報や読み込むCSSの内容が変わるためレイアウトを別に用意したい。

※ 例)errors配下に_meta.html.erbを切り、application.html.erb内で以下のように呼び出す。

<%= render partial: 'meta' %>

HOW TO

1.view/layout/error_layout.html.erbを作成
2.application.controllerのエラーページをレンダリングしている箇所で、error_layout.html.erbを指定する

def render_404(exception = nil)
    if exception
      logger.info "Rendering 404 with exception: #{exception.message}"
    end
    render template: "errors/error_404", status: 404, layout: 'application'
    render template: "errors/error_404", status: 404, layout: "error_layout" #error_layout.html.erbを指定する
  end

  def render_500(exception = nil)
    if exception
      logger.info "Rendering 500 with exception: #{exception.message}"
    end
    render template: "errors/error_50x", status: 500, layout: 'application'
    render template: "errors/error_50x", status: 500, layout: "error_layout" #error_layout.html.erbを指定する
  end

Rails|エラーページのカスタマイズ

なにがしたい

エラーページをいい感じにカスタマイズしたい。

HOW TO

1. view配下にerrorsディレクトリを切り、「error_404.html.erb」と「500.html.erb」を作成 2. application_controller.rbに下記を記述

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception
  rescue_from ActionController::RoutingError, with: :render_404
  rescue_from Exception, with: :render_500

  # 404ページをレンダリング
  def render_404(exception = nil)
    if exception
      logger.info "Rendering 404 with exception: #{exception.message}"
    end
    render template: "errors/error_404", status: 404, layout: 'application'
  end

  # 500ページをレンダリング
  def render_500(exception = nil)
    if exception
      logger.info "Rendering 500 with exception: #{exception.message}"
    end
    render template: "errors/error_50x", status: 500, layout: 'application'
  end
end

3. route.rbの最後に下記を記述 その上に書かれているパス以外のリクエストが来たら、404ページに遷移させます。

 get '*path', to: 'application#render_404'

Vagrant|There are stopped jobs.

困ったこと

vagrantからログアウトしようと思った際、下記の文言がでて、ログアウトできなくなった。

There are stopped jobs.

解決方法

どうやら、vagrantから抜け出す前に、中断中のプロセスをKillする必要があるらしい。

$ ps aux|grep {{ ログイン名 }}
…
vagrant   5694  0.0 24.1 922264 246000 pts/1   Tl   11:35   0:10 /home/vagrant/.rbenv/versions/2.3.0/bin/ruby bin/rails s -b 0.0.0.0
$ kill -9 5694