ねえぶ

猫好きエンジニアのブログ

先月読んだ本と今月の読書予定(2018年5月)

ブログを引っ越ししましたので,5秒後に移動します

先月の読書予定と実績

雑誌は除いています.

実績 Fav
Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語
仕掛学
Newton 対数の威力」
Newtonライト『統計のきほん』
Newtonライト『ベクトルのきほん』
いちばんよくわかるHTML5&CSS3デザインきちんと入門
エリック・エヴァンスのドメイン駆動設計
  • DDDがまだまだ全然読み終わらない・・・(ちょうど半分くらい)
    • 第2部まで終わったら一旦読むの止めるかも
  • 仕事でCSSの基礎がわかってないことが判明したから,急いでCSSの勉強を割り込みさせて読んでいる
  • 雑誌も先月から読み始めたけど,Newtonはやはり面白い!

今月の読書予定

新規・継続
エリック・エヴァンスのドメイン駆動設計
🆕 なっとく! アルゴリズム
🆕 数学ガール

三楽の森公共緑地・貫井神社を散策

ブログを引っ越ししましたので,5秒後に移動します

通勤路がコンクリートジャングルなので,たまに自然に触れるために公園や神社などを散策しています.

1ヶ月前ですが,3月25日(日)に三楽の森公共緑地に行ってきました! また,その近くにあった貫井神社にも寄ってきました.

基本情報

三楽の森公共緑地

浅間神社

アクセス

JR国分寺駅南口から徒歩で向かいました.三楽の森までは20分くらいでした. 三楽の森の入口は北側のみなので注意です!

三楽の森公共緑地

公園前と,入口を入ったところにある看板. 所有者の前田さんに感謝!

緑地内には様々な木々が生い茂り,ちょうど春先だったので新芽も見られ,とても気持ちよい空間でした.

私の好きな竹林もありました!!

貫井神社

帰りに三楽の森近くにある貫井神社にも寄ってきました.

こちらの神社は境内に池があり,掛かる橋を渡って拝殿に向かいます. 池には鯉や亀が!

本坪鈴は1つ.よい音色でした.

少し外れたところには八雲神社愛宕神社があるのですが,閉まっていました. 昔あった神社なのかな? この2つの神社がある森を抜けて北側に歩いたのですが,よい雰囲気でした.

その他

三楽の森のすぐ近くに小学校があり,校門に大きな桜の木があったのですが,これがまた壮観でした.

冬の公園散策もよいですが,春先はまた温かい陽気でよいですね!

NeomakeでEslintが動かない場合の対処

ブログを引っ越ししましたので,5秒後に移動します

以下のブログを参考にSyntasticからNeomakeに乗り換えてみたのですが,私の環境ではEslintがうまく実行されませんでした.

[Vim]SyntasticによるESLintチェックが遅いのでNeomakeに乗り換えた - dackdive's blog

TL;DR

次のようにしたら動きました.

NeoBundle 'neomake/neomake'
NeoBundle 'benjie/local-npm-bin.vim'

augroup ft_javascript
  autocmd!
  " get eslint path of current environment
  function! s:GetEslintExe()
    let l:eslintExe = GetNpmBin('eslint')
    if empty(l:eslintExe)
      return 'eslint'
    else
      return l:eslintExe
    endif
  endfunction

  " set exe of neomake eslint
  autocmd FileType javascript let g:neomake_javascript_myeslint_maker = {
        \ 'exe': s:GetEslintExe(),
        \ 'args': ['-f', 'compact'],
        \ 'errorformat': '%E%f: line %l\, col %c\, Error - %m,' .
        \ '%W%f: line %l\, col %c\, Warning - %m'
        \ }
augroup END

let g:neomake_javascript_enabled_makers = ['myeslint']
let g:neomake_error_sign = {'text': '>>', 'texthl': 'Error'}
let g:neomake_warning_sign = {'text': '>>',  'texthl': 'Todo'}
call neomake#configure#automake('nrw', 750)

環境

  • Mac 10.13.3
  • MacVim 8.0

現象

参考ブログに倣ってインストールしてみましたが,ローカルのeslintがなく,グローバルのeslintだけある場合にNeomake実行時に次のようなエラーが出ました.

19:31:12 [D +7.45] [-.-:1:1] automake: handling event FileType.
19:31:12 [D      ] [-.-:1:1] Using setting automake.ignore_filetypes=['startify'] from 'global'.
19:31:12 [E +0.02] [-.-:1:1] Exe () of maker eslint is not executable.
19:31:12 [D      ] [-.-:1:1] automake: configured buffer for ft=javascript (no enabled makers).
19:31:12 [D      ] [-.-:1:1] automake: setting tick for new buffer.
19:31:12 [D      ] [-.-:1:1] automake: no enabled makers.

エラーログは次のような設定を入れて出力させました.

let g:neomake_verbose = 3
let g:neomake_logfile = '/tmp/neomake.log'

また,この時:NeomakeInfoを実行すると,eslintのexe項目が空文字でした.

原因

ローカル環境のeslintを使うように調整してくれるbenjie/local-npm-bin.vimが,ローカル環境のeslint(node_modules/.bin/eslint)が見つからない場合にeslintのexeに空文字を設定するようになっていたのが原因でした(該当コードGetNpmBin()はローカル環境の実行ファイルが見つからない時に空文字を返す).

参考ブログのbenjie/neomake-local-eslint.vimから名前から変わっているから,動作が当初から変わってしまったのかな?

解決策

  • myeslintというmakerを新たに定義して,filetypeがjavascriptに変わる時に現在のローカル環境のeslintをmakerのexeにセットするようにしました
  • benjie/local-npm-bin.vimeslintmakerを上書きしてしまうタイミングが後になるからか,eslintmakerをvimrcで書き換える方法ではうまく動きませんでした
" filetype: javascript
augroup ft_javascript
  autocmd!
  " get eslint path of current environment
  function! s:GetEslintExe()
    let l:eslintExe = GetNpmBin('eslint')
    if empty(l:eslintExe)
      return 'eslint'
    else
      return l:eslintExe
    endif
  endfunction

  " set exe of neomake eslint
  autocmd FileType javascript let g:neomake_javascript_myeslint_maker = {
        \ 'exe': s:GetEslintExe(),
        \ 'args': ['-f', 'compact'],
        \ 'errorformat': '%E%f: line %l\, col %c\, Error - %m,' .
        \ '%W%f: line %l\, col %c\, Warning - %m'
        \ }
augroup END

その他

  • 参考ブログではautocmdでNeomakeの実行を設定していましたが,公式の方法に則って以下のようにしました
call neomake#configure#automake('nrw', 750)

syntasticからNeomakeへの乗り換えで変更したdiffは↓で確認可能です.

https://github.com/ottijp/dotfiles/compare/4f8f4690a53cfde376367ac990efc54d59c217fd...36e6207e5a4f290b96dc2eeeb2a0d911ac7666ea

先月読んだ本と今月の読書予定(2018年4月)

ブログを引っ越ししましたので,5秒後に移動します

先月の読書予定と実績

実績 Fav
Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語
エリック・エヴァンスのドメイン駆動設計
エンジニアのための時間管理術
人を動かす「仕掛け」
  • DDDがかなり分量があって遅読家にはちょっとつらい(^^;
  • Swift本はあと残り1章

今月の読書予定

新規・継続
Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語
エリック・エヴァンスのドメイン駆動設計
🆕 なっとく! アルゴリズム

SlideShareのアカウントを凍結された話

ブログを引っ越ししましたので,5秒後に移動します

TL;DR

  • SlideShareのアカウントを凍結された
  • サポートが全く使えなくて,結局凍結も解除されなかった
  • SpeakerDeckに乗り換えた

経緯

勉強会で発表した資料を共有するために,去年(2017年)の12月からSlideShareを使っていました.アカウント自体は数年前から作ってあり,他の人の資料をFavしたりしていました. アップロードしたのは計2回で,2017年12月と2018年2月です.

後者の2018年2月にアップロードした1日後くらいにアカウントが突如凍結されました. 凍結後はLinkedInアカウントでOAuthした直後に↓のようなエラーになりログインができませんでした.

f:id:ottijp:20180304141456j:plain

Oops! Something went wrong. Please try again later.

また,connpass等に貼った資料は↓のようにエンベッドされたスライドがエラー表示されていました.

f:id:ottijp:20180304141507j:plain

This presentation has been removed as it was reported as violating SlideShare Terms of Service. It is no longer available. Try finding related content from the SlideShare Homepage.

アップロードした資料

凍結直前にアップロードした資料はこちら(リンクはSpeakerDeckにもアップしたもの)です. SpeakerDeckではサポートされていませんが,10スライド目の次にこのYouTubeリンクも入れていました.

凍結した理由

サポートのやり取りでも結局教えてもらえず,何が利用規約違反だったのかわかりませんでした. こちらのブログでサポートにアンセーフなリンクがあると教えてもらって,それを直してアカウントの一時停止を解除してもらったとあったのでそれに期待していたんですが・・・.

サポートとのやりとり

Contact Usページから質問を投げました. すると次のように回答をもらいました.

I'm really sorry for taking long to get back and for the inconvenience this has caused.

In order to look into it further, I request you to please provide me with the screenshot of the steps you are following before encountering the error. Once I get this inforamtion, I'll look into it right away. Here's a link with instructions on how to create a screenshot if you need it: https://help.linkedin.com/app/answers/global/id/223 .

Also, please send me the file you're trying to upload so that I can look into it from this end.

Once I get this information, I'll look at it right away!

手順のスクリーンショットとアップロードしたファイルを送るようにと言われたので,その通りにしました.

すると,送ったファイルのことには全く触れず,次のような返事が来ました(ここでサポートの人が変わっていた.) スクリーンショットをすでに送っているのにまたスクリーンショットを送れと言われ,ここでサポートに疑心を持ち始めました.

I'm sorry you're experiencing issues using LinkedIn. Did you try switching to a different browser? For example, if you were having problems when using Chrome, did you try it again with Internet Explorer, Microsoft Edge, Firefox, Safari, or Opera browsers?

Here's a current list of supported internet browsers: https://www.linkedin.com/help/linkedin/answer/4135

If you've tried these solutions but continue experiencing issues, reply with the following details:

• An explanation of the issue

• The browsers and versions you've tried

• A screenshot ( https://www.linkedin.com/help/linkedin/answer/223 ) of your issue to better understand what you're dealing with

Once we have this information we'll be able to better assist you.

Thanks for your patience as we work through this.

一応言われたとおり3つの異なるブラウザで試し,それらのバージョンとともに現状が同じであることを伝えました. また,添付したファイルを確認してくれたのかを聞き,アカウントが凍結されているのを疑っていることを伝えました.

すると,次の回答です.

Please use the link below to reset the password and access your account.

Password Reset Link:

http://www.linkedin.com/uas/request-password-reset

I've also sent a password reset email to your primary email account. If you don't see it there, please check your spam, social network, or junk folders for our password reset email. To make sure LinkedIn messages aren't sent to the folders mentioned above, try adjusting your filters to always receive emails from trusted email domains like LinkedIn.com. Here's how: http://help.linkedin.com/app/answers/global/id/5367.

Additionally, we'd like to recommend that you review the current registered email addresses associated with your account and remove any outdated ones. We strongly recommend that you have at least two valid email addresses attached to your account. This way, if you lose access to your main email address, you'll still have other email addresses where we can send password reset messages. You can review and add email addresses from here: https://www.linkedin.com/settings/?modal=nsettings-manage-email

IMPORTANT:

o Remove any existing characters in the "Enter new password" field and then re-enter your new password.

o If you receive an error message using the link above, confirm that https://www.linkedin.com is a trusted site in your browser's security settings and try again.

If you're still unable to sign in after changing your password, clear your browser's cookies and saved passwords. It may prevent entering unintended login information and should resolve the issue.

Instructions for Clearing Your Cache and Cookies:

https://help.linkedin.com/app/answers/global/id/1285

Removing Old Saved Passwords from Your Browser:

https://help.linkedin.com/app/answers/global/id/5354

I sincerely hope you're able to get back into your account and will gladly help if you have any other questions.

またもや人の話は無視してテンプレのパスワードリセット案内でした. 全然話が通じてなくて辛かったです.

ちなみに,

I've also sent a password reset email to your primary email account.

と言っていますが,スパム振り分けも含め確認してもメールは来ていなかったので,自分でリセット処理をしました.

ぐっと堪えて,言われたとおり一応パスワードリセットをし,現状が変わらないことを伝えました. また,送った添付ファイルを見ているのかと,こちらの質問に答えてほしいことを再度伝えました.

そして来た回答がこちら.

Thanks for your reply.I'm sorry we've made you wait so long and for the inconvenience this has caused. I truly appreciate your patience.

We suspend and disable SlideShare accounts that violate our User Agreement. This includes:

Unsolicited contact with others for the purpose of harassment, advertising, selling, dating, or any other inappropriate conduct.

Providing false credentials for the purpose of creating an account.

Impersonation of any individual, entity, or other misrepresentation of identity.

Posting content that violates our terms (i.e. advertisements, spam, etc.).

If you have further questions, please feel free to reply to this message.

やっとアカウントが利用規約違反で凍結されていることは教えてくれました. どうしたら問題を修正し,アカウアントを正常化できるかを聞きました

Due to the sensitive nature of your request, I've forwarded this message to our Safety team.

Please understand that your issue may require some additional research, which may delay their response. But, someone from that team will get back to you as quickly as possible.

If you're able to access your account, you can check the status of your case at any time from the Your cases tab on LinkedIn Help. Learn more here: https://www.linkedin.com/help/linkedin/answer/43378.

Thanks for your patience as we look into this for you.

セーフティチームとやらに回されました. そして来た最終回答がこちら.

In regards to your Slideshare account, due to User Agreement violations, that account has been permanently restricted.

たった1文でした.

永久に凍結・・・.

しかも勝手にissueはcloseされてました.

こっちの質問には全然答えてくれず,最終的に冷たく見放されて,なんだかすごく悔しかったです.

で,どうしたか

SlideShareは嫌いになったので,SpeakerDeckに乗り換えました. まったく同じ資料をアップロードしていますが,こちらでは特に問題になっていません.

まとめ

利用規約は読んでますが,どの条項にも違反しないスライドだと自信を持っています. もし違反していたとしても,理由も告げず一発退場でアカウント凍結され,救済措置も無いのはかなり辛いです. 自分のスライドだけではなく,いままでFavしてきたスライド一覧も見られなくなってしまいました.

SlideShareとSpeakerDeckの違いとして,機能の比較はよく見ますが,規約の厳しさやサポートの良し悪しはあまり語られることが無いように思います. どちらもそんなに長く使っているわけではないのであまり強くは言えないですが,私の場合はSlideShareですごく嫌な思いをしたので,SpeakerDeckを推します.

これからスライド共有サービスを利用しようとしている方には,サービス利用にあたり,こういったリスクもあることを知っておいてもらいたいです.

先月読んだ本と今月の読書予定(2018年3月)

ブログを引っ越ししましたので,5秒後に移動します

先月の読書予定と実績

実績 Fav
Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語
ソフトウェアアーキテクトが知るべき97のこと
GarageBandではじめる楽器演奏・曲作り超入門 iPhone/iPad対応
作曲少女~平凡な私が14日間で曲を作れるようになった話~
  • DTMをやってみたくなって,それ系の本を2つ読んでみた
  • 作曲少女は具体的な曲の作り方は書いていないけど,初心者が挫折しないように成功体験をうまく積みながら進める考え方とかプロセスを書いてあって,とてもよかった

今月の読書予定

新規・継続
Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語
🆕 エンジニアのための時間管理術
🆕 エリック・エヴァンスのドメイン駆動設計

国営昭和記念公園・浅間神社を散策

ブログを引っ越ししましたので,5秒後に移動します

通勤路がコンクリートジャングルなので,たまに自然に触れるために公園や神社などを散策しています.

3日(土)は国営昭和記念公園浅間神社に行ってきました! また,その近くにあった浅間神社にも寄ってきました.

基本情報

国営昭和記念公園

  • 所在地:東京都立川市緑町3173
  • 開園年月日:昭和58年10月26日
  • 面積:1,653,000平方メートル
  • 公式ページ

浅間神社

アクセス

JR西立川駅が公園入り口に直結しているので,西立川駅から歩いて行きました. 西立川は乗降客が少ないためか,乗り降りの際に電車の扉を開閉するためにボタンを押す必要があります.押し忘れて乗り降りしそびれないように注意!

西立川北口とそこから出てすぐの公園入口(西立川口)

行く前にコンビニに寄りたい場合は,駅南口をすぐ出たところにファミリーマートがあります.南口から北口へは通り抜けできるので,飲み物などを調達したい場合はここで買うとよいでしょう.

国営昭和記念公園

行ってから初めてわかったのですが,入園は有料(大人410円)でした.また開園は9:30でした(元々8:30に行こうと思っていて,1時間遅れて行ったらちょうど開園時間だった.危なかった.) 無料入園日などもあるようですが,行く前にこちらの利用案内を確認しておいたほうがよさそうです.

また,とてもとても大きい公園なので,1日で全部回ろうと思わないほうが良いと思います.今回は2時間かけて歩きましたが,それでも半分ちょっとくらいでした.

昭和記念公園は公園という名が付いていますが,内部には売店やトイレやプールがあり,案内板があったり園内放送が流れていたりして,どちらかというとレジャー施設なイメージが強かったです.純粋な公園を望む人にはちょっと合わないかもしれないですが,中にある日本庭園(後述)はとても良かったのでオススメします!

当日は朝一番だったこともあり人が少なく(園内のスタッフの方のほうが多い),まだ雪がたくさん残っていて景色も雪の踏み心地も楽しめ,気持ちのよい散策でした.

ただ,近くに陸上自衛隊の駐屯地があり,当日はヘリコプターがひっきりなしに飛んでいて(なぜか公園内を周回し続ける・・・)ちょっとうるさかったです.

園内には写真を撮りに来ている人や絵を描きに来ている人が散見されました.

入口にあった案内図.とてつもなく広いので,パークトレインやレンタルサイクルがあるようです.

園内には様々な種類の木が植樹されていたり,大きな池があったりして景観が楽しめます.レンタルボートもありました.

なにやら見たことのないスノードロップという花も発見.

日本庭園

公園北部にある日本庭園.趣のある建物や澄んだ池,竹林,盆栽苑など,どこを切り取っても絵になるゾーンです. 今回一番印象深かった場所でした. 小屋の屋根から滴る雪解け水が特にきれいでした(うまく撮れなかったので写真は無し・・・.)

日本庭園の大きな池に架かる橋から写した池.とても澄んだ水で,底面も魅せる石の組み方がされています.

池の孤島.よく見ると・・・亀の形になってました!

みんなの原っぱ

公園中央部にあるとても大きな開けた原っぱ.当日はほとんど人がいなかったので真っ白な壮観な風景でした. 草の上に雪が薄く積もり,柔らかな踏み心地でした.

原っぱにはとても立派な2本の大きな木があります.

セグウェイに乗ってる人を発見!

こどもの森

公園北西部にあるこどもの森. 当日は朝で雪も残っていたのでこども達はいませんでしたが,遊具や色々なものをモチーフにした建造物があるゾーンです. 見てるだけでも楽しかった!

全体の案内図.この案内図のある森の家というところで,木工の教室などもやっているようです.

目を引く面白いものがたくさん.

行く前に地図で見て気になっていた地底の泉.当日は雪で立ち入り禁止になっていました.

一際大きな太陽のピラミッド.頂上からはあたりが一望できます.

ネコ発見!

浅間神社

帰りに駅南口を出て5分くらい歩いたところにある浅間神社に寄ってきました.

小さな公園の中にある神社で,こじんまりとしているのですが,階段を登ったところに厳かに拝殿があり雰囲気のある神社です. お賽銭箱も本坪鈴もちゃんとあります.写真の拝殿左奥にも入口がありましたが,そちらには鳥居は無いようでしたので,公園側から入るのが良さそうですね.