HYT MachineWorks

やったこととか思いついたことをメモしておくブログです。

Windows10からGithubにSSHで接続する意識高いやり方

GithubSSH接続する

通常のHTTPでの接続ではなくて、公開鍵を、Githubに登録してそれを使って暗号化された通信によってGitを使えるようになります。

やり方は、ググれば結構でてくるんですが皆さん、Linuxだったり、MacだったりとUnixの人たちばかり。でも、意地でもWindowsでやろうと思ったのでその結果をメモします。*1

*1:前提として、Git自体はインストールは済んでいるものとします。

続きを読む

chromedriverの自動バージョンアップスクリプト「chromedriver_update_tool」を公開しました Windows10 Python3 Selenium

 chrome driver version問題

Seleniumを使ってスクレイピングしている人には、Chromeを使っている人も多いと思います。その時必要となるchromedriverですが、chromedriver verson 24.6までは、バージョンの対応範囲がv71-73となっていてある程度幅を持っていましたが、それ以降は、ChromeDriverの公式サイトによると

 We maintain multiple versions of ChromeDriver. Which version to select depends on the version of Chrome you are using it with. Specifically:

  • ChromeDriver uses the same version number scheme as Chrome. See https://www.chromium.org/developers/version-numbers for more details.
  • Each version of ChromeDriver supports Chrome with matching major, minor, and build version numbers. For example, ChromeDriver 73.0.3683.20 supports all Chrome versions that start with 73.0.3683.
  • Before a new major version of Chrome goes to Beta, a matching version of ChromeDriver will be released.
  • After the initial release of a new major version, we will release patches as needed. These patches may or may not coincide with updates to Chrome.

Version Selection - ChromeDriver - WebDriver for Chrome

 まとめると、BrowserとDriverのメジャー、マイナー、ビルドのバージョンを揃えなさいということです。

例えば、現状のChrome Browserのバージョン 75.0.3770.142を例に取ると

メジャー マイナー ビルド パッチ
75 0 3770 142

と分割できて、ChromeDriverとしては、

75.0.3770.XXXX

というのに合致するバージョンを選べばいいと言うことです(XXXXは任意の数字)。

ですが、ここでややこしくしているのは、Chromeが自動的にバージョンアップをするということ気づいたら自動的にスクレイピングしているはずが以下のようなエラーが出て止まっていることも多くなりました。

以下の実験の条件

  • Chrome Browser version : 75.0.3770.142
  • Chrome Driver : 73.0.3683.68
>>> from selenium import webdriver
>>> driver = webdriver.Chrome("C:\SeleniumWebdriver\chromedriver.exe")

すると以下のようなエラーを出す

DevTools listening on ws://127.0.0.1:57646/devtools/browser/7ba36c8c-b0eb-4ee7-9e75-e15e254f71a2

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\username\Miniconda3\envs\scraping_test\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "C:\Users\username\Miniconda3\envs\scraping_test\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:\Users\username\Miniconda3\envs\scraping_test\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\Users\username\Miniconda3\envs\scraping_test\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\username\Miniconda3\envs\scraping_test\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 70 and 73
  (Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Windows NT 10.0.18362 x86_64)

初めは、何で止まっているかわからなくて困っていたけど気づいてからは、手動でシコシコバージョンアップしてたんですが面倒なのでスクリプトを作りましたので記事にしました。

続きを読む

ThinkPad X1 extremeのメモリをシングルチャネル32GBからデュアルチャネル64GBにしたら、倍速になった件

メモリのシングルチャネル、デュアルチャネルとは?

同じサイズのメモリを2枚一組として同期して使うことで、倍の帯域を使えるようにすることで、倍速にする技術です。

ja.wikipedia.org

今使っているマシンは、先日トラックポイントの記事でも触れた、ThinkPad X1 extremeです。

hytmachineworks.hatenablog.com

買うときに、最大構成の64GBでデュアルチャネルにしたかったんですが、純正の32GBのメモリが7万円近くしてビビって買えなかったんです。そこで、同じ32GBの構成で、16GB二枚と32GB一枚がほとんど値段に差がなかったのでとりあえず、32GB1枚の構成で購入して、後で自分で32GBを追加することにして購入しました。

