「java」を含む日記 RSS

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

2010-07-11

http://anond.hatelabo.jp/20100711004304

C言語最初に覚えると、楽は楽だよ。変なクセがつかないから。

全てのC++はCに展開できるし、展開の原理を知っていると、C++オブジェクト的に組みながら、アセンブラの展開とかを見ながら書いているらチューニングが楽。

メモリの事とかCPUリソースのことを考えずに書かれたプログラムって、チューニング限界があるから、あとあと苦労する。

そういう意味では、Cから入ると、とっつきにくいが、あとあとまで、ちゃんと生きてくるよ。

 

今のところの言語オススメJavascriptだね。理由は簡単で

1 ブラウザがあれば誰でも試せる

2 ブラウザとの連携で絵や音を使ったサンプルを作れるのでつくっていて楽しい

という点。

さすがに、今時PerlでもRubyでもいいけど、絵や文字ばかりのサンプル作ってもCと同じで楽しくないから初心者向きじゃない

とりあえず、そのへんで楽しんでもらえたら、

プログラム職人的なチューニングのところが気に入ったのならC/C++転向すればいいし 机の上で理論設計を楽しみたいならRubyJavaをやればいいし

Web系のところが気に入ったのならPHPでもPerlでもいいかもしれない。

 

大切な事は、プログラムを楽しむこと。プログラムにもいろいろな側面があるので、自分がどういう側面を気に入るのか?というのを早めに掴むこと。

あとは、長く続けられるものを選ぶこと。

まぁ、言語は所詮道具だ。道具の良し悪しを言っても、釣りバットを持っていくわけにもいかないから、釣りがしたければ釣竿を、野球がしたければバットを選ぶしかないわけで

目的にあった言語を選ぶための最初言語は、気軽に選べばいいよ。

 

ただまぁ、Cから始めるのは、古典がいっぱいあるという意味では悪くないよ。でなければ、Javasciriptいいよ。

http://anond.hatelabo.jp/20100710235827

残念ながらCはまだ現役だそうだよ。

C++は一部では効率が悪いと嫌われているらしくて、速度が問題に成るようなソフトではCの使用比率は高いそうな。

入門言語としてはJavaが定着したけど、Linuxは未だにCやC++で書かれている。

レガシーの問題もあるし、枯れてるだけあって部品に困らないから覚えて損はない。

それにCを覚えておくと、他の言語で訳の分からないエラーが出ても原因究明がしやすいとか。他の言語と重なる部分が多いから新しく覚えることも大して無いしね。

http://anond.hatelabo.jp/20100710235827

C言語はまだ広く使われてるし、JavaなんかもC言語の構文を真似てたりするから、C言語自体を使わなくても最初に覚える言語としてはいいものだよ。

まぁPerlRubyあたりのみを使うんならまるで意味ないけど・・・。

基礎としてC言語、その上でJavaなりVBなりRubyなりを覚えたらいい。

C言語がまったく使われなくなっても基礎とする言語としてC言語オススメし続けると思う。

2010-07-10

http://anond.hatelabo.jp/20100710210455

午後試験表計算なんてある事を知ってびっくりした。

C言語COBOLJavaアセンブラ表計算から選択なのね。

HT-03A froyo

dwang厨が無謀にもfroyoを入れてみる記録のページ。

名前リンクされると嫌なのでここに書いてみる。

結局CM6-RC1+yay-gapps で落着きそうな雰囲気。

まとめ (20100711 18:30 完了)

メモ
  • voldn + poweron → fastboot
  • home + poweron → recoverymode
初期状態

dwang-1.17.1

手順

eMonster用に使ってた sandisk 2GB (メモ)

確認されているROM

7/9 にリリースされているもの

  • defcon CM6 FroYo (Test9)
  • CM6-DS-Nightly (0709)
  • SPF Connection (2.7)

ext partition 要対応? とおもったら仏語じゃねーか

Wifi NG

  • Xtreme Froyo v1.9.5

@kenmood

Wifi OK

  • http://androidspin.com/2010/07/06/rom-kenmood-e-xtreme-froyo-v1-9-4-with-working-wifi-camera-bluetooth-3dgallery-for-t-mobile-g1mt3g/
1.5に戻す

どっかから落した20090801-docomo-ht-03a.rar のうち、boot, cache, data, system のみをnandroidで復旧してみる。nandroid.md5復元も忘れずに。

Xtreme Froyo v1.9.5 try
  • 日本語fontは後でupdate.zip で入れることとする (autosignとかしらないけど、あとで調べりゃなんとかなんだろ)
  • SPL 1.33.2005 ← 入ってた。
  • Latest Radio highly recommended (どうしたものか → だめなら後で考える)

手順

  1. done: ROM落せ http://tinyurl.com/extreme-froyo-1-9-5
  2. nope: (ステップ番号予約)
  3. done: black theme 落せ http://tinyurl.com/froyo-blacktheme-v2
  4. done: sdにコピれ
  5. done: full wipe
  6. done: flash rom → ついでに root.zip (以下参照) もここで焼いてしまう。suが入ってるだけだし。
  7. skip: flash a2sd + cc patch → 2ch "root13":770 によると既に適用済みらしい
  8. skip: flash froyo blacktheme → blackは面倒そうなのでやめる
  9. reboot → すげー時間かかるんですけど、ダメか。
以後実行せず
  1. ADWの設定をこうしろ → どうでもいいがな
  2. sparepartsの設定をこうしろ (launcher in memory)
  3. show clockとかいろいろ (blacktheme場合は時刻の色)
  4. notification colorの設定 (black theme場合)
  5. google mapをmarketからdownload
  6. reboot
  7. 警告: 他のkernelとかgappsをinstallすることのないように → kernelはまだしも、gappsはなんでだろ
  8. and ENJOY!

追加手順:

  1. root permissionの修正はこれを焼く: http://www.mrcellphoneunlocker.com/android/root.zip
メモ
  • rebootに必要なのは「信じる心」?
  • boot animation が重くなったり止まったりするのは何故なんだぜ
  • 最終的に、boot できずあきらめてみる。
他のromを試す
  • CM5.0.8 (Eclair) → ok (ちゃんと焼けるか念のためテストした)
  • SPF Connection 2.8 → bootはするけどfontが豆腐、あと突然死

http://www.androidinforum.fr/htc-dream-android/froyo-french-connection-100-t1742.html#p6156

partition: swap 160M, ext 500M, 残り vfat がおすすめとな。

何度か丹念に「目標をwipeしてreboot」を繰り返してたら安定した気がする。

豆腐をfont入れ、localeをlibicudata.so の入れ替えで対処 (できるかなreboot中)

→ libicudata.so は入れかえちゃダメ。起動しなくなる。recoveryで起動して/systemをマウントしてことなきを得る。

SPF Connection 2.8

2010-07-11 追記

2chでも報告されているとおり、wlanが使えない。あと細かい話だけど、live wallpaperが使えない気がする。メモリが足りないだけかもしれないけど。

marketが死にまくる (acoreが死ぬ)。ほかにも死にまくるけど、何故かはよくわからない。とりあえず体験はできるけど、まだ常用には至らないかも。

(安定している、と言っている人もいる)

SPF Connection 2.8.1

2010-07-11 追記

zip落してきて上書きinstallしてみた。なんか日本語fontが消されたんだけど(ぶー!)

ちなみに日本語fontはM+を利用してます。

時間つかった限りでは、他人にお勧めできるほどじゃないけど何とか使いものになるかも。dwang環境はnandroidでしかバックアップしていないので、手作業でアプリなどは手作業で復帰する予定。

CM6-RC1

(2010-07-11 午後5時追記)

どうもSPF Connectionが安定しないのと、ベースがCM6ということで、まずはベースに近いほうが良いだろうと

CM6-RC1を焼いてみる(この項続く)

http://www.cyanogenmod.com/home/cyanogenmod-6-0-0-rc1

Marketが極めて不安定な模様。エラー

E/AndroidRuntime( 2000): FATAL EXCEPTION: UpdateCheckinDatabaseService

E/AndroidRuntime( 2000): java.lang.SecurityException: Permission Denial: writing com.google.android.gsf.settings.GoogleSettingsProvider uri content://com.google.settings/partner from pid=2000, uid=10036 requires com.google.android.providers.settings.permission.WRITE_GSETTINGS

すぐ直りそうではあるけど。

Market落ち対策:
  • yay-gapps を普通のgappsの上から焼いた時はMarket落ち頻発

(エラー内容から察するに、installされたapkの記録をgoogle accountに書き込めない)

  • まっさらの1.5からCM6-RC1, yay-gapps を焼いた状態ではMarket落ち発生せず

c.f. http://forum.xda-developers.com/showpost.php?p=7139560&postcount=109

2010-07-01

メモリって何?」

C言語におけるメモリとは何だろうか

まともな言語であるJavaでは、メモリモデル定義していて、その上で挙動を議論することができる

例えば、一定の記述をすることにより、オブジェクトへのメソッドコールやフィールドアクセス線形化可能になる(とJava仕様が規定している)

一方、C言語には、そのような「メモリ」が存在するのであろうか?しないのであろうか?

そのような定義なしに、メモリ管理の正当性は議論可能なのであろうか

いやはや疑問は尽きない

http://anond.hatelabo.jp/20100701231033

PHPの人がPHPの最新版を使ってなかった件

PHPユーザー会の中の人とたまたま話したんだけど、アプリケーションPHP5.2系からPHP5.3系への移行が滞っているようだ。

「業務でPHP5.3使ってますよー。」って言ったらむしろ驚かれた。どういうこった?

いま移行せずに、PHP5.3ってどうなるのよ?その先にあるPHP6系ってどうなるのよ?不安しかでてこない。

不満&不安
  1. サポート終了したPHP4系はまだレンタルサーバーにはびこっている。
  2. ライブラリPEARPHP4をサポートしつづけてるからヘボくなってきてる。
  3. 将来リリースされる予定のPHP6が不安
    1. 内部文字コードUTF-16の件でロールバック
      1. コアエンジニアの分担なので、ユーザーエンジニアには影響はそんなないけど。
  4. インタプリタが対話的にできない。
    1. 自作しろってことか??
  5. 5系より前からある関数のExceptionが整備されてない。catchでキャッチしにくい。
  6. 4系から入ったクラスのvarが5系のJavaっぽいオブジェクト指向文法によって不要になった点。
期待&満足
  1. 5.3から名前空間無名関数サポートされた。

2010-06-03

14 :以下、名無しにかわりましてVIPがお送りします []:2010/06/01(火) 20:42:50.52 ID:wdnhS0np0

C

JAVA

アセンブリ

この3つやっとけばOK

