sendgrid-rubyでカテゴリを設定する

https://sendgrid.com/docs/API_Reference/SMTP_API/categories.htmlが、https://github.com/sendgrid/sendgrid-rubyというgemライブラリで実際にカテゴリを設定する方法がよく分からなかった。

中のコードを読んだりググったりしてるうちに、以下のやり方で送信できることが確認できたのでメモ

client = SendGrid::Client.new(api_key: '0ACkvN4O3jUPEM8HzUAKdvQ7PT1NlGXlIX1jS0x7Gc1wo2ggx07Pd1tllkzUI4mayeRPP')
template = SendGrid::Template.new('aabbccdd-aaaa-bbbb-cccc-ddddeeeeffff')

recipient = SendGrid::Recipient.new('some-user@example.com')
recipients = [recipient]


# ここでX-SMTPAPIヘッダーに相当するデータを構築する
header = Smtpapi::Header.new
header.add_category('My Category No123')

mail_defaults = {
  from: 'noreply@example.com',
  from_name: 'Official',
}
mailer = SendGrid::TemplateMailer.new(client, template, recipients)
mailer.mail(mail_defaults)

続きを読む

akiroom.comのトップページのデザインを変更した

ホントは前々から気づいていたんだけど、 akiroom.com のトップページの背景画像がちぎれていたり、Thunderbolt DisplayやRetina Displayで見ると醜い状態になっていたのがいよいよ気になるようになった。

新しいデザイン置き換えたんだけど、だいたい1時間ぐらいでアップデートできたのでよかった

  • Githubでプライベートリポジトリを作成: https://github.com/akiroom/akiroom-com-top (プライベートなので404になります)
  • middlemanを使って、HAML, SCSS+Compassで書いたものをビルドした
  • Bootstrapは使わず、media queryは手書き
  • 画像や色はあまり選ぶのが面倒なので使わず

1時間でそれっぽいものができるのは、本当に良い時代ですね。

React v15のUnknown prop warningにはlodash.omitが便利

Reactをv0.14.xからv15.x.x系にアップデートしたところ、以下のようなWarningが多発するようになった。

Warning: Unknown prop hogefuga on <button> tag. Remove this prop from the element. For details, see https://fb.me/react-unknown-prop for details.

https://gyazo.com/0fe6be4ea94d52fd8f14dc9f516ac905

これは、今までは無視されていた未定義のpropを渡してはいけないという仕様が追加されたために発生している。

Unknown Prop Warning | React

これを解消するには、lodashの_.omitを使うと便利。omitは、オブジェクトから指定したキーを除外した結果を返してくれる。

https://lodash.com/docs#omit

omitを使えば、こんな感じで書ける:

import {omit} from 'lodash'

render () {
  const buttonProps = omit(this.props, ['hogefuga'])
  return <button {...props} />
}

ちなみに以下のように分割代入に ... を使って指定されてない残りを取り出す方法はES7からしか使えない。
(参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment )

({hogefuga, ...buttonProps} = this.props)

ReactBootstrapでOverlayTriggerを使ったTooltipをフォーカスを得た時に隠す

React + react-bootstrapの時、ホバーしていたツールチップを、クリックしたら消す、みたいな処理を書きたい時のメモ。ポイントは、OverlayTriggerのtriggerを、[‘hover’, ‘focus’]とnullで切り替えて、refsを使って直接hide()を呼び出すこと。ちなみにmanuallyに呼び出したい時はthis.refs.tooltipTrigger.show()とかでも呼べる。

onFocus (e) {
  this.setState({
    editing: true
  }, () => {
    this.refs.tooltipTrigger.hide()
  })
}

onBlur (e) {
  this.setState({
    editing: false
  })
}
const tooltip = (
  <Tooltip id='tooltip'>
    ここをクリックして編集
  </Tooltip>
)

<OverlayTrigger
  ref='tooltipTrigger'
  overlay={tooltip}
  trigger={this.state.editing ? null : ['hover', 'focus']}>
  <FormControl
    componentClass='input'
    onFocus={this.onFocus}
    onBlur={this.onBlur}
    />
</OverlayTrigger>

Color Oracle: 超簡単に使える色覚シミュレータ

https://gyazo.com/a032b78edd46b5b066d725c3ed312756

Color OracleというWindows/OSX/Linuxで動作する色覚シミュレータの紹介。

色盲と言われる色覚を持つ人がいる。日本眼科学会によると日本人男性の20人に1人が該当するらしい。日本眼科学会の表現では色覚異常なので、こちらが学術的な名称なのかもしれない。色弱という表現もある。

Webサービスやアプリケーションを開発していると、この色覚をシミュレートしたいことがある。なにせ男性だけでも5%が対象なので、下手なブラウザやOSよりも影響が大きい。

Color Oracleはそんな色覚をシミュレートできるソフト。サイトのデザインは古いけれど、Mac OS X Yosemite 10.10.5で動作することを確認できた。

http://colororacle.org

色覚シミュレータは色々あるけれど、ブラウザに依存せずにすぐにどんな画面でも色覚シミュレートできるのでとても便利。

Paypalのメールアドレスが更新できない

https://gyazo.com/8070752afcc46abf01750a3038c5544e

Paypalのメールアドレスを変更しようとしたら、以下のようなエラーが表示された。

申し訳ございません。問題が発生しました。問題が解決しない場合は、カスタマーサービスにお問い合わせください。

カスタマーサポートに問い合わせたところ、2012年の法令改正でアカウント情報の変更にロックがかかっているらしく、2012年以前に作ったアカウントの人は身分証をPaypalに提出しなければならないようだった。

電話で問い合わせたのだけれど、通常1~2週間かかる確認が「今日か明日ぐらいに完了します」とのことだったので、すぐ直りそうでよかった。

High-Fidelity Wireframe: 操作可能なワイヤフレーム

Sketchとか使って操作可能なワイヤフレームをつくることがあるのだけれど、操作可能なワイヤフレームのことを英語で「High-Fidelity Wireframe」と言うらしい。

http://uxmovement.com/wireframes/4-things-no-one-told-me-about-high-fidelity-wireframes/