[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

2014/01/09

【雑記】おでん

1年ぶりぐらいの更新です。

ローソンのおでんが美味しい季節になりました。

僕のおすすめは
・しらたき
・だし巻き卵
・だいこん
・餅入り巾着

です。
特にだし巻き卵がおすすめです

おわり

2012/10/18

【CSS】スタイルの優先度

CSSの適応される優先度についてのまとめ

高 ↑ !important付きユーザ指定 !important付きCSS HTML内のCSS ユーザ指定 ブラウザの初期値 ↓ 低
となっているようです。 優先度とかあるのはわかりましたが、「!important」って何よ? ってことでまた調べます。 どうやらCSSの適応優先度を上げる宣言のようです、下記のように使用できます。
p {
  color: #FFFF00 !important;
}
他にも指定の仕方によってポイント等があって高い方から適応されるらしいです 詳細に指定していれば指定する程ポイントが上がるとか何とか、 とりあえず今回はここまでということで。

2012/08/24

【雑記】BIGINT型やばい


ヤバイ。BIGINT型ヤバイ。まじでヤバイよ、マジヤバイ。
BIGINT型ヤバイ。
まず多い。もう多いなんてもんじゃない。超多い。
多いとかっても
「INT型20個分ぐらい?」
とか、もう、そういうレベルじゃない。
何しろ9000京。スゲェ!なんか兆とか超えてるの。何千億とか何千万とかを超越してる。19桁だし超多い。
しかも符号ありでこれらしい。ヤバイよ、符号ありだよ。
だって普通は符号なしで何十億じゃん。だってDBのINT型が千億超えてたら扱いに困るじゃん。レコードが超多いとか困るっしょ。
phpmyadminのページャーが伸びて、サービスオープン1ヶ月のときは10ページだったのに、三年のときは2万ページとか泣くっしょ。
だからINTとか何千億超えない。話のわかるヤツだ。
けどBIGINTはヤバイ。そんなの気にしない。オートインクリメントしまくり。1日1億個のレコード挿入しても2億年持つとかよくわかならいくらぐらい多い。ヤバすぎ。
9000京って言ったけど、もしかしたら符号なしにしたら垓いくかもしんない。でも符号なしって事にすると
「じゃあ、BIGINT型使ってるテーブルってナニよ?」
って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。
あとオートインクリメントのカラムだけでテーブル作って全部埋めると超重い。約326エクサバイト。ギガバイトで言うと約3504億ギガバイト。ヤバイ。重すぎ。HDD増設する前に死ぬ。怖い。
それに普通に使ってても超余る。超スカスカ。一日1億回インクリメントしても億年とか平気で出てくる。億年て。小学生でも言わねぇよ、最近。
なんつってもBIGINT型は馬力が凄い。京とか平気だし。
うちらなんて京とかたかだかINT型で使用する必要が出てきただけでめんどくさいからDB設計見なおしたりするのに、
BIGINT型は全然平気。京を京のまま扱ってる。凄い。ヤバイ。
とにかく貴様ら、BIGINT型のヤバさをもっと知るべきだと思います。
そんなヤバイBIGINT型を使ってシステム作ってる人とか超偉い。もっとがんばれ。超がんばれ。


何やってんだろ

2012/08/11

【Linux】sshのIPアクセス制限


この前 試験サーバより本番サーバにrsyncでファイルを反映しようとした際に
遭遇したのでメモ

昨日まではファイルを正常にシンクできたのですが、今日になってなんとエラーが・・・

ssh_exchange_identification: Connection closed by remote host
え、何これ?と思って調べてみると 試験サーバから本番サーバへsshでのアクセスが禁止されていました。 原因は誰かがIP制限を導入したそうなのですが、それに漏れがあったかららしいです。 原因はわかったので、直接本番サーバにssh接続し IPアクセス制限に試験サーバのIPを追加しました。 /etc/hosts.allowvi で開き sshd という項目に試験サーバのIPを追加しました。
sshd : 111.111.111.111
複数指定する場合は、スペース区切り・または
sshd : 111.111.111.111 sshd : 222.222.222.222
というように指定します。 終わり

2012/07/27

【雑記】Fate/Zero Diningに行ってきた


会社の人とFate/Zero Diningに行って来ました


■店の前の看板?



■メニュー
一緒に行った人は「アインツベルンのコース」、僕は「遠坂のコース」です。
写真は「遠坂邸のメニュー」



■スープ「オニオンコンソメスープ」
なぜかカップはセイバーでした。
ちなみに「アインツベルンのコース」と一緒でした。



■サラダ「夏野菜のサラダ」
これも「アインツベルンのコース」と一緒でした。



■メイン1「黒毛和牛のハンバーグ赤ワインソース仕立て」
ハンバーグがやたら固いなと思ったら肉100%らしいです



■メイン2「二種のパンとフライドポテト」



■スイーツ「葵のクリームあんみつ」


葵の


クリームあんみつ




これがやりたかっただけ

終わり

2012/06/24

【Mac】ターミナルで使うコマンドのエイリアスを設定する

Macでごにょごにょしてたときにコマンドのエイリアスを
作ろうと思った時のメモ

ターミナル上でよく「ls -l」とかでファイルの確認とかをするのですが、
会社では、エイリアスで登録されているためよく打ち間違えてしまいます。
なので一緒にしておこうということで設定しました。

まず、自分のホームディレクトリにターミナルで移動し、
「.bashrc」というファイルを開きます。
$ cd $HOME $ cd vim .bashrc
ファイルを開いたら、そこにエイリアスを定義します。 エイリアスの定義はこのように記述します。
alias エイリアス名1='コマンド1' alias エイリアス名2='コマンド2'
今回は「ll」というエイリアス名で「ls -l」を登録しました。
alias ll='ls -l'
エイリアスを定義したらファイルを保存し、「.bash_profile」というファイルを 編集します。
$ cd $HOME $ vim .bash_profile
「.bash_profile」には下記の項目を追加し、保存します。
source .bashrc
保存できたら下記コマンドを実行し、変更を反映します。
$ source .bash_profile
これで定義したエイリアスを使用できるようになります。 (再ログインでも反映されます) 終わり

2012/06/09

【雑記】社員旅行でハワイ行って来ました

06/03~06/07の3泊5日でハワイに社員旅行で行ってきました。

初日

ホテルから見た景色1


ホテルから見た景色2


海きれいすぎんだろ、びっくりしたわ

ホテルについて2時間ほどごろごろして、船に乗ってご飯を食べに行きました。
サンセットクルーズ?とかいうらしいです。

乗った船


夕日


ビールばっか飲んでたんですが、せっかくハワイに来たということで
ハワイっぽい飲み物を頼みました。




船内で現地の方による催し物がありました
が、ぶれまくりだったのでボツに



二日目
朝の10時からパラセイリング
高すぎて漏らすかと思った。写真はなし危ないので

パラセイリングの後、昼ごはんにマクドナルドに行って来ました。


クォーターパウンダーのセットを頼んだのですが、日本と違い
謎のパイナップルが付いてきました。
パイナップルで2ドルぐらい取られました。

食事の後実弾射撃に行こうということで行って来ました。
写真は撮り忘れました。

ライフルと自動拳銃とリボルバーを撃ってきました。
リボルバーで肩外れるかと思った。

夜になんか花火?があるらしく、ホテルの部屋からちょうど見えました。


三日目
一日中寝てました。

晩ご飯でなんか高いお店で肉を食べてきました。


肉美味しかった。

すごい疲れました、未だに時差ボケしてるのか夜は眠くならないです。

終わり

2012/05/20

【PHP】指定ディレクトリのファイルを日付ソートして配列で取得

現在作成中の機能で使った奴のメモ

phpで「scandir」という関数でファイル名一覧は取得できますが、
ファイルの更新日時等は取得できません。

更新日時等でソートする必要がなければいいのですが、どうしてもソートしたいという要望?が
あったので、それに対応するために「DirectoryIteratorクラス」を
使用しました。

この関数は指定したディレクトリ内の情報を取得してくれます。
更新日付とかファイルサイズとかも取ってきてくれるので更新日付以外でもソートできます。

サンプルコード
<?php

// ファイル情報格納用配列
$file_info_list = array();

// DirectoryIterator
$file_list = new DirectoryIterator($path);
foreach ($file_list as $file_info)
{
    // ファイル以外はループに戻る
    if (!$file_info->isFile())
    {
        continue;
    }

    // 配列のキーに更新日時をセット
    $file_info_list[$file_info->getMTime()] = array(
        'file_name' => $file_info->getFilename(),
        'file_size' => $file_info->getSize(),
        'update'    => $file_info->getMTime(),
    );
}

// 更新日時(キー名)の降順にソート
krsort($file_info_list);

var_dump($file_info_list);
getMTime」で更新日時のタイムスタンプが取得できるので、 それをキー名に使用し、キー名でソートを実行します。 ですので、キー名が更新日時のタイムスタンプになります。 終わり

2012/05/10

【サーバ】301リダイレクトを使う上での注意点

先程の記事で説明したWWWあり、なしを統一する際にハマったメモ

最初はFirefoxで301リダイレクトの確認をしていたのですが、設定をミスっていたらしく失敗していました。
その後何度か変更を加えてチェックしたのですが、最初に変更した設定から
何も変更されませんでした。

それで違うブラウザでやってみようということでIEで接続してみたところ現在の設定が反映されていました。

少し調べてみると301リダイレクトについての記述が見つかったので、それを探ってみるとビンゴ。

301リダイレクトはリソースの恒久的な移動を意味する。
「このURIはもうこっちのURIに変更されました。」というのをブラウザ等に通知するということらしく、 ブラウザ側でそのURIを記憶してしまうのだそうです。 なので、設定変更後にアクセスしたIEではきちんと反映されていたという訳です。 Firefoxの場合はキャッシュをクリアして再起動したら、きちんと反映されるようになりました。 ※IEの場合はキャッシュ削除ではダメらしく、ツールが必要なようです。 終わり 参考URL:.htaccessによるリダイレクトをやめてもIE9のみリダイレクトされ続ける

【サーバ】URLをWWWあり、なしに統一する

ということで本日やったメモ
僕が携わったサイトではないのですが、お客さんからURLのWWWを有りに変更して欲しいという
依頼があったらしくそれを投げられたので調べた時のメモ

今回は「mod_rewrite」を使用し、wwwなし(またはあり)のURLでアクセスがあった場合は
301リダイレクトを利用し、wwwあり(またはなし)にリダイレクトするという設定にしました。
設定は、「httpd.conf」または、「.htaccess」にて行います。

WWWあり統一
RewriteEngine on RewriteCond %{HTTP_HOST} ^example\.com RewriteRule ^(.*)$ http://www.example.com/$1 [R=301, L]
WWWなし統一
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.example\.com RewriteRule ^(.*)$ http://example.com/$1 [R=301, L]
終わり

2012/05/01

【PHP】Qdmailでメール送信した際に本文にヘッダーが表示される【Qdmail】

ということで今日あったQdmailの不具合?についてのメモ。

Qdmailでメール送信した際に、ヘッダーの一部またはすべてが
本文に表示されてしまうという不具合?に遭遇しました。


原因としては、ソースコード上の改行コードが違うために
起こってしまうそうです。

Qdmailではヘッダーの改行コードをRFCに準拠していますので「CrLf」なんだそうです。

ただ、qmailなどでメールを送信している場合に「CrLf」だと不具合が起きてしまうことが
あるそうです。

うちのサーバはPostfixでしたが、ダメだったみたいですね。
ですので、改行コードをソースコード上で「CrLf」から「Lf」に変更したところ、
ヘッダーが本文に表示されることは無くなりました。

Qdmailで使用する改行コードを変更するには
「lineFeed関数」を使用します。
$mail->lineFeed("\n");
終わり 参考URL:ヘッダーが見えてしまう等 - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte

2012/04/24

【Linux】コマンドで.htpasswdを生成したりする

ということで、htpasswdのメモ。

普段「.htpasswd」ファイルは、ファイルを作成して
アップロードなり、シンクなりすると思います。

でも今日コマンドでちゃっちゃと作れると聞いたのでメモ

・「.htpasswd」の作成
%htpasswd -bc .htpasswd user01 password
これで、カレントディレクトリに「user01」というユーザで「password」という パスワードのユーザが作成されます。 ・ユーザの追加
%htpasswd -b .htpasswd user02 password
これで、カレントディレクトリにある「.htpasswd」に 「user02」というユーザで「password」というパスワードのユーザが追加されます。 「bオプション」は、ユーザのほかにパスワードを指定して追加します。 「cオプション」は新規にファイルを作成します。 終わり

2012/04/21

【MySQL】SELECTで取得した値がNULL値だった場合に別の値として取得する

今のプロジェクトで使ったのでメモ

現在API担当としてシステム開発を行なっているのですが、返却値として「NULL」を
返却せずに「0」を返却して欲しいという要望があったので、
クエリで何とかならないかと思ってCOALESCE関数という関数を見つけました。


関数の内容としては
リストの最初の非 NULL 値を戻すか、非 NULL 値がない場合は NULL を戻します。
と言うことが書いてありました。 翻訳がアレなのでちょっとわかりにくいと思います。 つまり、引数は可変長引数となっており、いくつでも(?)引数を指定することが可能です。 その上で、順番に指定されている引数をチェックしていき、「NULL」でない値を返却します。 「NULL」しか無かった場合は「NULL」を返却します。 例)
mysql> SELECT COALESCE(NULL,1); -> 1 mysql> SELECT COALESCE(NULL,NULL,NULL); -> NULL
例えば下記のようなテーブルがあったとします。
+---------+--------+-------+ | user_id | name | value | +---------+--------+-------+ | 1 | user01 | 5 | | 2 | user02 | NULL | +---------+--------+-------+
上記のテーブルを次のSELECTで取得した場合
SELECT 
  * 
