PullReqMaker v0.2.7 リリースノート

PullReqMakerをご利用いただきありがとうございます。

アップデート内容

  • ウィンドウを開いた時に、画面が白くなるのを修正しました。

評価版ダウンロード


評価版ダウンロード

配信について

  • アップデート内容はアプリ起動時に自動で配信されます。
  • アップデートされない場合は、お手数ですがアプリの再起動をお願いいたします。
Please follow and like us:

(非公式に)omniauth-freeeを作成しました。

こんにちは。株式会社デザインルール 金澤です。

非公式ですがRailsでFreee WebAPIのoauth2認可ができるomniauth-freee(非公式)を作成しました。
まだ、若干refresh_tokenの挙動が怪しいのですが、ご興味のある方はどうぞご覧ください。

きっかけ

先日FreeeのWebAPIを触る機会がありました。
List of Strategies · omniauth/omniauth Wikiにfreee APIのomniauth strategyが見当たらないので、omniauth-githubのコードを真似て作成してみました。

使い方

  1. Freeeのアプリケーション一覧画面でアプリケーションを登録し、AppIDとSecretを取得します。
  2. あとは他のストラテジーと同様にconfig/initializers/omniauth.rb等を作成し、以下を記述します。
  use OmniAuth::Builder do
    provider :freee, ENV['FREEE_KEY'], ENV['FREEE_SECRET']
  end
  1. deviseと組み合わせる場合は、config/initializers/devise.rbに追記します。
Devise.setup do |config|
  (省略)
  config.omniauth( :freee,
                   ENV['FREEE_KEY'],
                   ENV['FREEE_SECRET'])
end

追記

  • company_idは、extra_infoの中に入れています。
  • ほとんどのAPIでは、company_idが必須になります。
Please follow and like us:

PullReqMaker v0.2.6 リリースノート

PullReqMakerをご利用いただきありがとうございます。

アップデート内容

  • 変更内容の同期、送信時の通知を削除いたしました。

評価版ダウンロード


評価版ダウンロード

配信について

  • アップデート内容はアプリ起動時に自動で配信されます。
  • アップデートされない場合は、お手数ですがアプリの再起動をお願いいたします。
Please follow and like us:

PullReqMaker v0.2.5 リリースノート

PullReqMakerをご利用いただきありがとうございます。

アップデート内容

  • pdfやPowerPointのファイルの差分がとれていない不具合を修正いたしました。
  • 提案モード時に、「提案の新規作成」ボタンが正しく動かない不具合を修正しました。

評価版ダウンロード


評価版ダウンロード

配信について

  • アップデート内容はアプリ起動時に自動で配信されます。
  • アップデートされない場合は、お手数ですがアプリの再起動をお願いいたします。
Please follow and like us:

PullReqMaker v0.2.4 リリースノート

PullReqMakerをご利用いただきありがとうございます。

アップデート内容

  • ユーザー名に記号が含まれている時に、ブランチが作成できない問題を修正しました。
    • 本アプリからユーザー名に登録できるのは、半角英数一部記号(アンダースコア、ドット、ハイフンおよびスペース)となります。
    • ユーザー名に使用できない記号が含まれる場合は、アンダースコアに変換するように修正しました。
  • .textconv内のディレクトリに対して、差分を作成しようとする不具合を修正しました。
  • MSOfficeファイルを新規に保存した時に、差分の作成に失敗する不具合を修正しました。
  • Windowsにて、初期設定後にgitコマンドが見つからない不具合に対応しました。gitインストール後にアプリの再起動が必要になります。
  • リポジトリurl入力画面で、ハイフンを含んだURLが入力できない不具合を修正しました。
  • Windows版にて、コードサイニング認証に対応しました

配信について

  • アップデート内容はアプリ起動時に自動で配信されます。
  • アップデートされない場合は、お手数ですがアプリの再起動をお願いいたします。
Please follow and like us:

PullReqMaker v0.2.3 リリースノート

PullReqMakerをご利用いただきありがとうございます。

アップデート内容

  • ファイル保存時にMSOfficeの一時ファイルが残っている場合通知がでるようになりました。
  • MSOfficeの一時ファイルに対して、差分を出力しようとする不具合を修正しました

配信について

  • アップデート内容はアプリ起動時に自動で配信されます。
  • アップデートされない場合は、お手数ですがアプリの再起動をお願いいたします。
Please follow and like us:

Gitの脆弱性 ( CVE-2017-1000117 )について

PullReqMakerをご利用いただきありがとうございます。
8/11にGitの脆弱性 ( CVE-2017-1000117 )が発表されています。

Gitの脆弱性 ( CVE-2017-1000117 ) — | サイオスOSS | サイオステクノロジー

今回の脆弱性はssh形式のリポジトリurlに関するものです。
「PullReqMaker」では、https形式のリポジトリurlのみ入力可能としているため直接の影響はありません。

しかし、homebrewなどgitを利用しているソフトウェア等に影響があるため、Git本体のアップデートをお願いいたします。

windows

https://git-for-windows.github.io/ より再度ダウンロードして、インストールしてください。

mac

Apple Storeよりアップデートが配信されると思われますので、配信後にインストールしてください。

Please follow and like us:

webサイトリニューアルしました

このたび、Webサイトをリニューアルしました。

下記の内容を追加しました

今後ともサービス向上のため、ページの改善やコンテンツの充実に努めていきます。今後とも何卒よろしくお願いいたします。

Please follow and like us:

BigGorilla環境の構築を試す

前回に引き続き、BigGorilla環境の構築を行いました。
またFlexMatcherのサンプルを試すところまでやってみました。
BigGorilla環境の構築メモ – Qiitaから転載してます。

わかったこと

  • anaconda入れるためだけにpyenvを使い、環境管理はcondaでやるのが最近の定石
  • (2017年7月12時点だと)環境構築がうまくいかない
    • もともと公開されているconda環境の依存関係が壊れている
      Anaconda Cloudから直接ymlをローカルにダウンロードしてurllibを指定している行を削除し、ファイル指定でインストールすることはできる。
    • 追記: ファイルがアップデートされて、公式ドキュメントどおり入るようになりました。
  • FlexMatcherのサンプルも動かなかった
    • コード読まないと動かすの難しそう

環境

  • Mac OS X 10.11 El Capitan
  • homebrewはインストール済み
  • pyenvを使ってanacondaをインストールする

BigGorilla環境構築(以下の情報は古いです。作業記録として残しています)

(開発環境の)pyenvが古かったので、アップデートしました。
pyenv で管理しているpythonのバージョンを更新する – Qiita

anacondaをインストール

$ pyenv install anaconda3-4.2.0
$ pyenv global anaconda3-4.2.0

BigGorillaの環境作成。。できない。
2017/07/21追記: できるようになりました。以下古い記録

$ conda env create biggorilla/py3gorilla
Collecting urllib==1.21.1
Downloading urllib-1.21.1.tar.gz (226kB)
100% |████████████████████████████████| 235kB 640kB/s
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/bx/k4yrl_bd3nb0v8pz7fm60t8r0000gp/T/pip-build-58rsg5li/urllib/setup.py", line 191
s.connect((base64.b64decode(rip), 017620))
                                  ^
SyntaxError: invalid token
 ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/bx/k4yrl_bd3nb0v8pz7fm60t8r0000gp/T/pip-build-58rsg5li/urllib/
CondaValueError: Value error: pip returned an error.

完全には入っていませんが、試しにactivateします。
source activate Py3Gorillaだとシェルが落ちます。
pyenvを使用している場合は、condaのactivateコマンドをフルパスで指定する必要があります。
Condaの使い方メモ – Qiita
データサイエンティストを目指す人のpython環境構築 2016 – Qiita

$ conda info -e
# conda environments:
#
Py3Gorilla               /Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0/envs/Py3Gorilla
root                  *  /Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0

$ source /Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0/envs/Py3Gorilla/activate Py3Gorilla

動作確認用のJupyter NoteBookを試してみましたが、Py3Gorillaのカーネルが見つからないと言われます。

$ anaconda download biggorilla/hi_gorilla
$ jupyter notebook hi_gorilla.ipynb
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-770f0b5370fe> in <module>()
----> 1 import py_stringmatching as sm
      2
      3 # This notebook imports a package that most users do not have installed
      4 # before using BigGorilla. Running the notebook successfully implies the
      5 # successful installation of BigGorilla.

ImportError: No module named 'py_stringmatching'

一旦conda env createすると、prefixが登録されているといわれてしまいあす。
消す場合はconda env remove -n します。

$ conda env create biggorilla/py3gorilla
Using Anaconda API: https://api.anaconda.org
CondaValueError: Value error: prefix already exists: /Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0/envs/Py3Gorilla

$ conda env remove -n Py3Gorilla

Package plan for package removal in environment /Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0/envs/Py3Gorilla:

The following packages will be REMOVED:

openssl:    1.0.2l-0
pip:        9.0.1-py36_1
python:     3.6.1-2
readline:   6.2-2
setuptools: 27.2.0-py36_0
sqlite:     3.13.0-0
tk:         8.5.18-0
wheel:      0.29.0-py36_0
xz:         5.2.2-1
zlib:       1.2.8-3

Proceed ([y]/n)? y

Unlinking packages ...
[      COMPLETE      ]|###############################################################################| 100%

2017/07/12時点で試したところ、この方法だと以下のエラーがでて入りませんでした。
(6月にアップデートされたファイル名がおかしいせいか、古い方のymlが適用されている気がします。たぶんこれからアップデートで直ると思われます)

追記: ファイルがアップデートされて、公式ドキュメントどおり入るようになりました。

$ conda env create biggorilla/py3gorilla
Collecting urllib==1.21.1
Downloading urllib-1.21.1.tar.gz (226kB)
100% |████████████████████████████████| 235kB 640kB/s
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/bx/k4yrl_bd3nb0v8pz7fm60t8r0000gp/T/pip-build-58rsg5li/urllib/setup.py", line 191
s.connect((base64.b64decode(rip), 017620))
                                  ^
SyntaxError: invalid token
 ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/bx/k4yrl_bd3nb0v8pz7fm60t8r0000gp/T/pip-build-58rsg5li/urllib/
CondaValueError: Value error: pip returned an error.

Files :: Anaconda Cloudからymlをダウンロードしてurllibを指定している行を削除すると、インストールすることはできます。
新しい方のymlも入ることは入るがflexmatcherのバージョンが古いです(デグレしてる?)

# 一旦中途半端にできた環境を消す
$ conda env remove -n Py3Gorilla

# ローカルで修正したymlファイルを指定して、環境再作成
$ vim ~/Downloads/Py3Gorilla.yml //urllibの行を消す
$ conda env create --name test --file ~/Downloads/Py3Gorilla.yml

# pyenvを使用している場合は、condaのactivateコマンドをフルパスで指定する必要がある。source activate Py3Gorillaだとシェルが落ちる。
$ source /Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0/envs/test/bin/activate test

# 動作確認用のnotebookを落としてきて起動
$ anaconda download biggorilla/hi_gorilla
$ jupyter notebook hi_gorilla.ipynb

FlexMatcherのサンプルを試す

次にFlexMatcherのサンプルを試してみました。

サンプルのコードがついているので、ソースをコピーしてjupyter notebookに貼り付けてみます。
やってみた結果、エラーで動かないことがわかりました。

実行結果

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-34cd037abc3a> in <module>()
     27 mapping_list = [data1_mapping, data2_mapping]
     28 fm.create_training_data(schema_list, mapping_list)
---> 29 fm.train()
     30 
     31 # Creating a test schmea

/Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0/envs/test/lib/python3.5/site-packages/flexmatcher/flexmatcher.py in train(self)
     27     The class considers panda dataframes as databases and their column names as
     28     the schema. FlexMatcher learn to do schema matching by training on
---> 29     instances of dataframes and how their columns are matched against the
     30     mediated schema.
     31 

/Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0/envs/test/lib/python3.5/site-packages/flexmatcher/flexmatcher.py in <listcomp>(.0)
     27     The class considers panda dataframes as databases and their column names as
     28     the schema. FlexMatcher learn to do schema matching by training on
---> 29     instances of dataframes and how their columns are matched against the
     30     mediated schema.
     31 

/Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0/envs/test/lib/python3.5/site-packages/flexmatcher/classify.py in predict_training(self, folds)

TypeError: 'float' object cannot be interpreted as an integer

終わりに

次回は、Flexmatcherのコードを読んでみようと思います。

Please follow and like us:

BigGorillaついて概要を調べてみた

データの前処理に興味があり資料を探していたところ、
リクルート人工知能研究所、データ統合および準備のオープンソースエコシステム「BigGorilla」を提供開始 | リクルートホールディングス – Recruit Holdingsというプレスリリースを見つけました。
一見してどういうものなのかよくわからなかったので、概要を調べてみました。
(BigGorillaついて概要を調べてみた – Qiitaより転載しています。)

BigGorillaとは

BigGorilla – Data Integration & Preparation in Python

  • データ前処理におすすめのライブラリが入ったpythonの環境
  • 一部独自実装したライブラリ付き

ネーミングと公式サイトの図から、巨大なフレームワークのような印象でしたが、 いわばライブラリ詰め合わせですね。
(BigGorilla特有のクラスを継承するといったことはない模様)
実際に前処理をやるには、普通にpythonでプログラミングする必要がありそうです。

インストール方法

$ anacondaいれて
$ conda env create biggorilla/py3gorilla
# pyenvを使用している場合は、condaのactivateコマンドをフルパスで指定する必要がある。source activate Py3Gorillaだとシェルが落ちる。
$ source /Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0/envs/Py3Gorilla/bin/activate Py3Gorilla

参考: さあ、はじめよう | BigGorilla

  • 追記: 2017/07/12時点で試したところ、この方法だと以下のエラーがでて入らなかったです。
  • (6月にアップデートされたファイル名がおかしいせいか、古い方のymlが適用されている気がします。おそらくこれからアップデートで直ると思われます。)
  • 2017/07/21追記: ファイルアップデートされていました。これでドキュメントどおりに入ります。

7/12時点で、無理やりインストールした作業記録

$ conda env create biggorilla/py3gorilla
Collecting urllib==1.21.1
Downloading urllib-1.21.1.tar.gz (226kB)
100% |████████████████████████████████| 235kB 640kB/s
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "/private/var/folders/bx/k4yrl_bd3nb0v8pz7fm60t8r0000gp/T/pip-build-58rsg5li/urllib/setup.py", line 191
s.connect((base64.b64decode(rip), 017620))
^
SyntaxError: invalid token
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/bx/k4yrl_bd3nb0v8pz7fm60t8r0000gp/T/pip-build-58rsg5li/urllib/
CondaValueError: Value error: pip returned an error.

Files :: Anaconda Cloudからymlをダウンロードしてurllibを指定している行を削除すると、インストールすることはできました。

### 一旦環境を消す
$ conda env remove -n Py3Gorilla

# ローカルで修正したymlファイルを指定して、環境再作成
$ conda env create --name test --file ~/Downloads/Py3Gorilla.yml

# pyenvを使用している場合は、condaのactivateコマンドをフルパスで指定する必要がある。source activate Py3Gorillaだとシェルが落ちる。
$ source /Users/kkanazaw/.pyenv/versions/anaconda3-4.2.0/envs/test/bin/activate test

# 動作確認用のnotebookを落としてきて起動
$ anaconda download biggorilla/hi_gorilla
$ jupyter notebook hi_gorilla.ipynb

何ができるの? どんなライブラリが入っているか見てみる

Files :: Anaconda Cloudにインストールされるパッケージの一覧があったので、眺めてみます。
公式サイトのコンポーネント一覧でいろいろ紹介されていますが、インストールされるもののはごく一部のようです。
サイトの説明に比べて、意外とミニマムな構成という印象を受けました。
入ってないものは自分でpip installします。

データ収集

  • urllib httpアクセス標準ライブラリ
  • requests urllibよりリッチなhttpsアクセスライブラリ
  • scrapy スクレイピング
  • (tweepy入ってない)

データ抽出

  • beautifulsoup4 webページの読み込み、解析
  • lxml xmlパーサー
  • nltk 自然言語処理(形態素解析とか)

スキーママッチング&マージング

  • FlexMatcher(リクルート研究所製)

データマッチング&マージング

  • Magellan(ウィスコンシン大学開発)
  • py-entitymatching, py-stringmatchingというライブラリの一部として提供されている

データ変換

  • xlrd Excel操作
  • 標準のjson,csv
  • pandas
  • (pdf系入ってない)

スキーママッピング

  • 商用ツールがされててるだけで入ってない?

ワークフロー管理

  • これも入ってない?

その他

依存関係なのか、scikit-learnやjupyter-notebookがはいってる。

独自実装しているライブラリについて

プレスリリースによると、独自で実装しているのは次の3つのライブラリです。


現在、RITはKOKOおよびFlexMatcherというパッケージにて上記b)およびd)を開発しており、 Doan教授のチームではMagellanというパッケージにてf)を開発しています。

FlexMatcher

  • リクルート研究所製スキーママッチングライブラリ
  • 2つのデータ間でデータ項目名が違っても、自動で対応関係を見つけてくれる
  • データの内容を教師データにして、類似度を推定している?
  • (個人的に興味あり)

Magellan

  • ウィスコンシン大学開発データマッチングライブラリ
  • 表記ゆれがあるデータを一つにしたり、住所の名寄せのようなことができる?

KOKO

終わりに

  • 次回は、conda envして実際に環境構築してみたいと思います
  • 余裕があれば、FlexMatcherとMagellanを使ってみたいです。
Please follow and like us: