React - for文でUsing ‘ForInStatement’ is not allowedと怒られる

Reactで配列やオブジェクトをfor文で回そうとするとESLintにUsing 'ForInStatement' is not allowed.eslint(no-restricted-syntax)と怒られてしまします。 NG例: 配列をfor...inで回す const arr = [1, 2, 3, 4]; for (e in arr) { console.log(e); } // Usi…

React + Reduxで簡易掲示板

今回は、前回Reactで作った簡易掲示板をReduxでリプレイスします。 前回同様、↑のような簡易掲示板をReduxを使って作ります。 それでは、↓の手順にそって実装していきます。 必要なパッケージのインストールaction作成reducer作成store作成component作成 必…

Reactのみで簡易掲示板

Reactを用いて↓のような簡易掲示板を作ったのでメモ。 コンポーネントに分けず、Stateのみを用いたパターンと、コンポーネントにわけPropsを用いたパターンの2つを実装してみました。 実装 今回は値の追加にformは用いていません。handleInputChangeメソッド…

情報セキュリティ - CIAと3つの脅威

はじめに 今回は、情報セキュリティの定義や脅威についてまとめます。 情報セキュリティとは 情報セキュリティとは、情報の機密性、完全性、可用性を維持すること、とJIS Q 27002によって規定されています。 機密性 (Confidentiality) 情報へのアクセス許可…

React - propsで子コンポーネントに値を渡す

Reactで子コンポーネントに値を渡すコードメモ。 propsは親コンポーネントから子コンポーネントへ値を渡す時に使い、変更不可な値(イミュータブル)。 *対してstateはコンポーネント内の状態であり、変更可(ミュータブル)。 ↓は、AppコンポーネントからUser…

Metasploit - モジュールを実行するとwarning: URI.unescape is obsolete

「ハッキング・ラボのつくりかた」という書籍を読み進めているのですが、第4章の権限昇格のところで以下のような大量のwarningに遭遇しました。 msf5 exploit(windows/local/bypassuac_fodhelper) > exploit [] Started HTTPS reverse handler on https://1…

外部リンクtarget="_blank"の危険性 - Tabnabbing

はじめに 今回は、aタグにtarget="_blank"を指定することのリスクと対処法についてまとめます。 こういうやつ↓の危険性ですね。 <a href="hoge.html" target="_blank"></a> target="_blank"の危険性 target="_blank"は、リンク先のページを新しいウィンドウで開く指定をする属性ですが、リンク先とし…

JavaScript - sort()を非破壊的に使う

はじめに 今回はJavaScriptのsort()の副作用についてメモしていきます。 sort()の副作用 sort()は元の配列の順番を直接ソートします。破壊的メソッドというやつですね。 const months = ['March', 'Jan', 'Feb', 'Dec']; months.sort(); console.log(months)…

React - stateの値を同期的に更新

はじめに 今回はReactのstateについてメモ。setState()でstateの値を更新し、同期的に取得する方法を書いていきます。 結論 ↓のようにすると、同期的にstateの値を更新/取得することができます。 import React, { Component } from 'react'; class App exten…

React - static propTypesとReact.PropTypes

はじめに ReactでpropTypesを書いている時にstatic propTypes とReact.PropTypes は何が違うのか気になったので、調べたことをメモします。 ↓の何が違うのか、ということです。 // static propTypes class App extends React.Component { static propTypes =…

JavaScriptで関数型プログラミング - reduce()

はじめに 関数型プログラミングをJavaScriptで勉強中です。今回はreduce()の使い方についてメモします。 関数型プログラミングを学んでいるときに↓のようなコードを見かけました。この関数はどちらも、渡された配列要素の合計を返す関数です。 //reducerを使…

React - JSXの波括弧{}

JSXで出てくる波括弧の意味について調べたのでメモします。 JSX内で出てくる波括弧{}は、JavaScriptの値を取得したいときに使います。 なので例えば、 <Button> title="なみかっこ" color="blue" style={{ display: 'none' }} </Button> のstyleの値部分は、 内側の{}はオブジ…

Mac - .bash_profileの設定が再起動後無効になる

はじめに MacでツールをインストールしてPATHを通した後、Macを再起動するとPATHを通したはずのコマンドが使えなくなってました。その解決法メモ。 $ zsh: command not found: node 結論 早速結論ですが、指定しているログインシェルの設定ファイルに設定を…

JavaScript - 関数の巻き上げ

はじめに 次にようなコードを書いていてエラーが起きたので、今回は関数の巻き上げについてメモ。 func(); //=> Hello function funcExpression(); //=> Uncaught ReferenceError: Cannot access 'funcExpression' before initialization function func () {…

ReactのためのJavaScript - 論理演算子とショートサーキット評価

はじめに Reactを学ぶためのモダンなJavaScriptについてまとめます。今回は論理演算子とショートサーキット評価(短絡評価)について書いていきます。 論理演算子 論理演算は3つ種類があります。 論理積(AND) / 論理和( || ) / 否定(NOT)の3つです。それらを表…

ReactのためのJavaScript – 便利な書き方(分割代入/スプレッド記法)

はじめに Reactを学ぶためのモダンなJavaScriptについてまとめます。 今回はECMAScript2015(ES6)から導入された、分割代入やスプレッド記法などの配列/オブジェクトに関する便利な書き方についてまとめます。 まずは分割代入から。 分割代入 分割代入とは、…

ReactのためのJavaScript – クラス

はじめに Reactを学ぶためのモダンなJavaScriptについてまとめます。 今回はECMAScript2015(ES6)から導入されたクラスについて書いていきます。基本的に他言語におけるクラスと同じですが、クラスの作成方法やプロパティの定義の仕方が独自ですのでまとめて…

ReactのためのJavaScript – アロー関数とthis

はじめに Reactを学ぶためのモダンなJavaScriptについてまとめます。 今回はECMAScript2015(ES6)で導入されたアロー関数とそのthisの挙動についてまとめます。 アロー関数って? アロー関数は、ES6から導入された通常の関数(function)を代替する構文です。 /…

ReactのためのJavaScript – スコープと変数宣言(var/let/const)

はじめに Reactを学ぶためのモダンなJavaScriptについてまとめます。 この記事では、ECMScript2015(ES6)から導入された新たなスコープについて、そして変数宣言(var/let/const)についてまとめていきます。 スコープ スコープとは、変数の有効範囲を定義した…

ReactのためのJavaScript - はじめに

Reactを書籍やチュートリアルで勉強していると、見慣れないJavaScriptの記法をちらほら見かけました。調べてみると、それらはES6以降に導入されたものでした。この記事では、Reactで用いられるES6以降の仕様についてまとめていきます。 React開発で使われる…

ネットワーク - gRPCについて

はじめに gRPCについてちょっと調べたのでメモる。 gRPCさくっと概要 gRPCとは、RPC(Remote Procedure Call)を実現するためにGoogleにより開発されたプロトコル。そもそもRPCってなんでしょう? RPCとは RPC( = リモートプロシージャコール)とは、プログラム…

Mac - chromeでページ全体をスクショする

chromeでページ全体をスクショする方法メモ。 デベロッパーツールを開く( command + option + i )command + shift + p ( 検索窓が開く )fullと入力しEnter ( Screenshot Caputure full size screenshot を選択 ) こうするとページ全体の画像が撮れます。

AWS - NATを構築する

AWSでNATを構成するには、以下の2通りの方法がある。 NATインスタンスNATゲートウェイ 1. NATインスタンス NATソフトウェアがプリインストールされたAMI ( Amazon Machine Image )から起動したEC2インスタンスを用いる方法。 EC2インスタンスなので、停止が…

ネットワーク - NATとは?

はじめに 今回は、NATについて学んでのでメモりたいと思います。 NATって? Network Address Translationの略で、プライベートIPをパブリックIPに、またその逆を行う仕組みのことです。 これを用いると、例えばプライベートなネットワークに置かれたホスト(…

Mac - 外部ディスプレイが認識されない

自分メモ macが外付けディスプレイを認識してくれない時の対処法 ケーブルをつけたままmacをスリープ状態にしばらく放置(3分くらい)スリープ解除 以上でディスプレイを認識してくれる。

PHP - cssのキャッシュを無効化

はじめに PHPでWebアプリを開発していて、CSSがキャッシュされてしまい変更の確認のたびにキャッシュクリアするのはいかがなものか、、と思い調べるといい方法があったのでメモ。 問題 cssがブラウザにキャッシュされてしまい、cssの変更が確認しにくい。。 …

PHP - MySQL接続で”Unknown database xxx"と怒られる

PHP

はじめに 最近PHPを勉強していて、db接続周りで小ハマりしたのでその原因と解決をメモ。 現象 PHPでMySQLに接続したく、PDOを用いて↓のようなコードを書いた。データベースhogeにユーザhostman, パスワードpasswordで接続したい。 $dsn = "mysql:dbname=hoge…

awkでApacheログを集計

はじめに 最近、業務で数十万行とあるapacheログを集計する作業をしまして、awkを使ったのでやったことメモします。今回は、awkを使ってリクエストされた特定の時間帯のみに絞るということをやってみます。 やること 2019/1/21の22:00 ~ 23:00のログだけを出…

ProxyCommandで多段SSH

はじめに 踏み台サーバを経由して目的のサーバにsshする際に、これまで↓のような手順を取ってました。 ローカルから踏み台サーバにssh踏み台サーバから目的のサーバにssh これめんどくさくてダイレクトに目的のサーバにsshできんものか?と思って調べたらあ…

Mac - ターミナルで開いているフォルダをFinderで開く

ターミナルであるディレクトリにいる時、そのディレクトリをFinderで開く必要があったので、そのやり方メモ $ cd 目的のディレクトリ $ open . これで開きたいディレクトリをFinderで開ます。