2009-04-26
突然ですが女性エンジニアに恋しました
えー。
そこで、友人に相談したところエンジニアならではのくどき
文句があるのでは?
とアドバイスを受けたので今日から色々考えてみたいと思います。
君のパーミッションを○○にしてくれないか?
700でしょうかねぇ。でもオーナーってのもおこがましい。。。
あなたにpingうちます!!
応答帰ってきてほしい!!
3WAYハンドシェイクとか・・・
ブロードキャスト・・・絶対あかんな
君のこころのファイアーウォールを開けてくれ
あなたならいつでもトラストよっ。
ポート開けて欲しい!
僕のポインタはいつも君をみているよ
なんかやらしい。。。
うーむ、ネットワーク系になりがち。
なかなかいいのが思い浮かびませんねー
今こそ集合知ってことで皆さんの心暖かくもスパイスの利いた
アドバイスお待ちしております。
2009-02-04
ち○毛が原因でサーバに障害ランプ
とあるサーバにメモリを増設して起動したところ・・・
障害ランプが点滅、ハードウェアの障害チェック用のCDで確認しても
原因は特定できず。。。
うーん、こりゃサポート行きかなぁと思っていたら・・・
ん?
んん???
よく見るとファンの近くになんか挟まってる、なんか挟まってるよ!!
これ、このちりちりは・・・ち○毛じゃないか!ち○毛だよ!!
まさかなと思いながらおそるおそる除去してサーバを再起動してみる。
・・・
・・・
正常に起動しちゃったよ!!
まさに事件は現場で起きてる・・・
うーん教科書には載ってないことがいっぱいあるもんだ。
これも経験、経験!?
それにしてもなぜこんなところに、、、ラックに入ってたよねぇ。
ち○毛はたまに家では生きてるんじゃないか?ってところにいますがこんなことってあるんですね。。。
皆さんもハードウェア障害で困ったときはち○毛が挟まっていないか確認することをおすすめします(笑
2008-08-06
google app engine使ってみた
今更ながらpython勉強用にgoogle app engineを使ってみた
http://code.google.com/appengine/downloads.html
$ mkdir katana-test $ cd katana-test $ vi test.py
適当にアプリケーションを作成する。
作成方法はリファレンスなどを確認してください(汗)
■設定ファイルを作成
$ vi app.yaml application: katana-test version: 1 runtime: python api_version: 1 handlers: url: /.* script: test.py
■テストサーバ起動(localhost:8080でアクセスできるようになる)
$ dev_appserver.py katana-test
■公開
$ appcfg.py update katana-test/
※事前にhttp://appengine.google.com/で アプリケーションを 登録しておく必要があります。
(今回の場合はkatana-test)
http://katana-test.appspot.com/
でアクセスすると確認できました。
2008-07-29 pythonでpostgres動かす
pythonでpostgres動かす
macでpythonからpostgrs動かそうとしてハマった罠
psycopg使ってpostgresに接続
$ wget http://initd.org/pub/software/psycopg/psycopg2-2.0.6.tar.gz $ tar xzvf psycopg2-2.0.6.tar.gz $ cd psycopg2-2.0.6 $ python setup.py build
なんかエラーがでる・・
というわけでpostgresの設定ファイルを指定
$ vi setup.cfg
#Macports使用したので/opt配下にあります。
pg_config=/opt/local/lib/postgresql83/bin/pg_config
■リベンジでインストール
$ python setup.py insall
■確認
$ python >>>import pyscopg2
無事動きました!!
2008-07-23 全く参考にならないPHPフレームワークその1
全く参考にならないのでマネしないでねフレームワーク
MVCもいまいち理解していない初心者の全く参考にならないフレームワークのログ
とりあえずコントローラー編
http://example/actionName/methodName/ みたいな感じで特定のアクションクラスの
methodを実行させたい
■library/ashigar/controller/mother.php
require_once 'ashigar/controller/request/http.php'; /** * コントローラーの親クラス * */ class ashigar_controller_mother { /** * アクションファイル名 */ private $_actionFile = null; /** * http インスタンス */ private $_httpIsnstance = null; /** * コンストラクタ * */ public function __construct() { $this->_httpIsnstance = new ashigar_controller_request_http(); } /** * モジュールアクションを実行 * */ public function run() { // URLから実行するモジュールとアクション名をセットする $this->_dispatch(); // 該当のモジュールを実行する $this->_moduleExec(); } /** * dispatchでURLのマッピングを行う * */ protected function _dispatch() { // モジュールとアクションをUrlにマッピングする $this->_setMappingUrl(); } /** * URLマッピングを行う */ private function _setMappingUrl() { $moduleDir = $this->_httpIsnstance->getBaseDir() . DIRECTORY_SEPARATOR . 'modules' . DIRECTORY_SEPARATOR . $this->_httpIsnstance->getModuleName(); $this->_actionFile = $moduleDir . DIRECTORY_SEPARATOR . 'action.php'; } /** * モジュールを実行 * */ private function _moduleExec($actionFile = null) { if($actionFile === null) { $actionFile = $this->_actionFile; } try { // ファイルの存在チェック if(!file_exists($actionFile)) { echo 'no action file'; return null; } // 各モジュールのactionファイルを読み込み require_once $actionFile; $class = $this->_httpIsnstance->getModuleName() . 'Action'; $method = $this->_httpIsnstance->getActionName() . 'Action'; // クラスとメソッドの存在チェック if(!class_exists($class)) { echo 'no class name'; return null; } else if(!method_exists(new $class(), $method)) { $method = 'indexAction'; } // モジュールを実行 call_user_func(array($class, $method)); } catch(Exception $e) { throw $e; } } }
■リクエスト系を操作するクラス library/ashigar/controller/request/http.php
/** * リクエスト操作クラス * */ class ashigar_controller_request_http { /** * baaseディレクトリをセット */ public $_baseDir = null; /** * モジュールネーム * * @var String */ public $_moduleName = null; /** * アクション名を保村 * * @var Sgring */ public $_actionName = null; /** * Uirを保存 * * @var string */ public $_requestUri = null; /** * アクションファイル名 */ public $_actionFile = null; /** * コンストラクタ * */ public function __construct() { $this->_init(); } private function _init() { $this->_parseUrl(); $this->_setBaseDir(); } /** * URLを分解する */ private function _parseUrl() { $requestUri = $this->getRequestUri(); $arrSeg = explode('/', trim($requestUri, '/')); $this->setModuleName($arrSeg[0]); $this->setActionName($arrSeg[1]); } /** * _requestUri をセットする * * @param string $_requestUri */ public function setRequestUri($_requestUri = null) { if ($_requestUri === null) { if (isset($_SERVER['HTTP_X_REWRITE_URL'])) { // check this first so IIS will catch $_requestUri = $_SERVER['HTTP_X_REWRITE_URL']; } elseif (isset($_SERVER['REQUEST_URI'])) { $_requestUri = $_SERVER['REQUEST_URI']; } elseif (isset($_SERVER['ORIG_PATH_INFO'])) { // IIS 5.0, PHP as CGI $_requestUri = $_SERVER['ORIG_PATH_INFO']; if (!empty($_SERVER['QUERY_STRING'])) { $_requestUri .= '?' . $_SERVER['QUERY_STRING']; } } } $this->_requestUri = $_requestUri; } /** * _requestUri を得る * * @return string */ public function getRequestUri() { if (empty($this->__requestUri)) { $this->setRequestUri(); } return $this->_requestUri; } /** * モジュール名をセット */ public function setModuleName($moduleName) { $this->_moduleName = $moduleName; } /** * module name * * @return strig */ public function getModuleName() { return $this->_moduleName; } /** * アクション名を取得 * * @return string */ public function getActionName() { return $this->_actionName; } /** * アクション名を取得 * * @return string */ public function setActionName($actionName) { return $this->_actionName = $actionName; } /** * baseディレクトリの設定 * */ private function _setBaseDir() { $this->_baseDir = dirname($_SERVER['SCRIPT_FILENAME']); } /** * baseディレクトリを取得 */ public function getBaseDir() { if($this->_baseDir === null) { $this->_setBaseDir(); } return $this->_baseDir; } }
■テストモジュール modules/example/action.php
class exampleAction { /** * Indexアクション */ function indexAction() { echo 'example modules!!'; } }
■rootディレクトリにindex.phpを設置 mod_rewriteでこのindex.phpを絶対に実行する
/** * TODO:本来ならphp.ini に設定すべきだがテストのため記述 */ $baseDir = dirname(__FILE__); ini_set('include_path','.:' . $baseDir . DIRECTORY_SEPARATOR . 'library'); require_once 'ashigar/controller/mother.php'; $objMother = new ashigar_controller_mother(); $objMother->run();
■実行
http://example.com/example/index/
とりあえず表示されました。
