「xml」を含む日記 RSS

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

2015-11-12

参考訳:拡散したJavaシリアル化の脆弱性についてApache Commons声明

原文:https://blogs.apache.org/foundation/entry/apache_commons_statement_to_widespread

原題Apache Commons statement to widespread Java object de-serialisation vulnerability

翻訳日:2015年11月12日(午後にタイトル日本語しました)

----

2015年11月1日 火曜日

Apache CommonsJavaオブジェクトのデシリアライゼーション脆弱性に関するステートメント

著者:Bernd Eckenfels(コミッター), Gary Gregory(Apache Commons副責任者)

AppSecCali2015 でGabriel Lawrence (@gebl) と Chris Frohoff (@frohoff) によって発表された "Marshalling Pickles - how deserializing objects will ruin your day" は、信頼されないソースからシリアル化されたオブジェクトを受け取るときセキュリティ問題をいくつか明らかにしました。主な発見は、Java オブジェクトシリアライゼーション(訳注:seriarization/シリアル化/直列化=ネットワークで送受信できるようにメモリ上のオブジェクトデータバイト列で吐き出すこと。シリアル化されたJava オブジェクトRMIなどのリモート通信プロトコル使用される。)を使用する際に任意Java関数の実行や操作されたバイトコードの挿入さえもを行う方法説明です。

Frohoff氏のツールである ysoserial を使って、Foxglove Security社のStephen Breen (@breenmachine) 氏はWebSphereJBossJenkinsWebLogic、OpenNMSといった様々な製品調査し、(http://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/) に各々の様々な攻撃シナリオ記述しています

両者の調査活動は、開発者Javaオブジェクトシリアライゼーションに信頼を置きすぎていることを示しています認証前のシリアル化されていないオブジェクトにも。

Javaにおけるオブジェクトのデシリアライゼーション(訳注:de-serialization/非直列化=ソフトウェアで扱うことができるように、送受信されたデータを元に戻すこと)が行われるとき、大抵は想定された型にキャストされ、それによって、Javaの厳しい型のシステムが、得られた有効オブジェクトツリーだけを保証しています

不幸にも、型のチェックが起こるまでの間に既にプラットホームコードが生成されて、重要ロジックは実行されてしまっています。そのため、最終的な型がチェックされる前に、開発者コントロールを離れた多くのコードが様々なオブジェクトの readObject() メソッドを通じて実行されてしまます脆弱性のあるアプリケーションクラスパスから得られるクラスの readObject() メソッドを組み合わせることで、攻撃者は(ローカルOSコマンドを実行するRuntime.exec()の呼び出しを含めて)機能を実行することができます

これに対する最も良い防御は、信頼されていないピア通信相手)とは複雑なシリアルプロトコルを使うことを避けることです。ホワイトリストアプローチ http://www.ibm.com/developerworks/library/se-lookahead/実装するように resolveClass をオーバーライドするカスタム版の ObjectInputStream を使うと、影響を制限することができますしかしながら、これは常にできることではなく、フレームワークアプリケーションサーバがエンドポイント提供しているような時にはできません。簡単な修正方法がなく、アプリケーションクライアントサーバプロトコルアーキテクチャを再検討する必要があるため、これはかなり悪いニュースです。

これらのかなり不幸な状況において、エクスプロイトのサンプルが見つかっています。Frohoff氏は、 Groovy ランタイムSpringフレームワークApache Commons コレクションからクラスを組み合わせるサンプルのペイロードに gadget chains (ガジェット・チェーン)を見つけています(訳注:provided)。これはこの脆弱性エクスプロイトのためにより多くのクラスを組み合わせられることは完全に確実なことで、しかし、これらは今日攻撃者が簡単に得られるチェーンです。

(Twitter画像)https://blogs.apache.org/foundation/mediaresource/ce15e57e-94a4-4d7b-914c-8eb8f026659c

この脆弱性のために利用される(訳注:blamed)ことができない確かな機能実装するクラスができ、安全性が信用できないコンテキストにおけるシリアル化を利用されないようにするような既知のケースの修正ができたとしても、少なくとも分かったケースだけでも継続的修正していくことが要求されますモグラ叩きゲームを始めるだけであるかも知れませんが。実際にはこれは、オリジナルチームが Apache Commons チームに警告が必要だと考えていない理由で、それゆえに比較的、活動開始が遅れました。

Apache Commons チームは InvokerTransformer クラスのでデシリアライゼーションを無効化することによって commons-collection の 3.2 と 4.0 のブランチにおける問題対処するために、チケット COLLECTION-580(http://svn.apache.org/viewvc/commons/proper/collections/branches/COLLECTIONS_3_2_X/src/java/org/apache/commons/collections/functors/InvokerTransformer.java?r1=1713136&r2=1713307&pathrev=1713307&diff_format=h) を使っています議論されているやるべきことのアイテムは、変化させる仕組み毎(per-transformer basis)に、プログラマティックに有効にするような機能提供するかどうかです。

これには前例がありますOracle と OpenJDK JRE の一部であったり、バイトコードを挿入して実行することを許したりする com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl クラスで、セキュリティマネージャー定義されているとデシリアライゼーションを拒否します。

これはシステムプロパティ jdk.xml.enableTemplatesImplDeserialization=true とすることで無効にできますApache Commons Collection は、本来よりもこの実行モデルは一般化していないため、セキュリティマネージャー存在独立したこの機能無効化することを計画しています

しかしながら、明確化のために述べておくと、この便利な"ガジェット"は、唯一知られている方法でもなければ、特に未知のものでもありません。そのため、インストールされたものを強化されたバージョンApache Commons Collection に置き換えることが、アプリケーションをこの脆弱性に対抗できるようにするわけではありません。

このブログポストレビューのために Gabriel Lawrence に感謝したいと思います

Apache Commons Collection は、Java コレクションフレームワークに加えて追加のコレクションクラス提供する Java ライブラリです。InvokerTransformerコレクションにあるオブジェクトを(特にリフレクション呼び出しを通じてメソッドを呼び出すことで)変換するために使うことができる Transformer ファンクションインターフェース実装の一つです。

一般のSallyによる2015年11月10日午前10字15分にポスト | コメント[1]

コメント

OracleWeblogicセキュリティアラートを発行しています

http://www.oracle.com/technetwork/topics/security/alert-cve-2015-4852-2763333.html?evite=WWSU12091612MPP001

提供されている回避策は、T3プロトコルへのアクセス(とリバースプロキシーにおけるT3メソッドフィルタリング)です。

2015-11-04

一太郎ビューアが高性能

http://anond.hatelabo.jp/20151104181322

どうやら、あるようだぞ。再現性次第では MS Word viewer も要らなくなる??

http://www.justsystems.com/jp/download/viewer/ichitaro/

 一太郎ビューアで読み込めるファイル形式一太郎Ver.2以上のファイル一太郎11以上の圧縮ファイル(jtdc,jttc)
 ・一太郎2004以上の電子署名セキュリティ文書(jtsd)
 ・Microsoft Word 2013~Ver5(doc/docx)
 ・Lotus 1-2-3(123/WK4/WK3/WJ3/WJ2、Ver98まで)
 ・リッチテキスト形式(rtf)
 ・テキスト形式txt)
 ・XMLテンプレートクリエーターファイル(jtdx)
 ・OpenDocument(odt)

