「text」を含む日記 RSS

はてなキーワード: textとは

2017-03-10

スパ!の幸福の科学広告女子スパ!の幸福の科学記事の連動性に「?」

最初きっかけは「何これ?」っていうハテナマークだったのよね。

「ああ、これは幸福の科学イタコ本の広告か」、

と気づいたときには「扶桑社も大変なのね」って悲しい気持ち

何がって、3月7日(火)に発売された週刊スパ!の後半カラーページに

幸福の科学星野源イタコ本の宣伝が丸々1ページのってたのよね。

夕刊ゲンダイなんかには以前からのってたけど

いまのこの時期に幸福の科学の本の広告をのせるってのは、

週刊誌編集部としては悩むと思うのよね。

それでも、のせたというのはすごく広告料が高かったと思うのよね。

ただまあ、本の広告をのせるくらいは仕方ない、まあいいじゃないと思うよね。

でもね、ヤフーニュースを見てたら、ヘンな記事を見つけたのよ。それが下の記事ね。

星野源前世でも恋ダンス?“幸福の科学カフェ”で芸能人前世を調べてみた」

http://zasshi.news.yahoo.co.jp/article?a=20170304-00668142-jspa-life

この記事は当然女子スパ!にものってるのよね。記事の公開日は両方とも3月4日(土)。

https://joshi-spa.jp/668142

魚拓

http://megalodon.jp/2017-0309-2116-55/https://joshi-spa.jp:443/668142

http://megalodon.jp/2017-0309-2125-50/https://joshi-spa.jp:443/668142?page=2

この記事、、、ちょっと自然じゃない?

スパ!のスタンスってもっとイジワルな視線とかがあってもおかしくないと思うのよ。

でもこの記事幸福の科学を笑うわけでもなく、銀座カフェを紹介して、最後には

「というわけで、潜入してみて感じたことは、「うん、なんだかいカフェかもしれない」ってことですね」

って書いて終わってるのよね。ぜんぜんスパっぽくないね

3月4日に女子スパ!に幸福の科学カフェ宣伝みたいな記事がのって、

それをヤフーニュースに流用して、

3月7日に週刊スパ!に幸福の科学イタコ本の広告がのる。

これって偶然なのかな? 

広告のせるのが決まってるのに、無断でカフェに潜入取材って

リスク大きすぎると思うのよね。雑誌やってる人ならわかるでしょ?

雑誌って、よくあるのよね。

スキャンダルがのる、ちょうどおなじ時期に広告がのる予定があると、

スキャンダルをのせる時期を少し遅くしたりするの。

それだからこの女子スパ!の記事おもしろおかしい内容にするなら公開する時期をずらせばいいんだよね。

でも、そんなことはせずに、淡々幸福の科学がやってるカフェを紹介してるのよ。

広告が乗る寸前のタイミングに、無断で潜入取材っていうリスクを背負ってまで。

それもおもしろおかしバカにするスタンスでもないのによ。

それでこの記事ライタークレジット表記が<TEXT女子SPA!編集部>なのよね。

見てみればわかるけど、女子スパ!の記事の多くはライター名前がのってるのに、

この幸福の科学記事編集部名前なのよ。

ライターを守るため? 別に幸福の科学バカにしてる記事でもないのに?

ヤフーニュースは一応調べたほうがいいと思うのよね。

前にもステマが取り沙汰されたことはあったけどあのときは何か売るくらいだったでしょ? 

だけど今回は宗教からね。これはメディアとして倫理的にすんごくヤバくない?

2017-02-07

英語読むのってこんなに簡単だったのか

javascript:var%20t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection&&document.selection.createRange&&document.selection.createRange().text));var%20e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/?text='+t+'&hl=ja&langpair=auto|ja&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+encodeURIComponent(location.href)+'&hl=ja&langpair=auto|ja&tbb=1&ie='+e;};

これをブックマークレットとして呼び出すだけで英語がスラスラ読める。

スゴイ。

あんな難しそうだった英文が実は「痩せたいけどご飯が美味しくてつい食べ過ぎちゃって困るの><」とかい女の子かわいい愚痴だったよ。

っていうか日本人日本語って頭に入ってきづらい。

変に感情が入ってきて。

2016-12-27

Sublime Text って

最近話題聞かないけどもう流行わっちゃった?

もう触らなくていい?

2016-11-13

