投稿

8月, 2019の投稿を表示しています

Firefoxのブックマークのfavicon、違うサイトのモノが表示されてしまってたので直してみた

ブックマークのFavicon表示がおかしい 追記(2020年1月31日) faviconの表示修正についてはここに書いたfavicons.sqliteを削除する方法より前に、キャッシュの削除を行った方がいいでしょう。以下、新しくブログ記事を書いておきました。 Firefoxのfavicon修正その2 一週間くらい前からだろうか?Firefoxのブックマークに表示されるfaviconのいくつかで、異なるサイトのfaviconがくっついてしまっているの数個あった。 始めはそのサイトのfaviconが変更になったのか?と思ったけど、明らかに異なるサイトのfaviconだったのでこれはFirefoxのシステム側の不具合では?と考えた。なお、一旦異なるfaviconがついてしまったサイトのブックマークを削除し、再度サイトをブックマークに登録し直してもそれでも異なるfaviconが適用されてしまう。 Firefoxを起動し直してみたらどうか?と再起動してみたが効果なし。 faviconが異なっているだけなら実用上はほぼ問題無いのだけど、どうにも足の裏に米粒が付いてしまったように気持ちが悪い。というわけで、ネットで検索して対応策を探してみることに。 対処方法 検索してみるといくつか情報が見つかった。とりあえず以下のページの情報を参考に対処してみることにした。 Fix: Firefox Displaying the Wrong Bookmark Favicons - Appuals.com ここで述べられている原因としては アドオンが悪さをしている Firefoxのバージョンが低いまま favicon用に作成されているデータベースが破損している ページキャッシュの問題 だった。また対処方法もいくつか述べられていたが、そこから確実で手軽であろう方法を試してみることに。 その方法は、Firefoxのプロファイルフォルダにある "favicons.sqlite" というファイルを削除するというもの。なおこの方法の副作用として、一旦全てのfaviconがリセットされるため、問題ないサイトのfaviconもデフォルトのモノに戻ってしまうとのこと。その場合でも再度サイトにアクセスすれば新たにfaviconが取得

Firefox : 閉じた複数Windowを次回起動時に復元(restore)する方法

イメージ
Firefoxで複数Windowを開いて利用する Firefoxはタブブラウザなので、通常であれば1つのWindowだけ使用してそこでタブを開いて使い分けるスタイルになるでしょう。 ただ開くタブが多かったりで、開くタブの種類でWindowを切り分けて使いたいという場合もあるかと思います。 今回はそういったWindowを複数使う上での話。一旦Firefoxを終了した後の次回起動時、開いていた複数のWindowをそのまま復元する方法について紹介します。 なお今回の話、Firefoxを動作させるOSとしてUbuntu 18.04 LTSを使用しています。なので他のOSでも当てはまるかは確認していません。たぶん当てはまるとは思いますが、単に確認していないというだけです。あとスマホ版のFirefoxには関係無い話です。 Windowを個別に復元する方法 まとめてWindowを復元する話の前に、個別で復元する方法を書いておきます。知っておくといろいろと便利ですので。 方法自体は以前の次のブログ記事で紹介しています。 Firefoxで最後に別ウィンドウを閉じてしまい、メインウィンドウのタブが復元されなかった場合の対処 タイトルはメインウィンドウを復元するとなっていますが、この復元方法を利用すれば個別にWindowを復元することが可能です。 Windowをまとめて復元する方法 Windowをまとめて復元する方法ですが、何か特別な方法があるわけではありません。普通にFirefoxを終了すれば、特に問題無ければ次回起動時に複数のWindowがまとめて復元されます。 そして「普通にFirefoxを終了」と書きましたが、終了するにはいくつか方法があり、終了の仕方によりまとめて復元される場合と、1つのWindowのみ復元される場合があります。 メニューを開いてQuitで閉じる Firefoxのメニューバーの右端にあるいわゆるハンバーガーメニューを開き、一番下の「Quit」を選択すると開いている全てのWindowごとFirefoxが終了します。 英語メニューとなってますが、日本語で使用している場合は適宜読み替えて下さい そして、この方法で終了すると次回起動時には開いていたWindowがまとめて復元されます。 ただ復元されるWind

Pythonでのモジュールの読み込み(import, from)

Pythonのモジュール読み込み Pythonでモジュールを読み込むとき、importやfromを用いますが読み込んだ後にモジュールの関数などを記述するときに違いがあります。 importによるモジュール読み込み 例としてmathモジュールを読み込むものとして、これをimportで読み込む場合は >>> import math とします。 また乱数のモジュールrandomを読み込む場合は >>> import random とします。 importで読み込んだモジュールの使用 ramdomモジュールの乱数を生成する関数の一つであるrandomを使用する場合は >>> random.random() とします。 またmathモジュールの定数pi(π)を使用する場合は >>> math.pi とします。 このようにモジュールの関数などを使用する場合、先頭にモジュール名を付ける必要があります。 (単に関数だけ書いて実行してもエラーとなってしまいます) 先頭に付けるモジュール名を別名にする(as) >>> import random as rd とasを用いてモジュールに対して別名を指定することが出来ます。この場合、次のように先頭に付けるモジュール名をrdとして使用出来るようになります。 >>> rd.random() fromによるモジュール読み込み importの他にfromを使ってもモジュールを読み込む方法があります。fromによるモジュール読み込みの場合、モジュールの中の特定の関数だけ読み込むことも出来ます。またimportとは異なり使うときの記述では先頭にモジュール名を付ける必要はありません。 (というかfromで読み込んだ場合、先頭にモジュール名を付けて実行するとエラーとなります) (fromで読み込む場合でもimportというキーワードを用いるので、その点はやや分かり難いかも) randomモジュールのrandom関数をfromで読み込む場合は >>> from random import random とします。そしてこれを使用する場合は >>

Ubuntu 18.04 LTSでKernelを5.0に上げてみた

イメージ
Ubuntu 18.04 LTSでKernelを5.0に上げてみました。 とりあえず、以下に参考にしたページのリンクを貼っておきます。 Ubuntu 18.04.3 LTS Arrives with Linux Kernel 5.0 - OMG! Ubuntu! Kernel/LTSEnablementStack - Ubuntu Wiki いまのマシンでは特にKernelを5.0に上げる必要性は無かったんですが、上げられるなら上げてみようかと思って上げた次第。一応、パフォーマンスの改善もあるのかな?詳しくは分からないけど。

Python : TkinterのButton、commandで指定する関数に括弧を付けるとうまく動作しない

イメージ
Tkinterのボタン配置、commandの記述でつまずく PythonのTkinterを試しているのだけど、始めのボタンを配置するサンプルコードをいじっている時点でいきなりつまずく…。 うまくいかないときのコード サンプルコード自体はうまくいくのだけど、以下のようにボタンに関数を割り当てて実行しようとするとうまくいかない。 import tkinter def func():    print("test") f = tkinter.Frame() b = tkinter.Button(f, text="test", command=func()) b.pack() f.pack() f.mainloop() このコード、一応実行は出来るしエラーも出ないのだけど、ボタンを押す前に"test"と出力されてしまうし、肝心のボタンを押しても何も出力されないという始末。 関数の括弧を外すと思ったように動作するようになる で、いろいろ調べてみていると、commandで指定する関数(ここではfunc())は括弧を付けないで記述するとのこと。 上述したコードでは b = tkinter.Button(f, text="test", command=func()) となっていたのを、以下のようにfunc()関数の括弧を外して修正。 b = tkinter.Button(f, text="test", command=func) これで実行すると、ちゃんと思った通りに機能するようになりました。 うまく実行出来た 仕組み上の話 で、なんでボタンでこういう記述をするのか調べてみると、括弧付きの関数を記述するとスクリプトを実行した時にその場で関数が呼び出さるらしい。そうならないよう関数名だけ記述することでボタンを押したときにコールバックとしてその関数が呼び出されるとかなんとか…。まぁよく分からないけれど、そういうものなんでしょう。とりあえず作る分にはそういうものとして扱って、挙動の詳細はまた時間が出来たときにでも調べることにします。 あと、lambda式という記述をするなら関数を括弧付きで書けるようです。これも自分の知識の範

Python : range関数(forループでよく用いられる関数)の挙動について

イメージ
はじめに Pythonのループ処理についていろいろ調べてる中でいろいろ気になったことがあったので、簡単にまとめることにしました。内容は結構多岐に渡ると思うので、個別にいくつかの記事として書いていく予定。そして今回はrange関数について書いていきます。 forループにおけるrange関数について Pythonのforループ、簡単なコードとしては以下のようになります。 for i in range(0, 10):   print(i) この処理ではiが0〜9までの10回ループ処理されます。 ここでrange関数は range(開始, 終了) という形で指定します。ここではiは1ずつ加算されていきますが、 range(開始, 終了, 増分) と書くと増分を指定することもできます。 例えば range(0, 10, 3) とすれば、iは "0, 3, 6, 9" と増加していくループ処理がなされます。 forループの基本的使い方 ではrange関数は一体何をしているのか? range関数単独で用いても書いたまま出力されるだけ forループとrange関数は主に一緒に用いるものですが、range関数だけでも用いることが出来ます。ただPythonのインタープリタで試してみても、range関数を単独で用いても書いた内容がそのまま出力されるだけです。何か変数にrange関数を代入しても、printで出力してもやはり書いた内容がそのまま出力されます。 range関数単独での使用 range関数をリストとして出力する 調べてみるとrange関数はシーケンスを出力するとのことで、リストに似たような形式を出力すると思われます。ということで、シーケンスをリストに変換するlist関数でこのrange関数を処理してみます。 list(range(0, 5)) とすると [0, 1, 2, 3, 4] と出力されます。 range関数をlist関数で処理 というわけで、これでrange関数が何をしているのかが見えてきました。 内部の処理はよく分かりませんが、range関数の出力はどうやら何かしらのシーケンスとなっている模様。 そしてこのようにlist関数と合わせると、range関数

gnuplotプロット例 : topコマンドの結果を取得してシステムモニターとしてプロット

イメージ
gnuplotでシステムモニターを作る 今回はgnuplotのlabels(ラベル)プロットを利用して、グラフ表示型式のシステムモニターを作ってみました。実用的に使えるかというと微妙でしかなくネタ的要素くらいなものですが、まぁモノは試しということで。 完成したもの イメージしやすいよう、始めに完成したものを以下にGIFアニメとして載せておきます。 gnuplotで作ったグラフ状システムモニター CPU負荷が高い順にプロセス名が並ぶ形で、Y軸の高さがCPU負荷を表しています。ここでは負荷が分かりやすいようyesコマンドを走らせています。なので、yesコマンドとそれを実行しているコマンドライン端末guakeの負荷が高くなっています。 また1秒につき1回CPU負荷データを取得してグラフを更新するようにしています。 ソースコード bind all "d" "break" set title "Press d key to stop the script" unset key set xrange [-1:] set yrange [0:200] while (1){ system "top -b -n 1 | head -n 17 | tail -n +7 > data01.dat" plot "data01.dat" using 0:9 with impulse lw 2 lc "black",\ "" using 0:9:12 with labels left rotate by 45 boxed offset 0,0.5 font ",10" pause 1 } 解説 topコマンドからシステム負荷を取得 元データとして、topコマンドからシステム負荷(CPU使用率)を取得したものを用います。topコマンドをバッチモード(-bオプション)でテキスト出力出来るようにして、1回だけ処理(-nオプション)をするようにします。 またこのままでは先頭行にプロットには不要な行があるので、headコマンドとtailコマンドと合わせて必要な部分だけ

スポンサーリンク