はてなキーワード: セレクタとは
トヨタが2026年にリン酸鉄バイポーラ実用化してEV売るという話があるので真面目に検討してみたんだが
なかなか厳しくねぇか?
一軒家で太陽光で充電できる人じゃないと無理だと思う
俺はマンション住みで駐車場で充電できないから外で時間かけて充電する必要がある
それもスーパーの駐車場の普通充電だと、1時間で3kWhとかでしょ
電費7km/kWhで考えて21km分
それで下手したら200円くらいコストがかかるわけですが、今乗ってるHVで燃費街乗りでも21km/Lくらいは出るんですよね
EVの静粛性と加速の良さ、雑に運転できそうな点はかなり期待してるんだが
特に今乗ってるのTHSだから、アクセル開度見ながらエンジンのご機嫌を取らないと燃費が出ない
これがなかなか面倒くさい
開けすぎず緩すぎずギリギリのラインを調整して巡航速度までなるはやで上げ、減速は一瞬でも早くアクセル離して回生協調を意識してブレーキングする必要がある
めんどくさい…
EVだったら雑に加速して、巡航速度は一定を保つとして、回生セレクタで減速しながら止まればええんでしょ
魅力的なんだけどな~
ところでATTO3いいよな
補助金入れたらマジでその辺のSUVと変わらん値段になるし、装備も充実してるし、色々グレード作らない売り方も良い
シートがいまいちという感想があったのと、経済安全保障でいきなりファーウェイみたいな扱いになりそうで心配
リセールもクソだろうし悩ましい
THE FIRST TAKEは一発録りじゃないとかピッチ修正しているとかで話題になってるけど、
それに関して、尾崎豊は基本的に一発録りだったという記事を紹介したい。
これは尾崎豊のプロデューサーであった須藤 晃氏へのインタビュー記事だ。
https://www.musicman.co.jp/interview/19700
須藤:僕は自分がプロデューサーとしてレコードをつくっていくときに、ボーカルは一回しか歌わせないんですよ。「じゃあやろうか」と言って、歌ってもらって「はい、オーケー!」「えっ、もう一回やらせてください」「何回でもやっていいけど、俺は帰ります」と。
−− 普通は何回も録ってボーカルセレクタでいいところだけ繋いだりしますけどね。
須藤:高久さんもそうやっていましたけど、「それはないな」って僕はいつも思っていました。結局それが確信になったのは尾崎さんをやったときですね。尾崎さんも僕もキャリアがなかったですから、「歌って一回しか歌えないんだよ」「そういうもんだ」と彼に説明して「分かりました」と。
−− あれ全部一回なんですか?
須藤:ほぼ一回です。ボーカルの鮮度みたいなものがあるじゃないですか。きっとレコードを出すくらいの人というのは、歌はみんな上手いんですよ。それで上手い人って何度もやっていくと、どんどん技巧的になる感じがするんです。でも、人を惹き付けるのって下手な部分だと思うんですよね。
今の若い子のレコードを聴くと、みんなピッチコントローラーを使っていて音程は良いんですが、ひとつも面白くないですよね。音程がいいってことはそんなに重要なことじゃない、って僕は昔から思っています。
歌ってそんなものだし、誰かに自分の想いを伝えるときって理路整然とは言えないじゃないですか。どもりながらでも「好きだ」と遠回しに言ったりするわけで、かっこつけて「I love you」なんて言う人はいないでしょう? 歌ってそれと一緒だと思うんです。
尾崎さんの『I love you』って本当に一回しか歌ってないんです。だから、それしか世の中に流れてないんですよね。『I love you』のレコーディングにはプロダクションの人間も来ていなくて、僕とエンジニアと尾崎さんの3人だけでやったんですが、「オーケーいいね、いい感じいい感じ」って言っていたものが今も世の中に流れていて、何百万枚も売れているわけでしょう? そう思うとちょっとドキドキします。
よかったらリンク先で全文も読んでみてほしい。https://www.musicman.co.jp/interview/19700
色々ツールとかあるし色んな所でやり方が紹介されているから余裕でできるだろーって思う人多いと思うし、自分もそう思ってたけど冷静に考えて無理。
開発側が望むこととしてはサイト全体での利用が対象だけど大抵のツールは各ページごとにしか評価しないので、ガバガバ。例えばChromeにもCSSカバレッジ図る機能あるけどさ、ページ単位でしか動かない。
仮にサイト全体をクロールするとしても、JSの機能とか、ユーザーのログイン状況とか、ユーザーのステータスとかで表示が切り替わったときに有効になる特殊なCSSとかもあるわけで、それを全部カバーするにはどれくらいの労力が必要なのかって考えただけで萎える罠
ツールによってはソースコードに出てくる文字すべてをCSSのセレクタ名になりえる値として評価するとかいう超保守的なアルゴリズムで動くのもあるみたいだけど、それはそれでやっぱり不要なCSS残りまくるんじゃねーのと思います。
そういうの嫌ってJSの中にCSSを書きましょうみたいな変な宗教じみなムーブメントもおきてるけど、それってもうCSSとしてどうなん?って感じする。気持ち悪いけどこれに対する反論を適切に言語化できないので、必要だよ!って押し切られたらきつい。てかもうそういうことするくらいなら全部style属性直書きで良いんじゃない?って感じもする。
CSSってそもあってもなくても別にいいわけで、だってそうでしょW3Mとかでページ見たら装飾全部ぶっ殺されるわけですし、最新のブラウザだってスタイルを切る機能あるわけで、本来CSSみたいなおまけ機能がこうも重要に使われるものじゃなかったんだよ。でも実際は重要です。これが現実。
使っていないCSSが気になる〜。って人はそもCSSをアホみたいに使いすぎてるだけだし、最初からカスケーディングの設計しっかりしとけよ!っていうこと以外言うこと無い気がする。
くらいで良いんじゃね?って思うけど、どうしてもカテゴリを横断して出現する統一されたパーツみたいなのが出てきて、そういうパーツのスタイルがサービス全体のベーススタイルに追加されていって、肥大化する。ってのをよく見かける感じです。
まぁ不要なCSSを消すには、CSS自体のボリュームを下げて、適切にカスケーディングして、CSSを管理する人がこまめにメンテナンスする。以外に無いよな〜って言うのが結論だけど、こういうことって割と常識というか暗黙的にみんな知ってるっぽい気がするけど、ググってもあんまり情報出てこないんだけど、お前ら本当はクソみたいなCSSに埋もれて動けなくなってたりしないの?
自分は別にCSSそんなに管理してないけど、たまに手を付けるとまじでゴミまみれで、CSS書くやつはちゃんと捨てるときのことも考えてCSS書けよゴミ屋敷の住人じゃないんだから、集めっぱなしで捨てないとかアホのやることだろまじで。っていう感じです。
まじな話をすると、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, 子どもからデータを消す)
正しいHTML
block__element__elementは使用しない
GoogleChromeなら変換時に右側に△マーク〜
http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html
歴史のあるサイトだったりすると読んでも意味の分からないユーティリティ的なセレクタがよく出てくる。
こういうのが現実。
page.has_selector?(:xpath, '//table.tokushu1/tr.header/td[3]/div/div//span.click_left')
しかもA/Bテストが始まったりしてテスト書く負荷が高くなりメンテできなくなる。
はてブは便利だ。かれこれ使い続けて8年目になる。
それは2chをコピペしただけのデマまとめサイトがホットエントリとして頻繁に表示されてしまうことだ。
リンクをクリックしなければいいのだが、最近はタイトルだけで不快になるレベルのものも多い。
例えばここのところ、冷凍庫に入ったバイトをアップして炎上させる遊びがリア充の間で流行しているが、
「ハム速」というサイトはこういったものを毎回取り上げて、嫌でも目に付くタイトルで他人の個人情報を晒している。
しかし、はてなの運営はいつまで経っても非表示サイト機能を用意してくれないし、
こういったクソサイトを未だにブクマしてホッテントリ入りに貢献するはてなユーザーはあとを絶たない。
これらを弾くユーザースクリプトやユーザーCSSを書いてくれた人もいない。
仕方ないので、自分でまとめブログなどを除外するユーザーCSSを書いてみたら、恐ろしく快適になった。
とても便利なのでぜひ同志のはてブァーたちに使って欲しいのだが、
どこに公開していいか分からないので、とりあえず増田に投下してみることにした。
/* はてなブックマークから見たくないサイトを抹消&シンプルな表示で快適にするユーザースタイルシート */ /* V1.16 2016/5/1 22:25更新 政経ワロスまとめニュース♪を追加 */ /* V1.15 2016/3/16 11:25更新 診断メーカーを追加 */ /* V1.14 2015/6/2 17:51更新 やらおん! の独自ドメインを追加 */ /* V1.13 2014/2/13 14:42更新 大艦巨砲主義! を追加 */ /* V1.12 2014/2/13 10:27更新 保守速報の JP ドメインを追加 */ /* V1.11 2014/2/10 17:34更新 キムチ速報、ネトウヨ速報、ネトウヨにゅーす、はぅわ!、あじあにゅーす2ちゃんねるの独自ドメインを追加 */ /* V1.10 2014/1/28 19:32更新 使えるニュース-2ch を追加、はてブの仕様変更により新着エントリのサムネイルが表示されなくなっていたのを修正 */ /* V1.09 2013/12/09 17:46更新 売国速報(^ω^)を追加 */ /* V1.08 2013/12/08 13:02更新 ば韓国いい加減にしろ速報を追加 */ /* V1.07 2013/8/19 02:11更新 2ちゃん的韓国ニュースを追加 */ /* V1.06 2013/8/16 12:36更新 あじあにゅーす2ちゃんねる、笑韓ブログを追加 */ /* V1.05 2013/8/16 09:57更新 検索結果のエントリ詳細をサイトに関係なく消した。そこが気に入らなければ「, div.entryinfo」という文字列を削除 */ /* V1.04 2013/8/16 09:46更新 政経chを追加 */ /* V1.03 2013/8/15 20:34更新 秒刊SUNDAYを追加 */ /* V1.02 2013/8/15 16:55更新 U-1速報のURL間違いを修正 */ /* V1.01 2013/8/15 15:49更新 やらおん!を入れ忘れるという致命的なミスを犯したので修正 */ /* はてブ全体に適用 */ @-moz-document url-prefix("http://b.hatena.ne.jp/") { /* ブロックしたいサイトのリンクを非表示 */ A[HREF*="j-cast.com"], A[HREF*="j-cast.com"] ~ cite, A[HREF*="getnews.jp"], A[HREF*="getnews.jp"] ~ cite, A[HREF*="yukawanet.com"], A[HREF*="yukawanet.com"] ~ cite, A[HREF*="0taku.livedoor.biz"], A[HREF*="0taku.livedoor.biz"] ~ cite, A[HREF*="hamusoku.com"], A[HREF*="hamusoku.com"] ~ cite, A[HREF*="alfalfa.com"], A[HREF*="alfalfa.com"] ~ cite, A[HREF*="hoshusokuhou.com"], A[HREF*="hoshusokuhou.com"] ~ cite, A[HREF*="hosyusokuhou.jp"], A[HREF*="hosyusokuhou.jp"] ~ cite, A[HREF*="wara2ch.com"], A[HREF*="wara2ch.com"] ~ cite, A[HREF*="fxya.blog129.fc2.com"], A[HREF*="fxya.blog129.fc2.com"] ~ cite, A[HREF*="asianews2ch.livedoor.biz"], A[HREF*="asianews2ch.livedoor.biz"] ~ cite, A[HREF*="jin115.com"], A[HREF*="jin115.com"] ~ cite, A[HREF*="esuteru.com"], A[HREF*="esuteru.com"] ~ cite, A[HREF*="yaraon.blog109.fc2.com"], A[HREF*="yaraon.blog109.fc2.com"] ~ cite, A[HREF*="yaraon-blog.com"], A[HREF*="yaraon-blog.com"] ~ cite, A[HREF*="kanasoku.info"], A[HREF*="kanasoku.info"] ~ cite, A[HREF*="u1sokuhou.ldblog.jp"], A[HREF*="u1sokuhou.ldblog.jp"] ~ cite, A[HREF*="newskorea"], A[HREF*="newskorea"] ~ cite, A[HREF*="news-us.jp"], A[HREF*="news-us.jp"] ~ cite, A[HREF*="tokuteishimasuta.com"], A[HREF*="tokuteishimasuta.com"] ~ cite, A[HREF*="dqnplus"], A[HREF*="dqnplus"] ~ cite, A[HREF*="bakankokunews.blog.fc2.com"], A[HREF*="bakankokunews.blog.fc2.com"] ~ cite, A[HREF*="treasonnews.doorblog.jp"], A[HREF*="treasonnews.doorblog.jp"] ~ cite, A[HREF*="now2chblog.blog55.fc2.com"], A[HREF*="now2chblog.blog55.fc2.com"] ~ cite, A[HREF*="kimsoku.com"], A[HREF*="kimsoku.com"] ~ cite, A[HREF*="uyosoku.com"], A[HREF*="uyosoku.com"] ~ cite, A[HREF*="netouyonews.net"], A[HREF*="netouyonews.net"] ~ cite, A[HREF*="asia-news.jp"], A[HREF*="asia-news.jp"] ~ cite, A[HREF*="rakukan"], A[HREF*="rakukan"] ~ cite, A[HREF*="nico3q3q"], A[HREF*="nico3q3q"] ~ cite, A[HREF*="military38"], A[HREF*="military38"] ~ cite, A[HREF*="shindanmaker.com"], A[HREF*="shindanmaker.com"] ~ cite, A[HREF*="seikeidouga.blog.jp"], A[HREF*="seikeidouga.blog.jp"] ~ cite, /* ブロックしたいサイトのファビコンを非表示 */ IMG[SRC*="j-cast.com"], IMG[SRC*="getnews.jp"], IMG[SRC*="yukawanet.com"], IMG[SRC*="0taku.livedoor.biz"], IMG[SRC*="hamusoku.com"], IMG[SRC*="alfalfa.com"], IMG[SRC*="hoshusokuhou.com"], IMG[SRC*="hosyusokuhou.jp"], IMG[SRC*="wara2ch.com"], IMG[SRC*="fxya.blog129.fc2.com"], IMG[SRC*="asianews2ch.livedoor.biz"], IMG[SRC*="jin115.com"], IMG[SRC*="esuteru.com"], IMG[SRC*="yaraon.blog109.fc2.com"], IMG[SRC*="yaraon-blog.com"], IMG[SRC*="kanasoku.info"], IMG[SRC*="u1sokuhou.ldblog.jp"], IMG[SRC*="newskorea"], IMG[SRC*="news-us.jp"], IMG[SRC*="tokuteishimasuta.com"], IMG[SRC*="dqnplus"], IMG[SRC*="bakankokunews.blog.fc2.com"], IMG[SRC*="treasonnews.doorblog.jp"], IMG[SRC*="now2chblog.blog55.fc2.com"], IMG[SRC*="kimsoku.com"], IMG[SRC*="uyosoku.com"], IMG[SRC*="netouyonews.net"], IMG[SRC*="asia-news.jp"], IMG[SRC*="rakukan"], IMG[SRC*="nico3q3q"], IMG[SRC*="military38"], IMG[SRC*="shindanmaker.com"], IMG[SRC*="seikeidouga.blog.jp"], /* トップページのエントリ詳細、メタ情報、タグ一覧、検索結果のエントリ詳細を非表示 */ li.description blockquote, ul.entry-meta li.tag, div.entryinfo { display: none !important; } } /* ------------------------------------------- */ /* 新ユーザーページ (インタレスト、マイホットエントリー他) に適用 */ @-moz-document url-prefix("http://b.hatena.ne.jp/(はてなユーザー名)/interest"), url-prefix("http://b.hatena.ne.jp/(はてなユーザー名)/favorite"), url("http://b.hatena.ne.jp/(はてなユーザー名)/") { /* エントリ詳細を非表示 */ .entry-summary, .detail { display: none !important; } /* エントリ詳細をなくした分、サムネイルやカラムを小さく */ .entry-feature-image a.capture img { max-width: 60px !important; } .main-entry-list .entry-block.entry-feature-image { min-height: 32px !important; padding-left: 80px !important; } .entry-feature-image .entry-image-block, .entry-feature-image a.capture { width: 60px !important; max-height: 50px !important; } /* お気に入りユーザーのエントリ一覧を非表示に */ .main-entry-list .entry-comment .entry-comment-fold { display: none !important; } }
設定内容はいずれも同じで、こんな感じにする。
/* はてブ全体に適用 */ /* ブロックしたいサイトのリンクを非表示 */ A[HREF*="j-cast.com"], A[HREF*="j-cast.com"] ~ cite, A[HREF*="getnews.jp"], A[HREF*="getnews.jp"] ~ cite, A[HREF*="yukawanet.com"], A[HREF*="yukawanet.com"] ~ cite, A[HREF*="0taku.livedoor.biz"], A[HREF*="0taku.livedoor.biz"] ~ cite, A[HREF*="hamusoku.com"], A[HREF*="hamusoku.com"] ~ cite, A[HREF*="alfalfa.com"], A[HREF*="alfalfa.com"] ~ cite, A[HREF*="hoshusokuhou.com"], A[HREF*="hoshusokuhou.com"] ~ cite, A[HREF*="hosyusokuhou.jp"], A[HREF*="hosyusokuhou.jp"] ~ cite, A[HREF*="wara2ch.com"], A[HREF*="wara2ch.com"] ~ cite, A[HREF*="fxya.blog129.fc2.com"], A[HREF*="fxya.blog129.fc2.com"] ~ cite, A[HREF*="asianews2ch.livedoor.biz"], A[HREF*="asianews2ch.livedoor.biz"] ~ cite, A[HREF*="jin115.com"], A[HREF*="jin115.com"] ~ cite, A[HREF*="esuteru.com"], A[HREF*="esuteru.com"] ~ cite, A[HREF*="yaraon.blog109.fc2.com"], A[HREF*="yaraon.blog109.fc2.com"] ~ cite, A[HREF*="yaraon-blog.com"], A[HREF*="yaraon-blog.com"] ~ cite, A[HREF*="kanasoku.info"], A[HREF*="kanasoku.info"] ~ cite, A[HREF*="u1sokuhou.ldblog.jp"], A[HREF*="u1sokuhou.ldblog.jp"] ~ cite, A[HREF*="newskorea"], A[HREF*="newskorea"] ~ cite, A[HREF*="news-us.jp"], A[HREF*="news-us.jp"] ~ cite, A[HREF*="tokuteishimasuta.com"], A[HREF*="tokuteishimasuta.com"] ~ cite, A[HREF*="dqnplus"], A[HREF*="dqnplus"] ~ cite, A[HREF*="bakankokunews.blog.fc2.com"], A[HREF*="bakankokunews.blog.fc2.com"] ~ cite, A[HREF*="treasonnews.doorblog.jp"], A[HREF*="treasonnews.doorblog.jp"] ~ cite, A[HREF*="now2chblog.blog55.fc2.com"], A[HREF*="now2chblog.blog55.fc2.com"] ~ cite, A[HREF*="kimsoku.com"], A[HREF*="kimsoku.com"] ~ cite, A[HREF*="uyosoku.com"], A[HREF*="uyosoku.com"] ~ cite, A[HREF*="netouyonews.net"], A[HREF*="netouyonews.net"] ~ cite, A[HREF*="asia-news.jp"], A[HREF*="asia-news.jp"] ~ cite, A[HREF*="rakukan"], A[HREF*="rakukan"] ~ cite, A[HREF*="nico3q3q"], A[HREF*="nico3q3q"] ~ cite, A[HREF*="military38"], A[HREF*="military38"] ~ cite, A[HREF*="shindanmaker.com"], A[HREF*="shindanmaker.com"] ~ cite, /* ブロックしたいサイトのファビコンを非表示 */ IMG[SRC*="j-cast.com"], IMG[SRC*="getnews.jp"], IMG[SRC*="yukawanet.com"], IMG[SRC*="0taku.livedoor.biz"], IMG[SRC*="hamusoku.com"], IMG[SRC*="alfalfa.com"], IMG[SRC*="hoshusokuhou.com"], IMG[SRC*="hosyusokuhou.jp"], IMG[SRC*="wara2ch.com"], IMG[SRC*="fxya.blog129.fc2.com"], IMG[SRC*="asianews2ch.livedoor.biz"], IMG[SRC*="jin115.com"], IMG[SRC*="esuteru.com"], IMG[SRC*="yaraon.blog109.fc2.com"], IMG[SRC*="yaraon-blog.com"], IMG[SRC*="kanasoku.info"], IMG[SRC*="u1sokuhou.ldblog.jp"], IMG[SRC*="newskorea"], IMG[SRC*="news-us.jp"], IMG[SRC*="tokuteishimasuta.com"], IMG[SRC*="dqnplus"], IMG[SRC*="bakankokunews.blog.fc2.com"], IMG[SRC*="treasonnews.doorblog.jp"], IMG[SRC*="now2chblog.blog55.fc2.com"], IMG[SRC*="kimsoku.com"], IMG[SRC*="uyosoku.com"], IMG[SRC*="netouyonews.net"], IMG[SRC*="asia-news.jp"], IMG[SRC*="rakukan"], IMG[SRC*="nico3q3q"], IMG[SRC*="military38"], IMG[SRC*="shindanmaker.com"], /* トップページのエントリ詳細、メタ情報、タグ一覧、検索結果のエントリ詳細を非表示 */ li.description blockquote, ul.entry-meta li.tag, div.entryinfo { display: none !important; }
/* 新ユーザーページ内 (インタレスト、マイホットエントリー他) に適用 */ /* エントリ詳細を非表示 */ .entry-summary, .detail { display: none !important; } /* エントリ詳細をなくした分、サムネイルやカラムを小さく */ .entry-feature-image a.capture img { max-width: 60px !important; } .main-entry-list .entry-block.entry-feature-image { min-height: 32px !important; padding-left: 80px !important; } .entry-feature-image .entry-image-block, .entry-feature-image a.capture { width: 60px !important; max-height: 50px !important; } /* お気に入りユーザーのエントリ一覧を非表示に */ .main-entry-list .entry-comment .entry-comment-fold { display: none !important; }
使い方が分からなければブコメかトラックバックで言ってくれたら補足するかも
字数がオーバーしていたことに気づいたので http://anond.hatelabo.jp/20140421135649 に続きます。
【お知らせ】2011/09/07
http://d.hatena.ne.jp/uniqueweb/20110906/1315285545
プログラムは全く得意じゃないけれど最近よく見かけるようになったエロ動画検索を自分でも作ってみたくて頑張ってみました。
近年、インターネットの普及によりエロ動画が自宅で簡単に見れるという素晴らしい時代になりました。
自分が若い頃はインターネットなんてものはなくエロビデオが主流でドキドキしながらレンタルビデオ屋に行き、可愛い女の子がレジにいない隙を見計らってお兄さんにパッケージを伏せて空箱を渡しビデオを借りたものでした。
お兄さんにビデオの空箱を渡そうとした時に可愛い子がレジに戻ってきて焦って渡すのをやめてものすごく変な動きをしながらエロビコーナーに引き返していくなんてことも多々ありましたw
僕のお気に入りといえば「白石ひとみ」や「あいだもも」といった女優でよく借りてました。エロビを借りるということがものすごく恥ずかしい時代?年頃?でカモフラージュに普通のビデオと一緒に借りるということもしていました。それはそれは大変な思いでオナニーしてたんです!
しかも、ビデオデッキ自体が貴重な時代でリビングに一台しかないのが当たり前でした。
深夜家族が寝静まってからヘッドフォンとビデオを抱えリビングに行き暗がりの中でヘッドフォンをテレビに差し込んでビデオの再生ボタンを期待に胸をふくらませながら押したものです。いいシーンを何回も見るためにビデオを巻き戻すんですが、ビデオを巻き戻すガチャンガチャンという機械音で家族が起きてこないか?とかそれはそれはドキドキしながら見てました。一仕事終えたあとヘッドフォンを外したらジャックが外れていて大音量で喘ぎ声が響き渡っていたなんてこともありました。誰も起きてこなかったのは優しさなんでしょうか?w
さて、大分前置きが長くなりましたがエロというものはものすごい技術発展させるものだと思います。エロのおかげで日本でビデオは普及しエロのおかげで日本でインターネットはものすごく普及したと言っていいと思います。自分もエロを通して技術の発展に貢献し自分自身のスキルアップになれば。という高い志を持ってこのサイトを制作しました。決して自らのオナニーライフの充実と性癖を充たすため作ったわけではありません・・・w
※2011.08.07 利用中のサーバーに障害が発生しているようで現在サーバーに接続できない状態となっています・・・
サイト名の由来は抜きネタからきています。抜きネーター、ヌキネーターという感じですw
エロサイトの制作工程を日記にしてみたんで良かったら読んで下さい。そしてこのサイトを使って夜いろいろと励んでくれたら嬉しいです。
まず前提条件としてお金をほとんどかけたくない。アダルトサイトであるということから
月の予算は5000円以内で考えていたのでけっこう探すのが大変でした。
日本でアダルトサイトを許可している所はかなり限られていてさらにやりたいことができるのは
専用サーバーかVPSしかないのでそうなると専用サーバーは予算オーバーなので
VPSで探すことになり検索しまくってはじめに見つけたVPSはKAGOYAのVPSだったのですがβ版で募集を締め切っていて泣く泣く諦めました。
KAGOYAはかなり評判がいいみたいなので使ってみたかった。
次に見つけたのが○○○VPS。海外サーバーで日本語サポートがあり転送量の制限なしディスク容量100G
月1300円程度で借りれるということで初期設定費用に5000円程度かかりましたが借りてみました。
結果、ここは最悪でした。
あまりの酷さに1ヶ月で解約。
よく調べてみたら評判がものすごく悪い某VPSの再販らしいです。
もう失敗したくないと思い今度は比較的有名な海外サーバーLINODE。
iptablesの設定でどうしてもうまくいかなくて拙い英語でメールしてみたら
10分しないうちに返信がきました!
メールに書かれているとおりにコマンドを入力したらあっさり解決。
担当のブライアンはなぜか分からないけどとてもフレンドリーで親切に感じましたw
LINODEは複数のディストリビューションから好きなものを選択できるので
とりあえず、64bit版を選択。
一番面倒だけど重要だということで
Tripwire
ほんとに面倒でした。
はじめはmysqlにストレージエンジンgroongaを使おうと思ったのですが
初めに借りた最悪なVPSはOSが32bit版だったのでgroongaがのソースが見つからずなぜかと思っていたら
どこかで見つけた記事で32bit版ではgroongaの性能を発揮しきれないということで32bit版の提供をやめてしまったらしいと書いてたので
じゃあ、sennaにするかということで最悪VPSでsennaをインストール。
その後LINODEに変更したのでOSに64bit版を選択し念願のgroongaをインストール。
しかし、調べてみると
プログラムもそれに合わせてその都度書き換えたので2度手間どころか3度手間4度手間でした・・・
まず
そして下記の順番でインストール
rpm -ivh mecab-0.98-tritonn.1.0.12a.x86_64.rpm
rpm -ivh mecab-ipadic-2.7.0.20070801-tritonn.1.0.12a.x86_64.rpm
rpm -ivh senna-1.1.4-tritonn.1.0.12a.x86_64.rpm
rpm -ivh MySQL-shared-5.0.87-tritonn.1.0.12a.x86_64.rpm
rpm -ivh MySQL-client-5.0.87-tritonn.1.0.12a.x86_64.rpm
rpm -ivh MySQL-server-5.0.87-tritonn.1.0.12a.x86_64.rpm
rpm -ivh MySQL-devel-5.0.87-tritonn.1.0.12a.x86_64.rpm
my.cnfの設定をして終了
で肝心の全文検索ですがデータ件数が5万件程度で少ないせいなのか、あいまい検索と比べてそれほど速さを実感できなかったです・・・
でもきっとすごく速くなったはず!
ちなみに「麻美ゆま おっぱい」で検索した場合、0.01 secで結果が返ってきました。
さて、動画データの作成ですがいくつかのエロサイト等制作記事でもあるようにスクレイピングということをします。
スクレイピングとはWEBサイトから特定の情報だけを取得することでネット上にあるサイトをクロールして必要なデータだけを拾ってデータを作るといった感じでしょうか。
スクレイピングのプログラム自体は以前にTidy関数を使って為替データを10分おきに取得するような物を作ったことがあったのでそれほど時間はかからないかなと思ったのですがけっこう時間かかりました。
スクレイピングにはTidyとhtmlSQL、それにPHP Simple HTML DOM Parserを使いました。
SQL みたいな文法で HTML を抽出する PHP のライブラリ
htmlSQLよりアツい!?jQueryみたいにセレクタでHTMLをparse(解析)する「PHP Simple HTML DOM Parser」
3つの中で抜群に使えるのはPHP Simple HTML DOM Parserだったんですが
ループ処理させるとメモリがすごいことになって今回のようなスクレイピングに向いてないみたいで
結局、htmlSQLとTidyの両方を使ってスクレイピングしました。
両方ともPHP Simple HTML DOM Parserに比べるとうまくデータの取得ができないことが多く残念な感じなんですが他に選択肢がないので・・・
使える順に並べると
といった感じかもしれません。
おおまかにデータを取得して正規表現で特定データを抜き出しました。
http://affiliate.dmm.com/link.html
利用可能な物はパッケージ画像、サンプル画像(縮小)と書かれていたのでそれに従い画像を利用。
注記に※ユーザーレビューは引用いただけません。とだけ書かれているのでそれ以外は引用ありと判断して説明文とタイトルなどを利用
女優データとジャンルデータ、DVDデータ、を紐付けたデータベースを作成し検索ワードに応じて検索結果に関連する商品を表示させるようにしました。
現状、売り上げ0で意味があるのか分かりませんけどw
エロサイトということで多少はチューニングとか設定とかしないとまずいかもと思い色々調べて設定しました。
やったこと
KeepAlive On MaxKeepAliveRequests 60 KeepAliveTimeout 3 <IfModule prefork.c> StartServers 7 MinSpareServers 5 MaxSpareServers 10 ServerLimit 30 MaxClients 30 MaxRequestsPerChild 4000 </IfModule>
様子見ということで2日間で設定してみました。
query_cache_limit=1M
query_cache_min_res_unit=4k
query_cache_size=16M
query_cache_type=1
とりあえずこんなところを設定してみましたが、爆発的なアクセスがあるわけでもないので有効なのか今のところ分かりません(-_-;)
Apache Benchでテストはしてみましたけど問題はない感じですが実際にチューニングができているか分かりません。
プログラマーとして有名なゆうすけさんのサイトとgoogleを参考にしました。
シンプルで使いやすいようにしようと思いこのデザインにしました。
クロスブラウザはIE7、firefox3、chromeで行いました。
可変ものって作ったことなかったんですがけっこう面倒なんですね。
ブックマーク機能とメニューの折りたたみ機能、検索結果の表示方法切替を作りました。
まず、ブックマーク機能ですがログインなしで気に入った動画をブックマークできるようにしました。
ブックマークに追加した動画はブックマークページで確認できるようにしました。
cookie機能を利用したらいけると思い色々調べてjquery.cookie.jsを利用。
保存したクッキー情報を呼び出してphpに渡して処理し指定要素にブックマーク一覧をloadメソッドで表示させるという感じです。
$(function(){ $("#youso").load("xxx.php"); });
メニューの折りたたみ機能は人気AV女優やAV女優別、人気タグなどをそのまま表示させるとずらっと長くなって邪魔だったのでつけました。
これには同じくjquery.cookie.jsを利用しました。
参考サイト:http://blog.caraldo.net/2009/03/newjqqookiemenu.php
検索結果の表示方法切替にはZoomer Galleryを利用しました。
参考URL:http://phpjavascriptroom.com/?t=ajax&p=jquery_plugin_zoom#a_zoomergallery
検索結果ページで表示される
[ここの画像]
××× の検索結果
44件中 1~10件目を表示
ここの画像の部分をクリックするとgoogleイメージ検索みたいに一覧でイメージ表示できるようにしてみました。
基本的に動画の埋め込みを許可しているサイトのみプレイヤー表示をしそれ以外は画像を表示し動画データへリンクするようにしました。
埋め込み部分はあらかじめそれぞれのサイトに対応したプレーヤー部分のコードを記述しVIDEOIDの部分に置き換えるような形にしました。
XVIDEOSを例にすると
XVIDEOSの場合かならず動画のurlがhttp://www.xvideos.com/videoXXXXXX/のようになりますのでXXXXXXの部分を
VIDEOID部分に置き換えるようにプログラムを組みました、
埋め込み部のソース
>||<object width="510" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" ><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://static.xvideos.com/swf/flv_player_site_v4.swf" /><param name="allowFullScreen" value="true" /><param name="flashvars" value="id_video=VIDEOID" /><embed src="http://static.xvideos.com/swf/flv_player_site_v4.swf" allowscriptaccess="always" width="510" height="400" menu="false" quality="high" bgcolor="#000000" allowfullscreen="true" flashvars="id_video=VIDEOID" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>
||<
その他の動画サイトもURLの一部分のデータを使っているので同様の処理をしました。
実際の作業は2、3週間ですが色々調べる時間が多くて制作に2ヶ月くらいかかりました。
自分でエロ動画検索を作ってみて有名プログラマーさん達がいかに優秀なのか思い知らされました。
全くWEBの知識がない人で4、5ヶ月ですごいの作っちゃう人とかもいるみたいですし世の中広いな~と思います。
大分、色んな知識を得ることができました。
これからプラグラムを勉強しようと思う人はぜひエロサイトから入ってみて下さい。
そんなこんなで?頑張って作ってみたエロ動画検索、良かったら使ってみて下さい。
これで少しは技術の発展に役立てたでしょうか?w
P.S エロサイトを作っていてはじめは楽しくて興奮しながら作ってたのですが最後の方はエロい物を見ても全く反応しなくなりましたw
不能ではないんですけど・・・今現在も性欲が著しく減退しております・・・
そしてスーパーpre記法がうまういかないのはなぜ?はてな匿名ダイアリー初投稿で全然分からない・・・
そしてそしてプログラマーさんとかデザイナーさんとかエロい人とかお気軽にお声をおかけ下さい。
【お知らせ】2011/09/07
ご紹介いいただいたgreasemonkeyをインストールすると、特定IDの「このエントリーを含む日記」を非表示にすることができるのですか?
舌足らずでした。
現状のままでは出来ません。しかし、たぶん若干の変更で対応できます。
このグリモンには、非表示にする条件を設定するためのインターフェースがありません。設定は直接スクリプトファイルを書き換えて行います。いうなれば雛形みたいなものです。
ですので、若干でも、javascript、正規表現、xpathが理解できる人が対象です。
ちなみに、具体的に書き換えるべき変数は、itemxpathと、filters配列です。
というわけで、上記は敷居が高いのですが、rikuoさんのまとめ記事の方で、幾つかその他の方法が上げられています。いずれも、コメントに対するものですが、含む日記に応用できるものがあります。詳しくは記事を読んでいただくとして、
以下、書き換え用自分メモ
http://anond.hatelabo.jp/20080302041829
p,img,iframe,a,font,b,input,select,.text,.navbar,.style1,.style4,.style26,.topnav,.navtitle { display:none!important; }
とりあえずセレクタの使い方が間違ってるのはTypoかね、最後のカンマが要らない。
やるならちゃんと書きなさい。