ホーム » 2013 (ページ 2)

年別アーカイブ: 2013

2020年9月
 12345
6789101112
13141516171819
20212223242526
27282930  

最近の投稿(電子情報)

アーカイブ

カテゴリー

売店のレトルトカレー

いや、アリなのは、わかるんですけどね… 白ご飯だけ&売店レトルトカレー、教室に匂い広がりそう。

1311201239_640x640.JPG

cifsでマウントしたディレクトリをsamba共有かけたら…

バックアップ用のNASを、Debian/Linuxなサーバに接続して使っているが、 その一部フォルダを、サーバ利用者にバックアップ用に使ってもらおうと、 さらに samba で共有をかけた。 しかし、そのディレクトリ内部は、すべてファイル扱いされるトラブルが発生。

状況をメモ

NASは、下記のような設定で、automount されるようにしてある。 この /nfs/nas は、個別にアクセスができることは確認済み。

(( /etc/auto.nfs ))
nas -fstype=cifs,rw,credentials=パスワードファイル,
uid=xxxx,gid=xxxx,file_mode=0664,dir_mode=0775
://XX.XX.XX.XX/path

このディレクトリを、他の利用者にも活用してもらうために、 samba のファイル共有で公開する。
# 直接 NAS を利用者に使わせるのは、NASの設定が面倒なのでパス

(( /etc/samba/smb.conf ))
[nas]
path = /nfs/nas
write list = @group
read list = @group
create mask = 0775
directory mash 0775
force user = nobody
browseable = yes

しかし、この公開されたファイル共有を Mac OS X で接続すると、 /nfs/nas の内部のファイルは見えるんだけど、ディレクトリが、 ファイル扱いを受けてしまい、ディレクトリ内部にアクセスできない…

(( 確認 ))
iMac$ ls -al /Volumes/nas
-rwxrwxr-x 0 xxxxxx xxxx ..... dir1  ← ディレクトリなのに...
-rwxrwxr-x 0 xxxxxx xxxx ..... file1

ひとまず動いたのは…

色々設定を試したけど、どうも サーバ側の samba がおかしい様子。 ひとまず、以下の設定をはずしたら、ディレクトリとして 扱われるようにはなった。

(( /etc/samba/smb.conf ))
- unix extensions = no
+ # unix extensions = no   ← コメントアウト


演習室のノートパソコンのDHCP設定

学内のネットワークでは、学生さんのPCを学内有線LANに 勝手に接続させないために、ネットワーク接続設定を自動化 するための DHCP サーバを動かさない方針となっている。

しかし、演習室のノートパソコンは、気軽に移動先の実験室 で使ったりという運用を行うことから、ネットワーク接続に 設定を変更したりする機会も多い。

ただ、利用後にネットワークの設定を正しく元に戻して あれば問題はないが、慌てて設定を行うと単純ミスで 間違った設定になってしまうことも多かった。

そこで、演習室内のネットワークにて、MACアドレスを 利用して、登録PCにだけ対応IPアドレスを割り振るDHCPを 稼働させた。

(( /etc/dhcp/dhcpd.conf ))
:
host ei-n01 {
hardware ethernet XX:XX:XX:XX:XX:XX ;
fixed-address     10.120.11.YYY ;
}


(専攻科実験)WebService::Simple

RSSフィード活用のプログラム作成のテーマだけれど、 もう少し応用も体験してほしいので、Google Search と関係づけてもらいたい。 でも、調べてみると Google Search API は、ajax からの活用を中心に するようになったので、ちょいと変換が必要で、少し面倒…

ひとまずは、WebService::Simple が簡単っぽい。 でも、Debian/testing のサーバでも、perl-module の命名習慣から推測し、 libwebservice-simple-perl といったパッケージを探すけど、見つからない。 しかたがないので、CPAN からインストール

# perl -MCPAN -e shell
cpan[*]> install WebService::Simple

同じモジュール、自室サーバと学科仮想サーバに入れたけど、 仮想サーバは底力あるから速っ!!

WebService::Simpleを必要最小限動かす

まずは、Google などの検索エンジンで、AND や ORを使った、 細かい条件付き検索のテクニックを以下URLに示す。

上記のような検索キーワードでの検索を行うのであれば、 以下に示すように WebService::Simple を呼び出せば良い。

