ざきの学習帳(旧 zackey推し )

日々の学びを書きます

【学習記録】robots.txtとは(スクレイピング関連)

f:id:kic-yuuki:20181231154124p:plain

みなさん、2018年本当にお疲れ様でした。
年末年始、いかがお過ごしですか?(´・ω・`)

自分は帰省し、お酒を一日中飲みながら溜まりに溜まったUdemyの動画やKindle本、コミュニティのタスクをだらだらと進めていく予定です。

はじめに(何の記事?)

本記事はrobots.txtに関する自分なりのメモになります。
以下のような方の参考になれば幸いです。

  • スクレイピングをはじめてみたい方
  • robots.txtって聞いたことあるけどなあに?って方
続きを読む

【備忘録】ndenvインストール後 node / yard 実行時に"dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.58.dylib"が発生した時の対処

タイトル通り、ndenvインストール後にnode/yard実行時に以下が発生した時の対処方法です。

node -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.58.dylib
  Referenced from: /usr/local/bin/node
  Reason: image not found

ndenvって?

Node.jsのバージョン管理ツールです。

github.com

他にもnodebrewというツールもあります。

github.com

個人ではnodebrewを使用していますが、職場でndenvを使うことになりました。その際にタイトルの問題が発生、対処したのでその時のメモです。

対処方法

ほぼ同様の内容の問題が発生、対処していた記事がすでにありました。
(感謝感謝)
それがこちらです。

webman-japan.com

homebrew で入れた node をアンインストールするという見出しの以下コマンドを実行することで直ります。

# nodeをアンインストール
brew uninstall --ignore-dependencies node
# ndenvをPATHを通す
exec $SHELL -l

上記で直らない場合は、ndenvのバージョン設定を行なっていない可能性があります。その場合は以下を実施します。

# インストール済みのNode.jsのバージョン確認
ndenv versions
# グローバル設定
ndenv global vx.x.x
node -v
# 開発環境別の設定
ndenv local vx.x.x
node -v

yarnも実行可能な状態になっていますので、合わせて確認してみてください。

おわり

もし間違い等ありましたら、ご指摘いただけると助かります...!

2018年に感謝。2019年の目標はフィードバックすること。

この記事は『真・エンジニアの登壇を応援する会』 Advent Calendar 22日目の記事です。

adventar.org

21日目は よしたく さんでした!

yoshitaku-jp.hatenablog.com

無事に1年通して週1回のブログ更新を続けることが出来ました(まだあと1週ほど残っているけど)。 自分でやるって決めて1年間継続できたことってあっただろうか…素直に自分を褒めたいと思います。100記事も超えました。

すんごいやんばい Σ(・ω・;)

毎週ブログ書くのほんとすごいですよね。インプットとアウトプットを両立してそれをブログに書く。自分だったら自分を褒めるために今流行中の新しいスマブラ買っちゃいますね!

  • はじめに(なんの記事?)
  • 2018年の振り返り
    • 目標は達成できたか?
    • 転職先、エンジニア仲間、コミュニティのおかげ
      • 「転職先」に感謝
      • 「エンジニア仲間、コミュニティ」に感謝
    • 振り返ってみて
  • 2019年の目標
    • フィードバックすること
      • リプライやいいね、といった「反応がモチベーションとなった」
      • 具体的な方法は?
  • おわり

はじめに(なんの記事?)

アドベントカレンダーにはこのような説明が_φ(・ω・

このカレンダーは、少し気が早いですが来年の目標をつづる為に作られました。 今年1年の行動を振り返り、そしてあなたが来年どう成長したいかについて是非教えてください。 リンクが貼れればアウトプットの形式については何でも構いません。 クリスマスまで毎日届けられる皆さんの決意を楽しみにお待ちしています。

ということで、この記事は2018年の(少し)振り返り と 2019年の目標を綴りたいと思います。

2018年の振り返り

2018年をざっくりふりかえっていき!

目標は達成できたか?

2018年の目標は「アウトプットすること」でした。
(目標設定した頃のことはどこにも記載されていないけどね)
結果は、以下記事に書いてあります。

【振り返り】2018年の成長と充実 - zackey推し

目標は達成できたかなと思います。アウトプット=ブログ1記事書けば達成なので、ハードル低すぎ問題もありますが、振り返ってみると、このブログやQiita、登壇などアウトプットしました。

転職先、エンジニア仲間、コミュニティのおかげ

最初のアウトプットは以下のQIita記事でした。
(2017年12月の記事だけど、許して)

SQLServerで実行されたSQLやストアドをキャプチャする方法 - Qiita

この記事から始まり、ブログや登壇といったアウトプットに繋がったわけですが、全て自分発信というわけでなく、色々な方にお誘いや刺激をいただいたおかげで行動に移せたことがほとんどでした。

「転職先」に感謝

本記事からちょうど1年前の2017年12月に、現在の株式会社Rossoに転職しました。

現職では、在籍1年も満たない自分に対して、社内勉強会をはじめ、コミュニティの場所を提供してもらうなどの協力をしてくれました。最近では、会社ブログも始めさせてもらったりしてます。

続きを読む

【振り返り】2018年の成長と充実

この記事は「#セイチョウジャーニー Advent Calendar 2018」 11日目の記事です。

adventar.org

10日目は このすみさんでした、お疲れ様でした!

www.konosumi.net

はじめに

技術書典5で頒布された「セイウチセイチョウ・ジャーニー」には、まず行動してみることの大切さ、自分にとっての成長・充実について振り返る機会をいただけました。改めてありがとうございました。
m(_ _)m

booth.pm

読破後に生やした感想記事にて、自分の成長・充実する上での指標(軸のようなもの)を記載しました。

  • 自分にとっての成長とは?
    • 未体験の事に対して行動し、何か新しいことを知る、得ること
    • 得た事を元に腹落ちさせ、得た事の魅力を知らない誰かに伝え、助けられること
    • 何かしら0→1ができること
  • 自分にとっての充実とは?
    • 結果が出ていることがベストだが、常にチャレンジの姿勢でいられること
    • 誰か(人や組織)のためになることができたこと

本記事では、上記の指標を元に2018年に成長・充実できていたかを振り返り、自分の行動を反省&褒めようかなと思います。

※社会人になると褒められることが少ないから、
 自分自身で褒めることをゆるしてくりー(´-ω-`)

