2012年6月25日月曜日

アイデアを生む天才と凡人の紙一重な差



っていう画像がfacebookで流れてきた。
天才になりたいのでメモ。

(「天才になりたいのでメモ」とか言ってる時点で凡人)

EC2インスタンスに関してのメモ

メモ。amazon web servicesの資料より。

EC2インスタンスの停止と終了。

Terminate(終了)

  • EC2インスタンスは終了
  • (デフォルトでは)EBSも消滅


Stop(停止)

  • EC2インスタンスは消滅する(ハイバネーション)
  • EBSは残る(課金もされる)


2012年6月20日水曜日

AmazonEC2に関するメモ

(何かあったらその度足していこうと思います)
  • インスタンスの置き場所は東京が一番高く、アメリカ西海岸が一番安い。
  • インスタンスは使わない時はとりあえずstopする。課金されない。

MongoDBをAmazonEC2で(2)

var/www/htmlないからhtmlとか置けないじゃん!
どうすんの!

と思ってたら、そもそもhttpdがインストールされていないらしい。

$ sudo yum install httpd

このコマンドを打てば、var/www/html が現れるよ。
ここにhtmlだとかもろもろおけばおk!

URLはここにかいてあるよー!!
赤い四角のとこ。ここにアクセスすればみれる。



ついでにphpもダウンロードしておく。
$ sudo yum install php

【メモ】
sudo打つのめんどくさかったら以下のコマンドを。
$ sudo su -

【関連記事】
MongoDBをAmazonEC2で【前準備】

2012年6月18日月曜日

MongoDBをAmazonEC2で(1)

MongoDBの本家サイトの方に導入のやり方が書いてあったんだけど、
古いバージョンの説明しかなかったせいか、できなかった。

MongoDBの本家サイトのやり方がかいてあるページ
http://www.mongodb.org/display/DOCS/Amazon+EC2

このページを参考に進めてみる
http://ryooo321.blogspot.jp/2011/11/amazon-ec2mongodb.html

でもこれもちょっと古い。

$ curl -O http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.6.tgz
urlはバージョンあがってる可能性があるので、
ここのページからチェックする。
http://www.mongodb.org/downloads
$ tar xvfz mongodb-linux-x86_64-2.0.6.tgz


