transition

お勉強。

CSSのtransitionについて。

transition: [プロパティ] [時間] [タイミング], [プロパティ] [時間] [タイミング], ・・・

このスタイルを(プロパティ)、このくらいかけて(時間)、この速度(タイミング)で変化させますよということらしい。

複数まとめて書ける。

この速度での指定は。

liner
一定の速度
ease
やや減速で始まり、終わる
ease-in
減速から始まる
ease-out
減速して終わる
ease-in-out
減速で始まり、終わる

などのような指定の仕方。
ベジェ曲線に基づいているとのよくわかりません。、
このサンプルでそれぞれの違いがよくわかるかと思います。

使い方はこんな感じで、:hoverとなったときにスタイルを指定していたtransitionで変化させる。


#sample {
color: black;
transition: color .3s linear;
-o-transition: color .3s linear;
-moz-transition: color .3s linear;
-webkit-transition: color .3s linear;
}
#sample:hover {
color: red;
}

transition – jsdo.it – share JavaScript, HTML5 and CSS

アプリでも作ろう(Facebook編)

ここに初めてアクセスすると開発者の許可を求められるので許可。

そして新規アプリケーションを作成ページへ。

アプリケーション名を決める。

Face Integrationページでキャンバスページ。アプリ起動時にリンクするURL、

キャンバスページURLは自分の環境。

開発者のみアプリを利用可能にするのならばサンドボックスモードを有効にしておく。

@@書き途中

さくらのレンタルサーバにruby1.9

そろそろbotを動かす気になったきた。

ruby 1.9で作っているのでレンタルサーバにいれないといけない。

rubyはもともと入っているのだけれどバージョンが1.8なのです。

で、得意のまるまるコピー。

http://www.chrysolite.jp/2009/03/01/さくらのサーバでruby-on-rails/:title]


$ cd local/src/
$ curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.gz
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100 8813k  100 8813k    0     0  3208k      0  0:00:02  0:00:02 --:--:-- 3646k
$ tar xzf ruby-1.9.1-p0.tar.gz
$ cd ruby-1.9.1-p0
$ ./configure --prefix=$HOME/local
$ make
$ make install
$ cd ~
$ local/bin/ruby -v
ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-freebsd7.1]

できた。

あとはgemで入れていたものをいれる。

Twitter4Rのインストール – gonpingyのフレッシュ日記

rest-open-uriのインストール – gonpingyのフレッシュ日記

Ruby/MySQLのインストール – gonpingyのフレッシュ日記


$ ls local/lib/ruby/gems/1.9.1/gems/
json-1.1.9              rest-open-uri-1.0.0     tmtm-ruby-mysql-3.0.2   twitter4r-0.3.1

これでおっけー。

mysqlインストールし直し

よくわからないことになってMySQLのインストールをしなおした。。

入れる。variantsの+serverがmysql5-serverになった。


$ sudo port install mysql5-server
--->  Fetching mysql5
--->  Verifying checksum(s) for mysql5
--->  Extracting mysql5
--->  Applying patches to mysql5
--->  Configuring mysql5
--->  Building mysql5
--->  Staging mysql5 into destroot
--->  Installing mysql5 @5.0.83_0
--->  Activating mysql5 @5.0.83_0
--->  Cleaning mysql5
--->  Fetching mysql5-server
--->  Verifying checksum(s) for mysql5-server
--->  Extracting mysql5-server
--->  Configuring mysql5-server
--->  Building mysql5-server
--->  Staging mysql5-server into destroot
--->  Creating launchd control script
###########################################################
# A startup item has been generated that will aid in
# starting mysql5-server with launchd. It is disabled
# by default. Execute the following command to start it,
# and to cause it to launch at startup:
#
# sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
###########################################################
--->  Installing mysql5-server @5.0.83_0
******************************************************
* In order to setup the database, you might want to run
* sudo -u mysql mysql_install_db5
* if this is a new install
******************************************************
--->  Activating mysql5-server @5.0.83_0
--->  Cleaning mysql5-server