なんとなく日本プログラマ給料社会的地位が欧米とかと比べて低いわけが分かった気がする。

2010-05-08

http://anond.hatelabo.jp/20100508093218

いくらでもあるでしょ。

HTMLでもいいし、JPEGGIFPNGMPEGWMVMP3Javaアプレットと、表現手段はいくらでもある。

それよりもFlashが優れているのは単にAdobe(Macromedia)の努力の賜であって、寡占状態は別に不当な結果じゃないでしょ。

もしユーザー不利益な行動を取るようになったら、さっさとFlashから別の規格に乗り換えればいい。

2010-05-06

http://anond.hatelabo.jp/20100506120059

(java切ってると読めん)

Java じゃなくて JavaScript なんじゃないのかな

言わせんなよ恥ずかしい

口蹄疫の広がり経過についてメモ

4/20
宮崎県で10年ぶりに口蹄疫感染確認
農水省日本牛肉輸出全面停止。
政府口蹄疫の疑似患畜確認及び口蹄疫防疫対策本部設置。http://www.youtube.com/watch?v=_AbqOxV1pw0
赤松農水相宮崎選出の外山いつきから消毒液が足らない報告を受ける。
4/21
政府から指示なし、仕方なく現地で対応消毒薬は現地の組合が用意したが不足。
4/22
農水副大臣現場の状況について今初めて聞いた」。
http://www.youtube.com/watch?v=aJJMx9amET8
4/25
殺処分の対象が1000頭を突破過去100年間で最多。
4/27
東国原知事赤松農水相谷垣自民党総裁に支援要請
4/28
国内初の「豚」への感染疑いを確認
自民党口蹄疫対策本部長谷垣総裁現場視察。
4/29
農水副大臣宮崎県出張現場には入らず生産者への面会もなし。27日に知事が上京した時にした話を再び聞く。
4/30
自民党口蹄疫対策本部、政府に42項目の対策要請を申し入れ。対応を予定していた鳩山総理赤松農水相は当日になってドタキャン赤松農水相は夕刻に南米へ外遊出発。
自民党政府に6日7日の委員会開会を要求。政府は拒否。
民主仕分け組、口蹄疫により被害を受けた畜産農家融資を行う中央畜産会を仕分け。
移動・搬出制限区域を宮崎鹿児島熊本大分の4県に拡大。
自民党口蹄疫対策本部記者会見を開く

【以下、自民党口蹄疫対策本部の記者会見http://www.youtube.com/watch?v=UOSIYeXZIuA)から書き起こし】
「10年前の感染の際はただちに100億の予算が確保され対策がなされた」
「ところがこの段階になっても国から宮崎県には一箱も消毒薬が支給されていない」
「この状況で農水大臣が外遊するとは自民政権時代からすれば前代未聞」
「国からは消毒液一箱も届かず。国があたかも配ったように報道されているが、まったくの誤報
5/1
宮崎県自衛隊災害派遣要請を行う。家畜の殺処分は8000頭超へ。
総理、熊本県水俣慰霊式に出席、イグサ農家を視察。宮崎スルー
5/2
1例目のウイルスアジア地域確認されているものと近縁であることを確認
5/3
感染17例目確認:殺処分9000頭突破
5/4
感染19例目確認:殺処分27000頭突破
総理、普天間問題で沖縄訪問。
宮崎スルー舟山農林水産大臣政務官デンマーク出張
5/5
1例目から約70km離れたえびの市感染確認、合わせて感染23例、殺処分34000頭に。
http://www.youtube.com/watch?v=TIcv4vDu3nc
5/7
小沢幹事長宮崎県訪問。『選挙協力要請』のため東国原知事と会見予定。
5/8
赤松農水相帰国予定。
5/9
舟山政務官帰国予定。

おまけ:海外のこの件に関する報道

FAO has urged heightened international surveillance against foot-and-mouth disease (FMD) following three recent incursions in Japan and South Korea.

国連FAOは韓国日本で発生の口蹄疫に対して国際的な監視体制の強化を提唱:5月4日

http://www.meattradenewsdaily.co.uk/news/070510/uk___foot_and_mouth_concerns_.aspx]

UK - Foot and Mouth concerns 04 May 2010

So far Japan has had to slaughter 385 animals ? buffaloes, cattle and pigs.

“We are worried because the rigorous biosecurity measures in place in the two countries were overwhelmed, pointing

to a recent, large-scale weight of infection in source areas, very probably in the Far East,” said FAO’s Chief

Veterinary Officer Juan Lubroth.

国連FAO(国際連合食糧農業機関)の獣医主任Juan Lubrothは日本口蹄疫により385頭の動物の処理があったとのニュースコメントし「日本韓国で厳密なバイオセキュリティ規制措置があるにも関わらず極東地域ソースと思われる口蹄疫の発生のあることに憂慮している」と述べた。

“In the past nine years, incursions into officially FMD-free countries, as were Japan and the Republic of Korea, have

been extremely rare so to have three such events in four months is a serious cause for concern,” he noted.

“We also have to ask ourselves if we aren’t facing a possible replay of the disastrous 2001 FMD transcontinental

epidemic which spread to South Africa, the United Kingdom and Europe after earlier incursions in Japan and South

Korea,” Lubroth added.

過去9年間に日本韓国での口蹄疫は稀であったが、今は4ヶ月に3回の発生事例が見られ,深刻な状況と思っている。2001年南アフリカから英国欧州口蹄疫の広まった大規模感染の事例の二の舞にならないかと心配している」

