量子コンピューターとはなんぞや?と疑問を持たれる人もお客に聞かれて急いで調べるという方もいらっしゃるでしょう。たまたま私は宇宙論が好きで一般相対性理論や特殊相対性理論とカジって来ていましたが宇宙という広大な世界を理解するために必要となった量子力学にも興味を持ち彼此10年以上独学で学んできました。そこに最近になって話題となってきた量子コンピューター。量子力学を学んでいたお陰で以外とすんなり理論的に理解することができました。

量子コンピューターとは何か。

従来のコンピューター(現在市販されているコンピュータ)の(たぶん)100%は同時計算はできません。タスクを同時に処理している様に見せかけてはいますが実際は10のタスクを投げた場合、10のタスクをA,B,C,D,E,F,G,H,IJとしてそれぞれを例えば10当分します。
A1〜A10、B1〜B10・・・、という様に100のタスクになり、A1の次にB1、C1、D1というぐあいに処理しています。結果実際は並列処理は行われていません。これが従来のコンピュータという訳です。

では量子コンピュータではどうか、並列処理が可能なのです。ここに登場するのが量子です。といってもピンと来ませんよね?
原子はご存知と思います、その原子は原子核とその周囲を回る電子などから構成されています。(もっと細かく書きたいところですが長くなるので省略)この電子が現実的に私たちが理解できる様な振る舞いをしません。さ〜ここから訳の分からない量子の世界に入ります。

コペンハーゲン解釈された電子の振る舞い(2重スリット実験の結果の解釈)
観測していないとき、コペンハーゲン解釈では実際に同時に複数箇所に電子が存在している。
観測していない状態の時は雲の様に原子核の周囲を覆っているが、観測した瞬間に一つの粒子となる。
観測していないとき粒子は波であり、観測した時点で一つの点になる。
なんのこっちゃ?とお思いでしょう、ここには書ききれないのでキーワードをググってみてください。
シュレディンガーの猫などもこのパラドックスを野次った表現として有名で面白いのでググってみてくださいね。

電子がいつどこに存在するかの確率(シュレディンガー方程式:波動関数)を使い量子力学上の電子の「重ね合わせ」状態を利用している。
素子2つで22 素子3つで23 と増え素子32個で40億の同時計算が可能になります。
従来のコンピュータではbitが最小単位。
量子コンピューターではquantumbit(キュービット)が最小単位として用いられます。

要は、従来のコンピュータではいくら台数を増やしても足し算にしかならない同時処理計算が、量子コンピュータでは乗算で処理能力が増えていくという訳で、例えて言うなら、現代のスパーコンピューターでも数百年、数千年かかる計算がたったの数分や数時間でできてしまう。これが量子コンピュータです。

そこで問題に浮上するのが現代のセキュリティです。頻繁に「暗号化」という言葉を耳にすると思います。
この暗号化されたデータですが実は解けない訳ではありません。皆さんがネットでカード情報や個人情報を入力して買い物をされる際に大抵のサイトがこの暗号化技術を利用しています。暗号化といっても多様存在しますがすべてアルゴリズムにそって文字が書き換えられている訳ですから素因数分解することで元の入力した文字が浮かび上がります。が、しかしこの素因数分解で解を出すのに現代のスーパーコンピュータを駆使してでも「数千年はかかるから大丈夫?」というのが暗号化です。さて、先ほど簡単にご説明した量子コンピュータ、この数千年かかるはずの素因数分解を数分や数時間で解いてしまうから大変なことが起こります。

現在稼働中の暗号化技術のほぼすべてが量子コンピュータの登場とともに崩壊するのです。一般的なショッピングサイトのセキュリティ、企業の情報セキュリティ、VPN、各国のインターネットに接続された国家機密、新たに施行されるマイナンバー制度のセキュリティ。そうすべてと言っても過言ではないほど現在の暗号化は崩壊します。

量子コンピュータの開発と同時に次世代の暗号化も開発されるでしょう、是非次世代暗号化が先に開発されてほしいものですね。

 

お客様よりURLに「www」を付けたくないけど検索エンジンで「www」が付いてしまう。
このようなご相談がありましたので解決法をご案内。

ホームページのドキュメントルートに以下の様に記述した「.htaccess」を置くことで解決できます。

以下の記述中 *** の個所をドメインに変更します。
========「.htaccess」の中身========

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.*****\.***
RewriteRule (.*) http://*****.***/$1 [R=301,L]

========================

↓↓↓例↓↓↓

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.miacis\.co\.jp
RewriteRule (.*) http://miacis.co.jp/$1 [R=301,L]

(※表示上「\」となっている個所は半角の「¥」です。)
この様にすることで、

www.miacis.co.jp へアクセスしても miacis.co.jp へ自動で変更されます。

特にSEOなどでURLを統一されたい場合は是非行ってください。

 

EC-Cube2.12系の納品書にお届日時を追加する方法
 
対象ファイル /data/class/SC_Fpdf.php
お届け先情報の下へ以下を追加します。
 
////////////////////////// 追加 ///////////////////////////
$objShip = new SC_Helper_Purchase_Ex();
$this->arrShip = $objShip->getShippings($this->arrDisp['order_id']);
     
