ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

理研調査委にまた疑義 研究者3人

2014-05-01 23:25:03 | Weblog
小保方さんのこととか調べる前に、理研の偉い人から
順番に調べていったほうが、よくね?

小保方さんよりはるかに偉い人が、疑惑があるようじゃあ、
これは、もっともっと責任重大でしょう・・・

「だれも画像の切り張りや使い回しをやっていないものから、
 小保方さんを裁きなさい!」

・・・って言って、誰もいなくなったら・・・(^^;)


STAP論文:理研調査委にまた疑義 研究者3人
http://news.goo.ne.jp/article/mainichi/nation/20140502k0000m040069000c.html


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Struts1からStruts2への移行方法 -その2:struts2に移行(struts2のソース)

2014-05-01 18:47:10 | JavaとWeb
先ほどの

Struts1からStruts2への移行方法 -その1:お題(struts1の場合)
http://blog.goo.ne.jp/xmldtp/e/243939338fda96dab7057d0afce7f842

のつづき。
上記エントリでは、struts1.xのソースを示したが、
今回はそれを、Struts2に移行した場合の完成品のソースを示す。

まず、上記の「その1」をStruts2に移行した
完成品のソースは、以下のものとなる

・JSP
 index.jsp,ans.jsp)

・設定ファイル
(WEB-INFの下) web.xml
(WEB-INF/classesの下)  struts.xml(struts-conf.xmlとおき場所が違うので注意!)

・プログラムファイル
 TashizanBean.java

また、ライブラリ

を置き換えないといけない。
今回は、以下にソースを載せ、ライブラリ置き換えについて等は、
次エントリで説明する。

●index.jsp
<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<HEAD>
<TITLE>HelloTest</TITLE>
</HEAD>
<BODY>
<s:form action="tashizan.action"  theme="simple">
	<s:textfield name="add1"/>+<s:textfield name="add2"/>
	<br/>
	<s:submit type="button"  value="実行" />
</s:form>
</BODY>
<html>



●ans.jsp

<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<HTML>
<HEAD>
<TITLE>足し算</TITLE>
</HEAD>
<BODY>
<s:property value="#session.ans"/><BR>
<A HREF="index.jsp">戻る</A>
</BODY>
</HTML>



●web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>Struts Blank</display-name>

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>

</web-app>


●struts.xml(struts-conf.xmlとおき場所が違うので注意!)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<package name="tashizans2" namespace="/" extends="struts-default">
<action name="tashizan" class="struts2test.TashizanBean">
<result name="success">/ans.jsp</result>
</action>
</package>

</struts>



●TashizanBean.java

package struts2test;
import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;

public class TashizanBean extends ActionSupport implements SessionAware {
// TashizanActionFormに相当
private String add1;
private String add2;
public String getAdd1() {
return add1;
}


public void setAdd1(String add1) {
this.add1 = add1;
}


public String getAdd2() {
return add2;
}


public void setAdd2(String add2) {
this.add2 = add2;
}


private Map session;
public void setSession(Map session) {
this.session = session;
}


public String execute()
{
//======================================//
// 入力 //
//======================================//
// 引数取得
// セッションの取得

//======================================//
// 処理 //
//======================================//
int su1=0,su2=0;
try
{
if ( add1 != null)
{
su1=Integer.parseInt(add1);
}
}
catch(Exception e)
{
}
try
{
if ( add2 != null)
{
su2=Integer.parseInt(add2);
}
}
catch(Exception e)
{
}

int ans = su1+su2; // 足す



//======================================//
// 出力 //
//======================================//
// セッション書き出し
session.put("ans", String.valueOf(ans));

return SUCCESS;
}


}


(TashizanAction.javaとTashizanActionForm.javaをあわせたもの)

次エントリでは、上記移行の手順について、簡単に触れる

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Struts1からStruts2への移行方法 -その1:お題(struts1の場合)

2014-05-01 16:46:30 | JavaとWeb
Struts1の脆弱性の問題

Struts1.X系に脆弱性の続きーもとはStruts2系の脆弱性(中間報告:その1)
http://blog.goo.ne.jp/xmldtp/e/eaeeba0f8c4a6ed91d832e79068557c2

を書いてから、Struts1からStruts2への移行に、皆さん関心あるらしく、

StrutsとStruts 2の違いを、必要なファイルの立場から見る
http://blog.goo.ne.jp/xmldtp/e/b2b5f4f3904834f210e1ba0d3f45c8ac?fm=entry_awp