スパムの消し方を教える

1.TampermonkeyまたはGreasemonkeyを導入する

Tampermonkey

https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ja

Greasemonkey

https://addons.mozilla.org/de/firefox/addon/greasemonkey/


2.次のスクリプトを追加する

// ==UserScript==

// @name unvisualizer

// @namespace http://anond.hatelabo.jp/

// @description unvisualize section including specific word at Hatelabo::AnonymousDiary

// @include http://anond.hatelabo.jp/*

// @exclude http://anond.hatelabo.jp/hatena/*

// ==/UserScript==

(function() {

var target = document.evaluate(

"//div[@class='section' and descendant::*[contains(text(),'Troyes') or contains(text(),'fiorentina') or contains(text(),'genoa') or contains(text(),'forums.zoho') or contains(text(),'medhelp.zendesk') or contains(text(),'.co.uk/') or contains(text(),'elbertcountyrepublicans') or contains(text(),'purob.com') or contains(text(),'imvu.com') or contains(text(),'thelittleonescollection') or contains(text(),'nfyi.org') or contains(text(),'usa-fox-tv.kinja.com') or contains(text(),'livestream1.odiblogs.com') or contains(text(),'reddit.com') or contains(text(),'huffduffer.com') or contains(text(),'healthunlocked.com')or contains(text(),'surveymonkey.com')or contains(text(),'yakmari.kinja.com')or contains(text(),'putlockeronline') or contains(text(),'freefullmovies.website') or contains(text(),'change.org')or contains(text(),'nervefullmovie.com') or contains(text(),'navtv.co.za')or contains(text(),'Hrvatska')]]",

document,

null,

XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,

null);

for(var i=0; i<target.snapshotLength; i++) {</p>

target.snapshotItem(i).style.display = "none";

}

})();

// or contains(text(),'')


3.スパム投稿が表示されなくなる

ついでにこの記事も消える

NGワードは適宜追加してください

参考

http://anond.hatelabo.jp/20070517234726

2016-10-07

障害者を雇うことの責任とは

text.ssig33.com - 俺が糸柳和法に関して知ってること

ドワンゴ糸柳雇用した時点で、異常者であることが分かって採ったんだから、その辺ちゃんとケアすべきでしょ。ここで解雇したら「障害者障害理由にクビにする会社」ってイメージ持たれることになるよ。障害者を雇ったのだからそれは責任を果すべきだ。

はてなブックマーク - kawango のブックマーク - 2011年3月14日

今回の件で糸柳解雇するか/できるかは置いといて、障害者からといって企業いくら害をなされても面倒みなければいけないなんて主張を認めるなら、どんな企業障害者絶対に雇うべきじゃない。

2016-08-11

フィッシングメールが来た

vプリカを利用しているのだが、そのメールを騙ったフィッシングメールが来た。

弊社を装うEメールにご注意ください!

http://vpc.lifecard.co.jp/news/20160720.html

というやつ。

特徴は

対策は、リンクを踏まずにサイトへ行って、お知らせを確認する。

以上です。

2016-07-26

BouyomiLimeChat.jsを改造し、英語テキストを読み上げないように

目的

棒読みちゃんTipsにあるLimeChatスクリプト「BouyomiLimeChat.js」を改造し、英語テキストを読み上げないようにします。

参考 : 棒読みちゃん Tips

ここでは英語テキストとは「半角英数字記号(=アスキー文字)のみで構成されたテキスト」とします。

改造内容

