2013-09-25

生存確認

どもです。

生存確認です。
今度、もうチョッとまともに書きますね。

因みに、この投稿はBlogger App からの投稿です。

では~。

2013-07-12

「ガッチャマン」の事(映画レビューじゃないよ)

どもです。
前回の更新から、約3ヶ月ぶり…。わはは。

で、「ガッチャマン」です。
往年のアニメ作品て言うかTV番組の実写映画化。

こちらの予告も観ました。


うん。まあ、悪くは無いんじゃない。

最初、この映画のスチール見たときは、「タイバニ」方向を向いているのかと思ったんだけどねぇ。

でもYouTubeのコメにも有るように、「なんか違う」感はありますね。
特に自分のようにリアルタイムで観ていたら尚更。

で、その 「なんか違う」感ってなんだろうと考えたら、やっぱりカン違いしてるんじゃないかと。

ガッチャマンって、端的に言えば「戦隊」なんですよね。

でも、予告見る限り映画は「戦隊ノリじゃない」んですよ。

いや、人間ドラマもあるし、派手なアクションもあるし、そういう部分では良いと思うんですけど目線が完全に「大人に観てもらう」事を意識してる。

でもねぇ。

今の大人(特に40代後半から50代前半)はリアルタイムにオリジナルアニメを見てる層なんですよ。

全然、ガッチャマンなんて見たこと無い(年齢的にもっと上の)層なら、今回の映画でもいいと思うんだけど、リアルタイムに観た層以降について言えば、

「なんか違う」

と…。

うーーん。タツノコさん、いっそのこと次に御社のアニメ作品を実写化するなら、東映の戦隊スタッフにお願いしたらいいんじゃない?



てな、わけで「まだ、観てもいない映画に色々言う」でした。


では〜〜。

2013-04-05

[SAP] eCATTのこと

どもです。

まさかの連投。大丈夫か > 自分


えと、今
「今後の作業で使うから」
と言う理由で eCATT の勉強してます。

CATTと言うもの自体、話には聞いていたけど使った事が無かったのでいい機会だと思ってSAPのOnlie Helpを中心に調べてるんですが…イイなぁ…これ。

いや、何がいいってスクリプトとデータ用意すれば自動でやってくれるんですよ。

で、こう思うんです。
「なんでどこも使わないんだろう?」


答えは簡単。
「テスト結果にスクショが付かないから」

恐らくこれ。

いままで関わったプロジェクトでテスト(単体、結合問わず)と言えば ー> スクリーンショット。
これ必須。

つまり、テストの結果として
「検証可能な資料」を残す、と言う意味で「スクショ必須」なんですね。

でも、eCATTの場合、テスト結果はLogの形で保存される。
んだけど、これ「見方が分からない」と検証できないんですね。

で、実はeCATTなんて誰もマトモに使って居ないから、テスト結果としての「Logの見方が分からない」んですね。
今回のeCATTの使用はあくまでも大量データ投入であってテストの為じゃないんですね。


ううーーーん。
ハッキリ言って、イチイチスクショ取る単体テスト。
その後、Excelにまとめるんだけど、その時間と労力って、投入しただけのものは有るんだろうか?
なんて思ったりするんですね。
SAP(と言うかABAPというか)にはカバレッジツールなんかも有るんです。ですが、これも有効活用されているとは言い難い状況。

テスト工数を削減するんなら、こういうツールを積極的に使って見ればいいのにねぇ。


 と言う訳で、まあ、お勉強はまだ続きます。


では〜。

「人類の歴史を変えた発明1001」

どもです。

最近、図書館から借りてきて、「大当たり」だった本を紹介します。



人類の歴史を変えた発明1001

とにかく、一家に一冊あってもいい程の内容。

紀元前260万年頃の石器に始まって、最後は2008年の大型ハドロン衝突型加速器までが年代ごとにまとめられています。
ほぼ1ページ1項目なのでそれぞれの解説はそれほど詳しくは無いものの、ページをめくれば「ほ〜っ」「へぇ〜っ」ってなること請け合い。

