「Set」を含む日記 RSS

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

2018-11-10

増田プログラマー養成講座 その19 SQLデータ更新

前回は、Webアプリの骨組み(スケルトン)に、SQLデータの追加と取得をやりました。

今回は、SQLデータ更新をやりましょう。

 

メッセージ更新

 

編集ページにジャンプするリンク

前回作ったメッセージ一覧に、[編集]のリンクも入れておいた。

<td><a href="welcome/update/<?php echo $item['id']; ?>">編集</a></td>

という1行の部分。

[編集]をクリックすると、編集用ページにジャンプする。

ブラウザーHTMLソースを見ると、以下のようなHTMLになってるはず。

<td><a href="welcome/update/2">編集</a></td>

これは「メッセージID番号が2」を対象にして、編集ページにジャンプすることを意味する。

 

Controllerの改造

編集用ページのコントローラーを作ろう。

「http://localhost/waf/welcome/update/2」というURL編集ページにアクセスしたら、メッセージID番号の「2」を受け取れるようにしたい。

URL文字列を処理して「2」を取り出せるようにしよう。

 

// 更新画面

public function update($id = '')

{

 echo "ID=".$id;

 $this->load->view('chat_update');

}

 

CodeIgniterでは、URLから文字列を取り出す方法がいくつか用意されている。

  1. 「update($id = '')」のようにメソッド引数「$id」を用意すれば、「2」の部分を取り出せる。
  2. 引数を使う以外の方法も用意されていて、「$id = $this->uri->segment(3);」のように書けば、「2」の部分を取り出せる。

// 更新画面

public function update()

{

 $id = $this->uri->segment(3);

 echo "<hr> ID=".$id;

 $this->load->view('chat_update');

}

 

Controllerの改造の解説

CodeIgniterで、URL文字列から特定部分の文字列を取り出す方法を見ておこう。

 

例えば、「http://localhost/waf/welcome/update/aaa/bbb/ccc」というURLアクセスしたときCodeIgniterではURL中の「aaa」「bbb」「ccc」という部分は、以下のようにして取り出せる。

$seg1 = $this->uri->segment(1); // → 1番目のURL文字列:「welcome」=コントローラークラス

$seg2 = $this->uri->segment(2); // → 2番目のURL文字列:「update」=クラスの中のメソッド

$seg3 = $this->uri->segment(3); // → 3番目のURL文字列:「aaa」の部分

$seg4 = $this->uri->segment(4); // → 4番目のURL文字列:「bbb」の部分

$seg5 = $this->uri->segment(5); // → 5番目のURL文字列:「ccc」の部分

URLを「/」で区切って、base_url(http://localhost/waf/)の次から順番に、1番目のURL文字列、2番目のURL文字列、3番目のURL文字列、…とsegment()メソッドで順番を指定すれば取得できる。

 

Modelの改造

データベースでメッセージID指定して、メッセージを取り出す機能を用意しよう。

 

ファイルに以下のメソッドを追加する。

// Read by Id

public function read_message_by_id($id = 0)

{

 $sql = "SELECT * FROM talk WHERE id = ?";

 $param = array($id);

 $query = $this->db->query($sql, $param);

 return $query->row_array();

}

 

Modelの改造の解説

SQLの「WHERE」句で、絞り込む条件を指定できる。

 

SELECT * FROM talk WHERE id = ?

「WHERE id = 2」とすれば、メッセージID番号が2のメッセージデータが「talkテーブルから取り出せる。

もし該当するデータがなければ、返されるデータは空になる。(データが返ってこない。)

 

CodeIgniterの「row_array()」は、1件分のデータ配列の形にして返すメソッドだ。

 

Viewの改造

ファイルの内容を以下のように編集する。

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>編集</h2>

  <p>メッセージを変更して「更新する」ボタンを押してください。</p>

  <form action="welcome/update" method="post" accept-charset="utf-8">

   <label>メッセージ</label>

   <?php if (isset($talk)): ?>

   <input type="text" name="message" value="<?php echo $talk['message']; ?>">

   <input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

   <input type="hidden" name="action" value="update">

   <?php else: ?>

   <p>※該当するメッセージがありません。</p>

   <?php endif;?>

   <button>更新する</button>

  </form>

  <p><a href="welcome/index">戻る</a></p>

 </body>

</html>

 

Viewの改造の解説

データベースから取り出した1件分のメッセージを表示する部分を追加した。

<input type="text" name="message" value="<?php echo $talk['message']; ?>">

の「<?php echo $talk['message']; ?>」という部分だ。

これで変更したいメッセージの本文を表示できる。

 

あと、編集したメッセージWebサーバーに送信できるように、Formタグ送信ボタン(「更新する」の部分)も追加した。

このときメッセージID番号も送信できるように、

<input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

という1行も仕込んである

 

Controllerの改造

ファイルの内容を以下のように編集する。

// 更新画面

public function update($id = '')

{

 $id = $id ? $id : $this->input->post('id'); // id -> segment or post

 $action = $this->input->post('action');

 if ($action == 'update') {

  $message = $this->input->post('message');

  $this->chat_model->update_message($id, $message);

 }

 $data['talk'] = $this->chat_model->read_message_by_id($id);

 $this->load->view('chat_update', $data);

}

 

Controllerの改造の解説

メッセージID番号を指定して、データベースから取り出し、Viewに渡すデータを用意している。

$data['talk'] = $this->chat_model->read_message_by_id($id);

 

ユーザーメッセージ編集をしてWebサーバーに送信したら、データ更新する指示を出す部分も追加した。

$action = $this->input->post('action');

if ($action == 'update') {

 $message = $this->input->post('message');

 $this->chat_model->update_message($id, $message);

}

モデルにupdate_message()メソッドを用意して、$idと$messageを渡せば、該当データ更新するようにしたい。

次は、モデルでupdate_message()メソッドを用意しよう。

 

Modelの改造

ファイルの内容を以下のように編集する。

// Update

public function update_message($id = 0, $message = '')

{

 $sql = "UPDATE talk SET message = ? WHERE id = ?";

 $param = array($message, $id);

 $this->db->query($sql, $param);

 return $this->db->affected_rows();

}

 

Modelの改造の解説

SQLの「UPDATE」を使えば、指定したレコード(1件分のデータ)を更新できる。

「UPDATE talk SET message = ? WHERE id = ?」で、talkテーブルmessageid指定して更新している。

 

CodeIgniterの「affected_rows()」メソッドは、更新した行数を返す。=成功なら1行、失敗なら0行となる。

 

補足

コントローラーの「$id = $id ? $id : $this->input->post('id');」という行は、$idの受け取り方が2パターンあるので、それに対応している。

編集ページの表示で、1回目の表示と、2回目以降の表示で、$idの受け渡し方が変わっている。

  • 1回目:URLに埋め込まれID番号をupdate($id = '')の引数$idで受け取っている。($this->uri->segment(3)で受け取るのと同じ)
  • 2回目以降:Formタグで送られてきた$idを$this->input->post('id')で受け取っている。

URLに埋め込む方法上記の1回目のような方法)は、ユーザー勝手に値をいじれるので、基本的には使わない方が良い。

 

まとめ

以上で、SQLの「UPDATE」を使った、データ更新ができた。

長々と説明したが、今回の大事な点は、SQLの「UPDATE」の使い方だ。

CodeIgniterの使い方や、Webサイトの作り方(FormタグなどのHTML知識)は、オマケ程度に見ておいて欲しい。

 

次回は、データを削除するSQLDELETE」の使い方を見てみよう。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう

anond:20181026145516 増田プログラマー養成講座 その12 データベースの参考書

anond:20181028152656 増田プログラマー養成講座 その13 SQL文法

anond:20181031014212 増田プログラマー養成講座 その14 Webアプリの試作品作成

anond:20181101225335 増田プログラマー養成講座 その15 Webアプリの完成見本

anond:20181101230220 増田プログラマー養成講座 その16 Webアプリの完成見本(続き)

anond:20181104161900 増田プログラマー養成講座 その17 Webアプリの骨組み

anond:20181104233013 増田プログラマー養成講座 その18 SQLデータの追加と取得

anond:20181110120715 増田プログラマー養成講座 その19 SQLデータ更新 ←★今ここ★

anond:20181110182445 増田プログラマー養成講座 その20 SQLデータの削除

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-11-04

増田プログラマー養成講座 その18 SQLデータの追加と取得

前回は、Webアプリの骨組み(スケルトン)までを作って、製作過程を見てみました。

今回は、データベースCRUD操作を行なって、チャットメッセージを追加/取得/変更/削除する機能実装してみましょう。

 

Visual Studio Codeの準備

Webアプリを作るときに、「Visual Studio Code」というIDE統合開発環境)を使ってみましょう。PHP用の各種プラグイン(「PHP IntelliSense」「PHP Debug」など)を入れておけば、便利に使える。

 

メッセージの追加

  1. ViewHTMLのFormタグを使って、メッセージ入力送信できるようにする。
  2. Controller:Viewから送信したデータを受け取れるようにする。
  3. Model:Controllerが受け取ったデータデータベースに保存する。

という機能実装してみよう。

 

Viewの改造

ファイルの内容を以下のように編集する。

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>新規投稿</h2>

  <form action="welcome/index" method="post" accept-charset="utf-8">

   <label>メッセージ</label>

   <input type="text" name="message">

   <input type="hidden" name="action" value="add">

   <button>投稿する</button>

  </form>

 </body>

</html>

 

Viewの改造の解説

本当はセキュリティーを考慮して、入力値の検査バリデーション)とか、もっといろいろな仕込みが必要だが、ここでは練習なので省略します。

 

Controllerの改造

 

ファイルの内容を以下のように編集する。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Welcome extends CI_Controller

{

 public function __construct()

 {

  parent::__construct();

  $this->load->model('chat_model');

  $this->load->helper('url');

  $this->output->enable_profiler(true); // for debug

 }

 

 // 初期画面

 public function index()

 {

  $action = $this->input->post('action');

  if ($action == 'add') {

   $message = $this->input->post('message');

   $this->chat_model->create_message($message);

  }

  $this->load->view('welcome_index');

 }

 

 // 更新画面

 public function update()

 {

  $this->load->view('chat_update');

 }

 

 // 削除画面

 public function delete()

 {

  $this->load->view('chat_delete');

 }

}

 

Controllerの改造の解説

 

Modelの改造

ここでやっとSQL文の登場だ!!!

SQL説明たかったのに(SQLとは本質的関係がない)Webアプリ説明が延々と続いた。(説明方法を変えた方がいいねw)

データベースデータを保存(追加)するSQLコマンド「INSERT」を使ってみよう!

 

ファイルの内容を以下のように編集する。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Chat_model extends CI_Model

{

 public function __construct()

 {

  parent::__construct();

  $this->load->database();

 }

 

 // Create

 public function create_message($message = '')

 {

  $sql = "INSERT INTO talk SET create_at = ? , message = ?";

  $param = array(date('Y-m-d H:i:s'), $message);

  $this->db->query($sql, $param);

  return $this->db->insert_id();

 }

}

 

Modelの改造の解説

 

以上、メッセージの追加を実現するために、MVCの各パーツを用意した。これでメッセージの追加だけができるようになった。

これだけではメッセージの取得=表示がまだできないので、次はデータベースからメッセージデータを取得して、Webページに表示できるように改造しよう。

 

メッセージの取得

SQLの「SELECT」を使えば、データベースからデータを取り出せる。

メッセージデータを取り出して、Webページの表示で使おう。

 

Modelの改造

ファイルの内容を以下のように編集する。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Chat_model extends CI_Model

{

 public function __construct()

 {

  parent::__construct();

  $this->load->database();

 }

 

 // Create

 public function create_message($message = '')

 {

  $sql = "INSERT INTO talk SET create_at = ? , message = ?";

  $param = array(date('Y-m-d H:i:s'), $message);

  $this->db->query($sql, $param);

  return $this->db->insert_id();

 }

 

 // Read All

 public function read_message()

 {

  $sql = "SELECT * FROM talk";

  $query = $this->db->query($sql);

  return $query->result_array();

 }

}

 

Modelの改造の解説

 

これでデータベースからデータを取り出すSQLメソッドモデルに用意できた。

 

Controllerの改造

 

ファイルの内容を以下のように編集する。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Welcome extends CI_Controller

{

 public function __construct()

 {

  parent::__construct();

  $this->load->model('chat_model');

  $this->load->helper('url');

  // $this->output->enable_profiler(true); // for debug

 }

 

 // 初期画面

 public function index()

 {

  $action = $this->input->post('action');

  if ($action == 'add') {

   $message = $this->input->post('message');

   $this->chat_model->create_message($message);

  }

  $data['talk'] = $this->chat_model->read_message();

  $this->load->view('welcome_index', $data);

 }

 

 // 更新画面

 public function update()

 {

  $this->load->view('chat_update');

 }

 

 // 削除画面

 public function delete()

 {

  $this->load->view('chat_delete');

 }

}

 

Controllerの改造の解説

これは全部CodeIgniterで用意されている機能なので、マニュアルを読めば使い方が分かるようになってます

 

Viewの改造

ファイルの内容を以下のように編集する。

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>新規投稿</h2>

  <form action="welcome/index" method="post" accept-charset="utf-8">

   <label>メッセージ</label>

   <input type="text" name="message">

   <input type="hidden" name="action" value="add">

   <button>投稿する</button>

  </form>

  <h2>投稿一覧</h2>

  <table border="1" cellpadding="5" cellspacing="0" bordercolor="#CCCCFF">

   <tr>

    <th>No.</th>

    <th>投稿日時</th>

    <th>メッセージ</th>

    <th>編集</th>

    <th>削除</th>

   </tr>

   <?php if(isset($talk)): ?>

   <?php foreach($talk as $item): ?>

   <tr>

    <td><?php echo $item['id']; ?></td>

    <td><?php echo $item['create_at']; ?></td>

    <td><?php echo $item['message']; ?></td>

    <td><a href="welcome/update/<?php echo $item['id']; ?>">編集</a></td>

    <td><a href="welcome/delete/<?php echo $item['id']; ?>">削除</a></td>

   </tr>

   <?php endforeach; ?>

   <?php endif; ?>

  </table>

 </body>

</html>

 

Viewの改造の解説

 

説明文が300行を超えてしまった!これ以上は増田で表示できない。)次回はメッセージの変更をやってみよう。

 


anond:20181104161900 増田プログラマー養成講座 その17 Webアプリの骨組み

anond:20181104233013 増田プログラマー養成講座 その18 SQLデータの追加と取得 ←★今ここ★

anond:20181110120715 増田プログラマー養成講座 その19 SQLデータ更新

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-11-01

増田プログラマー養成講座 その15 Webアプリの完成見本

前回は、Webアプリモックアップ(ハリボテ)を作るところまでやりました。

今回は、Webアプリ機能実装してみましょう!

 

学習の狙い

データベースを使ったWebアプリを作って、データベースの基本操作CRUDの4つ)を練習してみよう!

CRUD
  1. Create 追加
  2. Read  取得
  3. Update 更新
  4. Delete 削除

 

説明の順番について

どういう順番で説明したら分かりやすいか検討してみた。

  1. まず先に、Webアプリの完成見本を提示します。
  2. 続いて、作る過程説明しながら、各プログラム意味説明してみます

 

作業の流れ

