環境構築・零

環境構築のその先へ

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に戻らなくても対応できるでしょう。

百人一首apiを利用する

JSONからあとは抜き出すだけ。もう少し手間をかける。 現在は出力結果より、だいぶできている。

[ 試作 ]

百人一首を読み込むことで、ナンバーをランダムに切り替え文字列を出力するようにしたい。

現状は、ナンバーの一覧が出力されるだけ。これから加工するが時間がかかりそう。

※ ナンバーの取得ができていない。APIサーバ負荷を考慮し中断。

[ 完成 ]

f:id:emerald00:20190916124426p:plain
百人一首

百人一首apiからテキストファイルに書き出し、テキスト整形を施しzinbeijett2で検索。

※ これで、百人一首を内容から検索できる。

[ 百人一首apiからJSONへ変換するRubyスクリプト ]

※ 出力結果をテキストファイルへ手動で保存。

# frozen_string_literal: true

require 'net/http'
require 'uri'
require "rexml/document"
require "open-uri"
require 'active_support/all'

url = 'http://api.aoikujira.com/hyakunin/get.php'
uri = URI.parse(url)
doc = REXML::Document.new(open(uri).read)
hash = Hash.from_xml(doc.to_s)
json = hash.to_json
#tuzuri = JSON.pretty_generate(json)
result = JSON.parse(json)
item = result["items"]["item"]

# puts result
puts ''
puts ' 百人一首 '.center(60, '-')
puts ''
puts item
puts ''
puts ' 百人一首 '.center(60, '-')
puts ''

#<item no="1">
#<kami>秋の田の かりほの庵の 苫をあらみ</kami>
#<simo>我が衣手は 露にぬれつつ</simo>
#<kami_kana>あきのたのかりほのいほのとまをあらみ</kami_kana>
#<simo_kana>わかころもてはつゆにぬれつつ</simo_kana>
#<sakusya>天智天皇</sakusya>
#</item>

出力結果(ファイルにまとめました)

整形前ファイル

gist.github.com

整形後ファイル

gist.github.com

追記

この検索機能に文字列をランダムに実行するように仕込めば、百人一首で100通りの言葉が流れる。百人一首をヒアドキュメントか文字列で直接コード内で呼び出せるようにするか、テキストファイルの設置場所を任意で決めて、そこにファイルを置くことから始める。直接APIで処理を継続しないように。スクレイピングはサーバの負荷を考慮しよう。

QtアプリケーションをVisualStudioで。

QtCore/QCoreApplication':No such file or directory

startindex に文字列の長さより大きい値を指定することはできません

拡張機能の最新をダウンロード&インストールして、

Visual Studio 2017 community Editonでプロジェクトを作成したら上記、

VsAddinとして拡張機能の最新を参考サイトから、

ダウンロード&インストールしたときに、

エラーハンドルが下記になります。

解決は拡張機能Visual Studio 2017側で入れることです。

もし、VisualStudio 2008 , 2010を持っているなら、

参考サイトからQtをダウンロードしましょう。

うまくいかないときはIDE側でQtを探して入れること。

簡単なことでQtを設置することができます。

参考サイト

www.qt.io

download.qt.io

download.qt.io

「Qt Quick」アプリケーション開発 (I・O BOOKS)

「Qt Quick」アプリケーション開発 (I・O BOOKS)

Qtプログラミング入門―使いやすいフレームワークを基礎から解説 (I・O BOOKS)

Qtプログラミング入門―使いやすいフレームワークを基礎から解説 (I・O BOOKS)

vimconf2019の登壇者に選ばれず自粛していました。

Neovimビルド後、

Tabnineと漆黒の翼をdeopleteで使っている例

f:id:emerald00:20190821151142p:plain
deopleteとTabnine

visual studio 2019
cmake 3.15.2

cmake-3.15.2-win64-x64.msiをダウンロード&インストール。

Download | CMake

git clone https://github.com/neovim/neovim.git
cd neovim
mkdir .deps
cd .deps
cmake -G "Visual Studio 16 2019" ..\third-party -DCMAKE_BUILD_TYPE=Release
cmake --build .

cd ..
mkdir build
cd build
cmake -G "Visual Studio 16 2019" ..\ -DCMAKE_BUILD_TYPE=Release

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe" nvim.sln

visualstudio2019側でReleaseとしてビルドする。

※ プロジェクト / ソリューション上でビルドを実行、

Permission Errorが出るときは管理者権限を付ける。

could-not-find-any-instance-of-visual-studioはC++がインストールされていないためです。

stackoverflow.com

起動時のメッセージ箇所にshareフォルダを解凍して配置

github.com

または、

C:\Program Files (x86)\nvim\share\nvim\runtime を作成します。

クローンしたNeovimフォルダ内 (neovim/runtime)

runtimeフォルダの中身を作成先にすべてコピーアンドペースト。

dein.toml

[[plugins]]
repo = 'tbodt/deoplete-tabnine'
build = 'powershell.exe .\install.ps1'
on_ft = 'ruby,go,perl,python'
on_event = ['InsertEnter']
depends = ['deoplete.nvim']

コード内

TabNine::sem

TabNine::config

直接書く

semで動作します。
configでブラウザが開きます。

これでTabnineがしっかり動きます。

Vim側で機械学習と深層学習を手にしましょう。

PowerShellでビルドできない理由

PowerShellでスクリプトを実行するとセキュリティエラーになるときの対策 – 山本隆の開発日誌

雑談

私はVimに寄付してきたし、VimのTシャツを買ってきているほどVimを愛していました。Vimconf2019で登壇することを挑戦だと想っていたし、Vimの話題をブログに書いたり、プラギン開発が自分のためだけではないことを知っていました。しかし、rejectされたときに、私は活動のすべてを全否定されたように想いました。チケットなどもらってもうれしくはないし、それよりかサンクコストから逃れるために自分にかけていた条件、先のみえないものに投資することを諦めようと想いました。やはり何者にはなれないという現実。挑戦は単なる宣伝だったのかと、少し残念です。またいつか、Vimに関して現実が受け入れられるようになったらTwitterのプロフィールにでも書くかな。Vimアドベントカレンダーに投稿するのも控えます。Vimのコミュニティとは短い期間でしたが、ありがとうございました。お世話になりました。

設定ファイルまとめ

github.com

起動時にメッセージがでることがあります。

the neovim process has crashed

neovim\.deps\usr\bin内

lua51.dll
msgpackc.dll
uv.dll

3点をneovim/build/binに移動すると解決します。

ISSUEには書かれていないので、試してみましょう。

Rubyシェル芸人

#!/usr/bin/env ruby
# vim: filetype=ruby

def sa
   di = Random.rand(4)
    case di
      when 2 then
        print ""
      when 1 then
        print ""
      when 0 then
        print ""
      else
        print ""
    end
end

sa
sa
sa
sa
print ""
sa
sa

#シェル芸

先頭に付与

#!/usr/bin/env ruby
# vim: filetype=ruby

末尾に付与

#シェル芸

Rubyでシェル芸を披露したのでシェル芸人名乗ってみます。

Deniteの最新に対する所感

github.com

環境

・Vim8.1+Python3+mrkn256(カラースキーマ)

qiita.com

.vimrc

autocmd FileType denite call s:denite_my_settings()
function! s:denite_my_settings() abort
  nnoremap <silent><buffer><expr> <CR>
  \ denite#do_map('do_action')
  nnoremap <silent><buffer><expr> d
  \ denite#do_map('do_action', 'delete')
  nnoremap <silent><buffer><expr> p
  \ denite#do_map('do_action', 'preview')
  nnoremap <silent><buffer><expr> q
  \ denite#do_map('quit')
  nnoremap <silent><buffer><expr> i
  \ denite#do_map('open_filter_buffer')
  nnoremap <silent><buffer><expr> <Space>
  \ denite#do_map('toggle_select').'j'
endfunction

autocmd FileType denite-filter call s:denite_filter_my_setting()
function! s:denite_filter_my_setting() abort
  inoremap <silent><buffer><expr> <BS>    denite#do_map('move_up_path')
  inoremap <silent><buffer><expr> <C-c>   denite#do_map('quit')
  nnoremap <silent><buffer><expr> <C-c>   denite#do_map('quit')
endfunction

使い方

:Denite file/rec buffer

i (インサートモード)→検索したい文字列(ウインドウが増える)→補完リストが表示される→選択→バッファに移動→表示したいファイルを選択→ファイルへ移動

まだまだカスタムオプションがあるので改良は出来そう。シンプルで、いい感じなのはみた感じ明らか。

※ こういう操作もある。docには可能性が書かれている。

体験談。短め。

きっかけを作り、転職活動をしようと転職サイトを探した。Findy、プロシード、Green。なかでGreenに力を入れて、とりあえず最初にきた求人に応募して面談をしてみた。Wantedlyよりも好感触で実際、もしかしたらPHPを書くかもしれないと夢をみたほどだった。ニコニコ仮面め。C社は、役員会議で採用、不採用を決めるらしい。終始相手のペースで、こちらからどのような結果か打診をしても、判断はあちら側のような形で、時間を大幅にロストした。就活で必要なのはスピード。自分から攻撃的に進んで、積極性をみせないと進まない。渋る場合が多い。Greenを結局は、退会した。履歴書が悪かったわけじゃないと言われたので経歴をDisられることはなかった。面接時に、採用する気もなく相手を圧迫する行為というのはなるべくやめてほしい。相手も真剣にきているのだから。ハロワもそうだけど、だいたい決まることが少ない。IT系は年齢、年齢を積み重ねることでしか得られない資格もありながら、結局は経験。30代後半40代近いと転職活動はつらいものだ。

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