のアクセスが増えている。

しかし、実は、そこに書かれているよりも、移行には、かなりの手間がかかるので、
ものすごく簡単な例を挙げて、それでもこんだけ大変なんだよというのを示す。

結論から言ってしまうと、
今、脆弱性を対処する方法については、このブログでもわかりにくく
あるいは、分かりやすく書かれているサイトがあるので、それに沿って暫定対処し、
Struts以外の移行も含めて、時間をとって考えたほうがいい。
3分クッキングのように簡単にはいかない。

以下、移行方法を記す




■お題

Struts1で作成した足し算サイト

と入力すると

と書き出すサイトについて考える




■Struts1の場合のリソース

Struts1では、
・JSP
 index.jsp,ans.jsp(回答)

・設定ファイル(WEB-INFの下)
 struts-config.xml
 web.xml(一般には書き換えない/脆弱性のためには修正必要)

・プログラムファイル
 TashizanActionForm,TashizanAction

が必要になる。
ここで、web.xml以外の上記ファイルについて、以下に示す。

●index.jsp
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ page contentType="text/html; charset=utf-8" %>
<html:html>
<HEAD>
<TITLE>HelloTest</TITLE>
</HEAD>
<BODY>
<html:form action="/tashizan">
<html:text property="add1" />+<html:text property="add2" />
<BR/>
<html:submit property="submit" value="実行"/>
</html:form>
</BODY>
</html:html>


●add.jsp

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ page contentType="text/html; charset=utf-8" %>

<HTML>
<HEAD>
<TITLE>足し算</TITLE>
</HEAD>
<BODY>
<bean:write name="ans" /><BR>
<A HREF="index.jsp">戻る</A>
</BODY>
</HTML>


●struts-config.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>

<!-- ================================================ Form Bean Definitions -->

<form-beans>
<form-bean name="TashizanForm" type="struts1test.TashizanActionForm"/>
</form-beans>

<!-- =========================================== Action Mapping Definitions -->

<action-mappings>
<action path="/tashizan"
type="struts1test.TashizanAction"
name="TashizanForm" validate="false">
<forward name="success" path="/ans.jsp"/>
</action>
</action-mappings>

</struts-config>


●TashizanActionForm.java

package struts1test;
import org.apache.struts.action.ActionForm;
public class TashizanActionForm extends ActionForm {

private String add1;
private String add2;

public String getAdd1() {
return add1;
}
public void setAdd1(String add1) {
this.add1 = add1;
}
public String getAdd2() {
return add2;
}
public void setAdd2(String add2) {
this.add2 = add2;
}

}


●TashizanAction.java

package struts1test;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class TashizanAction extends Action {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {

//======================================//
// 入力 //
//================================//
// 引数取得
TashizanActionForm myForm = (TashizanActionForm)form;
String add1 = myForm.getAdd1();
String add2 = myForm.getAdd2();

// セッションの取得
HttpSession session = request.getSession(true);


//======================================//
// 処理 //
//======================================//
int su1=0,su2=0;
try
{
if ( add1 != null)
{
su1=Integer.parseInt(add1);
}
}
catch(Exception e)
{
}
try
{
if ( add2 != null)
{
su2=Integer.parseInt(add2);
}
}
catch(Exception e)
{
}

int ans = su1+su2; // 足す


//======================================//
// 出力 //
//==================================//
// セッション書き出し
session.setAttribute("ans", String.valueOf(ans));

return (mapping.findForward("success"));
}
}





■Struts2での変更箇所
・JSPは、タグが変わる(s:で始まるタグになる)
・struts-configの内容をstruts.xmlで記述
・TashizanActionFormの内容をTashizanActionに記述
・TashizanActionのセッション処理が変わる(sessionAware)反面、
 パラメータは意識しなくてよいように修正
・web.xmlは入れ替え
・libの内容も入れ替え

つまり、全ファイル修正(^^;)

修正結果は、次エントリ(その2)で

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

クラウドの中で始まった大変化の真相

2014-05-01 12:37:30 | Weblog
4月25日に聞いてきた

日経コンピューターサミット2014
~なぜこの技術に注目するのか~

つぎは、日経コンピュータ 中田記者による

次なる「ITカンブリア爆発」に備えよ
クラウドの中で始まった大変化の真相

をメモメモ




カンブリア爆発
・カンブリア紀:5億4200万年から5億3000万年に
 突如として多種多様な生物
  →進化を加速

