投稿者「nfi」のアーカイブ

MNP転出手数料の無料化や頭金廃止

総務省、MNP転出手数料の無料化や「頭金」廃止を今秋にも制度化

総務省の有識者会議は9月7日、携帯電話の番号ポータビリティ(MNP)転出時の手数料の無料化、携帯電話ショップで端末購入時に設定される「頭金」の是正を盛り込んだ報告書案を了承しました。今秋にもガイドラインが改正される見込みです。
MNP転出手数料、Web手続きなら無料に
総務省の有識者会議「電気通信市場検証会議」内の検討部会「競争ルールの検証に関するWG」は、9月7日に開催した会合で、これまでの検討内容を取りまとめた報告書の案を了承しました。

了承された「競争ルールの検証に関する報告書 2020」の案では、2019年10月の電気通信事業法改正の効果や影響を検証したものです。

報告書案では、MNP転出時に、転出元の事業者が利用者から徴収している3,000円の手数料について、単純解約には手数料が徴収されないことを踏まえ、Webでの手続きについて「無料で利用できる環境を構築することが適当」としています。

また、高齢者などWebで手続きできない利用者が店頭や電話で手続きする際のMNP手数料は「1,000円以下とするのが適当」としています。

報告書案では、MNP手数料の引き下げはMNO(キャリア)のほかMVNOも対象とすべき、としています。
店頭購入時の「頭金」の是正を求める
携帯電話ショップの大多数を占める、代理店の店頭でスマートフォンを購入する際に設定されている「頭金」については、端末価格に上乗せされる代理店の利益を「頭金」と称しているもので、自動車や住宅の分割購入時に支払うものとは意味が異なり利用者の誤解や混乱を招いていると指摘し、廃止を促しています。

また、一部の代理店では一括購入時にも「頭金」が発生するような表示がある問題も挙げています。

報告書案では、「頭金」を利用者の混乱を招く原因として是正を求めています。
今秋にもガイドライン改正
総務省は今後、一般からパブリックコメントとして意見を募ったうえで、2020年秋以降にガイドラインを改正する方針です。

最近では、自民党総裁選に出馬表明した菅義偉官房長官が主要な政策の一つとして「携帯電話料金の引き下げ」を掲げて注目を集めました。

Source:総務省, 日本経済新聞
(hato)

2020年9月8日 08時23分
https://iphone-mania.jp/news-311401/ 参照

TikTokって誰が作ったんですか?

中国にある「ByteDance(字節跳動)」という会社
/現在はBYTEMODに改称

現在は日本に拠点もある
https://www.tiktokv.com/jp/info/

中国では「Douyin(抖音)」としてのほうが有名

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10185392735 引用

Java開発環境構築8(挫折)

※Java開発環境構築7で「次はデータをデータベースに保存できるようにする。」と言ったが、結果的に実現できなかった。
理由は、MySQLがデフォルトでSSL接続を要求しているためだということはわかっている。試行錯誤の上、いったんあきらめることとした。
失敗に終わっている過程を示しておく。皆様に自分のスキル不足をお詫びする。申し訳ございません。

Java開発環境構築5に作成したデータベースmydbに、記事の保存用のtopicという名前のテーブルを作成する。

Enter password: hoge
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 8.0.21 MySQL Community Server – GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

〇テーブルの作成
MySQLのクライアントを起動し、「USE mydb」でデータベースmydbを選択し、次のCREATE文を実行する。また動作確認用に1行データをINSERTしておく。

mysql> USE mydb;
Database changed
mysql> CREATE TABLE topic(
-> ID INTEGER NOT NULL AUTO_INCREMENT,
-> TITLE VARCHAR(100),
-> CONTENT VARCHAR(200),
-> POST_DATE TIMESTAMP NOT NULL,
-> PRIMARY KEY(ID)
-> );
Query OK, 0 rows affected (1.21 sec)

mysql> INSERT INTO topic(TITLE, CONTENT) VALUES(‘テスト’, ‘テストです’);
ERROR 1364 (HY000): Field ‘POST_DATE’ doesn’t have a default value
mysql>

「ERROR 1364」はMySQLのバージョンが変わったために起きたエラーなので、
設定ファイルを見つけようとしましたが、私には見つからず、ここでは

mysql> INSERT INTO topic(TITLE, CONTENT, POST_DATE) VALUES(‘テスト’, ‘テストです’, ‘2020-08-27 14:32:00’);
Query OK, 1 row affected (0.09 sec)

というように、仮の値を入れて対応してみた。

mysql> SELECT * FROM topic;
+—-+——–+————+———————+
| ID | TITLE | CONTENT | POST_DATE |
+—-+——–+————+———————+
| 1 | テスト | テストです | 2020-08-27 14:32:00 |
+—-+——–+————+———————+
1 row in set (0.03 sec)

mysql>exit

〇保存処理の追加
ここでは、Java開発環境構築7に作成した「SampleWeb0003」プロジェクトをコピー・ペーストして作業を進める。「パッケージ・エクスプローラー」ビュー上で、「SampleWeb0003」プロジェクトを右クリック→[コピー]する。そして、同ビュー上で右クリック→[貼り付け]する。プロジェクト名を「SampleWeb0004」として「コピー」を押す。

コンテキスト設定が「SampleWeb0003」プロジェクトと同じにならないよう、「SampleWeb0004」プロジェクト上で右クリック→[プロパティー]を選択し、「Webプロジェクトの設定」パネルで、「コンテキスト・ルート」を「SampleWeb0004」に変更する。

Webアプリケーションをサーバ上で動作させるために、このプロジェクトをWTPのサーバに設定する必要がある。「サーバー」ビューで「ローカル・ホストの Tomcat v9.0」サーバを選択し、右クリック→[追加および除去]を選択。次の画面で使用可能なプロジェクトの「SampleWeb0004」を選択し、「追加」ボタンを押す。「完了」を押して画面を閉じる。この操作を行わないと、このWEBアプリケーションは動作しないので、注意する。

〇変更するファイルの概要
「SampleWeb0004」プロジェクトに変更・追加するファイルは「JDBCドライバ」と「データベースとの接続処理を行うクラス」と「保存処理を追加するクラス」となる。

〇JDBCドライバの配置
「C:\Program Files (x86)\MySQL\Connector J 5.1\mysql-connector-java-5.1.49-bin.jar」をコピーし、「SampleWeb0004/WebContent/WEB-INF/lib」以下に配置する。

〇ConnectionManager.java
Java開発環境構築6で作成したものと同じで、パッケージ名だけ、「hoge」から「blog」となる。

package blog;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
* シンプルなコネクション管理クラス
*/
public class ConnectionManager {
/**
* JDBCドライバのクラス名
*/
final static String DRIVER = “com.mysql.jdbc.Driver”;

/**
* データベースのURL
*/
final static String URL = “jdbc:mysql://localhost/mydb”;

/**
* データベースのユーザー
*/
final static String USER = “root”;

/**
* データベースのパスワード
*/
final static String PASS = “hoge”;

/**
* Connectionを取得
*/
public static Connection getConnection()
throws SQLException {
try{
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
throw new IllegalStateException (
“fail to class load :”
+ e.getMessage());
}
Connection con = DriverManager.getConnection(URL, USER, PASS);
return con;
}
}

〇BlogControllerクラスの変更
Listでtopicsを保持するのをやめ、DBに保持してアクセスする。postTopic()メソッドとgetTopics()メソッドの中が大きく変わっている。

変更後のBlogController.java

package blog;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
// import java.util.Date;
import java.util.List;

/**
* Blogを操作するビジネスロジック
*/
public class BlogController {

/**
* シングルトンのインスタンス
*/
private static BlogController controller = new BlogController();

/**
* このクラスのインスタンスを取得
* @return BlogControllerのインスタンス
*/
public static BlogController getInstanse(){
return controller;
}
private BlogController(){
}

/**
* トピックをポスト(登録)する
* @param topic トピック
*/
public void postTopic(Topic topic){
String sql = “INSERT INTO TOPIC(TITLE, CONTENT)”
+ ” VALUES(” + “‘” + topic.getTitle() + “‘”
+ “,'” + topic.getContent() + “‘” + “)”;
Connection con = null;
Statement smt = null;
try{
con = ConnectionManager.getConnection();
smt = con.createStatement();
smt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (smt != null){
try {
smt.close();
} catch (Exception ignore) {
}
}
if (con != null){
try {
con.close();
} catch (Exception ignore) {
}
}
}
}

/**
* 全部のトピックを取得する
* @return トピックのリスト
*/
public List<Topic> getTopics() {
String sql = “SELECT * FROM TOPIC”;
List<Topic> topics = new ArrayList<Topic>();

Connection con = null;
Statement smt = null;
ResultSet rs = null;
try{
con = ConnectionManager.getConnection();
smt = con.createStatement();
rs = smt.executeQuery(sql);
while (rs.next()) {
Topic topic = new Topic();
topic.setId(rs.getInt(“ID”));
topic.setPostDate(rs.getTimestamp(“POST_DATE”));
topic.setTitle(rs.getString(“TITLE”));
topic.setContent(rs.getString(“CONTENT”));
topics.add(topic);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (Exception ignore) {
}
}
if (smt != null) {
try {
smt.close();
} catch (Exception ignore) {
}
}
if (con != null) {
try {
con.close();
} catch (Exception ignore) {
}
}
}
return topics;
}
public static void main (String[] args) {
BlogController ctrl = BlogController.getInstanse();
List <Topic> topics = ctrl.getTopics();
for (int i = 0; i < topics.size(); i++) {
System.out.println(topics.get(i));
}
System.out.println(“END”);
}
}

動作確認用にmainメソッドを組み込んである。BlogController.javaを実行してみる。Eclipse上で、「””」が「””」と認識されたり、BlogController.javaの111行目のgetInstance()が正しく認識されないことや、PostServlet.javaやReadServlet.javaのgetInstance()正しく認識されないことがあったが、訂正した。また、index.jspやread.jspの文字列「掲示板」を「シンプルBlog」に訂正した。

〇Tomcatを再起動し、
http://localhost:8080/SampleWeb0004/index.jsp
にアクセスしてみる。

タイトルに「テスト2」
記事に「DBに残るか、テスト」
とし、投稿ボタンを押す。
しかし、記事は投稿できない。

【参考文献】
JavaデベロッパーのためのEclipse完全攻略[4.x対応版]
石黒 尚久 (著), 永井 正昭 (著), テクニカル書籍編集部 (著)

〇何とか、進めてみる。
https://qiita.com/KOJI-YAMAMOTO/items/55c2b08357082a72cda3 参照
「C:\eclipse\tmp」を作っておく。
「C:\WINDOWS\system32>cd C:\Program Files\Java\jdk-14.0.2\bin」の中に、「keytool.exe」が格納されていることを確認して、コマンドプロンプトを起動し、カレントディレクトリをJavaインストールフォルダ\binに移動し、
keytool -genkey -alias tomcat -keyalg RSA -keystore C:\eclipse\tmp\.keystore
を実行する。
***********************************************************
C:\Program Files\Java\jdk-14.0.2\bin>keytool -genkey -alias tomcat -keyalg RSA -keystore C:\eclipse\tmp\.keystore
キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
姓名は何ですか。
[Unknown]: test
組織単位名は何ですか。
[Unknown]: test
組織名は何ですか。
[Unknown]: test
都市名または地域名は何ですか。
[Unknown]: tokyo
都道府県名または州名は何ですか。
[Unknown]: tokyo
この単位に該当する2文字の国コードは何ですか。
[Unknown]: 81
CN=test, OU=test, O=test, L=tokyo, ST=tokyo, C=81でよろしいですか。
[いいえ]: はい
90日間有効な2,048ビットのRSAのキー・ペアと自己署名型証明書(SHA256withRSA)を生成しています
ディレクトリ名: CN=test, OU=test, O=test, L=tokyo, ST=tokyo, C=81
C:\Program Files\Java\jdk-14.0.2\bin>
***********************************************************
作成したkeystoreファイルを適当なフォルダに配置する。
tomcatフォルダ配下にsslフォルダを作成してその中に格納する。
C:\eclipse\Tomcat\ssl

「server.xml」をテキストエディタで開く。
C:\eclipse\Tomcat\conf\server.xml

77行目に以下を記述する。
*****************************
<Connector
protocol=”org.apache.coyote.http11.Http11NioProtocol”
port=”8443″
maxThreads=”200″
scheme=”https”
secure=”true”
SSLEnabled=”true”
keystoreFile=”C:/eclipse/Tomcat/ssl/.keystore”
keystorePass=”hogehoge”
clientAuth=”false”
sslProtocol=”TLS”
/>
*****************************

tomcatを起動してhttpsでアクセスする。
https://localhost:8443/

※証明書不正のメッセージが表示されるが、そのまま続行する。
「詳細設定」ボタン→「localhost にアクセスする(安全ではありません)」をクリックする。Tomcatの画面が表示されれば、TomcatでのSSLを有効にする手順は完了。

「サーバー」ビューの下記リンクを右クリックし、削除する。
あらたにできた、下記リンクをクリックする。
「新規サーバー」ダイアログボックスが表示されたら、「サーバーのタイプを選択(S)」欄の「Apache」フォルダーから、先に準備した「Tomcat v9.0」を選択し、「サーバーのホスト名(H)にサーバー名入力(ここではデフォルトの「localhost」)して、「完了(F)」ボタンをクリックする。

Mon Aug 31 06:17:02 JST 2020 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

どうしても、MySQLがSSL接続を要求するために、現時点で、
https://localhost:8443/dbblog/
https://localhost:8443/dbblog/read
が表示されるが、MySQLとの接続ができていないので、
https://localhost:8443/dbblog/post
には、記事が残らない。

Java開発環境構築7

※以下はJava開発環境構築1~6が終わった前提で話を進めている。

掲示板の作成

トップ画面と閲覧・投稿画面はJSPで作成し、トップ画面の「記事を読む」というリンクからのリクエストを受け取る閲覧サーブレットと閲覧・投稿画面の「投稿」ボタンからのリクエストを受け取る投稿サーブレットを作る。また、掲示板の1つの記事を保存するための(モデル)クラスと、そのデータとサーブレットとの間を取り持つ(コントローラ)クラスを作成する。SampleWeb0002と同じ手順でプロジェクトを作成する。
プロジェクトの種類は「動的Webプロジェクト」
名前は「SampleWeb0003」

〇「プロジェクト・エクスプローラー」ビューで、SampleWeb0003プロジェクトを選択、右クリック→[新規]→[サーブレット]を選択。次の画面で、
Javaパッケージ「blog」
クラス名「Topic」
と入力し、「完了」ボタンを押す。
掲示板の1記事を保存するための(モデル)クラスTopic.javaを作成する。
これは以下のプロパティー(フィールドおよび対応するセッタ・ゲッタ)を持つ単純なJavaクラスである。
・id 連番
・title タイトル
・content 内容
・postDate 投稿日時

Topic.java

package blog;

import java.util.Date;

/**
* トピックのビーン
*/
public class Topic {

/** 連番 */
private int id;
/** タイトル */
private String title;
/** 内容 */
private String content;
/** 投稿日 */
private Date postDate;

public String toString(){
return super.toString()
+ “,id=” + id
+ “,title=” + title
+ “,content=” + content
+ “,postDate=” + postDate
;
}

//
//単純なセッタ・ゲッタ
//
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getPostDate() {
return postDate;
}
public void setPostDate(Date postDate) {
this.postDate = postDate;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}

〇ビジネスロジックを書く
掲示板を処理するメインとなるコントローラクラスを作成する。このクラスでは、
・掲示板の一覧を取得する
・掲示板を投稿する
というビジネスロジックとなるメソッドを定義している。このクラスはnewが不要な唯一のインスタンスとなる、シングルトンクラスとして作っている。

BlogController.java

package blog;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
* 掲示板を操作するビジネスロジック
*/
public class BlogController {

/**
* シングルトンのインスタンス
*/
private static BlogController controller = new BlogController();

/**
* 連番用のカウンタ
*/
private int idCounter;

/**
* 掲示板のリスト
*/
private List<Topic> topics = new ArrayList<Topic>();

/**
* このクラスのインスタンスを取得
* @return BlogControllerのインスタンス
*/
public static BlogController getInstance(){
return controller;
}

private BlogController(){
}

/**
* トピックをポスト(登録)する
* @param topic トピック
*/
public void postTopic(Topic topic){
synchronized(this){
topic.setId(idCounter++);
topic.setPostDate(new Date()); //現在時間
topics.add(topic);
}
}

/**
* 全部のトピックを取得する
* @return トピックのリスト
*/
public List<Topic> getTopics() {
return new ArrayList<Topic>(topics);
}
}

〇サーブレットを作成する
次にユーザーからのリクエストを受け付けるサーブレットを作成する。ReadServletではトピックの一覧を取得し、リクエストスコープにtopicというキーで取得したデータをセットしている。画面遷移先は、/read.jsp
サーブレットのURLへのマッピングはweb.xmlファイルを使わずに、今まで同様@WebServletアノテーションで行う。

ReadServlet.java

package blog;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* トピックを購読するサーブレット
*/
@WebServlet(name = “read”, urlPatterns = “/read”)
public class ReadServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
perform(request, response);
}

protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
perform(request, response);
}

