jstlのテンプレ(slim3)
<%@page pageEncoding="UTF-8" isELIgnored="false" session="false"%> <%@page isELIgnored="false" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@taglib prefix="f" uri="http://www.slim3.org/functions"%>
なぜか2行目に
<%@page isELIgnored="false" %>
を書かないとEclipseで認識されませんでした。
追記、
書かなくても、書いても警告は消えませんでした。
eclipseでgoogle app engineにjspファイルを使おうとするとデプロイできない
以下の様なエラーが出てしまいます
java.lang.RuntimeException: Cannot get the System Java Compiler. Please use a JDK, not a JRE.
これを解決するためには
eclipse/pleiades等/eclipse/eclipse.ini
を編集します。
readmeにeclipse.ini.originalというファイルがあるがそれではありません。
--launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20130807-1835 -product org.eclipse.epp.package.jee.product --launcher.defaultAction openFile --launcher.XXMaxPermSize 256M -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile --launcher.appendVmargs -vm C:\Program Files (x86)\Java\jdk1.7.0_45_x86\bin\javaw.exe (自分の環境に合わせてこれを加えます) -vmargs -Xverify:none -javaagent:dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar -Dosgi.requiredJavaVersion=1.7 -Xms1024m -Xmx1024m
少しググれば解決策は見つかるのにreadmeのeclipse.ini.originalを弄っていました(ノ∀`)
GAEforJavaでjdconfigのエラーを治す
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">
となっているのを
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd">
にします。
GAEforJavaでプロジェクトがデバックできなくなる
Usage: <dev-appserver> [options] <war directory>
というエラー・メッセージが出て、デバックできなりました。
対処法は
プロジェクトのpropertiesを開きます。
Run & Debug Settingを開きます。
設定を全て消し、okをクリックです。
tweepyでstreamingを使う
まず、filterを使ってみます
import sys import tweepy from tweepy.auth import OAuthHandler from tweepy.api import API class myExeption(Exception): pass class StreamListener(tweepy.streaming.StreamListener): def __init__(self): #データベースに接続するときなどに使えます #↓これを忘れると動きません super(StreamListener,self).__init__() def __del__(self): #データベースを閉じることなどに使えます def on_status(self,status): text = status.text #本文 date = status.created_at #ツイートされた日時(確かdatetime型) name = status.author.name #投稿者id名(unicode型、sqlite3で都合が良いので.encode("utf-8")とはしませんでした screen_name = status.author.screen_name #投稿者の名前 img = status.author.profile_image_url #投稿者のプロファイル画像 """ その他にもauthorはid,location,followers_count,status_count,description,friends_count, profile_background_image_url,lang,time_zone,following.favorities_count などを持っている """ return True def on_error(self,status): print "can't get" def on_timeout(self): raise myExeption def get_oauth(): consumer_key = '' consumer_secret = '' access_key = '' access_secret = '' auth = OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_key, access_secret) return auth if __name__ == '__main__': auth = get_oauth() stream = tweepy.Stream(auth,StreamListener()) while True : try: stream.filter(languages=['ja'],track=['yomiuri','sankei','nikkei']) except myExeption() : #twitterに弾かれた場合は少し待って接続し直します time.sleep(60) stream = tweepy.Stream(auth,StreamListener())
twitterにアプリを登録してキーをもらうには
https://dev.twitter.com/apps
filterは1アカウントに一つしか使えないようです
もし、たくさんのワードで検索したいなら
import re
on_status(self,status)ないで
if re.search(u"hoge",status.text)!=None
とやってstatusの中身を切り分けていくと良いです
ユーザーストリームを使いたい場合は
if __name__ == '__main__': auth = get_oauth() stream = Stream(auth, StreamListener(), secure=True) stream.userstream()
とやれば良いです
- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 12人 クリック: 423回
- この商品を含むブログ (130件) を見る
- 作者: Steven Bird,Ewan Klein,Edward Loper,萩原正人,中山敬広,水野貴明
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/11/11
- メディア: 大型本
- 購入: 20人 クリック: 639回
- この商品を含むブログ (44件) を見る
- 作者: C.M.ビショップ,元田浩,栗田多喜夫,樋口知之,松本裕治,村田昇
- 出版社/メーカー: 丸善出版
- 発売日: 2012/04/05
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 33回
- この商品を含むブログ (16件) を見る
- 作者: 高村大也,奥村学
- 出版社/メーカー: コロナ社
- 発売日: 2010/07
- メディア: 単行本
- 購入: 13人 クリック: 235回
- この商品を含むブログ (40件) を見る
統計的機械学習―生成モデルに基づくパターン認識 (Tokyo Tech Be‐TEXT)
- 作者: 杉山将
- 出版社/メーカー: オーム社
- 発売日: 2009/09
- メディア: 単行本
- 購入: 3人 クリック: 76回
- この商品を含むブログ (5件) を見る
Abstract Factory
概要
Abstract Factoryは関連するインスタンス群を整合性をもって生成するデザインパターン。例えば、車A、車Bを
作るときに、それぞれのタイヤ、ボディ、エンジンを
正しい組み合わせで整合性を持って組み立てなければならない。
このとき、プラグラマが部品をその時その時に組み合わせて
いたのでは間違いが生じてしまう。Factory Methodパターン
のCreateクラスのようなFactoryクラスを用いてまとめて
生成することで組み合わせを間違いなく整合性を持って
組み立てられる。
・Abstract Factoryクラス
AbstractProductを生成するメソッドのインターフェイスを定義する
・Abstract Productクラス
生成される部品のインターフェイスを定義する。
・Concrete Factoryクラス
Abstract Factoryクラスを実装し、Abstract Product
クラスのサブクラスを生成するメソッドを実装する。
・Concrete Productクラス
Abstract Productクラスを実装する。
Abstract Factoryの実現方法
/* Abstract Productクラス */ interface Tire{} interface Body{} interface Engine{} /* Abstract Factoryクラス */ interface CarFactory{ public Tire createTire(); public Body createBody(); public Engine createEngine(); } /* Concrete Productクラス */ class TireA implements Tire{} class TireB implements Tire{} class BodyA implements Body{} class BodyB implements Body{} class EngineA implements Engine{} class EngineB implements Engine{} /* Concrete Factoryクラス */ class CarAFactory implements CarFactory{ public Tire createTire(){ return new TireA(); } public Body createBody(){ return new BodyA(); } public Engine createEngine(){ return new EngineA(); } } /* Concrete Factoryクラス */ class CarBFactory implements CarFactory{ public Tire createTire(){ return new TireB(); } public Body createBody(){ return new BodyB(); } public Engine createEngine(){ return new EngineB(); } } class Client{ public void CarManufacturer(CarFactory factory){ Tire tire = factory.createTire(); Body body = factory.createBody(); Engine engine = factory.createEngine(); } }
欠点
この例では新しい車を追加するのは容易だが新しい部品、例えば、ハイブリッド用のバッテリーを搭載するように
するときは変更が容易ではない。
Factory Method
概要
ファクトリメソッドパターンは、インターフェイス
を用いてオブジェクトの生成を柔軟にするデザインパターン。
必要に応じて生成するクラスを変えることができるので、再利用性を
高めることができる。
・Productクラス
ファクトリクラスヲが生成するインスタンスのインターフェイス
・ConcreteProductクラス
実際に生成されるインスタンス
・Creatorクラス
ファクトリメソッドを用意するクラス
Product型のインスタンスを返す
具象クラスとしてインスタンスを生成させることもある
ただし、柔軟性が下がる
・ConcreteCreatorクラス
ConcreteProductを生成するクラス
Factory Methodの実現方法
・インターフェイスでProduct,Creatorを作る。・それをもとにConcreteProduct,ConcreteCreatorを作る。
interface Creator{ public Product factoryMethod(); } interface Product{} class ConcreteCreator1 implements Creator{ public Product factoryMethod(){ return new ConcreteProduct1(); } class ConcreteCreator2 implements Creator{ public Product factoryMethod(){ return new ConcreteProduct2(); } class ConcreteProduct implements Product{} public class Sample{ public static void main(String[] args){ Creator factory = new ConcreteCreator1();//書き換えるのはここだけ Product product = factory.factoryMethod(); } }
link
http://ja.wikipedia.org/wiki/Factory_Method_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
http://www.nulab.co.jp/designPatterns/designPatterns2/designPatterns2-2.html
理解が深まったら追記