2015-10-30

http://anond.hatelabo.jp/20151030042729

現役のプログラマーさんとのことで質問があります

ゲームデータ管理ややりとりってどんなものを使ってます

敵やプレイヤーステータスアイテム効果説明文とかの。

例えばゲーム内ではSQLiteプランナーとのやりとりではExcelとか。

以前にプレイしていたゲーム攻略Wiki生データっぽいのが書き込まれ

ことがあって、それがxmlだったらしくて普段はどんなツールを使用してるのが

疑問だったので。

2015-10-24

http://anond.hatelabo.jp/20151024023259

そんなのは問題じゃない。

それよりひどいのはETMLがXMLとしてまったく整形式(Well-Formed)になってないこと。読んでて気持ち悪くて気持ち悪くて仕方がない。あの部分だけでいいから、だれか直してくれないかな。

2015-08-31

今はまだつらい人へ

8/31でニコ生の配信終わっちゃいますね。

見たいんだけど、今はまだ気持ちの整理がついてない。

でも今日で消えちゃうのどうしよう。

って人の手助けになればいいと思います

今見るのが辛かったら、あとから見てもいいじゃない。

ニコ生 タイムシフト録画あたりで検索して

http://ch.nicovideo.jp/nico-lab/blomaga/ar8759

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12134841282

この辺のページ見て?ってなってる人にわかやすいようにまとめただけなので、すでにわかってる人は読んでもあん意味ないと思います。すいません。

※注意

この話を読む大前提として「OSWindows」で「ファイル拡張子を表示する」設定にしてください。

Windows7の人

http://121ware.com/qasearch/1007/app/servlet/qadoc?QID=013547

Windows8/8.1の人

http://121ware.com/qasearch/1007/app/servlet/qadoc?QID=013988

あとこれどうしてもタイムシフト放送保存したい人のために手っ取り早いタイムシフト放送保存の仕方しか書いてないんで、生放送録画の仕方とかは他で調べてください。すいません。

1)Microsoft .NET Framework 4.5.1 のインストール

http://www.microsoft.com/ja-jp/download/details.aspx?id=40779

行ってダウンロードボタンクリックして落ちてきたファイルを実行。

今コレ見てる人だったら多分、入ってないからわずインストールしてok。

すでにインストールされてる場合自動インストールを止めてくれるので多重インストール心配とかはしなくていいです。

2)kakorokurecorderの取得

http://com.nicovideo.jp/community/co310049

ここ飛ぶとコミュニティに入りますかみたいなこと聞かれるんで、入る的なものクリックすると「正式ダウンロード配布先1」ってとこに

・kakorokuRecorder Ver.1.5.4 (2013/11/04)

 [コミュ掲示板6558]

って書いてあるんで、ページ上のメニューから掲示板に入って投稿6558番を探して(ちょっとがんばればすぐにたどり着けるよ)リンクを踏む→「3079099.zipダウンロードします」っていうボタンクリック→出てきたリンククリック

(って思ったけど投稿7820にも同じリンク貼ってあったんでそこから行けます。すぐたどり着けるはず)

これでkakorokurecorder154.zipってファイルが取得できるので解凍

3)rtmpdump.exe差し替え版の取得と差し替え

http://nht.r.ribbon.to/

からrtmpdump-2.4-git-20131007_20131123.zipダウンロード解凍して、出てきたrtmpdump.exeってファイルをkakorokurecorder154.zip解凍したフォルダに突っ込んでrtmpdump.exeを上書き更新する。

4)kakorokurecorderの使い方

取得したファイル解凍すると中に「kakorokuRecorder.exe」ってファイルが出てくるんでダブルクリックするとソフトが立ち上がる。

ツールオプションアカウント設定→ニコニコ動画アカウントの共有ってとこで「次のブラウザCookieを共有する」にチェックつけて自分が普段ニコニコ動画を見るのに使っているブラウザ指定する。

ここでChrome使ってる人だけはChrome仕様変更のせいでそのままでブラウザCookieを取得できないので、一回kakorokurecorderを閉じて、

https://github.com/namoshika/SnkLib.App.CookieGetter/releases

から

SnkLib.App.CookieGetter.Sharp.v2.3.0.zipというファイルダウンロード解凍して「NET45」ってフォルダに中に入ってる3つのファイルと2つのフォルダをkakorokurecorder154.zip解凍したフォルダに入れて上書き更新(NET45フォルダじゃなくてNET45フォルダの「中身」を上書きすること)。すると「Chrome自分ニコニコアカウント名)」っていうのが選択項目に出てくるようになるんでそれを選択。

あとツールオプション→録画→録画保存先フォルダで録画する先を指定しとく。

あとは

・メイン画面に戻って「放送URL」ってとこに自分の録画したい番組URLを入れる

・「録画リスト追加」ってボタンを押すとボタンの下の画面に放送IDとか変換とか状態 待機中 とか出てくるんで録画開始ボタンを押す

・画面右側に録画したい番組の画面とか出てきて録画開始されるので終了まで待つ

・終わった時に「権利者名_放送ID(放送タイトル)_timeshift1.xml」「権利者名_放送ID(放送タイトル)_timeshift1.flv」って2つのファイルが出来てれば任務完了です。

放送時間によってはファイルが分割されてtimeshift2ってファイルがもう一組出来るかも。要は.xmlと.flvファイルが一組ずつ出来てればいいってことです。.xmlコメント時間などを指定するファイルで、.flv動画本体

5)録画したファイルを見るには

コメント無しで見る場合

パソコン場合 VLC Player

http://www.videolan.org/vlc/index.ja.html

とりあえずこいつ入れとけば見れるはず。ちゃんと録画出来てるかどうか確認するにはまずこいつで再生してみよう。音がちゃんと鳴るか、音ズレしてないかまず確認するのおすすめ

同じアプリiOS用もアンドロイド用もあるのでストアから落としてきてコピーすればスマホでもファイル見れるよ。VLCアプリストア検索すると出てくるよ。

VLC Playerは上手く使うとファイルは家のPCNAS上においたままWi-Fi経由でスマホストリーミング再生とかできるから動画収集癖のある人には色々やってみるのオススメだよ。

コメントありで見る場合