protected void perform(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
BlogController ctrl = BlogController.getInstance();
List<Topic> topics = ctrl.getTopics();

request.setAttribute(“topics”, topics);

request.getRequestDispatcher(“/read.jsp”).
forward(request, response);
}
}

〇もう1つのPostServletでは、「投稿」ボタンのリクエストにより送られてくるデータからトピックを作成し投稿処理を行っている。その後、ReadServletにディスパッチ(遷移)している。

PostServlet.java

package blog;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* トピックの投稿を行うサーブレット
*/
@WebServlet(name = “post”, urlPatterns = “/post”)
public class PostServlet extends HttpServlet {

protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
perform(request, response);
}

protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
perform(request, response);
}

protected void perform(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String title = request.getParameter(“title”);
String content = request.getParameter(“content”);
Topic topic = new Topic();
topic.setTitle(title);
topic.setContent(content);
BlogController ctrl = BlogController.getInstance();
ctrl.postTopic(topic);
request.getRequestDispatcher(“/read”).
forward(request, response);
}
}

〇JSPファイルのテンプレートを日本語対応に設定する
アプリの画面表示内容を受け持つJSPを作成する。JSPファイルを作成するにあたって、テンプレートを利用できるが、デフォルトの設定では日本語の文字コードが使えるようになっていない。Eclipseでの設定を変更することにより対応できるので、まずこの設定を行う。
Eclipseのメニューから[ウィンドウ]→[設定]を選ぶと設定画面が表示されるので、左のリストから「Web」→「JSPファイル」を選ぶ。右側の設定画面の「エンコード」項目を「ISO 10646/Unicode(UTF-8)」に変更する(デフォルトでは「ISO Latin-1」になっている)。これで日本語(UTF-8)に対応したテンプレートが使えるようになる。

〇JSPを作成する
JSPを作成していく。index.jspはトップ画面。単に「掲示板を読む」という閲覧画面(ReadServlet)へのリンクがあるだけである。
「プロジェクト・エクスプローラー」ビューでSampleWeb0003プロジェクトのWebContentを選択し、右クリック→[新規]→[JSPファイル]を選択。次の画面でファイル名(index.jsp)を入力し「完了」を押す。表示されるJSPファイルの内容はUTF-8に対応したものとなっている。

index.jsp

<%@ page language=”java” contentType=”text/html; charset=UTF-8″
pageEncoding=”UTF-8″%>
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=”UTF-8″>
<title>掲示板を読む</title>
</head>
<body>
<a href=”read”>掲示板を読む</a>
</body>
</html>

同様に、投稿と閲覧を兼用しているread.jspを作成する。画面上の方に投稿用のフォームがあり、「投稿」ボタンを押してサブミットすると、PostServletが呼ばれる。画面の下の方には、ReadServletでセットされたトピックを取得し、一覧表示している。

read.jsp

<%@ page language=”java” contentType=”text/html; charset=UTF-8″
pageEncoding=”UTF-8″%>
<%@ page import=”blog.Topic,java.util.List”%>
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=”UTF-8″>
<title>掲示板</title>
</head>
<body>
<h2>掲示板</h2>
<a href=”read”>リロード</a>
<form action=”post” method=”POST”>
<br> タイトル<input type=”text” name=”title” size=”40″>
<br>
<textarea name=”content” rows=”5″ cols=”40″></textarea>
<br> <input type=”submit” value=”投稿”>
</form>
<%
List<Topic> topics = (List<Topic>) request.getAttribute(“topics”);
if (topics != null) {
for (int i = topics.size() – 1; i >= 0; i–){
Topic topic = topics.get(i);
%>
<hr>
タイトル:<%=topic.getTitle()%>
(<%=topic.getPostDate()%>)
<pre><%=topic.getContent()%></pre>
<%
}
}
%>
</body>
</html>

〇エンコードフィルタ
基本的なプログラムはできたが、このままだと日本語が文字化けして表示されてしまう。これを回避し日本語のリクエストを正しく受け付けるために、エンコードフィルタのクラスを作成する。ここでは文字コードをUTF-8固定にしている。
フィルタとしてサーバから呼び出されるよう、クラスにWebFilterアノテーションを付加している。

EncordingFilter.java

package blog;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

/**
* リクエストエンコード用フィルタ
*/
@WebFilter(filterName = “EncordingFilter”, urlPatterns = {“/*”})

public class EncordingFilter implements Filter {
public void init (FilterConfig config)
throws ServletException {
}

public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException{
request.setCharacterEncoding(“UTF-8”);
chain.doFilter(request, response);
}

@Override
public void destroy(){
}
}

〇次に「サーバー」ビューでTomcat 9サーバを選択し、右クリック→[追加および除去]を選択。次の画面で使用可能なプロジェクトのSampleWeb0003を選択し、「追加」ボタンを押す。「完了」を押して画面を閉じる。

〇Tomcatを再起動し、
http://localhost:8080/SampleWeb0003/index.jsp
にアクセスしてみる。
閲覧・投稿画面でタイトルと内容を書き込み、「投稿」ボタンを押すと画面の下にそれらの情報が追加で表示されていくのがわかる。
しかし、現状では投稿されたデータをメモリ上に保持しているため、Tomcatを再起動するとデータが消えてしまう。次はデータをデータベースに保存できるようにする。

【引用文献】
JavaデベロッパーのためのEclipse完全攻略[4.x対応版]
石黒 尚久 (著), 永井 正昭 (著), テクニカル書籍編集部 (著)

Java開発環境構築6

※以下はJava開発環境構築1~5が終わった前提で話を進めている。

JavaプログラムからMySQLとの接続

〇Javaアプリケーションから、MySQLにJDBCを利用してアクセスするにはJDBCドライバが必要。

〇JDBCドライバは以下の場所に配置されている。
C:\Program Files (x86)\MySQL\Connector J 5.1\mysql-connector-java-5.1.49-bin.jar

〇これをSampleWeb0002プロジェクトのWebContent/WEB-INF/libフォルダにコピーする。(Javaリソース/ライブラリー/Web AppライブラリーフォルダにもJDBCドライバが追加されているはず)

〇接続用クラスの作成
データベースと接続し、コネクションを取得するクラスを作成。mainメソッドも作成し、それを使って実際にデータを取り出すテストをしてみる。
SampleWeb0002プロジェクトのJavaリソース/srcのhogeパッケージに新規クラスConnectionManagerを以下のように作成する。

〇ConnectionManager
package hoge;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
* シンプルなコネクション管理クラス
*/
public class ConnectionManager {
/**
* JDBCドライバのクラス名
*/
final static String DRIVER = “com.mysql.jdbc.Driver”;

/**
* データベースのURL
*/
final static String URL = “jdbc:mysql://localhost/mydb”;

/**
* データベースのユーザー
*/
final static String USER = “root”;

/**
* データベースのパスワード
*/
final static String PASS = “hoge”;

/**
* Connectionを取得
*/
public static Connection getConnection()
throws SQLException {
try{
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
throw new IllegalStateException (
“fail to class load : ”
+ e.getMessage());
}
Connection con = DriverManager.getConnection(URL, USER, PASS);
return con;
}

/**
* 接続確認テスト
*/
public static void main(String[] args) throws SQLException {
Connection con = getConnection();
Statement smt = con.createStatement();
ResultSet rs = smt.executeQuery(“select * from account”);
while(rs.next()){
String s = “NAME=” + rs.getString(“NAME”)
+ “,MONEY=” + rs.getString(“MONEY”) ;
System.out.println(s);
}
smt.close();
con.close();
System.out.println(“END”);
}
}

〇接続確認のためにJSPからデータベースにアクセスする。
select_sample.jspという名前のファイルをWebContent直下に作成する。

<%@page contentType="text/plain; charset=Windows-31J"%>
<%@page import="hoge.ConnectionManager, java.sql.*"%>
<% try{ Connection con = ConnectionManager.getConnection(); Statement smt = con.createStatement(); ResultSet rs = smt.executeQuery("select * from account"); while(rs.next()){ String s = "NAME=" + rs.getString("NAME") +",MONEY=" + rs.getString("MONEY"); out.println(s); } smt.close(); con.close(); }catch(SQLException e){ e.printStackTrace(); } %>

Tomcatを起動し、ブラウザで
http://localhost:8080/SampleWeb0002/select_sample.jsp
にアクセスして、
NAME=サンディー,MONEY=3000
NAME=パトリック,MONEY=2000
NAME=ボブ,MONEY=1000
が表示されれば、OK。

※Java開発環境構築1でインストールした「JDK」「Eclipse」「Tomcat」「MySQL」が連携できることを確認しました。

【引用文献】
JavaデベロッパーのためのEclipse完全攻略[4.x対応版]
石黒 尚久 (著), 永井 正昭 (著), テクニカル書籍編集部 (著)

Java開発環境構築5

※以下はJava開発環境構築1~4が終わった前提で話を進めている。

MySQLでデータベースを作る

〇Java開発環境構築1でデスクトップ上に作った[MySQL 8.0 Command Line Client]で、MySQLを起動し、パスワード「hoge」を入力。

mysql> CREATE DATABASE mydb;
mysql> USE mydb;
mysql> CREATE TABLE account (
-> NAME VARCHAR(100) PRIMARY KEY,
-> MONEY INTEGER
-> );
mysql> INSERT INTO account VALUES(‘ボブ’,1000);
mysql> INSERT INTO account VALUES(‘パトリック’,2000);
mysql> INSERT INTO account VALUES(‘サンディー’,3000);
mysql> EXIT

以上で、データベースの設定は完了。

Java開発環境構築4

※以下はJava開発環境構築1・2・3が終わった前提で話を進めている。

Javaサーブレットの作成

〇「プロジェクト・エクスプローラー」ビューで、SampleWeb0002プロジェクトを選択、右クリック→[新規]→[サーブレット]を選択。次の画面で、
Javaパッケージ「hoge」
クラス名「MyServlet」
と入力し、「次へ」ボタンを押す。

〇次の画面でサーブレットマッピングの指定を行う。
名前「myserv」
に変更すると、URLマッピングは自動的に「/myserv」に変更される。
「完了ボタン」を押す。

〇作成したMyServlet.javaのdoGetメソッドを次のコードに書き換える。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append(“Served at: “).append(request.getContextPath());←コメントアウトする
response.getWriter().println(“hello”);←書き加える
}

〇上記の変更を保存し、サーバを再起動し、ブラウザから、
http://localhost:8080/SampleWeb0002/myserv
にアクセスする。「hello」とブラウザに出力されればOK。

Java開発環境構築3

※以下はJava開発環境構築1・2が終わった前提で話を進めている。

WTPでのWebアプリケーション開発

〇WTP(Web Tools Platform)は、eclipse.orgのプロジェクトで、WebやJavaEEアプリケーションの開発支援を行う各種ツールを提供している。WTPの開発は主にJava EEパースペクティブで行う。Eclipseのメニューから、[ウィンドウ]→[パースペクティブ]→[パースペクティブを開く]→[その他]を選択。次の画面でJava EEパースペクティブを選択。「Eclipse IDE for Java EE Developers」を利用している場合は、Java EEパースペクティブがデフォルトのパースペクティブなので、最初から開かれている。

〇まずはじめにプロジェクトを作成
Eclipseのメニューから[ファイル]→[新規]→[動的Webプロジェクト]を選択
〇プロジェクトの作成画面
プロジェクト名「SampleWeb0002」
ターゲット・ランタイム「Apache Tomcat v9.0」を選択
動的webモジュールバージョンはWebアプリケーションのバージョン「4.0」を選択
(web.xmlでマッピングを行う場合は「2.5」)
構成はプロジェクト・ファセットと呼ばれるプロジェクトの各種設定をひとまとめにして名前を付けたもの「Apache Tomcat v9.0 デフォルト構成」を選択
「完了」を押してプロジェクトの作成を完了
※ここで「次へ」を選択して、その他のオプションを設定することができる
「プロジェクト・エクスプローラー」ビューで、プロジェクトが作成されたことを確認
表示されない場合は、右クリック→「リフレッシュ」またはF5を実行
HTMLやJSPはWebContent以下に作成する。
JavaクラスのソースプログラムはJavaリソースの/src以下に作成していく。

〇次に「サーバー」ビューでTomcat 9サーバを選択し、右クリック→[追加および除去]を選択。次の画面で使用可能なプロジェクトのSampleWeb0002を選択し、「追加」ボタンを押す。「完了」を押して画面を閉じる。以上で、JSPやサーブレットを作成・実行するための下準備は完了。

Java開発環境構築2

JSPを使ったWebアプリケーションの作成手順

〇「Java開発環境構築1」の設定後、Eclipse内で、Tomcatを利用できるように設定する。
「ウィンドウ(W)」→「設定(P)」
「設定」ダイアログボックスを表示して、「サーバー」欄の「ランタイム環境」を選択。
右側に表示された「サーバー・ランタイム環境」にある「追加(A)」ボタンをクリック。
「新規サーバー・ランタイム環境」ダイアログボックスが表示されたら、「ランタイム環境のタイプを選択(R)」欄で「Apache Tomcat v9.0」を選択して、「次へ(N)」ボタンをクリックする。
「Tomcatサーバー」の画面では、「Tomcatインストール・ディレクトリー(D)」にあるインストール先の文字列をコピーして、「完了(F)」ボタンをクリックする。
画面が戻るので、「サーバー・ランタイム環境」欄に、選択したTomcatが表示されていることを確認したら、「適用して閉じる」ボタンをクリックする。
〇新規サーバーを作成する。
「サーバー」ビューの下記リンクをクリックする。
「新規サーバー」ダイアログボックスが表示されたら、「サーバーのタイプを選択(S)」欄の「Apache」フォルダーから、先に準備した「Tomcat v9.0」を選択し、「サーバーのホスト名(H)にサーバー名入力(ここではデフォルトの「localhost」)して、「完了(F)」ボタンをクリックする。
〇動的Webプロジェクトの作成
Eclipseのメニューから、「新規(N)」→「動的Webプロジェクト」を選択する。「新規動的Webプロジェクト」ダイアログボックスが表示されたら、「プロジェクト名(M)」欄に任意のプロジェクト名を入力(ここでは、SampleWeb0001)し、「ターゲット・ランタイム(U)」では、先ほど設定したTomcatの該当バージョン(Apache Tomcat v9.0)を選択して、「完了(F)」ボタンをクリックする。
「パッケージ・エクスプローラー」内に生成された「SampleWeb0001」プロジェクトにある「WebContent」フォルダを右クリックして、「新規(N)」→「JSPファイル」をクリックする。「新規JSPファイル」ダイアログボックスが表示されたら、「ファイル名(M)」に任意のファイル名を入力(ここではSample0001.jsp)して、「完了(F)」ボタンをクリックする。
生成されたJSPファイル(Sample0001.jsp)をダブルクリックして、エディターに表示されたソースプログラム内のタグ部分に「Hello JSP」と入力する。
〇Tomcatサーバーを起動する(デスクトップに作成したTomcat9.exeのショートカットは使わない)
「サーバー」ビューのTomcatサーバーを右クリックして、ショートカットメニューから、「追加および除去(A)」を選択する。「追加および除去」ダイアログボックスが表示されたら、、「使用可能(A)」欄にある現在編集中のプロジェクト(SampleWeb0001)を選択して、「追加(D)」ボタンをクリックし、「構成済み(C)」へ移動して、「完了(F)」ボタンをクリックする。
「サーバー」ビューのTomcatサーバーを右クリックして、ショートカットメニューから、「開始(S)」を選択してサーバーを起動する。
ブラウザを開き、以下のURLを入力する。
http://localhost:8080/SampleWeb0001/Sample0001.jsp
ブラウザに文字列「Hello JSP」が表示されたら完成。

Java開発環境構築1

01. JDK のインストール

「Java SE – Downloads Oracle Technology Network Oracle」ウェブサイト
http://www.oracle.com/technetwork/java/javase/downloads/index.html
にて、「Java Platform, Standard Edition」の「JDK DOWNLOAD」をクリックし、
「Java SE Development Kit 14」の欄の「Accept License Agreement」をチェックして、
「Windows x64」のJDK、「jdk-14_windows-x64_bin.exe」をダウンロードし、インストールする。
※インストール先のオプションはデフォルトで、変更しない。
環境変数 JAVA_HOME と Path に通しておく。
エクスプローラー内のPCを右クリックし、プロパティを選択。
システムの画面中のシステムの詳細設定を選ぶ。
システムのプロパティの画面中の環境変数ボタンを押す。
システムの環境変数内に「JAVA_HOME」を作成し、
「JAVA_HOME」→「C:¥Program Files¥Java¥jdk-14」
とする。
同じくシステムの環境変数内の「Path」を編集する。
「Path」→「%JAVA_HOME%¥bin」
とする。

02. Eclipse のインストール

フォルダ「C:¥eclipse」とさらにその中に、
フォルダ「C:¥eclipse¥workspace」を作成しておく。
「Eclipse 日本語化 | MergeDoc Project」ウェブサイト
http://mergedoc.osdn.jp/
より、Eclipse 2020 の Ultimate の Full Edition をダウンロードする。
「Pleiades All in One Eclipse ダウンロード」→「pleiades-2020-03-ultimate-win-64bit-jre_20200322.zip」
https://sevenzip.osdn.jp/
より、7-Zip 20.00 alpha (2020-02-06)をダウンロード・インストールする。
上記のPleiadesのファイルを「C:¥eclipse」フォルダ内にコピーし、7-Zipで、展開。
※他の解凍ツールを使う場合は、ファイル名が長くなり、使えなくなることに注意する。
「C:¥eclipse¥pleiades¥eclipse¥eclipse.exe」を管理者権限で実行すれば、Eclipseが起動する。
Eclipseの起動時に workspace の場所を求められるので、「C:¥eclipse¥workspace」を指定する。
「C:¥eclipse¥pleiades¥eclipse¥eclipse.exe」のショートカットをデスクトップ上に作成し、管理者権限で実行出来るようにする。

03. Tomcat のインストール

「Apache TomcatR – Welcome!」ウェブサイト
http://tomcat.apache.org/
にて、最新版のTomcat(Tomcat 9.0.34 Released)をダウンロードする。
「32-bit/64-bit Windows Service Installer (pgp, sha512)」を「C:¥eclipse」にダウンロードし、インストールする。
JDKのインストール先として「C:¥Program Files¥Java¥jdk-14」を指定。
フォルダー「C:¥eclipse¥Tomcat」を作成し、Apache Tomcat Destination Folder として、「C:¥eclipse¥Tomcat」を指定。
Tomcat を起動するには、環境変数「CATALINA_HOME」を定義し、
インストール場所「C:¥eclipse¥Tomcat」を指定する。
環境変数「Path」に「%CATALINA_HOME%¥bin」を追記する。
さらに、環境変数「Path」に「C:¥eclipse¥Tomcat¥lib¥tomcat-coyote.jar」を追記する。
「C:¥eclipse¥Tomcat¥bin¥Tomcat9.exe」を管理者権限で起動して、
「Server startup in XXXX ms」の行がコマンドプロンプトに表示されたら起動。
http://localhost:8080/
で起動を確認。コマンドプロンプトの画面を消すと、Tomcatは終了。
「Tomcat9.exe」はデスクトップ上にショートカットを置いておくと便利。

04. MySQLのインストール

MySQL  MySQL Downloads ウェブサイト
http://www.mysql.com/downloads/
から、MySQL Community (GPL) Downloads
→MySQL Community Server
→MySQL Community Server 8.0.19
→Windows(x86,32 & 64-bit),MySQL Installer MSI
→MySQL Installer 8.0.19
→Windows (x86, 32-bit), MSI Installer」
=「mysql-installer-community-5.7.14.0.msi」
をダウンロードする。その際、下方の「No thanks, just start my download.」を選ぶ。
「mysql-installer-community-8.0.19.0.msi」を「C:¥eclipse」に格納し、ダブルクリック
○Choosing a Setup Type
「Custom」→「Next」
○Select Products and Feature
「MySQL Servers」→「MySQL Server 8.0.19 – X64」を選択
さらに、
「MySQL Connectors」→「Connector/J 5.1」X86版を選択し、
※「Connector/J 5.1」は32bit版しかない。
さらに、
「MySQL Connectors」→「Connector/ODBC 8.0.19 – X64」を選択しておき、
「Next」
○Installation
「Execute」し、製品名の左側に緑のチェックがついたら「Next」
○Product
インストールの準備ができるので「Execute」
完了したら「Next」
○「Next」
○「High Availability」で「Standalone MySQL Server / Classic My SQL
replication」を選択して「Next」
○デフォルトで「Next」
○「Authentication Method」で「Use Strong Password Encryption」を選んで「Next」
○Acconts and Roles
MySQLのROOTユーザーのパスワード「hoge」を入力して「Next」 ※1
○Windows Service
デフォルトで「Next」
○Apply Server Configration
設定処理の一覧が表示されるので「Execute」
処理が終わると一覧の右に緑のチェックがつくので「Finish」
○Product Configration
再度、この画面が表示されるので「Next」
○Install Complete
「Finish」
以上で、MySQLのインストールは終了。
スタートメニューの[MySQL]→[MySQL 5.7 Command Line Client]が、
MySQLを操作するツールなので、ショートカットをスタート画面に置く。

※個々の動作確認はできましたが、うまく連携しているか否かはわかりません。
今後、アプリケーションを作ることで確認したいと思います。

【追記】2020年08月01日(土)

「MySQL Installer」の画面で、Microsoft Windows用の「MySQL Installer 8.0.21」、「Windows (x86, 32-bit), MSI Installer」には、「mysql-installer-web-community-8.0.21.0.msi」と「mysql-installer-community-8.0.21.0.msi」が選べるようになった。私は「mysql-installer-community-8.0.21.0.msi」をダウンロードすることにした。

MySQLインストール終了後、スタートメニューの[MySQL]→[MySQL 8.0 Command Line Client]のショートカットを作るには、スタートメニューの[MySQL]→[MySQL 8.0 Command Line Client]を右クリックして「その他」→「ファイルの場所を開く」とショートカットがあるので、それをデスクトップ上にコピーした。

【改訂】2020年08月19日(水)
文中の※1:MySQLのROOTユーザーのパスワードを「hoge」とした。

ホームグループアイコンを表示しない

1. Windows キー + X キー > 「services.msc」と入力
2. サービス一覧が表示されたら [HomeGroup Listener] をダブルクリック
3. [スタートアップの種類] 欄を [無効] に変更して [OK]
4. サービス一覧から [HomeGroup Provider] をダブルクリック
5. こちらも同様に [スタートアップの種類] 欄を [無効] に変更して [OK]
6. PC を再起動

参照サイト
https://answers.microsoft.com/ja-jp/windows/forum/all/windows-10/184fb85e-a30b-4cce-9704-250362bad575

WordPressのファイルアップロード上限値を変更する方法

「php.ini」ファイルに記述

テキストエディタを使って、「php.ini」ファイルを作ります。お使いのパソコンによってはうまく保存できないこともあるかもしれませんが、その場合は「php.txt」などとしていただき、FTPでサーバーのホームディレクトリ(一般的には)にアップした後、「php.ini」に変更して下さい。

CentOS7の場合、「/etc/php.ini」を編集します。

記述する内容は、以下。

memory_limit = 50M
post_max_size = 40M
upload_max_filesize = 30M

上限値が、30MBになりました。ポイントは、「memory_limit」の数値が一番大きく、「upload_max_filesize」が一番小さい数値になるよう調整する必要があります。

https://www.vektor-inc.co.jp/post/upload_max_filesize/ 参照

¥を表示したい

WordPressの投稿記事の¥マークが\になってしまうので、¥マークを表示させるために、エスケープシーケンスを利用しようと「&yen;」と入力してみたら、¥マークではなく、「&yen;」がそのまま表示されてしまいました。これは「Classic Editor」プラグインを利用して、ビジュアルで書いた場合です。
私はテキストの入力モードで、機種依存文字の「¥」マークを利用して、¥マークが\になってしまうのを回避することにしました。テキストの入力モードで、「&yen;」を入れたのと同じことになるからです。

ややこしくなりましたが、WordPressで、¥マークを記述したいときは、「Classic Editor」プラグインを利用し、テキストの入力モードで、機種依存文字の「¥」を用いるか、「&yen;」あるいは「&#165;」を使うと良いようです。「&」は半角にして下さい。

Classic Editor」プラグインを使わない(デフォルト)とどうなるかは検証していません。また、私が間違っているかもしれませんので、ご了承下さい。

サイバー・電子戦教育を強化=防衛省、人材確保なお課題

サイバー・電子戦教育を強化=防衛省、人材確保なお課題
時事通信社 2020/07/24 07:15

防衛省・自衛隊はサイバー・電子戦の新領域で、隊員らに対する教育を強化している。陸上自衛隊通信学校(神奈川県横須賀市)は月内に、電子戦の専門教育課程を新設。陸自高等工科学校(同市)も来年度からシステム・サイバー専修コースを開設する。ただ各国との差は依然大きく、人材確保は難航している。

「中国やロシアは軍のサイバー攻撃能力、電子戦の実践能力を強化している」。河野太郎防衛相は23日、陸自久里浜駐屯地(同市)で隊員に訓示した。これに先立ち、敵の通信を妨害する車載型電子戦システム「NEWS」や、昨年5月に開設した陸海空自衛隊統一のサイバー教育課程を視察した。

サイバー・電子戦の分野で世界を震撼(しんかん)させたのが、2014年のロシアによるウクライナ侵攻だ。ロシア軍はウクライナ軍の通信網を遮断して指揮系統を乗っ取り、最小限の火力で制圧。ロシア側はウクライナの3分の1の兵力で圧勝したとされる。

新たな戦闘に対処するため、自衛隊は今年度、陸自健軍駐屯地(熊本市)に80人規模の電子戦部隊を新編。サイバー防衛隊も70人増の290人に拡充し、23年度末までに関連部隊の定員を一千数百人規模にする計画だ。国内外の大学への留学や、サイバーセキュリティー企業への研修による人材育成にも取り組んでいる。

ただ、中国は3万人、北朝鮮も6800人のサイバー部隊を既に運用しているとされ、出遅れは否めない。即戦力として「ホワイトハッカー」と呼ばれる民間の高度人材を採用する制度もあるが、機密情報の管理や、公務員の硬直的な働き方が敬遠されるなどして実現しておらず、人材確保の課題はなお残る。

© 時事通信 提供 陸海空自衛隊統一のサイバー教育課程を視察する河野太郎防衛相(左から2人目)=23日午前、神奈川県横須賀市の陸上自衛隊通信学校(一部画像を処理しています)(防衛省提供)

© 時事通信 提供 陸海空自衛隊統一のサイバー教育課程を視察する河野太郎防衛相(左から2人目)=23日午前、神奈川県横須賀市の陸上自衛隊通信学校(一部画像を処理しています)(防衛省提供)

© 時事通信 提供 敵の通信妨害能力を向上させた新たな車載型電子戦システム「NEWS」(陸上自衛隊提供)

© 時事通信 提供 敵の通信妨害能力を向上させた新たな車載型電子戦システム「NEWS」(陸上自衛隊提供)

https://www.msn.com/ja-jp/news/politics/サイバー・電子戦教育を強化=防衛省、人材確保なお課題/ar-BB1770uC?ocid=NL_JAJP_A1_20200723_3_3 引用

サイバーセキュリティ

【投稿】2020年07月03日(金)

新潮社 2019.11.20 発行
松原実穂子 著
Cyber security サイバーセキュリティ
を読みました。

この書籍を手に取ったのは、私の自宅サーバのrootアカウントが乗っ取られ、悪意のあるファイルを植え付けられたためにHDDを3枚、壊されたのがきっかけでした。私は家庭内LANの外側に、自宅サーバを置いていました。セキュリティソフトもFirewallもSELINUXも使用しないで、WEBサーバーを公開していました。

ある日、ブラウザが開かなくなり、異変を感じた私は、そのサーバの電源を切り、HDDを警察に提出しました。今頃HDDは解析されているか、サンプリングされているでしょう。ちなみに3枚のHDDのうち、2枚はサーバーでRAIDを組んでいたもので、もう1枚はRAIDを組み替えようとした段階で、そこからブートしようとして失敗し、悪意のあるプログラムに侵されたものでした。起動すると、「SH-5#」というコマンドプロンプトが表示されました。

私はGoogleアナリティクスで、自宅サーバーに日本国内と国外(特に中国)からのアクセスがたくさんあったことを覚えています。自宅サーバーを乗っ取られたのは、私がコロナウィルスの発生源を調べた時期、また、ある証券会社のFXトレードをしていた時期に重なります。私は、その相場の動きに、疑問を持っています。自分が両建てした時にドル円の動きがなくなったことをよく覚えています。金融業界には、コンピュータシステムにたけた人が多いこと、そのFXトレードはその証券会社が外注に保守管理を依頼していたことを考えると、その外注先に私に敵意を持つ人がいてもおかしくありません。私はこれらを総合的に判断して、クラッカーによる私への攻撃だと思っています。コロナウイルスという生物兵器による攻撃とクラッキングというサイバーテロとバイナリーオプション詐欺という同時攻撃を受けたのです。

私はサイバーセキュリティを考えるようになりました。この本は、今の諸外国のサイバーセキュリティの現状や、日本の現状について、非常にわかりやすく書いてあります。私は日本でサイバーセキュリティに関わる人が非常に厳しい環境の中、ご尽力を降り注いでくれていることを知りました。

せめて、自分の家庭だけは自分で守らないといけないと思って、対策を練ってみました。しかし、卓越した腕を持つクラッカーの人にとって、私の家のネットワークはおもちゃにしか見えないでしょう。これからもできる限りのことはしたいと思っています。

【追記】2020年07月19日(日)

この記事を投稿した頃、多くの恐怖にさらされていたこともあり、中国を疑ってしまいました。しかし、「SH-5」はシェルのバージョンを示している可能性が高く、UNIXのプロンプトが表示されただけかもしれません。画像を消去し、文章を編集させて頂きます。皆様には大変ご迷惑をおかけして申し訳ございません。

父の新盆

2020年7月12日(日)
明日7月13日(月)は昨年に亡くなった父の新盆で都内へ迎えに行きます。母は今日までずっと前から準備していました。今日も実家で父の話をしていましたけれども、つくづく良い人だったと思ったのでした。

2020年7月13日(月)
今朝、9時頃には実家へ行き、お盆の支度を少しだけ手伝いました。キュウリとナスが4本足の動物になるようにハシを刺しますが、キュウリが迎えの馬で、ナスが送りの牛だと、妻から聞きました。私は馬を作りました。菩提寺では住職が線香に火をつけて下さいました。疫病退散・息災延命のお守りを頂戴しました。線香入れを持ってきたので、それで線香をあげました。私はお墓の水差しを掃除しました。お墓の裏に父が昭和50年に建立したと掘ってありました。祖父が亡くなって1年後のことです。当時は大変だったと母から聞いていました。行きも帰りも車で高速にのったので、11時には実家に帰ってきました。14時頃にうな重を食べて、自宅に帰りました。

2020年7月14日(火)
午後に実家に行き、大きな、おはぎを2つ食べたら、急に眠くなって、1時間位寝てしまいました。きっと、午前中までコンピュータを使っていたからだと思います。ご先祖様に、お菓子とお線香をあげてきました。母は昔の人がお盆や彼岸を考えてくれたおかげで、ご先祖様と向き合える機会があってありがたいと言っていました。母からとれたばかりの野菜をもらって帰りました。

2020年7月15日(水)
今日はお盆当日だった。自宅では火の出ない電気のロウソクを父の写真の両わきに1本ずつ2本立てて自宅のお盆とした。午後から実家に行った。私は実家にある仏様用ガスライターのためのガスを買って持って行った。そしてカラのライターにガスを注入した。盆棚には叔父から送って頂いたメロンがのっていた。母は自然系あるいは農業系のYouTubeにはまっていて、その話でもちきりだった。私が次に仏様がまとまってくるのはいつかと母に聞いたら、母は答えてくれなかった。来年のお盆が当たり前だが、その時私が来るとは思っていないのだろう。私は父の新盆の盆棚を写真におさめるか悩んだが撮影しなかった。明日の午前中には、盆棚はなくなっているであろう。母が畑で作りとれた野菜や干しエビの天ぷらとキュウリの漬物をもらって帰って食べた。私はまた父が遠のくようで少しさみしかった。

firewalldのポート設定(CentOS7)

代表的なポート
TCP 20 : FTP (データ)
TCP 21 : FTP (制御)
TCP 22 : SSH
TCP 23 : Telnet
TCP 25 : SMTP
UDP 53 : DNS
UDP 67 : DHCP(サーバ)
UDP 68 : DHCP(クライアント)
TCP 80 : HTTP
TCP 110 : POP3
UDP 123 : NTP
TCP 443 : HTTPS

設定の確認
# firewall-cmd –list-all

サービス単位の恒久的なポート開放設定(例:http)
# firewall-cmd –zone=public –add-service=http –permanent
# firewall-cmd –reload

直接の恒久的なポート開放設定(例:443/tcp)
# firewall-cmd –zone=public –add-port=443/tcp –permanent
# firewall-cmd –reload

サービス単位の恒久的なポート閉鎖設定(例:http)
# firewall-cmd –zone=public –remove-service=http –permanent
# firewall-cmd –reload

直接の恒久的なポート閉鎖設定(例:68/udp)
# firewall-cmd –zone=public –remove-port=68/udp –permanent
# firewall-cmd –reload

代表的なポートスキャナ「nmap」のインストール(CentOS)
# yum install nmap
# nmap <アドレス>

WindowsでLinux(WSL, LAMP, WordPress)

WSLとはWindows Subsystem for Linuxのこと。
仮想OSとかエミュレーターではなく、ネイティブで動作するのが特徴。

≪前編≫
Windowsメニュー右にある検索窓から”con”と入力してコントロールパネルを検索し起動します。

コントロールパネルから「プログラム」→「プログラムと機能」を開き、左ペインの「Windowsの機能の有効化または無効化」をクリックする。

[Linux 用 Windows サブシステム]にチェックを入れ、「OK」をクリックする。

「今すぐ再起動」をクリックして、PCを再起動する。

Edgeで、「https://aka.ms/store/」

Microsoft Store
「WindowsでLinuxを実行する」
「Windows Subsystem for Linux (WSL) に Linux ディストリビューション
をインストールして、実行できます。」
から、Ubuntu をインストール

Ubuntu のウィンドウが開くので、

user:*******
password:********

$ sudo su –
pass

#

管理者権限で入れました。

# apt install apache2

# /etc/apache2/apache2.conf
このファイルの末尾に以下の記述を追加します。

AcceptFilter https none
AcceptFilter http none

ファイルを編集したあと以下のコマンドでApacheを再起動します。

# service apache2 restart
ちなみにApacheを停止する場合は以下を実行します。

# service apache2 stop

Edgeで、「http://localhost」が表示されればOK

ApacheのWebサイトを表示するルートフォルダは以下です。
/var/www/html/
ここにページを表示するためのファイルを置きます。
WordPressもここにインストールします。

exitして、

$ sudo apt install mysql-server
ディスクスペース消費を確認してくるので”y”を入力します。

[エラー] Sub-process /usr/bin/dpkg returned an error code (1)

エラーになった
dpkg: error processing package mysql-server (–configure):
dependency problems – leaving unconfigured
Errors were encountered while processing:
mysql-server-8.0
mysql-server
ので、
$ sudo apt remove mysql-server
$ sudo apt autoremove
$ sudo apt install mysql-server

$ sudo apt remove mysql-server-8.0
$ sudo apt autoremove
$ sudo apt install mysql-server-8.0

エラーになったので、
$ sudo dpkg –configure -a

エラーになったので、
Ubuntuでは/var/lib/dpkg/info配下に、パッケージのインストール前、インストール後に実行するためのスクリプトファイルや、その他パッケージに関する情報を含むファイルが置かれています。そしてこのディレクトリにある問題のパッケージ(ここではmysql-server-5.7)のpreinstとprerm(インストール前用スクリプトファイル)、postinstとpostrm(インストール後用スクリプトファイル)の削除します。その後でapt updateやapt upgradeが正常に実行できるようになりました。
具体的には、以下のコマンドを実行します。
$ cd /var/lib/dpkg/info
$ sudo mv mysql-server-8.0.post* /tmp
$ sudo mv mysql-server-8.0.pre* /tmp
$ sudo mv mysql-server.post* /tmp
$ sudo mv mysql-server.pre* /tmp

$ sudo su –

# apt update
# apt upgrade

インストールができたらMySQLのバージョンを確認します。
$ mysql –version
mysql Ver 8.0.20-Oubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

MySQLを起動して動作確認します。
# service mysql start
# mysql

mysql>

①へ
エラーになったら、やり直す。

$ sudo apt update
$ sudo apt install mysql-client
必要なら
$ sudo apt install mysql-server

サーバー起動
$ sudo service mysql start

初期化
$ sudo mysqld –initialize

初期ルートパスを所得
$ grep ‘temporary password’ /var/log/mysql/error.log
このパスワードを使って、rootパスワードを変更していく。
何も聞かれないので、

以下に従い、rootパスワードを変更する。

************************************************************

# mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root: 初期パスワードを入力する→********

The existing password for the user account root has expired. Please set a new password.

New password: 新しいパスワードを入力する→********

Re-enter new password: 再度同じ新しいパスワードを入力する→********

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

New password: ポリシーに沿った新しいパスワードを入力→********

Re-enter new password: 再度新しいパスワードを入力する→********

Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user, a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Normally, root should only be allowed to connect from
‘localhost’. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named ‘test’ that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y Success.

– Removing privileges on test database…
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

************************************************************

設定ファイルは CentOS であれば /etc/my.cnf です。 [mysqld] 節に次のものを追加します。

[mysqld]
…(略)
character-set-server = utf8
default_password_lifetime = 0

************************************************************

①以下のコマンドで今の認証の内容をチェックします。
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

パスワード認証を有効にするため以下のコマンドでパスワードを設定します。
mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘********’;
以下のコマンドで有効にします。

mysql> FLUSH PRIVILEGES;
mysql> exit;

以降mysqlコマンドを使用するときはrootパスワードを入力します。
$ sudo mysql -u root -p

PHPをインストールする。
$ sudo apt install php libapache2-mod-php php-mysql
$ sudo service apache2 restart

ApacheのWebサイトを表示するルートフォルダに簡単なPHPコードが書かれたファイルを置いてブラウザで表示します。

viエディタでPHPファイルを作成します。

$ sudo vi /var/www/html/info.php
エディタが起動したら以下の内容を記述してファイルを保存します。

<?php
phpinfo();
?>
ファイルが保存できたらブラウザで表示してみます。

http://localhost/info.php
PHPの情報が表示されれば正しく動作しています。

動作確認できればこのファイルはいらないので削除しておきましょう。
$ sudo rm /var/www/html/info.php

次にPHPでマルチバイト文字を扱うためと、各ロケールに対応したプログラミングを行えるようにするため以下のパッケージをインストールします。
$ sudo apt install php-mbstring

PHP拡張モジュールであるmbstringを有効にするため以下のコマンドを実行します。
$ sudo phpenmod mbstring

そしてApacheを再起動します。
$ sudo service apache2 restart

phpMyAdminをインストールする
phpMyAdminを以下のコマンドでインストールします。

$ sudo apt install phpmyadmin

Webサーバーを選択する画面が表示されるとapache2にカーソルを持っていきスペースキーで*印を付けて選択します。TABキーで、OKにあわせて、ENTER。

データベースの設定画面が表示されるとそのままYesを選択してEnterキーを押します。

アプリケーションパスワードの設定画面が表示されると任意のパスワードを入力し、TABキーで、OKにあわせて、ENTER。
********

インストールが完了したら、以下をブラウザのアドレスバーに入力してphpMyAdminにアクセスしてください。

http://localhost/phpmyadmin
phpMyAdminのログイン画面が表示されます。

MySQLインストール時に設定したrootパスワードを使ってrootユーザーでログインします。
ログインできると画面が表示されます。
以上でWSLへのLAMP環境の作成は完了です。

エラーの時は・・・

「みんなこの問題に遭遇するんだ。一度WSLを閉じて再起動し、 sudo service mysql start, sudo dpkg –configure -a を実行すると完了するよ」
という感じに見受けられます。

ということで、

WSLを再起動
sudo service mysql start を実行
sudo dpkg –configure -a を実行
してみましょう。それでどうでしょう?

WSLを再起動
$ sudo service mysql start
$ sudo mysql -u root -p
WSLを再起動
sudo dpkg –configure -a
WSLを再起動
http://localhost/phpmyadmin

エラーになったので、
config.inc.phpを探す。
/etc/phpmyadmin/config.inc.php
にあることがわかる。

# vi /etc/phpmyadmin/config.inc.php

https://codeaid.jp/blog/wsl-lamp-wp1/ 参照

≪後編≫
WordPressの最新バージョンを公式サイトよりダウンロードします。
セキュリティソフトを外して、
# cd /var/www/html
# wget https://ja.wordpress.org/latest-ja.tar.gz
# tar xvzf latest-ja.tar.gz
wordpressフォルダ内にデフォルトで含まれているサンプルの設定ファイルをコピーして設定ファイルを作成します。
# cp ./wordpress/wp-config-sample.php ./wordpress/wp-config.php
wordpressフォルダとファイルの所有権をApacheの「www-data」に変更します。
# chown -R www-data:www-data /var/www/html/wordpress
テーマやプラグインが変更できるようにwordpress配下の「wp-content」ディレクトリのグループに書き込み権限を追加します。
# chmod g+w /var/www/html/wordpress/wp-content
テーマとプラグインのディレクトリ配下のすべてのファイルにApacheの書き込み権限を追加します。
# chmod -R g+w /var/www/html/wordpress/wp-content/themes
# chmod -R g+w /var/www/html/wordpress/wp-content/plugins

前編でインストールしたphpMyAdminコンソールを使ってデータベースを作成します。

# service mysql start
# service apache2 restart
# apt install phpmyadmin

root
********

http://localhost/phpmyadmin

phpMyAdminへrootでログインして”wordpress”という名前でデータベースを作成します。(データベース名は任意でいいです。ここでは”wordpress”で例として作成しています)
phpMyAdmin画面でデータベースタブを選択します。
作成するデータベース名を入力し、utf8_general_ciを選択して作成します。

WordPressの設定ファイルを修正します。
# vi /var/www/html/wordpress/wp-config.php

/** WordPress のためのデータベース名 */
define(‘DB_NAME’, ‘wordpress’);
/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘root’);
/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, ‘rootのパスワード’);
・・・
define(‘FS_METHOD’,’direct’);
先程作成したWordPressで使うデータベース名とユーザー名とパスワードを入力し、設定ファイル下部にテーマやプラグインのアップデートが直接ダウンロードできるよう
「define(‘FS_METHOD’,’direct’);」
を記述して保存します。

