2011年6月27日月曜日

Apacheインストール "E: Couldn't find package apache2"

UbuntuにApacheをインストールしたら、見たことのないエラーがでた。
 
$ apt-get install apache2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Couldn't find package apache2
 
調べてみると、apt-get update を実行すれば良いとのこと
 
$ apt-get update
$ apt-get install apache2
$ which apache2
/usr/sbin/apache2
 
無事入りました!

PoderosaからEC2への接続

こちらのサイトを参考にさせていただきました!
http://saifis.net/?p=116

自分用にも以下にメモしておきます。

Poderosaからアクセスするには、公開キーを別途生成する必要があり、
Puttyを用います。

◆用意するもの:
1. PuTTY Key Generator (puttygen.exe)
puttyのダウンロードサイトから落とせます。
2. Amazonからダウンロードした鍵ファイルxxx.pemファイル

◆生成方法
1. puttygen.exe を起動します。

2. [Load]ボタンを押下して、Amazonからダウンロードした鍵ファイルxxx.pemを読み込ませます。

3. 読み込ませた後は、メニューの[Conversions]→[Export ssh.com key]を選択します。
とりあえず、「key」という名前で保存します。


4. Poderosaからは下記のように設定をすればアクセスが可能です。
認証方法を「公開鍵」にし、
鍵ファイルのところでは、上記で作成した「key」ファイルを設定

いぇぃ!アクセスできた!

2011年6月23日木曜日

初めてのGAS

Google Technology Group Users (GTUG) の女子部 GTUG-girls の
第1回Meet upイベントに参加してきました。

申し込んでみたものの、Google Apps Scrips (GAS) なんて知らないんだけど…
という感じで、大丈夫かなぁ、と心配でしたが、
終わってみれば楽しく充実した時間が過ごせました♪

さて、内容は…

19時開始で、まずはネットワーク接続の確認
19時15分からサンドイッチ懇親会で、その前にTシャツをいただきました。
19時45分からハンズオン開始!
初心者用のEntryレベルと、上級者向けのExpertレベルの課題が2つ。

そもそもGASってなに?Spread Sheetなんて使わない私はEntryレベルから。
結構皆Entryレベルから初めてた感じがしました。

講師のAtusiさんが用意してくれたサンプルを自分の環境にコピーして
最初は見ながら書くものの、たかだがダイアログ表示とはいえ、動くと嬉しいですね☆
その他、メニュー/サブメニューの作成、メール送信やセルの値の取得、
GUIの作り方について学びました。

気づけばあっというまに21時半。
こんなにも勉強会が楽しかったなんて♪

ハンズオンがあるのは、本当に素敵でした。
準備してくださった皆さま、ありがとうございました!

◆GASについて習ったことをハンズオンと絡めてメモ…(講義資料からも抜粋)
・メリット
-学習コストが低いこと。
⇒ APIが分かれば、とっつきやすかった。
-ブラウザだけで開発/利用が出来る
⇒ メモ帳が必要かと思いきや、すべてブラウザ上だった
・デメリット
-超刻速ではない
⇒ サーバー側に問い合わせをするので、先生のサンプル実行を見ても、
たしかに若干もっさり感はあったかな
-ソースコード管理がないので大規模には不向き
⇒メモ帳もないし、共有機能を使うくらいかしらね?
-たまに挙動が変わる
⇒自動的に追加されることはメリットでもあり、
挙動が変わるのはデメリットでもあるんですね。
でも、互換性のない言語もあったりするから、しょうがないのかしら。
・できること
-テンプレートへの値の挿入が可能

・コード
-始めるには、[ツール] → [スクリプトエディタ]
⇒ まずはここから!
-実行するには2通り
⇒ 関数のプルダウンから選択して三角ボタン押下
⇒ [実行]メニューから選択
-メールを送るときに必要なコードはこれだけ!
MailApp.sendEmail(address, subject, body)
-セルの数え方は、1から開始して、getRange(縦, 横)
var sheet = SpreadsheetApp.getActiveSheet();
var cell_data = sheet.getRange(2,1).getValue();

◆ お写真♪
mixiさんのオフィスは素敵でした

2011年6月21日火曜日

remote_functionでAjax実装

function copy_memo(){
  <%= remote_function(:url => {:action => "copy_memo"}, 
                      :complete => "$('memo_area').value = request.responseText",
                      :with =>"'year='+$('year').value+
                '&month='+$('month').value+
                '&day='+$('day').value+
                                '&user='+$('user').value") %>
}


<input type="button" name="button" value="<%=l('copy_memo')%>" 
    onclick="copy_memo()" >


上のremote_functionで、下記を生成してくれます。
function copy_memo(){
new Ajax.Request('/xxx/copy_memo', 
                 {asynchronous:true, 
                  evalScripts:true,
                  onComplete:function(request){$('memo_area').value = request.responseText}, 
                  parameters:'year='+$('year').value+
                             '&month='+$('month').value+
                             '&day='+$('day').value+
                             '&user='+$('user').value +
                             '&authenticity_token=' +
                              encodeURIComponent('e2uxmpaqqD3l+bMWYOm3r+Yl7KKJuy4WbyNea1Wsc1E=')})
}

Rails2.3.11(あたり?)からCSRF対応で、authenticity_token が自動的にパラメータに追加されるようになったそうです。

remote_functionを使ってない場合は自分で実装を追加する必要があるのでremote_functionを利用するのが便利ですね。
最初は、remote_functionを使わずに実装していたのでログイン情報が消えてハマりました…。

ちなみにパラメータを渡すときは上記のように:with を使います。

2011年6月15日水曜日

Ubuntuでzipを解凍

Ubuntuでは、zipとunzipのパッケージを別途インストールする必要があります。
% sudo apt-get install zip unzip
解凍するには、unzipコマンド用います。
% unzip xxx.zip

2011年6月14日火曜日

BloggerにSyntaxHighlighterを追加する方法

ソースコードを載せたブログを書きたくて、SyntaxHighlighterを導入しました。
SyntaxHighlighterは各種ソースを読みやく表示します。

いろいろ検索したところ、下記を</head>の直前に入れると良いようです。
今回入れるのは、SyntaxHighlighter 3.0.83

<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'/> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js' type='text/javascript'/> 

<script language='javascript'> 
SyntaxHighlighter.config.bloggerMode=true;
SyntaxHighlighter.config.clipboardSwf='http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf';
SyntaxHighlighter.all();
</script>

使うときはこんな感じに
<pre class="brush: xxx">
 ソースコードはここに
…
</pre>


<pre>タグの中の<と>タグはそれぞれ、&lt; と &gt; でエスケープします。

xxxの部分にいれるのは、こちらを参照してください。

なお、Bloggerに追加するときは、「HTMLの編集」を選択します。「作成」のほうだとうまく適用されません。

MySQL processlist


mysql> show processlist;
+--------+------+--------------------+-------------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+------+--------------------+-------------+---------+------+-------+------------------+
| 379844 | xxx | localhost | NULL | Query | 0 | NULL | show processlist |
| 383550 | xxx | 172.16.1.151:40526 | redmine_xxx | Sleep | 7 | | NULL |
| 383551 | xxx | 172.16.1.151:40527 | redmine_xxx | Sleep | 7 | | NULL |
| 383552 | xxx | 172.16.1.151:40528 | redmine_xxx | Sleep | 7 | | NULL |
| 383553 | xxx | 172.16.1.151:40529 | redmine_xxx | Sleep | 7 | | NULL |
| 383554 | xxx | 172.16.1.151:40530 | redmine_xxx | Sleep | 6 | | NULL |
| 383555 | xxx | 172.16.1.151:40531 | redmine_xxx | Sleep | 6 | | NULL |
| 383556 | xxx | 172.16.1.151:40532 | redmine_xxx | Sleep | 6 | | NULL |
+--------+------+--------------------+-------------+---------+------+-------+------------------+