戦略

1. git hub commit
2. aws route 53複数
3. mysql -> csv
4. mysql -> S3
5. s3-> mysql …. 9/23
5-2. SSL
6. Travis CI
7. Capistrano
8. Ansible
9. Mackerel …….. 9/24
10. ELB
11. laravel bootstrap
12. laravel TinyMCE …. 9/25
13. Vue.js ….9/27
14. sketch …9/28
15. mysql設計書 9/29
16. シェルスクリプトによるbatch …9/30
17. 設計(TR,概念図)
18. struts …10/1
19. TD …10/2
20. Fluentd / Embulk …10/3
21. 設計(TR,概念図)
22. Dancer …10/4
23. 提案書作成 …10/5
24. Zabbix
25. Oracle
その他: photoshop, illustrator、python, cdn, postfix, redmine

よし!行けるかな。。。。 いや、これで行ってみよう!

トラッキングcookieの仕組み

1. javascriptのタグからアクセスしてきたユーザーにcookieをsetする (例えばFXのページ)
2. 別のページをアクセスした場合に、1でsetしたcookieを読み込んで、1に関連する広告を配信する

< async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></ >
<!-- auction -->
< class="adsbygoogle"
     style="display:inline-block;width:728px;height:90px"
     data-ad-client="ca-pub-5909906903001543"
     data-ad-slot="6431329951"></ins>
< >
(adsbygoogle = window.adsbygoogle || []).push({});
< >

まず、広告を出しているページが何のページか理解できないといけない。
pythonで解析できるようにしたい。

titleはbeautiful soupで解析する。

import requests, bs4
res = requests.get('http://hpscript.com/blog/')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, "html.parser")
print(soup.title)

[vagrant@localhost app]$ python3 index.py
ソフトウェアエンジニアの技術ブログ – ABCD: Always Be Coding and Design

1. javascriptからpython fileにurlをpostしたい。
2. titleをpythonで形態素分析したい。
いけるか?

adsenseのタグの中身を解析しよう

まず、アドセンスのタグの中身を見ていきます。adsbygoogle.jsを読み込んでますね。

script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"
<!-- ddd -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-5909906903001543"
     data-ad-slot="8015520319"
     data-ad-format="auto"></ins>
script
(adsbygoogle = window.adsbygoogle || []).push({});
script

insタグの中身↓
class=”adsbygoogle”
style=”display:block”
data-ad-client=”ca-pub-5909906903001543″
data-ad-slot=”8015520319″
data-ad-format=”auto”

はInsertの略で、で囲まれた部分が後から追加された部分
ad-clientとad-slotがユニークな値のようです。

adsbygoogle.jsの中身をみていきましょう

ああああああああああああああああああああああああああああああああああああああああ

AWS https通信で位置情報を取得する

AWSに入ります。

__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/
21 package(s) needed for security, out of 31 available
Run “sudo yum update” to apply all updates.

cyberduckでも入ります。

index.phpをつくります。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>位置情報取得サンプル</title>

  <script>
    // Geolocation APIに対応している
    if (navigator.geolocation) {
      alert("この端末では位置情報が取得できます");
    // Geolocation APIに対応していない
    } else {
      alert("この端末では位置情報が取得できません");
    }

    // 現在地取得処理
    function getPosition() {
      // 現在地を取得
      navigator.geolocation.getCurrentPosition(
        // 取得成功した場合
        function(position) {
            alert("緯度:"+position.coords.latitude+",経度"+position.coords.longitude);
        },
        // 取得失敗した場合
        function(error) {
          switch(error.code) {
            case 1: //PERMISSION_DENIED
              alert("位置情報の利用が許可されていません");
              break;
            case 2: //POSITION_UNAVAILABLE
              alert("現在位置が取得できませんでした");
              break;
            case 3: //TIMEOUT
              alert("タイムアウトになりました");
              break;
            default:
              alert("その他のエラー(エラーコード:"+error.code+")");
              break;
          }
        }
      );
    }
  </script>
</head>
<body>
  <h1>位置情報取得サンプル</h1>
  <button onclick="getPosition();">位置情報を取得する</button>
</body>
</html>


wow, 緯度経度が取れました。※渋谷にいます。
httpsならいけるんですね。
リダイレクトで取得するとすると、地域はやはりipアドレス + geo liteでしょうね。
問題は年齢、性別をどのように取得するか。
まずは、アドセンスの仕組み解析からでしょうか。
アドセンス、ASPのタグの中身を見ていきましょう。

facebook広告のセグメント

facebook広告のセグメントを見てみます。

基本設定
– 地域、年齢、性別、言語
1.地域・・・市区町村、指定した場所から半径〇km
いまその地域にいる人、その地域に住んでいる人、その地域にいた人
2.年齢・・・13歳~65際まで 1歳単位で設定可能
3.性別・・・男性、女性、両方(男性、女性すべて)
4.言語・・・国籍もセグメント可能

詳細ターゲット ~利用者層~
5.恋愛対象
6.交際ステータス
7.学歴
8.職歴
9.子どもの年齢
10.世代
11.ライフイベント

詳細ターゲット ~興味・関心~
スポーツ・アウトドア(アウトドア活動、スポーツ)、テクノロジー(コンピュータ、家電・エレクトロニクス)、ビジネス・業界(ビジネス、中小ビジネス、小売業、広告、オンライン、営業、マネージメント、マーケティング、起業、エンジニアリング、デザイン、経済、ファイナンス、不動産、建設、建築、医療、看護・介護、科学、航空、農業、銀行サービス、高等教育)、フィットネス・ウェルネス(エクササイズ、ジョギング、フィットネス、フィットネスクラブ、ダイエット、栄養、ヨガ、ズンバ、ウェイトトレーニング、ボディービルディング、瞑想)、レジャー施設(音楽、読書、映画、テレビ、ゲーム、ライブ・イベント)、家族と交際関係(友情、出会い関連、ウェディング、結婚、子育て、母親、父親、家族)、買い物・ファッション(衣料品、ファッションアクセサリー、ショッピング、美容、玩具)、趣味・アクティビティ(ペット、ホーム・ガーデニング、乗り物、旅行、政治・社会問題、時事)、食品・飲料品(飲料品、お酒、食品、料理、クッキング、レストラン)

業界に特化した検索エンジンをつくろう

googleの検索エンジン
-> crawlerが巡回
-> DOMを取得して配列に保存する

自作検索エンジン
-> crawlerが特定サイトを巡回
-> テキストを取得して、mongoDBに保存?

どういうアルゴリズムでリスト表示するか?
->最新のデータ
->クリック数

検索フィールド
->bodyに検索文字を含んでいた場合?

→データセットをmongoDBから取り出して、それをソートし直すのはいささか効率的でないような気がする

– タイトル、テキスト、リンク先を表示する。

そういえば、Googleにソートってないですね。
->レコメンドをどう出すか?

とりあえず、mongodbに入れるところから、始めよう。pug, sassも使いたい。
[vagrant@localhost freelance]$ mongo
MongoDB shell version: 3.2.20
connecting to: test
Server has startup warnings:
2018-07-21T18:36:29.147+0900 I CONTROL [initandlisten]
2018-07-21T18:36:29.148+0900 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
> show dbs
app 0.078GB
local 0.078GB
mydb 0.078GB

iosでIFRSコンバーターアプリを作ろう

IFRSの特徴
◆原則主義(プリンシプル・ベース)
IFRSは、財務報告に関する原理・原則を明らかにするとともに、例外規定は極力認めず、その解釈や運用は、企業の 判断に任せる考え方です。一方、日本基準は、詳細で具体的な規定や数値基準を設ける対照的な「細則主義(ルール・ベース)」と云う考え方で、制定されています。

◆資産・負債アプローチ
IFRSは、資産・負債の評価とその差額としての純資産、つまり、財政状態計算書に計上されている財産価値を重視しています。その財産価値の、会計期間の期首から期末までに増加した(または減少した部分を利益(または損失)として認識します。利益算出の考え方を「資産・負債アプローチ」と云います。そしてこの認識された利益は「包括利益」と呼ばれています。
従来の日本基準では、収益から費用を差し引いた利益を重視し、その計上された純利益の結果、純資産が増加すると云う考え方で、これを「収益・費用アプローチ」と云います。

◆公正価値アプローチ
IFRSでは、将来の経済的便益の提供能力の算定と云う考え方から、公正価値による評価が重視されます。公正価値は、「・・・・・当事者間で資産が交換され、負債が決済される価額」と定義されますが、平たく云えば、「時価」を指しますが、IFRSでは、資産や負債の公正価値変動額が「包括利益」の一部を構成しますので、「資産・負債アプローチ」と資産・負債の公正価値評価と包括利益の算定には密接な関係があります

◆その他、財報告における経営管理区分(セグメント)を重視した「セグメント・アプローチ」(日本基準でもセグメント情報に採用済み)、財務情報の比較可能性の重視、形式より実質(実態)を優先して、企業の経済的実態をを明らかにしようとしている考え方等がIFRS基準書全体に共通する特徴となっています。

為替レートは?
IFRSでは、まず機能通貨を決定し、機能通貨による帳簿記入を行う
-売上に関連する通貨
財貨及び役務の販売価格に大きく影響を与える通貨
競争力及び規制が財貨と役務の販売価格を主に決定することになる国の通貨
-仕入に関連する通貨
労務費、材料費や財貨や役務を提供するためのその他の原価に主に影響を与える通貨

外貨建貨幣性項目:決算日の為替レート
取得原価で測定される外貨建非貨幣性項目:取引日の為替レート
公正価値で測定される外貨建非貨幣性項目:公正価値で測定された日の為替レート

外貨建取引は、取引日における当該外貨と機能通貨の間の換算は、原則、取引日レートで行い認識します。
なるほど、為替レートはAPIで取得してもダメということですね。

view controller と navigation controllerを配置していきます。

ヤフオクをつくろう 機能要件

まず必要な機能とDBのテーブル

ユーザー(ユーザー名、住所、連絡先、)
出品(商品名、説明文、最低価格、即決価格)
入札(入札者、入札価格)
落札(落札者、落札価格)
評価(評価対象者、評価)

ユーザー登録、出品、評価はいつものパターンですが、問題は入札のところですね。
順番につくっていきましょう。
まずは、残り時間からつくっていきます。

翻訳のアルゴリズムは?

前:ルールベース翻訳や統計翻訳
->文法や単語などのルールを一つ一つ登録して翻訳

後:ニューラルネットワーク
->1文をバラバラにして単語レベルで翻訳をするのではなく、1文をひとまとめにして翻訳

そうなのか、VoiceTraとかも統計翻訳の機械学習かと思ってた。。
NICT(情報通信研究機構)
http://www.nict.go.jp/
ここは興味ある。金融庁以来。

しかし予算500億も使ってんのかよ。。コロプラの売上高と一緒じゃんか。。ちくしょー羨ましすぎる。。
https://www.nict.go.jp/pdf/business-report-2016.pdf

anlyticsを設計していく2

必要項目: language, country, city, browser, operating system, service provider, operating system, service provider, screen resolution

例えば、countryをクリックすると、GetパラメーターにselectedDimensionが追加される。
&overview-dimensionSummary.selectedDimension=analytics.country/

Language – Country – City はIP情報か?
IP情報は、$_SERVER[‘REMOTE_ADDR’];で取得できるとして、それをどう紐づけるかが問題。。。

>IPアドレスの割り振りはIANAにが一元管理しており、世界レベルで階層構造(組織)があり、階層ごとにそれぞれ管理が行われています。(IPv4,IPv6)
なんだと???????

IANA(ICANN):全IPアドレスを地域レジストリや一部企業に割り当てしている
地域レジストリ:全世界を5ブロックに分け、地域レジストリを配置している。地域レジストリは、IANAより割り当てされたIPアドレスを国別レジストリに再割り当てしている。また、WHOIS情報の管理も行っている。
国別レジストリ:国や地域でレジストリが配置されている。(一部は企業もあり)地域レジストリより割り当てられたIPアドレスをプロバイダや企業に再割り当てしている。またWHOIS情報の管理も行っている。

IPv4 Address Space Registry
http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xhtml
Internet Protocol Version 6 Address Space
https://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xhtml

うお、吐き気がしてきた。。
000 IANA – Reserved(予約済み) whois.arin.net
001 APNIC アジア/太平洋圏 whois.apnic.net
002 RIPE NCC ヨーロッパ、中東、中央アジア whois.ripe.net
003 General Electric Company ゼネラル・エレトリック社(アメリカ) whois.arin.net
004 Level3 Communications Inc. レベル3コミュニケーションズ社(アメリカ) whois.arin.net
005 RIPE NCC ヨーロッパ、中東、中央アジア whois.ripe.net
006 Army Information Systems Center 軍情報システムセンター whois.arin.net
007 ARIN 北アメリカおよびサブサハラ等 whois.arin.net
008 Level3 Communications Inc. レベル3コミュニケーションズ社(アメリカ) whois.arin.net
009 IBM アイ・ビー・エム社(IBM社) whois.arin.net
010 IANA – Private Use See [RFC1918] ローカルIPアドレス whois.arin.net ….

現在のIPアドレス:106.***.***.***
->106 APNIC アジア/太平洋圏 whois.apnic.net
そうですか。。。

というか、USのdefence forceばっかりだ。。やばいな、これ。
Army Information Systems Center、DoD Intel Information Systems、DDN-RVN

あれ、そもそも、apnicって何?
https://www.apnic.net/

ip情報は$_SERVER[‘REMOTE_ADDR’]で渡しているので、上3桁を切り抜きたいが。。