web屋が使えそうなlinuxコマンドメモ
findは一括でデータを書き換える為使い方によってはサーバが死にます。
重々良く確認してご使用ください。
自己責任でよろ。
.phpのパーミッション一括変更
ディレクトリのパーミッション一括変更
find . -name \*.php -exec chmod 755 {} \;
カレントディレクトリ(SSHで今いる階層)以下のファイルに対して有効
ファイルを指定する場合は『\*.php』を書き換える。
example)hogehoge.cgi、hogehoge.log、hogeoge.php など
カレントディレクトリ(SSHで今いる階層)以下のすべてのディレクトリに対し作用。
find . -type d -exec chmod 755 {} \;
カレントディレクトリ(SSHで今いる階層)以下のすべてのディレクトリに対し作用。
find . -name \* xargs chmod 777
ただし、こちらは『\*』を適時書き換える事によって、カレントディレクトリ以下の
該当の特定ディレクトリのみ一括で書き換えを行える。
もっといろんな方法は、以下を参照
http://w.livedoor.jp/pinetail/d/Linux%A5%B3%A5%DE%A5%F3%A5%C9Tips
windows7 64bit上での fireworks(ファイアーワークス) cs3の挙動不安定(ツールを選択できない)問題についての解決策。
デザイナーからサポート依頼を受けました。
内容は、最近買い換えたwindows7 64bit icore5 8G 上で、firewoksの動作が不安定だと言う。
adobe fireworksのバージョンはcs3。
確認した所 ツールが選択出来たり出来なかったり。
今回はクラッシュなどは発生していないようです。
そこで、windows7のディスプレイ出力廻りを調査。
解決策を発見したので、メモ。
ぱっと見ネット上でも解決策は載っていないようなので、掲載しておきます。
誰かの助けになれば幸いです。
以上で、それ以降、問題なく、安定動作したようです。
まず、現在fireworksを開いているようであれば、閉じてください。
『fireworksのショートカット』を右クリック
※ショートカットはいつもfireworksを起動時にクリックしているアイコンの事。
↓
『プロパティ』を左クリック
↓
『互換性』を左クリック
↓
『互換モードでこのプログラムを起動する』にチェックを入れ、『xp sp3』か『vista sp2』あたりを選択
↓
『デスクトップコンポジションを無効にする』にチェックを入れます
↓
『適用』『OK』
困っている方はお試しあれ。
以下、蛇足として原因として考えられる事。
windows7のDWMが有効になると、デスクトップデバイスへの直接描画から、
GPU経由での、合成出力となる。
この際に、レンダリングと、クリック入力の取得方式の問題から起こったのではないか?
とりあえず、この問題はこれにて了。
copyrightを今現在javascriptで自動更新させると言う事。
クライアントPCに依存するので使っちゃダメ。
おとなしくサーバーサイドにしましょう。
phpであれば、
Copyright © <?php echo date("Y");?> hogehoge All rights reserved.
みたいな感じ。
いずれも、.htmlで動かすなら、.htaccessを設定する必要があります。
AddType application/x-httpd-php .php .html
もしくは
AddType application/x-httpd-php .php .html
を.htaccessに記入する。
※サーバによってPHPをHTML上での動かす方法が違います。
上記はlinux系になります。freeBSDや、レンタルサーバ(サクラなど)によっても違いますので注意。
もしくは最近はもう、年月記載が流行ってないみたいなので、素直に
・Copyright © hogehoge All rights reserved.
・Copyright (c) hogehoge All rights reserved.
とするのもありかもです。
今更ながら簡単にXPとCentOS5をデュアルブートさせる方法
CentOS、XPに標準でついているgrubが上手く動かなかったので、メモ。
XPをインストール。
その際、適当にパーティションを区切る。
(パーティションの余っている方へCentOSをつっこむ。)
インストール後、PCの仕様を元にドライバ突っ込んだり、いろいろする。
次にCentOSをインストール。ブートローダーの設定がGUIからしか出来ないため、
インストールモードは必ずGUIで。
(インストール後は、今回はCUIを想定)
インストール途中
[パーティションレイアウトの再確認と変更] を選択、 [次]へ
未割り当て領域が選択されていることを確認して [次]へ
適当にXPと、CentOSを指定して、[高度なブートローダオプション]を選択し、[次]へ
hogehogeの最初のブートパーティションの最初のセクタを選択して[次]へ
後は適当にインストール。
そして最後にhttp://sourceforge.net/projects/grub4dos/から
・grldr と ・grub.exeをパーティションの直下(ルートディレクトリまたはc:¥など)にコピー。
c:\boot.iniをノートパッドで開きc:\grldr="grub4dos"を追加。
起動時に F8 キーなどを押し OS選択画面へ移動。「 grub4dos 」を選択、確認。
以上。
名前空間
今まで名前空間にもmainが一番上に来る箒上の順序があるもんだと思ってたんだけども、
実は無いみたい。
#!/usr/bin/perl use strict; use warnings BEGIN{ $| = 1;print "Content-type: text/html\n\n"; open(STDERR, ">&STDOUT");print "start <br/>"; } package aaa; BEGIN{print "aaastart <br/>";} sub say{ my $class = shift; my $say = "hello aaa <br/>"; $class->output($say); } sub output{ my ($this,$arg) = @_; print $arg;} 1; package Test; print "hello world <br/>"; BEGIN{print "end <br/>" ;} aaa->say; 1; 1;
こんな感じに適当に打ってやると
普通にサブルーティン以外は、BEGINが上から処理された。びっくりだ。
つまり、main空間は使わなくても問題ないで
初期実行のみサブルーティンで囲わず書いとくと、スタート地点を擬似的に制御できるみたい。
NanoA見てて、なんでスタートがmain空間に無かったのか、どうやってNanoAルーティンから開始していたのか、
ようやく納得。
と言うか、こんな基本的なことも知らなかった事に驚きを隠せない。
動的且つ複数のスワップイメージを用意したい場合のjavascript on jquery
お客さんからCGIで一覧表示している写真A、B、Cに
Aに紐付いた写真a1、a2、a3
Bに紐付いた写真b1、b2、b3
と言う風に追加し、さらに
a1をマウスオーバーすると写真Aがa1に変わらないか?
と言うご注文をいただいたので、jqueryプラグイン的な物を作った。
本番環境では、それぞれを外部化して、使う。
もし通りかかったあなたが、これを使用するような事態になってたら、
jqueryに関しては、ご自分でググりやがってくださいませ。
またmainを外枠につけるなどの編集を加える事により
認識するsiblingsの範囲変更ができますので、そちらで一層自由度が変わるかとおもわれます。
js部分-------------------------------------------------------------------------------- <script type="text/javascript" charset="utf-8" src="jquery-1.4.2.min.js"></script> <script type="text/javascript" charset="utf-8"> <!-- $(document).ready( function() { //各種class、tempタグ設定 var class_main = ".main"; // メイン写真部 var class_sumn = ".sumn"; // サムネイル写真部 var class_temp = "span"; // $(class_sumn).mouseover( function() { $(this).siblings(class_temp).text($(this).siblings(class_main).attr("src",replace("_s", "")); $(this).siblings(class_main).attr("src",this.src); }); $(class_sumn).mouseout( function() { var changeSrc = $(this).siblings(class_temp).text(); $(this).siblings(class_main).attr("src", changeSrc); }); }); // --> </script> //js部分-------------------------------------------------------------------------------- css部----------------------------------------------------------------------------------- <style type="text/css"><!-- .hidden {display:none;} --></style> //css----------------------------------------------------------------------------------- html部---------------------------------------------------------------------------------- <div> <img class="main" src="winter.jpg" width="480" height="320"/> <br /> <img class="sumn" src="water_lilies_s.jpg" width="50" height="50"/> <img class="sumn" src="sunset_s.jpg" width="50" height="50"/> <img class="sumn" src="blue_hills_s.jpg" width="50" height="50"/> <span class="hidden">temp</span> <div/> <div> <img class="main" src="01_s.jpg" width="480" height="320"/> <br /> <img class="sumn" src="02_s.jpg" width="50" height="50"/> <img class="sumn" src="03_s.jpg" width="50" height="50"/> <img class="sumn" src="04_s.jpg" width="50" height="50"/> <span class="hidden">temp</span> <div/> //html部--------------------------------------------------------------------------------
foreachとmap
evalで動的useをしている時にふと思ったんだけども、
どっちが速いんだろう・・・。
悩んだら試してみるの法則。
Benchmark してみた。
for: 1 wallclock secs ( 0.53 usr + 0.02 sys = 0.55 CPU) @ 1824817.52/s (n=1000000)
map: 1 wallclock secs ( 0.25 usr + 0.00 sys = 0.25 CPU) @ 4016064.26/s (n=1000000)
以下試したソース
use Benchmark;
my %codes = ();
$codes{'for'} = q{foreach my $modules(@$modules_ref){eval"use $modules;";}};
$codes{'map'} = q{map {eval "use $_;";} @$modules_ref;};
my $ret = timethese(1000000,\%codes);
5000000回だとえらい差が出てくる。
そんな訳で今回はmapを採用。