きゃべログ

プログラミングや電子工作などについての記事がほとんどです

オライリーの「入門ソーシャルデータ」の開発環境導入におけるエラー解決法

0 件のコメント

予想以上にハマった

先日、ちょっと自然言語処理の勉強をしてみたいと思い入門 ソーシャルデータ 第2版を読み始めました。PythonでガンガンWebAPIを叩いて解析していくというような内容なので、環境構築がすごく大事になってきます。

この書籍の革新的なところは環境構築を仮想マシンを作って均質化を図っているところです。使っている技術もそれなりにモダンで、VagrantChefを使って諸々のソフトウェアのインストールを自動化しています。しかもVagrantfileをはじめとしたデータはGitHubのリポジトリで管理されています。この時点ではとても感動してテンションぶち上げでした。

この環境構築方法は書籍の「付録A 本書の仮想マシンについて」のところでIPython Notebookを導入する方法として詳しく書かれています。

vagrant up、そのとき事件は起こった

意気揚々とgit clone ほげほげを実行した後、vagrant upと入力しエンターキーを力強く叩いたのですが、たくさんエラーが出てきました。

vagrantでエラーが出るのはそれなりにしょっちゅうあることなのでそんなに簡単には動じません。ググッて解決法を模索します。しかしそれが解決したのは次の日のこと。いわゆるハマったというやつです。

同じような境遇の人はたくさんいるらしく、GitHubリポジトリには「環境構築ができません><」という旨のIssueが乱立しています。これには著者のMatthewさんもタジタジです。でも似たような投稿があってもMatthewさんは丁寧に答えていました。人間が出来ている素晴らしい方なんだと思いました。
Issues · ptwobrussell/Mining-the-Social-Web-2nd-Edition

結論としては、Issueを読み漁ってもなかなか解決できなかったです。もちろんIssueのやりとりで助かった部分もあったのですが、それだけではどうにもならないことも幾つかありました。

生じたエラーたち

数時間奮闘した結果、なんとか解決できたのでシェアします。不幸な人が現れませんように。

Yosemite以降の方のusrディレクトリ管理権限問題

Mac - Yosemiteでbrewが壊れた - Qiitaの記事などに見られるように、YosemiteやEl Capitanでは/usrディレクトリにまつわる諸々の問題が生じるようです。そこで、お目当てのpythonが使えるようにシンボリックリンクを張ってやりましょう。これで安心です。

vagrant ssh
sudo ln -s /usr/bin/python /bin/python

この方法は主に公式GitHubのIssueで挙げられていました。
Python issue installing VM · Issue #243 · ptwobrussell/Mining-the-Social-Web-2nd-Edition

get-pip.pyが実行できません的な

get-pip.pyが実行出来ないなら仕方ないのでインストールしてあげましょう。ひょっとしたら取得先が更新されてるかもしれません。
curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python

Insecure Platform Warningと出て怒られる

セキュリティ上問題があるのでsslでうまいことやれという旨のお叱りがきます。ありがたいことにQiitaにずばりという回答があったので仰せのままにすると改善されました。

sudo apt-get install yum (いらないかも)
yum install -y openssl-devel python-devel libffi-devel (いらないかも)
pip install SoftLayer requests==2.5.3

参考
SoftLayer - Python実行時にInsecurePlatformWarningが出る場合の対応方法 - Qiita

早く解決したい人のためのまとめ

vagrant up
なんかいっぱいエラーでる
vagrant ssh
sudo ln -s /usr/bin/python /bin/python
curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python
(sudo apt-get install yum)
(yum install -y openssl-devel python-devel libffi-devel)
pip install SoftLayer requests==2.5.3
logout
vagrant reload
vagrant provision

これで上手く行かなかったら、vagrant destroyして深呼吸して一からやり直してみるのも一つの手です。私も3回くらいdestroyしてマシンを潰した結果うまくいきました。

まとめ

うまくいくかはわかりませんが、解決の一助になれば幸いです。私は1日目に解決することを投げかけ、危うくデータマイニングの勉強機会を損ねる所でした。みなさんは本質でない環境構築にストレスを感じずすぐに取り組めるよう願っています。

入門 ソーシャルデータ 第2版 ―ソーシャルウェブのデータマイニング
Matthew A. Russell
オライリージャパン
売り上げランキング: 159,645

0 件のコメント :

コメントを投稿

Bloggerの記事をMarkdownで執筆する

0 件のコメント


優秀なWeb上エディタStackEdit

StackEditを使えば、Markdownで文書をプレビューしながら執筆し、ブログにそのままアップロードすることが可能です。

実際に記事を書いてみる

使い方は至って簡単です。そのフローを画像付きで説明します。

ドキュメントを作成する

初期ドキュメント
StackEditを開くと何かしらのドキュメントが最初に開かれます。初回起動時はこのようなドキュメントが開かれるはずです。
New documentを選択
古いドキュメントが表示されている場合は新たにドキュメントを作成しましょう。右のフォルダアイコンをクリックし、New documentを選択しましょう。

マークダウンで記事を書く

マークダウンで執筆します
気の向くままにマークダウンで執筆しましょう。プレビューしながら編集することができるのでhtml直書きより随分気が楽です。

画像を挿入する

メニューバー
メニューバーから画像を表しているっぽいアイコンをクリックします。
Google+ を選択
ポップアップが表れるので、Import from Google+を選択します。
ドラッグ&ドロップ
画像をドラッグ&ドロップし、Selectボタンを押しましょう。これで画像が挿入されます。

目次の自動作成

目次の作成
[TOC]と入力することで自動的に見出しの部分を目次として出力してくれます。[TOC]の前後は空白行を入れるようにしましょう。

記事のタイトル・タグ・パーマリンク・下書きの設定

---
title: hoge
tags: [ラベル1,ラベル2,ラベル3]
permalink: /year/month/day/hoge.html
date: 2016-11-02 07:00:00
published: false
comments: false
---
ドキュメントの一番上に書くことで諸々の設定が可能です。書かなくても投稿が可能ですが、書かないと設定がBloggerから投稿するのとはかなり違った形で出力されてしまうので設定するほうがよいと思います。
titleでは記事のタイトルを設定できます。
tagsでは記事のタグを設定できます。
permalinkではパーマリンクの設定ができます。パーマリンクはSEOの観点から大切だと言われているので設定するようにしましょう。
publishedではfalseを設定することで、下書き状態でのアップロードが可能になります。trueに設定したり、値を設定しなければそのまま公開されます。
dateでは公開日時のスケジューリングが可能です。このパラメータとpublishedは共存できません。設定しても干渉することがおわかりいただけると思います。
commentsfalseを設定することでコメントを受け付けないようにすることができます。通常どおりコメントを受け付けたい場合はこのパラメータを書かないようにしましょう。
各パラメータの書式は上のサンプルを参考にしてください。YAMLの文法に沿うようにしましょう。
Front Matter
こちらのページも参考になると思います。
注意としては最後のハイフン3つの後に改行して空白行を作ることです。これがないと正しく結果が反映されません。

Bloggerにアップロード

Publish先にBloggerを選択
左上のシャープ印(#)をクリックするとサイドメニューが現れます。PublishをクリックしてBloggerを選択しましょう。
Publish on Blogger
Blogger URLにブログのURLを記入し、FormatはHTMLを選択します。その上でOKをクリックしましょう。これで投稿完了になります。

まとめ

StackEditを使ってBloggerで快適にマークダウン記法でブログ執筆ができることを紹介しました。これを使ってから技術系記事の執筆スピードが格段に上がったような気がします。
画像の挿入は、一枚ずつしかできないので、下書き保存した上で後でBloggerから挿入するほうがいいかもしれません。
あとは好みに応じて使いこなしちゃいましょう!

0 件のコメント :

コメントを投稿

「エンジニアとして世界の最前線で働く選択肢」

0 件のコメント

この本はシリコンバレーのIT企業で働くとはどういうことか、というところから入社までのプロセス、入ってからの話を経験を交えて書いてあります。私自信強く海外志向があるわけではないのですが、エンジニアとして働く上で参考になる考えがあると思いこの本を手にとりました。結果としては参考になる考えが色々あったと思います。




海外で働くことに限らず大事だと感じる記述がありました。第3章の「アメリカ企業に就職・転職する」では日本にも通じるノウハウが書かれています。例えば面接におけるホワイトボードコーディングでどのような点が問われやすいか、どのように進行していくべきかの要点が書かれています。

面白い記述と思ったことが幾つかあって、その1つがアメリカでの就職の際、履歴書の名前はニックネームで書かれることがあるということです。日本名など欧米では馴染みのない名前で応募するよりはJohn Tanakaのように親しみやすい名前の方がオファーが来やすいという話がありました。
もう一つはアメリカでは飲み会があまり開かれず、ランチで懇親会が済まされることが多いということです。転職が平均して2年ペースで行われる、転職が多い文化ということで社員の出入りが激しいことが1つの背景になっているのかと思います。

その他、エンジニアとして働く以外にも海外と日本国内の違いが色々書かれているので読み物として面白い一冊です。

0 件のコメント :

コメントを投稿