エラーは食べもの。

田舎でも車なくてもやっていける話とか、プログラミング学習の備忘録とか。エラー解決が楽しい。まだまだエラー食い足りないwまずは書いて、あとから随時手入れをば。

雨の日お知らせbot

@ysk_pro さんのbotチュートリアルを終え、とりあえず無事完成したので投稿。

 (@ysk_pro さんありがとうございました!)

 

 

 

 雨の日お知らせbot作りました。

f:id:piyomaru-bunbun:20180911210259p:plain

 

 東京の降水確率をお知らせします。

「今日」「明日」などメッセージにお返事します。

 

 

お友達追加で動作確認できます。

友だち追加

 

https://line.me/R/ti/p/%40ymm1050p

毎朝のお知らせとか機能追加はこれからですが…^^;

taskの実装する部分、ちょうど覚えたてだったので「こういう使い方するんだなぁ~」と実例が学べてよかったです。

 

 

参考サイト:

note.mu

ysk-pro.hatenablog.com

自己紹介 1.未来のビジョンのこと・なりたい自分のこと

自己紹介

はじめまして、

現在、プログラマーとして東京で働きたいと考え転職活動を行なっています。

twitter:

twitter.com

Wantedlyのプロフィールやポートフォリオは随時更新しつつ、

Wantedlyに書ききれない部分はこちらで記事にしていきます。

今回は転職に当たっての自分の目標とか心意気とか。

前職の業務について簡単に紹介

前職の会社はジュエリーメーカーで、事務職で5~6年ほど勤務していました。

所属は「商品管理」と標榜する部署ではありましたが、

私の業務は
商品(特に資材)管理の他に、それに伴うエラーの分析解決が主な仕事でした。
ベンダーへの要件定義も業務の一つでした。

その他、営業サポートデータ入力といった、他の事務員が行う業務も適宜サポートしていました。

海外輸出入業務もしていたので(貿易事務?)、まぁいろいろやってましたねw

ちなみにですが昨年上場入りした会社でもあります。

監査基準に適う管理体制づくりは大変だったなぁ…また別の記事で書こうかな(´_ゝ`)

なぜ今プログラマーを目指すのか

日常でふとプログラミングの学習の成果が垣間見えた瞬間、

すなわち

自分で解決策を立てて、うまくいった時の喜びは何物にも代え難いと知りました。

その経験は以下の記事から

nojishio-notes.hatenablog.com

加えて、この経験でも触れていますが、

目の前の選択肢が限られているように見える状況下で

自ら新しい解決策を導けたことで

この先の人生においても「当たり前」という妥協や退避観念を覆して

未来は自分の手で切り開いてゆきたい

そのためのツールとしてプログラミングが必要だと考えるようになりました。


社会の「当たり前」を変えたい

よく、「30歳、40歳でもIT転職できました!」「エンジニアになれました!」という話は耳にします。

ですが実際 「30歳で転職したい」「エンジニアになりたい」
と言ったときに、周りの人間はどう反応するかというと

「まず30超えてから転職は無理」
「今さら努力しても追いつけない、もっと現実見た方がいい」
「成功した人たちは、もともと才能があった人だったんでしょ?」

と、一歩引いて批判から入る人たちって結構います。
(※もちろん素直に応援してくれる人もたくさんいます。ありがたいことに私の周りにも^^)

非IT業界の人たちばかりか、IT転職のエージェントでもそういう認識の人たちはたくさんいるようですね。

これが「世の中の一般的な認識」ってやつなのかもしれません。

世の中の「当たり前」=真理なのか?

真理とは?

(仏教では、) いつでもどこでも成り立つものが、真理です。

ですから、昔は正しいと言われたことでも、 今は間違いだとわかるようなものは、 真理とは言えません。

例えば、太陽は、一見地球の周りを回っているように思いますが、 今では科学の進歩でそうでないことがわかりましたので、 科学が進歩したら間違いといわれるようなことは 真理ではありません。

真理とは。何の役に立つの?西洋哲学と仏教の真理の違い

たしかに「一般的な認識」を以て「不可能」だと言ってくる人は周りに存在します。

でもちょっと待って、

その人たち(=数えても数人にしかならない人たち)が「無理」と言っている、
だからって絶対に実現不可能ではないですよね?

「世の中の一般論」がそのまま「絶対的な真実」ではないはずです。

だって、

自分の未来を決めるのは自分にしかできないこと。
そして自分の努力によって将来の目標達成に近づいてゆく、
その結果が自分の真実たりうる

と思うからです。

「地球が回ってるはずがない」が当たり前の認識だった頃もあることですしw
それに比べたら、人生半ばから転職するくらい全然実現可能だと思いますb

要は己の努力次第で可能性はまだまだあると思います(´ω`)

プログラミングのおかげでやっと見つけた「なりたい私」

今までの私だったら、周りの「当たり前」に流され、自分でも気づかないうちに未来の可能性を潰してしまっていたかも知れません。

でも、プログラミングを始めてからは

* 30歳過ぎてたって関係ない!プログラマになりたい!!
(そもそも30歳過ぎてるって思ってなくて平素から20歳くらいの気持ちで生きてるから問題ない←)

* 自分が夢を叶えることで、
 【自分の人生は自分でいくらでも変えられるんだよ!】
と身を持って証明したい!!

* =>つまるとろころ、目標に向けて毎日全力投球できる自分になりたいんだ!!

と前向きに考えられるようになりました。

「そしてできるなら自分の経験を人に伝えて、誰かの役に立てたい!」とも考えています(´ω`)



そのように前向きに考えられるようになったのは、たぶん

プログラミングを学び始めてから ちょっとした知識を身につけたり、エラーが解決できたり、

少しでも何かができるようになった時すごく嬉しいんですよね。

そうした日々の積み重ねが自分の自信につながっているのではないかなと思います。

ただ、モチベーション維持の面でも独学では限界があるし、もっともっとスキルをつけたいし、もともっと多くの経験をしたい。プログラミング以外でも幅広い知識を身につけたいと思っています。

まとめ

ということで 努力して夢を叶えること、自分にもまだまだチャンスはたくさんあることを身を持って証明したいし、みなさんにも伝えられるようになりたいです。

★自分の思い付きをカタチにしたい

★一生かけても学びきれないほどの知識と変化の中に身を置きたい

★努力してその分どんどんスキルアップできる自分になりたい

★自分の人生は自分の手で切り開いてゆきたい



人生欲張って生きたい。

プログラミングを通して、それらを全部手に入れる自分になりたいと思いました。

そんな思いで転職活動始めました。

よろしくお願いいたします!!

ここまで読んでくださり、ありがとうございました^^

自転車に乗ろう!おうちに運ぼう!~炎天下・夏 編~

現在、田舎で車を持たずに生活してます。 こんにちは、のじしおと申します。

久しぶりに自転車の話。

別段、長距離ライドでもないのですが、普段より長い距離を走ってきたので報告です。

走った経路とその背景

はい、会社最寄り駅から自宅まで走ってきました。これが結構大変でしたw

以前の記事で、自転車生活に切り替えてから、自分の通勤時間とルートを紹介しました。

③現在の通勤ルート:電車+自転車

 自宅―(徒歩5分)―最寄り駅―(電車10分)―駅―(自転車20分)―会社


                         (所要時間:約35分)

自転車で自宅から通うのは結構時間がかかったり車の通りが激しかったりで、
自転車は駅の駐輪場に停めて会社まで乗っています。


以前の記事はこちら↓

nojishio-notes.hatenablog.com


車なしで田舎暮らし、始めた経緯などはこちら↓ nojishio-notes.hatenablog.com


で、近々引越を考えていることもあり、一度自転車を家に持ち帰ろうと思いました。

ということで本日は会社最寄り駅から自宅まで自転車で走ってきました。

データで見る距離と傾斜

本日のルート、アプリの測定ではこのようになりました。 f:id:piyomaru-bunbun:20180822210039p:plain

中盤の坂の傾斜よ…初心者にはきつかったです(;'∀')

走ってみた感想や考察

サイコン持ってないから実測値が出せなかった…後悔。

データ値 感想やら体感やら
距離 9.1km いつも通勤ルートの倍くらいの距離
時間帯 14:00くらいからスタート
気温 約36℃ 一番暑い時間帯w
所要時間 41分(上記) 休憩入れたとはいえ1時間以上かかっちゃったなぁ…🐢
勾配 下記で目測 初心者には き つ い… 運動不足は息も絶え絶えw


ちなみに勾配計算してみると、

勾配を計算する 20メートル水平に移動した時に高さが 2 メートル上がるような坂の勾配を計算してみましょう。 この坂道について、100メートル水平に移動した時に、高さが h メートル上がるとしましょう。 すると、20:2=100:h
つまり、h=10

すなわち、勾配 10パーセントの坂道です。

引用元:
坂道の勾配に関する計算(角度、高さ、水平距離などの関係) - 具体例で学ぶ数学

といことは、だいたい5%強くらいの坂になるのかな?
普段通勤で平坦しか乗ってない初心者には大変でしたw


こういう坂もスイスイ登っていけるような、自転車乗り倒していくもいいかもしれないですね。 自分は全然そんなレベルになってないので憧れがあります(゚∀゚)

到着。自転車が我が家に

というわけで無事に帰宅。

おかえり!ようこそ我が家へ!

f:id:piyomaru-bunbun:20180822223515j:plain

f:id:piyomaru-bunbun:20180822223455j:plain

購入したのは1年半ほど前ですが、家に来たのは実は今日が初めてだったりします。

というのも、上記の通り普段は会社最寄り駅の駐輪場に置いていたからです。 更に購入した時も、会社にほど近いお店で受け取ってそのまま駐輪場に停めに行ったので。


普段の空気入れや注油やメンテなど、その場でできますし、面倒なときはお店に持ち込めば無料でやってくれますし^^ありがたや

www.cb-asahi.co.jp

でも、やはり自宅に置いた方がすぐお手入れできますし、
炎天下の中、汗びしょっりでヘトヘトになったけど持ち帰ってこられてよかったと思います。

久しぶりにいい運動ができましたw

RMagick使っててHeroku db:migrateが失敗するときの対処

以前の記事で、herokuプッシュまでは無事できたわけですが、

nojishio-notes.hatenablog.com


その次、heroku run rake db:migrateをしようとして発生したエラー。

なんかいろいろ言ってる…

Running: rake assets:precompile
remote:        /tmp/build_907cf6c8c9a568c0a7a61f789baceb04/vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:51: warning: constant ::Fixnum is deprecated
remote:        /tmp/build_907cf6c8c9a568c0a7a61f789baceb04/vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:52: warning: constant ::Bignum is deprecated
remote:        [DEPRECATION] requiring "RMagick" is deprecated. Use "rmagick" instead
remote:        /tmp/build_907cf6c8c9a568c0a7a61f789baceb04/vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.1/lib/active_support/core_ext/numeric/conversions.rb:138: warning: constant ::Fixnum is deprecated
remote:        DEPRECATION WARNING: `config.serve_static_files` is deprecated and will be removed in Rails 5.1.
remote:        Please use `config.public_file_server.enabled = true` instead.
remote:         (called from block in <top (required)> at /tmp/build_907cf6c8c9a568c0a7a61f789baceb04/config/environments/production.rb:25)


作業環境

  • Rails 5.0.1
  • Ruby 2.5.0
  • mysql2 0.4.10 (ローカル環境) 

エラー:[DEPRECATION] requiring "RMagick" is deprecated. Use "rmagick" instead

いろいろ書いてあるんだけど、どうやらここらしい。

[DEPRECATION] requiring "RMagick" is deprecated. Use "rmagick" instead


require: 'RMagick'があると関係するライブラリが更新されないっぽい。

対処:Gemfileのrequire以降を削除

ということでGemfileのここの記述を

gem 'rmagick', require: 'RMagick'

以下のように書き直す。

gem 'rmagick'

これでbundle install

これで再度herokuにプッシュまで行う
git add .
git commit -m "コメント"
git push heroku master   

heroku run rake db:migrate  これで成功!!
heroku open


Qiitaでも書きました↓

ここまで読んでくださり、ありがとうございました^^

PostgreSQLでHerokuプッシュが成功したときに試したこと

以前の記事で、Herokuへのデプロイ時にPostgresql関連のエラーが出て苦戦したことがありました。

こちら↓

そのときはPostgresqlの代わりにmysqlで代用したことでheroku openさせることができました。

今回はHerokuでPostgresqlを使い、同じようなエラーは出たけど、それも解決できたのでご紹介します。


作業環境
Rails 5.0.1
Ruby 2.5.0
mysql2 0.4.10 (ローカル環境)  

エラー内容:Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded.

(エラー発生までの経緯)Gemfileにpgを追加

まず、自分の作業経緯を振り返る。

1:Gemfileにpgを追加

gem 'pg', group: :production

group: :productionで本番環境はPostgresqlを使うよう指定しています。

2: bundle installを実行

3:database.ymlに以下の記述を追加

production:
  <<: *default
  adapter: postgresql
  encoding: unicode
  pool: 5

※もともとのproduction:~の記述箇所を上の内容に書き換える ※ymlファイルでは改行場所やスペースなどでエラーが出ることがあるので、既存の記述と見比べるなどして特に気を付ける。


4:この状態でherokuにプッシュまで行う
git add .
git commit -m "コメント"
heroku create(初回の場合のみ)
git push heroku master ここでエラー発生!


5 :発生したpgエラー

remote:        Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add `gem 'pg'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).

