2019年 4月 の投稿一覧

[Linux] メモリ上に高速なディスクを作成する – tmpfs

Linuxでいわゆる「RAMディスク」を作成してみます。
HDDは情報の読み込みでも書き込みでも物理的な速度でメモリにはかないません。で、あるならばメインメモリの一部をHDDに見せかけることができれ5ば超高速なストレージとして使えるのでは!という発想ですね。Linuxではtmpfsと呼ばれる仕組みを利用することで手軽に利用できます。

もちろん、メモリ上にデータを置きますので電源を落とした瞬間にすべてが失われます。主にキャッシュなど一時的な利用が中心になると思われます。

続きを読む

[Apache] mod_cacheで動的なコンテンツをキャッシュする

動的なコンテンツをPHPやPython、Rubyなどで生成しているサービスはたくさんありますが、すべてを毎回最新の情報に書き換える必要は無い場合も多いでしょう。一定時間は許容されたり、同じ情報を複数のユーザーで共有することも場合によっては可能なはずです。

そんなときにApache側で一定時間ファイルにキャッシュしてくれる機能を利用すると大変手軽に実装できます。
続きを読む

[Linux] コマンドラインでHTTP通信を行う – Telnet編

HTTP/1.1まではサーバクライアント間の通信内容がテキストでのやり取りのため、人間が手作業でサーバと直接やるとりすることが可能です。HTTPの勉強はもちろんですが、開発時にGoogleChromeなどWebブラウザや便利ライブラリによってブラックボックス化されないため純粋な通信状況を確認する際に役に立ちます。

今回は古来から伝わるtelnetコマンドで行う方法を試してみます。
続きを読む

[Apache] キャッシュ期限を指定する mod_expires

Webブラウザなどで何度も同じサイトにアクセスした際に、その都度変化する情報もあれば、全く更新されない情報もあります。前回と同じ情報であればブラウザ内部に一時的に保存し再利用してもらった方がサーバもクライアントもお互いに仕事が減って助かります。

今回はApacheのmod_expireモジュールを利用しクライアントに指定した期間、キャッシュさせてみます。
続きを読む

[Apache] バージョン情報を出力しない

本番用のWebサーバでは利用しているソフトウェアのバージョン情報を表示しません。
例えば何らかの事情で最新版を利用していないことがわかると簡単に脆弱性を突かれてしまいます。また直接的に攻撃をされなくともクラックのきっかけになりますので不要な情報を第三者に公開すべてきではないというのがセオリーです。

そこで今回はApacheとPHPのバージョン情報を出力しない設定を施したいと思います。
続きを読む

microSDカードが本物かmacOSで検証する

GWのロングツーリングに向けて色々準備しています。アクションカムでずっと撮影しながら旅をしようと思っているのですがネックになるのはSDカード。結構なファイル容量になるのでポータブルSSDを持ち歩いて定期的にコピーすることも考えましたが、正直面倒なので大量のmicroSDカードを持っていくことにしました。

microSDを大量購入するのは良いのですが、昨今よく耳にする偽物のSDカードが紛れている問題をどうクリアするか。特にAmazonで頻発しているようですが例えば容量の半分も記録できなかった、仮に本物だったとしても不良品だったなんてことももあります。旅先で初めて気がついた日には精神的に落ち着かないですし、家電量販店を探して買いに向かうリカバリーに時間を使うのももったいない。というかそもそも田舎だと売ってないw 何よりも帰宅したあとに記録できていなかったことに気がついたときの喪失感と言ったらもうねw

そんなわけで今回はSDカードの全領域に書き込み/読み込みを行い、正常に動作するか確認したいと思います。

続きを読む

macOSにJMeterをインストールする

サーバに大量のリクエストを投げたり、こちらが指定した順番でURLを叩くなど言わゆる「負荷試験」を行う際によく利用されるJMeterを今回はmacOSにインストールしてみます。
続きを読む

はじめてのReact #28 「CSSフレームワークを導入する」Material-UI グリッド編

前回はMaterial-UIのインストールと基本的な利用方法について取り上げました。今回は画面のレイアウトを行う際に利用するグリッドシステムです。

この手のCSSフレームワークの醍醐味の一つはグリッドが用意されていることですね。最近はflexboxが使えるようになってずいぶん楽になりましたが、細かい制御をやってくれるので中々重宝するんですよね。
続きを読む

はじめてのReact #27 「CSSフレームワークを導入する」Material-UI インストール編

Reactでは通常のWebサイトと同様、自由自在にCSSを記述し反映することができるわけですが、ゼロから書き始めるのは個人的に正直ダルい。そんなときにタグにクラス名を適当に指定すればチャチャッといい感じに表示してくれるCSSフレームワークを導入したいと思います。

今回はよく名前を見かけるMaterial-UIを使ってみることにします。長いものには巻かれろ精神。

続きを読む

はじめてのReact #26 「ルーティングに対応する」設定をJSONにまとめる編 react-router@v5

これまでルーティング関連の記事では以下のような内容を取り上げてきました。

  • 第23回 基本的なReactRouterの使い方
  • 第24回 URLの一部をパラメーターとして受け取る
  • 第25回 認証とリダイレクト

今までは以下のように直接<Route>を書いてルーティングの定義を行ってきましたが、今回はこれらの設定をJSONなどで定義し、いつでも外部のファイルに出せるようにします。

<!-- befor -->
<Switch>
  <Route exact path="/" component={Home} />
  <Route exact path="/auth" component={Auth} />
  <Route path="/area/:cd" component={Meisan} />
</Switch>

このままでも動くんですけどね。ロジックと設定は分離して置いた方がメンテしやすくなりますからね。

続きを読む

はじめてのReact #25 「ルーティングに対応する」認証とリダイレクト編 react-router@v5

前々回では基本的なReactRouterの使い方を、前回でURLの一部をパラメーターとして受け取ってみました。

今回はユーザーの状態に合わせてページの出し分けを行います。
具体的には

  • 認証済みのユーザーにだけページを表示
  • 未認証のユーザーにはログインページを表示

という仕様になります。
続きを読む

はじめてのReact #24 「ルーティングに対応する」URLパラメーター編 react-router@v5

前回はReact Routerの基本的な機能を利用し簡単な図鑑アプリを作成しました。

今回はリクエストを受けたURLの一部をパラメーターとして受け取ってみます。
例えばブログやTwitterのようなアプリで特定のIDの記事を表示したい場合/posts/view/123といった形式のURLにアクセスするとします。ここで問題になるのは1000個の記事があった場合、1000個の<Route>を定義する必要が出てくるのかという点ですね。こういった場合に特定のパターンのURLは一部の文字列をパラメーターとして設定することができます。

続きを読む

はじめてのReact #23 「ルーティングに対応する」基本編 react-router@v5

React Routerは雑に言うとリクエストされたURLのパスと、ReactのComponentを紐付けてくれる便利なモジュールです。

例えば /foo にアクセスされたら FooComponentを、/barにアクセスされたらBarComponentを実行することができるようになります。

今回は3月21日に登場したばかりのReact Router v5を触ってみます。本来はv4.4として出す予定だったそうですがReact 16との互換性が大きく改善されたとのことでメジャーバージョンアップの運びとなったとのこと。使い方もv4系とあまり変わらないようですね。

続きを読む