40行目の「function talkChat(prefix, text) {」の次行に次のコードを挿入。

    if (text.match(/^[\x20-\x7E]+$/)) return;

以上です。

読み上げないテキストを増やす

同じような行を更に追加することで、読み上げないテキストの種類を増やせます

text.match(/この部分/)を書き換えることで、好きなテキスト無視できます。"この部分"は正規表現指定します。

次の例ではURLを含むテキストも読まないようにしています

    if (text.match(/^[\x20-\x7E]+$/)) return;
    if (text.match(/https?:/)) return;

LimeChat 2.40ユーザー向け

棒読みちゃんTipsの「●スクリプトを利用する方法」はLimeChat2.40だとそのまま使えないようです。2.40向けに書き直したものを以下に記載します。

1.スクリプトファイルダウンロードする

こちらのスクリプトダウンロードしてください。
ZIP形式ですので、展開してください。

2.ファイルを配置する

LimeChatメニューから「設定→スクリプトの設定」を開く。
「スクリプトフォルダを開く」ボタンを押す。
開いたフォルダに「BouyomiLimeChat.js」を置く。

3.LimeChat側でスクリプト有効にする

LimeChatメニューから「設定→スクリプトの設定」を開く。
スクリプトの設定画面で、「BouyomiLimeChat.js」の行を右クリックし、○を付ける。
スクリプトの設定画面の閉じるボタンを押す。

2016-07-25

gitにおけるコミットログ/メッセージ例文集100

私はコミットログの書き方に悩む英語の苦手な人間である。実際、似たような人は世の中に結構いるようで、頻出単語を集計したりまとめたものは既にあって役に立つのだけれど、これらはあくま単語の話であり、具体的な文を構成する過程でやっぱり困る部分がかなりあった。

要するに、どういう時にどういう文が使われているのか、ということを示した例文集が欲しいのであるググると他にも「例文集があればいいのに」みたいな声はあるくせして、しかし誰も作ろうとしない。何なんだお前ら。それじゃ私が楽できないじゃないか

仕方なく自分でまとめたので、増田に垂れ流しておく。

はじめに

ここで挙げているコミットログは全て実際のコミットログから転載である。当然ながら各コミットログ著作権はそれぞれの書き手にある。いずれも各英文でググれば出てくるし、フェアユース範囲なら許してくれるだろうと考え名前プロジェクト名は割愛したが、ここにお詫びと感謝を述べておきたい。

抽出条件だが、参考にできそうなコミットログを多く含んでいそうなリポジトリGitHubSTARの多い方からざっと目で見て適当に選び、それぞれ最新コミットから5000件抽出した(あわせて前処理として、コミットログ冒頭のタグ情報は消去した)。

結果として対象としたリポジトリは以下の通り。

atomのみ5400件抽出していたため、計25400件のコミットログベースである。このうち、以下の条件に合致するものは参考例にすべきでないとして一律排除した。

こうして残った8540件を眺めながら、適当に切り出したのがこの用例集である個人的に「うーんこの」と思った表現も、散見される場合は載せた。

ということで、以下用例を羅列していく。

用例集

オプションフラグメニューを追加した
ファイルを追加した
メソッド機能を追加した
実装を別のものへ切り替えた
  • Use args.resourcePath instead of args.devResourcePath
  • Use arrays instead of while loops
  • Use auto instead of repeating explicit class names
  • Use weak pointer instead of manual bookkeeping
  • Change all uses of 'CInt' to 'Int32' in the SDK overlay
  • Change Integer#year to return a Fixnum instead of a Float to improve consistency
新しく何かに対応した/機能上の制約を取り払った
何かを使うようにした
より好ましい実装に改良した
何かを出来ない/しないようにした
  • Don't bail reading a metadata instance if swift_isaMask isn't available
  • Don't exit until the parent asks for an instance
  • Don't include Parent pointer in Nominal/BoundGeneric TypeRef uniquing
  • Don't use MatchesExtension for matching filters
  • Don't use ES6 class for AutoUpdater windows class
  • Don't use MatchesExtension for matching filters
  • Avoid `distinct` if a subquery has already materialized
  • Avoid infinite recursion when bad values are passed to tz aware fields
オブジェクトの内容や挙動確認やすくした
Assertを追加した
不要コードを除去した
コードを移動した
名前修正した
さなバグタイポ修正した, 警告を潰した
バグや好ましくない挙動修正した
テストコメントドキュメントを追加した
テストを削除した
テストコメント修正した
ドキュメント修正した

表現傾向とまとめ

以上の用例をふまえ、今回の参考ログ8540件から先頭の単語を出現回数で並べると次のようになった。

Add1149
Fix1014
Update584
Remove566
Use382
Don't260
Make228
Move178
Change103
Rename85
Improve76
Avoid68
Allow65
Implement60
Handle58

コミットログの基本形はもちろん動詞 + 名詞である名詞固有名詞複数形、不可算名詞が多いが、単数形場合冠詞は a が使われるか、あるいは省略される。the はまず使われない。

何かを追加した、という表現では非常に広く Add が使われる。メソッドからテストドキュメントに至るまで大概これでまかなえる。

一方、何かを修正した、という表現では広く Fix が使われる。「何か」は typocrash といった単語からメソッド名まで幅広い名詞を取るが、動名詞はあまり取らないのと、that節は取らないのでその点は注意が必要である

Fix は「何かが正しく動くようにした」ことを示し、正しい動作内容が何かを説明しない。そこで正しい動作内容に言及したい場合Make sure が使われる(こちらはthat節が取れる)。ただし Fix よりもニュアンス的に重い表現と思われ、Fix を使わず Make sure ばかり使うのはちょっとキモいのではないかと思う(Ensure はさらに重い表現っぽい)。

また、Fixtypo 以外でのドキュメント修正に対して使われることは稀である。対して Update はドキュメントコメントテストに使われ、本体コード修正に対しては使われない。本体コード修正にあわせてテスト更新したなら Update が使われる。ただ、テスト機構それ自体バグ修正したなら Fix である

無駄な何かを単純に除去したなら Remove を使う。これまでのもの(A)からのもの(B)に切り替えたのであれば Use B instead of A か Change A to B が使われる。新たに何かを利用するようにしたのであれば Use を、利用を取りやめた場合Don't use を使うことが多い。

何かをしないようにしたなら Don't を、内部実装効率化なら Make A + 比較級/形容詞Improve が使われる。

中身の変更を伴わない単なる名前の変更なら Rename A to B、コード機能論理上の場所を移動させたなら Move A to B である

この辺はリファクタリングと呼ばれる行為と思うが、Refactor というぼんやりした動詞はあまり使われず、このように変更内容の種類に応じて動詞が使い分けられている。

余談

コミットログにはWhyを書くべきだ、というのを何かで見かけたので because とか since を使ったログがどの程度あるかを調べたが、8540件のうち22件だった。基本的に短く、シンプルに、一目で意味が取れるログが好まれる傾向がある。例えば get rid of とか2件しか使われておらず、圧倒的に remove である

一方で、シンプル単語だけど開始単語としては使われないものもある。例えば次のような単語である。Expand(9)、Extend(8)、Print(5)、Optimize(5)、Publish(4)、Append(4)、Modify(3)、Manage(2)、Revise(2)、Dump(2)、Insert(2)、Migrate(2)、Enhance(1)、Edit(1) 。いずれもカッコ内は8540件に対する冒頭での登場回数である。結局、より一般的平易な単語で表せたり、Refactor同様に抽象度が高すぎると使われないのだろう。

おわりに

8000件もログを見たおかげで、迷いなくコミットメッセージが思いつくようになったのが個人的には今回書いてて最大の収穫だった。たぶんカンニングペーパーを作る行為それ自体効率のいい学習になるという話と同じだと思う。

このまとめも100以上用例を転載してあるので、それを読むだけでも多少は効果があるんじゃないかと思う。同じようにコミットログ書きたくねぇなぁ英語わっかんねぇなぁと思っている人にとって、何か役に立つところがあれば幸いである。

2016-05-07

http://anond.hatelabo.jp/20160507163959

流し読んで、そうかぁー、ぐらいに思ったけれど。

Wiki日本語英語wikipedia説明を読むと、まんま書いてあって。

  

それまでのマークアップ言語の一つとして、e-mail表記方法などから着想を得ている、ということらしいよ。

https://en.wikipedia.org/wiki/Markdown

  

wikiの出典として下記の記事が使われていて、

http://daringfireball.net/projects/markdown/syntax#philosophy

そこでは、

While Markdown’s syntax has been influenced by several existing text-to-HTML filters — including Setext, atx, Textile, reStructuredText, Grutatext, and EtText — the single biggest source of inspiration for Markdown’s syntax is the format of plain text email.

Setext, atx, Textile, reStructuredText, Grutatext, and EtText とか、初めて聞いたけれど、そんな幾つかのマークアップ言語

最大の影響を与え、着想の元となったものは、平易なプレーンテキストe-mailの書き方です。

みたいに書いてるね−。

物知り元増田に素直な増田質問してくれて、分かりやすくなったヨ。

(つうか、元増田よりも、はてな記法に習熟してそうな増田だな)

2016-04-25

Vim使いの生き様

Vimを使いはじめる←←←←←←←←←←←←←←←←←←←←←←←←←←←Vimに興味を持つ

↓                                       ↑

Vim操作を体で慣らしていく→→→サクラエディタSublime Textに逃げる→→→ゲームオーバー

プラグインガンガン入れる→→→プラグイン開発に手を出す→→→ダークサイドに落ちる→→→フハハハ!そのまさかだ!→→↓

↓                     ↑                              ↑    ↓

プラグインを減らしていく          ↑                              ↑    ↓  

↓                     ↑                              ↑←←←←← 

Vim本来バインドの使い方を学習する→→操作プラグインを追い求める

↓                           ↑

vimgolfを始める→→→キー入力を減らすことに目覚める→→↑

                 ↓

              さら研究する

2016-03-29

o Instagram’s algorithm, which will present photos out of chronological ord

Forthcoming changes to Instagram’s algorithm, which will present photos out of chronological order, have thrown the photo-sharing app into chaos, with users asking their followers to “turn on notifications” so their updates aren’t lost to the new regime.

Don’t do it. For your sake. Not yet, anyway.

Turning on notifications for Rihanna, for example, means youll be told every time she posts a new photo. It is the equivalent of Rihanna texting you to tell you that she’s put a pic up on Instagram, but without the close relationship with Rihanna implicit in that scenario.

Sometimes Rihanna posts several images a day. You’d receive a text to let you know, every time. Annoying, right? Even in the case of Rihanna, arguably the only person worth following on Instagram.

https://www.geogebra.org/material/simple/id/3012865

https://www.geogebra.org/material/simple/id/3012865

https://www.geogebra.org/material/simple/id/3012865

2015-12-28

Vimキーバインドを忍ばせる人々

(Qiitaのほうに2019年版があるので今はそちらを…。こちらは2015年版な感じです。)

Vim(あるいはvi)のキーバインド提供する人がいる。

Vimの外でもVim風の操作ができたりするのは彼らのおかげだ。

デフォルトオプションプラグインアドオン、様々な手段提供されている。

Vimを使っている人でも使うかどうかは人それぞれだし、

どの程度Vim再現できているのかも実装によってまちまちなのだが、

なんだかんだで有名どころのテキストエディタ統合開発環境では何らかの形で提供されることが多くなったように思う。

以下は提供しているソフトウェアの一覧。

(一覧に無いものは私が知らないか忘れているだけなので、実際にはまだあると思う)

統合開発環境名称
Visual Studio VsVim
Xcode XVim
Eclipse Vrapper
NetBeans jVi
IntelliJ IDEA IdeaVim
MonoDevelopVi Mode
Qt Creator FakeVim
テキストエディタ名称
EmacsVIP
EmacsViper
EmacsEvil
AtomVim mode
Atomvim-mode-plus
Sublime TextVintage
Sublime TextVintageous
Brackets vimderbar
Visual Studio Code Vim
Light TableVim

他にもブラウザ向けのアドオンとか。

ブラウザ名称
FirefoxVimperator
FirefoxVimFx
FirefoxVimium
ChromeVimium
Chrome Vrome
ChromeVichrome
Chrome cVim
OperaVimOperate
Opera wasavi
Safari sVim
Safarivimari

いくつかのコマンドでも。

コマンド分類
bashシェル
zshシェル
kshシェル
tcshシェル
yash シェル
tig gitインターフェース
less ページャー
cgdb デバッガ
LuaKit Webブラウザ

hjklでスクロールできるWebサービスとか。

名称操作
Twitterjk前後の項目に移動
TweetDeckjk前後の項目に移動
Facebookjk前後の項目に移動
Google+jk前後の項目に移動
Tumblrjk前後の項目に移動
GitHub jk前後の項目に移動
Pocketjk前後の項目に移動
Pixiv(複数投稿) jk前後の絵に移動
ニコニコ静画(漫画) jkスクロール
ニコニコ静画(電子書籍) hjklで前後のページに移動(wasdでも可)
はてなブックマークjk前後の項目に移動

ゲームも。

名称操作
nethackhjklで上下左右に移動(yubnで斜め移動)

追記

viのhjklは先行する何かの影響で実装された記憶があるので、操作共通からというだけで「viを忍ばせる」というのは言い過ぎではないかという気がする

> まして「vimを忍ばせる」というのは、ちょっとその、まあなんというか…

かにVimではなくvi模倣だったりして無理があった…。hjklの大元を辿るとどこに辿り着くんだろう(ビル・ジョイの使っていたキーボードとは別?)

2015-12-05

仕事ばかりつかれた

仕事ばかりつかれた

どうしたもの趣味もないし


class HtmlObjs

def GetHtmlObjs(init_url, n)

obj = URLList.new

urls = obj.GetURLListAll(init_url, n)

htmls = Array.new

Anemone.crawl(urls, :depth_limit => 0) do |anemone|

anemone.on_every_page do |page|

htmls << page.doc

end

end

return htmls

end

end

class ProductInfo

def GetProductName(html)

return html.css("h1[class='product-name']").text

end

end

2015-12-01

アニメ界で危惧される「オワコン化」リスク回避のための制作本数増加が原因か?

http://news.mixi.jp/view_news.pl?id=3736991&media_id=14&ref_mail=1&text=1

公野教授危惧するのは「アニメ作品オワコン化」だという。放送中にはどんなに話題を集めたアニメも、制作本数が多いために、放送終了後には視聴者の関心は次のアニメに移ってしまうこともしばしばだ。それによって固定のファンがつかず、マーケット組成されない現状があるという。

今はほとんどが1クール12話で終わってしまうのが問題だと思う。。

めぞん一刻みたいに8クール96話も続く作品が待ち遠しいぜよ。。

2015-11-29

aliexpressをrubyスクレイピング

rubyスクレイピング

aliexpressの検索結果から

検索結果のURLを抜き取るのは、

結構簡単にできた。

ここから、ページ切り替えてURL収集する処理も追加すれば、

クローロング部分は完成。

あとは、各ページに対するスクレイピング問題



require 'open-uri'

require 'nokogiri'

# スクレイピング先のURL

url = 'http://ja.aliexpress.com/category/200003482/dresses.html?spm=2114.52010108.6.7.gT0qlW&addpid=32546825642&isOnSale=yes%22'

charset = nil

html = open(url) do |f|

charset = f.charset # 文字種別を取得

f.read # htmlを読み込んで変数htmlに渡す

end

# htmlパース(解析)してオブジェクト作成

doc = Nokogiri::HTML.parse(html, nil, charset)

num=0

doc.css('a[class = "product "]').each do |product|

p product.attribute("href").text

p num = num+1

end

2015-11-12

[]Node.jsイベントリスナーが呼ばれません

下記のようなファイルを用意してOKボタンを押下してもgettxt.jsのOnOKが呼ばれません。

誰か教えて下さい。

gettxt.js

var http = require('http')

,fs = require('fs');

http.createServer(function (req, res) {

fs.readFile('./HTMLPage.html', 'UTF-8', function(err, data) {

res.writeHead(200, {'Content-Type': 'text/html'});//text/plainから変更

res.end(data); // 「Hello, world!」から変更

});

}).listen(8124);

function OnOK(){

var text = document.getElementById("text").value;

// textを使って何か処理を行う

}

HTMLPage.html

※<>は全角にしてます

<head>

script src="gettxt.js"></script

</head>

body

<input type="text" id="text" size=50></input>

<button onClick=javascript:OnOK() >OK</button>

<div id="log"></div>

</body

2015-10-11

script type="text/javascript"」←うるさい黙れ!!!!!

指定できるようになってるんならjavascript以外にもpythonだの使えるようにしとけよバーカバー

どうせjavascriptしか使えないのに指定できるようにしてんじゃねーよバーカバー

2015-09-27

Chromebookの使い心地

Chromebookレビュー記事を読んで、同じ機種を買ってほぼ同じ感想を持っている人がいるのだと思った。

http://dragoner-jp.blogspot.jp/2015/09/chromebook.html

購入価格、箱破損品の注記について

自分Asus Outletで、C200MAが14800円で売られている時に買った。箱が破損しているという注記があったが、届いたものは箱に傷ひとつなかった。たんに定価では売れなかったので、あたか瑕疵があるかのように書いているのだろうか。


使い心地

上記レビューに同じ。気軽でよい。テキスト入力機としてはこれで十分。

ちなみにタッチパッドの出来はかなりよい。Macbook Airより少し劣るが、慣れると、それほど変わらない。というか、かなり意識してMBAの使い心地に似せてある。

キーボード打鍵感が浅く、カチャカチャとプラスチック音がするが、打ちづらいというほどでもない。

液晶視野角は値段相応

実用

テキスト入力を含む事務作業程度ならとくに問題ない。2週間以上、Macbook Airを使わないでChromebookだけで生活しているが、それほど困ることはない。

バッテリの持ちは、よい。


開発用機としての実用

よくわからない。Sublime Textに似たZedというエディタChromeアプリとして入れているが、簡単なHTML編集程度であれば、これで事足りている。


最大の問題

オフライン環境で、なにかの拍子で再起動すると、まったく使えない。ログインすらできない。

Google Appsを使っていて、途中でネット接続が切れると、ローカルデータを保存する形で作業は継続できる。

しかし、何かの拍子で再起動がかかると、ログインができないので、いっさい使えない。ゲストとしてログインした場合、素のChromeが立ち上がるだけなので、Google Drive上の作業データはおろかアプリもいっさいない。

これを打開するためにUbuntuを入れてみたが、後述の理由で、それほど状況は変わらない。

その他の懸念

SDカードをさして逐一作業データを保存するのでなければ、原則として、作業データはすべてGoogle Driveに置かれる。

便利だが、アカウントブロックされたり乗っ取られたりした時のリスクは格段に跳ね上がる。


LinuxマシンとしてのC200MAの可能性

カジュアルユーザーには難しい。

以下の記事を参考にして、Chromebookデベロッパーモードを起動し、Croutonというものを入れると、Ubuntu普通に使える。

https://www.linux.com/learn/tutorials/795730-how-to-easily-install-ubuntu-on-chromebook-with-crouton

Asus C200MAのRAMは2GBしかないので、ちょっとでも動作が軽くなるかと思ってUnityの代わりにLXDEを入れているが、ちょっとましだという程度。

Crouton経由でUbuntuを使うやり方だと、起動時に、ChromeOSにかえてUbuntuを選ぶことができない。したがって、オフライン環境下でUbuntuを急きょ使う、という使い方はできない。

デベロッパーモードだとChromebookUSBブートONにできるはずだが、C200MAではできなかった。なので、インストールせずにUSBブートLinuxを使うことは、通常のやり方だとできないようになっているらしい。

これは出荷時のBIOS設定で、上記のような使い方をすべて禁止しているらしい。この問題を解決するため、ChromebookBIOSが焼いてあるROMのものを書き換えるスクリプトを公開している人がいる。

https://johnlewis.ie/custom-chromebook-firmware/rom-download/

が、なにかあったときに元に戻す方法を調べるのが面倒なので、自分はまだためしていない。だれかC200MAで試した人がいたら教えてほしい。

2015-09-13

VimSublime Textみたいに選択した言語だけでプラグイン作成が完結できるようにするべき

何でVimスクリプトの中にRubyやらPythonやらを埋め込まないといけないんだよ!

調子乗ってんじゃねえぞこの野郎

2015-08-25

IT関係ないサラリーマンコミュニティサイト作っちゃいました。

私ごとですが、この度コミュニティサイト作成いたしました。

私の持てる知識を絞り出してなんとか完成しました。

**************************************************************************************

完成したサイトがこちらです。

LapyNetニュース

http://lapynetz.net/

**************************************************************************************

私は普段webとは関係ない仕事してます。なんとか休日を利用して、

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 && $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回

この商品を含むブログ (9件) を見る

Webアプリ開発を加速する CakePHP2定番レシピ119

Webアプリ開発を加速する CakePHP2定番レシピ119

作者: 長谷川智希,デジタルサーカス

出版社/メーカー: 秀和システム

発売日: 2013/09/28

メディア: 単行本

この商品を含むブログ (1件) を見る

**************************************************************************************

一番難しいところはtwitterログインwebサイト連結でした。

cakephp直感できに操作できていいです。

素人のわたしでも操作できましたので。

cakephpを使用しています

webからニュース収集してきます

ツイート数でランキングしてますネット話題を見つけられます

twitterアカウントログインできます

ニュースに対するコメントもできるし、

自分記事投稿できます。(画像も可)

デザインはよくわからないので、

ホームページビルダーを使用しています

今のホームページビルダーは昔と違って高機能ですね。

テンプレートも何種類もあって今はすごいです。

アマゾンawsを使用してます

サーバーWebサーバーデータベースサーバmysql)

に分かれています

今更cakephpを使っている人は少ないかもしれませんが、

データベースとの接続などは楽でした。

twitterアカウントあるといつでも参加できますので、

ニュースを通してコミュニケーション目的としたサイトを目指します。

2015-08-15

Firefox40.0.2でinput[type=text]がめちゃくちゃ横に伸びるのどう直したらいいんだろ

2015-08-06

[] 逆ソーカル事件

1996年物理学者アラン・ソーカル人文科学誌 Social Textデタラメ論文投稿

掲載された後でジョーク論文だった事を明かし、物理専門用語言葉遊びをしていた一部の「ポストモダニズム研究者皮肉った。

実はこの事件にはちょっとした後日談がある。

ソーカル事件から6年後、Annals of Physics と Classical and Quantum Gravity に掲載されていたある物理論文話題になる。

それらは「位相的場理論」、「宇宙論」、「量子重力理論」などの複数分野にまたがる難解な論文で、

正しい専門用語を正しい文脈で用いていたが、論文全体では何も言っていないという代物であった。

悪質ないたずらが疑われ、ソーカル事件の逆襲ではないかと話題を集めたが真相は意外な方向へ。

論文投稿したのはボグダノフ兄弟

兄弟ブルゴーニュ大学で学び、グリシュカは数学イゴール理論物理学博士号を得ている。

二人はいたずらである事を否定し、論文正当性を訴えた。

ボグダノフ兄弟サイエンス番組の人気司会者であったことからメディアをも巻き込んで騒ぎは大きくなっていった。

2人はネット上の議論に偽名で参加し、多重アカウントによる自作自演を繰り返した。

偽名には実在物理学者数学者名前勝手に使い、また、時には非実在物理学者を名乗った。

兄弟真意が何であったにしろ、全うな議論を捨てネット印象操作を始めた時点で もはやまともな研究者とは呼べないであろう。

結果的ソーカル事件とは関係なかったものの、論文査読精度や博士号授与の基準見直し議論きっかけとなった事件である

2015-08-03

メール常識非常識

新しい会社転職して、今まで通りのビジネスメールの書き方が正しいのか悪いのかわからなくなってしまったのでなんとなく記載

どれが常識でどれが非常識なんだろう。そもそも気にしなくていいこと?

・相手から送られてきたメールCCやToがいる場合基本的に同じ相手に返信をする。

 種別特別事情がない限り変えない。 

 

タイトル特別事情がない限りは変えない

 Re、Fwd等の表記に関してはある程度長くなったら削除しろ派や、最初から消せ派などがいるので明言しませんが

 私はそのままにしておく派です。

・一行は30文字にするべし。

 文章毎の。や、で適宜分けるのはわかりますが、それ以上に区切るか否かという話。

 

 文章ではありませんがこういう事。

 あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん。

 と記載するのか、

 あいうえおかきくけこさしすせそたちつてと

 なにぬねのはひふへほまみむめもやゆよらりるれろわをん。

 と表記するのか。って話。

 逆に改行しすぎると、メーラーによっては迷惑になるんだよね…。

メールの送信形式基本的texthtmlはよほどの事情がない限りは使わない。

・各位は極力使わないほうがベター

 関係者各位とか、○○各位と使う。

 (もともとは目上の人間が使う言葉らしい。今でもその辺を気にする人がいるので、)

メールの添付は10Mまで。

 それ以上になる場合には一言事前に相談するか、別の媒体を使うことを検討する。

メールである調はNG。極力ですます調で。

 何かの引用である場合はOK。

ざっと思い浮かんだのはこんな感じ。

ほかにもあるかなぁ…。

2015-06-24

ニトリHTMLソースみたんだけど

<html lang="ja" xml:lang="ja">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<link rel="stylesheet" href="/wcsstore/ec/css/common1_1ja_JP.css" type="text/css"/>


IBMWebSphere Commerceってやつを使って居るみたいだ

2015-06-17

perl6ファイルへの書き込みを一発で

http://doc.perl6.org/language/io

読み込みは「slurp」を使えばいいのは知ってた。

だけど書き込みは見当たらなくて、openして書き込みしないと駄目かぁと思ってたんだけど、

公式ドキュメント見たら普通にあった。

「spurt」というのを使えばいいようだ……が何故その名前にしたし/(^o^)\

# 読み込み
my $text = slurp 'filename';

# 書き込み
spurt 'filename', $text;

# 追加書き込み
spurt 'filename', $text, :append;
ログイン ユーザー登録
ようこそ ゲスト さん