Google Driveへのバックアップ

年が明けてから、WordPressで作っている部分のバックアップをUpdraftPlusというアドインでやるようにしました。バックアップ先にはGoogle Driveを指定して、初回のバックアップは何も問題なくできたのですが、今日、二回目のバックアップをしようとしたら、エラーになってしまいました。アクセストークンがどーのとか、そんなことユーザーに言われてもどうしようもない訳の分からないエラーメッセージが出ています。アドインの作成元含めてWEB検索しても開発者向けの情報がヒットするばかり。そんな難しいことではないはずだと思いつつ。

要するにドライブにログインしようとしてはねられたということのようです。初回はちゃんと動作したのですから、一度Drive側の ツールの登録を解除して再登録、気分新たにリフレッシュしてやってみたところ、ビンゴ、うまくいきました。

前回のGoogle Driveへの接続から時間が経っていたせいか、あるいは単にブラウザを閉じるとこうなるのかは調べていませんが、バックアップに失敗したら都度ツールを再登録するようにしてしばらく使ってみます。ふう。

Windows10 PowerShell の色について

Windows10からコマンドプロンプトがcmd.exeからPowerShellになって、さて使おうとするとまず気になるのが入力行の色です。黄色なんですが、画面のプロパティで背景色を明るい灰色にしているとこれが非常に見にくい。文字色を黒にすると実行されたコマンドからの文字列やプロンプトの色は変わるんですが、肝心の入力した文字の色は変わりません。PowerShell特有のプロパティでもあるのかと思って調べてみても要領を得ないサイトばかりがヒットして時間ばかりが過ぎていきます。細かいことはどうでもいいんです。今やりたいことは、入力行を見やすくしたいだけ。

なので、入力行自体の色を変える方法は心に留めておいておいおい探すとして、とりあえず背景色を変えました。真っ黒は嫌いですが慣れている明るい灰色ではなく暗めの灰色にすることで、黄色でも見やすくなりました。文字色は白にして、こうすると入力行は黄色なのでどれが入力でどれがコマンドの出力なのかもよく分かります。怪我の功名? というやつかも。当面これでいきます。

….. と、思ったんだけど、コマンドラインの引数の色が今度は暗い灰色と被っててよく見えない。こりゃ背景は黒でないと使えないですね、当面。さっさと仕組みを調べなきゃ。ふう。

Emacs25 on Ubuntu18 on Hyper-V on Windows 10 (MEMO-4 Emacs25のインストールと環境設定)

Emacs25のインストールと環境設定

Emacsのインストール自体は簡単ですがデフォルトだと日本語環境がちょっとおかしいのと、autoinstall.elの設定がちょっと古いので、それを直す必要がありました。Versionは25.2をインストールします。

Emacs25のインストール

下記のコマンドでインストールできます。

sudo apt install emacs25

設定ファイルは基本的にはこれまで使っていたものを引っ越してくれば良いのですが、元環境がWindows版の場合はパスを直接書いているところがあればその部分は修正する必要があります。古いバージョンに合わせた設定ファイルだといろいろobsoleteなところがあるかもしれません。私の場合はauto-installの一部のリポジトリのパスが変わっていて、まずauto-install.elに手を入れる必要がありました。 “Emacs25 on Ubuntu18 on Hyper-V on Windows 10 (MEMO-4 Emacs25のインストールと環境設定)” の続きを読む

Emacs25 on Ubuntu18 on Hyper-V on Windows 10 (MEMO-3 Ubuntu18.04LTSのインストールと環境設定)

Ubuntu18.04LTSのインストールと環境設定

インストール開始

OSをインストールするためには、今作ったばかりの仮想マシンを起動します。(ブート順で指定した通り、DVDのブートイメージが実行されます)

Hyper-Vマネージャーの画面で仮想マシンを選択状態にし、右クリックメニュー(又はメニューバーの「操作」メニュー(もしくは右側の「操作」ペイン))の「接続」を選択して仮想マシンと接続するための画面を表示し、そこに出ている「起動」ボタンをクリックします。(下記画面例は右クリックメニュー) “Emacs25 on Ubuntu18 on Hyper-V on Windows 10 (MEMO-3 Ubuntu18.04LTSのインストールと環境設定)” の続きを読む

Emacs25 on Ubuntu18 on Hyper-V on Windows 10 (MEMO-2 仮想マシンの作成)

Ubuntu向けの仮想マシンをHyper-Vで作成する

Ubuntu18.04LTSは「Hyper-Vクイック作成」でもサポートされてますが、設定内容をきちんと把握しておく意味で、Hyper-Vマネージャの「操作」→「新規」→「仮想マシン」でコツコツ作っていきます。

Hyper-Vマネージャーを起動

まず、なにはともあれHyper-Vマネージャーを起動します。Hyper-Vマネージャーは、スタートメニューの「Windows管理ツール」フォルダの中に居ます。 “Emacs25 on Ubuntu18 on Hyper-V on Windows 10 (MEMO-2 仮想マシンの作成)” の続きを読む

Emacs25 on Ubuntu18 on Hyper-V on Windows 10 (MEMO-1 Hyper-V の有効化)

Hyper-Vの有効化

Windowsで使える仮想環境には VMWareとかOracleのVirutalBoxとかもありますが、 Windows10 ProfessionalにはHyper-Vがあるので、とりあえずはこれを使うのがお手軽だろうということで、これにしました。

必要なBIOS設定

Hyper-VはどんなPCでも使えるという訳ではなく、BIOSというか今はUEFI(Unified Extensible Firmware Interface — 統合拡張ファームウェアインターフェイス)なるものに進化してるらしいですが、このUEFI-BIOSによる仮想化のサポートが必要です。 “Emacs25 on Ubuntu18 on Hyper-V on Windows 10 (MEMO-1 Hyper-V の有効化)” の続きを読む

Emacs25 on Ubuntu18 on Hyper-V on Windows 10 (MEMO-0)

ノートPC(Corei7、メモリ8GB、HDD500GBのThinkPad X230) の Windows10 Pro のHyper-V 環境で Ubuntu 18.04LTS を動かして、Ubuntu上のEmacs 25.2.2 からWindows側のファイルを編集するための環境を作るに当たって、いろいろあったことのメモです。

どんなことがあったかというと。 “Emacs25 on Ubuntu18 on Hyper-V on Windows 10 (MEMO-0)” の続きを読む

「プログラミング言語C++第四版」について気が付いたことなど (22)

意味がよく分からない訳、そこまで単純じゃないという誤訳 …


42. 4   タスク ベース の 並行 処理

本章のここまでは、並行タスクを実行するためのメカニズムを中心に解説してきた。すなわち、thread、競合条件の回避、threadの同期である。この点に集中すると、並行タスクを実行する実際のタスクへの注意が散漫になってしまうのが多いことが分かっている。本節では、単純な部類のタスクに焦点を当てる。具体的には、1個の引数を受け取って、1個の結果を返すタスクである。


原文:

So far, this chapter focused on the mechanisms for running concurrent tasks: the focus was on threads, avoiding race conditions, and synchronizing threads. For many concurrent tasks, I find this focus on mechanisms distracting from the real task (sic!) of specifying concurrent tasks. This section focuses on specifying a simple kind of task: a task that does one thing given arguments and produces one result.


試訳:

本章のここまでは、並行タスクを実行するためのメカニズムにフォーカスを当てて解説してきた。すなわち、thread、競合条件の回避、threadの同期である。多くの並行処理の現場で、このような細かなメカニズムに対する集中は並行処理を記述するという本来の(文字通りの!)タスク(=作業)からの逸脱をもたらしがちである。本節では、単純な部類のタスクに焦点を当てる。それは幾つかの引数を与えられて一つのことを実行し、一つの結果を生成するタスクである。


考察:

後ろの方の訳は arguments が複数であることを見落としており、かつ does one thing が訳されていない。”one thing given arguments” を「1個の引数を受け取って」としているのかもしれないが、それはちょっと間違った捉え方。given はtaskにかかる形容詞的過去分詞、たぶん。

「プログラミング言語C++第四版」について気が付いたことなど (21)

よく似てるけど…


42.3.4  条件変数

…( condition_variable の表の中ほど)…

cv.wait(lck) 現在のスレッドがlckを所有していなければならない。自動的に lck.unlock()を呼び出してブロックする。イベント通知を受けるか、または “擬似的に通知を受ける”とブロック解除する。ブロック解除時に lck.lock() を呼び出す

原文:

cv.wait(lck) lock must be owned by the calling thread;
atomically calls lck.unlock() and blocks;
unblocks if notified or “spuriously”;
when unblocked calls lck.lock()

考察:

atomically automatically と空目しているように思われます。
この後の x=cv.wait_until(lck,tp)でも同様にatomically自動的に になってます。

尚、”spuriously” は、(notifyされなくても)処理系によって擬似的に待機解除されることがあるということなので、待機解除されたからと言って条件が成り立っているとは限らない点に注意が必要です。

 

「プログラミング言語C++第四版」について気が付いたことなど (20)

こんなもんで十分だ、と言ってるんだけど …


42.3.1.3 timed_mutex と recursive_timed_mutex

…(略)…

ここでは、画像イメージを適切な速度(この場合100ミリ秒)で更新できない場合は、新しい画像イメージをユーザに見せたほうが好ましいと仮定している。さらに、一連の画像イメージの中から1枚分の画像イメージが欠けていても、まず気付かれないだろうとも仮定している。すなわち、実際には、もっと複雑な処理が必要だ。

42. 3. 1. 4   lock_ guard と unique_ lock


原文:

The assumption here is that if the image cannot be updated reasonably fast(here, in 100 milliseconds), the user would prefer a newer version of the image. Further, it is assumed that missing an image in a sequence of updated images will rarely be noticed, so that a more complicated solution is not needed.


試訳:

ここでの仮定はもし画像が妥当な速さで(この例の場合100ミリ秒)更新できないなら、ユーザーは次のコマの画像が表示されるのを好むだろうということである。更に言うと、一連の更新画像中の一枚が欠けていてもまず気付かれることは無いと思われ、従ってこれ以上複雑な対策は不要である。


考察:

“新しい画像イメージ” は 要するに動画の次のコマという意味。
また、「すなわち」以降は意味が逆。たぶん、not を見落としている。