カテゴリー
DIY

コーナー用テレビ台のベビーガード

うちのテレビは部屋の角に置いているが、9か月の子供がテレビをバンバンたたくようになって、一部液晶が白っぽくなってしまった。

これ以上たたかれると視聴が困難になるので、ベビーガードを作ることにした。

作ったベビーガード。ただこれでは嫁の許可が下りず最終系は一番下に。
途中経過は省くが、こういうのを作って、合わせて完成
1x4材を4本使っている。この時点での費用は1400円ぐらい。
横は90cm、高さは48cm
わかりにくいがL字に合わせたところ。裏から見た図。
大量のネジとともにL字の金具なども使って丈夫にしている。

これで完成と思いきや、設置したら息子の力でも簡単に滑ってしまう。
100均に行ってマットの滑り止め4枚入りを2個買ってくる。

ペタペタと6枚貼ってこんな感じ。
不安だったが、意外に効果があり、息子の力では滑らなくなった。

嫁さんが角が危ないというので、上はタオルをかけて、足の部分は西松屋で買って忘れてしまいこんでたガードをつけて完成。

最終系

まあタオルは再利用するとして、だいたい2000円ちょっとぐらいの費用と思われる。木材の調達から作成まで3,4時間ぐらいかかった。塗装はなし。

タオルで隠れているが、真ん中が開いていて、そのうち子供が足かけて登りそう。次に作ることがあったら、壁はすのこ状にして足かけたりできないようにするかな。。

カテゴリー
DIY

隙間ガード

8か月の息子がコンセントに指を突っ込まないか嫁さんが心配しているので、100均やらアマゾンやらでコンセントガードを買って使ってみたが、小さいのは、つまんで取るし、両面テープで貼るタイプのものは、後ろのカバーごと引きはがしてしまう。

あの細い豚さんの鼻みたいなところに、息子の指が入るとは思えないので、放置していたのだが、テレビなどのコンセントをつなげっぱなしのところは危ないのでDIYで対応。

幸運なことに、うちのコンセントつなげっぱなしで危なそうなところは1か所のみ、以下のような隙間である。

ここをガードしてしまえば良いので1x4材で枠を2つ作ってつなげてはめてガードにした。

こんな枠を2つ
つなげてこんな感じ。
奥のほうはコンセントがぶつかるのでコの字型の枠。
よよよと挿入
だいたいぴったし。

ガード入れる前は隙間に手を突っ込んだり、コード引っ張ったりで大変だったが、ガード入れてからは興味を失ったぽいので、とりあえず成功かな・・。

費用は1x4材2枚で600円ぐらい。

カテゴリー
社内SE

Pear Mailで送信したファイルを 送信済みフォルダに設置する。

IMAPで使用しているメールアドレスを使ってメールを送信し、送信したメールを送信済みフォルダに入れたい事案があった。
解決方法がググっても出てこなかったので、自己解決。

基本的には、PHPのPear Mailで送信し、送信したデータをIMAP関数で送信済みのフォルダに設置する。

以下ソース。送信の細かいところは省略。

include_once("Mail.php");
include_once("Mail/mime.php");

mb_language("uni");
mb_internal_encoding("UTF-8");

// 宛先とヘッダーとボディを作る。省略。以下mimeの例
$mime = new Mail_mime();
$mime->setHTMLBody('something<br />anything');
$body = $mime->get(array(
  'text_encoding' => '7bit',
  'text_charset' => 'UTF-8',
  'html_charset' => 'UTF-8',
  'head_charset' => 'UTF-8'));
$headers = $mime->headers(array(/*省略*/));
$recipients = array(/*省略*/);

// メール送信
$mailObject = Mail::factory("smtp", Array(/*省略*/)); 
$send = $mailObject->send($recipients, $headers, $body);
if (PEAR::isError($send)){ return 'Mail send error! ' . $send->getMessage(); }

////////////////////////////////////////////////////////////////
// IMAPフォルダに設定。

// 送信済みフォルダに設置するデータ作成
$message = '';
foreach($headers as $key => $value){
  $message .= $key . ': ' . $value . "\r\n";
}
$message .= "\r\n" . $body;
// 設置フォルダー
$folderName = '送信済み'; // 自分のIMAPの送信済みフォルダ
$encodeFolder = mb_convert_encoding($folderName, 'UTF7-IMAP', 'UTF-8'); // エンコード
// imap_openの説明を読んで。SSLならポート以降を:993/imap/ssl
$path = "{imap.hogehoge.com:143/imap/notls}INBOX." . $encodeFolder;
$imapStream = imap_open($path,'username@hogehoge.com','password');
if ($imapStream === FALSE){ die(); }
$result = imap_append($imapStream, $path, $message, "\\Seen");
if ($result === FALSE){ die(); }
imap_close($imapStream);

/* end */

以上

カテゴリー
社内SE

cordova-plugin-buildinfoのiOSでDebugがfalseになる。

Cordovaのplugin cordova-plugin-buildinfoを利用した際に、iOSでdebugビルドしても”BuildInfo.debug”がfalseになって困っていたところ、以下の方法で解決できたので、備忘録として残しておく。