パソコン場合 こめたんぷれいや

http://putin999.web.fc2.com/

あたしはこれのver0.2.1.2使ってます

これだけだとflvファイル再生できないので

https://code.google.com/p/lavfilters/downloads/list

からLAVFilters-0.60.1.exeっていうの落としてきてインストールしてから使ってください。

同名の.xmlファイルと.flvファイルを同じフォルダに入れてから再生すればコメント付きで見られます

スマホコメント付きで見る方法ちょっとわかりません。ごめんなさい。

6) 最後

要は.flvファイルさえ確保できればあとはmp4に変換してストリーミングしたりDVDに焼いて見るようにしたりはいつでもグーグル先生に聞けば教えてくれるんで、とにかく確保確保。

2015-07-04

android メディアサーバー暴走について

まとめ

android メディアサーバー暴走は、画像音楽動画ファイル等(メディアファイル)の破損

あるいは、メディアファイルデータベースの破損が原因。

メディアファイルデータベースが破損した場合は、データベースを削除すれば勝手に再作成されて問題は解決する。

メディアファイルの破損が原因の場合は、破損したファイルを取り除いてやる必要がある。

対象となるファイルは[本体/default-capability.xml]に記載されている。自分場合は、拡張子

jpg,jpeg,bmp,gif,png,3gp,wav,mp3,mp4,3gp,m4a,flac,ogg,m3u,m4v,mkv,avi,xvid のいずれかのものだった。

ネット情報を見ると、動画ファイルが破損する場合が多いようだ。

破損ファイルを削除し、データベースを削除すれば問題は解決する。

ただし、ファイルの破損が保存媒体由来のものである可能性もあるため、保存媒体寿命が来てないか留意する必要がある。

メディアストレージの削除

設定-アプリ-すべて-メディアストレージ-データを消去

経緯

android スマホバッテリー消費量が異常に多くなる。

操作していると、過加熱により強制終了するほど。

電源管理から電池消費量を確認すると、メディアサーバーが異常に電池を食っていることを確認

起動して放置しているだけでメディアサーバーが働いて本体が熱くなるため、今回の異常の原因は、メディアサーバー暴走が原因と推測した。

ドコモに行くが、OSの初期化必要と言われたので自力で解決することに。

ネットで調べると、SDカード劣化によるメディアファイルの破損が主な原因として挙げられていた。

そこでSDカードを抜いて再起動してみるが暴走は収まらなかった。

データベースの破損が原因の可能性もあるとのことなので、メディアストレージの削除を試してみたが、暴走は収まらなかった。

yahoo ファイルマネージャー画像動画音楽ファイルを除外してみるが、問題は解決しない。

何か取りこぼしているファイルがあると考える。

yahoo ファイルマネージャーの『新着』を見ると、default-capability.xml更新されていることに気づく。

このファイル名で検索すると、SDカードマウント時に作成されるものらしい。

データベース作成の際に更新されたものだと考えて中身を見てみると、メディアファイル拡張子散見される。

メディアファイル定義されている。ものと思われる。

extension タグの要素をすべて抽出する。

jpg,jpeg,bmp,gif,png,3gp,wav,mp3,mp4,3gp,m4a,flac,ogg,m3u,m4v,mkv,avi,xvid

これらの拡張子検索したところ、最近入れたアプリogg ファイルが使われていることが判明。

アプリデータを退避し、一度アンインストール

データベースを削除し再起動すると、メディアファイル暴走が収まった。

2015-06-24

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

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

<head>

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

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


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

2015-06-17

6/16の日記

日記なのだから日記を書こうと思う。

■7:00 起床

 最近使い始めたアラームアプリは簡単な計算問題を解く必要がある。

 今日は27-13。

 最初は良かったけど、最近は寝ながらでも問題を解けそうなので、

 問題難易度を上げようと思う。

■7:05

 ベットに寝ながらネットサーフィンをする。

 昨日Newspickで書いたコメントいいねがついていた。

 やっぱりアイコンを女の写真にしておくと食いつきがいい。

■7:30 出社準備

 ベットから這い出て軽いストレッチの後シャワーを浴びる。

 またネットサーフィン

 未だにテスト駆動開発とか言ってるのを見つけて懐かしい気持ちになる。

 去年死んだでしょ?

■8:40 家出

 自宅を出て駅へ。

 どういうことか、行くときに反対方向にすれ違ったおばちゃんと

 5分後ぐらいに別の交差点で会う。

 数年かけて最短コースを探索したつもりだったけど、

 まだ他に抜け道でもあるのか。

■08:57 電車に乗る

 今日電車が遅れてきた。

 最近時間通りだと驚くぐらいだ。

 同じ車両に綺麗な女性を見つける。

 彼女に会えただけで今日家を出てよかったと思える。

■09:30 会社最寄駅到着

 今日フレックス出社。

 09:15には出社する予定だったはずだけど気にしない。

 コンビニでお昼ご飯を買う。

 今日会計モバイルSuicaで払おうとしたら、

 言う前に店員がSuicaタンバイしてくれていた。

 有能。一緒にLINEIDも渡してくれたら完璧だった。

■09:45 会社到着

 遅刻した気がするがいつものごとく何も言われない。

 この会社就職して良かったと思える瞬間。

 スマホロッカーに入れて、PCの電源を入れて一休みする。

 今日も一仕事終わった感。

10:00 仕事開始

 くだらないメールを読んでくだらない電話に回答して

 ネットサーフィンする。

 近くにいる今年配属された新人ちょっかいを出す。

 相変わらず真面目で面白味のないやつだ。

 2ch二次裏ニコ動ネトゲはてな発言小町も知らないらしい。

 うむ、その生き方が正しい。

11:30 まだ仕事

 やっと雑用が終わってEclipseを立ち上げる。

 起動を待ってる間にネットサーフィン

 木村岳史の極言暴論コラム、今度は「中国にも抜かれるIT後進国ニッポン

 人月商売が引きずり込む奈落」らしい。

 この記事Facebookいいねランキング一位なんだけど…IT後進国だと実感するわ。

12:30 昼休み 

 朝コンビニで買ったごはんを食べる。

 今日は早く帰るだろうと思い、残業用に残しておいた菓子パンも食べる。

12:45

 「達人プログラマー」を読み返す。本に書いてあるようには上手くいかない。

 自分けがDRY原則割れ窓理論を守ってもしょうがないんや…

 昼寝。

■13:00 午後の仕事再開

 人から質問を受ける。

 「この社内業務用のサイトがやたら遅いんだけどなんで?」

 あーとりあえずF12押してからF5押してください。デバックできます

 …このサイト、ただプルダウン表示するだけでサーバと六千回通信してる…!?

