from electron 2 web

インターネットのリソースを無駄遣いして検索におけるUXを下げてごめんなさい

圧倒的文章力のNASAでゴミみたいなチラ裏のようなメモを量産してしまい全ての"Web開発者"にごめんなさい

自作曲のコード進行の解説

解説するのはこの曲。ふざけた名前だけど結構まともにな構成になっている。future bassを作るときにコード進行について結構しらべたときに作ったやつ。ふざけた名前だから誰も聞いてくれん。

そこそこ気に入ってる。

BPM150でkeyはCmaj。オリ曲とかCmaj以外で作れん(アホ)

ちなみに作るときにコードのこととか一切気にしなかった。マジで。なんかDAWで音鳴らしてたらできた。サビはカノンはちょっと意識したけどちゃんと解析したらあんまカノンじゃないし。

soundcloud.com

Aメロ(8小節)

f:id:lv7777:20200508214352p:plain

C/F C/E G/D (C|C/D)

C/F C/E G/D (C|C/D)

クリシェっぽさがある。全体的にCという感じ。

クリシェには普通のクリシェ?とベースラインクリシェがあるがこれはベースラインクリシェ。(いろんなサイトによって言ってることがまちまちなので嘘かもしれん)

ライン・クリシェ | SoundQuest

5→1で完全終止。

Bメロ(8小節)

f:id:lv7777:20200508212834p:plain

Fmaj7(Amin)
Emin7
Fmaj7(Amin)
Emin/G→Am7(omit3)→Emin

Fmaj7(Amin)
Em
Dm|Em
F|G

ちょっとA(並行調)を意識した。コードに浮遊感があってfutureっぽさがある気がする。

コードがSD(サブドミナント)から始まってると浮遊感が出るらしいのでそれかもしれん。

Fmaj7がAの成分を含んでいることを考えればセカンダリドミナントで構成されてるのでそれもあるのかな?知らん。

セカンダリードミナントコード|成り立ちとその表記などをわかりやすく解説 | うちやま作曲教室

SD、セカンダリドミナント、Aを意識している、あたりが浮遊感の正体なんだろうねきっと。

2回目はドミナントで終わっていていい感じ。ドミナントで終わる終止は半終止といってサビなどに持っていくときに使用されやすいとか。

楽典:終止

終止の詳細とその種類(全終止・偽終止・アーメン終止・サブドミナントマイナー終止など) | うちやま作曲教室

サビ(16小節)

f:id:lv7777:20200508214724p:plain C C G A F C G A

C C G A F G

カノンっぽさがある。最初のブロックのディグリーコードは(ⅠⅠⅤⅥⅣⅠⅤⅥ)なので後半は4156進行。

第一ブロックが偽終止で最後が完全終止で終わってていい感じ。

最後が6小節で終わってることや、サビの最初がC→Cで繋ぎがC→A#/Cで似ているのも終わらせる感じが無くてBGMとしてポイント高いのではということに気づいた。

間奏(繋ぎ)(8小節)

f:id:lv7777:20200508214538p:plain

C
A#/C
Am
G# | A#sus4→A#

C
A#/C
Am
G# | A#
全体的に借用もしくは同属調転調っぽいことをしているが、ノンダイアトニックコードを知らなかったので解析するのにめっちゃ苦労した。(作ったの自分なのにね)

ノンダイアトニックコードは借用の一つでメジャースケールで組まれているコードの場合同属調のコード(CmajならCmin)を借りてくることができる。

その際にⅢⅥⅦのコードを借用するのをフラット系のノンダイアトニックコードというらしい。(ただし造語なので注意)

フラット系三種のノンダイアトニックコード(同主調マイナーからの借用) | うちやま作曲教室

ノンダイアトニックコードにはほかにもサブドミナントマイナーセカンダリドミナントなどがあるっぽい。セカンダリドミナントは転調に使えそうだなと思った。 先ほどから紹介しているサイト(sakkyoku.info)がめっちゃわかりやすいので全部読破すればつよつよ作曲マスターになれそう。

sakkyoku.info

A#sus4→A#はsus4を解決してますね。綺麗。

あとクリシェっぽいこともしている気がする。Am→G#→A#は456か671進行っぽい。

音作りについて

ピアノの音はNeoPianoでEQでローカットしまくってリバーブ入れまくって爆上げした。(ダンスピアノっぽさがある)。

ベースピアノは普通にFL keys使った。

あとFLEXとsylenth1のsyn flute使った。

プリセット再生機sylenth1は鳴らすだけでクソいい音が出てくるので強い(?)

stemなりプロジェクトファイル欲しければコメントなりDMください

終わり

クリシェの話しかしてねぇなこいつ。どんだけ好きやねん。

関連項目

これは1年前ぐらいに初めてコード解析したときの記事↓

lv7777.hatenablog.com

python3でお型付け

python3から型アノテーション、型ヒントが導入されたのは皆さまご存知の通りだと思うが、型が導入されるまでにはいろいろな紆余曲折があったっぽい。

型が導入されるまでのことは非常に分かりやすいスライドがあるのでこちらを見た方がいいかも↓ https://www.slideshare.net/quintia/python-76118249

python3には複数の型の付け方がある。

普通の型付け

def hoge(foo: int, bar: str) -> str:
    local_val: int = 114514
    return "hyoooo"

関数の引数や返り値はもちろん、変数にも型を強制することが出来る。

変数に型付けするやつはpython3.6以降らしい(まぁ3.6以前のpythonとか見たことが無いけど)

import Listしたり"T"を使うやつもあるけど使ったこと無いのでパス(というか今使う意味ある?) 嘘だった。Listの型を使うにはfrom typing import Listしないといけない。そうしないと下記のようなエラーが出る。

test.py:4: note: Did you forget to import it from "typing"? (Suggestion: "from typing import List")

docstringっぽいやつ

pycharmで見れるっぽい。vscodeだと見れなかった。

def hoge(foo, bar):
    """
    hogeという関数はfugaをする。
    :param int foo:
    fooな説明
    :param str bar:
    barな説明
    :return:
    こんな値が返ってくる
    """
    return "hyoooo"

linterとかその辺

pep8・・・pythonの標準コーディング規約。pip3 install pep8とかすればpep8のlintが出来る。 flake8・・・pep8のlinter。pyflakesも同梱されてるっぽい。

pep8やflake8の他にもpylintとかpyflakesとかとかあって以下のブログが詳しい。 https://blog-ja.sideci.com/entry/python-lint-pickup-5tools

mypy・・・設定した型の整合性とかを見てくれるツール。 個人的にはpython3で型を付けたらこれ入れるのが必須だと思う。

ということで個人的なおすすめはflake8+mypy(+vscode)。

flake8には.flake8でeslintみたいにルールを設定できる。 mypyはmypy.iniで追加の型(例えばnumpyのnd.arrayを返したいとか)を設定できる。

tips的なsomething

  • 何も返さない関数に返り値を付けたい!ってかつけないと怒られる。

こんな感じでNoneをつければよい

def aaa() -> None:
    dosomething()
  • mypyでnumpyのarrayを返したい! こんな感じでmypy.iniに書いた上でnd.arrayを返す
[mypy-numpy]
ignore_missing_imports = True
import numpy as np
def somthing(aaa: str) -> Tuple[np.ndarray, List[str], np.ndarray, List[str]]:
    dosomthing()
    return np.array(x_train_vector), y_train, np.array(x_test_vector), y_test

ちなみに今Tupleを返してるんだけどListの場合同じこと、例えばList[str, float, float]とかやろうとすると怒られる。←実はこれは回避する方法があって返り値及び変数のtype annotationをList[Union[str, float, float]]という風にすれば出来る。バットプラクティスらしいのであまり使わないように。

class使えってことらしい。ちょっと理不尽。classというかtuple使うべき。

  • mypyで謎のエラーが出た
No overload variant of "__setitem__" of "list" matches argument types "str", "int"

変数上書きしてる説。ちなみにpython_list[3] = 4setitemのシュガーシンタックスらしい。

    for x in x_train:
        x = dct.doc2bow(x)
        x_one_hot: List[int] = [0] * (len(dct))
        for i in x:
            x_one_hot[i[0]] = 1
        x_train_vector.append(x_one_hot)

これをこうしたら直った

    for x in x_train:
        x2 = dct.doc2bow(x)
        x_one_hot: List[int] = [0] * (len(dct))
        for i in x2:
            x_one_hot[i[0]] = 1
        x_train_vector.append(x_one_hot)

2019年の振り返り

さてと振り返りのほうもやっていきます(振り返り大好き人間なので)

今年は虚無みたいな一年だったことはすでに話した通り。楽しかったけどね。

虚無すぎて振り返りの意味がほとんどなかった

1月

tweetを遡ったら技術的なことをやっとるなという感じのツイートが出てきた。
あと死ぬほどアニメ見てるなこいつ

2月

勉強会に行きまくってたらしい。まぁこのころは新年の目標立ててすぐだから行動力あるよね。

神みたいな勉強会多くてよかった。

3月

マジで虚無しかしてない。

社員旅行行ってたらしい。

ゆるいハッキング大会とかあったらしい。

雑にlaravelとかやってますねぇという感じ

4月

虚無しかしてない

5月

この頃はAWSの勉強しまくってた。マジで楽しい。 SAA落ちた。悲しい。

6月

そこそこの虚無をやっとるね

netconやっとるね

intropとか行ってるね

BGPとかやりまくってるね

ihanetとか行ってるね

7月

SAAに受かった。転職とかでおいしい話が降ってきてちょっと転職活動してた。(美味しい条件があれば今も募集してるけど。)

あとパソコン買った。結構悩んだけどかなりハイスペック。

8月

isuconの練習とかした。

9月

isuconに出てたっぽい。出てたんですよ実は。

初挑戦だし高速化とかよくわからなくて最下位だけどね・・・mysqlのチューニングとかパフォーマンスモニタリングとかを学んだ あとtsもちょっと触った。etckeeperとかansibleとかslow queryとかnetdataとか知った。

10月

クソデカい台風と嵐があったらしいね(とうとう自分の話をしなくなった)

twitterを遡ったところあまりにも虚無すぎて曲の話しかしてなくてすごい。

11月

このころが一番行動力とかあった気がするね。

dubstepを初めて作った。そして勢いで3作ぐらい作った。結局公開してるの最初の1つだけだけど。大体作り方分かった気がする。

compextroにも挑戦してみた。

自作のfuture bassを作れる程度にはfuturebassというものを知り始めた。

マスタリングとかも勉強した。

あとphpconf2019のNOCスタッフをやった。これが今年やった中で一番デカいのでは。めっちゃ楽しかったです。感謝。

来年はpyconのNOCスタッフやりたいねぇ~という気持ちです。

あと勉強会行きまくった。AV Tokyo死ぬほど楽しかった。

でも仕事なさ過ぎて精神的に病んでた気がする

12月

音楽理論とかを復習してた。復習といいつつ移調すらまともにできないの何とかしたいけど。

dj mix作ったりした。曲作ったりした。

NLPのプロジェクトにアサインしてもらってNLPに入門した。python楽しい。

仕事なさ過ぎて精神的に病んでた気がする2

2019年の目標の振り返り

やっべ、サボってたら後一日で今年が終わってしまう感じになってしまった。

毎年恒例でやっている目標のチェック(と今年の振り返りを別記事で)をやっていきます。

2019年の最初に立てた目標はこちら↓

来年の目標 - インターネットのリソースを無駄遣いして検索におけるUXを下げてごめんなさい

  • 今持ってるプロジェクトを無事に終了させる→一つも終わってないが???
  • OSSの活動再開→今年のコントリビューション数・・・0!!!!雑魚か????
  • 手取り70万超える→無理でした・・・60万は超えたけど・・・
  • 引っ越す(いくらなんでもこの家狭すぎ)→2月までには決める→無理でした・・・

  • パソコン買う(何でもいいから早く買いたくなってきた、今年中に買いたい)→終わりそう→買った3700Xと8TBの自分の中で一番高いスペックのPCを買ったがグラボがたまにチカチカしてるので対処しなきゃなぁ・・・

  • 自宅のインフラ周りを固める(毎年言ってる気がするな)→逆に全部実家に送った

    • lga 2011-v3系をデュアルで買う(2690v4レベルのスペックが欲しい)→高い
    • gen9用のcpukit買う(買った)→買った
    • lga 3647系を買う(某でのxeon goldで決定かな?)→高いっつーの!!
    • 実家からHDDを大量に取り寄せる(現行で運用してるの除けば20個ぐらいあると思うからそっから適当にraid組めると思う)→家狭くて無理だっつーの!!
    • vCenterの真面目な運用→無理でした
  • モダンなプロジェクトを経験する→laravelがモダンかと言われると・・・一応モダンだが・・・reactやnuxt.jsとかやりたかったなぁ・・・ということで不可。

  • 環境構築、設計などの知識も取り入れる→無理でした
  • AWSを完璧なレベルにする→まぁSAA合格したから一応済ということで。
  • 未踏応募する(、があまりいいのが思いつかないので記念受験になると思う)→応募すらしてないが???
  • pixel3買う→買ってない上にもうpixel4出ちゃったが??
  • remix書きまくる(週一ぐらいでリリースできるぐらい打ち込みたい)→結構曲書いたからOK
  • 技術書書く→無理でした
  • 2019年12月までに700万ためる→無理でした
  • 勉強会参加しまくる(引っ越してからの勉強会参加回数はほぼ0です、今までで一番最悪)→まぁ結構な回数出たからOKということで
  • 東京を完全に理解する(東京は難しい)→多少理解してきましたね、東京、まぁ新宿渋谷、下北沢あたりは結構理解した気がするので良し
  • 英語上達させる→無理でした
  • 趣味グラミングを始める(趣味で全くプログラミングしてない。。。)→無理でした

総評

達成数・・・6/23

酷すぎて凄い。虚無みたいな一年を過ごしてしまった・・・う~んつらい。
後はこの一年を振り返ると技術系に関する興味が本当に0になってしまったなぁという感じ。

プログラムは書けるけど技術の鍛錬はしたくないっていう感じ?自分が楽するために最低限書くのと後は仕事で書いている以外で家ではプログラミングする気が一切起きない。

あと2018年の初めにはインフラ・NW周りのこと結構書いていたんですがインフラ周りも一切触ってないし興味なくなってしまったなぁ。実家に機材とか全部送っちゃったし。

まぁその分来年も引き続き勉強会に出たりブログとかoutputはしていきたいね(とブログ全く書けてないし勉強会とかで登壇したりもしてない人間が言ってみるテスト)

良かった点としては曲書きまくるのが出来たのでそこは褒めていきたい。

AWS SAA感想

07/07にAWS SAAに合格しました。 結構難しかった。

f:id:lv7777:20190720080516p:plain

勉強期間など

AWS SAAの勉強は今年のGWからはじめました。GW最後の2日ぐらいでがっと勉強しました。
GW終わった後の2週間ぐらいは本当に熱量が高く、暇な時間は毎日AWSを触っていました。
自分の場合は資格を取るというより実際にAWSでどんなサービスがあるか、
よく名前を聞くサービス(lambdaとかcognitoとかcodebuildとか)ってどんなものかっていうのを実際に触りながら試したので資格以外の実践的な部分に結構時間をかけてました。

その後05/29に一回目を受けて絶対受かったと思ったら普通に落ちてて、もう受けなくていいかなってなったんですが、
幸いにも会社から取得を推奨するということが決まって前回の受験からそんなに日も空いてないし再挑戦するかってなりました。
再度勉強を始めたのが6月の第三週ぐらいで、落ちたら嫌だし熱量も下がっていたので土日に3時間ぐらいでやったりやらなかったりって感じでした。

7月の2日あたりに受けたんですがそのころは鬱が酷くて直前までエロゲをやっていて当日も徹夜で行きました。(日付間隔が崩壊していたので一日の定義が分かりませんが)
18時間連続でエロゲとか作曲やって3時間寝るみたいな生活リズム崩壊しまくってました。(当然勉強もしてないし会社もサボりまくってました)
3日間ぐらい何も食べてないし貧血もヤバくて試験中に倒れたらどうしようって感じでしたが何とか受けれてなぜか合格していました。

勉強内容など

まずサンプル問題を見て、責任共有モデルとか意味不明だったのでその辺の責任共有モデルについて調べたり分からない単語をググったりした。

とりあえず上記で書いてある通りGWの時期は本当にlambdaすら知らなくてEC2をかろうじて使ったことがある程度だったのでとりあえず実際に触っていくところから始めました。
API Gateway、lambda、EC2、s3、SQS、SES、route53、cloudwatch、cloudtrailなど。
それと並行して下記サイトの無料問題を解いたりしました。(有料には手を出さなかった)
AWS WEB問題集で学習しよう | 赤本ではなく黒本の問題集から学習する方向け

その後、模擬試験を受けたり、本を買ったりしました(どちらが先か覚えてないけど多分本の方が先で、本である程度勉強してから模擬試験を受けたりしました。)
最初の試験05/29の一週間前ぐらいには本とか模擬試験とかはほぼほぼ見なくて、大体blackbelt見てました。
blackbeltですが非常にためになって良いです。他の合格記録にも書いてありますが大体ここから出るぐらいに思っていて良いです。(ただし大体なのでもちろん他のサイトも見ないと詰む)

上記を踏まえた上で自分がおすすめする勉強方法としては

  1. サンプル問題を見て勉強する
  2. 本を買う(1冊じゃなくて2冊程度)
  3. 本で勉強しつつ、並行して各サービスのAWS docsを見つつ実際に触る(実際に触るのはそこまで時間かけなくても良い)
  4. koiwaclub(AWS WEB問題集で学習しよう)のサイトの有料課金版に登録して解きまくる(半分は残しておく)
  5. blackbelt見まくる
  6. AWS模擬試験受ける→模擬試験でほぼ100点が取れるようなら次へ進む
  7. 本の模擬試験を受けて持ち時間の半分程度でほぼ完ぺきに取れるようなら本試験へ進む、無理そうならkoiwaclubのところまで戻る。
  8. 本試験を受ける

こんな感じの順番が良いのではないかと思います(実際には各フェーズはある程度並列します)

tips、試験に出た内容など

金を惜しまないようにしよう

自分の場合、本一冊と模擬試験にしか課金しませんでした。その結果落ちて13000円が無駄になりました(無駄ではないですが)

しかしそれで勉強不十分で落ちたので少なくともkoiwaclubの有料版は十分に課金する価値あると思います。問題数もめちゃくちゃ多いので自分が理解してないコンポーネントの勉強になります。

13000円無駄にするぐらいならちゃんと対策して勉強代に充てた方がいいですね。

専門用語を覚えておこう

AWSのサービスの名前(DynamoDBなど)は当たり前として例えば下記の意味は分かりますか?
本番で専門用語が分からないと結構焦ります。自分は1度目の試験でオフロードがよくわからず時間を溶かしました。

Aurora レプリカは、プライマリ DB インスタンスから読み取りワークロードをオフロードします。

長丁場に慣れておこう

本番は65問で模擬試験の3倍の長さです。(確か模擬試験は20問だったはず)

これが思ったより長くて途中でだれます。対策方法としてはAWS SAA資格本の模擬試験とかで結構量が多いのでそれで長丁場に慣れましょう。

サービスで何ができるかを正確に抑えておこう

たとえばALBはHTTPS,HTTP以外にwebsocket対象にしてたっけ?ALBのヘルスチェック方法は???

RDSのレプリケーションはリージョン超えれたっけ?EBSのコピーはリージョン間でできたっけ?クロスアカウントは???

などなど。覚える範囲は死ぬほどあります。(この辺の対策はやはりblackbeltが最適だと思います)

最適なコストをちゃんと抑えよう

EBSのSSDとかgp2とか速度最適化hddとかコールドhddとかマグネティックHDDとかほぼ必ず出てきます。
コストとか最適化とかシーケンシャルかランダムアクセスかとかデータベースの用途の場合はどれが最適か、memcacheの場合はどれが最適か、データシェアハウスの場合はどれが最適かとか必ず抑えておきましょう。

もちろんEBSに限りません。S3のIAとかone-zone IAのget速度とか即時性とかgrasiaとかもほぼ必ず出てくるので抑えましょう。あとKMSとかcloud-HSMとかをS3に絡めた問題も出やすいです。

他にもどのインスタンスファミリーがどんな特徴を持ってるかとかも必ず把握しておきましょう。例えばmとiの違いとかaとかcとかmとcだとどちらがvcpu能力高いかとか。

この辺の対策は模擬試験やりまくって被ってたりするところで覚えるしかないです。

各サービスの数量的な限度を抑えよう

これは自分はあまり聞かれなかったんですがどのサービスでどれが無料かとか各サービスの数字とか抑えとくと良いと思います。
例えばcloudwatchの通信間隔とかs3のアップロード上限(GB数)、vpcはリージョンでいくつ作ったら上限がくるかとか。

サービスの特長を抑えておこう。

ちょっと上と被るんですがサービスの特長を抑えるのも重要です。
例えばlambda+s3だとビジネス的にどういうメリットが生まれるとか。
albは突発的なスパイクアクセスには弱いけどlambdaは平気とか。

AWS特有のビジネス用語を抑えるのもここですかね。
AWSは弾力性とかエラスティックとかそういう言葉が大好きなのでそれがどういう意味なのかを把握しておいてください。弾力性、伸縮性、接続性、永続性、信頼性・・・etc。

ビジネス用語に関してはAWS Well-Architected フレームワーク、サービスの特徴についてはAWSクラウドデザインパターンとか本、blackbeltが良いと思います。

合格後について(弊社の人へ、ここからは蛇足です)

なんかいろいろ貰える

  • AWS Certified Store
    https://www.certmetrics.com/amazon/candidate/benefit_summary.aspx から飛べるっぽいですね(どこにもリンクが無かったから分かりづらかった)。
    特典を申請するボタンを入力する必要があるっぽい。登録後もめちゃくちゃ分かりづらくてaddress bookは日本選べないし適当にアメリカで登録してクレカも登録しても商品出てこないしいろいろいじりまくってsearchボタンに何も入れずにエンターを押したら商品が出てきた。CTFかよ。ちなみに皆さんが指摘している通り商品もめちゃくちゃショボい。多分AWS summitでもらえるノベルティのほうが質がいい(残業ばっかでほとんど行けなかったけどな!!) AWSのロゴ入りプラスチック水筒とか誰得だよ。
  • AWS summitで特別ブースに行ける。 なんか特別ブースに行けたりするらしいですね。
    ブースショボってなった(でもバッチはちょっと欲しい)
    【AWS Summit Tokyo 2019】AWS認定者ラウンジに行ってきました #AWSSummit | DevelopersIO
  • 模擬試験が一回無料で受けれる。・・・これは良さそう
  • 試験が一回だけ半額になる・・・最高では?
  • SMEプログラム・・・よく分からんが無料で海外旅行行けるかも(ワークショップで)
    あと書いてないけどre:inoventとかでも謎優遇受けれるっぽいですね(知らんけど)

個人で資格を取得してその後会社のAPNに紐づける方法

まずAPNはamazon pertner networkの略。アマゾンがこの会社はパートナーですよって認定する会社単位の資格(条件)のようなものっぽい。

APNの種類としてはコンサルパートナーとテクノロジーパートナーがあってそれぞれランクがセレクト、アドバンスド、プレミアとある。

aws.amazon.com

個人(のmailアドレス)で資格を取得してその後会社のAPNに紐づけるにはまず個人でAPNのメンバーとして登録する必要がある。 下記のリンクから登録が出来る。

Self Registration

然るべき(APNとして登録されている)会社のメアドを「メール」という欄に入力し、その下の「AWSレーニングと認定アカウント E メール(オプション)」には試験に申し込んだメアドを入れる。 その後、会社のメアドにメールが届くので開いたらアカウントがAPNに紐づけられ、APN ポータル(APNパートナーセントラル)にログインが出来る。

f:id:lv7777:20190720055348p:plain

ただし、APNにメンバーとして個人アカウントを紐づけることが出来ても、その個人アカウントと資格を紐づけるにはAWSのサポートに問い合わせが必要らしい。

ちなみに弊社では合格したら受験費用を出してくれた。(宣伝)

AWS触れてインフラ設計とか出来るwebエンジニア、かなり需要が高いらしいですね👀。まぁだからこそ取ったというのはあるんですけど。
(AWS1年以上触っててサーバーレスやったりインフラ設計やったりやったりしてるSAA持ちです、もしよければご連絡ください><)

あやしいネットワーク入門編2~rotate proxyについて~

こんにちは~闇のセキュリティエンジニアに入門したlevena chanです。

とある事情でグレー案件をやっていてその過程で闇の技術を多少覚えたのでそのうちの一つのrotate proxyについてoutputします。

闇の案件ください。

rotate proxyとは

proxyの一種ですが普通のproxyとの違って出口IPが一つ以上あります。通常のproxyはPCからあて先のURLに通信するときに中間にプロキシを挟み、PC→proxy→あて先のサーバー→proxy→PCという経路を辿りますが、rotate proxyはproxyの出口IPが複数あるためrotate proxyからあて先サーバーまでの通信経路をリクエストごとに違う経路で通信することが可能です。

f:id:lv7777:20190326114706p:plain

用途としてはスクレイピングでIP rate limiting base(下記URLを参照)で対策されたwebサイトをbypassしてスクレイピングを行ったり、並列アクセスによる平行処理、PV数水増しによる検索エンジンSEO不正操作、観覧数操作などが可能になります。

その中でも特にSEO系を目的としたrotate proxyはSEO proxyといいます。

hxxps://smartproxy(.)com/blog/seo-proxies-when-you-are-serious-about-your-search-ranking

SEO proxyの最近のニュースとしてはpixivのランキング操作やブックマーク操作などがありました。これもSEO proxyのような気がしますがあまり調べてないので適当なことを言っているかもしれません。

また、ゾーン(プール)を定義してそのゾーン内のIPを自由に出口ノードとして使えるproxyをbackconnect proxyといいます。後述するluminatiなどはこれにあたります。DHCPプールを定義してそれを使っていくみたいなのを想像すると分かりやすいです。

hxxps://www.geosurf(.)com/blog/what-is-a-backconnect-proxy/

ちょっと種類は違いますがsneaker proxyというものもあります。これはp2pサービスを使うときにクライアントやサーバーを匿名化することができるproxyです。geosurfのproxyではsneaker proxy用のAPIを提供したりbot(NikeShoeBot)とも連携しているようです。

hxxps://www(.)geosurf.com/proxy-use-cases/sneaker-residential-ips-proxy/

proxy serviceの種類

rotate proxyを使用する方法として主に3種類あります。ここで呼んでいる用語は僕が独自に定義したものなのでちゃんとした言い方があるのかもしれません。

  • プラットフォーム型・・・プログラムすら書かずにwebコンソールをいじるだけでスクレイピングが完了してしまう形式です。プログラムを書かずに簡単に使用できる分拡張性が無いです。apifyなどがあります。apifyはプラットフォーム型以外にもSaaS型も提供しています。

hxxps://apify(.)com/docs/scraping/web-scraper-tutorial

  • API型・・・APIベースで自動でrotateしてくれるタイプです。 hogehoge.com/scraping&url=http://anti-scraping.com のような形で使用します。

  • SaaS型・・・chromeを起動したときにproxyとして指定するタイプ。大体はこれ。luminatiやsmartproxyが有名です。

  • 自前型・・・自前でrotate proxyを建てるタイプです。当然サーバーとIPを自前で用意する必要があります。自前とは言ってもIPを複数用意するのは難しいので大抵はクラウドでやることになると思います。例えばAWSのENIを使ってec2に複数IP割り当てるとかなら比較的安価にいけるんじゃないかな。kouhei氏がよさげなブログを書いていたがdmca takedown(意味深)されてしまったので復活に期待

luminatiについて

LuminatiではproxyとしてLPMとsuper proxyによる方法が採用されています。

LPMはlocal proxy managerの略となります。LPMはsuper proxyに対してip rotateの方法(ラウンドロビンやランダム、ハイパフォーマンス、スティッキーなど)を指定したり、使用するゾーンやホワイトリストを設定したりできます。(前提事項としてluminatiではproxyのほかにログイン情報なども渡す必要があることを言わないとって感じ)

chromeスクリプト(beautifulsoupやseleniumなど)にはLPMを指定します。

使った感想としては普通に良いです。法人であれば登記証明書を出すことで7日間無料トライアルもできるようです。

使い方とか料金体系だけで別記事が書けるボリュームなので気が向いたらそのうち書くかもしれません。

luminati.io

最後に

rotate proxyについて調べたところプロキシの一種ということが分かりました!詳しいことはあまりよくわからないので今後の活躍に期待ですね!いかがでしたか?

久々にちーちゃんっぽくまともなブログを書こうとしたんですが書きたい段落についてはかけてもそれをどういう順番で紹介するかみたいな部分が非常にダメダメなのでそういう力つけたいね。

2月の勉強会行きまくったので感想とかメモとか

こんにちは。最近躁状態でいろんな勉強会に行きまくってます。ちゃんと週40時間働いてるし仕事のノルマはこなしてます(こなしてるはず)

後半から欝状態が躁状態に転換してきたので来月は6回参加とかになるかもしれん。(いやそんなに行ったら体力的に死にそうなので目標にはしないが。)

行った勉強会の一覧

  • インフラ技術カンファレンス(YahooJapan MeetUp)
  • we are javascripters!!(WeJS)
  • JAWS days

インフラ技術カンファレンス

Yahoo! JAPAN MEETUP #31 インフラ技術カンファレンス - connpass

東京のY!社で行われた。Y!社、初めて行ったけど広かった(それはそう)。あの建物迷いやすいのでY!社の勉強会行くときは注意。

地下2階あたりにエレベーターがあってそこ通って行った気がする。

そして開催地に行く途中にLODGEを通った。時間無くて寄れなかったけど。(LODGEがあるのY!社なのか…)

いつか寄って普通にコワーキングスペースとして使いたい。

感想

VIPを移行してキャッシュとかオリジンとかCDNな話やDCなNWを移行する話とかopensdsやquobyteなどのsoftware definedストレージな話やconfig自動化の話が出てきた。そこそこ範囲広くて濃い話が大量に出てきてすこ…ってなった。

BGPとかvxlanとかリーフスパインな話もあった(LT)

speakerdeck.com

LTもめっちゃ濃かったが普通に懇親しまくってたのであんま聞けなかった…普通に界隈が同じフォロワーと話しまくってた。

懇親会の飯めっちゃ旨かった(しめっちゃ量もあった)、感謝🙏 f:id:lv7777:20190223234002j:plain

年一単位であるらしいよ。次回(来年かな?)も行きたい。

we are javascripters!!(WeJS)

初心者回だったっぽい。

専門学生の頃から行きたいなぁとは思っていた。

nuxt.jsな話CDNとかreact nativeな話が出てきた。良かった。

隣のプロジェクトでnuxt.jsとかvue.jsとか普通に使ってる(まぁvueなら自分がプロマネしてるプロジェクトでも一応使ってはいるんだけど。)ので近い将来使うことになるしまた復習がてらいろいろ遊びたいなぁという感じ。

みんなvscodemacだなぁという感じだった。

SAKEが出た、感謝🙏

普通に仕事でバリバリ使うようになってきたら登壇の復習がてら登壇したい。

JAWS days 2019

OSC(やhamasec)と同日開催…

ご飯の交換チケット(AWS ALB)とか付いてきた。

1000円払ってクソ良いセッションにご飯まで付いてくるとか圧倒的感謝…🙏

カンファレンスにありがちな部屋が複数あって同時に公演してる感じで、自分はセキュリティ関係の話を多めに取った。

WAF managemed ruleな話やcognitoのpros/cons、VPCの新しいアーキテクチャのtransit GWとかそれのsec tipsとか責任共有モデルの話とかちゃんとドキュメント読もうなという話やmulti-AZみたいなアーキテクチャの話やamazon inspectorな話やIAMはしっかり設計しようなという話脆弱なlambda経由で権限昇格などいろいろ聞いてきた。

今日聞いた中で触ったこと無い技術

  • managed WAF rule
  • amazon inspector, AWS security hub
  • market place この辺は普通に聞くし触ってみたい。

  • cognito とりあえずメール送ってみたり認証作ってみたけど謎なオプションがいろいろあるので一通りわかるようになりたい。

  • amazon neptune 名前がかっこいい(小並感)

  • amazon connect 強そう(適当)

  • API GW これはマジで使えるんですよね、マジで。 そのうち触ってみたい。swaggerと連携できる。

  • AWS amplify console これはマジで使える2。

  • AWS direct connect ちらっと出てきた

AWS Direct Connect(専用線接続サービス) | AWS


終わりに

3月も参加しまくりますのでフォロワーの皆さんよろしくです!