知らない世界で面白かった。
www.tbsradio.jp
明日、「第64回全国高等学校演劇大会最優秀作品▽四国ブロック代表 香川県立丸亀高等学校『フートボールの時間』(作/豊嶋了子と丸高演劇部)」がEテレで放映されるとのこと。
www4.nhk.or.jp
ドキュメント「青春舞台2018」も再放送されるとのこと。
www4.nhk.or.jp
知らない世界で面白かった。
www.tbsradio.jp
明日、「第64回全国高等学校演劇大会最優秀作品▽四国ブロック代表 香川県立丸亀高等学校『フートボールの時間』(作/豊嶋了子と丸高演劇部)」がEテレで放映されるとのこと。
www4.nhk.or.jp
ドキュメント「青春舞台2018」も再放送されるとのこと。
www4.nhk.or.jp
ネオ日本食案件
togetter.com
アト6月曜日コンサルタントのスーパーササダンゴマシンさんが食べたこれって、上のイタリアンってやつじゃ。新潟B級グルメっぽいのが面白い。カリーナの蓋然性もたかいみたい(まき鯛車商店街 帰ってきたカリーナ”スペシャルサイト)。どちらにせよ新潟のローカルフード。
DDT後楽園ホール2daysの初日が終わった。とにかく暑い。そして朝5時起きだったので眠い。そしてお腹が減った。NSTのビアガーデンで昨日食べたバスセンターのカレーを焼きそばにかけたやつがもう一度食べたいです。 pic.twitter.com/BDTKQkI05e
— スーパー・ササダンゴ・マシン (@abulasumasi) August 25, 2018
食べ物ネタは大好き。
大変、勉強になった。
togetter.com
途中に出てくる用語でわからなかったもののメモ
「OP53b」
jprs.jp
「通信の秘密」について、IPアドレスとポート番号をチェックしてはいけないのならばルータ、特にNATやNATPは成り立たないのではないか?という疑問。
にゃーん。
バックアップについてのアンケート、最終結果出ました。バックアップ取らずに論文書いている人が23%という高い割合いらっしゃるとのこと😨。論文指導なさっている先生方、よろしくお願いいたしますね…https://t.co/t12zmuLCmG
— 結城浩 (@hyuki) August 24, 2018
バックアップは次のトラブルから対象データを守るために行う行為です。
上記のトラブルから対象データを守るために、バックアップは以下の条件を満たすように実施しないといけません。
バックアップは継続的に行えなければ意味がありません。このため、自分の情報技術に対する知識や技術に応じて、負担のない方法でバックアップをとりましょう。
バックアップ対象のファイルがそれほど多くない場合(たとえば、バックアップ対象のファイルがMS Wordファイル1つのときなど)は、毎日の作業終了後にgmailなどのWebメールサービスにファイルを送信するのが、簡単、かつ、効果的なバックアップ方法です。メールで送信するときに簡単なメモ(今日はどこを執筆したのか、修正したのか。明日は何をすべきなのか)を一緒にかけばより効果的です。
準備はGoogleアカウントを作成するだけです(もし、持っていなければ)
support.google.com
バックアップ手順は以下のとおり
バックアップ対象のファイルが多く、それなりの容量がある場合(たとえばファイルサイズが10Mbyte以上)はオンラインストレージを用いたバックアップが比較的簡単です。しかし、作業ミスに弱い欠点があります。
オンラインストレージを使ってバックアップを取る際にはWindowsの「ファイルの圧縮」と「圧縮ファイルの展開」機能を利用して、バックアップ対象のファイルを1つのファイルにまとめます。また、その際に圧縮ファイルのファイル名に日付を付け加え、過去のデータにアクセスできるようにします。
以下の手順でバックアップを行います。
大学でOffice 365を契約している場合はOneDriveを使うのが簡単だと思います。
Googleドライブは15GBまで無料とのことです。
Dropboxは無料で使える容量が2GBなのであまりお勧めできません。
iCloudも一つの選択肢です
オンラインストレージを使うときのデメリットは作業ミスに弱いという点です。一方で、作業ミスへの対応を考えたデータ管理のソフトウェアとしてバージョン管理システムがあります。オンラインストレージ+バージョン管理システムは、難易度が高いですが大変効果的なバックアップ方法です。
バージョン管理システムとしてはGit、Gitを簡単に扱うためのツールとしてTortoiseGitを利用する。実施方法は説明が長くなるので以下のサイトをどうぞ。
どうせ、Gitでバックアップをとるならば、オンラインストレージにGit専用のものを使うとより便利になります。利点は上述のオンラインストレージ+バージョン管理システムと同じ。より良い点は作業状況管理についてもGitHubを用いて行えるという点です。実施方法は以下を参照ください。
Mac OSの利用者の場合はタイムマシンという機能を使ってバックアップを取るのが大変簡単だと思います。ただし、タイムマシンは作業ミスには対応しますが、地理的な分散を行う場合はiCloudなどを使う必要があります。
そろそろ、卒業論文や修士論文の季節が本格的に始まるのでまとめてみました。みなさん、よい論文執筆ライフを!!
Ruby on Railsでよく使われている認証周りのgemライブラリーであるdeviseをつかってログイン機能を用いる。 deviseの標準ではemailに基づいてユーザを区別しているが、usernameでユーザを区別できるようにする。
% lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.1 LTS Release: 18.04 Codename: bionic % ruby -v ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux] % gem -v 2.7.7 % rails -v Rails 5.2.1
% rails new prac_devise --skip-bundle % cd prac_devise % cp -p Gemfile Gemfile.org % vi Gemfile
Gemfileの中身を以下のように変更する。
% diff Gemfile.org Gemfile 17c17 < # gem 'mini_racer', platforms: :ruby --- > gem 'mini_racer', platforms: :ruby 62c62 < gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] --- > #gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 63a64 > gem 'devise'
bundleを実行する。
% bundle install --path vendor/bundle
今回はHomeコントローラーを作成し、indexにアクセスする際にはログインなし、showにアクセスする場合はログインありに設定する。このためにHomeコントローラーを作成する。
% rails g controller Home index show
このアプリケーションのトップページをHome#indexとする。
% vi config/routes.rb
中身に以下を加える。
root to: "home#index"
このアプリケーションでdeviseが使えるように設定する。
% rails g devise:install
今回はUserモデルを認証対象のモデルとする。
% rails g devise User
devise用のviewを app/views/devise 以下にコピーする。
% rails g devise:views % ls app/views/devise/ confirmations/ passwords/ sessions/ unlocks/ mailer/ registrations/ shared/
config/environments/development.rb に以下を加える。
# mailer setting config.action_mailer.default_url_options = {host: 'localhost', port: 3000}
app/views/layouts/application.html.erbに以下を加える。
〜省略〜 <body> <p class="notice"><%= notice %></p> #この行を追加 <p class="alert"><%= alert %></p> #この行を追加 <%= yield %> </body> 〜省略〜
app/controllers/home_controller.rb にフィルターをかける。
class HomeController < ApplicationController before_action :authenticate_user!, only: :show #この行を追加 def index end 〜省略〜
% rails db:migrate % rails s (終了させるときは Ctrl + c)
まず、usersテーブルにusernameを追加する。
% rails g migration add_username_to_users username:string
db/migrate/xxxxxxxxx_add_username_to_users.rb を編集し、usernameをインデックスとして使えるように以下を追加する。
class AddUsernameToUsers < ActiveRecord::Migration[5.2] def change add_column :users, :username, :string add_index :users, :username, unique: true #この行を追加 end end
上記の変更を反映させる。
% rails db:migrate
識別キーをusernameに変更する。 config/initializers/devise.rbに以下の行を加える。
〜 省略 〜 # You can also supply a hash where the value is a boolean determining whether # or not authentication should be aborted when the value is not present. # config.authentication_keys = [:email] config.authentication_keys = [:username] #この行を追加 〜 省略 〜
ログインページ(app/views/devise/sessions/new.html.erb)の編集。
変更前 <%= f.label :email %><br /> <%= f.email_field :email, autofocus: true, autocomplete: "email" %> 変更後 <%= f.label :username %><br /> <%= f.email_field :username, autofocus: true %>
ユーザ登録ページ(app/views/devise/registrations/new.html.erb) の編集。
変更前 <%= f.label :email %><br /> <%= f.email_field :email, autofocus: true, autocomplete: "email" %> 変更後 <%= f.label :username %><br /> <%= f.text_field :username, autofocus: true %>
情報変更のページ(app/views/devise/registrations/edit.html.erb)の編集。
変更前 <%= f.label :email %><br /> <%= f.email_field :email, autofocus: true, autocomplete: "email" %> 変更後 <%= f.label :username %><br /> <%= f.text_field :username, autofocus: true %>
app/models/user.rb について以下を追加する。
class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable # この行以下を追加する # usernameの制約 validates :username, uniqueness: {case_sensitive: :false}, length: {minimum: 4, maximum: 20}, format: {with: /\A[a-z0-9]+\z/, message: "ユーザ名は半角英数字です"} # emailを識別キーとして使わない場合の処理 def email_required? false end def email_changed? false end def will_save_changed_to_email? false end # 追加ここまで end
Ruby on Rails4よりStrong Parameterという仕組みが導入されている。これの設定が必要。 app/controllers/application_controller.rb に以下を加える。
# deviceのコントローラーのときに、下記のメソッドを呼ぶ before_action :configure_permitted_parameters, if: :devise_controller? protected # usernameを追加する 参考:https://github.com/plataformatec/devise#strong-parameters def configure_permitted_parameters devise_parameter_sanitizer.permit :sign_up, keys: [:usrname] devise_parameter_sanitizer.permit :account_update, keys: [:username] end
% rails db:migrate % rails s (終了させるときは Ctrl + c)