■13:30

 摩訶不思議サイトの件はもっとPHPに詳しい人に投げる。 

 いつも思うけど、どうやったらあんなつくりにしようと思えるのか。

 IT後進国

 やっと自分コーディング作業を開始する。

 といっても朝だらだらしているうちにだいたい考えていたので、

 あとはタイプするだけ。

■14:00

 タイプに飽きてきた頃に別の人から質問を受ける。

 「去年君が作ったプログラム見てるんだけど、

  あれなんで実コード10行程度なのに10画面もあるの?」

 一時期私の中ですべてXMLに書くのが流行った時期があるからですよ。

■14:30

 本気で飽きたので業務と関係のない自動プログラムを作って遊ぶ。

 あとは上司にこのExcelを開かせれば楽しいパーティーの始まりだ!

 だいたいこういう調子に乗っているときはよくないことが起きる。

■15:10

 そして顧客から障害発生の連絡を受ける。

 幸い運用は止まっていないけど今まで見たことのない挙動をしてる。

■15:30

 障害の原因特定。現地の担当に連絡して対処してもらう。

 一段落したけど、担当から

 「今日は様子を見るので遅くまで残っておいて」とのこと。

 昼に菓子パン食べたの後悔。

■16:00~

 記憶がない。

 たぶん仕事ネットサーフィンしてた。

■21:00

 帰宅準備。

 帰り際に同じフロア女の子からしかけられる。

 「いつも椅子に浅く寝るみたい座ってますよね。

  落ちないかな、と思っちゃいます。」

 これはプログラマー伝統的なポーズなんだよ。

 古事記にもそう書いてある。

■21:30

 スマホを取り出すとこの前の日曜に遊んだ女子大生からLineが来てた。

 「ブラック企業って本当にあるんですか??」

 大学生らしい質問だと思う。

 企業ブラックホワイトで分けられないんだよ。

 

 他に一つ下のフロアで働いてる女性に送ったLine

 もう一週間未読放置されてる。徹底的すぎるでしょ。

 事務連絡っぽく送ったんだからせめて既読ぐらいつけてくれてもいいのに。

■22:00 晩御飯

 スーパー惣菜を買って帰って食べる。

 スプラトゥーンの対戦実況動画にもそろそろ飽きてきた。

 ココア神拳動画はよ。

23:50

 この日記を書き始める

2015-03-25

Android Installer Hijacking Vulnerability

仕組みがわりと凝ってて面白い

http://researchcenter.paloaltonetworks.com/2015/03/android-installer-hijacking-vulnerability-could-expose-android-users-to-malware/

  1. マルウェア作者はまず、SD読み書きとインターネットアクセス権限くらいしかない「権限的には無害っぽい」アプリAを作成し、アプリストア等に上げて被害者インストールさせる (アプリAそのもの無害だこの時点では直接的な被害を及ぼさなし、Google Play での配信でもよい)
  2. 実はこのアプリAは、PackageInstaller の監視をしている。(rooted 端末であれば logcat を見る、そうでなければ /sdcard などの、3rdアプリストアが .apk一時的に置くディレクトリ監視)
  3. 被害者は、1. の作者とは関係のない、全く問題のない野良アプリBをインストールしようとする。この時、アプリBは /sdcard などにいったんダウンロードされ、それを PackageInstaller が読み取って、権限確認等のダイアログを出す。
  4. ここでアプリA は PackageInstallerActivity を検知し、/sdcard に一時的に置かれた「アプリB.apk」を、マルウェアに置き換えてしまう!(ネット越しにダウンロードしてきて上書きしてしまうか、あるいはアプリAに内包されていたマルウェアを取り出し、上書きする)
  5. 被害者が「ふんふんパーミッション問題ないしオッケー!」と思ってインストールボタンを押すと、4. で上書きされたマルウェアを知らないうちにインストールしてしまう!

要するに PackageInstaller が権限チェックするタイミングと、実際にインストールするタイミングの間に、対象の .apk を置き換えてしまうという手法となります。(Google Play ストアからインストール場合は、一時的な .apk は /sdcard などではなく端末内のセキュアな場所に置かれるために、書き換えることができません。)

また Android 4.3 以降は、権限チェック時に AndroidManifest.xmlチェックサムを記録しておき、インストール時にももう一度それを確認するように PackageInstaller が修正されているようです。(一部のベンダの端末では 4.3 でもこのチェックをしていないので脆弱性の影響を受ける)

さらには、4.4 以降であれば、上記のチェックサム確認の他に、そもそもアプリ自由に /sdcard を書き換えることができなくなっているので、.apk を書き換えること自体ができなくなっていますね。

ユーザにできる自衛策としては、Google Play からのみアプリインストールする、といったところでしょうか。

あるいは、/data/local/tmp はアプリからは書き換え可能でしたっけ?

できないのであれば、PC で .apk ファイルダウンロードしたのち、adb install でインストールする、という手もありなのかな。

あ、ちなみに Amazonアプリストアアプリ (ややこしいな) は既にこの問題対処しているようなので、Amazonアプリストアは安心して利用しても大丈夫かと思います

[※2015/03/26 トラバブコメでの指摘に合わせて少々書き直しました]

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

2015-02-02

http://anond.hatelabo.jp/20150202114218

タイトルを適切につけるとか、

内容に合わせたメタ情報を書くとか、

他の真っ当なサイトリンク貼ってもらうとか、

sitemap.xmlとか、

正当なSEO対策もあるでしょ。

それをコンサルして商売になるのか知らないけど。

2014-12-24

イブクリスマスも予定のない俺とみんなのためのエロサイトを作った

作ったサイト

エロ動画を色々なところから収集するサイトです。

skrsvideo

http://skrsv.info/

サーバー選び

今回プログラミング言語Rubyを選択したため、基本的にはVPSクラウド的なサーバーLinuxが動作する環境を探しました。

エロサイト運営するにあたって問題になるのがサーバー選びです。

基本的日本レンタルサーバーではアダルトサイト運用を禁止しています

普段使っているさくらVPSが利用できず、AWSもなんだかグレーな感じ(東京リージョン以外なら・・・?)

そんなわけで探し、GMOグループWebkeepersを使いました。

Webkeepersのサーバー海外にあるらしいです。

質問アダルトサイト運用はできますか?

http://faq.webk.net/faq/index.php?qc=1&qc_sub=4&id=99

使っても良いよ〜というお墨付き

そして価格も手頃だったためここに決定。

システム

DBMariaDB
WebサーバNginx
フレームワークRuby on Rails

MariaDBを選んだ理由はなんとなく、MySQLとの違いはほぼありません。利用するGEMmysql2でいけます

NginxWebサーバで、ページキャッシュもしています

ちなみにJavaScriptは使わずすべてCSSで作る方針しました。

スマホPC対応のためにMedia Queryでレスポンシブにしています