WordPressをインストール
http://localhost/wordpress

サイトのタイトル:********
ユーザー名:********
パスワード:********
メールアドレス:********@********

まとめ
作成した環境でWordPressのテーマやプラグインを開発する場合などでファイルを書き換えるときは、WSLからCLIでコマンド操作するのが基本的な方法になります。

今のところWSLからWindowsのファイルへアクセスできますが、WindowsからWSL環境へアクセスできません。

例えば、プラグインの開発作業で動作確認しながらファイル修正するような作業をするには、Windows環境で修正したファイルをWSLのUbuntuでWordPress環境のwp-content/pluginsフォルダ配下にファイルをコピーする操作をします。

WSLからWindowsのファイルへは、「/mnt/c」からCドライブへアクセスできます。

「/mnt」はWindowsシステムがマウントしているドライブが表示されますが、USBやネットワークドライブは表示されないようです。

今後はWindowsからWSL環境のファイルへアクセスできるようになるという情報も出ているので、そうなればWidnowsから直接WordPressのテーマやプラグインファイルを直接修正できるようになります。

それから、WordPressの更新、テーマやプラグインのインストール・更新のときにもし以下のようなSSLでエラーが発生した場合

curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to ubuntu.com:443
Windowsにセキュリティソフトを入れていれば、それが原因でこのエラーが発生します。

