はてなキーワード: Herokuとは
親譲りの無鉄砲で、子供の頃からプログラミングばかりしている。
していたのだが、大学でいろいろと紆余曲折があって結局、プログラミングとかITとは真逆の伝統的業界に入った。
今の仕事の内容は古いけどかなり特殊な分野で専門的知識を獲得していく楽しさはある。
そして僥倖だったのが、ほとんどコンピュータの入り込んでない分野なので、手付かずの大自然というか、本当に些細な業務上の単純作業でのことなんだけどいままでやったプログラミングが活かせたりするときもある。
こういう楽しさもあるんだなと思った。
でも一方で、ネットとかで本職の人が新しいサービス立ち上げたり情熱燃やしていると本当に羨ましくなる。
触発されて日曜大工的に単純なウェブサービス作ってherokuで運用してみたりする。
を狙ってるそこのお前
どうせお前のスキルセットは「html,css,js,rails」だろ?
揃いも揃ってそんなんばっかり
HTTPメソッドもSQLも理解せずにそれっぽく動くN+1だらけのクソ作っただけだろ?
webプログラマ目指すくせに開発環境構築にDockerも使わず理解してないコマンドをコピペしてローカルに直でインストール
せっかく無料枠あるのにawsじゃなくてHerokuにプッシュするだけのデプロイ
ブランチ運用なんて考えずmasterブランチに直プッシュか?
会社に入れさえすれば先輩がつきっきりで教えてくれるとでも思ってんのか?
先輩を質問責めにする気か?
むりむりやめとけ
そんなんじゃせいぜい年収300
諦めた方が身のため
あばよ
どうしてもなりたいなら↑で挙げたものぐらいは最低限を理解しとけ
ここまで言って調べる気にならないなら本当に向いてないよ
こんなのあったらおもろいなーと思ってwebアプリ?みたいなやつ作ってたんだけど全然公開できない。
8割はできたって所から公開しようって状態まで持っていくの大変すぎ。
デザインなんてどうでもいーと思いつつも触りだしたら「せっかくだから」と触り出しちゃう。
さすがに最低限それっぽくしたくなっちゃう。
CSSフレームワーク使ってみたら結局上書きしまくりで使い物にならない。
もうさ、本当になんでもいいんだよ。レスポンシブとかどうでもいいんだよ。
なんでsassの使い方なんて調べてるんやー
lessってどうなったんやー
こんなものを公開するのにサーバー代を払う事を想像すると手がすくむ。
AWSは便利みたいな風潮なんなの普通に構築大変なんだけど。何のサービスあるかよく分からないし。高いし。
操作ってなに?デプロイ?WEBアクセスでもいいの?定期的にリクエスト投げておけば止まらない?
cloneとか使えるの?nginxの設定いじったりとかできる?apache?
得体が知れなくて怖い。
結局VPS借りたよもう!
【話が大きくなっていく問題】
最初は1つの機能だったのが深夜のテンションであれしたいこれしたいってどんどん出てくる。
超人気サービスになって超有名人になってインタビューに答える姿まで想像しちゃう。
最低限作る機能がどんどん増えていく。
【みんなに知ってもらえない問題】
ある程度有名人ならTwitterとかでつぶやくだけで認知してもらえるだろうけどさ。
全く有名でもない自分が、作りました〜って言って誰が見てくれるのさ。
意外と誰かが見つけてくれるものなの?
お金払えばいいの?誰に払えばいい?
作ってる時は超人気サービスになる事を想像してムフムフやってたけど、いざ公開しようという段階まで来ると「どうせ誰にも見てくれない」とか考えてどんどん自信がなくなってゆく。
カッコいい事言ってるけど、作ったサービスが全くウケなくて誰にも使われなかったら..とか、失敗した自分を想像して動けなくなってるんだと思う。
何を書きたいのかもよく分からなくなってきた。
書くってこんなに時間かかる?
自分だけ?
もういい!寝る!
俺、Macbook使ってるんすよ(タッチバー付13インチPro
俺、プログラミングスクールでプログラミング教えるアルバイトしてるんすよ(そいつはそのスクールの卒業生
懇親会で「皆さん嫌いな言語とかフレームワークはありますか?」と話題になると私は即座にRailsと言う。
「あのコマンドを打つと中で何が起きてるか知ってますか?」(知らない
「ActiveRecord?生でクエリ書いたことある?インデックスの意味くらい知ってるよね?」(書いたことない、適当なこと言う
3分後
「alert('XSS')」
百歩譲って学生エンジニアならまあセキュリティに無知なのは分かる。
しかしだな、文系エンジニアは「俺もハッキングしたい(笑)」な勢いで詳しく解説することを要求してくる。非常にウザい。
"
"
しょうがないので優しく解説すると「君ってハッキングとかしてそう(笑)」「君将来ハッカーになりそうだわ(笑)(クラッキング的な意味で)」
死ねよ。
俺、Git使って開発したんすよ(GUIのSourcetree
え?バグ?ちゃんとテストしたんだけどなぁ(完全手動テスト()笑
AWSとGCPは登録はしたものの使い方が分からなくて結局放置
pwdとcdしか知らない(Makefileを作ったことないからいつもネットのコピペコマンド
はい、ゴールデンタイムに鯖落ち。復旧した時にはゴールデンタイム終了のお知らせ。
理由、CDNを刺してない、貧弱なプランの鯖(勿論ロードバランサなんか使ってない)
でも彼らは一応優秀な文系エンジニア。高学歴、サービスも作ったこともある、それなりの実績も持っている。しかし文系だ。
こういう奴らがいるからちゃんとしたエンジニアを軽視される。黙って営業職に転職してこい。
まあでも大学じゃ作者の気持ちしか考えてないのだから当然のなのかもな(笑)
追記
残念な理系名前を書くだけ一発採用派遣SIerは対象としてない。論外だ。
給料が安い?
そんなことは無い。400万以上貰える会社に内定もらっているから嫉妬も不満も特に無い。
だがしかし、ムカつく。
そんな奴が同期にいたら蹴り飛ばしてやりたくなる。
だが見てみろ、あいつらのアプリバックエンドが無いんだぞ?意欲は認める。だがそれで胸を張ってiOSエンジニアなんて無理があるだろ?
まじな話をすると、N予備校のプログラミング入門コースやるのがオススメ。
一日8時間勉強時間があるなら、だいたい一ヶ月で終わる内容。
月額1000円だけどしっかり勉強すれば一ヶ月の無料期間中に終わると思う。
もともとN高等学校のノンプログラマーの生徒をWebエンジニアとして就職させるために作られたカリキュラムで講師曰く去年はこれで二人エンジニア就職を決めたらしい。
内容も相当親切に説明していて、プログラミングで何か作るだけじゃなくて、就職に必要な環境構築やセキュリティまでみっちりやる。
で講師が書いてる入門コースで習うことがまとめ。テキスト教材もあるけど授業も1項目を2時間で説明している。授業は週2の生放送とそのアーカイブがある。
↓みたいなことが学べる
----
Web ブラウザとは (Chrome, デベロッパーコンソール, alert)
はじめてのHTML (VSCode, HTML, Emmet)
さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)
HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)
はじめてのJavaScript (JS, ES6, エラー)
JavaScriptでの計算 (値, 算術演算子, 変数, 代入)
JavaScriptで論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)
JavaScriptのループ (ループ, for)
JavaScriptのコレクション (コレクション, 配列, 添字, undefined)
JavaScriptの関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)
JavaScriptのオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)
はじめてのCSS (CSS, セレクタ, background-color, border)
CSSを使ったプログラミング (transform, id, class)
Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)
診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)
診断機能の組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)
ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)
LinuxというOS (VirtualBox, Vagrant, Ubuntuのインストール, OS, CUIの大切さ)
コンピューターの構成要素 (ノイマン型コンピューター, プロセス, lshw, man, ps, dfの使い方)
ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)
標準出力 (標準入力、標準出力、標準エラー出力、パイプ、grep)
vi (vimtutor)
シェルプログラミング (シバン, echo, read, 変数, if)
通信とネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)
サーバーとクライアント (tmux, nc, telnet)
HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)
GitHubでウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)
イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)
GitとGitHubと連携 (git, ssh, clone, pull)
GitHubへのpush (init, add, status, インデックス, commit, push, tag)
Gitのブランチ (branch, checkout, merge, gh-pages)
Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)
集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)
アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)
ライブラリ (ライブラリ, パッケージマネージャー, npm)
Slackのボット開発 (slack, mention, bot)
HubotとSlackアダプタ (hubot, yo)
モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)
ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)
同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)
例外処理 (try, catch, finally, throw)
HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsのイベントループ, リスナー)
HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)
HTMLのフォーム (フォームの仕組み, form, input)
HerokuでWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)
認証で利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)
Cookie を使った秘密の匿名掲示板 (Cookie, Set-Cookie, expire)
UI、URI、モジュールの設計 (モジュール設計, フォームのメソッド制限, リダイレクト, 302)
フォームによる投稿機能の実装 (モジュール性, textarea, 303)
認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)
データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)
トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)
削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)
管理者機能の実装 (Web サービスの管理責任, 管理者機能の重要性)
デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)
脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)
XSS脆弱性の対策 (XSS, 適切なエスケープ処理, リグレッション)
パスワードの脆弱性の対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)
セッション固定化攻撃脆弱性の対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)
より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)
安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)
Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)
ExpressのAPI (app, Properties, Request, Response, Router)
GitHubを使った外部認証 (Passport, OAuth)
テスティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)
継続的インテグレーション (CircleCI)
クライアントのフレームワーク (Webpack, Chrome 以外のブラウザでもES6)
DOM操作のフレームワーク (jQuery, jQueryアニメーション, this)
AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)
WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)
RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)
テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)
インデックス (インデックス, 複合インデックス, Bツリー)
集計とソート (SUM, COUNT, ORDER BY, GROUP BY)
「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計、モジュール設計、MVC)
認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)
予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)
予定とユーザーの一覧の表示 (非同期処理, Promise, then)
出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)
cruby を使っているならunicornにしてください。
crubyには、GVLがあるのでスレッドで動くアプリケーションサーバは、worker数を増やしたところで一定より性能は向上しないと思うんだよね。だってWEBアプリケーションってCPUバインドだもん。
アプリケーションがDB以外へのIOでリソースを食っているなら設計を見直したほうがいいし、最悪pumaを使ってください。
ちなみに開発環境でpumaが標準になっているのは、webrickと比べて静的ファイルの配信がはやく終わるからなんだよ。間違っても本番環境でpumaを推奨している訳じゃないからね。
ちなみにherokuの場合は、フロントにwebサーバを配置できないので、スロークライアントにunicorn workerを取られるくらいならpumaにします、という覚悟が必要。
大人向けのエンタメな動画をキュレーションするサイトを作ってみました。
18歳未満の人はみちゃだめです
このサイトはRailsで作ってherokuに乗せてみたんですが、いかんせん遅い。
もちろんherokuは札束で叩けばいくらでも早くなるんだけどそんなに予算もないし、そもそもそんなお金あったらこんなことしてない。
なのでどうにかしてお金を掛けずにサイトを高速化する方法を考えてたら1つアイデアが浮かんだのです。
それはサイト全体をCDNのCloudfrontに突っ込んでしまう事。
ルートドメインのDNS設定のCNAMEで、Cloudfrontのドメインを指定します。
そしてCloudfrontのオリジンをherokuのドメインに指定する。
こうすることでCSSとか画像ファイルだけでなく、HTMLも含めて全部のファイルをキャッシュすることができます。
そしてCloudfrontの設定で、HTMLファイルは10分とか1時間とか割と短めに設定して、
CSSとかJSとかは、Railsで作っているとMD5キャッシュが効いていて、勝手にキャッシュが無効化されるので、
1か月とかを指定すればよい。
効果としては、heroku単体でやるとHTMLファイルの応答が600msぐらいかかっていたのが、Cloudfrontでキャッシュさせると60msぐらいで帰ってくる。
もう超早い。10倍速い。
あとgzip配信したいので、gemでheroku-deflaterを入れる。
このgemはすごくて、herokuに乗っていると勝手にgzipに圧縮してくれる。
これによってCloudfrontの利用料を節約する。
僕のサイトの場合、このherokuのサーバーから配信しているのは、HTMLとCSSが1ファイルとあと画像が1つで合わせて10kBぐらいしかない。
こんだけだと、Cloudfrontの料金は100万PVでも1000円いかないぐらい。
http://av8.jp/ を作ってみたけどもう一歩、宣伝広告をしてですね、進みたくて、エロ駆動開発|煩悩駆動開発してしまいました。
結論から画像を取得したい blog などの RSS を登録してね。
https://avaheahe-bot.herokuapp.com/
そうすると
http://twitter.com/avaheahe で観られるよ。フォローを御願い致します ww
これを作ってて http://av8.jp/
これを盛り上げようと思って何か無いかなと思って web で調べてみると Twitter を使って誘導しろと言う感じの事を書いて有ったので成程と思い何かするかと考えて
そう言えば Heroku で PHP が使える様になったらしいからそれで何かやろうと思いました。 https://blog.heroku.com/archives/2014/4/29/introducing_the_new_php_on_heroku
RSS から画像を取って tweet をするものを作りました。(使った技術 https://github.com/dg/twitter-php )
でも RSS を登録するのが面倒になったので皆さんの力を使った方が良質の画像が取れるな〜。
heroku の不安と言えばアクセスが無ければ停止しちゃう事。servser の監視サービスの Uptime Robot を使えば OK
http://liginc.co.jp/web/tool/other-tool/92760
これからは、登録した RSS を見分ける為の Twitter の hash tag (#) を追加出来る改造をする位は考えてますが他に何か有った方が良いものって有りますかね。
追加されている RSS は下記です。
https://avaheahe-bot.herokuapp.com/rss_list.txt
bug が有るかもです。
あ、http://av8.jp/ を宜しく御願い致します(笑)
zm-message.herokuapp.com/#{文字列}
http://zm-message.herokuapp.com/%E5%B8%8C%E6%9C%9B%E3%81%AE%E6%9C%9D
これです。
よく「エロサイトを作ってみた」記事でバズったりしていたので憧れていました。
・20代後半
・言語 → Ruby, HTML, CSS, java script
・デザインテンプレート → Bootstrap(Bootswatch)
さて、仕事がエンジニアということもあり、技術的に苦労したわけでも、勉強に時間がかかったということでもありませんので、
今どきのエロサイトを作るために、効率よく作れるポイントを書いていきたいと思います。
http://apiactress.appspot.com/
このAPIで、簡単にあいうえお順に8000人のAV女優の名前、顔写真といったデータを取得することができます。コレを活用して、収集した動画データのタイトルとマッチングさせて、「◯◯の出演する動画」といったデータを作ることが出来ました。
大手のエロ動画のアンテナサイトなどでは、数百サイトのクローリングをしています。しかし、1件1件、RSSリンクを調べていては日がくれてしまいます。
ある大手のエロ動画サイトが巡回先をリストにして表示していてくれましたので、これを整形して、サイト名、URLのリストを作成しました。そして、この
URLからRSSリンクを抽出するプログラムを書きました。それにより、一瞬で数百サイトのRSSリンクのリストを手に入れることができました。
人妻、熟女、ギャルといった重要なキーワードで検索できることも重要です。そこで、ここでも大手サイトのトップページに表示されていた50個ほどのタグを
重要タグとして位置づけ、タイトルとマッチングをさせました。こうすることで、巨乳の動画、貧乳の動画などが探しやすくなりました。
また、URLからmeta keywordsを取得して、それを単語に分解してのタグ付けも実施しています。
Bootstrapが流行りましたが、そのままでは、流石にダサいということで、https://bootswatch.com/ のデザインテンプレートを使用しました。
こういった流れで約5日で、
といった主要な機能を備えたエロ動画を立ち上げること出来ました!
まだアクセスが自分しかいません。。。是非、皆様ご利用下さいm(_ _)m