アーカイブ

2009 年 9 月 のアーカイブ

AVG Anti-Virus Free Edition 8.5 for Linux を CentOSにインストール

2009 年 9 月 11 日 tdtsh Comments off

Windowsでも個人的にお世話になっている AVG アンチウィルス無償版.
非商業的な目的でなら、無償です。
我が家ではもっぱら「ブラジル」と呼んでます。アイコンが国旗みたいだから。

その無償版のLinux版、AVG Anti-Virus Free Edition for Linux版が、8.5になってた。

AVG Anti-Virus Free Edition 8.5 for Linux

開発機として構築中のCentOS 5.3に入れてみた。
といっても、上記サイトからrpm版と取ってきて、rpm -vh するだけ。

以前のバージョン(7.5)では、プロセスが1個やったけど、8.5からは色んなデーモンが稼動している。

/opt/avg/avg8/doc/READMEより

   avgd       -- general AVG daemon; starts first, manages other AVG daemons
   avgavid    -- AVI daemon; loads AVI into shared memory
   avgsched   -- scheduler for planning periodic events (update etc.)
   avgtcpd    -- e-mail scanning daemon; supports SMTP, AVG, and Milter protocol
   avgupam    -- updatspam daemon
   avgscand   -- anti-virus daemon
   avgup      -- update daemon
   avgoad     -- on-access daemon

avgoadはリアルタイム保護、avgupはアップデートを行うデーモンに読み取れる。

つーことは、cron で avgupdate を定期的に行う必要が無いのか。

そうだとしたら、インストールがとっても楽なんですけど。

カテゴリー: linux, インフラ, 開発環境 タグ:

Excelでテーブル定義書を出力できるデータベース管理ツール CSE (Common SQL Environment)

2009 年 9 月 10 日 tdtsh Comments off

今まで色んなデータベース管理ツール(特に無償のん)を使ってきたけど、使用頻度といい、期間といい、圧倒的にこれがナンバーワン。

CSE(Common SQL Environment)

ワタシにとって手放せない理由は、さくっとExcelでテーブル定義書を出力してくれる所。
全体的にすんごく動作が軽い事もイイし、スプレッドシート感覚でデータ操作もできる。
SQL文の実行もできる。OracleでいうObject Browserの様なもの。

残念ながら、2002年からメンテナンスはされていない様ですが、ODBCドライバのインストールと設定さえしてあれば、今でも使えます。
ODBCでイケるから、MySQLだろうがPostgreSQLだろうが、SQL Serverも、DB2も、勿論Oracleも使えます。

多少ならお金払いますから、是非メンテナンスを継続して頂きたい。

Windowsちょっとイイツール紹介シリーズその1でした。

カテゴリー: DBA タグ:

Spring Framework の SqlUpdate で OracleのclobをInsert・Updateする

2009 年 9 月 9 日 tdtsh Comments off

Spring Framework から Oracle の CLOB や BLOG を扱う事がある。
Oracle9i の頃から、LOB にはちょっと苦労させられた。

9iの頃のJDBCドライバ(Thin)では、文字数の制約で色々めんどくさかったけど、
10g以降のJDBCドライバでは、いい感じに変換してくれるのか、CLOBフィールドの参照系ならVARCHAR感覚でコーディングできてた。
でも、更新系では手抜きが通じない。
8000バイト位(多分8192バイト)を超える文字列をInsert/Updagteすると、文字列が一部欠落してしまう。
こっちはいい感じに変換してくれない。

仕方ないから、LobHandlerを使ってちゃんと書いた(つもり)。

Spring は未だに 1.2 を使ってマス。
Sprint 2系でも、いっしょじゃないだろうか。

設定はこんな感じで、lobHanderをインジェクションする。

<bean id=”lobHandler” class=”org.springframework.jdbc.support.lob.OracleLobHandler”>
<property name=”nativeJdbcExtractor” ref=”nativeJdbcExtractor”/>
</bean>

<bean id=”nativeJdbcExtractor” class=”org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor”/>

<bean id=”abstractDao” abstract=”true”>
<property name=”dataSource”>
<ref bean=”dataSource” />
</property>
</bean>

<bean id=”hogeDao” parent=”abstractDao”
class=”your.package.dao.HogeDaoImpl” >
<property name=”lobHandler”>
<ref bean=”lobHandler” />
</property>
</bean>

org.springframework.jdbc.object.SqlUpdate を継承したクラスを作る。
Types は CLOBに。後は特に留意点なし。

package your.package.dao.sql;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import javax.sql.DataSource;

import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.object.SqlUpdate;

public class Create extends SqlUpdate {

public Create(DataSource ds) {
super(ds, QUERY);
super.declareParameter(new SqlParameter(Types.INTEGER)); // ID
super.declareParameter(new SqlParameter(Types.CLOB)); // Clob Data
compile();
}

private static final String QUERY = “INSERT INTO Table (ID, CLOBFIELD) VALUES ( ?,? )”;

んで、org.springframework.jdbc.core.support.JdbcDaoSupport を継承して、さっきのSqlUpdateクラスを使う。
DIしたlobHandler を使って、 SqlLobValueを生成してあげる。

package your.package.dao.sql;

public class HogeDaoImpl extends JdbcDaoSupport {

public HogeDaoImpl() {
super();
}

private LobHandler lobHandler_;

public void setLobHandler(LobHandler lobHandler) {
lobHandler_ = lobHandler;
}

public void save(Object entityBean) {
BeanOfTable bean = (BeanOfTable) entityBean;
SqlLobValue clobField = new SqlLobValue(bean.getBody(), lobHandler_);
String id = bean.getId();
Create create = new Create(getDataSource());
create.update(new Object[]{ id, clobField });
}

カテゴリー: DBA, java タグ:

gvimで正規表現(後方参照)

2009 年 9 月 8 日 tdtsh Comments off

Perlの正規表現での後方参照( ()内の文字列を$1に置換するやつ )を、gvimでやるときのメモ。

\(\)内の文字列を\1に置換すればいい。

タグを\nに置換したい場合は、こんな感じ。

:%s/\(.*\)/\1\\n/gc
カテゴリー: 未分類 タグ:

GAE java (Google App Engine) 上でのOpenID と まとめ

2009 年 9 月 4 日 tdtsh Comments off

GAE/JでOpenIDのRPを実装したい。

個人で作るWEBサービスなら兎も角、法人の場合とかはGAE上にメールアドレスとかの個人情報をぶっこみたく無い、なんてニーズは当然あると思う (実際にわたしがそうです) んです。

前から何となく疑問に思っていました。
Google App Engine (Java) で OpenIDを動かすにはどーすれば?

openid4javaはソケットを使用するけど、GAEのJREサンドボックス上では使えない。故に動かない。

Java で OpenID を扱う情報って少なくないですか? – イトウ アスカ blog
少ないですね。ひっしで集めてます。

Tsukuyomi OpenID – このプロジェクトについての様な先人もおられます。

Implement OpenID consumer in App Engine (Java) – Google App Engine | Google グループ

こんなのがあるらしい。(2010-03-10 下に追記あり)
dyuproject – Project Hosting on Google Code

java REST framework servlet-based (Java REST Annotations impl), openid 2.0 relying party, oauth 1.0a consumer and service provider, json-ioc

こんなのも。
App Engine Recipe – Accept Google, AOL, Yahoo, MySpace, Facebook, and OpenID Logins

RPX (http://rpxnow.com/) is a free service which authenticates users via OpenID and other protocols for your website. It speaks the individual protocol APIs, and exposes a simple restful interface for you to access both authentication and profile data from Identity Providers like Google, AOL, Yahoo, Facebook, and MySpace. RPX also provides you with a popup and iframe based widget that you may add to your site to help your users choose their authentication provider.

RPX( http://rpxnow.com/ )は、 OpenIDを、あなたのウェブサイトの他のプロトコルを介して、ユーザー認証の無料サービスです。
個々のプロトコルのAPIを話し、あなたのための両方の認証およびアイデンティティプロバイダーGoogleは、 AOLやヤフー、 Facebookのようにからのプロファイルデータにアクセスするためのシンプルな安らかなインターフェイスを公開し、 MySpaceの。 RPXもポップアップとインラインフレームベースのウィジェットとは、お客様のサイトにユーザーが選択するための認証プロバイダを追加することができます提供しています。

良いもの。悪いもの。: Google App Engineを利用してmixiアプリを作成する

Implement OpenID consumer in App Engine (Java) – Google App Engine | Google グループ
誰もなんも返事できないみたい。

 

 


追記 2010-03-10
Google様で 「OpenID GAE」で検索すると、いつの間にか当サイトが1位になっちゃっています。そんだけマイナーな組み合わせなのか・・・


追記 2010-03-18
先述のdyuprojectで、OpenID RPを実際にGAE/Jで動かされた方がおられるようです。
Google App Engine for JavaでOpenIDを試してみた。 – 後ろ回しゲロ
サンプルコードまで公開してくださっています。

わたしもdyuprojectを使って挑戦してみました。
あわせてご覧ください

カテゴリー: Google App Engine, OpenID, java, クラウド タグ: