@fugaco

Selenium IDEとTinyMCE

Selenium IDEでリッチテキスト(TinyMCE)の入力を行う方法を調べたので書いておきます。


Selenium IDEとは?

FirefoxにSelenium IDEというプラグインがあります。ウェブページ上で行われたユーザーアクション(どこかをクリックしたり、何かを入力したり)を保存しておき、後から自動で再生できるものです。実際の操作を保存せずに、任意のコマンドを手入力することもできます。

使い道 その1

テストで何百個ものアイテムを登録しなくてはならないとき、インポート機能が実装されていなければ、Selenium IDEを使うことができます(ループやインクリメントもできます)。自動実行でもそれなりに時間はかかりますが、延々と手入力するよりは早く済みますし、実行している間に他のことができますよね。

使い道 その2

また、随所随所で試験項目(例:このHTML要素のテキストは○○であるかどうか)を入れることができるので、仕様に沿って一通りのテストケースを作っておけば、コードを修正した後などにもう一度テストしてみて、修正の影響がないことを確認できたりします。Selenium IDEのメインの機能はこちらです。


本題

そんなSelenium IDEですが、typeコマンドではTinyMCEへの入力ができなかったので調べました。リッチテキストのTinyMCEはテキストエリアにタイプしているように見せかけていますが、実際はインラインフレーム(iframe)とjavaScriptでごりごりやっているので、入力操作が保存できませんでした。

TinyMCEに入力する方法

コマンド:runScript
対象:tinyMCE.get('xxx').setContent('あえいうえおあお');

答えを知ってしまえば何てことはありませんね。runScriptは現在のページ内にscriptタグを埋め込んで実行するコマンドです。現在のページではすでにTinyMCEが読み込まれているので、TinyMCEの機能(setContent)が普通に使えるのでした。


ちなみに、getEvalというコマンドもあります。これはrunScriptとは違って、Seleniumオブジェクト内でスクリプトを実行し、返り値があります。getEvalからテスト中のページ内の要素にアクセスするには、this.page().getDocument().getElementById()などが使えます。

コマンド:runScript
対象:document.getElementById('xxx').innerHTML = 'あえいうえおあお';

コマンド:getEval
対象:this.page().getDocument().getElementById('xxx').innerHTML = 'あえいうえおあお';


おしまい!

英会話チャットアプリEigoooの使用感

英会話教室風のチャットアプリであるEigoooを使ってみました。

image.png

深夜以外の好きな時間に入室すると、すぐに先生の誰かとつながり、英語でチャットをすることができるアプリです。使い勝手はなかなか良さそうでした。会話が続かないときは、先生や恐竜さん(Wordのヘルプキャラクターみたいなもの)が会話のテーマを投げかけてくれるようです。こちらの会話に英語のミスがあったときは、恐竜さんが添削結果を教えてくれます。実際は先生が手入力しているようですが、会話を遮らないように第三者のアイコンを使っているのが上手くできていますよね。

上のキャプチャは、文法ミスを直してもらったところです。チャット(口語)なので、文頭の小文字や句読点の有無など細かいところは添削されないようですね。ていうか先生もピリオドを忘れているし。先生によるのかもしれませんが。

無料トライアルで60メッセージまで送れるので、このアプリについて先生にいろいろと聞いてみました。今回当たった先生はインドに住んでいるそうで、アイコンの写真から見るにインド人のようです。他にもたくさんの先生がいて、次回また同じ先生につながる可能性はあまりないそうです。先生も生徒もチャット相手を選べないと言っていました。チャットレディーと同じような仕組みを想像していたんですが、違うんですね。先生は自宅ではなく、どこか勤め先にいるようです。このアプリの会社は都内にあるようですが、先生はインドで雇用しているんですね。他のスカイプ英会話サービスでも会話相手にインド人がよく雇用されていますよね(私はあいにく使ったことがありませんが、使った人が言っていました)。海外のソフトウェアのサポートセンターに電話するとインド人につながることも多いし、インドは人材と人件費のバランスがいいのでしょうか。

さてさて、隙間時間や通勤中にできるチャットアプリは良さそうに思えたんですが、毎回違う先生に当たるとなると会話が続くか心配です。毎回自己紹介しているうちに時間が無くなってしまいそうな・・。それから相手の先生がインド人だったので、やっぱりどこかインド風の英語でした。Hinglishってありますよね(ちなみに日本人の英語はEngrish)。方言のように、インドでしか通じない英語や言い回しがあるのです。先生は共通英語を使うようにはしていると思いますが、あまり聞かない言い回しをしていました。あと、Eigoooの先生がどのような研修を受けているのかわかりませんが、英語がしゃべれるのと、英語を教えられるのはまた別の話ですよね。語源などを聞いても答えてくれないんじゃないかと思います。家庭教師と一緒で当たりはずれも大きいかもしれないですね。ただ、自分の書く力(チャットなので、話す力かな)を付けるためにはいいと思います。こういうのは習うより慣れろだと思うので、日常会話が目的ならばいいアプリだと思いました。月4000円かけるなら他にも選択肢はありそうですが。


lang-8と比較してみたので参考にしてください。

Eigooo lang-8
言語英語あらゆる言語
形態チャット日記
文体主に話し言葉主に書き言葉
添削相手Eigoooに雇用されている人(インド人以外いるのかな)lang-8に登録している人。いろいろな職業の人がいます(プログラマーも多いです)。
返事早い複数の人の意見が聞けますが、ピリオドの位置などまで粗探しされます(笑)
トピック当たり障りのない話が多そう。先生の知らない分野は盛り上がらなそう。日記なのでテーマが多岐にわたるし、前回書いたトピックの続きも書けます。
金額一番いいプランで月4000円無料
インターフェースよくできているかも。レビューによると辞書機能はイマイチみたいですが、チャット履歴やメッセージの保存ができます。添削回り以外はあまりよくできていません。

難解プログラミング言語

新入社員が技術研修をする時期になると、自分が勉強していた頃を思い出しますね(私は会社の研修ではなく大学で勉強しましたが)。先日「バブルソート」という言葉を久々に聞きました。隣同士くるくるするソートですよね。C言語の研修でソートプログラムを書いていたみたいです。

会社のメイン製品がC系でできているので、新入社員はC言語の取得が必須なんですが、私は中途採用なので実務でC言語を使ったことがありません。でもC言語のあの厳格な感じは割りと好きです。「図書館では静かにしなさい」と言われているような気分になります。笑

厳格(?)なプログラミング言語といえば、Brainf**k(**はuc)を思い出したのですが、知っていますか?8種類の文字しか使わない言語です。それぞれ、ポインターを動かしたり、加算減算、入出力、ループの命令になっています。

「Hello World」はこう書きます。

+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
------------.<++++++++.--------.+++.------.--------.>+.


このような難解プログラミング言語にはまった時期があったんですよ。書いたりはしませんでしたが、発案者はよく考えるものですよね。以下は私が気に入っていたプログラミング言語です。


シェイクスピア

コードがシェークスピアの演劇のように見える言語です。登場人物に代入した値を、「Speak your mind」で出力します。めっちゃ冗長です。「Hello World」はこう書きます。

Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.

                   Act I: Hamlet's insults and flattery.
                   Scene I: The insulting of Romeo.
[Enter Hamlet and Romeo]
Hamlet:
You lying stupid fatherless big smelly half-witted coward! You are as
stupid as the difference between a handsome rich brave hero and thyself!
Speak your mind!
You are as brave as the sum of your fat little stuffed misused dusty
old rotten codpiece and a beautiful fair warm peaceful sunny summer's
day. You are as healthy as the difference between the sum of the
sweetest reddest rose and my father and yourself! Speak your mind!
You are as cowardly as the sum of yourself and the difference
between a big mighty proud kingdom and a horse. Speak your mind.
Speak your mind!
[Exit Romeo]
                   Scene II: The praising of Juliet.
[Enter Juliet]
Hamlet:
Thou art as sweet as the sum of the sum of Romeo and his horse and his
black cat! Speak thy mind!
[Exit Juliet]
                   Scene III: The praising of Ophelia.
[Enter Ophelia]
Hamlet:
Thou art as lovely as the product of a large rural town and my amazing
bottomless embroidered purse. Speak thy mind!
Thou art as loving as the product of the bluest clearest sweetest sky
and the sum of a squirrel and a white horse. Thou art as beautiful as
the difference between Juliet and thyself. Speak thy mind!
[Exeunt Ophelia and Hamlet]

                   Act II: Behind Hamlet's back.
                   Scene I: Romeo and Juliet's conversation.
[Enter Romeo and Juliet]
Romeo:
Speak your mind. You are as worried as the sum of yourself and the
difference between my small smooth hamster and my nose. Speak your
mind!
Juliet:
Speak YOUR mind! You are as bad as Hamlet! You are as small as the
difference between the square of the difference between my little pony
and your big hairy hound and the cube of your sorry little
codpiece. Speak your mind!
[Exit Romeo]
                   Scene II: Juliet and Ophelia's conversation.
[Enter Ophelia]
Juliet:
Thou art as good as the quotient between Romeo and the sum of a small
furry animal and a leech. Speak your mind!
Ophelia:
Thou art as disgusting as the quotient between Romeo and twice the
difference between a mistletoe and an oozing infected blister! Speak
your mind!
[Exeunt]


Piet

文字ではなく色を組み合わせて記述する言語(?)です。「Hello World」はこう書きます。



こっちのプログラムは「Piet」と出力するんですが、これを待ち受け画像にしていた時期もありました。





Whitespace

空白文字(スペース、タブ、改行)で記述する言語です。真っ白なメモのあぶり出し(みかんの汁で紙に書いた文字を、火であぶって浮き出させるやつ)みたいで、少年心をくすぐられる言語ですよね。





難解プログラミング言語は実用言語ではありませんが、少しでも触ってみると、また別の視点からプログラミングについて考えられるようになるかもしれませんよね。

英会話練習アプリ「Supika」とか

日常的に英語での読み書きリスニングはしていても、スピーキングとなるとなかなか機会がありませんよね。スカイプでやる英会話なんかが最近は多いですが、私は家で一人になれる時間がゼロですし、まとまった時間もほとんど取れません。なので、例え30分足らずでも、スカイプで話し続けるというのは難しいと思うんです。それから、生身の人間相手はちょっと…と最初は敬遠してしまう人もいますよね。そんな人におすすめなもの少しだけ紹介したいと思います。



生身の人間相手が難しいなら、コンピュータと寂しく話すしかないんですが、最近の音声アプリは高性能ですよね。


Supiki
http://supiki.com/



英会話の練習アプリです。ある女性の仕事先や恋愛の話を中心に展開するショートビデオを見た後に、関係する会話に参加します。こちらの発言によって相手の返答が変わるので、いろいろと返事を変えてみると面白いです。

例えば店員さんにコーヒーをかけられてしまって、「すみません、大丈夫ですか?」と言われる回があるんですが、テンパってると「It's okay.」くらいしか言えないこともありますよね。日本語でも、車に当てられてテンパって「大丈夫です」って言っちゃいますし。このアプリでなら、「大丈夫じゃないです!見てくださいこれ!びしょ濡れです!」なんて練習もできますし、そうするとその後の展開も少し変わります。

最初の方の回は基本的に「Yes/No」や「どっちが~」で応えられる簡単な質問が多いですが、「Yes, I do.」だけを答えるのではなくて、「Yes, I do. It's xxxxx. How about you?」などと会話に肉付けできるようになるといいと思います。どんな言い回しがあるのかは、他の人がどういう会話をしているかを聞くことができます。

まだ前半しかやっていませんが、レベルはやさしめだと思います。子供の声が入ってしまうので、ときどき聞き取りエラーを返されてしまい、なかなか進まないときもあります・・


google翻訳

Lang-8でロシア語の勉強をしているときに、google翻訳の音声入力機能で自分の発音チェックをするといいと教えてもらいました。英語以外にも、ロシア語、フランス語、ドイツ語、各種中国語、などなど多くの言語で音声入力ができました。フィンランド語は非対応だったかな?日本語の翻訳性能は悪いので、あくまで、しゃべった言葉がきちんと認識されているかどうかのチェックに使うといいと思います。ちなみにロシア語の発音チェックでは、英語に訳すようにしています。英語の翻訳なら、割とマシです。ハラショー。


Siri

iPhoneやiPadに入っている、音声ガイダンスです。私は充電節約のためにOFFにしていますが、日本語以外のSiriとも会話できるので、試してみると面白いと思います。ただ、日本語以外のSiriは、結構反応が遅かったです。ウェブで何か調べてるんですかね?



なんか大して目新しくない情報ですみませんが、google翻訳もSiriも、私にとっては盲点だったので載せてみました。Supikiのようなアプリ、他にもあったら教えてください。もう少しビジネス寄りだといいかなあ。

翻訳を少し経験しました

少し前の話ですが、翻訳関係のプロジェクトがあったので、翻訳の勉強をしました。語学は好きですが、翻訳は初めての領域です。よく言われることですが、英語ができることと翻訳ができることは別物ですよね。

プロの翻訳者が、「日本語ができても小説は書けないのはみんな知っているのに、英語ができれば翻訳もできると軽んじられている」と言っていました。これって、プログラミングができても、ソフトウェア製品を作れないのと似ているかもしれません。(普通に動くものは作れるでしょうが、製品としての欠陥があるかもしれないということです。)


翻訳には3分野あるようです。
  1. 文芸翻訳・・・小説などの翻訳
  2. 映像翻訳・・・映画やゲームの翻訳
  3. 産業翻訳・・・ビジネス上の翻訳(技術翻訳ともいう)

翻訳と言うと(1)文芸翻訳や(2)映像翻訳をイメージすることが多いですが、(3)産業翻訳が業界の9割ほどを占めているようです。(3)産業翻訳にはメールの翻訳、マニュアルの翻訳、契約書の翻訳、などなどビジネス上で必要なあらゆる翻訳があり、その分野も医療、IT、特許、製造、などなど多岐に渡っていました。

今回私が関わったのはIT系の(3)産業翻訳ですが、IT系の仕事は量が多く参入しやすい反面、質より量を求められ、賃金は下降傾向にあるそうです。若い人や元SEが多いとか。なるほど。


参考までに、私が読んだ本を一部紹介します。
うちの市の図書館は本当に品ぞろえが悪いので、買うはめになることが多いんですが、借りた本の方が買った本よりも有用だったりすると、ちょっと切ないです。





他には、Apple、Windows、Googleなどのライティングルール、シカゴマニュアル、日系企業のドキュメントなどなどを参考にしました。


例文を調べるのには、Google検索のほか、コーパスを使いました。Google検索だと、用法として間違っている文章でも検索に引っかかってしまいますが、コーパスならばニュース記事などが元になっているので、信頼性が高めです。また、「動詞+teeth」というような品詞を指定した検索もできるので、「teeth」を目的語に取る動詞には、どのような言い回しがあるのか調べたりもできます。

アメリカ英語のコーパス
http://corpus.byu.edu/coca/

こんな感じ。

corpus.png


コーパスなんて今回初めて知りました。他にも翻訳を通じて、いろいろと新しいことを勉強することができたので、またいつか役に立つといいと思います。

1/36  | 次のページ »