2008年12月26日金曜日

PHP 入出力ストリーム

php://stdin
php://stdout
php://stderr
php://output
php://input
php://filter (PHP 5.0.0 以降で使用可能)
php://memory (PHP 5.1.0 以降で使用可能)
php://temp (PHP 5.1.0 以降で使用可能)

http://zapanet.info/phpdoc/wrappers.php.html

2008年12月19日金曜日

Flash Lite1.1とPHPセッションの連携

Flash Lite1.1では起動時にSWFに値を渡す方法(URLパラメータやparamタグ)が使えないようなので、SWFにセッションIDを渡すことができません。
http://www.1x1.jp/blog/2006/12/flashlite11_php_session.html

2008年12月16日火曜日

PHP:不要なパラメータを除去してリダイレクト

$jump_url="tekitou/?PHPSESSID=p5beb53ui77cms9a7smqcr5aa0&end=aa&a=2&s%5B0%5D=2&s%5B1%5D=3&w=1&logout=1&";
//不必要なパラメータを置換
$jump_url = preg_replace("/PHPSESSID=\w{26}/", "" , $jump_url);
$jump_url = preg_replace("/logout=\d/", "" , $jump_url);
//不要なパラメータのごみ取り
$jump_url = preg_replace("/&{2,}/", "&" , $jump_url);
$jump_url = preg_replace("/\?{2,}/", "?" , $jump_url);
$jump_url = preg_replace("/(\?&|&\?)[\?&]*/", "?" , $jump_url);
$jump_url = preg_replace("/[\?&]$/", "" , $jump_url);
if(preg_match("/[\?&]/",$jump_url)){
$jump_url .= "&".SID;
}else{
$jump_url .= "?".SID;
}
header("Location: ".$jump_url);

2008年12月15日月曜日

Linux:chmod

chmod -R 0777 tmp
ファイル・ディレクトリのアクセス権限を変更する。
ディレクトリを変更する際に、中のファイルやサブディレクトリも再帰的に変更する

GCアルゴリズム詳細解説

http://wiki.livedoor.jp/author_nari/d/#content_2

2008年12月11日木曜日

いまさらxargsの便利さを主張してみる

標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。
http://openlab.dino.co.jp/2008/02/20/133431188.html

2008年12月3日水曜日

DBテーブル設計するときのサンプル

code INT(10) UNSIGNED auto_increment PRIMARY
id varchar(100) NOT NULL
hp varchar(255)
foreign_code(10) UNSIGNED INDEX
edit_date datetime NOT NULL
updete_date timestamp NOT NULL CURRENT_TIMESTAMP

2008年11月20日木曜日

cakephp: レイアウトの使用

レイアウトの使用
/app/views/layouts/temp.thtml

<html>
<head>
<title><?=$title_for_layout?></title>
</head>
<body>
<?=$content_for_layout?>
</body>
</html>

コントローラー内
var $layout = "temp";
functon hoge(){
$this->pageTitle = "タイトル";
}

エレメントの使用
/app/views/elements/ele.thtml

テンプレート内
<?=$this->renderElement("ele",array("message" => "メッセージ"))?>

cakephp:デフォルトとは違うDBとTableを使用する時のmodelの設定

class Hoge extends AppModel {

var $name = 'Hoge';
var $useTable = 'H_Hoge';
var $useDbConfig = "hogehoge";
var $primaryKey = "hoge_id";
}

2008年11月18日火曜日

Webシステム用管理者画面作成マニュアル

管理者画面を作成する方向けに作ったひな型・CSS・HTMLサンプル&デザイン集のサイト
http://www.k-jouhou.info/~kanri-gamen/index.html

2008年11月17日月曜日

ポインタを含む宣言子の解釈

char *( *(*var)() )[10];
これをどう解釈するかですが、

1. 識別子を探す。この場合はvarのみ。
次に修飾子を展開していく。
2. (*var):varはポインタ。
3. (*var)():関数を指すポインタ。(( ) > *の優先順位)
4. *(*var)():戻り値はポインタ。
5. ( *(*var)() )[10]:ポインタは要素10の配列を指す。([ ] > *の優先順位)
6. *( *(*var)() )[10]:配列の要素はポインタ。
7. char *( *(*var)())[10]:ポインタはchar型を指す。

http://www5d.biglobe.ne.jp/~hetare/tips/pointer.html

2008年11月15日土曜日

PHP:WEBページの取得

$_rawData = getURL( "http://www.example.com/" );

function getURL( $pURL ) {
$_data = null;
if( $_http = fopen( $pURL, "r" ) ) {
while( !feof( $_http ) ) {
$_data .= fgets( $_http, 1024 );
}
fclose( $_http );
}
return( $_data );
}

2008年11月13日木曜日

cron:ディレクトリ移動して実行

45 * * * * root cd /home/*/public_html; /usr/bin/perl test.pl

2008年11月11日火曜日

Perl:無名配列と無名ハッシュのリファレンス

@aa =('aa',[1 , 2],{'alphabet' => 'alpha beta gamma'});
print $aa[1]->[0];
print $aa[2]->{alphabet};

2008年11月10日月曜日

pForm - フォームを簡単作成

http://www.phpform.org/

PHP:web 上のファイルが存在するかチェックする方法

$url='​http://www.example.com/images/pic01.jpg';​
$x=get_headers($url);

print $x[0];
?>

存在する場合の例は、 HTTP/1.1 200 OK
存在しない場合の例は、 HTTP/1.1 404 Not Found

http://okwave.jp/qa4295497.html

$url='http://www.example.com/images/pic01.jpg';
$x=get_headers($url);
if(preg_match("/OK$/",$x[0])){
echo "OK";
}else{
echo "NOT FOUND";
}

?>

2008年11月4日火曜日

STDOUTとかSTDERRとか

# シェルで 2>&1 と書くのとほぼ一緒。
open(STDERR, '>&STDOUT');

http://perl.g.hatena.ne.jp/Cress/20080331/1206933890

2008年10月31日金曜日

DBI クイックリファレンス

http://www.rfs.jp/sb/perl/dbi/02.html

map : リスト置換処理

@list = qw/text1 text2 text3/;
@new_list = map { $_=~ s/text/word/; $_ } @list;

Perl:quotemetaの使い方

引数からすべての正規表現のメタ文字をバックスラッシュでエスケープしたものを返します。つまり、/[A-Za-z_0-9]/にマッチしない全ての文字の前にはロケールに関わらずバックスラッシュが前置されます。

print quotemeta('(\S+)\s'), "\n";
> \(\\S\+\)\\s

2008年10月30日木曜日

複数のPCのアドレスを一挙に調べる方法

for /L in (1,1,254) do ping -n 1 192.168.20.%f

arp -a

このコマンドは192.168.20.1~254のマシンに対して順番にpingを実行する。

2008年10月28日火曜日

リファレンスのリストから最初の要素を取り出してリストにする

use Data::Dumper;
use Text::CSV_XS;
my $csv = new Text::CSV_XS({binary => 1});
open IN, "< list.csv";
foreach(<IN>){
$csv->parse($_);
push( @id, [$csv->fields()]->[0]);
}
print Dumper @id;
close IN;

Perl:複数行にわたるコメントを簡単に

Java や C 等に用意されている /* コメント */ のように、複数行に渡るコメントを記述したい場合、 Perl では perldoc用の記述方である =pod と =cut を使用することで、複数にわたるコメントを記述できます。 (以下参照)

print "ここは実行されます。\n";
=pod
ここはコメント行になります。
ここもコメント行になります。
=cut
print "ここも実行されます。\n";

http://www.site-cooler.com/tips/perl_comments.htm

2008年10月26日日曜日

ベンチャー経営者のための資金調達マニュアル

http://blog.kndb.jp/president/2008/10/vol1.php

Borland C++ Compiler 5.5インストール

http://cc.codegear.com/free/cppbuilder

環境変数
c:\Borland\Bcc55\bin

c:\Borland\Bcc55\binフォルダに

bcc32.cfg
-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib"

ilink32.cfg
-L"c:\Borland\Bcc55\lib"

を作成。

コンパイラオプション
ファイル名をhoge.cgiで保存
bcc32 -ehoge.cgi piyo.cpp

http://www.geocities.jp/bleis_tift/cpp/option.html

2008年10月25日土曜日

CakePHP:Routes の定義

独自ルートの定義により、アプリケーションを指定した URL で動作させることができるようになります。独自のルーティングは、/app/config/routes.php ファイルの Router::connect() メソッドを使用して定義します。
http://book.cakephp.org/ja/view/542/Routes-%E3%81%AE%E5%AE%9A%E7%BE%A9

2008年10月23日木曜日

2008年10月21日火曜日

バッチ処理 For

@echo off
for %%i in (1 2 3) do echo %%i


-------------------
1
2
3
-------------------

2008年10月18日土曜日

シリアルインタフェース設定

シリアルインタフェースの設定に関しては、2 つの仕様について説明する必要があります。通常、インタフェースは回線にクロッキングを提供する CSU/DSU タイプのデバイスに接続されています。ただし、ラボ環境のようにバックツーバックコンフィギュレーションの場合は、必ずケーブルの一方のエンドがクロッキングを提供します。これは、ケーブルの DCE 側になります。デフォルトでは Cisco ルータは全て DTE デバイスです。したがって DCE デバイスとして動作させる場合は、クロッキングを提供するように設定しなければなりません。
Router#config t