で、最後が2008年…なので当然知っているものも出てきます、iPhoneとかブルーレイとか初代マッキントッシュとかね。
あと、意外なものが意外な年代に出てきたり(例えば、エスカレーターが1891年に出てきたり)
意外なものが意外なところに出てきたり(これは…ひみつ…読んだらいいよ)

考えてみれば、今の50代から40代後半頃(までかな?)は家庭に百科事典が有ったんじゃないかと思います。(少なくともウチにはあった)
自分なんかは、学校の教科書見る時間よりも百科辞典見てた時間のほうが長いんじゃないかと思います。でも、今はネットで調べ物は済むし、少なくとも紙の書籍であったものよりもずっと最新情報だしで、出版社ももうどこも出してないですよね。
でも、いつでもPCが使えるわけじゃないウチの子供らにしてみれば書籍の形で手元にあると暇つぶしに手にとって拾い読みしてますが、それで十分だと思うんです。
そうする中で自分ながらに発見とかがあれば、そういうモノって結構忘れないものですからね。
ま、話のタネにはなるんじゃないかと思うんです。


あと、大人が読んでもおもしろいし、ワンボードマイコンの頃からの事を知ってる人なら、この本の中の例えばハードディスク・ドライブのページで「おーっ、このデカイハードディスク使ったこと有るぞ」とかそういう話を”誇らしげに”出来ますよん。


個人的には、これ借りてきて子供たちがこっちの思惑通りに喰い付いてくれたことが一番嬉しかったりするんですけどね。  へへへぇ。



てなわけで。

では〜。

2013-04-02

ABAP: Loop AT 〜 [INTO | ASSIGN](改)

どもです。

前回、書いた「ABAP: Loop AT 〜 [INTO | ASSIGN]」なのですが……
ごめんなさい、間違ってましたぁ

と、言う訳で修正したやつをUpします。
間違った奴は、自戒を込めて残しときます。


久々のSAPネタ。
忘れないうちに書いときます。

Loop AT [内部テーブル] INTO [構造体].

  AT NEW [コンポーネント].

  ENDAT.

ENDLOOP.

とした場合、 [コンポーネント]に書けるのは、[構造体]内の項目になります。
しかも、この書き方の場合、 [構造体]がこんな
 ITEM001     TYPE    C LENGTH 10
 ITEM002     TYPE    C LENGTH 10
 ITEM003     TYPE    C LENGTH 10
内容だとして、[コンポーネント]ITEM001 だとすると、
AT NEW でブレイクすると AT NEW 〜 ENDAT 内で参照できるのは、ITEM001だけで
ITEM002以降については文字項目の場合 '*' が詰められて参照できません。

これが最初分からなくって、随分ハマりましたし、恐らくABAPでAT NEW とか「使いにくい」って感じてる人はこれが原因じゃないかと思います。

ところが。
LOOP AT 〜 にはもうひとつの記法が有るのはご存知だと思います。
そう!

LOOP AT [内部テーブル] ASSIGN <フィールドシンボル>.

この書き方の場合でも、先程のAT NEW の書き方がチョット違ってきます同様の書き方になります。

LOOP AT [内部テーブル] ASSIGN <フィールドシンボル>.

  AT NEW [コンポーネント].

  ENDAT.

ENDLOOP.
2013/4/1記
 先の”AT NEW [コンポーネント]”の記述で分かる通り、INTOでもASSIGNでも基本は同じ動作になります。従って、これ以降については、まるまる意味のない記述になります。

誤った原因は、”AT NEW” に続けて書くのが[コンポーネント]で有ることを失念したところ。
自分でテストPG書いた時に何を勘違いしたのか、
AT NEW <フィールドシンボル>-[コンポーネント].
 なんて書いちゃった。当然コンパイラからはエラーメッセージ出されます。
そもそも、書くべきは[コンポーネント]のみで、[構造体]等で修飾する必要も無いもの。

という訳で、これ以降については、「なんぞおかしなこと言っとる」って事で無視して下さい。

多くの方に見に来ていただいてるのに、ホントにすみません。
以後、気を付けます。


