tomcatインストール

$ wget http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.zip
$ unzip apache-tomcat-6.0.20.zip
$ mv apache-tomcat-6.0.20 /usr/local/
$ vi ~/.zshrc
export JAVA_HOME=/Library/Java/Home
export CATALINA_HOME=/usr/local/apache-tomcat-6.0.20
export CLASSPATH=.:$CATALINA_HOME/lib/servlet-api.jar:$CATALINA_HOME/lib/jsp-api.jar
$ source ~/.zshrc
$ sudo /usr/local/apache-tomcat-6.0.20/bin/startup.sh

Hello, Servlet!

$ cd /usr/local/apache-tomcat-6.0.20/webapps
$ mkdir -p hello-servlet/src hello-servlet/WEB-INF/classes
$ cd hello-servlet/src
$ vi HelloServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet {
    public void service(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/plain");
        response.getWriter().println("Hello, Servlet!");
    }
}
$ javac HelloServlet.java
$ mv HelloServlet.class ../WEB-INF/classes

デプロイメントディスクリプタを書く。

$ vi /usr/local/apache-tomcat-6.0.20/conf/server.xml
(...)
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">   
        <Context path="/hello-servlet" docBase="hello-servlet" debug="0" reloadable="true" crossContext="true" />
(...)
      </Host>
(...)
$ vi /usr/local/apache-tomcat-6.0.20/webapps/hello-servlet/WEB-INF/web.xml
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
  <servlet>  
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>HelloServlet</servlet-class>
  </servlet>  
  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/HelloServlet</url-pattern>
  </servlet-mapping>
</web-app>
HelloServlet

sudo port install tomcat6がこけるのが謎。

Win32API、C、gccで1時間でテトリスを作る実況動画。手際がよくて見てて楽しいです。特に最後に作ったテトリスのコードをちょっと変えて見せることで見ている人にわかりやすくプログラミングの面白さを伝えていて素晴らしい動画でした。

Macにはjavaが最初から入ってるそうです。

% java -version     
java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03-219)
Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-90, mixed mode)

オプションのハイフン一つなんですなあ。

% vi HelloWorld.java
public class HelloWorld {
    public static void main(String args []) {
        System.out.println("Hello, World!");
    }
}
% javac HelloWorld.java   
% java HelloWorld 
Hello, World!

うん。

会社の無線LANルーターが結構落ちる。

インターリンクの固定IP8を使っているのでUnnumberd IPという機能が必要みたい。(よくわかってない)

COREGAのCG-WLBARGPXBという無線LANルーターはUnnumberd IP + Private IPというのに対応しているらしく、これを使っているんですが、COREGAのルーターはある程度接続が多い環境では結構落ちる。

corega CG-WLBARGPXB
  • corega CG-WLBARGPXB
  • コレガ
  • コレガ
  • 定価:¥ 5,565
  • 新品価格:¥ 3,800
  • ASIN:B000MQCD6Q

価格.comで評判良く、Unnumberd IPに対応してるというBUFFALOのWZR-AGL300NHを買ってみた。家でしばらく使ったけど切れないので会社でも購入してみた。

BUFFALO AirStation NFINITI Draft11n対応 11g&b 無線LANブロードバンドルータ WZR2-G300N

ところが、こっちのはUnnumberd IPには対応していてもPrivate IPには対応していないらしく、社内のサーバーにグローバルIPだけしか割り当てられない。(現在はCG-WLBARGPXBで社内サーバーにグローバルとローカルIP両方割り当てている)

手間はかけられないのでPCルーターを作ることは避けたい。どなたか接続人数が10人程度で落ちなくて、Unnumberd IP + Private IPに対応している無線LANルーターをご存じの方は教えていただけるとありがたいです。

教えていただいた方には裸族の二世帯住宅をお贈りいたします。

センチュリー 裸族の二世帯住宅NAS LAN接続HDDケース CRNS35NAS

会社の状態。

高いところに置けば遠くまで届くかな?

Private IP割り当てられないので使われてないヤツ。

夏を乗り切ったVSDLモデム。

ディレクトリだけ再帰的に755

% chmod 755 **/*(/)

文字化け

4.3.xから対応してるらしい。

% port search zsh
zsh @4.2.7 (shells)
    Zsh is a UNIX command interpreter (shell)

zsh-devel @4.3.10 (shells)
    Zsh is a UNIX command interpreter (shell)
% sudo port uninstall zsh
% sudo port install zsh-devel

認証局の鍵を作成。

$ sudo openssl genrsa -out ca.key 1024

認証局の証明書を作成。

$ sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Shibuya-ku
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Masaki KOMAGATA
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:Masaki KOMAGATA
Email Address []:komagata@gmail.com

認証局が発行する証明書のシリアルナンバーを作成。

$ echo 01 > ca-cert.srl

認証局を使って証明書を発行。

$ sudo openssl x509 -CA ca.crt -CAkey ca.key -CAserial ca-cert.srl -req -days 3650 -in server.csr -out server.crt

関連:もう二度とハマらない、SSL証明書の設定 - p0t

参照:MacOSXでサーバー稼業 : Web共有をhttps接続できるようにしよう-Leopard編-

国語辞典
Snow Leopard

今まで、

  • Adobe AIRアプリが100%落ちる。
  • OpenOfficeのウィンドウサイズを変えると100%落ちる。
  • ノーブランドの4GBメモリを付けると30分ぐらいで固まる。
  • Skypeが立ち上がらない。

など、騙し騙し使ってきたんですが、いい加減仕事に支障をきたすのでSnow Leopardを買ってきてクリーンインストールしてみました。

この Mac について

今のところ上記の問題は全部メモリ以外解決したし、portsも特にトラブルが無くて快適です。元々あんまりつっこんだ使い方してないからかもなあ。

Railsでアプリケーションとしてはエラーではないが、404を返したい場合の処理をちゃんとやってなかったので修正。

例えば、非掲載の霊園は出したくない場合。

@cemetery = Cemetery.find_by_id_and_publish(params[:id], true)

if @cemetery.nil?
  render :file => File.join([RAILS_ROOT, "public", "404.html"]), :status => 404
end

エラーではないのでproductionからエラーメールが来る事は無いが、ツールでのリンク切れチェックには引っかかるので安心。

マナスル

「五反田でカレーといえばマナスルだろう、jk・・・」

かどうかは知らないですが、会社から近いので頻繁に行くお店。でも、ネパールの人は“シ”が発音できないのでは無いかということがいつも気になって仕方ありません。

「Aセット、チキン、ナン、ラッスィー

「ゴセンエン・・・おつりお返しします、いち、にぃ、さん、スィー