久しぶりのコントリビュート
コロナ騷ぎの中、久しぶりにプルリクエスト作った。
3つ!
- Remove nodenv-default-packages from install_plugin of nodenv #8
- Run anyenv install --init
- Use local variable inside instance variablels #13
簡単な修正ばかりだけど、わかってもらえるような英語を書けているかが不安。。 うけとってくれるといいな。
virtualboxでclipboardが共有されない問題
久しぶりにvirtualboxで環境作ったらclipboard共有が簡単に出来なかったのでメモ。
結果だけいうと xubuntu19.10をゲストosにしてvirtualbox-guest-x11というパッケージをゲストosでインストールするとclipbard共有が可能になります。
順序だてると以下の通り
- virtualboxのメニューから Device - Insert Guest Additions CD Image.. を利用して通常の方法でGuest Addition toolをインストール
- guest osを電源off
- virtualboxの設定から クリップボード共有 を 双方向 にする
- guest osを起動
- virtualbox-guest-x11をインストール
この状態でクリップボードの共有が可能になってます。
気になったところ
clipboard共有は結構ハマりやすい?
Investigating shared clipboard problems on X11 guests or hosts というリンクがvirtualboxのトップあたりにあったので、ハマる人多いのかな。
virtualbox-guest-x11のインストールが正解なのかがわかってない
インストール中にこんなメッセージが出てきてた。
設定ファイル '/etc/X11/Xsession.d/98vboxadd-xclient' ==> あなたかスクリプトによって設定ファイルが作成されています。 ==> パッケージメンテナが提供するパッケージにもこのファイルが存在します。 どうしますか? 以下の選択肢があります: Y か I : パッケージメンテナのバージョンをインストールする N か O : 現在インストールされている自分のバージョンを残す D : 両バージョンの差異を表示する Z : 状況を調査するためにシェルを開始する
通常の方法でインストールしたGuestAddtionの一部を書きかえているような気がするんだけど、virtualboxのアップデートの時に何か良くないことがおこる気がする。。。
なので、おすすめしません。
やった環境
- VirtualBox 6.1.4
- host
- MacBook Air (11-inch, Early 2015)
- Catalina
- guest
- xubuntu 9.10
アニメ番組表の取得について調べた
アニメ番組表が欲くって、調べてみた。
テレビとかで表示されるやつってapiで公開されてないんですね。くっそー。
スクレイピングするなら テレビ番組をキーワード検索してSlack通知するならYahoo!テレビが最強(golang+goquery) 。 ただ、今はapiが公開されてた。Annict Developers ありがたやー。
2020-01-31 日報
今日はいろいろやったので箇条書きで。
ruby2.7にするとbyebugってインストールできない?
bundle install 中にエラーでてたなぁ。pryの依存なので、はまってる人多そうだけど、今のところはクリティカルに困ってないので放置。
puppeteerのwaitむずい
Page#waiteForNavigation の記述にwaitとページ遷移させるclickをPromise.allでまとめてねって記述がこんなコードとともにあるので、waitfor全般でこういうことやらなきゃいけないのかと思ってたら、ちがったんですね。
const [response] = await Promise.all([ page.waitForNavigation(), // The promise resolves after navigation has finished page.click('a.my-link'), // Clicking the link will indirectly cause a navigation ]);
ささった言葉
puppeteerのもろもろを調べている時になるほどと思ったのは Puppeteerメモ の Puppeteerの使いどころ ってところ
コード内では ブラウザの UI 操作 を Puppeteer API に実行させ、 DOM の読み取りや加工は page.evaluate() に流す。
なんとなくこんな風に使ってる時はひどくうまくいく気がする。
各種gitホスティングサービスのissueをどっかにまとめたい(気がした)
過去からの経緯でgithub、bitbucket、gitlabを使っていて、作った当時の流れでそれぞれそれなりにリポジトリがあるんです。それぞれのサービスでissueの機能があるので、ダメなところの備忘録としてissueを使ってるんです。
ただ、各プロジェクトのページを見にいかないと思いだせない。。そして見るのは書いてから数ヶ月後。 まぁわすれるくらいの重要性なのでいいんだけど。
どっかにまとめるとそこ見にいくのになぁ。と一瞬思ったら直後に見るんだろうかと思いかえした。だって見る契機が数ヶ月に1回なんだからねぇ。 重要だったらバラけてても見にいくし、ソース読むからissue見なくてもそこそこ対処しちゃうんですよね。 とこのブログを書きながら思いました。
emacsどれつかえばいいのか問題
emacsを26にするにあたって何をつかっていいのか迷走中です。
brewではbrew caskを使うのがおすすめらしいんだけど、Catalinaにすると ~/Downloads
とかが読めないんです。
rubyに許可与えるってような 解決案もでてるんだけど、どのrubyだよって思う。rbenvに入れてるやつは少なくとも効果なし。
そもそもcaskで入れるemacsってどんなconfigureオプションでビルドされたものなんだろ? とかとか半端に知ってるものだら変になやんでしまってます。 比較してくれてるqiitaの記事もみたんだけど、やっぱ迷走。。。
DDSKKのお勉強
今さらなんですが、IMEをDDSKKに変えました。
理由はubuntuのemacsのIMEをmozcにしてたんだけど、頻繁にon/offをくりかえすとmozc-serverが死んじゃうんです。 後、macだとemacsのime-patchを探すのが結構面倒でemacsのアップデートのモチベーションを下げてたような気がするんです。
DDSKKは数年前まで使ってたんで、だいたいはわかるんだけど、細かいところでわかんなくなるのでinfoを読みながらお勉強。
Q
で後から変換モードになれるのと、変換候補を表示中に候補を送りすぎちゃった時 x
で戻せるのを今日知った。
細かいけど、知らないとイラっとするので、明日から心安らかに仕事が出来るかな。
WordPressをさわってみた
簡単なホームページを作って欲しいと声をかけていただいたので、WordPressをさわってみました。
環境自体はDockerですぐ出来たのでちょー簡単。 DockerHubのWordPressのページ にあるdocker-compose.ymlをファイルをそのまま使うと、localhost:8080でwordpressのページにアクセスできちゃう。いい世の中になりました。
テーマのカスタマイズ方法を理解できれば、それっぽいホームページは本当に10分くらいで出来るんですね。 でも、デザイナーさんは一旦htmlとcssでサイトを作りこんで、それをWordPressのテンプレートに落しこむようなことがデザイナーさんのブログに書いてあった。 やっぱり本職は違うのだなぁ。
ホスティングとなると無料でやるには一手間かけないとだめそう。 WordPress.org で紹介しているのは3つ
でいずれも、無料枠はない。 あと、WordPress.com ってWordPressのホスティングサービスがある。まぎわらしい。 WordPress.comは無料枠では独自ドメインが使えないみたい。 今のところhtmlとかを作ってfirebaseにあげる方法が一番有力。
このあたりを参考にやってみようと思います。
最後にこれから試そうとしているテーマはこんなのです。
- Make
- drag and drop page builder???高機能そう
- Responsive
- 色あいがなんとなく気にいった
- WP Bootstrap
- いちばんなれてるから一回はためそう
factory_botの続き
昨日の日記 でfactory_botの文句を言ったんだけど、心を入れかえて、ドキュメントを読んでみました。
callbackという機能があってそれを使うとやりたいことが出来た。(ヤッター)
FactoryBot.define do factory :poduct, class: 'Product' do after(:build) do |product| product.items = [FactoryBot.build(:low_item), FactoryBot.build(:high_item)] end factory :low_item, class: 'Item' factory :high_item, class: 'Item' end