FROM 
  `user`
+---------+--------+-------+ | user_id | name | value | +---------+--------+-------+ | 1 | user01 | 5 | | 2 | user02 | NULL | +---------+--------+-------+
「value」カラムにNULLが入ったまま返却されてきます。 次に上記のCOALESCE関数を使用してSELECTを実行します。
SELECT 
  `user`.`user_id`, 
  `user`.`name`, 
  COALESCE(`user`.`value`, 0) AS `value` 
FROM 
  `user`
+---------+--------+-------+ | user_id | name | value | +---------+--------+-------+ | 1 | user01 | 5 | | 2 | user02 | 0 | +---------+--------+-------+
という風に先程「NULL」が入っていたところが「0」として返却されてきます。 本来このような使い方をする関数では無いのかもしれないですが、この関数のお陰で 楽ができました。 終わり

2012/04/09

【雑記】4月ということで

さくらの写真を撮ってみました。

これは会社の近くのアニメイトの前のところです。

おわり

2012/03/21

【PHP】PHPのセッションで第一階層に数字添字を指定した時に発生する問題

ということでさっきあった現象のメモ

PHPでセッションを使用した際に、セッション変数の第一階層の添字に
数字を指定すると次画面に遷移した際などにそのあたいが引き継がれない。

例えば
<?php

