mac(ubuntu)にanacondaの環境を雰囲気で作る

大学の講義で必要になったので雰囲気でのメモです

実行環境

注意事項

Pythonよく知らないので詳しい人に聞いてください (最悪)

Anacondaとは

Pythonの良い感じのpackageツールと思われるものです.
condaという仮想環境構築ツールと合わせて運用されています.
pyenvなどのpythonの仮想環境ツールやvirtualenvなどの仮想環境ツールを内包し
pipとも併用としたanacondaの運用が可能となる為割りと良いツールと思います.(日本語が怪しい)

またcondaでいれるものは既にビルドされているので,雰囲気的にはaptとかと同じ感じっぽい.
詳細はこの辺を見ると良さそうです.

Anaconda は Environment Isolation Tool (環境分離ツール) ではない - Qiita

AnacondaのDL

公式サイトよりDLをする.

Download Anaconda Now! | Continuum


macの場合はpkgがあり,Linuxの場合はシェルスクリプトwgetすると良いと思います.

Anacondaの構築

pkgの場合,所謂普通のインストローラーが入っている為普通にポチポチすればインストールは完了します.
Ubuntuの場合shell scriptを実行すれば良いでしょう.

インストールは簡単に完了しますが,zshなどbash以外のシェルを使っている場合PATHが通らないという悲しさがあります.

基本インストールしたanacondaは

$HOME/anaconda3 

以下に展開されています.

従ってここにpathを通せばいいので,.zshenvなどに

export PATH="$HOME/anaconda3/bin:$PATH"

な記述をいれて置く必要があります.
Ubuntu等shell scriptの場合bashrcにPATHが記載される為,これをzshrcに移せば動きます.

尚source activateに関しては pyenvと並列しているとシェルが落ちるという悲しさがあります
対策は次のサイトを見れば良さそうです,
qiita.com

condaの使い方

anacondaをいれるとcondaも入ります.コンダコンダ.
ではcondaを使って仮想環境を構築しましょう.

condaで仮想環境を作る場合は conda create といったコマンドを使います

例えばkerasという名前をつけて,python3.6系でjupyterとgraphvizなpackageを入れる場合は次のコマンドです.

$ conda create -n keras python=3.6 jupyter graphviz

tensorflowと名前をつけてanacondapackageを入れる場合は次の通りです.

$ conda create -n tensorflow anaconda

この時に2系のpythonも入れることが可能です

$conda create -n tensowflow2 python=2.7 anaconda


構築した環境は

$ conda info -e

で確認することが出来ます.例えば

$ conda info -e
# conda environments:
#
keras                    /Users/e155730/anaconda3/envs/keras
pyevolve                 /Users/e155730/anaconda3/envs/pyevolve
tensorflow               /Users/e155730/anaconda3/envs/tensorflow
tensorflow2              /Users/e155730/anaconda3/envs/tensorflow2
root                  *  /Users/e155730/anaconda3

な雰囲気です. * がついているものが現在選択されているpython環境です.

環境の切り替えですが

$source activate tensorflow 

など source activate 環境名 で行うことが出来ます.
この際切り替えるとプロンプトに (keras) など環境名が表示されると思います.

尚activateはanacondaが提供しているシェルスクリプトです.

condaからpackageを入れる場合

$conda install -c https://conda.anaconda.org/jjhelmus tensorflow
$conda install -c conda-forge tensorflow

などのコマンドを利用します.基本anacondaを入れれば入っていますが
:: Anaconda Cloud で検索すれば導入出来るコマンドが,打つべきcondaコマンドと共に登録されています.

ここに無い,もしくは衝突したpackageに関してはpipで導入すればいいでしょう.

例えばmatplotlibは

$pip install matplotlib

などとすると良いと思われます.

python環境をrootに戻すには

 $source deactivate


を行いましょう.

では,良いanacondaライフを.

参考サイト

github.com

RoRチュートリアルをしていこうと思う(宣言)

というわけで Ruby on Rails チュートリアル:実例を使って Rails を学ぼう をやっていこうと思う.
本来ならPerlでやっていきたいけど,今年からやっているenPitの関係で使わざるを得ないので勉強する雰囲気である.
実際問題webアプリといえばRailsだろ!!的な風潮がある為時代に乗り遅れない為にもやらないといけない…


