投稿者「taku」のアーカイブ

GA-F2A88XN-WIFIでMIni-ITXサブ機を作る

構成

【MB】GA-F2A88XN-WIFI (出荷時のBIOSがKaveri対応であることを示す緑シールがあるもの)

【APU】A10-7850K

【クーラー】CNPS2X (グリスは付属品ではなくノーブランドのシルバーグリスを使用)

【Mem】ノーブランドDDR3-1600 4GB×2(特価品)

【HDD】余ってたSATA 300GB

【ケース】SG05B

【電源】SG05B付属

…金をかけるところとかけないとろがはっきりしています

組み立て

Mini-ITXということで、干渉によって組みあがらないことが気になった。クーラーがメモリやケースと干渉することが多いとのこと。リテールなら問題ないとのことだが、それではおもしろくない。とにかく小さいものを選んだ。

実際に組んでみると、あまりにもあっさり仕上がって拍子抜け。どこか干渉したり配線が届かなかったりした場合のことをいろいろ考えていたのだが…

起動

あっさりと起動。

UEFI BIOSのバージョンはF3になっていた。

ただし、このときCPU温度がBIOS読みで75℃となっていたのが気になったが、CPU Fanの回転数が(目視で回っていることを確認できるにもかかわらず)0rpmとなっていたことから、BIOS読みの値を信用しないことに決める。

Windows7をインストールしてEasy Tune 6でCPU温度を見てみると、25℃。うん、ちゃんと冷えてる。ちなみに、25℃≒75℉なので、BIOSでの温度表示は単位が間違っていると考えると納得できるが…

今回買ったもの



 

カゴヤ・クラウドVPSを契約してみる(3)

WordPressがVPSで動作するようになったので、このブログの公開を新サーバの仕事としてみた。
と、PerlのImagerを使っているCGIが動作していないことに気づいたので、入れ…ようとしたらcpanが入ってなくてびびる。
さっそくyum install perl-cpanしたら、No package perl-cpan available.
おかっしいなーと思ったら、perl-CPANでしたとさ。

cpanが入ったのでcpan -i Imagerしてみたらエラー。
なんとgccがないとのこと。
しかたなくyum install gcc
さらにyum install perl-YAML.noarch
その後CPANからモジュールを入れまくり、一通りのCGIが動くようになって一安心。

設定したいことはおおむね終了。
思っていたよりだいぶ楽だった

カゴヤ・クラウドVPSを契約してみる(2)

nanoインストール

設定をいじったりしていこうとしたら、nanoが入ってなかった。
初心者向けと言われようと好きなものは好きなので、さっそくyum install nano

ホスト名設定

インスタンス作成時にホスト名が与えられるとのことだったが、コンパネ上で表示が見つけられない。
hostnameコマンドで確認できた。

とはいえ目的は自宅サーバの機能移転なので、現在利用しているVALUE DOMAINのアドレスでアクセスできるようにする。
ドメイン名の管理をカゴヤに移すという手もあったが、今回はVALUE DOMAIN内でダイナミックDNSを解除してVPSのIPにバインドした。
数分後、iPhoneのLTE回線にてVPSにドメイン名でアクセスできることを確認。便利な時代になったものだ。

apache設定

初めからインストールされているので、設定ファイルをいじくり倒して終了。
元の自宅サーバよりもCPUが有利になった代わりにメモリは少なくなったので、じゃっかんチューニングしたつもり。

MySQL設定

初めからインストールされている。とりあえずセットアップを済ませ、自動起動するように設定する。

次に、自宅サーバからデータベースの内容をコピーする方法を考える。
これは初めての経験。
とりあえず自宅サーバでmysqldump -u root -p -x –all-databases > 保存先
作成されたファイルをVPSに送り、mysql -u root -p < ファイル どうやら日本語の文字列も含めてうまくいったようだ。便利。

WordPress設置

この段階で、WordPressがVPSに移行できるのではないかと期待する。
さっそく、ものぐさなので自宅サーバからWordPressのディレクトリを全部VPSにコピーしてみる。
root権限でtarするとパーミッションとかも保持されて便利。
これで動くといいなと思いつつ、さっそくアクセスしてみる。
「データベース接続確立エラー」
ちぇー。

いろいろ考えたのだが、ふと気になってコマンドラインからWordPressのユーザでmysqlにログインしてみようとするとエラーになることに気づく。
どうやら、MySQLの内容コピー時、ユーザー権限情報は保持されないようだ
参考サイト
指示通り自宅サーバでmysqldump -u root -p -x –allow-keywords mysql > 保存先
作成されたファイルをVPSに送り、mysql -u root -p mysql < ファイル これでmysqldを再起動すると、期待通り動作した。 とりあえずここまで。 なお、この段階で、懸案だったメモリの使用量がコンパネ読みで200MBを超える。

カゴヤ・クラウドVPSを契約してみる(1)

カゴヤ・クラウドVPSを契約してみた。
いろいろ試して遊びつつ、現在使用している自宅サーバの機能を移行できるかどうか検討していく。

登録

Webフォームに必要事項を記入すると、即座に(おそらくは自動返信)メールが届く。これで登録完了。

サーバの作成

コントロールパネルにログインして、インスタンス作成。
ここでは、最も安いタイプAでLAMPパックを作成してみた。
1分程度で処理が完了。
コントロールパネルから起動できるようになり、グローバルIPが割り振られる。

サーバにログインしてみる

サーバを起動するとSSHでログインできるようになる。
Tera TermでIPを指定してrootパスワードを入力すれば接続完了。

ここまで、現在の自宅サーバにCentOS6をインストールして別マシンからSSHログインができるようになるまでにかかった時間を考えると、楽すぎて驚くしかない。

操作してみる

操作にタイムラグがあるのではないかと心配していたが、気にならないレベル。
どうやらすでにhttpdとかが起動している状態になっているようなので、ab -n 1000 http://localhost/してみる。

まずは現在の自宅サーバ(CPU:AMD E-350)

Server Software: Apache
Server Hostname: localhost
Server Port: 80

Document Path: /
Document Length: 321 bytes

Concurrency Level: 1
Time taken for tests: 1.381 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 485000 bytes
HTML transferred: 321000 bytes
Requests per second: 723.87 [#/sec] (mean)
Time per request: 1.381 [ms] (mean)
Time per request: 1.381 [ms] (mean, across all concurrent requests)
Transfer rate: 342.85 [Kbytes/sec] received

続けてVPS(CPU:Xeon E5640)

Server Software: Apache/2.2.15
Server Hostname: localhost
Server Port: 80

Document Path: /
Document Length: 5039 bytes

Concurrency Level: 1
Time taken for tests: 0.396 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 5237000 bytes
HTML transferred: 5039000 bytes
Requests per second: 2526.71 [#/sec] (mean)
Time per request: 0.396 [ms] (mean)
Time per request: 0.396 [ms] (mean, across all concurrent requests)
Transfer rate: 12922.23 [Kbytes/sec] received

VPSの圧勝。
仮想化している分のオーバーヘッドがあって、Xeonといえど限度があるかと心配していたが、今より速いなら文句なし。

とりあえずここまで。

iOS7にしたiPhone5で横長の画像を横幅合わせで壁紙に指定する

…ことはできないようなのだ。
どうしてもしたければ、画像の上下に帯を追加することで強引に横幅全体を表示できる壁紙となる。
というワケで、画像をそのように加工するWebサービスを作ってみた。

成果物

  • 送信された画像ファイルを、iPhone5で壁紙にする際全体が入りきるように、上下に帯を追加して返します。
  • PNG,GIF,JPG,BMP形式に対応します。
  • 容量制限3MB(実際には2MBくらいでもだいぶきついです)



自動(試験的)

MediaWikiの表示をパソコンとスマホで切り替わるように

まず、スマホ対応のスキンを以下よりダウンロード。

配布サイト

ダウンロードしたWPtouch.phpとwptouchフォルダをMediaWikiのskinsディレクトリに入れる。

次にLocalSettings.phpを以下のように変更。

$wgDefaultSkin = 'vector';

if (preg_match("/(mobile|webos|opera mini)/i", $_SERVER['HTTP_USER_AGENT'])) {
    $wgDefaultSkin = 'wptouch';
} else {
    $wgDefaultSkin = 'vector';
}

 

 

 

画像を透過させるWebサービスを作ってみた

…と書くとすごそうに見えるかなぁ。見えないか。

前置き

ふとアクセス解析を見てみたら、このサイトに若干数ながらアクセスがあって驚いた。
この記事がよく見られているということは、世の中では画像の透過に若干の需要があるということだろうか。
画像の透過のためにPerlの実行環境を準備するような人が世の中にいるとは思えないので、以前作成したスクリプトを手直ししてCGIとして動作するようにしてみた。
これで誰でも今すぐにブラウザから画像を透過させられるWebサービスが誕生したことになる。すごい…かなぁ

成果物

  • 送信された画像ファイルを透過画像にして返します。
  • 最も左上のピクセルと同じ色の部分が透過されます。
  • PNG,GIF,JPG,BMP形式に対応します。(JPG,BMP形式は透過に非対応なのでPNG形式になります。またJPGは形式の特性上きけいに透過されません。)
  • 容量制限3MB(実際には2MBくらいでもだいぶきついです)

でもどう考えても同じ結果が得られるもっと便利なフリーソフトが存在してるだろうなぁ

iOS7以降のiPhone(iCloud)のリマインダーと、ThunderbirdのLightningでTODOを同期する

9月上旬くらいまでこちらの方法でiPhone(iCloud)のリマインダーとThunderbirdのLightningでTODOを同期して利用していたが、しばらく前からLightning側がエラーで同期できなくなった。

調べてみると、iOS7のダウンロード開始と同時にiCloudもリニューアルされたらしく、その影響と推測される。

参考サイトのツールで「リマインダー」のアドレスを確認してみると、以前使用していた

https://p01-caldav.icloud.com/xxxxxxxx/calendars/tasks/

から

https://p01-caldav.icloud.com/xxxxxxxx/calendars/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/

に変わっていた。

新しいアドレスに変更すると、以前のように同期できた。

解決。

 

Win7x64でSheepShaverを起動しようとするとエラーがでて起動できない

「cannot map second kernel data area 487」とのこと。

以前から時々出ていたが、最近頻繁になってきたので調べてみた。参考記事

なるほど…SheepShaverは32bitでアクセスできるメモリ(先頭から約4GB)までしか使えないとのこと。

根本的な解決ではない気はするが、Windowsを再起動した直後でメモリがあいてるときにSheepShaverを起動すれば、とりあえず使える。

 

 

PerlのImagerでRPGツクール用画像素材を透過PNG画像に変換する

フリーで配布されているRPGツクール用画像素材の中には、改変してRPGツクール以外にも使用してよいというありがたい規約のものが存在する。

なのでさっそく素材として使おうとすると…背景が緑だかグレーだかの色で塗りつぶされていて透過になっていない!

おそらくこれがRPGツクール画像素材の規格なのだろうが、このままでは他のことに使いにくい。そのためこれを透過PNG画像に変換することを考える。

1個1コPhotoshopなどで加工してもよいが、なんとか楽をする方法を考えたい。

そういえば以前PerlのImagerをちょろっと勉強していたのを思い出し、それでなんとか自動化できないか、と考えた。

公式ドキュメントにバッチリ載ってる。

こんな感じで実現できた。

use Imager;

local $inputdir = './in';
local $outputdir = './out';

my @filelist = &get_files("$inputdir/");
foreach(@filelist){
	my @name = split(/\./,$_);
	my $in = Imager->new;
	$in->read( file => "$inputdir/$_") or die $imager->errstr."\n$inputdir/$_\n";
	my $work = Imager->new(xsize => $in->getwidth, ysize => $in->getheight, channels => $in->getchannels);
	my @color = $in->getcolors();
	$work->box(filled => 1, color => $color[0]);
	my $out = $work->difference(other => $in);
	$out->write( file => "$outputdir/$name[0].png")or die $out->errstr;
}