Enter configuration commands, one per line. End with CTRL/Z.

Router(config)#int s0/0

Router(config-if)#clock rate 64000

2008年10月15日水曜日

glob -- パターンにマッチするパス名を探す

foreach (glob("*.txt") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
?>
http://phpspot.net/php/man/php/function.glob.html

ディレクトリの生成と削除

-ディレクトリを生成する例
mkdir ("./lockdir", 0755) || die "ディレクトリ生成失敗 : $!";

-ディレクトリを削除する例
rmdir ("./lockdir") || die "ディレクトリ削除失敗 : $!";

2008年10月10日金曜日

クッキーつけてREQUESTしてRESPOSE取得

cookieないとコンテンツが取得できないとき。

use LWP;
use HTTP::Request::Common;

# requestオブジェクトを作成
my $req = GET( 'http://hogehoge.jp' );
$req->header(Cookie => 'ここにヘッダのクッキーを直接はりつけたりする。');

print "========== REQUEST ==========\n";
print $req->as_string;

# resposeオブジェクトを取得
my $ua = LWP::UserAgent->new;
my $res = $ua->request($req);

print "========== RESPONSE =========\n";
print $res->as_string;

perl で cookie を取得

http://www.augustus.to/blog/3128/archives/2004/08/perl_cookie.html

2008年10月7日火曜日

ロゴデザインのリソースとなりうるサイトTOP10

http://design-develop.net/design/top-10-sources-of-logo-design.html

crontab : ユーザごとの設定

ユーザー名一覧表示
cut -d -f1 /etc/passwd

ユーザーに変更
su user

/var/spool/cron/user に記述
crontab -e

# 毎日、日付変更の 5 分後に実行する
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
例)指定日時(10/1_3:00)にhoge.shを実行する。
0 3 1 10 * /usr/local/bin/hoge.sh
例)毎日、2時にhoge.shを実行する。
0 2 * * * /usr/local/bin/hoge.sh
例)月初めにの5時にhoge.shを実行する。
0 5 1 * * /usr/local/sbin/hoge.sh
例)2時間ごとにhoge.shを実行する。
0 */2 * * * /usr/local/bin/hoge.sh

http://park15.wakwak.com/~unixlife/linux/sys-cron.html

2008年10月5日日曜日

正規表現テストツール

http://www.vector.co.jp/soft/dl/winnt/prog/se300261.html
http://www.hi-ho.ne.jp/babaq/bregexp.html

Linux:ハードディスクを増設したい

 Linuxをファイルサーバとして利用していると,「/home」などのディレクトリを別のハードディスクに移動したいことがある。そんな時は,新たにハードディスクを増設して任意のマウントポイントを作成すればよい。
http://www.itmedia.co.jp/help/tips/linux/l0112.html

2008年10月2日木曜日

jQuery :HTMLが読み込み終わった後に実行する

jQueryでは,HTMLが読み込み終わった後に実行するコードを,onload ではなく, $(function(){}) を利用して実行します.

<script type="text/javascript">
<!--
$(function(){
$("<div class='hoge'>ああああ</div>").appendTo("body");
});

// --></script>

PHPとCGI(Perl)とjQueryを利用してファイルアップロードの進行状況を表示する

http://blog.livedoor.jp/t_furu/archives/51062075.html

2008年10月1日水曜日

VIEWのDEFINERユーザーの変更方法

SHOW CREATE VIEW v_table

でviewを確認。
-------------
CREATE
ALGORITHM=UNDEFINED
DEFINER=`otheruser`@`otherhost` SQL SECURITY DEFINER
VIEW
v_table
AS
select count(table.id) AS id_count
from table
where (table.id is not null);
-------------

CREATEをALTERに変更
DEFINER=~を変更

-------------
ALTER
ALGORITHM=UNDEFINED
DEFINER=`user`@`localhost` SQL SECURITY DEFINER
VIEW
v_table
AS
select count(table.id) AS id_count
from table
where (table.id is not null);

-------------
実行。

2008年9月30日火曜日

2008年9月25日木曜日

PHP - $_REQUEST

$_REQUEST には$_GET, $_POST, $_COOKIEの内容が連想配列として格納される。GETメソッド,POSTメソッドで渡される引数に加え、クッキーの変数も設定される。PHP4.1.0より前のバージョンでは使用することができない。

2008年9月23日火曜日

ビデオコーデックのインストール

