「Jar」を含む日記 RSS

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

2023-12-21

anond:20231221180034

日本語祖語は偏堡(Pianpu)文化紀元前2700年頃の遼西地区東部もしくはマンチュリア南部遼河流域に起源があり、

紀元前1500年頃に朝鮮半島北部中央部ゴングウィリ(Gonggwiri)式土器を介して朝鮮半島南部の無文(Mumun)文化形成し、

この頃に磨製石器を伴う稲作など灌漑農耕が山東半島から遼東半島経由で朝鮮半島南部へと広がり、

紀元前9世紀に九州北部へと広がり弥生文化形成に至って、日本列島在来の「縄文語」系統を(北海道を除いてほぼ)やがて駆逐した、とされます(Miyamoto., 2022)。

一方、朝鮮語祖語もマンチュリア南部とその周辺に起源があり、現在北京付近位置した、いわゆる戦国の七雄の一国である燕の東方への拡大に圧迫されて朝鮮半島へと移動し、

その考古学指標紀元前5世紀頃の粘土土器(rolled rim vessel、Jeomtodae)文化になり、やがて朝鮮半島から日本語系統駆逐した、と指摘されています(Miyamoto., 2022)。

まりマンチュリア南部とその周辺から、まず紀元前二千年紀半ばに日本語系統朝鮮半島へと到来し、その後で九州北部に広がったのに対して、朝鮮語系統紀元前千年紀半ばに朝鮮半島へ到来した、というわけです。





参考文献:

Cooke NP. et al.(2021): Ancient genomics reveals tripartite origins of Japanese populations. Science Advances, 7, 38, eabh2419.

doi.org/10.1126/sciadv.abh2419

Gakuhari T. et al.(2020): Ancient Jomon genome sequence analysis sheds light on migration patterns of early East Asian populations. Communications Biology, 3, 437.

doi.org/10.1038/s42003-020-01162-2

Gelabert P. et al.(2022): Northeastern Asian and Jomon-related genetic structure in the Three Kingdoms period of Gimhae, Korea. Current Biology, 32, 15, 3232–3244.E6.

doi.org/10.1016/j.cub.2022.06.004

Harris EE.著(2016)、水谷淳訳『ゲノム革命 ヒト起源真実』(早川書房原書刊行2015年

Huang X. et al.(2022): Genomic Insights Into the Demographic History of the Southern Chinese. Frontiers in Ecology and Evolution, 10:853391.

doi.org/10.3389/fevo.2022.853391

Kanzawa-Kiriyama H. et al.(2019): Late Jomon male and female genome sequences from the Funadomari site in Hokkaido, Japan. Anthropological Science, 127, 2, 83–108.

doi.org/10.1537/ase.190415

Lee DN. et al.(2022): Genomic detection of a secondary family burial in a single jar coffin in early Medieval Korea. American Journal of Biological Anthropology, 179, 4, 585–597.

doi.org/10.1002/ajpa.24650

Mafessoni F. et al.(2020): A high-coverage Neandertal genome from Chagyrskaya Cave. PNAS, 117, 26, 15132–15136.

doi.org/10.1073/pnas.2004944117

Mao X. et al.(2021): The deep population history of northern East Asia from the Late Pleistocene to the Holocene. Cell, 184, 12, 3256–3266.E13.

doi.org/10.1016/j.cell.2021.04.040

Miyamoto K.(2022): The emergence of ‘Transeurasian’ language families in Northeast Asia as viewed from archaeological evidence. Evolutionary Human Sciences, 4, e3.

doi.org/10.1017/ehs.2021.49

Mizuno F. et al.(2021): Population dynamics in the Japanese Archipelago since the Pleistocene revealed by the complete mitochondrial genome sequences. Scientific Reports, 11, 12018.

doi.org/10.1038/s41598-021-91357-2

Ning C. et al.(2020): Ancient genomes from northern China suggest links between subsistence changes and human migration. Nature Communications, 11, 2700.

doi.org/10.1038/s41467-020-16557-2

Petr M. et al.(2020): The evolutionary history of Neanderthal and Denisovan Y chromosomes. Science, 369, 6511, 1653–1656.

doi.org/10.1126/science.abb6460

Robbeets M. et al.(2021): Triangulation supports agricultural spread of the Transeurasian languages. Nature, 599, 7886, 616–621.

doi.org/10.1038/s41586-021-04108-8

Sato T. et al.(2021): Whole-Genome Sequencing of a 900-Year-Old Human Skeleton Supports Two Past Migration Events from the Russian Far East to Northern Japan. Genome Biology and Evolution, 13, 9, evab192.

doi.org/10.1093/gbe/evab192

Scally A. et al.(2012): Insights into hominid evolution from the gorilla genome sequence. Nature, 483, 7388, 169–175.

doi.org/10.1038/nature10842

Sikora M. et al.(2019): The population history of northeastern Siberia since the Pleistocene. Nature, 570, 7760, 182–188.

doi.org/10.1038/s41586-019-1279-z

Tian Z. et al.(2022): Triangulation fails when neither linguistic, genetic, nor archaeological data support the Transeurasian narrativea. bioRxiv.

doi.org/10.1101/2022.06.09.495471

Vallini L. et al.(2022): Genetics and Material Culture Support Repeated Expansions into Paleolithic Eurasia from a Population Hub Out of Africa. Genome Biology and Evolution, 14, 4, evac045.

doi.org/10.1093/gbe/evac045

Wang CC. et al.(2021): Genomic insights into the formation of human populations in East Asia. Nature, 591, 7850, 413–419.

doi.org/10.1038/s41586-021-03336-2

Wang K. et al.(2023): Middle Holocene Siberian genomes reveal highly connected gene pools throughout North Asia. Current Biology, 33, 3, 423–433.E5.

doi.org/10.1016/j.cub.2022.11.062

Watanabe Y, and Ohashi J.(2023): Modern Japanese ancestry-derived variants reveal the formation process of the current Japanese regional gradations. iScience, 26, 3, 106130.

doi.org/10.1016/j.isci.2023.106130

安達登、神澤秀明、藤井元人、清家章(2021)「磯間岩陰遺跡土人骨のDNA分析」清家章編『磯間岩陰遺跡研究分析考察』P105-118

大西秀之(2019)「アイヌ民族文化形成における異系統集団の混淆―二重波モデル理解するための民族史事例の検討」『パレオアジア文化史学人類集団拡散と定着にともなう文化・行動変化の文化人類学的モデル構築2018年研究報告書(PaleoAsia Project Series 21)』P11-16

神澤秀明、角田恒雄、安達登、篠田謙一(2021a)「佐賀県唐津市大友遺跡第5次調査出土弥生人骨の核DNA分析」『国立歴史民俗博物館研究報告』第228集P385-393

神澤秀明、角田恒雄、安達登、篠田謙一(2021b)「鳥取県鳥取市青谷上寺遺跡出土弥生後期人骨の核DNA分析」『国立歴史民俗博物館研究報告』第228集P295-307

神澤秀明、角田恒雄、安達登、篠田謙一(2021c)「香川県高松市茶臼山古墳出土古墳前期人骨の核DNA分析」『国立歴史民俗博物館研究報告』第228集P369-373

神澤秀明、角田恒雄、安達登、篠田謙一、斎藤成也(2021d)「島根県出雲市猪目洞窟遺跡土人骨の核DNA分析」『国立歴史民俗博物館研究報告』第228集P329-340

国武貞克(2021)「中央アジア西部における初期後期旧石器時代(IUP期)石器群の追求と日本列島到来の可能性」『パレオアジア文化史学アジアにおけるホモ・サピエンス定着プロセス地理的編年的枠組みの構築2020年研究報告書(PaleoAsia Project Series 32)』P11-20

上峯篤史(2020)「存否問題のムコウ」『Communication of the Paleo Perspective』第2巻P24-25

佐藤宏之(2013)「日本列島の成立と狩猟採集社会」『岩波講座 日本歴史  第1巻 原始・古代1』P27-62

篠田謙一(2019)『日本人になった祖先たち DNAが解明する多元的構造』(NHK出版

篠田謙一、神澤秀明、角田恒雄、安達登(2019)「西北九州弥生人遺伝的な特徴―佐世保市本山岩陰遺跡土人骨の核ゲノム解析―」『Anthropological Science (Japanese Series)』119巻1号P25-43

doi.org/10.1537/asj.1904231

瀬川拓郎(2019)「アイヌ文化縄文文化関係はあるか」北條芳隆編『考古学講義』第2刷(筑摩書房、第1刷の刊行2019年)P85-102

高宮広土(2014)「奄美沖縄諸島へのヒトの移動」印東道子編『人類の移動誌』初版第2刷(臨川書店)第3章「日本へ」第5節P182-197

松波雅俊(2020)「ゲノム検証する沖縄人の由来」斎藤成也編著『最新DNA研究が解き明かす。 日本人の誕生』第2刷(秀和システム)第5章

水ノ江和同(2022)『縄文人は海を越えたか 言葉文化圏』(朝日新聞出版

山田康弘(2015)『つくられた縄文時代 日本文化原像を探る』(新潮社

2023-09-27

jarじゃないんだよclassぞ!!

なんつって

ぷぷ

2023-09-11

anond:20230911230410

しかしそういえば、今日は「動かなくなっちまった」が 2 連続したんだなあ。

昼は Visual Studio Code拡張機能Markdown Preview Enhanced」の PlantUML 機能が動かなくなっていた事に気づいた。

どうやら plantuml.jarパスを設定してやる必要があるらしい。

以前までは MPE をインストールしたままの状態で動いていたはずなのに。

まあ設定は簡単。MPE とは別に、同じく VSCodePlantUML 単独拡張機能も入れていたので

そいつが抱えている plantuml.jar を MPE でも使うように設定。こちらはすんなりと解決だ。

(いや、待てよ。拡張機能自動アップデートされていくもの。そして拡張機能ディレクトリ名にはバージョン番号を含んでいる。

 つまり PlantUML 拡張機能ディレクトリ名、いつか気づかないうちに変わっちゃうんじゃないか解決になってないなこれw)

2022-10-07

自立とは依存先を増やすことって.dll地獄とか.jar地獄に言えんの?

依存関係増やしてコンフリクトしたり合体してバグになったり、

可能な限り依存は減らせ、って鉄則だと思うやで

2022-05-09

「一発ネタいいですか」

「いいですよ」

「パワー『ワシのjar』(jarはビンを意味し、実際にパワーのものである)」

「あ、やっぱダメです。一定クオリティがないので」

2022-03-04

核はシェアしないで、ちゃん自分で持とう

shared libraryよりstatic libraryだよ

.dll地獄とか.jar地獄を忘れたのか?

ひとつの.exeだけでどこに設置しても動作するのが正しいんだよ

だって同じことだよ

2022-01-25

アメリカガチシステム開発現場を行動観察

アメリカガチシステム開発現場を行動観察

ここから今日の本題です。

アジャイルコーチとして、アメリカガチの、ガチシステム開発現場に、言うたらエスノグラフィ(行動観察調査)をしてるようなもんです。三流プログラマながら。

そういうリファレンスみたいなことをお伝えしたら、皆さん(Regional Scrum Gathering Tokyo 2022の参加者)が喜んでくれるかなとか思って、内容を構成しています

ただ、僕が知っているのはマイクロソフトだけですし、自分職場だけなので、主語が大きすぎるとか、そう言うのはやめてください。心が傷つくから(笑)

そういうのを踏まえて聞いてください(笑)。全部一次情報で、人から聞いたものではないです。ちょっとだけマネージャ関連のところはマネージャに聞いたところもありますが、基本的には自分経験したことのみで構成します。

ウォーターフォールは使われていない

まず滝。ウォーターフォールがどれぐらい使われてるのかって話ですけど、これは簡単です。ゼロパーセント、本当に見たことないです。

fig

からといって本当に素晴らしいスクラムをみんなやってるかっていうと、そうでもない。どれぐらいプロセスに対してマチュア成熟)かはチーム次第なんだけど、少なくともイテレーティブじゃないのはないし、アップフロントデザイン(開発前の仕様策定)を大量に時間をかけてやってるというのもない。

デザインドキュメントっていうのを書く人もいれば書かない人もいて、書く人が多いですけど、書いても5ページぐらい。

何年か前にサム・グッケンハイマーというDevOpsで有名な人が日本に来たとき日本のお客さんに「ウォーターフォールアジャイルメリットデメリットを教えてください」って聞かれて、彼が「ウォーターフォールは全くメリットがないのでやめておきなさい」って言い放って。

僕が当時そのことをブログに書いたらすごい炎上しましたけど。

私は間違っていた。ごめん。ウォーターフォールは何のメリットも無い - メソッド屋のブログ

分かります。誰も使ってないんだから。やっぱりもうやめといた方がいいですよね、正直話無理があります

開発者それぞれが責任を持って設計実装する

次は、僕のチームがどんな感じで運用されてるかっていうお話します。

マイクロソフトには統一プロセスとかなくて、基本的にチームをどう回すかはチーム次第なんですよ。でもだいたいみんな似たような感じでやってると思います

基本的にはスモールチームです。どんな大きなプロジェクトであっても、スモールチームの集まりって感じです。

自分のチームについては、これがよいやり方かは分からないですが、個人商店みたいなもので。「IC」というのはIndividual Contributorですね、開発者

fig

マネージャからアサインされるバックログ基本的にはふわっとしているので、ICがそれを明確にします。

IC仕様自分明確化して、自分デザインして、インプリメントする。だからそれぞれがレスポンシビリティを持っていて、それぞれが実装をする。

ただ、同じマイクロサービスメンテする役割の人みたいなのがいて、それは「Buddy」(バディ)みたいになっていて、僕の場合は例えば「スケールコントローラー」っていうのを開発していますが、スケールコントローラーのチームでバディになってると、質問というかお互いに話が聞きやすい。すぐに答えてくれやすいですね。

他のチームとかになると、ちょっとバリアがあって。やっぱりみんなそれぞれの仕事をやっているので、プライオリティがそれぞれあるんですよ。だから違うチームの人になると意地悪じゃなくて彼らのレスポンスは1日に1回とかになったりするわけですよね。仕方がないことです。

多分このチームの単位マネージャ管理できる最大以下の人数で構成されてるんじゃないかなと思います。だから本当に自分のチームはそれぞれが個人商店みたいな感じですね。自分レスポンシビリティを持って自分でやる。それは新人であっても一緒です。

司会)ここでちょっと会場から質問が入りました。このチームというのはどういう単位なんでしょうか。プロダクトの単位なのか、どういう単位なのか。

(右下の点線で囲われたところ)このチームはスケールコントローラをやっていて、(右上の3つのICを指して)このあたりはプラットフォームと言って中の基盤みたいなことをやってたりします。

でも基盤もかなり巨大なので、内部でいくつか分かれているんですけど、同じマネージャが見て、みんなを助けている、という感じですね。

司会)隣のチームと、このチームを分けているのは、マネージャが違うだけ?

ええと、大きな機能で分かれているというのがあります。例えば隣のチームはランタイムっていうチームなんで、Azure Functionsのランタイム担当してるんですよ。

給料を上げるのは他人との競争ではなく自分との戦い

さて、エンジニア評価っていうのはどんな感じになってるかっていうと、この図にはマイクロソフトは入っていないのですが、僕の友達に「ゆうさん」っていう人がいて、彼がブログGAFA給与体系みたいなをまとめてくれて、マイクロソフトも似たような感じです。

参考:GAFA米国本社エンジニア年収ジョブレベル別に比較してみた【GoogleAmazonFacebookApple

この図がまさに僕が言いたいことなので、この図を使います

fig

こういう情報って外部に公開されてるので別に隠すことはないし、マイクロソフト給料の額とかも調べられるんですよ。

どういうふうになってるかっていうと、エンジニアとしてランクがあるんですよね、「SDE1」「SDE2」とか。マイクロソフト場合は「シニアソフトウェアエンジニア」があって「プリンシパルエンジニア」がある、みたいな。

このランクの人はこういうことができる、っていうのが明確に定義されていて、それによって給料が決まるんですね。

から自分給料を上げたかったらどうするかっていうと、プロモート(ランク上げ)してもらえるように頑張るって感じです。他の人との戦いじゃないんです。

いまより一つ上のランク仕事をしばらくしていれば、マネージャが「こいつは今はシニアだけどプリンシパル仕事してるからプロモートしよう」とノミネートしてくれる。

そうやってノミネートされたら次のレベルに行けるし、行けなかったら転職をする。転職するとそこでネゴシエーションやすいので、その時に例えばシニアとかプリンシパルになれればその給料がもらえる。

ただ、そういうふうに上に行くとレスポンシビリティも大きくなるので、自分でチョイスする感じですね。自分でチョイスするし、自分との戦いなので。だから他の人と比べて不公平とか全然思わない。

給料を上げたかったら次のレベルになればいい。そういうアクションをとればいいので、あくま自分との戦いって感じになります

マネージャ自分仕事キャリアを助けてくれる

マネージャ存在っていうのは僕的にはすごい(日本と)違ってるように感じています

日本にいるときマネージャって進捗管理課題管理をしたりとかして、プログラマとか開発者を指揮するとかそんなイメージだったんですかね、僕のイメージとしては。

アメリカ場合は、彼らが重視してくれるのは僕のキャリアなんですよ。僕がハッピーかどうかとか、僕がキャリア成功するかっていうのをすごい重視してくれるんです。

fig

これまで何人かマネージャが変わりましたけど、みんなそうでした。マイクロソフトには明確にそう定義されているんです。だからマネージャはみんなそういう動きをしてくれます

マネージャ大事仕事アンブロック」

マネージャのすごく大事仕事に「アンブロック」というのがありますIC、つまり開発者の人がどこかで詰まっている状態になると、マネージャが助けてくれる。ブロックされているものアンブロックしてくれるんです。

fig

例えば、僕が技術的に詰まるとして、誰かに聞かなあかんけど、誰か聞かなあかん人がなかなか答えてくれへんとか、そういうこともあるかもしれないです。

そういうブロックをされる状況が一番生産性を阻害すると思うんですね。

そういうときマネージャアンブロックを手伝ってくれる。ある人に繋いでくれたり、マネージャ経由で他の人が僕に協力してくれたりとか。

マネージャが、このプルリクエストを見たら分かりやすいよと教えてくれるとか。

基本的納期の設定はない。マネージャも急かさな

あと結構面白いのは、少なくとも今の僕の職場では、納期基本的にない感じです。

fig

あるときもあるんですよ。どんなときかっていうと、マイクロソフト最大のイベントの「Build」というのが5月ぐらいにあって、そのキーノートで発表される予定のプロダクトみたいなもの。それが決まったら納期があるのかもしれないですけど。

基本的納期的なものはなくて、できたときが終了なんです。

マネージャも僕に対して「早くしてください」って言ったことは1回もないですね。どっちかというと、僕が「何か遅くてごめんな」とか言ってたら、「いやそんな気にすんなよ」って、「よくあることだよ」とか言われたりする。

これは多分いろんな意味合いがあるんですよね。多分クラウドプラットフォームって、難しいことがいろいろあって、例えば自分が1週間でできるって思ったのに2カ月かかったりとか、ほんまにあるんですよ。

例えば、JVMにあるJarをアタッチするだけに見えた仕事に、僕は半年かかりました。

僕の能力のなさもあるかもしれないですけど、そういういろんな予想外のことが起こる。

やっぱり世界中の人が使うプラットフォームなので、よく分かってない実装とかしたらむちゃくちゃになるんです。ちゃん理解して、より良いアーキテクチャを作らないとひどい目にあう。

から多分マネージャ絶対に急かさないんだと思いますちゃん理解して出来るようになれば、次からは開発が速くなる。だからマネージャとしてはそこで急かさないことによって未来への投資をしてる感じなんじゃないかなと、僕は思ってます

バックログはあり予定もあるが、達成されないこともしょっちゅう

司会)すいません、マネージャの話しに行く前に。質問が集まっていて。納期がないという話に関して皆さんが大混乱に陥っていてですね(笑)納期がないとすると逆に何があるのか。バックログみたいなのがあるのか、ロードマップがあるのか。どういうものを始点に駆動されていて、牛尾さんの仕事が始まるのか。

バックログですね。大きなトピックだけはある。今期はこれをやろう、というのはあるんですよ。

だいたい今期はこれとこれをやっていこうというのがあって、それを荒い粒度ですけどブレイクダウンしたストーリーにして、それをICアサインするんです。

でも、それが今期に達成されないということはしょっちゅう起こります

思ったよりもすごく難しかったとか、あるシステムで改変が入るのでそれまで作れないとか、そういうのがしょっちゅうある。でもそれでそのICが責められることはないです。

変化は見通せないので仕方ないですよね。オーガナイズはされているけど、できなかったときはできないと認める、ということです。

司会)お客様からバックログの元になるような要求がきて、それがリリースされるまでのタイムスパンはどのくらいなんでしょうか?

僕らの場合プロダクトオーナーみたいなチームとしてプロダクトマネージャがあって、バックログの発生元はプロダクトマネージャが決めるのですが、そのインプットソースとしては、彼らの戦略(ストラテジ-)とカスタマフィードバックですね。

あとはハッカソンエンジニアがなにかプロポーズするときもあります

そういうもののなかからプロダクトマネージャが、今期これをやればインパクトがあるんじゃないかと考えるものピックアップされます

で、それが達成されてリリースされるまでの期間は本当にピンキリです。

僕の場合は、早いときは1週間で終わりましたけど、さっきの話みたいに1週間で終わると思ったやつが半年かかったこともあります

僕の上司で僕よりもプログラミングができない人はいない

ではマネージャ技術力の話に進みたいと思います

僕の上にはプリンシパルマネージャがいるんですね、それが日本で言ったら課長みたいなもので、その上に部長みたいなのがいて、で、テクニカルフェロー、これは事業部長みたいな感じです。

彼らの技術力はどんな感じか。

僕の1つ上の上司は、Azure FunctionsのJavaランタイムをイチから書いた人です。

その上の人は、Azure Automationの開発をしている人で別チームなので細かいところまでは知らないのですが、技術力がハンパない、ということだけは分かります

何でかと言うと、どんなテッキー話題を振っても、ものすごく早く深く理解するんです。彼が経験したことのないことであっても、Kubernetesでも、彼がやったことのないPythonとかでも、完璧理解してアーキテクチャの深い話をするんです。

給料が高くて当然だと思いますね。

fig

で、テクニカルフェロー。これはAzureの主要なサービスをイチから書いていたりします。

まり何が言いたいかというと、僕の上司で僕よりもプログラミングができない人なんて一人もいないんです。

そしてこういう人が僕の仕事サポートをしてくれる、応援をしてくれるわけです。

からこんな上司に何かを説得する必要なんてないんです。彼らがテッキーミーティングに参加して、しかも僕らにすごい鋭いアドバイスをくれるんですよ。

皆さんがもしマネージャをやるときには、こういう人たちと世界で戦わないといけない、ということをちょっと意識していただきたいんです。

へーOutlookぽちぽちけがスキルのクソ雑魚ポンコツ年功序列PMになってるようなケースがないのねアメリカ

2021-11-28

絵本「ちいさいおうち」あらすじω(I)

おうちは小さかったが、

高度経済成長によって周囲が都会になり、

バブル景気地価が最高潮になった頃に売却

郊外に大きなおうちを購入し、

広々としたおへやに贅沢にガンプラコレクションディスプレイ

書棚だけしかない図書室も設けた

図書室には海外の専門書や学会誌を揃え、

まんだらけのようなショップ高値が付くアイテムも所蔵

庭には複数の🐶を放し飼いにし、贅沢な犬小屋DIYして、

今日からここがおまえのおおきいおうちだ!」

と言うと、犬は犬小屋で寝はじめた

なるほどケンネル

しかし、猫アレルギーの私は猫は飼わなかった

というか、猫○ね

そして、田舎は人目につかないので、近所の麻を栽培している麻生さんからマリファナを購入し、

危険ドラッグ覚醒剤へとレベルアップし、

黒いアルフォードで都会から郊外の自宅へ女たちを輸送しては、

乱交パーティーをするようになる

私はMetallicaバージョンの"Whiskey in the jar"が大好きだし、

あのMVみたいなパーティーを毎週開催するに至った

しかし、やがて歳をとり、老人と呼ばれる世代になり、

しかしながら、郊外田舎ではクルマのない生活は成り立たない

自転車で行ける距離に食料が買える店はないのである

やがて老人は黒いアルフォードで逆走のような危険運転行為を繰り返すようになり、

ある日、ぼんやり考え事をしながら運転していたら、

見通しの良い直線道路にあるバス停歩道に突っ込んでしまい、

バスを待っている人達轢死させ、大勢の負傷者を出してしま

なんてことだ…、ちいさいおうちを売るべきではなかった…

後悔先に勃たずである

しかし、郊外のおおきいおうちの所有者は上級国民だったため、

事件のその日の夜に釈放、おおきいおうちにかえされる

テレビ新聞メディア上級国民であることを知ると実名報道を避けるようになる

釈放された彼はおおきいおうちに戻ると、東南アジアへの逃亡の準備をする

これまで一度でいいから、東南アジア児童買春をしたかった

スワイパー村のような場所に行くのが夢だった

老人はそう思いながら、おおきいおうちを見捨て、

成田空港から海外逃亡へ旅立ったのだった

2021-09-15

今時 ear war jar の違いを考慮するとか 〜にすべきみたいな話はないですよね?

Java スペシャリスト増田先生どうですか?

2021-03-20

anond:20210320174526

7と8。

技術的なところが気になる人はこれだけ読んでくれたらいい

7. アプリケーションコード自体はRocketChatのものとほぼ同じ

最後技術的な観点からエアレペルソナが純国産ではないということを指摘する。

結論から先に述べると、このアプリは純国産ではない。

RocketChatという海外で開発されたOSSチャットアプリフォーク、改変したもののよう。

ttps://github.com/RocketChat/Rocket.Chat.ReactNative

ttps://rocket.chat

フォーク元はバリバリ多国籍外資である。(RocketChat自体問題のないアプリであり、このエアレペルソナとはフォーク関係を超える関係はないと思われる)

冒頭のこの部分に関してである

ttps://play.google.com/store/apps/details?id=chat.airlex.reactnative

Google Playで公開されているエアレペルソナAndroidアプリリバースエンジニアリングして調べてみた。

ちなみに、エアレペルソナには利用規約のようなものは見当たらず、リバースエンジニアリング禁止条項も無いようだった。

ttps://apps.evozi.com/apk-downloader/

ttps://github.com/pxb1988/dex2jar

この辺を使ってapkダウンロードし、apk解凍し、chat.airlex.reactnative/classes.dexjar fileに変換した。

classes.dexから変換されたjarファイルを展開するとchat/airlex/reactnativeというフォルダパッケージが見つかる。

このパッケージ内のファイル(.classクラス)がエアレペルソナの処理を行うもののようである

特徴的なクラスにEjsonという名前のものがある。

このクラスJadを使い、デコンパイルしてみた。その結果が以下である

ttp://www.javadecompilers.com

ちなみにここからapkアップロードするとdex2jarをしなくてもJavaソースコードにまでデコンパイルしてくれた。便利。

package chat.airlex.reactnative;

import android.content.Context;
import com.ammarahmed.mmkv.SecureKeystore;
import com.facebook.react.bridge.ReactApplicationContext;
import com.tencent.mmkv.MMKV;

public class Ejson {
    private String TOKEN_KEY = "reactnativemeteor_usertoken-";
    String cardId;
    String host;
    String messageId;
    String messageType;
    /* access modifiers changed from: private */
    public MMKV mmkv;
    String msg;
    String notificationType;
    String rid;
    Sender sender;
    String senderName;
    String type;

    public Ejson() {
        ReactApplicationContext reactApplicationContext = CustomPushNotification.reactApplicationContext;
        if (reactApplicationContext != null) {
            MMKV.initialize((Context) reactApplicationContext);
            new SecureKeystore(reactApplicationContext).getSecureKey(C0617Utils.toHex("com.MMKV.default"), new RNCallback() {
                public void invoke(Object... objArr) {
                    if (objArr[0] == null) {
                        MMKV unused = Ejson.this.mmkv = MMKV.mmkvWithID("default", 1, objArr[1]);
                    }
                }
            });
        }
    }

    public String getAvatarUri() {
        if (this.type == null) {
            return null;
        }
        return serverURL() + "/avatar/" + this.sender._id + "?rc_token=" + token() + "&rc_uid=" + userId();
    }

    public String token() {
        String userId = userId();
        MMKV mmkv2 = this.mmkv;
        return (mmkv2 == null || userId == null) ? "" : mmkv2.decodeString(this.TOKEN_KEY.concat(userId));
    }

    public String userId() {
        String serverURL = serverURL();
        MMKV mmkv2 = this.mmkv;
        return (mmkv2 == null || serverURL == null) ? "" : mmkv2.decodeString(this.TOKEN_KEY.concat(serverURL));
    }

    public String privateKey() {
        String serverURL = serverURL();
        MMKV mmkv2 = this.mmkv;
        if (mmkv2 == null || serverURL == null) {
            return null;
        }
        return mmkv2.decodeString(serverURL.concat("-RC_E2E_PRIVATE_KEY"));
    }

    public String serverURL() {
        String str = this.host;
        return (str == null || !str.endsWith("/")) ? str : str.substring(0, str.length() - 1);
    }

    public class Sender {
        String _id;
        String username;

        public Sender() {
        }
    }
}

フィールド名を見てみると、cardId, host, messageId, messageType, mmkv, msg, notificationType, rid, sender, senderName, typeが存在する。

メソッドには、getAvaterUri、token、userId、privateKey、severURLが存在する。

ところで、RocketChatというOSSチャットアプリ存在する。

ttps://rocket.chat

そのRoketChatのAndroid実装の中に同名のEjsonというクラス存在する。

ttps://github.com/RocketChat/Rocket.Chat.ReactNative

ttps://github.com/RocketChat/Rocket.Chat.ReactNative/blob/develop/android/app/src/play/java/chat/rocket/reactnative/Ejson.java

見比べてみると、フィールドにcardIdが追加されている以外はフィールドメソッド名、そしてその処理の内容まで一致している。

他にもReplyBroadcastなど、同様のクラスがエアレペルソナに見つかる。

以上のことからエアレペルソナはRocketChatをフォークして、パッケージ名を変えて作られたチャットアプリであり、開発の大部分はRocketChat社の努力と多数のOSSコントリビュータによってなされたものであると思われる。

これを純国産日本製と呼ぶには大分無理がある気がする。

そもそもこのOSS時代に純だの何だの言っている時点で怪しい。

8. OSSライセンスに関して

さて、エアレペルソナがRocketChatをフォークして作られたものであるとすると、気になるのはライセンスである

RocketChatのOSSライセンスMITライセンスである

ttps://github.com/RocketChat/Rocket.Chat.ReactNative/blob/develop/LICENSE

MITライセンスは非常に緩いライセンスであるため、エアレペルソナの様にフォークして別のアプリケーションとして公開することにはおそらく問題がないということは強調しておく。

現状エアレペルソナログインできておらず(2要素認証コード送信されないといった問題が起きている模様)、使用している各OSSライセンス表示が適切に行われているかまでは調べられていない。

2021-01-07

普通ヤフコメ民、新規感染者+2447の東京都民様を激怒させてしまう 「黙れ!田舎者!」「渋谷若者地方から来てるのが多いはず!」

https://news.yahoo.co.jp/profile/comments/16099942697304.bbea.30631

tma*****

2時間

毎日感染数が発表されていますが、東京の人たちには、あまり届いていないかもしれません。でも今日は、多過ぎますね。

20時以降の外出制限はわかりますが、そんなことを思ってもいない人が大勢いることを忘れてはなりません。

この前、インタビュー自分たちの周りには家族も含めて誰も感染した人が居ないから、完全にダラケていると言っていました。

しかしその言葉の裏には、病院必死に働く医療従事者の支えがあることを忘れてはいけないと思う。慌ただしく患者さんのために力を尽くしてくれていることを忘れてはならない。そんな能天気な人たちが感染したり、違う病気になって初めて医療のありがたみを感じると思う。でも医療が逼迫されてきた今だからそれでは遅いのである

本当の急所は、旅行や会食ではない。

みんなの心に潜む、今まで自粛頑張ったから少しぐらいは大丈夫という慢心な心かもしれません。



moa*****さん|2分前

都民です。東京の人に届いてないんですね。はないですね。東京というところを分かってらっしゃらない方のご意見かなと思います東京は他県から毎日莫大な人数の人達通勤で往来してます。それだけでも感染の拡大理由になってます

プラス地方から出張観光ものすごい人数が来てます都民だけならこんなに感染は広がりませんよ。他人事のように言わないでね。他県からコロナが持ち込まれてることも知ってくださいな。

kon*****さん|3分

都民です。こういったコメントは失礼ですね。。。

yshkさん|28分前

都民です。3月からテレワークマスク、手洗いうがい消毒徹底、親や祖父母とも会わず飲み会旅行も何もなし。このように暮らしてる人も多いです。

もちろん気をつけていない人も一定数居ますが、田舎とは人口密度そもそも違います。どんなに気をつけていても外に出たら近くに人もいます

pez*****さん|35分前

じゃあ田舎イオンに行ってる連中には届いてるのか?

東京都民=飲み歩いてるみたいなイメージ持たれてもなぁ。

sta*****さん|39分前

東京に届いてない?

田舎者の傲慢さと慢心ですね。そりゃ人もまばらでスッカスカの田舎じゃ感染も広がらないでしょうね。おまけに夜会食する店も開いてないですからね。

そもそもPCRすらまともにできてない中での感染者数なのに、何で上から目線なんだか。

aoe*****さん|41分前

渋谷自営業をやってますスクランブル交差点ばかりが映るからそう思われるかと思いますが、人が多いのは交差点から半径約100メートル範囲内だけで、それ以外はそれほどでもないです。それに、多くの都民マスクに頻繁な消毒で気をつけて生活しています

m_p*****さん|45分前

都内ですが、4月以降ずっとリモートだし、人と会うことも少ないですよ。それこそ別に済んでいる兄妹の家族にも会っていません。切迫感は相当ありますよ。ニュースだけで安穏としていると惑わされないで欲しい

( ´͈ ᗨ `͈ )◞♡⃛さん|46分前

毎日感染数が発表されていますが、東京の人たちには、あまり届いていないかもしれません。

は?何言ってるんですか?

こっちは毎日毎日しっかり感染者数確認

自分家族感染しないように

どれだけ神経すり減らしながら生活しているか

あなたにわかます

まりふざけた事言うのやめて貰えます

どこ在住か知らないけど

qjd*****さん|46分前

東京都民だってしっかり対策してるよ

fuw*****さん|46分前

都民です。昨年2月からずっと緩んでいません。

自宅内はゾーニングしています

玄関は土足禁止にし毎回アルコール消毒、靴裏もアルコール消毒

購入品ももちろんアルコール消毒。

買い出しは週1回空いてる平日の時間帯に。

外食は1年行ってません。電車半年以上乗っていません。

自宅マンションエレベーターも使わず非常階段使用

しろ、これだけやっているから、

今まで感染者数が抑えられていたんだと思っています

これ以上、何をしろと言うのか?

szm*****さん|52分前

都民の一部を切り取った報道でまだ東京差別ですか。どちらにお住いか知りませんが都民じゃないならほっといてくださいよ。

車を1人1台持っているような田舎と比べるのはやめて欲しいし、テレワーク可能な業種ばかりではありません。持ち出し厳禁のお仕事や物を扱っているお仕事絶対不可能です。

どこどこに人が並んでたとか、仕事の合間にお昼をとることも都民は許されないのでしょうか。人口が多いんだからある程度は仕方の無いことです。

12月以降は決算企業も多いでしょう。持ち帰りでできる仕事ばかりじゃないし、非常に効率も悪い。

地方一部の人がひどすぎて、いっそのこと一都三県だけで独立したいくらいです。

二度とこちらに足を踏み入れて欲しくない気持ちにまでなってしまます

ara*****さん|56分前

偉そうに怒

そういうお前の行動には何の問題もないんだろうな!!!

のんびりいきましょさん|59分前

他の方と同じく都民(23区外の田舎)ですが、昨年2月から買い物は宅配ネット通販を利用したり、3歳の子供いますがどこにも出掛けず(可哀想なので散歩します)、マスクや手洗いの徹底、小さいスプレーボトルに入れたアルコール消毒をポケットに入れ、こまめに消毒しできる限りのことをやっています

なので都民一括りにしないでほしい。つらい。

同じ都民でもテレビで出歩く人見ると不快に思うし、これだけの感染者数なので毎日危機感持って生活してます

東京テレビでみるような所以外に田舎もありますから^^;

あん都内での人混みの映像みたら都民全員が、と勘違いされて当然。

テレビを見る度に気持ちが爆発しそうな人は都民にもいる。

何で同じ東京でこんな気を付けているのに遊び歩くんだろう…って毎日複雑な気持ちになる。

こういうコメントとても傷つきますが今後も徹底した予防を続けていきたいと思います

n*****さん|1時間

都内在住。

黙れ!田舎者!

ats*****さん|1時間

不愉快コメントですね。

自粛してる人だってたくさんいますよ。

tak*****さん|1時間

>>みんなの心に潜む、今まで自粛頑張ったから少しぐらいは大丈夫という慢心な心かもしれません。

すげー殿様コメント

自分の事は、棚の最上段にあげて、よく言うわ

大体、知事どもが緊急事態宣言だ~とか水面下で乳繰りあっている間で、突然「陽性者数」爆上げ&検査数爆上げ。

毎日毎日、超満員の東京ドーム2個分以上の検査やってるって知らないでしょ?

しかも「陽性」の判断がどうされているか

で、緊急事態宣言出させたぜ、ドヤァ~~!って自慢げに会見開いちゃうんでしょ、この3バカ知事は。

で、密になるな、外に出るなと言ってるのに、記者集めてワッショ~イw

こんな連中の茶番に、いつまで付き合うの?

hiy*****さん|1時間

都民です。

夏にPCR検査を受けて陰性でしたが、万が一を考えて他の人にうつさないように、仕事と最小限の生活用品だけの買物しか行っておらず、その際にもメモして短時間で済むように頑張っています

東京都は人口も多く、商業施設も多いので

感染者は多いかも知れませんが、思いやりを忘れずに自粛している人達もいる事に気付いて欲しいです…。

メディアもそういう所をきちんと報道して欲しいです。

mom*****さん|1時間

東京の人は〜って言うけど、東京まれ東京育ちの人は気をつけてる人多いけどね。田舎から出てきてる人の方が、今はどこも空いてるから〜って出かけてるよ。なんでも一括にしないでほしい。

sachi*****さん|1時間

都民だけどこういう言われ方は正直悲しい…

単なる人数より人口に対する感染率を見てほしいなって思います

yun*****さん|1時間

ほとんどの都民は、地方の人よりも、マスクや手洗い、消毒は徹底してるし、長いこと飲みにも行ってませんよ。

地方から出張で来る人の方が、感染対策が疎かですよ。

nailcyuさん|1時間

コメ主さんのこの言い方はダメでしょ。

東京感染者の非常に多い区に住んでいますが、家族含め近所の知人もまだ感染者いませんよ。それはなぜだと思いますか?ダラけずしっかり感染予防しているからです。もう少し心あるコメントを発して欲しいものですね。東京の人をひとくくりで悪者に聞こえる様な書き方をしてはいけません

ad*****さん|1時間

そういう対岸火事が、大元なんだと思いますよ。

東京人口率ともに、1人が感染とされた場合の濃厚接触

現状、大半の人が無症状感染してる前提として意識しない限り

世界的なコロナ終息はないのではないでしょうか?

ちなみに自分都内在住ですが、友知人数百人います

現状感染した方がいません。

jar*****さん|1時間

そもそも遊び歩いてるしかマスコミコメント取れないんでしょw

だって自粛してる人は家にいるもの

わざわざコロナ拡げてる人たちに寄って行かなきゃいけないマスコミって大変ねw

おじんさん|1時間

響くも何も大半の人にとってはもうやれる事が無いんよ

外出といえば食料、備品の買い出し、仕事(学校)のみ

手洗い、消毒は勿論

郵便物含め買ってきたものは全て

アルコールで拭き

コート類は玄関リセッシュ

持病等で病院に行った場合

帰宅後即シャワー

この生活家族全員何ヶ月も続けてる

地方がどのレベルでやってるか知らんけどさ

これ以上の事は引き籠りしかないし

こちらも生活がある

言葉足らずのコメントを見ると

流石に腹立つわ

mmzさん|1時間

マスコミコロナを舐めて飲み歩いてる人ばかりテレビで流すから都民がみんなこんなもんだと思われるんです。

こんな人達はほんの一部ですよ。

都民ほとんどは感染対策をしっかりしながら生活していると思います

地方と比べて人口の多さが違いすぎるんですよ。

col*****さん|1時間

しろ都民の方が、事の重大性に気は使ってると思います

それでもリスクを避けられない程、人が多いのが原因なだけであって、別に都民が極端に遊び歩いてる訳ではないと思いますよ。

他県の人の方が感染者が少ないからと油断してませんか?

東京よりもリスクが少ないのは当然だけど、0ではないのですから

so8*****さん|1時間

東京人間です

ふざけたことを言わないでください

テレビでやってたか

それを100%だと思うって、情弱なの?

少なくとも自分の身の周りでは

そんな緩んでいる人は1人もいません

相当に気を遣って生活しているし

それでも加速度的に増えているのに

恐怖を感じてます

まったく、勘弁してほしいわ

mam*****さん|10分前

都民だけど、ものすごく響いてますよ。

渋谷辺でウロついてる若者地方から来てるのが多いはず!

決めつけるな

hanochanさん|2時間

地方から東京に出てきてる人は沢山います東京都は全国から人が集まってるから都民のせいではないよね。

*********さん|2時間

自粛する側は収まる気配もなく恩恵はないのにやってられねぇよ

2019-06-21

Javaをメインで書いているわけではないけど

別にJava良くないか

なんならRubyより静的言語だという点で優れているような。

最近Go流行っているが、それならJavaだって同様に良さそうな気がする。

Java批判すべき点ってなんなんだろう。

- 記述冗長

- nullがたまにうざい

- なんか重厚な感じがする

- 重厚アーキテクチャ流行りすぎた?

- ORMとかが重厚なのが多かった

- ビルドツールが洗練されていない時代があった

- 故に環境構築が大変だった

- tomcat + jar みたいなのがだるかった?

- strutsがしんどかった

- 未だにstruts脆弱性が見つかったりするところ

- xml地獄からアノテーション化したりいろいろと模索していた

- なんかJava案件地雷が多かったとか?

- ちょっと昔には「俺たちイケてるプログラマ」はみんなRailsに移っていった流れがあった?

- Effective Javaよいが、そもそもそういうtips意識せずにそう書けるような言語仕様になってほしかった気もする

- 非同期処理やスレッド処理がやや難しかたか、あるいは言語側でのサポートが薄かったか(?)

言語仕様的な批判と、エコシステム的な批判に分けられそうなきがするな。

関数型言語の関心はScalaClojureに全フリしてもらって、Javaシンプル機能を持つGo方向性なModan Javaになっていってくれれば良さそうな気も。

httpサーブレットとかそのへんが微妙だったかもしかしてGoみたいにnet/httpライブラリが標準であればそれをベースにすることでオレオレフレームワークの乱立を避けることができるか、と思ったけどJAX-RSとかがあるな。

Goだって冗長記述必要言語だが、好かれているし、Javaも悪くない言語な気がするんだよな。

まあ何でもいいが。

ロジカルに考えているようで結局なところ雰囲気的なところに左右されているエンジニア多い気がする。

まあわいも、人気な言語に乗っておいて高単価を得られたほうがいいのでそうするが。今の所Goが肌にあっているんだよな・・。3年ぐらい使って熟練度上がってきたし、さほど悩まずにコーディングすることができる。

PHPの人が好きな、あるいはRubyのmethod_missingなど活かしたテクコードは、書いているやつは気持ちいかもしれないがわいは明示的にinterfaceがわかるコードが書かれていたほうが好きだ。型で振る舞いがわかったり制御されていないと分かりづらくない?複数プロジェクトを掛け持ちするから、読むときに前提知識が少なく読めるコードがいい。

まあJavaもリフレクションでテクいことができる気がするな。

Goがいい。誰が書いてもだいたい同じコードになるから、誰かに作業を振ったとしてもレビューやすい。

まあこれからJavaを書く気はしないが、GoAPI書いているマンから見ると、JAX-RSとかでゴリゴリAPI書いていくの全然悪くないんじゃないかと思うのであった。

最悪別にGeneric入らなくてもいいかもな。別にそんなに困ってない。はいってくれるなら、はいってくれたほうがいいが。sliceに対してmap, each, filter, existsなどのメソッドが生えることになるイメージかな。まあそれは欲しくなるけどな・・・

Scalaもいいんだが、たまにイキったコードを書くと分かりづらくなる時がある。イケてるコードを書こうと思ったとき結構パワーを使う言語だ。なんかモナドってジェネリックを更に強くしたやつだとも捉えられるような気がするな。ゴリゴリ関数型で書こうと思った場合プロジェクト全体に影響がある話なのでアーキテクチャ設計に力がいる気がする。

年をとると大事にするポイントが変わってくるな。昔はスーパープログラマになりたくて関数型言語とかやっていたが、今はいかに効率よく仕事をする=金を稼ぎ自由を得るかを重視している。職業プログラマとなったわけだ。仕様固めたりリリースしたり不具合対応したり運用したり、フリーランスなら税金計算したり、金儲けの方法考えたり忙しいんじゃ。今は結局スーパープログラマとは何か悩ましいよ。「プログラマとして」キチガイレベルにすごい人間というのはまだ見たことがないかもしれない。コーディングが早い?バグ修正が早い?パフォーマンスやばいコードを書ける?設計が優れている?

わいのレベルが低くて、高い人間凄さに気づけていないのかもしれないな。

2018-08-18

俺にはAndroidアプリ開発なんて無理だわ…

Android Studioダウンロードして公式チュートリアルやってるんだけど、いきなりつまづいたし。

アプリ実行できないし。

https://developer.android.com/training/basics/firstapp/running-app

まで来たけどビルドが出来ないし。(ビルドじゃないのか、gradle sync?とかいうやつ?)

org.gradle.internal.resource.transport.http.HttpRequestException: Could not HEAD 'https://jcenter.bintray.com/org/ow2/asm/asm-analysis/5.1/asm-analysis-5.1-sources.jar'.

とか言われとるし。

ネット環境ちゃんとあるのに。

プロキシかいらんことしてないのにし。

上のjarドメインping送ってみたら100%ロスしとるし。

オンラインping送信サービス使っても同じだし。

そのせいか

Android Studio で、[Project] ウィンドウの [app] モジュールクリックしてから、[Run > Run] を選択しま

RunRun選択できないし。

グレーアウトしとるし。

もう意味分からんし。


いや、多分サーバーが死んでることが問題なのは分かる。

からないのは、ネット環境がないとアプリを実行することすら出来ないということだ。

サーバーが死んでたらその間何も出来ないのか。

そしてツイッターで誰も何も言ってないの見ると、誰も大した問題だと思ってないのか。

もう良い。俺にはAndroidアプリ開発は合わない。

Android開発者はこんな地獄の中頑張って開発してる自分を褒めたほうが良い。

じゃあの

追伸: このbintray.comとかいうクソがどこかのボットネット攻撃されて使い物にならなくなりますように。

2016-07-28

http://anond.hatelabo.jp/20160728113742

突っ込まれるとは思ってたけどjarsignerはJDK付属するjar署名ツールのことで、

遭遇したエラーの原因にAndroid関係ない。JDK問題

2016-03-29

全米ライフル赤ずきんちゃん

赤ずきんちゃんは、金髪美少女でした。「将来、プロムに誘うならあの子だよな」村のにきび面の男の子たちはそう話し合ったものです。

やがて、平和な村に不穏な噂が流れてきました。なんと、狼団のテロリストが村に潜伏している可能性があるというのです。「愛国者法に基づいて山狩りをしよう」村長がそう呼びかけると、村人たちは松明と銃を手にテロリストを探し回りました。実のところ愛国者法は延長期限切れになって2015年6月に失効していたのですが、そもそも愛国者法がどんな法律か知らなかった村人にはそんなの関係ありませんでした。

やがて、テロリストが潜んでいそうな場所が見つかりました。赤ずきんちゃんのおばあさんの家です。やはり愛国者法に基づいて仕掛けられていた盗聴器から、「モスクがどうたら」という会話が聞こえてきたのです。もしかしたら「モスクワ」と言ったのかもしれませんが、警察署長は自信たっぷりに「証拠は揃った、揃いすぎるほどな!」と断言しました。村人たちの中には「盗聴でわかったのなら山狩りは必要なかったじゃん」と思った人もいましたが空気を読んで文句を言わないことにしました。

警察署長が「さる筋から派遣されたスペシャリストだ」と勿体ぶって村人に紹介したのはほっそりとした少女でした。目深にかぶった白いフードからは見事なプラチナブロンド。そのあいからは氷のように美しく澄んだ青い瞳が覗いていました。「彼女、すげーイカすな。なんのスペシャリストなんだろうな」村のにきび面の男の子ポルノめいた妄想で股間を膨らませながらそう話し合いました。

村の外れにある深い森、その奥へ奥へと白い少女が歩いていきます。やがて廃屋のならぶ集落が見えてきました。ここは開拓時代に栄えていた宿場町だったのですが鉄道が普及するとともに廃れ、ずいぶん昔から廃墟になっています。そんな廃墟一角赤ずきんちゃんのおばあさんは一人で住んでいたのです。こんなところにも老人問題の深刻さが見え隠れします。

白い少女は、おばあさんの家の前に立ち止まりました。ドアは半開きになっており、その前には広口のビンが転がっていました。つまり、ajar半開き)と a jar(広口のビン)の掛詞になってるわけです。そんなダジャレどうでもいいので少女は「おばあちゃん、入るわよ」と言いながらドアをぐいっと開きました。ドアを開ける際にも油断なく左右を伺い、ドアの下部や上部のトラップワイヤーの有無を瞬時に判断するあたり、さすがスペシャリストって感じです。

ドアを開けるとむせ返るような血の匂いしました。「おばあちゃん、すごい臭いね。まるで家のなかで人間解体をしたみたいだわ」そう言いながら白い少女は寝室へ向かいます。寝室に入ると、人型ロボットうずくまっていました。ロボットは「ぼく、いいロボットだよ」と言って高く手を上げて降伏意思表示しました。「いずれにせよあんたは赤ずきんの婆さんじゃあねえな。まあ死ねや」そう言うと少女は懐から取り出したソードオフショットガンで至近距離射撃します。BLAM! BLAM! BLAM!

このソードオフショットガンは、その名前の通り(sawed offは、のこぎりで切り落とす事)、普通ショットガンの銃身を切り詰めたもので、発射直後に散弾の拡散が始まるため、通常のショットガンと比べると有効射程は短いものの、至近距離殺傷力や有効性はむしろ増大しており、更に全体の長さが短くなった事で、屋内などの狭所で扱い易いため、特殊部隊などが屋内に突入する際、出合い頭の戦闘が(敵と鉢合わせする事)多いポイントマンエントリーショットガンとして用いる事もあるのです(Wikipediaより)。

ロボットはしゅうしゅうと煙を上げながら倒れ伏しました。少女は「しくじったな」とつぶやきました。おばあさんの家はいつのまにか一ダースほどの戦闘員に包囲されていたのです。

轟音とともに正面扉が吹き飛びます。おもわずそちらに包囲網の注意が逸れた隙に少女が裏口から飛び出します。銃弾が飛び交うなかをかいくぐり、戦闘員の背後にまわってショットガンを発射します。細身の体に似合わない怪力を発し、崩れ落ちる戦闘員の襟元を掴みあげるとそれを肉の盾としながら敵陣に突っ込みますわずか50秒で瞬く間に敵を殲滅した彼女の白いフードは、今や血でベッタリと染まっていました。その美貌と戦闘力から彼女は「血染め氷壁」と厨二っぽい二つ名で呼ばれていました。「白いフードが血で赤くそまるまで戦闘を止めない」アグレッシブ戦闘スタイルから彼女を「赤ずきん」と呼ぶものもいました。(←これ、書いてて恥ずかしい)

血と肉片で汚れた銃身をフードで拭うと、その銃身に刻まれ文字がくっきりと読み取れました:

In Gun we trust

から血染め少女が帰ると、村ではお祭りの準備がされていました。今日イースターお祭りなのです。血染め少女をみると、村人たちは「Meerica! Meerica!」と叫びました。突然音楽がかかり、村人たちはミュージカルめいて整然と踊り出します。バックコーラスは白い衣を着た聖歌隊です。聖歌隊には有色人種は一人もいません。スポットライトがあたる村の広場の中心に血染め少女が歩み寄ると、先ほどの戦闘で見せた獰猛さを微塵も感じさせない清らかな声で、「アメージンググレイス」を歌いました。

     おしまい

2015-06-09

http://anond.hatelabo.jp/20150609215730

Java入門書を1冊読んだだけの初心者はまずjarファイルが作れないと思うのだけれど、それに負けてるって一体何ができるのだろうか

2015-04-07

curlの-cと-b

curlコマンドが非常に便利で、最近はよくお世話になっている。

しかし、-cと-bどちらがcookieの保存なのかcookieの送信なのかで混乱し、

何度か「bはbakeの略な気がするから多分…」といった勘違いミスを起こしてしまった。

※保存するのは-c(--cookie-jar)、送るのは-b(--cookie)

長いオプション名のほうが比較的混乱しにくいので今のところはそちらを使うようにしているが、

短いオプション名の由来が分かればそちらを使いたい…。

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

<plugin>
  <groupId>com.zenjava</groupId>
  <artifactId>javafx-maven-plugin</artifactId>
  <version>8.1.2</version>
  <configuration>
    <mainClass>[main method class]</mainClass>
    <vendor>[Vendor Name]</vendor>
  </configuration>
</plugin>

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

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毎の注意点

2014-03-07

ImageJ pluginの書き方 備忘録

ImageJ用のプラグインを書くために、デバッガを設定してコンパイルする方法まとめ。

大部分はtotobookさんブログを参考にしたけど、3年半経つと変わっているところも増えるらしく、ちょこちょこ必要ステップが増えていた。

totobookさんブログ: http://d.hatena.ne.jp/totobook/

ちなみに、書いたプラグインはITCNという自動細胞計測プラグイン拡張し、作業フォルダ内の画像ROIごとに全自動で計測し、結果をテキストファイル保存するというもの

ITCN: http://www.bioimage.ucsb.edu/downloads/automatic-nuclei-counter-plug-in-for-imagej

NetBeansインストールと設定

(ア) http://d.hatena.ne.jp/totobook/20101028/1288277567

(イ) http://d.hatena.ne.jp/totobook/20101030/1288468881

1行目の package plugins; を削除

(ア) これをしないとjava.lang.ClassNotFoundExceptionが出てくる

(イ) NetBeansになんか言われるけど無視コンパイルは通る。

NetBeansjavaバージョンを下げる

(ア) Java1.6をダウンロードしてインストール

http://support.apple.com/kb/dl1572

(イ) ツール>Javaプラットフォーム からプラットフォームの追加でJava1.6を追加する。フォルダは探してください。

(ウ) プロジェクトの一番上(今回はImageJ)を右クリックプロパティJavaソースクラスパス Javaプラットフォームを、JDK1.6にする。

書く

(ア) 以下のサイトにImageJで実装されているクラスの詳細が書いてある。けど、Google検索から探すのが手っ取り早い。

(イ) http://rsbweb.nih.gov/ij/developer/api/ij/ImageJ.html

コンパイル

(ア) http://d.hatena.ne.jp/totobook/20101030/1288468881

ImageJフォルダ以下のpluginフォルダコンパイル済みファイルを移動してImageJを実行。
トラブルシューティング

(ア) java.lang.ClassNotFoundException

ソースファイル1行目のpackages plugins; を削除する。

jar cvf などのコマンドコンパイル済みファイル圧縮すると何故か出てくる。圧縮せず使いましょう。

(イ) ImageJ「Java ver1.7が必要やで。」

① ImageJのJavaをver1.7にする方法が見つからなかったので、NetBeansJavaを1.6にする。詳しくは上に書いた。

2012-01-28

s2jdbc-genが動かない

増田でこんなこと聞いていいのかわからないけど、誰かわかる人教えて欲しい。

seasar公式サイトにある、s2jdbcチュートリアルを試してみたんだけど、entityの生成でいきなり躓いてしまった。

$ ant -f s2jdbc-gen-build.xml gen-entity
Buildfile: /Users/hoge/dev/s2jdbc-tutorial/s2jdbc-gen-build.xml

gen-entity:
[gen-entity] Java Result: 1

BUILD FAILED
/Users/hoge/dev/s2jdbc-tutorial/s2jdbc-gen-build.xml:46: Exception in thread "main" java.lang.NoClassDefFoundError: 
Caused by: java.lang.ClassNotFoundException: 
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

動かしている環境

- Mac osx 10.7.2

- java version "1.6.0_29"

- Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11M3527)

- Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)

s2jdbc-gen-build.xml:46 っていうのが、classpathに関する記述の箇所なので、動かすのに必要なjarが読み込まれていないからなんだろうなぁ、って思ってるんだけど。

同じ現象で躓いて、うまく解決できた人がいたら、教えて欲しい。

 38   <target name="gen-entity">
 39     <gen-entity
 40       rootpackagename="${rootpackagename}"
 41       entitypackagename="${entitypackagename}"
 42       javafiledestdir="${javafiledestdir}"
 43       javafileencoding="${javafileencoding}"
 44       env="${env}"
 45       jdbcmanagername="${jdbcmanagername}"
 46       classpathref="classpath">
 47         <jvmarg value="${vmarg.encoding}"/>

2011-04-23

2010年日本ヒップホップ音楽

2010年の日本のヒップホップ音楽 【作業用BGM】 ‐ ニコニコ動画(原宿) の曲目。

01. LOST IDENTITY - 道(TAO) (YouTube)

"Lost Identity", 08.15. ILL EAST RECORDS

02. 都市伝説 - 韻踏合組合 (YouTube)

"都市伝説", 10.10. IFK RECORDS

03. 極悪JAZZ feat. 鬼 - キリコ (YouTube)

Produced by DJ OLDFASHION

"DIS IS IT", 09.22. 術ノ穴

04. Black File 200回記念フリースタイル (Vimeo)

"Black File", 06.24. スペースシャワーTV

05. 夕方 - S.L.A.C.K. (YouTube)

"Swes Swes Cheap", 08.04. Dog Ear Records

06. 思考品M.T.B.D. feat B.D. - DJ Mitsu the Beats (YouTube)

"UNIVERSAL FORCE", 08.04. PLANET GROOVE

07. CAMP'S RULE - RAMB CAMP (YouTube)

Produced by DJ GQ

"RAMB CAMP", 05.14. FILE RECORDS

08. MECCHA MECHA - コッペパン (YouTube)

exclusive, 10.09. MySpace

09. GOOD MORNING BABY - やけのはら (YouTube)

"THIS NIGHT IS STILL YOUNG" 08.04. felicity

10. 捕食 - asa x CUBEc.u.g.p (YouTube)

"捕食-hoshoku-", 06.11. Jar-BeatRecord

11. イッちゃってイイ? (SUGAR CRACK REMIX) - SD JUNKSTA (YouTube)

"Remix EP", 03.10. 諭吉レコード

12. TORA TORA TORA - TETRAD THE GANG OF FOUR (YouTube)

"SPY GAME", 11.12. FILE RECORDS

13. SUNDAYfeat. WAX - PONY (YouTube)

Produced by KURABEATS

"Verseday", 05.05. 桃源響RECORDS

14. Get Da Passports - Black Mont Blanc (YouTube)

"Sullen Faces", 12.22. 33Records

15. 音楽ワルキューレ - DOTAMA (YouTube)

Produced by Fragment

"音楽ワルキューレ", 04.07. 術ノ穴

16. いつもそう - WAX from SD JUNKSTA (YouTube)

Produced by KYN

"神成り", 07.21. 諭吉レコード

17. MADE IN JAPAN feat. X-MAN - L-VOKAL (YouTube)

Produced by 1689

"Lovin'", 03.03. MATENRO RECORDS

18. Homeward Journey - Uyama Hiroto (YouTube)

"Homeward Journey", hydeout productions

19. G.H.E.T.T.O - SHINGO☆西成 (YouTube)

Produced by TRAMP

"I・N・G", 11.10. 昭和レコード

20. STRAIGHT CASH - YING YANG (YouTube)

"TOTAL ECLIPSE", 10.13. YING YANG PRODUCTION

21. ILLMATIC RACER feat. 来門 - UNDER BROS (YouTube)

Produced by TAKE-C

"UNDER BROS", 05.12. BASE CAMP

22. トーキョー難民 - あるぱちかぶと (YouTube)

"◎≠", 02.03. Slye Records 在音

23. 森羅万象 - AXIS (YouTube)

"UNPOPULAR -在日外国人奇声集-", 04.21. Libra Records

24. iPhone for GAGLE - GAGLE (YouTube)

Produced by DJ Mitsu The Beats

exclusive, 07.02. (twitter)

25a. 24 BARS TO KILL feat. ANARCHY, RINO LATINA II, 漢, MACCHO - Ski Beatz (YouTube)

"24 HOUR KARATE SCHOOL JAPAN", 10.20. R-RATED RECORDS

25b. 24 Bars To Kill "IFK REMIX" feat. Hidaddy, Erone, Satussy, 遊戯 - Ski Beatz (YouTube)

exclusive, 11.05.

25c. 24 Bars To Kill "MYC REMIX" feat. RYUZO, DABO, SUIKEN, 般若 - Ski Beatz (YouTube)

exclusive, 11.06.

26. 東京哀歌-トウキョウエレジイ- - 空也MC (Youtube)

Produced by fanfan

"東京哀歌‐トウキョウエレジイ‐", 05.05. 術ノ穴

27. 禁断の惑星 feat. 志人 - TABOO1 (YouTube)

Produced by DJ KENSEI

"LIFE STYLE MASTA", 10.20. Libra Records

28. Break Boy in the Dream feat. 七尾旅人 - 環ROY (YouTube)

"BREAK BOY", 03.17. POPGROUP RECORDINGS

29. DREM SKY - RAU DEF (YouTube)

Produced by PUNPEE

"ESCALATE", 09.10. FILE RECORDS

30. MOTHER feat. MMM, CHIYORI - おみゆきChannel (YouTube)

"おみゆきさん", 03.10. Mary Joy Recordings

31. MISSION POSSIBLE - OLIVE OIL×ILL-BOSSTINO×B.I.G.JOE (YouTube)

"MISSION POSSIBLE", 07.21. OILWORKS THA BLUE HERB RECORDINGS TRIUMPH RECORDS

32. WAKE UP feat. MARIA - QN from SIMI LAB (Amebreak)

Produced by Earth No Mad

"THE SHELL", 07.29. FILE RECORDS

2010-05-01

Javaから呼び出し元のJRuby環境を利用する

Tomcat上のJRubyから呼んだJavaプログラムから呼び出し元のJRuby環境(Runtime)を使いたいときにどうすればいいのか?

方法が1つわかったのでメモ

(追記2:こんなめんどいことしなくてもJRuby.runtimeで取れたみたい)

イメージ的には以下の感じ

Java

↑↓

JRuby(on Rails)

Java(Tomcat)

※注意:warblerでwar化したRailsアプリ場合

JRubyは1.4.0、jruby-rack.jarは0.9.7、warblerは1.0.1

プログラム

まずは必要なクラスをimport

import org.jruby.Ruby;
import org.jruby.rack.PoolingRackApplicationFactory;
import org.jruby.rack.RackApplication;
import org.jruby.rack.RackServletContextListener;

ServletContextをどっかから取ってくる(Listener作ってfieldに埋めるとかして)(追記:$servlet_contextで取れる[JRuby-Rack使うから])

ServletContext context;//=~~~

warblerでwar化するとweb.xmlRailsServletContextListener(extends RackServletContextListener)が登録される。

そのListener起動時にFactoryがServletContextに登録されるので、それを取得する

PoolingRackApplicationFactory factory = (PoolingRackApplicationFactory)context.getAttribute(RackServletContextListener.FACTORY_KEY);

PoolingRackApplicationFactoryapplicationPoolを取ってくる

(protected fieldなのでリフレクションを使用)

Field poolField = factory.getClass().getDeclaredField("applicationPool");
poolField.setAccessible(true);
Queue<RackApplication&gt; pool = (Queue<RackApplication&gt;)poolField.get(factory);

poolからRubyランタイムを取得

RackApplication ap = pool.peek();
Ruby ruby = ap.getRuntime();

呼び出しもとのJRuby環境を使ってRubyコードを実行できる

ruby.evalScriptlet("p 'test'");
memo

実際に使うときは、applicationPoolにちゃんと入っているかなどのチェックが必要になる。

初期化タイミングなどが影響して取得できない場合、Threadなどを使ってポーリングして入っているか確認する

ログイン ユーザー登録
ようこそ ゲスト さん