venv使い方

venvはPython3.3以降で標準に入っている仮想環境の作成、管理ができるモジュール。1つのPCやサーバ内にて、アプリごとに違うバージョンのpthhonやライブラリを利用する可能性がある場合は、それぞれ仮想環境を用意して開発運用するのが便利。

venvで仮想環境を構築

$python3 -m venv [ env name ]

仮想環境に入る

$. [env name]/Scripts/activate

※Windows環境でのactivate方法

仮想環境の終了

$deactivate

ruby

ruby入門
http://www.rubylife.jp/ini/

文法

  • Rubyでは基本的に1つの処理を行うプログラムを1行に記述する
  • そして改行が1つの処理の区切りとなる。改行の代わりにセミコロン(;)を使用することも可能。

Ruby on Rails

http://www.rubylife.jp/rails/

RubyOnRails を使ってみる  http://jp.rubyist.net/magazine/?0004-RubyOnRails

リバースプロキシ経由のinotesの構成

参考資料: LDD Today: iNotes Web AccessをWebSphere Edgeリバース・プロキシー・サーバーを活用して使った構成

製品体系:
WebSphere Application Server(Base版)- WAS本体(IBM HTTP Server(IHS)同梱)が存在する。
これにクラスタ対応(Edgeコンポーネント、セッション共有、Deployment Managerなど)を追加したものが、WebSphere Application Server Network Deployment(ND版)という。

Apache as a reverse proxy for IBM Domino iNotes with home server redirection

How to Configure a Reverse Proxy server for iNotes and Sametime Proxy Integration

IBM HTTP Server(IHS)をDomnoと同居させて利用

Domino9からIHSをDominoと同時にインストール可能となった。
メリット: SSLの後継版であるよりセキュアなTLSを利用できる。DominoとIHSを別々にたてずに1台でTLS利用可能。
デメリット:Windowsサーバのみ対応。DMZにリバースプロキシサーバ用途で配置し、内部ゾーンにDominoを配置するという2台構成の場合は結局別々に建てる必要があるので
この1台に同居は意味がないと思われる。

DominoバンドルのIHSのインストール手順
 