DivX / Xvid / WMV / x264 / Lame MP3 ... 各種コーデックの導入
http://www.backupstreet.com/tools/setup-codecs.html

2008年9月20日土曜日

htaccessにてRewriteRuleを有効にする

http://www.netchan.com/blog/archives/92

2008年9月16日火曜日

PHPでcdbファイル読み込み

$cdbid = dba_open("test.cdb", "r", "cdb");

$key = dba_firstkey ( $cdbid );
$cols[] = dba_fetch($key,$cdbid);
while($key = dba_nextkey ( $cdbid )){
$cols[] = dba_fetch($key,$cdbid);
}
print_r($cols);
?>

2008年9月11日木曜日

携帯サイト構築メモ SoftBank編

http://d.hatena.ne.jp/ryster/20071009/1191900864

SSLのページでSoftBank携帯だと絵文字が表示されない場合がある

「メールに記載されたURLが
https://example.com/
な直接SSLのページのURLだと絵文字表示されないよ。」
と教えていた。
どうやら、一度HTTPのページを経由しないと
絵文字を表示できないらしい。

http://blog.livedoor.jp/haruta_makoto/archives/50187441.html

2008年9月8日月曜日

PHPで相対パスから絶対URL(URI)を作成する

元となるURLとそれに対する相対パスを指定すると絶対URLを作成するというやつです。
function make_uri($base='', $rel_path=''){

$parse=array();
$parse=parse_url($base);

if (preg_match('/^https\:\/\//',$rel_path) ){
return $rel_path;
}
elseif ( preg_match('/^\/.+$/', $rel_path) ){
return $parse['scheme'].'://'.$parse['host'].$rel_path;
}
else{
$a=split('/',dirname($parse['path']));
$b=split('/',$rel_path);
foreach ($b as $v){
if ($v=='.'){}
elseif($v=='..'){ array_pop($a); }
else{ array_push($a,$v); }
}
$path=join('/',$a);
return $parse['scheme'].'://'.$parse['host'].$path;
}
}
http://logic.stepserver.jp/data/archives/501.html

Perlのデバッガ

http://homepage3.nifty.com/hippo2000/perltips/perldbg.htm
http://d.hatena.ne.jp/perlcodesample/20080109/1199880506

無名関数とクロージャ

http://www.geocities.jp/ky_webid/perl5/028.html

2008年9月5日金曜日

sitemap.xmlからurl抜き出してテキストに保存

use utf8;
open(FILEHANDLE, 'sitemap.xml');
$i=0;
while($line = <FILEHANDLE> ){
if($line =~ /<loc>(.+?)<\/loc>/){
$source .= $1."\n";
}
}

close(IN);
print $source;
open(OUT, "> url.txt");
print(OUT $source);
close(OUT);

ファイルを1つコピーするだけでWindowsXPの再アクティベートを回避する術

http://www.lifehacker.jp/2008/09/1windowsxp.html

2008年9月4日木曜日

Class::Accessor

package Class;
use base qw( Class::Accessor::Fast );
__PACKAGE__->mk_accessors( qw(X Y) );

# オブジェクトを作成して返す

sub new{
my $class = shift;
my $self = {
X => 10,
Y => 100,
};

return bless $self, $class;
}
------------------
use Class;

my $obj = new Class;
$aa = $obj->X;#引数をゲット
print $aa;
print "\n";
$obj->X(200);#引数をセット
print $obj->X;
-----------
10
200

2008年9月2日火曜日

use base qw(Human)

use base は、引数に与えられたモジュールを require しますので、use をする必要はありません。
これによって、Bakerクラスは、Humanクラスのメソッドを継承出来ます。
http://www.rwds.net/kuroita/program/Perl_oo.html

いまさら聞けないPlagger入門編

http://d.hatena.ne.jp/toshi123/20060911#p1

2008年9月1日月曜日

2008年8月29日金曜日

携帯用htmlの例1

知識ナビ
<a href="">知識ナビ</a><br>

<div Align="right"><a href="#con"><font color="#3366FF" size="1">▼Contentsへ</font></a></div>
┗ああああああを正しく知ろう

<font color="#333399" size="1">┗ああああああを正しく知ろう</font><br>

◆このサイトについて


<p>◆このサイトについて</p>


<hr color="#ff9999" size="3">

コードをUTF-8で記述して、shiftjisで出力例

use utf8;
use Encode;
binmode STDOUT, ":encoding(shiftjis)";

$hoge = "ほげ";
print utf8::is_utf8($hoge) ? 'UTF-8 Flag' : 'not UTF-8 Flag';
#print encode("shiftjis", $hoge);
print "\n";
print $hoge;
print "\n";
print "あひゃひゃひゃ";

