はてなキーワード: Pythonとは
よくある「完全放置!」「全自動更新!」「何もしなくても儲かる!」みたいなアフィがあるけど
おそらく、その1つである全自動更新のエログ作って一ヶ月近くたったからその結果を書く。
何かしら作品を作ったらQiitaとかにアウトプット上げるけど、内容が内容なのでここで。
URLは多少内定自慢できるくらいの会社に内定貰っているから伏せますね><@バレなさそうなら晒す
・仕組み
・お金の話
・技術的な話
・結論
仕組みは簡単、いくつかの既存のエロサイトにWebスクレイピングをかけてウチのエログでも全く同じ情報を配信する。
そんなエログに全く価値が無いと思われるが、既存のエロサイトと比べてウチのエログを使うメリットはいくつかある。
1. share-videosを使っているので削除されていても案外見れたりする。
3. エログ特有のアクセストレードを行っていない(コピペなのでそもそもアクトレサイトに申請出来ない)ため、色んなサイトを行き来せずにめっちゃ見やすい!
4. 「PageSpeed Insights スマホ 82 PC 93」「【GTmetrix】 PageSpeed Score 99 YSlow Score 87(CDN入れたら94)」平均読み込み4秒のエログの割に読み込みが早い
5. スクレイピングするエログは動画のクオリティが高いサイトに厳選しているため良いネタがすぐに見つかってずく抜ける。(自分でも毎日使ってる)
事実、友達に悪い点とかのフィードバックを頂戴とお願いしたが「特に悪い点は無い、、、むしろ使いやすい」と好評。セッション継続時間は平均4分でみんな動画をちゃんと見てるみたい^^
自慢はここら辺にして、アクセス結果とかサイト情報はざっくりを晒す。
2月の総アクセスはざっと2400くらいで、1日大体70〜100くらい。流入は検索からのアクセスが100%。
検索ワードはjk 個人撮影みたいなワードからが割と多い。記事の数は10000件くらい。
こんなものか?正直Web系ではあまり無いから何をいえば良いかわからない。GAで取っているからみたい値があれば追記で。
完全放置のコピペかつ検索からの流入100%で1ヶ月目にしてはじょうじょうかな?
鯖の無料枠で運営しているため向こう1年はタダで運営出来ますが、もっとアクセスを稼がないと厳しいです。(何せshare-videosしか収入がないから)
月極広告のお話が来たら安定するのですが、スクレイピングでこの程度であれば来ないでしよう。
CMSとしてWordpressを採用。理由はSEOとかプラグインで楽そうだから(事実楽)(KUSANAGIの存在を知っていれば使ってたのにと今更後悔)
WebスクレイピングはGolangを採用。理由は速いから。並列処理でもっと速いから。あと書きやすい。てか。。。普通に好き。。。><
速さを求める理由はFunction as a serviceでスクレイピングを実行しているから。Python使おうと思ったけど、実行時間の制限があるためある程度早くスクレイピングを終わらせなければならなかった。
鯖側で常駐かcronを使っても良かったけど、常駐はメモリ食べてパニックだし、cronは設定がめんどくさいから。FaaSだとWeb上で実行間隔を弄れて無料で最高。
詳しい内容はウチのサイトの強みだから言えないが、他のエログのURLをリストに貼るだけで勝手に取得し投稿する。神。
Webスクレイピングエログはおすすめしない。手動で毎日更新したほうがアクトレで確実に儲かる。
黒字化するのであれば現行の方法ではなく、全自動で日本中のエログ全てのから記事を取得してshare-videosに張り替えて投稿するサイトかな。
私がいるところは、プログラマ/システムエンジニア、フロントエンドエンジニア/バックエンドエンジニアとかの区分がなくひとりでなんでもやるところです
一応フロントエンドが好きで得意だと自称はしているものの一般的なフロントエンドってどこまでするのでしょうか
デザイナがするような部分
ここは当然でしょう
最近では SPA のページも多いので単純な HTML と JS ではなくフレームワークを必要とされることもあります
SEOの都合などでJSレンダリングじゃなくサーバサイドレンダリングで、サーバから受け取るHTMLの時点で表示できる状態になってることを依頼される場合もあります
その場合はサーバサイド言語に応じたテンプレートエンジンも使います
PHP なら Blade、Python なら jinja、 Node.js なら ejs という感じ
JS のコードをテストしたり gulp などのタスクランナーや webpack などバンドルツールを使うので OS のコマンドラインのツールも使える必要があると思います
サーバサイドの言語は別の人が作るにしても自分の環境でそれを動かすためにサーバ構築は出来たほうがいいでしょう
VM に OS のインストールしてウェブサーバをインストールしたり
Vagrant, Ansible 等で管理されているなら、設定ファイルを書くことはないにしろ実行する方法やエラーが起きたときの簡単な対象方法くらいは知っていないと不便かと思います
ウチの場合は各自LinuxをVMにインストールして Ansible でという使い方なので気づきませんでしたが、考えてみたら全部設定済みの VM データを配布してくれるということもあるのかもしれません
データによって画面表示を変えるときに、それに応じたデータを作って画面を確認したいことがあるので、mysql や postgres などなどデータベースの知識も必要になることがあります
SQL 書けなくても pgadmin みたいな GUI ツールで表を書き換えればいいのですが最低限の仕組みは知っていないと苦労しそうです
完全にフロント/バックが切り離されてるところなら、フロントエンド開発者向けにデータベースは使わずテンプレートエンジンに渡ってくるデータを好きに設定できる機能が用意されてるのかも?とも思います
サーバサイドの処理は不要でクライアントサイドの動きのみを作るわけですから、決まった場所の JSON ファイルのデータがそのまま使われるならデータベースの存在を知らなくてもいいですし
ここまでできたらバックエンドよりフロントエンドのほうが何でも出来る人みたいに思えます
あとはサーバサイド言語を書ければもうサービスが作れてしまいます
でもこれぐらいできないとすごく不便で、すぐに他の人に頼らないといけなくなるように思います
サーバ冗長化とかそういった部分はかかわらなくてもいいと思いますけど、Linux やデータベースなんかは自分でどうにかできないと周り誰もいないときに動かなくなったら作業進められななんてことがありそうですし
趣味もプログラミングだから何も疑問に感じなかったけど確かに言われてみればそう感じるのも不思議ではないな。
アーキテクチャがどうのこうのみたいな難しい理由もあるんだろうけど、大抵の言語は元々何らかの言語の派生だったり改良版だったりするんだよ。
言語を開発できる能力と影響力がある連中が「この言語のこの仕様がマジでクソ」ってなると、それが言語の改善として提案されることもある。
ただそのプログラミング言語を取り仕切ってる連中とかがその提案を受け入れるかは別で、そうなると別の言語として分裂する。そもそも受け入れられない事を前提にして、最初から「あの言語マジでクソだから俺らが考える最強の言語作った」みたいになることもある。
プログラミング言語って1つにまとまらないんですか?これさえ使えれば全てを扱えるような魔法の言語はどうして存在しないんですか?
どんな言語も「俺らが考える最強の言語作った」っていう感じでスタートしてるせい。結局は好みなわけよ。ある種宗教みたいなもんだ。
例えばRubyっていう言語の仕様が好きで集まった連中がWeb系の人間ばっかりだったら、RubyはWebに向いたノウハウとかツールが集まるようになる。Python教には機械学習や数学に強い奴らが集った結果、そのへんのライブラリが豊富になった。
後からついていく大多数の人間は偉大なる先人がお作りになられたライブラリを活用しないとやっていけないわけで、結果的に「この用途ならこの言語」みたいなのが多数発生するわけだ。
使える言語は増えていくんだよ。意図的に増やしてるんじゃないと思う。
「こういう処理したいけど、俺が使える言語で便利なライブラリないじゃん。じゃああの言語に手を出してみるか」「この仕様クソすぎるんだけどあの言語なら解決できるんじゃね?使ってみるか」みたいなことが往々にしてある。
ウィリアム氏がOdeo内で始めた小さなプロジェクトが「Twitter」だ。Ruby on Railsを使って2週間で最初の動くバージョンを 作り上げた
Ruby on Railsで10分で作るTwitterもどき - ZDNet Japan
6 of the top 10 @ycombinator companies (by valuation) were built using Ruby!
ttps://twitter.com/mhartl/status/1179561691857616896
ttps://prograils.com/posts/top-10-famous-sites-built-with-ruby-on-rails
Ruby on Railsの事例まとめ(海外有名サイト編)
Ruby on Railsの事例まとめ(日本有名サイト編)
PHP 5.4.4から==の挙動が一段と難しくなりました - hnwの日記
404 Blog Not Found:そろそろPHPに関して一言いっとくか
404 Blog Not Found:「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違い
ttp://b.hatena.ne.jp/entry/s/frasco.io/the-global-php-community-continues-to-toxify-itself-and-we-need-to-halt-it-for-the-sake-of-our-peers-4ec9599fc203
Javaやphpはインターフェイス、RubyはMix-inがある。
+ や - などの演算子に別の動作を与える演算子オーバーロードはなくてもプログラムの記述はまったく困らない。
C言語 で
a = b + c;
と書いた場合は解釈は足し算しかない。c + b と書いても同じ。
C++ で
a = b + c;
と書いた場合、b と c が何かでまったく動作が変わる。逆にして c + b は動作が違う可能性がある。つまりこの行だけ見てもどのような動作になるのか予測できない。
Java はできない
PHP はできない
Python はできる
Ruby はできる
クラスの保護メンバー変数に、アクセスできる関数のこと。通常、privateメンバ変数はクラス内からアクセスできないが、フレンド関数はそのprivateな変数にアクセスできる。
まず戦うフィールドが間違ってる。
予測モデルの精度改善がそのまま売上の改善につながるような業態の会社を選ぶんだよ。
例えばGoogle.
ここで言う広告とは、GoogleやらYoutubeやらに訪れたユーザーのデータを詳しく分析した上でもっともコンバージョンレートが高くなりそうな広告を予測して表示するタイプの広告だ。
「誰にどんな広告を表示したらもっともコンバージョンレートが上がるか」というのは、当然データ分析や機械学習の範疇だ。
想像してみてほしい
1. 毎日GoogleとかYoutubeとかに何億人だかのユーザーが訪れる。
2. 世界トップクラスのデータサイエンティスト達が作り上げた、Googleのコンバージョンレート予測モデルはもっともユーザーがコンバージョンしそうな広告を予測して、それを表示する。
3. 予測モデルがはじき出した結果が正しければ、ユーザーは広告をクリックし、広告主は収益を上げ、その一部がGoogleに広告費として入る。
この時、2.の予測精度が1%上がれば、Googleの売上はそのまま1%上がる。
Googleの年間売上が1〜2兆円くらいだったはずだから、1兆円の1%としても100億円の売上向上という事になる。
そういう企業のデータサイエンティストは、絶対に元増田のような仕打ちを受けない。
逆に、データサイエンティストが末永く高い生産性を発揮できるようにあらゆる努力が行われているだろう。
Googleじゃなくてもこういう事業構造を持った企業では絶対にデータサイエンティストは軽んじられないと思うぞ。
広告以外だと、例えば保険業界のアクチュアリーとか金融業界のクオンツなんかも事業継続や収益に直結するから良い感じなんじゃないか? 知らんけど。
あのさ、「R/Pythonでバリバリ分析しようと思ってたけど入社したらExcelしか使わせてもらえませんでした」って転職先の下調べ甘すぎだよ。
プログラミングというスキルに対してどういうスタンスを取ってるかって、企業によってぜんぜん違うぞ。
元増田の会社みたいに「プログラミングスキルはコモディティ化したスキルで全部外注に出せばいい」みたいなスタンスを取ってる会社だってごまんとあるし、そういう会社に入ると悲惨なことになるぞ。
ちゃんと、転職エージェントから転職先の情報聞いたか? 転職先の会社とミスマッチが起きないように入念に面接を繰り返したか? Vokersは読んだか?
転職エージェントは転職が成約すると報酬が入るようになってる事が多いから、話半分で聞いたほうが良いとは思うが、それでも元増田レベルのミスマッチは指摘してくれると思うぞ。
面接は人事部門だけでなく、所属予定部署のマネージャークラスとか同僚になる可能性が高い人と面接させてもらって相性が良さそうかよく確認するんだよ。
Vokersは安いからとりあえず読んどけ。
データサイエンティストって基本的に物凄く"か弱い"職種なんだよ。
エンジニアみたに実際の製品を作る訳じゃないし、営業みたいに客が取れる訳じゃない。
データサイエンティストがバリューを発揮するためには、自らの成果を他の職種に理解して貰えないとダメなんだよ。
※Googleみたいに作ったモデルが直接プロダクトに組み込まれる場合は別な。
じゃあ、どうすれば他の職種から理解して貰えるかというと、これは難しいところだな。
僕も分からん。
ただ、1つ言えるのは、他の職種から信頼してもらえなければデータも出てこないし、分析した結果に耳を傾けられる事もない。
組織ってその内部にいろんな評価基準を持っている。その評価基準は必ずしも全体最適になってないかも知れない。だから無視したくなるかも知れない。
でも、まずは相手が持ってる評価基準に合致するようなバリューを出して、協力を取り付けるんだよ。そうしないと話が進まないからな。
既存の評価基準の中で十分な成果を出したら、発言権が増すからそうしたら次は増田の好きなようにやればいい。
まあ、これをするのが面倒なら、最初からデータサイエンスが事業に直結してる会社に入ると良いと思うぞ。
というわけで、元増田は、
3) 入った後の進め方も拙かった。