INTO では、AT NEW に書けるのは<構造体>内の1項目でしたが、
ASSIGN の場合は、<フィールドシンボル> そのものを書きます。

じゃあこれでどうなるかって言うと、<フィールドシンボル> の参照元の内部テーブルの構造全体がキーとして認識されます。

「…え?じゃあ…どうなるの?」

極端なことをいえば、<内部テーブル>内の全レコードがAT NEWの対象になります。
つまり、”必ずAT NEW”を通ります。
それじゃあ、NEWの意味が無いんですが、重要な点が2つ。
  1. INTOの場合、指定した項目(先の例で言えばITEM001)以降の項目の参照ができませんでしたが、ASSIGNの場合、全ての項目の参照が出来ます。
  2. 任意の複数項目を一つのキーとして使用することができる。
と言う事になります。

例えば、こんなの。

TYPES:
  BEGIN OF TYP001,                    " 内部テーブル構造体1
    ITEM001     TYPE C LENGTH 10,
    ITEM002     TYPE C LENGTH 10,
    ITEM003     TYPE C LENGTH 10,
    ITEM004     TYPE C LENGTH 10,
  END OF TYP001.

TYPES:
  BEGIN OF TYP00A,                    " ブレイクキー構造体
    ITEM001     TYPE C LENGTH 10,
    ITEM002     TYPE C LENGTH 10,
  END OF TYP00A.

TYPES:
  BEGIN OF TYP002,                    " 内部テーブル構造体2
    ITEM00A     TYPE TYP00A,          " ブレイクキー項目
    ITEM003     TYPE C LENGTH 10,
    ITEM004     TYPE C LENGTH 10,
  END OF TYP002.

DATA:
  TB001      TYPE STANDARD TABLE  TYP001,  " 内部テーブル1
  TB002      TYPE STANDARD TABLE  TYP002,  " 内部テーブル2(キー構造有り)
  KEY        TYPE TYP00A.             " キー退避項目
 
FIELD-SYMBOLS:
         TYPE TYP002.             " フィールドシンボル

* 既に TB001 にはデータが入っていてSORTまでされているとします
* ブレイクキー項目の有る内部テーブルにコピー
  TB002[]  =  TB001[].

LOOP AT TB002 ASSIGN .

  AT NEW  .
    IF -ITEM00A <> KEY.
*** ここにブレイク時の処理を記述(今回はWRITEします)
      WRITE: /1(10)   -ITEM00A-ITEM001,
              13(10)  -ITEM00A-ITEM002.

      KEY = -ITEM00A. " KEY項目の更新(これをしないとブレイクしない)
    ELSE.
      NEW-LINE.       " ブレイクしない場合、ただ改行だけ
    ENDIF.
  ENDAT.

  WRITE: 26(10)  -ITEM003, " 非キー項目はそのままWRITE

         39(10)  -ITEM004.

ENDLOOP.

これを実行するとこんな感じに出力される(はず)。

aaaaa   aaaaa  xxxxx yyyyy
               xxxxx yyy00
               xxxxx yyy01
aaaaa   bbbbb  xxxxx yyyyy
               x00xx yyyyy
abbbb   bbbbb  xxxxx yyyyy

キー部分がブレイクした時だけ出力されて、非キー項目はレコード毎に出力されます。

ちょっと面倒な感じもあるし、比較項目を2つ用意してLOOPさせながらIFで比較するって言う旧来のやり方と殆ど変わらない気もするんですが、 フィールドシンボルの場合AT NEW 内で
「全項目へのアクセスができる」
って所が個人的には
すげーーーーー!Σ(・ω・;|||
って単純に思っちゃたんです。(^^;

まあ、覚えておいて…どっかで使うこと…あるかな????


では〜。

2013-03-02

ABAP: Loop AT 〜 [INTO | ASSIGN]

どもです。

久々のSAPネタ。
忘れないうちに書いときます。

Loop AT <内部テーブル> INTO <構造体>.

  AT NEW .

  ENDAT.

ENDLOOP.

とした場合、 に書けるのは、<構造体>内の項目になります。
しかも、この書き方の場合、 <構造体>がこんな
 ITEM001     TYPE    C LENGTH 10
 ITEM002     TYPE    C LENGTH 10
 ITEM003     TYPE    C LENGTH 10
内容だとして、ITEM001 だとすると、
AT NEW でブレイクすると AT NEW 〜 ENDAT 内で参照できるのは、ITEM001だけで
ITEM002以降については文字項目の場合 '*' が詰められて参照できません。

これが最初分からなくって、随分ハマりましたし、恐らくABAPでAT NEW とか「使いにくい」って感じてる人はこれが原因じゃないかと思います。

ところが。
LOOP AT 〜 にはもうひとつの記法が有るのはご存知だと思います。
そう!

LOOP AT <内部テーブル> ASSIGN <フィールドシンボル>.

この書き方の場合、先程のAT NEW の書き方がチョット違ってきます。

LOOP AT <内部テーブル> ASSIGN <フィールドシンボル>.

  AT NEW <フィールドシンボル>.

  ENDAT.

ENDLOOP.

INTO では、AT NEW に書けるのは<構造体>内の1項目でしたが、
ASSIGN の場合は、<フィールドシンボル> そのものを書きます。

じゃあこれでどうなるかって言うと、<フィールドシンボル> の参照元の内部テーブルの構造全体がキーとして認識されます。

「…え?じゃあ…どうなるの?」

極端なことをいえば、<内部テーブル>内の全レコードがAT NEWの対象になります。
つまり、”必ずAT NEW”を通ります。
それじゃあ、NEWの意味が無いんですが、重要な点が2つ。
  1. INTOの場合、指定した項目(先の例で言えばITEM001)以降の項目の参照ができませんでしたが、ASSIGNの場合、全ての項目の参照が出来ます。
  2. 任意の複数項目を一つのキーとして使用することができる。
と言う事になります。

例えば、こんなの。

TYPES:
  BEGIN OF TYP001,                    " 内部テーブル構造体1
    ITEM001     TYPE C LENGTH 10,
    ITEM002     TYPE C LENGTH 10,
    ITEM003     TYPE C LENGTH 10,
    ITEM004     TYPE C LENGTH 10,
  END OF TYP001.

TYPES:
  BEGIN OF TYP00A,                    " ブレイクキー構造体
    ITEM001     TYPE C LENGTH 10,
    ITEM002     TYPE C LENGTH 10,
  END OF TYP00A.

TYPES:
  BEGIN OF TYP002,                    " 内部テーブル構造体2
    ITEM00A     TYPE TYP00A,          " ブレイクキー項目
    ITEM003     TYPE C LENGTH 10,
    ITEM004     TYPE C LENGTH 10,
  END OF TYP002.

DATA:
  TB001      TYPE STANDARD TABLE  TYP001,  " 内部テーブル1
  TB002      TYPE STANDARD TABLE  TYP002,  " 内部テーブル2(キー構造有り)
  KEY        TYPE TYP00A.             " キー退避項目
 
FIELD-SYMBOLS:
         TYPE TYP002.             " フィールドシンボル

* 既に TB001 にはデータが入っていてSORTまでされているとします
* ブレイクキー項目の有る内部テーブルにコピー
  TB002[]  =  TB001[].

LOOP AT TB002 ASSIGN .

  AT NEW  .
    IF -ITEM00A <> KEY.
*** ここにブレイク時の処理を記述(今回はWRITEします)
      WRITE: /1(10)   -ITEM00A-ITEM001,
              13(10)  -ITEM00A-ITEM002.

      KEY = -ITEM00A. " KEY項目の更新(これをしないとブレイクしない)
    ELSE.
      NEW-LINE.       " ブレイクしない場合、ただ改行だけ
    ENDIF.
  ENDAT.

  WRITE: 26(10)  -ITEM003, " 非キー項目はそのままWRITE
         39(10)  -ITEM004.

ENDLOOP.

これを実行するとこんな感じに出力される(はず)。

aaaaa   aaaaa  xxxxx yyyyy
               xxxxx yyy00
               xxxxx yyy01
aaaaa   bbbbb  xxxxx yyyyy
               x00xx yyyyy
abbbb   bbbbb  xxxxx yyyyy

キー部分がブレイクした時だけ出力されて、非キー項目はレコード毎に出力されます。

ちょっと面倒な感じもあるし、比較項目を2つ用意してLOOPさせながらIFで比較するって言う旧来のやり方と殆ど変わらない気もするんですが、 フィールドシンボルの場合AT NEW 内で
「全項目へのアクセスができる」
って所が個人的には
すげーーーーー!Σ(・ω・;|||
って単純に思っちゃたんです。(^^;

まあ、覚えておいて…どっかで使うこと…あるかな????


では〜。

2013-02-02

Webコンテンツのフィルタリングについて。(その2)

どもです。

前回(Webコンテンツのフィルタリングについて。(その1))について書かせてもらいましたが、
  • マシンパワーを喰わない
と言う利点が有るものの、
  • フィルタリング対象のサイトの追加ができない。
と言う欠点もあります。
やはり、OpenDNS自体アメリカのものなので海外のサイトに対しては十分でも、国内サイトについてどこまでが対象とiなっているのかが分かっていません。てか、調べてません。ゴメンナサイ。

で、この「Blacklistをこっちでメンテしたい」って言う観点で調べたところ、"squidGuard"が出てきました。
以下は、そのインストール周りについてです。

参考にしたのは次のsite。
大体、こんなトコですかね。他にもアリますがそれは各自で…テヘ。
 
さて始めましょう。

0.前準備

とりあえず、環境の確認等々。

 こんな感じで構築していきたいと思います。

 既にhavpは動いているので、その次段にsquidを置きたいと思います。

1.squidのInstall

まずは、squidのinstallを行います。(既に稼働中のならここは要りません)
apt-get install squid3

2./etc/squid/squid.confの修正

修正箇所としては基本次の箇所

cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default

url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
最初のヤツは、suquidのcache proxyとしての設定。
2つ目のヤツがsquidGuardとの連携に必要な記述。
 
このsquid.confには大量のコメント&設定記述がありますが、殆ど触っていません。基本Local(と言うかPC本体だけ)でしか使わないからIP アドレスの制限とかも必要ないと思ってます。


3.havpの設定(/etc/havp/havp.confの修正)

AntiVirus Proxyのhavpもうちでは既に稼働中なので、こちらとの連携の設定を行います。

って言いたいトコなんですが、実は修正箇所って無いんですね。これが、squid - havp の形になるとすると/etc/hapv/hapv.confの次の箇所
# PARENTPROXY localhost
# PARENTPORT 3128
を環境に合わせて修正が必要になります。

4. squidGuardのInstall

次にquidGuardをInstallします。

apt-get install squidguard
で、/etc/squidguard/squidGuard.conf の修正。なんですが取り敢えず以下の部分だけ修正します。
dbhome /usr/local/squidGuard/db
これでどのディレクトリにフィルタリング用DBが有るのかを指定します。
それ以外の所謂Policy については次の5.blacklist のDownload の後に行います。


5. blacklist のDownload

squidGuardのofficial page(http://www.squidguard.org) の"Blacklists"にある配布siteからBlackListをDownloadします。

今回は、Shalla's Blacklists(http://www.shallalist.de/) を使います。

調べてみると、ここのblacklistには日本のsiteも登録されている様です。


a.web page右側の"Download"から"shallalist.tar.gz" をdownloadします。
b.squidGuard.conf の "dbhome" に書いたPath(今回の場合、/usr/local/squidGuard/db)にdownloadしたファイルを展開します。

sudo tar -xvzf shallalist.tar.gz

6./etc/squidguard/squidGuard.conf の修正。 

ここで、squidGuard.confの修正を行います。先にもチラと書きましたがPolicyなので
  • 何をBlockする。
  • 何をBlockしない。
と言う観点で記述します。
取り敢えず、自分の場合は以下の通り。

#
# CONFIG FILE FOR SQUIDGUARD
#
# Caution: do NOT use comments inside { }
#

dbhome /usr/local/squidGuard/db
logdir /var/log/squidguard

#
# DESTINATION CLASSES:
#

dest porn {
        domainlist     BL/porn/domains
        urllist     BL/porn/urls
}

dest adult {
        domainlist     BL/dating/domains
        urllist     BL/dating/urls
}

dest drugs {
        domainlist     BL/drugs/domains
        urllist     BL/drugs/urls
}

dest gambling {
        domainlist     BL/gamble/domains
        urllist     BL/gamble/urls
}

dest sexeducation {
        domainlist     BL/sex/education/domains
        urllist     BL/sex/education/urls
}

dest sexlingerie {
        domainlist     BL/sex/lingerie/domains
        urllist     BL/sex/lingerie/urls
}

dest weapons {
        domainlist     BL/weapons/domains
        urllist     BL/weapons/urls
}

dest alcohol {
        domainlist     BL/alcohol/domains
        urllist     BL/alcohol/urls
}

dest education {
         domainlist      BL/education/schools/domains
         urllist         BL/education/schools/urls
}

dest white-add {
         domainlist      usr/whitelist/domains
         urllist         usr/whitelist/urls
}

dest black-add {
         domainlist      usr/blacklist/domains
         urllist         usr/blacklist/urls
}


#
# ACL RULES:
#
acl {
    default {
                pass white-add education !black-add !porn !adult !drugs !gambling !sexeducation !sexlingerie !weapons !alcohol all
                redirect http://localhost/block.html
    }
}

記述内容としては、
dest <カテゴリ> {
        domainlist    
        urllist             

        expressionlist   
}
な感じですかね。

  • 元々Downloadして来たBlackListがカテゴリ分けされているので、それに合わせるのが吉かと思います。各々のlistは$dbhomeからの相対Pathで記述して有ります。
  • white-add,black-addは、こちらで独自にBlockしたいsiteのlistになります。
  • acl 〜 でそれぞれのカテゴリをどうするかを記述します。
  • "pass" にdest〜で記述したカテゴリを列挙します。この時カテゴリ名の前に"!" がついているものは"否定"つまりBlock対象となります。
  • "redirect" でBlock対象となったカテゴリのdomainlist,urllist,expressionlistのいずれかにHitした場合、redirectされる先になります。ここに気の利いたPageを置くといいのかも知れません。

さて、ひとつ注意。このsquidguard.confの"{} "で囲まれたパラメータ部分にコメントを示す"#"を書かないように。どうもsquidguardは解釈できない様でDB構築時にエラーとなります。
てか、止まっちゃうんですね。これが。

7.DB構築

a.次のcommandを実行。 < 暫らく時間がかかる。
sudo squidGuard -C all
これで、squidGuard.conf に記述した内容に従って必要なdomains/urlsのdbを構築します。

プロンプトが返って来たら、Logを確認

sudo gnome-system-log &
この中で、
2013-02-02 01:29:02 [31053] INFO: squidGuard 1.5 started (1359736127.062)
2013-02-02 01:29:02 [31053] INFO: db update done
となっていれば、OK。
もし、先のsquidGuardのコマンドでしばらく待っても何も返って来て無くて、Logに
ERROR: Going into emergency mode
と有ったら、何らかのエラーが有ることになります。
例えば、
squidGuard: FATAL: ACL destination mixed_adult is not defined in configfile /etc/squidguard/squidGuard.conf
と有った場合、 squidGuard.confの記述(この場合、ACL に記述されている"mixed_adult"が"dest"に存在していない。)を確認する必要が有ります。

b.構築したDBのpermissionを変更。
chown -R proxy:proxy /usr/local/squidGuard/db/* 
user:groupは任意ですがここは"proxy:proxy" にしてます。


8.squid,havpの再起動

sudo /etc/init.d/squid3 restart
sudo /etc/init.d/havp restart

9.Ubuntu側のProxyの設定

さて、ここまで出来れば後は、ネットワーク周りの設定。
”システム設定”


”ネットワーク”

”ネットワークプロキシ”

自分の場合、

 メソッド:手動
 HTTP プロキシ:localhost 3128
 以下同じ

と言う設定。
設定後、”システム全体に適用する” をClick

8. Firefox側のProxy設定

次に、ブラウザ(Firefox)側の設定
”設定”

”詳細”

”ネットワーク” タブ > ”接続設定”

 ”システムのプロキシ設定を利用する” を選択

これで、OK。

10.確認

意図したように出来たかどうかを確認。

ブラウザのアドレスバーに以下のように入力。
http://www.smith-wesson.com/
 (ご存知、銃器メーカーのS&Wのサイトです。)
で、画面がこうなればOK。



ふぅ。取り敢えずご苦労様。

もうひと踏ん張り。

11.DBのメンテナンス

こういう環境って、構築して終わりじゃなくってメンテしなきゃなんもならんわけです。

という訳でDBのメンテナンスなんですが、BlacklistをdownloadしたShalla Secure Servicesのsiteにupdate用のshell scriptがいくつか用意されているのでこれを使います。
(実は、このsiteを選んだのもこれが理由の一つだったり)

a.Shalla Secure ServicesのShalla's Blacklists (http://www.shallalist.de/)の右側の"Contributions"の"Download Helpers"をClick。

今回は、"shalla_update.v2.sh"を使うのでこれをDownload。

数カ所変更点が有るので変更します。
squidGuardpath="/usr/bin/squidGuard"
squidpath="/usr/sbin/squid3"

dbhome="/usr/local/squidGuard/db"     # like in squidGuard.conf
squidGuardowner="proxy:proxy"
workdir="/usr/local/squidGuard/tmp"
httpget="/usr/bin/wget"
shallalist="http://squidguard.shalla.de/Downloads/shallalist.tar.gz"
$httpget $shallalist -o shalla-wget.log -O $workdir/shallalist.tar.gz || { echo "Unable to download shallalist.tar.gz." && exit 1 ; }
CATEGORIES="alcohol dating drugs education/schools gamble porn sex/education sex/lingerie weapons"

基本的にversionが上がっていたり、ubuntuの場合なのかsquidGuardのPathが違っていたりの修正です。
workdirも自分の場合dbhomeに合わせましたが、どこか別のpathでも構いません。
あと、CATEGORIESですが使っているものだけを設定した方が時間節約になると思います。

httpget,shallalistについては、定義されてなかったので追加しました。

b.scriptのコピー
a.で修正したscriptを"/etc/cron.daily"にコピーします。
コピーした後、実行権限を付与します。
sudo chmod ug+x /etc/cron.daily/shalla_update.v2.sh
一応、これで日次(でやるべきかと言う疑問はあるけど)でDB更新を行います。

これでホントに終わり。

12.最後に

実は説明してなかった"usr/whitelist/domains", "usr/blacklist/domains"ですが、ここにはdownloadして来たDBとは別に「個人的にblockしたい/したくない」ドメイン等を設定します。
ShallaのBlacklistには見た感じ"jp"なドメインも登録されているようですが内容的にブロックしたいSiteが有った場合"usr/blacklist/domains"に記述することで対応できると考えてこのようにしました。

実際、日本独自にBlacklistを提供してくれてるところは無いようで、チョット残念。
今回のShallaについて言えば
Shalla's Blacklists are free of charge for personal and partly for commercial usage. Anyway, commercial usage requires signing a usage contract. See our licence for details. Please contact info (at) shalla.de for information about gaining this contract.
て書かれていて、「個人利用についてはfreeだけど商用利用するにはlicence結んでね」という事になっています。

国内のこういったコンテンツフィルタリングのソフト等も有りますが殆どが企業向けだったりして個人で利用するには高価すぎるものばかりです。
せめてBlacklistだけでもShallaの様に「個人利用はfree」で使わせてくれればと思ったりします。

さてさて、取り敢えずはこれでホントのホントに終わり。


では〜。

SSH Keyを作成してGitHubなどに接続してみる - Qiita

大事なことなので。 SSH Keyを作成してGitHubなどに接続してみる - Qiita : GitHubやGitLab上のリポジトリへgitコマンドでファイルをpushする時に、上手く接続出来なかったのでSSH Keyの作成からやり直してみました。これはその作業ログなので自分...