FMD in Japan and South Korea heightens global concern

http://www.wattagnet.com/15657.html]

(java切ってると読めん)

2010-05-05

情報学部の新入生にはアセンブラC++関数型言語(何がいいかまでは知らないけど)やらせりゃいいと思う

基礎体力を養う意味ではここら辺がいいと思うんですがどうでしょう

アセンブラコンピュータの基礎を理解するには必須でしょう。

これがわかるとCLRJVMインフラ部分もわかりますし、組み込み方面にも強くなります。

後にOSコンパイラ勉強するにも役立つでしょう。

C++マルチパラダイム言語であり、これをひとつやれば構造プログラミングオブジェクト指向プログラミングの両方がわかります。

C++はCのほぼ上位互換言語ですので(正しくはC99が制定されるまでは)、プレーンなCしかやらない理由はありません。

最初ベターCとして始めればいいです。

嫌なとこも多くある言語で(どうしてEffective C++シリーズやExceptional C++シリーズみたいな書籍が多くでてるか考えるといいよ)、メモリ管理も手動ですが(これは半分嘘。RAIIがあるから半分自動GCがないから半分手動)、逆に細かいとこに気を配る態度を養うには最適です。

関数型言語は新しい世界を知るために勉強しましょう。

Erlangで並列プログラミングをやるのもいいかもしれません。

Common LispSchemeで怪しい(でも美しい)世界を爆走するのもいいかもしれません。

MLHaskellが最も現代的ですかね。

これだけやっとけばC#Java、軽量言語の類はあっさりと料理できるでしょう。

あくまでもプログラミング言語についてはですからね。

アルゴリズム離散数学もちゃんとやってくださいね。

システム屋になりたきゃソフトウェア工学経済学経営学、ついでにナンパもちゃんとしなきゃダメですよ。

2010-05-01

ひがやすおが自分馬鹿に気付かず他人をバカにしてるwwwwww

さて、スクリプト言語は軒並みトロいということが分かったうえで、次のグラフをご覧頂きたい。これは各プログラミング言語でのテンプレートエンジンベンチマーク結果である。

…(中略)…

これを見ると、Java や C で実装されたテンプレートエンジンが必ずしも最速ではないことが分かる。

…(中略)…

このように、プログラミング言語の速度とアプリケーションの速度は、必ずしも一致しない。一致しないどころか、まるで関係ないと言っても差し支えないぐらいである。もちろんテンプレートエンジンの速度でアプリケーションの速度を測れるわけではないが、「必ずしも一致しない」という結論は変わらない。

…(中略)…

今日のまとめ:プログラミング言語の速度 != アプリケーションの速度

http://d.hatena.ne.jp/kwatch/20100430/1272585083

.@tagomoris あんなテンプレートの記事に感心してちゃだめですよ。テンプレートの処理の全体に対する時間の割合が出てないと意味ないのに、ああいう結論を出している時点でその釣りレベルがわかるというものです

http://twitter.com/higayasuo/status/13099478175

んー、「言語の速度 != アプリの速度」という主張を示すにはあれで十分だと思いますけど。データベースネットワークまで含めて計測したら、それこそ言語の速度に関係ない部分が増えるわけですから、先の主張がもっと強調されるだけです。そういった、明らかに言語に関係のない部分を含めなくても「言語の速度 != アプリの速度」というのがよくわかるという点で、あのベンチマークは十分意味があると思いますが、いかがでしょうか。

http://d.hatena.ne.jp/kwatch/20100501/1272677384

パフォーマンスの結果は、その測定対象に対しては事実ですが、別のモノに対しては確かな根拠とは成り得ません。あるひとつの測定結果のみで、ほかも大体そうだろうというような人は、根拠がないので、それを説得した上で認めないならしかとしてもいいんじゃないかな。しょせんそのレベルの人だから

http://twitter.com/higayasuo/status/13100210259

wwwwwwww

言語の速度 == アプリの速度」という思想に対し、id:kwatchが反証を出している。

id:kwatchの反証は、つまり、アプリケーション中でテンプレートエンジンについてのみ取り出してみた場合に、テンプレートエンジンの速度とアプリケーションの速度が関係ないということを示している。

このような事実にも関わらず「言語の速度 == アプリの速度」という思想を維持するには、テンプレートエンジンの速度差にも関わらず、アプリケーションの他の部分の速度差によって必ず「言語の速度 != アプリの速度」が達成されなければならない。そしてそれは有り得ない。テンプレートエンジンの速度差は主にアーキテクチャや実装によって生じており、アプリケーションの他の部分もそれぞれ異なるアーキテクチャや実装を採用している以上、同様に速度差が発生するからだ。

もちろん他の部分の実装等で差を取り戻し、あるいは逆転するアプリもあるだろうが、差を広げられるアプリもあろう。しかし、それはアプリごとにバラバラなので結局「言語の速度 == アプリの速度」というおとぎ話に立ち戻ることは出来ない。

結局のところ、「言語の速度 != アプリの速度」を証明する場合には、アプリ中で同じ役割を担う一部分どうしを比較して「言語の速度 != アプリの速度」となることを示せば十分だ。

 

ところがid:higayasuoはテンプレートエンジンの速度差があろうと、アプリの速度が言語の速度で決まることを否定出来ないという。

端的にいって勘違いだ。

