TPのつぶやき」カテゴリーアーカイブ

pandas.DataFrameを作る

indexにDatetimeIndexでdtype=’datetime64[ns]の値、Closeで100-190の値のDataFrameを作る

import pandas as pd

df_test=pd.DataFrame({
'Date':[
'2022-08-19 00:30:00',
'2022-08-19 00:45:00',
'2022-08-19 01:00:00',
'2022-08-19 01:15:00',
'2022-08-19 01:30:00',
'2022-08-19 01:45:00',
'2022-08-19 02:00:00',
'2022-08-19 02:15:00',
'2022-08-19 02:30:00',
'2022-08-19 02:45:00'],
'Close':[
100,
110,
100,
120,
140,
150,
120,
100,
180,
190]
}
)
df_i = df_test.set_index('Date')
df_i.index=pd.to_datetime(df_i.index)

中身をチェック。
class ‘pandas.core.frame.DataFrame’
DatetimeIndex: 10 entries, 2022-08-19 00:30:00 to 2022-08-19 02:45:00

df_i.info()

listに代入する
class ‘pandas._libs.tslibs.timestamps.Timestampになってる

list=[]
for da in df_i.index:
    print(type(da))
    list.append(da)

datetime型にする

type(list[0].to_pydatetime())

リストからdatetime型にする

for data in list:
    #print(type(data))
    time = data.to_pydatetime() # datetime型に変換
    #print(type(time))
    print(time)

FVWMをカスタマイズするにあたり、LinuxのWindowManagerの要件とは。

WindowManagerに必要な要件を考える。Linuxのディスクトップ環境を作る為にどうあるのか、何が必要なのかを確認する。Fvwmでは高い自由度でカスタマイズできるからである。

まずはランチャーの役目は欠かせない。マウスで起動させるか、キーボードでターミナルか、ショートカットで起動させるか。また、常用するアプリか、インストールされたアプリか。コマンドからだと、分からないものは、GUIでアイコンで起動させるか。

次にウィンドウの操作がある。どこに配置するか、大きさは、重なり方は。アイコンに収納できるか。自動の部分と、手動の部分があり、マウスで行うか、キーボードで行うか。

次に、情報を表示する部分。アイコン、メモリー、時間、ロードなど。タスクバーの部分とFVWMならボタンの部分、ページャーの部分がある。

つづく

FVWM3 メニュー keyバインディング

PopupとMenuの違いは何だろう?同じように動作するのだが。

key F11         A       M       Popup XDGMenu
key F12         A       M       Menu XDGMenu
      Types of Menus
           In fvwm there are four slightly different types of menus:

           Popup menus can appear everywhere on the screen on their own or attached to a part of a window.The Popup command opens popup menus. If the popup menu was invoked with a mouse button held down, it is closed when the button is released. The item under the pointer is then activated and the associated action is executed.

           Menu is a very similar command, but the menus it opens are slightly less transient. When invoked by clicking a mouse button, it stays open and can be navigated with no button held. But if it is invoked by a button press followed by mouse motion, it behaves exactly like a popup menu.

XDGMenuの場合は違いが分からなかった。AddToMenuで作られたMenuをマウスクリックで呼ぶ場合は、Popupの時は、右側にMenuが開く。Menuの時は、クリックなりリターンなりでアクションがあったらMenuが単独で開く、そんなところでした。

では、なんでXDGMenuだと違ったの? これ宿題

それでは、マウスでメニューを開くとする。以下をAddToMenuに記載し、メニューを開くとPopupの方は、右横にXDGMenuの中身が開いて表示される。Menuの方はクリックすると開く。その違いであった。

+ "XDG Menus" Popup XDGMenu
+ "XDG Menus" Menu XDGMenu

が、しかし一番上に記載した、キーで呼ぶ場合には、同じ挙動なんですな。これは不思議。つまりキーでメニューを呼びだす時は、PopupもMenuも同じ動作をする。これは1段目のメニューだからそうなるのであろう。2段目は違うぞ? これ宿題

FVWMを使う理由

この時代に、なぜFVWMを使っているのだろうか。
絶滅危惧種的存在のXウィンドウマネージャであるし。使う人間も絶滅危惧種的レアな人々であろうし。でも信じたいFVWMが存続し、進化し続けることを。
なぜなら、FVWMには、世界中のレアでコアな人間の希望と情熱があるからである。

という訳でFVWMが使える理由。

  • カスタマイズができる
  • 環境に依存しない
  • 環境を好みに作れる
  • 画面をとても広く使える
  • ハイバネーションを使っての利用は、やりっ放しの続きができる感がある。
  • コツコツ積み上げる感が良い
  • 自分の知恵を組み込める
  • 成長することができる
  • 簡単に済ますことができない
  • 普通ではない、そこが魅力

あえて言うと、使えない理由。

  • Linuxのノービスユーザーには、難解であろう。
  • 情報が少ない、情報が古い
  • どこから、どうカスタマイズしたら良いか分からない
  • 初期の設定だと、とてもださい。以前のよりは改良されているのだが。

そんなとこですかね。

fvwm3のManual Pageですが。驚異的な莫大な量です。manの歴代一位の長さと言えますか。親切丁寧に書かれてるんですが。まぁすごいですよね。

https://github.com/fvwmorg/fvwm3/blob/master/doc/fvwm3/fvwm3.adoc

XDG Menusの動作が変

Regenerationを行っても再起動すると、古いMenuに戻ってしまう。設定が変わった?

