Sinatraのあらかると

記録することで、環境構築で悩まない。

GitHubレポジトリを変更。

github.com

もともとは記事のネタでした。

これを入力補完辞書として、neocompleteのリストに表示できるようにしました。

補完リストには[D]と表示されます。

deoplete_complete_ruby3レポジトリは削除しました。オプションに期待しています。

deopleteではオプションで使えるそうです。

調べていきます、更新はまたのちに。

ミニテストを並列化する。

(RubyAdventCalendar2017の代わりに投稿記事にしました)

任意フォルダにmini_testフォルダを作ります。

ファイルの構成はこういう形にします

./mini_test/mini_test_version.rb

./mini_test/mini_test_date.rb

テストファイルで、テストデータを作ります。

任意のフォルダ(例:zinbei2)で

ruby mini_test_runner.rb

実行します

mini_test_runner.rb (構成)

# frozen_string_literal: true

require 'minitest/autorun'

puts ''
puts ' mini_test in filename list...start '.center(60,'-')
puts ''

class MiniFilename

    def mini_find
        puts Dir.glob('./mini_test/*.rb')
    end
end

MiniFilename.new.mini_find

puts ''
puts ' mini_test in filename list...exit '.center(60,'-')
puts ''

module Mini_Test_One

    module_function
    
    def mini_test_version
        require_relative File.join(File.dirname(__FILE__),'mini_test/mini_test_version')
    end
    def mini_test_date 
        require_relative File.join(File.dirname(__FILE__),'mini_test/mini_test_date')
    end
end

Mini_Test_One.mini_test_version
Mini_Test_One.mini_test_date

__END__

並列化により、複数のテストコードの結果をみることができます。

mini_testの参考書籍

達成したいこと、これからのこと

今週のお題「2018年の抱負」

 昨年は、どうやら検索エンジン実装は叶いませんでしたけれど、Nyasocomサイトの検索バーを自作したり、暗号化・復号化ツールを作れたり、形態素解析ツールを作ったり、zinbei2に新機能の開発が進んだり、できないなりに充実している年でした。今年は、python3とrubyとpycallを使ってデータ解析をしていこうと考えています。そこに検索エンジン実装が含まれたり、他のツールを作ったり、できることは多いですね。さっき、近くの神社でおみくじを引いてこようとしたのですが、何もなくお賽銭だけ入れてきました。今年も良き年になればいいですね。

短文ですが、以上です。 ( ̄^ ̄)ゞ

pycallを使ってみての感想

(RubyAdventCalendar2017の代わりに投稿記事にしました)

github.com

Rubyでpython3ライブラリを読むことができます。

こんな風に書いていけました。

Vimプラ銀まで進めていきたいと思います。

gem install pycall

gem install matplotlib

#coding: utf-8

require 'pycall/import'
include PyCall::Import

sys = PyCall.import_module('sys')

puts sys.stdout.encoding

pyimport :datetime
puts datetime.date.today()

pyimport :datetime
puts datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S')

pyimport :calendar
puts (calendar.month(2017,12))

#機械学習用サンプル
plt = PyCall.import_module('matplotlib.pyplot')

plt.plot([1,5,3,4])
plt.show()
UTF-8
2017-12-16
2017/12/16 12:29:25
   December 2017
Mo Tu We Th Fr Sa Su
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

f:id:emerald00:20171227203105p:plain

参考書籍

みんなのPython 第3版

みんなのPython 第3版

余談

pythonコードは、文字エンコーディングがanciのようです。日本語表記に文字化けというかシンタックスエラーなどを起こします。Rubyのデフォルトの文字コードはutf8です。特に問題がなければ、日本語表記になるのはRubyを使えばいいということですね。それを知りました。指定をしていく、環境変数に書く、回避はいろいろあると思います。ただ、Rubyコードが母体なので、いいとこどりがいいですね。

時間があるときにもう少し、追記します。

機械学習をする手前まではいけたんじゃないですか。

この先は、数値でデータ解析していきます。

Rubyの入力補完用の辞書。

github.com

deoplete-rubyのsourceフォルダ内、keywordとcore_methodsを消して、ruby-completeファイルだけで充分動作します。

私は、自分のdeoplete-rubyにそんな細工をしました。単語補完数が増えて助かっています。

もちろん、辞書なので入力補完を読み込めるエディタで動作しますよ。

※ Neovim/Vimだけではありません。

気づきましたが?tanraku,tanraku_logがあることに。

もちろん、require 'tanraku'をしないと動作はしません。no method errorを返すと想います。

require_relativeでもいいはずですが、loadで動作するかはわかりませんね。試してないので。

それでは、Vim2AdventCalendar2017で私が登録した日付、12/17の記事をお楽しみくださいませ。

riceシェルの組み立て方

環境構築ブログなので紹介します。

gem install mecab

gem install natto

MeCab downloads - Google ドライブ

