環境構築・零

環境構築のその先へ

ブランチをわけてロードパスを指定していました。

import os
import re
import traceback
from os.path import expanduser

home = expanduser("~")

dire = open(os.path.expanduser("~/.config/nvim/.cache/dein/repos/github.com/takkii/ruby-dictionary3/autoload/source/ruby_method_deoplete"))

print(os.path.exists(dire))

#contents = dire.read()
#print(contents)

ロードパスを自動化する際のメモ。読み込むまでの様子を確認する必要があります。上記の内容で読み込みがTrueかFalseか判別することもできました。コメントアウトしたのは読み込んだ内容が表示されるかどうかです。それもクリアしています。printデバッグですね。

コードに問題がなく、

SyntaxError: EOL while scanning string literal

このようなメッセージが流れるときは、

保存しているファイル形式やエンコーディングなどを疑いましょう。

これはコード側ではありません。

! そして見つけます、""クオートが余計に紛れているなどのシンタックス異常に。

Deopleteに関して、プラグインを書くことはそれほど難易度は高くないと思います。

リスト型で値を返せば、読み込んでくれます。

要するに途中経過は何でもできるということです。

いつかやるといった記事を書きました。

次はまた、内容ができたら更新します。

なぜ?といえるplackup

stackoverflow.com

RubySinatraはプロジェクトフォルダ直下でrackupできます。

Perl製dancer2はbinフォルダで、plackupをするようです。なぜ?

こんなことをすると、起動するためにbinフォルダへ移動しなければいけません。

なので、上記記事のようにシンボリックを貼ります。

私は、なるべくそのまま使いたかったので、

terminal (例: Genshiプロジェクト直下、

binフォルダ移動しなくてよい )

ln -s bin/app.psgi

bin/app.psgi

#use lib "$FindBin::Bin/../lib";
use lib "$FindBin::Bin/lib";
plackup

こういう風に変更しました。

これでローカルでplackupすることはできます。

※ herokuで役に立つか、まだわかりませんが、ローカル起動はできます。

Perlの方法は様々です。それはよく知っています。

Sinatra風Perl製Dancer2

perldancer.org

Rubyアソシエーションから開発助成金2019に関して応募していた件、お祈りメールが来ました。vimconf2019の次はRubyでも。こんな不運なのは、前厄だからでしょうか。何をしても決まらない、選ばれないことが自分で悔しく思います。フリーランスの仕事もひと段落しました。なんというか、これからの種まきをしているときにですね。ただ、RubyPythonの主流である機械学習や深層学習をすることはかなりのハードルがあり、難しい面もあったので内心ホッとはしています。

Perlなんですが、私が東京の研修を受けるまではRubyオライリー本で知っていたぐらいで、Perlでもともとは色々書いていました。なので、指南書といわれる自分にあった参考書は若いときに買った物がまだ使えます。RubyRubyと病的に書かなくても選択肢があることは知っています。Python3でねこだるまやトトロットや漆黒の翼などを書いたときはそれなりに楽しかった。これからは、Perlでシナトラ風なWebアプリを作ります。そろそろ1つではなく他にも目を向けるときがやってきたきっかけになったのではないかと。

Scalaも、ありますね。スクリプトは種類が豊富です。

落選したテーマ

・TabNineのような機械学習をOSSとしてRubyで作る
・入力補完辞書を使ったVimプラグインについて

※ 話を広げるのはライティング力だと思ってまして、テーマは軽くしていた。

病的折衷主義のがらくた出力機

久々に使ってみます。

途中経過

github.com

機能追加、思案中。

追記

環境構築でperlbrewが時間がかかりすぎる上に、

ビルドエラーが起きるようになりplenvを使うようにしています。

plenv

github.com

cpanm

github.com

日本の人に高度技術者が多いなぁと。

Googleからコードレビューのドキュメントが公開された。

google.github.io

GitHubなどでコードレビュー担当者になったら「なんでもいいよ」ではなく具体的に、

設計:コードは適切に設計され、システムに適していますか?
機能性:コードは作成者が意図したとおりに動作しますか?ユーザーにとってコードの動作は良いですか?
複雑さ:コードをよりシンプルにすることはできますか?別の開発者が将来このコードに遭遇したときに、このコードを簡単に理解して使用できるでしょうか?
テスト:コードには、適切で適切に設計された自動テストがありますか?
命名:開発者は変数、クラス、メソッドなどの明確な名前を選択しましたか?
コメント:コメントは明確で有用ですか?
スタイル:コードはスタイルガイドに従って いますか?
ドキュメント:開発者は関連ドキュメントも更新しましたか?

これぐらいの視点をもち、相手のコーディングを調べていく必要がある。

デバッグも、vscodeなどのデバッガが付いている環境で、ブレークポイントを仕掛けて調べられる。

相手のことを思いやるならば、親切な言葉より、コーディングに対しての意見を正確に伝えることだ。

Feedjiraの最新に対応するには。

stackoverflow.com

github.com

Feedjira / GitHub

# これが必要
require 'httparty'

# 参考 3.0.0 始まり
url = "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/significant_week.atom"
xml = HTTParty.get(url).body
Feedjira.parse(xml).entries.each do |entry|
# 参考 3.0.0 終わり

  puts "Elevation: #{entry.elevation}"
end

そのままだとこれが流れる。

uninitialized constant HTTParty

Feedjira 2.2.0まで記事用に修正。

# 参考 2.2.0 始まり
@rss = Feedjira::Feed.fetch_and_parse('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/significant_week.atom')
@rss.entries.collect do |entry|
# 参考 2.2.0 終わり

  puts "Elevation: #{entry.elevation}"
end

3.0.0に対応するために実行

gem install feedjira
gem install httparty


bundle install

Gemfile内

gem "httparty"
gem "feedjira"

# 一時避難
# gem "feedjira","2.2.0"

Feedjiraの最新(3.0.0、現時点)に対応するときhttpartyをgemから入れてリクワイヤする必要があります。あとは、サイトの使用例通りに動作します。もともとFeedjiraを使ったサイトを作っていたので対応はそれほど苦難ではありませんでした。この記事は、これからFeedjiraを使う人が考慮する箇所をRubyで書いています。参考にして、ATOM形式のRSSを読み込み、サイトに反映しましょう。きっと、標準のRSSに戻らなくても対応できるでしょう。

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