E7の第一ゲージをやっている
これが
14!?
耐久度80で、北上様カットイン出たら、普通撃沈じゃろ。
こんなのクリアできねーよ。
クソゲー。

I know who Iam.
新しい無線LANルータの環境になったので、IEEE802.11nで接続したら、今までIEEE802.11g の 56Mbps だったRaspberry pi3 のWifi も高速化できるかなと思って、新無線LANルータ用に接続設定を作成。
繋いでみたが、72.2Mbpsになる。
IEEE802.11nって150Mbpsとかじゃないの? なんで? と色々調べたら、謎が解けた。
実は、今までIEEE802.11nを詳しく理解して居なかったのだが、「IEEE802.11nとは」を読んだら分かった。物によって、150Mbpsだったり、300Mbpsだったり、600Mbpsだったりするのはボンディングとストリーム数が関係する訳ね。
安物の無線LANドングルだと、1ストリームの40MHzの帯域幅で 150Mbpsくらい。
Raspberry pi3 は Broadcom の BCM43430 で、今どきありがちな安物Wifi の firmwareドライバをPCで制御するSDIO方式。
性能的には、150Mbpsくらい行けるはずなのだが、
/lib/firmware/brcm/brcmfmac43430-sdio.txt の先頭には次の文言がある。
# NVRAM file for BCM943430WLSELG
# 2.4 GHz, 20 MHz BW mode
2.4GHz の 20MHz Band Width modeって、要は 72.2Mbpsが最大速度な訳ね。
1ストリームでも40MHz使えば、150Mbpsまで速度アップが見込めるから、今後のlinuxのfirmwareの更新に期待しよう。
結局、micro SDが壊れてたっぽい。
正常起動確率50%位でだましだまし動かしてたが、新しいmicro SDにしたら起動確率100%になった。
二年位で寿命とは情けない。とはいえ、/var/log に毎日ゴリゴリ書き込んでるんだからしょうがないか。
そこで!
こいつの出番。
/etc/init.d/ramdisklog を作成。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
#! /bin/sh ### BEGIN INIT INFO # Provides: ramdisklog # Required-Start: $local_fs # Required-Stop: $local_fs # X-Start-Before: $syslog # X-Stop-After: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Use ramdisk log tmp # Description: Debian init script for the ramdisklog log&tmp move to # ramdisk ### END INIT INFO # # Author: Yuji Noizumi <webmaster_at_noizumi.org> # PATH=/bin:/usr/bin:/sbin:/usr/sbin . /lib/lsb/init-functions case "$1" in start) mkdir -p /mnt/tmp mkdir -p /mnt/var/tmp mkdir -p /mnt/var/log mount -t tmpfs /dev/shm /mnt/tmp mount -t tmpfs /dev/shm /mnt/var/tmp mount -t tmpfs /dev/shm /mnt/var/log /usr/bin/rsync -a /var/log/ /mnt/var/log mount --bind /mnt/tmp /tmp mount --bind /mnt/var/tmp /var/tmp mount --bind /mnt/var/log /var/log chmod -R 1777 /var/tmp chmod -R 1777 /tmp log_daemon_msg "Moved log&tmp to Ramdisk" "ramdisklog" log_end_msg $? ;; stop) log_daemon_msg "Write back Ramdisk log to /var/log" "ramdisklog" umount -l /tmp umount -l /var/tmp umount -l /var/log /usr/bin/rsync -a –delete /mnt/var/log/ /var/log log_end_msg $? ;; force-reload|restart) $0 stop $0 start ;; *) echo "Usage: /etc/init.d/ramdisklog {start|stop|restart|force-reload}" exit 1 ;; esac exit 0 |
ramdisk 作って log コピーして、その ramdisk を bind で/var/logに被せるというしくみ。
# insserv ramdisklog
ついでにswapも無効化
# insserv -r dphys-swapfile
# reboot
で完了。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
root@raspberrypi:~# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/root 28G 8.2G 19G 31% / devtmpfs 458M 0 458M 0% /dev tmpfs 462M 0 462M 0% /dev/shm tmpfs 462M 6.3M 456M 2% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 462M 0 462M 0% /sys/fs/cgroup /dev/mmcblk0p6 63M 22M 42M 35% /boot /dev/shm 462M 0 462M 0% /tmp /dev/shm 462M 0 462M 0% /var/tmp /dev/shm 462M 1.4M 461M 1% /var/log tmpfs 93M 0 93M 0% /run/user/1000 |
マウント状況はこんな感じ。
NTT西日本のポイントが3末で3000ポイント無効になるというので、8000ポイントでWiFiルータ貰った。
前に使ってたのが、AirStation WHR-AM54G54で、MAX 54Mbpsだった。
今度のはカタログスペックだと、867Mbps+300Mbpsとなっているが、対応機種を持っている訳ではないので、IEEE802.11acの2ストリーム867Mbpsが最大。
DELL Venue8 Pro 5855がIEEE802.11ac 2ストリーム対応だが、近くで接続してるのに、780Mbps 位にしかならなかった。まあ、それでもAterm mr03lnの二倍なので、文句は無い。
ブリッジモードで使用しているのだが、AirStationとかだと固定IPになるのが、こいつはなぜかDHCPクライアントが動いていて、ルータからIPアドレス貰いやがる。管理画面呼び出すのが面倒なので、ルータの方で手動割り当てにして、IPアドレスを固定化した。
Aterm WG1200HSって多分型落ちしてると思うけど、今まで使ってたのに比べても速いから最新型で無くても気にしない。何せタダだし 🙂
Gmailの「すべてのメール」のフォルダのメールを新しい順に200通取り出して比較し、メールが存在する方に○、存在しない方に×を表示するプログラムを作った。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>メールチェック</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta name="generator" content="Geany 1.23.1" /> <style type="text/css"> table { table-layout: fixed; word-wrap: break-word; width:100%; border-collapse: collapse; } table, td, th{ border: 1px #000000 solid; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } </style> </head> <body> <table> <tr><th style="width:250px">送信者</th><th>タイトル</th><th style="width:200px">時刻</th><th style="width:50px">主</th><th style="width:50px">副</th></tr> <?php $master_mbox = imap_open('{imap.gmail.com:993/imap/ssl}[Gmail]/&MFkweTBmMG4w4TD8MOs-', 'master@example.com', 'MasterPassword', OP_READONLY) or die("接続できません: " . imap_last_error());; $slave_mbox = imap_open('{imap.gmail.com:993/imap/ssl}[Gmail]/&MFkweTBmMG4w4TD8MOs-', 'slave@example.com', 'SlavePassword', OP_READONLY) or die("接続できません: " . imap_last_error());; $MC = imap_check($master_mbox); $m_max = $MC->Nmsgs; $m_min = $MC->Nmsgs - 200; if ($m_min < 0) { $m_min = 1; } $MC = imap_check($slave_mbox); $s_max = $MC->Nmsgs; $s_min = $MC->Nmsgs - 200; if ($s_min < 0) { $s_min = 1; } $master_result = imap_fetch_overview($master_mbox, $m_min . ':' . $m_max); $slave_result = imap_fetch_overview($slave_mbox, $s_min . ':' . $s_max); $mmsg_ids = array(); $mdates = array(); foreach($master_result as $key=>$overview){ $mmsg_ids[$overview->message_id] = &$master_result[$key]; $mdates[$overview->message_id] = strtotime($overview->date); } $smsg_ids = array(); $sdates = array(); foreach($slave_result as $key=>$overview){ $smsg_ids[$overview->message_id] = &$slave_result[$key]; $sdates[$overview->message_id] = strtotime($overview->date); } $dates = array_merge($mdates, $sdates); $msg_ids = array_merge($mmsg_ids, $smsg_ids); array_multisort($dates, $msg_ids); $msg_ids = array_reverse($msg_ids); foreach ($msg_ids as $message_id=>$overview) { $mmark = '×'; $smark = '×'; if(isset($mmsg_ids[$message_id])){ $mmark = '○'; } if(isset($smsg_ids[$message_id])){ $smark = '○'; } $subject = imap_utf8($overview->subject); $date = date('Y/m/d H:i:s', strtotime($overview->date)); $from = imap_utf8($overview->from); $subject = htmlspecialchars($subject); $from = htmlspecialchars($from); echo "<tr><td>{$from}</td><td>{$subject}</td><td style='text-align:center;'>{$date}</td><td style='text-align:center;'>{$mmark}</td><td style='text-align:center;'>{$smark}</td></tr>\n"; } imap_close($master_mbox); imap_close($slave_mbox); ?> </table> </body> </html> |
array_column()が使えれば、もっとシンプルに書けるけど、オブジェクトのキー検索が使えるのは、PHP7以降なんだな。
ちなみに php5-imap が必要。
Ubuntu 14.04に php5-imap入れて、メールを抽出しようと思って、Message-Id で抽出できるかと思ったらできない。
Subject 検索も取り出したメールのSubject を imap_utf8()掛けてimap_search()で検索してもUTF8のMIMEエンコードされているとSubjectが一致しない。
日時で一致するものを抽出しようとして ON のキーワードを使おうとするも、日付は見てるけど、時間は見てないし、タイムゾーンが勝手にlocalになっているのか、+6:00 とかが引っ掛からない。
多分、英文だったら結構使えるのかもしれないけど、MIMEエンコードが絡むメールだと検索が凄く弱い。
IMAPって使えると思ってたけど、意外と駄目なのねん。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
root@silverfox:~# apt-get install php5-imap パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: libc-client2007e mlock 提案パッケージ: uw-mailutils 以下のパッケージが新たにインストールされます: libc-client2007e mlock php5-imap アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。 628 kB のアーカイブを取得する必要があります。 この操作後に追加で 1,535 kB のディスク容量が消費されます。 続行しますか? [Y/n] root@silverfox:~# php5enmod imap root@silverfox:~# service apache2 restart |
製品を「高くて買えない」と言っていたお客さんが「カスタマイズする」と言い出し、見積もりしてくれと言われた。
しかし、個人専用にカスタマイズするってのは、凄くお金が掛かるという理解は無かったようで、元の製品の8倍の価格の見積もり出したら、それ以後返事がない(笑)
親戚のおっさんがわしに「経理ソフト作ってくれ」とか言ってた事があったが、SI屋にそんなもん作らせたら、数百万かかるって分かってねーんだろうなあ。
恐らく、数万円の経理ソフトが高いから親戚のプログラマに安く作って貰おうと思ってたのだろうが、原価回収が終わったソフト資産を持っているならともかく、ゼロから作らせたら高くなる。
経理の経験から言うと、月給30万の奴を1ヶ月拘束したら、会社は社員に社会保険料含めて、だいたい給料の3倍の額を払わないといけないから、1ヶ月の工期のカスタマイズだと、この場合、最低90万円〜となる。
この場合でも会社に利益が全く無い訳だから、上乗せする事になるが、一応、利益確保できる金額で見積もるのは良い事だ。
前に居た会社なんか、1時間3,000円と超激安で、朝鮮人みたいに安売りするしか能が無く、その上、会社が赤字なのはわしのせいだと抜かすタワケだったが、難しい漢字の名前の写真館はうまく経営できとるのかねえ 🙂
会社のミュージックサーバーで、プレイリストの編集の為に sambaをmpd のプレイリストのディレクトリにマウントしていた。
しかし、スケジュール演奏がおかしかくなったので、見てみると localhost のcifsのマウントが解除されていた。
別のサーバーの samba の共有をマウントしてて切れるのは分かるけど、localhost の共有が切れて、しかも再接続しないってなんぞー?
ここ二、三日、Windows 10が再起動する時間を指定しろとうるさい。
そう言えば、PC終了時に「更新してシャットダウン」って項目が出ないなあと思っていたが、今度は就業時間を確実に潰しにきたのか? つくづく生産性の低いOSだな。
Windowsの設定から、再起動選んで、ディスプレイの電源切って帰宅したが、電源つけっぱなしで Windows 10は環境にやさしいなあ 🙂
どうしてLinuxの様に動作中にアップデートして電源を切るのも、電源再投入でも待たせないようにできないのか?
きっと、Windows 10 は寂しがり屋で、人に構って貰えないと死んじゃうんだね。なんて可哀想…なんて、思うか! バカタレが!!