aircolor memolog

Web制作・テクノロジー、たまに旅行記

Z.com WebHostingでhtmlをPHPとして動かす方法

Qittaに掲載するボリュームでもなく、細かい問題ではあるけどすぐに忘れてしまうので、備忘録として書く。
Z.com WebHostingでhtmlをPHPとして実行したい場合、 他ブログのようにadd-typeで記述指定しても動作しない。公式に問い合わせた所、

PHPの提供方法がモジュールではなくlsapiを利用しておりました為、 使用できないのは x-httpd-php のタイプとなり、下記の記述を いただく事で.htmlでphpを利用可能でございました。

ということで、htaccessに必要な記述は以下の通り。

AddType application/x-httpd-ea-php71-lsphp .html

phpバージョン(php71)は利用したいバージョンを記述

htmlをphpとして動かす機会はめっきり減っているが、Documentがないのでいざという時に結構困る。公式にも書いてほしいなぁ。

書評:「Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド」を読んだ

会社で参考書を購入した際に「読み終わったら書評書いてね」と言われたので、しばらくぶりに書評などを書いてみる。

2017年発行の書籍で購入したのは今年の9月。発行から1年経っているのだが、評判もよく、情報収集・解析にも興味があったので購入しました。

タイトルの通り「クローリング&スクレイピング」に特化した内容で、事前にある程度のPythonの基礎知識が必要。単純にクローリング&スクレイピングの道具として使うだけなら「Pythonの基礎知識」の部分だけでも事は足りるが、やはり別にPython入門本などで学習した上で見ることを推奨。

第1章から第2章あたりまでがスクレイピング・クローリングの基礎知識、Pythonの文法、基本的なスクレイピング手法の紹介。第3章から第6章はbeautifulsoup、scrapyなどの強力なライブラリやフレームワークを使った、実務にも使える実装手法を紹介している。

所感

Pythonを使うという手法に縛られず、スクレイピングとクローリングに標準を合わせた基礎知識と実践手法を知れるので、網羅的に知りたい人にオススメ。特に後半のScrapyについての説明は実用性が高く、いろいろな情報取得に使える!と思わせられる。コードサンプルも多く、手を動かしながら学習できるので読み応えありです。

推しポイント

習得したデータの活用方法もしっかり紹介している点が素晴らしいです。特に良いと思ったのはBigQueryの利用・地図データの可視化・OpenCVによる顔画像の抽出、AWSでの利用など。収集したデータで何ができるかを知れるので、そのあたりが曖昧にしか分からない人にとって、よいモチベーションを与えてくれると思います。

こんな方にオススメ

  • スクレイピングやクローリングに興味がある
  • 情報収集・解析をしたい
  • サービスを作るに当たって、必要なデータを収集したい
  • 収集したデータをどうやって使うか迷っている

データ収取・解析の際に手元に置いておきたい一冊です。

ionic3(cordova) & Android Studio3.0.xでBuildがうまくいかない時の対処

こういったエラーへの細かい対処ついてはaircolor.hatenablog.comで書いてます。知見やまとめはqittaに。 で本題。ionicを使ったハイブリッドアプリの制作を行っていたのですが、AndroidのBuildでちょっと問題が発生したので、その対応策を紹介。

検証環境(2018.01.22)

iOS: 10.12.6
cordova (Cordova CLI) : 7.1.0
ionic CLI : 3.19.0
Android Studio : 3.0.1

実行時・エラー内容

Android Studioで"Build APK"を行った時に直面。

Unable to resolve dependency for ':@debug/compileClasspath': Could not resolve project :CordovaLib. Could not resolve project :CordovaLib.

CordovaLibに対してのエラーが何回も出ました。

Unable to resolve dependency for ':@debug/compileClasspath': Could not resolve project :CordovaLib. Could not resolve project :CordovaLib.
Required by: project :
Project : declares a dependency from configuration 'debugCompile' to configuration 'debug' which is not declared in the descriptor for project >:CordovaLib.

〜以下何回も同じエラーが出る

対処方法

