2020年3月28日土曜日

サクラエディタで全角文字を半角文字に変換

日経ソフトウェアの目次をテキストにコピペしたら、なんと英数字が全角という。。
ページ番号は半角数字なので謎過ぎます。

特集1 2大人気言語 Python&JavaScript同時入門
・2大人気言語 Python&JavaScript同時入門
一緒に学べば効率的! 比較するからよくわかる(006p)
特集2 不動産価格 「予測AI」 を作る
・不動産価格 「予測AI」 を作る 買いどきを確実に知りたい! (028p)

 見た目に気持ち悪いので、これらを一括で変換する方法を探しました。

マクロを探すまでもなく、機能が用意されていました。
「変換」→「全角英数→半角英数(A)」
キーボードで操作する場合は
Ctrl+A → Alt+C → A

マクロで実行するには、
zen-han.mac
//キーボードマクロのファイル
S_SelectAll(0); // すべて選択
S_ToHanEi(0); // 全角英数→半角英数
これで保存して登録すればオッケーです!!

・「共通設定」→「マクロ」→[名前], [Id], [File]を設定→設定」→「OK」
・「共通設定」→「ツールバー」→「種別:外部マクロ」→「作成したマクロ」→「→」で登録



2020年1月12日日曜日

おうちで学べるデータベースのきほんのハマったとこ

前提:第3版を読んでいます

p.182
都市の名称の最大値、最小値の部分

mysql> select max (name) from city where countrycode = 'JPN';
ERROR 1630 (42000): FUNCTION world.max does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual

何がエラーか解らなかったけど、、

mysql> select max(name) from city where countrycode='JPN';
+-----------+
| max(name) |
+-----------+
| Zama      |
+-----------+
1 row in set (0.01 sec)

答え:maxとカッコの間に半角空白が入っているとエラーになります。
冊子では明らかにスペースがあるんだけど…。

***** ----- ***** ----- *****

p.192
人口を更新するクエリ
mysql> update city set name = 'Kyoto',population = 1469069 where countrycode='JPN' and district = 'Kyoto' and name = 'Kioto';
Query OK, 0 rows affected (0.00 sec)

p.188のStep1でKyotoに変更しているので、この流れのままだと変更されません。
mysql> update city set name = 'Kyoto',population = 1469069 where countrycode='JPN' and district = 'Kyoto' and name = 'Kyoto';
が正しいです。

***** ----- ***** ----- *****

正誤表
https://www.shoeisha.co.jp/book/detail/9784798135168

MySQL8サーバへ外部から接続


192.168.11.10のPCにMySQL(サーバとクライアント)をインストールして、
「Command Line Client」で接続しているのですが、別のホスト(192.168.11.15)から接続したくなりました。

現状、192.168.11.10から
①OK:「Command Line Client」で「パスワード」
②NG:コマンドプロンプトで「mysql -u root -p」
③NG:コマンドプロンプトで「"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" -h 192.168.11.10 -u root -p」
④OK:コマンドプロンプトで「"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" -u root -p」

という状態で、「mysqlのパスが通っていない」、「localhostしか接続が許可されてない」状態のようです。

■パスを通す
Windows10の場合、コンパネのシステムプロパティから「環境変数」の「Path」に新規に
「C:\Program Files\MySQL\MySQL Server 8.0\bin」を設定すればOKです。
コマンドプロンプトで「mysql --version」と実行してエラーがなければOKです。

■現状確認

mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

rootはlocalhostからしかアクセスできない(らしい)

■localhost以外からの接続を許可する
mysql>create user 'root'@'192.168.11.%' identified by 'パスワード';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.11.%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)

※mysql8.xはググってヒットする内容と設定方法が変わって糞ハマりました。。
「grant all privileges on *.* to user1@"192.168.1.%" identified by 'パスワード' with grant option;」
上記は古いMySQLのコマンドなので、エラーが出ます。