// 動かない
$_SESSION[1]['var'] = 'var1';

// 動く
$_SESSION['a']['var'] = 'var1';
このようにセッションの第一階層に数値の添字を指定すると 画面遷移など別画面に遷移しセッションをスタートしても、 数値添字を指定した方だけ取得できなくなります。 これはどうやら内部仕様っぽいです、実際はわからないですが 引き継がれていない以上はそういうものとして扱う必要があるわけです。 終わり

2012/03/19

【雑記】朝起きたらおじぎが新年初脱皮中だった

朝起きたらおじぎ(ヘビ)が新年初脱皮中でした。
脱皮中の写真を何枚か撮ってたんですが、ぶれてたりしてたのでボツにしました。

代わりに脱皮後の皮

もう70cmぐらいですね 終わり

2012/03/17

【さくらサーバ】PEARをインストールする【PHP】

ということでさくらサーバにPEARをインストールした時のメモ

さくらサーバにはすでにPEARがインストールされていますが、
バージョンが古い、パッケージを追加できない等の問題がありますので、自前で使用するパッケージを
インストールできるようにしました。

まずは、ホームディレクトリにPEARの設定ファイルを作成します。
$ pear config-create $HOME .pearrc
次にPEARの設定ファイルに以下の値をセットします。 1.binディレクトリ
$ pear config-set bin_dir $HOME/usr/local/bin
2.ダウンロードディレクトリ
$ pear config-set download_dir $HOME/tmp
3.作業用ディレクトリ
$ pear config-set temp_dir $HOME/tmp
4.ライブラリディレクトリ
$ pear config-set php_dir $HOME/lib/pear
最後にPEARコマンドを実行できるように、「.cshrc」を編集します。
$ setenv PATH (いままで設定されていたパス) : 1に設定したパス $ source $HOME/.cshrc
コマンドを実行できるようになったら、PEARをインストールしてみます。
$ pear install PEAR
下記のコマンドでインストールされていれば完了です。
pear list
上記設定の場合のインクルードパスは、4で設定したディレクトリになります。 終わり

