投稿

メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバはVPS上に構築していた。 ・Ubuntu Server ・Postfix ・Dovecot ・spamAssassinと、BlackListの利用 Spam対策を行ってきたし、サーバ上でメールをトリガーにして各種プログラムを動かしたりしてきた。 メールサーバのメンテナンスは結構面倒くさくて、  ・Disk容量のチェック  ・不正アクセスのチェック  ・各種セキュリティパッチの適用 など、手間がかかる。 そこで、外部のサーバを利用することに…。 結構安くて使い勝手の良さそうなのが、「さくらのメールボックス」 3年契約で、3070円とな…。  メールアドレスは自分のだけなので、20GBまで利用可能!  (Gmailより大きいねぇ) ということで、早速契約。 アカウント設定を行って、既存のDNSを書き換える。WHOISも書き換えて完了。 SMTPとIMAPが利用できればOK。 ちょうど、GoogleがSPF設定していないと受信しないし、DKIMおよびDMARCに対応していないメールを弾くようになったので、対応しているのを確認。 さくらサーバ自体は、これまでお客さんのサーバとして何件も利用しているので、利用方法も難しくはない。  Webメールにも対応しているので、いざという場合にもありがたい。 ということで、各メールソフトの設定を変更。  PC(常時使用する3台)とタブレット、スマートフォンと台数は多いがそれ程手間はかからない。 問題は、旧サーバで送受信したメールの履歴だけれど、これはThunderbrdを使ってローカルに保存することで回避。  本当は、サーバtoサーバでMailboxに残そうとも考えたんだけど、古いメールはそれ程必要ないし、ローカルにバックアップしてあれば凌げるので、良しとする。 移行時にDNSの反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

LibreOfficeでconvert

イメージ
WEBシステムでの帳票出力 今回の案件で、案外苦労したのが最終的な帳票出力。 WEB系なので、方法が限られている。 CSVダウンロード→Excelのマクロ→PDF という仕組みで、一部動かしてみた。 でもExcelのマクロが案外遅いのと、VBAが思いの外、面倒くさい。 で、良い方法がないかと探っていたのだけれど、LibreOfficeがxlsx→pdfやdoc→pdfに使えるらしいので、試してみる。 クラウドマシンでXをどうするか とりあえず、sshでいつものように入り込んで作業する。 # yum install libreoffice libreoffice-langpack-ja でサックリと入る。 色々と調べると、XやDesktop、GNOMEかKDEを入れろという。 必要であればVNC Serverも? うむむ、何だか完全にDesktop環境を構築しないといけないのか?と思いつつも少し作業を行う。 一通り、入れて試しに動かしてみるが、案の定エラーが出る。 X11 error: Can't open display:     Set DISPLAY environment variable, use -display option     or check permissions of your X-Server     (See "man X" resp. "man xhost" for details) はいはい、Xの設定はしていないですよ。 でも、もともとサーバマシンだし、Xなんてリモートでしか使わないけど、今回はX無しでLibreOffice使いたいわけだし…。 どうしようか困りながらも、あちこち読み進めてみる。 https://www.centos.org/forums/viewtopic.php?t=21514#p100991 ここに、ありました。 By searching the web I found a WIKI entry at alfresco saying that there  needs to be installed a package  called

Android 6.0 Marshmallow インストール

イメージ
気づいたら通知が出ていた そろそろとは思っていたけれど、通知が来ていたので速攻で入れてみた。 (作業は7日にやったのに、更新したのが下書きのままになってた…) その前に、更新前の状況。 Nexus7(2013のLTEモデルです) Android 5.1.1 で、案内画面がこれ。 結構なサイズですが、ストレージには余裕があるので、問題なし。 45分程度らしいので、他の仕事をしながら放置。 更新中はキャプチャー出来ないので、iPhoneで手持ち撮影。 いつものDroid君が頑張っています。 OS自体はサクッと終わったのに、その後端末に入っているアプリの最適化に時間がかかったのです。  新規のアプリのない状況なら、結構早く終わったかもしれない。  完了後のバージョンです。 Android 6.0と表示されてます。どこにもMashmallowとは表示されていないのは、これまでと同様。 これが、ホーム画面。  何となく、Macっぽい感じになった? レスポンスは悪く無いです。  最初の告知程度の時間がかかったのだけれど、案外表示通りの作業時間であったことに驚く。相当テストしたんだろうね。 しばらく使ってみて  早速使ってみるけれど、これといって、おかしくなったような感じはしない。 Deep Sleepするからバッテリーの持ちが良くなるような記事も見たけれど、もともと夜になれば結構深く眠らせているので、それ程バッテリーのもちが良くなったような気はしない。  スリープ復帰後、たまにタッチもキーも反応しない状況になることが2度ほど発生。 再起動は可能だったので、それで復旧。  Nexusにはゲーム類を入れていないので、そちらの報告はできませんが、それ以外のツール類は今のところ問題なく動作。  もちろん、随時更新しているので、実際には不具合もあったかもしれないけれど、気付かない。  ホームボタン長押しでの、勝手に検索してくれる機能は、今のところ利用していない…。というか、タブレットでそんなに検索しないし。  基本的には、クラウド上に保存してある資料やらデータの確認、sshでサーバに接続して操作、あとはニュースと