↓下記サイトが画面ショット付きで解説している
1.インストレーションタイプでカスタマイズDomino Serverを選択し、IBM HTTP Serverを追加選択してインストール実行. 続けて日本語ランゲージパックのインストール実行。
2.デスクトップにできているServerアイコンをダブルクリックして、サーバセットアップを実行し、ドメインなど個別サーバパラメータを定義。
3.IHSでSSL/TLSを利用するにはキーデータベースが必要。SSL/TLSキーデータベースの作成には鍵管理ツールを使う。
 3-1.C:\Program Files\IBM\Domino\ihs\binにあるikeyman.batを実行。GUIが立ち上がる。鍵データベース>新規を押下
 
 3-2.データベースタイプにCMS、ファイル名と場所を任意にセットしOKを押す。
  

 
 3-3.passwordを設定。パスワードをファイルに隠すをチェックすると、    暗号化されたパスワードがキーファイルと同じフォルダに格納される(拡張子はsth)
 
 3-4.自己署名をするため新規自己署名ボタンを押下。認証機関に認証要求する場合は、個人認証要求を選択して、新規とすすむ(詳細は、http://xpagetips.blogspot.jp/2013/05/setting-up-ibm-http-server-with-domino-9.htmlにかかれている)
 3-5.オレオレ証明書を作成する画面。鍵ラベルは適当にサーバ名、有効期間はテストなので長めに変更し、OK押下。
4.インスト後、notes.iniにてHTTPIHSEnabled=1を追加
5.C:\Program Files\IBM\Domino\ihs\conf\domino.confにて、#Listen 0.0.0.0:80の#をはずす。これでHTTPが有効になる。
6.同じくdomino.confの以下の行の#をはずす。これでSSL(TLS)が有効になる。
 
#Listen 0.0.0.0:443
#<VirtualHost *:443>
#SSLEnable
#</VirtualHost>
#KeyFile “C:\Program Files\IBM\Domino\ihs\key.kdb” <==ツールで作成したキーデータベースのありか。ダブルクォートでかこむ。
#SSLDisable
7.Dominoサーバを起動させる

rubyでの正規表現

http://www.geocities.jp/m_hiroi/light/abcruby05.html

表 1 : 正規表現で使用する基本的なメタ文字
メタ文字 意味
| この前後にある正規表現のどちらかと一致する
* 直前の正規表現の 0 回以上の繰り返しに一致する
+ 直前の正規表現の 1 回以上の繰り返しに一致する
? 直前の正規表現に 0 回もしくは1回一致する
{m,n} 直前の正規表現の m 回以上 n 回以下の繰り返し
*? 直前の正規表現の 0 回以上の繰り返しに一致する(最短一致)
+? 直前の正規表現の 1 回以上の繰り返しに一致する(最短一致)
?? 直前の正規表現に 0 回もしくは1回一致する(最短一致)
{m,n}? 直前の正規表現の m 回以上 n 回以下の繰り返し(最短一致)
[ ] [ ] 内に指定した文字のどれかと一致する
[^ ] [ ] 内に指定した文字でない場合に一致する
. 任意の1文字と一致する
^ 行頭と一致する
$ 行末と一致する
( ) 正規表現をグループにまとめる
\ メタ文字を打ち消す
\A 文字列の先頭と一致
\b 単語境界と一致 (\w と \W の間の空文字列と一致)
\B \B 以外と一致
\d 数字と一致 ([0-9] と同じ)
\D \d 以外と一致
\s 空白文字と一致 ([ \t\n\r\f] と同じ)
\S \s 以外と一致
\w 英数字とアンダースコア _ に一致 ([_a-zA-Z0-9] と同じ)
\W \w 以外と一致
\Z 文字列の末尾と一致

ruby環境セットアップ

Redhat Linuxでrubyインストール
yumでRubyをインストールすることもできるが、バージョンがかなり古いため、Rubyをインストールする際はソースからビルドする
http://blog.takkinoue.com/entry/2014/12/16/225442
 
 
 
Redhat Linuxでrubygemsインストール    rubygemsとはrubyのリポジトリ管理システム。
 
○rubyでmailを扱う場合、mailライブラリをインストする。
 
 
○エディタ
 
Ruby用エディタ:Sublime-Text

http://matome.naver.jp/odai/2138657649717812101

SublimeText3でRubyをコーディングする際の最低限のインストール&設定(Windows)

http://tigawa.github.io/blog/2014/03/09/st3-win-ruby/

EPELとは

EPEL は “Extra Packages for Enterprise Linux” の略。すなわち、Red Hat Enterprise Linux や CentOS 向けに、Fedora Project によって開発・テスト・改良されているパッケージ群を使えるようにするためのリポジトリです。

早い話、Fedora Project で開発されている、サードパーティ製のパッケージ群。Red Hat 社から提供されているリポジトリとは別に、Fedora では比較的新しいパッケージが提供されているのが特長です。

単にリポジトリが提供されているのではなく、RHEL がサポートされている期間は、EPEL リポジトリに含まれるパッケージも、同様にメンテナンスされます。またRHELに含まれるパッケージとは競合や干渉しないように努められています。

これまでも、サードパーティ製のパッケージやリポジトリを統合する動きはありましたが、多くが失敗に終わったようです。EPEL プロジェクトは、研究グループとしてではなく、それが1つのプロジェクトとしてスタートしています。何年もの時間をかけた後、FESCo(Fedora運営グループ)で承認を受け、現在のプロジェクトに至ります

LinuxからWindowsにFTPするのを自動化

以下の環境を想定

FTPクライアント側・・・Redhat Linux  FTPサーバー側・・・WIndows 2008R2
1.事前にLinuxにてFTPクライアントが入っているかを確認
[root@rhelvm1 Desktop]# rpm -qa |grep ftp
gvfs-obexftp-1.4.3-15.el6.x86_64
ftp-0.17-54.el6.x86_64             ★・・・・・・・・・・・・・・・・・パッケージ名がftpのみのものがftpクライアント。
2.Windowsサーバ側は、役割の追加からIISサービスを追加する。IISサービスの中にFTPサーバーがあるため。
3.FTPを対話的にではなくサイレント実行するには事前にFTPで使うパラメータを定義したファイルを作成する。ファイル名はなんでもよい
vi ftp.txt
open test1                                                     <—open <接続先ホスト名>
user TEST/Administrator Demad$Rack01    <—user <ユーザ名> <パスワード> の構文。ここで注意するのは接続先WindowsがADのドメイン配下にある場合、<ドメイン名>/<ユーザ名>の形とする。かつ、ドメイン名とユーザ名の間は\ではなく、/を使                                わないと認証エラーとなる。
bin                           <—バイナリモード
prompt                        <—promptの切り替え。デフォルトはONなので、これでOFFとなる。
put test2.txt                     <—put,getのコマンド
quit                           <—最後に終了のコマンド
4.上記FTP設定ファイルを作成したら、下記 -nコマンドで読み込ませる。
ftp -n <ftp.txt
↓このように無対話で実行される
[root@rhelvm1 ~]# ftp -n -v < ftp.txt
Connected to test1 (192.168.0.10).
220 Microsoft FTP Service
Remote system type is Windows_NT.
331 Password required for TEST/Administrator.
230 User logged in.
200 Type set to I.
Interactive mode off.
local: test2.txt remote: test2.txt
227 Entering Passive Mode (192,168,0,10,252,230).
125 Data connection already open; Transfer starting.
226 Transfer complete.
221 Goodbye.

HTML

<div>タグ・・・・CSSで必須となるタグ。<div>~</div>で囲むと、ひとつのグループとなる。<div>では、idとclassという属性をよく使う。

id属性・・・CSSなどで識別子として使います。一意である必要がある
class属性・・・CSSなどでクラス名を付けるために使う
 
class
「種別名を割り当てる」
→ 同じclass名を、1ページ中に何度でも使える

id
「固有の名前を割り当てる」
→ 同じid名は、1ページ中に1度しか使えない

class属性が対象の「種類・部類」を表しているに過ぎないのに対して、id属性は対象に「固有の名前」を付けて一意に表すために使われます。

ruby

Ruby

出力メソッド:

print ・・・改行なし

puts ・・・改行あり
p   ・・・ 出力形式似あわせて表示
http://d.hatena.ne.jp/japanrock_pg/20080613/1213314138

RubyGems

RubyGemsは、Ruby言語用のパッケージ管理システムであり、Rubyのプログラムと(”gem” と呼ばれる)ライブラリの配布用標準フォーマットを提供している。gemを容易に管理でき、gemを配布するサーバの機能も持つ。Rubyバージョン1.9以降では標準ライブラリの一部となっている。

Railsってなに?

Railsはカンタンに説明すると、Webアプリケーションをカンタンに作れるためのツールだと思ってください。

Webアプリケーションを作ることが出来れば、非常にできることの範囲が広がります。

たとえば、iOSアプリやAndroidアプリの裏側にはWebアプリケーションがありますし、ありとあらゆるものの土台にWebアプリケーションがあります。

Webアプリケーション自体は、ほぼあらゆる言語で開発することができます。

しかし、プログラミング言語自体はWebアプリケーションだけを作るために設計されているわけではないので、効率がわるい点があります。

そこで、Webアプリケーションを開発するために設計されたものをWebアプリケーションフレームワーク、通称フレームワークと言います。

フレームワーク自体はプログラミング言語ではありません。フレームワークはある特定のことに特化した機能を集めたものです。

その理由は、最も先進的で安定しており、豊富なRubyGemsライブラリがあることで他のフレームワークに比べプロトタイプを作るスピードを早めることができるためです。

また、導入事例としては、TwitterGithub、国内だとCookPadなど非常にたくさんの導入事例があります。