2008年8月22日金曜日

phpの文字コード変換で文字化け

phpの文字コード変換で文字化け
utf-8でコーディングしていて、
携帯用のサイトなのでShift-JISに変換して
サイトに出力しようと思っています。

$out = mb_convert_encoding($out, "SJIS", "UTF-8");

のようにしてみて、$outをechoしたのですが、
文字が化けてしまいます。


UTF-8のBOMに苦しむ

PHP で UTF-8 に付いている BOM を削除する方法

各キャリア別の携帯電話でのGPSデータの取得方法

http://ke-tai.org/blog/2008/08/21/phptips96/

3D、ゲーム、物理エンジン、トゥイーンなど、ActionScript3用便利ライブラリ集

3D、ゲーム、物理エンジン、トゥイーンなど、ActionScript3用便利ライブラリが紹介されていました。
http://phpspot.org/blog/archives/2008/08/3dactionscript3.html

2008年8月21日木曜日

Web::Scraper参考

http://e8y.net/mag/013-web-scraper/#%E4%BD%BF%E3%81%84%E6%96%B9
http://d.hatena.ne.jp/naoya/20070509/1178686816
http://en.yummy.stripper.jp/?eid=555416
http://subtech.g.hatena.ne.jp/miyagawa/20070510/1178794595
http://d.hatena.ne.jp/fbis/20070510/1178783909

HTML::TagParser その2

use HTML::TagParser;
use Encode;

my $html = HTML::TagParser->new( "keyword.html" );
my @list = $html->getElementsByTagName( "div" );
for my $elem ( @list ) {
print encode('shiftjis', decode('utf-8', $elem->innerText)) if ref $elem;
print "\n";
}

Encode その2

utf8 → sjis に変換

---------------

use Encode;
my $str = "テスト元の文字コードは utf8'";
print $str;
print "\n";
$str = decode('utf-8', $str);
$str = encode('shiftjis', $str);
print $str;

------------------
use Encode;
my $str = "テスト元の文字コードは utf8'";
print $str;
print "\n";
print encode('shiftjis', decode('utf-8', $str));

---------------
でも可。

JcodeとEncode

utf8 → sjis に変換

------------ 

use Jcode;
$str = "テスト元の文字コードは utf8'";
print $str;
Jcode::convert( $str , "sjis", "utf8" );
print $str;

-----------

use Encode;
$str = "テスト元の文字コードは utf8'";
print $str;
Encode::from_to($str, 'utf8', 'shiftjis');
print $str;

2008年8月20日水曜日

HTML::TagParser - HTMLソースの解析/属性値やinnerTextの取得

DOM 風のインターフェースで、各 HTML タグごとに属性値やinnerText値を取得できます
http://www.kawa.net/works/perl/html/tagparser.html

Yahoo!が提供するレイアウト用CSSライブラリ

Yahoo!が提供するYahoo! UI Library。

このCSSライブラリを使うことで、ページの複雑なグリッドレイアウトが比較的容易に作れます。
更に、このライブラリで作ったページは大体のブラウザに対応しているというので動作確認の手間も省けそうです。

基本のHTMLを書いておけば、classの変更で簡単にレイアウト変更が可能な形になっているようです。

http://phpspot.org/blog/archives/2006/05/yahoocss.html

ロゴが出来るまでのプロセスまとめ

http://www.designwalker.com/2008/08/logo-process.html

2008年8月19日火曜日

著名ソーシャルメディアが使っているアルゴリズムを大公開!

人気ソーシャルメディアのアルゴリズム
http://web-tan.forum.impressrd.jp/e/2008/08/19/3751

体力を夜のうちに回復させるワザ

http://d.hatena.ne.jp/bizmania/20080819

HTML::Parser使い方

my @parsed = ();
&parseHTML($html);
#httpまたはhttpsからはじまるURLのみがprintされる
print @parsed, "\n\n";

sub parseHTML {
my $p = HTML::Parser->new(
api_version => 3,
start_h => [
sub {
my ($tagname, $attr, $text) = @_;
if ($tagname eq 'a') {
my $href = $attr->{href};
if ($href =~ /https?:/) {
push(@parsed, $href);
}
}
}, "tagname, attr, text"],

marked_sections => 1,
);
$p->parse(shift);
}

----------------------
コマンドからの入力

use HTML::Parser;
use Encode qw//;

my $html = Encode::decode("utf8", do { local $/ = undef; <>; });
my @parsed = ();
&parseHTML($html);
#httpまたはhttpsからはじまるURLのみがprintされる
print @parsed, "\n\n";

sub parseHTML {

my $p = HTML::Parser->new(
api_version => 3,
start_h => [
sub {
my ($tagname, $attr, $text) = @_;
if ($tagname eq 'a') {
my $href = $attr->{href};

push(@parsed, $href);

}
}, "tagname, attr, text"],

marked_sections => 1,
);
$p->parse(shift);
}

はじめてのHTML::Parser

http://d.hatena.ne.jp/amayan/20080320/1205973108

2008年8月18日月曜日

PerlでHTMLタグの除去

#コマンドライン引数で与えられたファイルから読み込んで出力。
#ファイルがUTF-8、出力がShift_JISの想定。

use strict;
use warnings;

use Encode qw//;
use HTML::Parser;

my $html_str = Encode::decode("utf8", do { local $/ = undef; <>; });

my $parser = HTML::Parser->new(
api_version => 3,
text_h => [sub { print Encode::encode("shiftjis", shift); }, "dtext"]
);
$parser->parse($html_str);

2008年8月15日金曜日

CDATAセクション--JavaScript

JavaScriptブロックをCDATAセクションで囲み、さらにCDATAセクションをJavaScriptのコメントを使って「コメントアウト」します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>JavaScript Code Block Example</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<script type="text/javascript">
//<![CDATA[

var dt = Date();
var msg ='<h3>Hello, World! Today is ' + dt + '</h3>';
document.writeln(msg);

//]]>
</script>
</body>
</html>

CDATAセクション

CDATAセクションは、という文字列で終わる。CDATAセクションの内部には、XMLで利用可能な文字をすべて記述することができる。唯一の例外は]]>という文字列だけで、これを記述することはできない。記述しても、CDATAセクションの終了を示すと解釈されてしまう。
http://www.atmarkit.co.jp/aig/01xml/cdata.html

ディレクトリを再帰的にたどりファイル一覧を取得したい 

;#
;#ファイル表示
;#

use File::Find;

#-- ディレクトリを指定(複数の指定可能) --#
@directories_to_search = ('./');

#-- 実行 --#
find(\&wanted, @directories_to_search);


#--------------------------------------------
#ファイルが見つかる度に呼び出される
#--------------------------------------------
sub wanted{
print $File::Find::dir, '/'; #カレントディレクトリ
print $_; #ファイル名
print "\n";

#フルパスのファイル名
#print $File::Find::name, "\n";
}


実行結果

./.
./index.cgi
./define.pm
./dbdocs
./js
./js/index.js
./note
./note/index.cg
./note/add.cgi
./note/view.cgi
./note/del.cgi
./css
./css/view.css

http://katsubemakito.net/cgiperl/2006/10/perl2.html

ファイル演算子「 -f 」で、通常ファイルの存在を確認する。

#!/usr/bin/perl
use strict;
use warnings;

### 通常ファイルの存在を確認する。
# -f ファイル名

print "1: 通常ファイルの存在を確認する。 -f \n";
my $file = 'a.txt';
if( -f $file ){ #
print "'$file' は、存在します。\n";
}
else{
print "'$file' は、存在しません。\n";
}

__END__


http://d.hatena.ne.jp/perlcodesample/20080505/1209997969

様々なイラストレーターのテクニックや素材を紹介する「イラレラボ」

Designdevelopではデザインに役立つTipsを公開してきましたが、今回紹介する「イラレラボ illustrator-labo」はイラストレーターに特化してTipsや素材などを紹介配布されているサイトです。
http://design-develop.net/design/illustrator-lab.html#more-1022

2008年8月11日月曜日

Data::Dumper

#!/usr/bin/perl

use Data::Dumper;

$a = 'abc';

if(a eq 'abc') {
print Dumper $a; # この行はデバッグコードだからあえてインデントしない
$a = 'xyz';
print Dumper $a; # この行はデバッグコードだからあえてインデントしない
}

1;

PerlによるCSVファイルの高速集計 2

http://codezine.jp/a/article/aid/1020.aspx?p=2

2008年8月7日木曜日

無料で900個以上のPhotoshop用ブラシを山ほどダウンロードできる「BrushKing」

http://gigazine.net/index.php?/news/comments/20080807_brushking/

ゆなカラーピッカー

カラーピッカーです。画面上の色を16進数のRGB値で取得することができます。例えばborderの色を他の箇所の色と揃えなければならない場合など、すぐに色名がわかるので便利です。もちろん、CSSを追ったりFirebugを使っても色名は取得できますが、直接取得した方が直感的です。
http://www.uryusoft.com/software/YunaColor/

DVDケースやCDケース、iPhoneなどの高品質PSDテンプレート集

http://phpspot.org/blog/archives/2008/08/dvdcdiphonepsd.html

2008年7月28日月曜日

use Getopt::Long;

Perl スクリプトでのコマンドラインオプション処理
http://www.emptypage.jp/notes/getopt-on-perl.html

use FindBin

FindBin 実行パスを見つける
http://d.hatena.ne.jp/minesouta/20070818/p1

2008年7月27日日曜日

File::Spec - ファイル名に対する可搬性のある処理

OSに依存しないファイル名を作成する File::Spec->catfileCommentsAdd Star
http://d.hatena.ne.jp/perlcodesample/20080516/1210952319
File::Spec->catdir()
ディレクトリの連結
print File::Spec->catdir('aaa', 'bbb');
----表示----
aaa/bbb

Perlのtag除去処理

open(IN, "0000000.html");
while () { $source .= $_;}
close(IN);
$source =~ s/<.*?>//g;
open(OUT, "> test.html");
print(OUT $source);
close(OUT);

バッチファイルコマンド

# echo  バッチファイルの中のメッセージの表示、非表示を切り替える
# rem  注釈行を設定する

@echo off
echo %0
echo %OS%
echo %COMSPEC%
echo %SystemRoot%

test.bat
Windows_NT
C:\Windows\system32\cmd.exe
C:\Windows

PerlのTips

Perl表技集

perl CGIでデバッグする良い方法、Tips等ありましたら教えてください。

http://q.hatena.ne.jp/1123817964

2008年7月26日土曜日

Plagger インストール

http://blog.livedoor.jp/hakin/archives/50690272.html

gmail_notify.ttが見つからないというエラーが出る
Plagger::Plugin [fatal] file error - gmail_notify.tt: not found at line 144
いわゆる「assetsの罠」です。assetsをコピーして、global:でassetsのパスを設定します。

Plagger::Plugin::Publish::Gmail [error] Error while sending emails: Undefined subroutine &MIME::Lite::extract_addrs called at /...(snip).../Plagger/Plugin/Publish/Gmail.pm line 217. のエラーが出る

MIME::Liteがバージョンアップしたことによりメソッド名が変更されたのが原因です。Plugin/Publish/Gmail.pmを http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/Publish/Gmail.pm と差し替えると動作するようになります。

2008年7月24日木曜日

エロフォルダの隠し方(Vistaでは出来ない模様)

フォルダ名の最後に
.{00000000-0000-0000-0000-000000000000}
をつける

右クリック→開く
これで開く

2008年7月22日火曜日

フリーソフトウェアライセンス

MIT License
http://ja.wikipedia.org/wiki/MIT_License
フリーソフトウェアライセンス
http://www.gnu.org/licenses/license-list.ja.html
○オープンソースの現状と問題点
http://oooug.jp/start/open/open04.html

Googleのロゴで使われているフォントは「Catull」

Googleのロゴで使われているフォントは「Catull」
font-familyプロパティは要素内の文字の表示書体となるフォントを指定します。
http://w3g.jp/css/font/font-family

UI/UXのバイブル - 書評 - About Face 3

UI (User Interface) そして UX (User Experience)にとっての本書は、CにとってのK&R 、Perlにとってのラクダ本である。すなわち、バイブルであると。
http://blog.livedoor.jp/dankogai/archives/51083470.html

2008年7月20日日曜日

CSS忘れがちなとこ

タグに直接スタイルを記述
<div style="color: red;">この文字の色は赤</div>

aliceblue
#f0f8ff


lavender
#e6e6fa


lightsteelblue
#b0c4de


MogaZineロゴ色
#E6E6FA
Catull(bold)

2008年7月16日水曜日

文字列置換 str_replace

$beginner = "初心者のためのホームページ作り";
$replace = "ホームページ作り";
$scriptphp = "PHP入門";
$word = str_replace($replace, $scriptphp, $beginner);
print($word);

str_replace、便利な所と注意点

2008年2月版web開発者のためのベストクリップ36個

ものすごいクオリティの高いものが揃っている素材サイト。
指定した色の配色パターンを導き出してくれるwebサービス
http://e0166.blog89.fc2.com/blog-entry-481.html

タグ記号変換

http://wolfside.com/i/x/tc.php

2008年7月15日火曜日

特殊文字の一覧

http://www.tagindex.com/html_tag/basic/character.html#t01

お願いのメールをサラッと書ける言い回し

●幸いです
例:「〜していただけると幸いです。」
●助かります
例:「〜ですと助かります。」

●ご検討のほど…
例:「〜の件について、ご検討のほど宜しくお願いいたします。」

●うれしいです
例:「〜をお願いできればうれしいです。」

●お力添え
例:「〜についてお力添えいただければと思っております。」
http://www.lifehacker.jp/2008/07/post_1.html

ブロックレベル要素をセンタリングする方法

http://www.mozilla.gr.jp/standards/webtips0004.html

2008年7月6日日曜日

シャッフル

<html>
<head>
<title>シャッフル</title>
</head>
<body>
<script language="JavaScript"><!--
data = new Array();
for (i=0; i<10; i++) data[i] = i;
for (i=0; i<10; i++) // 10はシャッフルする回数
{
n1 = Math.floor(Math.random() * 10);
n2 = Math.floor(Math.random() * 10);
n = data[n1];
data[n1] = data[n2];
data[n2] = n;
}
// 結果表示
var Message = [
"<A HREF='http://www.yahoo.co.jp/' target='_blank'>ヤフーへジャンプ</A>",
"<A HREF='http://www.infoseek.co.jp/' target='_blank'>InfoSeekへジャンプ</A>",
"<A HREF='http://www.goo.ne.jp/' target='_blank'>Goo へジャンプ</A>",
"<A HREF='http://www.yahoo.co.jp/' target='_blank'>ヤフーへジャンプ</A>",
"<A HREF='http://www.infoseek.co.jp/' target='_blank'>InfoSeekへジャンプ</A>",
"<A HREF='http://www.goo.ne.jp/' target='_blank'>Goo へジャンプ</A>",
"<A HREF='http://www.yahoo.co.jp/' target='_blank'>ヤフーへジャンプ</A>",
"<A HREF='http://www.infoseek.co.jp/' target='_blank'>InfoSeekへジャンプ</A>",
"<A HREF='http://www.infoseek.co.jp/' target='_blank'>InfoSeekへジャンプ</A>",
"<A HREF='http://www.goo.ne.jp/' target='_blank'>Goo へジャンプ</A>"
];
for (i=0; i<10; i++) document.write(Message[data[i]]+"<br>");
// --></script>
</body>
</html>

Tableオブジェクト

http://f32.aaa.livedoor.jp/~azusa/index.php?t=js&p=tableobject#insertRow
Table.insertRow(index)
http://jsajax.com/SamplesByID.aspx?id=157
insertBefore()
http://allabout.co.jp/internet/javascript/closeup/CU20040627A/index.htm

DOM:要素の複製 cloneNode

http://shain.tomocreative.net/2007/05/javascript_dom_clonenode_1.html

画像上の座標を所得する

http://himajin.moo.jp/javascript/event/zahyou.html

ブラウザ上で動作するWebエディタ作成Javascriptライブラリ

http://codepress.org/

toString

また、toString() というメソッドはさまざまなところで使用される。例えば、先ほどの例ではわざわざ toString() メソッドを呼び出して文字列に変換した後、その文字列を表示していた。
System.out.println(person.toString());
System.out.println メソッドには、Object 型をとるメソッドが用意されている (オーバーライドされている)。このメソッドを呼び出すと、引数に渡されたオブジェクトに対して自動的に toString() メソッドを呼び出した後、その文字列を表示する。つまり、そのままオブジェクトを渡しても同じ動作をしてくれる。
Object person = new Person("ほげほげ");
System.out.println(person);

スコープ

private...自分自身が含まれるクラス内からしかアクセスできない
protected...同じパッケージ及び継承するサブクラスからしかアクセスできない。
public...全ての場所からアクセス可能。
デフォルト・アクセス...以上の何れも指定しない場合。パッケージ・アクセスとも言われる。同じパッケージに属するクラス内からしかアクセスできない。

メソッド内で記述可能な修飾子 final
メソッドに記述可能な修飾子 public protected private final synchronized (abstract) static
メソッド内インナークラスに記述可能な修飾子 abstract final
クラスに記述可能な修飾子 abstract final (public)
インナークラスに記述可能な修飾子 final private protected abstract static
インナークラス内メソッドに記述可能な修飾子 final (abstract) private protected インナークラスがstaticならstaticもok
http://www.nextindex.net/java/modify.html

2008年3月28日金曜日

誕生日から年齢の範囲のidを返す

SELECT
member_id,
(DATE_FORMAT(NOW(), '%Y%m%d')-DATE_FORMAT(member_birth, '%Y%m% d'))/10000 age
FROM member_table
WHERE
(DATE_FORMAT(NOW(), '%Y%m%d')-DATE_FORMAT(member_birth
, '%Y%m%d'))/10000 <= 30 AND (DATE_FORMAT(NOW(), '%Y%m%d')-DATE_FORMAT(member_birth , '%Y%m%d'))/10000 >= 20