mecab-rubyのバージョンにあったものをダウンロードして、

(例) 一例を解説します、環境にあったように変更願います。

gem build mecab-ruby.gemspec

gem install mecab-ruby-0.996.gem

でインストールできますよ。これで、riceが動作するようになりました。

Ruby Advent Calendar 2017の12/4まで記事はお待ちください、公開されたら内容をお楽しみくださいませ。

Vim8のdeoplete補完について

環境構築ブログなので、何も言わずに対応してくれていたメンテナに感謝しています。

Windows 10
python 2.7.14
python 3.5.4

deinを環境構築まだは、こちら。

takkii.hatenablog.com

takkii.hatenablog.com

takkii.hatenablog.com

deinを使うには、deinでVimのプラギン管理。と

改番、dein,deopleteとの付き合い方を参考に。

vim-plugを使うには、dein記事の無効を参考に。

読者がプラギンマネージャーを選べますよ。

neocompleteから移行するのも、フォルダを消して、

.vimrcの記述を削除すれば動作します。シンプル。

さっき、やってみました。Vim8でdeoplete対応版。

github.com

nvim_buf_line_countメソッドがno implementsだと言っていました。私が構築したときメンテナに報告してくださいのメッセージが流れていたのですが、数分後に追加してくれていました。これにより、WindowsでもdeopleteがVim8で環境構築できるようになっています。すごい。

vim8なのでおなじみの.vimrcに追加していきます。(init.vimじゃないよ)

※ 忘れていないよね、このスタートする記述...

github.com

" Use deoplete.
let g:deoplete#enable_at_startup = 1

takkii.hatenablog.com

let g:python3_host_prog='Python3のインストール先/python.exe'

let g:python_host_prog='python2のインストール先/python.exe'

python.exeはpython3だけ、python3.exeに名前を変更します。

takkii.hatenablog.com

こんな問題がありますが、システム環境変数にインストール先/Scriptsを追加しpip3 install neovimをしておけば大丈夫です。pip3.exeがある場所を通しておくと便利です。python2もScriptsの場所だけシステム環境変数に追加しpip install neovimを実行します。念のためにpython35フォルダでpython.exeがある場所を環境変数に追加しておくと後々助かります。

deinを使っている前提で既存の.vimrcに、

Vim8では動作しないそうなので、deoppet.nvimを削除します。

※ 参考に、自分の好みにあわせてdeopleteの言語をあわせましょう。私はRubyプログラマーなので、deoplete-rubyをプラギンに追加しています。

call dein#add('Shougo/deoplete.nvim')
  call dein#add('Shougo/deoplete-rct')

  if !has('nvim')
  call dein#add('roxma/nvim-yarp')
  call dein#add('roxma/vim-hug-neovim-rpc')
  endif
  
  call dein#add('fishbullet/deoplete-ruby')

書き足します。

deinの記事を参考にneosnippetは追加しているはずなので、

" Enable snipMate compatibility feature.
let g:neosnippet#enable_snipmate_compatibility = 1

" Plugin key-mappings.
 imap <C-k>     <Plug>(neosnippet_expand_or_jump)
 smap <C-k>     <Plug>(neosnippet_expand_or_jump)
 xmap <C-k>     <Plug>(neosnippet_expand_target)

" SuperTab like snippets behavior.
 imap <expr><TAB> neosnippet#expandable_or_jumpable() ?
 \ "\<Plug>(neosnippet_expand_or_jump)"
 \: pumvisible() ? "\<C-n>" : "\<TAB>"
 smap <expr><TAB> neosnippet#expandable_or_jumpable() ?
  \ "\<Plug>(neosnippet_expand_or_jump)"
   \: "\<TAB>"

" For snippet_complete marker.
   if has('conceal')
   set conceallevel=2 concealcursor=i
   endif

この設定を足します。既にあればそのままでOKです。

echo has ('python3')

echo has ('python')

で1を返せば完了です。

:message

を読んで、エラー対処していきなくなれば、

Vimを起動したら、ゆるゆると単語補完がでますよ。お疲れ様。

channel - Vim日本語ドキュメント

E906エラーがたまに流れます。これはVim8のチャンネルを終了していないのだと想われます。

※ 最新のWindows版Vim8ではでなくなるのを確認しました。ないとは想いますが、kaoriya-vim8-win32と最新のvim8を混在して、プロセスを並列しないほうがいいと想います。私は環境をみるためにそうしたのですが、E906エラーはそのあたりなんじゃないかと推測しています。もし、同じエラーに遭遇したら、チャンネルをcloseする処理をchannel - Vim日本語ドキュメントの上記リンクから考えてみるのも手です。

その後の、対処状況

追記:WindowsVimは最新を使ってますか?

github.com

最新をお使いください。GitHubVimのレポジトリがあります。

動画を修正しました。次はあるのかな...

Copyright © 2007-2018 Takayuki Kamiyama. All Rights Reserved.