'パスワード'は現状と違うパスワードを入れると、ローカル接続とリモートパスワードが異なるのでこれもハマりポイントでした。。参照したサイトが'root'と記載していた。。

mysql> select user,host from mysql.user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | %               | ←間違えてrootをパスワードとして追加してしまった
| root             | 192.168.11.0/24 | ←間違えてrootをパスワードとして追加してしまった
| mysql.infoschema | localhost       |
| mysql.session    | localhost       |
| mysql.sys        | localhost       |
| root             | localhost       |
+------------------+-----------------+

その場合、ややこしいのでユーザ設定を削除しましょう。
mysql> drop user 'root'@'192.168.11.0/24';
Query OK, 0 rows affected (0.01 sec)

mysql> drop user 'root'@'%';
Query OK, 0 rows affected (0.01 sec)

これで、やっと接続できるようになりました。
・192.168.11.10からC:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -h 192.168.11.10 -u root -p
・192.168.11.15からは「HeidiSQL」というソフトを使って接続できています

はーーーー、、、、疲れた。。


2020年1月4日土曜日

Office Excel 2016 桁区切りを使うとフォントが変わる

ある計算をして、大きい数値になったときに桁区切りボタンを使うと数値が見やすくなります。

今回の状況、計算結果 : 15678000

ただ、桁区切りボタンをそのセルに適用するとフォントが変わってしまうという現象が起きました。

こちら元の状態(フォントはIPAゴシック)




桁区切りボタンを押した後(フォントはMS Pゴシック)



この汚いフォントになぜ勝手に変わってしまうのか悩みましたが、解決方法が分かりましたので
備忘で記載しておきます。

***** ----- ***** ----- *****

「ホーム」タブ → 「セルのスタイル」をクリック → 「桁区切り」を右クリック → 「変更」をクリック














「フォント」のチェックを外す















これで次回からヘンなフォントにならなくなります。

Excelのバージョン確認(2016)

・ファイルを開いた状態から
 → 「ファイル」→「アカウント」

でバージョンが確認できました。


2019年12月29日日曜日

Anacondaの作業フォルダとプロンプトを変更する(Windows10 64bit)

Anacondaは実行すると作業フォルダは下記がデフォルトになります。

C:\Users\ユーザ名\

これ、不要なフォルダが表示されて作業したい.pyファイルが探しづらいんですよね。。

なので、デフォルトの作業フォルダを変更したいと思います。

