「application」を含む日記 RSS

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

2018-09-07

塗布

医薬品の箱を見ていると「患部に塗布する」とある。塗布。布?俺はきれいに洗った指で塗り広げていたのだが、もしかしてガーゼ的なものを使うべきだったのか?怖くなって和英辞書で塗布を調べた。applicationアプリケーション?薬を塗るアプリでもあるの?ますますからなくなった。

2018-07-25

Microsoft7月23日に17713.1002をリリースしました。17713.1002にはWindows Defender Application Guardが動かなくなる既知のバグが含まれています

https://blogs.windows.com/windowsexperience/2018/07/11/announcing-windows-10-insider-preview-build-17713/

Impress「米Microsoft7月23日(現地時間)、同月11日にFast ringリリース済みのWindows 10 Insider Preview Build 17713(RS5)の累積アップデートで発生していたバグ修正するアップデートの配布を開始した。Build 17713.1002の累積アップデート適用するとWindows Defender Application Guardが機能しなくなるという問題が起きていたが、この解決が図られた。」

https://pc.watch.impress.co.jp/docs/news/1134414.html

2018-06-13

Twitter ApplicationのCallback URL強制ホワイトリストになったぞ

さっき慌てて対応たからお前らも気をつけろよ

2018-05-20

anond:20180520180642

リモートワイプ機能

各社のスマホには「ウィルスなどの脅威から顧客を守る」という名目で、端末をリモート操作できる機能が搭載されています。(利用規約をよく読もう)

中華ガジェットは、チップレベル実装されているので簡単には外せませんね?

携帯電話スマートフォンノートパソコンなどの端末に保存されたデータを、ネットワークを経由した遠隔操作で消去する機能。またはそのサービスを指す。

ワイプ(wipe)とは、「拭く、拭き取る」という意味

iPhone Open Application Development』の著者であるJonathan Zdrianski氏は、iPhoneのCoreLocationに隠しURLが埋め込まれているのを発見したと述べている。

iPhoneはこのURLを使って、iPhoneインストールされているすべてのアプリケーションについて、ブラックリストに載っているアプリケーションかどうかを確認しているのだとZdrianski氏は考えている。

2018-05-15

anond:20180514175413

日本語/Japanese

Android (アンドロイド) の Smart Phone (スマートフォン) をお持ちのお客様が、パーソナルコンピューターと言ったら、絶対Microsoftさんと言えるようにするべきだと思います

まりMicrosoftさんが、Apple社IOSMACiPhoneに負けないようにすればいいと思います

からこそ、Microsoft Store について 思ったことは、Google Chrome のアプりケーション(インターネットブラウザ)を用意するべきだと思います

------------------------------------

英語/English

If the customer who has Smart Phone in Android (android) (smart phone) says a personal computer, I think I should make sure that it can be said by all means Mr. Microsoft.

In other words, Mr. Microsoft thinks you should decide not to be defeated by Apple company, IOS, MAC and iPhone.

I think Application in Google Chrome (the internet browser) should be prepared for that I thought about Microsoft Store .

2018-05-14

Microsoft Store について 思ったこと。 ( The thing of which I thought about Microsoft Store. )

( 日本語 / Japanase )

Microsoft Store について 思ったこと。

Microsoft Store について 思ったことは、Google Chrome のアプりケーション(インターネットブラウザ)を用意するべきだと思います

なぜなら、Android提携ができるからです。(スマートフォン。)

あとは、Google Chome は、世界共通アプリケーションからです。

-------------------------------

( 英語 / English )

The thing of which I thought about Microsoft Store.

I think application in Google Chrome (the internet browser) should be prepared for that I thought about Microsoft Store.

Because you can cooperate with an android. (Smart phone.)

The back is because Google Chome is worldwide application.

2018-04-08

読んだページを全部自動ブクマする

数日前に puppeteer で自動PDF にする試みを書いたブログホッテントリに入ってるのを見た

それに影響されて自動ブクマするもの作ってみた

bg.js

const username = ""
const api_key = ""

chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
	if(message.bookmark){
		bookmark(message.bookmark)
	}
})

async function bookmark(url){
	fetch("http://b.hatena.ne.jp/atom/post", {
		method: "POST",
		referrer: "no-referrer",
		headers: {
			Accept: "application/x.atom+xml, application/xml, text/xml, */*",
			"X-WSSE": await createCredential(),
		},
		body: `
			<entry xmlns="http://purl.org/atom/ns#">
				<link rel="related" type="text/html" href="${url}" />
			</entry>
		`.replace(/\t/g, ""),
	}).then(e => {console.log(e)})
}

async function createCredential(){
	const non = Math.random().toString(36).substr(2)
	const now = new Date().toISOString()
	const buf = new TextEncoder().encode(non + now + api_key)
	const u8a = new Uint8Array(await crypto.subtle.digest("SHA-1", buf))
	const str = Array.from(u8a, e => String.fromCharCode(e)).join("")
	const b64 = btoa(str)
	return `UsernameToken Username="${username}", PasswordDigest="${b64}", Nonce="${btoa(non)}", Created="${now}"`
}

username と api_key を埋めてバックグラウンドで動かす

page.js

chrome.runtime.sendMessage({
	bookmark: location.href
})

ページ内で動かすコード

URLバックグラウンドに投げる

今は全部投げるコードになってるが、必要に応じていらないドメインを弾いたりする

2017-07-29

今日替え歌

思いついてしまったものは仕方ない。

&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="205" id="flvplayer" align="middle"&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt; &lt;param name="movie" value="http://g.hatena.ne.jp/tools/flvplayer.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#ffffff" /&gt; &lt;param name="FlashVars" value="moviePath=https://www.youtube.com/watch?v=Ew4F9RB9e7I" /&gt; &lt;embed src="http://g.hatena.ne.jp/tools/flvplayer.swf" FlashVars="moviePath=https://www.youtube.com/watch?v=Ew4F9RB9e7I" quality="high" bgcolor="#ffffff" width="320" height="205" name="flvplayer" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt; &lt;/object&gt;

ちんちんプラプラソーセージ

お前の相手はどこにいる?

ナニ出せ汁出せ子ども出せorz

2017-05-02

[]外務大臣政務官TOC条約留保を付して締結することは可能

 国会ウォッチャーです。

 国会がないと暇です。なので、昔の議事録とかを掘り出して読みますタイトル詐欺一種です。発言者小野寺五典、当時の外務大臣政務官。この議事録を読んでいて思ったのは、平岡秀夫さんが落ちて、岸信夫さんが通る選挙って何なんだろうなっていうことでしたが、それは有権者判断なので仕方がないのですし、詐欺前科者が告知義務違反をしてを政務秘書官登用してしまった、というのもいたかったんでしょうが

平岡秀夫議員質疑への小野寺五典答弁

平成17年10月21日法務委員会質疑

平岡 

「そこで、この条約について言えば、私がいろいろな人たちから調べていただいたことによりますと、条約に基づく国内法制化の中で、ウクライナが、この条約の中で重大犯罪というものが四年以上の自由刑またはそれ以上の自由刑というようなことになっているけれども、この点について留保あるいは解釈宣言をして、ウクライナについては懲役五年以上のものについて重大な犯罪とするというような国内法制化といいますか、国内法との関係を整理されたというふうに聞いておりますけれども、この点は事実でしょうか。」

小野寺

委員御指摘のとおり、ウクライナにつきましては御指摘のような状況になっていると思いますウクライナは、条約締結に当たって、留保及び宣言の名のもとに、重大な犯罪という用語は、ウクライナ刑法に言う重大な犯罪及び特に重大な犯罪に相当するものであるウクライナ刑法に言う重大な犯罪とは、法により五年以上で十年を超えない自由刑が定められた罪をいい、ウクライナ刑法に言う特に重大な犯罪は、法により十年以上または無期の自由刑が定められた罪をいう旨表明しています。したがいまして、ウクライナは、留保及び宣言の名のもとに、本条約に言う重大な犯罪を長期五年以上の自由刑としたことは事実です。

(略)

平岡

 「(略)条約というのは、条約法に関するウィーン条約というのがあって、その第十九条の中に条約留保というものが認められているというふうになっているわけでありますけれども、このTOC条約についても、条約法に関するウィーン条約十九条に基づく留保を付することは可能であるというふうに考えていいでしょうね、外務副大臣

小野寺

外交官経験もありますし、また法の専門家であります平岡委員の御指摘のとおり、ウィーン条約におきましては留保するということが可能になっています多国間条約について、ある国が条約の一部の規定に関して問題を有する場合には、当該規定に拘束されずに条約に参加し得るように、留保を付して締結することが一般的に認められております

 TOC条約では、第三十五条3、国際司法裁判所への紛争付託の拒絶を除き、留保に関する特段の規定存在しておりませんが、交渉過程において、本条約への留保については、ウィーン条約法条約留保に関する規定適用されることが確認されています。したがって、ウィーン条約法条約十九条に従い、条約趣旨及び目的を損なわない限度であれば、本条約に対し留保を付すことは、御指摘のとおり、可能であります

 しかし、本条約については、既に平成十五年の通常国会におきまして、留保を付さずに締結することにつき国会承認をいただいております行政府としては、本条約につき、このような形で国会承認をいただいている以上、当然、留保を付さずに締結することとしており、その前提での国内担保法の審議をお願いしているところであります。」

これ読めば、留保は当然できるし、犯罪範囲条約で4年以上の自由刑とされているけれども、5年以上にしますよ、という留保も当然認められている、ということです。つまり条約要請する犯罪範囲は、国内法の原則に反する場合留保というのも当然に認められているでしょう。実質できない、やらないっていってることの理由は、「国会留保なしでの批准承認をした」っていうだけのことなので、そんなものはいくらでも、まさに、「新しい判断」をなさればよろしいのではないかと、このように思う次第でございます

アメリカ留保

外務省は「米国留保についての政府の考え方」として、

(1)米国連邦制を取っており、条約締結に当たり、憲法上の連邦との州との間の権限関係整合性を持たせるとの観点から留保宣言を行っています

(2)米国政府より、本条約犯罪化が求められている行為について、連邦法によっても州法によっても犯罪とされていない部分はほとんどないとの回答を得ています

(3)このようなことから米国留保は本条約趣旨目的に反するものではないと理解しています

と書いています

ここでアメリカ留保を見てみると(私は外務省訳を全然信用してないので原文からしました。誤訳ごめん。)

留保

アメリカ合衆国は、本条約要請する義務を担う権利留保するが、それは、連邦制の基本原則と両立するという考え方の中で、連邦法と、州法の刑法の両方が、本条約規定されている行為との関係考慮されなければならないかである連邦法での刑法は、州をまたいだ、または国際的通商等の連邦利益に影響を与える行為規制しており、合衆国内での、組織的犯罪に対する戦いでの基本的法制度となっており、これは(条約の)目的に対して効果であるといえる。連邦法での刑法は、犯罪行為が州をまたがない、国際通商等の連邦利益に関わらないという稀なケースでは適用されない。かかる純粋地方的な性質犯罪については、連邦法、州法のいずれも、本条約に基づく義務を十分満たすとは言えない状況が少数ではあるが想定される。したがって、アメリカ合衆国は、純地方的な活動に関したせまいカテゴリーにおさまる行為に関しては、本条約規定された義務留保する。この留保が、本条約の他の締結国に対する協力をするというアメリカ合衆国能力に影響を与えることはない。

https://treaties.un.org/Pages/ViewDetails.aspx?src=IND&mtdsg_no=XVIII-12&chapter=18&lang=en

これを読むと、本条約が、国際的犯罪、広範囲にまたがる犯罪の取り締まり要求しているから、それに対しては連邦法が効果的に対応しているし、ローカル犯罪に対しては州法を整備することなく、留保するよ、といっているので、これはかつての民主党政権提案していた、越境性を根拠にした法律を整備して、それ以外は留保する、という手法のものです。なぜこの留保必要かというと、共謀段階での処罰対象犯罪が30以下(日本は21)という州法しか持たない州が複数あるからです。連邦法における刑罰は、州法を超える範囲カバーしているわけではなく、州をまたいだ犯罪や国際犯罪限定されているので、州法では犯罪じゃないけれど、連邦法では犯罪になる州内の犯罪というもの存在しないのです。この外務省説明はいいかげんもいいところでしょう。人が英語も読めないと思って高をくくってやがるんですよ。いつもいつもだけど。

 この批判に対して外務省は、「重大な犯罪」を限定する旨の留保や「国際性」の要件を付す旨の留保は「重大な犯罪」の定義を定める条約第2条や国際性を要件としてはならないと定める条約第34条2項の規定に明らかに反するから条約趣旨目的に反すると答弁しています。この第34条2項が定められた背景にはすったもんだがあったようなのですが、この条項は、そもそも第3条において、transnationalな犯罪対象とする文言があるのにも関わらず、付されている矛盾をはらんだ表現になっています

34条の1

各締結国は、本条約が定める義務の履行を確実にするため、国内法の原則に則って、立法上ならびに行政上必要措置を講じる。

34条の2

条約の第5条、6条、8条、23条に規定された犯罪については、第3条1項に定められた国際的性質、または、組織的犯罪集団とは独立法整備をする

とされていますしかしここで、国連条約の制定と同時に出している解釈ノート(Travaux Prepatoires)の第34条第2項に、以下のように記述されています

この項の目的は、第3条で説明されている、条約基本的目的を変更することではなく、国際性の要件組織的犯罪集団への関与が、(国内法での)犯罪化の要件として考慮されないことを明確に示すために設けられたものである。この項は、各締結国が条約を履行する際に、犯罪で得られた利益の洗浄や、汚職裁判妨害といった犯罪に、国際性や組織的犯罪集団への関与を要件としなくてもよいということを示そうとしている。(以下略 疲れた

Paragraph 2

The purpose of this paragraph is, without altering the scope of application of the convention as described in article 3, to indicate unequivocally that the transnational element and the involvement of an organized criminal group are not to be considered elements of those offences for criminalization purposes. The paragraph is intended to indicate to States parties that, when implementing the convention, they do not have to include in their criminalization of laundering of criminal proceeds (article 6), corruption (article 8) or obstruction of justice (article 23) the elements of transnationality and involvement of an organized criminal group, nor in the criminalization in an organized criminal group (article 5) the element of transnationality. This provision is furthermore intended to ensure clarity for States parties in connection with their compliance with the criminalization

of the cooperation articles of the convention (articles 16, 18 and 27).

要はこの項目は、マネーロンダリング汚職裁判妨害といった犯罪に国際性の要件がなくてもいいよ、という意味だと解説しているので、外務省説明とは全然違うじゃねぇかっていうね。

外務省は嘘ばかりついている

外務省は、この前段の676の犯罪すべてについて、共謀段階での処罰を導入しないと、条約が締結できないとなんども答弁しています。めんどくさいからほらんけど。現在は277ですね。この時点で発言者信頼性ゼロです。277では締結できないんでしょう?だから留保ができないっていう発言だって信頼性ゼロだし(現に小野寺議員はできるって答弁してるし)、犯罪範囲を絞ることはできない(ウクライナ留保してるし、だいたい、この条約で名指しされているcorruption(汚職)に関する、政治資金規正法公職選挙法違反は除外してるくせに何言ってんだって話ですよ。そっちのほうがよっぽど、条約趣旨に外れとるわ。)ってのも信頼性ゼロ外務省が訳文を出す際にわざわざ「説明書」とか抜かして、自分たちの考えを押し付けから議会に提出してるのも我慢ならない。外務省が出してくる訳文が出るまでは政府は答弁しないし。原文に基づいて議論できる、緒方議員みたいなのがもっといれば話は変わってくるのかも知れんけど、外務省の嘘にまみれた判断が混ざりまくった文章がでてくるま国会議論できないってのもほんとになんとかしたほうがいい。

id:toulezure

なにを勘違いしてるのか知らんけど、越境性を根拠にして留保する場合は5条じゃなくて、第34条2項、対象犯罪制限する場合は、第2条(b)だよ(ウクライナがこれ)。サヨク論法がどうこう言う前に自分の恥ずかしい論理構成を見直せよ。

一応詳しく書いといてやるけど、国内法の原則に則って、とわざわざおっしゃっていただいていて、我が国刑法原則は、内心ではなく、準備行為等のなんらかの実行が伴って初めて処罰される、という原則があるのだから、第34条2項を留保して、越境性を持たない犯罪には適用しない旨を記載すればそれでいいだろってのが、かつての民主党案。国連解釈ノートにも条約scopeが、第34条2項によって変更されないことを示しているので、34条2項の留保条約趣旨に反するとは到底言えないだろうという主張。それに対して、第2条の(b)を留保すれば、すでに組織的殺人強盗などは共謀段階で処罰可能であり、人身売買等のいくつかの法整備をすれば、実行行為の伴った処罰に関してはすでに広範な共謀共同正犯実質的に認められているので、一般的共謀罪はいらない、という主張は弁護士グループなどでよくされているところ。これに関しては、ウクライナ前例を示しているところであり、また法務省自らが体を張って、「(注)その他,マネーローンダリング罪,司法妨害罪等の犯罪化等が義務付けられており,今回,現行法では足りない罪の新設等の法整備も行います。」とcorruptionの記載をしていないところにも表れている通り、懲役5年以下規定がある公職選挙法懲役15年以下の特別公務員職権濫用致傷、5年以下のあっせん収賄罪等々が、何の留保もなく除外できるんだから、第2条(b)を留保して除外できないものなんてあるの?って話じゃありませんかね。

2017-04-17

http://anond.hatelabo.jp/20170417011355

ウィンドウで開いてもだめだったよ。。

Chromeデバッグコンソールを見ると

application-f5ea17cc169634b05d55871893d24a70b5e59677e54cd1a8134c49f5ba3b0b3f.js:26 Uncaught SyntaxError: missing ) after argument list

roboto-regular-webfont-1036fdb3246de0828568c0c1634d1b8525448239289174571dc8629ccc8001d7.woff2 Failed to load resource: net::ERR_CONTENT_LENGTH_MISMATCH

roboto-regular-webfont-54883eb22ec88bcfadf3dc6a49310ffde8a725cf9106f28ee751f84096af2895.woff Failed to load resource: net::ERR_CONTENT_LENGTH_MISMATCH

roboto-regular-webfont-84b51e7d8ec797bb9b992cc0a938a2d8cc5f470c2757544b8c460d8a8360e0c2.ttf Failed to load resource: net::ERR_CONTENT_LENGTH_MISMATCH

がでていて、これは、他のマストドンインスタンスを見たときにはこれらは出てないので、増田どん固有の問題っぽく思う。

2017-03-28

私が死んだら代わりはいない

なんとかならないこともないだろうが、結構大変な事になるに違いない。

というのは、完全に内製の、パソコン上でスタンドアロンとして動作しているシステムがある。

これは私が独自に作ったもので、VisualBasic for Application(Excel)って奴だ。

 

ある業務を別の人から引き継いだんだが、そいつは大して引き継ぎ資料も残さずにさっさと辞めてしまったもんだから、私はかなり大変な事になった。

彼はパソコンといえばExcelくらいしか使えず、プログラムなんか全く書けない人だった。

でも、やたらと毎日一人忙しく仕事しているので社内的評価もそこそこ高い人だったのだが、引き継いだ私は彼の仕事振りに唖然とする羽目になった。

どう考えても、私から見るに自分勝手に金にもならないのに仕事を増やしていただけ、としか思えない。

詳しい事は書ききれないので、ざっくり言うと、「なんでそこまでこの業務を複雑にしたんだ?」って感じ。

しかし、今更その業務簡素にする事は最早無理な状況。

そこで考えあぐねて、業務自体簡素にする事は出来なくとも、業務を処理するシステムを組むことにより仕事を減らそうと決めた。

IT系会社では全くないし、社内にもそんな人材はいない上に個人の考えで外注業者に依頼するわけにもいかいから、独力でVBAを学び、業務を進めつつ四苦八苦してシステムを完成させた。

出来上がったものは、使う分には誰でも簡単に使う事が出来る様になっているので、実際私自身がメンテナンス以外では使う事もなくなり、もっぱら部下にやらせている。

効率が上ったなんてもんじゃない、前任者はその業務に掛かりっきりだったが、私は普通に他の業務をいくつか抱えても特に大きな問題もないほどである

 

だが、劇的に効率上げて実質的コスト削減までしたのに、会社は私のことをまるで評価しないどころか、前任者より仕事をしてないという目で見てくるので正直頭に来てて退職を考えている。

で、そのシステム個人的に作ったものしかいから、仕様書なんてあるはずもなく、勝手に触られても困るのでソースコードを弄られないようにパスワードロックを掛けてある。

さらに、ある時期以降そのシステム更新しないで使うとその業務に支障を来たす為、内部的にタイマーセットしてその日以降は使えないようにもしてある。

それがあと二ヵ月後。 

 

うそう、そのシステムに載せれば問題はないと、調子に乗って前任者より業務さらに複雑にしてしまったんだけど。

どうなっても俺は知らん、ぞと。

 

追記:

id:mazmot

業務改善? 簡素しろという意味なら難しすぎて無理。例えるならば今更Core i7を8086に出来るわけがないって感じっすかねw

id:aukusoe

使えなくするのは嫌がらせではなく、業務仕様がその時期に変わる事が予定されてるからです。誤って使わないようにとの配慮ですよ。

id:houyhnhm

これも同様、嫌がらせではなくて、業務上理由からそうしているだけです。パスワード開示請求があれば即座に応じますよ。金貰ったらメンテナンスも考えなくもありません。

追記2:

まぁ、私がいなくとも何とかならんこともないだろう、という事は冒頭に書いたとおりです。

もうちょっと考察してから書くべきでしたが、多分私の言いたい事は会社が駄目駄目ってことなんじゃないかなと思います

一応、簡単に引継ぎ時にあまりに大変な事は上司にも報告したんです。会議でも言った。

ところが、ほぼ無視あいつに出来たんだからお前にも出来るだろーって感じで放ったらかしにされたというのが偽らざる実感。

でも業務は放ってはおけないので、愚痴っててもどうにもならない。

どうしようもないから、プログラム書いて効率化って方向に進めざるを得なかった、というか判断になったわけです。

こうした細かい話も散々報告したのに全然聞いてないんですよ、上司連中はさ。

ちゃんと聞いてたら、後々になっても私が関与できなくなっても、最低限どうにかして仕様書に落とすとか、あるいは外注してもっとマシなシステムにするような方向で考えるとか、いくらでも検討できた筈です。

それが、トラバレスでも書いたけど「あいつの方が仕事してたよな」って噂流されたんですよ?

「私が死んでも代わりはいる」って増田記事にひっかけて増田に書いたわけですが、実際私自身は私が辞めても業務は滞りなく進んで欲しいと思ってます、というかそうあるべきだと思います

まー、辞めますけどね。もちろん世の中、努力が報われない事も多いですけど、でも馬鹿馬鹿しくてやってられないです。

 

追記3:

Excel VBAパスワード解除は簡単です。それは知ってますし、そんなのググれば一発で出てきます

何遍でも言いますが、パスワードかけたのは不用意に知らない人が触ってシステムおかしくならないように、との意図であって私がやめた後に使えなくする意図などありません。

ただし、会社から指示されない限り、パスワードについて話すつもりもありません。

ですが、もしパスワードを解除してソースを見たら、コメントだらけのソースが読めるようにはしてあります

これは、私が初心者から自分で書いててもよくわからないことが多かったのであくまでもそんなバカ自分のために書いたものなのですけど、変数名前付に至るまで出来る限り意味理解やすものにしてあるつもりです。

何千、何万行もあるような大層なものでもないのでそんなに理解は難しくはないと思います

独学なので色々と変なことはしてると思いますけどね。

2016-12-29

はてブで「Amazon」と検索してみると

昨今話題になってるヤマト佐川関連のブックマークが上位を占めるかと思いきや、まったく違った。

2016年12月29日10:54時点、本文、新着順で検索

Amazon検索結果 (絞り込み: 3 users 以上) 約 3,423 件中 1 - 40 件目 (0.26 秒)

以下略

ECサイト連想させるトピックほとんどなくて、AmazonB2B向けサービスを充実させていることに驚いた。

Amazonって表向きは物流業界革命問題を起こしている要因に挙げられているけど、EC以外のインパクトがどれだけ大きいのか門外漢なので分からない。

↑でブクマ付けた人、何が起きるのか教えて

2016-12-07

http://anond.hatelabo.jp/20161207020046

依存地獄( Dependency Hell )かな。https://en.wikipedia.org/wiki/Dependency_hell

An application depends on many libraries, requiring lengthy downloads, large amounts of disk space, ...

(アプリケーションがたくさんのライブラリ依存していて、長時間ダウンロードや大量のディスク容量が必要で、...)

app depends on liba, which depends on libb, ..., which depends on libz. This is distinct from "many dependencies" if the dependencies must be resolved manually (e.g., on attempting to install app, the user is prompted to install liba first. On attempting to install liba, the user is then prompted to install libb.).

(アプリケーションがAを必要としていて、そのAはBを必要としていて、(中略)Zを必要としているような場合ユーザーが手動で依存性を解決しなければいけない場合には、先ほどの例とは違い、ユーザーは「アプリケーションインストールしようとしたらAが必要と言われ、AをインストールしようとしたらBが必要と言われる」目に遭うことになる)

2016-09-09

Windows 10 Mobile

Insider Preview 初期からBTキーボードでほぼ毎日つかってる人の感想

IMEが糞

 モニタつないで大きな画面でOffice動いたとしてもそれを無に返すレベルIMEが糞ほんとツライ

 ユーザー辞書機能も無いし長文書くのにつらみしかない

アプリが少なすぎ

 あってもAndroidiOS向けと比べるとしょぼいのが多い

 ニワトリタマゴだとは思うけどKKのやる気がなさげなので何ともはや

・端末の出来が安っぽいのが多い

 HPのは期待してる。けど、端末の出来以外の所がアレすぎるのでそれに7万出せるかと言われると結構悩む

 OSとしてはETWS対応してるのに、端末メーカー有効にしてないので使えない物がそこそこあるのでその端末一台運用お勧めできない。

continuum 機能自体はまぁどうでも

 ローカル作業する気ないから外部モニタでFullScreen表示できる何かとしか思ってない

 でかい画面でRDP動くのが重要

・入手方法が限られすぎ

 キャリア経由のがないとガジェオタ端末からの脱却はムリじゃね?

ビジネス向けだからこまけー事はいいんだよという人いるけど

多分そこでメインになるであろうcontinuumIMEが糞過ぎてストレスマッハですよ?

ATOMがどんどん改良されてスマホサイズx86版動けばと結構期待してたけど残念な結果になりそう…

合うかどうかは、人というかライフスタイルにだいぶ左右されると思われる

Office Applicationだけで仕事が完結してドキュメント参照の方が多い人なら悪くないかも?

2016-03-25

個人的オススメ女性ボーカルバンド

最近女性ボーカルバンドにハマっているので、オススメを紹介する。

カラスは真っ白

 最近はもう有名かな、理論好きな人ははまるかも。

&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="205" id="flvplayer" align="middle"&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt; &lt;param name="movie" value="http://g.hatena.ne.jp/tools/flvplayer.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#ffffff" /&gt; &lt;param name="FlashVars" value="moviePath=https://www.youtube.com/watch?v=c-M7cvJy1IY" /&gt; &lt;embed src="http://g.hatena.ne.jp/tools/flvplayer.swf" FlashVars="moviePath=https://www.youtube.com/watch?v=c-M7cvJy1IY" quality="high" bgcolor="#ffffff" width="320" height="205" name="flvplayer" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt; &lt;/object&gt;

赤い公園

 初期の頃の曲のほうが個人的には好き。演奏技術が高い(特にベースギター)。

&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="205" id="flvplayer" align="middle"&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt; &lt;param name="movie" value="http://g.hatena.ne.jp/tools/flvplayer.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#ffffff" /&gt; &lt;param name="FlashVars" value="moviePath=https://www.youtube.com/watch?v=uLLC_cqILVw" /&gt; &lt;embed src="http://g.hatena.ne.jp/tools/flvplayer.swf" FlashVars="moviePath=https://www.youtube.com/watch?v=uLLC_cqILVw" quality="high" bgcolor="#ffffff" width="320" height="205" name="flvplayer" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt; &lt;/object&gt;

・ぽわん

 中毒になる曲が多い。

&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="205" id="flvplayer" align="middle"&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt; &lt;param name="movie" value="http://g.hatena.ne.jp/tools/flvplayer.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#ffffff" /&gt; &lt;param name="FlashVars" value="moviePath=https://www.youtube.com/watch?v=GSGCw2PyHlU" /&gt; &lt;embed src="http://g.hatena.ne.jp/tools/flvplayer.swf" FlashVars="moviePath=https://www.youtube.com/watch?v=GSGCw2PyHlU" quality="high" bgcolor="#ffffff" width="320" height="205" name="flvplayer" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt; &lt;/object&gt;

Wolf Alice

 

&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="205" id="flvplayer" align="middle"&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt; &lt;param name="movie" value="http://g.hatena.ne.jp/tools/flvplayer.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#ffffff" /&gt; &lt;param name="FlashVars" value="moviePath=https://www.youtube.com/watch?v=XflmOIEUVbo&sns=tw" /&gt; &lt;embed src="http://g.hatena.ne.jp/tools/flvplayer.swf" FlashVars="moviePath=https://www.youtube.com/watch?v=XflmOIEUVbo&sns=tw" quality="high" bgcolor="#ffffff" width="320" height="205" name="flvplayer" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt; &lt;/object&gt;

ことりんご

バンドじゃないけどオススメです。

 

&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="205" id="flvplayer" align="middle"&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt; &lt;param name="movie" value="http://g.hatena.ne.jp/tools/flvplayer.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#ffffff" /&gt; &lt;param name="FlashVars" value="moviePath=https://www.youtube.com/watch?v=ypQezZwFaD8" /&gt; &lt;embed src="http://g.hatena.ne.jp/tools/flvplayer.swf" FlashVars="moviePath=https://www.youtube.com/watch?v=ypQezZwFaD8" quality="high" bgcolor="#ffffff" width="320" height="205" name="flvplayer" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt; &lt;/object&gt;

tricot

変拍子を多用したり、ガールズバンドにしては珍しく聴いてて面白い

下の動画では違和感なく5拍子を使っておりポテンシャルの高さが伺える。

&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="205" id="flvplayer" align="middle"&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt; &lt;param name="movie" value="http://g.hatena.ne.jp/tools/flvplayer.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#ffffff" /&gt; &lt;param name="FlashVars" value="moviePath=https://www.youtube.com/watch?v=h2ydFHebKgQ" /&gt; &lt;embed src="http://g.hatena.ne.jp/tools/flvplayer.swf" FlashVars="moviePath=https://www.youtube.com/watch?v=h2ydFHebKgQ" quality="high" bgcolor="#ffffff" width="320" height="205" name="flvplayer" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt; &lt;/object&gt;

2016-03-04

window.OBR = window.OBR||{};(function(OBR){window.OB_releaseVer="01000501";window.OBR=window.OBR||{};OBR.k=OBR.k||;OBR.La=OBR.La||{};window.OBR$=function(d){return document.getElementById(d)};OBR.d=OBR.d||function(){var d={},a={v:function(){return d},h:function(a){d.X=a;d.cb=;d.startTime=(new Date).getTime()},startTime:function(){return d.startTime},log:function(a){var e=((new Date).getTime()-d.startTime)/1E3;1E3>d.cb.length&amp;&amp;d.cb.push(e+" >"+a)},printLog:function(){if(d.X.c.dj)window.console.log(d.cb.join("\n"));else{var a=d.X.b.Ia();a&amp;&amp;(a.innerHTML=d.cb.join("
"),a.style.display="block")}return d.cb.join("\n")}};a.h(OBR);return a}();OBR.printLog=OBR.d.printLog;OBR.H=function(){this.J=[]};OBR.H.prototype.add=function(d,a){var c;"string"===typeof d&amp;&amp;"function"===typeof a&amp;&amp;(c={},c.name=d,c.ai=a,this.J.push(c))};OBR.H.prototype.Qf=function(d){var a,c;OBR.d.log("remove event :"+d);a=0;for(c=this.J.length;a<c;a+=1)if(this.J[a]&amp;&amp;this.J[a].name&amp;&amp;this.J[a].name===d)try{this.J.splice(a,1)}catch(e){OBR.d.log("rm evnt err: "+e)}};</p&gt;

OBR.H.prototype.o=function(d,a,c){var e,b,f,g;a=a||[];c=!!c;OBR.d.log("event fire:"+d);e=0;for(b=this.J.length;e<b;e+=1)if(f=this.J&amp;&amp;this.J[e]?this.J[e].name:"",g=this.J&amp;&amp;this.J[e]?this.J[e].ai:null,f===d&amp;&g)try{g.apply(this,a)}catch(h){OBR.d.log("fire event *"+d+"* error: "+h)}!0===c&amp;&amp;this.Qf(d)};OBR.H.prototype.sa=function(){this.J=[]};OBR.b=OBR.b||function(){var d={},a={},c=document,e=OBR,b=null;a.v=function(){d.X=e;return d};a.h=function(a){e=a};a.Ba=function(){return function(){}};a.Gi=function(){var a=window.jQuery;return void 0!==a?!(/1\.(0|1|2|3|4)\.(0|1)/.test(a.fn.jquery)||/^1\.1/.test(a.fn.jquery)||/^1\.2/.test(a.fn.jquery)||/^1\.3/.test(a.fn.jquery)):!1};a.F=function(a){return null===a||isNaN(a)?null:e.n("outbrain_widget_"+a)};a.Ia=function(){return e.n("ob_holder")};a.ne=function(f){var g=a.Ia();null===g&amp;&amp;(g=e.b.createElement("div",</p&gt;

"ob_holder"),g.style.display="none",f?e.b.insertBefore(g,f):document.body.appendChild(g));return g};a.Vc=function(){if(!e.n(e.c.Pb)){var f=e.b.createElement("iframe",e.c.Pb),g=f.style;g.display="none";g.width="1px";g.height="1px";f.src="about:blank";(g=a.Ia())||(g=a.Va());e.b.Q(f,g)}};a.Va=function(){if(c.body)return c.body;var a;a=e.b.K("","","body",!0);return 0>=a.length?c.lastChild:a[0]};a.createElement=function(a,g,b,e){var d;a=c.createElement(a);"string"===typeof g&amp;&amp;a.setAttribute("id",g);"string"===

typeof b&amp;&amp;(a.style.cssText=b);for(d in e)e.hasOwnProperty(d)&amp;&amp;a.setAttribute(d,e[d]);return a};a.G=function(a){if(e.c.$d===e.c.Od)try{c.createStyleSheet().cssText=a}catch(g){OBR.d.log(g)}else{var b=c.createElement("style"),d=c.body?"string"===typeof c.body.style.WebkitAppearance:!1;b.type="text/css";c.getElementsByTagName("head")[0].appendChild(b);b[d?"innerText":"innerHTML"]=a}};a.N=function(a,g,b,d){var m=c.createElement("script");m.type=e.c.wj;m.src=a;m.charset="UTF-8";m.async=!!g;m.defer=!1;b&amp;&amp;

e.b.s(m,"load",function(a){var f=a.target;f&amp;&amp;setTimeout(function(){f.parentNode.removeChild(f)},3E3)});d&amp;&amp;e.b.s(m,"load",d);return m};a.Cl=function(a,g){var b=e.b.createElement("link",a);b.setAttribute("rel","stylesheet");b.setAttribute("type",e.c.Eh);g&amp;&amp;b.setAttribute("href",g);return b};a.ih=function(a){var g=e.n("ob_iframe");g&amp;&amp;(g.src=a)};a.Hf=function(){var a;a=isNaN(a)?1E5:a;return Math.floor(Math.random()*a)};a.nk=function(a,g,b){return a.replace(g,b)};a.Ll=function(){var f;if(f=OBR.n("objsonpp"))if(a.kj())a.Ka(f.parentNode)&amp;&amp;

f.parentNode.removeChild(f);else return OBR.n("objsonpp");f=c.createElement("iframe");f.id="objsonpp";f.tk&amp;&amp;(f.tk="seamless");(f.frameElement||f).style.cssText="width: 0; height: 0; border: 0";f.src="";c.body.appendChild(f);return f};a.R=function(a){var g,b;b=c.getElementsByTagName("head");try{b&amp;&amp;0<b.length?b[0].insertBefore(a,b[0].firstChild):(g=c.getElementsByTagName("script"),g[0].insertBefore(a,g[0].firstChild))}catch(d){e.d.log("Err insertToHead:"+d)}};a.Kl=function(a){a=a||OBR;return"function"!==</p&gt;

typeof a.H?(OBR.d.log("namespace.EventManager not function"),null):new a.H};a.O=function(a){return encodeURIComponent(a)};a.Ka=function(a){return null!==a};a.pj=function(f){var b,c=!1;if(a.Zc(f))return!1;b=f.Oe().recMode||"";f=f.Oe().dynamicWidgetLayout||"";b=e.c.rk[b]||"";"2"===b&amp;&amp;"1"===(e.c.sk[f]||"")&amp;&amp;(c=!0);c||"1"!==b&amp;&amp;"3"!==b||(c=!0);return c};a.Zc=function(a){return void 0===a||null===a};a.tj=function(b){return a.Zc(b)||""===b};a.getElementsByClassName=function(b,g){g||(g=document);return g.getElementsByClassName?

g.getElementsByClassName(b):a.K("class",b,"*",!0,!0,g)};a.K=function(b,g,e,d,m,l){var p,q,n;p=[];e=e||"*";d=!!d;m=!!a.tj(m);e=l?l.getElementsByTagName(e):c.getElementsByTagName(e);l=0;for(q=e.length;l<q;l+=1)n="class"===b?e[l].className:e[l].getAttribute(b),null!==n&amp;&amp;(!1===m&amp;&amp;(n=n.toLowerCase(),g=g.toLowerCase()),(n=""===b?!0:d?-1<n.indexOf(g):n===g)&amp;&amp;p.push(e[l]));return p};a.Wb=function(a,b,c){a.detachEvent?a.detachEvent("on"+b,c):a.removeEventListener&amp;&amp;a.removeEventListener(b,c,!1)};a.s=function(a,</p&gt;

b,c){a.attachEvent?a.attachEvent("on"+b,function(){c.call(a)}):a.addEventListener&amp;&amp;a.addEventListener(b,c,!1)};a.Q=function(a,b){try{b.appendChild(a)}catch(c){e.d.log("Fail insert into Dom:"+c)}};a.lb=function(b){b=e.n(b);!a.Zc(b)&amp;&amp;a.Ka(b.parentNode)&amp;&amp;b.parentNode.removeChild(b)};a.insertBefore=function(a,b){return b.parentNode.insertBefore(a,b)};a.isArray=function(a){return a instanceof Array?!0:"[object Array]"===Object.prototype.toString.call(a)};a.sb=function(a,b){var c=/htt(p|ps)?:\/\/127\.0\.0\.1(:\d\d\d\d)?/i;

return/^htt(p|ps)?:\/\/([\w\-]*|[\w\-]*\.[\w\-]*)\.outbrain\.com(:\d\d\d\d)?/i.test(a)||c.test(a)?a:b};a.al=function(a){a=a.replace(/^(\s*)/g,"");var b=c.createElement("div");b.innerHTML=a;return b.childNodes};a.Ua=function(a,b){return a?a.getAttribute(b):null};a.xa=function(a,b,c){a&amp;&amp;a.setAttribute(b,c)};a.I=function(a,b){var c=RegExp("[ '\"|]"+b+"[ '\"|]");a&amp;&amp;!c.test("|"+a.className+"|")&amp;&amp;(a.className+=" "+b)};a.ma=function(a,b){a&amp;&amp;typeof b===e.c.$k&amp;&amp;(a.classList?a.classList.remove(b):a.className=

a.className.replace(RegExp("(^|\\b)"+b+"(\\b|$)","gi")," "))};a.$=function(a,b){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var c,e;try{return c=RegExp("[\\?&amp;]"+a+"=([^&amp;#]*)","i"),e=c.exec(decodeURIComponent(window.location.href.replace(/\+/g," "))),null===e?b:e[1]}catch(d){return b}};a.sh=function(a){"string"===typeof a&amp;&amp;0<a.indexOf("#")&amp;&amp;(a=a.substr(0,a.lastIndexOf("#")));return a};a.ie=function(a){var b=e.c.ga+"/strip_default.png";a.src!==b&amp;&amp;(a.alt="",a.title="",a.src=b)};a.Oh=function(){var a=</p&gt;

null,b,e,d=null;if("string"===typeof window.OB_MP_feed)a=window.OB_MP_feed;else if((b=c.getElementsByTagName("head"))&amp;&amp;0<b.length)for(e=b[0].getElementsByTagName("link"),b=0;b<e.length;b+=1)if(d=e[b],null!==d.type&amp;&amp;("application/rss+xml"===d.type||"application/atom+xml"===d.type)&amp;&amp;null!==d.href&amp;&amp;""!==d.href){a=d.href;break}return a};a.D=function(a,b){var c=null;a.currentStyle?c=a.currentStyle[b]:window.getComputedStyle&amp;&amp;(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b));return c};</p&gt;

a.xk=function(){var b=a.Ia(),g,c;a.Ka(b)&amp;&amp;(g=e.b.createElement("span","ob_a"),a.insertBefore(g,b),g.innerHTML=".",c=a.D(g,"color"),a.lb("ob_a"),g=e.b.createElement("a","ob_a"),g.setAttribute("href","void(0)"),g.innerHTML=".",a.insertBefore(g,b),b=a.D(g,"color"),a.lb("ob_a"),c="rgb(0, 0, 0)"===c||"#000000"===c?"#555":c,a.G(".ob-tcolor{color:"+c+"} .ob-lcolor{color:"+b+"} .ob-bgtcolor{background-color:"+c+"} .item-link-container:hover .ob-tcolor{border-color:"+c+"} "+(document.addEventListener?"":".odb_li:hover .ob-zapping-icon,.odb_div:hover .ob-zapping-icon,.item-container:hover .ob-zapping-icon,.ob-dynamic-rec-container:hover .ob-zapping-icon,.odb_li:hover .ob-textual-zapping-icon,.odb_div:hover .ob-textual-zapping-icon,.item-container:hover .ob-textual-zapping-icon,.ob-dynamic-rec-container:hover .ob-textual-zapping-icon{display:none !important;}")))};

a.Ke=function(b){var g=a.Ie("property","og:url","meta","content");null===g&amp;&amp;(g=a.Ie("rel","canonical","link","href"));null!==g||b||(g=window.location.href);null===g&amp;&amp;(g="");return g};a.Ie=function(b,g,c,e){var d=null;b=a.K(b,g,c,!1);null!==b&amp;&amp;0<b.length&amp;&amp;(d=b[0].getAttribute(e));return d};a.jh=function(b){var g,c,d;g=b.g("tracking",!1);c=b.g("comScoreEnabled",!0);d=e.c.je;!1===g&amp;&amp;(!0===c&amp;&amp;!1===d&amp;&amp;!b.Pe())&amp;&amp;(a.Vc(),g=b.q("pid",""),b=e.n(e.c.Pb))&amp;&amp;(b.src=e.c.ga+"/"+e.c.Ub+"3rd/comScore/comScore.htm#pid="+</p&gt;

g,e.c.je=!0)};a.Ei=function(){var b=a.Lb(8);"string"===typeof window.name&amp;&amp;(""===window.name||-1<window.name.indexOf("frame"))?(window.name=b,b=window.name):"string"===typeof window.name&amp;&amp;""!==window.name&amp;&amp;(b=window.name);return b=e.b.O(b.substring(0,9))};a.Lb=function(a){var b,c;b=[];a="number"===typeof a?a:8;for(c=0;c<a;c+=1)b.push("0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(61*Math.random())));return b.join("")};a.me=function(a){for(var b="",c=0;c<a.length;c++)b=</p&gt;

b.concat(a[c]?"1":"0");return parseInt(b,2)};a.Xc=function(b){var g=b.getElementsByTagName("a")[0];if(null===b.offsetParent||0===b.offsetHeight||0===b.offsetWidth||0===b.clientHeight||0===b.clientWidth||"none"===a.D(b,"display")||"hidden"===a.D(b,"visibility"))return!1;var c=parseInt(a.D(b,"padding-top"),10)+parseInt(a.D(b,"padding-bottom"),10);return 0===b.clientHeight-c||g&amp;&amp;"none"===a.D(g,"display")?!1:!0};a.Oc=function(a){for(var b in e.La)if(e.La.hasOwnProperty(b)&amp;&amp;e.La[b].l===a)return e.La[b];

return null};a.Rl=function(a){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0};a.Ga=function(a,b){return"function"!==typeof a?null:void 0===b?a():a(b)};a.kj=function(){return"Microsoft Internet Explorer"===navigator.appName};a.Fh=function(a,b){return a*b};a.Ge=function(a){if(!a||""===a)return[];a=a.replace("","").replace("http://","").replace("https://","").replace("www.","").replace("www2.","").split("/");a.pop();return 0<a.length?a:[]};a.ki=function(b,g){var c=a.Ge(b),e=[],d="";if(g>=c.length)d=

c.join(".");else{e[0]=c[0];for(d=1;d<=g;d+=1)e[d]=c[d];d=e.join(".")}return d};a.ti=function(){return"http"+("https:"===c.location.protocol?"s":"")};a.si=function(){var b,g;b=c.getElementById("widgetVersionSync");null===b&amp;&amp;(b=a.createElement("iframe","widgetVersionSync"),g=a.createElement("div",null,"display:none; height:0px; width:0px; border:none;"),g.appendChild(b),a.Va().appendChild(g));return b};a.ql=function(b){var g;g=window.OB_releaseVer;isNaN(g)||(isNaN(b)||g>=b)||(b=a.ti()+"://widgets.outbrain.com/external/sync/outbrainjs.html?needToBeVer="+

b.toString(),g=a.si(),g.src=b)};a.Sg=function(b){b=b.g("widgetVersionSync",0);isNaN(b)||""===b||(b=parseInt(b,10)||0,a.ql(b))};d.Rc=function(){if(b)return b;var a;try{var g=window.localStorage;g.setItem("OBtst","");g.removeItem("OBtst");a=g}catch(c){a={$b:{},setItem:function(a,b){this.$b[a]=b},removeItem:function(a){this.$b[a]=void 0},getItem:function(a){return"undefined"!==typeof this.$b[a]?this.$b[a]:null}}}return b=a};a.hg=function(a,b){d.Rc().setItem(a,b)};a.Qc=function(a){return(a=d.Rc().getItem(a))?

a:null};a.Gh=function(){d.Rc().removeItem("OB-USER-TOKEN")};a.h(OBR);return a}();OBR.ya=function(d,a,c,e,b,f,g,h,k){var m,l;m=this;l=0;k="function"===typeof k?k:OBR.b.Fh;m.start=function(){var p;l+=1;OBR.b.Ga(d,l)?OBR.b.Ga(a,l):(p=OBR.b.Ga(h,l))?OBR.b.Ga(e,l):(p=l===f&amp;&amp;1E3!==f)?OBR.b.Ga(e,l):(OBR.b.Ga(c,l),p=g?k(l,b):b,setTimeout(function(){m.start()},p))};m.start()};OBR.re=OBR.re||{fj:function(){return"complete"===document.readyState}};

OBR.Hc=function(){var d={},a=[];d.add=function(c){a.push(c)};d.remove=function(c){a.splice(c,1)};d.top=function(){return 0<a.length?a.shift():null};d.jj=function(){return 0>=a.length};d.Jl=function(){return a};d.qh=function(){a=[]};return d};

OBR.Ra=function(){function d(e,b){a.pb="resolve"===e?function(a){a&amp;&amp;a(b)}:function(a,g){g&amp;&g(b)};a.Pa=a.kk=function(){throw Error("Promise already completed.");};for(var f,g=0;f=c[g++];)f[e]&amp;&amp;f[e](b);delete c}var a={},c=[];a.pb=function(a,b){c.push({resolve:a,reject:b})};a.Pa=function(a){d("resolve",a)};a.kk=function(a){d("reject",a)};return a};

OBR.Ag=function(d){var a={},c=null,e,b;a.onClickOrAutoplay=void 0;a.onDisplayReady=void 0;a.onError=void 0;a.fetch=function(a){null===c?(c=a,b&amp;&amp;b(c,this),b=null):(c=a,OBR.Ja.of([this]))};a.shown=function(a){e=a;OBR.Ja&amp;&amp;OBR.Ja.pl(d.widgetId,d.playerId,e)};a.stopTimer=function(){if(this.tg){window.clearInterval(this.tg);var a=document.querySelector('[data-ob-player-id="'+d.playerId+'"] .timerNumber');a&amp;&amp;(a.textContent=a.parentElement.getAttribute("data-time"))}};a.placed=function(){OBR.Ja.ol(d.playerId)};

a.uj=function(a){b=a;c&amp;&amp;b(c,this)};a.Ue=function(){return d};a.Hl=function(){return e};a.Nl=function(){return d.when};return a};OBR.Fg=function(){var d={},a="00.000",c=null,e=null,b=0;d.start=function(){null===c&amp;&amp;(c=new Date);null!==e&amp;&amp;(b+=new Date-e)};d.stop=function(){var f=new Date(new Date-c-b),g=f.getUTCSeconds(),f=f.getUTCMilliseconds();e=new Date;return a=(9<g?g:"0"+g)+"."+(99<f?f:9<f?"0"+f:"00"+f)};return d};</p&gt;

OBR.rd=OBR.rd||function(){function d(){var a=window;a.googletag=a.googletag||{};a.googletag.cmd=a.googletag.cmd||[]}function a(a,g,c,e){var d=window;d.$revee&amp;&amp;d.googletag.cmd.push(function(){d.$revee.track({obpid:a,obsid:g,obdid:c,obpu:e});b.d.log("revee fire:"+e);b.d.log("revee fire id:"+c)})}var c={},e=!0,b;c.h=function(a){b=a;c.cc={}};c.Yb=function(f){if(f&amp;&amp;!1!==f.g("activateRevee",!1)){d();var g=f.q("pid",0),h=f.q("sid",0),k=f.q("did",0),m=f.ka();e||c.cc[k]?e&amp;&amp;(e=!1,f=b.b.N(b.c.U+"rva.outbrain.com/analytics-v1.js",

!0,!0,function(){m=document.location.href;a(g,h,k,m)}),b.b.R(f)):a(g,h,k,m);c.cc[k]||(c.cc[k]=!0)}};c.B=function(){e=!0;c.cc={}};c.h(OBR);return c}();OBR.c=OBR.c||function(){var d={},a={},c=OBR,e;a.Cg="opera";a.Od="msie";a.zg="firefox";a.xg="chrome";a.Eg="safari";a.Bg="mozilla";a.Al="boolean";a.$k="string";a.Vl="object";a.gl="undefined";a.Ul="number";a.Pb="ob_iframe";a.$e=!0;a.Ff=0;a.ec="outbrain_widget_";a.wj="text/javascript";a.Eh="このエントリーをはてなブックマークに追加ツイートシェア

2015-08-06

とうとう人類幸せに導くpgbouncer1.6が公開された

みんな大好きPostgreSQL

複数DBマルチテナントシステムを構築するなら忘れてはいけないコネクションプーリング

大量コネクションを扱うなら都度forkやpre-fork式ではちょっと辛い、イベントベースが好ましい。

もうお分かりですね。pgbouncer1.6の話題です。

PostgreSQL界隈では有名なコネクションプーリング実装が2つあります。 pgpool-II と pgbouncer。

ざっくり言うと高機能の pgpool-II に対して、軽量・大規模向けの pgbouncer という棲み分けがあると言えるでしょう。

pgpool-II は最近日本トレジャーデータ社の Prestogres ( https://github.com/treasure-data/prestogres ) という痺れるようなプロジェクトベースとして採用されていることで名前を聞いたことのある方もいるのではないでしょうか。

pgbouncer は少し古いですが LastFM( http://www.lastfm.jp/user/Russ/journal/2008/02/21/zd_postgres_connection_pools:_pgpool_vs._pgbouncer )の事例が有名でしょう。Instagram も使ってますネ。

pgbouncerは現行のバージョンは1.5系で、最新は1.5.5です。1.6系は8月1日リリースされ、複数DBマルチテナントシステムに向けた大規模な機能強化が行われています

この1.6系では複数DBマルチテナントシステム開発者にとって嬉しい機能がたくさん搭載される予定です。本番運用に投入する前に一足お先にリリースノートを読んで夢を感じましょう。

バージョン2013年ぐらいからリリースノートは準備されているのにさっぱりリリースされなくて関係者をやきもきさせていました。(想像

記事では以下のリリースノートをもとにザックリ読み解いたものです。

http://pgbouncer.github.io/2015/08/pgbouncer-1-6/

主要新機能

接続ユーザーパスワードハッシュDBからロードできるようになった

プーリングモードの設定をデータベース毎、ユーザー毎に設定できるようになった

データベース毎、ユーザー毎にコネクションの最大接続数を制御できるようになった

・新しいコネクション確立を避けるための DISABLE/ENABLE コマンドが追加された

・新しい推奨のDNSバックエンド c-ares が追加された

設定ファイルに include ディレクティブを追加した

ではリリースノートをそれぞれ細かく見ていきましょう。

接続ユーザーパスワードハッシュDBからロードできるようになった

新しく以下のパラメータが追加された

1.5までのpgbouncerは userlist.txt というテキストに静的に接続ユーザを書かなければいけませんでした。

これは動的に接続ユーザーが増えるようなマルチテナントシステムを構築するのに不向きという事です。

この機能はその悩みを解消するための機能と言えるでしょう。

プールモードデータベース毎、ユーザー毎に設定することができる。

タイトルがすべてを物語ってます。柔軟にできますねぇ('∀`)

ただ、私にはちょっと有用な利用シーンが思いつかなかったです。

たとえば分析ユーザーではトランザクションなんて使わないので statement モードにしてコネクションの消費を抑えたりできるという事でしょうか。

データベース毎、ユーザー毎にコネクションの上限を設定できる。

max_db_connections と max_user_connections という設定が追加されます

テナント毎にユーザーを分けているような複数DBマルチテナントシステムにとって必須といえる機能です。

特定ユーザーリクエストコネクションをすべて占有されてしまい、他のユーザーサービスできないという事態を避けることができるようになるでしょう。

新しいコネクション生成を防止する DISABLE/ENABLE コマンドを追加。

特定データベースの新しいコネクション確立を抑止・再開することができます

新しいDNSバックエンドとして c-ares を導入した。

c-ares名前解決の非同期化を行うためのライブラリです。c-ares名前解決をブロックしないし、いろいろな方式名前解決に対応している唯一のプロダクトとのこと。

名前解決をブロッキングしてしまうようではpgbouncerのような大規模向けシステムでは役に立たないのだというpgbouncerの強い意志を感じる。

というか、ドキュメントを見る限り pgbouncer は名前解決にかなりこだわりを持っているらしい。それだけそこが重要ということでしょう

個人的には困ったことがないのでそこまでだわる理由はよくわからない。)。

SHOW CLIENTS, SHOW SERVERS で remote_pid を出すようになった。

UNIXドメインソケットで接続しているクライアントと、TCPまたはUNIXドメインソケットで接続しているサーバーでremote_pidを取得できるようになりました。

tcp serverの場合、pid はキャンセルキーから取得できる。(?ドキュメントから意味が読み取れず)

キャンセルキーとは何でしょうね。ちょっとリリースノートから判断できませんでした。

pg_cancel_backend とかに使えるPIDだよという事なのでしょうか。

ネガティブDNSキャッシュのために dns_nxdomain_ttl を分割した。

DBの数なんてもはや何台あるかわからない。ホスト名の解決はもはやDNSで行っておるよという皆様にとって必須機能

…なのでしょうがちょっとこの機能必要となるようなシステムとはどんなものなのか、私も未経験なのでよくわからないです。

クライアントIPアドレスポートapplicationネームに追加する

この設定は application_name_add_host=on にすることで有効となる。

今や接続アプリケーション名がWebだとかBatchだとか区別できるだけで問題が解決するような時代ではない。

どのホスト(ポート)レベル区別しないと。という事なんだろう。

「おお、Webサーバーから死ぬほど重いクエリが飛んでる、今すぐ調べないと!で、どのWebサーバーよ?100台あるんだぜ」みたいなときに助かりますね。

設定ファイルに外部ファイル読み込みディレクティブを追加することができるようになります

設定ファイル大規模化してくると、切り出して整理したいという要望はどうしてもでてくるもの

データベース毎、ユーザー毎に設定できる項目が増えてきたので必要になったという事でしょう。

以上。

以降はバグフィックスとかクリーンアップだとかで自分はあまり興味がないので各自読むように。

本番運用突撃するPostgreSQL界の猛者の報告待ってます

2015-03-09

Taskerで私が使っているレシピ晒す

すべての泥信者にTaskerの素晴らしさを伝えるべく、本エントリーを投下したい。

イヤホンの挿入でメディアボリューム音(&着信音)を調整


・(Not) Headset Plugged Any → Media Volume Level [任意の値]

イヤホン挿入時はMedia Volume Level 1、非挿入時はMedia Volume Level 0にしています

Media Volume Leve 0 の代わりにSilent Modeを設定しても構いません。

また、挿入時レシピにはMedia Volume Level 1と一緒にIn-Call VolumeのTaskも入れてますイヤホンから大音量の着信音が聞こえてきたら怖いですから

特定アプリ立ち上げで画面の自由回転をONにする


・(YouTubeなどの)Application → Display AutoRotate On

画面の固定/自由回転の切り替えを自動で行うレシピです。

普段は画面固定で、特定アプリ(YouTubeなど)使用時だけ回転させる使い方が多いのではないかと思われます

アプリインストール直後にアプリ管理画面を表示


・New Package → App Manage Settings

私は基本的アプリの通知をOFFにしているのですよ。ノイズ耐性がないのです。

新しいアプリインストールするたびに手動で設定画面を立ち上げ、通知をOFFにするのは面倒です。また、OFFにするのを忘れると困るのでこのレシピを使ってます

App Manage SettingsはApp Settingsでも良いです。

画面の点灯/消灯でWi-FiON/OFF


・Display On/Off → WiFi On/Off

私はモバイルWi-FiルーターとセットでNexus 5SIMナシWi-Fi運用しているのですよ。

で、スリープ時はネット接続要らないのでこのレシピ入れてます

特定Wi-Fiが近くにない場合、画面にパスコードロックをかける


Wifi Near, [任意の] SSID, Invert → Lock [任意のCode]

自宅に飛んでいるWi-FiSSIDを設定すれば、外出時だけパスコードロックをかけることができます

このレシピ特定Wi-Fiが近くにあるだけで有効になりますWi-Fi接続されている必要はありません(Wi-FiONになっている必要はあります)

SIMマウントパスコードロックをかける


・Mobile Network, On, On, On, ON → Lock [任意のCode]

SIM抜き運用なので、盗難で誰かがSIMマウントしたらロックがかかります

一度ロックがかかったら、SIMを抜いてもロックコード入力する必要があります

ちなみにこの時かけロックコードは上記『Wifi Near』のコードとは異なります。つまりWifi Near』のコードをうまく突破してもまたクラッキングする必要があるのです。

Bluetooth接続パスコードロックをかける


BT Connected → Lock [任意のCode]

私は青歯使わないのですよ。

ペアリング面倒ですし、相性問題接続不安定なこともありますし。

BT接続した瞬間3つ目のコード要求されます。不届き者はきっとブチ切れるでしょう。

私が使っているTaskerのレシピは以上です。

みんな自由に使っていいぜ。あばよ!

2015-02-23

最新のフランス破棄院判決について

Références

Cour de cassation

chambre sociale

Audience publique du jeudi 12 février 2015

N° de pourvoi: 13-21975

Non publié au bulletin Cassation

Mme Goasguen (conseiller le plus ancien faisant fonction de président), président

SCP Gatineau et Fattaccini, SCP Masse-Dessen, Thouvenin et Coudray, avocat(s)

--------------------------------------------------------------------------------

Texte intégral

REPUBLIQUE FRANCAISE

AU NOM DU PEUPLE FRANCAIS

LA COUR DE CASSATION, CHAMBRE SOCIALE, a rendu l'arrêt suivant :

Sur le moyen unique :

Vu l'article 4 du code de procédure civile ;

Attendu, selon le jugement attaqué rendu en dernier ressort, que Mme X... a été engagée par l'oeuvre de perfectionnement de la Loire en qualité de psychomotricienne ; que le contrat ayant été transféré à l'association PEP de la Loire, la salariée était, en dernier lieu, affectée sur deux établissements distincts, l'un situé à Firminy et l'autre à Grand-Croix ; qu'elle a saisi la juridiction prud'homale d'une demande en paiement de frais exposés pour effectuer le trajet entre ces deux établissements ainsi qu'en paiement de dommages-intérêts ;

Attendu que pour débouter la salariée de ses demandes, le jugement retient que les dispositions contractuelles ne prévoient pas la prise en charge par l'association des frais de carburant engagés pour les déplacements entre la résidence habituelle de la salariée et ses différents lieux de travail, et que l'intéressée n'apporte pas la preuve d'un engagement de cette dernière de rembourser ses frais de déplacement pour se rendre à Grand-Croix ;

Qu'en statuant ainsi, alors que la salariée demandait le remboursement de frais exposés pour le trajet entre les deux établissements auxquels elle était affectée, le conseil de prud'hommes a méconnu l'objet du litige dont il était saisi ;

PAR CES MOTIFS :

CASSE ET ANNULE, dans toutes ses dispositions, le jugement rendu le 27 mai 2013, entre les parties, par le conseil de prud'hommes de Saint-Etienne ; remet, en conséquence, la cause et les parties dans l'état où elles se trouvaient avant ledit jugement et, pour être fait droit, les renvoie devant le conseil de prud'hommes de Lyon ;

Condamne l'association PEP 42 aux dépens ;

Vu l'article 700 du code de procédure civile, la condamne à payer à Mme X... la somme de 3 000 euros ;

Dit que sur les diligences du procureur général près la Cour de cassation, le présent arrêt sera transmis pour être transcrit en marge ou à la suite du jugement cassé ;

Ainsi fait et jugé par la Cour de cassation, chambre sociale, et prononcé par le président en son audience publique du douze février deux mille quinze.

MOYEN ANNEXE au présent arrêt

Moyen produit par la SCP Masse-Dessen, Thouvenin et Coudray, avocat aux Conseils, pour Mme X...

Le moyen fait grief au jugement attaqué d'AVOIR débouté Madame Véronique X... de ses demandes tendant au remboursement des frais exposés pour ses déplacements et au paiement de dommages-intérêts.

AUX MOTIFS QUE selon les dispositions de l'article L.3261-3 du Code du travail, « l'employeur peut prendre en charge, dans les conditions prévues à l'article L.3261-4 du Code du travail tout ou partie des frais de carburant engagés pour leurs déplacements entre leur résidence habituelle et leur lieu de travail par ceux de ses salariés : 1° Dont la résidence habituelle ou le lieu de travail est situé en dehors de la région d'Ile de France et d'unrimètre de transports urbains défini par l'article 27 de la loi n° 82-1153 du 30 décembre 1982 d'orientation des transports intérieurs ; 2° Ou pour lesquels l'utilisation d'un véhicule personnel est rendue indispensable par des conditions d'horaires de travail particuliers ne permettant pas d'emprunter un mode collectif de transport ; que dans les mêmes conditions, l'employeur peut prendre en charge les frais exposés pour l'alimentation de véhicules électriques ou hybrides rechargeables et permettre la recharge desdits véhicules sur le lieu de travail. Le bénéfice de cette prise en charge ne peut être cumulé avec celle prévue à l'article L.3261-2 du Code du travail» ; que l'article L.3261-47 dudit Code précise : « La prise en charge des frais de carburant mentionnée à l'article L.3261-3 du même Code est mise en oeuvre : 1° Pour les entreprises entrant dans le champ d'application de l'article L.2242-1 du Code du travail par accord entre l'employeur et les représentants d'organisations syndicales représentatives dans l'entreprise ; 2° Pour les autres entreprises, par décision unilatérale de l'employeur après consultation du comité d'entreprise ou, à défaut, des délégués du personnel s'il en existe » ; que les dispositions contractuelles entre Madame X... et l'APEP 42 ne prévoient pas la prise en charge par l'employeur des frais de carburant engagés pour les déplacements entre la résidence habituelle de Madame X... et ses différents lieux de travail ; que Madame X... n'apporte pas la preuve d'un engagement de son employeur de rembourser les frais de déplacement pour se rendre à Grand Crois ; que lors de la réorganisation de l'entreprise signifié à Madame X... par courrier du 21 juin 2010, par lequel il était bien précisé deux lieux de travail différents, Madame X... aurait pu demander à son employeur l'application des dispositions de l'article R.3261-15 du Code du travail : « Le salarié qui exerce son activité sur plusieurs ces différents lieux et entre ces lieux et la résidence habituelle du salarié peut prétendre à la prise en charge des frais de carburant ou d'alimentation électrique d'un véhicules engagés lui permettant de réaliser l'ensemble des déplacements qui lui sont imposés entre sa résidence habituelle et ses différents lieux de travail, ainsi qu'entre ces lieux de travail » ; que cette demande n'a été faite qu'en novembre 2010 ; qu'en tout état de cause, la prise en charge des frais relève d'une disposition unilatérale de l'employeur ; qu'en l'espèce, pour la prise en charge des frais de déplacement domicile/lieu de travail l'APEP 42 a confirmé à Madame X... que la faculté ouverte à l'employeur de prendre en charge une partie des frais engagés par le salarié, ne présente aucun caractère obligatoire pour l'entreprise ; qu'en conséquence, la demande de Madame X... de paiement de ses frais de déplacement n'est pas fondée.

ALORS QUE Madame Véronique X... poursuivait le remboursement des frais exposés au titre des trajets effectués entre les deux établissements auxquels elle était affectée ; qu'en statuant sur les frais exposés pour les trajets entre la résidence habituelle de la salariée et ses différents lieux de travail, le Conseil de prud'hommes a méconnu l'objet du litige en violation des articles 4 et 5 du Code de procédure civile.

ET ALORS QUE Madame Véronique X... soutenait que le contrat de travail transféré à la PEP 42 prévoyait le remboursement des frais de déplacement et que le contrat régularisé avec la PEP 42 à l'occasion de ce transfert constituait un simple avenant n'emportant pas novation du contrat initial en ce qu'il prévoyait le remboursement des frais exposés pour les trajets ; qu'en omettant de répondre à ce moyen déterminant des écritures d'appel de la salariée, le Conseil de prud'hommes a entaché sa décision d'un défaut de réponse à conclusions en violation de l'article 455 du Code de procédure civile.

ALORS encore QU'en application de l'article R.3261-15 du Code du travail, le salarié qui exerce son activité sur plusieurs lieux de travail au sein d'une même entreprise qui n'assure pas le transport entre ces différents lieux et entre ces lieux et la résidence habituelle du salarié peut prétendre à la prise en charge des frais de carburant ou d'alimentation électrique d'un véhicule engagés lui permettant de réaliser l'ensemble des déplacements qui lui sont imposés entre ces lieux de travail ; qu'en se fondant sur les dispositions des articles L.3261-3 et L.3261-4 du Code du travail, relatifs aux seuls déplacements entre la résidence habituelle et le lieu de travail, pour rejeter la demande de la salariée, le Conseil de prud'hommes a violé lesdits articles L.3261-3 et L.3261-4 du Code du travail par fausse application.

ALORS de plus QU'en application de l'article R.3261-15 du Code du travail, le salarié qui exerce son activité sur plusieurs lieux de travail au sein d'une même entreprise qui n'assure pas le transport entre ces différents lieux et entre ces lieux et la résidence habituelle du salarié peut prétendre à la prise en charge des frais de carburant ou d'alimentation électrique d'un véhicule engagés lui permettant de réaliser l'ensemble des déplacements qui lui sont imposés entre ces lieux de travail ; qu'en reprochant à la salariée de n'avoir pas demandé l'application des dispositions de cet article dès qu'elle avait été informée de son affectation sur deux établissements différents, le Conseil de prud'hommes a violé l'article R.3261-15 du Code du travail en y ajoutant une condition qu'il ne prévoit pas.

ALORS QUE la renonciation à un droit ne se présume pas ; qu'en reprochant à la salariée de n'avoir pas demandé l'application des dispositions de l'article R.3261-15 du Code du travail dès qu'elle avait été informée de son affectation sur deux établissements différents, quand cette circonstance, fût-elle établie, ne pouvait caractériser la renonciation de la salariée à se prévaloir du droit au remboursement des frais de trajet exposés, le Conseil de prud'hommes a violé l'article 1134 du Code civil.

--------------------------------------------------------------------------------

2015-02-16

OS X向けアプリケーションCocoa Application制作情報が少ない

なんで世の中にはiOS向けアプリケーションCocoa Touch)の情報ばっかりなのだろう?

書店へ行けばiOSネットサーフィンすれどもiOS

いったいどこへ行ったらOS X向けアプリケーション情報たっぷり入手できるのやら。

かろうじて入手できたとしてもObjctive-C2.0以前のちょっと古い情報ばかり。

Xcodeも古いバージョンから自分対応させていかなきゃいけない。

アプリ制作入門になんでiOSばっかりなのか。もっとOS X向けあってもいいじゃないか。

OS X向けアプリケーション制作することのメリット

コンパイルが通れば無料で、実機で、動かせる

Mac App Storeを必ずしも利用しなくていいからとにかく無料

Cocoa Bindingが利用できて便利

と、こんなにたくさんあるのだ。

逐一クレジットカード必要になるiOSアプリケーションとは大違いだ。

ちびっこでも安心してプログラミングが楽しめる。

さらに、今流行りのFRPも外部ライブラリいらずでできる。Cocoa TouchじゃData Bindingは(確か)できないからな。

もっとCocoa Application情報が増えたらいいなぁ。

書籍もっと出版されたらいいのになぁ。

UXKitが広く使われるようになるまで待つかなぁ。

2015-02-11

SpringBootアプリjavafxを使って配布しやすくしよう

概要

Javaで開発されたアプリケーションにはインストールにまつわる難点がある。

それによりせっかく興味をもってくれたユーザーも試す前に諦めてしまいがちである

また、サーバーサイドアプリケーションJavaである場合デプロイ監視の際の難点が多く運用者を悩ませてきた。

javafxで導入されたパッケージャを用いることで各OSネイティブインストーラーの作成が可能になり、この問題を解消・緩和できる。

SpringBoot などを用いた ExecutableJar作成するアプリケーションであれば、サーバーサイドアプリケーションであっても一部制限があるものパッケージングできる。

問題点の整理

Javaで開発されたアプリケーションの配布には以下の問題点がある。

解決方法として

javafx-maven-pluginを使うとよい。javafxと冠しているが実態パッケージングツール

javafxの冠があるがためにスタンドアロンアプリ開発者以外を遠ざけている感あり。

Windows(msi/exe), Linux(rpm/deb), Mac(dmg) など各OSディストリビューション固有のパッケージングが行える。

公式ページ( http://zenjava.com/javafx/maven/ )では更新が止まっているが、Github( https://github.com/zonski/javafx-maven-plugin )とMavenRepository( http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.zenjava%22%20AND%20a%3A%22javafx-maven-plugin%22 )を確認するとちゃんと開発は続いている。

実際にどのようにすればパッケージングできるか

まずアプリケーションmaven アプリとして開発する。

pom.xml に以下を追加する。

mainClassはSpringBootなら@SpringBootApplicationのついてるクラスですね。

vendor適当組織や個人の名前を入れておきましょう。

※ 以下の XML が化けるのは増田不具合仕様っぽい。 http://anond.hatelabo.jp/20100205210805

&lt;plugin&gt;
  &lt;groupId&gt;com.zenjava&lt;/groupId&gt;
  &lt;artifactId&gt;javafx-maven-plugin&lt;/artifactId&gt;
  &lt;version&gt;8.1.2&lt;/version&gt;
  &lt;configuration&gt;
    &lt;mainClass&gt;[main method class]&lt;/mainClass&gt;
    &lt;vendor&gt;[Vendor Name]&lt;/vendor&gt;
  &lt;/configuration&gt;
&lt;/plugin&gt;

あとはそのままビルドすればよい。

maven clean jfx:native

ビルドが終わると target/jfx/native 以下に、ビルドしたOS/distributionに合わせて msi, exe, deb, rpm, dmg ができあがります

本当であればクロスビルドできてしかるべきなのですが、まだ実現はされていないようです。

これらのパッケージは Widonws であれば Program Files(x86) に、Linux系であれば /opt/ の下にインストールされるようです。

/opt/app-name/ の下には app と runtime の2つのディレクトリがあります

app の下にはビルドした jar ファイル依存ライブラリが置かれています

runtime の下には実行用の jre が配備されています

実行ファイルにそのまま引数を渡せば jar 実行時の引数としてそのまま渡されます。(-Xmxなどはまだ未検証です)

課題

OS毎の注意点

2015-01-06

書き込みテストです。

私のいる時代の話をします。

何時というのは書けませんが、少し先の話です。

21世紀初期にはSNSと呼ばれていた色々なサービスが、その後、統一されました。

幾つか残っているものもありますが、メジャーではありません。

今は、オンライン書き込み実名義務付けられていますので、一昔前に、匿名投稿できる日記サービスがあったと知って、驚きました。当時の人たちには、匿名ということにそれだけ需要があったのですね。

私は学校課題で扱う題材を探していて、オンライン匿名性について知り、とても面白いと思いました。

一番興味深いのは「釣り」という行為です。匿名性ならではの行為で、釣る人も釣られる人も、「釣り」を想定してコミュニケーションをとっています暗黙の了解を前提としていて、高度な文化だと思いました。

匿名性のおかげで、私たち過去のスペースに投稿することができます

将来を変えてしまうような事件の予告や固有名詞を出さなければ、大抵のことは「釣り」として扱われるだけで済んでしまうからです。

未来から投稿といって予言をしている人もいますが、信じられるものではありません。なぜならそれは禁則行為からです。

未来から予言という投稿ほとんどは嘘を書いて楽しんでいるか、fakeを混ぜています

私の文章も、釣りだと思っていただけると幸いです。

さて、今日は私が好きなSNSの話をしようと思います

とは言っても、SNSという呼び方は、この時代呼称です。

日本語義務教育ですが、私に不足があるかもしれません。でもSNS匿名性が面白いのは、やはり日本だと思いますので、日本語で書きたいと思います

私は毎朝起きると、まずオンラインニュースをチェックします。

ニュースにはGenuineのApplicationからコメントをつけることができますが、ここで私はThird PartyのApplicationを立ち上げます

このSNS日本発祥の老舗サービスです。

コメント投稿しているユーザー実名に紐付いたニックネームで表示されます

ですが、その実名ユーザーの半分が実際には存在していないというのは有名な話です。

その企業が開発したAlgorithmにより、複数の仮想ユーザーを作り上げて、ニュース記事につくコメント自動投稿しているというのです。

ConservativeからProgressive、FeminineからMasculine、LeftからRightと、思想グラデーションによって仮想ユーザーを配置し、このユーザーならこう答えるという投稿自動化をしているのだそうです。

それには、その企業21世紀初期の匿名時代に大量に投稿されたコメントを蓄積していたことが、大きな貢献となっているようです。

過去匿名性ならではの過激なコメントや忌憚のない意見が、自由人間くささを持ったコメント投稿する仮想ユーザーを作り出したのです。

それは私たちのような実名ユーザーよりも、活発な議論を促します。

21世紀前半は人工知能が大変に飛躍した時代でした。

私はこのSNSコメントを毎朝楽しみにしています。けれども、それがAlgorithmによる自動投稿だと知った時には、がっかりしました。

ちょうど、この時代の人たちが「釣り」と知っていて楽しめるように、今では私もそれなりに自動投稿されたコメントを楽しんでいます

もちろんその中には、私のように存在するユーザーもいます

私たちは、そのSNSコンピューターの作り出す議論ゲームに過ぎないことを知っています

私は毎朝起きると、ニューストピックスを流し見しながら、気なる記事コメントをチェックします。そうして仮想ユーザーコメント意見を返したりします。

私たち実名ユーザーコンピューターの作り出した概念議論を交わすのです。

それはとても楽しい体験です。ですが、生身の人間ニックネームの向こう側にいて議論しあっていた2010年代という時代を知って、信じられない気持ちになりました。2010年代投稿には粗野なコメントも多いですが、無知には発想の自由があります

次に私がアクセスする時に詳細な日時が指定できないため、この投稿の結果を確認することができません。

今日のことを知人に話すと「2010年代は1日あたりの投稿量がすごいから埋もれるよw」と笑われました。(草と呼ばれるこのslangも好きです。)

でも私の日記2010年代匿名投稿の海に紛れて漂うのも悪くないと思います

以上、投稿テストを終わります

2014-12-21

荒川マラソン

荒川マラソンが前代未聞の理由で開催中止に → 返金の連絡先が『振り込め詐欺に利用された要注意住所』と一致して大炎上wwwww

http://www.kimasoku.com/archives/7982053.html

東京荒川マラソン http://arakawamarathon.atdawn.tokyo/

関連: http://atdawn.tokyo/

NPO団体黎明

http://fields.canpan.info/organization/detail/1026339646

arakawa1.pdf
Content-Type: application/pdf
Creation-Date: 2014-11-20T10:23:34Z
Last-Modified: 2014-11-20T10:23:34Z
Last-Save-Date: 2014-11-20T10:23:34Z
created: Thu Nov 20 19:23:34 JST 2014
date: 2014-11-20T10:23:34Z
dc:format: application/pdf; version=1.5
dcterms:created: 2014-11-20T10:23:34Z
dcterms:modified: 2014-11-20T10:23:34Z
meta:creation-date: 2014-11-20T10:23:34Z
meta:save-date: 2014-11-20T10:23:34Z
modified: 2014-11-20T10:23:34Z
pdf:PDFVersion: 1.5
pdf:encrypted: false
producer: Microsoft® Excel® 2010
xmp:CreatorTool: Microsoft® Excel® 2010
xmpTPg:NPages: 2
パラグライダー写真

http://banq.jp/17979

http://hill.xsrv.jp/3minute-essence/nomi-479

whois
Domain Name:ATDAWN.TOKYO 
Domain ID:GMOREGISTRY-DO186691 
WHOIS Server:whois.nic.tokyo 
Referral URL:http://nic.tokyo 
Updated Date:2014-11-28T03:59:43.0Z 
Creation date:2014-09-26T13:07:28.0Z 
Registry Expiry Date:2015-09-26T23:59:59.0Z 
Sponsoring Registrar:GMO Internet, Inc. 
Sponsoring Registrar IANA ID:49 
Domain Status:ok http://www.icann.org/epp#ok 
Registrant ID:15981FC9FAA55F 
Registrant Name:MORIYO MOMOHRA
Registrant Organization:MORIYO MOMOHRA
Registrant Street:Saitoaominami6-8-3-102
Registrant City:Mino-shi
Registrant State/Province:Osaka
Registrant Postal Code:562-0028 
Registrant Country:JP 
Registrant Phone:+81.08085010056
Registrant Phone Ext: 
Registrant Fax: 
Registrant Fax Ext: 
Registrant Email:domain@onamae-server.com 
...

東京荒川スプリングマラソン http://potus.jp/

whois
Domain Information: [ドメイン情報]
[Domain Name]                   POTUS.JP

[登録者名]                      桃原 守代
[Registrant]                    MORIYO MOMOHRA

[Name Server]                   dns02.gmoserver.jp
[Name Server]                   dns01.gmoserver.jp
[Signing Key]                   

[登録年月日]                    2014/11/13
[有効期限]                      2015/11/30
[状態]                          Active
[最終更新]                      2014/11/13 01:39:04 (JST)

Contact Information: [公開連絡窓口]
[名前]                          桃原 守代
[Name]                          MORIYO MOMOHRA
[Email]                         munokokoroha@gmail.com
[Web Page]                       
[郵便番号]                      562-0028
[住所]                          大阪府箕面市
                                彩都粟生南6-8-3-102
[Postal Address]                Mino-shi
                                Saitoaominami6-8-3-102
[電話番号]                      080-8501-0056
[FAX番号]                       

https://www.google.co.jp/maps/place/%E5%A4%A7%E9%98%AA%E5%BA%9C%E7%AE%95%E9%9D%A2%E5%B8%82%E5%BD%A9%E9%83%BD%E7%B2%9F%E7%94%9F%E5%8D%97%EF%BC%96%E4%B8%81%E7%9B%AE%EF%BC%98

NPO団体OZ

http://v.hitomachi-kyoto.genki365.net/gnkk14/mypage/mypage_group_info.php?gid=G0000921

NPO団体アーク http://ark.npo-marathon.jp.net/index.html

http://ark.npo-marathon.jp.net/service.html

http://runnet.jp/report/raceDetail.do?command=page&raceId=93657&userNumber=7522796&pageIndex=&sortIndex=0

santa.pdf
Author: FJ-USER
Content-Length: 464992
Content-Type: application/pdf
Creation-Date: 2014-10-02T02:37:57Z
Last-Modified: 2014-10-02T02:37:57Z
Last-Save-Date: 2014-10-02T02:37:57Z
created: Thu Oct 02 11:37:57 JST 2014
creator: FJ-USER
date: 2014-10-02T02:37:57Z
dc:creator: FJ-USER
dc:format: application/pdf; version=1.5
dcterms:created: 2014-10-02T02:37:57Z
dcterms:modified: 2014-10-02T02:37:57Z
meta:author: FJ-USER
meta:creation-date: 2014-10-02T02:37:57Z
meta:save-date: 2014-10-02T02:37:57Z
modified: 2014-10-02T02:37:57Z
pdf:PDFVersion: 1.5
pdf:encrypted: false
producer: Microsoft® Excel® 2010
resourceName: santa.pdf
xmp:CreatorTool: Microsoft® Excel® 2010
xmpTPg:NPages: 4

2014-12-12

O寄生獣おもろーーーOO

&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="320" height="205" id="flvplayer" align="middle"&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt; &lt;param name="movie" value="http://g.hatena.ne.jp/tools/flvplayer.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#ffffff" /&gt; &lt;param name="FlashVars" value="moviePath=http://www.nicovideo.jp/watch/sm25037055" /&gt; &lt;embed src="http://g.hatena.ne.jp/tools/flvplayer.swf" FlashVars="moviePath=http://www.nicovideo.jp/watch/sm25037055" quality="high" bgcolor="#ffffff" width="320" height="205" name="flvplayer" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt; &lt;/object&gt;

2014-08-01

一発当てた個人開発者をまとめるWebサービス作った

http://individualist.link/ (←ドメインかっこいいでしょ)

居酒屋にて 〜

A「やっぱり若者が稼ぐにはアプリ作るしかないと思うんですよ」

B「あー分かる」

B「スマートフォンアプリWebアプリでもいいの?」

C「ゲームは当たると大きくていいよね」

A「Webアプリでもいいです」

B「当ててそれで暮らしてる人見ますね。羨ましい。」

A「いいですよね」

A「そういう人の話聞いてみたいんですけどなかなか出てこないですね」

B「当てた人が人前で自慢するメリットないからねえ…」

B「どういう人がどういうサービスで当てたのかまとめたい」

A「いいですねえ。Wiki 的な」

B「Google Docs とかでやってみる?」

A「おお、やりましょう」

B「Webサービスにしてもいいかも」

帰宅 &amp; 1時間後 〜

B「できた」

B「ドメイン取ろう」

B「http://individualist.link/

アルコール入ってるから話のディティールうろ覚えだけどこんな流れで作りました

やっぱり若者が稼ぐにはアプリ作るしかないと思う。

当てたいなら先例を見るのが一番参考になるはずだし、僕は個人で作ったもの流行っているのを見るのが好きだし、そういうのとても興味ある。

このサイトを見ていると、どういう人がこのサービス作ったんだとか、これ個人で作ってたんだという発見があっておもしろいと思います

時間で出来た

時間で出来たというのはほとんど誇張ではなくて、デザインに拘る時間サーバーに設置する時間を抜かせば本当に1時間でできます

せっかくなのでちょっと開発について書きます

このサイトコーディングに使う大まかな作業をまとめると

データベース接続

Twitterアカウントユーザー登録

画像保存

タグ付け

JavaScriptで動き付ける

CSS整える

HTMLマークアップ

デザイン

というような感じになる。これらを実直にいちいち実装してたら1日で終わるか分かりません。

本を読む一番はやい方法は、文字を読まないことです。

コーディングせずにライブラリを使いましょう。

ちょっとコードが書けると実装する道筋が思いついちゃうからライブラリを探す考えに及ばず実装しちゃう事があると思います

そういう事は避けて、アプリを書くならアプリ本体を最小に済ませるか、ライブラリ自体を作ることに力を入れましょう。

こちらのサイトではRailsのレールに乗っかって開発しました。

以下の例はRailsを使った方法ですが、モダンフレームワークを使っているのであればだいたい似たような話になると思う。

ライブラリで組み立てよう

Rails

手に馴染んだフレームワークがあるならなんでもいい。

クソ小さなロジックと数ページしかないならPHPでもいいけど、

とにかくはやく作ることがしたいなら何かしらフレームワーク使ったほうがいい。

秘伝の Rails Application Template を用意しておくのも良い。

データベース接続

モダンフレームワークなら何も考えずにデータベース接続できるはず。

Rails なら config/database.yml に接続情報書いて rake db:create &amp;&amp; rails g model User name:string です。

scaffold 使うと更に早くできます

Twitterアカウントユーザー登録

OmniAuth gem を使います

ソーシャルアカウントログインする要件が出たら、何も考えずに「あ、OmniAuth」となりましょう。

Device gem を使うと更に早くできます

画像保存

Paperclip gem を使います

画像保存が必要になったら反射的に「Paperclip か CarrierWave どっにしよう」となりましょう。

ファイル保存とか変換をいちいち実装してたら朝が来ます

タグ付け

ActsAsTaggableOn を使います

has_many :through のめんどくさいタグの実装ですが

これ入れて rake acts_as_taggable_on_engine:install:migrations &amp;&amp; rake db:migrate を打てば一発で完成します。

JavaScript で動き付ける

早くつくりたいんなら JavaScript は捨てましょう。

少なくとも生の JavaScript 書く時代ではないので CoffeeScript 使うと良いです。

CSS 整える

とりあえず Bootstrap 入れましょう。

クラスの付け方を覚えちゃうCSS 弄って HTML リロードして確認なんてことしなくても形は整います

Bourbon gem 使って mixin ライブラリ組み込んじゃうのもいいですね。

HTML マークアップ

HTML 書くのやめましょう。

Haml や Slim のようなテンプレートエンジンを使います

Slim が一番タイプ量少なくておすすめ

Zen Coding でもいいけど、結局出力されるのが HTML じゃ見通し悪くて辛いと思う。

Web Components の時代になったらもっと簡単になるんだろうな。

デザイン

こればかりプロっぽいものつくる自信はない…

ただ、Webページやアプリというのはだいたい決まったパターンがあるので、いろいろな事例を見るとよいでしょう。

正直レイアウト自体は他のサイト真似るのは悪くない判断だと思います

しろその方がユーザーにとって慣れ親しんだ分かりやすサイトでもあります

http://individualist.link/場合http://www.producthunt.com/ を異常なほど参考にしました。

まあここまで書いてなんだけど、前提知識として Rails が使えるようになってないといけないのは敷居高くて悪かったと思う。

僕も最初アプリ作るのに途方も無い時間かかってた。

慣れればはやくなるから、たくさんアプリ作って一発当てよう。

思いついたときにすぐ作れるようになれるといろいろ捗るぞ。

なお、今回つくったこのサイト、ぜひともみなさんにも投稿していただきたいのですが現在投稿者承認制としております

質を保ちたいので、捨て垢に荒らされても困りますからね。

私本当に個人が作って運営しているというアプリサイトというのが好きでして、

こちらのサイトリストアップする行為に儲けやがってといった悪意は一切ありません。

私にとっては好きな人達をまとめるサイトなので質はしっかりしておきたいのです。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん