Rails の データ型と、MySQL のデータ型の対応

JUGEMテーマ:コンピュータ


Railsのデータ型について、うろ覚えだったので、調べたメモです。

Rails シンボルMySQL 型
:binaryblob
:booleantinyint(1)
:datedate
:datetimedatetime
:decimaldecimal
:floatfloat
:integerint(11)
:stringvarchar(255)
:texttext
:timetime
:timestampdatetime



元ネタには、Ruby Class についてもまとまっててさらに便利です。
→ 『 MySQL and Ruby on Rails datatypes


はやく、Rails終わってiOSのコード書きたい・・・

magit を、CentOS 6 にインストール

JUGEMテーマ:コンピュータ


Mac に引き続き、最近よく利用している、さくらのVPSに yam で入れた emacs にも、magit を入れてみる。

はじめ、README通り;
$ make && sudo make install

するんだけど、うまくいかず。
texinfo とかないよ。って言われたから、入れるんだけど;
# yum install texinfo-tex
 ※参考
それでもうまくいかず。

先人がいたので、それを真似てみる;
magit.el を試してみた - うっかりプログラミング日誌
$ git clone git://github.com/jdhuntington/magit.git
$ ./autogen.sh
$ ./configure --prefix=$HOME/lisp/magit
$ make
$ sudo make install


