つぶやき
技術系や雑感等は再編集して本文の記事にする事を前提としているので、こっちにLinkを張らないでください。
LDAP管理ソフトを探す
以前、(PHP LDAP Admin)のつぶやきを書いたが、その後状況が変わっていないかちょっと調べてみる。
- Admin4 どうやら、細々メンテナンスはされている模様。2年に1回くらいUpdateされているように見える
- Pythonなので、割と何でも動かせそう
- The Apache Directory Studio(TM) でかい。Java…
- Fusion Directory FreeBSDでも動かしている人はいるらしい。画面からでは理解しにくい…
- PHP+perl+いろいろ。ちょっと面倒そうな感じ
- LDAP Account Manager 悪くなさそうなんだけど、いまいち。商用版がある
- Accountの管理だけならおそらくこれでいい。FreeBSDのportsがある
- PHP LDAP Admin もう終わってるとおもう。2013年以降更新なし
- Self Service Password これは、ユーザーに公開するパスワード変更用のI/Fとしては良さそう
- FreeBSDのportsにある
こうしてみると、LDAP管理系のソフトが本当にない。Java使えばいいんだろうけど、管理がなぁ… ActiveDirectoryに行く気持ちがわかってきた…
古いの承知でPHP LDAP Admin使うのか?…Admin4かなぁ…
Microsoft Translator
迂闊にもMS Translatorがいけてることに気がついたので、ちょっと試してみる。
しかし、MicrosoftのSubscriction関連の設定は面倒だった。
- Microsoft Translatorのページを開く
- ここに色々情報がまとまっているので、頑張って見てみるといい
- Microsoft DataMarketのページを開き、右上からSign-Inする
- 登録がない人は、ここから登録すること。
- Skype使っていて移行した人はそのアカウントで良い。電子メールアドレスでも電話番号でも良い。
- Skype IDでloginした
- アプリケーションの登録ページを開き、必要な情報を入力する
- クライアントID: アプリケーションの識別子。他とぶつからない好きな文字列を入力
- 名前: アプリケーションの名前
- 顧客の秘密: 特に変更する必要はない
- リダイレクトURI: Microsoft Translatorの場合、無効なURLを入力すれば良い
- サブドメインアクセスを有効にする: オフのままで良い
- 説明: 登録内容の説明など
- クライアントID(client id)と顧客の秘密(client secret)は、APIを利用する際に必要になる。
- あとは、API使って普通に叩けばOK
Translator
何を血迷ったか、翻訳エンジンについてちょっとだけ調べてみたので、メモを。
かるーく(ゆるーく)調べた(ぐぐった)ところ、
- 英単語の平均文字数は 4.5文字とか5.1文字くらいらしい。まぁ、5文字と考えておけばいいか
- 英語1文章に含まれる単語数は、まぁ、色々違うらしい。
- カジュアルな文章で20単語位
- 一般的な文章で25単語位
- 新聞で20単語位
- 子供向け絵本で5単語位
ものすごく単純に RFC文書における単語数を数えて平均を取ってみると、52645文字、6718 単語と言われる。(7.836文字/単語) この数値は、単純にwcで見ただけなので、実際にはHeaderやFooter、Indexなどがある。 ちゃんと調べるのは単純に面倒なので、大雑把に考えて、平均で6500単語、8文字/単語くらいと近似できると 思う ので、1 RFCあたり5.5万文字と見ればそんなに外さないと思われる。
ちょっと面白かったのは、Plain English 読みやすさの指標(FKR/FKG/GFS)って一体何が基準なの!?の記事。 軽く眺めておくといいかも。
Google様で 翻訳 API で検索してみる
-
- 原則有料。
- 言語検出および翻訳に関しては 1万文字/$20
- RFCで考えると、
5.5万/1万*20 = $120として、$1=¥110とすれば、¥13,200位か。
- google翻訳知らない人は
googletranslateでぐぐれ
-
- 個人利用と法人利用(ビジネス利用)がある
- サービスとしても提供されている
- 200万字まで無料。(文字数であり、単語数ではない)
- RFCで考えてみると
200万/5.5万≒36だから、36本翻訳できる計算になる。- 個人の普段使いだと思えば十分だが、プロの翻訳者では少ないというあたりなんだろうな。
- それ以降は段階的に料金が上がる。値段表が出るページ
実質で使える翻訳APIはMSとGoogleしかなさそうだが、翻訳精度がよほど高くない限りGoogleは使えないなぁ。 MSの翻訳エンジン、textで流し込むぶんには結構いい翻訳精度だったし。
ただ、どちらの翻訳エンジンも文脈は解釈しない(できない)から、どうしたって人様が手をかけてやる必要は(いまのところ)ある。
sudoersの豆
sudoを使っていて、
- あるアカウントに対して
- あるコマンドの実行権だけrootで動かせるようにしたい
- その際、引き継いで欲しい環境変数がある
という難しい状況が発生することがある。まぁvulsなんだが。
こういうときには、sudoersに、こんな風に設定すればよい
vuls ALL=(ALL) NOPASSWD:/usr/bin/yum --changelog --assumeno update * Defaults:vuls env_keep="http_proxy https_proxy HTTP_PROXY HTTPS_PROXY"
これみて意味がわからなくて、manみてもわからなくて、ググれない人は、これ使っちゃダメですよw
FreeBSD 10.2にRedmineを投入
さて、これでrbenvも設定し、Rubyも2.3が動くようになったので、やっとRedmine 3.2のInstallへ。
- まず、必要そうなものを入れておく。
pkg install nginx ImageMagick mariadb100-clientgem install bundler –no-rdoc –no-ricurl http://www.redmine.org/releases/redmine-3.2.0.tar.gz > redmine-3.2.0.tar.gz '' - Redmineを実行するアカウントを作る * ここでは、redmineとする - Redmineを/usr/local/wwwに入れる * ''mkdir /usr/local/wwwcd /usr/local/wwwtar xzf redmine-3.2.0.tar.gzln -s redmine-3.2.0 redmine
- Redmineの初期設定を行う
cp redmine/config/database.yml.example redmine/config/database.ymlvi redmine/config/database.yml- 書き換えるのは、productionの部分だけで良い
production: adapter: mysql2 database: redminedb host: xxx.xxx.xxx.xxx username: redmine_user password: "UltraSecret" encoding: utf8
- RubyのGemを入れる
- 今回はUnicornで動かすので、一手間かける。
- vi redmine/Gemfile.local
gem "unicorn"
bundle install –without development test postgresql sqlite
- Redmineの初期設定を実行
sudo -u redmine /bin/shbundle exec rake generate_secret_tokenRAILS_ENV=production bundle exec rake db:migrateRAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
- Webrickでの試験
- Rails 4.2以降、Webrickで通信を待ち受ける場合、defaultではlocalhostしかListenしなくなった。
- ruby bin/rails server webrick -e production -b xxx.xxx.xxx.xxx と-bを指定してやれば、その引数のアドレスでListenするようになる。
- NGiNXとUnicornの設定
- /etc/rc.conf に nginx_enable=“YES”を追加
- Unicornを設定
- unicorn設定ファイル内after_fork内でuser,groupをredmine:redmineに設定しているので注意
- ぐぐると、Process ownerのchown関係がちゃんと動かない(worker.userがなかった頃の)unicorn.rbが引っかかるので注意
- vi redmine/config/unicorn.rb
# cat config/unicorn.rb # -*- coding: utf-8 -*- # Unicorn Configuration File for Redmine # http://unicorn.bogomips.org/examples/unicorn.conf.rb $unicorn_user = "redmine" $unicorn_group = "redmine" @dir = "/home/www/rrrm.rusty-raven.net/redmine" working_directory @dir worker_processes 2 listen "/var/run/unicorn_rrrm.sock", :backlog => 32 # listen 8282, :tcp_nopush => true timeout 30 pid "/var/run/unicorn.pid" stdout_path File.expand_path("log/unicorn.stdout.log", @dir) stderr_path File.expand_path("log/unicorn.stderr.log", @dir) preload_app true check_client_connection false before_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! old_pid = "#{server.config[:pid]}.oldbin" if old_pid != server.pid begin sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU Process.kill(sig, File.read(old_pid).to_i) rescue Errno::ENOENT, Errno::ESRCH end end end after_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection begin worker.user($unicorn_user,$unicorn_group) rescue => ex STDERR.puts "could not change user, oh well" STDERR.puts ex.to_s raise ex end end # - sudo unicorn_rails -c config/unicorn.rb -E production -D でunicornが起動する。
- NGiNXの設定
- NGiNX.confを修正する
upstream REDMINE { server unix:/var/run/unicorn.sock; } server { listen 80 sndbuf=16k server_name redmine.example.net; location / { proxy_pass http://REDMINE; } }
これで、とりあえず、Redmineまでは動くはず。