これを解決するのには、古い .XDGMenuファイルを削除して新しく .XDGMenuのファイルを作ると、正常に動作するようになった。

fvwmのメニューからFvwmForm-XDGMenu-Config(Module FvwmPerl -l fvwm-menu-desktop-config.fpl)(FvwmCommand Module FvwmPerl -l fvwm-menu-desktop-config.fpl) を起動 Output pathを .fvwm2rcの .XDGMenuのファイルを読み込むパスと同じパスに設定する。
ちなみにこのモジュールのパスは/usr/share/fvwm/fvwm-menu-desktop-config.fplである。解析するにはここから。

古い環境からの .XDGMenuは削除し、XDGRegenで新しく作るのが良いという事であった。

Linuxをどう捉えるか

再びLinuxをどう捉えるかを考える。古いPC構成での活用、運用を通してのLinuxの体験を行ってみようと言う、原点に帰った気分でのLinuxの使用を行ってみる。

そこで構成したのが以下の仕様である。

OS: Ubuntu 21.04 hirsute
Kernel: x86_64 Linux 5.11.0-36-generic
Uptime: 1h 53m
Packages: 1880
Shell: bash
Resolution: 1920x1080
WM: FVWM
GTK Theme: Yaru-light [GTK3]
Icon Theme: DMZ-White
Disk: 26G / 106G (26%)
CPU: AMD A6-3500 APU with Radeon HD Graphics @ 3x 2.4GHz
GPU: AMD SUMO (DRM 2.50.0 / 5.11.0-36-generic, LLVM 12.0.0)
RAM: 1596MiB / 1925MiB

CPUは、AMD A6-3500を使用。GPUコアを備えたCPUでCPU部分に動作クロック2.1GHzのCPUコアを3つ備える。Socket FM1, Clock Speed 2.1 GHz Max Turbo Speed 2.4 GHz, Thermal Design Power 65 W , Cache Memory Details L2 – 3 MB – 3 x 1 MB, AMD Radeon HD 6530D Base Frequency 443 MHz
2011年8月に販売が開始された。

https://wiki.gentoo.org/wiki/Radeon

bookmarks.json 重複URIの削除

Mozilla Firefoxのbookmarkの解析を進めているのだが、今回は重複したURIの削除を行いたい。すべてのブックマークで表れる、エディターで手動でも行えるのだが。フォルダー毎に行うのと、重複が多いので手動では時間がかかる。bookmarks.jsonの解析を進めるのを兼ねて、スクリプトで行なってみる。jsonが扱いやすく、配列処理のコマンドがそろっているphpを使用している。
Firefoxからバックアップして出力させたbookmarks.jsonファイルを読み出して配列に代入し、その配列で処理を行いbookmarks.jsonのファイルを出力する。Firefoxで編集されたそのファイルを復元するで読み込ませて正常に表示できて、重複が消えていれば成功である。

今までやってきたこと。bookmarks.jsonの解析。phpでの配列への代入。それをファイルへ出力し編集。jsonファイルは直接編集しづらい。編集したファイルをbookmarks.jsonに変換しFirefoxde復元でbookmarkとして読み込ませた。

ここまではできる。

これからは配列から、別の配列にURIを代入し重複したURIを見つける。もとの配列から重複した配列を削除し、jsonファイルにする。ここまで行いたい。

ロジカルシンキングを考えてみる

ロジカルシンキングと言う言葉があり、主にビジネスの世界で使われている。数社のコンサルタント会社が使っているようである。
そのロジカルシンキングとは、何なのかを検証してみよう。

ロジカルシンキングの定義は

ロジカルシンキング(logical thinking)とは、一貫していて筋が通っている考え方、あるいは説明の仕方のことである。

とされている。筋が通っている?考え方?または説明の仕方?この定義だとロジカル関係なくないかな?筋が通っていればロジカルシンキングになるということなのか?甚だ疑問が浮かぶ。

日本語だと論理思考、論理的思考と言われるようだが、議論の余地があるとwikipediaでは主張されている。
また、英語圏で一般的に用いられる言葉でなく、日本で浸透してるという意味では、和製英語であると言える。

まずロジカルシンキングの「シンキング」、日本語では「思考」とは何か。

思考(しこう、英: Thinking)は、考えや思いを巡らせる行動[1]であり、結論を導き出す[2]など何かしら一定の状態に達しようとする過程において、筋道や方法など模索する精神の活動である[3] 出典Wikipedia

思考とは、思いを巡らせる行動であり、精神の活動であると定義されている。
ロジカルシンキング、論理思考とは、論理的である、思いを巡らす行動であり、精神の活動であることを意味しようとしているのか。

次にロジカルシンキングのロジカル、理論について考えてる。この場合の理論は理論学の理論ではなく、筋が通っているという意味合いで理論という言葉を使っている。具体的に何とか理論を使うというものでもなく、いくつかの方法を使用した、思考であると言っている。理論という言葉が誤って使われているのだ。wikipediaに改善の余地があると指定されているのは、その不正確な言葉の使用が理由であると伺えよう。
さらに、思考という単語も使っているが、思考は思いを巡らす行動、精神の活動であって、直接にロジカルと繋がらない、独立した別なものである。このロジカルは、思考をコントロールするものでも、影響を与えるものでもない。
つまり、ロジカルシンキングという言葉は、不正確で誤った意味に捉えかねない紛らわしく不適切な言葉であるといえる。