RSS
 

ubuntuのネットワーク接続が途切れる

22 1月

ちょっと前からubuntuでflashのオンラインゲームをやっていると
定期的に時々ネットワークの接続がとぎれるようになった。

全く原因は分からなかったけど、
ちょうどそれくらいにavidemuxとgnome subtitlesをインストールしていたので
試しに削除してみると接続が途切れなくなったような気がする。

 
No Comments

Posted in linux

 

onkyo twタブレットでubuntuは使えるか

09 5月

onkyo twのタブレットPCを手にいれたので使ってみた。
Windows7が入っているが、やはりWindowsというのはubuntuと比べて
異常なほど重すぎる。

なんとかしてubuntuが使えないか、試してみた。
結果だが、どうも駄目っぽい。
もちろんインストールはできるしUSBキーボードとマウスを使えば動くが、
タッチパネルは駄目っぽい。

発売されてだいぶ時間が経ったというわけでもないので
実際にはなんとも言えないが、ネット上の情報もほとんどない。
できるとしても、かなりubuntuに詳しい人でないと無理かもしれない。
そもそもドライバが有るのかどうかも分からない。
ネットの情報を元に適当に入れてみたがどれもだめだった。

なので今のところの結論としては無理、ということで良いのかと思う。
どなたか可能になったらぜひブログやフォーラムに掲載してほしい。

 
2 Comments

Posted in linux

 

Ubuntu11.04アップグレードのエラー

02 5月

最近Ubuntuを起動していたら
急に11.04にアップグレードするかどうかを聞いてきたので、
訳も分からず実行したところ再起動後にUbuntuが起動しなくなった。

symbol not found ‘grub_env_export’
grub rescue
が表示される。

なんとか復旧しようと思い色々調べてみると
live CD起動を行ってgrubをインストールし直す方法などがあったが
結局試しても全くうまくいかなかった。

しかし意外なところに原因と解決法が。

まずPCの構成だが、VistaとUbuntuのデュアルブートになっていて
Vistaのブートローダを使って起動している。
EasyBCDというVistaのブートローダ設定アプリケーションを使い、
OSを選択できるようにしてUbuntuをデフォルトにしている。
なのでUbuntu選択後grubのOS選択画面も出てくるが
ほっといてもきどうするし特に面倒ではない。

で、これが問題だった。
EasyBCDを再度起動してUbuntuの項目を新たに追加して
それを選択してみたら問題なく起動できた。
結局アップグレードしたらVistaのブートローダも
設定しないといけないということらしい。

再インストールしようかと思って最後に試して上手くいったので危なかった。

 
No Comments

Posted in linux

 

ubuntuの導入

24 1月

2,3年ほど前に購入したthinkpad(T61)が非常に重く感じるようになってきた。
というか、vistaが出始めた頃のPCのため、もともと非常に重かった。
たまに数分完全にストップする時もちょくちょくあるし、
androidアプリ開発をしている時などはエミュレータを起動していたりすると
全体的に異常な程の重さになってしまう。
色々とネットで調べて軽量化はしていったのだが、そこまでの効果は見られない。
もう古いPCになるのだろうからしょうがないと言えばしょうがないが。

そこでDドライブをちょっと削って、linuxのディストリビューションubuntuをインストールしてみた。
windowsとubuntuのデュアル起動にし、普段はubuntu、
必要なときだけwindowsを起動するような形。
サーバー以外でlinuxを使うのは今回が初めて。

ubuntuにした理由はネットで調べたところ結構人気だったことから。
また、必要なソフトなどを調べ見てるとubuntuのsynapticというパッケージ管理ソフトで
GUIでパッケージを簡単に使用できるということを見かけた。

インストールはブート関連でちょっとわからなくなったけど、
とりあえず11GBの領域に入れて問題なく動作させることが出来た。
(ブートローダーはubuntu領域に入れ、vistaのブートローダーを
easybcdというソフトで修正)

使用してみた感覚としては、はっきり言って比較するまでもなく
ubuntuは快適すぎる感じになった。
windowsを使う気が全く起こらなくなるほど。
しかしやはりwindowsでしか動かないソフトもあるし、
windowsを手放せないのが悲しい。

せっかくなのでインストールしたソフト、できないものなどをまとめておく。

■インストールしたもの
・google chrome
・androidアプリ開発関連(eclipseなど)
・google日本語入力(mozc)
・gimp
・putty
・skype
・easystroke(StrokeItの代わり)
・gpointing-device-settings(タッチパッド)

上記のほとんどがsynapticだけで簡単にインストール可能。
windowsで使用していたネットブック、簡易開発的なものはほぼ全てそろった。
ファイル編集同期が可能なwinscpはそもそも不要で、
ubuntu元々の機能で普通のファイルを編集するかのようにファイル操作が可能。
thinkpadのトラックボールはデフォルトで動くし、gpointing-device-settingsにより
中ボタンでのスクロールなども対応可能。
もちろん電源やwifi管理なんかもデフォルトで動いていたりする。
linuxがわからない素人でも非常に簡単なのではないだろうか。
ネットブックとして使用するのであればはっきり言ってwindowsはもう必要ないと思った。
本体さえあればあとは全部ただなのだから。

■インストールできなかったもの
・itunes
・ソーシャルアプリ問い合わせ管理ソフト
・flash開発ソフト

管理ソフトは毎日2回見ないといけないので、正直何度も再起動するのが面倒。
平日は仕事のPCでやればいいが平日どうするかは検討が必要。
通常はmacと同様、VMwareなんかを使ったりするのだろうが
容量がもう3GBくらいしかないので考える必要がありそう。

ituneは別に使っていないけど使っている人は多いのではないだろうか。
これが使えないと困る人は多そうだからこの辺もネックになるかも。

flash開発ソフトは普段使わないけど、ないと困ることがあると思うので
仕事のPCはubuntuにはできなかった。
このあたりなんとかならないだろうか。

■使えるか、代わりがあるか要検討ソフト
・inkscape
・xlink kai(linux版があるらしい)

最終的にlinuxの良さとwindowsの影響力の強さを思い知った場となった。

 
2 Comments

Posted in linux

 

swfmillのインストール(追記)

04 11月

さくらサーバー以外の専用サーバーなどにインストールする際のまとめ。
前回は
http://program.alphabrend.com/?p=45

yum install gcc-g++
yum install libxslt-devel
yum install freetype-devel
yum install libpng-devel

pkgconfigが必要な場合もある。

 
No Comments

Posted in 日記

 

HABTMの注意事項

13 7月

CakePHP1.2でloadModelを使ってモデルを用意することがあるが、
その際予期していたクラスでなく、AppModelが入ってくることがある。

ひとつの原因として、綴りミスがある。
しかし綴りは合っているのにAppModelになってしまったり、
loadModelする場所によってAppModelになったりちゃんとしたクラスが呼び出されたりする。

この原因はHABTMにある場合がある。

たとえばposts, posts_tags, tagsというテーブルがあったとする。
この時、posts_controller.phpでは自動的にposts_tagsとtagsが初期化されるのだが、
この時連結であるposts_tagsがAppModelとして初期化されていた。
そのため、以後loadModelでPostsTagを呼びだすとAppModelとして返ってきてしまい、
PostsTagに宣言してあった関数などが呼び出せなくなったりしてしまう。
(すべての環境、バージョン等でそうかは知らない)

対処法としては、PostモデルのHABTM以外にhasManyとしてPostsTagを宣言しておけば良い。
ご注意を。

 
No Comments

Posted in CakePHP

 

携帯サイトその2

05 7月

以前、CakePHPでrender関数をオーバーライドして
自動的に携帯テンプレートを振り分ける方法を紹介した。
それにも関連するが、追加のプログラムを紹介。

	function _mb_render() {
		$this->layout = 'mobile';
		$output = $this->render();

		$contents = mb_convert_encoding($this->output, 'SJIS', 'UTF-8');
		echo $contents;
		exit;
	}

