「jar」を含む日記 RSS

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

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などを使ってポーリングして入っているか確認する

2009-03-19

Firefox高速化のために

固まってないアドオンを勝手jar化するソフトとか誰か作らないかな?

Firebootくらいの効果はあると思うんだけど

2009-02-22

ニコ生アラート Java

どこに書いたらみんな気づいてくれるのか分からないからここらへんにも書いておこう。

ニコ生アラートJava版作りました。マックでも動きます。

windowsだと終了できないかも。(javaw.exeを強制終了で多分いける)><

やっつけ仕事だけど多分動きます><

http://tinyurl.com/NicoNamaAlert

だれか改良してください><

=====================================

りーどみー

=====================================

中身

NicoNamaAlert.jar

プログラムファイル

setting.txt

設定ファイル

NicoNamaAlert.java

ソースコード

ReadMe.sjis.txt, ReadMe.utf8.txt

このファイル(と別エンコーディング版)

使い方

Javaが入っていない人はダウンロードしてください。

http://java.com/ja/

その際、勝手Yahoo!ツールバーが入る事があるので気をつけて。

setting.txtに、1行ずつ予約したいコミュニティまたはチャンネルIDを登録

channel/ch99999 とか community/co99999 といった感じで。

とりあえず1行ごとIDと比べているだけなので、

他に何か書いてあっても大丈夫なはず。

IDの行だけはID以外書かないようにしておいてください。

毎回このファイルは読み直しているので、変更しても再起動する必要はありません。

NicoNamaAlert.jarダブルクリック

30秒おきに新着をチェックします。

Macの場合はおなじみのコーヒーカップアイコンがDockに出てきます。

Windowsの場合は何も出てきません。

Unixはまだ試していません。

予約したコミュ生放送が始まると、ダイアログが出るので、

はい(Y)をクリックすると、アドレスコピーされる。はず。

それをブラウザペーストすればおけ。

終了するときは、Macの場合はDockのアイコンを選択して、

上のメニューから終了 または Cmd+Q

Windowsの場合はタスクマネージャからjavaw.exeを探して強制終了してください。

他にもjavaアプリを起動している場合は、javaw.exeが複数ある可能性があるので、

そのときは運試し。



言い訳

Macだけどニコ生アラートがうらやましくてつくりました><

javaブラウザを開く方法が分かりません(SE6ならできるっぽい)><

やっつけ仕事なのでソース超きたないです><

もっといい感じなの作れるひとお願いします><

ソースコードはもう適当に炒めちゃってください><

コマンドラインから起動すると中の人が何してるかなんとなく見えます。

settingに最初から入っている二つのコミュ

1つ目はお気に入りコミュ「おい、ゆとり英語教えてください。」で、

2つ目はニコ生アラートWin版)の生まれ場所です。

この2つの生放送がなければこのプログラムはできていませんでした><

仕組み

http://live.nicovideo.jp/recent から必要なデータ

1行1行検索して取り出しているだけです。

チャンネルコミュニティIDサムネイルファイル名から取れます。

ね、簡単でしょ?


今後の展望

アイコンコーヒーカップ以外にしたい(っていうとOSごとに実行ファイルが必要)

Windowsでもちゃんと終了できるようにしたい(まぁ本家使ってください)

チャンネルコミュニティの登録を簡単にしたい

以上。

2008-06-18

http://anond.hatelabo.jp/20080618114711

browser.jarのぞいてみたけど、クリックしたときどこで処理してんのかいまいちわからないな。

それを書き換える気かw

アドオン開発を少し勉強中なので調べてみた。

Firefox2.0だけど

BookmarksCommandクラスのopenOneBookmark関数のopenUILinkInの前に下のコードを入れたらできたよ(ファイルはbrowser.jar\content\browser\bookmarks\bookmarks.js

拡張機能インストール無しでopenOneBookmark関数差し替える方法は知らない。

    var w = getTopWin();
    if (!w)
      return;
    var browser = w.document.getElementById("content");

    if (aTargetBrowser == 'current' &amp;&amp; url.indexOf('javascript:') != 0) {
      if (browser.currentURI.spec == 'about:blank')
        aTargetBrowser = 'current';
      else
        aTargetBrowser = 'tab';
    } else {
      aTargetBrowser = 'current';
    }

参考: http://openhideaway.net/FFBBS/patio.cgi?mode=view&no=27

http://anond.hatelabo.jp/20080618114711

のぞくならtabmixplus.jarじゃない?とおもってチラッと見てみた。

といっても、弄ったこともないので良くわからないけど、とりあえずchrome://tabmixplus/content/bookmarks/bookmarks.xulまわりでやってるんじゃないかと。

prefStringTMBookmarkが設定値の関係っぽくて、TMP_updateContextMenuがそれ見てコンテキストメニューを弄ってるっぽくて、その辺がchrome://tabmixplus/content/minit/minit.jsにあって、その辺で色々条件判断してて、で、setAttribute("default", "true")ってのは何を意味してるのかなと。

そんな感じでした。

Re: http://anond.hatelabo.jp/20080618091809

Ctrl + 左クリック、って話でいいのか?

できれば左クリック一つで行けるほうがいいんだけどね。

browser.jarのぞいてみたけど、クリックしたときどこで処理してんのかいまいちわからないな。

おとなしくアドオンの更新を待つことにする。

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