Python3 urllib

今日 Python3 で URI デコードをやろうとした。

Python 3 Porting Guide ? Porting to Python 3 v1 documentation
Python2 との違い一覧を作ってくれている人がいる、アリガトメルシー。
urllib.unquote は urllib.parse.unquote なのね。

#!/usr/bin/env python3

import urllib
print(dir(urllib))

''' output
['__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', '__path__']
'''

import urllib.parse
print(dir(urllib))

''' output
['__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', '__path__', 'parse']
'''

なんだこりゃ…

quote

当然そうなるよな、何故だ?
/usr/lib64/python3.3/urllib
を覗いてみると

urllib_zerobyte

__init__.py が 0 byte だとこういう動作になるってことなのか。
なるほど、多分どこかでこの知識が役に立つだろう。

#!/usr/bin/env python3

import urllib.parse
from gi.repository import GLib

uri = "file:///path/to/My%20Waifu.jpg"

path = urllib.parse.unquote(uri)
print(path) #=> file:///path/to/My Waifu.jpg

path, host = GLib.filename_from_uri(uri)
print(path) #=> /path/to/My Waifu.jpg

ただ unquote だと file:/// とかは普通に残るんだよな。
ホスト名があった場合(LAN 上ファイル等)も面倒だし。
Linux なら GLib を使ったほうがいいや。
こんな楽な手段を知っているので Python モジュールの知識が全然無いというのも考え物だな。

dual-boot Windows 7 and Fedora 20

正月のヒマな時間を有効にと Windows7 ミニノートの SSD 化。
そんなネタはネット上にゴロゴロ転がっているのでデュアルブートに。

Windows 7 とのデュアルブート – L’Isola di Niente

この手のネタは普段コッチに書くのだけど。
このページに張っていた下記古い記事へのリンク経由の人が多く申し訳ないので直書きに。
インストーラが新しくなって以降デュアルブートを試していなかった事も気になったので。

Celeron su2300 mini Note @ Fedora Dual Boot | PaePoi

結果、普通にインストールすれば全自動でデュアルブートになりました。
Windows を優先でブートする方法は知らない、必要無いw

しかし Windows7 再インストール後のアップデートには本当にゲンナリ。
.NET のアップデートは何故ウン時間も掛かるのやら。
SSD 化で期待した PowerShell や IronPython の初期化速度もガッカリ。
むしろ倍以上時間差があった Fedora の起動速度との差がなくなる事態に。

これなら持ち歩きも Fedora でいいな、年に数回しか持ち歩かないけど。

ついでにに本サイト全ページの HTML5 化とスマートフォン対応化。
スマホ対応は下記をヘッダに入れるだけで基本終わりなんだけど。

<meta name="viewport" content="width=device-width" />

CSS も幅指定している部分があったので JavaScript で切り替え等をするはめに。
それと画像がはみ出すので変更していたら内容やスクショの古さが気になって…
全然整理が終わらない、物凄く忙しい正月になってしまった。

PowerShell tr command

こんなページを見つけた
エクスプローラからコマンドプロンプトやPowerShellを開いたり, その逆をする方法のまとめ – Qiita [キータ]

うおぉ!アドレスバーから起動すれば cmd.exe のカレントディレクトリにできるのか。
minipoli 必要無いジャン…

ついでに Shift を押しながら右クリックすると

path_copy

知らなかった。
マジで minipoli 必要無いジャン orz…

いや、URI 変換コピーとかがあるからまだ戦える、かも。
なんか小物フリーソフトって本格的に終わってしまったよね。

ついでに。

#nautilus `pwd`
nautilus .

GNOME の Nautilus もドットでカレントディレクトリを開くことができた。
そりゃそうか、今まで上のコマンドを打っていた筆者はアホだったのか。

**********

ということで。
久々に Windows を起動したので PowerShell ネタを。

以前エイリアスで grep コマンドを利用できるようにしたので今回は tr でも。
完全に再現する必要は無いと思うけど正規表現くらいは使えるようにしたいな。

$input に Pipe から送られてくるデータが入っているらしい。
-replace ではなく -creplace なら大文字小文字を区別するようだ。
正規表現については勝手にやってくれる、と思う。

function global:Tr {
    Param([string]$s1, [string]$s2)
    $input -creplace $s1, $s2
}

profile

%USERPROFILE%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
に追記、なんかアッサリ作れてしまったけど本当にコレでいいのかな?

command

正規表現も使える、筆者が使う範囲ならこれで十分だ。
sed は別の人がやってくれるだろう。

問題はリダイレクトすると文字列が BOM 付き UTF-16LE になってしまうこと…
せっかく高機能なのに普通に使おうとすると中途半端なんだよなぁ。

追記

UNIXの部屋 コマンド検索:tr (*BSD/Linux)

ちょっと勘違いしていたな…

まあいいか、sed の代わりにも使えるし。

Fedora 20 Install (SSD) part3

## localhost
[すべての設定][詳細]のエントリ部でホスト名が変更できるのは今までと同じ。
Fedora 18 localhost | PaePoi
でも /etc/hosts を変更せずに http://localhost が利用できるみたい。
/etc/sysconfig/network はまったくの空になった、もう無意味なんだろう。

## Logout
gsettings set org.gnome.shell always-show-log-out true
でログアウトが有効になるが今回から再ログインせずに利用できるようだ。

## ibus-kkc
アクティブ状態が変わるとひらがなでも直接入力になる場合がたまにあるな。
あと US キーボードなのに日本語と認識してしまった場合もある。
JP は消しているし Fedora 19 ではこんなことは無かったのだけど。
Fedora 19 時はアプリが落っこちていたんだけどさ、落ちるよりイイや。

## Application
新規アプリケーションと更新したアプリケーション
GNOME はこんなに用意したのに「時計」しかデフォルトで入っていない。
どれもこれもタッチパネルを意識して作ったという感じだけど。

違いが無いのもつまらないので「メモ」を入れてみる。
bijibin というコマンドのようだ、「ドキュメント」とは別物なのかな。

bijiben001

なんか盛大に WARNING を吐いてくれるのだがwww
落ちたりフリーズしたりはしないけどさ。

自動保存、一行目がタイトルにってまるで Gjots2 ではないか。
右上ボタンを押してコレクションとしてまとめられる、なるほど。
~/.local/share/bijiben/*.note もしくはクラウドに XML で保存か。

一画面で使えるので Tomboy, Gnote なんかより圧倒的に使い易い。
そういえば筆者はメモアプリを作っていたな、公開終了するか…
タイトルだけで管理するよりプレビューがあったほうがいいのは当然かと。

bijiben002

文字列選択を行うとこんなのが浮いてくる。
もうまさしくタッチパネル用という感じだけどコレもアリだなと。
やばい凄く気に入りそう、今はイマイチ不安定だけど。

Fedora 20 Install (SSD) part2

Fedora 20 にアプリケーションを入れる。

おぉ、RPM Fusion リポジトリ追加が GUI でできた。
google-chrome も rpm の W クリックで入った、初めてかも。

Ubuntu ではあたりまえのこんなことで感動w
インストール開始ダイアログが出るまで異様に時間が掛かるので yum コマンドを使ったほうがいいと思うけど。

しかし新しいパッケージマネージャは使い難いぞ。

Eye of GNOME は eog で検索しても出てこない、フルネームでやっと出る。
Sylpheed とかだとフルネームでも出てこない、検索窓が使えなさすぎる。
しかも Sylpheed を探したらニュースカテゴリにあった、ワケガワカラン。

ghex, brasero, gimp なんかは普通に検索で見つかる。
どういう基準で検索ワードを制定しているかよくわからない。

php とかどうやっても出てこない。

sudo yum install php

で httpd も入る、こういうのは yum コマンドを打てコノヤロウ!なのね。

Flash をリポジトリに追加しても当然出てこない。

sudo yum install flash-plugin

これすらコマンドとは…

てゆーか、手動アップデートがうまくいかない。
すべての設定→詳細を開いた時のボタンがまったく反応しないってどうよ。

sudo yum update

やはりコマンド、初期不具合だと信じたい。

ま、なんだかんだで再構築はできた。

__________

GNOME3 を筆者のように US キーボードで利用する場合
当然 Zenkaku_Hankaku キーは無いので ibus-kkc を切り替えできない。
Alt+` は GNOME が利用している、Alt+@ は押しづらい。

Super+Space で切り替えもいいのだけど動作に問題が多い。
なので ibus-kkc の設定を開いて

alt_space

[ひらがな] 部と [直接入力] 部に Alt+Space で上書き。
キーはお好みで、Alt+Space 位置なら US キー Mac で迷わないかも。
トグルにはなっていないので両方を書き換える必要がある。
これで文字入力も快適。

__________

アプリ選択画面がページ単位になっている、つまりスマホみたいに。
アプリを色々導入し Super+A でマウスホイールを回してギョッとした。

gsettings set org.gnome.shell app-folder-categories “[‘Utilities’, ‘Sundry’, ‘Office’]”
で LiberOffice がまとまるようにしてくれた、使わないしコレでいこう。

RPM Fusion 追加で Totem に動画ドロップでデコーダー導入だが。
19 時は全部まとめて導入できたけど今回は以前のように個別みたい。
サムネイル失敗になったら ~/.cache/thumbnails 内を削除ね。

ネットワークマネージャアプレットは有線 LAN だと表示されなくなった。
ちと不便、シンプルなのはいいけど削り過ぎだよ。