小さなエンドウ豆

まだまだいろいろ勉強中

Servletのコンパイル

Servletコンパイル

Servletを使ってアプリケーションを開発してみた。
ソースはこんな感じです。

package servlet;                                                                                                                            

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/FowardServlet")
public class FowardServlet extends HttpServlet {
  private static final long serialVersionUID = 1L; 
  
  protected void doGet (HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException {

      // forward
      RequestDispatcher dispatcher =
        request.getRequestDispatcher("/WEB-INF/jsp/forward.jsp");
      dispatcher.forward(request, response);
    }   
}

前に書いたJSPファイルをサーブレットから呼び出すアプリケーションである。

さーコンパイル

$ javac FowardServlet.java
FowardServlet.java:5: エラー: パッケージjavax.servletは存在しません
import javax.servlet.RequestDispatcher;
                    ^
FowardServlet.java:6: エラー: パッケージjavax.servletは存在しません
import javax.servlet.ServletException;
                    ^
FowardServlet.java:7: エラー: パッケージjavax.servlet.annotationは存在しません
import javax.servlet.annotation.WebServlet;
                               ^
FowardServlet.java:8: エラー: パッケージjavax.servlet.httpは存在しません
import javax.servlet.http.HttpServlet;
                         ^
FowardServlet.java:9: エラー: パッケージjavax.servlet.httpは存在しません
import javax.servlet.http.HttpServletRequest;
                         ^
FowardServlet.java:10: エラー: パッケージjavax.servlet.httpは存在しません
import javax.servlet.http.HttpServletResponse;
                         ^
FowardServlet.java:13: エラー: シンボルを見つけられません
public class FowardServlet extends HttpServlet {
                                   ^
  シンボル: クラス HttpServlet
FowardServlet.java:12: エラー: シンボルを見つけられません
@WebServlet("/FowardServlet")

...

あれ??

たくさんエラーたちが出てきました。

どうやらいろいろとインポートできていないらしい…

調べるとクラスパスでservlet-api.jarをささなければならなかった。

探すこと1時間ありました。 Tomcat7をインストールした時に一緒に落ちてきたみたい。

今度はクラスパスを指定して挑戦

$ javac -classpath /usr/share/tomcat7/lib/servlet-api.jar FowardServlet.java

うまくいきました!
環境変数にTomcat7の場所を設定する方法が一般的らしいですね。 この後すぐに行いました。

自分のツイートをダウンロードする

自分のツイートをダウンロード

今年も残すところあと3週間。2016年の自分は一体何をつぶやいているのか…

気になって自分のツイートを簡単に見る機能があればよいなーと探してみると、一括でダウンロードできるサービスがあるらしい。

今回はやり方を記していきます!

手順

手順は以下のとおりです。

  1. Twitterの設定から全ツイートダウンロードをクリック f:id:h-piiice16:20161213081100p:plain 僕は押しちゃったのでダウンロード待ちの状態になっていますが、本来は「全ツイート履歴をリクエストする」というボタンがありますのでそれをクリックします。
  2. Twitterのアカウントを登録する際に使ったメールアドレスにダウンロード用のURLが届くのでそれを待つ。
  3. ダウンロードを行う f:id:h-piiice16:20161213081541p:plain 届いたメールにあるダウンロードのボタンをクリックすると、こういったページにアクセスします。ここでダウンロードのボタンをクリックします。

  4. ダウンロードされたzipファイルを解凍し、tweets.csvというファイルを見つける このファイルがツイート履歴の記されたファイルとなります!

これで完了です

これと合わせて

h-piiice16.hatenablog.com

こんなのをやってみると面白いかもしれません。

ヒッチハイクのすすめ

暇な大学生がヒッチハイクやってみた

最近、暇で仕方なかったので前からやってみたかったヒッチハイクに挑戦してみた!

ルートは

こんな感じ!

用賀IC→足柄SA→浜名湖SA→上郷SA→岐阜駅

次からはやってみて思った コツ について書いていく!

ヒッチハイクのコツ

車を捕まえるコツ

僕が思うコツは以下の5つ

  • 目的地は具体的に 例:名古屋方面✕ 海老名SA○
  • SAでの立ち位置は警備の人に聞いてみる
  • スピードに乗る前の車がいる場所に断つ
  • スケッチブックは胸のあたりに持つ
  • 辛くなっても表情を柔らかく保つ

順に説明していく

目的地は具体的に

具体的に書くとのせる側がわかりやすくなる。ドライバーさんはスケッチブックに書かれている内容を運転しながら見るわけですから瞬時に理解できるSA名などが書く内容として適切だと感じた。
実際に私は最初、「名古屋方面」と書いたが20分たっても捕まらず…「海老名SA」と書きなおしてみると5分もたたずに捕まった!
あと他の体験談を見ると目的地を細かく区切るというコツもありますがそれはあっていると思う。

SAでの立ち位置は警備の人に聞いてみる

まず私はSAでヒッチハイクのために待っていても良いのかわからなかった。それも確認すべく警備のお兄さんに立ち位置とともに聞いてみた。

私「SAってヒッチハイクとかやっても大丈夫なんですか???」

お兄さん「やってる人ときどきいますよー」

私「どこらへんで待たれる方が多いですか???」

お兄さん「本線に入る付近だね。頑張って!」

ってという感じで聞くことに成功した! 警備の人は毎日?いるので聞いてみると効率がよいかも

スピードに乗る前の車がいる場所に断つ

これも警備のお兄さんに聞いたのだが、車がスピードに乗ると止まるのが困難なためなるべくSAよりのスピードに乗る前に立っておくと良さそう

スケッチブックは胸のあたりに持つ

これは私も意外で、最初は頭の上で持ってなるべく強調させるよう持っていたが、なかなか捕まらない…
そこで思ったのがそもそもドライバーに見えているのか?この自問が良かったのかいろいろな位置でためしてみると胸のあたりがよくドライバーから見えるのが相手のリアクションを見ててわかった。

これを意識してやってみると捕まるようになった!

辛くなっても表情は柔らかく保つ

乗せていただいた方に聞いたのですが、やっぱりのせる側も怖いし警戒するとのこと。
乗せていただく前に信用してもらえるように表情だけでも柔らかく保つとよいと思いました。

柔かくって抽象的ですが、実際意識して実行してみると、捕まりはしなかったが通行人の人に声をかけられたり差し入れをもらえたりと人から喋りかけられるようになった!

乗ってからのコツ

乗ってからはなるべく沈黙にならないように努力した。トークのコツをまとめようと思う。 コツは以下の3つ

  • まずは自己消化
  • 景色や天候で盛り上がる
  • 方言ネタが鉄板

まずは自己紹介

乗せていただく方の警戒を解くことにまずは注力しなければならない。まずは自己紹介をして自分を知ってもらう。
ある程度自分のことを話すと向こうから質問が飛んてくると思うのでそれに返答するだけでも会話になるためまずは自己紹介が大事!

景色や天候で盛り上がる

ヒッチハイクする日ってたいてい天気が良い日だと思われる。そのため乗せてくださる方もどこか出かける途中だったりする。失礼のないように行き先などを聞いてみるとそこから会話が広がったりするかもしれない。
また景色について触れると載せてくる方がその地方に詳しい方だったら豆知識など教えてもらえてそこから会話につなげるという荒技もある。

方言ネタが鉄板

乗せていただいた方が違う県の出身だった場合に限るが珍しい方言についての話が続いた。例えば相手との会話の途中にわからない単語や言い回しが出てきた時質問しそこから方言について聞いたり、自分の住んでいる地域の方言について教えるなどして会話が続く。これはほとんどの車でやりました笑

乗せていただいたあとは全力で感謝!

乗せていただいた方への感謝の言葉を忘れてはいけない。ヒッチハイクではこっちがやってもらうばかりでなかなか感謝を行動に表すのは難しいが、僕は全力で感謝を伝えた。 この場を借りて改めてお礼を言いたい。

あとこれは変かもしれないが、名刺や名前を頂いた場合はフェイスブック等のSNSで調べてみて改めてお礼を言ってみるのも良いかもしれません。(私はやりました。

なんにせよ感謝の気持ちを忘れてはいけません!

感想

今回はじめのヒッチハイクだったが最長で30分くらいしか待ちませんでした。意外にも私にはヒッチハイクの才能があるのかもしれないw
才能云々の前に乗せてくれる方が多いということが一番の要因です。
日本には優しい人が思っている以上に多いことに気づくことができ、私も日常、優しく生きようと誓った。

あと自信がつきます。今の私は何でもできちゃうかもと思っています。これを期にいろいろなことに挑戦していこうと思った。

JSTLの始め方

JSTLカスタムタグの使用

jspファイルでカスタムタグを使うためにJSTLについて勉強していきます。

ディレクトリ構成

ディレクトリやファイルは以下のように配置する。ルートはtomcat7で作成したプロジェクトのwebappsの下のROOTというディレクトリとします。

ROOT
├── WEB-INF
│   ├── lib
│   │   ├── jstl.jar
│   │   └── standard.jar
│   └── web.xml
└── index.jsp

一番時間がかかったのがweb.xmlの場所でWEB-INFの直下に置くことを何かしらのブログから知りました。(ソース忘れた…)
jstl.jarとstandard.jarですが、これはここApache taglibsからバージョン1.1をダウンロードしてきてWEB-INF/libの下に置きます。

カスタムタグの記述

次にindex.jspにカスタムタグを使用してみます。

<%@ page language="java" contentType="text/html; charset=UTF-8" session="false" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
</head>
<body>

<h1>index</h1>

<%
 int user = 5;
%>                                                                       
<c:if test="${ user==5 }">
  Correct!
</c:if>
</body>
</html>

こんな感じ いざ実行してみましたが、何故か表示されてくれません。 変数を普通の数値(例えば5)とかに変えて行ってみたら普通に表示されました。
原因はわかりません。

今日はカスタムタグちょっと触れたのでここまでにしたいと思います。

岡山芸術交流 Developmentに行ってきた話

岡山芸術交流とは

芸術を通じて国境や文化、世代を超えた様々な交流が生まれることをめざす大型国際展示会

パンフレットよりそのまま引用してきました。
簡単にいうと岡山駅周辺の美術館はもちろん、建物やまちなかに芸術品を散りばめましたってイベント
とある建物の壁にて...
f:id:h-piiice16:20161102224142j:plain

岡山県庁の前は...
f:id:h-piiice16:20161102224158j:plain

とこんな感じで作品が普通に置いてあったりします。

芸術の秋なので私も参加したいと思いいろいろと見て回りました!

ルート

当日とても天気が良かったので歩いて回ることにしました。

このようなルートで回ることにしました。 駅から桃太郎通りをまっすぐ行き、シンフォニーホールという場所から南にすすみ順に作品を見ていきました。
公式サイトのアクセスと照らし合わせていただくとわかりやすいかもしれません。

あと僕は歩きましたが岡山には ももチャリ という自転車を手軽に借りることができるサービスがあるのでそれを使うともっと効率よく回れるかもしれません。

感想

正直現代アートのこと全く知らずに参加しましたが楽しめたと思います。
中でも面白かったのがライアンガンダーの作品です。
f:id:h-piiice16:20161102222348j:plain

これが今岡山のまちなかにあるのが迫力があり面白かったです。
何か鉄の塊が地面をえぐってこうなったのを表現しているのですが、これを通して何を伝えたかったのかは私にはわかりませんでした…
まだまだ自分の知識や経験では追いつかないところがあることに気づけました。

更におもしろいことにこの作品は無料で見ることができます。他にも無料で見ることができる作品が10品くらいありました。
基本美術館の中に展示してある作品はチケットがいるのですが、学生だと 1200円 と安いのかわかりませんが、たぶん安い値段でお求めできます。

岡山は芸術に溢れているなと改めて感じました。

package.jsonにnpm install したライブラリの情報を追加する方法

npm installでインストールするライブラリの情報をpackage.jsonに追加したい

忘れないように記しておきます。
npm installでインストールするライブラリの名前をpackage.jsonにわざわざ書いてnpm installで一括でインストールするのも悪く無いですが、面倒な時があるので何か便利な方法はないか調べたら以下の様なオプションがnpm installにありました。

$ npm install hoge --save-dev

--save-devを追加するとpackage.jsonのdevDependenciesの欄にインストールしたライブラリ(上の例だとhoge)の名前とバージョンが記録されます。

^ と ~ の表記

その場合^[バージョン]みたいな表記になるのですが、これの意味はゼロでないバージョンニングは変えない?という意味らしい よくわからないので例をみると

  • ^1.2.3 ... 1.2.3 <= version < 2.0.0
  • ^0.2.3 ... 0.2.3 <= version < 0.3.0
  • ^0.0.3 ... 0.0.3 <= version < 0.0.4

他にも~というものがあるがこれはそのバージョン以上という意味があるらしい。

package.jsonでプロジェクトの情報を管理する方法がまだ掴めてない部分が多いのでもっと理解を深めていきたいと思いました。

特定のURLにアクセスできないようにする方法(Chrome)

あるURLにアクセスできないようにしたい

Amazon Prime

今年度のはじめにAmazonのプライムに入ってしまったのがことの発端
最初は間違えて入ってしまったのだが、今は公開していない。むしろあの頃の僕に感謝している。
入会してから見た映画やドラマでおすすめなのがこれらである。

などなど

入会のメリット・デメリット

メリットはもちろん懐かしのアニメ・ドラマ・映画が見放題であることである。
デメリットはそれ相当の時間を払って見なくてはいけないことである。例えばめぞん一刻をこの前まで見ていたが全話で90話ある。1話30分なので全部で2700分、1日は1440分なので約2日かけて見なければならない。
1週間で見た私は1日で約400分で6時間くらいめぞん一刻に捧げた計算になる。
面白かったので良かったが終わったあと非常に時間を消費してしまった罪悪感に襲われた。

なのでこれを期にAmazonプライムを控えようと思った。しかしどうする…そこでアクセスを断つことにした。

方法

僕の使っているブラウザがGoogle Chromeなので拡張機能にないか調べてみたところSite Blockという機能があった。

Site Block

使い方

  1. Site Blockにアクセスし拡張機能に加える
  2. アイコンを押してオプションを選択 f:id:h-piiice16:20161024204814p:plain
  3. Sites to Block の欄にブロックしたいURLを入力し、Save Optionを押す。 f:id:h-piiice16:20161024205005p:plain

これで完了! 指定したURLにアクセスできなくなってしまう。

元に戻す時はSites to Blockの欄のURLを消してSaveすればよい。

さていつまでSites to BlockにURLがあるかどうか…