一度セキュリティソフトを停止してから再度実行してください。

前編にも記載しましたが、WSLのUbuntuはsystemctlコマンドが使えないためこれによる自動起動設定ができません。

利用する際はコマンド操作でMySQLとApacheを起動してください。

https://codeaid.jp/blog/wsl-lamp-wp2/ 参照

新型コロナウイルス感染症の発生源

世界保健機関(WHO)が、新型コロナウイルス(COVID-19)の原因はコウモリにあり、中国の魚介類市場がウイルスの発生源となったと伝えた。

WHO食料安全人獣共通感染症専門家のピーター・ベン・エムバレク氏は、テレビ電話を通じて記者会見を開き、中国の湖北省の都市武漢にある魚介類市場が、新型コロナウイルス流行の発生源となったことに触れ、「市場がウイルス流行の源となったのは明らかだ。しかし、どのようにしてそうなったのかはわからない」と語った。

エムバレク氏は、ウイルスの発生地点が武漢の市場であるのと同様、市場の場所とその周囲で偶然現れた可能性があることにも注意を促した。

新型コロナウイルスの原因はコウモリだが、この件についても徹底的に調査する必要があると指摘したエムバレク氏は、「おそらく、まず動物がこのウイルスを市場に運んできたか、ウイルスに感染していた人物がこの市場を訪れたかだ」と述べた。

https://www.trt.net.tr/japanese/toruko/2020/05/09/rinkevuitiusuritoaniawai-xiang-torukonoxin-xing-koronayong-zhi-yuan-nigan-xie-1413627 参照

Visual Studio Code の使い方

【インストール】

https://code.visualstudio.com/

にて、画面右上の「Download」をクリック。

「Download Visual Studio Code」画面になるので、
Windows10用のSystem Installerの64bitをダウンロードする。

画面左下の「ファイルを開く」を選ぶ。セットアップが始まる。
追加タスクの選択画面で、すべてを選択し、インストール。

【日本語化】

Extensions(四角いマークのアイコン)をクリック。

パネルが開くので検索ボックスに「Japanese Language Pack」と入力。

→「Install」をクリック。

再起動後、「Ctrl+Shift+P」を押し、「display」と入力。

「Configure Display Language」を選択 →「ja」を選択。

再起動して利用。

【印刷】

Extensions(四角いマークのアイコン)をクリック。

パネルが開くので検索ボックスに「PrintCode」と入力。

→「Install」をクリック。

ファイルを選択後、「F1」を押し、「PrintCode」と入力。

WordPressのため、Fedora30 を Fedora31に

WordPressをアップデートしようとすると、
PHPのバージョンが古いというエラーが出るようになった。
私は面倒なので、OSのバージョンアップを行った。

*********************************************************

Windowsパソコンの「Tera Term」から接続して

# dnf upgrade –refresh

# dnf install dnf-plugin-system-upgrade

# dnf system-upgrade download –releasever=31

#dnf clean packages

#dnf system-upgrade reboot

ここで「Tera Term」の接続が「off」となり、

サーバーのモニターを確認して気長~に待つ。

Fedora31では、「root」以外のユーザーからログインする必要があるので、

Fedora30で、「root」以外のユーザーを作っておく必要がある。

参照サイト https://blog.canpan.info/hofu_nanboku/archive/455

*********************************************************

この後、WordPressのアップグレードを行うが、できればサーバーとは別のパソコンで、WordPressの管理画面を開いておきたい。
アップグレードができたか、エラーの内容は何かを簡単に確認することができる。
私はWordPressのディレクトリをバックアップしてから、アップグレードした。
アップグレードの際、ディレクトリの所有権はWordPressの管理者に設定し、アップグレードが完了したら、元に戻した。
できたらデータベースもバックアップした方が良いと思う。

消されたコロナ論文

失踪した中国人研究者の「消されたコロナ論文」衝撃の全訳を公開する
中国政府は完全否定しているが…

時任 兼作 ジャーナリスト

「論文は消え、研究者は消息を絶った」

新型コロナウイルスの「出所」について、議論が渦巻いている。「中国の生物兵器だ」などとする説がネット上ではまことしやかに流れる一方、中国政府は「米軍が中国へ持ち込んだのだ」と主張。さらに、そうした「新型コロナウイルスは人為的に生まれた」という論調を「陰謀説だ」として否定する向きもあり、世界中で感染が本格的に拡大する中、錯綜している状況だ。
こうした最中、日本ではほとんど伝えられていないが、中国の研究者が書いた「消された論文」が海外メディアなどで話題となっている。そこには、中国に存在する「2つの研究所」が発生源として明記されていた――。

この衝撃的な論文を発表したのは、広東省広州市にある華南理工大学・生物科学与工程学院(School of biology and Biological Engineering)の肖波濤(Botao Xiao、シャオ・ボタオ)教授ら、生物学に通じる研究者。2020年2月6日、新型コロナウイルスの発生源について研究者向けサイト「ResearchGate」に投稿したのである。
この論文はその後、ほどなくして削除された。そして、肖教授らも消息を絶ってしまった。中国政府の情報操作や工作活動に通じる外事関係者が語る。
「論文には、遺伝子レベルで新しいウイルスが開発されていたことを示唆する記述などがあった。中国政府にとっては、とうてい看過できないものだ。場合によっては、国民の暴動などにつながりかねないし、国際的な非難も相当なものになるとみたからだ。論文の削除には中国政府がかかわっている可能性もある。肖教授らも、身柄を拘束されたとみられている」
中国政府は論文を抹消するばかりか、研究者らの口をも封じる強硬策に出たとみられる、というのだ。それほどまでして隠滅しようとした論文には、いったい何が書かれていたのか。
今回、「消された論文」である「The possible origins of 2019-nCoV coronavirus」(新型コロナウイルスの考えうる発生源)の原文を入手した。以下、日本語訳した全文を掲載しよう(読みやすいよう一部に改行を加え、図表や参考文献を示す番号は省略している。太字、見出しは編集部による)。

「コウモリは売られていなかった」

〈新型コロナウイルスが中国で伝染病を発生させた。2020年2月6日までに564人の死者を含め、2万8060人が感染したことが検査で確認されている。今週の(学術誌)ネイチャーの解説によると、患者から検出されたゲノム配列の96%あるいは89%が中型コウモリ由来のZC45型コロナウイルスと一致したという。研究では、病原体はどこから来たのか、そして、それがどのようにしてヒトに伝染したのかを究明することが重要視された。
(世界的な医学誌)「ランセット」の記事では、武漢の41人の人々が重症急性呼吸器症候群に罹っており、そのうち27人が華南海鮮市場を訪れていたと報じられている。伝染病発生後に市場で採集された585のサンプルのうち33から新型コロナウイルスが検出され、伝染病の発生源ではないかとみられた市場は、伝染病が流行している間、発生源隔離の規則に従って閉鎖された。
ZC45型コロナウイルスを運ぶコウモリは、雲南省または浙江省で発見されたが、どちらも海鮮市場から900km以上離れている。(そもそも)コウモリは通常、洞窟や森に生息しているものだ。だが、海鮮市場は人口1500万人の大都市である武漢の住宅密集地区にある。コウモリが市場まで飛んでくる可能性も非常に低い。
自治体の報告と31人の住民および28人の訪問者の証言によると、コウモリは食料源だったことはなく、市場で取引されてもいなかった。コロナウイルスの遺伝子が自然に組み換えされたか、あるいは中間で介在した宿主があった可能性があるが、確たることはこれまでほとんど報告されていない。
他に考えられる感染経路はあるのだろうか? 私たちは海鮮市場の周辺をスクリーニングした結果、コウモリコロナウイルスの研究を行っている2つの研究所を特定した。市場から280メートル以内に、武漢疾病管理予防センター(WHCDC)があった。

「血が皮膚についた」

WHCDCは研究の目的で所内に数々の動物を飼育していたが、そのうちの1つは病原体の収集と識別に特化したものであった。ある研究では、湖北省で中型コウモリを含む155匹のコウモリが捕獲され、また他の450匹のコウモリは浙江省で捕獲されていたこともわかった。ある収集の専門家が、論文の貢献度表記の中でそう記している。
さらにこの専門家が収集していたのがウイルスであったことが、2017年と2019年に全国的な新聞やウェブサイトで報じられている。そのなかでこの専門家は、かつてコウモリに襲われ、コウモリの血が皮膚についたと述べていた。感染の危険性が著しく高いことを知っていた専門家は、自ら14日間の隔離措置を取った。コウモリの尿を被った別の事故の際にも同じように隔離措置を講じたという。ダニが寄生しているコウモリの捕獲で脅威にさらされたことがかつてあった、とも述べていた。
(こうして)捕獲された動物には手術が施され、組織サンプルがDNAおよびRNAの抽出とシーケンシング(塩基配列の解明)のために採取されたという。組織サンプルと汚染された廃棄物が病原体の供給源だった。これらは、海鮮市場からわずか280メートルほどのところに存在したのである。
またWHCDCは、今回の伝染病流行の期間中、最初に感染した医者グループが勤務するユニオン病院に隣接してもいた。確かなことは今後の研究を待つ必要があるが、ウイルスが研究所の周辺に漏れ、初期の患者を汚染したとしてもおかしくない。
もうひとつの研究所は、海鮮市場から約12km離れたところにある中国科学院・武漢ウイルス研究所だ。この研究所は、中国のキクガシラコウモリが2002年から2003年にかけて流行した重症急性呼吸器症候群(SARSコロナウイルス)の発生源であるとの報告を行っている。

「安全レベル強化の必要がある」

SARSコロナウイルスの逆遺伝学システムを用いてキメラウイルス(異なる遺伝子情報を同一個体内に混在させたウイルス)を発生させるプロジェクトに参加した主任研究者は、ヒトに伝染する可能性について報告している。憶測ではあるが、はっきりと言えば、SARSコロナウイルスまたはその派生物が研究所から漏れたかもしれないということだ。
要するに、誰かが新型コロナウイルスの変異と関係していたのである。武漢にある研究所は、自然発生的な遺伝子組み換えや中間宿主の発生源であっただけでなく、おそらく、猛威を振るうコロナウイルスの発生源でもあったのだ。バイオハザード(生物災害)の危険性の高い研究所においては、安全レベルを強化する必要があるだろう。これらの研究所を市内中心部やそのほかの住宅密集地域から遠く離れた場所に移転するような規制が必要ではなかろうか〉

「習近平は「出所を解明せよ」と言うが…」

中国外務省の耿爽報道官は2月20日、この論文が示唆した内容――すなわち「研究機関が発生源であった」とする説について「世界の著名な専門家たちは全く科学的根拠がないと認識している」と明確に否定するコメントを出した。

そして3月に入ると、中国外務省の趙立堅副報道局長が「米軍が武漢にウイルスを持ち込んだ可能性がある」と英語と中国語でツイッターに投稿。その後、新型コロナウイルスの発生源が米軍の研究施設だと推測する記事を紹介するなどもしている。

「嘘も重ねれば真実になる?」

さらに、これを後押しするかのような論文を習近平国家主席が自ら、中国共産党が発行する理論誌「求是」に発表。3月16日に発行された同誌上で、「(新型コロナウイルスの)病原がどこから来て、どこに向かったのか明らかにしなければいけない」と訴えた。
しかし当然ながら、その「どこから来たのか」をいち早く指摘した肖氏らの論文には一切、触れなかった。論文は消え、研究者も消え――中国政府にとってなんとも都合のいい話だが、「嘘も重ねれば真実になる」を地で行く態度には、呆れるほかない。

参照サイト https://gendai.ismedia.jp/articles/-/71310

〈The possible origins of 2019-nCoV coronavirus〉 (Botao Xiao and Lei Xiao)

The 2019-nCoV coronavirus has caused an epidemic of 28,060 laboratory-confirmed infections in human including 564 deaths in China by February 6, 2020. Two descriptions of the virus published on Nature this week indicated that the genome sequences from patients were 96% or 89% identical to the Bat CoV ZC45 coronavirus originally found in Rhinolophus affinis. It was critical to study where the pathogen came from and how it passed onto human.

An article published on The Lancet reported that 41 people in Wuhan were found to have the acute respiratory syndrome and 27 of them had contact with Huanan Seafood Market. The 2019-nCoV was found in 33 out of 585 samples collected in the market after the outbreak. The market was suspicious to be the origin of the epidemic, and was shut down according to the rule of quarantine the source during an epidemic.
The bats carrying CoV ZC45 were originally found in Yunnan or Zhejiang province, both of which were more than 900 kilometers away from the seafood market. Bats were normally found to live in caves and trees. But the seafood market is in a densely-populated district of Wuhan, a metropolitan of ~15 million people. The probability was very low for the bats to fly to the market. According to municipal reports and the testimonies of 31 residents and 28 visitors, the bat was never a food source in the city, and no bat was traded in the market. There was possible natural recombination or intermediate host of the coronavirus, yet little proof has been reported.

Was there any other possible pathway? We screened the area around the seafood market and identified two laboratories conducting research on bat coronavirus. Within ~280 meters from the market, there was the Wuhan Center for Disease Control Prevention (WHCDC). WHCDC hosted animals in laboratories for research purpose, one of which was specialized in pathogens collection and identification. In one of their studies, 155 bats including Rhinolophus affinis were captured in Hubei province, and other 450 bats were captured in Zhejiang province. The expert in collection was noted in the Author Contributions. Moreover, he was broadcasted for collecting viruses on nation-wide newspapers and websites in 2017 and 2019. He described that he was once by attacked by bats and the blood of a bat shot on his skin. He knew the extreme danger of the infection so he quarantined himself for 14 days. In another accident, he quarantined himself again because bats peed on him. He was once thrilled for capturing a bat carrying a live tick.
Surgery was performed on the caged animals and the tissue samples were collected for DNA and RNA extraction and sequencing. The tissue samples and contaminated trashes were source of pathogens. They were only ~280 meters from the seafood market. The WHCDC was also adjacent to the Union Hospital where the first group of doctors were infected during this epidemic. It is plausible that the virus leaked around and some of them contaminated the initial patients in this epidemic, though solid proofs are needed in future study.

The second laboratory was ~12 kilometers from the seafood market and belonged to Wuhan Institute of Virology, Chinese Academy of Sciences. This laboratory reported that the Chinese horseshoe bats were natural reservoirs for the severe acute respiratory syndrome coronavirus (SARS-CoV) which caused the 2002-3 pandemic. The principle investigator participated in a project which generated a chimeric virus using the SARS-CoV reverse genetics system, and reported the potential for human emergence. A direct speculation was that SARS-CoV or its derivative might leak from the laboratory.

In summary, somebody was entangled with the evolution of 2019-nCoV coronavirus. In addition to origins of natural recombination and intermediate host, the killer coronavirus probably originated from a laboratory in Wuhan. Safety level may need to be reinforced in high risk biohazardous laboratories. Regulations may be taken to relocate these laboratories far away from city center and other densely populated places.

この衝撃的な論文を発表したのは、広東省広州市にある華南理工大学・生物科学与工程学院(School of biology and Biological Engineering)の肖波濤(Botao Xiao、シャオ・ボタオ)教授ら、生物学に通じる研究者。2020年2月6日、新型コロナウイルスの発生源について研究者向けサイト「ResearchGate」に投稿したのである。

参照サイト https://gendai.ismedia.jp/articles/-/71310
時任 兼作 ジャーナリスト
2020年03月25日(水)

父への弔辞

お父さんのおかげで今の僕があります。今の自分に自信があるわけではありません。ただ、お父さんは僕のやりたいように、今までの人生を歩かせてくれました。大学院を修了して、就職して、人なみの生活をすることができたら良かったのですけれども、僕は病気になってしまいました。息子らしいことは何もできず、お父さんに苦労ばかりかけてしまいました。お父さんは定年まで働いたと思ったら、脳梗塞を患ってしまい、血管性認知症になった後は、加速して、衰えていきました。お父さんはいつも真面目に頑張る人です。僕はお父さんの真面目に頑張るところが大好きで、僕もそうありたいと思います。お父さんは仕事で会得した役立つことを教えてくれました。例えば「3M」「無理・無駄・ムラ」をなくすように教えてくれました。僕達家族の為に家の建て替えを考えて、毎日、設計図に線を引いては、消し、引いては、消しを繰り返して、立派な家を建てました。生涯で3軒目の家です。また、家族・親族の為にいつも新しい車を運転して、旅行に連れて行ってくれました。僕は少しずつ働けるようになって、実家を出た後、お父さんと一緒に食事をするのが楽しみでした。僕の好きな肉かけ丼をほおばるお父さんやお父さんの好きな寿司を食べたのを覚えています。お父さんの誕生日や記念日にささやかなお祝いをしました。お父さんは定年後には釣りに行く生活をしたいと言っていました。でも、闘病ばかりの定年後になってしまいました。僕はこれから、お父さんやお母さんの為に、ちゃんと社会で貢献できるように生きていきます。僕を生み育ててくれて、本当にありがとうございます。尊敬できるお父さんの子で良かったです。ありがとう。

LINEを作った国はどこですか?日本ですか?

Q. LINEを作った国はどこですか?
日本ですか?
韓国ですか?
周りが意見バラバラなので知りたいです。

A. まずLINEをリリースしているLINE社はNHNという韓国最大手のIT企業の日本法人です。
この日本法人の会長は、実は韓国NHN本社の創業者でもある李海珍さんという韓国の大物企業家であり、名前だけの会長ではなく、日本と韓国を行ったり来たりしながら、日本でのビジネスに力を注いできました。この李海珍さんが作ることを決めたのが「LINE」です。
何故韓国のNHN本社ではなく日本で開発されたかというと、「規模が拡大した本社の代わりに、小さな組織の速やかな意思決定力と集中力を活用するためだった」から。
http://japanese.joins.com/article/267/160267.html 参照

それとよくネット上では日本人が開発、韓国人が開発みたいな単純化した言われかたをしていますが、初期の開発チームのメンバーは15人いて、国籍も「韓国・日本・米国・中国など」と様々です。
http://japanese.joins.com/article/227/149227.html 参照

まとめると、LINEが作られた国は「日本」です。作ったのは韓国企業の「韓国人・日本人・米国人・中国人など」です。

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11119955221 参照

AmaterasUML

UMLを記述するためのツールは多々あります。Eclipseプラグインとしても様々なものが提供されています。Javaプログラミングの開発環境として利用されることの多いEclipseですが,プラグインを入れることにより,UMLモデリングを行う環境としても利用できるようになります。

「AmaterasUML」は,Project Amaterasで開発されているプラグインです。主な機能は以下の通りです。
・主なUML図の記述(クラス図,シーケンス図,アクティビティ図,ユースケース図)
・画像として保存
・Javaクラスのフォワード/リバース・エンジニアリング
・XMI形式のエクスポート/インポート(拡張コンポーネント)

◆導入(インストール)

AmaterasUMLのWebサイトから入手できます(執筆時点の最新はAmaterasUML Version1.3.4)。入手したアーカイブを解凍してできたjarファイルを,Eclipseのプラグイン・フォルダにコピーします。

動作にはGEF(Graphical Editing Framework)が必要です。GEFは,連載第5回「Europa(Eclipse 3.3)の注目機能はこれだ!」で紹介した「Europa」ディスカバリー・サイトに登録されています。また,「Eclipse IDE for Java EE Developers」にはあらかじめ同梱されていますので,別途入手する必要はありません。

◆モデリング

まず,プロジェクトを作成します(メニュー[ファイル]→[新規]→[プロジェクト]で[Java]→[Javaのプロジェクト]を選択)。次に,[ファイル]→[新規]→[その他]で[AmaterasUML]→[クラス図]を選択して,クラス図を作成するためのファイル(ここではsample.cld)を作成します。

クラス図の作成は,パレットから追加したいエンティティを選んで配置し,関連の線でつないでいきます。モデルをダブルクリックするか,プロパティビューで名前や修飾子を編集できます。

属性・操作はエンティティの右クリックメニューから追加します。名前や修飾子の変更はモデル上をダブルクリックか,プロパティビューで行います。

関連の線には,プロパティビューで多重度が設定できるようになっています。

http://itpro.nikkeibp.co.jp/article/COLUMN/20071115/287312/?rt=nocnt 参照

JDBC

Java database connectivity の略。Javaのプログラムからデータベースにアクセスするためのインタフェースの仕様。実際にデータベースにアクセスするためにはJDBCドライバーが必要になる。JDBCドライバーは米オラクルなどのデータベースソフトメーカーなどが提供している。JDBCには、このJDBCドライバーの仕様は含まれていない。JavaのプログラムからJDBCドライバーを呼び出すためにはJDBC APIを利用する。

API

Application Program Interface の略で、ある特定のOSやミドルウェア用のソフトウェア開発時に利用できる命令や関数の集合のこと。また、それらを利用するために定めた規約のこと。ソフトウェアが共通して利用できる機能をOSやミドルウェアのかたちでまとめて提供し、プログラマはそれを「呼び出す」だけで、自分でプログラミングしなくても、その機能を利用したソフトウェアを作成できる。

Java

1995年5月に米サン・マイクロシステムズが開発・発表したオブジェクト指向のプログラミング言語。C++がベースになっている。パソコンやプリンター、携帯電話、テレビなどの家電製品、などさまざまな分野での利用が考えられ、既にNTTドコモやKDDIの携帯電話などで利用されている。Javaという言葉自体が単にプログラミング言語よりも広い概念になっている。
プログラミング言語としては、動的に確保したメモリーが参照されなくなると自動的に解放されるガベージコレクション機能を備え、ポインターの概念がないという特徴がある。
ネットワーク上にあるプログラムをダウンロードしてWebブラウザー上で動かすことができるのも特徴の一つ。このプログラムをJavaアプレットという。これに対し、Webブラウザーなしに単体で動作するものをJavaアプリケーションと呼ぶ。
Javaで作ったプログラムを実行するにはJava VM(Java仮想マシン)というソフトが必要になる。Javaで記述したプログラムをコンパイルすると、Java VM用のバイトコードが生成される。そのため、Java VMを搭載していれば、どのプラットフォームでもJavaで作ったプログラムを動かすことができる。これが、Javaの特徴である「Write Once, Run Anywhere」(一度作成すればどのプラットフォームでも動く)のゆえんである。
OSや機種ごとのプラットフォームに依存しない半面、実行速度はそのプラットフォームに最適化されたソフトに比べて遅くなる。そのためJavaのバイトコードを実行するときに、プラットフォーム依存のコードに変換して実行速度を高速化するJIT(just in time)コンパイラーという技術が使われている。

英単語

[時間の単位]
Year 年
Month 月
Day 日
Hour 時
Minute 分
Second 秒

[数学的要素]
Add 加算
Average 平均
Const 定数
Count 個数
Divide 除算
Multiply 乗算
Random ランダムに
Substract 減算
Sum 合計

[画面デザイン]
Border 境、縁
Button ボタン
Cursor カーソル
Draw 描く
Grid 格子状の、表
Paint 塗る、描く
Rect 矩形(くけい)
Resize サイズ変更
Edit 編集

[プログラミング要素]
Array 配列
Common 共通の
Compare 比較
Create 作る
Dynamic 動的な
Empty 空
Enable 使用可能
Exception 例外
Exchange 交換
Execute 実行
Foward 前へ
Function 関数
Hide 隠す
Insert 挿入する
Initialize 初期化
Length 長さ
Modify 修正
Parse 解析
Previous 以前
Query 問い合わせ
Quit やめる
Read 読む
Reverse 反転
Select 選択
Static 動的な
Status 状態
Template ひな形
Update 更新
Variable 変数
Wait 待つ
Write 書く

GNU C Compiler

「Windows」のデスクトップ上の「Tera Term」のショートカットを用いる
(「Windows」に「Tera Term」をインストールしておく)。
「Linux」のサーバに、一般ユーザーでログインする
(いきなり「root」で、ログインすると、ルートディレクトリで作業することに注意)。
ユーザーディレクトリの中で、スーパーユーザーに交代する。

$ su
パスワード:
#

「GCC」ディレクトリを作成する。

# mkdir GCC
# cd GCC

# vi hello.c

#include <stdio.h>
main () {
printf(“Hello, world.\n”);
}

コンパイル

# gcc hello.c

実行

# ./a.out
Hello, world.

UNIXでは「./」と、カレントディレクトリを指定しないと、
カレントディレクトリのコマンドは実行されない。

「a.out」以外のファイル名にしたい場合は、

# mv a.out hello

とするか、コンパイル時に

# gcc hello.c -o hello

のように指定する。
実行ファイル名に「test」を使用しない
(「test」はUNIXのコマンドなので)。

実行

# ./hello
Hello, world.

BIOINFOMATICS

【ツール】

ZENBU 全部

【参考文献】

河村正二(2009)

錐体オプシン遺伝子と色覚の進化多様性:魚類と霊長類に注目して

比較生理生化学, Vol.26, No.3, pp.110-116

https://www.jstage.jst.go.jp/article/hikakuseiriseika/26/3/26_3_110/_pdf

より引用

【参考Webサイト】

Japanese Society for Bioinformatics – JSBi

バイオインフォマティクス入門

【参考書】

あなたにも役立つバイオインフォマティクス
実践バイオインフォマティクス
東京大学バイオインフォマティクス集中講義
バイオインフォマティクス, 第2版
バイオインフォマティクス基礎講義
バイオインフォマティクス事典
バイオインフォマティクスのためのPerl入門
はじめてのバイオインフォマティクス
理系総合のための生命科学, 第2版

ZENBU 全部

理化学研究所 報道発表資料
http://www.riken.jp/pr/press/2014/20140310_1/
より、引用。

2014年3月10日
理化学研究所
新しいバイオインフォマティクス・ツール「ZENBU」を開発
―ゲノム上の数千もの転写活性を視覚化、解析し、データを共有―

ZENBU 全部
http://fantom.gsc.riken.jp/zenbu/

●ポイント

○複雑なゲノム機能解析システムをWeb上で実現
○バイオインフォマティクスの専門家以外でも直感的に操作可能
○小規模の研究室でも大規模データセットの比較研究が容易に

●要旨

理化学研究所(理研、野依良治理事長)は、ゲノム配列のデータ解析とゲノムブラウザ[1]が連動したバイオインフォマティクス・ツール「ZENBU(ゼンブ)」を開発しました。ZENBUは誰でも無償で利用でき、次世代シーケンサー[2]から量産される大量の遺伝子発現情報の解析や視覚化、さらにはデータ間の比較を容易に行うことが可能です。これは、理研ライフサイエンス技術基盤研究センター(渡辺恭良センター長)機能性ゲノム解析部門(ピエロ・カルニンチ部門長)のアリスター・フォレストチームリーダー、ジェシカ・セヴェリン上級技師と、理研予防医療・診断技術開発プログラム(林崎良英プログラムディレクター)の川路英哉コーディネーターらとの共同研究グループによる成果です。

近年、ゲノム配列を高速解読する次世代シーケンサーの登場に加え、世界中の研究者が遺伝子機能を解析するさまざまな実験手法を利用するようにより、膨大な遺伝子データが生み出されています。しかし、得られた膨大なデータから生物学的意義を探り出す作業に多くの時間と労力がかかっています。バイオインフォマティクスは生物情報を扱う学術分野ですが、計算科学、生命科学両方の専門知識と経験を必要とすることから、研究者ですらその習得には多くの時間と労力を必要としていました。

共同研究グループは、この問題を解消するため、既存のゲノム情報視覚化ツールや解析ツールには実装されていなかった「膨大なデータをインタラクティブに自由自在に組み合わせて視覚化し、各種実験データにおけるさまざまな種類のデータ解析を実施できる」新たなゲノム機能解析ツールZENBUを開発しました。

ZENBUは無料で公開されており、インターネットを経由して利用する他、利用者それぞれのコンピュータにインストールして利用することも可能です。世界中の研究者が、公開後の実験結果をZENBUに登録し共有することで、最先端の研究がより素早く、共同で行われることを促進します。また、それぞれの研究者が自分の持つ実験データを最先端の研究データと比較することにより、新規の実験テーマの創出につながると期待できます。

本研究成果は、英国の科学雑誌『Nature Biotechnology』オンライン版(3月10日付け)に掲載されます。

●背景

近年、次世代シーケンサーの登場と、RNA-seq[3]やChIP-seq[4]、 DHS-seq[5]、CAGE[6]など、世界中の研究者が研究目的に応じた大量のゲノム配列データを一度に取得する革新的な遺伝子解析手法を利用するようになり、ゲノムの機能解析に関わるデータ生産量が急速に増加しています。ゲノムワイドな転写産物や転写因子結合領域の探索が可能になったことで、細胞機能や発生、がんなどの詳細な分子メカニズムの解明が期待されています。ただ、さまざまな手法から生み出される結果を統合し、比較することは、その分子メカニズムを理解するために必須ですが、日々生み出されてくる膨大な全てのデータセットを比較解析することは容易ではありません。既存のゲノム情報視覚化ツールやゲノムデータ管理ツールはいずれも、膨大なデータを視覚化するだけのものであったり、データ解析がリアルタイムで行われないものであったりするなど、1つのツールで全ての機能が実現可能なものはありませんでした。

●研究手法と成果

共同研究グループは、バイオインフォマティクスの経験が少ない利用者でも、次世代シーケンサーなどから産出される膨大なデータを可視化し解析に用いることができるツール「ZENBU(ゼンブ)」を開発しました。

既存のツールとZENBUとの大きな違いは、数千からなる膨大なデータをZENBU上で自由自在に組み合わせて、ゲノム上での特定の領域の発現シグナルをインタラクティブに視覚化、さらにリアルタイムで解析できることにあります。これらの機能が1つのツールで実現できるのが、ZENBUの革新的なポイントです。

現在、ZENBUには、ENCODE[7]及びFANTOM[8]コンソーシアムから6,000を超えるデータが登録されています。それぞれの研究者が自分の持つ実験データをそれらと比較研究することにより、新規の実験テーマの創出につながると期待できます。ZENBUは、次世代シーケンサーなどで得られた数百万以上のゲノム配列データを一度に登録できるように設計されており、ツールの名前であるZENBUの名はこれに由来しています。

●今後の期待

ZENBUは無料で公開されており、インターネットを経由した利用の他に、ソースコードを利用者それぞれのコンピュータにインストールし利用することも可能です。その場合、全てのZENBU利用者は相互接続することが可能であり、世界中の研究者が公開後の実験結果をZENBUに登録し共有することで、最先端の研究を共同で行う環境が構築されると期待できます。

●原論文情報

Jessica Severin, Marina Lizio, Jayson Harshbarger, Hideya Kawaji, Carsten O Daub, Yoshihide Hayashizaki, the FANTOM consortium, Nicolas Bertin, and Alistair RR Forrest. “Interactive visualization and analysis of large-scale NGS data-sets using ZENBU”. Nature Biotechnology, 2014 DOI:10.1038/nbt.2840

●発表者

○理化学研究所
ライフサイエンス技術基盤研究センター 機能性ゲノム解析部門 LSA要素技術研究グループ ゲノム情報解析チーム
チームリーダー アリスター・フォレスト (Alistair Forrest)

○独立行政法人理化学研究所
社会知創成事業 予防医療・診断技術開発プログラム
コーディネーター 川路 英哉 (かわじ ひでや)

●お問い合わせ先

独立行政法人理化学研究所
ライフサイエンス技術基盤研究センター
チーフ・サイエンスコミュニケーター 山岸 敦 (やまぎし あつし)
Tel: 078-304-7138 / Fax: 078-304-7112

●報道担当
独立行政法人理化学研究所 広報室 報道担当
Tel: 048-467-9272 / Fax: 048-462-4715

●産業利用に関するお問い合わせ
理化学研究所 社会知創成事業 連携推進部

●補足説明

[1] ゲノムブラウザ
ゲノム配列やゲノム機能に関する情報を分かりやすいように閲覧するシステム。

[2] 次世代シーケンサー
米国を中心に、従来のDNAシーケンサーが採用していたサンガー法とは異なる原理を採用することで、短いDNA配列をきわめて高速に解読する技術が開発され、活用できるようになった。シーケンサー開発分野は発展が目覚ましく、同じ次世代と言っても大きな性能差があるため、第2世代、第3世代と細分化されるようになっている。最近では、数千塩基以上の長いDNAの配列を決定できるシーケンサーも現れた。

[3] RNA-seq
RNA sequencingの略。組織や細胞で発現している全RNA(トランスクリプトーム)を解析する手法の1つ。mRNAやncRNAの断片的な配列情報(約50-125塩基)を網羅的に取得し、ゲノム配列と対応させることで、遺伝子発現量の定量や新たな転写配列の発見を行う。

[4] ChIP-seq
クロマチン免疫沈降法(chromatin immunoprecipitation:ChIP)と次世代シーケンサーを組み合わせることにより、転写因子などのDNA結合タンパク質や、特定の修飾を受けているヒストンが結合しているゲノム上の箇所を網羅的に解析する手法。

[5] DHS-seq
DNA分解酵素の一種DNaseIの高感受性部位(DNase-I-hypersensitive sites:DHS)であるゲノム領域を網羅的に解析する方法の1つ。細胞内のゲノムDNAはクロマチンと呼ばれる折り畳まれた構造をとるが、遺伝子の転写が活性化している領域などではその構造が崩れ、DNAが露出した状態になっていると考えられている。このような領域のDNAは、DNaseIを用いた酵素処理で50-100塩基対の断片として回収することができるため、次世代シーケンサーによる網羅的な配列決定が行える。ENCODEプロジェクトでは、ヒトゲノム上のDHSを全て記載することが提案されている。

[6] CAGE
Cap Analysis of Gene Expressionの略。理研が独自に開発した方法で、耐熱性逆転写酵素やcap捕捉法を組み合わせて転写物の5’末端の塩基配列を決定する実験手法。この塩基配列を読み取ってゲノム配列と照らし合わせて、どこから転写が始まっているかを調べることが可能。遺伝子の転写開始点をゲノムワイドに同定できる。

[7] ENCODE
ポストゲノム戦略として米国で立ち上げられたプロジェクトで、米国国立衛生研究所(National Institutes of Health:NIH)の国立ヒトゲノム解析研究所 (National Human Genome Research Institute)を中心として、2003年9月から正式に開始された計画。‘ENCODE’とは、Encyclopedia of Human DNA Elements(ヒトDNAの百科事典)から命名されており、完全解読されたヒトゲノム上に、遺伝子の機能を担う領域をすべて書き込んで、全ヒトゲノム (DNA)の百科事典を作成することを目指している。
http://www.genome.gov/10005107

[8] FANTOM
Functional ANnoTation Of Mammalian cDNAの略。哺乳動物(マウス)の遺伝子を網羅的に機能注釈することを主眼とする国際的研究コンソーシアム。2000年に、理研ゲノム科学総合研究センター 遺伝子構造機能研究グループ(旧・オミックス基盤研究領域、現・理研ライフサイエンス技術基盤研究センター 機能性ゲノム解析部門)が中心となって結成した。現在は活動範囲を拡大し、ヒト細胞の多様性を理解するため、さまざまな種類のヒト細胞を使って、転写開始部位の系統的マッピングに取り組んでいる。オーストラリア、シンガポール、スウェーデン、南アフリカ、イタリア、ドイツ、ギリシャ、スイス、英国、米国などを含む全世界の20カ国から、114の研究チームが参加している。

PERL環境構築

64bitのWindows 7 Home Premiumが入ったノートPCに「ActivePerl 5.20.1 Build 2000 (64-bit)」をインストールした。
自動的に、環境変数Pathに「C:\Perl64\site\bin;C:\Perl64\bin;」が設定された。
「C:\PERL」フォルダを作成し、そちらを作業フォルダとした。
「C:\PERL」フォルダのショートカット「PERL」をデスクトップ上に作成した。
PERLのソースファイルは「.pl」という拡張子で、命名する。
最も簡単なプログラム「hello.pl」は、以下の記述となる。

************************************************************
#! C:\Perl64\bin
print “Hello, world!\n”;
************************************************************

デスクトップ上にコマンドプロンプトをコピーし、作業フォルダを「C:\PERL」とした。
上記のプログラムを実行するには、コマンドプロンプト上でソースファイル名を指定すれば良い。

C:\PERL>hello.pl
Hello, world!

さらに、下記のコマンドで、「C:\PERL」フォルダ内に、「hello.pl」の実行結果「Hello, world!」を「hello.txt」というファイルに保存できる。

C:\PERL>hello.pl > hello.txt

※WordPressでは「半角¥マーク」が、「\」(バックスラッシュ)になっているので、ご注意ください。

LATEXの利用(Windows7 64bit)

abtexinst_0_85r1

をダウンロードし、チェックリストを全部チェックする設定で、その他はデフォルトでインストールする。インストールにはかなりの時間を要する。

「TeXworks」の左上が「pdfpLaTex」の状態で、「01.tex」を作成。

************************************************

\documentclass{jsarticle}

\begin{document}

start

\end{document}

************************************************

と記述し、左上の→を押すと、「01.pdf」ができる。

pdfファイルの関連付けが変わっていたら、「adobe」に戻すといい。

フレッツ光コラボレーションについて

転用承諾番号をもとに、転用の手続きを行い、インターネット回線の切替をするというもの。
私は、フレッツ光コラボで、SoftBank光を利用することにしたが、後悔することだらけだった。
総務省が、注意するよう指導しているので、FTTHサービスの乗換えにあたっての注意点を参照して欲しい。

Windows10

2015年07月29日(水)、Windows 10へのアップグレードが可能となった。

アップグレードを予約したPCには、すぐに配信されるものと思っていた。

しかし、なかなか、インストールできるようにはならなかった。

そこで、下記のサイトを参照し、ツールを利用して、アップグレードした。

https://www.microsoft.com/ja-jp/software-download/windows10

Windows8.1Pro(32bit)からWindows10へのアップグレードには時間がかかった。

上記サイトのツールを使うとインストールメディア作成のためのISOイメージもダウンロードできるが、メディアを使ったアップグレードは私は現時点で成功していない。2017

WORDで2ページ目からページ番号を振るには

Wordで、1ページ目に表紙を作った場合など、ページ番号は2ページ目から付けたい時ってありますよね。
その場合、下記の方法で設定できます。

1.ツールバーの「挿入」から「ページ番号」を選択。
2.「ページ番号」の設定画面が出たら、下の「最初のページにページ番号を挿入する」のチェックを外す。
3.「書式」ボタンを押す。
4.「連続番号」の「開始番号」を選択し、番号に「0」を入力。
5.「OK」ボタンで「ページ番号の書式」画面を閉じ、もう一度「OK」ボタンで「ページ番号」画面を閉じる。

これで、ページ番号が0ページから連番に振られ、最初のページにはページ番号が挿入されないため、2ページ目から「1・2・3…」と連番でページ番号が振られます。

参照サイト http://cswmoon.blog12.fc2.com/blog-entry-98.html

「WP Multibyte Patch」の要件

WordPressの「WP Multibyte Patch」プラグインの更新の際、
「お使いの WP Multibyte Patch を有効化するには PHP の mbstring 関数が必要です。」
というエラーが表示された。

解決策として、

ダッシュボードからWP Multibyte Patchを有効化。「お使いの WP Multibyte Patch を有効にするには、PHP の mbstring 関数が必要です。」と表示され場合、php-mbstrigをインストールする必要があります。

【手順】
# yum -y install php-mbstring
# service httpd restart

http://www.eastforest.jp/esthome/?p=286 より引用

ちなみに私のシステム(Fedora20)では、

# yum -y install php-mbstring
# systemctl restart httpd.service

で更新できるようになりました。

Windows10のSendToの場所

ファイルを右クリックした時に表示される「送る(N)」が登録されているのは、

「C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Windows\SendTo」

内に表示されるショートカットです。

こちらに、テキストエディタ(例:TeraPad.exe)などの
ショートカットを入れておくと便利でしょう。

Windows10においてiTunesでiPhoneを同期できない

この場合は、デバイスマネージャーを開き
ポータブルデバイス内に認識している「AppleiPhone」を右クリックして
「ドライバーソフトウェアの更新」を選択
「コンピューターを参照してドライバソフトウェアを検索します」を選択し
「C:\Program Files\Common Files\Apple\Mobile Device Support\Drivers」
を指定しますと、「usbaapl 64.inf」が有りますので
このドライバーに更新します
すると「USB (Universal Serial Bus) コントローラ」の中に
「Apple Mobile Device USB Driver」が認識され
iPhoneが同期可能になります。

http://giantcone.blog.jp/archives/33267645.html 参照

母の誕生日

偉大なる、お母さんへ

いつも色々とありがとうございます。誕生日、おめでとうございます。妻から、「お母さんの誕生日のお祝いに、お手紙を書きましょうよ。」という、私にとっても、ありがたい提案がありました。

私が常日頃から思うに、私の最大の幸福は、お父さんとお母さんの子として、生まれてきたことです。こんなに自由に、自分勝手に、生きてこられたのは、お二人の甚大なるお力があってのことと、心から感謝申し上げます。それにも関わらず、私は自分の人生や家族を大切にしない、親不孝な息子でした。命やお金や時間を浪費して、お二人の人生や家庭や家計を圧迫したことをお許し下さい。

働いたり、子育てしたり、家庭菜園をしたり、お父さんの介護をしたり、本当に大変なことを、当たり前のようにやっているお母さんを私は、「世界一の母」と思っています。そんなお母さんに、旅行やおしゃれや遊びもさせてあげられない自分を情けなく思います。これからは、私が実家に帰った時だけでなく、少し私をあてにして下さい。私にできるのは、お母さんの愚痴を聞くことくらいかもしれませんけれども。

お母さんは、おばあさんよりも、長生きすることを目標とされていたましたね。是非、元気で長生きして下さい。お願い申し上げます。

コスモス

コスモス

ガラケーの終焉

従来型携帯の生産終了 国内各社、17年以降
NECは端末完全撤退

パナソニックなど日本の携帯端末メーカーが独自の基本ソフト(OS)を載せた従来型携帯電話、通称「ガラケー」の生産を2017年以降に中止する。スマートフォン(スマホ)の普及が進み、ほぼ日本だけで通用する従来型携帯は開発が重荷になっていた。コスト削減のため、開発する全端末のOSをスマホの標準である米グーグルのアンドロイドに統一する。日本がかつてけん引した従来型携帯の基幹技術がその役割を終える。

2015/4/24 2:00情報元日本経済新聞 電子版 より引用