例えば上記は明示的に携帯サイトの出力を行ないたい場合などに便利。
最近のrender関数は返り値で出力内容を返してくれるようなので、
上記だけで全部済んでしまう。
mobileのlayoutのメタタグにはshift_jisと書いておく必要はあるが、
基本的に全部プログラムはテンプレートはutf-8で作ることが出来る。
(ただし、別途GETやPOSTの取得は手動でshift_jisからutf-8に変更したりは必要)

他にも、上記の方法を使ったりrender関数をオーバーライドしたりすることで、
携帯サイトだけでなくPC側のopensocial用のプログラムなどにも利用出来る。

{
    'html' : $output,
    'parameters' : $parameters,
}

みたいな感じのjsonを出力すれば
アプリケーション側では受け取ったhtmlをそのままinnerHTMLにいれるだけで
楽にアプリが作成可能。

 
No Comments

Posted in CakePHP

 

cronを使う

29 6月

以前、CakePHPにて別の方法でcronを使用する方法を書いていましたが、
バージョン1.2以降はシェル機能が付いているのでそちらを利用する方が正解です。
とりあえず一例だけ載せておきます。

vendors/shells/test.php

class TestShell extends Shell {
	var $uses = array('Test');

	function main() {
		$this->Test->find('all');
		echo 'finish';
	}
}
0 0 * * * cd /dir/at/app;php cake/console/cake.php test
 
No Comments

Posted in CakePHP

 

WordPress3.0をmysql4.0で使う

29 6月

現在のWordPressの最新版である3.0をインストールしようとしたところ、
なんとmysqlのバージョンが4.0だったためインストールが出来なかった。

しかし無理やりインストールしてみたのでそれの備忘録。
とりあえず投稿などはできるようですが、正しく動くかどうかは一切保証できません。

wp-admin/install.php
150行目に$mysql_compatでバージョンをチェックしているので、次の行に

$mysql_compat = true;

として無理やりOKにする。

wp-includes/wp-db.php
同じ意味で1511行目check_database_versionの一番最初の行に

return;

をいれる。

上記でデータベースバージョンのチェックを無視。
あとはSQLをver4にあわせなければならない。
とりあえず下記を修正すればインストール、投稿あたりはいける。

wp-admin/includes/schema.php
25行目まで、$charset_collateに値を入れているため次の行に

$charset_collate = '';

で文字コード設定をなくす。

あとはON DUPLICATEというクエリを使用しているところがあるので、これを修正する。

wp-includes/functions.php
604行目をまるまる下記に置き換え。

	if ($wpdb->get_row($wpdb->prepare("SELECT * FROM `$wpdb->options` WHERE `option_name` = %s", $option))) {
		$result = $wpdb->query( $wpdb->prepare( "UPDATE `$wpdb->options` SET `option_value` = %s, `autoload` = %s WHERE `option_name` = %s", $value, $autoload, $option ) );
	} else {
		$result = $wpdb->query( $wpdb->prepare( "INSERT INTO `$wpdb->options` (`option_name`, `option_value`, `autoload`) VALUES (%s, %s, %s)", $option, $value, $autoload ) );
	}

wp-includes/taxonomy.php
使っているのかは知らないが取りあえず1777からの2行を下記に置き換え。

		if ( $values ) {
			if ($wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->term_relationships WHERE object_id = %d AND term_taxonomy_id = %d", $object_id, $tt_id))) {
				$wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id, term_order) VALUES " . join(',', $values) . " ");
			} else {
				$wpdb->query($wpdb->prepare("UPDATE $wpdb->term_relationships SET term_order = %d WHERE object_id = %d AND term_taxonomy_id = %d", $term_order, $object_id, $tt_id));
			}
		}
これでなんとなく動くようだ。
 
 

phpのcgiモードでHTTPのリクエストヘッダを取得

19 6月

リクエストヘッダを取得するにはgetallheaders()関数を使えばいいのだが、
モジュール版でしか使えない。
CGI版ではどうすればいいか調べたところ、方法があった。
RewriteRule ^(.*) – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
を.htaccessにかけば$_SERVER[HTTP_AUTHORIZATION]のようにして取得可能になる。
CakePHPだと、webroot/.htaccessに

RewriteEngine On
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

で取得可能。
RewriteCondの後だと取得できなくなる。

 
No Comments

Posted in php