cordova-android@6.3.0では新しいgradleへの対応が済んでいないためこのような問題が起きる模様。StackOverflowやForumではAndroid Studioのバージョンを2.x系に下げるとか、gradleのバージョンを下げるとかの解決策が多かったのですが、最終的にcordova-androidのPlatformバージョンを最新のものにアップグレードすることで解決しました。

 // latestではなく、バージョン指定を明示して行わないとダウンロードできない(2018.01.22時点)
 ionic cordova platform update android@6.4.0

公式Blogにも3.0についての言及があります。ただ、まだ正式にダウンロードができないところをみると、他のプラグインの動作の保証が若干心配ですが。 cordova.apache.org

参考にした記事

【 jQuery】レスポンシブに対応した無限ループスライダー

レスポンシブに対応した簡易の無限ループスライダーが欲しかったのですが、意外と使えそうなサンプルコードが見つからなかったので、勉強かつ調査を兼ねて実装してみました。leftやrightをsetIntervalで回してDOMをアニメーションさせる旧来の方法でなく、今らしくtransformを使ったアニメーションで実装しています。

続きを読む

【紫達成】2017年度SFC修行解脱まとめ

私ことkgsiは旅行が好きなのですが、勤め先の代表と友人K(以下大僧正)の甘言に乗り、2014年にJALの上級会員ことJALグローバルクラブに入会していました。 しかし、飛行機好きを名乗るにはANAも取るべきでは…という想いと、弊社取締役が昨年JGC入会してリーチが無くなってしまった喪失感と、再びの大僧正から誘いがあったのが決め手となり、ANAの上級会員ことSFCを目指すための修行を敢行する運びとなりました。

続きを読む

2016年に始めるとご利益3倍?四国お遍路始めます

f:id:kgsi:20161202091503p:plain:w300

ファンの方々ならタイトルだけでわかると思いますが、またまた「水曜どうでしょう」リスペクト企画発動です。 2013年の「ベトナム1,800km縦断旅行」、2016年GWのリスペクト企画「ASEANサイコロの旅」と、不定期に行っている旅行企画「e-birdどうでしょう」ですが、ついに四国八十八ヶ所シリーズ」にも手を出すこととなりました。

続きを読む

【jQuery】シンプルなフィルター機能付きギャラリー実装

長らく更新を止めていましたが、久々に投稿。 仕事この数ヶ月で色々な技術に触れましたが、やっぱり基礎は大事だねという問題にぶつかりまくってました。 なんで、ここしばらくは新しい技術を追いかけ過ぎず、基礎を積み重ねています。

フィルター(絞込)機能付きギャラリーの実装

基礎学習の一環としてこういったサンプルを実装・投稿していきたいと思います。今回はタイトル通り、よくあるフィルター(絞込)機能付きギャラリーの実装サンプルを紹介します。

See the Pen Simple Filter Gallery by Shinichi Kogiso (@kgsi) on CodePen.

処理の流れ

  1. class:filtermenuのli要素をクリック
  2. liに設定されたdata-fliterの値を取得
  3. class:postと併記したclassと一致するかチェック
  4. 一致したclass:postのみを表示

メニューのdata値をclickで取得し、そのdata値とclass:postと併記されているclassとを比較して、一致したpostのみを表示するというシンプルなロジックとなります。

表示とフィルター処理ロジックを分離

メンテナンスや、機能拡張していく際にひとまとめの処理を編集していくのは効率や見通しが悪いので、それぞれのロジックを分離して作成します。今回はES2015の復習も兼ねてるので、Class構文でFilterGalleryを作り、実装しています。各メソッドの説明は以下の通り。

  • 初期値の格納、イベントの設定
    constructor()
  • class:filtermenuのli要素がクリックされた際のメソッド
    onClickFilterMenu()
  • フィルターメニューの状態を更新させるメソッド
    updateMenu(targetFilter)
  • ギャラリーの表示状態を更新させるメソッド
    updateGallery(targetFilter)

※引数 targetFilterには、data-filter値で取得した値をセット