1)プラグインのバージョンを4.0以上に上げる。
関係ないが、4.0以下だと「このプラグインのせいでiOSのアプリが異常に遅くなることがある」との投稿があったので、とりあえず4.0以上に上げた。

2)XCODEでプロジェクトを開きBuild Settingsから以下2点を変更する。

・Apple LLVM 9.0 – Preprocessing -> Preprocessor Macrosの下にdebugという項目があるので、そこに”DEBUG=1″を追加する。(”Macros”で設定項目を検索するとすぐ見つかる)
・Swift compiler – Custom Flags -> Other Swift Flags
の下にdebugという項目があるので、”-D DEBUG”を追加する。
(”Swift”で設定項目を検索すると見つかる。)

※XCodeプロジェクトの開き方は、Cordova環境直下の./platforms/iosの下に拡張子”.xcworkspace”のファイルがあるのでこれを開く。同じようなファイルで拡張子”.xcodeproj”があるが、こちらではないので注意。

これで、デバッグビルドの場合のみ[BuildInfo.debug]がfalseとなった。

カテゴリー
社内SE

qmail メール送信時エラー( TLS connect failed )までが長い

qmailでメール送信後、数日してから「メールが送信できなかった」とのエラーメールが返ってくるとの相談があった。

エラーメールの内容はだいたい以下のような感じ。

Hi. This is the qmail-send program at xxxxxxxx.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

XXXXXXX
TLS connect failed: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1
alert protocol version; connected to xxxxxxxxx
I'm not going to try again; this message has been in the queue too long.

以下のような場合もある。
LS connect failed: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3

どうも相手先のサーバに接続できなかった場合、延々とリトライをしているようだ。
設定を調べてみると、設定ファイル「/var/qmail/control/queuelifetime」に秒数を設定するとその時間以上はリトライをしなくなるらしい。デフォルト値は7日(604800)であった。送れなかったらさっさとエラーを返してほしいが、デフォルト値が長いのにあまり短くするのも怖いので、とりあえず1時間(3600)を設定した。

vi /var/qmail/control/queuelifetime
---
3600
---

ファイルには数字のみ記入する。再起動が必要なので以下をして終了。

qmailctl stop
qmailctl start

qmailctl restartはプロセスが残ってしまうので当方環境ではNGだった。

カテゴリー
社内SE

PDFを印刷した際に一部のページでフォントがおかしくなる

「フォントがおかしい」1年に数回はこの厄介な質問を受けます。今回も、「PDFを印刷したら、XXページ目のフォントだけ違う、何とかしてくれ」という問い合わせが来ました。

該当のPDFを表示した段階では全く違いがわからなかったものの、印刷後の紙で確認すると確かに一部のページで若干文字が濃くなっている感じがします。

PDF自体はシステムから出力していて、特定のページでフォントを変えるような処理はしていませんし、そのシステムを組んでから数年、そんな質問が来たことはありませんでした。

「印刷機の可能性が高く、どうにもなりませんよ。」と回答しかけたところで、思いあたりました。

「PDFを表示するソフトのせいか」

試してみると、Windows 10の旧EdgeでPDFを表示し印刷した時だけ特定のページでフォントがほんの少し濃くなります。Adobe ReaderやChromeで表示、印刷したときは大丈夫なので、旧Edgeが原因なのは間違いなさそうです。

なので「面倒だけど、Edgeで表示したPDFをダウンロードして、それからChromeで表示して印刷してください。」と回答して終わりです。

まあ、面倒だからEdgeで印刷するのでしょうけど。。

カテゴリー
FreeBSD

sshやtelnetでログインしたまま、ターミナルを閉じてしまった場合の対処方法

掲題ままですが、残った仮想端末のプロセスを削除する方法を書いておきます。通常、ターミナルを落としたら、プロセスも消えるのでこのような状況にはならないのですが、不安なときの確認にもなるので。。。

  1. ターミナルから切断したユーザでログインし、以下のコマンドを打ち、現在の仮想端末の番号を確認します。
    > who
    以下のような結果が出ます。
    taro  pts/0 6月 16 04:52 (xxxxxx.or.jp)
    taro  pts/1 6月 16 04:56 (xxxxxx.or.jp)
    最も新しくログインしたものが自分なので、ここではpts/1が現在のターミナルです。
     
  2. そのまま以下のコマンドを実行し、仮想端末のプロセスを探します。
    > ps -aux | grep `whoami`
  3. 以下のような結果が表示されます。
    root 27048 0.0 1.4 20428 7976 - Is 04:52 0:00.02 sshd: taro [priv] (sshd) 
    taro 27050 0.0 1.4 20432 8008 - S 04:52 0:00.02 sshd: taro@pts/0 (sshd) 
    root 27124 0.0 1.4 20428 8012 - Is 04:56 0:00.02 sshd: taro [priv] (sshd) 
    taro 27126 0.0 1.4 20432 8036 - I 04:56 0:00.00 sshd: taro@pts/1 (sshd) 
    taro 27051 0.0 0.5 12628 2880 0 Ss 04:52 0:00.01 -sh (sh) 
    taro 27132 0.0 0.4 12324 2636 0 R+ 04:57 0:00.00 ps -aux
    
  4. 古いプロセスをkillします。
    kill 27050