インターフェース本を購入
たまたま図書館で手に取ったこの本が楽しかったのでamazonで購入
失敗から学ぶユーザインタフェース 世界はBADUI(バッド・ユーアイ)であふれている
- 作者: 中村聡史
- 出版社/メーカー: 技術評論社
- 発売日: 2015/01/21
- メディア: 大型本
- この商品を含むブログ (2件) を見る
VOW的なノリで街のおかしなUIを紹介している。「何故悪いのか」は評論しているが「どうしたら良いか」は解説していないので答えを求める人にはオススメしない。
併せてamazonでオススメされた以下も衝動買い(^_^;)
誰のためのデザイン? 増補・改訂版 ―認知科学者のデザイン原論
- 作者: D. A.ノーマン,岡本明,安村通晃,伊賀聡一郎,野島久雄
- 出版社/メーカー: 新曜社
- 発売日: 2015/04/23
- メディア: 単行本
- この商品を含むブログ (9件) を見る
インタフェースデザインの心理学 ―ウェブやアプリに新たな視点をもたらす100の指針
- 作者: Susan Weinschenk,武舎広幸,武舎るみ,阿部和也
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/14
- メディア: 大型本
- 購入: 36人 クリック: 751回
- この商品を含むブログ (31件) を見る
続・インタフェースデザインの心理学 ─ウェブやアプリに新たな視点をもたらす+100の指針
- 作者: Susan Weinschenk,武舎広幸,武舎るみ,阿部和也
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/08/05
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
railsでMTAをG Suite SMTPに
普通のGmailだと、fromアドレスがどうしてもgmailのリレー先のアカウントになってしまったので。
まずはじめにG Suiteの管理者アカウントが必要。管理者アカウントで SMTP リレー: Gmail 以外の送信メールを Google 経由にする - G Suite 管理者 ヘルプ のサイトの手順を済ませる。 自分の環境はherokuで固定IPがない状態だったので、
- TLS
- 任意のアドレス
に設定した。
rails側の設定は、config/environments/production.rbに
config.action_mailer.smtp_settings = { :enable_starttls_auto => true, :address => 'smtp-relay.gmail.com', :port => '587', :domain => 'サイトのドメイン', :authentication => 'plain', :user_name => "管理者のemal", #gmail.comドメインでなくてよい :password => "管理者のパスワード" }
としておけば良いが、認証のユーザはどうやらG Suite管理者でなくてはならない模様。これで一旦は接続してリレーが開始されるが、googleから「重大なセキュリティ通知:ログインをブロックしました」と管理者宛てに通知がくることがある。認証が急に弾かれるようなことがあったらこれを疑おう。
この場合は、メール内のボタンを押下してブロックを解除し、2段階認証のアプリパスワードを
/environments/production.rbに
:password => "アプリパスワード"
と記述すればよい。または、安全性の低いアプリからの接続を許可すると解除され再度リレーの認証が開始される
古いbrewが入ったmacにrbenvを入れる
OSアップデート済みの旧macにrbenvを入れようとすると以下のエラーが。
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require':/usr/local/Library/Homebrew/download_strategy.rb:88: invalid multibyte escape: /^\037\213/ (SyntaxError)
どうやらbrewはrubyの1.8で動いているがOSアップデートでrubyのバージョンが2.0にアップデートされた為、バージョン不一致のエラーになっている模様。
brewをアップデートするほかないので、
$ cd /usr/local/Library/Homebrew/
$ sudo git reset --hard origin/master
$ sudo git pull origin master
$ sudo chown root:wheel /usr/local
$ brew update
で、rbenvを入れてみようとすると、、、
$ brew install rbenv ruby-build
Error: /usr/local/opt/autoconf not present or broken
Please reinstall autoconf. Sorry :(
autoconfがおかしい的なことを言われたので、
$ brew unlink autoconf && brew link autoconf
これでrbenvが入る。
$ brew install rbenv ruby-build
rails DBのトランザクション
ActiveRecord::Base.transaction do
〜end
の間に記述する
ActiveRecord::Base.transaction do
if !User.create( args )
#失敗時の処理
end
if !User.category.create( args )
#失敗時の処理
end
end
rails勉強してます3
よくあるファイルアクセス権限系の話しでアップロードされたpdfをDB保存 & embedタグでDBに保存したpdfを表示
migration
$ rails g model pdf name:string data:binary
$ rails db:migrate
controller
#html表示
def template
@pdf = Pdf.new
end
#DB保存したバイナリを返す
def show
@pdf = Pdf.last
if @pdf.nil?
send_data(@pdf.data, :disposition => "inline", :type => "application/pdf")
end
end
#バイナリデータの保存
def create
@pdf.name = params[:pdf][:data].original_filename
@pdf.data = params[:pdf][:data].read
@pdf.save
render 'template'
end
view
<embed src="<%= show_path %>" width="425" height="400"></embed>
<%= form_for(@pdf, url:create_path, method: :post) do |f| %>
<%= f.file_field :data %>
<%= f.submit "画像を投稿する" %>
<% end %>
validateはまだ(^_^;)
rails勉強してます2
はまったりしながらだけど。
objectの情報をログにdump
# plain
logger.debug object.inspect
# yaml
logger.debug object.to_yaml
FKのnilを許可
belongs_to :tablename, optional: true
レコード削除時にリレーションテーブルも削除する
has_many :tablename, dependent: :destroy
リモートサーバにある画像ファイルをCarrierWaveで保存
mount_uploader :columnname, ExampleUploader
# カラム名がimage_urlとかだとremote_image_url_url になる
model.remote_columnname_url = "http://example.org/xxxx.png"
model.save
多対多のモデル表現
has_and_belongs_to_manyを使うと楽
中間テーブルの作成
class CreateGroupsUsers < ActiveRecord::Migration
def change
create_table :groups_users, id: false do |t|
t.references :group, index: true, null: false
t.references :user, index: true, null: false
end
end
end
中間テーブルのidはあってもなくても良い
class User < ActiveRecord::Base
has_and_belongs_to_many :groups
end
class Group < ActiveRecord::Base
has_and_belongs_to_many :users
end
中間テーブルへの登録は <<
演算子を使う
user = User.find( 1 )
group = Group.find(1)
user.groups << group
rails勉強してます
rails勉強してます
このあたりを再学習
- debugger
- コールバックメソッド
- validationのコンテキスト別呼び出し
- S3へのファイル保存
- 多対多のリレーション定義
- テスト
ちなみにcloud9 + EC2のt2.nanoだとメモリが足らなくて途中からテストが走らなくなります(^_^;)