2008年2月29日金曜日

【Ubuntu】 GutsyをCompiz (Beryl)で3Dデスクトップ化

Ubuntu 7.10 Gutsy

Gutsyをインストールすると、Compiz (Beryl)により3Dデスクトップが使える。
ビデオカードが古いとダメだが。
デフォルトでは設定ができないので、以下をインストールする。


sudo apt-get install compizconfig-settings-manager emerald


Ubuntu 7.04 Feistyから7.10 Gutsyにアップグレードした場合は以下必要.

sudo apt-get install xserver-xgl

再起動。



外観の設定から視覚効果タブを選んで設定変更設定ボタンをクリックする.

以下がおすすめ


キューブ回転:デスクトップをホイールボタンでドラッグする。
キューブ反転:キューブ回転中に反射描画。
Shift Switcher:Winキーを押しながらタブでタスク切り替え



キューブ回転


Shift Switcher


Win + E

ラベル: ,

【MySQL】 mysqldumpでテーブルをバックアップ

mysqldumpとmysqlコマンドでMySQLのデータをバックアップ、リストアする。

まずは、バックアップ。

# mysqldump -u root -p --database mydb --tables mytbl > mydb_mytbl.sql


mydb_mytable.sqlというファイルができている.
エディタで中が見れる。

次に、リストア.

# mysql -u root -p --database mydb < mydb_mytbl.sql


実に簡単.
レプリケーションにも使えそうだ。

ラベル:

【Ubuntu】 7.10 Gutsyインストール後にすること

【Ubuntu 7.10 Gutsy】

Tracker無効化

gstream関連インストール

日本語版セットアップ・ヘルパ

外観の設定から背景とエフェクトの変更

SCIM (日本語IME)の設定

medibuntuでコーデックを楽々インストール

【Ubuntu】 RARアーカイブを解凍したい。

Synapticパッケージ・マネージャーから設定→リポジトリを選んで

Ubuntuのソフトウェア
on universe
on restricted
on multiverse
ダウンロード元:日本のサーバ



サードパーティのソフトウェア
on http://archive.ubuntulinux.jp/ubuntu-ja gusty/
on http://archive.ubuntulinux.jp/ubuntu-ja gusty-ja/
on http://packages.medibuntu.org gusty/



アップデート
on gutsy-security
on gutsy-updates


再読み込み、すべてアップグレードを押してシステムをアップデートする.
再起動してアップデートを有効化。

ラベル: ,

2008年2月28日木曜日

【Ubuntu】 SCIM (日本語IME)の設定

Ubuntu 7.10 Gutsy

Ubuntuをインストール直後、日本語入力の設定を変更する。

デフォルトではCtrl+Spaceや半角/全角キーで変換モードになるがこれを変更する.

パネル右上のキーボードアイコンを右クリックしてSCIM設定を選ぶ。
全体設定を選んで、SCIM開始の「...」をクリックする.
Zenkaku_Hankakku以外を選んで、削除ボタンを押していく。
OKで終了する。
SCIMの再起動を促されるが、変更は即座に反映される.

ラベル: ,

2008年2月25日月曜日

【Python】 Djangoのインストールと設定

Ubuntu 7.10 Gutsy, Python 2.5, MySQL 5.0, Apache 2.0 + mod_python

DjangoはPythonのWebフレームワークだ。
Ruby on RailsやPHP Symphonyと比べてパフォーマンスは結構良いらしい。
Framework Performance in Ruby on Rails
Rails performed much better than Symfony. And Django performed much better than Rails.


Djangoをインストールする前に以下が必要。
[S] Apacheをソースからコンパイルしてインストール

[S] mod_pythonをソースからコンパイルしてインストール

[S] MySQLをソースからコンパイルしてインストール

[S] MySQL-pythonのインストール

上の4つのコンポーネントはすべてapt-getからインストール可能なので、ソースからビルドする必要はない。
【Python】 Djangoをapt-getでUbuntuにインストール
【Ubuntu】 LAMP (Linux, Apache2, MySQL, Python)一発インストール
また、DBを使わない場合はMySQLとpython-mysqlをインストールする必要はない。