並列分散処理の講義ではチームに別けられてからですが,そちらはそちらでGolangとかやるかもしれない.
一応 A Tour of Go あたりと初めてのGo言語あたりはダラダラやっているのだが…

日記的にはてなブログを更新していくためにもある程度の進捗はブログに報告していこうと思っている.
id:anatofuz の活躍にご期待下さい!

ps.

はてな記法にちょっと慣れてきた

ブログ引っ越した

ブログ引っ越しました.

というのも最近は id:anatofuz でやっているのですが,はてなだけかつてのidである id:shimitakax だったので
IDリファクタリングの波に乗って変えた感じです.

過去ログの持って行き方は はてなブログからはてなブログへインポート - 256 を参考にしました.
作業時間は10分もしない内で終わりました.UIが洗練されている.

というわけで id:anatofuz でよろしくお願いします.


いやアカウント二つ持つのだめなんだけどな…

「すぐわかるオブジェクト指向Perl」読んだ

Acmeモジュール書いていると良くPerlにおけるオブジェクト指向について触れるのですが そのコアな部分について解説している本です.

すぐわかる オブジェクト指向 Perl

すぐわかる オブジェクト指向 Perl

と言っても前半はリファレンスやmapやgrepといったPerlの便利関数についての解説が多く Perl入学式終わった後のレベルで読むと前半部分は非常に良いかなと思いました. この本で解説されているPerlオブジェクト指向は,基本に忠実な1番素朴なオブジェクト指向です.

著者の深沢さんはYAPC::Kansaiの時にお会いし,かんたんPerlを頂いた思い出があります. かんたんPerlと同様に,初心者でもわかりやすく.またwindowsユーザーでも難なく実行出来るような文になっています. 若干warningプラグマを使っていないなど,書き方が今のPerlの書き方では無い部分がありますが,十分自分で直せる範囲なので どんどん進めていけました.

かんたん Perl (プログラミングの教科書)

かんたん Perl (プログラミングの教科書)

オブジェクト指向と言っても,モジュール作成時によく(?)引っかかる,謎の$class変数についても語られており 「これからモジュール作ってみるぞ!」という方にも個人的にオススメです. また前述の通り,リファレンスやmap,grepの使い方の解説が秀逸で 特に研究コーナー2「リファレンスのまとめとシュウォーツ変換」の章は一読するべきかなと思います.

現代のPerlではMouseやMooなどが広く使われていますが,これらモジュールについてのtipsはこの本では語られていないので そのあたりの情報が知りたい場合モダンPerl入門などがオススメのようです.(こちらは2~3ページしか読んでない…)

モダンPerl入門 (CodeZine BOOKS)

モダンPerl入門 (CodeZine BOOKS)

また最後はCGIを開発していきますが,現在主流(だと思っている) Perl5.24.0などはCGIモジュールが標準で入っていない為 Cartonやcpanm,cpmを使ってcgiモジュールをCPANからダウンロードする必要があります.

ですが,そういった細かい所が気にならないほどわかりやすい本です!!オススメです!!

YAPC::Fukuokaに参加してLTソンでLTとかした話

どうもこんにちは @AnaTofuZ です. 前回のYAPC::Kansaiに引き続き2度目のYAPCに参加させていただいたので,レポートです.

今回も学生支援スポンサーの皆様のお陰で行くことが出来ました…!!ありがとうございます!!!

前夜祭

前夜祭の前にヌーラボYAPC::Okinawaのミーティングがあり,その後前夜祭でした. 今回の前夜祭はLTソンが開催されており,かつてYAPC Asia Tokyoの際にLTソンの司会をやられていたうずらさんの進行でワイワイしました.

時間までは他のPerlMongerの方とお話したりご飯食べたりしてましたが,charsbarさんが 5000兆円欲しい!のAcmeモジュール を僕がリリースした事を知っていて,めちゃくちゃ嬉しかったです.

LTしました

今回の前夜祭はLTソンなので,勢いで応募して勢いでLTしました. 色々とありますが,作ったAcmeモジュールをひたすら勢いで紹介していく感じになりました. 途中焦って色々とテンパっていましたが,うずらさんから「頑張って-!!」と声をかけていただくなどワイワイと出来ました.

前夜祭は他にAcmeモジュールの発表があったり,などと酒を入れながらLTをするという最高な会でした. やはりLTとアルコールは親和性高いと言える….

その後はAcme神のまかまかさんにMackerel鯖の店に連れて行って頂きました.

YAPC::Fukuoka HAKATA

今回は前回のkansaiとくらべてPerlの話が多くPerlのカンファレンスだ!!という印象を強く受けました. Kansaiから個人的にPerl6をちょっと試してみたりしたこともあり,非常にワクワクした内容のものが多かったです.

2017年夏のPerl

charsbarさんのYAPC風物詩となっている(?)トークでした. 個人的な印象ですが,中々ModernPerlについての情報源が初心者には少ないように感じるので勉強になりました. また後半はPerl6の最新情報であり,今までの歴史を踏まえながらエコシステムがCPANに統合されること. 当分はググらず信頼できる情報源を類っていくことなどの今後Perl6をやっていく上で需要なtipsを知る事が出来ました.

Be PaaS Monger - クラウドエンジニアの三大美徳、またはIaaSを使わない3つの理由

Perl入学式でもお世話になっているわいとんさんのトークでした! ちなみに,わいとさんとは前夜祭で初対面でした.(3日目で博物館でお見かけしたような…?)

azureやawsなど,Cloudサービスは普段中々触らないのですが,実務では非常に使えるなと改めて思えたトークでした. 学生無料枠が使えそうなので,少しずつ遊んでいきたいと思います.

コンテナを「守る」仕組みから中身を理解しよう!!

前夜祭でもお見かけしたuduzraさんでした. OSの講義で触れたようなシステムコールの話をPerlRubyを交えながらコンテナについて見ていく内容で 非常に為になりました.containerと言えばDockerというイメージでしたが,Dockerが来る前にも幾つかの技術が会ったのは知らなかった….

はてなブログ最近の開発テクニックと最新の開発風景のご紹介

hitode909さんのはてなブログの開発にまつわるトークでした. はてなブログの裏側は非常に気になるところでしたが,デザイナーの方も開発に近いことをするというのは驚きでした. またエディタの設定は仕事だ!!というところも印象に残りました.

Web application good error messages and bad error messages

moznionさんのトークでした.次元によるエラーメッセージの種類など,普段はエラーメッセージを見る事が専門なので, 実際にエラーメッセージを運用していく立場の話は新鮮でした.

ランチセッション

学生支援で来させていただいていることもあり,スポンサーの企業さんとお話しながらご飯を食べました. サポーターズの方から是非沖縄で!!と熱くpushされたので是非沖縄でもお願いします!!

本当に学生支援スポンサーの皆様ありがとうございました!!

未来のプログラマー達へ ~Perl入学式卒業生から~

Perl入学式でお世話になっているtomchaさんのセッションでした. tomchaさんは職業プログラマの方ではないですが,キッカソンなどの運営などPerl入学式を通して この業界の人々と関わりを持ち始めた経歴の方です. 個人的にOkinawaでの入学式の運営を通して色々と学ぶ事があるので,共感できる内容でした. ちょっとの勇気はやはり重要…!!

未来志向のCPANモジュール開発 - アイデアを生み出し実装する方法

サンプルコードPerl入門の木本さんのトークでした. CPANモジュールはAcmeモジュールなら量産していますが,ちゃんとした?CPANモジュールはまだ開発した事が無いので 実装方法などの参考になりました.やっぱりOSSはソースが読めるので良いですよね. 僕もAcmeモジュールは他の方のモジュールを参考にさせて頂いています. こないだリリースされたSPVMの話も聞けて良かったです!

P6W に基づく Perl6 に於ける Web 開発の基礎となる Crust

tokuhiromさんのPerl6のセッションでした.Perl6は日本語チュートリアルを斜め見している感じなので まだWaFなどについての知識はないのですが,Perl6でもweb開発は出来なくはない. しかし安定性や開発者的な問題から実用はまだまだ難しいという印象です. Perl6ちょっとずつやっていきたい…

グローバルなエンジニアを目指す為の入門的な話

大学では頻繁にグローバル化だ!!と言われ「グローバル化ってなんや!!英語か!!英語で書けばええんか!!」みたいな雰囲気で生きていましたが,実際にグローバル化を考えると相当大変であることを感じました.

特に文化の違いというものはかなり大きなネックになり,実際歴史や文化を知る事はグローバル化するプロダクトを行う上で必須であると学べました. 実際問題こういった案件を僕がする事になるのかはまだまだですが…

The plan of Aniki 2.0

かるぱさんのAnikiなトークでした. Anikiについては前回のOkinawa.pmでもトークを聞いたので,新機能ということで聞いていました. ORMは今勉強している最中なのですが,N+1問題などはちょっと知っていたのでぼーっとですが雰囲気はつかめたと思います. やはりこういったトークを理解出来るようになっていきたい…

サービスディレクターの意思決定を支える技術

個人的な話なんですが,ディレクターという職種がIT系でもあったことを知らなかったです…(ディレクターと言えばテレビ業界なイメージ) ただディレクターと言ってもjs書いたりと,やはりエンジニア寄りの職種だったりするのかな…という印象でした.

使用するツールがGoogleのサービスだったのですが,Googleのツールといえばスプレッドシートとかしか知らなかったので,新しい発見でした.

Inside Evalpark - the evolution of sandboxing

弾さんのトークでした.前回のKansaiでは弾さんのトークを聞けなかったので,単純に聞いてみたく聴講してました. FreeBSD上でEvalparkが動いていて,内部ではPerlで処理をしている. 実際の処理のテクニックが,中々高度だったように感じましたが幾つかのモジュールで使われていた技術かな? という雰囲気でした.もう少し勉強したい…

巨大Perlプロジェクトに、Dockerが出会った

まだ複数人でPerlプロジェクトを扱った経験が無いのですが,cpan.snapshotがOS依存であることは知りませんでした. 確かにDockerを使うと環境そのものを共有できるので,なるほどなーと思いながら聞いていました. 大学でもDockerが密かなブームとなっている節があるのでDockerも触っていきたいです.

LT

前夜祭と比べると真面目なtechLTでした.kazeburoさん初めてお見かけした… ベストLTはOkinawa.pmのKさんでした!めでたい

Keynote

山本 竜三 さんのKeynoteでした.海外で働くことが何か昨今持て囃されていて,「お前らとりあえず海外行け!!」みたいな風潮でしたが実際に行った方のトークは中々無かったので貴重でした. やはり現実問題として言語の壁や文化から来る業務の違い,何より時差など,実際に海外で仕事をするとなるとかなりキツいなという印象を受けました. それでも上手くやっている山本さんほんとすごいな…

懇親会

懇親会はお座敷スタイルだったので,大勢の人と喋ったりという訳では無かったのですが,ワイワイしました.

今回も941さんに 沖縄県民詐欺」 かりゆしウェア着てるのに山梨」 などとイジられました!!! 俺は雰囲気で沖縄に住んでいる.

その後の二次会は屋台でワイワイしました. ラーメンが美味しかった….福岡最高では….

YAPC::Okinawa ONNASONやっていきます

というわけで次のYAPCはOkinawaです!!!めでたい!!!

Perlを初めてまだ少しですが,気づいたらOkinawa.pmの1人としてYAPC::Okinawaのスタッフとなりました!

会場は恩納村と少し遠いですが,極めて沖縄感がある最高の場所なので是非お越しください! 当日晴れることを期待して Acme::TeruteruBouzuを作っていますので,是非お使いください.

次のYAPCではスタッフとして,今までのYAPCスタッフのみなさんとOkinawa.pmのメンバーと協力してワイワイしていきます!! 出身は山梨県だけどな!!ガハハ!!

scriptコマンド

UNIX/Linuxコマンドは専門学校では使わないらしく,編入生にmacのターミナルに慣れてもらおうと 自宅に眠っていたソフトウェア演習の参考書を持ってきた.

