Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

まえがき 最近、Rails5でActionCable + Vue1を使ってSlackっぽい感じのチャット画面を作っているのですが… 「所属ルーム(Slackのチャンネルに相当)」と「ルーム内のメッセージ」を2ペインで表示する 「所属ルーム」と「メッセージ」のコンポーネントはそれぞれ独立したVueファイルに記述されている という状況で 新規チャットメッセージが配信されたときに各コンポーネントでそれぞれ独立した処理を行いたい 例えば… 「メッセージ」ペインでは配信されたメッセージを末尾に追加する 「所属ルーム」ペインではLINEみたいに新規メッセージが来たルームを一番上に持っていく etc... 上記を実現する必要がありました。2 そんな時にタイトルの件を行ったら良い感じに出来たと思いましたので共有します。 おことわり 各コンポーネント間のイベントの動作順序は問わない前提です 例えば「メッセー
module ApplicationCable class Connection < ActionCable::Connection::Base identified_by :current_session_user def connect self.current_session_user = find_session_user end protected def find_session_user session_user = env['warden'].user(scope: :operator) return reject_unauthorized_connection unless session_user session_user end end end
require "json" def reflect(x) case x when 0+1i; 1+0i when 0-1i; -1+0i when 1+0i; 0+1i when -1+0i; 0-1i end end def solve(map) you = Complex(*map.index("Y").divmod(5+1)) # +1 は「/」の分 light = [you, -1+0i] # 位置と方向のペア visited = [] (5*5*2).times do # 高々 5×5×2 しか進まない visited << light[0] newpos = light[0]+light[1] break unless (0...5)===newpos.real && (0...5)===newpos.imag cell = map[newpos.real*(5+1)+new
これは何? Railsを使って開発をしている人のほとんどが、 おそらく何かしらの認証機能を提供していると思いますが、 その認証機能って初心者の人からすると非常にややこしい。 確かに、Railsが色々やり易くしてくれてるのはわかるけれども、 逆にブラックボックスすぎて全然意味わからんし!みたいなところもあるかと思います。 また、認証はセキュリティを高めるために非常に重要なトピックでもあり、開発者で担当する人が深く理解しておくことが求められると思います。 ただ、認証はアプリやインフラから独立しているものではないため、認証だけよくても他の部分に脆弱性があれば危険であることは変わらない点に注意してください。 そもそも認証ってなんぞ 認証は、アクセス制限機能と思ってもらえれば大丈夫そうです。 アクセスを制御したい場合に認証機能を利用して閲覧ページなどに制限をかける感じです。 認証の種類 Railsで
このように、入力フォームに「javascript」を埋め込む事が、クロスサイトスクリプティング(XSS)の基本的な手法になる。 以上が基本的なXSSの手法になるが、具体的にどういった脅威があるのか。 脅威例 「セッションハイジャック」:訪問者のクッキー(cookie)情報を抜き取ること。結果不正ログインなどを招いてしまう。 例えばECサイトでセッションハイジャックが行われてしまうと、クレジットカード情報など重要な顧客情報が盗まれてしまい、不正に買い物などが行えてしまう。 また広告システムなどのBtoBシステムでも、不正に他社アカウントを乗っ取りログインすることで数値を書き換えるなどができてしまい、大きな被害が出てしまう。 対策(rails) XSSは、ユーザー入力がHTMLのタグやJavascriptとして認識されてしまうことで発生してしまうので、ここへの対策を打っていく事になる。 rai
Capistrano deploy時に発生する SocketError: getaddrinfo: Temporary failure in name resolutionのエラーの原因と解決方法 エラーメッセージの意味 ソケットエラー: 名前解決のために一時的に失敗しました。 エラー原因 ~/.ssh/know_hostsファイルに記載されているリモートサーバーへのsshによる接続情報が古くなっているために、ssh接続できずにエラーになってしまいます。 解決方法 ssh-keygen -R remote_host_name 上記コマンドにより古いssh接続情報を削除する。 (又は手動で vi ~/.ssh/known_hostsでファイルを開いて、対象のリモートサーバーのhostnameが書かれた該当の1行を削除する。) その後再度sshコマンドを実行する。 これにより、新規ssh接続と
YYPHP#51「みんなが好きなフレームワーク、どのくらいまじめにテストやってる?、PHPを使う上でこれは知っておくべきこと、1番詳しいPHPの技術書はどれですか?、Dockerのベストプラクティスについて聞きたい、アプリケーションのGitリポジトリとインフラのGitリポジトリをそろそろ一緒にしていいか?、PHPUnitのコードバレッジと実行速度の話、PHPとオブジェクト指向を知り尽くした人がこれから目指すさらなる高み」PHPRailsLaravelDockerYYPHP これは2018年09月07日に開催したPHPerイベントYYPHP#51のイベントレポートです。 YYPHPは一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。集まった人でコードリーディングをすることもあれば、一緒に開
三行で説明すると Bash on Windowsでgithub-pages(gemパッケージ)をインストールしようとしたら gemで原因不明のエラーに直面して Windowsのipv6設定を切ったら成功した 背景 無料で静的ページおよび**jekyllがホスティング可能なgithub pagesというサービスを使いたいと思い,作業を開始しました. メインマシンでWindows 10を使っていたこと,jekyllによるページ構築およびgithubとの接続のみならGUI処理が無いのでBash on windows (Windows Subsystem for Linux)**が使えるだろうということで,以下のことを実現しようと思い作業を開始しました. Bash on Windows上でjekyllのコンパイル(ローカル環境構築)を可能とし,github-pagesへのデプロイ(グローバル環境構
<%= form_tag(abc_search_path, method: "get") do %> <%= select_tag(:year, options_for_select([["2015","2015"],["2016","2016"],["2017","2017"],["2018","2018"]])) %> <%= submit_tag "絞り込み" %> <% end %> <% @abcs.each do |f| %> <p><%= f.name %></p> <p><%= f.year %></p> <p><%= f.title %></p> <% end %> ご覧の通り、options_for_selectで["2015","2015"]などとして絞っています。 前の"2015"は選択肢として表示される文字で、後ろの"2015"はvalueとして送られる値(だと思
RailsのActiveRecordで想定通りのSQLクエリが発行されずに辛い思いをしたので、SQLまわりのソースコードを読んでいたらArelというものに当たりました。 どうやらこれがrailsっぽくSQLクエリを書ける機能を提供しているようなので、勉強したことをまとめます。あまり細かいことは気にせずに、Arelを読み解く上での基礎を理解することが目標です。 ソースコードをちゃんと読んだ経験が少ないのでとんちんかんなこと書いてないか不安ですが、温かい目で見てもらえればと思います。 間違っている箇所あればコメント欄よりお願いします。 Arelとは ArelはActiveRecordの内側でwhereやselectのメソッドチェーンからSQLを生成する役割を担っています。またDBによってSQLの文法が若干違ったりしますが、その差異を吸収してくれるのもArelです。 rubygemsによるとAr
$ rake db:migrate rake aborted! NoMethodError: undefined method `last_comment' for #<Rake::Application:xxxxxxxxxx> /usr/local/rvm/gems/ruby-2.4.1/gems/rspec-core-3.1.7/lib/rspec/core/rake_task.rb:104:in `define' /usr/local/rvm/gems/ruby-2.4.1/gems/rspec-core-3.1.7/lib/rspec/core/rake_task.rb:80:in `initialize' /usr/local/rvm/gems/ruby-2.4.1/gems/rspec-rails-3.1.0/lib/rspec/rails/tasks/rspec.rake:1
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く