お疲れ様です。
今年もPyconJPに行ってきました。
結論から言うとめっちゃ楽しかったです。
最初はトーク枠で参加予定だったんですけど、諸事情(詳しく聞きたい方は直接聞いてくださいwwwwww)により辞退してしまいました。残念。
その代わりと言ってはなんですが、ライトニングトークでそのストレスを発散してきました。
思いの外すぐに枠が埋まり始めて、私がエントリーしようとした時はすでに残り2、3枠という面白い状況でした。
(ちなみにこれの3番目とこれの4番目が私です。空気読まず2回エントリーしました。ライトニングトークって自由でいいよね。togetterの中の方、ありがとうございます。)
ワークボードに所属している企業の求人情報も置いておきました。
私の名刺も置いておいたのですが、何枚か取っていってくれている方もいてうれしかったです。ブロックチェーンのキャラクターmijinのクリアファイルの方が早くなくなりましたが。
当日始発で大阪を出発したので、途中で眠くなる可能性をひしひしと感じていたのですが、全くそんなことはなく、面白いイベントと人間に囲まれ、人生って素晴らしいなとまで思ってしまいました。
二日目昼のFintech関連の会合とPyconJP公開ミーティングも楽しかったです。
Python Boot Campで講師をした時の関係者の方や、普段Twitterでしか関われない方を肉眼で拝見することもでき、年に一度のお祭りを堪能できたと思っています。
Pythonにおける地方の活性化の名の下、大阪でもどんどんイベント開いていきたいなと思っています。
以上です。
2016年9月23日金曜日
2016年5月7日土曜日
また性懲りもなくPyconJP 2016のプレゼンにエントリーしてみた
去年のあれで味をしめたので、今年もエントリーしてみた。
SNSで拡散しろとのことなので、しておきます。
タイトルは「Pythonからクラウドサービスを使い倒して、ビッグデータを解析した話」です。
当日までにタイトルなどは変わる可能性あります。
また選ばれたらPycon行こうと思う。
でもまぁ、選ばれなくても結局行こうと思う。
ちなみにPython Boot Camp(詳細はこちら)なるものの、講師候補になってます。
縁があれば講師やってると思います。
今はその授業で使うテキストを、時間みつけて作ってます。
人生が楽しくなるといいね。
SNSで拡散しろとのことなので、しておきます。
タイトルは「Pythonからクラウドサービスを使い倒して、ビッグデータを解析した話」です。
当日までにタイトルなどは変わる可能性あります。
また選ばれたらPycon行こうと思う。
でもまぁ、選ばれなくても結局行こうと思う。
ちなみにPython Boot Camp(詳細はこちら)なるものの、講師候補になってます。
縁があれば講師やってると思います。
今はその授業で使うテキストを、時間みつけて作ってます。
人生が楽しくなるといいね。
2016年3月17日木曜日
BigQuery使って困ったこと
BigQueryのメリットやデメリットは巷で溢れている情報なので、個々では割愛
個人的に困ったのは下記のエラー
Resources exceeded during query execution. For more information, see https://cloud.google.com/bigquery/troubleshooting-errors
今回の場合、 主な原因としては、
回避策として、order句や外部結合を使用せずに、検索結果を内部メモリに保存して、モジュールのロジックにてグローピング、ソートを行った
これが世に言う富豪プログラミング です。
早く中間テーブルを使った対策を取らねば
個人的に困ったのは下記のエラー
Resources exceeded during query execution. For more information, see https://cloud.google.com/bigquery/troubleshooting-errors
今回の場合、 主な原因としては、
- クエリでorder句を利用しており、検索結果の量もあいまって、リソースを大量消費したこと
- クエリで外部結合をしており、検索結果が大量に存在したこと
回避策として、order句や外部結合を使用せずに、検索結果を内部メモリに保存して、モジュールのロジックにてグローピング、ソートを行った
これが世に言う富豪プログラミング です。
早く中間テーブルを使った対策を取らねば
2016年1月8日金曜日
Python使って仕事してるので、pypiデビューしてみた。
アップしたのはファイル操作のライブラリとクラウドサービスのライブラリ。
このリンクからGitHubもたどれるので、何かあったらプルリクください。
関数仕様もそこに書いてます。
これからも更新していく予定。
地味にマルチバイトが関わるCSVの処理とか、クラウドサービスのPythonからの操作って
メンドくさい事が多い。特に2系。boto3も使ってみたかったし。
BigQueryやCloudStorage、EC2やS3の操作がだいぶ楽になるはず。。。
アップしたのはファイル操作のライブラリとクラウドサービスのライブラリ。
このリンクからGitHubもたどれるので、何かあったらプルリクください。
関数仕様もそこに書いてます。
これからも更新していく予定。
地味にマルチバイトが関わるCSVの処理とか、クラウドサービスのPythonからの操作って
メンドくさい事が多い。特に2系。boto3も使ってみたかったし。
BigQueryやCloudStorage、EC2やS3の操作がだいぶ楽になるはず。。。
2015年10月13日火曜日
2015/10/10に
2015年9月30日水曜日
ブラウザテスト環境提供サービスの比較
世の中には便利なものがあって、最近はSeleniumでブラウザを起動するための環境を
手前で用意する必要は無い。
ネットワークの関係か、日本から動作させるといかんせん遅いような気もするが、
それでも十分なサービスが次の3つ。
各メリット、デメリットつきで記述する。
手前で用意する必要は無い。
ネットワークの関係か、日本から動作させるといかんせん遅いような気もするが、
それでも十分なサービスが次の3つ。
各メリット、デメリットつきで記述する。
- CrossBrowserTesting この3つのサービスのうち、一番安定して動作している気がする。ただし、起動できるブラウザの種類が少なく(Androidデフォルトブラウザのテストができない!)、ChromeやFireFoxの最新版も導入されるスピードが遅い。UIもシンプルだが低機能。ほかの2つと違って、テストのステータスを取得するAPIも存在しない。
- BrowserStack 最新ブラウザに 対応し、直感的でわかりやすいUI、APIを伴っている。チュートリアルもわかりやすい。ただしIPhoneやAndroidの動作がいかんせん不安定。
- SauceLabs 全てにおいて及第点。
2015年3月22日日曜日
requestsでurlに同一キーの複数パラメータを付与する方法
pythonのrequestsモジュールはこういうめんどくさい人たちに比べてかなり使い勝手がいい。
でもでも、urlのパラメータをdictで指定する(参考)ため、同一キーのパラメータは指定不可能
だと思っていた。
で、もやもやしている日曜の早朝に、
\ __ /
_ (m) _ ピコーン
|ミ|
/ `´ \
( ゚∀゚)
ノヽノ |
< <
ってなって、実際に試してみたら、出来たので、共有がてら。
結論から言うと、配列で渡せばいい。
例)
query = {
'hoge': 'hoge1',
'huga': ['huga1','huga2']
'fuge': True
}
r = requests.get('http://testhost/test.json', params=query)
orint r.url
>>u'http://testhost/test.json?hoge=hoge1&huga=huga1&huga=huga2&fuge=True
こんな感じ。
今あるソース全部書き換えたい。。。
でもでも、urlのパラメータをdictで指定する(参考)ため、同一キーのパラメータは指定不可能
だと思っていた。
で、もやもやしている日曜の早朝に、
\ __ /
_ (m) _ ピコーン
|ミ|
/ `´ \
( ゚∀゚)
ノヽノ |
< <
ってなって、実際に試してみたら、出来たので、共有がてら。
結論から言うと、配列で渡せばいい。
例)
query = {
'hoge': 'hoge1',
'huga': ['huga1','huga2']
'fuge': True
}
r = requests.get('http://testhost/test.json', params=query)
orint r.url
>>u'http://testhost/test.json?hoge=hoge1&huga=huga1&huga=huga2&fuge=True
こんな感じ。
今あるソース全部書き換えたい。。。
2015年2月13日金曜日
Pycharmが素敵すぎる件
Pycharmからnoseを使った単体テストを実行できるので、
日本語の情報がなかったので、備忘録として。
File→setting→tools→Python Integrated Tools→{対象プロジェクト}→Default test runner
ちなみにここからrequirements.txtの場所も指定できる。
また、他のプロジェクトのソースを参照したい場合は
File→setting→project→project Dependencies
から指定出来る
日本語の情報がなかったので、備忘録として。
File→setting→tools→Python Integrated Tools→{対象プロジェクト}→Default test runner
ちなみにここからrequirements.txtの場所も指定できる。
また、他のプロジェクトのソースを参照したい場合は
File→setting→project→project Dependencies
から指定出来る
2015年1月12日月曜日
Pythonとスレッド
モジュールの速度改善を行うために、Pythonで行うthread処理について調べることになった。
どうやらJavaみたいにクラスを分割だけではなく、メソッド単位でスレッドかできるらしい。
同時に複数スレッドからlistにpushしたりpopしたりするものも、独自に作成する必要は無く、
いい感じにロックをかけてくれるものもあるらしい。
シンプルなものになるとこんな感じ。
Pythonって便利。
どうやらJavaみたいにクラスを分割だけではなく、メソッド単位でスレッドかできるらしい。
同時に複数スレッドからlistにpushしたりpopしたりするものも、独自に作成する必要は無く、
いい感じにロックをかけてくれるものもあるらしい。
シンプルなものになるとこんな感じ。
Pythonって便利。
2014年9月14日日曜日
boot2docker起動時のエラー
最近、仕事で仮想環境にかかわることが多い。
その時に詰まったことを共有する。
ここを参考にして、boot2dockerをインストールして起動すると、エラーが発生した。
error in run failed to get machine "boot2docker-vm": exec: "%VBOX_MSI_INSTALL_PATH%;C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe": file does not exist
error in run failed to initialize machine "boot2docker-vm": exec: "%VBOX_MSI_INSTALL_PATH%;C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe": file does not exist
結論から言うと、環境変数:VBOX_INSTALL_PATHを
"%VBOX_MSI_INSTALL_PATH%;C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe"
から
"%C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe"
に修正すると回避できた。
boot2dockerの中身を見てみたが、観光変数が『;』で区切られている場合の考慮がされていなかった。
まだまだ荒いところはあるけど、dockerっていいよね。
その時に詰まったことを共有する。
ここを参考にして、boot2dockerをインストールして起動すると、エラーが発生した。
error in run failed to get machine "boot2docker-vm": exec: "%VBOX_MSI_INSTALL_PATH%;C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe": file does not exist
error in run failed to initialize machine "boot2docker-vm": exec: "%VBOX_MSI_INSTALL_PATH%;C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe": file does not exist
結論から言うと、環境変数:VBOX_INSTALL_PATHを
"%VBOX_MSI_INSTALL_PATH%;C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe"
から
"%C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe"
に修正すると回避できた。
boot2dockerの中身を見てみたが、観光変数が『;』で区切られている場合の考慮がされていなかった。
まだまだ荒いところはあるけど、dockerっていいよね。
2014年3月6日木曜日
seleniumからブラウザを起動するときのオプション情報
1.キャッシュやクッキーをクリアした状態でIEを起動する方法(Ver.2.35から可能)
DesiredCapabilities ieCap = DesiredCapabilities.internetExplorer();
ieCap.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
WebDriver driver = new InternetExplorerDriver(ieCap);
こんな感じ
2.marionetteのFireFoxを起動する方法(Ver.2.34から可能)
System.setProperty("webdriver.firefox.marionette", "true");
WebDriver driver = new FirefoxDriver();
プロファイルやバイナリの設定が必要になることもあるが、そのあたりは
コンストラクタを変更すればいい。(詳細は過去ログ)
そもそもマリオネットモードのFireFox環境を構築するにはFireFoxのビルドも
しなくちゃいけないらしく、そっちのほうが大変なような気がする。
*そもそもmarionetteって何?って人はここが詳しい
ようは別筐体にインストールしたFireFoxをソケットでつないで動作させるモード。
DesiredCapabilities ieCap = DesiredCapabilities.internetExplorer();
ieCap.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
WebDriver driver = new InternetExplorerDriver(ieCap);
こんな感じ
2.marionetteのFireFoxを起動する方法(Ver.2.34から可能)
System.setProperty("webdriver.firefox.marionette", "true");
WebDriver driver = new FirefoxDriver();
プロファイルやバイナリの設定が必要になることもあるが、そのあたりは
コンストラクタを変更すればいい。(詳細は過去ログ)
そもそもマリオネットモードのFireFox環境を構築するにはFireFoxのビルドも
しなくちゃいけないらしく、そっちのほうが大変なような気がする。
*そもそもmarionetteって何?って人はここが詳しい
ようは別筐体にインストールしたFireFoxをソケットでつないで動作させるモード。
2013年4月29日月曜日
WebDriverでのalert(confirm)検知方法
WebDriverでのalertを検知する方法として、
switchToメソッドを使ってalertオブジェクトを取得する方法等が存在した。
しかしながら、この方法ではオブジェクトを取得するまでに一定時間待機してしまい
時間がかかりすぎてしまう。
先人の知恵を元に強制js書き換えを行うのが通例とされてきたが、2.32から
selenium自体がこの方法をラッピングしてくれた。
WebDriver driver = new ChromeDriver();
AlertOverride alertOverride = new AlertOverride(true);
alertOverride.replaceAlertMethod(driver); //①
・
・
・
if(alertOverride.isAlertPresent(driver)){ //②
String alertMsg = alertOverride.getNextAlert(driver); //③
}
if(alertOverride.isConfirmationPresent(driver)){ //④
String confirmMsg = alertOverride.getNextConfirmation(driver);//⑤
}
①でwindow.alert、confirmを上書きし、内部バッファに溜め込むようにしている
②でalertが発生しているかどうか確認し、③でそのメッセージを取得している。
④、⑤も同様。
Jsの書き換えを行っているため、各画面を開くごとに実行する必要があるところが
注意点。WebDriverぐらい内部に保持して、いちいち引数に指定しなくて
いいようにしてほしいなと思う今日この頃。
alertやconfirmはスクリーンショットで取得できないので、実装ミスによる
alertが表示された場合、この方法をとらないとどんなメッセージが表示されたか
わからない。
JQueryのメッセージボックスを使用していて、alertやconfirmは使用していないという
場合は、あらいざらいこの方法ですくってやればいい。
switchToメソッドを使ってalertオブジェクトを取得する方法等が存在した。
しかしながら、この方法ではオブジェクトを取得するまでに一定時間待機してしまい
時間がかかりすぎてしまう。
先人の知恵を元に強制js書き換えを行うのが通例とされてきたが、2.32から
selenium自体がこの方法をラッピングしてくれた。
WebDriver driver = new ChromeDriver();
AlertOverride alertOverride = new AlertOverride(true);
alertOverride.replaceAlertMethod(driver); //①
・
・
・
if(alertOverride.isAlertPresent(driver)){ //②
String alertMsg = alertOverride.getNextAlert(driver); //③
}
if(alertOverride.isConfirmationPresent(driver)){ //④
String confirmMsg = alertOverride.getNextConfirmation(driver);//⑤
}
①でwindow.alert、confirmを上書きし、内部バッファに溜め込むようにしている
②でalertが発生しているかどうか確認し、③でそのメッセージを取得している。
④、⑤も同様。
Jsの書き換えを行っているため、各画面を開くごとに実行する必要があるところが
注意点。WebDriverぐらい内部に保持して、いちいち引数に指定しなくて
いいようにしてほしいなと思う今日この頃。
alertやconfirmはスクリーンショットで取得できないので、実装ミスによる
alertが表示された場合、この方法をとらないとどんなメッセージが表示されたか
わからない。
JQueryのメッセージボックスを使用していて、alertやconfirmは使用していないという
場合は、あらいざらいこの方法ですくってやればいい。
2013年3月3日日曜日
【JavaFX2】コントローラクラス
コンポーネントのイベントを貼り付けたりコンポーネントにアクセスするために
フィールド変数を保持したり、何かと忙しいコントローラクラス。
それに対する覚書。
1.コントローラでないとコンポーネントを認識しない
@FXMLアノテーションをつけることによって、java側から画面のコンポーネントにアクセスするが、
そもそもこの機能はコントロールクラスでないと動作しないようだ。
2.フォーム1つにつきコントローラも1つ
SCENE Buiderを見る限り、どうもそうっぽい。最終的にごちゃごちゃしてくるのではないだろうか。
3.初期処理はinitializeで
コンポーネントに対する初期処理は、コントロールクラスにInitializableを実装し、
initializeメソッドでやるのが流儀のようだ。
4.コントローラのインスタンス取得方法
URL file = new File("fxmlファイルパス").toURI().toURL();
FXMLLoader loder = new FXMLLoader();
Conroller controller = (Controller) loader.getController()
こんな感じ。
さくさく十同できますなぁ。
SCENE Buider自体のバグが気になるけど。
フィールド変数を保持したり、何かと忙しいコントローラクラス。
それに対する覚書。
1.コントローラでないとコンポーネントを認識しない
@FXMLアノテーションをつけることによって、java側から画面のコンポーネントにアクセスするが、
そもそもこの機能はコントロールクラスでないと動作しないようだ。
2.フォーム1つにつきコントローラも1つ
SCENE Buiderを見る限り、どうもそうっぽい。最終的にごちゃごちゃしてくるのではないだろうか。
3.初期処理はinitializeで
コンポーネントに対する初期処理は、コントロールクラスにInitializableを実装し、
initializeメソッドでやるのが流儀のようだ。
4.コントローラのインスタンス取得方法
URL file = new File("fxmlファイルパス").toURI().toURL();
FXMLLoader loder = new FXMLLoader();
Conroller controller = (Controller) loader.getController()
こんな感じ。
さくさく十同できますなぁ。
SCENE Buider自体のバグが気になるけど。
2013年2月24日日曜日
JavaFX2での実装所感
たぶん生きてる間はJavaはなくならないと思うんだ、cobol的に。
いまさらながら、JavaFX2に触れてみた。
・NetBeans最新版ダウンロード
・JavaFXSDKダウンロード
・Scene Builderダウンロード
基本これだけで開発環境が構築される。eclipseとはまだまだ親和性が低い模様。
実装方法もVisual StudioやDelphiと同じくコンポーネントをマウスで設定したり
イベントを紐付けて記述したりと、今までのノウハウがそのまま使えていい感じ。
Mavenで開発環境を構築しようとしたら、ソースのコンパイルはうまくいくが、
JavaFX関連のクラスが参照できず、デバッグ実行がうまくいかなかった。
ローカルに配置したJavaFXSDKのパスをMavenのsettingファイルに環境変数として登録し、
参照させる(ネットワーク経由では参照できない)らしく、やってもうまくいかないので、
いったん保留。
標準のメッセージボックスが存在しないという点が今のところ驚いた点になる。
フリーのライブラリを使用するか、出なければ独自にwindowをモーダル生成し、実装するしかない。
とはいえ、画面をソースで直接記述するSwingよりはかなりいい。関連書籍が少ないのが気になるが。
画面ファイル(fxmlファイル)で他の画面ファイルを継承したり出来るのだろうか。
数年後に消えませんように。
いまさらながら、JavaFX2に触れてみた。
・NetBeans最新版ダウンロード
・JavaFXSDKダウンロード
・Scene Builderダウンロード
基本これだけで開発環境が構築される。eclipseとはまだまだ親和性が低い模様。
実装方法もVisual StudioやDelphiと同じくコンポーネントをマウスで設定したり
イベントを紐付けて記述したりと、今までのノウハウがそのまま使えていい感じ。
Mavenで開発環境を構築しようとしたら、ソースのコンパイルはうまくいくが、
JavaFX関連のクラスが参照できず、デバッグ実行がうまくいかなかった。
ローカルに配置したJavaFXSDKのパスをMavenのsettingファイルに環境変数として登録し、
参照させる(ネットワーク経由では参照できない)らしく、やってもうまくいかないので、
いったん保留。
標準のメッセージボックスが存在しないという点が今のところ驚いた点になる。
フリーのライブラリを使用するか、出なければ独自にwindowをモーダル生成し、実装するしかない。
とはいえ、画面をソースで直接記述するSwingよりはかなりいい。関連書籍が少ないのが気になるが。
画面ファイル(fxmlファイル)で他の画面ファイルを継承したり出来るのだろうか。
数年後に消えませんように。
2013年2月20日水曜日
v2.30の追加機能
いろいろな不具合を直しつつ、新機能としては
1. Chromeの動作ログが出力されるようになった。
System.setProperty(ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY,"C:\\abc.log");
WebDriver chrome = new ChromeDriver();
こんな感じ
2.IEの起動オプションが追加
DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
caps.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING, true);
caps.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
WebDriver ie = new InternetExplorerDriver(caps);
こんな感じ
正直秋田。
違う方向性を探らなければ。
今のところ、一番興味があるのはJavaFX2。
適当にもの作って、再配布しても著作権的に問題にならないかが気になるところ。
1. Chromeの動作ログが出力されるようになった。
System.setProperty(ChromeDriverService.CHROME_DRIVER_LOG_PROPERTY,"C:\\abc.log");
WebDriver chrome = new ChromeDriver();
こんな感じ
2.IEの起動オプションが追加
DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
caps.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING, true);
caps.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
WebDriver ie = new InternetExplorerDriver(caps);
こんな感じ
正直秋田。
違う方向性を探らなければ。
今のところ、一番興味があるのはJavaFX2。
適当にもの作って、再配布しても著作権的に問題にならないかが気になるところ。
2013年1月5日土曜日
WebDriverでjs単体テスト
最近Seleniumとphantomjsが怪しい。
2.27からごちょごちょやっていて、2.28になって、こんなことを言い出した。
「Added the PhantomJS bindings to the release」
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "/usr/local/bin/phantomjs");
WebDriver driver = new PhantomJSDriver(caps);
driver.get("http://gugurekasu.blogspot.jp/");
System.out.println("TITLE : " + driver.getTitle());
System.out.println("URL : " + driver.getCurrentUrl());
こんな感じで使える。
http://cdn.ivandemarino.me/slides/speed_up_selenium_with_phantomjs/index.html#title
上記に書いているが、画面を表示しない分、速度が速くなる。
ただしjsのエンジンがwebkit固定なので、WindowsFireFoxなどとはお庭が違う。
そういう意味では、JsTestDriverのほうが起動ブラウザを選択できる分優秀。
残念。
2.27からごちょごちょやっていて、2.28になって、こんなことを言い出した。
「Added the PhantomJS bindings to the release」
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "/usr/local/bin/phantomjs");
WebDriver driver = new PhantomJSDriver(caps);
driver.get("http://gugurekasu.blogspot.jp/");
System.out.println("TITLE : " + driver.getTitle());
System.out.println("URL : " + driver.getCurrentUrl());
こんな感じで使える。
http://cdn.ivandemarino.me/slides/speed_up_selenium_with_phantomjs/index.html#title
上記に書いているが、画面を表示しない分、速度が速くなる。
ただしjsのエンジンがwebkit固定なので、WindowsFireFoxなどとはお庭が違う。
そういう意味では、JsTestDriverのほうが起動ブラウザを選択できる分優秀。
残念。
2012年11月24日土曜日
seleniumの2.26になってかわったこと その2
事前に検証することは大事である。ちゃんとやっておけば
「ワンセグ見れる5万のタブレットを買ったものの、
お風呂までワンセグの電波が届かない。
こんなことならNEXUS買っときゃよかった」
なんてことにはならない。
2.26で出来るようになったことの続き
1.Platformクラスのwindows8対応
OSの情報を取得できるPlatformクラスがWindows8に対応した。
[使い方]
for(String inf:Platform.getCurrent().getPartOfOsName()){
System.out.println(inf);
}
Windows8環境上記メソッドを実行すると
Windows Server 2012
windows 8
win8
って出力される
2.プロキシ自動設定、https、socksプロキシに対応
[使い方]
Proxy proxy = new Proxy();
FirefoxProfile profile = new FirefoxProfile();
//自動設定の場合
proxy.setProxyAutoconfigUrl("http://192.168.0.10/proxy.pac");
//socksの場合
proxy.setSocksProxy("hostname.com:1234")
.setSocksUsername("user")
.setSocksPassword("pass");
//httpsの場合
proxy.setHttpsProxy("hostname:1234");
profile.setProxyPreferences(proxy);
WebDriver driver = new FirefoxDriver(profile);
3.Colorクラスでカラーを文字で指定可能に
[使い方]
Color clr = Color.fromString("SILVER");
System.out.println(clr.asRgb());
指定できる文字はColorsクラスが保持している
その他
・driverのCapabilitiesを使用するコンストラクタのDeprecatedが消えた、なぜに
seleniumの2.26になってかわったこと その1
3DSドラゴンクエスト7に求めること
・職業レベルがMAXになって、早く転職したいのに、急に世界から隔離されて、
ダーマ神殿に行けなくなるタイミングがある。
・マリベルがいい感じに賢者に転職できた頃に強制離脱するシナオリオ
・操作キャラクターが5人いるのに、つれて歩けるのが4人まで。
中途半端なので一人減らすか、馬車などの一緒に連れていく方法を増やしてほしい。
・特技『怒涛の羊』の威力はそのままで。
それはさておき、去年まで2回/月だったseleniumのバージョンアップが
2、3ヶ月に1回になった。
ただし、いまだにIE対応は躓くところが多いのか、IEDriverのみ
バージョンアップを繰り返すことがおおい。
コツとしては、新バージョンのselenium動作検証あと、1、2週間まって、
IEDriverの世間での安定性を確認すればいいかなと。
2.26で出来るようになったことを一通り。
1.Architectureクラス
新規追加クラス。クライアントのCPU情報などを取得してくれる。
[使い方]
String myArch = Architecture.getCurrent().toString();
System.out.println(myArch);//x86って出力される。
2.kyesクラスがunicodeに対応した
unicodeを指定して、キーオブジェクトを取得することが出来るようになった。
[使い方]
①Keys.getKeyFromUnicode('\uE008');
②Keys.getKeyFromUnicode(Keys.SHIFT.charAt(0));
①と②は同じキーオブジェクトを返却する。
3.ActionsクラスcontextClickメソッド(引数無しバージョン)追加
Actions.contextClick()で、その場で右クリックしてくれるようになった。
以前からも Actions.contextClick(null)で同じことは出来たけれども
その他
・DatabaseStorageクラスがDeprecatedアノテーションくらった
(使ってる人、少ないと思うけど、、)
・IEから useLegacyServerオプションが完全に撤去された。
これからはIEDriverを使いましょう
・毎度のログ周りの大きな変更
・毎度のsafari周りの大きな変更
続きはまた今度。
2012年11月4日日曜日
待ったことをアピールしてみる
フランスっていいよね。
3ヶ月ぶりにseleniumがVerUpしたので、久々に燃料投下。
ざっと見た感じ2.25から2.26への主な変更点は
1.共通ライブラリが一気に更新(operadriverとか)
2.IE、FireFoxでの安定化(FireFox15、16のnativeイベント対応)
3.プロキシurl自動設定、https、socksプロキシに対応
4.ログまわりの大きな変更
5.kyesクラスのunicode対応
6.名前からcolorクラスを生成可能に
7.safari操作系統がっつり変更
という感じ。
結論から言えば、あげるといいと思うよというところ。
IEでのhover不具合なども直っており、1と2だけでも結構なお得だとおもったり。
詳細な実装方法とかはまた今度。
3ヶ月ぶりにseleniumがVerUpしたので、久々に燃料投下。
ざっと見た感じ2.25から2.26への主な変更点は
1.共通ライブラリが一気に更新(operadriverとか)
2.IE、FireFoxでの安定化(FireFox15、16のnativeイベント対応)
3.プロキシurl自動設定、https、socksプロキシに対応
4.ログまわりの大きな変更
5.kyesクラスのunicode対応
6.名前からcolorクラスを生成可能に
7.safari操作系統がっつり変更
という感じ。
結論から言えば、あげるといいと思うよというところ。
IEでのhover不具合なども直っており、1と2だけでも結構なお得だとおもったり。
詳細な実装方法とかはまた今度。
2012年9月10日月曜日
DWRのオプションで速度改善
DWRの仕様を確認するために、公式サイトを見てみる。
内容をかいつまむと
・メーリスみろよ
・ヘルプみろよ
・トラブルシューティングみろよ
って書いてある。ようは自分で調べろってことで。
多重アクセス時の速度改善に役に立ちそうな情報としてはweb.xmlのオプションで
・maxWaitingThreads(同時ブラウザ最大接続数:デフォルト100)
・maxHitsPerSecond(同時処理数:デフォルト40)
・scriptCompressed(dwrに関するjsの圧縮:デフォルトfalse)
このあたりを変更すればいいかもね。
内容をかいつまむと
・メーリスみろよ
・ヘルプみろよ
・トラブルシューティングみろよ
って書いてある。ようは自分で調べろってことで。
多重アクセス時の速度改善に役に立ちそうな情報としてはweb.xmlのオプションで
・maxWaitingThreads(同時ブラウザ最大接続数:デフォルト100)
・maxHitsPerSecond(同時処理数:デフォルト40)
・scriptCompressed(dwrに関するjsの圧縮:デフォルトfalse)
このあたりを変更すればいいかもね。
登録:
投稿 (Atom)