なぜITが今後爆発的に進化するのか
・クラウドとはITの利用モデルが電力と同じになること
  →ニコラス・カー
・巨大資本の電力会社が生まれるコトで、電力に関連する
 技術は爆発的に進化した
・しかもその技術進化は、ユーザーが知らないうちに発生した
・ITでも、電力と同じことが今後起きる

グーグル今年四半期2500億円を設備に投資
1年間7200億円→1兆??

クラウドではすでにおきた爆発的な技術進化
・分散コンピューティング/ビッグデータ
  Google、Amazonのストレージがすごい理由
  OSS(Hadoop)を介して一般企業に波及
・省電力型データセンター
  これもGoogle,Amazon,続いてMS
  Open Compute Projectを通じて普及?
・Software Defined Network(SDN)
  Amazon,Googleでは当たり前
  AmazonVPC→にしら→VMWere
・機械学習
  ディープラーニング
 機械学習のアクセラレーターとして量子コンピューター

Googleの最近のサービス
 YouTubeの手ぶれ防止
 Google+の写真機能
 Google Tango:スマホで
  →自動運転自動車:らいざー
Googleやばい
・2009年ぐらいからGoogleの論文発表の内容が急変
・大規模Machine Learning系ばかりになる
・「機械学習」革命だ!

機械学習の何が革命?
・知性を実現する「アルゴリズム」を自動的に生成
 コンピューター将棋、プロ棋士に勝つ
  →機械学習に悔しがる:アルゴリズムも機械学習

・局面のモデル化→重みをつける:評価関数をつくる
・ディープラーニング:特徴も

Googleは言葉をベクトル化
・コーパスを「Word2vec」で学習(無償で公開)
・意味をかってにつける
・言葉と言葉を計算する
  King-Man+Woman=Queen
  Paris-France+Itally=Roma

第一段階(これまで)
 人間がコンピューターに意味やパターン、ルールを教える
  (プログラム)

第二段階
 機械が人間のやり方を学ぶ

第三段階
 コンピューターが人間に頼らずにデータを学び
 意味づけする

機械学習を超高速処理 量子コンピューター
D-Wave:カナダ政府CIA,ジェフベソス

今後の注目ポイント
クラウドからオンプレミス
この流れはもはや動かし硬い
分散コンピューティング
ビッグデータ
SDN

ホワイトボックス・スイッチ
  スイッチのサーバー化
  サーバー、ストレージ、ネットワークという役割の終端
  スイッチで業務アプリを動かす
  エッジ・コンピューティング
  フォグ・コンピューティング(CISCO)の台頭
 IoTのデータ:エッジで→スイッチで

ストレージ
  磁気テープ、まさかの復権
  Google:磁気テープライブラリ
  ブルーレイ:まさかの復権
  Powerプロセッサ?Open Power Foundation→Googleが。。?

本当に難しい時間がやってくる
・ニコラスカー
・2003IT doesn't Matter
  →ITは競争差別化にならない?
・Google,Amazonは?
・よそから買ってこれるITは、差別化要素にならないう
・競争差別化要因になりえるITのレベルが急上昇
・他人がやってない
 事例が役に立たない
 難しいことに挑む
 優秀な技術者だけでなく、研究者(数学・物理)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「Internet Explorer」の脆弱性、日本人ユーザーが対策ソフト公開 (3:20追加)

2014-05-01 03:01:09 | ネットワーク
ここの記事

「Internet Explorer」の脆弱性、日本人ユーザーが対策ソフト公開
http://japan.cnet.com/news/service/35047268/


上記の記事を、実は下記のサイトを見て知ったんだけど・・

深刻な脆弱性が見つかったInternet Explorer(IE6~11)を巡り全国各地の社内がコントでカオス
http://kabumatome.doorblog.jp/archives/65790944.html

やばい、面白すぎる・・・

以下、3:20追加

でも、以下の回避策(VMLの無効化、拡張保護モードを有効)のほうが、わかりやすく手っ取り早いかも?


[回避策まとめ] セキュリティ アドバイザリ 2963983 – Internet Explorer の脆弱性により、リモートでコードが実行される
http://blogs.technet.com/b/jpsecurity/archive/2014/04/30/workarounds-for-security-advisory-2963983.aspx


ついでに

更新:Internet Explorer の脆弱性対策について(CVE-2014-1776)
http://www.ipa.go.jp/security/ciadr/vul/20140428-ms.html

(上記を読まなくても、やるべきことがわかる)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする