Officeの一時ファイルやThumbs.dbなどをPowerShellで一掃

ファイルサーバの空き容量が減ってきたので調べてみたら、 削除されていないOfficeファイルの一時ファイルや、Thumbs.dbが結構あることが分かった。 Thumbs.dbはグループポリシーでネットワークドライブ上では生成しないようにしているはずだが、 ローカルのフォルダをファイルサーバにコピーすると、一緒にくっついてくるらしい。 以下のPowerShellスクリプトをタスクスケジューラに登録して、定期的(1日1回)にゴミ掃除。 $a = @() $a += Get-ChildItem "(掃除対象フォルダのパス1)" -Force -Recurse $a += Get-ChildItem "(掃除対象フォルダのパス2)" -Force -Recurse $a += Get-ChildItem "(掃除対象フォルダのパス3)" -Force -Recurse $a | Where-Object { ` $_.Name -like "~*" -and $_.LastWriteTime -lt (Get-Date).AddDays(-1) ` -or $_.Name -like "*.tmp" ` -or $_.Name -eq "Thumbs.db" ` -or $_.Name -eq ".DS_Store" ` -or $_.Name -like "._*" ` } | Remove-Item -Force 削除対象は以下の通り。 更新日時が1日以上前のOffice一時ファイル("~*") 拡張子が"tmp"のファイル "Thumbs.db" .DS_Storeや._*などのMac OSで使用されるファイル

Unicode制御文字(LRO, RLO)でコピー・改変を防止 (構想)

Unicode制御文字のうち、LRO(Left-to-right override, U+202D)とRLO(Right-to-left override, U+202E)は 行中でも文字列の方向を変更する。 1行の中に何度もLROとRLOが入ると、カーソルキーが踊って楽しいことになる。 例: 下のテキストボックスの中の文字列を編集したり、カーソルキーで移動しようとしても上手くできないはず。 ‮‭い‮を‭ろ‮る‭は‮ぬ‭に‮り‭ほ‮ち‭へ ‮‭わ‮む‭か‮ら‭よ‮な‭た‮ね‭れ‮つ ‮‭う‮て‭ゐ‮え‭の‮こ‭お‮ふ‭く‮け‭や ‮‭あ‮す‭さ‮せ‭き‮も‭ゆ‮ひ‭め‮ゑ‭み ※ Edgeは表示が崩れるので、Ctrl + A→Ctrl + Cでメモ帳にコピペで確認可能。 表示上は普通のいろは順にひらがなが並んでいるように見えるが、 実際のデータはまったく違う順序になっている。 ↓通常のテキスト (比較用) いろはにほへとちりぬるを わかよたれそつねならむ うゐのおくやまけふこえて あさきゆめみしゑひもせす 作り方 行内の文字列の順番を入れ替えつつ、LROとRLOを交互に挿入。 以下のMathematicaコードで上記の例を作成した。 StringScrumble[str_String] := Module[{chars, chars2}, StringJoin[Riffle[( chars = ToCharacterCode[#]; chars2 = Join[{16^^202e}, Riffle[chars, Reverse[chars]]][[1 ;; Length[chars]]]; FromCharacterCode[Riffle[chars2, {16^^202d, 16^^202e}]]) & /@ StringSplit[str, "\n"] , StringCases[str, "\n"]]]] StringScrumble["いろはにほへとちりぬるを\nわかよたれそつねならむ\nうゐのおくやまけふこえて\nあさきゆめみしゑひもせす"] 各種デバイス・アプリでの表示 上記の文章をメールで送信し、各種端末で受信メールで表示してみた。 ChromeやFirefoxなどブラウザは狙い通り表示された。 Edgeはテキストボックス内ではダメだったが、それ以外の場所ではOK。 Outlookでの表示もOK。 iPhoneのメッセージ、メール、GmailはいずれもOK。 テキストエディタについてもどう表示されるか確認した。 メモ帳は意外にもちゃんとBiDi対応だった。 geditは行頭にRLOがあると右寄せで表示してしまう(こういう表示のほうが正しいかもしれないが)。 Windows 10 Edge: Outlook: メモ帳: Ubuntu 16.

Hugo + GitHub Pages + CloudFlareにGoogleサイトから移転

今まで独自ドメインでGoogleサイトを利用してきたが、 「新しいGoogleサイト」の機能が全然ダメ(特にガジェットが使えなくなる)で使い物にならない Google自身が推進している常時SSL化も独自ドメインでは機能しない(正確にはMixed Contentsを修正できない) 無駄に色々と読み込むせいで遅い ということで他のサービスへの移転を決断。 AWSやGCP上に構築することも考えたものの、 大したPVでもないので無料で使える組み合わせとして、以下の構成にした。 Hugoを使って静的にサイトを生成 GitHub Pagesにアップロード CloudFlareを使って常時HTTPS化に対応 Hugo + GitHub Pagesの部分は Hugo + Github Pagesでブログを公開してみた を参考にした。 Hugo Ubuntuではapt-getでHugoをインストールできる(最新版とは限らないので注意)。 $ sudo apt-get install hugo テーマは、少し古いバージョンのHugoでも動作するMainroadに決定。 後は以下の作業を実施。 今までGoogleサイトのガジェットで行っていたGoogle MapsでのKMLファイルの表示を行うShortcodeを作成。 CSSファイルをいじって横幅を拡大。 コードのシンタックスハイライトを行うため、highlight.jsを読み込むようlayouts/partials/header.htmlを修正。 GitHub GitHubにGitHub Pages用のリポジトリとHugo自体のリポジトリを作成。 ここでUser Pages(リポジトリ名: (ユーザ名).github.io)で作成し、 CNAMEファイルで独自ドメインを設定すると、 GitHubの他のリポジトリにも独自ドメインの設定が反映される。 そのため、今まで(ユーザ名).github.io/(プロジェクト名)/のURLが (独自ドメイン)/(プロジェクト名)/にリダイレクトされるようになる。 既存のプロジェクトページすべてのURLが変更になってしまうし、 今後ホスティング先をGitHub Pagesから別のサービスに移行するときにまた変更することになる。 そこでUser Pagesは作成せず、Project Pagesとして作成する。 c.f. Custom domain redirects for GitHub Pages sites ページ移転作業 各ページを手作業でコピペ。 1日5ページ〜10ページくらい移行作業した。 画像については、Chromeの開発者ツールで、
2017年7月29日〜8月6日 北海道 道東→道北(襟裳岬、納沙布岬、知床、宗谷岬)

2017年7月29日〜8月6日 北海道 道東→道北(襟裳岬、納沙布岬、知床、宗谷岬)

function initMap(){ var map, ctaLayer; map = new google.maps.Map(document.getElementById("map-canvas"), { center: {lat: 35.6832581, lng: 139.7555827}, zoom: 8 }); ctaLayer = new google.maps.KmlLayer({ url: "https:\/\/www.330k.info\/\/bicycle\/touring\/20170729-0806_hokkaido\/20170729.kml" }); ctaLayer.setMap(map); } 日付 出発地 到着地 走行距離(km) 走行時間 最高速度(km/h) 平均速度(km/h) 主な経路 景勝地 2017年07月29日 苫小牧 勇払 17.03 0:54:54 38.7 18.6 2017年07月30日 勇払 襟裳岬 167.79 6:32:39 54.9 25.6 R235, R336 2017年07月31日 襟裳岬 釧路 187.

動画ファイルからDVDオーサリング

「この動画ファイルをDVDに焼いて。簡単でしょ。」 いやいや、DVD-Video規格に沿った動画ファイルとファイル構造にしないといけないんですけど。 Windows用のオーサリングソフトはフリーでも色々あるが、どれが良いのかよくわからないので、 ffmpeg + dvdauthor + mkisofsでISOファイルを作成するバッチファイルを作成した。 参考サイト : http://d.hatena.ne.jp/hikaen2/20150201/1422773879 前準備 ffmpeg 適当にWindows用バイナリを落としてPATHを設定しておく。 dvdauthor Windows用のバイナリをダウンロードし、PATHの通ったところに設置。 http://www.paehl.com/open_source/?DVDAuthor これの下部の「From Box.net」または「From Google Drive」からダウンロード。 mkisofs 他のソフト(cdrfde)にくっついてくるmkisofs.exeを抜き出す。 https://cdrtfe.sourceforge.io/cdrtfe/download_en.html これのcdrtfe 1.5.7 zip archiveをダウンロードし、展開したファイルの中から、 tools\cdrtools\mkisofs.exe tools\cygwin\cygwin1.dll tools\cygwin\cygwin.ini をPATHの通ったフォルダに移動。 バッチファイル 下記の内容のバッチファイルを作成。 CPU数に合わせてthreadsの値は変更する。 DVDにしたい動画ファイルをドラッグ&ドロップ。 @ECHO OFF REM 動画ファイルからDVDのISOファイルを作成 SET VIDEO_FORMAT=NTSC ffmpeg -i "%1" -threads 4 -vf yadif=1,scale=720:480,tinterlace=4 -target ntsc-dvd -flags +ilme+ildct "%~dpn1_dvd.mpeg" dvdauthor -o "%~dpn1_dvd" -t "%~dpn1_dvd.mpeg" dvdauthor -o "%~dpn1_dvd" -T mkisofs -dvd-video -o "%~dpn1_dvd.
球面上の一様分布

球面上の一様分布

球面上に一様分布するランダムな点を生成したい時、 単純に極座標表示でθとφを一様分布させると、極付近に点が集まってしまう。 data1 = Transpose[{Sin[t] Cos[f], Sin[t] Sin[f], Cos[t]} /. { f -> RandomReal[{0, 2 Pi}, 2000], t -> RandomReal[{0, Pi}, 2000]}]; g1 = ListPointPlot3D[data1, BoxRatios -> {1, 1, 1}] 球面上で一様分布させるには、下記のようにθにArcCosを使う (θの位置の確率をSinθに比例させたい→累積確率分布関数はCos→逆関数はArcCos)。 data2 = Transpose[{Sin[t] Cos[f], Sin[t] Sin[f], Cos[t]} /. { f -> RandomReal[{0, 2 Pi}, 2000], t -> ArcCos[RandomReal[{-1, 1}, 2000]]}]; g2 = ListPointPlot3D[data2, BoxRatios -> {1, 1, 1}] なお、多次元球面上の一様分布は球面上に一様分布する乱数の生成にあるように、 多次元ガウス分布を正規化すると得られる。 下記は3次元の場合。 data3 = Normalize /@ RandomReal[NormalDistribution[], {2000, 3}]; g3 = ListPointPlot3D[data3, BoxRatios -> {1, 1, 1}]

RICOHプリンタ・複合機用のZabbix用テンプレート

社内で余っているサーバにZabbixを入れたので、 SNMP v2cでRICOH製のプリンタ・複合機の各種情報を取得するXMLテンプレートをhttps://github.com/coreyramirezgomez/Ricoh-Printers-Zabbix-Template/blob/master/Ricoh%20Printers%20SNMP%20Template.xml を元に作成した。 変更箇所としては以下の通り。 SNMP Discoveryで英語のアイテム名を取得するように変更 1分間あたりの印刷枚数のアイテムとグラフを追加 Discoveryの間隔が長くした(負荷でプリンタが応答しなくなるため) 確認している機種は社内にある以下の2機種のみ。 RICOH MP C5503 IPSiO SP 6320 ダウンロードはZabbix Share - Template Ricoh SNMP Printers。 <?xml version="1.0" encoding="UTF-8"?> <zabbix_export> <version>3.2</version> <date>2017-07-20T10:38:50Z</date> <groups> <group> <name>Printers</name> </group> </groups> <templates> <template> <template>Template SNMP Ricoh Printers</template> <name>Template SNMP Ricoh Printers</name> <description/> <groups> <group> <name>Printers</name> </group> </groups> <applications> <application> <name>SNMP Enabled Printer</name> </application> </applications> <items> <item> <name>Description</name> <type>4</type> <snmp_community>{$SNMP_COMMUNITY}</snmp_community> <multiplier>0</multiplier> <snmp_oid>.1.3.6.1.2.1.25.3.2.1.3.1</snmp_oid> <key>Description</key> <delay>60</delay> <history>90</history> <trends>0</trends> <status>0</status> <value_type>4</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port>161</port> <description/> <inventory_link>2</inventory_link> <applications> <application> <name>SNMP Enabled Printer</name> </application> </applications> <valuemap/> <logtimefmt/> </item> <item> <name>Page Count</name> <type>4</type> <snmp_community>{$SNMP_COMMUNITY}</snmp_community> <multiplier>0</multiplier> <snmp_oid>.

VBAでUUIDを生成

Excel VBAでUUID(GUID)を生成して使っている部分があったのだが、 先日のWindows Updateを適用してから、 CreateObject("Scriptlet.TypeLib")でエラーが出て使用できなくなってしまった。 参考 : 2017 年 7 月のセキュリティ更新適用後、VBA から一部のオブジェクトを作成できません 私の場合はただ単にランダムなUUIDが生成できれば良いので、 UUID v4を生成する関数を作った。 VBの乱数の精度としては24ビットらしいので、1回の乱数生成では最大16ビット使用するようにはしている。 とはいえ乱数の品質としてはあまり高くないのでご注意を。 Public Function GetUUID() As String 'GetUUID = Mid$(CreateObject("Scriptlet.TypeLib").GUID, 2, 36) GetUUID = Right$("0000" & Hex(Rnd() * 65536), 4) & Right$("0000" & Hex(Rnd() * 65536), 4) GetUUID = GetUUID & "-" & Right$("0000" & Hex(Rnd() * 65536), 4) GetUUID = GetUUID & "-4" & Right$("0000" & Hex(Rnd() * 65536), 3) GetUUID = GetUUID & "-" & Right$("0000" & Hex(32768 + Rnd() * 16384), 4) GetUUID = GetUUID & "-" & Right$("0000" & Hex(Rnd() * 65536), 4) & Right$("0000" & Hex(Rnd() * 65536), 4) & Right$("0000" & Hex(Rnd() * 65536), 4) End Function
2017年07月15日〜17日 カステラ工場〜軽井沢〜八ヶ岳高原〜甲府

2017年07月15日〜17日 カステラ工場〜軽井沢〜八ヶ岳高原〜甲府

function initMap(){ var map, ctaLayer; map = new google.maps.Map(document.getElementById("map-canvas"), { center: {lat: 35.6832581, lng: 139.7555827}, zoom: 8 }); ctaLayer = new google.maps.KmlLayer({ url: "https:\/\/www.330k.info\/\/bicycle\/touring\/20170715-17_castella_yatsugatake_kogen\/20170715.kml" }); ctaLayer.setMap(map); } 日付 出発地 到着地 走行距離(km) 走行時間 最高速度(km/h) 平均速度(km/h) 主な経路 景勝地 2017年07月15日 東京 安中 140.33 5:54:26 50.9 23.8 荒川CR, R254 文明堂浦和工場、富岡製糸場 2017年07月16日 安中 甲府 133.05 5:34:37 66.8 23.9 R18, R141 野辺山高原 2017年07月17日 甲府 東京 144.
携行品・装備品

携行品・装備品

現在使用中のもの サドルバッグ レベレイトデザイン PIKA それまでのオーストリッチのサドルバッグ、モンベルのフロントバッグ、ドイターのバックパックを一本化するために購入。 荷物すべてをこのサドルバッグとツールボトルに収めることに成功。 自分のように背が低く、サドルとタイヤの間にあまりクリアランスが取れない場合はタイヤで擦ってしまいやすいので要注意。 あとは余った靴紐を1本持っておくと、レインウェアを取り出しやすいようにバッグの上に括りつけておいたり、 どうしてもタイヤで擦ってしまう場合に強引に上方向に引っ張り上げることができるので非常に便利。 輪行袋 OSTRICH L-100 輪行袋超軽量型 今まではツーリングの計画時に輪行を念頭に置いていなかったので、非常用としてとにかく小さく軽いものを購入。 数回輪行したところ自転車を入れる袋としては全く問題ないが、リアキャリアを外さなければならず、これが列車内で非常に邪魔になる。 リアキャリアをつけずにバックパックのみで日帰りで「行ける所まで行って帰りは輪行」とか「行きは輪行して自転車で帰ってくる」とか「往復輪行してちょっと遠くの峠まで」というときにはうってつけだと思う。 輪行すれば行動半径が2倍になる、ということに気づいてしまったので今後はさらなる活躍が期待される。 折りたたみ靴 Timberland RADLER TRAIL CAMP Timberlandの折りたためる靴。裸足でも履け、軽いトレッキング程度なら歩けるグリップがある。 SPDシューズで音や滑って転ぶことを気にする必要がないので、自転車を降りた後の行動で重宝している。 現在は使わなくなったもの ヘッドライト Fenix LD20 某レビューサイトで絶賛されていたためAmazonで購入。 評判通りの明るさ。転勤で首都圏から出てしまったが、街灯がなくても問題なく走行可能。 サイコンの近くに設置すると電波が干渉して速度が出なくなるので出来る限り離すように設置。 → 川崎市を走行中に、振動でネジが緩んで落下。 USB充電器 FUJITSU FSC321FX USB⇔NiMH充電池(eneloop)の充電ができるコンパクトな充電器。 2本入れないと充電できないのが欠点だが、スマートフォンへの予備バッテリーのほか、 単3の充電池をヘッドライト、テールライト、GPSロガーで使いまわしているため荷物の軽量化に大きく貢献。 → 電装品はLiイオン電池のモバイルバッテリーに移行 リアキャリア MINOURA AMT-9100 池袋Y’s Roadで箱の中に定価より5割以上安い値札を貼られて入っていたのを掘り出した。 鉄製のMT-800Nを買うつもりだっが、MT-800Nよりも500g以上軽い上に安いのでそのままサイドバッグとともにレジに行った。 積載重量が10kgとMT-800Nの18kgに比べると見劣りするが、自分に18kgもの荷物を運搬できる脚力はないと言い聞かせている。 サイドバッグ ANTARES Konnix ST-950-P 池袋Y’s Roadに行ったら他のOSTRICHやdeuterなどのサイドバッグのほぼ半値と安かったので購入。 防水構造を謳ってはいるが基本的に雨の中では走らないので防水性能はまだ分からない。 リアキャリアのパイプにひっかけるプラスチック製のツメがちょっと心許ないが、容量は十分あり、反射材もついていて基本的には満足。 テールランプ Blackburn Mars 4.0 これまた1WのLEDを使っていて明るいと評判のテールランプ。明るいがスイッチは非常に押しにくい。 1ヶ月少しの使用で、基板が異常発熱して電池ごとオシャカになった。 エネループを使っていたのがまずかったのか? ネットで探してみても同じような症状を示す例は見当たらないので単なる個体差かもしれないが、もうこのメーカの製品は買わない。 フロントバッグ mont-bell ツーリングフロントバッグ バックパックをなくすための試行錯誤の中で、フロントバッグの導入をしてみた。 結果・・・ハンドルが非常に重い。 またヘッドライトが取り付けられなくなったため、エクステンションバーが必要になり、更に重量増。 フロントの荷重が増えたため、フロントタイヤで異物を踏んづけてのパンクがしやすくなってしまった。 あと、なんというか・・・見た目のモンベル臭さが・・・。 ということで現在は使用せず。