MacのExcel 2011でCSVを吐く

久々にハマったので… 開発中のシステムのDBを修正するのに、CSVでダウンロード→CSVでアップロードという流れになりました。 そこで、実際にテストを行ってみたものの、どうもおかしい。 なぜかアップロード時に、うまくデータが読めていないようなのだ。 その旨、連絡した所、他の環境では発生しないという。 そこで、こちらがダウンロードしたデータと、EXCELで開いて保存したデータをメールで送る。  ダウンロードしたデータは、システムに喰わせても問題ない。一旦開いて保存したものはエラーになる。  ところが、メールを受け取った仲間の環境では、問題が置きないという。????? こちらの環境の問題か?と思い、先ほどのEXCELで保存したcsvを仮想マシンのWindows上からシステムに喰わせるが、相変わらずエラーになる。  念のため、ブラウザを変更し、chrome/Firefoxなどでも試す。全滅。 Andoroid上のから、試すも同じようなエラーが出る。 ということは、システムの問題か?と疑うが、誰もエラーにならないという。 そこで、向こうで同じ条件でデータを吐き出し、更新可能なデータを送ってもらう。 パッと見は同じ。 diffでチェック とりあえず、こちらから送ったデータと、向こうから来たデータをdiffで確認。 全く同一だ。 バイナリエディタで確認 次は、 $ od -h a.csv > a.txt $ od -h b.csv > b.txt  とコードに置き直して、これでdiffってみる。  明らかに途中から違う。  念のため、od -c a.csv なんかで確認すると・・・。¥r ¥n と書いてある。はっ! 気付けば簡単 もうここまでくれば、明らか。 改行コードが違うのだ。 php側では、¥rのみを改行と認識していないため、次行を継続して読み込む。 当然フォーマットが合わないので、アウト。 なぜ、他の環境でエラーにならないのかを検証。 OS Office csv改行コード Windows7 Excel 2013 CR+LF Mac OS X Yosemite Excel 2011 CR そう、Mac 上のExcelはLegacyな改行コードを吐いてくれる

geekでお買い物

イメージ
Amazonもいいけれど 確かにお世話になっています。楽天よりもAmazonに完全にシフトしています。 犬の餌も夕方に発注すれば、翌日の昼過ぎには届きます。 車で移動し、駐車場を探してウロウロ、重い荷物を持って…。 なんて必要もなく、とっても便利で価格も十分安い。 でも、この買物にはワクワク感というか、裏切られるかもということもなく、安全なお買い物ですねぇ。 でも、何となくドンキに行くとか、キンブルに行くという感覚の買い物もたまにはいいかな…。なんて思って、使い始めたのがgeekというアプリ& サイト 。 ハッキリ言って怪しい 商品数も多いし、価格もかなり安い。 ほぼ産地は中国ですな。 注文すると3週間程度は普通にかかります。 (もちろん、いろんなオプションもあるし、船便じゃないものもある) ということで、試しに注文してみた。 デザインは秀逸。使い勝手は不明。 価格は黒が121円、他の色は241円とな。それぞれ121円の送料が発生するらしい。 娘が欲しいというので、黒×1とピンク・ブルー・グリーンを各1購入してみた。 合計で1,328円 オーダーが通ったのが9月16日。 一応、アプリで状況も把握できるようになっているし、返品も可能なので、面白そう。 こんな感じで、ステータスが分かるようになっている。 もちろん、Webでもアプリでも同じ情報が表示される。この辺りはしっかりしている感じ。 ついに到着 注文したのが9月16日で、本日到着しました。 国際小包と書いてありますが、封筒サイズです。裏側には商品名などの情報が。 開けてみると、注文した4つが一緒に入っています。 4つまとめて、送ってきたのに、送料は4個分かぁ。 損はしていないけど、気持ち損した感じ。 商品は、思ったより質感もよく、音もまずまず。 子供たちはそれぞれカラフルなものを選んで、残ったのは黒のみ。 まぁ、面白い商品を探すなら、ここも良い感じです。 本当に商品が届くのか? 届いた商品が動作するのか? というワクワク感はありますょ。

Perl ScriptのEXE化で苦戦

