Works by

Ren's blog

@rennnosuke_rk 技術ブログです

2018-02-01から1ヶ月間の記事一覧

【git】git pushのデフォルト動作を追う

Git

git push 前回の記事では、引数やオプションのないgit pushの挙動を確認しました。 今回はgit pushに何も指定しない場合、どのような動作になるのかを検証しました。 git pushの挙動 試しにmasterブランチ上でファイルhoge1.txtに変更を加え、リモートリポジ…

【git】git pullのデフォルト動作を追う

Git

git pull ~git pull`リモートリポジトリ上ブランチの状態をローカルブランチに反映させる際、 自分はよく明示的にpullしたいブランチ名を指定しています。 例えばmasterブランチをpullするときは $ git push origin master のようにしています。 これはリモ…

【Docker】Dockerで簡単にpython開発環境を構築する

前回に引き続き、Dockerを使ってpython開発環境を構築してみました。 (といっても簡単なインタラクティブシェルですが) DockerHubのイメージをpull DockerHubがpython入りのイメージを配布していたので、これを使ってみようと思いました。 docker pullでイ…

【git】コンフリクトを片方だけ残す

Git

メモ。 gitでコンフリクトした際、以下のコマンドでマージ元、マージ先どちらかの変更のみを適用できる。 被マージブランチに合わせる $ git checkout --ours . マージブランチに合わせる $ git checkout --theirs .

DockerをMacで動かしてみる

Dockerとは Dockerはコンテナ型の仮想化ツールです。 仮想化ツールといえば、VMWareやVirtualboxなどの仮想化ソフトウェアを思い浮かべるかもしれませんが、 これらはOSごと環境を提供するハイパーバイザ型の仮想化技術と呼ばれます。 それに対し、コンテナ…

【Document】Gitbookでイカしたドキュメントを作る

Gitbookとは Gitbookは、Gitでの管理を意識したMarkdown記述式のドキュメンテーションツールです。 見栄えの良いドキュメントを簡単に作成・公開することができます。 GitbookではGitによってバージョン管理を行うことができます。 ソースコードのバージョン…

【AngularJS】ServiceにControllerのロジックを退避する

AngularJSではControllerにロジックを記述しますが、ロジックが複雑になるにつれControllerは肥大化してしまいます。 // Controller angular.module('MyApp') .controller('MyController', [ '$scope', '$location', '$http', '$q', function($scope, $locat…

【AngularJS】データモデルの変更を監視する$watch

$watchとは AngularJS(以下Angular)では、ビューとロジック間で一つのモデルを共有することができます。 モデルの変更をビューに動的に反映でき、逆にビューの変更をモデルに反映させることができます。 例えば、HTML上のプルダウンにng-modelでモデル名を…

【認証】OAuth2.0を簡単に理解する

OAuthとは OAuthとは、複数のWebサービス間で権限の認可を行うための標準的な枠組みです。 あるユーザがサイトA上でアカウント情報などのリソースを持っていて、ユーザが別のサイトB上でAのリソースを使いたいとします。OAuthによってサイトBが認可を受けれ…

【JavaScript】Strictモード

strict モードとは Strictモードとは、JavaScript上で文法的に誤りではないが開発者にとって落とし穴となるような コードを、エラーが発生するように変更するオプションです。 strictモードにするとうれしいこと JavaScript上でバグの温床となりやすい記述を…

【JavaScript】マテリアルデザインCSSフレームワーク「MUI」

MUI とは MUIは数あるマテリアルデザインCSSフレームワークの一つです。MUIを使うことで、Webページを簡単にマテリアルデザイン風にすることができます。 マテリアルデザインとは マテリアルデザインとは、2014年にGoogleが提唱した(*1)UI/UXの体系です。 マ…

認証におけるRemember Meの仕組み

Remember Me とは Remember Meはアカウント認証によくある機能の一つで、ユーザがサービスにログインしたときユーザの入力したアカウント情報をサーバ側で保持しておく機能です。 Remember Me を有効にすることで、ユーザはサービスへのアクセスを一旦終了し…

【python】コマンド一行でwebサーバの立ち上げ

pythonを使えば、一行でローカルのHTTPサーバを立ち上げ可能。 # ポート番号8000でwebサーバ立ち上げ $ python -m SimpleHTTPServer Serving HTTP on 0.0.0.0 port 8000 ... # 引数にポート番号を指定可能 $ python -m SimpleHTTPServer Serving HTTP on 0.0…

【DB】トランザクション分離レベル

DB

トランザクション分離レベルとは RDBMSがSQLによる問い合わせ・更新を行う時、トランザクション単位で処理を行う。 トランザクションとは処理の単位を表し、 トランザクションの結果はALL OR NOTHING、すなわち全て実行するか全く実行しないかの二択になる(…

【shell】joinコマンドでファイルを連結する

前回に引き続き、ファイル連結コマンドメモその2。 joinコマンド を使って、ファイルをRDBのテーブルのように結合する。 環境 OS : Mac OSX shell : zsh cmd # ファイルその1 $ cat user.csv 1,taro 2,jiro 3,saburo 4.siro # ファイルその2 $ cat job.csv …

【shell】pasteコマンドでファイルを水平結合する

ファイル水平結合方法メモ。 pasteコマンドを使用する。 環境 OS : Mac OSX shell : zsh cmd # ファイルその1 $ cat hoge.txt hoge fuga piyo # ファイルその2 $ cat foo.txt foo bar bow # 結合その1(デフォルトでタブ結合) $ paste hoge.txt foo.txt ho…

【AngularJS】Tableのセルをng-repeatで繰り返し表示する

AngularJSのng-repeatを用いることで、セル要素一つ分のhtml記述で Table内の全セルを描画することが可能。 test.js // strictモード "use strict"; // MainController angular.module('MyApp', []) .controller('MainController', ['$scope', function($sco…

【DB】1対1のリレーションにおける主キー/ 外部キー設定

DB

結論 DB設計の論理データモデル設計では、1対1のリレーションの主キー/外部キー関係は 基本的にインスタンス生成順で決定する。 主キーと外部キー DB設計において論理データモデル構築の際、1対多のリレーションを持つ一組のエンティティが E-R図中に出現し…

DB設計におけるデータモデル

DB

DB設計における「データモデル」とは データベース設計で扱われるデータモデルとは、 実世界におけるデータの集合を、DBMS上で利用可能な形に落とし込むためのモデルを指す。 データモデルの種類 データモデルといってもいきなり実装上のDBMSで利用可能な形…

関係データベースにおける正規形・正規化操作

DB

関係データベースにおける「正規化」とは 正規化とは、関係データベース(RDB)におけるテーブルを、より利用しやすい形に整形する操作を指す。 関係データベースとテーブル 関係データベース(RDB)ではデータの集合を、個々のデータを表す「行(レコード)…

RDBテーブルカラムの参照操作

DB

参照操作とは 関係データベース(RDB)上で複数のテーブルを生成する時、あるテーブルのカラムを別のテーブルのカラムへの参照という形で定義することができる。これを外部キーと呼ぶ。外部キーの値には、参照先に存在しない値を設定することは許されない。…

セッションに係る脆弱性とその対策② - セッションフィクセーション

本記事は前回の記事に続き、同じくセッションに関する脆弱性であるセッションフィクセーションにまとめる。 セッションフィクセーションとは セッションフィクセーションは、攻撃者が一旦サービスとのセッションを確立してセッションIDを取得した後、そのID…

セッションに係る脆弱性とその対策① - セッションハイジャック

前日の記事では、ユーザがHTTPリクエストにパラメータを乗っける代わりに、セッションを活用する記事を書いた。 セッションを利用することで、クライアントが任意のデータを送信し、それに対応するデータの取得を防止できる(なりすましを防げる)。 但し、…

ユーザ情報に紐づく情報はセッションIDをもとに取得すべき

ここ一ヶ月仕事でフロントエンドの開発業務に携わっており、その流れでサーバサイドもいじるようになった。 その際、クライアント・サーバ間の情報のやり取りについて職場の先輩に指摘していただいたので、メモ。 結論から述べると アカウント登録制のWebサ…