daimac64's blog

50代からのWEBアプリ開発とその他もろもろの備忘録

技術書クラウドファンディング

コンピュータ関連の技術書というのは売れないらしく、しかも内容が濃い目のものはなかなか出版にこぎつけないという話はよく耳にする。

そこで、技術書クラウドファンディング。購入者を確保してから、執筆に入るというもの。

うまいこと考えたものだ。第一弾は、Swiftの本ですが、成立しませんでした。いまでも読みたいと思っている一冊です。

この夏、iOSAndroidでそれぞれ一冊ずつ成立しました。複数人による共著で広範囲をカバーした書籍が短期間で執筆されています。

私が支援したのは、第一線の開発者陣による「iOS 11 Programming」執筆プロジェクト!

iOS 11 Programming

iOS 11 Programming

  • 著者:堤 修一,吉田 悠一,池田 翔,坂田 晃一,加藤 尋樹,川邉 雄介,岸川克己,所 友太,永野 哲久,加藤 寛人,
  • 発行日:2017年11月16日
  • 対応フォーマット:製本版,PDF
  • PEAKSで購入する

Yahoo!困りごとで問い合せするのはたいへんだった

対象者に選ばれました!会員費最大6か月分無料キャンペーン実施中!

キャンペーンのメールが何度がやってきた。 ヤフオクに出品するわけでもなく、興味がなかったので放っておいた。

欲しい中古本が、Yahoo!にあったので、この際、プレミアムにしてポイント稼ごうと思った。

さらに、アフィリエイトサイトを経由しようと考えた。

欲を出したせいで失敗したようだ!

明細による月会費が発生している!!明らかにミスった。修正しなければ!どこに問い合わせればいいの?いくら探して見つからない。

最近のサービスを提供している企業にありがちですが、問合せ先がわからない。電話番号なんか載せたら、大変なことになるのはわかるけど、サポートのメアドやフォームぐらい容易にアクセスできるようにしておいてほしいものです。

慣れていない人はここで断念してしまう!

のだろうか?とりあえずググってみる。

yahoo japanへ の問い合わせ先アドレス、電話番号を教えてください。 今まで... - Yahoo!知恵袋

ヤフー本体にコールセンターはありません。 Yahoo!に関する問合せは専用フォーマットによるものだけです。 方法は、

  1. Yahoo!トップページの右上のヘルプをクリック→

  2. "よくある質問"内の自分の質問に近い回答をクリック→

  3. 一番下に解決しましたか?という項目があるので「いいえ」を押下すると 問い合わせフォームに辿り着きます。

教えてもらわなければ、偶然でしかたどり着けないだろう!

やっと、問い合わせることができた。 「『無料キャンペーン』のつもりが、そうなっていないので対処してほしい」

最初の回答は、そっけないものでした。

恐れ入りますが、Yahoo!プレミアム会員費最大6か月無料キャンペーンページからの ご登録ではないため、会員費無料期間の適用はありません。

Yahoo!プレミアムの登録手続き完了後は、最低1か月分の会員費の 請求が発生します。

誤って登録した場合や登録後、実際にサービスのご利用がない場合などでも 会員費の請求を取り消すことはできませんので、ご了承ください。

無料キャンペーンではないルートで申し込んでしまったようだ。会費0円という表示を見たように記憶しているが、そんなものはあいまいなので無料キャンペーンのルートではないところから申し込まれていますと言われれば、そうなのだろうが、納得がいかない。

ここで泣き寝入りする人もいるのだろう

「誤った登録でも解除できなくて金を払え!承諾したはずだろう」って承知できない。即刻解除してほしいと伝える。

お問い合わせいただきました「Yahoo!プレミアムの解除」について ご案内いたします。

誠に恐れ入りますが、Yahoo!プレミアムの解除は、 該当のYahoo! JAPAN IDでログインのうえ、 お客様ご自身で行っていただく必要がございます。

※弊社にて解除手続きを行うことはできませんので、 あらかじめご了承ください。

そんなことを聞いているのではないし、毎回担当者が変わっている

間違えて登録したのは認めるから何とかしてほしいと食い下がる

やっと回答が!でも運まかせ?

現在、登録しているYahoo!プレミアムを解除して、キャンペーンページに ログインした際に登録ボタンが表示された場合は、キャンペーンにて ご登録いただけます。

なお、再登録でYahoo!プレミアム会員費最大6か月無料キャンペーンにて 登録可能かについては、ご案内できかねます。


・キャンペーン対象で5月にキャンペーンページから再登録された場合 −5月分の会員費から無料特典が適用されます。 ※キャンペーンページの登録ボタンを押して表示された画面にて 登録手続きを完了してください。

・キャンペーンページで対象外と表示された場合は −5月分の会員費の請求が発生します。

※現在の登録を解除後、再度登録しなかった場合は5月分の会員費の請求のみとなります。

登録解除後、Yahoo!プレミアム会員費最大6か月無料キャンペーンでの 再登録手続きについては、ご自身でのご判断にてお試しくださいますよう お願いいたします。

えぇい!ままよ!

プレミアムを解約してみる。その後、キャンペーンページに登録ボタンが表示され、目的は達成できましたがうまくいかないケースもあるってことだよね。釈然としない結末でした。

P.S. 三ヶ月ぐらい前に書いたのを公開し忘れていた。

老眼:技術書は電子書籍がオススメ

私は、中学生ぐらいから近視が始まり、乱視もきつい方らしいです。

40代中頃から老眼が始まり、基板のシルクを読むのが難しくなりました。

50歳前後で、PCのモニタを見ると頭痛がするようになり、メガネショップに相談すると メガネの度数を落とすことを勧められ、矯正後の視力を1.0から0.7に落とし、快適になりました。 それでもメガネをしたまま、スマホや読書は辛い。

ある日、スマホや読書は裸眼にすると快適であるとこに気づきました。読書の快適度は人生で一番かもしれません。

ここまでは、使い分けすれば問題ありませんでした。遠近両用なども不要。

しかし、技術書を読みながらコーディングしようとすると、これがやっかい。 メガネをつけたり、外したりの繰り返しです。

そこで、電子書籍

今までマンガやビジネス書などは電子書籍で購入し、iPad mini 等で読んでいました。

そこで、技術書を電子書籍にしてみました。電子書籍に変えてよかった点を挙げてみます。

電子書籍は、PCで読める

Kindleをはじめ、BookLive!、hontoなど電子書籍サイトの多くは、タブレットスマホだけでなく、PC用のReaderが提供されています。 PC上でこのReaderとIDE(開発環境)を並べて使用すると、当たり前ですが、メガネのON/OFFは、不要。Reader側の拡縮も可能。快適です。

技術書は分厚い!

技術書の多くは、雑誌を含めて大判であり、かつ分厚い。分厚いと読んでいるときに開いておくのも不便。 当然、持ち運びも大変。電子書籍にするとそれらが解決される。

技術書は高い!

技術書はとにかく高価である。名著と呼ばれるものは、中古であっても価格が下がらない。 絶版になっていたりすると、プレミアがついていたりする。 プレミアがついている場合でも、電子書籍の場合はまず定価以下で購入できる。さらにキャンペーンやクーポンを利用できれば、半額で購入できる機会もある。

田舎なので売っていない場合も多い

良い技術書でも、県内の書店に問い合わせても入荷されないケースや在庫がなくなると補充されないケースがしばしばあります。 Amazonなどで購入すればよいのですが、電子書籍の場合は、在庫切れもなく、クリックしてすぐに読めるのも利点でしょう。

当たり前のことばかりでしたが、今後、技術書は電子書籍で購入しようと思い至ったので書いてみました。

音声ファイルを分割

録音した音声ファイルを無音部分で分割したので適当なフリーソフトがないか検索しているとAnacondaで簡単に実現できることが分かった。

VS Codeの統合ターミナル(Windows/macOSを意識しなくてよくなる)で環境を整える。

動画・音声処理用のライブラリ FFMPEG をインストー

$ conda install -c menpo ffmpeg

音声データ処理用のライブラリ Pydub をインストー

$ pip install pydub

Windows版で、エラーが発生!

Unknown or unsupported command ‘install’

$ where pip

でpipのインストール状況を確認するとAnacondaの他にPerlのpipがインストールされていることがわかる

  • C:\Dwimperl\perl\bin\pip
  • C:\Dwimperl\perl\bin\pip.bat
  • C:\ProgramData\Anaconda3\Scripts\pip.exe

以下のいづれかの方法で対処できると思います。お好みで。

  • PerlをUninstallする
  • 環境変数Pathを再定義する
  • フルパスでAnacondaのpipを指定して使用する
  • Anacondaのpipのpathをカレントディレクトリにして実行

Mac版では、別のエラーが発生!

RuntimeWarning: Couldn’t find ffmpeg or avconv - defaulting to ffmpeg, but may not work

ffmpegがうまく認識できないいないようだ。 インストールのミス?

ffmpegへのパスは通っている。 ffmpegコマンドを実行するとPermission Denied。確かに実行権がない。

$ conda uninstall -c menpo ffmpeg

FFMPEGを一旦アンインストール。

アンインストール後、念のため、以下のフォルダを削除

Users/user/anaconda/pkgs/ffmpeg-x.x.x-0 (xは、バージョン番号)

その後、再インストールで正常に動作するようになりました。

$ conda install -c menpo ffmpeg

音声ファイルの分割方法は、以下の通りです。

"""
コマンドライン引数で指定されたカレントディレクトリのwavファイルを
無音部分で分割します。
分割されたwavファイルは、splitフォルダに保存されます。
"""

import sys          # モジュール属性 argv を取得するため
import datetime
from pydub import AudioSegment
from pydub.silence import split_on_silence

ARGVS = sys.argv  # コマンドライン引数を格納したリストの取得

ARGC = len(ARGVS) # 引数の個数

if ARGC != 2:   # 引数が足りない場合は、その旨を表示
    print("Usage: # python " + ARGVS[0] + " wavfilename")
    quit()         # プログラムの終了

NAME = ARGVS[1]

START = datetime.datetime.now()
print("-- 解析開始 -- ", START)

SOUND = AudioSegment.from_file("./" + NAME + ".wav", format="wav")

CHUNKS = split_on_silence(

    SOUND,

    # ms以上の無音がある箇所で分割
    min_silence_len=5000,

    # dBFS以下で無音とみなす
    silence_thresh=-16,

    # 分割後500msだけ、無音を残す
    keep_silence=500
)
END = datetime.datetime.now()
print("-- 解析終了 -- ", END, " elapsed_time:", (END - START))
# 分割数の表示
print("分割数:{0}".format(len(CHUNKS)))

for i, chunk in enumerate(CHUNKS):
    chunk.export("./split/"+ NAME + "_{0}.wav".format(i), format="wav")

実装速度はかなり遅いです。

45分のwavファイルを分割するのに10分程度かかりました。

マシンスペックは、以下の通りです。

インタプリタだからか?だったら、コンパイルしてみよう!

$ python -m compileall [ファイル名]
$ python __pycache__/[ファイル名].[Pythonのバージョン].pyc

処理時間同じだった。なんでだろう?

そうか単に難読化してるだけだったかぁ。

速度的には、こちらがよいかも? stabucky.com

Audacityのパラメータを同様に設定したが、同じように分割されない。なぜ?

Pythonに挑戦・環境を整える。

スクレイピング・機械化学習・音声ファイル編集とやりたいことがあるので Pythonの環境を準備することにしました。

本家からインストールするのかと思いきや すぐにPythonの実行環境の他に、NumpyやIPythonといったライブラリが必要になってくるので ANACONDAを利用するのがいいらしい。

Python3系で64ビットWindows版とmacOS版を用意した。

エディタは、Win/MacともVisual Studio Codeを使うことにしました。

VS Codeで Intellisense(コード補完)Linting(厳密な文法チェック)Debug等が行えるように、機能拡張をインストールします。 code.visualstudio.com

Web Application その2

ずいぶん前に下書きして公開してなかった!

CSSで装飾
  • プロジェクトに新しいフォルダ「Contents」を追加
  • このフォルダにスタイルシートを追加
  • ビューのhtmlの<head>要素にスタイルシートファイルをドロップして参照の追加
ここまでの話
MVC なのでデータバインディング

データバインドには、フレームワークKnockout.jsを使用するそうな。
あっ、以下の本に従って学習中です。

はじめてのASP.NET SPA開発入門 (マイクロソフト関連書)

はじめてのASP.NET SPA開発入門 (マイクロソフト関連書)

車の中でもBluetooth

クルマでも無線でiPhoneと接続できるFMトランスミッタを 2016年秋に購入しました。 先に購入していたBuletoothイヤホンとの連携が抜群で、 Bluetoothイヤホンをしようしたまま、乗車してエンジンをかけると FMトランスミッタに移行します。快適です。 マイクもついているので、そのまま通話やSiriも可能です。 USBも二個ついているのでiPhoneやBuletoothイヤホンの充電のこれ一台でOK!