Webの流れ

Nginx

unicorn

Ruby on Rails

MariaDB

という流れです

使っているGEM

gem 'mysql2'

gem 'rails_config'

gem 'kaminari'

gem 'haml-rails'

gem 'sass-rails'

gem 'nokogiri'

gem 'unicorn'

フロントhamlsassで、難しいことはしていないのでcompassはいれませんでした。

あとはデバッグ用にrails_config、pry系が入っています

クローリングスクレイピングでnokogiriを使います

クローラー

skrsvideoでは動画URLを取得するためにクローラーもどきスケジューリングして収集しています

スケジューリングにはcrontabを使用しています

crontabでRakeタスクを定期的に叩きます

コマンドはこんな感じ

RAILS_ENV=production bundle exec rake item:search


Rakeタスクはnokogiriでxvideosへのリンクを集めています

doc = Nokogiri::XML( open(URI.parse(url)).read )

urls = []

doc.css('a').each do |link|

 urls.push link[:href] if link[:href] =~ /xvideos.com\/video(\d+)/

end

Nokogiriのスクレイピングでaタグリンクを取得し、URLxvideosのものかチェックして保存って感じです。

動画を探し終えるとaタグからランダムピックアップし次のページに進んでいきます

動画が見つかったページはドメインDBに記録して、しばらくしたら再びクローリングをするようにし、収集効率化。

サイト機能

(45 min)←コレの安心感は異常wwwwww

http://blog.livedoor.jp/dennououjo/archives/39873075.html

これを思い出して、動画時間を表示するようにしました。

30分以上の表示はちょっと頑張ったところ

http://skrsv.info/30_min_more


AV女優タグが表示されるようになっています

これはタイトル文字列から部分一致で引っかかったものを表示しています

AV女優名前を表示するためにWikipediaからとってきたら、ちょっと膨大な数になってしまったため断念。

どんだけ女優いるんだって感じですね。

DMMランキングに載っていた方だけをとりあえず入れています

タグも同様にDMMから

おわりに

1日でつくろうと思っていたら思った以上にサーバーが見つからないで、サーバー選びに1日かかってしまいました。

あとはFC2とか対応できたらいいなーと思います

2014-07-30

最も簡単なIngress初心者向けガイドを書く

ゲームをやるのに必要ものは?

それなりに新しい(電話のできる)Androidか、それなりに新しいiPhone必要です。持ってないならGmailアカウントを取得する必要があります。一度だけSMS認証必要なので、電話のできない端末は向きません。

そのほか注意点は?

Gmailアカウント本名じゃなくていいです。Google+連携する必要はありません。Google+情報を作ってしまっても(https://support.google.com/plus/answer/1044503?hl=ja)ここら辺参照すると消去の手順があります

IngressCodenameTwitterとかのアカウント名とは異なるものにしておいた方がいいです。

青か緑かについてはどっちでも構いません。もし友人と一緒に遊ぶことを考えているのならその人と合わせた方がいいです。違う色のユーザと(友好的な範囲で)一緒にできることは何一つありません。

初回ゲーム開始したらSMS認証を行う。手順は検索すればたくさん出てくるのでそれを参照。

ゲーム目的

PortalHackするゲームです。

Portalとは?

人の交通が多い地域にあるオモシロ建造物、時計台、駅、郵便局のことです。

人の流れが少ない場合、つまりあなたのおうちの近く、職場の近く、最寄り駅が絶対にポータルである保証はありません。

Hackとは?

Portalに近づいて、スマホの画面に表示されているPortalタップして、Hackボタンを押すことです。つまり、そのPortalの位置まで動かないと絶対にHackできません。

自分と同じ色のPortalHackすればぼちぼちアイテムが手に入り、敵のPortalHackすると、ある程度のアイテムと100APが手に入りますAPとは経験値のことで、これを集めるとレベルが上がります

1つのPortalに対して、5分の休憩を挟んで4回までHackすることができます。再び同じ事ができるようになるためには4時間待つ必要があります

(敵のPortalHackすると)ダメージを受けるとは?

プレイヤーは1000XM持ってます。このXMが減ります。0になるとHackとかできなくなります回復するにはあちらこちら動き回ってください。スマホの画面に見えるキラキラしたものに近づくと回復します。

以上が一番簡単なルールで、敵のポータルを見つける→Hackしてアイテムと100APを取得する→ダメージを受けてXMが減ったらあちらこちら動き回ってXMを回復する、の流れが一番シンプルです。

そういえばアイテムって何?

  • Resonator
    • 運良くResonatorが配置されていない味方のPortalがあればそこに配置することができる。
  • XML Burster
  • Ultra Strike
  • Power Cube
    • うろうろ歩き回らなくてもUSEすればその場でXMが回復する
  • そのほか
    • 持ってるだけで気にしなくていいです。

味方のPortalしかないと経験値を入手できないの?

厳密にはそんなことはありませんが、低レベルのうちはそう考えておくと楽です。

味方のPortalしかない場合どうすればいいの?

様々なケースがあります。まず、Hackする要領でPortalに近づき、画面に映る味方のPortalタップします。その際に……

行動範囲Portal全然ほとんどない場合は?

Ingressで遊ぶために、それに適した(人の多い)場所遠征する必要があります生活圏内の空き時間・移動時間にちょこっと遊んでみたい、みたいな遊び方では何もできません。

自力で申請してPortalを作るというオプションもありますが、iPhone版ではその機能は未実装で、Android版だとしても、現在の所申請に3ヶ月程度かかることが珍しくないので、初心者にはお勧めできません。

そういえばResonatorをRechargeって何?

Resonatorは攻撃を受けるか、時間が経過すると自動的エネルギーが減っていきます。それを回復させる行為です。

RechargeするのにわざわざPortalまでいく必要があるの?

ないです。

PortalHackしたときに(そのHackしたPortalにちなんだ)Portal Keyと言うアイテムが出ることがありますPortal Keyを所持している味方のPortalは、そこに近づかなくても、遠隔で回復をすることができます。XMと、RechargeできるPortalPortal Keyがある限り、どこからでも10AP獲得できるチャンスがあります

Resonatorに攻撃できるの?

しなくていいです。一定以上レベルが高くならないとダメージが入らず無駄なので、しばらくは攻撃する必要はありません。

Portal Keyって他に使い道ないの?

味方のPortalタップしたあと、画面左下のResonatorが8つ全部埋まっている場合Linkってボタンが見えるはずです。それを押して別の味方のPortalを指定すると、まだLink作成されてなければ、その指定したPortalに向かってLinkを伸ばすことができます。313AP獲得できますしかしその際に、Link先となるPortalPortal Keyを消費する事になります

Linkってもしかして陣取りっぽい感じになるの?

Link三角形を作ると、その範囲がControl Fieldと呼ばれる領域になります。そうなると1250AP入手できます

Portal KeyがあればどこでもLinkできるの!?

遠すぎたり、途中で敵味方問わず他のLinkを横切るような感じになってたりすると無理です。また、Control Fieldの中に入ってしまったPortalLinkボタンを押してもLinkできないと言われるようになります

この、Resonatorを配置する作業、Linkを貼る作業、Control Fieldを作る作業が一般的に言われるAP稼ぎの手段ですが、そのどれも常にできるとは限らず、レベルの高い先客がいると初心者には入り込む余地がありません。

以上。初心者はとにかく敵PortalHackすることでアイテム経験値を稼ぐのが分かりやすいと思います。味方PortalはResonatorの配置やLinkの生成でAP取得ができるのですが、先客がいるとできないので、誰でもできるとは考えず、できる地域に住んでいる人だけが可能であると考えるといいです。

2014-06-24

SQLSERVER テーブルのXML型の列へ XMLファイルから取り込む一例

  1. XML宣言のエンコーディングを "utf-16" にする
  2. BOMつきのUTF-16(Unicode)でファイル保存する
  3. 次のようなSQL文を流す

INSERT INTO TBL SELECT TBL.COL FROM OPENROWSET(BULK 'filepath', SINGLE_NCLOB) AS TBL(COL)

他の方法もいろいろあるだろう。ただ、文字コードに関して言及すると、SQL SERVER の内部データUCS-2UTF-16のサブセット)なので、合わせておいたほうが無難UTF-16以外で取り込もうとすると、日本語付近で "XML 文字が無効です" などとエラーになる場合が多い(もちろん原因は何かあるのだろうが、調べてもさっぱり私には見当がつかない。時間の浪費はいやずら)。