2018年の成長と充実

0→1

  • 成長
    • 未体験の事に対して行動し、何か新しいことを知る、得ること
    • 何かしら0→1ができること
  • 充実
    • 結果が出ていることがベストだが、常にチャレンジの姿勢でいられること

こうみると1の定義が曖昧ですね。
当時、自分は何を1と定義していたのか...
(´・ω・`)

この際、
1は知らないことを始めたと定義して振り返ってみます。

  • プログラミング
    • Ruby / Ruby on Rails
      • 仕事に繋げられた
    • Node.js, Go言語
      • コミュニティのbot作成に生かせた
  • アウトプット
    • 本ブログの執筆を始めた
      ※Qiitaは2017年12月からなので対象外
    • 登壇・LT
      • 社内への登壇・LTを行った
      • 社外勉強会でLTを行った(未登壇)
      • カンファレンス
        • builderscon 2018でLTを行った(未登壇)
  • コミュニティ
    • エンジニアの登壇を応援する会へ参加
    • write-blog-every-weekへ参加

結果もそれなりに出ているので、
WOW!! これは成長した!と自分を褒めたいところなのですが、
未経験のことを始めるということ自体が、
成長のハードルが低すぎかな感じました。

誰かを助けられたか?

  • 成長
    • 得た事を元に腹落ちさせ、得た事の魅力を知らない誰かに伝え、助けられること
  • 充実
    • 誰か(人や組織)のためになることができたこと

こちらは成長中という感じです。

今年はアウトプットと背中を押すことの大切さを学んだので、
現職で以下の活動を始めてみました。

  • 活動内容
    • ブログやQiita執筆の支援
      • 学習記録として投稿するやり方など、ハードルの低いアウトプット方法をレクチャ
      • ネタ含めて相談したい方向けにもくもく会の開催
      • 相談のハードルを低くするために分報の取り入れ
  • 目的
    • アウトプットしたいけど一歩踏み込めない人を支援するため
      • エンジニアのアウトプットはデファクトスタンダード化してきている
        • スキルシートではなくて、目に見えるアウトプットで
          自分をアピールできるようにするという意味もある

活動自体は11月末から始まっています。
アドベントカレンダーを始めてみましたが、ご覧の通り...

qiita.com

誰も助けられてない...
まだ背中を押す努力が足りてないので、
がんばらないと(本人へのプレッシャーとならないように注意)

おわり

この記事を書き始めた時は「自分って成長したなー (´∀`)テヘペロ」
的な感じでいきたかったのですが...

成長のハードルが低すぎるのと、
参加中コミュニティの方達のアウトプットと比べると、
まだまだ成長したとは言えないなと感じました。

自分の成長のハードルについては、
以下のアドベントカレンダー記事投稿時に見直そうかなと思います。

adventar.org

さて、12日目は kuwahara_jsri さんのご担当です!

なんでもセイチョウ・ジャーニーに関われた際の記事だとか...
わたし、気になります!

乞うご期待!それでは!

【学習記録】claspのインストールからデプロイまで

Rosso Advent Calendar 2018 - Qiita
8日目の記事です。

はじめに

ひょんなことでgoogle/claspというGASのCLIツールを知り、GASをコード補完&Git管理できるようにしたい!というモチベーションから、少し触ってみました。

本記事は、google/claspのインストール〜 GASとしてデプロイまでを試した以下リポジトリの学習記録になります。

github.com

google/claspについての深掘りまではしていませんので、
ご了承ください。m(_ _)m

参考記事

以下の記事を参考にさせていただきました。
ありがとうございました。

では本題へ。

手順

インストール・ログイン

# インストール
yarn add global @google/clasp
# npm i @google/clasp -g

# ログイン
clasp login
# この後、Googleアカウントのパスワードを入力

ログイン後、ブラウザの新規タブが開き、
claspからの操作の許可を求められるので許可します。

Google Apps Script APIの有効化

以下からGoogle App Script APIの有効化を行います。
Apps Script – Google Apps Script

アプリの作成・デプロイ

# 作成
clasp create app-name

GAS用のフォルダを作成済みの場合はclasp create .でもおkです。

今回テスト用に以下のソースコードを作成します。

src/sample.js

// @ts-nocheck
function echoMessage(msg) {
  Logger.log(msg);
}

function main() {
  ["hello", "world", "!"].forEach(function (msg) {
    echoMessage(msg);
  });
}

ここまで実装すればデプロイできるのですが、
このままだとnode_modulesなど、
不要なファイルも一緒にデプロイされてしまいます。
(時間がかかる...)

そのため、.claspignoreの作成・設定を行います。

.claspignore

**/**
!src/*.js
!appsscript.json

上記ファイルの作成が終わったらデプロイ実施、
そのままデプロイされているか確認します。

# デプロイ(push)
clasp push

# デプロイが終わったら、ブラウザからGASとして出力されているか確認
clasp open

src/sample.gsというファイル名が作成されていたら、
デプロイおkです。

GitHubへのpush

不要なファイルをコミットしないよう、
.gitignoreを作成・設定します。

.gitignore

node_modules/
.vscode/
.clasp.json

VSCode使わない方は.vscode/は不要になります。
これであとはコミットと自分のリポジトリへpushするだけでおkです。
お疲れ様でした。

# 念のため初期化〜コミット
git init
git add -A
git commit -m "{なにかコメントを}"

# push
git push

ファイルの説明

.clasp.json

{"scriptId":""}

clasp createした際に作成されます。
キーが格納されているため、誤ってGitHubに公開しないよう、
.gitignoreに追記しておくこと。

最後に

以下の記事を参考に、TypeScriptで書くのも良さそう。
てか、TSの方が良いだろうな...