2012/03/16

【Linux】rsyncでSubversion管理のプロジェクトをシンクする

ということで「rsync」コマンドで
プロジェクトを開発環境から本番環境へ移動する際のメモです。

ファイルを開発環境から本番環境へ移動する際は下記のコマンドを使用します。

rsync -avz ./target1 ./target2
 target1 がシンク元で target2 がシンク先になります。 オプションは -a オプション がシンク元に設定されていたパーミッションなどを保持するオプション -v オプション がシンク中のファイル名を表示するオプション -z オプション がデータを圧縮してシンクするオプション になります。 これとは別に「-n オプション」を追加することにより コマンド実行時の操作結果を表示します。 実際にシンクはされませんのでテストに使用します。 ですが、試験環境はSubversionで管理されているため、 ディレクトリごとに 「.svn」 という名前のディレクトリが 作成されます。 これは、本番環境には必要無いのでシンクする必要はありません。 ですので、下記のオプションを追加してシンク対象より弾きます。
rsync -avz --exclude ".svn" ./target1 ./target2
--exclude オプション」は、シンク対象より設定されたパターン に合致するものを弾きます。 つまり上記コマンドの場合は 「.svn」 をシンクしない様になります。 終わり

2012/03/08

【PHP】可変関数を実行する

可変関数の実行についてのメモです。

PHPでは変数名の後に「()」が付いている場合
変数の値と同名の関数をコールします。
可変関数は、メンバ関数も関数同様にコールすることができます。
また、スタティック関数もコールできますが、public以上のアクセスレベルだと実行できません。

こんな感じです。
<?php

class variableFunction
{
    public function disp($str)
    {
        echo $str;
    }

    public static function disp2($str);
    {
        echo $str;
    }
}

function disp($str)
{
    echo $str;
}


$func = 'disp';
$str  = '表示';

// 通常の関数をコール
$func($str);

// インスタンスを生成したクラス関数をコール
$vF = new variableFunction;
$vF->$func($str);

// variableFunctionクラスのスタティック関数をコール
$func2 = "disp2";
variableFunction::$func2($str);
※echo(), unset(), isset(), empty(), include(), print()のような言語構造と  組み合わせることはできません。 終わり