'filepath'は、SQL SERVERインスタンスが動いているマシンにとってのファイルパスね。'E:\???\???.xml'や'\\filesvr01\shared\data\???.xml'とか。

SELECT COL.query('/ELEM/NODE') FROM TBL など、あとはいろいろクエリーしてみてくれ。

感謝

2014-05-02

http://anond.hatelabo.jp/20140502211413

学生よりも先に親に教えろとはいつも思う

とりあえずルーターフィルタリングくらいは仕組み的な部分は理解しなくて良いからポンッと設定できるくらいにはなって欲しい

別にXMLがどうのとか知らんでもMSOfficeは使える

そんな感じで仕組み理解しなくて良いから親はルーターフィルタリングくらいはできるようになるべき

2014-03-06

http://anond.hatelabo.jp/20140306130434

元増田です。

なるほど、そういうDBがあるのか。

XML的なデータ構造JSON記述し、プロセス間通信等で使えば実装が楽なのは経験済みだし、ハッシュちょっとしたデータ構造の構築・操作に重宝していた。

そういうのをまんまDBに格納できるのであれば、また一つ引き出しが増えて更に楽できそうだ。

なんともありがたい。

2014-02-19

http://anond.hatelabo.jp/20140219000741

言語は何か

ExcelVBAを使え。

 

xmlの反映のさせ方

XMLパーサを使え。

 

・どう呼び出すか

XmlHttpRequestを使え。

 

……と言いたいところだが、お前には無理だ。

だがそれでも目的のものを楽に作る方法はある。何がやりたいかを明確にして

人力検索はてなに「こういうExcelマクロを作ってほしい」という質問を出すんだ。

 

そうすりゃ暇人仕事中の息抜きに作ってくれる。

2013-12-10

ホントIT向き?

発達障害者に向いていると言われる職業として、ほぼ必ず、真っ先に挙げられるものの一つがプログラマだ。

しかしこれ、本当にそうなのか?と思う部分がある。


はいえ、アスペならまあ分かる。

興味があることについては過剰なくらい品質を追求するので、裏を返せば確実な仕事約束される。

また問題を確かに理解したと納得できるまで、見積もりを出す段階から大きな抵抗を示す人達なので、彼の受け持ちが炎上する確率も低い。

視野が狭いから発想が貧困システム元ネタになる企画が出にくいとか、計画は基本守られないとか、社会性の問題から客先に出せねーとか、色々欠点はあるけど、それでもハサミよりは使いようがあるだろう。


問題はADD/ADHD

彼らの特徴はとにかく忘れやすい、他の事に手を付けると、それまでやっていた事を綺麗さっぱり忘れてしまう。

からマルチタスクの塊である家事なんてやらせたら、最悪キッチンにかけた鍋のことを忘れて火事になる可能性も。

そこまで行かなくても、部屋の片付けを始めたらエンドレスになってジ・エンドとか、当事者なら確実に経験済みなはず。


そんな彼らにプログラマが務まるなんて、どうしても想像できない。


しろ今どきの開発は、プログラムの前提になる知識が多岐にわたる。

例えば流行りのWeb系の場合、最低でもLinuxApacheアプリケーションサーバDBなどのインフラ周りからHTMLJavaScriptCSSXMLSQLサーバサイド言語(JavaとかPHPとか色々)まで、体系立てて覚えなければならない。

その上で、最終的には自分が作るシステムが稼働する環境を自力で組み立てられて、実装と稼働後の運用が楽になる設計が出来て、セキュアでシンプルかつ力強いコードが書けないといけない。


でも彼らは何か新しい知識を覚える段階で、覚えるそばからそれまで覚えた事をどんどん忘れてしまう可能性が高い。

更にコードを書いた日には、凄まじく書き散らかった、バグだらけの代物が出来るだろう。

そんなこんなでいつまで経っても半人前から抜け出せないんじゃね?と思ってしまう。

まり高度な内容に踏み込む遥か手前で詰むのがオチではないかと思うわけで。


実際、ADHD傾向の人でプログラマ天職という人がいたら会ってみたいものだ。

2013-12-04

http://anond.hatelabo.jp/20131204161949

RDBジョーク飛ばすくらいだったら、eXist-dbとかXindiceとかのXML DBジョークを言ったほうがまだ笑いがとれるんじゃない?

2013-12-02

http://anond.hatelabo.jp/20131202163523

普通に出来るよ?

下のURLでOK。

http://feedly.com/index.html#subscription/feed/http://staff.hatenablog.com/rss

適当RSSページで実行すれば登録してくれるブックマークレット:

javascript:void(d=document);void(el=d.getElementsByTagName('link'));void(g=false);for(i=0;i<el.length;i++){if(el[i].getAttribute('rel').indexOf('alternate')!=-1){ty=el[i].getAttribute('type');if(ty.indexOf('application/rss+xml')!=-1||ty.indexOf('text/xml')!=-1){g=true;h=el[i].getAttribute('href');break;}}};if(g){void(location.href='http://cloud.feedly.com/#subscription'+encodeURIComponent('/feed/')+encodeURIComponent(h));};if(!g){window.alert('Could%20not%20find%20the%20RSS%20Feed');};</p>

2013-09-05

GOMPlayerの広告を削除する方法デフォルトスキン GOM 2.2版)

GOMPlayerのデフォルトスキンGOM 2.2が広告が多くで使いにくいので広告を表示しないようにする方法メモ

まず以下のファイルを開きます (環境によって場所が違う場合があります)

C:\Program Files\GRETECH\GomPlayer\skins\gom2013\SKIN.XML

このファイル編集していきます (元に戻すためバックアップは忘れずに♪)



中の以下の行を削除してください


122行目の ShowControl("CONTROLID_INFO", 1); を削除

124行目の ShowControl("ID_AD_HTML", 0); を削除

132行目の ShowControl("CONTROLID_INFO", 0); を削除

134行目の ShowControl("ID_AD_HTML", 1); を削除

154行目から ShowControl("BTN_CHANNEL_TOGGLE_R", 0);

160行目の ShowControl("STATIC_CHANNEL_TOGGLE", 1); までを削除

164行目から ShowControl("BTN_CHANNEL_TOGGLE_R", 1);

170行目の ShowControl("STATIC_CHANNEL_TOGGLE", 0); までを削除

319行目の <ButtonControl CMD="ID_CHANNEL_TOGGLESHOW"~~/> を削除

320行目の <ButtonControl ID="BTN_CHANNEL_TOGGLE_OPEN"~~/> を削除

363行目から <StaticControl ID="ID_AD_HTML_STATIC"~~/>

366行目の </StaticControl>までを削除

386行目の <ButtonControl CMD="ID_CHANNEL_TOGGLESHOW"~~/> を削除

387行目の <ButtonControl ID="BTN_CHANNEL_TOGGLE_R"~~/> を削除

395行目の <StaticControl CID="CONTROLID_LOGO"~~/> を削除

396行目の </StaticControl> を削除


以上の箇所の行を削除すれば広告を消えているはずです。

2013-08-12

RDF記述フォーマット

最近はやりのLOD(Linked Open Data)のデータフォーマットについてメモ

例はWikipediaコピペもっと違いが分かりやすい例があると良いのだが。

XML

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
  <rdf:Description rdf:about="http://en.wikipedia.org/wiki/Tony_Benn">
    <dc:title>Tony Benn</dc:title>
    <dc:publisher>Wikipedia</dc:publisher>
  </rdf:Description>
</rdf:RDF>

N3: notation3

@prefix dc: <http://purl.org/dc/elements/1.1/>.

<http://en.wikipedia.org/wiki/Tony_Benn>
  dc:title "Tony Benn";
  dc:publisher "Wikipedia".

Turtle: Terse RDF Triple Language

@prefix dc: <http://purl.org/dc/elements/1.1/>.

<http://en.wikipedia.org/wiki/Tony_Benn>
  dc:title "Tony Benn";
  dc:publisher "Wikipedia".

N-Triples

<http://en.wikipedia.org/wiki/Tony_Benn> <http://purl.org/dc/elements/1.1/title> "Tony Benn".
<http://en.wikipedia.org/wiki/Tony_Benn> <http://purl.org/dc/elements/1.1/publisher> "Wikipedia".

N-Quads: Extending N-Triples with Context

<http://en.wikipedia.org/wiki/Tony_Benn> <http://purl.org/dc/elements/1.1/title> "Tony Benn" <http://en.wikipedia.org/wiki/Tony_Benn>.
<http://en.wikipedia.org/wiki/Tony_Benn> <http://purl.org/dc/elements/1.1/publisher> "Wikipedia" <http://en.wikipedia.org/wiki/Tony_Benn>.

JSON-LD

{
  "@context":
  {
    "dc": "http://purl.org/dc/elements/1.1/"
  },
  "@id": "http://en.wikipedia.org/wiki/Tony_Benn",
  "dc:title": "Tony Benn",
  "dc:publisher": "Wikipedia"
}

2013-06-08

http://anond.hatelabo.jp/20130608120106

PAAPIが返すXMLパースしているだけではなく、見せ方がカッコイイ!!しかも高速。

2013-03-23

つの時代ソフトウェア工学の話だよ

http://d.hatena.ne.jp/nowokay/20130322#1363969460

以下の記述のまとめ:

お前の言っているソフトウェア工学は今のソフトウェア工学じゃねえよ.

端的に言うとそんだけ.

で,本題.

まず,書いてる内容が古すぎて救いがたい.iPS細胞研究ノーベル賞取った現状で,「実験材料に受精卵を使う万能細胞研究なんて許されませんよ!」と主張されても,その何だ,困る,とかそういうの.

1999年、なにがあったかというと、XPエクストリーム・プログラミング入門という本が発行されたのです。リンク先は2版ですが、日本語版でも初版2000年12月になっています

ここからソフトウェア工学ガラガラ崩れた気がしています

で,何?2000年以降ソフトウェア工学が何も進んでないと主張したいの?

特に学術的にソフトウェア工学に触れたことはない

って最初に書いてあんのに,そこから崩れて何も出てきてないって主張はどっから出てきたの?自分が知らないことが分かってるのにドヤ顔提言とか大丈夫か?

しかし、結局統一設計手法は完成せず、UMLけが残りました。実際に使われているのはその一部です。CORBAも普及せず、WebプロトコルにあわせてSOAPが出てきたものの、結局単純なRESTが定着しました。XMLはいまは毛嫌いされています大成功したはずのオブジェクト指向も、Webアプリではうまく適用できませんでした。

から何だ.提案されても使いにくかったり,状況自体が変化したら無用になるに決まってる.まさかソフトウェア工学分野で提案された手法はどれだけ開発環境が変わっても生き延びていなければならない」とかい寝言じみた主張でもしたいのか?言語流行廃りがあるように,手法にも流行廃りはあるに決まってるだろ.

あとSOAPXMLに関しては,その衰退過程自体がよくある話すぎて話にならん.一番最初に厳格な重量級の様式が定められて,それをベース運用レベル考慮した軽量級の様式が定義されて駆動するってのはよくある話.言い換えると,学術から出てきた理論的に正しい手法が,産業界必要なところだけつまみ食いされる形で運用されるとか,サンプルは死ぬほどそこらじゅうに転がってねえか?

ああ,CORBAはまあ,うん,そのなんだ.アレはフォローできない.

実際のところ,UMLが残っただけで十分じゃねえの?最初に提案された時の理念さえブレてなければ,つまみ食いしたモノがはやってても提案者的には本望だろ.

そしてCMMもいま特に話題になることもありません。

今はCMMIだ.CMM2000年CMMI統合されてる.今更XPの本出してくるところといい,真面目に2000年より前で知識止まってんだな.

