ProphetをWindows上のAnacondaにインストールする

前提条件としてはpipを使わないことを前提としています。condaとpipの混合はどう考えても安全性に乏しいので可能な限りcondaだけでいく前提です。 仮想環境の作成 conda create -n prophet_env python=3.7 仮想環境の利用開始 conda activate prophet_env libpythonとm2w64-toolchainパッケージのインストール conda install libpython conda install -c msys2 m2w64-toolchain パッケージのインストール conda install numpy cython matplotlib pandas conda install -c conda-forge fbprophet pystanのテスト import pystan model_code = 'parameters {real y;} model {y ~ normal(0,1);}' model = pystan.StanModel(model_code=model_code) y = model.sampling(n_jobs=1).extract()['y'] print(y.mean())

12月 26, 2019 · 1 分 · 51 文字 · Me

Windowsでdotfilesの世界をパクリんぐする

アドベントカレンダーに参加しています。 dotfiles Advent Calendar 2019 Windowsでdotfilesの世界をパクリんぐする話をします。 Windowsにおける設定情報 Windowsにおいては昨今、設定情報はかなり混沌と設定している、今となってはレガシー化しつつある、レジストリ情報に加えて、*NIX風のdotfilesをUser Profileの直下に置くパターンなどいくつものパターンがある。一旦、整理してから話を進めたい。 レジストリ情報 dotfilesの方向性としては異なるが整理のため、触れることにする。レジストリ情報はHKEY_LOCAL_MACHINEなど各種の階層で格納されているが一般にユーザごとの情報はHKEY_USERSの下にあり、実際にはそれがHKEY_CURRENT_USERにリンクされているものと考えられる。ただ、これは知っての通りバイナリデータとしてユーザにはコントロールしにくい形で存在していること、また、dotfilesの形とは言い難いため議論はここまでとする。 User Profilesの下に置かれるdotfiles User ProfileはデフォルトのインストールではUsers\<ユーザ名>に置かれるファイル群である。この中にはHKEY_USERSに置かれているレジストリも含まれている。昨今では特に*NIXからポーティングされたツールを中心にここに.で始まるファイルや_などで始まるファイル群を展開するものが散見される。例えば、scoopでvimをインストールした場合、_vimrcはUser Profileの直下に格納される。 User ProfileのAppData以下 User Profileには一般にAppDataとDocumentsが格納されている。標準的なデザインとしてはユーザにその存在を認識させるファイルはDocumentsにその存在を認識させなくてもいいファイルをAppDataに格納し、さらにAppDataの中で移動プロファイルでローミングするファイルはRoamingにマシン固有のファイルはLocalに置かれることになっている。例えば、ConsoleZの設定情報はAppData内のRoamingにConsole\console.xmlという形で格納されている。また、Visual Studio Codeの設定情報はRoamingのcode以下に格納されている。 UWPのLocalState 狭義のUWP (U先のniversal Windows Platform)アプリケーションにおいては、先のAppDataのLocalの下にあるPackagesディレクトリの下にアプリケーションごとにディレクトリを作成しその中にある、LocalStateディレクトリ内に格納されることが多い。たとえば、WindowsTerminalにおいては、少なくとも現時点においてはPackages内のMicrosoft.WindowsTerminal_8wekyb3d8bbweディレクトリにLocalStateが存在している。 WSL WSL1の場合は、ファイル群はdevfsとdrvfsと考えられるが、一般にdevfsの構造はWindowsから見ると深いディレクトリに置かれていること、また、Windows側からdevfsのファイルを操作すると、metadataを損壊することになるため、注意を要する。従って、WSLの設定情報については現状、Windowsのdrvfsにレポジトリをおいて、適時シンボリックリンクを張っているが、後述する、Windows上でのgitの特性から、WSL上で独自にdotfilesをコントロールしたほうがいいかもしれない。 dotfilesによる設定情報のコントロール dotfilesでコントロールしやすいもの 先までに上げたものの中で、dotfilesによるコントロールに適するのは基本的にはレジストリを除いたものであると考えられる。レジストリはバイナリデータとして格納されているため、*NIX的な管理はし辛い。 dotfilesによるコントロールのサンプル dotfiles風にコントロールの容易なものとして、以下に例をあげる。 vimrc Windows Terminal git nyagos ConsoleZ WSLのdotfiles これらを分類すると以下のようになる。 名前 種類 vimrc User Profile Windows Terminal UWP LocalState git User Profile nyagos User Profile ConsoleZ AppData WSL dotfiles WSL シンボリックリンクの活用 レポジトリから各ファイルへはシンボリックリンクを用いる。シンボリックリンクは開発者モードでは一般ユーザでも作成できる。ただし、開発者モード以外ではシンボリックリンクの作成には管理者特権が必要であるため、シンボリックリンクの構築スクリプトをPowerShellで作る場合、以下のような構造になるであろう。 $userProfile = $env:USERPROFILE if($PSVersionTable.PSVersion.Major -gt 4) { if (([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(` [Security.Principal.WindowsBuiltInRole] "Administrator")) { } else { Write-Warning "管理者権限が付与されていません" exit 1 } } else { Write-Warning "PowerShellのバージョンが条件を満たしていません" } PowerShellのバージョンを確認するのはPowerShellでシンボリックリンクが作成できるようになったのは、Windows PowerShell 5.xからであり、それ以下の場合には構築できないだけでなく、削除をした場合にリンクが削除されるだけでなく元のファイルまで消えてしまうためである。したがって、バージョンを確認する必要がある。 ...

12月 24, 2019 · 2 分 · 383 文字 · Me

Anti PPAP by Mailvelope

PPAPという病の蔓延 以前から、問題にはなってきていたが日本におけるPPAPの蔓延は非常に嘆かわしいものがある。PPAPとは Password付きZIP暗号化ファイルを送ります Passwordを送ります 暗号化 Protocolの頭文字である。 命名者はJIPDECの大泰司章氏とされる。PPAPは言うまでもな無意味である。なぜならば、同じ伝送路上で機密情報とパスワードをやり取りしているため危険性は変わらないためである。 PPAPの解決 OpenPGP/GPG いっそ何もしない クラウドストレージの活用 ビジネスチャット 本稿では一番、まともな解決手段である、OpenPGP/GPGを行う方法を解説する。 Mailvelope MailvelopeはChrome上のOpenPGPを実装した機能拡張である。今回はこれをMicrosoft Edge Insider Previewで実行している。 基本的な手続きとしては以下のようになるであろう。 鍵の確認 Mailvelopeのインストール 鍵の作成/インポート 鍵の確認 OpenPGP/GPGの仕組み自体はそれなりに分量があるため、ここでは触れない。OpenPGPについては 公式サイト などを活用されたい。 ともあれ、運用上はまず鍵を新たに作成するか、既存の鍵をインポートするかで分かれると思われる。 Mailvelopeのインストール MailvelopeはGoogle Chrome, Mozilla Firefoxではマーケットプレイス上に存在する。 Mozilla Firefox Google Chrome Microsoft Edge Insiderでは、マーケットプレイス上には確認できないため、Google Chromeのマーケットプレイスからインストールすることが出来た。 鍵の作成/インポート ブラウザ上に拡張機能がインストールされると、Mailvelopeの設定が可能になる。鍵がない状態では鍵を生成と鍵のインポートが出来る。

12月 24, 2019 · 1 分 · 42 文字 · Me

dotfilesの世界をパクってみた

はじめに ようこそdotfilesの世界へを参考に、Windows上での環境整備を始めてみた。ツールとしては、gitとCMD Batch、robocopyを使用。ディレクトリ構造としてはいったんこのような構造で。 Backgrounds Icons Scripts dot WindowsTerminal ConsoleZ BackgroundsはWindowsTerminalの壁紙を格納、%USERPROFILE%のPictures\Backgroundsに展開。IconsはWindowsTerminalのアイコンを格納、%USERPROFILE%のPictures\Iconsに展開する。Scriptsは環境の展開用のCMD Batchを格納している。dotには%USERPROFILE%以下に展開される、ドットファイルを格納。ConsoleZとWindowsTerminalはそれぞれ、ConsoleZとWindows Terminalの設定ファイルを格納してる。 現在の、deploy.batはこのような内容。 copy ..\WindowsTerminal\profiles.json %USERPROFILE%\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\profiles.json copy ..\ConsoleZ\console.xml %USERPROFILE%\AppData\Roaming\Console\console.xml copy ..\dot\.nyagos %USERPROFILE%\.nyagos robocopy ..\Backgrounds %USERPROFILE%\Pictures\Backgrounds /e robocopy ..\Icons %USERPROFILE%\Pictures\Icons /e

12月 8, 2019 · 1 分 · 30 文字 · Me

Cognitive Servicesのテキスト分析にPowerShellから投げてみる

PowerShellからCognitive Servicesのネガポジ分析をたたいてみました。 $apiKey = “************************” $texts = @(“ColorfulのSSDめっちゃヤバいwww Galaxy S6や廃棄品のSSDから剥がしたフラッシュやIntelの偽物が搭載されているのが確認されてるらしいwww 安価なNVMe CN600もリマークチップを使ってるとのこと、、、 最近めっちゃ秋葉原で売ってるけど買わない方が良さそうだな、、、”) $headers = @{ ‘Ocp-Apim-Subscription-Key’ = $apiKey } $endPoint = “https://eastasia.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment” $texts | ForEach-Object { $text = $_ $obj = @{ documents = @(@{ language = “ja” id = “1” text = $text }) } $json = ConvertTo-Json $obj $result = Invoke-RestMethod -Uri $endPoint -Headers $headers -Body $json -ContentType ‘application/json; charset=utf-8’ -Method Post $items = $result.documents $item = $items[0] $item.score }

6月 5, 2018 · 1 分 · 73 文字 · Me