対処:pgのバージョンを0.19.0に指定

参考記事。バージョン指定がポイントのようです。

Gemfileでpgの記述をバージョン指定して、以下のように書き換えました。

gem 'pg', '~> 0.19.0', group: :production

これでbundle install

これで再度herokuにプッシュまで行う
git add .
git commit -m "コメント"
git push heroku master うまくいきました!!

これで heroku run rake db:migrate実行
heroku openでアプリが開く


ちなみに bundle installしたときの画面で

Fetching pg 0.19.0 (was 1.0.0)
Installing pg 0.19.0 (was 1.0.0) with native extensions

pgは、もともと1.0.0だったけど0.19.0にバージョン下げてたようですがうまくいった。 バージョンの違いによるエラー?

まとめ

成功した手順

* pgのバージョンを0.19.0指定で記述  
* database.yml書き換え  
* git addとcommit

Postgresqlを使ってherokuにプッシュが成功。

ちなみに私はこのあとのheroku run rake db:migrate実行で別のエラーが出まして、 別記事に書きました↓


Qiitaでも書きました↓

ここまで読んでくださり、ありがとうございました^^

【エディタ ≠ SourceTree ≠ ターミナル】同一ファイルなのに名前が食い違っているときの対処法

同一ファイルであるはずなのに

 

