Webエンジニアの開発記

Webエンジニアの開発記録です。Java,SAStruts,jQuery,AmazonWebService,マッシュアップ。

GCPの「Compute Engine」と「App Engine」の違い

Compute EngineはIaaSであり、App EngineはPaaSである。 アプリ開発者の視点から Compute EngineはOS・ハードウェア構成のレイヤーから選択できる。App EngineはJava、PHP、Pythonなどを選択すると、インフラは自動でGCP上に構成される。(後はアプリをデプ…

業務システムのクラウド開発環境 GCP,Java,Spring

再度就職することになり、次の案件の面接を受けました。常駐先は横浜。海・ダイビングが好きなので、東京と違い、すぐ海が見える横浜はテンションが上がります。 さて、面接ではこのようなキーワードが出てきました。 Google Cloud Platforms Docker Jenkins…

Servermans@VPS に redmineはインストールできないです

Servermans@VPS に redmineはインストールできなかったです。 Redmine 3.2をCentOS 7.1にインストールする手順 | Redmine.JP Blog この中段に PassengerのApache用モジュールのインストール というのがありますが、それができないからです。 なぜインストー…

wikipediaの中古ドメインを探したい。

wikipediaの中古ドメインを探したい。 結局何がしたかったかというとコレ。 wikipediaからリンク入ってるドメインは、 良い運営がされていた可能性が高い。 だからwikipediaからの被リンクはnofollowでも、 ドメインとしての価値は高いと思います。 ゆえに、…

期限切れドメインの取得可否チェックの続き

ドメインの取得可否チェックだけなら、 別に内容まで取得しなくてよい。 URLに接続してみて、そのステータスコードを判定すればいいだけ。 URLへのつ接続は、下記を使用する。 URLConnection (Java Platform SE 6) openConnection メソッドを呼び出すことに…

発リンク先の発リンク取得の残課題

課題1 致命的 2階層以上指定するとXPathExpressionExceptionで落ちる。 解析するDocumentがnullだから落ちている。 nullチェックで回避できそう。 ↓ できた。 課題2 改善 結果リストに重複あり。 課題はあるけど次に行きたい。 結果リストのドメイン生存確…

再帰的に発リンクを取得しようとしたら、java.util.ConcurrentModificationException

全く見たことがないException見たらワクワクしますね。 新しいことやってるな~ っていう気分になります。 ConcurrentModificationExceptionって出たから、 「おっ?」って思った。 と思ったらなんのこっちゃあらへん、 java.util.ConcurrentModificationExc…

リンク先を取得する。階層を指定して。

昨日でとあるURLを指定して、 そのURLの発リンクを取得するのはできた。 1 今日は上記で取得した発リンクのリンク先から、 さらに発リンクを取得したい。 ↑ できた。 実験台「http://www.linksyu.com/p25.htm」に対して、 そのページの発リンク数は20個だっ…

取得可能なドメインのステータスコード

HTTP Status-Code 500:内部サーバーエラー。

期限切れドメインの取得可否って何でチェックできるのかな?

URLにリクエストを送って、 HTTPステータス・コードで判別するんじゃないのかな~? HTTPステータス・コードを取得しWebページの存在を確認するには?[C#、VB] − @IT まずは実際に期限切れドメインを見つけて、 それにリクエスト送ってみて、 どんなレス…

SAStrutsプロジェクトで確かにJARはあるのにjava.lang.NoClassDefFoundError

SAStrutsプロジェクトで確かにJARはあるのにjava.lang.NoClassDefFoundErrorが出て、 困ってしまいました。 何度ビルドし直してもダメ。 コンパイルエラーも出ていない。 原因はJARの置き場所でした。 WEB-INF下に置かないといけないみたいです。 それで解決…

JSZipでZIPの中身のファイル名を日本語にできない。

JSZipでZIPの中身のファイル名を日本語にできない。 どうすればいいのだろうか。 回避策としては、 ファイル名、別に日本語にせんでええやん。 って話です。 数字かローマ字かでやってもらおう。 仕事現場ではさ、要求全部飲み込んでたら、 いくら工数あって…

JSZipはfunction fileではなくfunction add を使うべし。

・なぜか zip.file() を呼ぶとエラーになる。 なぜ? ・zip.file(i + ".txt", "aiueo"); にしてみた。 でもやっぱり動いていない。 第2引数が悪いわけじゃないみたい。 ・そもそもファイルをインポートできてないのか? いや、var zip = new JSZip();のとこ…

JavaScriptでできることを、いちいちJavaではしたくないよね。

Strtusになれてくると、 ちょっとしたアプリでもJavaで書こうとしてしまいます。 でもちょっとまった。 JavaScriptでできることなら、 絶対にJavaは使いたくないよね。 今、ファイルを読み込んで、 別のファイルの内容で置換するっていうアプリ作ろうとして…

中村修二さんの怒りのブレイクスルー ―常識に背を向けたとき「青い光」が見えてきた 読みましたか?

通勤中に読んでいます。 怒りのブレイクスルー ―常識に背を向けたとき「青い光」が見えてきた いい本ですね。 中村修二の思いのたけが伝わってきます。 私も会社で言われたことばっかりやるんじゃなくて、 お客からお願いされたシステム開発するんじゃなくて…

プログラミングは常に触っとかな忘れる。

プログラミングは常に触っとかな忘れますね。 SAStrutsでどうやって画面作るか、 もう忘れてしまった。 SEとして設計ばっかりやってたら、 そりゃ自然と忘れるよね。 どっちがいいのやら。

また開発したくなってきました。

前回更新したのが約1年前ぐらいでしたか。 あの後現場を2つ程変わる中で、 AWS熱も冷めていった。 今はプログラミングはしていなくて、 某教育系の業務システムの設計をしている。 やっと詳細設計を終える段階。 そうなってくると、 eclipseなんかも触りたく…

Product Advertising APIのTimestampとかSignatureとかは不要

前回の記事で、頑張って各パラメータについて調べました。 後はTimestampとSignatureだなって思っていたのですが、 それについて調べているうちに、Amazonが用意してくれている、 SignedRequestsHelperというクラスがあることが判明。 自分で面倒なことをし…

JavaでProduct Advertising APIのリクエストを作る

では、Signed Requests Helperではなく、 JavaでProduct Advertising APIのリクエストを作っていきましょうね。 アマゾンの本のジャンルから、 箱根駅伝というキーワードで商品を検索するリクエストは http://ecs.amazonaws.jp/onca/xml?AWSAccessKeyId=AKIA…

Product Advertising APIのItemSearchでキーワードをもとに商品検索

アフィリエイター向けのOperationと言えば、 まずはキーワードから商品を検索するItemSearchです。 丁寧な解説はこちら↓↓ 商品検索(ItemSearch) - Amazon Web サービス 覚えておきたいパラメータは2つ。 (必須)商品カテゴリーの指定→ SearchIndex (任意…

Product Advertising API(リンク作成用API)でアフィリコード取得 2日目

昨日の記事の最期に紹介したリンク先のさらにリンク先、 アマゾンの↓このヘルプサイトが役に立ちます。 Signed Requests Helper - Amazon Product Advertising API 必要なのは、下の画像でいうところの赤字の1~3。 1 と 2 は、AWSのアカウントを作成し…

Product Advertising API(リンク作成用API)でアフィリコード取得

昨日まででなんとか、あるサイトのHTMLを取得して、 DOM構築して特定のキーワードを抜き出すことができた。 次はそのキーワードを元に、 楽天やアマゾンのアフィリコードを取得したい。 とりあえずアマゾンかな? アマゾンのアフィリコード取得には、Product…

JavaでJTidy + XPathを使ってAタグのhref属性を取得してみた。

参考文献から。 ・まずはXPathクラスのAPI↓ javax.xml.xpath (Java Platform SE 6) ・↓↓IBMのXPathの解説 Java XPath API いかにXPathを使わないとなると、DOMの解析が面倒か分かる。 未だにうちの現場では面倒な方法でDOMの解析をしていた。 あーやれやれ。…

ヤフーよりも簡単なHTMLをJTidyでDOM解析。

ヤフーのHTMLははっきり言って読みにくいです。 なのでまずはJTidyに慣れるために、 動作確認の意味も込めて、もっと簡単なHTMLを解析しましょう。 HTML サンプル で検索してでてきたのが↓↓こちら。 http://www.html-cool.com/samples/tryhtml_basic.html 上…

JTidyはSAXじゃなくてDOM

前回SAXとDOMの違いを調べてみました。 昨日、JTidyでヤフーをDOM解析しようとしていたので、 JTidyはSAXとDOMのどちら?と思って調べたら、DOMでした。 JTidyの日本語サイトに書いてあること、 自分の直面している問題に対して、どストライクなんですよね。…

DOMとSAXは違う。

DOMとSAXが違うということは、薄々感づいていたのですが、 意識することなくいろんなサイトのソースをコピペして、 スクレイピングしようとしていました。 ですが、やはりDOMとSAXの違いというのは、 小さくなさそうなのでちょっと調べてみました。 ・技術者…

JTidyを使えばDOMが構築できるらしい。

DOMが構築できない問題。 はてなブログやヤフーが厳密なXMLの形式に沿っていなくて、 SAXParseExceptionが投げられてしまう。 別のパーサーを見つけた。 JTidyっていうやつ。 最高の参考文献はIBMさん。 IBMさんの技術文献はどれも優れていますよね。 Javaの…

ヤフーもDOM解析しようとしたら、SAXParseException。

あららです。 ヤフーさんでも、DOM解析に失敗してしまいます。 はてなブログさんだけならまだしも、ヤフーもダメってなると、 この↓↓自分のやり方がまずいんでしょうね。 DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); domFac…

はてなブログをDOM解析しようとしたら、SAXParseException。

あろうことか、本ブログをDOM解析しようとしたら、 SAXParseExceptionが発生してしまい、 DOMを構築できませんでした。 ↓↓ 取得したレスポンスをInputStreamとして、 そのままDocumentBuilderのparseメソッドに渡しただけです。 エラーログは、 「要素タイプ…

XML解析では、絶対にXPathを使いたい。

XPathっていうW3Cが策定した、 XMLを簡単に解析する仕様があります。 スクレイピングにおいて、一番難しいのは解析かなと思うのですが、 XPathを使えばむちゃくちゃ解析が楽になると思いました。 私は出向先の現場でもレスポンスがXMLだったりするのですが、…