2009年11月15日日曜日

思考の整理学

考えること、思考の整理方法について、体系的に書かれた入門書。

2009年11月14日土曜日

Google高額キーワード自動検索

Googleアドセンスの広告を自分のWebページに貼っている人は多いと思います。この広告ですが、同じクリック数でも、キーワードによって支払われる金額が違います。なぜならば、Googleアドワーズでの入札価格が違うからです。各キーワードにはそれぞれ単価があり、この値段は時々刻々変動しています。
http://automedia.sakura.ne.jp/seo_keyword/

2009年10月31日土曜日

cp -f でも上書き確認が出てしまう

aliasコマンドを実行すると、もしかしたら

cp      cp -i

が表示されませんか?
もしあれば、通常cpと打つと-iオプションが付いて実行されます。
\cpとすると、元のcpコマンドが実行されます。

http://okwave.jp/qa4073724.html

tar ball からファイルの取り出し

tar ball からファイルの取り出し

tar ball (*.tar.gz) から必要なファイルだけを取り出します。
例としまして autorespond-2.0.2.tar.gz からソースファイルを取り出します。

対象の tar ball に含まれるファイルを確認します。 tar コマンドの -t オプションを使用します。

$ tar -ztf autorespond-2.0.2.tar.gz
autorespond-2.0.2/
autorespond-2.0.2/README
autorespond-2.0.2/autorespond.c
autorespond-2.0.2/help_message
autorespond-2.0.2/qmail-auto
autorespond-2.0.2/Makefile

引き数に取り出すファイル (ディレクトリ) 名を指定して tar コマンドを実行します。

$ tar -zxf autorespond-2.0.2.tar.gz autorespond-2.0.2/autorespond.c

コマンド実行後、カレントディレクトリに引き数に指定したファイルだけが展開されます。

$ find .
.
./autorespond-2.0.2.tar.gz
./autorespond-2.0.2
./autorespond-2.0.2/autorespond.c

./autorespond-2.0.2/autorespond.c を取り出して操作は完了です。

http://www.freewheelburning.com/linux/misc.html#tar_t

2009年10月18日日曜日

SEOキーワードツール

http://www.seo-blogs.biz/keyword/

PythonRecipe

項目別にサンプルコードが載っており、お勧めです。
http://lightson.dip.jp/zope/ZWiki/PythonRecipe

[python]日本語のファイルを読み書きする

from codecs import open

in_file = open("before.txt", "r", "iso-2022-jp")
out_file = open("after.txt", "w", "utf-8")

for l in in_file: out_file.write(l)

in_file.close()
out_file.close()

http://d.hatena.ne.jp/yach/20080308#p1

【Python】urllib2 - http headersをセットする。

import urllib2

url = 'http://vsbabu.org/'

txdata = None
txheaders = {
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
'Accept-Language': 'en-us',
'Accept-Encoding': 'gzip, deflate, compress;q=0.9',
'Keep-Alive': '300',
'Connection': 'keep-alive',
'Cache-Control': 'max-age=0',
}
req = urllib2.Request(url, txdata, txheaders)
u = urllib2.urlopen(req)
print u.info()
print u.read()
  

http://vsbabu.org/mt/archives/2003/05/27/urllib2_setting_http_headers.html

urllib2モジュール
http://d.hatena.ne.jp/yumimue/20071231/1199129495

2009年10月12日月曜日

1つのIPで複数のSSLサイトを運用する方法

Listen 443
Listen 444
NameVirtualHost aaa.bbb.ccc.ddd:443
NameVirtualHost aaa.bbb.ccc.ddd:444

<VirtualHost aaa.bbb.ccc.ddd:443>
SSLEngine on
ServerName www.hoge.com
DocumentRoot /www/httpd/www.hoge.com
ServerAdmin webmaster@www.hoge.com
ErrorLog logs/error_log
TransferLog logs/access_log
SSLCertificateFile ssl.crt/www.hoge.com.crt
SSLCertificateKeyFile ssl.key/www.hoge.com.key
</VirtualHost>

<VirtualHost aaa.bbb.ccc.ddd:444>
SSLEngine on
ServerName www.moge.net
DocumentRoot /www/httpd/www.moge.net
ServerAdmin webmaster@www.moge.net
ErrorLog logs/error_log
TransferLog logs/access_log
SSLCertificateFile ssl.crt/www.moge.com.crt
SSLCertificateKeyFile ssl.key/www.moge.com.key
</VirtualHost>
http://q.hatena.ne.jp/1175171428

2009年5月30日土曜日

C:配列のポインタの挙動1

#include

int main(void){
char str[] = "ace";
char *p_str;
p_str = str;

printf("%c\n",*(p_str+1)); //c
printf("%c\n",(*p_str+1)); //b 配列str[0]のchar型変数に1を加算
return 0;
}

2009年5月26日火曜日

C:文字数のカウント

int ln;
char *str ="test";

for(ln=0;*str != '\0' ; str++,ln++);

printf("%sの文字数は\n",str);
printf("%d文字\n",ln);

2009年5月3日日曜日

WindowsXPをリモート起動

http://www.blackhair.biz/wiki.cgi?page=WindowsXP%A4%F2%A5%EA%A5%E2%A1%BC%A5%C8%B5%AF%C6%B0

CentOSでWakeOnLan使ってみる
http://rutake.ddo.jp/blog/techmemo/2008/09/centoswakeonlan.html

C:関数ポインタ

#include <stdio.h>

void func(char *);
void test(void (*)(char *) );
int main() {

test(func);
return 0;
}

void func(char *str) {
printf("%s",str);
}
void test(void (*fc)(char *)) {
(*fc)("testfunc\n");
}

2009年4月25日土曜日

C:ビットのonとoff

tmpのionまたはioffビットをonまたはoffする

int biton(int tmp,int ion){
tmp = tmp | (1 << ion);
return tmp;
}

int bitoff(int tmp,int ioff){
tmp = tmp & ~(1 << ioff);
return tmp;
}

C:10進数を2進数で表示2

32ビット表示
int number = 10;
int i;

for(i = 31;i>=0;i--){
printf("%c",((number >> i) & 1 ) + '0');
}

printf("\n\n");

2009年3月28日土曜日

C : 10進数を2進数で表示

*普通
#include <stdio.h>
int main(void){
int num = 255;
char num2[9];
int i = 0;
while(num > 0){
if(num % 2 == 1){
num2[i] = '1';
}else{
num2[i] = '0';
}
num = num / 2;
i++;
}
while(i>0){
i--;
printf("%c",num2[i]);
}
return 0;
}
*reallocで可変長配列
#include <stdio.h>
#include <stdlib.h>
int main(void){
int num = 255;
char *num2 = NULL;
int i = 0;
while(num > 0){
num2 = realloc(num2, sizeof(char) * (i + 1));
if(num % 2 == 1){
num2[i] = '1';
}else{
num2[i] = '0';
}
num = num / 2;
i++;
}
while(i>0){
i--;
printf("%c",num2[i]);
}
return 0;
}

2009年3月13日金曜日

モバイルデザインアーカイブ

モバイルデザイナーのモバイルデザイナーによるモバイルデザイナーのためのサイトです。
http://mobiledesignarchive.jp/

2009年3月9日月曜日

ソースコードを快適に読むための GNU GLOBAL 入門

http://www.machu.jp/diary/20090307.html#p01

2009年2月26日木曜日

SQLで最大値あるのレコードだけ抽出する

SELECT Q1.F1, Q1.F2, T1.フィールド3 FROM TABLE1 AS T1
INNER JOIN (SELECT フィールド1 AS F1, MAX(フィールド2) AS F2 FROM TABLE1 GROUP BY フィールド1) AS Q1
ON Q1.F1=T1.フィールド1 AND Q1.F2=T1.フィールド2;

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1310936753

2009年2月18日水曜日

Tokyo Cabinet

Tokyo Cabinetはデータベースを扱うルーチン群のライブラリです。
http://tokyocabinet.sourceforge.net/

2009年2月13日金曜日

JavaScript による、IE 6/IE 7 の判別/判定について。

http://queensryche.blog41.fc2.com/blog-entry-588.html

HTML:フォームの非選択

読みとり専用コントロール
<input type="text" readonly="readonly" name="info" value="読みとり専用です" />

form disabled
http://web.p-jisoku.com/2006/10/form_disabled.html

Disabledだけど、送信したいHTMLフォーム
http://chaichan.web.infoseek.co.jp/qa5500/qa5629.htm

2009年2月12日木曜日

SOY CMSは、SOHOやWebデザイナーの救世主になるかもしれない

http://www.dakiny.com/archives/cms/soy_cmsxamppsoy_cms/

直前にsave()したレコードのidを取得する

http://blog.livedoor.jp/k1LoW/archives/64803854.html

PHP:日本語文字列を指定文字数で分割して配列に

mb_language('Japanese');
mb_internal_encoding('SJIS');

$str = "あいうえおかきくけこaiueo";
$array = mb_str_split($str, 4);
print_r($array);

function mb_str_split($str, $length = 1) {

if ($length <1) return FALSE;

$result = array();

for ($i = 0; $i <mb_strlen($str); $i += $length) {

$result[] = mb_substr($str, $i, $length);

}

return $result;

}
http://www.developer0000.jp/2007/11/28/1975/

2009年2月5日木曜日

javascript : タグ名,ID名出力

*タグ名出力
var obj = document.getElementById("id_name");
var tName = obj.firstChild.tagName;
alert(tName);

*ID名出力
var idName = obj.firstChild.id;
alert(idName);

2009年2月4日水曜日

CakePHP:コントローラで複数のモデルを使用する

class HogeController extends AppController {

var $name = 'Hoges';
var $uses = array('Fuga','Hoge'); ← ここに他のモデルの名前を入れる。

2009年1月7日水曜日

JavaScriptのreplaceで正規表現による後方参照

http://memo.hirosiki.jp/article/27778598.html

Javascript:正規表現関係メモ

マッチ
var vname = "id";
re = new RegExp("^" + vname + "[0-9]+$");
if("id12".match(re)){
alert('あってまっせ');
}

置換
var newWord = "id12".replace(vname,"code");
alert(newWord);

2009年1月6日火曜日

jQuery:子要素に、条件式に合致する要素があるかどうか調べる。

<form id="sform">
<input name="sort" />
</form>

if($('#sform').children().is("input[name='sort']")){
alert('ありまんがな');
}

createElementしたものもjQueryオブジェクトにしちゃう方法

var ele = $(document.createElement('div'));

http://devml.blogspot.com/2008/11/createelementjquery.html