イメージ
exeの生成が必要 以前(随分前だけど)やったことが、あったので楽勝と思ったら、意外なところで躓いたのでちゃんと記録しておく。 基本的にスクリプト言語であるPerlのコードはテキストファイル。 Perlの実行環境さえあれば、ほぼ動く。  LinuxやMacなら最初からperlが入っているので、何も考えることはない。 じゃ、windowsのように実行環境がない場合はどうするかというと、 Perlを動かせるようにインストールする(ActivePerlで簡単に入る) exeファイルにして、実行する。(ファイルが巨大になる) 諦める と、これくらいしか選択肢がない。 今回は、作成したスクリプトを、Perl実行環境のない端末で何台も動かすことになりそう。 でもって、それぞれの端末にPerlをインストールして、pmなどのライブラリを揃えてというのが、メンテナンス上大変になりそう。 となると、2.のexe化を検討するしかない。 環境準備1 まずは、新しいVMを用意して、ActivePerlのインストールから始める。 ActiveStateに行くと、 ActivePerl-5.20.2.2002-MSWin32-x86-64int-299195.msi が最新らしい。随分とバージョンが上がってるなぁ…。 早速インストール→数分で完了。 コマンドプロンプトから、 cpan install PAR::Packer で、exe化に必要なモジュールをインストール。 まっさらな状態からのインストールなので、若干時間がかかるけれど、無事終了…。 あれ?無事終了しない。Error吐いてる。 main.c: In function 'main': main.c:121:23: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] windres -i winres/pp.rc -o ppresource.coff --input-format=rc --output-format=coff --target=pe-i386 '

sed:改行含む文字列への置換

少し苦戦した… すでにコンテンツのあるサイトのドメイン移転とサーバ変更、管理の委託を依頼されて作業を行う。 ドメイン移管 サーバの変更 コンテンツの設置 メールアカウントの設定 以上は、問題なく完了。 さて、あとはコンテンツの修正。 アクセス解析に Google Analytics を利用するのだけれど、これまでの業者さんは未設置。 そこで、各ページに仕込む必要があるけれど、いちいち修正するのはさすがに面倒。 なにせ30ページ程のhtmlが2つもある。 こんな時は、sedの登場ですな。 まずは、jsフォルダを作成。 以下のような内容のg_ana.jsを作成。まぁ、ここまでは、Google Analyticsの吐き出すコードをほんの少し変更するだけでOK   ( function (i,s,o,g,r,a,m){i[ 'GoogleAnalyticsObject' ]=r;i[r]=i[r]|| function (){   (i[r].q=i[r].q||[]). push (arguments)},i[r].l= 1 * new Date ();a=s. createElement (o),   m=s. getElementsByTagName (o)[ 0 ];a.async= 1 ;a.src=g;m.parentNode. insertBefore (a,m)   })(window,document, 'script' , '//www.google-analytics.com/analytics.js' , 'ga' );   ga ( 'create' , 'UA-xxxxxxxxx' , 'auto' );    ga ( 'send' , 'pageview' ); でもって、こいつを読み込むように各htmlに書き込む。 とりあえず、</head>の前に設置すれば良いので、 <script type="text/javascript" src="

BIC SIM契約やっと完了

移行計画進行中 前回、Softbank→DMMへと自分の契約は移行 して、快適に利用している。 今回は、相棒の契約を見直す流れです。 サクッと手続きをと思ったんだけど、結構手こずりました。 毎月の使用量を数ヶ月計測させた所、たまに1GB/月を超える程度で、ほぼその枠内に収まっている。 そこで、自分同様Softbank→DMM計画を進めることに。 細かなヒアリングをすると、 番号は変えたくない→MNPしかない→(速攻でSoftbankにてMNP予約番号を取得) iPhoneがいい→中古でDocomo製を入手か? キャリアメールは無くてもいい LINEの設定とゲームのデータだけは移行したい まあ、最後の2つは問題ない。 すでにDMMを使っているので、調べてみると DMM mobileでのMNP転入は新規お申し込み時に1回線のみご利用可能です。 ※シェアコースの場合も1回線のみご利用可能です。 ※SIMカード追加の際には利用できません。 そうですか…。シェアして使う予定が…。 じゃあ、もう1回線契約するかと思ったら DMM mobileのお申し込みはお一人様1契約までとなります。あらかじめご了承ください。 ぐはぁっ。 しょうがない、嫁の名義で契約するか〜と思ったら ご利用中の携帯電話会社に登録しているご契約者の情報、DMM mobileへの登録情報、本人確認書類に記載された情報はすべて一致している必要があります。 移転元の契約名義でお申し込みいただくか、移転元の契約名義をご変更の上、お申し込みください。 げふっ! 手詰まりになりました。 もう一度Softbank Shopで名義変更して、MNPの手続きなんてしたくない! 仕方ない。以前使ってたOCNで契約するか?と思ったけれど、毎日110MBも使わないけど、多い日は超えるらしいので、3GB/月契約にするか…。1800円/月かぁ。 と思って迷った挙句、どうせ3GBならBIC SIMの方が安いし、カウンターで即日契約・移行ができるので、BICにけて〜い。 音声対応SIMなので1,600円/月となりますな。 電話機本体もゲット(これはこれで、問題があったのだが、詳細はそのうちに)しているので、BICカメラの