調べるブログ

Apple製品(Mac/iPhone/iPad)、IT、プログラミング、仮想通貨など自分が調べた様々なことを記事にしています。お絵描きもやってます。

「独習Git」で勉強し、もう少しGitに詳しくなりたい

定番?「独習Git」で学ぶ

技術書籍「独習Git」を購入した。 

これまでGitは自宅でGitHub、会社でGitLabを利用することもあって、ある程度使ってきたが、正直深い知識は身についていなかった。

一人で使っているだけでは周辺知識というものはなかなか身につかないものらしい。

独習Git

しかしこの春から転職することになることもあり、よい機会なのでこの書籍「独習Git」であらためてGitを勉強しようと思い立った。

この書籍は一日一章ずつ進めるように書かれていて、あまり時間の取れない平日でもなんとか時間を捻出して進めていきたい。

 

(この書籍を)読み始めて思ってこれは良い!と思えた点は、筆者のようにコマンドラインをメインで使いたい人向けに書かれていることだ。(いくつか書籍をKindle unlimitedの読み放題対象品で探してみたが、GUI操作のものが多く、説明が冗長に思えるものばかりだったので)

独習Git

独習Git

 

分散型バージョン管理システム「Git」は、現代のプログラム開発では必須の技術となってきました。現在のソフトウェア開発は多人数のプロジェクトとなり、バグフィックス、バージョンアップ、異なるエディション(Windows版/Macintosh版など)への分岐が生じます。Gitは、プログラムの開発の履歴を管理し、以前のバージョンへ戻したり、改編箇所の衝突を回避したりといったソースコードの管理が可能です。本書は、いままでGitを使っていなかった方でもしっかりとした知識が身に付くように執筆された入門書です。バージョン管理システムは以前からありましたが、Gitは分散開発への対応が充実しており、「決定版」として普及しています。また、インターネットのGit Hubと組み合わせたオープンなソフトウェア開発も実現可能です。本書を読むことで、Gitの基礎が身につくのはもちろん、さまざまな使いこなし、プロジェクトへの適用方法、開発支援サービスの利用についての知識が得られます。たんなるGit解説書としてではなく、一から学べる入門書としてお読みいただけます。丁寧かつ充実した内容で、現場で応用可能な技術がしっかりと身に付く一冊です。 

 

余談

記事中でも書いたが、筆者はこの春から転職するのだけど転職エージェントは利用せず、エンジニアと会社をマッチングさせるWebサービス「Green」を使って転職を決めた。Greenのマッチングは比較的転職希望者本人のスキルと合致することが多いようで、筆者の場合はほぼ一本釣りのような形で内定が決まった。

内定が出るまでやったことはGreenへの登録と面談一回のみである。(面接ではなく、私服OKのカジュアルなもの)

 

通常の転職活動と違い、内定後に履歴書・職務経歴書を書くことになるのが変わっているところだろうか。

 

ただし、Greenを利用している企業の中には本人の希望は関係なくスキルマッチングだけで面談を依頼してくるところもあるので注意が必要だ。Greenを利用する転職者の場合、Web系で自社サービスのある企業を希望する人が多いと思うので、SIer・SESからの面談依頼は丁重に「興味なし」にしておいたほうが無難だと思う。(お互いに時間の無駄になるし、短期間で辞めることになったら迷惑だろう)

 

そうそう、履歴書といえば証明写真が必要になるが、最近だと履歴書もメール添付になることが多いので自撮りをする際は以下のアプリが役に立った。

履歴書カメラ

履歴書カメラ

  • Recruit Co.,Ltd.
  • 写真/ビデオ
  • 無料

なお、履歴書・職務経歴書を送付する場合はZIPファイルにパスワードをかけておくこと。別メールにそのパスワードを書いて送信する。応募者の個人情報は秘密厳守であり、なんらかの手違いで漏洩することになったら先方にも迷惑がかかる。 

「マインドマップから始めるソフトウェアテスト」読後の感想

会社の本棚でプログラミング関連の技術書を探していたところ、とある本が見つかったので読んでみることにした。 

書籍のタイトルは「マインドマップから始めるソフトウェアテスト」。マインドマップについては複数の書籍が出版されているので説明は割愛する。 

マインドマップから始めるソフトウェアテスト

マインドマップから始めるソフトウェアテスト

 

本書では、ソフトウェアテストを行う意義とイメージをつかみ、そして実際の作業に必要な作業工程を理解し、その作業にはどのような勘所があるのかを、マインドマップを描きながら学んでいく。マインドマップの利点を十分に活かすことによって、ソフトウェアテストという活動が本来もつ、クリエイティブな側面に焦点をあてた。

 

本書の特徴はマインドマップを活用することで、キャリアの浅い新人エンジニアでも熟練エンジニアと同じ思考法でテストを進めていくことができることを説明している点だろう。テスト計画・設計・実装あたりまでは興味深く読めた。(実施以降はそこまでマインドマップを使う必要はあるのかな?と疑問に思ったけれど)

 

ソフトウェアテストの試験書は熟練者だといきなり書くことができるけれど、新人エンジニアがいきなり詳細なテストケースを書いていくのはなかなか大変だと思うのでこの本を参考にテストケースを検討するとよいと思う。

 

残念なのは本書がすでに中古でしか手に入らないこと。古本市場での取引価格を見るとなかなか高評価の書籍のようだ。新人の研修用に一冊あるとよいかもしれない。

Macの開発環境「Xcode」を使い始めた件

仕事でObjective-Cを使うことになりそうなので、まずはXcodeに慣れるところから始めました。

左にiPad Proを置いて書籍(Kindle本)を表示し、MacBook Proをプログラミングの学習環境にしています。 

Xcode

Xcode自体は以前インストールしておいたので、まずはC言語の復習から始めています。仕事ではWindows(Visual Studio)・Mac/iOS(Xcode)を扱うことになるわけですが、動きの早いWeb系と比べるとはたしてどっちが大変なのだろう? 

 

Objective-CについてはAmazonをチェックしても入門書の数が少ないため、Kindle unlimitedで読み放題対象の書籍をいくつかダウンロードしておきました。

“入門書”で挫折した人のための C言語からはじめるObjective-C超入門

“入門書”で挫折した人のための C言語からはじめるObjective-C超入門

 

(まだ)挫折したわけではないけど、なかなかいい本ですね、これ。誤字脱字がないのが好印象です。 

Mac/iOS向けのプログラミング本だと最近はSwiftが多いのですが、そちらは手を出す余裕なし、です。

 

お、そうそう。最近はAppleの開発者登録なしで、ある程度ローカルの作業ができるんですね。作成したアプリケーションをApp Store等で公開する気がない人でも、とりあえずMacさえあればプログラミングの勉強ができるのでXcodeをインストールして遊んでみるといいと思います。

Python BeautifulSoupでAmazonランキングデータ「本:コンピュータ・IT」をWebスクレイピングした結果(2019年1月19日版)

Amazon売れ筋ランキング「本」→「コンピュータ・IT」

AmazonランキングをPythonのBeautifulSoupを使用してWebスクレイピングしてみました。

以下はコンピュータ・IT関連の書籍のランキングデータを取得した結果です。CSVでファイル出力しましたが、そのままだと見にくいのでちょっと加工しています。

左からランキング順位、価格、書籍タイトル名の並びになっています。  

 

1	¥1,080	iPad仕事術! 2018 (iOS11 最新版)
2	¥816	「超」独学法 AI時代の新しい働き方へ (角川新書)
3	¥1,620	ゲームを作りながら楽しく学べるPythonプログラミング (Future Coders(NextPublishing))
4	¥250	プログラミング超初心者が初心者になるためのPython入門(1) セットアップ・文字列・数値編
5	¥540	10倍ラクして成果を上げる 完全自動のExcel術
6	¥950	iPad仕事術! SPECIAL
7	¥480	人気ブログの作り方: 5ヶ月で月45万PVを突破したブログ運営術
8	¥1,998	ダークウェブ・アンダーグラウンド 社会秩序を逸脱するネット暗部の住人たち
9	¥3,024	機械学習スタートアップシリーズ Pythonで学ぶ強化学習 入門から実践まで (KS情報科学専門書)
10	¥864	一生使えるプレゼン上手の資料作成入門 一生使えるシリーズ
11	¥1,620	AI vs. 教科書が読めない子どもたち
12	¥1,080	MacBook仕事術!2019
13	¥1,404	0才から100才まで学び続けなくてはならない時代を生きる 学ぶ人と育てる人のための教科書
14	¥2,570	PowerPoint資料作成 プロフェッショナルの大原則
15	¥1,944	NEW POWER これからの世界の「新しい力」を手に入れろ
16	¥1,706	Excel 最強の教科書[完全版]――すぐに使えて、一生役立つ「成果を生み出す」超エクセル仕事術
17	¥756	最新クレジットカード&電子マネー&ポイント攻略ガイド
18	¥864	官僚と新聞・テレビが伝えないじつは完全復活している日本経済 (SB新書)
19	¥1,998	Google AdSense マネタイズの教科書[完全版]
20	¥896	いちばんやさしいブロックチェーンの教本 人気講師が教えるビットコインを支える仕組み 「いちばんやさしい教本」シリーズ 

 

ソースコードのサンプルはGitHubにて公開しています。 

GitHub - Loxley991/sample_web_scraping

 

使用したプログラミング言語はPythonです。筆者は以下の書籍で勉強しました。 

独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで

 

 

相変わらずのPython人気

ランキングデータはKindle Unlimitedを含んでいるのでそのままIT系の人気書籍というわけではありませんが、今回もPythonがランクインしています。

Pythonは基本情報処理技術者試験の選択言語にもなりますし、これからも利用者が増えそうですね。

 

プレス発表 基本情報技術者試験における出題を見直し:IPA 独立行政法人 情報処理推進機構

PA(独立行政法人情報処理推進機構、理事長:富田 達夫)国家資格・試験部は、国家試験である「基本情報技術者試験」について、AI人材育成のニーズ等を踏まえ(*1)、出題の見直しを実施しました。具体的には、プログラム言語の見直し(COBOLの廃止、Pythonの追加)、プログラミング能力、理数能力等に関する出題の強化です。これらの詳細をIPAのウェブサイトで公開しました。 

 

ちなみにPythonの書籍は購入しなくても以下のページで書籍版と同内容のチュートリアルが公開されています。(筆者は閲覧性の良さから書籍版を購入しました)  

Python チュートリアル — Python 3.6.5 ドキュメント

Pythonチュートリアル 第3版

Pythonチュートリアル 第3版

 

必要なものはWebでなんでも手に入るのもPythonらしい。 

 

Kindle Unlimited対象外でランクインしていた本で気になったのはこの本。「Google AdSense マネタイズの教科書[完全版]」です。 

Google AdSense マネタイズの教科書[完全版]

Google AdSense マネタイズの教科書[完全版]

  • 作者: のんくら(早川修),a-ki,石田健介,染谷昌利
  • 出版社/メーカー: 日本実業出版社
  • 発売日: 2018/11/20
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る
 

「なぜあのサイトはうまくいっているのか?」と一度でも思ったら読むべし!プロが教える、10年先も安定して稼ぎ続ける50の王道。 

Adsenseなんて面倒なことはGoogleにおまかせな筆者、ブログでマネタイズやらテクニック的なことを考えるより好きなことを書いていたほうがいいと思うのですが、さて。

Python BeautifulSoupでAmazonランキングデータ「本:コンピュータ・IT」をWebスクレイピングした結果(2018年12月28日版)

Amazon売れ筋ランキング「本」→「コンピュータ・IT」

久々にAmazonランキングをPythonのBeautifulSoupを使用してWebスクレイピングしてみた。

以下はコンピュータ・IT関連の書籍のランキングデータを取得した結果である。(CSVでファイル出力したがそのままだと見にくいのでちょっと加工した)

左からランキング順位、価格、書籍タイトル名となっている。 

 

1. \1600 最強のデータ分析組織
2. \1620 ゲームを作りながら楽しく学べるPythonプログラミング (Future Coders(NextPublishing))
3. \1080 iPad仕事術! 2018 (iOS11 最新版)
4. \994 ファミ通App NO.036 Android (Gzブレインムック)
5. \3024 Design Systems ―デジタルプロダクトのためのデザインシステム実践ガイド
6. \1620 AI vs. 教科書が読めない子どもたち
7. \1944 the four GAFA 四騎士が創り変えた世界
8. \1404 0才から100才まで学び続けなくてはならない時代を生きる 学ぶ人と育てる人のための教科書
9. \1512 人生の勝算 (NewsPicks Book)
10. \1080 10倍ラクして成果を上げる 完全自動のExcel術
11. \1998 Google AdSense マネタイズの教科書[完全版]
12. \430 世界一かんたん定番年賀状 2019
13. \250 プログラミング超初心者が初心者になるためのPython入門(1) セットアップ ・文字列・数値編
14. \1500 AI vs. 教科書が読めない子どもたち
15. \1620 すいません、ほぼ日の経営。
16. \2376 独学プログラマー Python言語の基本から仕事のやり方まで
17. \2160 MaaS モビリティ革命の先にある全産業のゲームチェンジ
18. \1728 一生使えるプレゼン上手の資料作成入門 一生使えるシリーズ
19. \950 iPad仕事術! SPECIAL
20. \864 Androidタブレット便利すぎる!230のテクニック 2018改訂版

 

人気のプログラミング言語はPython

このランキングにはKindle Unlimitedのランキングも混在しているため、ランキング順位はKindle Unliitedでの利用数にかなり影響していると思われる。が、相変わらずプログラミング言語はPythonが人気のようだ。

Kindle Unlimited対象外の書籍で人気なのは「独学プログラマー Python言語の基本から仕事のやり方まで」。

筆者もPythonを勉強する際に最初にこの本を読んだが、初学者向けに内容が厳選されていて非常にわかりやすかった。Python以外の技術的情報も記載されており、プログラマーを目指す人が最初に読む本としても最適だと思う。

独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで

 

 

PostgreSQLでデータベースをバックアップ・リストアするメモ

PostgreSQLデータベースのバックアップとリストア

ドットインストールとLPI JAPANの「オープンソースデータベース標準教科書 ― PostgreSQL ― (Ver1.0.1)」を見ながらPostgreSQLを勉強しているのだけど、試してみるのにバックアップとリストアは必須なのでメモを残しておく。主に個人用。

https://cdn-ak.f.st-hatena.com/images/fotolife/L/Loxley/20160329/20160329022134.png

バックアップとリストア

SQLite3だとバックアップはデータベース用のテキストファイルを保存するだけでお手軽なのだが、ビジネスでも利用されるPostgreSQLだとそうはいかない。使用しているデータベースのテーブルとレコードデータをSQLでダンプしてファイル出力し、リストアはそのダンプしたファイルをPostgreSQLに読み込ませる必要がある。

バックアップ

$ pg_dump dbname > dumpfile

リストア

$ psql dbname < dumpfile

リストア補足

DBがない初期状態の場合、DBを作成してダンプファイルからリストアする

$ createdb blogapp
$ psql dbname < dumpfile

勉強用の参考資料

歴史があるだけにPostgreSQLの資料はネット上でも充実している。上記の「オープンソースデータベース標準教科書  PostgreSQL」も良い資料だし、公式資料の日本語訳も非常に参考になる。

PostgreSQL 10.5文書

が、一応体系的に学んでおきたい筆者は下記の書籍を購入しておいた。

これからはじめる PostgreSQL入門

これからはじめる PostgreSQL入門

 

そもそもなぜPostgreSQLの勉強を始めたかというと、先日購入したRuby on Railsの書籍がPostgreSQLを採用していたから。 

現場で使える Ruby on Rails 5速習実践ガイド

現場で使える Ruby on Rails 5速習実践ガイド

  • 作者: 大場寧子,松本拓也,櫻井達生,小田井優,大塚隆弘,依光奏江,銭神裕宜,小芝美由紀
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2018/10/19
  • メディア: Kindle版
  • この商品を含むブログを見る
 

この本、大変珍しいことにSQLite3ではなく、PostgreSQLを使用して説明を記載してあるのだ。書籍タイトル中にある「実践」という文字は伊達ではない。そのかわり環境構築は並の入門書よりハードルが高いし、環境にWSLを選択するとPostgreSQL関連の不具合が出てやっかいなのだが...。

Ubuntuデスクトップのエラーレポートを非表示にしたい

Ubuntuのエラーレポートダイアログが邪魔な件

プログラミングを行う際、なるべく実環境に影響を与えたくないので仮想環境上で作業を行うことが多い。お手軽な動作環境としてはVMware PlayerやVirtual-Boxがある。これらの仮想化ソフトウェアを利用してUbuntu等をインストールして使用するわけだが、Ubuntu16.xxあたりから表示されるようになったエラーレポートがとてもとても鬱陶しくて邪魔である。起動時にエラーレポートをダイアログで表示してくるのだが、だからといって何か改善できるレポートがあるわけでもない。

いいかげん邪魔に思えてきたのでこのエラーレポートを表示しない方法を探してみた。 

https://cdn-ak.f.st-hatena.com/images/fotolife/L/Loxley/20160329/20160329022151.png

エラーレポートを出力しない

$ sudo vi /etc/default/apport
enabled=1
↓
enabled=0

これでエラーレポートの表示を行わなくなった。

apportはエラーレポートの自動生成を行うものらしい。エラーログの削除を行うと一時しのぎにはなるが、根本的な解決とはならないので上記の変更を行う必要があった。

 

補足:仮想化環境

仮想化環境に興味がある方には以下の書籍が参考になると思う。 

Virtual-Boxを使用してUbuntuデスクトップをインストールするとLeft Command+Fキーでフルスクリーン表示の切り替えができ、Mac・Linux環境をスムーズに移ることができるのでオススメ。(Kindle Unlimited対象本 2018年12月15日現在)

VirtualBox/Ubuntuスタートアップガイド (OIAX BOOKS)

VirtualBox/Ubuntuスタートアップガイド (OIAX BOOKS)

 

 

「ゼロからわかるRuby超入門」を手を動かしながら読んでみた

久々にRuby入門書を読了

Ruby初心者というわけではないけれど、実務で使用しているわけではなく、しばらく使ってこなかったので中級者でもない。しかしRuby on Railsで基本的なWebアプリケーションフレームワークを学ぶ上で、ある程度のRubyの学習(復習)は 必要・・・ということで何か一冊Rubyの本を読んで勉強し直してみることにした。

そこで手にとったのがこの本だった。「 ゼロからわかる Ruby 超入門 (かんたんIT基礎講座)」。発売されたばかりの書籍であり、はてブで見たことがある人もいるかもしれない。  

ゼロからわかる Ruby 超入門 (かんたんIT基礎講座)

ゼロからわかる Ruby 超入門 (かんたんIT基礎講座)

 

こんなにわかりやすいRubyの本は今までなかった!

本書は、プログラミングが初めての方へ向けた、プログラミング言語Rubyの入門書です。 本業のRubyプログラマーを続けながら、 一橋大学の社会学部でプログラミングを初めて学ぶ学生へ向けて講義をした筆者が、その経験をもとに、 図を多く使って分かりやすく説明し、かつ実用的で役立つ内容を選びました。 

 

解説が非常に丁寧でわかりやすい本

初学者向けの書籍のためか、かなり丁寧に文法やメソッドの使い方が書いてあり、入門書によくあるページ数の都合で端折るケースがないのがとてもいい。

