Linuxでいわゆる「RAMディスク」を作成してみます。
HDDは情報の読み込みでも書き込みでも物理的な速度でメモリにはかないません。で、あるならばメインメモリの一部をHDDに見せかけることができれ5ば超高速なストレージとして使えるのでは!という発想ですね。Linuxではtmpfs
と呼ばれる仕組みを利用することで手軽に利用できます。
もちろん、メモリ上にデータを置きますので電源を落とした瞬間にすべてが失われます。主にキャッシュなど一時的な利用が中心になると思われます。
Linuxでいわゆる「RAMディスク」を作成してみます。
HDDは情報の読み込みでも書き込みでも物理的な速度でメモリにはかないません。で、あるならばメインメモリの一部をHDDに見せかけることができれ5ば超高速なストレージとして使えるのでは!という発想ですね。Linuxではtmpfs
と呼ばれる仕組みを利用することで手軽に利用できます。
もちろん、メモリ上にデータを置きますので電源を落とした瞬間にすべてが失われます。主にキャッシュなど一時的な利用が中心になると思われます。
動的なコンテンツをPHPやPython、Rubyなどで生成しているサービスはたくさんありますが、すべてを毎回最新の情報に書き換える必要は無い場合も多いでしょう。一定時間は許容されたり、同じ情報を複数のユーザーで共有することも場合によっては可能なはずです。
そんなときにApache側で一定時間ファイルにキャッシュしてくれる機能を利用すると大変手軽に実装できます。
続きを読む
HTTP/1.1まではサーバクライアント間の通信内容がテキストでのやり取りのため、人間が手作業でサーバと直接やるとりすることが可能です。HTTPの勉強はもちろんですが、開発時にGoogleChromeなどWebブラウザや便利ライブラリによってブラックボックス化されないため純粋な通信状況を確認する際に役に立ちます。
今回は古来から伝わるtelnetコマンドで行う方法を試してみます。
続きを読む
Webブラウザなどで何度も同じサイトにアクセスした際に、その都度変化する情報もあれば、全く更新されない情報もあります。前回と同じ情報であればブラウザ内部に一時的に保存し再利用してもらった方がサーバもクライアントもお互いに仕事が減って助かります。
今回はApacheのmod_expireモジュールを利用しクライアントに指定した期間、キャッシュさせてみます。
続きを読む
本番用のWebサーバでは利用しているソフトウェアのバージョン情報を表示しません。
例えば何らかの事情で最新版を利用していないことがわかると簡単に脆弱性を突かれてしまいます。また直接的に攻撃をされなくともクラックのきっかけになりますので不要な情報を第三者に公開すべてきではないというのがセオリーです。
そこで今回はApacheとPHPのバージョン情報を出力しない設定を施したいと思います。
続きを読む
GWのロングツーリングに向けて色々準備しています。アクションカムでずっと撮影しながら旅をしようと思っているのですがネックになるのはSDカード。結構なファイル容量になるのでポータブルSSDを持ち歩いて定期的にコピーすることも考えましたが、正直面倒なので大量のmicroSDカードを持っていくことにしました。
アクションカム用のmicroSDXCを準備中。追加で発注したのであと2枚増える予定w pic.twitter.com/tEDGmfiGf6
— 勝部麻季人 🐟 (@katsube) 2019年4月20日
microSDを大量購入するのは良いのですが、昨今よく耳にする偽物のSDカードが紛れている問題をどうクリアするか。特にAmazonで頻発しているようですが例えば容量の半分も記録できなかった、仮に本物だったとしても不良品だったなんてことももあります。旅先で初めて気がついた日には精神的に落ち着かないですし、家電量販店を探して買いに向かうリカバリーに時間を使うのももったいない。というかそもそも田舎だと売ってないw 何よりも帰宅したあとに記録できていなかったことに気がついたときの喪失感と言ったらもうねw
そんなわけで今回はSDカードの全領域に書き込み/読み込みを行い、正常に動作するか確認したいと思います。
サーバに大量のリクエストを投げたり、こちらが指定した順番でURLを叩くなど言わゆる「負荷試験」を行う際によく利用されるJMeterを今回はmacOSにインストールしてみます。
続きを読む
前回はアイコンやテキスト情報を表示しましたが、色を直接指定することができませんでした。primary
やerror
など意味を示す物でしたよね。今回はデフォルトで定義されている色などを変更するテーマ機能を触ってみます。
Material-UIシリーズ第三回は文字のスタイルをあれこれいじってみたいと思います。
SVGアイコンを表示したり、テキストを様々な形で表示します。
前回はMaterial-UIのインストールと基本的な利用方法について取り上げました。今回は画面のレイアウトを行う際に利用するグリッドシステムです。
この手のCSSフレームワークの醍醐味の一つはグリッドが用意されていることですね。最近はflexbox
が使えるようになってずいぶん楽になりましたが、細かい制御をやってくれるので中々重宝するんですよね。
続きを読む
Reactでは通常のWebサイトと同様、自由自在にCSSを記述し反映することができるわけですが、ゼロから書き始めるのは個人的に正直ダルい。そんなときにタグにクラス名を適当に指定すればチャチャッといい感じに表示してくれるCSSフレームワークを導入したいと思います。
今回はよく名前を見かけるMaterial-UIを使ってみることにします。長いものには巻かれろ精神。
これまでルーティング関連の記事では以下のような内容を取り上げてきました。
今までは以下のように直接<Route>
を書いてルーティングの定義を行ってきましたが、今回はこれらの設定をJSONなどで定義し、いつでも外部のファイルに出せるようにします。
<!-- befor -->
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/auth" component={Auth} />
<Route path="/area/:cd" component={Meisan} />
</Switch>
このままでも動くんですけどね。ロジックと設定は分離して置いた方がメンテしやすくなりますからね。
前々回では基本的なReactRouterの使い方を、前回でURLの一部をパラメーターとして受け取ってみました。
今回はユーザーの状態に合わせてページの出し分けを行います。
具体的には
という仕様になります。
続きを読む
前回はReact Routerの基本的な機能を利用し簡単な図鑑アプリを作成しました。
今回はリクエストを受けたURLの一部をパラメーターとして受け取ってみます。
例えばブログやTwitterのようなアプリで特定のIDの記事を表示したい場合/posts/view/123
といった形式のURLにアクセスするとします。ここで問題になるのは1000個の記事があった場合、1000個の<Route>
を定義する必要が出てくるのかという点ですね。こういった場合に特定のパターンのURLは一部の文字列をパラメーターとして設定することができます。
React Routerは雑に言うとリクエストされたURLのパスと、ReactのComponentを紐付けてくれる便利なモジュールです。
例えば /foo
にアクセスされたら FooComponent
を、/bar
にアクセスされたらBarComponent
を実行することができるようになります。
今回は3月21日に登場したばかりのReact Router v5を触ってみます。本来はv4.4として出す予定だったそうですがReact 16との互換性が大きく改善されたとのことでメジャーバージョンアップの運びとなったとのこと。使い方もv4系とあまり変わらないようですね。