旧: C:\Users\ユーザ名\
新: C:\Users\Desktop\Dropbox_xx\Dropbox\JupyterHome\
↑ 「\U」がパスに含まれると失敗する可能性大です!
(別環境で「r'C:~」として動いているのですが、今回の環境ではエラーとなりました)
https://ja.stackoverflow.com/a/11585 も試しましたがダメでした。

新: C:\Dropbox_xx\Dropbox\JupyterHome

スタートメニュー → Anaconda3(64bit) → Anaconda Prompt を起動

プロンプトが起動したら、下記のコマンドを入力

(base) C:\Users\ユーザ名>jupyter notebook --generate-config

Writing default config to: C:\Users\ユーザ名\.jupyter\jupyter_notebook_config.py

ユーザ名の配下に「.jupyter」フォルダができているので、jupyter_notebook_config.pyを
テキストエディタで開く。
「c.NotebookApp.notebook_dir =」を検索して、行頭の#を削除して、’’の間に
作業フォルダを入力する。

c.NotebookApp.notebook_dir = 'C:\Dropbox_xx\Dropbox\JupyterHome'

※これで期待した動作にならない場合は、Jupyter Notebookプロパティを開いて、リンク先の
%USERPROFILE%
を削除すると動作するとの情報もありました。

3時間近くハマってしまった…。

今回の環境 conda info
platform : win-64
user-agent : conda/4.7.12 requests/2.22.0 CPython/3.7.4 Windows/10 Windows/10.0.17134

2019年11月28日木曜日

python3 Webサーバ実行時の文字化け

「実践力を身につける Pythonの教科書」というPythonプログラミングで学習中です。

この本のP.224 HTMLフォームをブラウザで表示したら文字化けしてしまった。
ソースはこれ↓
<meta charset="UTF-8">
<form>
  <input type="text" name="body" value="">
  <input type="hidden" name="mode" value="read">
  <input type="submit" value="発言">
</form>
このファイルはUTF-8で保存しているのだけど、Google Chromeではshift-jisで表示されたため
文字化けしていることがわかった。

※現在のchromeではエンコードを手動で変更できなくなってしまったので
下記の拡張機能を使うと変更できるようになる。
テキストエンコーディング - Chrome ウェブストア

これを使ってshift-jisに変更すると、たしかに表示されるようになった。
でも、元々UTF-8で保存したのがなぜshift-jisになったのかというと、
インストールしているPythonがshift-jisで出力する設定になっているらしい。

>>> import sys
>>> print(sys.stdout.encoding)
cp932
>>> 
***** ----- ***** ----- *****

この本はAmazonレビューの通り読みやすく理解しやすいのでおすすめだと思います。






2019年10月29日火曜日

show runにvlanが表示されない

(1)VLAN情報が表示されない

Switch#show run

vlan 825-826
!
vlan 827
 name test

いつもは表示される、こんなVLAN設定が表示されない
 →vtp設定が「server」、「client」モードになっているかも

■確認コマンド
Switch#show vtp status
VTP Operating Mode                : Server
-------------------------------------------------

■トランスペアレントモードに設定する
Switch(config)#vtp mode transparent
Setting device to VTP Transparent mode for VLANS.


***** ----- ***** ----- *****


(2)インタフェース設定にVLANが表示されない

Switch#show run

interface GigabitEthernet0/1
 switchport trunk encapsulation dot1q
 switchport mode trunk
 media-type rj45
 negotiation auto

通信を許可するvlanが表示されない

■確認コマンド
Switch#show int trunk

Port        Mode             Encapsulation  Status        Native vlan
Gi0/1       on               802.1q         trunking      1

Port        Vlans allowed on trunk
Gi0/1       1-4094

Port        Vlans allowed and active in management domain
Gi0/1       1,825-827

Port        Vlans in spanning tree forwarding state and not pruned
Gi0/1       1,825-827

トランクポートとしてvlan1-4094を通す設定にしているから表示されなかった。
通したいvlanのみ明確に指定する必要がありました。

■Switch(config-if)#switchport trunk allowed vlan 825,826

Switch(config-if)#do sh run int gi0/1
interface GigabitEthernet0/1
 switchport trunk allowed vlan 825,826 ←表示されるようになった


2019年9月28日土曜日

tp-linkルータを買った(AC2600)

 4年ほど前の2015年にNECのAterm WG1200Sというブロードバンドルータを使っていたのですが、WiFiに接続できるMACアドレス制限機能が20台までと少なく、他にも色々不便を感じていたこともあったので、買い替えの検討をしました。

買ったのは費用的なところからAC2600(\7,590-)という製品にしました。AC5400とか、Wi-Fi6に対応している機器は2~3万するので見送りました…。

***** ----- ***** ----- *****

■セットアップ
スマホにアプリを入れて出来るらしいのですが、こちらは見送り。
セットアップ側のPCは有線LANが無いのでWi-Fiで本体にアクセスすることになります。

IP:192.168.0.1
SSID名とパスワードは本体の底面に記載されています。パスワードが数字のみなので
これは後で変更が必要ですね。

取り急ぎISPに接続出来るようにしてから速度がどれくらい変わったのか測定しましたが、驚きの結果でした。

■Google
ダウンロード 77.1Mbps → 213.6Mbps
アップロード 55.2Mbps → 212.8Mbps

Fast.com
ダウンロード 77Mbps → 370Mbps
アップロード 79Mbps → 470Mbps

ブロードバンドスピードテスト
ダウンロード 80.00Mbps → 215.63Mbps
アップロード 72.24Mbps → 171.21Mbps

いずれも3倍近い速さとなっています!!

***** ----- ***** ----- *****

自宅のNWは192.168.11.0/24で構成しているので、変更が必要になりますが、順番としては
・LAN側アドレスの変更
・DHCPの変更
・DHCP固定IP
という順番にしないとエラーとなり設定できません。
…のはずが、192.168.11.1に変更してから再起動をするとDHCPの付与範囲も自動で変更されていました。これはすごく便利!!


LANのIPアドレスを変更してから再起動すると…



















自動でDNSも変更してくれています。便利。

システムログも見れるし、Atermでの不満を一掃してくれる予感がします。
次回はWi-Fiアクセス制限、DHCP固定割り当て、ポートマッピングの設定をしたいと思います。




2019年6月3日月曜日

謎の倉庫番

twitterで見かけた謎な倉庫番ゲーム

https://juner.itch.io/sokosoko

キーボードで移動するのでスマホでは出来ないと思います。

3,4回試行錯誤してクリア出来ました。
ルールが不明だと思いますが、下のスクリーンショットがヒントになります。




























2019年4月4日木曜日

VIRLのライセンス切れ

しばらく触っていなかったVIRLを起動して、シミュレーションを開始しようとしたら
下のポップアップダイアログが出て実行できませんでした。




Failed to collect current salt contact status: Cisco contact was not established. This may be temporary. Please make sure the VIRL server is connected to the Internet and capable of reaching the configured Cisco master. Also make sure that the minion key provided to you matches your minion ID and domain, and remains valid. Current status is: Last successful license renewal was more than 7 days ago. Last license renewal final result was (2019-04-04 01:46:15): Call has timed out; failed to connect or minion key not accepted.

おそらくVIRLのライセンス切れのエラーだと思います。

2017/11/28に1年間ライセンスで購入したもので、本来なら2018/11/28に
利用不可となりそうですが、2019年に入っても問題なかったので使い続けていました。
1年1~2ヶ月位は猶予がありそうです。

2018年に新たに購入したライセンスが無駄になったかと思ってましたが
ちゃんと管理はされているようです(当たり前か)。

新たに購入したライセンスキーの導入にチャレンジしたいと思います。

2019年1月17日木曜日

Command rejected: An interface whose trunk encapsulation is "Auto" can not be configured to "trunk" mode.

下記のようにトランクポートを設定するときに赤字のエラーが出ることがあります。

Switch(config-if)#switchport mode trunk
Command rejected: An interface whose trunk encapsulation is "Auto" can not be configured to "trunk" mode.

この赤字部分でググれば、「トランクモードでのカプセル方式をキチンと指定してね」ということはわかります。なので、下記青字のいずれかを指定すれば上記のコマンドは設定できるようになります。

Switch(config-if)#switchport trunk encapsulation ?
  dot1q      Interface uses only 802.1q trunking encapsulation when trunking
  isl        Interface uses only ISL trunking encapsulation when trunking
  negotiate  Device will negotiate trunking encapsulation with peer on
             interface

下記が設定し終えた内容です。

interface GigabitEthernet0/0
 switchport access vlan 816
 switchport trunk allowed vlan 2525
 switchport trunk encapsulation dot1q
 switchport mode trunk
 negotiation auto



今回気になっていたのは、show runで「switchport trunk encapsulation dot1q」が表示されていない機種があることでした。(表示されている上記show runはVIRLで確認しています)

結果からすると、2960シリーズはdot1qしかサポートしていないので、
「switchport trunk encapsulation ○○」が設定できないので、表示もされていないということでした。

3560 シリーズ スイッチ データ シートを見ると、
VLAN トランクは、標準ベースの 802.1Q タギングまたは Cisco Inter-Switch Link(ISL; スイッチ間リンク)VLAN アーキテクチャを使用して、任意のポートから作成できます。
の記載があるので、ここらへんの機種の違いを理解していませんでしたというお話でした。しばらくすると同じことを調べると思うので備忘録。

参考ページ
Solved: 2960 will not allow "switchport trunk e... - Cisco Community: 

トランクdot1qの設定: 

2018年12月22日土曜日

microSD 256GBを購入、ディスクチェック記録

スマホの外部ストレージ容量(64GB)が少なくなってきたので、256GBのmicroSDを購入しました。 128GBだと64GBの増量でしかなく、またしばらくしたら買い換えることになるのでこのサイズにしました。
購入時の価格は9,990円。並行輸入品だともう少し安かった(7,200円)のですが、初期不良時の交換などで手間取りたくなかったので正規代理店の方を選びました。

 

今回は容量が大きめですので、SDカードのチェックをしたいと思います。
下記のサイトを参考にして、実施した画像を貼り付けていきます。

 Check Flashの使い方解説、誰か書いてくれんかな… - チラシの裏の走り書き はてなブログ版: http://hima-ari.hatenablog.com/entry/2017/12/28/221224

Windows上ではきちんと認識されています。

































CrystalDiskMark6でチェック。



















-----------------------------------------------------------------------
CrystalDiskMark 6.0.2 Shizuku Edition x64 (C) 2007-2018 hiyohiyo
                          Crystal Dew World : https://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes
   Sequential Read (Q= 32,T= 1) :    81.365 MB/s
  Sequential Write (Q= 32,T= 1) :    75.422 MB/s
  Random Read 4KiB (Q=  8,T= 8) :     7.075 MB/s [   1727.3 IOPS]
Random Write 4KiB (Q=  8,T= 8) :     1.804 MB/s [    440.4 IOPS]
  Random Read 4KiB (Q= 32,T= 1) :     5.839 MB/s [   1425.5 IOPS]
Random Write 4KiB (Q= 32,T= 1) :     1.812 MB/s [    442.4 IOPS]
  Random Read 4KiB (Q=  1,T= 1) :     5.156 MB/s [   1258.8 IOPS]
Random Write 4KiB (Q=  1,T= 1) :     1.354 MB/s [    330.6 IOPS]
  Test : 1024 MiB [E: 0.0% (0.0/238.4 GiB)] (x5)  [Interval=5 sec]
  Date : 2018/12/22 7:56:40
    OS : Windows 10 Professional [10.0 Build 17134] (x64)
良いのか悪いのか、よくわかりません。。
Amazonの紹介ページには「4K UHD動画を遅延なく録画、再生が可能です。256GBモデルの読み出し速度は最大100MB/s、書き込み速度は最大90MB/sです。」とあるので、こんなもんなんですかね。


ディスク内容の消去
cleanというコマンドでWindows上からディスク内容を消去できるようです。
参考:Windowsで、diskpartのcleanコマンドを使ってディスクの内容を消去する:Tech TIPS - @IT: http://www.atmarkit.co.jp/ait/articles/1004/16/news101.html

下記コマンドを実施します。
・diskpart
・select disk
・list partition
・clean






















Windows上では未フォーマット状態となりました。





















Check Flashでディスクチェックを行う
・右クリック「管理者として実行」
・「物理デバイスとして」
・「読み書きテスト→最小パターン」
・「フルパス1回」

残り時間3時間半…結構時間がかかりますね。。















チェック完了
実際には4時間近くかかりました。
パス #1 が完了しました。 0 個のエラーが検出されました。
テストが完了しました。 合計 0 個のエラーが検出されました。



















SDカードフォーマッタでフォーマット
これもとても時間がかかります。きちんと計測してないけど1時間くらい?
































最後にもう一度テスト


















特にエラーもなく安心しました。
次回はSDカード~SDカードのデータ移行を確認していきたいと思います。