また、動的型付言語の普及も、ソフトウェア工学離れのひとつであると言う事ができるかもしれません。

はぁ?動的型付言語が普及したらなんでソフトウェア工学と離れんのよ?静的型付言語で使えて,動的型付で使えなくなる研究分野なんぞ,完全にソースコードに寄り添った研究だけじゃねえか.

「この手法C言語を対象としている」って書いてある研究は他の全ての言語には一切適用できないと主張してんのと一緒だ.はじめてのCあたりからやり直せ.

ここで、やはりCMMの失敗がソフトウェア工学にとっての痛手だったように見えます

もちろん、プロセスを規定することが難しいということは当時からも言われていました。それであるからCMMプロセスのものを規定するのではなく、プロセスの規定方法を規定するというメタプロセスになっていたのです。

そして、すべての組織で同じプロセス採用することはできないということから、5段階のレベルを設けました。また、プロセスは変化し続けなければいけないということからCMM成熟レベル5では「最適化している」という成熟度になっていました。

これはなかなかいいかもしれないということで、期待は大きかったと思います

でも、とにかく運用が大変だとか、CMM成熟レベル5でも品質いいわけじゃないとか、そういう話がきこえてくるようになりました。

まず失敗を定義しろ.で,失敗したってんなら,CMMIで未だに新たな認定がなされてる(http://cmmiinstitute.com/assets/presentations/2012SepCMMI.pdf)理由を説明しろ

で,運用が大変?当たり前だ.品質確保すんのに運用が楽とかあり得んだろ.従業員に好きにやらせてもアウトプットが高品質ならそもそもCMMIなんぞ必要無い.順序が逆だ.「CMM成熟レベル5でも品質いいわけじゃない」ってのも当然だ.アレは組織成熟度を評価する指標であって,中で働く人間能力を評価してるわけじゃない.というか流動すんのに評価なんぞできねえけど.

そもそも,CMMIレベル5ってのはおおむね高品質ものが出てくるだけで,人間が関わっている以上ある程度のばらつきは存在する.つーかさー,CMMIレベル5なら必ず高品質のモノが出てくるとか思ってんの?まさかまだ銀の弾丸存在を信じてんの?「ISO9001に準拠してればリコールなんて発生しない!」と思い込むくらい残念すぎねえか,その思考回路

ああ,「CMMI」じゃなくて本気で「CMM」の話をしてるんなら申し訳ない.もう無いんだからCMMの話を最近全く聞かないのは当然で,勘違いしても仕方ない.悪いもしくは古いのはアンタの頭だ.

そこにXPですよ。アジャイルですよ。

もともとソフトウェア工学に対しては「がっこーで現場しらない人が研究してる手法なんて使えない」のような声があったのですが、XPアジャイルによって「現場から生まれた手法のほうが使えるよねー」というのが決定的になりました。

前半は正しい.ソフトウェア工学最初からずっとその手の意見はあって,未だに言われてる.が,後半は話にならん.

真面目に聞くんだけど,アジャイルソフトウェア開発宣言に名前が入ってる17人のうち,何人知ってる?何人が開発寄りで,何人が研究寄りか分かる?まさかKent Beck1人を見て「アジャイル現場から!」とか寝言垂れて無いよな?そもそもKent Beckコンピュータサイエンス博士号持ってるし,開発寄りと主張していいのかどうかすら微妙なんだけど.

あとアジャイルも突発的に出てきたわけじゃなくて,プロトタイピングとかあの辺(とそれ以前)からの流れがあると思うんだけどなあ.

ソフトウェア工学が何を失敗しているかというと、その学問自体の認知度が低すぎることです。

ソフトウェア工学がどのような問題を扱う学問かが知られていない。どのような問題を扱う学問か知られていないので、その問題に直面している人がソフトウェア工学の成果を積極的には利用できない。

ああ,まあ,うん,認知の低さは同意します.

問題に直面してる人がソフトウェア工学の成果を積極的に利用できないうんぬんについては,最近の国際会議でもその辺を扱った研究が出てきてたりする.ICSE2012のDistingished paperのうちの1本がそんなん.Eclipse検索ツール使わずに,テキストエディタコピペしてCtrl+F使ってる人の話とか出てきてた覚えが.

ただ,ソフトウェア工学認知度なんぞどうでもいいと思うんだけどなあ,別に.そっから出てきたモノが使われさえしてりゃあ.ソフトウェア工学研究の成果が,それと分からずに使われてるんならそれ以上に望むべきモノは無いだろうに.「これがソフトウェア工学様の研究成果でござーい」と大上段に振りかぶって,「ありがたや」の言葉と共に使われることを望んでる研究者なんぞいねえだろ.

就職活動で「半年プログラムは覚えれるし専門は必要ない」のようなことを言われるという話があります。たしかアルゴリズムなど実装技術研究をしていた人をSIの開発現場で生かすのは難しいと思います。でも、ソフトウェア工学の専門知識は、半年で覚えれるものではないし、SIでの開発現場必要になるはずです。

うん,そうですね.だがそれを学術側を知ろうともしてない人間が言うな.

ソフトウェア開発がある限り、ソフトウェア工学必要なので、XPアジャイルを織り込んで再構築して、認知度を高めていってほしいなーと思います。再構築とかは他力本願になってしまうけど。

ソフトウェア工学を再構築しよう,という動きとしては http://semat.org/ あたりがあるのでそっち参照.

あとさー,そもそも論として,ソフトウェア工学研究内容を「現場」と「学術」に2分することが不可能だって分かってる?工学ってそういうもんだろ?その2分は「工学」と「理学」というレベルでは可能なのであって,既に工学カテゴライズされてるソフトウェア工学を分けるのは不可能だ.それくらいは語の定義レベルの話なんで,分かっててくれ,頼む.

まあ暇ならトップ会議であるところのICSEプログラムhttps://files.ifi.uzh.ch/icseweb/fileadmin/downloads/ICSE2012_conference_program.pdf)でも眺めてみて,ソフトウェア工学定義について悩んでみるのもいいかと思います

実際のところトピックは割と流動的.最近OSS周りが流行gitのおかげで開発者の行動とか取りやすくなってる関係もあって.

まりさー,なんでか知らんけど,この人の頭ん中では「ソフトウェア工学は静的型付言語を利用したウォーターフォール型開発でしか使えない」てことになってんだよな.

あと,なんか無理矢理にでもソフトウェア工学disりたくてしょうがないってことは分かった.

釣りにしても書いた人間の知識が足りる足りない以前のレベル過ぎて話にならん.

2013-01-22

http://anond.hatelabo.jp/20130122163033

XML文法」と書いてるんでHTMLXMLの区別は付いてそう。ってことは釣りか。

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