SSブログ
前の10件 | -

Azure CosmosDB で自家製の MongoDB データーベースドライバーを使ってみる [Python]

以前、MongoDB の簡単なデーターベースドライバーを Python で書いたが、長いこと放置してた。
先日、Azure CosmosDB に、無料でずっと使える枠があって、しかも MongoDBのドライバーが使えるということを聞いて、使えるか試してみることにした。

以下やったこと

https://docs.microsoft.com/ja-jp/azure/cosmos-db/create-mongodb-dotnet ここにあるように
Azure Cosmos DB のアカウントを作る

- アカウント名 → グローバルにユニークな名前
- API → 「MongoDB 用Azure Cosmos DB API」
- バージョン → 3.6

アカウント名が、(AWS S3 のバケット名みたいに)グローバルにユニークになるする必要があって(仕方ないんだけど)ちょっと難しかった。
アカウントを作成すると、自動でパスワードが作られる

作成したアカウント→クイックスタート→Othersにあるホスト、ポート、ユーザー名、プライマリーパスワードを使って接続しようとしたらエラーになった。
些末な問題だったので、ドライバーを直してリリースした https://pypi.org/project/nmongo/0.4.2

動かしてみると、 MapReduce や、db.collection.group() が使えないみたいだけど、基本的な動作はしていて、データエクスプローラーから値も見れる。エンジンは別物だと思うのに、変な感じ。

MongoDB の最新は 4.4 だが、 nmongo を書いた時に確認したのは 3.6 までで、 4.0 以降試してない。動くとは思うんだけど、試せてない。
本当は、新しい機能を使えるようにしたい。どんな新しい機能があるのかは知らんけど。

ここらへん↓を見るんだろうけど、実務で使う機会がないので、 MongoDB をインストールするのがおっくうだ。
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

コメント(0) 
共通テーマ:日記・雑感

AWS 上で Open Data として公開された UniDic を使う [awabi]

https://aws.amazon.com/jp/blogs/news/published-unidic-mecab-on-aws-open-data/

これを使って、MeCab と awabi で形態素解析してみる。

ダウンロードするのに aws コマンド(awc_cli)が必要で、色々インストールの方法はあるけど、
例えば、Ubuntu2004 だったら apt で入れられる
$ sudo apt install awscli
$ aws --version
aws-cli/1.18.69 Python/3.8.5 Linux/5.4.0-48-generic botocore/1.16.19

$ aws s3  --no-sign-request cp s3://cotonoha-dic/unidic.zip ./
$ unzip unidic.zip

/etc/mecabrc の dicdir の行を以下のように修正(上で展開したdirectory を指定)
dicdir = /home/nakagami/unidic


$ echo 'すもももももももものうち' |mecab
すもも  名詞,普通名詞,一般,,,,スモモ,李,すもも,スモモ,すもも,スモモ,和,,,,,,,体,スモモ,スモモ,スモモ,スモモ,0,C2,,15660352771596800,56972
も  助詞,係助詞,,,,,モ,も,も,モ,も,モ,和,,,,,,,係助,モ,モ,モ,モ,,動詞%F2@-1,形容詞%F4@-2,名詞%F1,,10324972564259328,37562
もも    名詞,普通名詞,一般,,,,モモ,桃,もも,モモ,もも,モモ,和,,,,,,,体,モモ,モモ,モモ,モモ,0,C3,,10425303000293888,37927
も  助詞,係助詞,,,,,モ,も,も,モ,も,モ,和,,,,,,,係助,モ,モ,モ,モ,,動詞%F2@-1,形容詞%F4@-2,名詞%F1,,10324972564259328,37562
もも    名詞,普通名詞,一般,,,,モモ,桃,もも,モモ,もも,モモ,和,,,,,,,体,モモ,モモ,モモ,モモ,0,C3,,10425303000293888,37927
の  助詞,格助詞,,,,,ノ,の,の,ノ,の,ノ,和,,,,,,,格助,ノ,ノ,ノ,ノ,,名詞%F1,,7968444268028416,28989
うち    名詞,普通名詞,副詞可能,,,,ウチ,内,うち,ウチ,うち,ウチ,和,,,,,,,体,ウチ,ウチ,ウチ,ウチ,0,C3,,881267193291264,3206
EOS


$ echo 'すもももももももものうち' |awabi
すもも  名詞,普通名詞,一般,*,*,*,スモモ,李,すもも,スモモ,すもも,スモモ,和,*,*,*,*,*,*,体,スモモ,スモモ,スモモ,スモモ,0,C2,*,15660352771596800,56972
も  助詞,係助詞,*,*,*,*,モ,も,も,モ,も,モ,和,*,*,*,*,*,*,係助,モ,モ,モ,モ,*,"動詞%F2@-1,形容詞%F4@-2,名詞%F1",*,10324972564259328,37562
もも    名詞,普通名詞,一般,*,*,*,モモ,桃,もも,モモ,もも,モモ,和,*,*,*,*,*,*,体,モモ,モモ,モモ,モモ,0,C3,*,10425303000293888,37927
も  助詞,係助詞,*,*,*,*,モ,も,も,モ,も,モ,和,*,*,*,*,*,*,係助,モ,モ,モ,モ,*,"動詞%F2@-1,形容詞%F4@-2,名詞%F1",*,10324972564259328,37562
もも    名詞,普通名詞,一般,*,*,*,モモ,桃,もも,モモ,もも,モモ,和,*,*,*,*,*,*,体,モモ,モモ,モモ,モモ,0,C3,*,10425303000293888,37927
の  助詞,格助詞,*,*,*,*,ノ,の,の,ノ,の,ノ,和,*,*,*,*,*,*,格助,ノ,ノ,ノ,ノ,*,名詞%F1,*,7968444268028416,28989
うち    名詞,普通名詞,副詞可能,*,*,*,ウチ,内,うち,ウチ,うち,ウチ,和,*,*,*,*,*,*,体,ウチ,ウチ,ウチ,ウチ,0,C3,*,881267193291264,3206
EOS


表示形式が違うのは、 mecab は dicrc の node-format-unidic22 の値を見てフォーマットしているのに対して、(こういう時 MeCab って色々機能あるなぁ、と気づかされる) awabi は、辞書の feature にあるものをそのまま出しているからと思われる。

この、表示形式の違いは、今のままでいいかなと思っている。
コメント(0) 
共通テーマ:日記・雑感

Elixir から、形態素解析器 awabi を呼ぶ [awabi]

PyO3 で Rust のコードを Python から簡単に呼び出せたけど

https://nakagami.blog.ss-blog.jp/2020-03-21
https://nakagami.blog.ss-blog.jp/2020-07-08-1
https://nakagami.blog.ss-blog.jp/2020-07-11

・・・そう言えば、同じように Rust のコードを簡単に Elixir の NIF にして
呼べるようなのがあったんじゃなかったっけ?と思って、探した.

Rustler っていうのがそれらしい
https://github.com/rusterlium/rustler

これを参考にして・・・
Writing Rust NIFs for Elixir With Rustler
https://simplabs.com/blog/2020/06/25/writing-rust-nifs-for-elixir-with-rustler/

- mix new exawabi
- {:rustler, "~> 0.22-rc"} を mix.exs の deps に加える
- mix deps.get
- mix rustler.new

・・・を実行して, mix rustler.new の中で聞かれる問いに

Module name に「ExAwabi」
Library name に「awabi_nif」

を指定して、できたファイルに、色々修正してできたのがこれ
- https://github.com/nakagami/exawabi
- https://hex.pm/packages/exawabi

・・・と、簡単には書いているが、途中、色々試行錯誤してしまった。
上の記事では、 mix.exs の修正についての説明がないが、 Rustler 向けの記述をいくつか追加した。
https://github.com/nakagami/exawabi/blob/master/mix.exs
の compilers とか、 rustler_crates のあたり。

Elixir の該当コードを見ると https://github.com/nakagami/exawabi/blob/master/lib/exawabi.ex
エラー関数を呼んでいるよには見えるけど、 Rust の関数を呼んでいるように見えなくて、
なんか、よくわかんないけど、マクロすごい・・・と思っているところ。

Elixir だと、関数として実装しないといけないので(クラスとかメソッドの形で Elixir にExportできないので)制限はあるけど、簡単に NIF が作れるというのは本当だなと思った。
C で NIF 作る気はしないけど、Rust でならできそう。
コメント(0) 
共通テーマ:日記・雑感

ケセラセラだよはじめくん [日記]

もう、何年前だったか、住む人のいなくなった実家の様子を見に行った時に隣のおばさんに
「ケセラセラだよはじめくん」
と言われた。
50歳の僕のことを「はじめくん」と呼んだので印象に残っている。

遠方からたびたび帰ってくる僕に、大変そうだと思って、
「うちも大変だけど、なるようにしかならないし難しいこと考えてもしょうがない」
ということを言ってくれたようだ。

隣のおじさんは、年金もらって悠々自適な生活と聞いていたので、あそこのうちは安泰だなと思っていた。しかし、家族のことではうまくいっていないことがあって、そのことを僕は知っていた。
今まで自分の事ばかり考えていたけど、みんなそれぞれに大変なことはあるんだなぁと、その時はじめて気づいた。

以来、何ごとも悩みのない人はいないし、自分もあまり先のことを考えて悩んでも仕方がないと考えるようになった。
コメント(0) 
共通テーマ:日記・雑感

git で 特定の tag にブランチを戻す [プログラミング]

普段、事故ったりハマったりするのがいやで、 git で rebase はしていない。
歴史は修正しない主義。
本当は、綺麗に rebase してコミットログを整えるほうがいいのかもしれないけど。

ところが、諸般の事情により、主義に反して、特定の tag までブランチの HEAD を戻す必要が出てしまった。

ありがたいことに、ここに答えが載っていた
https://stackoverflow.com/questions/6872223/how-do-i-revert-master-branch-to-a-tag-in-git

git checkout master
git reset --hard tag_ABC
git push --force origin master


これで、 master の HEAD を tag_ABC に設定できた。
この程度のことは、することあるかもしれないので、ここにメモっておく。

コメント(0) 
共通テーマ:日記・雑感

インターネットで国勢調査2回目 [ネット生活]

今回も前回と同じような感じの感想。
https://nakagami.blog.ss-blog.jp/2015-09-14
家族が、働いているか、学生かで、その後の選択肢をいい具合に切り替えてくれていたので、入力が楽だった。

子供の頃は国勢調査と書いてあるちっさい鉛筆が回答用についてた覚えがある。
普段文字を書いてないので、キーボードから入力できると、とっても助かる

調査員の人が、訪問して書類を置いていくが、あれは住民登録のない居住実態のある人を網羅するために必要なことなんだろう。
サイトのできは、5年前にも思ったけど、公共のものにしてはよくできてると思う。

ただ、よくみてなかったけど、外国語で答える方法ってあったっけかな?
そろそろ、外国語もなんとかしないといけないんじゃないかな。

住んでいるのが日本人か外国人かを答える設問もあったけど、あれって前からあったっけ?

コメント(0) 
共通テーマ:日記・雑感

実践 Rust プログラミング入門 [読書]

実践Rustプログラミング入門読了

以前読んだ、プログラミング言語 Rust 公式ガイド(通称 The Book) https://nakagami.blog.ss-blog.jp/2020-07-12 を補完するような内容で良かった。
また、Rust は、どんどん新しくなって The Book の内容が(読んでいる人には知らないうちに)古くなっていくので、今の時点の新しい情報で解説されてるのが良かった。
内容は、それほど深掘りせず入門で、あとは自分で調べてくださいという感じ。

文法などは基本的な部分も省略している部分があるので、入門とは言いつつ、この本を最初に読んだだけでは書けるようになるのは難しいかな、と思う。
(無料で読めるオンライン上のコンテンツもあるので)先に The Book を読むのが良いと思う。

コメント(0) 
共通テーマ:日記・雑感

40年後に残っていないと思う業種 [日記]

息子は、ついこの前入学したと思ったら、もう大学4年生で、学部を卒業したら就職すると言う。

最近、40年後に残っている業種について考えている。
会社は残っていても、社員がそこで安泰に暮らせる保証はないし、会社として40年後も安泰なところを探すのって難しいので、
せめて業種として残っていて、努力すれば業界内で食っていける業種・・・わからん。
生き残っていく業種はわからないけど、なくなるか圧倒的に衰退する業種というのは思いつく。

- 百貨店はなくなりそう
- 銀行はなくなりはしないだろうけど待遇の良い業種ではなくなるだろう
- テレビ、大手出版社は、貧乏だけどやりがいのある職種と言われるようになりそう(演劇とかインディーズのバンドマンみたいな感じ?)
- 農業、漁業はなくならないが、だいぶ厳しそう
- 医療、介護は国の税収とその予算配分次第というところがあるので、なんともいえない。日本全体が貧乏になったら厳しそう
- 自動車は、トヨタを除けば厳しそう。トヨタも油断できない

ん?あれ?良さそうどころか、現状維持なところも思いつかない。
日本に産業が残ってさえすれば、その産業を支えるためのITが必要で、結局IT系がいいのかなぁ。

10年後には傾向がわかると思うので、10年後には、このエントリ見直してみる。
コメント(0) 
共通テーマ:日記・雑感

紙の新聞とテレビ放送の衰退 [日記]

レシプロエンジンなくなる、とは書いてみたものの https://nakagami.blog.ss-blog.jp/2020-09-07
(途上国とか)まだまだ必要とされている場面もあり、本当に自分が死ぬ前になくなるかわからない。
しかし、紙の新聞はなくなるだろう。

電車で新聞を読んでる人を見ることなくなったが、今って駅の売店って新聞売ってるんだろうか?
コンビニでスポーツ新聞を売っているは見るけど、あの中に一般紙とか経済紙とかあるのかなぁ、今度注意深く見てみよう。
新聞を必要があって読んでいる人は、ネット購読のが便利なので、家庭で新聞とっている人って、老人だけなんじゃなかろうか。かく言う、うちは、かみさんの趣味で読み物として新聞とっている。しかし、かみさん以外は新聞をほとんど読まない。
ニュース自体は、SNSやらで知ってたりするので、ニュースを知るという意味ではあまり困ってない。
最近は、テレビもあまり見ないので、テレビ欄も見る必要がない。テレビ欄見るより、ネットで検索した方が早いっていうのもある。
押し紙があるので、新聞社は紙の新聞をなかなか辞めないだろうが、その前に販売店は耐えられないだろう。
新聞社は、ネット上のコンテンツ配信企業として生き残ると思うけど、取材スタッフは維持できるだろうか?

テレビも、民放はコンテンツをインターネット配信する会社が電波放送もしているという体制じゃないと難しいと思う。
最近、昼のテレビの CM が、健康食品の宣伝で「先着〇〇名様に限り××円!」ってやっていて、「AMラジオじゃん!」って思う。あのCMでスポンサーが元を取れるということは、あの時間帯のスポンサー料って、だいぶ安いんだろうなぁ。
週末の昼間は、ドラマの見逃し再放送とか、同じ俳優の出ていた以前のドラマの再放送で、下手したら間に入るCMも番宣だったりする。あれは、どうやって制作費を捻出してるんだろう。本放送の予算の中でやってるんだろうか?
ラジオがマイナーなメディアで多くの人が radiko で聞くようになったように、テレビもマイナーになっていくだろう

新聞も、テレビも僕が子供の頃には、今の状態が想像できなかった。
コメント(0) 
共通テーマ:日記・雑感

レシプロエンジンの自動車 [日記]

僕の子供の頃には実用化されていて、永遠に(ものごとに永遠がないにしても、僕の死後100年は)使われると思っていた自動車のレシプロエンジン、ひょっとしたら、僕が死ぬまでになくなっちゃうのかもしれない、と最近になって思うようになった。
レシプロエンジンの自動車の方がエネルギー効率がいいだろうと思っていたが、すでに、火力発電で発電した電力で自動車を走らせた方がエネルギー効率は良いそうである。

エネルギー効率や、環境への配慮だけでなく、レシプロエンジンやハイブリッド車の燃費性能だと EU や北米のメーカーが、日本やアジアのメーカーに敵わないので、法律で規制してEV に誘導していくと思う。
リチウムイオン電池を自動車に積むのは無理があると思っているが、そのうち別の形式の電池(燃料電池車とか)が開発されて、そのときには、EVで開発されているモーターがレシプロエンジンを駆逐するんだろうなぁ。
世界で戦っていける日本の技術って、もう自動車しかないので、日本のメーカーには変化についていってもらいたいなぁ。

うちの周りでも、ガソリンスタンドがどんどんなくなっているので、田舎だと
「近所にガソリンスタンドがなくなったので、EV車にするしかない」
ということも、今後、日本で起きてくるんじゃなかろうか。

風の谷のナウシカでは、エンジンを新造する技術が過去の戦争で失われていて過去の遺跡から発掘したものを 100年、200年と大切に使っているという設定だった。
しかし、現実には、人類が自ら(必要なくなって)捨てていくんだろうなぁ。
コメント(0) 
共通テーマ:日記・雑感
前の10件 | -