サンプルソースはそれぞれ独立していて、実際に自分で書いて動かして試すことができる。非常に説明が丁寧で好ましい。

よくある入門書系の悪いケースは「何かを作って学ぶ」系で、ソースの一部分だけを抜き出して説明したり、コードを書かせたりするもの。これだと説明を端折ったことで初学者が気がつかないエラーが出て(初学者が)挫折する原因になることがある。

初学者にとってはプログラミングをする上で必要な環境構築が、最初のハードルだと思う。その点本書では巻末にMacに最新バージョンのRubyをインストールする方法が書かれているのもいい。rbenvでバージョンを切り替えるのはとても便利で実用的であり、面倒なことでも手間を掛けて説明しているところが好印象だった。(Macは購入した時点で既にRubyがインストールされているため、インストール方法の説明は不要なのだが、後々rbenvは使うことになるのでそれを巻末に持ってきているのはいい配慮だと思う)

 

補足

Rubyは1.9の頃勉強しただけで、とある製品向けのテストコードの自動生成ツールを作った程度だ。当時勉強に使用していた書籍は「プログラミング言語 Ruby」であり、さすがに2.4以降の説明が記載された書籍を購入して勉強してみようと思った次第。

プログラミング言語 Ruby

プログラミング言語 Ruby

  • 作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2009/01/26
  • メディア: 大型本
  • 購入: 21人 クリック: 356回
  • この商品を含むブログ (129件) を見る
 

 

RubyはElixirを学ぶのにもいい

個人的に時間をみつけて関数型言語のElixirを勉強しているが、ElixirはRubyの影響を受けているのか、非常に文法がよく似ている。いきなり難易度の高い関数型言語の勉強に取り掛かるより、まずはRubyで勉強してからElixirに入っていくのもいいと思う。 

プログラミングElixir

プログラミングElixir

 

Ruby3では並列実行も取り入れるという計画もあるそうだし、先を見据えた開発が継続されているので(Rubyは)勉強しておいて損はないプログラミング言語だと思う。

Kindle本を誤って購入してしまったので返品してみた

Kindle Unlimited対象の本を購入してしまった

AmazonのKindle Unlimited対象の本を誤って購入してしまったので返品処理を行った。

返品対象の本はRuby on Railsの勉強に使用していたこの本。

Ruby on Rails 5.0 初級?: 経路、アクション、テンプレート (OIAX BOOKS)

この本はKindle Unlimited対象のため、購入する必要はない。10冊までならレンタルのように利用可能だし、購入してもそうそう何度も読み返すわけでもない。必要な時はまた借りればいい。

Ruby on Rails 5.0 初級?: 経路、アクション、テンプレート (OIAX BOOKS)

Ruby on Rails 5.0 初級?: 経路、アクション、テンプレート (OIAX BOOKS)

 

 

すぐに返品する場合

購入直後ならページ内に返品処理を行うためのリンクがあるのでそれをクリックすればいい。その日のうちに返品処理は完了する。注文ページにも「払い戻し」の項目が追加されていて確認できる。

 

購入ページから遷移してしまった場合

面倒なのは購入したページから遷移してしまった場合だ。注文番号を控えてカスタマーサポートに連絡する必要がある。

電話連絡が必要かと思ったが、返品処理はWebページから行うことができた。数十分後に返品処理が行われ、2~3日内に払い戻しが行われるとサポートからメール連絡があった。

それにしてもWebページ上でKindle本の返品処理が見つけにくい。7日以内に返品処理を申し込めばいいので焦る必要はないのだが、どうにも該当のページが見つからないので気が急いてしまうのだ。

 

エンジニアにオススメ 

Kindle Unlimitedには技術書籍も数多く登録されているので、エンジニアにとってもコスパのよいサービスだと思う。(同時利用が10冊までなのが難点かな)

 

Windows10でWSL+Ubuntu16.04を使用し快適なRuby on Rails学習環境を構築する

WindowsでもDockerを使ってみようとDocker for Windowsの情報を調べていたところ、Windows Subsystem for Linuxが使えるという記事を見つけた。

面白そうなので早速導入してみることにした。

WSL(Windows Subsystem for Linux)を導入する

  1. Windows10のスタートボタンから右クリックで設定画面を開く
  2. 「アプリと機能」をクリックする
  3. 「プログラムと機能」をクリックする
  4. 「Windowsの機能の有効化または無効化」をクリックする
  5. 「Windows Subsystem for Linux」をチェックしてOKボタンを押す

と、ここまでやると再起動が行われる。

 

次にWindows StoreからUbuntu16.04をダウンロードすればとりあえずWSL側の準備は完了する。

一通りWSL上で動くDockerを弄ってみたが、結果は微妙。このあたりはやはり素のLinux環境のほうが使い勝手がいい。得るものがあったとすればWSLで動作するUbuntuが非常に快適だということくらい。Windows側とのファイルのやり取りはシンボリックを張ればいいが、運用がちょっと面倒くさい。 

Dockerによるアプリケーション開発環境構築ガイド

Dockerによるアプリケーション開発環境構築ガイド

 

とりあえずWSLでのDocker使用は保留することにして、運用方法を再検討することにした。 

 

Ruby on Railsの学習環境に意外と使える

PythonでWebスクレイピングプログラムを作成し、WebアプリケーションフレームワークとしてDjangoを勉強したが、いまいちここから先のやる気が出なかったので再びRubyの学習に戻ることにした。

一応、目標としては機械学習+Webアプリケーションを作成することなのだが、機械学習もWAFもまだまだ勉強することが多く、完成は当分先になりそうだ。この時間をただ黙々とPythonとDjangoの勉強に当てるのはもったいない。

 

Ruby on Railsの環境構築は書籍を参考に簡単にできる 

というわけで、勉強途中だったRubyおよびRuby on Railsの勉強を再開することにしたわけだ。

上記のWSL環境上に下記の書籍を参考にRuby on Railsの開発環境を構築したのだが、(意外にも)これがまたずいぶんと快適なのである。Windowsの泣き所だったLocal開発環境があっさり構築できてしまった。 

Ruby on Rails 5.0 インストール手順書 (OIAX BOOKS)

Ruby on Rails 5.0 インストール手順書 (OIAX BOOKS)

 

最近の技術書籍はMacでの動作確認だけ行っているものがあり、WindowsだとVM上のLinuxで開発環境を構築するのは非常に手間だった。LocalでDockerを使おうにもWindowsだと結局VM上で作業することになる。SSDならばまだいいが、HDDを使用している会社のPCだとなかなかシンドイ。インストール作業や更新作業に待たされることになる。

 

で、この煩雑な作業をWSL+Ubuntuで省略できるようになったわけだ。

rbenvやbundlerも使えるのでRuby on Railsの学習環境としては申し分ない。Rubyのバージョン切り替えは必須である。書籍と同じバージョンに揃えていたほうがトラブルが少ない。

f:id:Loxley:20181117030419j:plain

WindowsでもLinuxやMac同様のLocal開発環境が構築できるようになったのは大きい。

  • Ubuntu
  • Git
  • Docker
  • Ruby on Rais

が使える上にWSLのコンソール起動は非常に高速でストレスを感じない。何かとトラブルを抱え込むことになるXAMPPをもう使わなくてもよいのだ。しかもWindows側ディレクトリにシンボリックリンクを張って簡単にアクセスできるし言うことなしだ。

今後はこの環境で勉強していこうと思う。(やっぱりフルキーボードでのタイプは快適)

loxley-note.hatenablog.jp

BeautifulSoupでAmazonランキングデータ「本:コンピュータ・IT」をWebスクレイピングした結果(2018年11月2日版)

継続してPythonを勉強中

プログラミング言語「Python」を継続して勉強中である。まだWAF「Django」の勉強は始めたばかりだが、いろいろと興味のある分野に着目して組んでみることにした。何事も興味のあることだと成長が速いものだ。

f:id:Loxley:20181102212109j:plain

というわけで「BeautifulSoup」を利用してWebスクレイピングを行い、結果をDBに登録することを始めてみた。

まずはAmazonでPC関連の売れ行きランキングを取得してファイルに保存することはできた。PC自作系パーツはいつが買い時か悩むことがあるので定期的に取得してデータ化しておこうと思う。数カ月後に比較して価格はどう変わったかなど、いろいろと活用してみたい。

結果はメインブログにて公開中。今後も更新予定。

loxley-note.hatenablog.jp

登録するDBは同じなのだが、プログラミング関係はこちらのブログでやったほうがメインブログを見に来る読者の方に迷惑をかけないかな、と。あちらはゲーマーやPC自作er向けだし。 

 

Amazon売れ筋ランキング「本」→「コンピュータ・IT」

で、こちらのサブブログは技術系寄りなのでAmazonの売れ行きランキングのうち、「本」→ 「コンピュータ・IT」をWebスクレイピングして記録していくことにした。

定期的に取得してプログラミング言語や技術のトレンドを追いたいというのが目的だ。

  

以下は取得した結果である。CSVでファイル出力したがそのままだと見にくいのでちょっと加工した。 

左からランキング順位、価格、書籍タイトル名。

 