本家よりdjangoをダウンロード。
http://www.djangoproject.com/download/

Django-0.96.1.tar.gzをダウンロードして解凍する。
tar zxvf Django-0.96.1.tar.gz


展開したディレクトリに移動してインストール開始。
sudo python setup.py install


Apacheの設定ファイル[apache2]/conf/httpd.confを編集する。


<Location "/myprj/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE myprj.settings
PythonDebug On
</Location>



Apacheを再起動。
[apache2]/bin/apachectrl restart


ApacheのDocumentRootに移動して、
python /usr/lib/python2.5/site-packages/django/bin/django-admin.py startproject myprj


ブラウザで「It works!」を確認する。
http://localhost/myprj

Djangoに付属している開発用serverでも確認する。
python manage.py runserver


ブラウザで「It works!」を確認する。
http://localhost:8000

開発用serverの利点はpythonスクリプトの変更が即座に反映されることと、デバッグ情報をターミナルに出力できることだ。

次にアプリケーションを登録する。
python manage.py startapp myapp


ディレクトリ構造はこうなるはず。


[DocumentRoot]
|-myprj
|-myapp



[DocumentRoot]/myprj/settings.pyを編集する。


DEBUG = True

TEMPLATE_DEBUG = True

DATABASE_ENGINE = 'mysql'
DATABASE_NAME = 'myprg'
DATABASE_USER = 'root'
DATABASE_PASSWORD = 'mypassword'
DATABASE_HOST = '127.0.0.1'
DATABASE_PORT = '3306'

TIME_ZONE = 'Asia/Tokyo Japan'

TEMPLATE_DIRS = (
'[DocumentRoot]/myprj/myapp/template',
)

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'myprj.myapp'
)



アプリケーションは複数登録できる。
ので、プロジェクトは複数のアプリケーションを持つことができる。

myappに移動して、models.pyを編集。


from django.db import models

# Create your models here.

class User(models.Model):
username = models.CharField(maxlength=200)
password = models.CharField(maxlength=200)
description = models.TextField()
score = models.IntegerField()
datetime = models.DateTimeField(auto_now=True)


MySQLにデータベースを作成する。
# [mysql]/bin/mysql -u root -p
mysql> create database myprj
mysql> quit



myprj/myapp/models.pyとデータベースを同期する。
# python manage.py syncdb


myprj/myapp/models.pyにクラスを追加すると同期する必要がある。
ただし、クラス属性(プロパティ)を変更しただけだとDBに変更が反映されない。
その時はALTER TABLEのSQLをコールする必要がある。
あるいは、データが不要ならテーブルをドロップして同期する。

myprj/myapp/modes.pyの実例


# python manage.py shell
>>> from myprj.myapps.models import *
>>> User(username='foo', password='brabra', description='Hello', score=0).save()
>>> User(username='hoge', password='brabra', description='Good-bye', score=0).save()
>>> us = User.objects.all()
>>> for u in us:
>>> print u.username, u.password, u.datetime



myprj/myapp/views.pyの実例


from django.shortcuts import render_to_response, get_object_or_404
import models
def index(request):
users = models.User.objects.all()
return render_to_response('index.html', { 'users': users })



myprj/myapp/template/index.htmlの実例


<html>
<body>
{% for user in users %}
<p>{{user.username}}, {{user.password}}, {{user.description}}</p>
{% endfor %}
</body>
</html>



myprj/urls.pyを編集。

(r'^myprj/myapp/$', 'myprj.myapp.views.index')


Apacheを再起動。
[apache2]/bin/apachectrl restart


ブラウザで以下にアクセス。
http://localhost/myprj/myapp/

動作が確認できたら、myprj/settings.pyを編集する。
DEBUG = False
TEMPLATE_DEBUG = False
これをしないとDBのSQLクエリーがメモリーに残り、メモリーリークのような振舞になる。
設定を有効にするためにApacheの再起動もわすれずに。
[Django オンラインドキュメント和訳]
Django がメモリリークを起こしているのですが、なぜですか?
Django が実行している生の SQL クエリを見られますか?

ラベル: , , ,

2008年2月24日日曜日

【Python】 PythonからMeCabを使う。

Ubuntu 7.04 Feisty, Python 2.5, MeCab 0.97 (UTF-8)

日本語の形態素解析エンジンMeCabをインストールする。

MeCab本家
http://mecab.sourceforge.net/

ダウンロード
http://sourceforge.net/project/showfiles.php?group_id=177856
からmecab、mecab-ipadic、mecab-pythonをダウンロードする。

mecab-0.97.tar.gzを解凍する。
# tar zxvf mecab-0.97.tar.gz


展開したディレクトリに移動して、コンパイル、インストールする。
# ./configure --with-charset=utf8 --enable-utf8-only
# make
# make check
# sudo make install

make checkはエラーが出るが問題なし。

makeできないときはapt-getでgccとbuild-essentialsをインストールする。
# sudo apt-get install gcc build-essentials

mecab-ipadic-2.7.0-20070801.tar.gzを解凍する。
# tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz

展開したディレクトリに移動して、コンパイル、インストール。
# ./configure --with-charset=utf8 --enable-utf8-only
# make
# sudo make install


以下のエラーが出るときは
libmecab.so.1: cannot open shared object file: No such file or directory

一手間必要。
# sudo vi /etc/ld.so.conf
/usr/local/libを追加
# sudo ldconfig

mecab-python-0.97.tar.gzを解凍する。
# tar zxvf mecab-python-0.97.tar.gz


展開したディレクトリに移動して、インストール。
# python setup.py build
# sudo python setup.py install


エラーの場合はpython-devをインストール。
# sudo apt-get install python-dev

ここを参考にテストする。
>>> import MeCab
>>> m = MeCab.Tagger('-Ochasen')
>>> print m.parse ("今日もしないとね")
>>> n = m.parseToNode('今日もしないとね')
>>> n = n.next
>>> while n:
>>>   print n.surface
>>>   print n.feature
>>>   n = n.next
今日
名詞,副詞可能,*,*,*,*,今日,キョウ,キョー

助詞,係助詞,*,*,*,*,も,モ,モ

動詞,自立,*,*,サ変・スル,未然形,する,シ,シ
ない
助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ

助詞,接続助詞,*,*,*,*,と,ト,ト

助詞,終助詞,*,*,*,*,ね,ネ,ネ

BOS/EOS,*,*,*,*,*,*,*,*


n.featureで品詞、n.surfaceで形態素が取り出せる。

ラベル: , ,

2008年2月23日土曜日

【Python】 MySQL-pythonのインストール

Ubuntu 7.04 Feisty, MySQL 5.0, Python 2.5

MySQLdbでpythonスクリプトからMySQLを操作することが可能。
以下インストール手順。

MySQL-python-x.x.x.tar.gzをダウンロードする。
http://sourceforge.net/project/showfiles.php?group_id=22307&package_id=15775

ダウンロード中に必要なパッケージをインストール。
# sudo apt-get install libmysqlclient15-dev

MySQL-python-x.x.x.tar.gzを解凍する。
tar zxvf MySQL-python-x.x.x.tar.gz

展開したディレクトリに移動して
# python setup.py build
# sudo python setup.py install

テスト用にデータベースpytestをcreateしとく。
# /usr/local/mysql/bin/mysql -u root -p
mysql> create database pytest

続いてテスト用データも作っとく。
mysql> use pytest;
mysql> create table test (user char(100), passwd char(100));
mysql> insert into test values('foo', 'fff');
mysql> insert into test values('hoge', 'hhh');
mysql> quit

PythonでMySQLに接続。
>>> import MySQLdb
>>> connect = MySQLdb.connect(db="pytest", host="127.0.0.1", port=3306, user="root", passwd="mypassword")
>>> cur = con.cursor()
>>> cur.execute('select * from test )
>>> rows = cursor.fetchall()
>>> for row in rows:
>>>   print row[0]
>>>   print row[1]
>>> cur.close()
>>> connect.close()

日本語をselectするときは
>>> cursor.execute("set character set utf8")
>>> cursor.execute('select * from test )
をしないと文字化けする。

ラベル: , ,

【MySQL】 MySQLをソースからコンパイルしてUbuntuにインストール

Ubuntu 7.04 FeistyにMySQL 5.0をインストールする。

以下のサイトよりmysql-5.0.xx.tar.gzをダウンロードする。
http://dev.mysql.com/downloads/mysql/5.0.html

ダウンロード中に必要なパッケージをインストール。
# sudo apt-get install libncurses5-dev


ユーザ、グループを追加する。
# sudo groupadd mysql
# sudo useradd -g mysql mysql -s /sbin/nologin


ダウンロードしたファイルを解凍する。
# tar zxvf mysql-5.0.xx.tar.gz


展開したディレクトリに移動して、コンパイル、インストール。
# ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charsets=all --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
# sudo make
# sudo make install


設定ファイルを/etcにコピーする。
# sudo cp support-files/my-huge.cnf /etc/my.cnf


MySQLの権限、DBなどの設定。
# cd /usr/local/mysql
# sudo ./bin/mysql_install_db --user=mysql
# sudo chown -R root .
# sudo chown -R mysql var
# sudo chgrp -R mysql .


MySQLを起動する。
# sudo ./bin/mysqld_safe --user=mysql


デーモンとしてプロセスを走らせる。
コントロールキー + Z
# bg


MySQLルートユーザのパスワードを設定
# /usr/local/mysql/bin/mysql -u root
mysql> set password for root@localhost=password('mypassword');


MySQLにターミナルから接続
# /usr/local/mysql/bin/mysql -u root -p


MySQLの停止
# /usr/local/mysql/bin/mysqladmin -u root -p shutdown


「追加の削除」よりmysqlで検索をかけるとMySQL Query BrowserとMySQL Administratorがインストールできる。とても便利なツールでおすすめ。

ラベル: , ,

【Python】 mod_pythonをソースからコンパイルしてインストール

ApacheのPythonモジュール、mod_pythonをソースコードからコンパイルしてからインストールする手順。

以下のサイトからmod_python-3.x.x.tgzをダウンロードする。
http://httpd.apache.org/modules/python-download.cgi?Preferred=http%3A%2F%2Fftp.kddilabs.jp%2Finfosystems%2Fapache

必要なパッケージをインストールする。
sudo apt-get install python-dev


ダウンロードしたmod_python-3.x.x.tgzを解凍する。
tar zxvf mod_python-3.x.x.tgz


展開したディレクトリに移動してコンパイル、インストール開始。
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
sudo make install


/usr/local/apache2/conf/httpd.confをroot権限で編集する。
以下を追加する。
LoadModule python_module modules/mod_python.so
<Directory "/path/to/DocumentRoot">
  AddHandler mod_python .py
  PythonHandler hello
  PythonDebug On
</Directory>


必要に応じて、DocumentRoot、ServerName、DirectoryIndex等を変更する。

Apache再起動。
/usr/local/apache2/bin/apachectrl restart


hello.pyを以下の内容でDocumentRoot直下に作成。
from mod_python import apache
def handler(req):
  req.content_type = "text/html"
  req.send_http_header()
  req.write("Hello World")
  return apache.OK


ブラウザで確認する。
http://localhost/hello.py

ラベル: , , ,

【Ubuntu】 Apacheをソースからコンパイルしてインストール

Ubuntu 7.04 Feisty, Apache 2.0

Apacheのソースを以下からダウンロード。
http://www.meisei-u.ac.jp/mirror/apache/dist/httpd

httpd-2.0.xx.tar.gzを選択してダウンロード開始。
待っている間、GCCとビルド関係で必要なパッケージをインストールする。
sudo apt-get install gcc build-essential


さらにユーザとグループを作る。
sudo groupadd apache
sudo useradd -g apache -s /sbin/nologin apache


ダウンロードが終わるとhttpd-2.0.xx.tar.gzを展開する。
tar zxvf httpd-2.0.xx.tar.gz


以下コンパイルとインストール。
./configure --enable-so
sudo make
sudo make install


Apacheは/usr/local/apache2にインストールされる。
設定ファイルは
/usr/local/apache2/conf/httpd.conf
本体は
/usr/local/apache2/bin
にある。

起動。
/usr/local/apache2/bin/apachectl start

停止。
/usr/local/apache2/bin/apachectl stop

再起動。
/usr/local/apache2/bin/apachectl restart

クライアント・ユーザのアクセスが終わったら再起動。
/usr/local/apache2/bin/apachectl -k graceful

ブラウザより
http://localhost/
で確認する。

ラベル: ,

2008年2月22日金曜日

【Ubuntu】 UbuntuからXubuntuへの移行とキーボード再設定

Wubi Ubuntu on VAIO Z505CRKをXubuntuに移行したときのログ。

XubuntuはUbuntuに比べ軽いとのこと。後からでもXubuntu化することができる。
ただし、パフォーマンスにどう影響するのかわからない。

Synapticパッケージ・マネージャーからxubuntu-desktopをインストール。
ログアウトしてオプションからXfceを選んでログイン。
Xubuntuとしてログイン。

システムの設定からログイン画面の設定を起動する。
ローカルタブからXubuntuを選ぶ。
ログアウトすると、ログイン画面もXubuntu化される。

キーボードが英語キーボードになっている。
キーボードの設定をGUIからするも受け付けない。

キーボードの設定ファイルを編集する。
sudo vi /etc/X11/xorg.conf


以下に変更。
Option "XkbLayout" "jp"


ログアウト、ログイン。
キーボードの設定を確認。
記号や日本語を叩いて確認。

Xubuntuに切り替えてみたところ、少し軽くなったことを体感できる程度だった。
古いPCならXubuntuを薦める。

ラベル: , ,

【Python】 SMTPでメール送信

smtp.gmail.com経由でメールを送信するPythonスクリプト。

必要なライブラリ。すべて標準でOK。
# -*- coding: utf-8 -*-
from email.MIMEText import MIMEText
from email.Utils import formatdate
import smtplib


メッセージの作成:MIMEText
msg = MIMEText('How are you?')
msg['Subject'] = 'Hi!'
msg['From'] = 'from@mail.com'
msg['To'] = 'to@mail.com'
msg['Date'] = formatdate()


メッセージの送信:smtplib.SMTP
s = smtplib.SMTP('smtp.gmail.com', 587)
s.ehlo()
s.starttls()
s.ehlo()
s.login('myaccount@gmail.com', 'mypassword')
s.sendmail('from@mail.com', ['to@gmail.com'], msg.as_string())
s.close()


以下のサイトを参考にしました。
smtplib
Unoh Labs

ラベル:

【Ubuntu】 VistaにWubiをインストール

今回使用したマシン。
Lenovo 3000 V100
ホストOS: Vista Business

Wubi 7.10はなにやら不安定で7.04を薦める記述がフォーラムにあったので7.04 Feistyをインストールする。Alphaだが8.04もダウンロードできるが危なそうなのでやめておく。

Wubi本家よりWubi-7.04.04.exeをダウンロードする。セットアップを起動してCドライブ、日本語、10GB、パスワードを入力したら先に進む。

ダウンロード待ちの間、DOS窓を管理者モードで起動。
bcdedit /timeout 10

これをしないとVistaとWubi Ubuntuの選択ができない。

WubiのWinインストーラーがセットアップを終了し再起動するかきかれたらリブート。

Wubi Ubuntuを選択する。
Ubuntuインストールが始まる。
ビープ音とともに自動でシャットダウン。
電源ONしてUbuntuを起動するも自動でリブート。
再度起動するとWubi Ubuntuがなんとか起動した。

グラフィック、無線LANともに問題なく動作している。
X (GUI) ○
無線LAN ○

日本語版デスクトップにするためにここを参考にしてローカライズ。

また、音楽・動画環境をここを参考にして整えた。

動画のコンバートはWinFFがおすすめ。
medibuntuは事前にインストールしておこう。

ラベル: , ,

2008年2月20日水曜日

【Ubuntu】 WubiからLVPMで素のUbuntuへ移行:失敗

VAIO Z505CRKにWubiでインストールしたUbuntu FeistyをLVPMというツールを使ってネイティブなUbuntuに移行する。WubiはNTFS上に仮想ドライブLVPMの本家よりParition Manager for UbuntuとLVPMをダウンロードしてインストール。
http://lubi.sourceforge.net/lvpm.html

再起動してWindows領域をデフラグ。必要ならバックアップ。
再起動。Ubuntu -> Escキー -> Parted Magic選択。
Gpartedアイコンからパーティションツールを起動。
Resize/Moveで新しい領域を確保。Wubiインストール時よりも確実に大きいサイズを指定する。
Applyでリサイズ実行。
Newからlinux-swapで512MB。
Newからext3をルート用として残り全部の領域を割り当てる。
Applyで新規領域確保。
ディスクの構成をメモしておく(後でルートとして使用するパーティションを訊かれる)。

再起動 Wubi Ubuntuを普通に起動。
エラー発生。
Windowsを起動。
chkdsk自動的に始まる。再起動。
Windows起動。ドライバ発見。
再起動。無事Windows起動。

再起動。Wubi Ubuntuを起動。
メニューのシステムツールにあるLVPMを起動。
transfer選択。
メモしたルート用の新パーティションを選んで転送をスタート。
(ext3のルート領域が小さいと、ここでハングアップするらしい)

が、途中でハングアップ。色々試すがどうしてもフリーズしてしまう。

参考:
LVPM: Upgrades Wubi installs to real Ubuntu installs with dedicated partitions

ラベル: , ,

【Ubuntu】 medibuntuでコーデックを楽々インストール

【Ubuntu 7.04 Feisty】
【Ubuntu 7.10 Gutsy】
Ubuntuでコーデックをインストールする。
$ sudo wget http://www.medibuntu.org/sources.list.d/feisty.list -O /etc/apt/sources.list.d/medibuntu.list

$ wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add - && sudo aptitude update


Synaptic パッケージ・マネージャーからpackages.medibuntu.orgからdevと付いていないものを全てインストール対象にする。ただし、amarok-engineははずした。適用ボタンでインストール開始。

これでたいていの動画・音楽フォーマットを再生・コンバートできる。

ラベル: ,

【Ubuntu】 日本語版セットアップ・ヘルパをapt-getでインストール

[Ubuntu 7.04 Feisty]

日本語版セットアップ・ヘルパを起動してインストールを試みると
変更を適用することができませんでした
まず破損パッケージを修復してください。

となりインストールができない。

そこで、apt-getでコマンドからインストールする。
sudo apt-get install ubuntu-restricted-extras
sudo apt-get install realplayer
sudo apt-get install lha-sjis
adobereader-jpnはなぜかapt-get installで入らない。Adob本家からjpn-8.1.2-1をdeb形式でダウンロードしてインストールした。

これでWeb環境が一通り揃った。

ラベル: ,

【Ubuntu】 Wubi Ubuntuをマニュアルで日本語デスクトップ化

WubiなどでUbuntuをインストールすると一部GUIのメニューが日本語になっていなかったりと、中途半端だ。そこで、日本語デスクトップをマニュアルインストールする方法をログする。
sudo vi /etc/apt/sources.list

最後の行に
deb http://archive.ubuntulinux.jp/ubuntu-ja feisty/
deb http://archive.ubuntulinux.jp/ubuntu-ja feisty-ja/

保存後、
sudo apt-get update
sudo apt-get install ubuntu-ja-keyring
sudo apt-get install ubuntu-desktop-ja

ラベル: , ,

2008年2月19日火曜日

【Django】requestオブジェクト

Python Djangoのrequestオブジェクトの使いかた。

GETかPOSTか調べる
if request.method == 'GET': do_something()
if request.method == 'POST': do_something2()


GETパラメーター
if request.GET.has_key('username'): username = request.GET['username']
if request.GET.has_key('passwd'): passwd = request.GET['passwd']


POSTパラメーター
if request.POST.has_key('username'): username = request.POST['username']
if request.POST.has_key('passwd'): passwd = request.POST['passwd']


クライアント/ユーザのアドレス
addr = request.META['REMOTE_ADDR']
if not addr: addr = ''


クライアント/ユーザのリファラー
ref = request.META['HTTP_REFERER']
if not ref: ref = ''


現在ログインしているユーザ
if request.user.is_authenticated():
  # Do something for logged-in users.
else:
  # Do something for anonymous users.


ここに詳しいです。

ラベル: ,

【Python】UTF-8の基本

pythonの文字コードの扱い方。

まず、勘違いしていたらどうしようもないので一応。
unicode≠utf-8


まぁ、比べること自体無茶なんだけど、一応。

実例 (LinuxのUTF-8モードのターミナルを使用)。
UTF-8なほげ
>>> hoge_utf8 = 'ほげ'
>>> hoge_utf8
'\xe3\x81\xbb\xe3\x81\x92' ←hoge_unicodeと異なる
>>> print hoge_utf8
ほげ

Unicodeなほげ
>>> hoge_unicode = unicode(hoge_utf8, 'utf-8')
>>> hoge_unicode
u'\u307b\u3052' ←hoge_utf-8と異なる
>>> print hoge_unicode
ほげ


printするとどちらも”ほげ”と出力されてしまう。hoge_utf8とhoge_unicodeはもちろん異なる値だ。
unicodeオブジェクトにはencodeとdecodeというメソッドがある。
>>> hoge_unicode.encode('utf-8')
'\xe3\x81\xbb\xe3\x81\x92' ←hoge_utf-8と同じ
>>> hoge_unicode.encode('cp932')
'\x82\xd9\x82\xb0'  ←Shift JISっぽいやつ


ソースファイルにUTF-8で日本語などを書くときは1行目に
# -*- coding: utf-8 -*-

を入れて、UTF-8形式で保存する。

ラベル:

【Ubuntu】 Wubi on VAIO Z505CRK

古いバイオノートにUbuntuをインストールすることを試みたがダメだった。ためしたバージョンは
Ubuntu 7.10 (Gutsy Gibbon)
Ubuntu 7.04 (Feisty Fawn)
Ubuntu 6.06 (Dapper Drake)


カーネル・ブート・オプションとしては
ide2=0x180,0x386
all-generic-ide
nousb
nousbstorage
pci=off
pci=nommconf
acpi=off
irqpoll

などなど。いろいろ組み合わせも試したが結局断念。

諦めかけたが、Wubiを試してみた。Wubi本家
Windowsで作業開始。Wubi-7.04.04.exeをダウンロードして実行。言語は英語を選択。日本語は文字化けが激しい。
特殊なUbuntuがダウンロードされる。大きいので有線接続がおすすめ。ダウンロードが終わると仮想ディスクの作成が始まる。

再起動後、Ubuntuを選択するとCUIセットアップが起動する。すると赤文字で
!!Load Installer Components from CD
とエラー発生。いろいろ調べて見たところどうやらFATのファイルサイズ制限が問題らしい。Windows 2000を起動して、Wubiをアンインストール。そのときISOイメージは保存を選ぶとよい。DOS窓から
convert c: /fs:ntfs

して再起動。CドライブがNTFSに変換される。Wubiのインストーラーを起動する。今度は仮想ディスクの作成がえらく長い。再起動でUbuntuを選ぶ。さっきのエラーは起きない。進捗を見守りながら一晩放置。リブートしようとしているところでハング。気にせず再起動。

ログイン画面が表れたので、とりあえず、ログイン。なにやらGNOME関連のエラーが発生したとのポップアップが出たが気にせずログアウト。ログイン画面の左下のオプションから言語を日本語に切り替えてログイン。さっきのエラーは出なかった。アップデートをかけてとりあえずインストール完了。

開発中最新版Wubiを試したいときはここから。

ラベル: , ,