ブログ内検索

micro:bitページ
とにかく速いブログサイトを目指す

カテゴリー : プログラミング/page-1

SOY CMSマニュアルページ作成中

SOY CMSの開発秘話を投稿しました。→SOY CMSの開発秘話
 

ChromebookでPythonのmatplotlibを試してみた

Chromebookはプログラミングの教育の端末として向いているか?の記事からはじまったChromebookはプログラミング教育の端末として向いているか?というお題に対して、数学に強いPythonが向いているという話題が挙がった。Python - Wikipedia手軽に始められるJavaScriptもあるけれども、計算をするとなると、Pythonの方が手軽に始められる。教育にPythonが向いているとして、ある程度基礎を学んだ後にしてほしいことは何か?を問いてみると...

 

ARM版ChromebookにDropboxをインストールする

Chromebookはプログラミングの教育の端末として向いているか?を調査するの記事から半月ほど経過した。Chromebookを利用するにあたって、乱暴な表現にはなるかもしれないが、Chrome OSとAndroidの仮想環境とDebian系のLinuxの仮想環境が同居しているとイメージすると良いかもしれない。Google Chrome OS - WikipediaAndroid (オペレーティングシステム) - WikipediaLXC - WikipediaDebian ...

 

ChromebookのLinuxアプリで日本語入力をできるようにする

ChromebookでJava製のアプリを実行するの続き。ChromebookでJava製のアプリを立ち上げた時、日本語入力ができなかったので、手順は端折るけれども、Ubuntuのマシンで行った操作の後にJava製アプリを立ち上げたら、今の時点では日本語の対応はされていないという旨のメッセージが表示された。調べていくと、Google製の日本語入力のMozcとFcitxを利用すればいけるらしい。Google 日本語入力 - WikipediaFcitx - Wiki...

 

ChromebookでJava製のアプリを実行する

Chromebookはプログラミングの教育の端末として向いているか?を調査するの記事の続きで、今回はChromebookでJava製のアプリが使えるか?を調査する。なぜ、Java製のアプリを気にするか?というと、大阪市立大学の方が開発された初学者向けプログラミング学習環境 PENというScratch等のビジュアルプログラミング言語とGolang等の実務や研究で使える本格的な言語の間の学習に向いている言語があって、この言語がJavaのVM上で動く。※ビジュアルプログラミ...

 

Chromebookはプログラミングの教育の端末として向いているか?を調査する

表題の通り、Chromebookがプログラミングの教育の端末として向いているか?を調査してみるためにChromebookを購入してみた。実はChromebook自体は中学生にプログラミングを教えてみて。その1で話題に挙げているプログラミング教室で試しに購入していて、Chromebook発売当初から触れてはいたが、JavaとIDEの面であまり使用していなかった。※採用していたプログラミング教育のアプリがJava製だった。2019年に発売されたChromebookでLinuxが動...

 

Android版のChromeでアクセスした時にPHPのセッションが突然切れる症状で苦戦した

SOY Shopのカートではセッションを利用しているわけだけれども、CSRF攻撃対策として、セッションを読み込む度にsession_regenerate_id()を実行して、PHPSESSIDの値を更新している。先に結論を記載すると、スマホからアクセスがある場合はsession_regenerate_id()の使用を気を付けるべきらしい。先日、AndroidのChromeでカート内で遷移すると、突然カートの中身が消えるという症状の連絡があった。調査をしてみると、カートの中身が...

 

php-webdriverでAceのコードエディタに文字を入力する

Ace - The High Performance Code Editor for the WebWebアプリ内でAceというJavaScript製のコードエディタを設置した箇所があって、Selenium + php-webdriverでテストコードを作成することになった。Aceエディタを設置した箇所は単純なHTMLのtextareaタグではなかったのでコードの作成は工夫がいる。なんとか対応できたので、対応方法を記載する。今回の内容は下記のページを参考にした。 ...

 

Golangでbyte型の値をint型に変換してみた

Golangでbyte型の値をint型に変換する際に苦戦したのでメモしておく。検索をすると、[]byte型からint64型に変換するといった内容は引っかかるけれども、冒頭のbyte型からint型は見当たらなかった。冒頭の課題を解決するために書いたコードは下記になる。package mainimport ("fmt""strconv")func main() {var b byteb = '9' // int型の1をシングルクオートで囲み...

 

QRCode.jsを試してみた

様々な依頼からこれからの働き方を見たの記事で紹介したようなブラウザでボードゲームをするための開発を行っている。スマホで気軽に参加できるように、BootstrapのModal内にQRコードを設置して、スマホのカメラでQRコードで撮影することで参加できるようにしたかったけれども、キャプチャのような画面を作るのに苦戦したので、対応した内容をメモとして残す。Bootstrap · 世界で最も人気のあるフロントエンドフレームワークはじめにQRコードの生成だけれども、...

 

OpenStreetMap + Leafletでカスタムアイコンを使ってみる

昨年の11月からつい先日まで下記のようなイベントをした。子どもたちに自分の好きな場所を取材してもらって記事を作成する。その記事を集めて壁新聞にするというもの。壁新聞にはWeb版があって、Web版ではOpenStreetMap + leafletで作成している。この地図をざっと見てもらうと、OpenStreetMap + Leafletで二つのマーカーを設置するマーカーが今まで見てきた青いピンではなく、何を紹介しているのか?がひと目で...

 

SOY CMSのブログとOpenStreetMapで地図アプリを作ろう

OpenStreetMap + Leafletで二つのマーカーを設置するまでの記事で、OpenStreetMap + Leafletで複数マーカーを設置する地図を出力できたので、SOY CMSのブログで地図アプリを作ろう1の記事から始まるSOY CMSでGoogle Mapsの出力をOpenStreetMapでリプレイスしてみることにする。はじめにSOY CMSの記事で緯度経度情報を持てるように、カスタムフィールドアドバンスドかカスタムサーチフィールドで緯度経度のフィール...

 

OpenStreetMap + Leafletで二つのマーカーを設置する

OpenStreetMap + Leafletで設置したマーカーにクリックのイベントを追加したの記事で、地図上に配置したマーカーにクリックイベントを設けた。今回は地図上にもう一つマーカーを設置してみることにする。前回の記事のマーカーの設置に関する箇所のコードをピックアップしてみる。var feature = {"type" : "Feature","properties" : {"name" : "摂津峡","url" : "h...

 

OpenStreetMap + Leafletで設置したマーカーにクリックのイベントを追加した

前回のOpenStreetMap + Leafletを試してみたの記事に引き続き、OpenStreetMapについてを書く。前回の記事では、自身のサイトにOpenStreetMapの地図を出力し、任意の箇所にマーカーを設置した。今回は、マーカーをクリックしたら、任意のページ、例えば、該当する箇所のGoogle Mapsの詳細ページ等に遷移する動作を追加してみる。最初に前回作成したコードを記載しておく。!DOCTYPE htmlhtmlheadmeta ...

 

OpenStreetMap + Leafletを試してみた

当サイトのりょうことつよしの食べ歩きマップというページをGoogleのMaps JavaScript APIからOpenStreetMapを利用するように作り替えてみた。Overview  |  Maps JavaScript API  |  Google DevelopersOpenStreetMapOpenStreetMapは自由に利用でき、なおかつ編集機能のある世界地図を作る共同作業プロジェクトで、自身のサイトに出力する際に、GoogleのMaps JavaScript...

 

クロスサイトリクエストフォージェリを回避する方法を探る

SQLインジェクションに対してプリペアードステートメントが有効であるかを試してみるに引き続き、Webアプリの脆弱性を見る。今回はタイトルにあるクロスサイトリクエストフォージェリ(CSRF)について見るけれども、とりあえず最初にこの用語を日本語訳してみる。クロスサイトというのがどういう風に訳せば良いのかわからないが、リクエストはサーバに送るデータで、フォージェリは偽造という意味なので、サーバに送る何らかのデータを偽装するという意味になる。実際にどういうことなのか?をサンプルコードを...

 

SQLインジェクションに対してプリペアードステートメントが有効であるかを試してみる

クロスサイトスクリプティングを回避する方法を探るの記事に引き続き、Webアプリの脆弱性を見る。今回見るのはSQLインジェクション(SQLi)にする。SQLiが何なのか?の説明に入る前にサンプルコードで挙動を確認してみる。SQLiを試す為のファイルの構成は下記の通り。.├── confirm.php├── db│   └── sample.db└── index.phpSQLiはデータベースにアクセスする攻撃なので、SQLiteでデータベ...

 

クロスサイトスクリプティングを回避する方法を探る

SOY Board on SOY Shopの記事で、SOY Shop上で掲示板アプリを展開出来る機能を追加したことを紹介した。このサイトに設置する為の機能が大体揃ったので、そろそろ設置しようと思ったが、入力フォームの記述の制約が少ないフォームを設置するするのはサイバー攻撃の視点でかなり怖い。掲示板を設置する前に、巷にあるWebサイト関連のサイバー攻撃を整理することにしよう。脆弱性について理解するために、Ohmshaから出版されている齋藤孝道著 マスタリングTCP/IP...

 

php-webdriverでcontent-visibility:auto;を利用しているページのリンクをクリックする

本題に入る前に先にやりたいことを整理しておくと、ブログを投稿した後に任意の記事ページを開き、次の記事へのリンクを押して、ブログ内の全記事を巡回するという事を自動化したかった。巡回したい理由は、アクセスが少ない時間帯に記事投稿後に巡回することで、全記事のHTMLキャッシュを生成して、その後のアクセスの負荷を減らしておきたかった。【SEO対策】最終産物のHTMLのキャッシュで高速化この対応はSelenium + php-webdriverを組み合わせれ...

 

データ構造のキューとリングバッファを見る

字句解析器を作る為にデータ構造のスタックを見るの記事で、データ構造のスタックを見た。オリジナルのアップロード者は英語版ウィキペディアのR. Kootさん - en.wikipedia からコモンズに移動されました。, CC 表示-継承 3.0, リンクによるスタックはデータの後入れ先出しで配列に値を入れた際、一番最後の値を取り出すというものだった。今回はデータ構造でスタックと合わせて紹介されるキューについて見てみる。This Image was created...

 

字句解析器を作る為にデータ構造のスタックを見る

PHPのハッシュテーブルを見るの記事で表題通り、PHPのハッシュテーブルを見て、ハッシュテーブルに関数を登録するところを見ようとしたが、共同体の記述の解釈で断念でした。一旦、ハッシュテーブル周りを見るのは保留にして、バーチャルマシン(VM)を含む機械がコードを解釈して実行する箇所を見ることにする。上記のコードを解釈して実行する過程はコンパイラもしくはインタプリタによって、人が書いたコードを機械が解釈できる形式に翻訳して実行する。コンパイラ - Wikipediaインタプリタ ...

 

PHPのハッシュテーブルを見る

ハッシュテーブルのチェイン法を見るまでの記事でデータ構造のハッシュテーブルを見た。ハッシュテーブルはPHPの変数や関数の登録の際にも利用されているので、PHPのハッシュテーブルを見る。ソースコードは今日現在のGitHub - php/php-src: The PHP Interpreterのソースコードとする。早速、HashTableで検索をしたら、php-src/Zend/zend_types.htypedef struct _zend_array HashTable;...

 

ハッシュテーブルのチェイン法を見る

データ構造のハッシュテーブルを見るの記事でデータ構想のハッシュテーブルに触れ、データ構造の単方向連結リストを見るの記事でデータ構造の連結リストを見た。これらを踏まえた上で、PHPで採用されているハッシュテーブルのチェイン法を見る事にする。技術評論社から発売されているPHPはどのように動くのか~PHPコアから読み解く仕組みと定石よるとPHPのハッシュテーブルのチェイン法では双方向連結リストを用いているが、前回触れた単方向連結リストでもニュアンスは伝わるはず。というわけで、今回もPH...

 

データ構造の単方向連結リストを見る

前回のデータ構造のハッシュテーブルを見るの記事でハッシュテーブルに触れたが、ハッシュテーブルの衝突の問題が残っている。PHPではハッシュテーブルの回避の手段としてチェイン法を採用しているが、チェイン法を見るためにはデータ構造の連結リストを把握する必要があるので、今回は連結リストを見ることにする。といっても、ここではPHPでシンプルな単方向連結リストのみ触れる事にする。連結リスト - Wikipedia今回も細かい説明は後回しにして、単方向連結リストに必要な関数を挙げる。※...

 

データ構造のハッシュテーブルを見る

PHPの関数の登録2の記事でPHPの実行中に関数が登録される過程を見た。PHPの深いところ(C言語レベル)で見ると、関数の登録にはデータ構造のハッシュテーブルというものが重要になってくる。ハッシュテーブルといえば、PHPのzvalと変数の作成を見るの記事で変数の登録時のシンボルテーブルでも登場した。PHPの深いところに向かう前にハッシュテーブルについて触れておく事にする。例えば、array(16) {[0] =string(6) "オヒシバ"[1]...

 

PHPの関数の登録2

PHPの関数の登録の記事で?php$funcs = get_defined_functions();var_dump($funcs);$a = myFunc();function myFunc(){return null;}このようにmyFunc関数の記述の前に、get_defined_functions関数を実行したらどうなるのか?を試してみたら、エラーなく実行された内容を記載した。この試みの後、2つほど疑問が生じた。・includeの...

 

PHPの関数の登録

PHPのオブジェクトの継承の負荷を見るの記事でオブジェクトの継承においてメモリの使用量で予想とは異なる結果になった。予想を外した要因は関数とメソッドを含むクラスの読み込み周りの知識不足であるので、関数やメソッドの登録周りを知りたくなった。例えば、下記のようなコードがあったとする。?phpfunction myFunc(){return null;}$a = myFunc();最後の行でmyFunc関数を実行する際、予めメモリにmyFuncの番地を登録...

 

PHPのオブジェクトの継承の負荷を見る

PHPでクラスのインスタンスを作成する際、他のクラスを親に持つクラスであった場合、メモリの使用量はどうなるのか?を見ることにする。実行せずともなんとなく結果は予想できるけれども、PHPのVLDでfor文を見る2のようなことがあるので、一応確認しておく。obj.php?phpclass Animal {function bark(){return "ばう";}}class Cat {}echo memory_get_usage...

 

PHPで関数内の変数のメモリ領域はいつ解放されるか?

前回のPHPのガベージコレクションを見るの記事で、PHPのガベージコレクションの基礎になる参照カウント法を見た。?php$a = new stdClass();$c = $b = $a;xdebug_debug_zval('c');というコードだと、各変数はこの図のような形になる。このコードを見て、コンストラクトしたオブジェクトをすぐに他の変数に入れる事なんてあるのか?という疑問が速攻で湧いた。色々と考えてみたら関数が当てはまるということで下記のような...

 

PHPのガベージコレクションを見る

PHPのzvalと変数の作成を見るの記事で、PHPの変数周りの内容を見た。前回の内容を踏まえて、PHPのガベージコレクション(以後、GCと略す)を学ぶための準備をしていく。PHPのガベージコレクションを学ぶにXdebugを入れるの記事でPHPの変数の詳細を確認できるxdebug_debug_zval関数を使用できるようにして、/path/to/dir/xdebug.php?php$a = new stdClass();xdebug_debug_zval('a');...

 

PHPのzvalと変数の作成を見る

PHPのガベージコレクションを理解する為のメモPHPは動的に変数を扱う事ができる言語で、この動的に変数を操作するためにzvalというものがある。動的に変数を扱う例として、/path/to/dir/var.php?php//変数aに数字の1を挿入する$a = 1;var_dump($a);//変数aに文字列のhogeを挿入する$a = "hoge";var_dump($a);//変数aに配列の値を挿入する$a = array(1, 2, ...

 

PHPのガベージコレクションを学ぶにXdebugを入れる

VLDでPHPのオペコードを確認するの記事でも記載した通り、SOY Shopの改修でメモリを意識する必要が生じたので、PHPの仕様を見始めた。現時点での一番の疑問は関数内で使用した変数はどのタイミングでメモリを解放するのか?もしくはPHPの関数内の変数の解放は手動で行わなければならないのか?PHPのCGI版やモジュール版はブラウザからリクエストを送信して、サーバでHTMLを組み立ててレスポンスを返した時点でプロセスを終了し、処理に関するメモリを解放するという仕様上、メモリにあまり...

 

PHPのOPCacheで生成されるキャッシュを見る

【SEO対策】PHPのOPCacheの更新チェックの頻度を下げるでサイトの表示速度の向上の為に、OPCacheの更新チェックの頻度を2秒から1日に変更してみた。そもそもの話でOPCacheはどんな感じでキャッシュしているのだろう?という事が気になった。OPCacheの説明文を改めて読むと、コンパイル済みのバイトコードを共有メモリに保持と記載されている。メモリ上だとキャッシュを確認することは難しいなと思うが、デバック用にファイルに変更する事ができるらしい。というわけで早速変...

 

PHPでforeach文の抜け方を見る

PHPで数字の配列の中に偶数があるか?という判定用の関数を作成したいとする。配列の中に偶数が一つでもあればtrue(真)を返すわけだから、?phpfunction isEven($arr){foreach($arr as $int){if($int % 2 === 0) return true;}return false;}このように偶数があった場合にreturn true;で終わ...

 

PHPで変数に割り当てた無名関数を解除できるか?

PHPのVLDで無名関数を見るの記事の続きで、?php$isEven = function($n){return ($n % 2 === 0);};if($isEven(2)){echo "even";}else{echo "odd";}$isEven変数に割り当てた無名関数の処理を解除できるか?が気になった。今回の内容に触れる前に割当の解除であるunsetについて触れておく。PHP: unset...

 

PHPのVLDで無名関数を見る

PHPのVLDで関数を見るの記事で、PHPの関数の処理をVLDで見てみた。C言語やGoのようなmain関数から始まる言語とは異なり、PHPはいきなり書き始められる言語では、他言語のmain関数の箇所でfunction nameがnullとして処理が開始していた。VLDで関数のオペコードを見た時、無名関数だとどうなるのだろう?と気になったので、今回は無名関数で試してみる。無名関数に関しては、オライリーから出版されているアンダースタンディングコンピューティション 単純...

 

PHPのVLDで関数を見る

PHPで関数がどのように実行されているか気になるので、下記のコードをVLDで確認してみることにした。even.php?phpfunction isEven($n){return ($n % 2 === 0);}if(isEven(2)){echo "even";}else{echo "odd";}偶数であればtrue(真)を返す簡単な関数だ。このコードのオペコードを確認してみると、$ ph...

 

PHPのVLDでforとforeachを比較する

$arr = range(1, 100000);のような配列があった場合の繰り返しで、$cnt = count($arr);for($i = 0; $i $cnt; ++$i){//処理を書く}foreach($arr as $i = $v){//}上記のようなfor文かforeach文のどちらを使えば良いか迷う。そんな時はVLDでオペコードを確認してみたり、実行速度を確認してみると迷いがなくなる。先に...

 

PHPのVLDでfor文を見る2

PHPのVLDでfor文を見るの記事の続きPHPのfor文の書き方で、//$arrには配列型のデータが格納されているfor($i = 0; $i count($arr); ++$i){//処理を書く}上記のコードのようなforの二番目の式でcount(配列)を書くのはよろしくないと記載されていることが多い。理由はfor文による繰り返しの際に都度、count関数を実行する事になり、関数の実行は処理が重いからすべきではないという。実際にどれ程...

 

PHPのVLDでfor文を見る

PHPのfor文の高速化の話題で、教科書等によく記載されているfor($i = 0; $i 10 $i++){//処理を書く}ではなく、for($i = 0; $i 10 ++$i){//処理を書く}にした方が良いということを時々見かける。実際のところはどうなのか?を処理速度の測定とVLDで確認してみる。VLDでPHPのオペコードを確認するちなみに$i++と++$iの違いは、if文等で、式を実行してから$iに1を加える(インクリメント)か、...

 

WSL2でSOY CMSの開発環境を作ってみた

CORE i5 iiyamaのパソコンを購入した。WSL2(Windows Subsystem for Linux:以下wslと表記)が入っており、WindowsでLinuxが使える点が購入に決めてだった。Windows Subsystem for Linux - Wikipediawslを使う利点は、プログラミングの実行環境を準備するのがWindowsの標準を使うよりはるかに簡単である。私の開発環境は、wslでLinuxのUbuntuを使えるようにした。その手順は、下記...

 

VLDでPHPのオペコードを確認する

SOY Shopの開発でPHPの深い箇所を意識してコードを書く必要が出てきた。PHPをより深く理解する為には何から手を付けていけば良いのだろう?ということで、PHP: Hypertext Preprocessor技術評論社から発売されているPHPはどのように動くのか~PHPコアから読み解く仕組みと定石を読むことから始めてみた。この本はPHPの本なのにC言語が頻繁にあり、メモリの確保やインタプリタの説明が少ない状態で話が始まるので、もしこの本を読むのであれば、事前に...

 

郵便番号を入力したら半径3km内のすべての町名を取得する

郵便番号を入力したら半径3km内のすべての町名を取得したいという要望がありました。この要望を聞いた時に頭に浮かんだのがGoogleのGeocoding APIだったので、このAPIで指定の場所の周辺の町名を取得してみる。Overview  |  Geocoding API  |  Google DevelopersGeocoding APIはGoogle Maps Platformで支払い方法の設定をしていないと使用できない。これから記載する内容はGoogle Maps Pl...

 

SOY CMSを介さずにSOY2Mailでメールを送信してみる

PHPの実行環境でフルスクラッチでsendmailを実行する必要が出てきた。mail関数はメール送信前にヘッダ周りの設定が何かと面倒なので、SOY CMSの開発で様々なサーバの運営に関わった知見を活用するため、SOY CMS内で動いているSOY2フレームワークのSOY2Mailのみを使用することにしてみた。SOY CMSの開発秘話root├── index.php└── lib└── soy2_build.phpSOY2Mailを試す為のファイル構成は...

 

php-webdriverでelement click interceptedのエラーに対して

Selenium + Jenkins + phpwebdriver + Chromiumのヘッドレスでテストの自動化を行っている。Jenkins + ヘッドレスChromeでテスト自動化の省力化先日、SOY CMSとSOY Shopに常に画面左下に設置されるメモウィジェットを設置して、テストにかけてみたら、PHP Fatal error: Uncaught Facebook\WebDriver\Exception\UnrecognizedExceptio...

 

SOY ShopのオーダーカスタムフィールドでjQueryのDatepickerを使ってみる

配送と店舗受け取り型の形態のネットショップを運営予定の方から、カートのお支払い・配送方法の選択画面で、配送(上のキャプチャでは宅配便)と店舗受け取りを並べつつ、どちらの注文も同時に対応できるようにしたいという要望がありました。どちらか一方であれば、標準配送モジュールの複製と少々のカスタマイズで事足りるが、一つの注文で両方同時に選択したいという要望の為、プラグイン(モジュール)の複製では要件を満たさない。SOY Shopの配送モジュールのカスタマイズ例そこで、配送モ...

 

SheetJSを試してみた

オライリーから出版されたReal World HTTP 歴史とコードに学ぶインターネットとウェブ接続の第2版が出たので、早速購入して読んでみた。この本はGoでHTTPを学べる良書で、サイト運営での表示の高速化をする上で知っておきたい内容が充実しているので、SEOをする上で絶対に読んでおいた方が良い。第2版になって、JavaScriptのXMLHttpRequestやCDNについての章が増え、JavaScriptの章を読んでいたら、XMLHttpRequest - Web API ...

 

gRPC for PHPのインストール

Google AdsのMCCアカウントでキーワードプランナーを無料で使えるようにするまでの記事の続きで、Google Ads APIを使用するための手順を整理する。サービスの概要 | Google Ads API Beta | Google Developersに目を通すと、事前にgRPCを使えるようにしておいてほしいとのことで、gRPC for PHPのインストールを行う。※gRPCの仕組みは難しいので今回の記事では端折るgRPC – A high-performa...

 

【SEO対策】他のCMS向けの総当り攻撃を避ける

今回の対策はSEOに直結するかわからないけれども、サイトを運営していてページの表示速度を下げる要因なので触れておく。とあるサイトを公開した後にアクセスログを確認したら衝撃的なログがあった。そのログというのが、https://example.com/wp-loginhttps://example.com/wp-adminへのアクセスだった。このサイトは世界ナンバーワンのシェアを誇る某CMSを使用していないので関係ないといえば関係ないけれども、アクセスログに上記のパスで埋...

 

【SEO対策】Google Mapsの遅延出力

仕事内容 - saitodev.co当サイトの仕事紹介のページにiframeでGoogle Mapsを表示している個所がありますが、このGoogle Mapsの出力によって、PageSpeed Insightsの結果が80点台になっていました。今回の記事ではGoogle Mapsを遅延出力してみたらどうなるのか?を試した結果を紹介します。遅延出力する前に記載されていたコードは、iframe src="https://www.google.com...

 

【SEO対策】最終産物のHTMLのキャッシュで高速化

SEO対策、データベースチューニングでサイトの表示速度を上げる為にはMySQL等のサーバ型のデータベースを採用して、サーバのメモリが許す限りデータベースにメモリ等の使用を振り分けるという内容を紹介しました。と紹介したものの、当サイトではデータベースはファイル型のSQLiteを使用しています。理由はSOY CMSを利用するであろうユーザのほとんどがMySQLがチューニング出来ないサーバを利用するはずで、SQLiteで高速化が出来なければ意味がないだろうと判断して、SQLiteを使用し続...


Powered by SOY CMS  ↑トップへ