WEB/システム/IT技術ブログ

原因は分かりませんが、たまにWindows 8.1でWi-FiプロセスのCPU使用率が急に上昇することがあります。

はじめてこの現象に気が付いたのは、電源ケーブルなしでノートPCを使用している時です。
いつもよりバッテリーの消費が早い。本体がなんだか熱い。ファンがいつもより激しく回っている。
特に重い処理を実行しているわけでもなく、大容量の通信をしているわけでもありません。

タスクマネージャーを起動すると「Windows Wireless LAN 802.11 Extensibility Framework」という謎のプロセスのCPU使用率が急上昇しています。

win8wifi

取り急ぎ、この状況を回避するためには、コントロールパネルのネットワーク接続から、Wi-Fiを動かしているネットワークデバイスを無効化します。
ここでタスクマネージャーから上記のプロセスが消えるはずですが、もしも残る場合は、タスクマネージャー上から終了させます。
その後、再びネットワークデバイスを有効にすると、上記のプロセスが復活しますが、CPUの使用率上昇は0%になっています。

どうやら、このプロセス自身が悪いものではないようですが、何かをきっかけに暴走するようです。

いろいろ調べてみましたが、暴走の原因を究明することはできませんでした。。
私の場合、ノートPCを外出先で使用するとき、いくつかのアクセスポイントを切り替える過程で発生しているような気がします。

もう少し調べてみます。。。

WordPressにはデフォルトでサイト内検索の機能があります。
今回はその検索フォームの設置、検索結果一覧ページの実装方法です。

検索フォームの設置

以下の関数をコールするだけで、検索フォームを設置することができます。

<?php get_search_form() ?>

ヘッダ、フッタやサイドメニューなど好きな所に「get_search_form」を記述するだけです。
すると以下のデフォルトコードが出力され、検索フォームが表示されます。

<form role="search" method="get" id="searchform" class="searchform" action="http://cms.helog.jp/">
<div>
<label class="screen-reader-text" for="s">検索:</label>
<input type="text" value="" name="s" id="s" />
<input type="submit" id="searchsubmit" value="検索" />
</div>
</form>

デザイン性からフォームの「select」を装飾することがしばしばありますが、CSSのみでの装飾には限界があります。
それがIE7やIE8など、古いブラウザに対応させるとなるとなおさらの事です。

装飾にJSを利用するのはあまり好きではありませんが、最終手段として重宝しているのがjQueryのプラグイン「customSelect」です。
jQuery Custom Select Box Plugin – jQuery.customSelect()

しくみとしては、スクリプトで既存のselect句の上に空のレイヤーを重ねて、それを装飾できるようにしています。
また、そのレイヤーを選択した場合にselectのような挙動をさせて、既存のselect句のvalueと同期するように制御してくれます。

導入方法については公式サイトにもありますが、いたって簡単です。

WordPress のカテゴリ管理画面でID情報のカラムを追加して、ソート可能にする方法です。

デフォルトのカテゴリ管理画面では、リストにカテゴリIDは表示されていません。
「編集」のパスからIDを抜き取る方法がありますが、スマートではありません。

またWordpressはカテゴリ一覧の表示順を指定できないことがしばしば課題になりますが、
IDでソートする方法もあり、その場合にやはりIDを表示する画面は必要になります。

フックを設定してカテゴリIDカラムを追加する

まずは、function.phpなどに以下のフック処理を追加して、IDカラムを表示させます。

Subversionのフットスクリプトを利用することで、サーバサイドでコミット時にさまざまな処理を実行することができます。

サーバ上のリポジトリ設置ディレクトリ直下の「/hooks/」ディレクトリに配置されてるファイルにスクリプトを記述することで、処理を実行することができます。
ファイルの種類により実行のタイミングが管理されており、それぞれ以下のようになっています。

start-commit コミットトランザクション作成前
pre-commit コミット前
post-commit コミット後
pre-revprop-change リビジョン属性変更前
post-revprop-change リビジョン属性変更後
pre-lock ロック取得前
post-lock ロック取得後
pre-unlock ロック解放前
post-unlock ロック解放後

リポジトリを作成したデフォルトの状態で、各テンプレートファイルが用意されているので、そのファイルをリネームすることで用います。
例えば「start-commit.tmpl」ファイルがあるので、コピーまたはリネームで「start-commit」というファイルを作成し、テキストエディタで開いてスクリプトを記述します。
ファイルを用意するだけで、後はコミット時に自動的にファイルの内容を読み込んでスクリプトが実行されるしくみです。

それでは、いくつか具体的な処理にトライしてみます。
ちなみに今回、SubversionサーバはUbuntu 14.04で試しているのでLinuxコマンドの処理となりますが、もちろんWindowsサーバでも同等の事が実現可能です。

Windows 7 Professional 64bitを使っているのですが、最近、Windows 10へのアップグレードを促すポップアップに悩まされています。

update_win10_01

「Windows 10のご紹介
今ならWindows 10へ無償アップグレードすることができます さあ、今すぐ予約を
予約は期間限定です Windows 10 詳細」
つまり、今なら期間限定でWindows 10に無償でアップグレードができるようです。

HTML5の新機能「Geolocation API」を使用して位置情報を取得します。

HTML5が公開され、いくつかの新機能が策定されましたが、中でもその有効性が期待されているのが「Geolocation API」です。

これまでの位置情報取得技術

一昔前までは、Webブラウザで現在地を取得する方法としては、例えばマシンのIPアドレスから位置を特定する方法がありました。しくみはとても単純で、IPと位置情報の紐づけはデータベース化されており、その精度はデータ量によるというものでした。
そのため、IPがプロキシサーバで偽装しているなどの場合に、正確な位置情報を決定できないという問題などがありました。

その他理由からも、ブラウザから正確な位置情報を取得するということは、当時は困難であり、サービスコストのかかる技術だったといえます。

処理進捗やLoading状態を表現するプログレスバーですが、今回はBootstrapのプログレスバーの長さをjQueryでアニメーション制御します。

こちらがBootstrapのデフォルトのプログレスバーです。

30% Complete
<div class="progress">
  <div class="progress-bar" role="progressbar" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100" style="width: 30%;">
    <span class="sr-only">30% Complete</span>
  </div>
</div>

このバーの長さを制御するためには、単純にwidthの値をJavaScriptで変更するだけで良いです。
BootstrapでデフォルトのTransitionプロパティが指定されているので、CSS3が有効なブラウザ上でwidthの指定だけでアニメーション効果が得られます。

WordPressでアイキャッチ画像や投稿中の画像など、メディアが保存されるディレクトリを変更する方法です。

デフォルトでは「(WordPressの設置場所)/wp-content/uploads」に保存されますが、セキュリティの面からインストール先を隠蔽するなど、運用の都合上、ディレクトリを変更したい場合があります。

そのような場合、まずは管理画面にログインした状態で以下のURLにアクセスします。

http://cms.helog.jp/wp-admin/options.php

するとWordPressの細かい設定項目の一覧が表示されます。

Monthly Archives