そんな訳で、この度メモリを入手したのでそのメモです。

続きを読む

Windows10 64bitでHyperion EOS 720i SUPER DUO3のFirmware バージョンアップと「HYPERION EOS Control & Data Suit」を使えるようにする

Hyperionとは?

香港の空物RC(飛行機とか)用バッテリーや、充電器のメーカで、自分が、「 EOS 720i SUPER DUO3」を買った10年前は結構イケイケだったと思います。

今は、どうも、ドローンとかにシフトしているみたいです。

hyperion-world.com

で、この充電器は、PCと繋げると「HYPERION EOS Control & Data Suit」が使えて、設定をPCから変更したり、充電中の電流電圧とかをモニタリングなんか出来たりします。

大分、昔の機種になってしまいましたが今でもまだサポートしているようなのでそのやり方をメモします。

続きを読む

PowerShellで、プロンプト文字列をConda対応しながら、カレントディレクトリをタイトルバーに表示してスマートにする

PowerShellのプロンプト文字列とは?

PowerShellを立ち上げると表示される下の画像の赤い線を引いた部分の事です。

f:id:hytmachineworks:20190602183313p:plain

普通に使っている分にはいいのですが、だんだん深い階層になっていくと現在のパスを表示されるのでだんだん大変なことになっていきます。

現在のパスをタイトルバーに表示して短くしてスッキリさせると同時に、Condaの環境切り替えにも対応させたメモです。

続きを読む

CUDAを使った、CuPyやTensorFlow GPUを簡単に使う

CUDA Tool kitや、cuDNNを入れてVisual Studio Build Toolsが必要と思ってました・・・

頑張っていろいろやってましたが、@daizutabiさんの記事を見て腰砕ける。

qiita.com

この衝撃的な事実を共有したくメモします。 

続きを読む

conda4.6.14以降のPowerShellでカレントディレクトリが表示されなくなる問題を対応する

conda 4.6以降で、PowerShellを使うと

(base) PS C:\users\username > _

って感じで表示されていたと思います。

それが、最新のconda 4.6.14にすると

(base) PS > _

になってカレントディレクトリが分からなくなってしまいました。

その対策のメモ

続きを読む

もっと簡単にMeCabとmecab-ipadic-neologdとmecab-pythonをインストールする Python3 Windows10

最近、MeCabの周りが騒がしくなっている気がする

以前は、公式のインストーラで入れたあとに自分で、64bitでコンパイルをし直すとかいろいろ手間がかかっていましたがもう少し簡単になったようなので以前の記事を書き直す意味でも、新しく書き直してみます。

続きを読む

PythonでCUDAやMeCabを使う為にBuild Tools for Visual Studio 2019をセットアップする

Build Tools for Visual Studio 2019とは?

以前は、Visual C++ Build Toolsという名前で公開されていましたが、Visual StudioのCommunityなどと統合して配布されています。

前は、単純にダウンロードしてインストールって感じでしたが、ちょっと複雑な感じになったのでメモしたいと思います。

続きを読む

ファイルサーバや、ドライブのフォルダの容量を調べるツールを作ってみた(Python3 windows10)

Pathlibって使っていますか?

Pythonからファイルを扱うライブラリです。

docs.python.org

使わない理由が無いと言われますが、今まで困ってなかったのでというか、わざわざsubprocess使ってコマンドを実行してやってました。

ですが、フォルダ容量を調査したりするのにPathlibを使ったスクリプトを作って見ました。

github.com

その簡単な解説。

続きを読む

トラックポイントがスーパーロープロファイルでソフトリムが無かったので自作した件

トラックポイントが、スーパーロープロファイルってなんぞや?

ThinkPad x1 extreme買ったんですよ。去年の年末に。グラフィックがGeForce1050Tiなのが気に入ってさ。ThinkPadを20年近く使い続けてて、ソフトリムが大好きなのです。Lenovoの直売でかったんだけどさ、よくあるじゃん、買われた方におすすめってさ、クラシックとソフトドームとソフトリムの3種類が入ったやつも一緒に買ったの。これを機に新しくしようと思ってさ。そしたら、全然形が違うやんけ!!!!

f:id:hytmachineworks:20190316191534p:plain

 着けようと思ってはずしたらびっくりするくらい違って倒れそうになったわ。

そして、操作した結果分かった事。

  1. この数年で、トラックポイントは、ロープロファイルスーパーロープロファイルウルトラロープロファイルとどんどん薄く仕様変更されていること
  2. ソフトリムは、人気がないから作りたくないらしいこと
  3. 3Dプリンタで自作されて、販売されている方がいること

が分かりました。3番の3Dプリンタ版に心揺さぶられましたが、素材のゴムライクが透明で中がすけて見えるのが、引っかかっていたら、DMM.MAKEでゴムライクの廃止のPRが!って言ってたら買えなかったです。なので作ることにしました。

<<<<<<<< 注意 >>>>>>>>

これ以降、電動工具や、刃物を使った作業の説明が出てきます。

本人の技量等で失敗する可能性も高く、最悪怪我等を負う可能性があります。

すべて自己責任であることを認識した上で参考にしてください。

続きを読む

PyCharmをCommunityからProfessionalへ乗り換えた件(Windows10)

PyCharmをCommunityからProfessionalへの乗り換えとは、

PyCharmとは、チェコIDEを開発しているJetBrain社製のPython用のIDEです。そのエディションが2つ用意されていて、無償のCommunityと有償のProfessionalがあります。

www.jetbrains.com

 これまでは、無料のCommunityを使ってきたのですが、Databaseとの連携や、Scientificモードが非常に気になったのでバージョンアップしました。*1

pleiades.io

 

pleiades.io

 同じ商品のバージョンアップだから、環境移行も楽勝と思ったら気をつけるべきことがあったのでメモします。

*1:自然言語処理100本ノックが終わったからってのもあります。

続きを読む

自然言語処理100本ノックをWindows/Python3で 第10章: ベクトル空間法 (II)を解く

 

自然言語処理100本ノックとは、

東北大学の乾・岡崎研究室にて公開されている自然言語処理の問題集です。

www.cl.ecei.tohoku.ac.jp

前回に引き続いてついに、最終章である第十章をこなしました。

続きを読む

自然言語処理100本ノックをWindows/Python3で 第9章: ベクトル空間法 (I)を解く

自然言語処理100本ノックとは、

東北大学の乾・岡崎研究室にて公開されている自然言語処理の問題集です。

www.cl.ecei.tohoku.ac.jp

前回に引き続いて第九章をこなしました。

続きを読む

自然言語処理100本ノックの第9章ベクトル空間法 (I) 第80問~第85問を1/10サンプリングのデータをThinkPad X1 (2011)で解いてみた

自然言語処理100本ノックの第9章ベクトル空間法 (I) 第80問~第85問とは、

東北大学の乾・岡崎研究室にて公開されている自然言語処理の問題集で、その中で唯一この章だけ問題の注釈として

なお,問題83を素直に実装すると,大量(約7GB)の主記憶が必要になる.

と、明らかに普通にやるとメモリが必要になるという警告してきています。これはスペックが必要なニオイがしてきます。

www.cl.ecei.tohoku.ac.jp

それに対して、それを処理するマイマシンは、ThinkPad X1 (2011)です。現行モデルのThinkPad X1 Carbonが出る前のモデルになります。

www.itmedia.co.jp

出た当時のレビューです。買ったモデルのスペックは、

  • CPU:Intel Core i5-2520M, (2.5-3.2 Ghz, 3MB L3)
  • メモリ:8 GB
  • SSD:128 GB

でした。OSなどメモリを消費するので空きは、7Gを下回っています。その上、先程の警告は、続けてこうも言っています。

メモリが不足する場合は,処理を工夫するか,1/100サンプリングのコーパスenwiki-20150112-400-r100-10576.txt.bz2を用いよ.

処理を工夫するか、データを減らせと言われたら処理を工夫してやったろう!っていうなかでやったことをメモします。

続きを読む