実行ファイルを移動する。
$ sudo cp mongodb-linux-x86_64-2.0.6/bin/* /usr/local/bin/


データ保存先を作成。

$ sudo mkdir /var/mongo
$ sudo chgrp -R (ユーザー名を入れる※1) /var/mongo
$ sudo chmod -R g+w /var/mongo

※1
ユーザー名は以下のコマンドで確認できる。
$ who

 起動。
$ mongod --dbpath /var/mongo/ --logpath /var/mongo/db.log --fork
$ forked process: 1348
all output going to: /var/mongo/db.log
(この画面で止まるので、enterキーを押す)

これで起動します。

mongo使えるかな?
$ mongo
MongoDB shell version: 2.0.6
connecting to: test

使えるみたいだ。


【関連記事】
MongoDBをAmazonEC2で【前準備】

MongoDBをAmazonEC2で【前準備】

インスタンスのAmazon Machine ImageはAmazon Linux AMIが一番カスタマイズが楽らしいので、これを選択しました。

インスタンス作成に関しては、このサイトを参考にさせていただきました。
http://fm575.net/?p=803

秘密鍵(なんちゃら.pem)は自分の好きなところに保存しておけばok。これから使います。
私は.sshの中に保存しました。

次、このインスタンスにsshでアクセスできるようにします。
アクセスしたいインスタンスを選択して、
InstanceAction > Connect を選択。



そして、以下のモザイクのところに書かれているコマンドを、
Macのターミナルに打ち込む。




すると、


っておこられた。

秘密鍵のパーミッション権限がゆりすぎるみたいです。
ゆるくて危険だからはいれないですよって。

600にしたら入れるみたいなので、以下のコマンドを打って書き換えましょう。
chmod 0600 (pemファイルのあるところ、pemファイルまでのパス)

これでMacのターミナルから入れるようになります。
次はこれにMongoDBいれたいです。



今日のメモ




【次の関連記事】



2012年6月12日火曜日

CentOSにRubyをいれる(2)

前回の記事↓
http://ikezawa-ayaka.blogspot.jp/2012/06/centosruby1.html

今回はRVMにRubyをいれていきまそ!!!

最新のにアップデートしてるかな?いちおアップデートのコマンドを。
# rvm reload

ついでにバージョンも確認

# rvm --version
rvm 1.14.1 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

#rvm list known
使えるものリストがだーっとでてくる。

#rvm install 1.9.3
1.9.3をダウンロードする。

#rvm list
インストールしたrubyのリストがでてくる。

# rvm use 1.9.3
1.9.3を使うよ。

# rvm use 1.9.3 --default
1.9.3をデフォルトで使うよ。

私はこれにSinatra入れた。
# gem install sinatra

Rails使う人は、gemsetを使うと、さらにRailsのバージョン管理ができるよ。

【前の記事】

2012年6月11日月曜日

CentOSにRubyをいれる(1)

CentOS5.8(32bit)にRubyをrvmで入れた記録。

CentOSの64bitだと若干やりかた違うみたい。
それは以下参照で。
http://d.hatena.ne.jp/tetsuyai/20110716/1310778295

sudoがけっこうでてくるので、root権限になる。
$ su -

でね、こうコマンドを打つ。
# yum install curl*
ここは64bitだとやりかたでてきたんだけど、32bitだとやり方がでてこなくって、正直適当(笑)

でもバージョン確認してみると一応入っている(笑)
# curl --version
curl 7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
Protocols: tftp ftp telnet dict ldap http file https ftps
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz 


次、gitを入れる。
参考にしたのは以下のサイト。
http://d.hatena.ne.jp/tututen/20120216/1329357541
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# sed -i 's/enabled = 1/enabled = 0/g' /etc/yum.repos.d/rpmforge.repo
# yum --enablerepo=rpmforge list | grep git
# yum -y --enablerepo=rpmforge install git

gitちゃんとはいっているかしら?

# git --version
git version 1.7.10.4
入っているね。

お次!RVM!
RVMはすぐダウンロードのURLが変わるから嫌いだ!
参考にしたサイト

# bash -s stable < <(curl -s # bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

これ打ったら、だあああっと文章がでてくるよ。

でもね。多分何もエラー出てこないでちゃんとできたと思うんだけど、rvmのコマンドが動かない。なんでだろ。

ま、いちお、CentOS再起動してみっか、と再起動してみたら
うごいたァァァアアアア

ちょっといらついた。
なんなんですか。

まあいいや、次回RVMにRubyをインストールしていこ。

【次の記事】





phpでMongoDBを使えるようにするには(2)

 ではではphp書いていこう!

ファイル置く場所は
/var/www/html
の下だよ。
そこにindex.phpなんてファイルを作っておいておくと、
http://(IPアドレス名)
でファイル確認できるようになります。

このアドレスでMacからも確認できるようになる。
(これできるようにするのに、httpdの設定を少し直したような気もするけど、昔に設定したのであんまり覚えてない…)

前の記事で書いたように、Macからファイルを編集できるように設定しておけば、ほとんど Macから編集したり確認したりできるようになります。

ではでは、お待ちかねのPHPです。ようやく登場だーー!!

適当にindex.phpを作ります。
で、ベース。
<html>
  <body>
  </body>
</html>

まずは情報を登録してみよう。
<html>
  <body>
    <?php
      //MongoDBを起動?
      $mongo = new Mongo();
      //hogeっていうDBをつくる
      $db = $mongo->selectDB("hoge");
      //hoge_col_1というコレクションを作る
      $col = $db->selectCollection("hoge_col_1");
      //情報を登録する
      $doc = array("name"=>"MongoDB", "type"=>"databese","count"=>1);
      $col->insert($doc);
      //webにhogeと表示する
      //(ちゃんとphpが動いているか確認するという意味を込めて)
      echo "hoge";
      ?>
   </body>
</html>

これで登録できました。
お次に、データベースにちゃんと登録できているか確認するという意味も込めて、
確認のためDBの中身を表示してみましょう。

<html>
  <body>
    <?php
      $mongo = new Mongo();
      //hogeというDBのhoge_col_1というコレクションの中身をみる。
      $db = $mongo->hoge->hoge_col_1->find();
      foreach ($db as $doc) {
        //$usernameという変数の中に、
        //hoge_col_1の"name"のタグがついたものの中身を代入
        $username=$doc["name"];
        //で、表示してみる。
        echo $username;
      }
    ?>
  </body>
</html>

MongoDBと表示されればokです。


【MongoDB関連記事】


phpでMongoDBを使えるようにするには(1)

環境:
Mac OS X SnowLeopardにCentOS入れて、CentOSでやってます。
CentOS5.8です。

--


毎回のことですが、"sudo"打つのめんどくさいので、最初からroot権限で〜!
$ su -

で、おつぎ!PHPがmongo使えるようにします。
# pecl install mongo

CentOSにpeclなんてコマンドねえよーて言われたら、
# sudo yum install php-pear
でpeclコマンド使えるようにします。

phpの設定ファイルで、モジュール(?)を有効にするらしいです。なんのことだか。
とりあえず、とあるファイルを書き換えますぜ!というかもともとこんなファイルはないようなので、作ったってことになりますね。
# vi /etc/php.d/mongo.ini


で、以下のような文言を書き加える。
; Enable mongo extension module
extension=mongo.so

一応、これでokらしいのですが、念には念を入れて確認。
# php -i
をするとなにやら文字がばああああっと出てくるので、
以下のようなmongoに関しての記述があるかチェック。
mongo
lll
lll
MongoDB Support => enabled
Version => 1.0.8
lll
Directive => Local
Value => Master Value
mongo.allow_persistent => On => On
mongo.auto_reconnect => On => On
mongo.chunk_size => 262144 => 262144
mongo.cmd => $ => $
mongo.default_host => localhost => localhost
mongo.default_port => 27017 => 27017
mongo.utf8 => 1 => 1

あればok。

その後、一応httpdを再起動。
# /etc/init.d/httpd restart 

「phpでMongoDBを使えるようにするには(2)」に続きます。


【参考文献】

CentOSのファイルをespressoで編集したい!

と思い、CentOSにMacからftpで接続できるようにしたいと思ったのです。

/var/www/html以下のファイルを編集したい。
でもこれルート権限じゃないと編集できないのね。
そこが問題ね。そこも含めて解決していきまそ。

結論から言うと、結構簡単にできるよ。

【やりかた】
ルート権限でいじるよ。ターミナルから!
$ su -
で、ルート権限になるよ。

次、yumでftpが使えるようになるライブラリ(?)をインストールする。
# yum -y install vsftpd

で、今からいじる2つのファイルのバックアップをとっておく。
# cp -p /etc/vsftpd/ftpusers /etc/vsftpd/ftpusers.org
# cp -p /etc/vsftpd/user_list /etc/vsftpd/user_list.org
「-p」をつけると、パーミッションやタイムスタンプを保持したままコピーできるよ。

バックアップをとった上記のファイルからrootをコメントアウト。コメントアウトは「#」で。今回はvimで編集するおー!
# vi /etc/vsftpd/ftpusers
# vi /etc/vsftpd/user_list

SELinuxの状態をチェック。
# getenforce
Enforcing:SELinuxの機能・アクセス制御ともに有効
permissive:SElinuxはwarningを出すが、アクセス制限は行われない
disabled:SElinuxの機能・アクセス制御ともに無効

disabledだったらそのままでよし。
それ以外のひとは以下を実行。
# setenforce 0

FTPサーバを起動する
# /sbin/service vsftpd start
vsftpd 用の vsftpd を起動中: [ OK ]

毎回実行するためには以下のコマンドを打っておく。
# chkconfig --add vsftpd
↑これじゃあうまくできなかったです。
毎回、 CentOS起動時に「# /sbin/service vsftpd start」で起動させなきゃだめなのかな…?
分かる方いらっしゃったら教えてください!

で、これでcyberduckやtransmitなどのアプリからアクセスできるようになるんだお!
IPアドレスの確認は
# /sbin/ifconfig
で!

例(青いとこ):
eth0   Link encap:Ethernet  HWaddr 00:0C:29:5E:90:1A
          inet addr:192.168.230.200  Bcast:192.168.230.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe5e:901a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11435 errors:11433 dropped:0 overruns:0 frame:0
          TX packets:7822 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1178826 (1.1 MiB)  TX bytes:685043 (668.9 KiB)
          Interrupt:67 Base address:0x20a4

これでアプリつかって入れるようになったら、あとはもうMacから編集し放題なので、espressoで編集もできます!


【参考】
今日書いた事ほとんど書いてくれているよ。
参考にさせていただきました、ありがとうございます。
http://plaza.rakuten.co.jp/hajiiku/diary/200908110001/

【おまけ】
今日の歌:らんま1/2 OP&ED集
http://www.nicovideo.jp/watch/sm4775916


【MongoDB関連記事】


mongoDBに関係するコマンド集

CentOSでmongoDBを使う場合です!
雑です。これからも足していきます。

基本的にはここを…!


メモ


mongo:mongoDBいじるモードへ
show dbs:接続しているサーバ上のすべてのデータベースを表示
use db_name db_name:切り替え
show collections:現在のデータベースのすべてのコレクションを表示
db.コレクション名.drop() foo:コレクション全部を削除します
db.コレクション名.remove():コレクションの中のすべてのオブジェクトを削除します
db.コレクション名.remove( { name : "sara" } ):name が {{sara} のオブジェクトをすべて削除します
db.コレクション名.find({}):コレクションの中身を全表示。
db.コレクション名.find({'name': 'sara'}):「'name': 'sara'」を検索する。
db.コレクション名.find().sort({$natural:-1})
db.dropDatabase():今いるデータベースを削除

DBの作成は、データ挿入したら勝手に作成されます。

2012年6月8日金曜日

MongoDBことはじめ【CentOS】

SumallyのけいたっぷさんがMongoDBを勧めていらっしゃったらしく
バイト先の社長が「MongoDBを使ってみたい!」と言い出した。
言語はphpです。これももちろん、けいたっぷさんがPHPerだから。

というような実に単純な理由によりMongoDBを使うことになった。
てなわけでその記録をここにまとめたい。

私の環境:Mac OS X 10.6.8(SnowLeopard)および CentOS 5.8(Linux)
開発言語:php(予定)(でもMongoDBはRubyとも相性いいよ!)

MongoDBとは - Wikipediaより

MongoDB は、高パフォーマンス、スキーマレス、オープンソースのドキュメント指向データベースである。C++言語で記述されている。[1] MongoDBはRDBMSではない。MongoDBは、BSONというJSONのバイナリ版のような形式でドキュメントを表現し、そのコレクションを管理する。この形式は、複雑な階層を持たせることができ、なおかつクエリやインデックスが容易である。これにより、多くのアプリケーションは、自身のネイティブなデータ型や構造に合った自然な方法でデータを格納できる。

ちなみにMongoDBはいま流行しているっぽい"NoSQL"らしいネ。
MySQLなんかより、カラムを気にせず色んなデータを突っ込めるみたい。

※参考

MongoDBを動かすにはCentOS?


MongoDBはCentOSで動かしているよーって記事が圧倒的に多い。
ので私たちも王道で攻めることにした。
けいたっぷさん曰く、どのOS上でも同じじゃない?ということでしたが、ぐぐってみると圧倒的にCentOSでやっている人が多いのです。
※ちなみに社員のちゃっぴー氏がMacOS上で動かそうとしてたけど、ちょっと難しかったっぽい。(MAMPでphpのローカル確認することも考えると)
※MAMPとは「アプリケーションフォルダにドラッグ&ドロップするだけで Apache, PHP, そして MySQL を Mac OS X にインストールすることができる。」そうである。ソースははてなキーワード。

CentOSを導入するには、VirtualboxやVMwareFusionでOSを自分のPCにつっこみます。
VMwareでやると比較的すいすい導入できました。Virtualboxでやっている人は中には苦労する人もいるみたいだ。

CentOS導入に関しては今回触れません。


さぁ試してみよう!


VMwareのターミナルは使いづらいので
(CentOSとMacの日本語キーボードと相性悪かったww)
Macのターミナルから使えるようにします。
ちなみに以下、sudoして使うものが多くなってくるので、
はじめからroot権限でターミナルいじった方がいいです。

$ su -

でルート権限に変更できます。
パスワード要求されると思うので、Macのパスワードいれてくださいね。

とりあえずCentOSのターミナルからIPアドレスを確認します。
#  /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:5E:90:10
          inet addr:192.168.230.129  Bcast:192.168.230.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe5e:9010/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28800 errors:13051 dropped:0 overruns:0 frame:0
          TX packets:15980 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:37731307 (35.9 MiB)  TX bytes:1002514 (979.0 KiB)
          Interrupt:67 Base address:0x2024
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1269 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1269 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2090390 (1.9 MiB)  TX bytes:2090390 (1.9 MiB)

この青い部分がIPアドレスです。

Macのターミナルに、
# ssh 192.168.230.129
とやって、MacのターミナルからCentOSにsshで入れるようにします。


で、ここからが本番です。
MongoDBが使えるようにしていきましょう。

自分がダウンロードしたCentOSのバージョン調べます。
バージョンごとにMongoDBの入れ方が違うようです。
私のCentOSのバージョンは、

# cat /etc/redhat-release
CentOS release 5.8 (Final)

です。

CentOSのbit数も確認しておきましょう。32bitと64bitだとインストールの仕方がちょいと違います。

# uname -mi
i686
i686なので、
私のはCentOS 5.8 32bitです。
ここがx86_64だと、64bitです。

これからyumでMongoDBをダウンロードします。
ダウンロードするために、とあるrepoファイルを作成します。
$ vi /etc/yum.repos.d/10gen.repo
で10gen.repoというファイルを作って中身を書いていくのですが、

私のように、32bitの人は、
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686
gpgcheck=0
と書いておきます。


64bitの人は、
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
です。

その後、コマンドを打ち、ダウンロード。
# yum install mongo-10gen mongo-10gen-server
で、MongoDBサーバーを起動。
#  /etc/init.d/mongod start
これで使えます。


# mongo
MongoDB shell version: 2.0.6
connecting to: test
mongoというコマンドが使えるようになりました。


CentOSを起動したら自動的に起動するようにするには、
$ chkconfig --add mongod 
と書いておきます。


次の記事では実際にいろいろといじってみたいです!!
書くかな。書きます多分。


ここがわかりやすいよっていう参考になるページ
ubuntuユーザーも参考になるね!!

 参考:
http://blog.madapaja.net/2011/09/20-mongodb-1-mongodbjp.html


【MongoDB関連記事】




2012年6月4日月曜日

Ethernet Proを使う前に。

Arduino Ethernet Proを使う前に気をつけなきゃいけないこと。
Ethernet Proはこーんな(↓)部品(USBシリアル変換ボード)をかませてminiUSBでPCとつなぐのですが、

miniUSBを使うにはドライバを入れなきゃいけないらしいのです。
(私の環境:MacOSX 10.6.8)

ドライバをいれてないとArduinoのアプリはEthernet Proを認識しないです。
私も全然認識されなくて、さらに原因をググってもぜんぜん原因でてこなかったから辛かった…!

でどこでダウンロードするかというと、がんばればArduinoのHPからもとべます。
がんばれば。

でも未来の私には楽をしてほしいので、ちゃんと備忘録としてリンクはっとこ。
ここね。↓
http://www.ftdichip.com/FTDrivers.html

ドライバが2種類リンクされていて、どっちダウンロードするか分からなかったけれど、とりあえず上から、と思って「VCP Drivers」をダウンロードしてインストールしたけど、それでArduinoちゃん認識してくれるようになったよ!

めでたしめでたし。





Xcode4.2 for SnowLeopard

未だOSがSnowLeopardな私です。
そろそろXcodeをアップデートしたいな、と思ったわけですよ、わたくしも。
※Xcodeが3系のまま使ってましたw

Xcode4.2 for SnowLeopardが配信されとるよーという噂を聞きつけてですね。私もアップデートしようと思っているわけです。

んでね、4系のXcodeをダウンロードしようとおもったわけ。
しかしながら、(日頃からAppleさんからXcodeのダウンロードするボタンみつけんのめんどいなと思っていたけれども)、今回ばかりはみつからない!本気でぐぐってもみつかんない!!なんで!!!
AppleのDeveloperページに行って検索してもない。

まままさか…XcodeをAppleストアから配信するようにしてから過去のXcodeをすべて消したのかApple…?

LionにしろってかLionに。
でもこの夏に新しいOSでるし、今更買い替えるのもイヤ!
てか切り替えて早々また切り捨てられるんじゃないかっていう恐怖!

あっさりと過去のユーザを切り捨てるApple…
前々からそうでしたけど、たった2年で切り捨てられると思ってなかったよ…
(2年前にMac買ったひとです)

まあとりあえず私の力ではApple公式Developerページから探しきれなかった!

でもね!
きっとだれか配布してるだろうと思って、私、諦めず探したの…!
そしたらおったー!!くばってる人!

http://www.4shared.com/file/RlThO0b4/xcode_42_for_snow_leopard.html

探してみるものだなァ。
まだまだ現役だぜ、SnowLeopard!

2012年6月2日土曜日

議論の種

自分の意見をまとめたいなあとか、人と議論したいなあ、とおもっているものをリストアップしようと思う。


  • 恋愛ってなんなんだ!(頭弱そうな議題!)
  • 某友人が唱える「効率よく彼氏を作る方法」についての考察
  • お互いに刺激を与えあう恋人関係は成立するのか、っていう話も議論したい。
  • あんた研究なにやってるよ?っていろんな人に聞きたい。
  • ITバブルや、アプリバブルがはじけたら、IT業界はどうなるんだろう。って話。
  • もしも今パソコンがなくなったら、私たちはどんな生活を送っているんだろう。って話。
  • Retinaディスプレイの台頭によるウェブ業界の今後。
  • もし私があなたで、あなたが私だったら、お互いどういう選択をして生きる?っていう話を議論してみたい。
  • WW2が終わって約70年、高度経済成長が終わって30年くらい。パソコンが普及して世の中ががらっと変わったのはここ10年くらいの話。「社会人」という概念が生まれたのはいつからだろう。そんな歴史やものごとの流れの速度をふまえて、これからの社会の変動や、社会人のありかた、ノマドワーカーという新しい働き方、目の前に迫り来る「シュウカツ」について考えてみると。って話。



最後のが一番気になるかなぁ。
3年生になって、最近、facebookの就活のグループにいれられたりして、本当にウンザリ。
お前らの人生のゴールはそこなのか。大学は就活のための予備校にすぎないのか? つーか、就活は今まで学んだことの結果であって、過程である学びの方が大切なのでは? 今は大学でしっかり学ぶことを優先するのが清く正しい大学生像なんじゃないの?と思うのですけどねえ。



ああ、私って馬鹿なんだなぁ

生きていて、
「ああ、私って馬鹿なんだなぁ」と思うことが多いか、
「周りが馬鹿すぎて嫌」と思うことが多いか。

私は圧倒的に前者である。


頭のよさとは


私の思う頭のいい人は、「自分の意見を自分の言葉で主張でき、なおかつその主張がわかりやすく人に伝えることができる人」である。やっぱりなんだかんだこの一点に限るなぁと思う。
単なる脳みそのスペックの善し悪しでいったら、記憶力があるだとか、何カ国語もしゃべれますだとか、人間関係の構築が上手であるとか、まぁ他にもいろいろと要素はあるだろう。けれど直感で「ああ、この人頭いいな」と思うときは、だいたい私が最初に挙げた条件にあてはまっている。また逆もしかり。「この人馬鹿だな」と思うときはだいたいこの条件にあてはまっていない。ちなみに私もまったく当てはまっていない。世のおばかさんの代表みたいなものか。てへぺろ。

私のおばか具合に関して言及する。
授業中に先生から意見を求められることがあっても絶対に手を上げて発言しないし、
(話を聞いても特にこれといった意見が生まれないから)
友達との無駄話にも中身がないし、
(たまに友達とよく議論してるって人いるけどとても羨ましい限り)
自分の意見を全世界に配信できるブログなるものも、私の手にかかればただのプログラミング備忘録になっていた。
さすがはおばか代表なのであった。

ちょいと時をさかのぼる。
私が、慶應大学SFCに合格したのは、いまからざっと2年半ほど前の話になる。
入学前に、慶應大学合格者が集う会が幾度か催され、私も足繁く通ったものだ。
そこで私はカルチャーショックを受けた。
「自分の夢について語ろう」
「日本の現状について」
「今まで自分がどのような活動を行ってきたか」
「自分の社会に対しての問題意識はどこにあるのか」
「セクシャルマイノリティについてどう思うか」
「どのような消費税制度が望ましいか」
フツーに奴らは議論していたのだ。え、議論って日常生活でするもんなの?ねぇ。
超カルチャーショックだった。
高校ではこんな光景ありえなかったな。受験のはなしとか先生の悪口とか人の恋愛ののろけばなしとかドラマの話とか、そんな身にならない話しかしてなかった気がする。

まあ、そんな風に議論が交わされることが多くなる中、自分に決定的にあるものが足りない事に気付いた。「日本語力」である。圧倒的に語彙力が不足している上に、自分の意見をうまくまとめる力がない。この脳力の欠如を、何人かに指摘されたこともあって、私自身すごくに気にするようになった。とりあえず自分はおばかなのだと悟った。

こんな私に対し、とある友人がアドバイスをくれた。
「プログラミングをはじめたら、論理的思考回路が養われると思うから、やってみるといいよ。プログラミングはロジカルに組まないとエラーが出るからね」
入学してから早くも2年半が経過し、プログラミングにどっぷりつかり始めた現在も、時々ふとその言葉が頭をよぎる。
つーか、今現在プログラミングにどっぷりはまった生活をしてるなうなんだけど、全然頭よくなんないんだけど!どうして!!!(悲鳴)


まあ入学してからは、まあそう頭のいい人ばっかりじゃないと気付けてよかった。安心した。


そもそも日本人って


余談になるが、先日知人から興味深い話を聞いた。
英語で「わたし」や「あなた」を指す言葉って何がある? 「わたし」だったら「I」、あなただったら「you」だね。
日本語で「わたし」や「あなた」を指す言葉って何がある?「わたし」は「ぼく」「拙者」「自分」「おのれ」「われ」など、「あなた」は「あんた」「お前」「自分」「おのれ」「われ」など。このように、日本語には「わたし」と「あなた」を表現するときの言葉が被っているものもある。そこから考察すると、日本人は個の意見と集団の意見の境目がないのかもしれない。すなわち自分の意見を言う事を強制することは日本人には向いていないんじゃないかな。
自分の意見がない私は典型的な日本人であるだけなのであろうか。
そもそもこの話を鵜呑みにしていいのか。


そもそもの話とまとめにならないまとめ


そもそも私がどうして、このようなブログを書こうと思ったか。

  • おばかをやめたい。
  • 自分の言葉で素敵なブログを綴る人に憧れている。(インターネットもぐもぐのはるな姉さんとか)
  • その為には自分の意見を文章に起こすという行為を日常的に行う必要がある。


まあそんなところである。
自分の意見を自分の言葉でブログに綴り、腐った頭を鍛え直そうという魂胆なのである。
(結局、意見というより自分の身の上話で終わったのだが)

まあそういった理由から、これからも定期的にこういうブログを書こうかなぁ、と思う。

ああ、それにしても長いブログになってしまった。
きっと賢い人はこんな下らないものでももっと端的に短くまとめられるんだろうな。あぁ。

2012年6月1日金曜日

【正規表現、javascript】Twitterの発言にリンクタグをつける


正規表現には方言があるらしい。
jsでTwitterの文言を正規表現処理したけど、結構むずかしかった。
とりあえず、"/g"ってすごい!
"/g"を書かないと、Tweet内のリンクを1つしか処理できない。
"/g"を書くと全部処理してくれる。
"/g"は偉大なのであった。

urlをリンクタグ処理
tweet = tweet.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&~\?\/.=]+/g, function(url) {
return url.link(url);
});
            
リプライをリンクタグ処理
tweet = tweet.replace(/@[a-zA-z_]*/g, function(reply) {
var no_mark_rep = reply.replace(/@/, "");
return reply.link("https://twitter.com/"+no_mark_rep);
});
            
ハッシュをリンクタグ処理
tweet = tweet.replace(/[#]+[A-Za-z0-9-_-ヶ亜-]+/g, function(hash) {
var no_mark_hash = hash.replace(/[#]/, "");
return hash.link("https://twitter.com/%23"+no_mark_hash);
});