インストールコマンド実行。


$ sudo /opt/local/bin/mysql_install_db5 --user=mysql

設定ファイルをコピーして。


$ sudo cp /opt/local/share/mysql5/mysql/my-small.cnf /opt/local/etc/mysql5/my.cnf

起動。動きました。


$ sudo /opt/local/share//mysql5/mysql/mysql.server start

このページまんまですw

Snow LeopardにRedmineを導入 – sugarballの日記

Twitter4Rでmentions APIを使う

twitterのAPIに自分宛のtweetを取得するmentionsというAPIがあります。

Twitter API Wiki / Twitter REST API Method: statuses mentions

ただ、昨日入れたTwitter4RではこのAPIを使うメソッドがないらしい。

Twitter4Rを使ってTwitterのBotを作った – ひらやすのはてな日記

と書いてあり、使う方法も書いてあったので実施。

APIのURI追加するだけです。


$ vim /opt/local/lib/ruby1.9/gems/1.9.1/gems/twitter4r-0.3.1/lib/twitter/client/timeline.rb
1 class Twitter::Client
2   @@TIMELINE_URIS = {
3     :public => '/statuses/public_timeline.json',
4     :friends => '/statuses/friends_timeline.json',
5     :friend => '/statuses/friends_timeline.json',
6     :user => '/statuses/user_timeline.json',
7     :me => '/statuses/user_timeline.json',
8     :replies => '/statuses/replies.json',
9     :mentions => '/statuses/mentions.json',
10   }

9行目が追加。

なぜなかったのだろうか??単純にタイミングの問題かしら。

というかソースを見てみて、果たしてTwitter4Rを使う必要があったのかどうかが疑問。

今考えているものを作るには、一部のAPIを使うだけでよいので普通にopen_uriでよかったかも。。

Twitter4Rのインストール

ガチャピンのfollowだけではあまりにつまらないので

ついに人のfollowを始めた。

まだ、そんなにおもしろくはないけどbot作ってみるつもり。

のでtwitter APIを使うためにインストール。

Twitter4R – Open Source Ruby Project for Twitter REST API [Rubyforge]


$ sudo gem install twitter4r
Password:
Building native extensions.  This could take a while...
Successfully installed json-1.1.9
Successfully installed twitter4r-0.3.1
2 gems installed
Installing ri documentation for json-1.1.9...
Installing ri documentation for twitter4r-0.3.1...
Updating class cache with 37 classes...
Installing RDoc documentation for json-1.1.9...
Installing RDoc documentation for twitter4r-0.3.1...
ls /opt/local/lib/ruby1.9/gems/1.9.1/gems/
json-1.1.9/            tmtm-ruby-mysql-3.0.2/
rest-open-uri-1.0.0/   twitter4r-0.3.1/

jsonも一緒に入った。

gemで入れたのも4つになった。使ってないけど。。

rest-open-uriのインストール

いろんなAPIを使うための前準備でrest-open-uriをいれてみる。

別にrest-open-uriでなくともいいのですがRESTful Webサービス読んで

書いてあったのでちょっと使ってみようと思います。

RubyForge: open-uri for REST clients: Project Info

$ sudo gem install rest-open-uri
Password:
Successfully installed rest-open-uri-1.0.0
1 gem installed
Installing ri documentation for rest-open-uri-1.0.0...
Updating class cache with 27 classes...
Installing RDoc documentation for rest-open-uri-1.0.0...
$ ls /opt/local/lib/ruby1.9/gems/1.9.1/gems/
rest-open-uri-1.0.0

Ruby/MySQLのインストール

RubyからMySQLを使うためのライブラリをいれます。

ライブラリは2種類存在していて

Ruby/MySQL(pure Ruby)

MySQL/Ruby(CのMySQLライブラリのラッパー)

があります。

それぞれ長所、短所があるわけですが

作者の人が

MySQL/Ruby終了のお知らせ

こんなこと言っているのでRuby/MySQLの方をいれようと思います。

まだアルファ版だそうですが入れ方↓

Ruby/MySQL 3.0.2 alpha – しあわせプログラマ


$ sudo gem install tmtm-ruby-mysql --source http://gems.github.com

gemでインストールしたものがあるのは


$ ls /opt/local/lib/ruby1.9/gems/1.9.1/gems/
tmtm-ruby-mysql-3.0.2/

動くか確認する。


$ mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO gonpingy@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
$ mysql -u gonpingy -p
mysql> use test;
Database changed
mysql> create table ruby_test ( id integer, value varchar (32) );
Query OK, 0 rows affected (0.00 sec)
mysql> desc ruby_test;
+-------+-------------+------+-----+---------+-------+
Field Type Null Key Default Extra
+-------+-------------+------+-----+---------+-------+
id int(11) YES NULL
value varchar(32) YES NULL
+-------+-------------+------+-----+---------+-------+ 2 rows in set (0.01 sec)

insertはできる。


#! /usr/bin/ruby -Ku
require 'mysql'
mysql = Mysql.connect( 'mysql://gonpingy:password@127.0.0.1:3306/test' )
mysql.query ( "insert into ruby_test values ( 1, 'abc' )" )

が、selectでエラー。。


#! /usr/bin/ruby -Ku
require 'mysql'
mysql = Mysql.connect( 'mysql://gonpingy:password@127.0.0.1:3306/test' )
mysql.query ( "insert into ruby_test values ( 1, 'abc' )" )
mysql.query ( "select id from ruby_test" )

こんなエラーが。。。よくわからない。


/opt/local/lib/ruby1.9/gems/1.9.1/gems/tmtm-ruby-mysql-3.0.2/lib/mysql/protocol.rb:294:in `read_eof_packet': packet is not EOF (Mysql::ProtocolError)
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/tmtm-ruby-mysql-3.0.2/lib/mysql.rb:233:in `block in simple_query'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/tmtm-ruby-mysql-3.0.2/lib/mysql/protocol.rb:212:in `block in synchronize'
from <internal:prelude>:8:in `synchronize'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/tmtm-ruby-mysql-3.0.2/lib/mysql/protocol.rb:211:in `synchronize'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/tmtm-ruby-mysql-3.0.2/lib/mysql.rb:222:in `simple_query'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/tmtm-ruby-mysql-3.0.2/lib/mysql.rb:209:in `query'
from mysql.rb:6:in `<main>'

Ruby 1.9インストール

そういえばmacbookに入っているrubyは1.8なので1.9にしてみようということでメモ。

MacPortsでインストールしてみます。

参考にしたのは↓

K2-lab. –

Mac OSXで初めてのRubyを始めてみました – blog.katsuma.tv

ruby19とういうのをインストール。


$ sudo port install ruby19

インストールが終わったらデフォルトで入っている1.8から

1.9をみるようシンボリックリンクを作成。

(MacPortsでのインストール先は/opt/local/bin/)


$ sudo mv /usr/bin/ruby /usr/bin/ruby18
$ sudo ln -s /opt/local/bin/ruby1.9 /usr/bin/ruby
$ ruby -v
ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-darwin9]

他にもシンボリックリンク作らないといけないですね。

それと今まで作ってたプログラムが早速動きません。。

追加


$ sudo mv /usr/bin/gem /usr/bin/gem18
$ sudo ln -s /opt/local/bin/gem1.9 /usr/bin/gem

Handling International Encodings

Problem

You need to handle strings that contain nonASCII characters: probably Unicode characters encoded in UTF-8.

UnicodeなどASCIIコード以外の文字を扱う。

Solution

プログラムの最初に組み込み変数$KCODEでエンコードを指定すればよい。


$KCODE = 'u' # utf-8

shebang行に-Kで記述もできる。


#!/usr/bin/ruby -Ku