#!/usr/bin/perl
use WebService::Simple ;
use Data::Dumper ;
use Jcode ;
my $google = WebService::Simple->new(
base_url
=> "http://ajax.googleapis.com/ajax/services/search/web",
response_parser => "JSON",
params          => { v => "1.0", rsz=> "large" }
);
my $response =  $google->get(
{ q => Jcode->new( "ねこ site:tsaitoh.net" )->utf8 ,
start => 0 }
);
my $xml = $response->parse_response ;
# print Dumper $xml->{responseData}->{results}->[0] ;
foreach my $item ( @{$xml->{responseData}->{results}} ) {
print $item->{title}."\n" ;
print $item->{url}."\n" ;
}

2013年11月17日(第347回)

まるとれ30回到達記念!! ~中村先生1時間ジャック~
 中村先生が高専ライブの1時間を丸ごとジャックして丹南FMスタジオから生放送!

  • 工場見学旅行について
  • まるよし Train Pops ~ 国語と遊ぼう! 
  • 高専に入学する理由

ゲスト:福井高専OB 油谷様
担当:前田勝(4EI)、中村(教員)

(専攻科実験)Perlでのメール送信

専攻科の実験で、RSS による情報フィードの活用のテーマのプログラム作成中。 実験学生が、作ってみたいプログラムの案にメールの事例が多かったので、 メールの送信方法について記載しておく。

もっとも簡単なメール送信例

メールを送るためには、メール形式について理解が必要となるので、以下の資料参照。

特に、日本語などの様々な言語でメールを送る場合には、 メールヘッダの"Content-Type:… charset=…"によって、送信する文字コードなどを 指定すれば良い。ただし、日本の古いガラケーでは、JIS コード以外だと文字化けする 場合も多いため、特に問題がないのなら日本語でメールを送るには、 JISコード(ISO-2022-JP)にすべきである。

以下に、最も単純な日本語メールを送るサンプルプログラムを示す。

#!/usr/bin/perl
use Jcode ;
use Email::MIME ;
use Email::MIME::Creator ;
# メールの形式に応じたデータを作る
my $mail = Email::MIME->create(
# メールヘッダの必須パラメータ
header => [ # (注) headerは配列へのリファレンス
# "foo@example.co.jp"と書くと
# @exampleの部分が配列とみなされるので''を使う。
From => 'foo@example.co.jp' ,
To   => 'bar@example.co.jp' ,
# ヘッダでの漢字は、MIME形式でエンコードしないとダメ。
Subject => Jcode->new( "実験" )->mime_encode() ,
] ,
# その他のパラメータ
attributes => {     # (注) attributesはハッシュへのリファレンス
content_type => 'text/html' ,
charset      => 'ISO-2022-JP' ,
encoding     => '7bit' ,
} ,
# メールの本文
body => Jcode->new( "こんにちは" )->jis
) ;
# sendmail を使ってメールを送る。
#   "-t" オプションをつけるとヘッダ部を追加できる
#   open( FH , "|..." ) で出力をプログラムにパイプで渡す。
open( FH , "| /usr/sbin/sendmail -t" )
or die( "Can't open sendmail" ) ;
print FH $mail->as_string ;
close( FH ) ;

台湾への工場見学旅行のお土産もらいましたぁ。

1311150920_320x320.JPG

今週1週間、3EIの学生さんは工場見学旅行で、今年は前年に引き続き台湾となりました。 先程、先に無事にもどられた西先生より、おみやげを頂きました。 特に大きなトラブルもなく、見学先の大学との学生間交流もできたようでした。

まだ、3EIの学生さんは自主見学旅行の途中でしょうが、無事に帰ってきてくださいませ。

『今日は1限目から3EIの授業、先週のネタからすると××の説明するぞ!!』と 教室に向かったけど、誰もいませんでした…
# 気づくの遅っ!!

2013年11月10日(第346回)

  • まるよし Train Pops ~ 国語と遊ぼう!  第30便  「ちりとてちん」
  • 遠足・工場見学旅行について
  • 高専デザインコンペティションin米子について

担当:前田勝(4EI)、山野(2C)、西(教員)

MyJVNによる更新チェック

最近のウィルスなどの侵入手口では、 古い Java を悪用した手口が多いらしい。

このことから、よく利用されているソフトの更新チェックが 重要となる。しかし、すべてのソフトの更新確認は、大変である。 でも、日本のセキュリティセンターの JPCERT などが監修し、 ブラウザで古いソフトをチェックしてくれるサービス MyJVN がある。

さっそく自宅マシンで実行したが、Java は自動更新がかかるので、 大丈夫であったが、ブラウザの FireFox などで警告がでてきた。 メインブラウザが Chrome だけど、ひとまず関連ソフトの更新を行った。

1311071839_877x571.png

(専攻科実験)RSSを用いた情報活用

インターネットでは、様々な情報が提供されているが、 これらの情報を効率よく見つけ出すには、労力を要する。 このため、インターネット上の情報サイトでは、 RSS(Rich Site Summary) と呼ばれる XML をベースとした、サイトの概要情報を提供している。 これらの RSS の情報は、 フィードリーダ というソフトを使うことで、 そのタイトル・概要をシンプルに表示してくれることから、 読者が興味のある記事を見つけやすくなる。

今回は、これらの RSS 形式のデータを活用するために、 自分の作成した情報の RSS データを作成したり、 一般に公開されている RSS フィードを読み込み解析し、 2次利用できるようにしたり、自分たちの使うインターネットと連動できる プログラム開発を、文字列処理の得意なプログラム言語である、Perl や PHP を用いて 作成することを目指す。

RSSと解析ライブラリ

RSSには、その発展の歴史の中から、少しづつ書式を変えながら発展してきた。 最初は、RDF と呼ばれる形式であったが、RSS 2.0 に発展する中で、 XML 形式による書式となった。 この他にも、RSS の問題点を改良した Atom 形式なども提案されている。

RSSのデータ形式は様々で、全ての形式に対応したプログラム作成は本来難しい。 しかし Perl や PHP では、便利なパーサ・ライブラリがあるので、RSSの情報の中から、 希望する情報だけを簡単に抽出することが可能となっている。

Perl で RSS 形式のデータを扱うために、今回は "XML::FeedPP"モジュールを使用する。 このライブラリは、RSS/RDF/Atom など様々な フィード形式に対応している。 XML::FeedPP の解説サイトには、データを入力・出力するなどの手続きの例が、 いくつか記載されているので、これらのサンプルプログラムを元にプログラムを作成せよ。

#!/usr/bin/perl
# 使用するモジュールを選ぶ
use XML::TreePP ; # use 文は C言語の #include みたいなもの。
use XML::FeedPP ;
# 日本語の文字コード変換モジュール
use Jcode ;
# 読み込むフィード
my $source = 'http://use.perl.org/index.rss'; # my は局所変数宣言
# RSSデータを解析し読み込ませる
my $feed = XML::FeedPP->new( $source );
# 記事全体の情報を表示
my $title = $feed->title() ;
# Jcode->new( "文字列" ) に対する変換コード(以下が利用可)
#   ->utf8 , ->unicode , ->jis , ->sjis , ->euc
print "Title: ", Jcode->new( $title )->utf8 , "\n";
print "Date: ", $feed->pubDate(), "\n";
# 個別の記事の情報を表示
foreach my $item ( $feed->get_item() ) {
print "URL: ", $item->link(), "\n";
my $title = $item->title() ;
print "Title: ", Jcode->new( $title )->utf8, "\n";
}
# foreach文は、配列要素すべてに対する処理ループを実行
# foreach $要素 ( @配列 ) { ... }

実験方法

プログラムの実験にあたり、 ファイルの編集にはファイル共有機能を使用し、 プログラムの実行にはターミナルソフト(TeraTerm)を使用する。

最初に、実験端末に TeraTerm がインストールしてなければ、 このページ先より入手し、インストールを行うこと。

サーバに接続し、プログラムを実行するには、TeraTermPro.exe を実行し、 Host:「tsaitoh.ei.fukui-nct.ac.jp /KR=UTF-8 /KT=UTF-8」, Service:SSH で接続し、 別途指定された ユーザ名 , パスワード を利用し、Login せよ。

ファイルを編集する際には、Windows 端末のファイル共有にて、 「¥¥tsaitoh.ei.fukui-nct.ac.jp¥ユーザ名」にてアクセスし、 login 画面が出たら、ユーザ名とパスワードを入力せよ。 Windows のエディタで、ファイルを編集し保存する際には、 「文字コード: UTF-8 , 行末コード: nl」を指定すること。

(( 前述の feed.pl を実行する場合 ))
$ perl feed.pl

最初の課題

上記のプログラムを動作させ、得られる結果などを確認せよ。 RSSフィードの http://…./…xml などは、Firefox などのブラウザであれば、 わかりやすいように表示をしてくれる。さらに、"ページソースを表示"などを実行すれば、 元々の XML 形式のデータを見ることもできる。

まずは、プログラムの内容などを確認したうえで、 インターネット上に掲載されている RSS フィードにどのようなものがあるか調べ、 これらの情報をどのように活用したら便利かアイデアを検討せよ。