.emacs に以下追加;
(add-to-list 'load-path "~/lisp/magit/share/emacs/site-lisp/")
(require 'magit)




うまくいった。。でも;
In end of data: magit.el:3245:1:Warning: the following functions are not known to be defined: pcomplete-parse-buffer-arguments, ediff-cleanup-mess

みたいな、気になる警告がでる。検索してみると、
こんなMLエントリー発見。

なんかでも、とりあえず困ったらここに戻って対応するとして。とりあえず、今回のインストールの巻・終了。



って、思ったら。yum で magit 入れられるらしい。。。
[Emacs]magitを使ってみました(k4zm blog )

magit を、Lion の emacs にインストール

JUGEMテーマ:コンピュータ


そろそろ、git 本格的にやらないとなあ。と思ってます。「思ってる」だけだとだめなので、いろいろよさげな本探しました。どうやら『入門git』がよさそう。と思って、半分くらい読んでみました。

なんか、git。わかった気がする!

とはいえ、emacs 使いとしては、emacsから使えないと面倒くさくて、実践で使えない。

いろいろ探したら、emacs wiki (英語)に、いろんな種類の git 対応 .el が紹介されてました。

git-emacs」というのにもすごく惹かれたけど、Web上で情報が少なすぎるということで、まずは却下。

egg」も評判いいみたいだけど、これもWeb 上で情報が少ないから、却下。


で、結局「magit」を入れてみました。

インストールは、githubから落としてきた圧縮ファイルを解凍し、そのフォルダに移動して;
$ make && sudo make install

したんだけど;
magit-stgit.el:42:1:Error: Symbol's function definition is void: declare-function

みたいなエラーが頻発。

いろいろ調べたんだけど、とりあえず macport から新しいemacsを入れてみようと思って、まずは;
$ sudo port install emacs

しました。

インストール後;
$ which emacs

すると;
/opt/local/bin/emacs

って返ってくる。どうやらインストールも、パスも問題なさそう。



ということで、今度はパスを指定して、magit を make してみる;
$ make EMACS=/opt/local/bin/emacs


エラーは出ない。大丈夫そう。ということで、make install する;
$ sudo make install


成功したっぽい。



あとは、.emacs にパス指定して、require する。.emacs ファイルに、以下追加;
;; magit 用ロードパス追加
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp")
(require 'magit)


emacs を再起動した後、.git のあるディレクトリに移動して、;
M-x magit-status

とか打ってみる。

なんか出た(↓)。とりあえず、大丈夫っぽい。とりあえず、これで勉強続けてみる。






P.S.ちなみに。なんで『入門git』を買ったかというと、The Pragmatic Programmers の本を信用していて。さらに、この原書と、邦訳が同じバージョンで、原書がまだバージョンアップされていないから。(ということは、内容が古くなっていないと推測されたから。ちなみに、その推測はバッチり当たってました☆彡)




Google とは、縁をキレない。

ここのところ、いくつか Google に対して、ネガティブなエントリーが続いたんだけれど;
 ・『Google と、原発。
 ・『Google について
でも、やっぱり、Google の利用を停止することはできない。 一番の理由は、Webやモバイルの開発/運用において、Google のサービスを利用しないわけには、いかない。という点だ。GmailやGoogle+ は使わずに済んでも、Google Analytics や、Google Adwords API を使わないわけにはいかない。



Adobe(Omniture)が提供するような、クローズドなサービスは、大きな組織に属していれば(、Adobeの法人営業にも相手にされるから)、自由に情報を入手できるし利用条件の交渉がやりやすいけど、フリーやスタートアップの場合には、とたんに付き合いづらくなる。Google Analyticsを使わずに、SiteCatalyst を使う選択肢もあるけれど、それは大企業に属している時だけの選択肢だ。すべての人に自由な選択肢ではない。OmnitureのSEM製品を使うには、それ相応の資金力が必要だ。

結果、僕が個人でWebやモバイルの開発/運用をするためには、Google Analytics や、Google AdWords API の力を使わせてもらわずにいられない。

言うことコロコロかわってる様に受け止められると思うけれど。Google がEvilなダークサイドに落ちそうになったら、全力で牽制する声をあげつつ。でも、やっぱり全力で利用させてもらおうと思います。

この件、以上で終わり。今後、Google Analytics や、Adwords のTIPSなどのエントリーが出てくると思いますが。そういうことなので、よろしくお願いします。


Cyberduck で sudo できないから、SCP コマンドたたいてみた

JUGEMテーマ:インターネット


ふだん、サーバにファイルをアップするときは、Cyberduck を使ってます。



SSH(SFTP)が使えるし、シンプルで分かりやすいUI。かつ無料!



でも先日、Cyberduck では対応できないケースが発生しました。

・ssh_key を使って認証しているサーバで
・スーパーユーザでないといじれないディレクトリに
・su して、ファイルをアップしたり、移動したりする

ことが、できないようなんです。

→ http://trac.cyberduck.ch/ticket/1264



ひょっとしたら、何かやり方あるのかもだけれど、調べるのが面倒wだったので、ターミナル.app から SCP コマンドを使って転送しました。以下『ssh でファイル転送(SCP コマンド)|Hidde’s Tips』様の記述に従います。

▼ローカルホスト→リモートホストへ転送(アップロード)
$ scp [オプション] [ファイル名] [ユーザ名]@[ホスト名]:[リモートパス]

(例) ポート番号22で、index.html を転送する
$ scp -P 22 index.html admin@domain.com:/home/admin/htdocs/
admin@domain.com's password:
index.html 100% 4 0.0KB/s 00:00

(例) 秘密鍵を使用する場合
$ scp -P 22 -i ~/.ssh/id_rsa index.html admin@domain.com:/home/admin/htdocs/

(例) ディレクトリごと転送する場合
$ scp -P 22 -rq htdocs/ admin@domain.com:/home/admin/


▼リモートホスト→ローカルホストへ転送(ダウンロード)
$ scp [オプション] [ユーザ名]@[ホスト名]:[ファイル名] [ローカルパス (.)はカレント]

$ scp -P 22 admin@domain.com:/home/admin/htdocs/index.html .
admin@domain.com's password:
index.html 100% 4 0.0KB/s




ssh でファイル転送(SCP コマンド)|Hidde’s Tips』様、必要最低限かつ汎用性のあるメモ、助かりました。ありがとうございました。

【iOS開発メモ No.001 】『キーボードをしまう/閉じる』

JUGEMテーマ:コンピュータ


テキストボックスに何か入力してもらった後、キーボードをしまう(閉じる)動作を実現したいと思いました。こんな(↓)感じです。









キーボードをしまう場合、よくあるのは;

1)リターンキーを押すと、入力が確定してキーボードが閉じる
2)「閉じる」ボタンがキーボードの上についていて、それをクリックすると閉じる
3)キーボードの領域以外の部分をクリックすると、キーボードが閉じる

というパターンでしょう。(ほかにもっとクールな方法があれば、知りたいです)

「1」と「2」は、トリガーとアクションがイメージしやすいので、ある程度プログラムの勘がある人なら、ググったりして実装方法を見つけるは難しくないんではないでしょうか。

「3」については、自分が何かアプリ使ってて、経験則的にやることあるけど。実装するとなると、そのイメージがすごく難しいです。少なくとも、ぱんには難しいです。

「キーボード以外の領域」というけれど、その中にもテキストボックスがあったり、ボタンがあったり、テキストラベルがあったり。それらを除外した領域の座標を、いちいち計算して、実現しないとだめなんだろうか。どうなんだろうか。。

と思っていたら、意外にもカンタンに実現できるをこと知りました。



まず、キー入力が発生する ViewController の Xib ファイルを開き、メインのViewインスタンスを選択し、IdentityInspector でクラスを「UIControl」に設定します。




次にXibに対応する、 .h ファイルを「Option + クリック」で Xib と .h を横に(アシスタントモードで)並べます。



次に、Xib の中で一番大元の View を選択します(ブルーラインで選択された状態になってる部分)。そして「Control + ドラッグ」で、 .h ファイルのメソッド指定部分に放り込む。 すると、下記のような状態になるので、Connection を「Action」に、Name を適当に「backgroundTapped」などに、Event を「Touch Up Inside」に指定し「Connect」ボタンをクリックします。





こんな感じで、.h にメソッドが宣言されます。



.m ファイルでは;



[self view] に対して、endEditing:YES を送って、編集モードを終わらせます。


以上です。


なあんだ。一番大元の View をタップしたら、編集モードを終わらせればいいだけか。


こういうのって、知ってしまった後になれば、カンタンすぎることなんだけど。知るまでの道のりが、意外に遠い。

こういうネタを集めて、体系的に整理して、非プログラマー向けの本書きたいなあ。すごく売れそうなタイトルも、考え済みです。どなたか編集者の方で、この記事読んでいらっしゃる方いたら、facebook等で、ぜひご連絡を!w



今日のネタ元は下記書籍です;

iOSプログラミング 第2版』。



【追記:2012年3月27日】
iOSプログラミング 第2版』は、一見小難しいですが、読破すれば力になること確実。『iOS開発におけるパターンによるオートマティズム』の内容で、かつ、それぞれの説明を素人でもわかりやすくした感じです。本気で学習したい人には、ぴったりの教材だと思います。ただし『iOSプログラミング 第2版』は、海外では2012年4月に、第三版(英語)が発売されます。英語ができる人は、それを待つのが賢明です。英語苦手な人は、『iOSプログラミング 第2版』と、第三版(英語)の両方買って、勉強するのがいい気がします。


Google について

JUGEMテーマ:インターネット


前回のエントリーで、かなりネガティブな書き込みをしましたが。ようやく、頭の中が整理されてきました。

Googleのこと、好きです。なくなってほしくありません。

でも、世の中がGoogleだけになるのは、嫌です。多様性が欲しいです。

Google Analytics があるから、「Yahoo!アクセス解析」や「Infoseek アクセス解析」がなくなるのは、嫌です。

Google Search Engine があるから、「Yahoo! Search Technology」がなくなるのは、嫌です。

Android があるから、iOSがなくなるのは、嫌です。

Google 日本語入力があるから、ATOKがなくなるのは、嫌です。

Google Map があるから、Yahoo!マップがなくなるのは、嫌です。



Googleしかない世の中なんて、気持ち悪い。いろんなサービスの中で、気持よく使うサービスを選びたい。

ただ、それだけです。

そのために、あまりにも強すぎる Google ではなく、その他のサービスを、可能な限り、積極的に使っていきたい。

現在は、そう思っています。


▼▼ 2012/04/11 UPDATE ▼▼
⇒『Google とは、縁をキレない。

Google と、原発。

JUGEMテーマ:インターネット


Google に対して、ここのところずっと違和感を感じている。

3/1に変更されたプライバシーポリシー(&規約)を、さっき読んでいて。その違和感の端緒を掴んだ気がした。

「原発について、原子力村の人たちがしている説明と似ている。」んだ。

一見した(机上の)、論理は正しいんだ。

でもそこに、俯瞰した論理の深みが、まったくないんだ。

たしかに;

- 人間が、邪悪でない状態<Don't be evil>で、ミスなく運用していれば問題はない。
- 想定以上の出来事(天変地異や、社会的変革)が起きない限り、問題ない。

んだろうけれど、そんなにうまく、事は運ばない。



- 関係者が増えれば邪悪な人も混じるし、ミスも起きる。
- Google は、外部の開発者に向けて、数々の便利なAPIをオープンに提供している。
- 大地震は起きるし、思ってもいなかった社会的変革も起きる。



勘違いしてほしくはないんだけど、Google が3/1 に更新した利用規約と、プライバシーポリシーが悪いと言っているわけではない。Internet の進歩のためには、必要であるとさえ思える。Google がやらなくて、誰がやるんだ。とも思う。 でも、リスクが高すぎる。



そこで、自分がまず自分の身近で出来ることをやろうと思った;

1)Android は使わない。なぜなら、通信の記録が、他のサービスで利用される可能性があるから。
【プライバシーポリシー:Google が収集する情報】電話のログ情報(お客様の電話番号、通話の相手方の電話番号、転送先の電話番号、通話の日時、通話時間、SMS ルーティング情報、通話の種類など)


2)自分の運営するWebサービスでは、Google Analytics の利用を控える。既に運用しているサービスに入っているGoogle Analytics も、段階的に利用を停止する。なぜなら、サービス利用者に不利益を与える可能性があるから。

3)メインのメールとして、Gmail を利用しない。なぜなら、自分だけでなくメールの送信者の情報も記録されるため、送信者に不利益を与える可能性があるから。

ほかにも、あるんだろうけど。思いつかないから、とりあえずこんなところで。


【参考事件】
・『Googleマップ個人情報流出まとめ』
・『最近 Android Market の売上レポートに購入者の個人情報が思いっきり入るようになってしまった件』


P.S.
明日という日を前にして、精神的に不安定なだけかもしれない。とも思っているけれど。

【追記:2012年3月21日】
※ 関連記事を書きました → 「Google について」

▼▼ 2012/04/11 UPDATE ▼▼
⇒『Google とは、縁をキレない。


【オススメ】Xcode4 チートシート(cheat sheet)

JUGEMテーマ:コンピュータ


Xcode4。使い込みだすと、ショートカットを覚える必要性を痛感します。

特に、MacBook Air などの表示領域が狭い環境だと、ウインドウ内の構成をこちょこちょ変えながら作業しないと、ストレスたまってしまいます。よね。

で、いいのないかなーと。ずーっと探してたんだけど。ようやく見つけました!

ぱんも最近すごくお世話になっている、『iOSプログラミング 第2版』の原書を出している「Big Nerd Ranch」という会社が、メルマガ登録するとダウンロードさせてくれる「Xcode 4 Quick Reference Card」がソレです。

ざっくりイメージは(↓)こんな感じ。



シンプル、かつ、必要十分の内容。ビジュアル重視で、わかりやすい。





ダウンロードするには(↓)赤丸部分をクリックして、メルマガ登録すればOK。






ちなみに、先にも書いたんですが、『iOSプログラミング 第2版』。相当いいです。




iOSプログラミング初心者を脱出したい人は、読んで損はないと思います。ぱんはまだ半分くらいしか読み進めていないのですが、読み終わったらレビュー書くつもりです。

【追記:2012年3月27日】
iOSプログラミング 第2版』は、一見小難しいですが、読破すれば力になること確実。『iOS開発におけるパターンによるオートマティズム』の内容で、かつ、それぞれの説明を素人でもわかりやすくした感じです。本気で学習したい人には、ぴったりの教材だと思います。ただし『iOSプログラミング 第2版』は、海外では2012年4月に、第三版(英語)が発売されます。英語ができる人は、それを待つのが賢明です。英語苦手な人は、『iOSプログラミング 第2版』と、第三版(英語)の両方買って、勉強するのがいい気がします。

OS X で、複数の id_rsa を生成・管理するメモ

JUGEMテーマ:コンピュータ


GitHub(とか、Gitとか)から、そろそろ逃げていても仕方が無いな。と思って、ひとまずGitHubにアカウントつくりました。あー。面倒くさいけど、勉強しておかないとだめなんだろうなあ、Git。ユニットテストとか、Gitとか、Capistranoとか、この手の話はすごく苦手なんだけど、徐々に苦手意識なくして、がんばらねばなあ。。と、グチはさておき。GitHub使うにあたって、SSH public key(RSA)の登録が必要だったので、メモ。

SSH Key は、外部のサーバに接続する際などで利用されてますよね。ぱんも、自分で管理しているサーバの「sshd_config」で、RSAAuthentication を有効にしています。一つのSSH Key を、いろんなサービスで使い回してもいいのかもしれないんですが、よくわからなくなると嫌なので、案件ごとにSSH Key を作成・管理したいと思います。

1)現在SSHキーが存在している場合、ファイル名を変更します;
・「 $ ls -la ~/.ssh 」で内容を確認し。
・「id_rsa」を「id_rsa.◯◯◯◯」に変更。
・「id_rsa.pub」を「id_rsa.pub.◯◯◯◯」に変更。
※「◯◯◯◯」は、任意の半角英数字


2)「$ touch ~/.ssh/config 」で設定ファイルを生成し、内容を以下のとおりとします;
-------
 Host ◯◯◯◯
HostName ◯◯◯◯
IdentityFile ~/.ssh/id_rsa.◯◯◯◯
User ◇◇◇◇
-------
→そのサーバに接続する際は、$ ssh ◯◯◯◯ とすればOK。



3)新しいSSH Keyを作成します;
・「 $ ssh-keygen -t rsa -C "xxxxxx@xxxxx.com" 」

4)「3」についても「1」と同じ用にリネームし、「2」のファイルを;
-------
 Host ◯◯◯◯
HostName ◯◯◯◯
IdentityFile ~/.ssh/id_rsa.◯◯◯◯
User ◇◇◇◇
 Host ◎◎◎◎
HostName ◎◎◎◎
IdentityFile ~/.ssh/id_rsa.◎◎◎◎
User □□□□
-------
のように、追加編集します。

◎◎◎◎に接続したい場合は;
→ $ ssh ◎◎◎◎ とすればOK。


以上。シンプルながら、便利ですね。


▼参考サイト)
Set Up Git 〜GitHub〜
~/.ssh/config で簡単に複数ホストへのSSH接続を管理する
SSH-KEYGEN (1) 〜Open SSH マニュアル翻訳〜

本が出てます☆

主に、デザイン以外の
パート(企画・マーケティング等)を担当してます



発注者のためのWeb制作本。
制作者/開発者の方も必見!
Twitter
selected entries
categories
archives
recent comment
  • magit を、Lion の emacs にインストール
    ぱん (05/08)
  • 【 Xcode4.2 】Interface Builder使わずに、座標を合わせたい(習作1)
    ぱん (12/21)
  • 【 Xcode4.2 】Interface Builder使わずに、座標を合わせたい(習作1)
    kuronobee (12/02)
  • 【随時更新】RailsGuide 訳『Rails 国際化対応 - I18n API』
    5.5 (12/07)
  • さくらインターネットで、gem install すると「chown/chgrp: Operation not permitted 」と叱られる件の対応
    はせがわ (11/03)
  • Rails 2.3 環境で、search_do(hyperestraier)と will_paginate を使って、全文検索を実現しようとした件
    ぱん (01/26)
  • UQ WiMAX を試してみる@多摩川・丸子橋近辺
    ぱん (10/26)
  • さくらインターネット・スタンダードプランのMySQLはインスタンスが1つまでだけど
    管理人 (09/19)
  • さくらインターネット・スタンダードプランのMySQLはインスタンスが1つまでだけど
    通りすがり (09/15)
  • HTMLコーディングの専門制作会社
    ぱん (07/23)
recommend
iOSプログラミング 第2版
iOSプログラミング 第2版 (JUGEMレビュー »)
アーロン・ヒレガス,ジョー・コンウェイ,Aaron Hillegass,Joe Conway
■独学で初心者を脱出するには、必読ではないでしょうか。翻訳でニュアンスが伝わらない部分があるので、原書と、サポートサイト(英語)を活用すべし!です。
recommend
iPhoneプログラミングUIKit詳解リファレンス
iPhoneプログラミングUIKit詳解リファレンス (JUGEMレビュー »)
所 友太
■内容古いですが、iOSプログラマー中級以上の階段を登るために、必要な本だと思います。iOS5対応版出ないかな。。
recommend
iOSプログラミング入門 - Objective-C + Xcode 4で学ぶ、iOSアプリ開発の基礎
iOSプログラミング入門 - Objective-C + Xcode 4で学ぶ、iOSアプリ開発の基礎 (JUGEMレビュー »)
大津 真
■Ch.1「iOS プログラミングを始めるための基礎知識」でXcodeの概要を理解して、Ch.2「Objective-C の基礎知識」で、Objective-Cの考え方を理解できます。iOSプログラミングのキックオフにぴったり。
recommend
去年ルノアールで
去年ルノアールで (JUGEMレビュー »)
せきしろ
■ルノアールで妄想が爆発
recommend
RailsによるアジャイルWebアプリケーション開発 第4版
RailsによるアジャイルWebアプリケーション開発 第4版 (JUGEMレビュー »)
Sam Ruby,Dave Thomas,David Heinemeier Hansson
■Railsのバイブル第4版の日本語版が2011年末にリリース!サーバサイドで準備するAPIや、Webサイト関連のもろもろは、やっぱRailsでしょう。
links
profile
search this site.
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM
sponsored links