サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
foldrr.hatenablog.com
MacとRaspberry PIをシリアル通信で接続する 環境 Mac OS X 10.8.5 Raspberry PI type B - FTDI TTL-232R-3V3 - ブレッドボード・ジャンパーワイヤ(オス-メス) 問題 MacとRaspberry PIをシリアル通信で接続したい。 解決方法 まず以下が必要。 FTDI TTL-232R-3v3 x1本 ブレッドボード・ジャンパーワイヤ(オスーメス) x3本 FTDI TTL-232R-3V3は秋月電子で購入。 http://akizukidenshi.com/catalog/g/gM-05840/ ブレッドボード・ジャンパーワイヤ(オス-メス)も同じく秋月電子で購入。 http://akizukidenshi.com/catalog/g/gP-03472/ 一袋に10本入っているので1袋買えば十分だが、 3本とも同色になってし
sudo vi /etc/hosts sudo vi /etc/sysconfig/network sudo service network restart
ブログは移行しました。 https://scrapbox.io/foldrr XPathResultを配列と同様に扱いたかったのでprototypeをいじろうとしたけどできない。 しかも以下の結果はundefinedになってしまう…。 alert(XPathResult.prototype); // undefined調べてみたらこんなページがあった。 http://userscripts.org/topics/24438 GreasemonkeyではXPathResultしたかったのだけどprototypeが変更できなかったので関数を作ることにした。 function each(xs, f){ if(xs instanceof Array){ for(var i = 0, n = xs.length; i < n; i++){ f(xs[i]); } return; } if(xs in
// ==UserScript== // @name general_new_tab // @namespace http://foldrr/general_new_tab // @include http://www.google.com/bookmarks/* // ==/UserScript== (function (){ const TARGET = "_blank"; var settings = [ { site: "http://www.google.com/bookmarks/", xpath: "//table[@class]//a[@id]", }, /* { site: "", xpath: "", }, /**/ ]; for(var si = 0, sn = settings.length; si < sn; si++){ if(0 <= location.hre
テーブル作成 まずデータベースにテーブルを作成する。 Rails ではマイグレーションを作って、マイグレーションからデータベースにテーブルを作るが、CakePHP では先にテーブルを作成する点に注意。 今回は以下のテーブルを作成する。 顧客テーブル 属性名 属性型 id integer name varchar(45) created datetime modified datetime 注文テーブル 属性名 属性型 id integer customer_id integer title varchar(45) order_code varchar(45) created datetime modified datetime データベースを選択する Bake を起動し M と入力すると、利用するデータベースを聞いてくる。 デフォルトのままでいい。 --------------------
環境 CentOS 5.3 問題 OpenSSL をアップデートしたい。 CentOS の yum リポジトリは更新が遅いので、yum でアップデートできない。 解決方法 現在のバージョンを確認する。 $ openssl versionソースのパスを確認する。 http://www.openssl.org/source/ を見て、取得したいバージョンを確認する。 確認したソースを取得してビルドする。 # cd /usr/local/src # wget http://www.openssl.org/source/openssl-0.9.8k.tar.gz # tar zxvf openssl-0.9.8k.tar.gz # cd openssl-0.9.8k.tar.gz # ./config --prefix=/usr --openssldir=/etc/pki/tls shared #
どれを使えばいいのか exec() を使えばいい。 shell_exec() はリターンコードが取得不能なので不便。 system() はリダイレクトしないと勝手に標準出力へ出力するので不便。 まとめ 関数名 第1引数 第2引数 第3引数 戻値 出力 exec コマンド stdout リターンコード stdout なし shell_exec コマンド - - stdout なし system コマンド リターンコード - stdout あり exec() 第2引数 stdout の注意点 exec() の標準出力は第2引数 stdout へ追加されるので注意。 つまり、連続して exec() を呼び出す場合は第2引数に渡す変数を毎回クリアする必要がある。 非同期実行 exec, shell_exec, system どれでも可能。 以下は exec での例。 exec('filename
環境 Vim KaoriYa 7.2-20090321 問題 複数ファイルを編集したい。 解決方法 まず、設定ファイルを編集する set hidden vim 起動時に複数ファイルを開く > vim file1 file2 vim 起動後にファイルを開く :e ファイル名 前述の設定ファイルの編集をしておかないと、現在表示しているファイルを保存しないと、他のファイルを開けないので注意。 開いているファイルの一覧を表示する :files 表示しているファイルを切り替える ファイル番号 3 へ切り替える場合。 :3CTRL-^ 3CTRL-^ 直前に表示していたファイルへ切り替える CTRL-^ 直前に編集していたファイルへ切り替える ファイルを見ながら、複数ファイルを編集するとき便利かも(≧w≦) :bmod 現在表示しているファイルを閉じる bdel(Buffer DELete の略?)を
名前の通り、サーバー名を設定する。 Apache 2.2 ではデフォルトでコメントアウトされているが、これを有効にする場合は注意が必要。 というのも、 http://www.atmarkit.co.jp/flinux/rensai/apache05/apache05b.html によると、 ブラウザからサイトアドレスの最後にスラッシュを付けないでアクセスした場合にサイトに繋がらなくなる可能性があるため。 クライアントはサーバが返す ServerName を「正しいサーバ名」だと思ってしまう。 問題が発生するまでの流れは以下の通り。 サーバは最後にスラッシュが付かないとファイルだと思う。 サーバはファイルが存在しない場合は同名のディレクトリを探す。 サーバは同名のディレクトリが存在する場合 301 を返す。 サーバは 301 を返す際にサーバー名として ServerName を返す。 クライ
環境 Windows XP Professional SP3 Apache 2.2 問題 LinuxとWindowsではスクリプト・インタプリタのパスが違うためshebangを書き換える必要がある。 shebangの書き換えが面倒。 解決 ApacheのScriptInterpreterSourceを使うと、 shebangを無視して拡張子とレジストリを使ってスクリプト・インタプリタを決定できる。 ScriptInterpreterSourceの設定 httpd.conf へ以下を記述する。 ScriptInterpreterSource registry ExecCGI、AddHandlerの設定 httpd.confへ以下を記述する。 <Directory /> : Options ... +ExecCGI AddHandler cgi-script ... .pl : </Direc
service start httpd で以下のエラーが発生することがある。 httpd: apr_sockaddr_info_get() failed for xxxx.xxxx Could not reliably determine the server's fully qualified domain name, 原因 /etc/hosts の設定忘れ。 /etc/sysconfig/network の設定忘れ。 service network restart の実行忘れ。 /etc/httpd/conf/httpd.conf の ServerName の設定忘れ。
.bashrc を編集して環境変数 RUBYLIB, GEM_HOME を設定する。 export RUBYLIB=$HOME/lib:$HOME/lib/ruby export GEM_HOME=$HOME/lib/ruby/gem source で反映するのを忘れずに。 $ source .bashrc http://rubyforge.org/projects/rubygems/ を見に行き、リリースとダウンロードするアドレスを確認し、確認したアドレスのパッケージをダウンロードする。 RubyGems 1.3.1 の場合 $ wget wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz ダウンロードしたパッケージを展開する。 $ tar xzvf rubygems-1.3.1.tgz 展開したディレク
以前はcmkeyを使っていたけど、SandSを使うために窓使いの憂鬱へ乗り換えた。 ところが、窓使いの憂鬱は勝手にキーリピートしてしまう。 最近、Enterキーがリピートしてしまい意図せずスクリプトを実行してしまう事故が起きた。 乗り換え先をやっと見つけたので移行メモとして残しておく。 概要 窓使いの憂鬱(mayu)で使っていた機能を以下のように分担して実現する。 やりたいこと 利用するソフト SandS Xkeymacs 無変換 → Ctrl Xkeymacsによるレジストリ変更 変換 → 漢字 Xkeymacsによるレジストリ変更 半/全 → Esc 秀Caps \ → _ cmkey その他リマップ cmkey 基本はcmkeyでカスタマイズする。 ただし、カスタマイズができない一部キーは秀Capsで代用する。 そしてSandSを利用するためだけにXkeymacsを利用する。 窓使い
環境 Windows XP Professional SP3 VMware Server 1.0.9 CentOS 5.3 問題 VMware Tools をインストールしようとしたが、VMware のメニューにある "Install VMware Tool" をクリックしてもメディアをマウントできない。 解決 VMware Server 同梱の iso イメージをマウントしてインストールする。 ゲストOSを終了する ホスト OS にある iso イメージをマウントするため、ゲスト OS を一度終了する。 iso イメージを確認する VMware Server のインストール パス(標準では C:\Program Files\VMware\VMware Server)に、"linux.iso" が存在することを確認する。 ゲスト OS の CD-ROM ドライブに iso イメージを設定す
環境 CakePHP 1.2.2.8120 問題 新しく CakePHP アプリケーションを配置してブラウザからアクセスすると下記のエラーが発生する。 Error: The requested address '' was not found on this server. 原因 app/config/database.php の設定が間違っている。 app/config/core.php の Debug.level を 1 にしていない。 対策 app/config/database.php の設定を確認する。 app/config/core.php の Debug.level を 1 に設定する。 Debug.level は本番環境では 0 にするが、本番環境初期配置時には初回起動時のみ 1 にする。 Debug.level を一時的に変更すると正常に動作する理由については不明。
環境 CakePHP 1.2.3.8166 問題 Model::saveAll() は内部でトランザクション処理をしている。 そのため、外側のロジックで制御しているつもりのトランザクションが、Model::saveAll() によって途中でコミットされてしまう。 対策 Model::saveAll() の第2引数へ array('atomic' => false) を渡す。 <?php $this->Model->begin(); $this->Model->saveAll($items, array('atomic' => false); $this->Model->commit(); ?> 参考 CakePHP API Model::saveAll()
環境 CentOS 5.3 CentOS Memory for crash kernel とは kdump の新しい仕組みによって表示されるメッセージらしい。 http://d.hatena.ne.jp/foldrr/20080821/1224785396 消す方法は2つ カーネルをビルドする kdump 用のメモリを確保する kdump 用のメモリを確保する X で以下を実行して、設定画面を表示する。 # system-config-kdump設定画面で kdump 用のメモリを確保する。 system-config-kdump でメモリが足らないと言われる場合 VMware などの仮想環境ではマシンを一度停止してメモリ量を増やす。 仮想環境でないなら、メモリ買ってきて増やす。
環境 CakePHP 1.2.3 8166 複数レコードを編集する際の注意点 フィールド名の注意 Model::find() の注意 バリデーションの注意 フィールド名の注意 フィールド名は以下のように定義してはならない。 <?php foreach($products as $p){ echo $form->text($i . '.Product.name'); } ?> 以下のように定義しなくてはならない。 <?php foreach($products as $p){ echo $form->text('Product.' . $i . '.name'); } ?> なぜ Model.$i.field としてなくてはならないのか? FormHelper::error() でエラーメッセージを表示できなくなってしまう。 error() は Helper::tagIsInvalid()
環境 Firefox 3.5.3 Greasemonkey 0.8.2009123.1 AutoPagerize 0.0.41 pbtweet 1.4.10 問題 AutoPagerize と pbtweet を併用すると、Twitter で以下の現象が起きる。 ページング時に何ページも先まで読みに行ってしまう。 ページングが止まらない。 解決 pbtweet のページングをオフにすることで回避できる。 以下のようにページングに関する処理をコメントアウトする。 //--autoScrolll--// /* var during_pagination = true; setTimeout(function(){if(!document.getElementById("autopagerize_style")){init_autoPager()}}, 1500); function init_
ビューへ GET を設定する <?php echo $form->create('ModelName', array( 'type' => 'GET', 'action' => 'mobile_index')); ?> モデルの検索項目は別フィールドを用意してバリデーションを緩くする <?php class ModelName extends AppModel{ var $order = 'ModelName.id'; var $validate = array( 'field_name' => array( // 登録項目のバリデーション。 ), 'condition_field_name' => array( // 検索項目のバリデーション。 ), ); } ?> コントローラの submit 判定 GET 時の submit 判定は if(empty($this->data)){ で
環境 CakePHP 1.2.3.8166 問題 動的にモデルクラスを読み込みたい。 例えばバリデーションで相関チェックをする場合に、別のモデルを利用したい。 解決方法 ClassRegistry::init を使う。 <?php $Group = ClassRegistry::init('Group'); $groups = $Group->find('all'); ?> 注意 下記のコードでも同様の処理ができるがやってはいけない。 下記のコードでは、データベースの接続先が $default 固定になってしまうため、ユニットテストで問題が出てくる。 <?php App::import('Group'); $Group = new Group(); $groups = $Group->find('all'); ?>
このページを最初にブックマークしてみませんか?
『foldrr's weblog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く