テキストエディタ側で表示されているファイル名

(↑これを正しい名前としたい)

   ≠

Sourcetree側で表示されるファイル名

   ≠

ターミナル側(lsコマンド)で表示されるファイル名

  

という感じで、

テキストエディタでは正しく表示されているファイル名が、

なぜかSourcetreeやgit,ターミナルでは違った名前になっていた。

それゆえコミットやプッシュがうまくいかなくなったときのエラー対処法。

 

 

 

エラー内容(もとい症例)

テキストエディタ側:top.html.erb(正しい表示)

画像の通り。一見ローカルで編集している分には問題なし。

スペルミスなどもないし、ブラウザ表示やリンクも特に問題ありません。

f:id:piyomaru-bunbun:20180718231603p:plain

 

Sourcetree側:"btop"と表示され追跡されていない

このファイルが

Sourcetreeではなぜか

btop.html.erb」と表示されている。

 

f:id:piyomaru-bunbun:20180718233609p:plain

 

 名前の食い違いから生じた不具合としては、

  • btopとあるが、そのような名前のファイルは存在しないので、このファイルだけはうまくコミットできない(当然)
  • 右側の「・・・」ボタンからbtopファイルだけ「無視」「破棄」など選ぼうとしても、反応なしで残ったまま
  •  テキストエディタでtop.html.erbを編集しても、このbtopには反映されない
  • しかもsourcetreeではtop.html.erbを認識してくれない

  (故にgithubでもtopファイルは存在していない)

 

 という状態です。

 

「ファイル名が食い違っている」とかで色々調べて、なんとなくコンフリクト発生しているのかな。。と考えてはいましたが、

 

Sourcetreeでの「!」マーク 「コンフリクトしてるよ!」という意味だったようです。

SourceTreeでコンフリクトを解決する

左側のメニューから「作業コピー」を選択してみますと、作業ツリーにはsample.txtに「!」マークがついています。

 

これが衝突していますよ、というお知らせになっています。

 

引用元:

コンフリクトって!?Gitバージョン管理でマージしたときに発生した衝突を解決する

 

$ git statusとターミナルでの表示を確認

原因はコンフリクトの発生か??ということで対処について調べました。

 

状況確認のためgit statusコマンドを実行してみます。

以下、git statusの結果の見方を引用。

git status
  • コンフリクトしているファイルを確認。
  • 「Unmerged paths:」にあるファイル一覧がコンフリクトしている修正の必要なファイル。

引用元:

コンフリクト発生!焦らず利用する4つのコマンド #git

 

結果はこちら。

git statusしたら件のファイルは消えているらしいとのこと。

ファイル名は「\btop」とされてますが。。。

f:id:piyomaru-bunbun:20180719001305p:plain

 

 また画像のように、

ターミナルの lsコマンドでこのファイルを調べると

?top.html.erb」になっている。

 

みんな言ってること違うじゃないですかw(゚Д゚≡゚Д゚)

 

対処法:

1.マージしてコンフリクト解消~コミットまでは成功

そういえばマージはしてないよな。。と思いマージしてみる。

f:id:piyomaru-bunbun:20180719204019p:plain

プルリクを覚えたばかりだったので、

GitHub側でMerge Pull requestボタンを押してみたところ、画像のようにコンフリクトが解消できたようです。

 

このときはコンフリクト発生表示は出ませんでした。

(まぁここは普通にターミナルでマージすればいいと思います)

 

    ↓

で、この状態で再度コミットしてみたら、今度はコミットできました!(゚∀゚)

f:id:piyomaru-bunbun:20180719210446p:plain

これで追跡されるようになった!

 

だけど、sourcetreeで見ると

btop.html.erbとしてファイルが追加されています。

(*´з`)う~ん、あと一歩だな。

 

2.リモートブランチにプッシュ~>ターミナルでファイル名変更する

 ファイル名変更: $ git mv -f

 コミットできたので一度今のブランチにプッシュします。

次にファイル名変更の操作をすることにしました。

記事、ほうほう…git mvで -f をつければいいのか。。

 

gitコマンドでファイル名をリネームするとうまくいきます。

$ git mv -f MAinActivity.java MainActivity.java

-fオプションをつけないと同じファイル名が存在するよ!と怒られてしまうので、
-fで強制的に変更してください。

 

引用元:

gitでファイル名変更時に小文字大文字の差分が認識されないとき

 

 変更元のファイル名はls表示にする~>成功!!

git mv -fをすればいいのは分かったけど、ここで変更したいファイルの名前は"btop"か”?top”、どちらにするべきか。

 

まずコミットが成功したsourcetreeに表示されてた通り、btopとしてみたところ

f:id:piyomaru-bunbun:20180719214128p:plain

うまくいきませんでした。

 

次に(lsコマンドで出てくる表示に合わせて)

"?top"でgit mv -f コマンドを実行してみると、、、

f:id:piyomaru-bunbun:20180719215023p:plain

おっ!成功したようです^^

sourcetree側でもtopとして無事認識されました!

f:id:piyomaru-bunbun:20180719220116p:plain

 

これでやっとテキストエディタ・sourcetree・gitすべてでファイル名が統一されました^^;

 

再びコミット・プッシュをして一件落着。

 

反省:原因の心当たり

 masterにチェックアウトしてた状態で、ファイル編集。

この変更をmasterに反映させたくないと思い、違うブランチに切り替えてコミットしたような…多分これだなw

【Sourcetree】 .gitignoreにもないファイルが追跡されなくなっていた時の対処法

Railsアプリ開発で、現在はSourcetreeでコミットやプッシュしているのですが、

ある日気づいたら

 

  • 特定のファイルがGithubやSourcetreeで、変更などの反映がされなくなっていた(=追跡されてない。というか存在すらしていない状態)

 

  • しかし.gitignore(=gitの追跡を無視する対象リスト)には件のファイルは記述されていない

 

 

という事態に陥っていましたw

1~2週間くらい悩まされていたのですが、調べなおしたら簡単に解決したw

ので忘れずにめもめも。

 

 

エラー内容(もとい症例):

ディレクトリごとグレー表示だが、無視されているのはそのうち特定のファイルだけ
しかも .gitignoreにもない

症状は次の図の通り。

 

ビューのusersディレクトリとpublicディレクトリが、いつの間にかグレーになっている。

.gitignoreファイルを見ても、どちらも書かれていないので無視対象でないはずなのに;

  (tmpディレクトリは.gitignoreに記載されているからグレーで問題ないだろうけど。。)

f:id:piyomaru-bunbun:20180711231657p:plain

 

上のテキストエディタではusersディレクトリまるごとグレー表示になってますが、問題はshow.html.erbファイルで、

コミットやプッシュしても(indexなど)users以下の他のファイルは変更反映されてるのにshow.html.erbだけがGithubやSourtreeに追跡されていないようで、

ブラウザ表示はできるのにプッシュしてもリモートに”ない”という状態。

f:id:piyomaru-bunbun:20180711234009p:plain

 

 git status --ignored コマンドを打ってみる

 git status --ignored で追跡されてないものは検出される。

やっぱりusers以下のファイル全部グレーになってたけど、showファイルだけなんですよね。追跡されてないのは。

f:id:piyomaru-bunbun:20180711235852p:plain

 

ちなみにメッセージの通り、addするときに-f オプションをつければリモートにあげることはできました。でもSourcetreeには出てきませんでした。

 

 

なぜshowファイルだけ ”ない” 状態なのか

この理由はおおかた予想がついています。

このshowファイルは、usersディレクトリがグレー表示になった状態で新規追加したファイルだったから。

 

ディレクトリ以下が追跡されない状態になり、そこに作ったファイルだったから最初から追跡対象になっていないためですね…(´ー` )

 

 

状況は把握できたので、あとは追跡されてないのをなんとかするだけだー(`・ω・´)ノ

 

対処:Sourcetree側の無視リストを再度確認

 日を改めてググってみたらすぐに回答が見つかりましたw

  

Q.

SourceTreeでGitを管理しているのですが、無視したくないファイルが無視されてしまい、解除の方法がわかりません。

 

A.

以下のどちらかに該当の設定はありませんか?

  • グローバル
    オプション>Git>グローバル無視リスト

  • リポジトリ
    設定>詳細>リポジトリ固有の無視リスト

 

引用元:

Git - SourceTreeで無視リストの設定方法について(29437)|teratail

 

 

 グローバル無視リスト…だと…?!

f:id:piyomaru-bunbun:20180712003410p:plain

 

 お?!!!

f:id:piyomaru-bunbun:20180712004041p:plain

あ      っ      た  (´_ゝ`)

しかもちゃんとusersディレクトリ以下が対象になってるヨ。

gitに追跡させたいものはこの中から削除しましょう。

 

 

 

すると…

f:id:piyomaru-bunbun:20180712004317p:plain

 

やっとだ…やっと復活してくれた(;∀; )ヨカッタ…

 

 

 

Sourcetreeでもこの通り。いままでshow.html.erbはいくら変更加えてもここに出てくれなったんですよーやっと出ましたw

f:id:piyomaru-bunbun:20180712004528p:plain

 

 

おまけ:思い当たる原因

Sourcetreeのファイルステータス欄にて、コミット時にいらないファイルを「無視」や「削除」をしようとしたときにうっかり無視リストに加えてしまった。

 

 

こういうのはエラーって言えるのかなぁ…?

でも解決できてやっぱり嬉しかったので満足です^^

 

ここまで読んでくださり、ありがとうございました。