for($i =0; $i < count($this->arrShip); $i++){
if (substr($this->arrShip[$i]["shipping_date"],0,4) > 0) {
$text = "お届け日 ". substr($this->arrShip[$i]["shipping_date"],0,4) . "年" . substr($this->arrShip[$i]["shipping_date"],5,2) . "月" . substr($this->arrShip[$i]["shipping_date"],8,2) . "日";
} else {
$text = "お届け日 指定なし";
}
$this->lfText(125, 125, $text, 10);
if (!empty($this->arrShip[$i]['shipping_time'])) {
$text = "時間帯  " . $this->arrShip[$i]['shipping_time'];
} else {
$text = "時間帯  指定なし";
}
$this->lfText(125, 129, $text, 10);
}
///////////////////////////////////////////////////////////
 
これで、納品書の【注文日】の右側へお届日と時間帯が表示されます。
 

レスポンシブWebデザインのCSS判別記述方法

アクセスしたブラウザの横幅に合わせたCSSを読み込ませる方法を記述します。
3種類の書き方がありそれぞれ書いてみます。
 
 
【その1】HTMLのヘッダーで区別させる方法
HTMLの<header>~</header>内に以下を記述して区別します。
 
—————–
<link rel="stylesheet" media="screen and (min-width: 769px)" type="text/css" href="pc.css" />
<link rel="stylesheet" media="screen and (max-width: 768px)" type="text/css" href="tb.css" />
<link rel="stylesheet" media="screen and (max-width: 640px)" type="text/css" href="sm.css" />
—————–
 
説明すると次の様になります。
ブラウザの横幅が769px以上の場合「pc.css」を
ブラウザの横幅が768px以下の場合「tb.css」を
ブラウザの横幅が640px以下の場合「sm.css」を適応となります。
 
 
【その2】CSSファイル内で区別させる方法
~.css内で以下のように記述することで「その1」と同じ判別ができます。
一つのCSSファイルで済ます場合はこの方法になります。
 
—————–
@media screen and (min-width: 769px) {
/* ここにスタイルを記述 */
}
@media screen and (max-width: 768px) {
/* ここにスタイルを記述 */
}
@media screen and (max-width: 640px) {
/* ここにスタイルを記述 */
}
—————–
 
 
【その3】「import.css」インポートで区別させる方法
メディア別に記述するスタイル部分は少ない方が理想ですがデザインによりそうも言ってられないと思います。この方法が私は一番スッキリする気がして好んで使っています。
 
「import.css」などインポート用CSSに次の行を記述します。
 
—————–
@import url("pc.css") screen and (min-width:769px);
@import url("tb.css") screen and (min-width:641px) and (max-width:768px);
@import url("sm.css") screen and (max-width:640px);
—————–
 
このように記述することで「その1」と同じ判別ができます。
 
 
タブレット端末、スマートフォン端末向けのCSSの記述ポイントなどはまた次の機会に~
 

レスポンシブ・ウェブデザイン(Responsive Web Design)について最近よく聞かれます。
弊社でも最近取り組み始めましたので「レスポンシブWebデザイン」について質問された内容を書きたいと思います。

 
【レスポンシブWebデザイン FAQ編】
Q.「既存のホームページをレスポンシブ・ウェブデザインにできる?」
A.はい、(たぶん)できます。
 
ただし、構造をどのようにするかをよく検討する必要があります。
スマホやタブレット端末で見たときに「何を」「どこに」「どのように」表現するかの計画立てから考える必要があるでしょう。しかもCSSでレイアウトされたホームページならまだよいですがこれが随分前のTABLEで組まれているHTMLだとしたら初めから作り直した方が早いでしょう。
 
 
既存のホームページを作り直す一番簡単な方法を具体的(ザックリ)には、既存のCSSファイルをコピーしてスマホやタブレット端末用のCSSに作り直して利用します。(やり方は他にもありますが簡単な方法で)
 
base-pc.css:PC端末用(横幅769px以上用に使用)
base-tb.css:タブレット端末用(横幅641px~768px用に使用)
base-sm.css:スマホ端末用(横幅640px以下用に使用)
(CSSの名前は何でもOKです。)
 
それぞれのCSSができたらHTMLにimportします。
 
[ import.css ]を作り次の様に記述します。
—————————
@import url("base-pc.css") screen and (min-width:769px);
@import url("base_tb.css") screen and (min-width:641px) and (max-width: 768px);
@import url("base_sm.css") screen and (min-width:0px) and (max-width: 640px);
—————————
これを説明しますと次の様になります。
横幅が0px~640pxまでなら「base_sm.css」を適応
横幅が641px~768pxなら「base_tb.css」を適応
横幅が769px以上なら「base-pc.css」を適応 となります。
 
HTMLにて[ import.css ]を読み込ませます。
—————————
<link href="./css/import.css" rel="stylesheet" type="text/css" />
—————————
 
※それぞれブラウザの横幅を狭くして確認よりも実際の端末で確認しましょう!
 
これで見た目は無視してとりあえず「レスポンシブ・ウェブデザイン」にはなった訳です。
あとは、それぞれのCSSファイルを端末(横幅)に合わせて整えますが、
この整えるポイントでいろいろとやることもあるので次回にまた記載したいと思います。
 
 
※IEに対応させるために次のいずれかを欠かさずに読み込ませてください。
 
 または
 
よくわからないという方は次のソースをHTMLファイルの<header>~</header>内に記述します。
—————————
<!–[if lt IE 9]>
<script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
<![endif]–>
—————————
これでIEに対応してくれます。
 
 
それでは次はいつになるか分かりませんが次回へ「つづく・・・」