1. \2430 人工知能プログラミングのための数学がわかる本
2. \250 プログラミング超初心者が初心者になるためのPython入門(1) セットアップ・文字列・数値編
3. \3024 機械学習のエッセンス -実装しながら学ぶPython 数学 アルゴリズム- (Machine Learning)
4. \2800 機械学習のエッセンス 実装しながら学ぶPython、数学、アルゴリズム
5. \1852 エンジニアのための理論でわかるデザイン入門 ThinkIT Books
6. \1080 わずか5分で成果を上げる 実務直結のExcel術
7. \864 Androidタブレット便利すぎる!230のテクニック 2018改訂版
8. \756 最新クレジットカード&電子マネー&ポイント攻略ガイド
9. \1620 動画2.0 VISUAL STORYTELLING (NewsPicks Book)
10. \1620 AI vs. 教科書が読めない子どもたち
11. \2376 独学プログラマー Python言語の基本から仕事のやり方まで
12. \1620 AI×人口減少 これから日本で何が起こるのか
13. \1500 結果が出る 仕事の「仕組み化」
14. \3611 Houdini ビジュアルエフェクトの教科書
15. \3024 深層学習教科書 ディープラーニング G検定(ジェネラリスト) 公式テキスト
16. \1080 10倍ラクして成果を上げる 完全自動のExcel術
17. \1706 Excel 最強の教科書[完全版]――すぐに使えて、一生役立つ「成果を生み出す」超エクセル仕事術
18. \2680 基礎Python 基礎シリーズ
19. \1944 the four GAFA 四騎士が創り変えた世界
20. \886 人工知能に哲学を教えたら (SB新書)

 

ざっと内容をチェックするとPythonや機械学習の書籍が数多くランクインしていることがわかる。 

基礎Python 基礎シリーズ

基礎Python 基礎シリーズ

 

が、結果が妙なので気になった。その内容は後述する。

 

困ったこと

思ったよりもすんなりWebスクレイピングできていたので調子に乗ってプログラムを修正していたのだが、数日後にプログラムを実行し思わぬことがいくつか起きた。 

 

売り切れ対策

前日まで動いていたプログラムがErrorで終了するようになったので調べたところ、 

    price = el.find("span", class_="p13n-sc-price").string.strip()

どうやらAmazonの売上げランキングでは売り切れの場合、価格を表示しないようだ。このため「None」に対して処理を継続しようとして、Errorが発生していた。

上記の要素はGoogle ChromeだとAmazonの該当する本の欄で右クリック→検証をクリックするとデベロッパーツールが起動して対応するプロパティを表示してくれる。(売り切れの場合はこのプロパティが存在しない)

で、対策としてこれを

    price = el.find("span", class_="p13n-sc-price")
    if price == None:
        #在庫切れ(またはunlimited)処理を記述する 

こうすることで 、在庫切れの処理を記述することになる。

売り切れ時はそもそも属性がないことに驚いたが、海外の「Stack Overflow」を見に行くとだいたいみんな同じことで困っていた。

 

なお、Webスクレイピングのコードについては以下の書籍が参考になると思う。他にはてなブログやQiitaの記事も参考にさせていただいた。

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

 

 

ランキングにKindle Unlimitedの結果が混在する?

もう一つ困ったというか、未だに継続して頭を抱えている問題が「Kindle Unlimited」の結果も反映されているのではないかということ。ランキングを見ると上位にKindle Unlimitedで0円の書籍がランクインしていて技術書籍のランキングとしてはあまり正確なものとはなっていないように思える。できれば紙の本だけの売上げランキングが欲しいのだが...。うーむ。

 

例えば、1位の「人工知能プログラミングのための数学がわかる本」だが、Kindle Unlimited会員なら無料で読めるのだ。そりゃ1位にもなるだろう。 

人工知能プログラミングのための数学がわかる本

人工知能プログラミングのための数学がわかる本

 

 

エンジニア的にはかなりコストパフォーマンスの高いKindle Unlimitedだが、集計という面では思わぬ誤算となってしまった。

 

 

使用しているDB

個人目的なのでDBは「SQLite3」を使用している。Python3を使っている人には馴染み深いDBだが、個人ユースだと馬鹿にできない性能を秘めている。同時書き込みさえしなればじつはけっこう使えるのだ。RDBMSの性能比較サイトをチェックしたが、用途によっては高性能であり、Androidアプリで採用されるはずだと思った。

 

逆に複数の書き込みが集中するケースだとSQLiteは使えない。そのためPostgreSQLも並行して勉強中だ。

[改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)

[改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 (Software Design plus)

  • 作者: 勝俣智成,佐伯昌樹,原田登志
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/09/14
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る
 

ただ、ユーザーに閲覧させるだけならSQLiteで十分だし、ECやWebサービスでもやろうとしない限り本格的なRDBMSは必要なさそうだ。

Macで指定ディレクトリの使用容量を調べる方法

iCloudをMacBook Proのバックアップドライブ代わりに使う

MacBook Pro購入前は外付けHDDを購入してTimeMachineでバックアップを取ろうと考えていたが、iCloudの便利さに感心してしまい、今後のバックアップはiCloudを利用することに決めた。

というのも、後述するDocker環境があまりにも快適だったためだ。 

 

duコマンドでMacの使用容量を調べる

Windowsだと指定ディレクトリ以下の使用容量を調べるのは簡単だが、Macの場合はどう調べるのだろうか。

https://cdn-ak.f.st-hatena.com/images/fotolife/L/Loxley/20160329/20160329022144.png

思いつくのはUnixコマンド。iCloudで同期されるDesktopにバックアップしたいファイル群をコピーして使用容量を調べてみた。

ディレクトリ/Users/username/Desktopで以下のコマンドを実行する。

$ du -hc

f:id:Loxley:20181020004027j:plain

現在の使用容量は91MB。オプションのhはサイズに応じて単位を自動的に表示し、cはトータルの容量を表示する。

iCloudの無料分のディスク使用サイズは5GBであり、書類ディレクトリと合わせてもまだまだ無料分で余裕のようだ。

なお、5GBで容量不足となった場合は有料でiCloudの契約サイズを増やすことができる。

iCloud のストレージプランと料金 - Apple サポート

日本の場合、

  • 50GB 130円
  • 200GB 400円
  • 2TB 1300円 

という料金設定になっていて、筆者の利用用途なら50GBもあれば十分そうだ。月額130円だし、バックアップの手間を考えるとiCloudで同期を取ったほうがお手軽だと思う。

 

Dockerについて

MacBook Pro購入前は、TimeMachineで外付けHDDにバックアップを取っていれば、重要ファイルのバックアップと同時に学習用の開発環境もバックアップが取れると考えていたのだが、その後Dockerを利用するようになり、重要データとローカルの開発環境をバックアップするためのTimeMachineという選択肢は必要性が(かなり)薄れた。

Dockerを勉強し始めの頃はコンテナで書き換えたデータをどう保存するか悩んだのが、職場の同僚のアドバイスで「永続化」をキーワードに検索してみると

 docker run -i -t -v $HOME/testdir:/testdir ubuntu /bin/bash

というコマンドでホスト側のディレクトリにコンテナ側からデータを書き出す設定にすることができた。ホスト側のファイルをコンテナで読むことも可能だ。 

今後はホスト側でソースを編集・保存し、コンテナ側で実行してテストするといった環境になっていくと思う。(フロントエンドの勉強はこれまでどおりローカル環境だが)

loxley-tips.hatenablog.jp

というわけでMac・iOSデバイスで同期バックアップが可能なDesktopディレクトリの存在は非常に便利であることがわかった。 

実質、開発環境がDockerのコンテナ側にあるわけで、わざわざTimeMachine用に外付けHDDを用意する必要もない。

デスクトップMacと携帯用のMacBookを両方持ってる人はさぞや便利なことだろう。ネットに接続さえできればどこでも作業が再開できるので。

Docker for Macをインストールして使ってみる

DockerをMacで使いたい

Linux(Ubuntu16.04 server)でDockerを使い始めたが、ストレージの永続化設定ができればプログラミングの学習環境として使えそうなので、愛用のMacBook Proに「Docker for Mac」をインストールしてみることにした。 

loxley-tips.hatenablog.jp

 

 

Docker for Macを公式から入手する。

www.docker.com

 

ユーザー登録してダウンロード

事前にQiitaの記事をいくつか見たが、実際にダウンロードする際にはユーザー登録が必要だった。ダウンロードするファイルのサイズは500MB超。

 

インストール

ダウンロードしたDocker.dmgをクリックしてインストールする。展開されたDockerアプリケーションをドラッグしてコピーするとインストール完了。

DockerをLaunchpadから起動するとメニューバー上にDockerのアイコン(鯨マーク)が表示される。

アイコンをクリックするとメニューが表示される。

f:id:Loxley:20181013183854j:plain

 

設定と操作

インストールしたDockerはTerminalから利用する。 

https://cdn-ak.f.st-hatena.com/images/fotolife/L/Loxley/20160329/20160329022134.png

$ docker version

を実行するとバージョンは18.06であった。

メニューのPreferences→AdvancedをクリックするとCPU、メモリ、Swap等の設定項目があるが、とりあえずデフォルトで使ってみる。まだコンテナの複雑なやらないだろうし、そういった設定は慣れてからやろうと思う。

 

nginxを使ってみる

まずはWebサーバーのnginxで試してみることにした。 

https://cdn-ak.f.st-hatena.com/images/fotolife/L/Loxley/20160329/20160329022133.png

Terminaから以下のコマンドを入力する。 

 $ docker run -d -p 80:80 --name web-nginx nginx

 で、Google Chromeで http://localhost にアクセスするとWebサーバーのnginxが起動していてWebページが表示された。

 

ひとしきり動作を確認したら以下のコマンドでコンテナを停止し、

$ docker container stop web-nginx 

 

不要になったコンテナを削除して、

$ docker container rm web-nginx 

 

Dockerイメージも削除する。

$ docker image rm nginx 

 

さて、次は開発環境にするためにストレージの永続化設定を調べないと....。

 

ちなみに、Linux環境でのDockerの使い方は以下の書籍を参考にした。 

Docker実戦活用ガイド

Docker実戦活用ガイド

 

 


  • 当ブログは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。
  • 当ブログ記事の2ch系まとめサイトへの無断転載を禁じます。
  • 投稿した記事内容は私的なものであり、所属する組織・団体に関連性はありません。
  • 投資にはリスクが伴います。利益を得る反面、損失もありえます。投資活動は自己責任で。

(C)LOXLEY-TIPS