はてなキーワード: RSSフィードとは
さっき消費者庁のRSSフィードを見てたらこんな記事があったんだ。
岡村消費者庁長官記者会見要旨(平成29年6月14日(水))|消費者庁
記者:
消費者庁の重大事故であるとか、非重大事故であるとか、注意喚起であるとか、そのウェブサイトの認知度を聞いたところ、
80%から90%が知らないという回答だったと。
例えばリコールの対象製品であったとしても、重大事故は年間100件前後で発生していることであるとか、先程の健康情報についても、
食品安全情報にしても、今日スタートされますけれども、どういう内容であるかということは関心が高まると思うのですが、
何よりもこのウェブサイトの認知度を上げるため、つまり社会的共有を図るためにどうしたら良いのかということについての検討とか、
委員会に任せるだけではなくて、消費者庁としてはどのような思いでしょうか。
長官:
例えばエンターテインメント系のインフルエンサーの方たちにこの消費者庁のサイトを知っていただくこととか、少しこれまでと違ったアプローチも含めて
考えたいと思っており、今、工夫をしようとしているところです。どうぞ皆様方のアイデア・ご教示大歓迎いたしますので、よろしくお願いいたします。
分かるよな?これはまさに増田の事だ。
国会まで轟く「日本死ね」を皮切りにインフルエンサー増田の歴史は始まったと言っても過言ではない。
メガドライブみたいに90年代のギラギラした野心を感じる名前だ。
良いじゃないの。ご教示してやろうじゃないの。
なんて言っても大歓迎されてるしね。
それは税金だぞ。
本物のインフルエンサーなら良いが、その本物はまずどこにいるんだよ。
そうだよ、俺達しかいない。
俺たちで出来ないならもういっそクジラックスにでも依頼すれば良い。
GmailやOutlookのようなウェブメールサービスを利用すれば、すべてのデバイスで簡単にメールアクセスとモバイルアプリを提供できますが、それらのメールサービスはあなたのデスクトップでの動作を保証するでしょうか?
今は、多くの人が複数のメールアカウントを持っている。これらのアカウントが異なるプロバイダを使用している場合は、一度に複数のブラウザタブを開く必要があります
便利な場所にすべてのメッセージを集約するだけでなく、優れた電子メールクライアントは、暗号化やカレンダー、RSSフィード、VoIPアプリケーションとの統合などの機能を追加できます。
デスクトップクライアントはメールをローカルに保存することもできるため、オフラインのときにアーカイブされたメッセージにアクセスしたり、貴重なバックアップを提供することができます。
さまざまな電子メールプロバイダと統合されたチャットをサポートする最高の電子メールクライアント
eM Clientは10年近く前から始まっています。その長い開発により、Windows用の最高の電子メールクライアントに発展することができたんや。
無料版は非営利目的の使用と2つの電子メールアカウントに限定されますが、それ以外の場合は有料版とおんなじ。
eM Clientには、Gmail、Exchange、iCloudおよびOutlook.com、タッチコントロール、高速検索、統合カレンダーおよび連絡先のサポートが含まれてん。JabberやGoogle Chatなどの一般的な標準をサポートする統合されたチャットアプリもあり、Outlookのような重量のあるアプリには良い選択肢ですわ。
あなたのメッセージを補う機能が満載されたすばらしいメールクライアント
Mailbird Liteは単なる電子メールアプリではなく、スケジューリング、チャット、ファイル同期、チームワークのためのアプリケーションを追加できるコミュニケーションプラットフォーム全体です。
Mailbirdをダウンロードした後は、Proバージョンの30日間試用版に対処されます。このバージョンは、月末にアップグレードしないことを選択した場合、限定版Light Editionにダウングレードされます。フリー・クライアントには時間制限はありません。
無料のユーザーは、速読、電子メールのスヌーズ、添付ファイルのクイックプレビューなどの機能を忘れていますが、Mailbird Liteは依然として優れた選択肢です。最大3つの電子メールアカウントをサポートし、スピードに合わせて最適化され、起動時に最適です。
セットアップは簡単です。電子メールの詳細を入力すると、Mailbird Liteは必要なPOPまたはIMAPの設定を自動的に見つけ、メッセージのインポートを開始します。あなたのFacebookアカウントに接続することができるので、あなたの連絡先のプロフィール写真であなたの受信トレイを活性化し、Whatsapp、Googleカレンダー、無料のタスクマネージャMoo.do、teamworking app Asanaにリンクすることもできます。
Claws Mailのシンプルなインターフェースは、より自信を持ったユーザーに適した強力な電子メールツールです
Claws Mailは使いにくくはありませんが、独自のメールフィルタリングに耐え、無制限の電子メールアカウントをサポートしたい経験豊富なユーザーに最適です。
ここの他のクライアントとは異なり、ClawsはユーザーにPOP3 / IMAP設定を手動で設定する必要があります。 Gmailを使用している場合は、Googleアカウントの設定を調整して、安全性の低いアプリケーションのアクセスを許可する必要があります。
古くは現代の電子メールクライアントでは、HTMLメッセージを送信するオプションはありません.Clawはプレーンテキストのみですが、不要な機能を省略することで、Clawは驚異的なスピードで動作します。その検索機能は特に優れており、プラグイン経由でも拡張できます。
それは最も美しい電子メールアプリケーションではありませんが、Clawsはあなたがスタイルを超えて物質を評価するならば、素晴らしい自由選択です。定期的に更新されているため、バグはすぐに除かれます。
すべてのデバイスでメールを管理するためのワンタイム設定の無料メールクライアント
Inkyの無料版はWindows、Mac OS X、およびAndroidで利用でき、ワンタイム設定は3つのプラットフォームすべてで使用するのに最適なメールクライアントになります!
電子メールクライアントをダウンロードしてインストールしたら、Inkyアカウントを作成するよう求められます。これにより、すべての電子メールアドレスがリンクされ、POPおよびIMAP設定を設定することなく、Inkyがインストールされた任意のデバイスからアクセスできるんです!
一度登録すればセットアップは簡単カンタン♪ 各アカウントのユーザー名とパスワードを入力すると、残りの部分をInkyが処理してくれちゃう。
日常的に使用されるInkyは優れた自動タグ機能、メッセージタイプ(個人、定期購読、ソーシャル、ノートなど)のインテリジェントなフィルタリング、デバイス間の非常に高速な検索とクラウド同期でわんだふるん♪。
Windows 7以降を使用していて、特定のメッセージやスレッドを見つけようと多くの時間を費やしている場合、Inkyは膨大な時間を節約できちゃうの!
優れたOperaウェブブラウザの背後にあるチームからの柔軟なオープンソース電子メールクライアント
Operaの開発者は、電子メールを常に優れたブラウザの重要な機能とみなし、無料の電子メールクライアントであるOpera Mailの開発に多大な努力を払ってきました。
その機能には、メッセージテンプレート(特に業務用に便利)、メッセージのフィルタリングとソート、タイプ別のメッセージソート、さまざまなカスタマイズオプションがあります。
クライアントはRSSフィードもインポートするので、Feedlyや欠けているGoogleリーダーなどのWebアプリケーションの代わりになります。
Mozillaから期待されるように、たくさんの機能があり、無料の拡張機能を利用することもできます
Firefoxと同様に、無料の電子メールクライアントThunderbirdはMozilla Foundationによって作成されました(しかし、2つの開発はそれ以来分離されています)。 ウェブブラウザと同様に、その機能は、サードパーティのアドオンの膨大な範囲で拡張され、強化されます。
優れたビルトイン機能には、電子メールには大きすぎるファイルと、電子メールと一緒にRSSニュースフィードを読む機能があります。
セットアップは簡単です。 ほとんどの現代の電子メールクライアントと同じように、必要なのはあなたのユーザー名とパスワードだけで、Thunderbirdは残りのものを処理します。
Windows Live Mailは、Windows 8および10のMailアプリケーションに取って代わられた2012年に最後に更新されました。ただし、Live Mailの比較的昔ながらの外観にもかかわらず、2つのプログラムはほぼ同じです。
Windows Live Mailは、私たちを含む多くの電子メールユーザーがより現代的ですが、最小限のデザインを好む3ペインのレイアウトを提供します。 RSSとクラウドベースの電子メールとPOP3をサポートし、添付ファイルを送信したり、複数のアカウントで作業したりすることが容易になります。
マイクロソフトのやり方が気に入っても、ウルトラスリムなWindows 10アプリケーションがあまりにも制限されているのを見つけたら、従来のWindows Live Mailは賢明な選択肢です。
*
なんかどこのサイトいってもフォーマットであるとか更新されてるかどうかわかるとか購入とか色々書いてあるけどさっぱり分からん
例えばFacebookボタンとかならFacebookにシェアするボタンとか用途と共に書いてある、ツイッターも同じだけど
一体設置したらどうなのかとかどう使われるのかとかそこんところ抜け落ちてフォーマットだとか言われてもまるで理解できない
Wikiでさえ3パターンの意味の揺らぎがしょっぱなにあってさらに混乱する
「RSS(アールエスエス)は、"Rich Site Summary"の略で、サイトの概要を記述する為のXML形式の文書です。 このRSSを提供したり、提供されたRSSのことをRSSフィード(RSS feed)といいます。」
RSSが何らかのサービスによって使われる要素ならそのサービスの内容と運用方法も照らし合わせて説明してくれよ。
なんでITってたまにこういうとんちきな説明だけで済ませようとすんのかね。
ひょっとして頭悪いんじゃないの?
初心者なので作業に時間がかかったせいでちょっと乗り遅れてしまいましたが、ポケモンGOの情報収集サイト作ってみました。
宣伝と備忘録をかねて今回アンテナサイトを作成するのに使用した情報をご紹介したいと思います。
ジャンルを変えれば自分の好きなジャンルでのアンテナサイトを作れるのでぜひ試してみて下さい。
URL:http://pokemon-go-matomesokuhou.com/
★お借りしたレンタルサーバー
有名なオープンソースのブログソフトウェア。「wordpressってそもそも何?」という方は下記をどうぞ。
・【まるで教科書】ワードプレスとは?を噛み砕いて解説!:http://worpre-lab.com/wp/
・WordPressとは? | WordPress超初心者講座 :http://wp-exp.com/blog/wordpress/
①FeedWordPress
・RSSフィードを読み込んで自動取得するプラグイン。今回他のポケモンGO情報サイト様方から記事を取得させて頂くのに使用しました。
②WP External Links
・サイト内から他のサイトのURLへ移動する際に自動で新しいタブを開くためのプラグイン。
情報元サイト様にご迷惑がかからないようにするため、あくまでも記事の閲覧は取得元のサイトで行って頂けるようにするために使用しました。
③Auto Post Thumbnail
・記事のサムネを自動で作成するプラグイン。取得元サイト様の取得記事の先頭にある画像でサムネを作成するために使用しました。
アンテナサイト向きのテーマと伺ったので使用させて頂きました。
・親テーマ:Hueman
参考サイト様:Hueman — 無料の WordPress テーマ
URL:https://ja.wordpress.org/themes/hueman/
参考サイト様:Being Hueman — 無料の WordPress テーマ
URL:https://ja.wordpress.org/themes/being-hueman/
取得した記事を下記の内容でソートして閲覧することが出来ます。
常に最新情報を取得するので重要情報を逃すことがありません。ネット上で一定以上話題になった事柄であれば確実に取得します。
【メニュー項目一覧】※これらの下に小メニューが別個ある場合があります。
・生息地・巣
・CP
・個体値
・経験値
・わざ
・厳選
・ジム
・ポケストップ
★参考サイト様方:今回のアンテナサイトを作成するに当たって参考にさせて頂いたサイト様方です。
・記事名:【アンテナサイト作成】FeedWordPressの使い方次第でできる3つのこと
・URL:http://www.versath.org/archives/2269
・URL:http://pigritia.com/wordpress/post-122
・記事名:FeedWordPressというプラグインを使いアンテナサイトを作る[WordPress,RSS]
・URL:http://pecoegg.com/website-65.html
正直、サービスの進化を感じないんだけど、みんな使いやすいと思っているのかな
色々気になる点はあるんだけど、特に一向に変わらないのが、最新のフィードをズラッと表示してしまう点だ
閲覧を数日放置すると凄まじいほどの未読が貯まり、整理するのが億劫になってしまう
溜まったら一括既読とかすればいいんだけど、記事を取りこぼした感があってすごく嫌な気持ちになる
閲覧を放置しなくても毎日大量の記事に対して「見る・見ない」を判別していくのもすごく高コストだ
また、フィードによって更新頻度が異なるため、一日に大量の更新があるものを購読しているとそればかり目について、他のフィードが埋もれてしまうこともストレスになる
タイトルとか記事本文の表示は必要なくて、そのサイト(ブログ)の更新があったかどうかがわかれば、それで十分なんだけどな
登録サイトが一覧で表示されていて、更新があったサイトのみバッチが付くとかそんな感じが良い
ただ、確実に取りこぼしたくないフィードもあるわけで、それらは別枠で表示して欲しい
これは、各フィードに対する購読の重要度みたいな設定ができると良い
現状の多々あるサービスの場合、少ないフィード購読だと利用に耐えうるんだが、大量になるととたんに高コストになり使わなくなってしまうものばかりだ(大チェッカーもね)
自己投資というのは、投資というからには将来的なメリットに還元される活動を指す言葉だ。より具体的に言うと、仕組み化の構築や、将来に渡って価値を生み続ける活動だ。
例えば、猛勉強して資格を取り、将来に渡り収入が増える場合などは、その勉強は自己投資だ。
あるいは、仕事の情報収集のために、RSSフィードを整理するなどの行動も、行動としては仔細だが、将来に渡り有益な情報を得られる仕組みをつくるという意味で自己投資だ。
ところが、疲れたからマッサージに行くのを自己投資という女がいる。あるいは服を買うのが自己投資という女もいる。
マッサージは単なる一時的な回復だし、必要ではあるが自己投資ではない。体力をつけて疲れない体を作るというならまだ自己投資かもしれないが、マッサージは単なる回復だ。
服を買うのは自己投資だろうか?もし服装によって明らかに仕事に良い影響が出る場合は自己投資だろうが、大半の場合はそこまで影響はないだろう。単なる浪費に過ぎない。
浪費をしたいだけの人間にとって、「自己投資」ほど都合のいいワードはないのだろう。自分で自分に自己投資と言い聞かせて、浪費を正当化したいだけだ。勘違いも甚だしい。
はてブviewer『Pasta』をReact + Reduxで作って公開した - bokuweb.me
これってちょっとデザインの良いキーワード検索でしかないじゃん。
公式のキーワード検索なら、「タグ」「タイトル」「本文」から検索できるし、
ブックマーク数によるフィルタリングもあるし(URLをいじれば無段階)、
ページネーションの横にある緑の四角をクリックすれば無限スクロールだし、
RSSフィードも配信されているし、
ちゃんと除外検索もできるし、
新着と人気で並び順も切り替えられるし、
期間指定もできるぞ!
…と言っても、けっこう長くはてブやってる人でも知らない人は多いんだろうなー
ボットでも人気エントリーや特定ジャンル追うやつは有益な使い方もできるんだが、
1つとかなら自称情報発信者かなって理解もできるんだが増えすぎ。なにかの予兆かなと思える。
傾向としては、
・現時点で2000以下のブクマ数かつお気に入りとお気に入られ数が少ない新規アカウントっぽい。
・Twitter連携しているが連携先Twitterもほぼ新規アカウントで他プライベートな事が書いてない。
・ブックマークした時間がほぼまとめて区切りごとにブックマークしてる。RSSフィードを見るとわかりFirefoxのRSSプレビューが簡単。
・珍しくアイコンが変えてあったりする。
・新旧両方のブクマページを使っている。
・なぜか今までそのはてなカテゴリにいなかったのに突如出没してる。
特に最後の人気エントリーとかでなく特定カテゴリの新着見てる人だと、
いきなり湧いてきたように感じるのでわかると思う。
追記
ちょっと書き方がわかりづらかったようなので補足。
特定カテゴリばっかり見てる人がその新しいアカウントに気づきやすいのであって、
なので有益なジャンルボットじゃなくて新着にも沸き、カテゴリ関係なく出てくる感じなの。
http://b.hatena.ne.jp/entry/271311936
http://b.hatena.ne.jp/entry/271761858
http://b.hatena.ne.jp/entry/271435969
http://b.hatena.ne.jp/entry/271438086
http://b.hatena.ne.jp/entry/271664394
見慣れない気になる人のブクマ一覧ページRSSでブクマ時間わかるからボットだとは思う。
上のURLで上げた怪しいアカウント4名は、エントリーページRSSを見るとほぼ同時刻にブクマしている。
ここから先は過去の話で関係ないけどこういうのもあった。もう活動してないっぽいけど。
http://b.hatena.ne.jp/entry/241296681
http://b.hatena.ne.jp/entry/241778739
http://b.hatena.ne.jp/entry/241933557
http://b.hatena.ne.jp/entry/242102650
俺、お気に入り対象決めるのに、昨日の自分がブクマしたエントリーページ見直す癖あるから気づきやすいんよ。
RSSフィードにちょうど1年前にぶくましたネタが降りてくるんですよ。
ちゃんと「ぶくま卸し」ってカテゴリに登録してるんだけど、全フィードごっちゃで見てるとたった今の話題と勘違いしたりしてね、あれーこの話題前に見たことあるなーとかね。面白い記事が来たんで最後までじっくり読んでいざぶくましようと思ったらとっくにされてたりとかして楽しかったのですよ。
あと、当時は勢いでぶくました記事を解除したりもしてました。ほんと、便利だったのに残念です。
9月末をもって終了した「Yahoo! Pipes」って、あちこちで使われているWikiみたいにすでにPipesという技術があってそれのYahoo版クローンと思い込んでいたので、代替サイト探せばあるだろうと思ってたんだけど、いざ探してみたらこれが無くて困りました。同じ機能を自分で開発出来る能力ないし。
もう何年も、日々自分がつけたぶくまを省みるという事をして来たので、これから先はぶくましっぱなしかと思うとただただ埋もれていくぶくまを思って何だか寂しい様な気分になる秋なのでした。
と思ったら 2014/10/01 のぶくまがRSSに降りてきてました。
時差かな?
私の持てる知識を絞り出してなんとか完成しました。
**************************************************************************************
完成したサイトがこちらです。
LapyNetニュース
**************************************************************************************
私は普段webとは関係ない仕事してます。なんとか休日を利用して、
メインのコードはこんな感じ
----------------------------------------------------------------------------------------------------------------------
App::uses('Sanitize', 'Utility'); class RssfeedsController extends AppController { public $helpers = array('Html','Form','Session','Number','Cache'); public $uses = array( 'Rssfeed', 'Tweet', 'Wadai', 'Rank', 'Oracle' ); ************************************************************************************** public function index() { $title_for_layout = "LapyNetニュース"; $content = "Hello World!!"; $this->set(compact('title_for_layout','content')); if(date("G")>0 and date("G") < 7){ $today = date("Y-m-d", strtotime('-1 day')); }else{ $today = date("Y-m-d"); } $params = array( 'conditions' = > array( 'and' = > array( 'Rssfeed.time' = > $today, )), 'order' = > 'tweets desc', 'limit' = > '50' ); $this- >set('posts',$this- >Rssfeed- >find('all',$params)); $paramz = array( 'order' = > 'Rssfeed.id desc', 'limit' = > '10' ); $this->set('posts2',$this->Rssfeed->find('all',$paramz)); $paramz = $this- >Rssfeed- >query('SELECT id,title FROM rssfeeds order by id desc limit 10'); $this->set('posts2', $paramz); $parapara = $this- >Oracle- >query('SELECT id,title FROM oracles order by id desc limit 10'); $this- >set('postx', $parapara); $funking = $this- >Rank- >query('SELECT id,frank FROM ranks where creation=(select max(creation) from ranks)'); $this- >set('funking', $funking); } ************************************************************************************** public function mizuno() { $parapara = array( 'order' => 'Oracle.id desc', 'limit' => '30' ); $recent_posts = $this->Oracle->find('all',$parapara); return $recent_posts; } ************************************************************************************** public function wadai() { if(date("G")>0 and date("G") < 7){ $today = date("Y-m-d", strtotime('-1 day')); }else{ $today = date("Y-m-d"); } $params = array( 'conditions' => array( 'and' => array( 'Rssfeed.time' => $today, 'Rssfeed.kubetu' => 4 )), 'order' => 'tweets desc', 'limit' => '100' ); $this->set('posts',$this->Rssfeed->find('all',$params)); $this->set("title_for_layout","2CHニュース-LapyNetニュース"); $paramz = array( 'order' => 'Rssfeed.id desc', 'limit' => '10' ); $this->set('postyy',$this->Rssfeed->find('all',$paramz)); $parapara = array( 'order' => 'Oracle.id desc', 'limit' => '10' ); $this->set('postyx',$this->Oracle->find('all',$parapara)); $funking = $this->Rank->query('SELECT * FROM ranks where creation=(select max(creation) from ranks)'); $this->set('funking', $funking); } ************************************************************************************** public function hot() { if(date("G")>0 and date("G") < 7){ $today = date("Y-m-d", strtotime('-1 day')); }else{ $today = date("Y-m-d"); } $params = array( 'conditions' => array( 'and' => array( 'Rssfeed.time' => $today, 'Rssfeed.kubetu' => 3 )), 'order' => 'tweets desc', 'limit' => '20' ); $title_for_layout = "LapyNetニュース"; $this->set("title_for_layout","ニュース-LapyNetニュース"); $this->set('posts',$this->Rssfeed->find('all',$params)); $parapara = array( 'order' => 'Oracle.id desc', 'limit' => '10' ); $this->set('postxx',$this->Oracle->find('all',$parapara)); $paramz = array( 'order' => 'Rssfeed.id desc', 'limit' => '10' ); $this->set('postsxxx',$this->Rssfeed->find('all',$paramz)); $funking = $this->Rank->query('SELECT * FROM ranks where creation=(select max(creation) from ranks)'); $this->set('funking', $funking); } ************************************************************************************** public function newnew() { if(date("G")>0 and date("G") < 7){ $today = date("Y-m-d", strtotime('-1 day')); }else{ $today = date("Y-m-d"); } $params = array( 'conditions' => array( 'and' => array( 'Rssfeed.time' => $today, 'Rssfeed.kubetu' => 2 )), 'order' => 'tweets desc', 'limit' => '20' ); $this->set("title_for_layout","エンタメニュース-LapyNetニュース"); $this->set('posts',$this->Rssfeed->find('all',$params)); $paramz = array( 'order' => 'Rssfeed.id desc', 'limit' => '10' ); $this->set('postszz',$this->Rssfeed->find('all',$paramz)); $paramz = $this->Oracle->query('SELECT id,title FROM rssfeeds order by id desc limit 10'); $this->set('postszz', $paramz); $parapara = $this->Oracle->query('SELECT id,title FROM oracles order by id desc limit 10'); $this->set('postzy', $parapara); $funking = $this->Rank->query('SELECT * FROM ranks where creation=(select max(creation) from ranks)'); $this->set('funking', $funking); } ************************************************************************************** public function top() { if(date("G")>0 and date("G") < 7){ $today = date("Y-m-d", strtotime('-1 day')); }else{ $today = date("Y-m-d"); } $params = array( 'conditions' => array( 'and' => array( 'Rssfeed.time' => $today, 'Rssfeed.kubetu' => 1 )), 'order' => 'tweets desc', 'limit' => '20' ); $this->set('posts',$this->Rssfeed->find('all',$params)); $param = array( 'conditions' => array('times > current_timestamp + interval -600 minute and Kubetu = 4'), 'order' => 'tweets desc', 'limit' => '30' ); $this->set('posts2',$this->Rssfeed->find('all',$param)); } ************************************************************************************** public function view($id = null ) { $this->Rssfeed->id = $id; //驥崎ヲ√↑荳譁・i縺励> $user = AuthComponent::user(); $TwimStatus = ClassRegistry::init('Twim.TwimStatus'); $TwimStatus->getDataSource()->setToken(AuthComponent::user()); $statuses = $TwimStatus->tweet(); $rairai = $this->Rssfeed->read(title,$id); $alcol = $this->Rssfeed->read(); $this->set('post', $alcol); $this->set('post2', $user); $this->set('post3', $statuses); $this->set("title_for_layout",$rairai[Rssfeed][title]."-LapyNetニュース"); $paramz = array( 'order' => 'Rssfeed.id desc', 'limit' => '20' ); $this->set('postszz',$this->Rssfeed->find('all',$paramz)); $parapara = array( 'order' => 'Oracle.id desc', 'limit' => '30' ); $this->set('postzy',$this->Oracle->find('all',$parapara)); } ************************************************************************************** public function add() { if($this->request->isPost()){ if($this->Tweet->save($this->data)) { $this->Session->setFlash('seikou'); $this->redirect(array('controller'=>'rssfeeds','action'=>'view',$contents11)); }else{ $this->Session->setFlash('sipai'); $this->redirect(array('controller'=>'rssfeeds','action'=>'view',$contents11)); } } } ************************************************************************************** public function delete($id = null) { $this->Rssfeed->id = $id; $this->set('set', $this->Rssfeed->read()); $this->redirect(array('controller'=>'tweets','action'=>'delete',$this->data['tweet']['rssfeed_id'])); } ************************************************************************************** public function oracle() { if($this->request->is('post')) { $user = AuthComponent::user(); $TwimStatus = ClassRegistry::init('Twim.TwimStatus'); $TwimStatus->getDataSource()->setToken(AuthComponent::user()); $contents1 = $this->request->data['Rssfeed']['contents']; $contents2 = $this->request->data; $statuses = $TwimStatus->tweet($contents1); if($this->Rssfeed->save($contents2)) { $this->Session->setFlash('成功です。'); $this->redirect(array('controller'=>'rssfeeds','action'=>'view',$contents11)); $this->redirect($this->referer()); }else{ $this->redirect(array('controller'=>'rssfeeds','action'=>'view',$contents11)); $this->Session->setFlash('失敗です。'); } } } ************************************************************************************** public function makelist() { $rssfeeds = $this->paginate(); if ($this->request->is('requested')) { return $rssfeeds; } else { $this->set('rssfeeds', $rssfeeds); } } } ---------------------------------------------------------------------------------------------------------------------- rssフィードはこんな感じです。 ---------------------------------------------------------------------------------------------------------------------- #!/usr/bin/php <?php header('Content-type: text/html; charset=UTF-8'); require_once ('/var/www/html/s/magpierss/rss_fetch.inc'); define('MAGPIE_CACHE_AGE', 60*5); define('MAGPIE_CACHE_DIR', '/var/www/html/s/cache/'); define('MAGPIE_OUTPUT_ENCODING','UTF-8'); $urls = array( '*********************************'); $items = getRssList($urls); echo '<ul>'; foreach ($items as $item) { $href = mb_convert_encoding($item['link'], "UTF-8", "auto"); $title = mb_convert_encoding($item['title'], "UTF-8", "auto"); $description = mb_convert_encoding($item['description'], "UTF-8", "auto"); $megami = mb_convert_encoding($description, "UTF-8", "auto"); ************************************************************************************** $all = 'http://urls.api.twitter.com/1/urls/count.json?url='.$href; $Rits = file_get_contents($all); $Olfe = mb_convert_encoding($Rits, 'UTF-8', 'auto'); $data = json_decode($Olfe); $tweets = $data->count; ************************************************************************************** $checkman = db_check_urls($href); $checkman2 = db_check_pr($title); $nowtimes = date('Ymd'); if($checkman == 0 &amp;&amp; $checkman2 == 0){ #$hrefs = urlencode($href); db_put_urls($nowtimes,$href,$title,$description,$tweets); echo "<li><a href=$href>$title</a><br>$megami<p>$tweets</p><p>$checkman</p></li>"; }else{ } } echo '</ul>'; ************************************************************************************** function getRssList($urls) { $rssitems = array(); foreach ($urls as $url) { $obj = fetch_rss($url); $rssitems = array_merge($rssitems, $obj->items); } return $rssitems; } ************************************************************************************** function db_check_pr($japanese){ $moji = mb_substr($japanese,0,2); if($moji == 'PR'){ return 1; }else{ return 0; } } ************************************************************************************** function db_check_urls($href){ require '/var/www/html/s/database_conf.php'; try { $db = new PDO($dsn, $dbUser, $dbPass); $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = 'SELECT count(*) AS count FROM rssfeeds WHERE urls = :language'; $prepare = $db->prepare($sql); $languages = array($href); foreach ($languages as $language) { $prepare->bindValue(':language', $language, PDO::PARAM_STR); $prepare->execute(); $result = $prepare->fetchColumn(); if ($result > 0) { return true; }else{ return false; } } } catch (PDOException $e) { echo 'エラーが発生しました。内容: ' . h($e->getMessage()); } function h($var) { return htmlspecialchars($var, ENT_QUOTES, 'UTF-8'); } } ************************************************************************************** function db_put_urls($nowtimes,$href,$title,$description,$tweets){ require '/var/www/html/s/database_conf.php'; try { $db = new PDO($dsn, $dbUser, $dbPass); $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sikibetu = 5; $moto = "アニゲー速報VIP"; $sql = 'insert into rssfeeds (id, time,urls,title,contents,tweets,times,kubetu,teikyo) values (?, ?, ?, ?, ?, ?, ?, ?, ?)'; $prepare = $db->prepare($sql); $prepare->bindValue(1, 0, PDO::PARAM_STR); $prepare->bindValue(2, $nowtimes, PDO::PARAM_STR); $prepare->bindValue(3, $href, PDO::PARAM_STR); $prepare->bindValue(4, $title, PDO::PARAM_STR); $prepare->bindValue(5, $description, PDO::PARAM_STR); $prepare->bindValue(6, $tweets, PDO::PARAM_STR); $prepare->bindValue(7, 'cast( now() as datetime)', PDO::PARAM_STR); $prepare->bindValue(8, $sikibetu, PDO::PARAM_STR); $prepare->bindValue(9, $moto, PDO::PARAM_STR); $prepare->execute(); } catch (PDOException $e) { echo 'エラーが発生しました。内容: ' . h($e->getMessage()); } } ?>
---------------------------------------------------------------------------------------------------------------------
**************************************************************************************
参考にした書籍
CakePHP2 実践入門 (WEB+DB PRESS plus)
CakePHP2 実践入門 (WEB+DB PRESS plus)
作者: 安藤祐介,岸田健一郎,新原雅司,市川快,渡辺一宏,鈴木則夫
発売日: 2012/09/29
購入: 5人 クリック: 165回
Webアプリ開発を加速する CakePHP2定番レシピ119
Webアプリ開発を加速する CakePHP2定番レシピ119
**************************************************************************************
一番難しいところはtwitterログインとwebサイト連結でした。
ツイート数でランキングしてます、ネットの話題を見つけられます。
ホームページビルダーを使用しています。
今のホームページビルダーは昔と違って高機能ですね。
テンプレートも何種類もあって今はすごいです。
に分かれています。
今更cakephpを使っている人は少ないかもしれませんが、
twitterアカウントあるといつでも参加できますので、
自称Sediment。ブコメで収まりそうにないので、こっちで書く。
結論から先に言うと、黒に近いグレーだと思う。利用規約内の財産権で「はてなブックマーク」に明確に言及した記載がないので曖昧だと思う。普通に考えれば、ユーザかサービス提供者が持ちそうだけどね。
サバカさんの言う、はてなニュースは白に近いグレーかなぁ。誰が著作権を持っているかは同じく曖昧だけど、それがユーザだとしても「本サイト内への掲載」に当たりそうだから。
https://www.hatena.ne.jp/rule/rule
第8条(当社の財産権)
3.ユーザーは、はてなダイアリー、はてなブログおよびはてなグループにおいて自己が作成した記事と、有料オプションを利用しているはてなグループのキーワードの内容、および、はてなフォトライフにおいて自己が送信した画像について、著作権を有するものとします。
4.本サービスの提供、利用促進及び本サービスの広告・宣伝の目的のために、当社はユーザーが著作権を保有する本サービスへ送信された情報を無償かつ非独占的に以下のような形式で掲載、配布することができ、ユーザーはこれを許諾するものとします。
国内・海外問わず、ここ5年くらいで急激に増加した印象を受ける。
RSSフィードで情報収集する身としてはウザいこと極まりない。
なぜ増えたのだろうか。
広告をブロックするアプリケーション(Weblock( https://itunes.apple.com/jp/app/weblock-adblock-for-ios/id558818638?mt=8&ign-mpt=uo%3D8 )やAdblock Plus for Android( https://adblockplus.org/en/android-install , http://gmbk0.tumblr.com/abpmod ))、アドオン(Adblock Plus( https://chrome.google.com/webstore/detail/adblock-plus/cfhdojbkjhnklbpkdaibdccddilifddb?hl=ja )やµBlock( https://chrome.google.com/webstore/detail/%C2%B5block/cjpalhdlnbpafiamejdnhcphjbkeiagm?hl=ja ))の影響もあるかもしれない。
私は素人なので『広告事情』はてんで分からないのだが、広告をコンテンツとして配信するのはやめてほしい。
まぁ、商品・サービスの代金には広告費も含まれているから『もう払いまくっている』と言えなくもないのだけれど。
ちなみに私が登録しているフィードはこれ( https://www.dropbox.com/s/9ycm2sscuc3sf4r/Feed_of_Stalin.opml?dl=0 )ね。
仕事っつってもキーボード用意してofficeなら別にandroidでも遜色なくいけるだろうし
プッシュ通知と共有メニューのおかげでSNSはandroidのほうが大幅に有利だし
androidアプリとwinのフリーソフトがタメ張れるかというと、ことライトユースではアプリのほうが利便性高いし
タブレットはがっつりやるにはスペックもモニタサイズも足りないし、デジタイザついてても仕事で使うような3Dはおろか2Dデザイン、イラストレーションですら無理だし
はてなの「Presso」を使いはじめた。初期設定のフローで促される「ジャンル」はすべて削除し(はてなブックマークのアプリの利用で互換されるため)、テキトーに好きなタグをフォローしている。好きな著名人、地元付近の地名、出身校、仕事上に必要なアプリケーションなど固有名詞のタグをフォローしている。
Presso、とてもいいと思う。Gunosy、Vingowの過ちを踏まずにいって欲しいと思う。
Gunosy、Vingowの過ちは、情報のキュレーションに特化していればいいものを、情報の軽量化までに手を出してしまったところだ。そこでニュース会社のアプリとの差別化(ひいてはRSSフィード系のサービスとの差別化)が難しくなってしまった。交通整理だけをしていればよいのに、道路を走る車のメンテナンスにまで手を出してしまったところが残念だ。
Gunosy、Vingowのようなサービスを利用するユーザーは、そもそもかなりヘビーに情報を求めにいく層だったはずだ。ニュース会社の一次情報発信に満足できない、情報収集フェチのような層がターゲットだった。彼らは情報の軽量化を求めていなかった。 三行まとめみたいなものは要らなくて、情報は重たいままでいいから、その情報に行きつくまでのフローを簡略化やストレスの排除を担って欲しかったのだ。その正解が、はてなのPressoだと感じる。
僕は毎日はてなを眺め、1,200〜1,500記事に目を通す。情報収集フェチだと思う。何の約に立つのかわからないが、情報のインプットに快楽をおぼえる。ビジネスマンとしての質の高めるとかそんなんじゃなく、もはや趣味の領域かもしれない。
はてなに次にやって欲しいことがある。月イチ程度で、自分がブックマークしたものをPDF化してまとめて送ってきて欲しい。読み返しのフローを充実させて欲しいのだ。僕のような流し読み勢は「あとで読む」はだいたい読まない。読まなければと思ってはてなを開けば、また更新されている数々の記事に目移りしてしまう。情報収集フェチのクズたるゆえんである。そんなクズな僕は、月に一度、PDF化された自分のブックマークが電子書籍的に届けば、タブレットに入れてはてな閲覧とは別世界で読むことができる。あるいは書籍化して届くというのもいいかもしれない。WEBの海を漂いながら「あとで書籍化」タグをつけたものが、月に一度、製本された紙媒体となって自宅へ届く。素晴らしい生活を送れる気がする。
nginxはキャッシュつかってませんし、php-fpmはインストール後のデフォルト状態、
Mysqlはインデックス適当でQueryCacheもOFFの状態…
前半で書いたとおり、サイトのスピードは現状adsenseの表示スピードに
引っ張られているので、このまま。
->aboutとかその辺
いろんなソシャゲのページを作りたかったので、
1.ヘッダー
2.サイドバー
3.メインコンテンツ
3,5.ページャー
4.フッター
またそれぞれ、総合ページからしか見られないコンポーネントと、
それぞれのコンポーネントをユーザ関数ではなく、ファイルをincludeする形で
最終的なinclude用のファイルが18個…
このあたりphpのプロの方はどうやって対処してるんでしょう…
ファイル+functionで分けてるんでしょうか…
また、総合ページとゲームカテゴリページのトップページのSQLの内容がぜんぜん違うため、
abbench(前半参照には情報だしてます)では秒間の処理可能数が倍(総合ページ100req/sec ゲームカテゴリ250req/sec)となっています。
細かく見ると、総合ページではカテゴリー一覧をselectした後に、記事リストをカテゴリーリスト別にselectしてますが、
各ゲームカテゴリページでは1回のselectで終わっています。
現在はゲームカテゴリは3つしか作っていませんが、将来的にはもちろん増やす予定ですので、
今後どんどん重たくなっていく見込み・・・
RSSフィードを取得するCronにあわせて総合ページのメインコンテンツ部分を静的HTMLにしていくのもありかなと。
そうすると負荷がかかるのは作成時の1回のみになるとおもいますので、ユーザさんから見たら早いページ表示になるかと。
ただし、総合ページってどれくらいの人がみられるんですかね…
巷のアンテナサイトさんは、ハテブのブックマーク数やtweet数などのSNSの評価数や、あとで読む機能、
特定のサイトを非表示にする機能など、結構いろいろな機能が付いてます。
今回は夏休み終了に間に合わせるために、というのもあって、ばっさり機能を落としましたが、
こういう機能って必要なんですかね・・・? 個人的に使ったことがないもので・・・
そういうニーズがあればつけてもいいとおもっているのですが、現状遅いサイトをさらに遅くはしたくないので、
adsenseを1個にして機能をつけるくらいなんでしょうかねー。
adsenseまったくなしだと、鯖代の維持がもったいなくてサイト閉めちゃう方向に動きたくなっちゃいますし。
プログラムのリファクタリングとデザインの変更は必須だなとおもっています。
とくにデザインは早いうちにどうにかしないといけないんですが、
これだけは自分のスキルにないので、そのうちLancersのお仕事一覧にのっちゃうかも…
もちょっといろいろなサイトを見て回って、構想を深めたいのですが、
個人レベルでの大規模サイトって、なかなかノウハウないんですよねー。
ある程度たまったら、こうしてみたらいいじゃない?ってのをまたここに書ければいいなぁとおもっています。
以上、長々とサラリーマンの日記を見てくださってありがとうございました。
(なんか規約違反で通報されたので、サイトURLと前半の日記へのリンクはなしでお願いします。
アンテナサイトとは、まとめサイトを、さらにまとめているサイトであり、
RSSフィードとという機能を使って、まとめサイトの更新情報を自動で取得して、一覧に並べてくれているサイトの事です。
楽々アンテナ&楽々アンテナV2 http://matomeru2ch.com/
まとめあんてな http://matomeantena.net/
ワロタあんてな http://matomeantena.com/
まとめサイト速報+ http://matome-plus.com/
まとめちゃんねる http://matomech.com/
ショボンあんてな http://www.shobon.jp/
2chまとめサイトのまとめ http://labo.tv/2chnews/
まとめブログあんてな http://matome-blog.jp/
VIPあんてな http://2ch-matome.net/
2chnavi http://2chnavi.net/
アナグロあんてな http://anaguro.yanen.org/
MatomeJa http://matomeja.jp/
勝つるあんてな http://katuru.com/
にゃんてな! http://nyan.eggtree.net/
Girls Reader http://girlsreader.com/
アテナあんてな http://athena.sakuratan.com/
ヘミ猫あんてな http://hemine.co/
2ちゃんねるまとめるまとめ http://2ch.matomemo.net/
2GET http://get2ch.net/
2chまとめインデックス http://matomeindex.com/
おまとめ http://0matome.com/
あんてな×あんてな http://antenna-antenna.com/
暇人(´・д・`)あんてな http://himazinsnow.blog.shinobi.jp/
シャキンあんてな http://www.shakin.in/
はいよるcっ゚Д゚)っこんとん http://www.konton.info/