ModuleNotFoundError No module named '_lzma'

ScrapyでSpiderを動かそうとしたらエラーになった ModuleNotFoundError: No module named '_lzma' 参考 UserWarning: Could not import the lzma module. Your installed Python is incomplete - Stack Overflow 環境 MacOS M1 asdf poetry 対応方法 pythonを再度インストールし直す必要があった # `xz` は brewでインストール済み brew install xz # asdfでpythonをインストール asdf install python 3.9.12 asdf local python 3.9.12 # poetryをインストール pip install poetry asdf reshim # ライブラリをインストールし直して、Spiderを再実行 poetry install poetry run scrapy crawl xxx_spider

May 16, 2022

BeautifulSoupを使ってWikipediaの表をスクレイピングしてみた

きっかけ 今年のNFLのドラフト結果を集計したかったが、いい感じのAPIやデータベースが見つからなかった Wikipediaの記事が綺麗にまとまっていたので、これを使ってみることにした 2022 NFL Draft - Wikipedia 作ったもの piruty/NFLDraftDatabase Wkipediaの表を読み込んでpandasに食わせるところまでを実装 やってみた感想 久しぶりにスクレイピングを実装したが、表の読み取りが結構苦労した find_all(['th', 'td']) で複数要素を選択できることを知らず… 参考: 【Python】BeautifulSoupを使ってテーブルをスクレイピング - Qiita あとはwikipediaのソースを読みながら find / find_all で無理やり取得 BeautifulSoupの機能だけで実現できたので、このライブラリ優秀だな… 次にやりたいこと DataFrameに落とし込めたので、集計してみる 他の年のドラフト結果も取得してみる NFLのドラフト結果の考察を読む

May 14, 2022

YoutubeAPIで検索するCLIを作ってみた

作ったもの piruty/WakuwakuYoutubeAPI 参考にしたもの Youtube API YouTube Data APIの使い方 - Qiita Click Welcome to Click — Click Documentation (8.1.x) やったこと GCPでプロジェクトを作る APIキーを発行する YoutubeAPIの利用を許可する YoutubeAPIで検索する機能をPythonで実装 Clickを使った実装に修正 感想 検索するだけなら、APIキーを取得するだけでほぼ完了するのですごく簡単 生のURLを叩いてリクエストしているが、多分Youtubeの検索を実行するライブラリあるだろうなと思っている 未調査 次は、YoutubeAPIを実行した結果を元に一覧を表示する画面を作りたい

May 11, 2022

Flutterでカメラアプリを実装する

何故やりたかったか? カメラで撮った画像を色々操作するアプリを作りたい Flutterに興味があったのでやってみた 参考にしたもの 【Flutter】カメラ機能を実装する 大まかな実装はここを参考に [Flutter/Android]「エラー: シンボルを見つけられません・・・場所: クラス VERSION_CODES.○」の対処法 | プログラミング挫折撲滅プロジェクト・みんなのプログラミング by Telulu LLC(FlutterでiOS/Androidスマホアプリ開発) 一部エラーで動かなかったのでここを参考に対応 作ったもの https://github.com/piruty/flutter_camera_tutorials 写経して動かしただけ 感想 思ったよりも簡単にできた ライブラリのおかげ デバイスの機能を使うのでハイブリットアプリだと難しいと思っていた 次は、「撮影した画像を加工するアプリ」を作りたい 白黒加工・人の顔にフォーカスを当てる など

April 30, 2022

titan pocketの初期設定

初期設定前 Oppoでandroidバックアップを取る バックアップ機能が画面ロック有効だと動かず ロックを解除してバックアップは取れた ロック設定と指紋と顔の認証が紐付いていたので、全部消えてしまった… 初期設定 wifi設定してからバックアップから復元 アプリごとの設定は引き継がれなかったのでそれぞれ個別に設定 初期設定後 homeボタンの設定変更 デフォルト設定だとタイプ中にHOME画面に戻されることが多々起きたので設定 設定アプリ スマートアシスト → 更なる機能 → HOMEキー機能 「HOMEボタンをダブルクリックして画面をロックします」に変更 アシスタントアプリの無効化 HOMEボタンを押すたびにアシスタントが呼び出され、邪魔だと感じたので無効化 設定アプリ アプリと通知 → 詳細設定 → デフォルトのアプリ 「デジタル アシスタント アプリ」を「なし」に変更 Miniモード有効化 画面が小さくのアス比が1:1になってしまうので、一部アプリが正常に表示されない アス比を4:3ぐらいに調整してくれる機能 設定アプリ スマートアシスト → Miniモード 「オン」を有効化 スクロールアシスト有効 上下スワイプでスクロールできるようにしてくれる 設定アプリ スマートアシスト → スクロールアシスト 「スクロールアシスト」を有効化 キーボードショートカット有効化 画面サイズが小さいためHOME画面のページ数が多くなりがち よく使うアプリをすぐに起動できるように設定 設定アプリ スマートアシスト → キーボードショートカット 「キーボードショートカット」を有効化し、設定を追加 キーボードアプリ「AquaMozc for Titan」の購入 ネット検索して評判が良かったので購入 AquaMozc for Titan - Google Play のアプリ 【Titan Pocket】日本語入力が飛躍的に改善するAquaMozc for Titanを購入インストール【再追記】 - 伊藤浩一のモバイルライフ応援団 BiglobeモバイルのAPN設定 BiglobeモバイルのSIMを入れただけだと4Gで通信できなかった 「BIGLOBEモバイル」接続設定方法:BIGLOBE会員サポート

April 30, 2022

2022 Super Bowl LVIを視聴した。

どんな試合だったか? ロースコアの緊張感のある試合だった ジョーバロウは可能性を感じさせた 最後はラムズの自力が勝った 感想 活躍するべき人が活躍した試合 お互いトリックプレーもあり、見ごたえがあった 来年に向けて ブレイディはもういない… と思ったら、どうやら復帰するらしい ペイトリオッツのQBが気になる 古き良きパサータイプのQBに頑張ってもらいたい

February 19, 2022

Rustでエディタを書いている

2022/1からRustでエディタを実装している。 なぜエディタをかいているか? プログラマとしての成長の鈍化を感じていた時に、過去に所属した企業で教えてもらった「プログラマをやっていくなら、OS・エディタ・コンパイラは一度作ってみると良い」とアドバイスを思い出した。 これまではあまり気にしていなかったが、実際に調べてみると自分の知らないことも多く、またチュートリアルやドキュメントも多くあり、意外と実装できることがわかって楽しくなった。 何を元に実装しているか? 自分は「Kilo」というエディタのチュートリアルを参考にしている。 Build Your Own Text Editor ターミナルで動くエディタをC言語で実装する方法が説明されている。 外部ライブラリを使ったりはせず、本当にC言語のみで実装する。 基本的な編集機能からファイルの読み込み、検索やシンタックスハイライトまで、1000行程度の実装でありながらエディタとして最低限の機能は実装する。 また、シンプルな実装なので他の言語にも移植しやすいらしく、GolangやRustで実装されているリポジトリも検索すると見つかる。 なぜRustで実装しているか? まず、「ただ写経しただけでは記憶に残りにくいから」と言うのが大きい。 全く同じものを何度も繰り返すのはしんどいので、なにか変化を起こしたくてC言語以外で実装する事を考えた。 その上でなぜRustかというと、「書きたかったから」と言うのが大きい。 モダンだし、流行ってるし。 また、OSやコンパイラなどの実装にRustは向いている(と聞いた)ので、自分の興味の方向性にもあっていると思った。 自分が実装しているリポジトリ: piruty/rust_editor: Kilo editor in rust

February 13, 2022

Obsidianを使い始めた

Markdownの文章をまとめるのに、Obsidianというアプリを使い始めた。 なぜ、Obsidianを使い始めたか? 自分はもともとNotionを使ってドキュメントを整理していた。 Notion自体は高機能で使いやすいのだが、分報に近いメモを取りながら2窓してNotionのドキュメントを参照することに難しさを感じていた。 また、個人的にNotionは「特定の項目に対する内容を一つのページに纏める」という使い方をしているので、断片的なメモを書きなぐるのには使いにくさを感じていた。 そこで、Notionに変わるシンプルなエディタを探していて、今回Obsidianを使ってみることにした Obsidianの何が良かったか Obsidianの良かったポイントは大きく以下の3つ プラグインが豊富 VIMのキーバインドで使える ライブプレビュー機能がある 自分は以前もObsidianを使っていた時期があるが、ここ数年は使っていなかった。 今回改めて使い始めたところ、コミュニティが開発しているプラグインが非常に充実していることに気がついた。 ObidianはシンプルなMarkdownエディタだが、プラグインを追加することでカンバンを追加したり絵文字を挿入できるようになる。 カレンダーを表示させてデイリーメモと連携するプラグインもある。 プラグインを活用すればNotionぐらいには使えるようになるのでは…と感じた。 Obsidianは公式のプラグインでVIMのキーバインドがサポートされている。 開発もVIMで行っているので、同じ感覚でドキュメント操作できるのは非常に嬉しい。 ドキュメントを編集する限りにおいては違和感も感じることなく使えている。 また、ObsidianはMarkdownのライブプレビューに対応している。 つまり、Markdownのタグを書くとエディタ上で変換して表示してくれる。 NotionのMarkdownエディタの強みとしてこのライブプレビューがあると思っていたので、これをObsidianでも体験できるのでUXは非常に良い。 スマホとの連携 ここからはおまけ。 自分はAndroidを使っていて、こちらでもObsidianアプリがある。 できればPCとスマホを連携させたいと思い検索したところ、いくつか方法が見つかった。 一番かんたんなのは公式の同期機能を契約することなのだが、今回はGoogleDriveによる同期を試している。 PC側については、GoogleDriveのアプリを入れてローカル環境で同期できるように設定を済ませておく。 その上でObsidianのVaultディレクトリを同期している場所に置くだけ。 スマホでやるときは、GoogleDriveとは別のアプリが必要になる。 というのも、GoogleDriveの公式アプリはローカルとの同期機能を提供していないためから。 今回はAutoSync for GoogleDriveを使っている。 このアプリの設定を済ませれば、スマホの任意の場所でGoogleDriveとの同期ができるようになるので、先程のVaultディレクトリが動悸されるように設定する。 スマホ版のObsidianアプリもドキュメントの保存先をローカルのディレクトリから選択・読み込みが可能なので、上で設定した場所を選ぶ。 環境構築はこれで完了。 問題点といて、AutoSyncの自動同期は「バッテリーが十分にある・Wifiにつながっている」というときにしか動いてくれないので、これに当てはまらない場合は手動で動悸する必要がある。 これがちょっとめんどくさいと感じているので、他にもっと簡単な同期方法があればそちらに移行しようと思っている。

February 11, 2022

「白と黒のとびら」を読み終わった

「白と黒のとびら」を読み終わりました。 サブタイトルにある通りオートマトンや言語の形式といったプログラマーだと馴染みのあるものが題材になっています。 読んでみましたが、○と●を組み合わせたいろいろな言語だったり文法が出てくるので、メモを取りながら読み進めたほうが良いです。 また、物語仕立てになっているので非常に読みやすいのですが、理解しなが読もうと思うと意外と難解だと感じました。 物語のあとに解説がついているので、適宜そちらを見ながら読んでいきましょう。 自分も一回通読しましたが、これから解説を読みながら2周目を読んでいこうと思っています。 作者の川添愛さんはこの他にもチューリングマシンやAIを題材とした書籍を出されています。 白と黒のとびら同様、物語になっていて読みやすそうなので、次は「精霊の箱」を読んでみようかな。

October 31, 2021

LostJudgementのストーリーをクリアした

キムタクが如くの続編「LostJudgement」のストーリーが終わりました。 難易度はEasyで、ユースドラマはほとんど飛ばして、30時間程度でクリアしました。 感想としては、 ストーリーは良かった 前作からの期待値が上がりすぎていたのでちょっと物足りなかった ストーリー進行でBP(経験値)がサクサク貯まる スキルを増やしていって戦闘が爽快になっていくのが良かった 新要素のクライミングは楽しい もっと自由にできたら良かった ユースドラマが豊富な分、町中でのサイドケースが減ってしまったのが残念 ストーリーは龍が如くシリーズだし、前作が良かったので非常に期待値は高かったです。なので、前作と比較すると物足りなさを感じてしまいますが、登場人物同士の関連やどんでん返し、表社会と裏社会の関係性など、単体としてみると非常に良くできた物語でした。 また、ストーリー進行が細かく区切られていて、その都度BPが獲得できます。特に戦闘が絡む場面になると一度に多くのBPを獲得することができるので、キムタクをサクサク強化でき、戦闘中のアクションをどんどん増やすことで楽に進められました。(個人的には、戦闘でのBP獲得量を増やすものと、△ボタンを絡めたアクションのスキルを優先的に取っていくのがおすすめです。) 今作の新要素のクライミングは要所で登場し、平面だけではなく高さも利用したステージ攻略ができるようになっています。隠しアイテムもあり、縦横にキムタクを操作するのは楽しいのですが、イベント上で発生する場所しか登れなくて残念。難しいとは思いますが、特に神室町はビルに囲まれた裏路地もたくさんあるので、もっと自由にクライミングができたら、と感じました。 また、「ストーリー進行上で自然発生するサイドケースはこれまでより少ない」と感じました。これは、ユースドラマをきっかけに発生するサイドケースが結構あるので、全体のボリュームを考えてだと思いますが、町中をスケボーで往復するだけのシーンが多く感じたので、目的を持って移動できるように町中のサイドケースはもう少しあっても良かったです。 こんな感じですが、買ってよかったです。 今は2周目ではなく、クリアデータを使って残っていたサイドケースとユースドラマを進めていて、シーズンパス付きのものを購入しているので、これに関連した特典がDL可能になったら2周目を検討します。

October 4, 2021