ざっくりと、以下のような流れで作っていきます

  1. XAMPPを起動する。(参考 anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備)
  2. CodeIgniterインストールする。(参考 anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう)
  3. phpMyAdminでデータベース操作する。(参考 anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう)
  4. ApacheWebサーバーソフト)の設定を変更する。(今回説明
  5. Visual Studio Code等のツールプログラムを書く。(次回説明
  6. ブラウザー動作確認する。

 

XAMPPを起動させる

(参考 anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備)

講座その6を参考にして、XAMPPを起動させて、ApacheMySQLスタートして下さい。

 

CodeIgniterインストールする。

(参考 anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう)

講座その9を参考にして、XAMPPの中にCodeIgniterインストールしておきます

 

phpMyAdminでデータベース操作する。

(参考 anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう)

講座その11を参考にして、MySQLWebアプリ用のデータベーステーブル作成しておきます

 

データベースの設定

講座その11で、データベース練習で「chat」というデータベースを作ってみました。

そのときmessage」というテーブル作りましたが、今回Webアプリで使うテーブルとして新たに「talk」というテーブル作成します。

(補足:前に作ったテーブルmessage」の中に、テーブル名と同じ「message」という名前カラム(列)を作ってました。これでも問題ないんだけど、プログラムを書くときテーブル名とカラム名を混同しないようにしたいので、念のため作り変えときましょう。)

 

talkテーブル新規作成する

SQLで「talk」というテーブルを作る場合、以下のようなSQL文になります

CREATE TABLE `talk` (

 `id` int(11) NOT NULL,

 `create_at` datetime NOT NULL,

 `update_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

 `message` text NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

このSQL文をphpMyAdminで実行すれば「talkテーブルを作れます

  1. phpMyAdminを開く。
  2. データベース「chat」を開く。(前に作った「messageテーブルは使わないので削除してもOK
  3. phpMyAdmin画面の上部メニューの「SQL」をクリックする。
  4. データベース chat 上でクエリを実行する:」の空欄に上記SQL文をコピーして実行すれば、「talk」というテーブルができる。

 

これでデータベースの準備ができました。

 

Apacheの設定

CodeIgniterで使う「URL」の表示方法ちょっと変更しておきたいので、ApacheWebサーバーソフト)の設定を変更しておきます

(「URL」=情報がどこにあるのかを示すインターネット上の住所)

Apacheの「mod_rewrite」という仕組みによって、URLの扱い方を変更します。)

 

(例)

変更前: http://localhost/waf/index.php/welcome/

変更後: http://localhost/waf/welcome/

というように、URLの中にある「/index.php」という文字列を表示させない設定にします。

 

Apache設定ファイル.htaccess

Apacheの設定は「.htaccess」という名前設定ファイルを用意して変更します。

 

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

 

.htaccess」の書き方を理解するには、「正規表現」という仕組みの知識必要です。

まだ「正規表現」を勉強してない段階では、とりあえずコピペして使って下さい。

 

Webアプリ完成見本

CodeIgniterで、

を行ないます

 

CodeIgniter設定ファイルconfig.php」の編集

config.php」をIDEやエディターで開いて、以下のように変更する。

$config['base_url'] = 'http://localhost/waf/';

$config['index_page'] = '';

 

最初は、

$config['index_page'] = 'index.php';

になってるけど、「index.php」を削除して、「''」(空)にしておく。

 

CodeIgniterデータベース設定ファイル「databese.php」の編集

「databese.php」をIDEやエディターで開いて、以下のように変更する。

$db['default'] = array(

 'dsn' => '',

 'hostname' => 'localhost',

 'username' => 'root',

 'password' => '',

 'database' => 'chat',

 'dbdriver' => 'mysqli',

(※上記のように、MySQLのusernamepasswordは「root」(管理者)のデフォルト設定を使ってます。)

 

Controllerの作成

上記フォルダの中に「Welcome.php」というファイルを作って、内容を以下のようにします。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Welcome extends CI_Controller

{

 public function __construct()

 {

  parent::__construct();

  $this->load->model('chat_model');

  $this->load->helper('url');

  // $this->output->enable_profiler(true); // for debug

 }

 

 // 初期画面

 public function index()

 {

  $action = $this->input->post('action');

  if ($action == 'add') {

   $message = $this->input->post('message');

   $this->chat_model->create_message($message);

  }

  $data['talk'] = $this->chat_model->read_message();

  $this->load->view('welcome_index', $data);

 }

 

 // 更新画面

 public function update($id = '')

 {

  $id = $id ? $id : $this->input->post('id'); // id -> segment or post

  $action = $this->input->post('action');

  if ($action == 'update') {

   $message = $this->input->post('message');

   $this->chat_model->update_message($id, $message);

  }

  $data['talk'] = $this->chat_model->read_message_by_id($id);

  $this->load->view('chat_update', $data);

 }

 

 // 削除画面

 public function delete($id = '')

 {

  $id = $id ? $id : $this->input->post('id');

  $action = $this->input->post('action');

  if ($action == 'delete') {

   $this->chat_model->delete_message($id);

  }

  $data['talk'] = $this->chat_model->read_message_by_id($id);

  $this->load->view('chat_delete', $data);

 }

}

 

View作成

上記フォルダの中に「welcome_index.php」「chat_update.php」「chat_delete.php」という3つのファイルを作って、内容を以下のようにします。

 

Viewファイル「welcome_index.php」の中身

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>新規投稿</h2>

  <form action="welcome/index" method="post" accept-charset="utf-8">

   <label>メッセージ</label>

   <input type="text" name="message">

   <input type="hidden" name="action" value="add">

   <button>投稿する</button>

  </form>

  <h2>投稿一覧</h2>

  <table border="1" cellpadding="5" cellspacing="0" bordercolor="#CCCCFF">

   <tr>

    <th>No.</th>

    <th>投稿日時</th>

    <th>メッセージ</th>

    <th>編集</th>

    <th>削除</th>

   </tr>

   <?php if(isset($talk)): ?>

   <?php foreach($talk as $item): ?>

   <tr>

    <td><?php echo $item['id']; ?></td>

    <td><?php echo $item['create_at']; ?></td>

    <td><?php echo $item['message']; ?></td>

    <td><a href="welcome/update/<?php echo $item['id']; ?>">編集</a></td>

    <td><a href="welcome/delete/<?php echo $item['id']; ?>">削除</a></td>

   </tr>

   <?php endforeach; ?>

   <?php endif; ?>

  </table>

 </body>

</html>

 

Viewファイル「chat_update.php」の中身

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>編集</h2>

  <p>メッセージを変更して「更新する」ボタンを押してください。</p>

  <form action="welcome/update" method="post" accept-charset="utf-8">

   <label>メッセージ</label>

   <?php if (isset($talk)): ?>

   <input type="text" name="message" value="<?php echo $talk['message']; ?>">

   <input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

   <input type="hidden" name="action" value="update">

   <?php else: ?>

   <p>※該当するメッセージがありません。</p>

   <?php endif;?>

   <button>更新する</button>

  </form>

  <p><a href="welcome/index">戻る</a></p>

 </body>

</html>

 

Viewファイル「chat_delete.php」の中身

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>削除</h2>

  <p>以下のメッセージを削除しますか?</p>

  <form action="welcome/delete" method="post" accept-charset="utf-8">

   <?php if (isset($talk)): ?>

   <p style="background-color:lightpink"><?php echo $talk['message']; ?></p>

   <input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

   <input type="hidden" name="action" value="delete">

   <?php else: ?>

   <p>※該当するメッセージがありません。(または削除済です。)</p>

   <?php endif;?>

   <button>削除する</button>

  </form>

  <p><a href="welcome/index">戻る</a></p>

 </body>

</html>

 

Model作成

上記フォルダの中に「Chat_model.php」というファイルを作って、内容を以下のようにします。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Chat_model extends CI_Model

{

 public function __construct()

 {

  parent::__construct();

  $this->load->database();

 }

 

 // Create

 public function create_message($message = '')

 {

  $sql = "INSERT INTO talk SET create_at = ? , message = ?";

  $param = array(date('Y-m-d H:i:s'), $message);

  $this->db->query($sql, $param);

  return $this->db->insert_id();

 }

 

 // Read All

 public function read_message()

 {

  $sql = "SELECT * FROM talk";

  $query = $this->db->query($sql);

  return $query->result_array();

 }

 

 // Read by Id

 public function read_message_by_id($id = 0)

 {

  $sql = "SELECT * FROM talk WHERE id = ?";

  $param = array($id);

  $query = $this->db->query($sql, $param);

  return $query->row_array();

 }

 

 // Update

 public function update_message($id = 0, $message = '')

 {

  $sql = "UPDATE talk SET message = ? WHERE id = ?";

  $param = array($message, $id);

  $this->db->query($sql, $param);

  return $this->db->affected_rows();

 }

 

 // Delete

 public function delete_message($id = 0)

 {

  $sql = "DELETE FROM talk WHERE id = ?";

  $param = array($id);

  $this->db->query($sql, $param);

  return $this->db->affected_rows();

 }

}

 

この続きは、

anond:20181101230220 増田プログラマー養成講座 その16 Webアプリの完成見本(続き)」

へ続きます

2018-06-30

anond:20180630130834

>実力がないけど勝たなきゃないんだから、勝つためならルール内でなら何をしてもいい、という考え方はよくないよ。

完璧ルール作りが至難であるのだからルールには書かれてなくてもモラルでもって禁ずるべきことはあるし、

>それによって負けてしまうのであれば、それはまだ勝つべ存在ではなかったということで敗退を受け入れるべき。

うん、そういう思想信条主義主張があってもいいと思う。

>そして地道に力をつけて、堂々と勝てるようになった時に勝てばいい。

例えば1992年の星陵高校松井秀喜の5打席連続敬遠についてはどう思う? 当時の明徳義塾高校の馬淵監督は「当時の星陵には一人、松井と言うプロが混じっていた」と回想している。素人高校生が、事実上プロ松井にどうやって勝てばいいわけ

>勝ち進むことが最優先目的であり最上価値だと考える人間は「ルール内なら何をやっても、結果を出せばいい、結果が全て」とか言う人もいるけど、その価値観はよくない。

FIFA大会行動規範には「勝つためにプレーする」という文言がありますけど?

1.Play to Win

Winning is the object of playing any game. Never set out to lose. If you do not play to win, you are cheating your opponents, deceiving those who are watching, and also fooling yourself. Never give up against stronger opponents but never relent against weaker ones. It is an insult to any opponent to play at less than full strength. Play to win, until the final whistle.

卑劣な振る舞いをしたことで、一般人サッカーという競技に興味を失ったり、子供失望したり、世界から日本への信用(実力の有無への信用ではなく、誠実さへの信用)を失ったりして、それでもなお決勝トーナメント進出には無上の価値があるなんていうのは間違ってる。

卑劣かどうかは、主観によるよね。前述の松井五打席連続敬遠について言えば、当時は高知県民は比較好意的に受け止めていた。

>別の言い方をすれば、大会内の順位ではなく、競技日本サッカー界へのイメージへの影響なども含めてが結果なのであって、「結果が全て」ならそういうことも含めて考えるべきだ。

大会実績だけが結果じゃない、全てが結果なんだ。

そんなことを言い出したら、ハリル前監督西野監督の「ベスト8を目指す」という目標設定自体おかしい、という話になてくる。

2018-04-26

『母』という言葉から目指す真の男女平等とは

 雌雄を決するのは雌が劣ってるって意味からNGだし、奥さんも家内も亭主も主人もNGらしい。なるほど。

 昨今世間では男女差別に厳しい。そんな中で、『母』という言葉不用意に濫用されている。例えば『母性』は子供を包み込むような資質で、『父性』は忍耐や規範責任を教えるような資質を指すらしいんだけど今どき『女らしい』『男らしい』って表現男女差別だと叫ばれるのだから母性父性も明らかに男女差別に当たるのでは!

 と本気で思ったわけでは一切ないのだけれど、日本語ってけっこう『母』って熟語が多いからどんどん『親』に変えてみようと思ったわけですね。

———-

母性本能 → 親性本能 父性母性が一緒になったようで分かりにくいね母性は親性にするとして、父性をどうするかという課題が残る。社会性でいいんじゃないですかね(適当)。

・母校、母港 → 親校、親港

 母港が母なのは女性名詞のあるヨーロッパ言語で船が女性名詞だからだという。航空母艦とか。男は女たる船に乗っちゃうぜってことだし、女は港で待ってろってことでしょ。ほらほら職業差別じゃん。航空母艦(空母)も空親にしなければなりませんね。

母集団 → 親集団

 これは異論なく親集団に変えてもいいのでは?なんで母なんだろう。父集団はないのにね。これも女性名詞のせいなのだろうか。ちょっと調べてみたら英語だとPopulationまたはParent Setって言うらしいからまさに親集団だった。やったぜ。

・母数 → 親数

 ほぼ母集団と同じ。母集団の総数が母数らしいので、親集団になったらその総数は親数ということになるでしょう。

・分母 → 分親

 数学からの参戦多いな。まぁ、多分これも母数に対する子の数って感じで分母分子って言ってるんでしょう。真面目に考えると母に対する子の数ってだいたい一対多になるわけだから不適切だよね。分親にしても二対多だけどね。いやもっと母親複数いるような複雑な家庭なのかもしれない。一夫一妻制が始まったのなんて歴史を振り返れば最近の話だしね。とりあえず分親って文字にすると『親分の分親』とか言って回文作って遊ぶ世界線が見える見える。

母音(母韻) → 親音(親韻)

 数学に負けていられないと国語からの参戦。分母分子関係と同様に母音子音の関係なのだから親音でいいじゃんと思ったんだけど頑張って調べたら明治初期は『母音⇔子音』ではなく『母音⇔父音』と言われることもあったらしいので『親音』にしてしまうのは少し憚られたけどほら今明治じゃないから。平成も終わろうとしてるから

母体 → 親体

 母親の体、という意味で使う母体はそのまま母体でいいと思うんですけど、『あの市民団体母体はもともと極右企業だった』みたいな使い方の時は親でいいのでは?まぁ分かるよ。子どもが産まれてくるのって母からだもんね。いやでもほら父だって精子提供してるからこれも親体でいいと思うんですけど(提案)。

母屋 → 親屋

 母屋というのは、離れとかある屋敷のメイン部分を指すので、これは女性差別というよりは男性差別と言えなくもないかもしれない。いや、主に家にいるのが女性から母屋になった、と考えるとこれは家内や奥様と同じ理由女性差別からやはりここは親屋にするべきそうすべき。

母国 → 親国

 母国語とかもそうだけどなんで自国は母なんだろう。これも生まれ育った生家を母屋っていうのと同じように、生まれ育った国を母国って言うのであれば、女は自国から出られないって意味女性差別からやはりここも親国ということになるでしょうそうでしょう。

・母指球 → 親指球

 手足の親指がくっついてる付け根のところのことです。自転車乗る時にペダル踏み込む位置は母指球がいいらしいよ。普通に考えて親指は『親』指って言うのにその付け根が母指球って言うのおかしいからぜひとも親指球に変えるべき。いよいよ難癖みたいになってきましたNe

雲母 → 雲親

 雲母って言うのは鉱石のことで『うんも』って読むんだけど、中国では『雲の湧き出るところにある鉱石』と言われてるから雲を産む母という感じで雲母になったらしい。じゃぁ『母体』のときと同じ理由で雲親でオッケーということで。ちなみに日本だと『割るとキラキラ光る』って理由で『きらら』と呼ばれていたので『雲母』は『きらら』って読むしGoogle日本語入力だとちゃんと変換もできる。ほら雲母言葉って適当なんだなって思えてきてこの雲親ってのもありな感じしてくるよね。よね。

例外

乳母乳母

 乳母は調べてみたら、母の代わりに乳をあげる人が原義らしいので父の乳は出ないので乳母乳母で良いということになります

・母刀自 → 母刀自

 『おもとじ』って読んで母を敬って言うことばだからそのままなんだけど誰も知らないよね。 

・水母 → 水母

 一生懸命調べたけど、なんでクラゲを水母って書くか分からなかったのでそっとしておきましょう。水上機母艦の略で水母って言う場合は水親にしましょう。

———-

 というわけで母という言葉いか差別用語として使われているかをご理解いただいたかどうかはさておいて、なんだかよくわからないけど母って言葉は多くの言葉に使われているんだなぁと思って感心しました。熟語じゃないけど母なる海とか母なる大地とかもですね。

 他にもあったらぜひとも親に変えていただければと思います

2018-02-18

ことばの物語としてのJust Because!


Just Because …多義性が顕著な現代英語の生きたイディオム。「なんとなく」「ただそれだけで」「ただそれだけのために」などさまざまに訳される。アニメでは物語の進行にあわせてこのイディオムニュアンスが変容する。あるいはこのニュアンスの変容こそがメッセージとして物語に書きしるされたのかもしれない。


第一話 On Your Mark

In Unison : 一斉に みんないっしょに

第一話内、勇気とか元気とかあたたかさとか決意とか、そんなものが音になったような応援歌にのってJust Becauseの意味に変容の予兆があらわれる。

第一テーマのつぎのドラムソロ。マウンドちかくにつむじ風がおこり、瑛太の目に決意がともる。

高校三年の3学期という意味をうしなった待ち時間に風がふき意味が芽生える。


第8話 High Dynamic Range

Just Because のニュアンスが大きく変容する。

瑛太セリフには「しょうがない、こうしかできない」といった消極的ニュアンスが目立つがじっさいには夏目の後を追いはじめている。

瑛太は転校初日に陽斗になげかけたのと同じ問いを小宮から受け、気づいてか気づかずか、第一話の陽斗そっくりの答えを返す。

小宮はなんとなくのなりゆきまかせを停止し明確な目標を持つ。

夏目はなんとなく決めた進路の必然性を問われ自己未来対峙する。

陽斗は瑛太を負けるなと励ます瑛太は勝ち負けじゃないというが陽斗はそれでも負けるなと励ます

森川髪型を変える。

「なんとなく」から「ただひとつ理由のため」へ。


最終話 Get Set, GO!

ここでもう一度In Unisonが流れるタイトルと同様、第一話に呼応している。ただしここでながれるIn Unisonはブラスバンドのちからづよい合奏ではなくピアノだけのひかえめな主旋律で、しか第一テーマの後半部が一度きりだ。もう応援歌役割を終え、それぞれの場所へ一斉に旅立つみんなをやさしく送る曲になっている。第一話で位置についたものたちがみんなそれぞれの目的に立ち向かい、それをのりこえたからだ。

第一話冒頭では「なんとなく」程度だったJust Becauseのニュアンス物語のなかで力を増強し、ついに「ただそれだけのため」「ほかに理由なんかいらない」といったつよい意味を帯びて最終回へといたる。みんな一緒に、それぞれの目標にいどみ、そしてのりこえた成果だ。かれらはいっせいに走りはじめ、つぎのステージへと向かう。


このアニメ受験シーズン放送されたことは偶然ではないだろう。元気をもらった受験生も多かったはず。わたし受験はとおい過去だが、それでもこのアニメからはたくさんの元気をもらった。わたしにとって、いまなすべきことは受験勉強ではなく研究開発と制作執筆介護だ。吹奏楽部員だったこと、全国大会を目指したこと野球部応援した夏、写真学科受験、絵をさがしてカメラかついで原チャで街をまわったこと、みんなみんな遠い過去だ。でもいまだってつまづくたびに立ち止まり休み、そして前へ出る。生きる限り前へすすみ、高くとびつづけたい。

2018-02-07

はてなブックマークタグを一括置換するiMacrosのコード(無保証)

何で一括置換機能消えたん……

VERSION BUILD=1001 RECORDER=CR
SET !REPLAYSPEED MEDIUM
SET !ERRORIGNORE YES
URL GOTO=http://b.hatena.ne.jp/username/OKIKAE/
TAG POS=1 TYPE=A ATTR=CLASS:js-keyboard-entry-page-openable
TAG POS=1 TYPE=IMG ATTR=ALT:ブックマーク編集
TAG POS=2 TYPE=LI ATTR=TXT:OKIKAE
TAG POS=1 TYPE=LI ATTR=TXT:オキカエ
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:/my/bookmark ATTR=*
WAIT SECONDS=20

ユーザ名usernameで使用してる「OKIKAE」タグを「オキカエ」に一括置換する場合Chrome版で実行済み。最後20秒待ってるのは、置換後に一覧ページへ反映されるのが遅れる為。

ただ自分でやった時(当然ユーザ名・タグは別の名前)に、2013年11月頃の分で一向に置換されないままループしたりで安定しない。

2017-12-25

英語カタカナ化に見られるいくつかのパターン

まず、大前提として、

音韻論とは

原語の発音には、「意味のある区別」と「意味のない区別」があり、前者のみを区別し、後者無視するのが音韻論基本的に、ある言語ネイティブスピーカーはその言語において「意味のある区別」だけを直感的に感じ取ることができ、「意味のない区別」は意識しないと気づくことができない。

例えば、前回書いた増田( https://anond.hatelabo.jp/20171223040416 )で、「難波」と「あんな」の「ん」は違う音だけど、日本人日本語ネイティブスピーカー)はその違いを無視すると書いた。ブコメを見ると違いがわからないという声があったので、ここで解説すると、「ナンバ」のように、直後にバ行またはパ行の音が続く場合は、「ん」は「唇を閉じて息を閉鎖し、その息を鼻の穴から出す」音になる。英語であればmに相当する。直後にナ行、タ行またはダ行が続く場合は、「下を上顎にぴったりつけて息を閉鎖し、その息を鼻の穴から出す」音になる。英語であればnに相当する。

英語であれば、これも前回の増田から持ってくると、water の t と、 talk の t は日本人には全然違う音のように聞こえる。でも、英語ネイティブスピーカーにとっては同じ音。

よく、英語ネイティブスピーカーにとっては違う音なのに日本人には同じに聞こえる発音が取りざたされるけど、逆もあるということ。ある言語ネイティブスピーカーであるということは、その言語にとって「意味のない区別」はしないように訓練されているということを意味すると同時に、「意味のある区別」はするように訓練されているということ。 r と l の区別が難しいのは前者の例だし、 water の t と talk の t が違う音に聞こえるのは後者の例。

同じことは日本語を学んでいる外国人にも言えて、例えば、「難波」の「ん」と「あんな」の「ん」韓国人にとっては「違う音」なので、韓国人が別の単語を持ってきて「この『ん』はどっちですか?」なんて質問すると、日本人は「は? 『ん』は『ん』でしょ?」となる。韓国語なら「オッパンカンナムスタイル」の「カ」と「ネガチェイチャラガ」の「ガ」は濁音と清音から違う音だけど、韓国語にはこの区別はないか韓国人は「同じ音」と思っている。

英語カタカナ化では、「英語において区別のある音は区別し、区別のない音は区別しない」というルールが概ね採られていると思う。いわば、英語カタカナ化とは、「英語音韻論カタカナだけでシミュレーションする」試みと言える。

ルール実例

以下、いくつか一般的だと感じるルールリストしてみようと思う。なお、発音記号は、New Oxford American Dictionary に基づいている。

母音

アメリカ英語には短母音と長母音音韻上の区別はないので、ある音を長めに発音しても短めに発音しても同じように理解される。カタカナ語はこの事実を利用して、長音記号区別することで、合計10種類の母音区別できるようにしている。なお、10種類でも英語音韻論を完全に再現するには足りない。実際に長音になりやすい音に優先的に長音記号が割り当てられているようだけど、全てではないように見える。

  • /ə/, /æ/ はア段

例 /ə/:sun, bus, an

例 /æ/ : cat, pat, bad

実際これらの音は「ア」に聞こえるという人がほとんどだと思う。cat は「キャット」なので「イャ段」説があるにはあるのだけど、/k/ の舌の形が日本語の「ヤ」の子音に近い為に /k/ の時だけ採用されたのかなと想像している。ちなみに英語には他に「キャ」のように聞こえる音はないので特に問題ない。/æ/は一貫してイャ段にすればいいのにと思わないでもない。

  • /ɪ/ はイ段

例:it, knit, fit

「エ」に聞こえることもある音。とは言え多くの場合「イ」に近く、また「エ」に聞こえる音は他にもあるので妥当

  • /ʊ/ はウ段

例:look, good, foot

間違いなくウに聞こえる。

  • /ɛ/, /wə/ はエ段

例 /ɛ/:get, pen, set

例 /wə/ :Quebec, sequence, quench

  • /ɑ/ はオ段

例:lot, pot, knot

「『ア』に聞こえる」という人がかなり多いと感じているのだけど、アには割り当てが他にあるので、オに寄せられたのではないか想像している。

  • /ɑr/, /ər/ はアー段

例 /ɑr/ :car, par, park

例 /ər/ :water, per, nerd

  • /i/ はイー段

例:eat, sheet, seat

  • /u/ はウー段

例:cute, cool, tool

  • /eɪ/ はエー段

例:mail, male, eight

エイ」段で書かれる事も多いが、日本語音韻上「エー」と「エイ」の区別はない。

  • /ɔ/ はオー段

例:water, talk, ball

カタカナ化する単位単語ではなく形態素

形態素とは、「意味の最小単位」。単語の中には複数形態素からなるものがあって、例えば「文章」なら、「文」と「章」にはそれぞれ意味があり、それが集まって、「文章」という単語ができていると理解できる。英語でも、American という単語は、America と、an が合成されてできている。このそれぞれのパーツを「形態素」という。

カタカナ語は、どうも単語単位でなく形態素単位でやっているように見えることが多い。例えば、today は /təˈdeɪ/ だから、上のルールに従えば「タデイ」になるはずだけど、実際には「トゥデイ」になっている。また、consequence / ˈkɑnsɪkwəns/ も、上のルールに従えば「コンシケンス」だけど、実際には「コンシーケンス」になっていると思う。

しかし、これらは例外なのかといえば、形態素単位カタカナ化していると考えると説明がつく。today は to-dayに分割できる。そして、to は 「トゥ」。(なお、これは「トゥー」になるはずなので、こっちは例外。too との衝突を避けたものと思う。)day は「デイ」なので、合わせて「トゥデイ」になる。consequence も con /kɑn/ は「コン」、sequence /ˈsikwəns/ は「シーケンス」なので、合わせて「コンシーケンス」。

カタカナ語 = イギリス英語」説について

カタカナ語アメリカ英語音韻論ベースにしているのではなく、単にイギリス英語を聞こえたまま書いただけのものではないか」という指摘が前回の増田であった。

かにapple, girl など、イギリス英語「聞こえたまま」になっているように見える単語は多数あるが、すべての単語を調べたわけではないから確定的なことは言えないが、これらの単語は、アメリカ英語音韻論説でも同じ程度にうまく説明できる。それに、water, there など、イギリス英語聞こえ方説よりもアメリカ英語音韻論説の方がうまく説明できる例もある。(イギリス英語聞こえ方説をとれば、それぞれ、「ウォータ」、「ゼー」となるはず。)

実際にカタカナ語の多くがアメリカ英語から取られたのかそれともイギリス英語から取られたのかは個人的に知らないのでなんとも言えないのだけれども、カタカナ語アメリカ英語の間にある程度の法則性が見られるという前提で、その法則を書いてみようと思った次第。

2017-12-17

岸勇希は燃えたけど、アラーキー黙殺されたのね。

ツイッターで岸勇希のこと追いかけていたらこ事件について知った。

湯沢薫さん、アラーキーから性的虐待を受けていた。

https://www.facebook.com/photo.php?fbid=1933922950154038&set=a.1507332432813094.1073741829.100006090557033&type=3&theater

アラーキーの事はあまり詳しく知らなかったけれど、彼も電通出身だったのね。

検索しても不自然な程情報が出てこない。湯沢さんの告発抽象的ってのもあるのだろうけれど。

美術業界から告発が続いて出てこないかな。

2017-12-04

おれが youtube で 100 回くらい再生したカバー

タイトル通りです。それでは早速。


'No Diggity' cover by Seattle soul queen Grace Love @ The True Loves

https://www.youtube.com/watch?v=ffsNRYj7R6E

Grace Love というソウルの人。情報全然無いので何者なのかさっぱりで申し訳ないが、まあ、見てもらえば凄さはわかってもらえるかと。

キックスネアそれぞれで前に踏み込んで行くリズムが最高にハマる。

体内の何かにがっちりハマってくる感じ。

ホーンも聴きどころ。渋すぎる。

歌はこれでもかってくらいのガッツ感。この方向を求める限りにおいて、裏切られることはない。

この人の動画をいろいろ見てると、サウンド的にはギターの Jimmy James って人がキーパーソンらしく、地元ではそこそこプレセンスがある模様。この人はうまいと思う。

これとか良い。

Delvon Lamarr Organ Trio - Warm-up Set (Live on KEXP)

https://www.youtube.com/watch?v=jhicDUgXyNg




Gorillaz - Feel Good Inc. (Cover) by Daniela Andrade

https://www.youtube.com/watch?v=7C9EYka6fIU

カナダのこのお姉さんは、カバー中心に大量の動画があって、youtube 時代アーティストとして割と有名らしいので、知ってる人も多いかも。曲はどれも良いんだけど、個人的にはこれがたまらなく好き。

デリカシーたっぷりに、そっと触れるような歌が魅力。

アレンジも本当によく考えられていると思う。シンプル弾き語るために凄く工夫されていると言うか、ものすごく手の込んだシンプルさというか。

youtubeカバーを大量に上げて有名になったらしいけど、カバー以外の曲もあって、なにげにツアーアジア域まで来てたりするらしい。



RADWIMPS - 前前前世君の名は。』(Matt Cab cover)

https://www.youtube.com/watch?v=Kq1R6Ur9cq4

星の数ほどある前前前世カバーですが、個人的にはこれが好き。

おれはオリジナルを何回も聴いたけど、結局良さがわからずじまいだったんだよね。

でも、このカバーを聴いて、ついに曲の良さを理解できたよ。

オリジナルBPM設定では、年寄りには曲の良さを理解するのムリだYO。。

絡みつくようにメロディをなぞる歌が気持ちよい。こみ上げるところそれなりにソウルフルな感じもあるるんだけど、声が重くならないのでポップらしさを維持しているあたり、良いバランスだと思う。多くのRADWIMPSファンにとってはやや重いかもだけど、おれにはちょうど良いというかしっくりきた。



Meshell Ndegeocello Pop Life LIVE @ Sunset Junction 2010 Los Angeles YouTube

https://www.youtube.com/watch?v=gWe55aMBnII

これは、ミシェル仕事で最も素晴らしいものの1つではないかと。。この人の仕事はどれも凄いんだけどさ。

これもスローアレンジ。一歩一歩踏み込んで行く感じが最高で、踏み込むたびに囚われていく。オリジナルの軽いアレンジに対してこのアレンジは、普通人間は思いつかないし、思いついても成立させられないと思う。「うおっ。そう来んだ!?」という驚きがあって、そしてそれが見たことが無い高いレベルで成立しているという。何が起きてるのか理解できない世界にいきなり引きずり込まれてワケわかんないんだけど、超気持ちいいという。聴くたびドキドキする。

Deantoni parks の一見空気読んでないように見えて、実はナイーブドラムに胸をつかまれる。この人は他の仕事も良い。

そんで、100回ぐらい再生して、一息ついて、「プリンス、スゲエ」って思った。

2017-11-18

DJ TA-SHI「1992 MIX」- HIPHOP専門ラジオ局WREP 2017年11月18日放送

01. Gang Starr - Ex-Girl To Next Girl

02. Ill Al Skratch – Where My Homiez? (Come Around My Way)

03. Black Moon - I Gotcha Opin

04. The Pharcyde - Passin' Me By

05. Common - Breaker 1/9 (Beatnuts Remix)

06. HI-C - Sitting In The Park

07. Kool G Rap & DJ Polo - ill Street Blues

08. Black Sheep - Similak Child

09. Gang Starr - Gotta Get Over

10. Redman - Tonight's Da Night

11. Spice 1 - In My Neighborhood

12. The Pharcyde - Ya Mama

13. Arrested Development - People Everyday

14. Chubb Rock - Yabadabadoo

15. Das EFX - Mic Checka

16. Das EFX - Real Hip Hop (Pete Rock Remix)

17. ED O.G & Da Bulldogs - I Got To Have It

18. Nas - Halftime

19. Public Enemy - Shut Em Down

20. Eazy-E - Only If You Want It

21. 欠番https://twitter.com/WrepRadio/status/931818391764996098

22. Onyx - Throw Ya Gunz

23. Boogie Down Production - We In There

24. Dr. Dre & Snoop Dogg - Deep Cover

25. Leon Haywood - I Want'a Do Something Freaky To You

26. Dr. Dre - Nuthin' But A G Thang

27. Scraface - A Minutes To Prey

28. Brand New Heavies - Heavy Rhyme Experience Theme

29. Heavy D & The Boyz - Blue Funk

30. Above The Law - Call It What U Want

31. Digable Planets - Rebirth of Slick (Cool Like Dat)

32. Gang Starr - Take It Personal

33. 欠番https://twitter.com/WrepRadio/status/931822759562244096

34. Kool G Rap & DJ Polo - On The Run

35. Super Cat - Ghetto Red Hot

36. LB's - Bi*** Get A Job

37. Lords Of The Underground - Check It

38. Naughty By Nature - Hip Hop Hooray

39. Eric B. & Rakim - Paid In Full (Derek B's Urban Respray Version)

40. P.M Dawn - Set Adrift On Memory Bliss

41. Wrecks-N-Effect - Wreckx Shop (Full Crew Mix)

42. A Tribe Called Quest - Hot Sex

43. Main Source - Fakin The Funk

44. Zhiggie - Rankin' In The Dough

45. RUN DMC - Here We Go

46. A Tribe Called Quest - Scenario

47. Black Sheep - The Choice Is Yours

48. Naughty By Nature - Uptown Anthem

49. Wrecks-N-Effect - Rump Shaker (Remix)

50. Kris Kross - Jump (Supercat Mix)

51. M.C Breed & DFC - Ain't No Future In Yo' Frontin'

52. MC Serch - Back To The Grill

53. Pete Rock & C.L. Smooth – They Reminisce Over You

54. Tom Scott and The California Dreamers - Today

55. Mary J. Blige feat. C.L. Smooth - Reminisce (Bad Boy Remix)

56. Positive K - I Got A Man

57. Young Black Teenagers - Tap The Bottle

58. ArtOfficial - Don't Sweat The Technique

59. Def Jef - Cali's All That

60. EPMD - Cross Over

61. Redman - Time 4 Sum Aksion

62. House Of Pain - Jump Around

63. Wrecks-N-Effect - New Jack Swing

64. MC Lyte - Ice Cream

65. Tammy Lucas & Teddy Riley - Is It Good You

66. TLC - What About Your Friends

67. Bobby Brown - Humpin' Around

68. R. Kelly & Public Announcement - She's Got That Vibe

69. Nice & Smooth - Somethimes I Rhyme Slow

70. Jeff Redd - You Called And Told Me

71. Shinehead - Try My Love

72. Kris Kross - Warm It Up

73. Naughty By Nature - Everything's Gonna Be Alright

74. Ice Cube - Check Yo Self (feat. Das EFX)

---

上記の出所は WREP‏ @WrepRadio の https://twitter.com/WrepRadio/status/931810971282059265 から https://twitter.com/WrepRadio/status/931836391440506880 までの一連のツイートより転載

anond:20171116210216

そもそも英語楽しい」てなんやねん。

おまえ日本語しゃべってて楽しいんか?日本語楽しいんか?それともしゃべんのが楽しいんか?

英語できるオレ」を人が見てるのが楽しいちゃうんか?

The Houseハウスホワイトハウスかな?the House of Representativesな。pass the tax billでわかるやろ。英語じゃなくて常識問題
is set on Thursdayなぜ受動態。set on…?どういう意味だ。ハウスon Thursdayにsetされる???set, get, go意味はない。ながせ。on [いつ] to [何する] の部分が本体
to passもうこの時点で理解放棄しているが一応続きを読むパスしたんやねis to pass やからこれからやね。
its own version of the tax billthe tax billのits own versionってなんやねん。税法案のown version草案かな…? (ちなみにこの時点でThe House主語であることは記憶から吹っ飛んでいる)日本でもいろんなやつがそれぞれ違う法案作るやろ。常識問題やって。
which would cut taxes by more than $1.4 trillion over 10 yearsよくわからんけど10年間で1.4trillionドル以上の税金カットするtax billなんやな。あと毎回思うけどこれはどういう感覚byなんだby half とか by 20% とか言うわな。
and broadly rewrite the business tax code.(would からover 10 yearsまでを解析していたために何に対してここがかかっているのか忘れている) business tax codeってなんやねん。rewriterewritesじゃないの?which would rewriteな、当然。パッと見分からなくても考えればわかるやろ。rewrite"s"になってないからな。

英語得意な人本当にどうすればいいか教えて欲しい

英語は読むな。どうせ日本語やって読んでないやろ。

ページ上から下に眺めて目に入ったフレーズだけで自分文章構成するんや。

これで自分の文が元の意味大分違ってたら、そら英語ができないんやなくて常識がないんや。頭が悪い英語関係ない。

日本語かて英語かて起こった全てのことが書いてあるわけやないんやから、書いてないことは全部自分で補完してるんやで。

逆に言えば、書いてあることわざわざ全部読まんでも意味はわかるんや。自分にわかるところだけ読んでれば。それを意味の分からないところだけじっくり読んでどうすんねん。

からないとこはほっとけ。わからない表現も同じ文意のところで使われてるの5回も見れば「ああそうゆう意味か」となるやろ。そうなるまでほっとけ。

  

感想:

TOEIC 750てたいしたことないねんな。

2017-11-17

英語はこうやってスラスラ読めるようになっていく

https://anond.hatelabo.jp/20171116210216

私は英文を読むときは ↓ のように「返り読みをせず」「カタマリごとに理解しながら」読んでいくように努めています

プロアマわずこのような読み方をたくさんするのが英語学習王道のようですね

このやり方ができていれば、例えば「関係詞が続くとスタックオーバーフローする」ということはないハズです

http://d.hatena.ne.jp/cappellorosso/20090302/1235999462

The House is set / 家がある? (*1)

on Thursday / 木曜日に???

to pass its own version of the tax bill, / 税法案… が通る, 下院 (上院?) が開かれたのか (*2), 下院案か

which would cut taxes by more than $1.4 trillion / 税を削減する, 1.4兆円以上

over 10 years / 10年にわたって

and broadly rewrite the business tax code. / 事業所得税? 法が広く書き換えられる

(*1) この段階では the House の H が大文字になっているという情報を読み落としています

(*2) set A to Aに…し始めさせる (起動相) の受動態 × 現在形 (予定) が正解でした

  直訳すると「下院木曜日法案を 通過させ始める (審議する?) 予定である」(受動態はあえて訳していません)

  どうやらこの法案は可決の見通しが高いようです

ご参考になれば幸いです。

なお、申し遅れましたが、私は TOEIC 460 (2017年) のクソ雑魚です。

anond:20171116210216

文法うんぬんじゃなくて単純に語彙力が足りないのと、読み方が悪いだけじゃないかな。

まず、単純にTOEIC 750点くらいって小学生低学年くらいの言語力なんだから大人向けをすらすら新聞読めなくても全くおかしくない。

日本語読む時だってすらすら読むっていうのは、文字情報かいつまんで読んでいるのであって文章を一字一字を精読しているわけではないので、すらすら読みたいなら訳読式に読もうとするのをやめなきゃ。まずぱっと見て出てきた単語/まとまり意味をつかめるようにならないとすらすら読めないと思うよ。

あとなんとなく、単語とか句を日本語と1対1に対応づけて把握している印象と文法構造を全部理解しきらないと読んだ気にならない感じがある。

それだと多分英語に触れるの大変だと思う。

新聞とか読むときは細かい語法に着目するっていうより関連する語彙を身につけることを優先して読む方が今の力ならあってると思う。

英語を楽しむなら細かい語法とかはたくさん読んでいけばなんとなくわかってくるくらいで良いと思うよ。

今回の文章

The House is set on Thursday to pass its own version of the tax bill, which would cut taxes by more than $1.4 trillion over 10 years and broadly rewrite the business tax code.

まず単語

下院 - 木曜日 - 税制法案 - 減税 - 1.4兆ドル - 10年 - 書き換える - 法人税

これがかいつまめれば、だいたいどんな話かわかるでしょ(まあこれはその人の母語での言語能力にもよるわけだけど)。

これがちょっと広がるとこうなる。

下院 / 木曜日にセットされる / 下院バージョン税制法案を通すために / その法案っていうのは減税する / 1.4兆円以上も / 10年以上かけて / それで、広く書き換える / 税制法案

2つ目も

But as with the health care debate earlier this year, the Senate emerged as the inconstant ally in President Trump’s pursuit of a major legislative accomplishment in his first year.

医療健康保険 - 今年早く - 上院 - 一定しない仲間 - トランプ大統領 - 追求 - 法案実績 - 1年目

でも/ 健康保険議論と同様に / 今年早くの

上院が現れる / 一定しない(常に賛成するとは限らない)仲間として / トランプ大統領が追い求めること / 主要な法案の実績 / (トランプの)1年目の

こんな感じで読むのがいいんじゃない。知らんけど。

英語で興味ない話題読んでもそりゃあ楽しくないよだって興味ないんだし

あんまこういうこと言いたくないんだけどさ、「英語」を特別視しすぎじゃね。

英文として優しい文章、難しい文章があるのは間違いないんだけどさ、それが好きか嫌いかってのは別じゃん。

英文を楽しく読むんじゃなくて、楽しく読めそうなのを英文で読むんだよ。

例えばさ、次の例文は日本語だけど判る?

全体会合は9月20日以来、約2カ月ぶり。この日は憲法への自衛隊明記や緊急事態条項の創設を含む「改憲4項目」のうち、参院選県境をまたぐ「合区」の解消を議論憲法47条と92条の改正を目指す方針確認した。

『全体会合って何よ?この日って9月20日から二ヶ月ぶりだから11月だろ?自衛隊明記や云々で、なぜ参院選の合区解消を議論してんの、さっき改憲4項目って言ったじゃん!47条と92条を目指す方針確認してんのに、さっきの合区はなんだったんだ……』

タネ明かしすれば、これは朝日新聞ニュースな。合区解消へ、47条と92条改憲の方針 自民の推進本部:朝日新聞デジタル

自民党憲法改正推進本部細田博之本部長)は16日、衆院選後初となる全体会合を開き、憲法論議を再始動した。」ってところからスタートしてる。

んでさ、オマエさんの次の文って、これニューヨーク・タイムズだろ?

The House is set on Thursday to pass its own version of the tax bill, which would cut taxes by more than $1.4 trillion over 10 years and broadly rewrite the business tax code.

Tax Bill Thrown Into Uncertainty as First G.O.P. Senator Comes Out Against It - The New York Times

英語でも日本語でも新聞写真がモノ言うからさ、

もう記事見たら一発でロイ・ウィデンさんがなんか告発して、オリンハッチさんが睨んでんな、揉めてんだろうなって判るじゃん。

その百聞は一見に如かずという写真キャプションに、そのまんまのことが書いてるじゃん。

Twitter上には画像説明載ってないけど、記事中の写真に対する説明文ね)

Senator Ron Wyden, Democrat of Oregon, left, clashed with Senator Orrin G. Hatch, Republican of Utah, right, during a hearing of the Senate Finance Committee on Wednesday. Credit Eric Thayer for The New York Times

上院議員同士の揉め事ね、アメリカ合衆国上院財政委員会聴聞会で揉めたのね。

んで、省いたのがワザとかどうか分かんないけど、記事最初の文ってこれじゃん。

WASHINGTON — Uncertainty gripped the Senate on Wednesday over efforts to pass a sweeping $1.5 trillion tax cut after a Wisconsin Republican became the first senator in his party to declare that he could not vote for the tax bill as written, and other senators expressed serious misgivings over the cost and effect on the middle class.

全部訳していける人とかはてブにもいっぱいいるだろうけどさ、そういう事が言いたいわけじゃなくてさ。

これ読みたいの?絵本だと簡単すぎてヤなんだろ?

自民党憲法改正推進本部の全体会合と同じでさ、読みたくない記事読んでも楽しくないよ?

そもそもさ、共和党の票をトランプさんが取りまとめて税制改革するって話を知らないとさ、読んでも意味わかんないだろ?

The New York Timesでこの記事を読む人は、Ron Wydenが民主党だって知ってるよ?Orrin Hatch共和党なのも当たり前の知識だぜ。

自民党憲法改正推進本部記事に「公明党の根強い慎重論が」っていきなり書いても問題ないのは、自公連立政権だって記事読むやつは当然知ってるから省いてるってことだよ?

誰に何を吹き込まれたのか知らないけどさ、やっぱ興味のないモン読んでもツマンナイよ。

例えばさ、ニューヨーク・タイムズだったらHEALTH欄とかあるじゃん

オレなんかは、↓みたいな記事は気になって読む。単語とか分かんなかったら調べて読む。

なんでかって言うと、「オレは」血圧を下げる方法みたいな記事が気になるから

How to Lower Your Blood Pressure - The New York Times

人によって気になる記事が違うなんてのは当たり前なんだから、まずは自分の好きな記事を探すところからだと思うよ。

はてなに巣食うんだったらこんな記事とかさ→A New Phone Comes Out. Yours Slows Down. A Conspiracy? No. - The New York Times

興味のある記事を探して読んでみたいなと思って読む、とかにしないと、何の興味もない米国税制改革揉め事読んだって、そりゃ楽しくは無かろうよ。

https://anond.hatelabo.jp/20171116210216

anond:20171116210216

文法知識が足りなさすぎるんじゃないかなー。

The House is set on Thursday to pass its own version of the tax bill, which would cut taxes by more than $1.4 trillion over 10 years and broadly rewrite the business tax code.

一般的約束というかルールを覚えれば段々と楽になってくるよ。

例えば

The Houseは次の文章で Senateが出てきてることからもわかるけど、下院

受動態は主語を言いたくない時に使う(主語 set the House だと主語を言わないといけないので受動態になってる)

・, + which は追加の説明限定用法と非限定用法という言葉を聞いたこと無い? I have a child who loves dogs. だと、何人子供いるかからないけどとにかくそうちの犬が好きな子供のことをさしていて、I have a child, who loves dogs だと子供が一人いて、その子供は犬が好き。

・○○●(←犬好きが居る)

・●(←1人で、そいつは犬好き)

あとは文章の固まりの捉え方(英語学界隈ではチャンクとか言うみたいね

自分がこの文章を見た時は、

The House is set 下院がセットされる

on Thursday 木曜日

to pass its own version of the tax bill 自分のとこのバージョン法案を通すために

・・・この時点で、ああ、木曜日法案通すための会議がセットされるのね。でもその法案って何よ? と理解した(the tax bill なので、一般常識を持ったみなさんならご存知のあの法案ですよ、なのかこれから説明されるのか、あるいは前の文章説明されてるのかはまだわからない)

で、, which がでてきて、ここから the tax bill の補足説明がはじまるのね、と気づいた。

ちなみにこの by は he is older than her by 5 years とかの by だね。

だーっと書いたけど、まぁこんな感じ。高校レベル文法を徹底的にやるとこれぐらいならできるようになるよ(高校レベルっと言っても全然馬鹿にできない。普通に実用レベルまで)。

2017-11-16

anond:20171116210216

2つめの文は、which以降を別の文として読む。「〜というのは」みたいな感じ。

The House : よく分からんけど国会的な物でしょう。

is set on Thursday : 受動なのは動作主体が他だから大統領? / 国会(みたいなの)が木曜に開催される。

to pass : (法案を)通す。

its own version of the tax bill : 今回の会のという意味its own version

which would cut taxes by more than $1.4 trillion over 10 years : by普通に「〜による」みたいな感じで良いんじゃない。

and broadly rewrite the business tax code. : 法人税やね。would rewriteからs抜ける・・・


But as with the health care debate earlier this year, the Senate emerged as the inconstant ally in President Trump’s pursuit of a major legislative accomplishment in his first year.

But〜year,まで : オバマケアトランプが止めた話・・・。(政治の話になってるね・・・

the Senate emerged as the inconstant ally : Senateがトランプの味方として出てきた。

in President Trump’s pursuit of a major legislative accomplishment in his first year. : トランプの初年度の立法的成果。

いやー全然うまく説明出来ん。

結局英語ってどうやったらスラスラ読めて読書とか楽しいって思えるの

たまに洋書とか買ってくるんだけど「えっと、これはこれがここにかかってるから……」とか「なにこの単語」ってなって全然楽しく読めないし第一からない

最近ボキャビルするかって思って単語を例文集使ってひたすらやってるんだけど、文を読んでるとすぐに知らん単語や知らんコロケーションが出てきて発狂しそうになる

あと簡単な文でも、文の切り方わからないときとかあるんよ。構造さえつかめれば「あーそういうことね」ってスッキリするのに、構造がつかめるまでモヤモヤ感がひどい

ネイティブが書く表現が一番わけわからない。簡単単語だけで難しい抽象的な表現使ってくるし、あいつら結構文法間違ってるけど脳内で変更してんのな

日本語でいうと「ほんまそれなわかるめっちゃわらうわろた」みたいな超カジュアルな文、全然からない。悲しい

日本語でいうと「返すのはいいけどていうかその前にまず俺の話聞いてくれないとまじ困るんだけどその上で言っちゃってる?」みたいな、単語同士の関係が複雑なやつも読めない

少しずつやってきたからかTOEICで750ぐらいは取れるようになってきたんだけど、全く「英語できます!!」って感覚じゃない

英語できなさすぎてつらい死にたいって感覚のほうが近い

文法やれ!単語やれ!発音やれ!」とか言うけど、何をどのくらいやれば俺の求めるレベルになるのかわからない

英語楽しい人って何をもって楽しいって思ってるの?そりゃすらすら読めてるとき楽しいけど、読めてないと楽しくないよ

英語絵本とか何冊か買って読んでみて、それは読めるんだけど今度はおもしろくない。読めるけど全然おもしろくないから読まなくなったしたまに読めなくて涙目になる

日本語のようにスッキリ読めるようになりたい。

There is an apple an apple gone bad but I want you to drink this.

くらいなら

「Thereにはan appleがあってgone badだけどIはwantだよyouがdrink thisするのを!」みたいに読めて「おいおいりんご飲ませるのかよ勘弁してくれよアニーしかもan apple2回書いてあるしわろうた」って思いながら読めるけど、

↓みたいのだともうダメ。なんなの?バカなの?死ぬの?

The House is set on Thursday to pass its own version of the tax bill, which would cut taxes by more than $1.4 trillion over 10 years and broadly rewrite the business tax code.

The Houseハウスホワイトハウスかな?
is set on Thursday なぜ受動態。set on…?どういう意味だ。ハウスon Thursdayにsetされる???
to pass もうこの時点で理解放棄しているが一応続きを読むパスしたんやね
its own version of the tax bill the tax billのits own versionってなんやねん。税法案のown version草案かな…? (ちなみにこの時点でThe House主語であることは記憶から吹っ飛んでいる)
which would cut taxes by more than $1.4 trillion over 10 years よくわからんけど10年間で1.4trillionドル以上の税金カットするtax billなんやな。あと毎回思うけどこれはどういう感覚byなんだ。
and broadly rewrite the business tax code. (would からover 10 yearsまでを解析していたために何に対してここがかかっているのか忘れている) business tax codeってなんやねん。rewriterewritesじゃないの?


こんな感じ。こうなるともう全然楽しくない。少しも楽しくない。

楽しい人はたぶん「じゃあ今の文章暗唱してみて」って言うと、わりと合ってる。俺はダメ

今何も見ずに入力してみたら「The House is set on Thursday to pass its own version of the tax bill, which」までしか書けなかった。

But as with the health care debate earlier this year, the Senate emerged as the inconstant ally in President Trump’s pursuit of a major legislative accomplishment in his first year.

続くこれ。But as withでジンマシンが出る。勘弁してくれよアニーってなる。

the Senate emergedで「なんでここで上院議員出現したんや。主張とかって意味かな?」って思う。

allyって確か同盟とかそんな意味だよな。Trumpのpursuitの中でのinconstant ally?つーかこのasは何」ってなる。

もうダメ。しっかり調べれば読めるんだろうけど、そんなことして楽しい?楽しくないよ!!

それでなにこれは一体どうすれば気持ちよく読めるようになるわけ?

英語得意な人本当にどうすればいいか教えて欲しい

2017-10-20

FGOパールヴァティの何が問題だったのか

FGOパールヴァティに関してアメリカネヴァダ州に居を構えるヒンドゥー教宗教団体「USH」から抗議文が出され、議論(らしきもの)が起こったようだが、最初に広まったのがGoogle翻訳らしき日本語文ということもあり、基礎的な認識が食い違っているケース(そして食い違った認識のまま全力で殴り合いをするケース)を見かけたので今更ながら思いついたことを書き留めておく。今のところ他に置き場もないし…

訳は…使えそうなのが見当たらなかったので自分で訳したが、B2程度の私よりはマトモな訳が出来る人は沢山いるはず。

部分訳

Upset Hindus urge removal of goddess Parvati from FGO mobile game where she is a “servant"

怒るヒンドゥー教徒は、モバイルゲームFGOからサーヴァント」(※1)女神パールヴァティの削除を要求する

(※1:一般名詞としてのservantの意味で使っているかもしれないが、引用符の中に入っているので一応サーヴァントとする)

Hindus are upset atFate/Grand Order” (FGO) mobile role-playing video game, developed by Japan’s Delightworks Inc., for reportedly introducing goddess Parvati as one of the “new” servants; saying it trivializes a highly revered Hindu deity.

ヒンドゥー教徒は、日本のDelightworksによって開発されたモバイルRPGFate/Grand Order」(FGO)に対して立腹している。伝えられるところによれば、このゲーム女神パールヴァティを「新しい」サーヴァントの一人として追加したが、これは非常に崇拝されるヒンドゥー教の神を矮小化するものからだ。

Zed, who is President of Universal Society of Hinduism, said that in this mobile game set-up, the player became the Master who summoned and commanded servants controlling their movements, including goddess Parvati; while in reality the devotees put the destinies of themselves in the hands of their deities.

USHの代表であるZedは次のように述べた。「現実において、信者たちは彼ら自身運命信仰する神々の手に委ねるものであるのに関わらず、このモバイルゲームではプレイヤーは「マスター」となり、女神パールヴァティを含むサーヴァント召喚し、命令し、彼らの行動を支配する。」

Moreover, goddess Parvati depicted in FGO appeared more like a belly-dancer than the Hindu deity devotees were used to seeing, Rajan Zed pointed out, and termed it as incredibly disrespectful.

さらには、FGOでは女神パールヴァティヒンドゥー教信者が慣れ親しんだ姿よりもよりベリーダンサー風の姿で描写され、これは信じられないほど冒涜的だ」とRajan Zedは指摘した。

Zed indicated that reimagining Hindu scriptures, symbols, concepts and deities for commercial or other agenda was not okay as it hurt the devotees. Controlling and manipulating goddess Parvati by the game-player was denigration. Goddess Parvati was meant to be worshipped in temples and home shrines and not to be reduced to just a “servant” in a video game to be used in combat in the virtual battleground.

Zedによると、「ヒンドゥー教経典シンボル、コンセプト、そして神々を商業的もしくはその他の目的において使用することは信者を傷つけることになる。ゲームプレイヤー女神パールヴァティ支配操作することは冒涜である。(※2)女神パールヴァティ寺院や家庭の祭壇で祀られるべき存在であり、架空戦場での戦いに駆り出されるような一介の『しもべ』(※3)のような存在矮小化されるべきではない。」

(※2:ヒンドゥー教徒に対する中傷嫌がらせ、という訳・解釈も見かけたが、denigrateは名誉を汚したり、重要性を矮小化すること(参考: https://www.merriam-webster.com/dictionary/denigrate)なので、対象女神パールヴァティだと解釈した。ちなみに次の文の主語パールヴァティ)

(※3:ここは文脈的には「サーヴァント」では意味が通らない)

Hindus welcomed entertainment industry to immerse in Hinduism but taking it seriously and respectfully and not for refashioning Hinduism scriptures, symbols, concepts and deities for mercantile greed. He or other Hindu scholars would gladly provide genuine entertainment industry seekers the resources they needed for their study and research regarding Hinduism, Zed stressed.

ヒンドゥー教徒は娯楽産業ヒンドゥー教に没頭することは歓迎するが、それは真摯さと敬意を払い、商業欲望のためにヒンドゥー教経典シンボル、コンセプトを再解釈しない限りにおいてである。私や他のヒンドゥー教学者は、本物の娯楽産業の追求者に対し、ヒンドゥー教研究調査するのために必要資料を喜んで提供するだろう。」とZedは強調した。

In this game, Goddess Parvati is shown as carrying Trisula (trident), which is her greatest weapon; while in reality Trisula is Lord Siva’s most powerful weapon. In the game, when Parvati is equipped with Nandi, it increases her performance; but in Hinduism, Nandi is Lord Siva’s mount. This kind of misinformation spreading creates further confusion among non-Hindus about Hinduism, Zed states.

「このゲームでは、女神パールヴァティは最強の武器としてトリシューラ(三叉槍)を手にしているが、トリシューラは実際はシヴァ神の最高の武器である。このゲームにおいて、パールヴァティナンディを装備した場合能力が強化されるが、ヒンドゥー教においてはナンディはシヴァ神の乗り物である。このような誤った情報ヒンドゥー教徒に対する更なる誤解を引き起こすことになるだろう」とZedは述べた。

(原文:http://www.rajanzed.org/upset-hindus-urge-removal-of-goddess-parvati-from-fgo-mobile-game-where-she-is-a-servant/)

で、何が問題なの?

使われ方と描写問題だが、このケースにおいてはウェイトは「使われ方」の方が重い。

現実において、信者たちは彼ら自身運命信仰する神々の手に委ねるものであるのに関わらず、このモバイルゲームではプレイヤーは「マスター」となり、女神パールヴァティを含むサーヴァント召喚し、命令し、彼らの行動を支配する。

...

ゲームプレイヤー女神パールヴァティ支配操作することは冒涜である

サーヴァント解釈云々以前に神がPCになるなんて(彼の)ヒンドゥー教のコンセプトに反するのでNGゲーム使用するのがOKならこういう書き方はしないはず。ここはスルーしてはいけないはず。

表現については、

ヒンドゥー教信者が慣れ親しんだ姿よりもよりベリーダンサー風の姿で描写され、これは信じられないほど冒涜的だ

ベリーダンサー風だからではなく、「(彼が想像する姿よりも)『より』ベリーダンサー風の姿」と言うのが問題なので、例えば「おっぱいを出している彫像もあるのに、それに比べればFGOは布を纏ってるしOKなんじゃ?」と思うかもしれないが、それは林檎審査的にOKというだけで、おっぱいを出していない事が問題かもしれない。私たちが思う「セーフ」のラインと彼の思う「セーフ」のラインが大きく食い違う可能性もある訳で、こればかりは聞いてみないとわからないが。

娯楽産業を歓迎してるんじゃないの?資料提供するって言ってるよ?表現修正したらFGOでも使えるんでしょ?必ずしも削除しろって訳じゃないでしょ?

真摯さと敬意を払い、商業欲望のためにヒンドゥー教経典シンボル、コンセプトを再解釈しない限りにおいてである

「再解釈NG」、そして上にも書いた通り神を操作するのがコンセプト的にNGなので、普通に考えると「削除要求」以外の何物でもない。英語版では名前を変えてヒンドゥー教関連の要素を全部削除する、という手段はあるかもしれないが…

どうしたらいいの?(Zed氏を支持するFGOプレイヤー)

FGOみたいな涜神的なゲームは削除しなきゃ

どうしたらいいの?(一般FGOプレイヤー)

現実的には運営問題なので気にしなくてOK

Zed氏はこんなに怒ってるの?訳の表現が強くない?

例えばインドメディアが書いた記事を見てみよう

The American Hindu behind BoycottAmazon: Rajan Zed’s crusades to save Hinduism

「BoycottAmazonを仕掛けたアメリカヒンドゥー教徒:Rajan Zedのヒンドゥー教十字軍

The one-man outrage industry is not new to controversy, or in creating controversies.

常に議論の的となるワンマンの憤怒産業

http://www.thenewsminute.com/article/american-hindu-behind-boycottamazon-rajan-zeds-crusades-save-hinduism-44433

少なくとも彼が「怒っている」と感じる人はいる(このメディア立ち位置については情報が無いのでノーコメント)

ちなみに何かしらの理由があって声をあげている人を見て「穏健だね」と評価するのは逆に失礼に当たらないだろうか…それは批判要望の深刻さを過小評価することに繋がるから

ヒンドゥー教ヒンドゥー教徒的にどれくらい問題なの?

観測ポイントの一つとして、謝罪要求しているケースは恐らく深刻。

www.rajanzed.org/upset-hindus-urge-valencia-firm-to-withdraw-lord-ganesh-crash-pad/

複数声明文が出てくるとより問題視されているかもしれない。

www.rajanzed.org/upset-hindus-seek-withdrawal-of-sydney-exhibition-showing-lord-krishna-smoking-meth/

www.rajanzed.org/upset-hindus-urge-sydney-mayor-to-disallow-exhibition-showing-lord-krishna-smoking-meth/

もっとヤバいのは謝罪+複数(&Zed氏以外の出所から)の声明文が来ているオーストラリアCM(https://www.youtube.com/watch?v=f8kuoFGgj8s)

www.rajanzed.org/hindus-urge-blocking-public-funding-of-meat-livestock-australia-for-reckless-marketing/

www.rajanzed.org/3340-2/

www.rajanzed.org/upset-hindus-may-launch-boycott-of-australian-lamb-worldwide-if-insensitive-ad-continues/

www.rajanzed.org/upset-hindus-seek-ban-on-meat-livestock-australia-ad-showing-lord-ganesha-at-lamb-bbq/

とは言え、騒ぎ立てるほどではないが面白く思わない人が存在すること、そして国全体のイメージを左右する可能性があることは気に留めておいていいかも。

ちなみに、上のCMを見てあなたは正直なところどう思った?胸に手を当てて考えてみよう。あなたの抱いた印象が、いつの日かあなたに帰ってくるかもね。

2017-08-15

App Storeにある書評アプリを全部試した私が、オススメする書評アプリ

おすすめの本を聞かれた時や、どんな本を読んできたか振り返りたい時にすぐに参照できるので、書評アプリをよく利用してます

その過程で、今Appstoreにある書評アプリを全部試したので、その中で、一番おすすめする書評アプリを紹介します。

(ちなみに私は、主に漫画書評を書くのに利用しています

アプリの紹介をする前に、私が書評アプリに求める機能記述しておきます

書評アプリに求める機能(優先度順)


1.作品検索時のサジェスト機能

バーコードリーダーよりも断然利用頻度高い。というかバードコードリーダーって読み込みにひと手間掛かるし、実物がないと検索できないし、いらない子だと思っている。

2.購入日順や評価点順等のソート機能

出版社レーベル名、少女漫画少年漫画等の括りでもソートできるとなおよい。ひと手間掛かってしまうが、自分タグ付けできる機能があればそれで代用できる。

3.新刊の発売通知機能

新刊が発売されたことを本屋さんで初めて知ることが多いのと、マイナー作品って普通本屋には並ばないので、新刊が出ているのを知らずに何か月も経っていることも多いので、欲しい機能

4.新しい本を発見できる/他の人のレビューが読める

新しい本との出会い本屋さんしかないのは悲しい。特に大型書店が近くにないと新しい作品との出会いって少ない。

5.その他

UIが良い

ユーザー数(レビュー数)

アイコンが良い

できれば広告なしが良い

それでは、各アプリレビューを書いていきます

■Readee

一番オススメ

サジェスト機能:有

ただし、検索結果が楽天を利用しているので、1~○○巻セット等の蛇足検索結果も表示されます

また、検索結果がソートされていなく、目的の巻を探すのに一苦労する。こち亀とか1巻を探すのが大変。デフォで1巻から表示されるようになると嬉しい。改善されるのを願ってます

ソート機能:有

色々な項目でソートできるので使い勝手は非常に良い。また自分作品タグけができるので、絞り込み検索もできて便利です。(私はタグ付けするのが面倒なので使っていませんが。)

新刊通知機能:有

ただし著者単位新刊通知されるのでゴミも多い。

・新しい本との出会い/他ユーザレビュー読める:△

ユーザー数が少なすぎてレビューがほぼ無い。あといいねボタンとかSNSっぽい機能はない

UI:良い。

少ないタッチ数でレビューできる。

ユーザー数(レビュー数):めちゃくちゃ少ない。
アイコン:良い
広告:無し(検索結果が楽天市場なのが、広告代わり??)


ブクログ

次点

検索時のサジェスト機能や、評価点以外でのソート機能が備われば、すぐにでも乗り換えたい。

SNS機能機能してそうで良いのと、新しい本を知るきっかけを作ってくれるランキング機能は素晴らしい。

サジェスト機能:無

検索機能楽天市場のやつを使っているので、Readeeと同様に、検索結果が見ずらい。

ソート機能:△

評価順のソート機能のみ

新刊通知機能:△

続巻の通知とかではなく、書籍全般新刊カレンダーがある。

・新しい本との出会い/他ユーザレビュー読める:有

ランキング機能もあって、今話題書籍が知れる仕組みがある。

UI:良い

ただし評価点が5段階なのは粗すぎる、もっと細かく評価点をつけたい。

ユーザー数(レビュー数):多い
アイコン:良い
広告:無し


読書管理ブリ

シンプルアプリ。そのため直感的&サクサク操作できるのが非常に良い

サジェスト機能:無

検索機能楽天市場のやつを使っているので、Readeeと同様に、検索結果が見ずらい。

ソート機能:有

タグ付け機能とかはなく、日付順・登録順・タイトル順・著者順・評価順の標準的ソート機能のみ。(十分事足りますが。)

新刊通知機能:無
・新しい本との出会い/他ユーザレビュー読める:無
UI:良い

機能を絞っていてシンプル構成のため、非常に使いやすい。

評価点も一緒に見られる本棚表示にしてもらいたい。

評価点が5段階なのは粗すぎる、もっと細かく評価点をつけたい。

ユーザー数(レビュー数):SNS機能的なものは無い
アイコン:良い
広告:無し


総合すると、使い勝手を考えるとReedee、SNSとして楽しみたいならブクログシンプル機能だけで良いならビブリアかな。

これ以降はあまり書評アプリとして使えないけど、おもしろ機能思想をもったアプリを紹介します。

■BookMemo

出版社別にソートできる。出版社別にソートできるのちょっと楽しい

Set管理

このアプリ独自性があって非常に良いです。

コミックの各巻をまとめて管理できる機能が使えます。例えばReedeeやブクログこち亀の全巻をレビューするとこち亀本棚が埋め尽くされちゃうけど、このアプリだと1つの書籍のように管理ができて非常に良い。

だけど書評アプリとして最低限の機能を満たしてないので全然使えないアプリ。発想は面白いのに。。残念。

■Stand

良いアプリ

フォローしたユーザーの新しい本の追加やコメントなんかを読める。

書籍版のインスタとかツイッターみたいなアプリだと思う。使いやすアプリだし、新しい本との出会いもあるけど、

レビュー用のアプリではなくて、評価点を付けられないし、ソートもできない。

==========以降は完全に蛇足です==========

映画レビューアプリのFilmarksはすごく使いやすくて、SNS機能楽しいので、

これと同じような書評アプリを作ってくれることを切望してます

もし作ってくれる時にあったらうれしい機能も願望として書いておきます

・傾向が似ているレビュアーの表示機能(これはFilmarksでも同様の機能欲しい)

シリーズものを一括表示

書籍ってシリーズもの多いでしょ。上下巻とか。コミックだとなおさら

こち亀とかワンピースとか各巻レビューとかするときに、画面が占領されてしまって大変だったりするので欲しい機能

2017-07-21

IoT黎明期のLPWA事業と法 その2

このダイアリーはPart1が存在します。 特定事象について細かく書きますので、前回のダイアリーを読まれていない方は、是非とも一度お目通し下さい。

前回のダイアリーこちら→ https://anond.hatelabo.jp/20170707132857

Part3を書きました→https://anond.hatelabo.jp/20170901171449

  

  

大変沢山の方にダイアリーをお読み頂いたらしく、Twitterでサーチをかけると大きな事業者従事されている方の目にまで通っている事が伺えます

それだけ皆様が関心有る分野なのかと思いますし、何よりこのLPWA事業についても始まったばかりで法の穴にハマるのも無理はありません。

前回は、電波法電気通信事業法から見たLPWA事業についての概要説明しました。今回は、法改正によるアップデートも含め、続きのお話をしようと思います

  

  

1■電波法改正され、事業がやりやす

LPWAで利用される920MHz帯の無線局として、以前は自営のみの利用に限定されていた簡易無線局電気通信事業用途として利用できるようになりました。

(参考:http://www.soumu.go.jp/main_content/000496551.pdf

参考資料の22ページ目に、以下のような記述が見られます

(1)920MHz 帯小電力無線システム無線局技術基準等の見直し

IoT 向けの電気通信サービス等の新たな利用目的ニーズの拡大に対応するため、無線局の局種を簡易無線局から陸上移動局

変更する(無線設備技術基準はこれまでと同様である。)。

② 狭帯域の周波数利用における周波数利用効率の向上を図るため、指定周波数帯による規定を追加する。

③ その他機器の小型化における利便性を確保するため、空中線電力及び空中線利得の技術基準の緩和等、所要の規定の整備を

行う。

①がその変更点です。少し誤解を招く日本語ですので、噛み砕いてご説明します。

この法改正において、陸上移動局へ局種変更となるのは、簡易無線局と定められた無線局のみです。特定小電力無線局は、これまで通り利用できます

簡易無線局は250mW出力が許可され、基地局として最も適した無線局とされていましたので、堂々と電気通信事業用途として利用できるようになりました。

京セラコミュニケーションシステム(KCCS)が昨年の暮に総務省懇願していましたが、どうやら認められたようですね。素晴らしい法改正です。

(参考:http://www.soumu.go.jp/main_content/000450876.pdf

  

高出力無線局電気通信事業用途として利用できるようになった反面、新たな縛りが加わりました。種別陸上移動局になった事により、読んで字のごとく陸上しか無線局を利用できません。上では "基地局に適した" と書きましたが、当然クライアントとしても利用できます。高出力ですので、その分遠距離通信可能です。

携帯電話陸上移動局ですが、これによりドローン等に付けて空を飛ばせなくなりましたし、海上でも利用できない縛りを受けてしまいました。

その点、特定小電力無線局は陸・空・海で免許されていますので、好きなように使うことができます

個人的感想では、改正による利点のほうが大きいですから用途により無線局を使い分けることで妥協できる範囲内かと思います

なお、施行予定日は今年の10月1日より。

  

920MHz帯の無線局をまとめます

特定小電力無線局

 出力:20mW以下

 電気通信事業用途可能

 移動範囲陸上海上および上空

 

・簡易無線局(2017/10/01より陸上移動局)

 出力:250mW以下

 電気通信事業用途:不可

 移動範囲陸上は間違いないのですが、その他は明確に定められた文書が見当たらず、不明です。ご存知の方がいらっしゃればコメントでご教示下さい。

  

陸上移動局

 出力:250mW以下

 電気通信事業用途可能

 移動範囲陸上

  

と、なります

  

  

2■電気通信事業法の続き

LPWAの基地局サービスとして提供するなら登録電気通信事業者(以下、登録)にならないといけない旨を書きました。

これについて、LoRaWANの共有モデルサービスを展開されているソラコム玉川さん(社長)より直々にコメントを頂きましたので、今回はこの話題についてもう少し触れてみたいと思います

  

  

玉川さんから頂いた2度目のコメントへ返信したのを最後に、それ以来コメントがありません。(私が任意でご回答下さいと書いたせいかもしれませんが)

特に疑問に思ったコメントは、 "SORACOM Air for LoRaWANの共有モデルに関連して、弊社は登録番号 第373号として登録済みです。" というものです。

前回の追記にもあるように、私から "ではなぜ6月1日時点での登録電気通信事業者リスト名前が載っていないのか" とお聞きしたものの答えて頂けなかったので、玉川さんには大変失礼ですが、総務本省へ電話確認を取りました。

私も総務省人間ではありませんので、もしかしたら "登録済みだけど、リストへの反映が遅れている"という可能性と、私の事業法への理解そもそも間違っている事を前提とし、問い合わせを行いました。問い合わせた内容と、その返答を簡単にまとめます

登録になると、必ずリスト掲載されるか?

→される。欠番事業廃止)以外の理由で、リスト掲載されない事はない。

登録後、どれくらいのタイムラグがあるか?(●月☓日時点 において、それ以前に登録された内容が漏れることはあるのか?)

基本的には、登録されると遅滞なくリストに反映される。地方総通から本省へ書類が回ってくるのが遅れた場合のみ、次月に反映される事もある。

6月2日登録されたものは、7月1日には反映されるし、2ヶ月以上リスト記載漏れるということは無い。

というものでした。前回の記事では、最新版は6/1日時点でソラコム名前はありませんでした。数日前に7/1日時点のリスト更新されましたが、これまたソラコム名前は無く、373号も未採番のままです。玉川さんから頂いた2度目のコメントには "電気通信事業登録を行った上でサービス提供を開始させていただいております" とありますが、上の話を聞く限りいつ登録したのか、どう好意的解釈をしても理解できません。

"俺も免許取るつもりだからまだ免許証貰ってないけど車運転していいですか?" みたいな状態です。

  

もし万が一まだ登録になっていない場合は、すぐに一時的にでもサービス提供を中止すべきかと思いますし、総務省との間で特段のやりとりがあり、登録ではないけど事業許可されている又は本当に登録へのリスト掲載が遅れているのであれば、その旨を説明するのが筋でした。どちらにせよ、玉川さんから頂いたコメントはあまり誠実ではありません。

総務省OKと言えば、それで良いのです。OKと言っている以上、ただの一般人である私が取り上げてどうこう言うのは筋違いです。私の事業法への認識が間違っている事を願うばかりです。

  

  

最後

ソラコムを論って叩きたいわけでも、サービスを畳んで欲しいわけでもありません。先方にとっては大変迷惑な話かもしれませんが、ちょうど議論するに最適な事業者がいらっしゃったので取り上げさせて頂きました。

玉川さん自身は、登録になって法令遵守する事は大事だと仰っていますし、私もLPWAには可能性を感じていますので、どんどんサービスは前面に押し出して伸びて欲しいと思っています

登録していないなら、登録して "シロ" になるまで、不本意ながらもサービス止めれば良い話です。ただ、通信業界の第一線級の方々が在籍するソラコムにおいて、このように法令遵守不明瞭なままサービスを行う、そのコンプライアンス意識に疑問を感じています

罰則規定はあるけど、実際に同法第9条違反処罰された例を私は見たことがありませんし、"大したダメージは無いから" と甘く見ているのではないかと勘ぐってしまます。 これがまかり通ると、わざわざ登録になったKCCSの立つ瀬がなくなります

  

私自身、電気通信主任技術者(伝送交換・線路)や陸上無線技術士資格を受け、事業者従事している側の人間です。電気通信事業法電波法に関する最低限の常識は持ち合わせており、妄想寝言でこの記事を書いている訳ではないということを、ご理解下さい。

文頭にも記したとおり、ハマりやすい所です。今までは伝送路というものがある程度分かりやすく、登録になるのは本当にケーブルテレビ局携帯電話事業者大手キャリアばかりでした。

まだ黎明期ですが、安定するとLPWAで事業をするところがちらほら出てくるでしょう。後発の事業者が同じ道を歩かないように、この記事法令遵守に関する意識を持つ良いきっかけになればと思っています

  

また何かあれば、その3を書くかもしれません。

  

  

追記

頂いたコメントへの返信や、任意の追記のメモです。

  

コメント:(https://www.facebook.com/KenTamagawa/posts/10159013852120054?comment_id=10159092600690054&comment_tracking=%7B%22tn%22%3A%22R%22%7D&pnref=story)

1:弊社は、所有モデルにおける限定共有・全共有の各機能存在及び内容についてもご説明した上で弊社の登録要否の解釈について確認しておりますお客様登録要否についてはゲートウェイ所有のお客様提供される内容に依るかと存じますが、共有することすなわち登録とならないことについては確認しております。もちろんお客様提供内容によっては、お客様電気通信事業登録を行う必要がある場合はあると存じます

2:164条の適用除外ではございません。(なお、弊社の進め方については、登録手続きに関し相談をさせて頂いている中でお伝えしております。)

3:登録年月日は7月5日となります

また、各関連法規法令を遵守することは大変重要と考えている点についてのスタンスは変わりませんが、一方、すべてを詳細にご説明解説させて頂くことは営業戦略競争力に繋がる部分もあるためご容赦頂ければと存じます

返信:

説明ありがとうございます同法専門家でない玉川さんへ細かい事を言うのは間違いかもしれませんが、すぐに登録にならないといけない訳ではありません。

まずは電気通信事業を営む事で届け出になる必要があり、提供が広範囲になることで登録主任技術者の配置へ格上げとなります。今は本題ではありませんので、一旦置いておきましょう。

登録年月日のご教示ありがとうございます。私が記事執筆したのが7/7ですので、その時点で登録である事は承知しました。従って、7/1のリスト掲載されていない点についても同時に解消しましたので、来月更新予定の8/1時点での登録事業者リスト掲載まで暫く待つ事にします。失礼しました。

  

さて、繰り返しますが3月サービス開始から登録される7/5までの期間について何も言及されていないのは何故でしょうか。

記事コメント頂いた"共有サービスモデルについては所有モデルでのゲートウェイより遅れて提供を開始するとともに当初は電気通信事業を営む形にならないようご提供しており、電気通信事業登録を行った上でサービス提供を開始させていただいております。" について、

同法164条の適用除外にならずして登録なしに事業を行える方法は、私が本省へ記事以外に問い合わせた内容と同法を突き合わせましたが、どう考えてもあり得ません。この部分について説明が求められれば、記事に追記します。

御社プレス内容や、LoRa Spaceの基地局設置情報、更には設置企業が出したブログ等の情報(弊社から約1kmの範囲内であれば基地局が利用できます...)を見る限り、登録した7/5以降に共有サービス正式に開始されたとは到底思えません。(7/5はDiscovery 2017のイベント日でしたし)

  

御社同業他社を引き合いに出させて頂くと、KCCSにおいては大変明瞭でした。

2016年11月9日プレスには "「SIGFOX」を日本で展開し、LPWAネットワーク事業へ参入。2017年2月からIoT向け低価格通信サービス提供開始" とあり、

実際に登録電気通信事業者になったのが、2017年1月19日(第367号)です。 そして、2017年2月27日プレスにて "「SIGFOX」のサービス提供を開始" としました。

参入プレスhttp://www.kccs.co.jp/release/2016/1109/index.html

提供プレスhttp://www.kccs.co.jp/release/2017/0227/index.html

これはかなり良い例ですので、御社に全て真似をして欲しいと言うつもりはありませんが、せめて共有モデル提供プレスリリースを出すのは、きちんと登録日以降になるのが好ましかったと言えます

  

知人より情報を頂きました(参考:https://www.facebook.com/photo.php?fbid=1428328690590961&set=a.385522748204899.94679.100002415326524&type=3&theater

さくらインターネットの江草さんに取り上げて頂いたようですが、玉川さんの "江草さん、込み入った話になるので直接お話しましょう。" とは何でしょうか。

なにか当人(同じ事業者間)同士でしか話せない裏の話があるのでしょうか。 私が議論したい点については江草さんがほぼ代弁されています

7/7の記事執筆する前から総務省へありとあらゆる形態登録にならない範囲のLPWA事業モデルについて相談させて頂きましたが、上の通り登録せずに御社と同じ形態サービス提供できないという結論に至っています行政の中でも総務省はかなりフェアな方でしたが、必ずしも一貫して正しい回答を下すとは思っておりません。

何度も申し上げますが、もし登録になっていなくても総務省から事業許可された正当な理由があるのでしたら、だからこそ公表するのが筋ではないでしょうか。

"これを公表することで競争力に影響があるため回答できません" は、より不透明性を増します。

  

  

これは直接玉川さんのコメントへの返信ではありませんが、Facebook玉川さんコメントに付したコメントについてです。

https://www.facebook.com/KenTamagawa/posts/10159013852120054?comment_id=10159092600690054&reply_comment_id=10159094112230054&comment_tracking=%7B%22tn%22%3A%22R1%22%7D&pnref=story

小橋さんがこのコメントをご覧になっているかは分かりませんが、書きます

私の執筆した記事屁理屈と言うのであれば、なぜソラコムは7/5に登録事業者となったのでしょうか。

"事業をやってる立場では、判断曖昧行政宇宙語で応対されても必死に乗り越え様としてる事実など分かりもしない輩に等、絶対に分からない苦労が有ると思います。" とありますが、(ここに限って言えば)登録になった事業者は、皆その行政宇宙語で話をして、きちんと事業をされているわけです。私もその一人ですから

別に玉川さんが技術から法的対応まで何もかも全て完璧対応できる訳無いことくらいは、私にも理解できます

そのための会社です。何のために法務担当電気通信事業法に詳しい主任技術者電波法に詳しい無線従事者が居ると思っているのでしょうか。

あと、私を社会不適合者やクズ人間表現するのは勝手ですが、議論において人格攻撃はいただけません。

(2017/07/23 14:35)

2017-07-02

奈良の店は夕方5時に閉まる? 実際は…

情報番組バラエティ番組奈良が取り上げられると、よく夜が早いという話に。そのとき、まだ明るいのに全部閉まってるやん!という再現VTRで登場するのが、土産物屋が立ち並ぶ「猿沢商店街」。

例えば、関西テレビ『ちゃちゃ入れマンデー』だとこんな感じ:

観光客役「せっかくやからお土産買ってくるわ」

観光客役「ちょっと…閉まってるやん!」

店主役「今日はもうおしまいやねん」

観光客役「でもまだ5時ですけど」

店主役「5時までやねん かんにんな~」

ただ、この猿沢商店街というのは奈良の中でもかなり特殊で、実際には昼に行っても閉まっている。

というのも、

修学旅行シーズン木曜日営業し、あとは休む店が多い

朝日新聞2017年6月28日付大阪夕刊be

それでは、いつ開いてるのかというと

5月の第3週・第4週、6月の第1週・第2週、10月の第3週、第4週、11月第1週の、「木曜日

https://www.facebook.com/photo.php?fbid=1139264769487152&set=a.278189455594692.67941.100002109194935

修学旅行生が来る時間が夜なので、午後3時頃から開店する店が多いとか

https://www.hinagata-mag.com/column/3848

2017-05-30

SQLが好きになれない

たまにSQLを書くのだが、やはりSQLが好きになれない。

構文によって書き方が違うのがわかりにくい。

SELECTはまだいい。問題はINSERTとUPDATEである

INSERTはVALUESで書くくせに、UPDATEになるとSETで=でつなげているのモヤモヤする。

さらに()が必要な構文だったり必要ではないものであったり統一感がないのが混乱する。

INTOで文章らしさを出しているのかしらないが、どちらにしろ文章にならないので中途半端なのでいらないのではないだろうか。

長ったらしいSQLを書かされるのがとてもクレイジー

ちょっとした検索したい場合はいいかもしれないが、プログラムの一部としての長ったらしいSQLは可読性も悪ければ保守性も悪いで誰も得しない。

さら解決される順番が未だによくわからない。特にGROUP BYを使う場合にどういったタイミングでされるのか非常にわかりにくい。

サブクエリ無駄に重ねたり、ON DUPLICATED KEY UPDATEをわざわざ書いたりとなぜ1文で完結させようとするのだろうか。

どっちみちトランザクション複数文になるのならば、最初から複数文となることを前提した仕様としてもいいのではないか

そもそもコードから呼ぶ場合フレームワーク周りでなんとかしろという話ではありますが)

他にもストアドプロシージャやSQL高速化問題もあるとは思うが、自分自身が未熟者でそこまで語れないので書けない。

プログラミング言語については様々な文句が噴出するにもかかわらずSQLについて文句が出ないのはどういう了見なのだろうか。

反対にNoSQLRDBMSのようなことを始める本末転倒な人たちも見かけるがそれぞれ適材適所な使い方をするべき。

体系的に学んでいれば今よりもっとすっきりと理解できるものかもしれないが、嫌悪感を抱いてしまった以上は学ぶことなくずっと憎み続けていくことになるのだろう。

そういうわけでやはり僕はSQLが好きになれない。

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