ターミナルコマンドでOS X を12倍深く使うための本

ターミナルコマンドでOS X を12倍深く使うための本

このターミナルコマンドでOS Xを12倍深く使うための本.だが, sierraになった今でも有益な情報が多いし OSXといいつつプロセスや環境変数,パイプの概念などが幅広く抑えられている. B3になった今でも知らなかったコマンドが書かれていて,ちゃんと読んでおけばよかったなぁと後悔している.

これ系の本ではシス管系女子とかが漫画でわかりやすい印象がある.

まんがでわかるLinux シス管系女子(日経BP Next ICT選書)

まんがでわかるLinux シス管系女子(日経BP Next ICT選書)

まんがでわかるLinux シス管系女子 2(日経BP Next ICT選書)

まんがでわかるLinux シス管系女子 2(日経BP Next ICT選書)

Okinawa.pm #4 エイプリルパールに参加しました

Okinawa.pm #4に参加しました. 日付が4/1だったので エイプリルパールというテーマの元行われました. Togetherにもなっていました

場所はララプリモ2F シナジールームでした. wifiのアクセスポイントが消滅していたという謎の事態に見舞われましたが,テザリングで事なきを得ました.

今回も前半はもくもく会を行い,その後トーク(LT)をクジ順で行いました. 僕は前半でAcmeモジュールを完成させ,Readmeを書いてリリースしたりしていました. Okinawa.rbから(ぺんさん)https://twitter.com/tompngが参加していたので,以前琉大でRuby Kaigiした時の話なども上がっていました.


トーク

詳細はOkinawa.pmのサイトに多分乗るのでそこを見てください. 発表順に感想を載せていきます

  • @cat2koban さん
    • 難読化の話. Acme::EyeDrop面白いですよね.AAを#で表せれば,好きなAAで作れるのも魅力だと思っています.
  • @touba_rumba さん
    • 噂には聞いていたAppleScriptですが,実際に使用されているところを見たのは初めてでした.
    • Macでいろいろな処理を自動化する際にAppleScriptを用いると確かに便利であると思うので調べてみたいです.
  • @tompng さん
    • Quine でまさかのアニメーションを作るという,凄まじい発表でした.
    • Rubyの方ですが,Acmeモジュールの精神を感じました.他の言語でもあんなに出来るのすごいな…!
  • @mayutsuna さん
    • まさかの卒研発表でした.実際に実現化されると面白そうです.
    • 昔あった日本語のサーチエンジンを改良したようなwebアプリケーションになるのかなとか思ったりしました.
  • @yasuXS さん
    • MinillaはAcmeモジュール作る時に使ったことがありましたが,XSを作る際にも便利という内容でした.
    • XSでは配列やハッシュにも専用の型があり,それを返すことが可能.
  • @CodeHex さん
    • XSの文法や参照カウントなど,XSならではのチュートリアルでした
    • やはりCの世界でもあるので,メモリ管理などは気を使わないと行けない.逆にCベースに考えれば設計は可能という印象です.
  • @perlackline さん
    • @_の時点では参照であり,そいつは実体を変えることが出来るという衝撃の事実
    • つまりmy($hoge) =@_; したときに初めてコピーされるということは,高速化を追い求める処理の場合わざわざ変数にいれなくても良いのかなとか思いました.
    • 流石セラさんという印象が強かったです.
  • @adokoy0001 さん
    • エイプリルフールなQuineでした
    • 置換を利用するとQuineが作成出来るという事でQuineの初歩の考え方が理解できました.

XSの発表が2つとQuineで結構盛り上がりました. XSは今日の感想とmoduleを眺めた感じ,魔改造されたC言語という印象を受けました. 実際にmoduleを作成したり,写経してXSも少しずつ勉強したいです.

あとQuineは極めたい.Acme感がある.


LTしました

今回はエイプリルパールということで,タイトル詐欺かつ超理論でAcmeモジュールを作成するという内容で発表しました. (PerlMongerの生態についての研究と言いつつ最終的には寿司の話に収縮する…)

実際に作成したAcme::HowToMakeSushiについてはこのエントリを御覧ください.