madokaのブログ

勉強したことのoutput先として使ってます。内容はpythonがらみが多いかもです。

Notionのススメ

半年前くらいに機能の多さに惚れて、Dropbox PaperからNotionに移行しました。なかでもNotionの推しであるデータベースとメモを結びつける管理がとても便利ですっかりNotionに惚れ込んでしまいました。今回はそのNotionのデータベースの使い方について紹介し…

yarnとnpmの違いって?

新しく配属されたプロジェクトでパッケージマネージャはyarn使ってるからーと言われて、今までnpmしか使ったことがなかったのでなんなのそれってことで調べてときの記録を書くます。ついでにnode.js使ってるわりにサーバ側のjsくらいの知識しかなかったので…

pyenv+matplotlibで発生するエラーを回避する

タイトルの通り、pyenvで取得したpythonでmatplotlibを使おうとしたときの話です。 macOS Mojave 10.14.6 Homebrew 2.2.11 pyenv 1.2.15 python 3.7.5 import matplotlib.pyplot as plt ... plt.show() このようなグラフ表示を伴うコードを書くと以下のよう…

pythonでデコレーターを作るときに気をつけたいこと

sphinxでドキュメントを作成しようと思ったのですが、デコレーターをつけた関数の説明が軒並みおかしいので調べたところ、functools.wrapsというものの存在を知ったので記事にします。 デコレーターの書き方 pythonではデコレーターは以下のように作ります。…

shellでtry-catchをする

例えば以下のようなコードで、移動先のディレクトリがなかったらhelloはechoされないとわたしは思っていたのですが、実際のところはhelloまで出でしまいます。 #!/bin/sh cd hoge echo hello ↓出力 sample.sh: line 3: cd: hoge: No such file or directory …

デデンネの総合順位をスクレイピングして求めた話

2月の初旬に好きなポケモンがgoogleで投票できましたが、皆さんはデデンネに投票してくださいましたでしょうか? さて、2020/02/27はポケモンの日。前述した投票の結果も、この日の23時に公開されました。公開された情報は、総合TOP30および各地方のTOP30…

Go 日時フォーマットについて

go

Goにて日時をフォーマットしようと思い、よくみる%y%M%dを書いたところ、上手くいかなかったため調べてみました。 Goでは20060102と書くと同様のフォーマットができるみたいです。 Goでは日時フォーマットに使う日時が決まっている なんとGoでは日時フォーマ…

PHPの勉強まとめ

環境構築 PHPのversion管理をする..env的なのはあるが、brewで入れられないので少し面倒。。 phpbrewとphpenvというものが見つかった。 適当に2つ調べてみるとphpenvのinstallでつまずいたときの対処法を書いた記事が多く出てきたため、phpbrew を採用した…

自作git hooksをリポジトリを越えて共有する

git

自作のgit hooksを一つのリポジトリだけでなく他のものでも使いたくて、今まではそれぞれのリポジトリにコピーを持っていていました。ただこの方法だと、編集などが加わるとすべて直さなければいけないことや、というか毎度コピーめんどくさいのです。このよ…

多重継承において取得できるメソッドやプロパティはどれ?

pythonでは多重継承ができます。もし同じメソッド、プロパティを持つクラス2つを継承した場合、どちらが取得できるのでしょうか。 下記にこれを検証するプログラムを書きました。 クラス名 継承順番 初期化順番 C A, B A, B D B, A A, B E A, B B, A このよ…

Pythonをつかってドラゴンズの試合結果を取得する

ドラゴンズの試合状況をサクッと取得できるようにしたいということで、野球の試合状況について、試合の状況(1回表、試合前)や対戦相手、得点状況を取得するプログラムを組みました。 今回は下記のyahooスポーツから情報を取得することにしました。 baseball.…

git rebaseが捗るオプション紹介

git

git rebaseでfixupやsquashをよくつかうわたしが出会って感動したオプションたちを紹介してこうと思います。 rebase.autostash git rebase を行うとき、編集差分がある状態では実行できないため、stashして下さいてきなコメントが出てやり直しとなってしまう…

slackアプリで送信したurlを展開する

slackにてurlを貼ってメッセージを送信すると自分のアカウントではurl展開されてページの概要のようなものが見れるのに、incoming webhooksから送られたurlは展開されないということに気がつきました。もちろんincoming webhooksでも展開して欲しいので調べ…

「DNSをはじめよう」を読んでまとめてみた

mochikoAsTechさんの書いた「DNSをはじめよう」を読んで自分なりにまとめてみました。 ドメインの取得 ドメインの伝搬 レジストリ -> レジストラ -> リセラ レジストリ(登録管理組織): ドメインを一括管理する組織 レジストラ(登録事業者): レジストリからド…

numpyをjson.dumpするときに気をつけたいこと

numpyの数値をほかのintやfloat型と同様にjson dumpしようとして、できたりできなかったりすることがあった。 どうやらfloat64はできるのにint64はできないらしい。 どの型ならそのままdumpできるのか どの型ならそのままdumpできるのか、testしてみました。…

AWS Lambdaで時刻を扱う

Lambdaにてdatetime.now()を用いて、現在時刻との時間比較を行うApplicationを作っていたところ、どうも時間比較が想定と違う動きをしているぞと悩んでました。ふとLambdaのTimeZoneが違うのでは!と頭をよぎったので調べてみました。 LambdaのTimeZoneは、…

雨の予報をslackに通知する

外に出かけると屋内にいることが多くて、雨が降ったことも気付かないことがしばしばある。雨が降っているのであれば雨が止むまで待てば良いし、降り止んでいるのならそのまま帰ればいいしで、とくに問題があることはない。しかし、そんな日に洗濯物を外に干…

pyqueryとBeautifulSoupの比較

lambdaにてpyqueryを使ったものをアップロードして利用しようとしたところ、エラーが発生してしまいました。pyquery中のetreeというパッケージが存在しないとのこと。おそらくetreeのデータをsite-packagesの中に組み込めば動くようになると考えられるのです…

YOLPを使って1時間以内の雨予報を取得する

休日なので外に洗濯物干してひきこもってたのですが、知らないうちにあめがふってたぽい?なことがありました。 そこで1日の天気予報とかではなく、もっと1時間とかの近い時間帯について雨の情報をおしらせしてくれるものがほしいなと思いました。 まずは…

pythonの参照型をデフォルト引数にすることとは

javaをメインにお仕事してたので、なかなかお目にかかることのなかったデフォルト引数 (javaにはない) 。最近pythonを書いていて、たまたまデフォルト引数にlistをいれてみようかなと思って書いてみたら、intelliJさんに黄色くされたので気になって調べてみ…

macでcron的なことをする

macで定期実行はcronではなく、launchdがおすすめ macでもcronは使えるらしいが、launchdを利用することが推奨されているらしいので、launchdで書きます。 今回動かすコマンド $ /bin/sh path/to/test1.sh のコマンドを動かしてもらいます。 念のためfull pa…

golangでファイルパスを扱う際に気をつけたいこと

go

きっかけ golangの標準ライブラリを使って、ファイルパスを扱うコードを書きました。自分はMacを使っていたので問題はなかったのですが、同じコードをWindowsに持っていったら、ファイルパスがうまく取れない事態が発生。あまりにもびっくりだったので、ここ…

.gitignoreを変更せずに、ファイルを無視したい

動機 この度、intelliJのUltimate版を購入したのがきっかけで、.gitignoreファイルに.ideaを追記したくなったのが事の発端。 しかし、自分の事情だけでファイルを変更するのは、あまり好ましくありません。 ということで、他の方法で対象から外す方法を調査…

pythonのプロジェクトごとにパッケージを管理する

動機 Pythonをお仕事でも使うことになり、自分の環境だけでなく、他の環境でもすぐ動くようにする必要が出てきたので、pyenv-vertualenvを利用して環境構築をしました。その際の覚え書きです。 まずはインストール(Mac) Homebrewを使って、pyenvとpyenv-virt…