これが仮に「言語の速度 == アプリの速度」という妄想証明するために「言語の速度 == テンプレートエンジンの速度」である例を持ち出したのであれば、パフォーマンスの結果は、その測定対象に対しては事実ですが、別のモノに対しては確かな根拠とは成り得ませんなどという不抜けた妄言も成り立つところである。

しかし今回は != だ。

!= と == の区別がついてないとすれば馬鹿だし、!= への反証が == への反証と同じだと考えているのならやはり馬鹿だ。!= を証明するには、ただ1つでも反例を挙げれば良い。 == への反例が一つでも挙がれば != の証明になるのだ。

 

まさかid:higayasuoは、id:kwatchが「テンプレートエンジンの速度 == アプリの速度」と書いていると読んだのだろうか。

そんなことは本文のどこにも書いていないばかりか、上記の引用の中で明確に否定されている。

もちろんテンプレートエンジンの速度でアプリケーションの速度を測れるわけではないが

文章もまともに読まずに釣り認定してしょせんそのレベルの人だからなどと言ってるんなら、やっぱり馬鹿

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

2010-04-26

RubyJavaログ出力を統合する方法

JRuby上で動くRubyJavaログを同じファイルに保存したいときなど

JRuby界隈で何かいい方法ないかな~と探していたけど見つからないので

RubyのLoggerのインターフェースcommons-loggingを使用して実装してみた

使用バージョンは以下

require 'logger'

class CommonsLoggingLogger
  def initialize(name="ruby")
    @progname = nil
    @logger = org.apache.commons.logging.LogFactory.getLog(name)
  end
  def add(severity, message=nil, progname=@progname, &amp;amp;block)
    if message.nil? and block_given?
      message = yield
    end
    
    case severity
    when Logger::DEBUG
      debug(progname){message}
    when Logger::INFO
      info(progname){message}
    when Logger::WARN
      warn(progname){message}
    when Logger::ERROR
      error(progname){message}
    else
      fatal(progname){message}
    end
  end
  def debug(arg0=nil, &amp;amp;block)
    @logger.debug make_log(arg0, &amp;amp;block)
  end
  def info(arg0=nil, &amp;amp;block)
    @logger.info make_log(arg0, &amp;amp;block)
  end
  def warn(arg0=nil, &amp;amp;block)
    @logger.warn make_log(arg0, &amp;amp;block)
  end
  def error(arg0=nil, &amp;amp;block)
    @logger.error make_log(arg0, &amp;amp;block)
  end
  def fatal(arg0=nil, &amp;amp;block)
    @logger.fatal make_log(arg0, &amp;amp;block)
  end
  def debug?
    @logger.isDebugEnabled
  end
  def info?
    @logger.isInfoEnabled
  end
  def warn?
    @logger.isWarnEnabled
  end
  def error?
    @logger.isErrorEnabled
  end
  def fatal?
    @logger.isFatalEnabled
  end
  def level
    if debug?
      Logger::DEBUG
    elsif info?
      Logger::INFO
    elsif warn?
      Logger::WARN
    elsif error?
      Logger::ERROR
    else
      Logger::FATAL
    end
  end
  def level=(lv)
    #do nothing
  end
  def sev_threshold
    level
  end
  def sev_threshold=(lv)
    #do nothing
  end
  def datetime_format
    nil
  end
  def datetime_format=(fm)
    #do nothing
  end
  
  attr_accessor :progname
  
  private
  def make_log(message_or_progname, &amp;amp;block)
    if block_given?
      progname = message_or_progname || @progname
      message = yield
    else
      progname = @progname
      message = message_or_progname
    end
    
    progname_message(progname, message)
  end
  def progname_message(progname, message)
    progname.nil? ? message : "#{progname}: #{message}"
  end  
end

試しにRedmineに設定して動かしてみたところ大丈夫そうだった

2010-04-20

SIerアウトソーシングに起因する人材問題

人材の流動化か囲い込みか(http://remote.seesaa.net/article/147006872.html)」で示される問題は、SIer案件であれば1つや2つはよく起こっている。ここまで問題が積み重なっててひどいのはあまりない(...と思いたい)以下は実際にみてきた現場の惨状。

2.ドキュメント無茶苦茶

excel方眼紙はよく見かけます。修正にやたらと手間がかかるので苦痛です。継続的にメンテナンスする必要があるドキュメントには向いてません。あと、ソースコード日本語訳したようなひどい設計書が多いです。そんなもんソースコードで十分だろって思います。

3.プロダクトのソース管理無茶苦茶

本番環境コンパイルしたりとか、恐ろしい事をしている現場がありました。それでソースコードレポジトリとの同期が取れてなくてどのファイルが実際に稼働しているコードなのか分からなくなったりもしていました。

4.ユニットテストコードがない

ユニットテストがないのはデフォルトです。テスト仕様書が残っていればまあいい方ですが、テスト項目に「正常に動くこと」としか書かれてない場合もあって信用できません。

5.GUIがひどすぎる

RDBMSをつかったシステムで、会社の休業日を管理するテーブルの編集画面レコード番号が必要かどうかで議論が始まり一時間くらいぐだぐだと会議をしたりします。そんなもん年月日でユニークキーにしておけば十分。いちいちユーザに番号を振らせるという手間をとらせたいんだろうか。

アウトソーシングSIerの開発力は空洞化した

自社で一貫して設計から実装まで担当しているSIerは別として、そうでないSIerには実際にモノを作っている人間は居ない。仕様の検討段階での資料作成から、アーキテクチャ設計設計テスト運用までほとんど外注にたよりきっており、ざっくりなマネジメントをしているだけだったりする。

設計から外注に丸投げしているSIerでは、日本式のやりかたとか言う以前に、そもそもSIerの社内にシステム開発を行ったオリジナルメンバー存在すること自体少ない。

すでにSIerでは内製することすら出来ない状態まで空洞化している。

元記事のコメントより

コストダウンの名の下に人減らしだけは進みましたが、そのことがどれくらい破壊的な影響をもたらしているかを、上の人が全く理解できていません。上の人ほど開発経験に乏しく、細部を理解できていないのです。

『鉄筋減らしてコストダウン』して住めないマンション大量生産したマンション販売会社がありましたが、IT業界は減らすどころか「鉄筋も柱も無くしてコストダウン」を目指してる感さえあります。

IT業界は減らすどころか「鉄筋も柱も無くしてコストダウン」を目指してる感さえあります。

ってのは言い得て妙だ。

技術力がないのでマネジメント不安

SIerはモノを作るのが仕事ではありません、マネジメントするのが仕事です」キリッ!

ってよく言うけど、マネジメントに関しても、技術的な問題が起こっても解決するだけの力がないので、下請けに残業してくれという根性マネジメントしか出来てない。顧客から仕様変更の要求があった場合でも、どういう影響があるかも理解できてないので、全部請けてきて下請けに丸投げとか。

たちが悪いのは見当違いなルールを課して管理したつもりになっている事。

外注に頼り切っているSIerでは、アーキテクチャ設計ドキュメント整備、ソースコード管理テスト自働化GUIデザインは社外の他人まかせになってしまっており、現状の開発方法でどのような問題があるのか気づくことができない。そういった現場から遠い場所にいる連中が現場をうまく回すためのルールを作れるとは思えない。

SIer謹製足枷にしかなっていないルールの例には事欠かない。

2010-04-18

現場開発者の憂鬱

古くは、Windows98NEC PC-9800シリーズ

ちょっと前だとJavascriptJAVA

冗談だと思う人もいるかも知れないが、そういうことの区別がつかなくても、IT業界年収が高い人はいる。

きっと現場開発者の方はこういうんだろう。

「でもでも、作る人がいなかったらどうしようもないですよね?」

それに対して区別が付かないベテラン上司はこういう。

「どんなに君がいい商品だと思っていても、買ってくれる顧客がいなければビジネスは成立しないんだよ。」


また別のケース。

現場開発者案件仕様に悩んでベテラン上司相談する。

「〇〇の仕様では〇〇はできない、しかし〇〇することで出来そうだ。これについてどう思うか。」

区別が付かないベテラン上司はこう切り返す。

「よく分からないから任せる。あっ追加コストの掛からない方で」

区別が付かないベテラン上司の言う事は至極まっとうなことを言っていると思う。

しかし、これにより現場開発者は社内で相談できなくなり、孤立化する。

「よく分からない、あの人のやっていることは難しくて、分からない」

同僚は帰る。現場開発者はひとり黙々と仕事に励む。そして孤立化は進む。

現場開発者はふと思う。

「何のために、誰のために仕事しているんだろう。」

「俺はコミュニケーション能力の欠落した人間として欠陥のある人なのでは。」

そんなこんなで現場開発者転職独立を考える。

こんな増田を書いているIT業界9年目の私も本年度マイナス査定を受けそうだ。

社内で数少ない利益を上げている一人だし、提案営業としても顧客を獲得しているのにも関わらずである。

さて、景気回復まで我慢の子なのか、2度目のキャリアアップ(笑)を検討してみるか。

まぁ休日出勤のお昼にこんな増田を書いているぐらいだから、社畜の私にはまだまだ搾り取れるところが残っているんだろうな。

2010-04-14

会社が「クラウド」に取り組み始めた時の平和適当なかわし方


ダイヤモンドオンラインの下記記事を無断転用しています。

ツイッター信者」にその素晴らしさを熱く語られたときの平和適当なかわし方|石原壮一郎「大人のネットマナー教室

http://diamond.jp/articles/-/7884


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


クラウドほど、経営層の人と現場の人との温度差が激しいIT用語はないと言えるでしょう。


経営層やCIOの人の中には、「クラウドの素晴らしいビジネスチャンスをもっとうちにも取り入れなければ!」という危機感を抱いて、

ことあるごとに現場の人への啓蒙活動に励もうとする“信者”が少なくありません。


その博愛の気持ちは尊いといえば尊いのですが、現場の人がさほどクラウドによるビジネスメリットを感じない場合は、

どう対処していいのか困ります。今日も全国各地で、クラウド信者経営層の熱い講釈を受けて、

尻を叩かれる現場の側が苦笑いを浮かべているという構図が繰り広げられていることでしょう。


自社がクラウド事業に参入することにさほどメリットを感じない側のあなたが、そういう災難にあったときはどう対処すればいいのか。

信者の勧誘に対する平和適当なかわし方を考えてみましょう。



クラウド様」を否定するのは危険

程度の差こそあれ、クラウドを熱く勧めたがる信者のみなさんは、「クラウドによってもたらされる新たなビジネスチャンス」を信じ、

そんなクラウドの知見を人より早く深めていることに、ちょっぴり優越感を抱いていると言えるでしょう。

どう見ても熱が入りすぎている人の中には、クラウドに過大な望みを託して、

いまいち不本意な会社の現状から自分達を救い出してくれる救世主のように見ているように思えるケースもあります。


いや、あくまで極端な例をあげているだけなので、「俺は違う!」とムキにならないでください。

もちろん、私の周囲のクラウド好きの経営層やCIO上司に対して、私がそういう目を向けているわけでもありません。


今後の人間関係考慮した言い訳で話がそれましたが、クラウドを熱く勧めてくる人にとって、

クラウドはまっていることが誇りであることは確か。何はさておき、そこを見逃さないようにしましょう。


たとえば、最近クラウドはまっている経営層や上司に、「うちも取組んだほうがいいだろう」と熱心に勧められたとします。

自分会社クラウド事業に参入する必要性を説かれても、いまいちピンと来ないからといって、


「うーん、よくわかんないですねえ。コアコンピタンスシステムをみんなが勝手リソースを食い合いしている共用環境に置くなんて

なんか気持ち悪い世界のようにも思えるんですが」

「柔軟にリソースを拡充できるっていっても、ハードを跨って分散処理できるシステムならともかく、

結局リソースプ-ルの上限内の話ですよね。なんか嘘っぽいですね」


などと、偉大なる「クラウド様」の仕組みを否定する言い方をしてしまうのは危険すぎます。


ムキになってさらに熱く語ってくるぐらいならまだしも、「ハァ~」と深いため息をつきながら、

救いがたいダメ社員を見るような目を向けてくるかもしれません。


まあ、わかり合えなくてもべつにいいといえばいいんですけど、経営層や上司に悪い感情を抱かれたり、

異動のきっかけになるのは避けたいところです。

向こうだって、今の時期たまたまクラウドはまっているだけで、けっして悪気があるわけじゃないし、

SOAのことを忘れてしまったわけでも、人間として何かを失ってしまったわけでもありません。


一生懸命クラウドの魅力を語ってくれたら、たとえピンと来なくても、


「なるほど、そういうふうにインフラ環境意識せずにインターネットでつながるっていうのも、ユニークな考え方ですね」


と、独自性に衝撃を受けたかのような反応をしておくのが、大人の包容力であり相手をそれなりに満足させるマナーです。

そういうふうに言えば喜ぶのはわかっていても、まるでその相手までホメるみたいで抵抗がある場合は、質問に逃げましょう。


仮想化によるサーバ統合とか、ホスティングとか、WEB2.0とか、データセンターアウトソーシングするのとはどう違うんですか?」


と、クラウドの旧称を持ち出してきて、クラウドの優位性をさらに語らせるもよし、


「なんか利用分だけ請求する従量制課金にして、結果、利益率の低くなるのをスケールメリットで吸収しないといけないんですよね?」


そんな歪んだ先入観丸出しの誤解(じゃないけどな)をわざとぶつけて、ひとしきり説明させるもよし。

いずれにせよ、無理無理と思っている気持ちを覆い隠したまま、相手にそれなりの満足を覚えてもらうことができます。



はまりっぷりを批判するのはもっと危険


まったくクラウドに興味がないわけではなく、ちょっと前に自社製品をSaaSASP化してやってみたけど、

全然受注できなくて放置してあるケースも、けっこう多そうです。


そういう状態にあるあなたに、はまっている上司経営層が例によって熱い口調で、


「まずは、機能限定の無償版をいろんなユーザーに提供してみると、フリーミアムの凄さがわかるよ」

「何でもいいからどんどん無償提供すれば、そのうち有償版にアップグレードする客がでてきて利益がでるよ」


フリーミアム教、じゃなかった、クラウド教、じゃなかった、クラウド界における定番の説得フレーズを説いてきたとします。


「ほお、そうなんですね。今期の研究課題として取組んでみます」


適当に納得しておくのはいいとして、つい勢いで、


「しかし、ずっぽりはまってますねー。クラウドの話をするときは生き生きされてますし」


などと冷やかしてしまわないように気をつけましょう。

はまっている上司経営層は、誇らしさの裏側に、多くは無自覚にですけど、


「自社の戦略に自信がなくてクラウドにすがっているように見えるんじゃないか」

競争力が欠如した製品クラウドの冠で紛らわそうとしているように見えるんじゃないか」


といった不安を抱えています。

何気ない冷やかしが引き金になって、心の奥の地雷を踏んでしまいかねません。


そこまでややこしい話じゃなくても、はまりっぷりを感心するセリフの裏側に、


「よっぽどヒマなんだな」

会社現実見ろよ」

「丸投げばっかりで、手動かしてるの外注ばっかりで、Hello Worldぐらいしかプログラム作れないうちの生産部隊が

どうやってフレームワーク備えたPaaSなんか構築するんだよ」


というつぶやきの気配を勝手に察知してしまいがち。


なんせ今までビジネスセンスではなく社内の空気を読む根回しセンスで出世してきた経営層や上司だけに、

社員の心のつぶやきに対してもきっと敏感です。

仮にビジネスセンスのないことに対してカケラも自覚がなかったとしても

カケラも思っていないケースは稀ですがビジネスセンスがないことは稀ではないでしょう)、

相手はそう受け取るでしょう。


はまりっぷりに対しては、ひたすら、


「うちも早くクラウドサービス始めたいですねえ」


と前向きな返事をすることが無難であり、相手に対する大人のやさしさ。単なるおためごかしではなく、

そのセリフを聞いたときの上司の満足そうな表情を見ることで、社畜としての深い喜びも味わえるでしょう。


クラウドをきっかけに相手と仲良くなる方法


仮に、クラウドの話題をきっかけに経営層や上司との距離を縮めたいなら、その場の口先だけではなく、次に顔を合わせたときに、


「あれから、SalesForceとかGoogle AppsとかAzureとかAmazon WSとか、試験導入してPythonJavaHello World作ってみましたよ」


と具体的な実績を話せばバッチリです。

熱く勧めてきた上司経営層が、特に自分の進級昇格を左右する人物だったりした場合は、

とりあえず勧められたとおりにやってみて、クラウドの魔力に魅せられたフリをしましょう。


「やってみると使えますねー。勧めてもらってよかったです」


とまで言っておけば、さらに完璧

たとえ動機が不純でも、それをきっかけに部内から企画をあげたという実績ができればこっちのものだし、

上司としてはこの上ない喜びを……おっと、結局、経営層へのご機嫌取りという本音が出てしまいました。




曖昧な立場で書いてきましたが、私は何を隠そう、嫌々クラウド事業に取組んでいる社畜のひとりです。


この記事は、いまいち熱くなれない己の愚痴であり、

スケールメリットなんか出せねえんだから競争力ある価格設定なんか無理、

無理矢理仮想化しなくても安いサーバで提供すりゃいいんじゃねーの?

そもそも高い人件費プロパー使ってレンタルサーバ屋と競争してどうすんのよ?

とかいう会社じゃ言えない本音に悶々としながら、仕事中にこっそり書かせていただきました。


そんなことを踏まえつつ、それぞれの立場や環境に応じてお役立ていただければ幸いです。



                   ※

次回も、引き続きクラウドテーマにしてみたいと思います。(嘘)

今期の事業戦略などで、「クラウド事業への取組み」なんつーキーワードが出始めた場合対処法や、

自分に企画立案を振られた場合の振る舞い方について考えてみましょう。


■今回のマナー

クラウド信者」が抱える誇らしさと不安――その両方を見逃すべからず






全然かわせてねー!なんか立案しないとマズい

明日から本気出す

2010-04-09

http://anond.hatelabo.jp/20100408191057

下からで悪いけど

どのツール使っても面倒くせえなーみたいな処理には

自分C++とかjavaとか何かでちょっと直にいじったりするじゃん

そういう意味での「オーサリングツール“とか”」だと思うぜ

2010-04-03

はてブにあがってくる特定プロダクト名がタイトルについてるブログ

そのプロダクトについて言及しているところを見た記憶が無い。

例えばJavaとかRailsとかzopeとか。

2010-04-01

C/C++, Java, Pythonで十分だと思っていた時代もありました

携帯開発するならアセンブリ必要なんだね

モバイル世界なめてた

組み込み開発とかしたことないけど、組み込み開発みたいなものかなあ

C出来るからまーいっかーと思ってたら、

モバイル開発に着手してみて仰天

そこにはC/C++の知識だけでは通用しない世界

うまく言えないけど、携帯開発してる人って相当頭いいんじゃね?

どう思うよ?

2010-03-21

プログラミングに挫折した

ゲームを作りたい C言語の基礎を学ぶ それだけじゃゲームが作れないことが判明

win32apiを学ぶ 多すぎて?状態で挫折

ゲーム作るのはあきらめよう!チートだ! アセンブリが面倒で挫折

向き不向きってあるよね・・・。もう勉強したくない・・・。

俺には向いてないんだろな。だってwin32apiでGUI作りで投げ出したくなったもん

俺の読んだ本

明快C言語 ダイテルC言語(例題飛ばしたのでほとんど意味なし) やさしいC 独習C

windowsゲームプログラミング(最後のテトリスブロック崩しが面倒で飛ばした)

独習java(ガベージあたりで挫折) windows32api徹底理解 ホームページ作成の本(名前失念)

アセンブリ言語の教科書(100ページあたりでソースを読み解くのが・・・以下略

何のために勉強しているかわからなかった・・・たぶんC言語の基礎すら身についてないと思う

じゃあweb関連や初心者用言語(php,ruby,pythonとか)学べばいいじゃんってネットで指摘されたんだけどさ

そうじゃないんだよ問題なのは。ライブラリの使い方がわからないし必要な技術がそれだけじゃないだろうし

roboformのようなもの作りたいんだけどどうつくったらいいんだろ(guiは無理なのでコンソールで)

perlとかruby,php記述して通信プロトコル勉強すればできるんだと思うんだけど俺にはもう体力が残ってない

あまりにも無駄な遠回りをしてきた。でも願望だけが空回りしてる。ライブラリごまんとあるうえに通信プロトコル勉強しないといけないんでしょ。甘えっていわれてもかまわない誰か助けて

2010-03-15

Windows起動しますた

ようこそ。

自分名前クリックし、パスワード入力する。

タスクバーアイコンが順次起動していく。IMEボリュームセキュリティプログラムUSB接続機器プリンタJava更新、各種クイックスタータ(笑)etc, etc。。。

午前九時の会議まであと何分だと思ってんだ。

いつまで起動に時間かけてやがる。

ああっ!?ウィルス情報更新!?そんなの後でやれ後でばっきゃろー!!

はぁはぁ……いけないいけない。

まずは書類のファイルを開いて……Adobe Reader更新が始まった!?(ピキピキ)

ウィンドウアップデートを完了するためには今すぐ再起動が必要!?

ちゅどーん

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