「accept」を含む日記 RSS

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

2018-11-10

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

前回は、SQLデータ更新をやりました。

今回は、SQLデータの削除をやりましょう。

 

メッセージの削除

基本は、同じなので前回やった更新処理をちょっと変えれば削除もすぐできます

 

投稿されたメッセージを削除する機能を、Webページに付けてみよう。

 

削除ページにジャンプするリンク

前々回作ったメッセージの一覧の中に、削除ページにジャンプするリンクも入れておいた。

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

という1行が削除ページにジャンプするためのリンクになる。

ブラウザーHTMLソースを見ると、ここが以下のようなHTMLに書き換わってる。

<td><a href="welcome/delete/2">削除</a></td>

これは「メッセージID番号が2のメッセージ」を削除対象にして、削除ページにジャンプする。

 

Controllerの改造

ユーザーが「http://localhost/waf/welcome/delete/2」というURLで、削除ページにアクセスしたら、コントローラーで「2」を受け取って使いたい。

CodeIgniterでは、URL文字列を解析して、使うことができる。

以下のようにコントローラーを改造してみよう。

 

// 削除画面

public function delete($id = '')

{

 echo "ID=".$id;

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

}

 

Controllerの改造の解説

delete()メソッド引数で、URL中の「2」の部分を受け取れる。

これは前回の編集ページ(更新の処理)と同じ。

「$id = $this->uri->segment(3);」でも受け取れる。

 

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/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>

 

Viewの改造の解説

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

削除するメッセージを色付きで強調して、ユーザー確認してもらう。

 

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

コントローラー削除対象メッセージID番号を送るため、inputタグの「type="hidden"」でメッセージID番号を仕込んでおく。

 

Controllerの改造

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

// 削除画面

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);

}

 

Controllerの改造の解説

やってることは、前回のデータ更新場合とほぼ同じ。

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

で、モデルに用意したデータ削除用メソッドを呼び出しているだけ。

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

 

Modelの改造

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

// 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();

}

 

Modelの改造の解説

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

DELETE FROM talk WHERE id = ?」で、talkテーブルmessageid指定して削除している。

 

データを削除した後の挙動は、メッセージID番号がなくなるので、削除ページに表示できるメッセージデータがなくなる。

(例)id=2のデータを削除したら、SQLで「SELECT * FROM talk WHERE id = 2」を取得しても、空のデータデータがない状態

その場合は、

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

と表示させてる。

 

まとめ

以上で、SQLの「DELETE」を使ったデータの削除ができた。

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

 

以上で、MVCフレームワークを使ったOOPの使い方とSQLの使い方を見てきた。

SQLSQLだけで説明したほうが良かったね!MVCフレームワーク説明SQL説明が混在すると要点が分かりづらくなる?)

ちょっと失敗だったかも。m(__)m)

 

次回は、データベースの設計について学んでみよう。

 


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:20181111205255 増田プログラマー養成講座 その21 データベース設計 (1)要件定義

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

増田プログラマー養成講座 その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-10-10

物理科 素粒子分野の業績事情

人文系の文献の取り扱いとか業績についてちょっとだけ - dlitの殴り書き

こちらの記事賛同したので続いてみます

かに異分野の事情をお互いにわかっていたほうがみんな幸せになりますよね。パーマネントや学振採用とか。

はじめに

素粒子分野は大きく分けて

に分かれています。これらの間には超えられない壁がありまして全てをまとめるのはちょっと難しいのですがなんとか書いてみます

間違いを見つけたら教えてください。

論文事情

素粒子論文は全て英語で書かれます国内雑誌としてはPTEP(旧PTP)がありますこちらも英文です。当然どれも査読があります

業績リスト論文査読なし)には国際会議研究会の proceeding を載せたりします。

素粒子分野には論文投稿前に arXiv に載せる慣習があります

これは投稿前に業界の人たちに意見をもらい論文修正するためです。accept 後に査読済みの論文差し替えます

arXiv に載っているのは基本的投稿前/査読中/査読済み の論文及び国際会議の proceeding です。

素粒子査読をしないというのは誤解です。

論文雑誌とIF

特に素晴らしい研究Physical Review Letters (Phys. Rev. Lett) に投稿されます。IF8.839 です。

Nature や Science に投稿することはまずありません。

IFの基準業界によりかなり異なるでしょう。

おそらくは  [ 業界の人数 ] x [ 1年間に発表する論文数 ] に依存するはずです。まあ人数の少ない分野は引用数も少なくなるでしょうね。

同じ素粒子業界でもその専門ごとにかなり違うはずですが、とりあえず Inspires によると以下のように分類されています

# of citations
Renowned papers 500+
Famous papers 250-499
Very well-known papers 100-249
Well-known papers 50-99
Known papers 10-49
Less known papers 1-9
Unknown papers 0

自分確認したい人は Inspires で fin a s Masukawa などと打ってみてください。

業界事情

素粒子実験論文を出せない

素粒子実験特にエネルギー方面ではなかなか論文が出せないことがあります

理由簡単実験計画から結果が出るまで多数の歳月がかかるからです。

例えばLHC計画からヒッグス発見まで20年弱かかりました。論文の著者数は5000人を超えました。

このような事情なので「博士課程単位取得満期退学後に研究を続けて論文を出すと同時に博士を得る」というような方がたまにいらっしゃいます

博士号をもっていない素粒子実験の人に出会っても決してバカにしてはいけません。

彼らは博士号取得と同時にノーベル賞を得る人たちなのです。

素粒子理論学生論文を出せない

素粒子理論研究に入る前の勉強量が膨大です。

まず 場の量子論超対称性理論群論リー代数 あたりは三分野共通勉強すると思います

加えてそれぞれの分野の専門的教科書、例えば弦理論なら String Theory (Polchinski) 格子なら Lattice Gauge Theories (Rothe) など。

分野によっては位相幾何学微分幾何学勉強しなければなりません。共形場理論もですね。

この辺りでようやく基礎ができてきましてこのあと30年分くらいの論文を読みます

研究に入るまでの勉強時間がかかるので修論レビューになることが多いです。

当然学振は出せない・・はずだったのですが最近どうも事情が変わってきたようです。

学生の方が学振(DC1)に固執して勉強も途中に研究を始めてしまう、勉強途中のM1研究できることなんてたかが知れているので

必然的にあまり重要ではない研究に貴重な時間を費やしてしまう、というような話をぼちぼち聞くようになりました。

学振についての考え方は人によるとは思うのですが、ちょっと危うい傾向だなと私は思うことがあります

そこでちょっとお願いなのですが

学振研究者の登竜門!取れなかったらやめよう!」などとblogに書いて煽るのをやめていただけないでしょうか?

いや書いてもいいのですが主語を書いてください。「情報系では」「生物では」とかね。

理論博士号を取れない

博士号は足の裏のご飯粒」と言われて久しいですが、弦理論では博士号を取るのはまだまだ難しいと思います

まあとったところで「足の裏のご飯粒」なんですけれどもね・・・

追記

放置していてすみませんまさか今頃上がるとは思っていませんでした。

いただいた重要コメントこちらにも転載しておきます

new3 言いたいことはわかるけど、普通は「ヒッグス発見」を博論テーマにせずもうちょっと控え目な研究に留めるものでは?日本でもJ-PARCからSuper-Kにニュートリノ撃てるんだし10年に1本はさすがに少ないと思う。

どうもありがとうございます文章を少し修正いたしました。他にも間違ったところがありましたら教えてください。

niaoz 懐かしい。補足するとストリングやるなら一般相対論ベース重力理論必要/場の理論は確かに簡単じゃないけど楽しい量子力学特殊相対論(電磁気学含む)を修めたらやってみるとよいです。



kirarichang 学振出せないと思われるのは,(学振の)制度不備だよなぁ.

monopole 素粒子理論分野では修士論文書きにくいけどDC1の枠はあるので、採用者は実績によらずほぼランダムだったり有名研究室に偏ったりする。まあ論文なしでも通る可能性あるから学振気合い入れて書け

えっ!!論文なしでも通ることあるのですか!

Ho-oTo 今時の素粒子理論院生DC1用に1本は書いてるイメージが強い。

最近は大変ですよね。指導している方もすごいと思います

kowa 素粒子系は知性の墓場だと感じてる。優秀な人材があまりに何もできなくて、消えている。魅力はわかるが、1/5000のcontributionだかでいいのだろうか

猫も杓子も素粒子目指しすぎですよね。宇宙論も。

2018-08-30

三大聞き間違える英単語

個人的に間違える英単語

acceptとexcept

acceptのaは「エ」に聞こえる。

troubleとtravel

æとʌの区別もbとvの区別もできない。

Koreaとcareer

イギリス英語なら発音一緒?

あとrとlで紛らわしい単語全部

2018-06-30

anond:20180630145225

増田です。

ありがとうございます

問題文に

例としてX=7 の時が上げられています

その解答が2です。

試しにX=7 で 解答を2で提出すると accept されます

X=7でムリやり 3に変えるとaccept されないケースが一つあるので、正解は2のようですが...

問題文に対面の和が7だと明記されています


最小の回転数を求めよ、なので2でも3でもよい、と言うことはないです。

2018-06-05

anond:20180605115639

US-ASCII選択肢最初に出し、フォントがないと読めない文字列最後のほうに出すようにするのが一般的ではある

適切なフォントがなかったりフォント指定になにかしら失敗してた時、その多言語文字列以降は下手したら全く読めないわけだから

Accept-Languageが2種類あったときかもめんどくさいのだ

2018-04-08

読んだページを全部自動ブクマする

数日前に puppeteer で自動PDF にする試みを書いたブログホッテントリに入ってるのを見た

それに影響されて自動ブクマするもの作ってみた

bg.js

const username = ""
const api_key = ""

chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
	if(message.bookmark){
		bookmark(message.bookmark)
	}
})

async function bookmark(url){
	fetch("http://b.hatena.ne.jp/atom/post", {
		method: "POST",
		referrer: "no-referrer",
		headers: {
			Accept: "application/x.atom+xml, application/xml, text/xml, */*",
			"X-WSSE": await createCredential(),
		},
		body: `
			<entry xmlns="http://purl.org/atom/ns#">
				<link rel="related" type="text/html" href="${url}" />
			</entry>
		`.replace(/\t/g, ""),
	}).then(e => {console.log(e)})
}

async function createCredential(){
	const non = Math.random().toString(36).substr(2)
	const now = new Date().toISOString()
	const buf = new TextEncoder().encode(non + now + api_key)
	const u8a = new Uint8Array(await crypto.subtle.digest("SHA-1", buf))
	const str = Array.from(u8a, e => String.fromCharCode(e)).join("")
	const b64 = btoa(str)
	return `UsernameToken Username="${username}", PasswordDigest="${b64}", Nonce="${btoa(non)}", Created="${now}"`
}

username と api_key を埋めてバックグラウンドで動かす

page.js

chrome.runtime.sendMessage({
	bookmark: location.href
})

ページ内で動かすコード

URLバックグラウンドに投げる

今は全部投げるコードになってるが、必要に応じていらないドメインを弾いたりする

2018-03-13

高校時代の半分を独学で勉強して京大法学部に現役合格した話(字数限界につき以後追記なし)

https://anond.hatelabo.jp/20180307150402

諦めるのが早すぎる。高い目標下方修正はいつでもできるが、京大をまた目指しはじめても低い目標上方修正するのはきついぞ。

年間1-2人だけ京大に行く公立高校に通い、高校1年の4-12月個別指導英語だけを週2時間高校3年の9月-本番まで河合塾京大数学京大英語コースを受講、最後冬休み河合塾京大演習コースも受けた。それ以外は独学。結果京大法学部に現役合格した。学校に特進コースはなかったし、クラス文系理系の二分のみ。部活には休まず通い(運動系だったが大会存在していなかった)、高校3年の夏休みとか1日2時間くらいしか勉強してなかった(結果死んだので河合塾行き)。その際のノウハウを共有するから参考にしろ

基本方針

学校定期試験無視しろ。残り2年間で京大学力に到達することだけを考えろ。定期試験で点数がとれようととれまいと京大受験には関係ないし、学校はお前の受験結果に責任を持たない。また、センターはともかく二次試験完璧を目指すな。京大に入りたいなら合格ラインに達してさえいればいい、たしかせいぜい6割くらいだ。

今の段階で京大受験必要センター科目・二次試験科目を絞れ。そして今後2年間の勉強計画を立てろ。ただし総合的な勉強量は考えておこう。センター日本史二次試験世界史受験する方針高校2年で立てた結果2年以降の世界史を完全独学でやり(2-3年は日本史の授業だった)、地獄を見た。普通な世界史地理日本史地理を選ぶ。このあたりは独学の悪い所で、適宜誰かに相談して方針が変じゃないかどうかを確かめるのは大事

京大に受かるためには数学に限らずそれ以外の勉強が不可欠。京大を目指していたなら過去問くらいは開いたことがあるだろうが、京大二次試験は異質だ。ほぼほぼ全ての回答が記述式。これで面食らう人間が多いが、実際のところあれはセンター試験選択肢なしで解くだけな問題も多い。センター試験数学がたまに突飛な回答をするのを思い出せ。センター試験レベル知識習得できれば、京大問題は実のところ解けてしまう(勿論一定以上の応用力は必要だが)。とにかく基礎を固めろ。突飛な英単語やドマイナー歴史知識不要

基礎的な勉強学校で買わされた教科書文法書・参考書を利用すればいいが、京大レベルだと不足する。今すぐ2ちゃんねる(今では5ちゃんねる)の大学受験板に飛び、各科目の総合スレを開け。そこには10年以上前から構築された知のノウハウがつめこまれている。具体的には各スレテンプレにある参考書一覧のことだ。俺が受験生だった10年前と比べると今のインターネットはクソまとめアフィリエイトサイトで溢れてしまってるが、あそこに書かれている参考書一覧は今でも変わらず良書だけを選んでいる。各科目、高校3年の夏くらいまでにそこに書かれた京大レベル参考書を数冊、2周~3周解いている状態を考えろ。それを目指して、どの参考書をいつまでに解いていればいいかを逆算してみてくれ。ギチギチに詰め込む必要はない、むしろゆったり考えろ。あくまで、手持ちの範囲・出来る範囲スケジュールを組め。

勉強量だが、俺の場合高校2年の段階から大体1日2-3時間毎日やっていた。朝起きて1時間部活が終わって帰宅し、風呂に入って寝る前に1-2時間試験前はもう少し勉強量を増やした記憶がある。これを基本毎日やること。どこまでやるかじゃなく何分やるかを意識しろ。だが飽きたときはやらなくていい。俺は何度か小説にはまって(ラノベだと戯言とか禁書とかイリヤ文学方面だと村上春樹夏目漱石)、後で書いてる散歩だけしかやらない時期が何度もあった。毎日2時間くらいネットサーフィンしていた気もする。ただ高校3年の秋以降は4-5時間に跳ね上がったかもしれない。流石に焦った。

忘れずにやってほしいのが、毎日の各科目ごとの勉強量をメモしておくこと。今すぐ新しいノートを開き、1行目に京大受験必要な科目を全て列挙しろ現代文古文数学1、数学A、数学2、数学C、日本史世界史生物英語英単語etc...そして2行目から毎日どの科目を自主的に何分勉強たか書いていけ。これをやっておくだけでもモチベーション維持が随分違う。「あの科目しばらくやってないな」というのも一目でわかるから万遍なく勉強ができる。

個人的おすすめなのが、朝か夜に必ず1時間散歩して単語帳or一問一答を声に出して解くことだ。運動しながら勉強をすることで脳が活性化して記憶に定着するとかい理屈があるらしいが真偽は不明。ただ、散歩することで運動にもなるし、つまらない暗記ものをやるときに家で寝てしまわないという利点がある。勉強気分転換にもなる。ただ夜にやるとき安全と、女性場合治安等に気をつけてくれ、責任は持てない。俺は一度だけ国道沿いの深さ1.5mの側溝に落ちた。

勉強の基本は繰り返しだ。 ただし、漫然と繰り返すな。問題文の頭に○や×、△などで解けたかどうかをチェックしておけ。2周目以降、一度でも正解した問題は飛ばせ。でも解いてからしばらく時間(1ヶ月~半年)が経ったら念のためもう一度解け。たとえば1周目に間違えて2周目に正解したら「×○」、1周目に正解して2周目・3周目は解かなかったが4周目にケアレスミスで間違えたら「○ - - △」みたいな感じに書いていけ。

とにかく「その問題で何回間違えたのか」が視覚にわかるようにしろ。そうやってチェックをつけていると、「参考書を開いたら、どの問題ミスやすく、どの問題が得意なのか」、要は復習時の要チェックポイントが一発でわかる。こうしておくと、最終的には数学1A全ての復習が1時間で終わるようになる。

個別具体的な勉強法について

数学

おそらく学校チャート式を買わされてるだろう。買ってないなら買え。一年間でとにかくそれで勉強を繰り返せ。

勉強方法の基本は写経だ。例文に書いてるやり方でひたすら問題を解く。まずは例題の回答方法を一字一句写経しろ。そして同じ解法で一字一句同じ書き方で解け。数学が苦手なやつによくありがちだが、解答で途中の解法をすっ飛ばすのはNGだ。理由は以下の3つだ。①理屈を何度も書いて覚える必要があること②採点者にとって「すっ飛ばしている部分を回答者理解しているかどうか」がわからないので×にせざるを得ないこと③京大数学記述問題は「計算を間違えていても、理屈があっていれば部分点をくれる」ということがままあること。

京大数学を解いたことがあるなら2完とか3完とかいった言葉を聞いたことがあるだろう。あれは全5問のうち3問は全部解答できたという意味であり、つまりは多くの受験者が5問のうち2-3問しか完答できていない(完答できなくても点数は獲得している)ということだ。数学論理でできている。故に京大数学重要視しているのは解法の論理理解しているかどうかという点だ。

から、とりあえずわからない問題は悩む前に解答例を見てやはり写経しろ。お前の頭で考えるな、答え(=解法の論理)は先達が既に考えてくれる。言っちゃ悪いが高校数学レベル問題なんてチャートに書いてることがすべてだ、俺は黄色チャートで乗り切った。

もしどうしてもわからない単元がある場合は、このサイトのpdfに載ってる当該単元に関わる章を全部読め。当該サイトは、「1+1がどうして2になるのか」という説明からはじまった高校数学に関する説明を全部やりきる『高校数学+α』というすごい本の全文をpdfとして配布している。最初から通読しようとするのはきついので無理しなくていいが、わからないことがあればこの本を読めば絶対にわかる。

英語

英語は現段階であれば文法書を何周もしておくこと。細かいことは言わん。何周もしろ。あと、英単語帳は今から3ヶ月で一旦全部暗記しろ高校3年にもなって英単語帳を一からやるのは馬鹿らしすぎるしリソース無駄遣いだ。1日1時間やれば3ヶ月でどうにかなる。

英単語をはじめて覚えるとき絶対忘れちゃいけないのは「1日でも時間を空けるな」ってことだ。毎日やれ。英単語帳はどれでもいい、どうせ全部覚えるんだから変わらん。覚え方だが、とにかく音読しろ。「accept」という単語があるなら「アクセプト受け取るアクセプト受け取るアクセプト受け取るアクセプト受け取るアクセプト受け取る……」と5回〜10音読して次の単語に行け。黙読は絶対にやるな、音読して単語意味を音としてインプットアウトプットすることに意味がある。ページ単位で考えずに時間で考えろ、10分で一度音読できる範囲まで音読しろ。次の10分で同じ範囲をもう一度最初からやりなおせ。次の20分では新しい範囲で同じことをやれ。最後20分で全部おさらしろ。1セット1時間を目処にするといいだろう。これで1日100単語インプットできるはずだ。勿論翌日には半分以上忘れるしすぐに思い出せない。それが当たり前なので気にするな。大事なのは復習だ。翌日は一度読んだところを20分かけて再度音読しろ絶対だ。1日後というのが重要で、詳細は忘却曲線でググれ。残りの40分は新しい範囲時間を費やせ。これを毎日やれば3ヶ月で1冊丸暗記できる。忘れたら忘れたで構わん、再度読み直せ。1週間スパンくらいで全体を再度復習するといいとは思うが、その日に覚えたことを翌日復習するというのを徹底するなら復習頻度は気分でよしなにやれ。

京大英語の恐ろしいところは、主要な問題英文和訳日本語英訳だけというところだ。文法の基礎(センターで満点を狙える程度)をがっつり固めるのは当たり前として、それ以外に和訳英訳練習必要だ。和訳絶対におさえておくべきなのが伊藤和夫英文解釈教室』。今からでいいので買って少しずつ、それこそ3日に1問・1問解くのに1時間かけてもいいから触れておくのがいい。解けなくても、やるときは1時間やれ。解説は精読しろ

それ以外では、学校での課題夏休みでの宿題で長文演習問題が出てきたら、全文を和訳するといい。「受験関係ない宿題をこなす」が「京大英語の演習をおこなう」に変化する。

英訳は逐語訳ではなく意訳の力が求められるのでかなり難しい。そこでサンプルとしておすすめしたいのが『英文対照 天声人語』。天声人語自体の良し悪しは知らん。俺も普段読んでるわけじゃない。ただ、日本語の意を汲み取って逐語訳ではない英訳を集めてるサンプルケース集としては有用だ。

しかしながら、英訳和訳も独学には限界がある。なのでここは他人を利用しろ赤本過去問でもなんでもいいから、演習を解いたもの大人にチェックしてもらえ。一番いいのは京大英語講座に行くことだが地域的な問題で行けない場合もあろう。英語教師にチェック依頼するとかがベターだ。

その他

現代文は知らん、息抜き小説たくさん読むとかするといい気がする……とぶん投げるのもよくないのだが、いかんせんこの分野は扱いが難しい。なので俺が楽しかった参考書だけ紹介する。

石原千秋の『大学受験のための小説講義』『教養としての大学受験国語』はすごい。大学に入ってから知ったが、石原千秋文学理論日本文学に当てはめることほぼほぼ初めて行った研究者で(大学時代の知り合いに教えてもらった知識なので間違ってたらすまん)、現代における漱石研究第一人者。この人のテクスト読解はすごく楽しい趣味になるが『謎とき 村上春樹』も最高。

評論系だと『MD現代文小論文』が主要なトピックスを抑えててよい。大澤真幸が「自由牢獄」について言及していたので俺はミヒャエル・エンデを知った。ただ(内容ではなく出版年月が)少し古いので一度書店立ち読みしてみるのがいいかも。

古文漢文は、基本文法・基本単語マスターするのが前提として、あとは慣れの部分が大きい。漢文には正直そんなに力入れなかったので割愛するが、古文小学館の古典文学全集シリーズのうち、平安時代あたりのものを1冊でいいので(たとえば源氏物語の1巻だけとか、当該シリーズ26巻の『和泉式部日記紫式部日記更級日記讃岐典侍日記』とか)読み切る。当該全集は各ページ三段組み=原文・訳文・注釈が同時にチェックできるので、原文を読む上で圧倒的に優れている。文法を暗記しようとか、知識をあまさず覚えようとかしなくていい。でも注釈は全部読め。どの原文がどの訳文と対応しているのかを常に確認しろ。そうすることで時代的な知識を知る事ができるし、何より「古典作品を読んだ」という自信がつく。

日本史世界史だけは例外的で、高校の授業を一字一句もらさず板書すること。どの事件にどんな背景があって、それがどういった結果につながっていったのか、そういった歴史の流れを理解するのは、教科書参考書で独学するよりも先生の話を聞いた方が圧倒的に楽。豆知識記憶の定着に役立つ(先生によるかもしれないが)。複雑な範囲日本史近代とか)は自作フローチャートを作れ。骨子の流れを覚えたら参考書で補強。本気で独学すると山川出版『詳説 世界史研究』で死ぬ。575ページあった。

それでもなお世界史を独学すると言うなら、世界史参考書として『タテから見る世界史』『ヨコから見る世界史』を押さえておくとベター物事俯瞰して押さえるのが大事。あと論述対策しておくこと。

生物は正直センターレベルだと独学することがない気がするので、やっぱりセンターで80-90を狙って勉強するのがいい。

政治経済は、申し訳ないが大学時代知識アップデートされすぎたのでどう勉強したのか覚えていない。すまん。

地理物理地学勉強してないのでわからん

最後

後半飽きてしまった部分があるので雑な投げ方していたところもあって申し訳ないが、最後に1つだけ。

俺が挫折を味わったのは京大に入ってからだった。六法講義が何一つわからないのに周りの人間はすらすらと解いていく。60点で可をとるのが関の山だったのに、その横では「80点に届かないか問題解かなかった(ロースクール受験には学部成績が影響するのでそういうことが往々にしてある)」という会話がなされている。俺は2回生とき法曹を目指すのを諦めた。

でも、それと同時にもっと楽しい事・面白いことを沢山知る事ができた。政治学から価値判断と切り離した広い視点を持つことを学んだし、小野教授政治思想から人類史通底する観念とその変遷の奥深さを知った。プログラミングにはできないことも多いがそれ以上にできることが多いという、応用力の幅広さに助けられた。京都では、自転車を走らせればすぐ史跡寺社仏閣に行ける生活が待ってるし『四畳半神話大系』が最高に楽しめるようになる。そんな環境で、自分と同じ興味を持った人間と同じ話ができるというのが何よりすばらしかった。大学時代に比べたら、高校時代記憶なんてほとんどないし、社会人になってから大学以上に楽しい環境いたこともない(今の環境がだめという話ではないが)。

京大に限ったことではないと思うが、大学は、色んな学問研究する色んな人間がひしめきあった結果、知的興奮の機会に満ち溢れている場になっている。もし京大に行けなかったとしても、早稲田慶応等のある程度一流と言われている大学であれば、絶対にそんな魅力を味わうことができるはずだ。

そしてなにより、今度どうやっていくかに関わらず、勉強を楽しんでほしい。英語の長文演習問題はするする読めるようになるとめっちゃくちゃ面白いし、小説海外ニュースも読めるようになる。源氏物語は第1帖「桐壺」を全部読むだけでもうるっとくる。高校数学一種論理パズルと考えたとき京大数学演習問題が異常に楽しいというのはやったことがあるならわかってもらえるはずだ。

健闘を祈る。世界は広い。

2017-10-14

Two years have passed since I moved to a developed country

ほらよ。

https://anond.hatelabo.jp/20171014071350

I am working as an engineer in the IT area, but I managed to hold it for some 2 years.

I do not have confidence yet, and I feel even more confident about my confidence for the rest of my life, the excellence of my colleague.

If I do not desperately do it I am working everyday with feelings that it is not amusing even if I receive a notification outside the fighting strength.

Still, in Japan, I think that Japan has much better skill than CTO in that area.

In the future I thought that if I could return to Japan and contribute to the Japanese society, Japan that is visible from the outside is bad.

What is bad, first aspect of politics.

Politics

The point that democracy is not fully functioning against the fact that there are stupid citizens who blind the LDP, such as Abe's descent.

That other party is also not good. Hope party? What is that lady like that disciple of Ru Ooshiba? Rou Koike?

The more you do not have it, the stupid will be clouded in katakana and psychology. You idiots, you guys say this. I love Katakana anyway, I love psychology, 100% I do not say big things. What is Y's Spending. Do not fix what you normally call katakana.

Since the political system is over in the first place, I think that it is the cause of failure of not receiving popular people, especially elderly people, only short-term and useless policies absolutely. So we will not attack only the LDP.

It is too fatal that politics is not rational and it is impossible to include the policy that should be done. Because it ends with poppiness if I can not vote.

Unfortunately, the trend of changing the political system probably will not happen if it fails.

In recent decades, politicians have accelerated the declining birthrate and aging society to a distortion with outlook on the preferential treatment for the elderly + measures against the declining birthrate.

The decline in Japan's birthrate and birthrate is partly spontaneous, but the world's low birthrate and aging society is not caused by natural phenomena.

There is not any future that putting all the energy to surrender the tax to the old man by tax free over medical care. It was already late when we were discussing whether a large amount of tax would be used due to politicians' old elderly votes or ten years ago, so it was already late, we have not corrected the orbit again so far I am going to politate on the same route.

An aged politician does not think about a short-circuiting policy, the future. Citizens delight in the immediate economic policy.

Grass grows now, as the nation 's collapse has become a reality.

If the declining birthrate and the aging population advanced at this pace as it is, the Japanese boat will sink in 20 years. Two years ago I thought I would have 30 years.

I gave up completely to Japan's politics. Defeated entertainment is not funny. I'm saying that it is japanese, but I do not dislike it. To give up means to accept failures.

Next is the aspect of business.

business

Did you have a business anywhere other than bidding? I do not have pieces of creativity. There is no further ethics.

What is it, Mercari or DeNA or moral business or something is a social sin. I just confused society, did not I? The country and the country came to know not ethics.

Ethics of the Japanese are lower than the Japanese think.

Although I derail for a while, accident happens in front of my eyes, the idiots who take pictures with smaho are not minorities at all Nationality is bad.

Even though there is service only where money is involved, do not say hospitality as if it were the national character of the Japanese.

It is not a minority to be a completely individualist society and people are troubled and help people.

At this time new creative business is born from one to the next. It is at an unthinkable pace in Japan. Of course, there are many doubtful businesses as to whether it will become money, but it is better than Japanese society where there is no brain except copying the business of another company at all.

So almost no company wants to work in Japan.

And the fall of the company. Almost no international competitiveness. Even large corporations will be crushed.

With this aging birthrate and declining birthrate, you can not contribute even to domestic demand with the elderly who can not see the future if it is full of old people.

There are no people with a declining birthrate. It seems that young people are supporting the LDP by thinking positively as being a seller's market completely.

There is only one person who is not merely a policy of an aging population declining birthrate. Your future is pitch dark.

Were I so stupid as to whom I thought of going back to Japan? What? It is certain that at least the field of view and experience has been much lower than it was now.

If I see myself two years ago, I feel mercy only now.

Indeed it is visible that it will collapse in another few decades Indeed it will not be possible to return to Japan.

Why do I have to board a sinking ship? Parents are the only team to surrender, only you are to protect yourself.

Originally I decided not to make children from the uncertain future of society, not myself. I think that choice was right.

Politician Now, if you are not stupid, it means that you are doing intentional bankruptcy activities.

It is good that you are only interested in being inspected. I do not know anymore.

At the very least, please try to make Japanese citizens work in the world. If the hurdle of labor visa goes down, then you will be able to do it if you have English proficiency.

I had a lot of hardships. Although it is inferior to native, I am working without problems.

Oh, I wanted to go back to Japan. . .

2017-01-18

{You're stupid. Yamato Nadeshiko has gone extinct}

I noticed that 10 years passed since I started writing blogs.

While the world is increasingly connected to NET and scarping the gap between those who have information and those who do not have it every day, I think that it is unhappy that violence due to concentration of wealth is increasingly increasing power.

It is "religion" that is surprisingly personally surviving.

A certain great scholar is said to have said that "Religion is a drug of the poor"

Now that mobile phones are spreading in countries called poorest countries and the Internet covers the world now

I want to wish that such common sense is another few years of life.

"Enlightenment" which is the difference between religious leader and believer is only a concept,

The fact that Islam society does not accept social advancement as much as treating women,

It does not match the present era.

I feel even dizzy to the extent of Americans who still do not believe in the theory of evolution,

I think that it is sick if you are watching Korea who is singing and saying that it is the place of origin of its own country keyy.

I welcome the fact that China, which is misunderstood as a nationwide all countries other than his country, is finally getting cold from a hangover,

I am impressed with Putin who is handling Russia brilliantly but vodka is about to expire soon.

President of the world's largest military superpower, Christians of discrimination will truly be overworked by esprit.

The door to World War III has been opening much more than I feel.

It might be a trial from Gaia against an overly populated population.

馬鹿だな。やまとなでしこ絶滅したよ}

ふとblogを書き始めて10年経過したことに気づいた。

世の中はますますNETにつながれ情報を持つ者と持たざる者格差を日々スキャルピングしているなか、富の集中による暴力ますます力を増大させているのは不幸な事だと思う。

個人的に生き残っているのが不思議なのが「宗教」だ。

とあるお偉い学者先生は「宗教は貧者の麻薬だ」と言ったそうだが、

最貧国と呼ばれた国にも携帯電話が普及してインターネット世界を覆っている今

そんな常識もあと数年の命であることを願いたい。

宗教指導者信者の差である悟り」は概念しかないし、

イスラム教社会女性を大切にするあまり社会進出を認めないのは、

今の時代にそぐわない。

未だに進化論を信じないアメリカ人の多さには目眩すら感じるが、

なんでも自国発祥の地だと謳いキーキー騒いでる韓国なんかみてると病気だと思う。

自国以外の国は全て属国勘違いしている中国最近やっと二日酔いから冷めつつあるのには歓迎もするが、

ロシアを見事にハンドリングしているプーチンには感心するもそろそろウォッカが切れてきた。

世界一軍事大国大統領差別主義キリスト教徒なんてさすがにエスプリ効きすぎだろう。

自分が感じるよりもずっと第3次世界大戦への扉は開きつつある。

増えすぎた人口に対するガイアからの試練かもしれないね

2015-11-11

SHIR●BAKO 7話を見たアカポス志望博士課程院生 震える

登場人物

  1. (杉江)数々の任期付きポスト渡り歩いてきた高齢ポスドク。くぐり抜けた修羅場は数知れない。

ーーーーーー

論文執筆に悩む博士課程院生を前にしてのありがたいお言葉

杉江 『若い時でないと、(論文を書く)手の速さは身に着けられないからね。今が頑張り時だよ』

杉江 『歳とって(acceptされる)技術を手に入れても、むしろスピードは落ちていく』

杉江 『周りにうってつけの手本がいるじゃないか(ラボボスを指差して)』

杉江 『出来れば食べられる。出来なければ辞めていく…ポスドクはそういう仕事だよ』

杉江 『ぼくなんか、辞め時を見失ったロートルだけどね』

ーーーーーー

おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおぉんんんんん^~論文が書けないんじゃ^~

2014-10-12

これだけは聞いとけ卒業スピーチ7+1(英語学習者向け)

"The secret I've learned to getting ahead is being open to the lessons." by Oprah Winfrey, Stanford 2008

David Foster Wallace, Kenyon College, 2005

Video: https://www.youtube.com/watch?v=8CrOL-ydFMI

Full Transcript: http://web.ics.purdue.edu/~drkelly/DFWKenyonAddress2005.pdf

The only thing that's capital-T True is that you get to decide how you're gonna try to see it. This, I submit, is the freedom of a real education, of learning how to be well-adjusted. You get to consciously decide what has meaning and what doesn't. You get to decide what to worship.

Conan O'Brien, Dartmouth College, 2011

Video: https://www.youtube.com/watch?v=ELC_e2QBQMk

Transcript: http://www.dartmouth.edu/~commence/news/speeches/2011/obrien-speech.html

It is our failure to become our perceived ideal that ultimately defines us and makes us unique. It's not easy, but if you accept your misfortune and handle it right, your perceived failure can become a catalyst for profound re-invention.

or, "Nietzsche famously said "Whatever doesn't kill you makes you stronger." But what he failed to stress is that it almost kills you."

Jeff Bezos, Princeton 2010

Video: https://www.youtube.com/watch?v=vBmavNoChZc

Transcript: http://www.businessinsider.com/we-are-what-we-choose-2010-6

"Cleverness is a gift, kindness is a choice. Gifts are easy -- they're given, after all. Choices can be hard. You can seduce yourself with your gifts if you're not careful, and if you do, it'll probably be to the detriment of your choices."

Dick Costolo, Michigan, 2013

Video: https://www.youtube.com/watch?v=oqRPesTumlA

You can’t plan a script. BE in THIS moment.

or, "You need to make more courageous choices. Take courageous risks."

David McCullough, Wellesley High School 2012

Video: https://www.youtube.com/watch?v=_lfxYhtf8o4

Transcript: http://www.myfoxboston.com/story/18720284/2012/06/06/full-transcript-youre-not-special-speech

And read… read all the time… read as a matter of principle, as a matter of self-respect. Read as a nourishing staple of life.

You're not special. Because everyone is.

Ellen DeGeneres, Tulane 2009

Video:https://www.youtube.com/watch?v=0JccudODwwY

Transcript: http://gradspeeches.com/2009/2009/ellen-degeneres

"If you don’t remember a thing I said today, remember this, you’re going to be ok, dum de dumdumdum, just dance.

or, "the most important thing in your life is to live your life with integrityand not to give into peer pressure to try to be something that you’re not, to live your life as an honest and compassionate person, to contribute in some way. So to conclude my conclusion, follow your passion, stay true to yourself. "

Steve Jobs, Stanford, 2005

Video: https://www.youtube.com/watch?v=UF8uR6Z6KLc

Transcript: http://news.stanford.edu/news/2005/june15/jobs-061505.html

No one wants to die. Even people who want to go to Heaven don't want to die to get there. And yet death is the destination we all share. No one has ever escaped it. And that is as it should be, because death is very likely the single best invention of life. It is life's change agent. It clears out the old to make way for the new. Right now the new is you, but someday not too long from now, you will gradually become the old and be cleared away. Sorry to be so dramatic, but it is quite true.

Your time is limited, so don't waste it living someone else's life. Don't be trapped by dogma — which is living with the results of other people's thinking. Don't let the noise of others' opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.

おまけ Elon Musk, TED

Chris Anderson: Elon, how have you done this? These projects are so -- Paypal, SolarCity, Tesla, SpaceX, they're so spectacularly different, they're such ambitious projects at scale. How on Earth has one person been able to innovate in this way? What is it about you?

18:33

Elon Musk: I don't know, actually. I don't have a good answer for you. I work a lot. I mean, a lot.

Transcript: http://www.ted.com/talks/elon_musk_the_mind_behind_tesla_spacex_solarcity/transcript?language=en

2014-08-06

増田釣りチェッカーを作りたい

増田日記を解析して釣りかどうか判定する。

文章の特徴(主に語彙)を解析して同一人物が書いたと思しき日記を探り当てる。

そのためには増田サーバHTTPリクエストを送って日記を大量にダウンロードしないといけないんだけど、うまくいかないので誰か助けてください。

とりあえず増田サーバにソケットつなげて

GET /20140806210945 HTTP/1.1

Host: anond.hatelabo.jp

みたいなHTTPリクエスト送って、


HTTP/1.1 200 OK

Date: Wed, 06 Aug 2014 12:46:07 GMT

Server: Apache/2.2.3 (CentOS)

X-Framework: Hatena/2.0

Content-Length: 11446

Content-Type: text/html; charset=utf-8

Vary: Accept-Encoding,User-Agent

以下メッセージボディ


みたいな返信をもらうところまではできたけど、メッセージボディを読んでもJavaScriptコードが書いてあるだけでどこにも日本語がない。

どうやったら日記の内容受け取れるのでしょう?

追記

よく見たらJavaScriptの中に細切れになった日本語日記ありました。

これ修復するのかぁ。

めんどいなぁ。

2014-04-13

http://anond.hatelabo.jp/20140413145107

佐村河内さんの話

「そう、俺、作者のストーリーが良いから曲聴いてたのにさ、それが嘘だってうから怒ったんだよ」と言えるなら理屈で動いてる。

「いや、もちろん曲がいいから聞いてたんだよ。曲がいいからだけどさ。でも、あれはさ・・・」となると理屈で動いてない。

真央ちゃんの話

「失敗を盛り返したあのストーリーに感動したんだよね。まあ結果だけを見るとメダルなしでどうかと思うけど」と言えるなら理屈で動いてる。

メダルどうこうが重要なんじゃない。ベストを出し切れるかどうか、それが重要なんだ」とか言い出してしまうと理屈で動いてない。

小保方さんの話

佐村河内さんの話と真央ちゃんの話は、理屈切り返してきてるのに、ここだけ駄目だね。

理研は内規違反があったかどうかを調査しているだけで、事実の全体像は調べないでしょ。

そもそも論文が捏造かどうかを、事前に理研がチェックする必要ないよね。

ここも理屈でいくんなら「捏造が疑われるような論文Acceptする『Nature』って、どんだけ三流学術誌だよ」とか言った方が良いのにね。

2013-08-12

Webサーバを作る】http://d.hatena.ne.jp/kmaebashi/20130804/p1

マネしてPerlで書いてみた。以下ソースコード

use Fcntl;

use strict;

use Socket;

use threads;

use POSIX qw(strftime);

use File::Spec::Functions qw(rel2abs);

my $thread = threads->new(\&serverThread, "");

$thread->join;

sub getContentType {

my $ret;

my %hashmap=(

"html" => "text/html",

"htm" => "text/html",

"txt" => "text/plain",

"css" => "text/css",

"png" => "image/png",

"jpg" => "image/jpeg",

"jpeg" => "image/jpeg",

"gif" => "image/gif"

);

$ret = $hashmap{$_[0]};

if ($ret eq "") {

return "application/octet-stream";

} else {

return $ret;

}

}

sub serverThread {

my $documentRoot = rel2abs("D:/var/www/html");

my ($line, $path, @tmp, $ext, $data, $absPath);

socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp'));

bind(SERVER, sockaddr_in("8001", INADDR_ANY)) || die;

listen(SERVER, SOMAXCONN) || die;

while (accept(CLIENT, SERVER)) {

while (<CLIENT>){

$line = $_;

last if ($line eq "" || $line eq "\r\n" || $line eq "\n");

if (index($line, "GET") == 0){

$path = (split(/ /, $line))[1];

@tmp = split(/\./, $path);

$ext = @tmp[$#tmp];

}

}

print CLIENT "HTTP/1.1 200 OK\r\n";

print CLIENT "Date: " .strftime("%a, %d %b %Y %H:%M:%S GMT", gmtime). "\r\n";

print CLIENT "Server: Sever03.java\r\n";

print CLIENT "Connection: close\r\n";

print CLIENT "Content-type: ". getContentType($ext). "\r\n";

print CLIENT "\r\n";

$absPath = rel2abs($documentRoot. $path);

if (index($absPath,$documentRoot)==0 && sysopen(FH, $absPath, O_RDONLY | O_BINARY)) {

while ($data = <FH>) {

print CLIENT $data;

}

print CLIENT "\r\n";

close FH;

}

close CLIENT;

}

}

コアモジュールだけ使った。

元ネタJavaコードディレクトリトラバーサルになってたんで、一応対策を盛り込んだ。

といっても絶対に外向けに動かさないように。無いと思うけど。

いろいろツッコミくれるとうれしいです。

2012-01-06

Article 14 the mobile phone will know the battery skills

If users want to prolong battery the efficient use of the time, in addition to the quality of the charger to have the guarantee, the right skills and charging is essential, because of low quality charger or wrong charging methods would affect battery time and life cycle, the following is about to charge skills:

1. The battery before they leave the factory, manufacturers were activated processing, and the charge, so the battery are more electricity, my friends say battery charging adjustment period in accordance with the time, standby still seriously insufficient, assuming that the battery is really quality goods battery of words, this kind of circumstance should extend the setting and then 3 ~ 5 times fully charge and discharge.

2. If new phone is lithium ion battery, so before 3 ~ 5 times charging commonly known as adjustment period, should be charged more than 14 hours, in order to ensure that the fully activate lithium ion activity. The lithium ion battery no memory effects, but have very strong sui sex, should give full activated PANASONIC CGR-D220 Battery, to guarantee the use of after can reach the right performance.

3. Some automation intelligent quick charger when instructions lights change, said only full of 90%. The charger will automatically change with slow charge will batteries. Best will use after batteries, otherwise, it will shorten use time.

4. Before charging and discharging lithium battery does not need special, but will not discharge damage to the battery. As far as possible when charging at the slow ChongChongDian, reduce the way quick charge; Time don't more than 24 hours. The battery after three to five times fully recharge cycles of internal after chemical will be all "activate" to achieve the best use effect.

5. Please use the original or the reputation of the good brand charger, li-ion battery to lithium battery charger with special, and follow the instructions, otherwise, it will damage to the battery, and even dangerous.

6. Have many users often in charge still leave her cell phone, actually such will be very easy to PANASONIC CGA-S101E/1B Battery damage the service life of the mobile phone, because in charge of the process, the circuit boards of mobile phone can calorific, if this time more exotic phone, may produce instant backflow current, internal parts to mobile phone damage.

7. The battery life depends on the number repeatedly charging and discharging, so should try to avoid more battery electric charge when, this will shorten battery life. Cell phone time more than 7 days, supposed to completely discharge the cell phone battery, enough electricity before use.

8. The cell phone battery have self-discharge, need not when the nimh batteries will press the residual capacity every day, about 1% of the discharge, lithium battery every day to 0.2% ~ 0.3% discharge. In for the battery, try to use the special socket, don't will the home appliance such as the Shared and the TV charger socket.

9. Though the phones in the network coverage area, but in the cell phone charge, cell phones have been unable to accept and call. At this time, can use of the mobile phone is not transfer function, will be transferred to the mobile phone side of fixed telephone in order to prevent calls lost, this kind of method for mobile phone is not in the network coverage of the area or weak signal and temporarily unable to the applicable also.

10. Don't will be exposed to high temperature or cold PANASONIC DMW-BCG10E Battery , as the dog, should not put the phone on the car, and the sun blazed through the; Or get air conditioning room, in air conditioning to be blown continuously place. When charging, the battery is a little heat is normal, but can't let it what the high temperature "suffer". In order to avoid the happening of this kind of circumstance, had better be in charge at room temperature, and don't cover anything on the mobile phone.

11. Nickel cadmium (N iCd) before the battery must ensure that the batteries are no electricity, recharging the battery must ensure that sufficient electricity after.

12. If the cell phone battery placed too long and not use, the best maintenance department to cell phones to the application for a live processing, also can use a constant dc voltage is the voltage adjustment for 5 ~ 6 V, current 500 ~ 600 mA reverse connect battery. Note that a touch namely release, the most repeated three times can, through such treatment after another, with the original adapter to "adaptation" charge.

13. Charge is not as long as possible, to no protection circuit batteries that should stop after charging, or the battery will with fever or overheating impact performance.

14. Lithium ion battery must choose special charger, otherwise may not reach the saturated state, affect their performance. Charging completes, should avoid to place in charger on more than 12 hours or more, long-term need not when should make a battery and cell phone separation.

2011-12-14

Winter warming Yang

Early winter sky, like the patient's face the overcast, day to sink. Anxiety emotions such as this pervading the mist, tightly in my mind, catch my breath. This noon, the sun finally broke through the cloud and mist, show smiling face. The golden sunshine, the clear as on snow, warm warm silver fai in the flow. My heart like this in the window sunshine, suddenly lit up. On the vast expanse of the forms.it, bathed in the warm sunshine, the in the mind unspeakable joy, really want to in the sparkling on snow run, to release under pressure in the life, the one anxious heart, make it in the warm Yang blowing quiet quiet stretch open, as Snow White pure it gently the each place, leave a light the tranquil, calm in heart ripples.

The winter warm Yang heartily of vent to their hot, sprinkle with golden way way, the snow on glaring multicoloured halo, like in a split up around me gorgeous flowers. And as a series of colorful picture, in my sight of dreaming floating, I stand still didn't dare move, very afraid that move will put it like running scared. The sun be warm in my body, face and hands gently touched, a thick warm meaning in my heart rise, and then a puzzling to love is full whole body. Oh! I see, the soft touch, it's like my lover it. As the sun jade-like stone son bright smile, as if appear in the shadows. And when she left the same way, or that naughty smile, two small dimples with the face. She bantered said "to chase me! After a good deal for you win." I'm excited, but at a loss, just gazing at the light faded away in her in in the distance, RenXue the ground I do the footprints of the lonely, in lightly sigh.

Sunshine slowly breeze snow, the BaiXueShan quietly accept this trust god's touch. Like the girl like falling in love with lover's arms in school, doing the colorful dream. I was the true meaning of the snow moved and also enjoy stealthily warm winter sun kissing. The light sad like the like melted, had been in my memory, such as the white as forms.it of, did not leave traces. My heart immersed in the warmth of sunshine, and in the winter it forms.it quietly in fell asleep.

The winter warming Yang, don't abandon not to leave, waiting at my side, as my mother was waiting for the I, with all my heart, have no complaint. It let me understand, life not only it is the exhaustion of body and mind, worried restlessness. There is a kind of beautiful scenery, on our side. In fact they have been waiting for us, as long as pay attention side a flower, a leaf, a wisp of spring breeze, a rain, a snow, a blue sky, and so on. Like I say to this winter warm sample, calm down to, fine fine ground to observe, and deeply to taste, will get unexpected harvest.

http://www.chargerbatteryshop.co.uk

http://www.gobatteryonline.com

2011-09-08

Feeling of the cat

Translated from http://anond.hatelabo.jp/20110907020451


For a long time, I am in a dark box.


According to someone's comment I heard outside of the box, a tiny bottle containing deadly poison is located in this box. Although the bottle is completely sealed, a hammer is positioned in the vicinity of the bottle. And they said the hammer would fall down at a certain time.


When is "the certain time"? I don't know. In this very moment? Or distant future? Possibly, it already has come (I don't want to think about it). No one can affect the hammer. As an independent event, it will fall down with probability 50%. The probability is exactly 50%. Possibly, the bottle may be broken, or may not. About myself, dead, or, alive.


I must say, how terrible the situation is.


It is impossible for me to avoid having a furious indignation. My life, the most important issue for me, is completely away from me, and is solely dependent on the simple figure, FIFTY PERCENT! Too much terrible.


Additionally, and I think it is completely unreasonable, I am shackled in many ways to keep the probability at exactly 50%.


Visual perception. The box is completely shielded from any light. It's for avoiding me from finding and destroying the bottle and apparatus. Complete darkness. I am in the total darkness. Thus, now I can’t see even the outline of myself. Possibly it sounds strange, the darkness makes me have a doubt about the existence of my body itself.


Acoustic perception. Maybe, from the reason I mentioned above, a perfect sound insulation is used. I can’t hear even the voice of my own. I don't know the mechanism. In the first place, as I can’t see anything, how can I investigate it? So, this is only a speculation, possibly, my drum membranes were damaged before enclosure in this box, or, some special material is used for the wall of the box.


Anyway, in a dark box too much good at shielding light and sound, my visual and acoustic perception is dead just as the term indicates.


As if further confirmation are needed, a huge fatigue weighing heavily upon me is another shackle for me. It seems that they gave me some kind of muscle relaxant to avoid me from struggling. As I can’t change from the same posture, my tactile perception is almost paralyzed.


No light. No sound. Smell and taste are unreliable. Tactile perception is in malfunction. I am like a puppet. All the five senses are out of control of mine. Too much cruel. Perfect shackles. I wish if they had given a sleeping medicine. I feel I am in agony without any external injury. My life, my existence itself, is completely ignored. Such a humiliation keeps my sanity. Only such a humiliation can.


The right to control the life and death of myself is completely deprived. I hate such situation. The core determinant of the continuity of my life is completely dependent upon, solely upon, a pure probability. Completely away from anyone's will. I hate it, again, I hate it!


Why do I have to be enclosed in such a box? In such a ridiculous box, why do I have to be in fear of life and death with such perfect shackles?


Unreasonable. Cruel.


I am lonely. Am I feeling empty and flat? Difficult to avoid sobbing? No. My loneliness is much deeper. I am in a sea of void. I am alone. Completely alone. As an orphan, I was thrown into this endless darkness. I am quivering in the absolute zero.


There is no perspective in this box. Only the darkness is here. I can’t feel the bottle and the hammer. I can’t feel the wall, the bottom, and the ceiling neither. They should be there. But all the five senses of mine are deprived. I feel like there is nothing. While those things have some meanings.


Speaking honestly, I am not so sure I am in a box. I am sure that what I am exists. I am thinking. I am fantasizing. It is the evidence showing the uniqueness of mine, which is called the ego or the consciousness or the mind, is solid. But, is the uniqueness is truly enclosed in the box? Is it possible that it is floating in another space? I can’t eliminate such doubts.


Possibly, what I am here is floating in the end of the universe, or is lying down at the bottom of the Mariana Trench. Or going down from a vent of the Kilauea volcano, maybe.


I don't have any method to know how the box (enclosing me) is. All the senses of mine are dead. It is impossible for me to determine whether here is inside of a box or not.


In addition to that, I am not so sure that I am truly alive. I don't have any way to confirm such a simple thing. Possibly, the 50% probability has already passed beyond me. Maybe I am already dead. I am still alive, maybe. Injected with muscle relaxant, shallow breathes, weak heartbeats. Or, cessation of all of them, simply leaving meat bolus.


I am deprived of any capability of controlling my own body. Who can say that my mind resides in the body continuing vital activities? The five senses have been poisoned with the total darkness. They can’t function as sensory organs. I don't have any chance to know the truth. Possibly, any supposition is fabricated by myself. The situation surrounding me and the uniqueness of myself are components of programmed role-play, possibly.


About the existence of mine, I can’t determine the behavior. I hate to admit it, but I am in the middle of fluctuation.


I wish someone could find me. I wish someone could open the box and observe how I am, and determine what I am. There is not enough power inside me to do so. All I can do is to continue to quiver in the loneliness.


If I were the Almighty, I could say "Let there be light". I know it is impossible. But I can‘t help feeling how nice it would be if I could say so.


My own free will! It could fix every fluctuation surrounding myself!


At the same time, longing produces shadow. If the box is opened, I will be found and observed. As a result, what I am will be determined. To tell the truth, I can’t look away from the fact I am anxious about being determined.


Although I am unable to determine whether I am alive or dead by myself, I am afraid of the death. I am afraid that I am determined as a dead. I can’t accept. Still I can’t feel, I can’t imagine the death as a specific phenomenon. Probably, that is why I am afraid of death.


No, it should not be restricted to me. King of virtue. Deadly murderer. Regular folks. All the same. Maybe, the elder people or patients of bad disease could have some imagination sufficiently close to the true death. But, even so, it is impossible to know the specific experience of death.


In the end, death is the final destination with overwhelming significance. The time and the consciousness have an absolute irreversibility. Death also has the absoluteness which can’t be changed. Even if it is a ritual pass point or an outstanding impressive event.


Myself, the mind of mine here is, will be vanished at the moment at which how I am is determined. If they deprive the lukewarm water, in which I can’t feel the temperature, it is impossible for me to avoid exposing myself to the air.


I am afraid of such an irreversible change. It is not limited to the determination of death. Also I am so anxious that I am determined being alive.


The current existence of myself is like a tiny, tiny illusion standing on an endless point. Not larger than that. Not smaller than that. Not longer than that. Not shorter than that. No expansion. No shrinkage. Standing upon a unique single point. It is mathematically correct. I am something like a ghost staying upon such a point, having confusion about identity of myself.


The point exists at every position on a plane of coordinates, at the same time, not existing at a certain position. If a certain event occurs, on that moment, it will converge me to a single point among all the space-times, in which the event has occurred, as if having me step off a bus. Without any concern. Even if the point and I have been a one. The illusion, which has stayed in such a point, has possibilities of being real and being vanished like a mist, to an equal degree.


Now, I am existing in every time-space, I have every nature. At the same time, I am suffering from the loneliness that I am away from every nature. I wish someone can find me. At the same time, I am so anxious that where I will be, and that how I will be at that moment.


I have been released from the law of cause and effect. I am undetermined ever, for ever.

2011-04-21

川崎市の汚染瓦礫受け入れについてBBCメールしてみた

英訳するの前提で日本語書いてたら不自然になったけど。

変な英文しか書けないけど。

殆どGoogle先生にお願いしたけど。

あいいよね。

Please help us to protest, please!


Hello. I am a Japanese womanlives in Tokyo. I am now pregnant.

I am deeply grateful for the BBC to the report on serious accident of the nuclear power plant of first in Fukushima.

Because Japanese mainstream media did not report radioactive contamination seriously.


To happen is a new serious problem in Japan now. Would you cooperate with us?

Is about to be burned debris contaminated radioactive material In Kawasaki City, next to Tokyo.

This debris brings from Fukushima.

If this debris is incinerated in Kawasaki, it would be contaminated by radioactive material to the entire Kanto region.


This problem has been determined at the discretion of the Mayor of Kawasaki City, Takao Abe.

Of course, citizens in Kawasaki are protesting against Kawasaki to accept the debris.

This public protests over two thousand.

However, the mayor is ignoring this protest.

It is an act that violates the right to life of its inhabitants.


We want to stop the radioactive contamination of children and pregnant women and young men and women in Japan.

But, Japanese government has not come up with something even while knowing that measures have been flooded with protests in Kawasaki City.

Japan's mainstream media are not widely reported this problem.


There is no time to start burning debris.

Kawasaki City commented on the transport of debris to begin in April.

Please take this issue on BBC.

Now, many foreigners are in Kawasaki and Tokyo and the Kanto region.

Also spans the risk of radioactive contamination on them.

This issue is no longer just for the Japanese.

Please take this matter greatly on BBC networks.

In Japan today, keeping a close eye on this issue for some Internet users.

But many Japanese are indifferent to this issue.

Thanks for your reading.

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

The report of this issue in Japan

http://www.jiji.com/jc/c?g=soc&k=2011041500649

(Transration)

http://www47.atwiki.jp/pboxdro?cmd=upload&act=open&pageid=30&file=jiji+english.txt

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


どうか私たちに協力してください!


はじめまして。私は東京に住む妊婦です

福島第一原子力発電所に関するBBC報道に深く感謝しています。

なぜなら日本の大手マスコミ放射能汚染を深刻に報道していないかです


今日本で新しい深刻な問題が起きようとしています。私達に協力していただけませんか?

東京に近い川崎という町で放射性物質に汚染された瓦礫が燃やされようとしています。

この瓦礫は福島から運ばれてきます

もし川崎でこの瓦礫が焼却された場合関東地方全体が放射性物質によって汚染されてしまいます。


この問題は川崎市長の専決で事態が推移しています。もちろん川崎市民は瓦礫を受け入れることに対して抗議しています。抗議は2千件超えています。しか川崎市長はこの市民の声を無視しています。


この部分英訳してない

川崎市長は非常に重大なミスを犯しています。

・安全基準を明確に策定していない

・具体的な検査方法を策定していない

・数千件分の市民からの抗議を無視し強行しようとしている

4月中にも貨物列車を使って汚染された瓦礫を運ぼうとしている


市の担当者は汚染された瓦礫を燃やさないと答えているが、福島現在ほぼ全ての地域で土壌汚染が確認されています。

つまり、現在の状況から検査されていない汚染された瓦礫が運ばれることを避けることができません。


日本子ども妊婦や若い男女がこれ以上放射性物質に汚染されることを避けたいです

しか日本政府川崎市に抗議が殺到していることを知りながら何の対策も打ち出していません。

大手マスコミも全く報道しません。


瓦礫の焼却が始まるまでに時間がありません。

川崎市4月中に瓦礫の移送を始めるとコメントしています。

どうかBBCでもこの問題を取り上げてください。

そして私たちの抗議を取り上げてください。

関東に残っている外国人も多くいます。

どうかこのことを大きく取り上げてください。

今日本では心あるネットユーザーしかこの問題を問題視していません。


最後まで読んでいただきありがとうごいました

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

この問題を扱った日本の記事です

http://www.jiji.com/jc/c?g=soc&k=2011041500649

(英訳したものです)

http://www47.atwiki.jp/pboxdro?cmd=upload&act=open&pageid=30&file=jiji+english.txt

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

2010-06-24

Obama is controlled by Japan Goverment?

Possibly, my following story surprise you.

However, we, Japanese have a duty toward world people(included future generation)that tell the truth.


In 1998, when Obama was still just a lawyer, he came to Japan.

Then, Obama dealt with a lawsuit that was involved in Ford employer and Honda employer.

The content of this affair is following; in 1995, Ford employer stole the confidential report of Honda

(http:/nikkei.com/article=19951001_23), and this affair was disclosed by Japanese Police and Japanese Monopoly Commission.


This affair is responsible to Ford. And Honda was the victim.

But, in 1997 Obama was asked by Ford as their company lawyer. Then, Obama didn't know the true.

In this time, Obama was regarded as one of the best lawyer and Candidate. So he couldn't miss this lawsuit.

However, he had gradually understood his position and revealed his failure that undertook this lawsuit.


If this lawsuit occurred, Obama maybe didn't become Candidate and President of U.S.A.

But, the lawsuit didn't occur.In 1998, in Tokyo, Obama met some Japanese politicians, some Honda's boards.

Instead of giving up this lawsuit, they require Obama to accept a condition:

"If U.S.A government try to oust Japanese auto company, Obama and Ford should rescue Honda".

And Honda have been devoting a lot of money to Obama.


You must rethink 2009's situation.

Who is winner?

In 2009, when GM's problem occured, when Toyota's problem occured, who did get this benefit?



Some people maybe think this story is nonsense. Rethink.

2010-04-04

http://anond.hatelabo.jp/20100404195542

文系世界ってよくわからないんだが

論文ってまともなジャーナルカンファレンスacceptされないと意味ないよね?

査読って概念が抜け落ちてるきがするんだが

2010-01-08

objective-C初心者の俺がハマった5個のくだらないポイント

X-Code勉強するのがめんどくさかったので、はじめコマンドラインでやろうとしたせいでかなりくだらないところでハマった。このあたりのことを書いたサイトがないので、増田に書いておく。

コンパイラオプションに「-framework Foundation」をつけなかった

つけてください。つけないとwarningがいっぱい出るよ。

コンパイラオプションに「-fobjc-gc-only」をつけなかった

つけてください。つけなくてもコンパイルできるけど、実行時にメモリリークが起きたと警告が出る。このオプションをつけるとかベージコレクションが有効になるよ。

文字列配列を使ったのに「#import <Foundation/NSString.h&gt;」等をヘッダに書かなかった</h5&gt;

書いてください。書かないと

warning: no ‘ほげほげ’ method found

warning: (Messages without a matching method signature

warning: will be assumed to return ‘id’ and accept

warning: ‘...’ as arguments.)

みたいのがいっぱいでるよ。よもや文字列配列を使うだけで、インポートが必要になるとは思わなかったよ。

配列を「list = [1, 2, 3, 4, 5];」みたいなので作ろうとした。

NSArrayクラスはこうした表現は使えないよ。まじで。

しかもNSArrayクラスは要素の追加もできないよ。あとから要素を追加するなら、NSMutableArrayね。

途中まで「objective-C」ではなく「object-C」だと思っていた。

T/O

2009-11-25

Being a gypsy

I finally understood something. A cliche, but something that is important to me.

I've seen nine counselors and four psychiatrists since I was eighteen. I've been sexually and verbally abused by my family, had eating problems, both anorexia and bulimia, and have also been abused by two of the therapists. I'm also a returnee, as the Japanese label me, so I've been bullied at school, and never really felt like I fit in anywhere, including my family. Yes, I had a whole lot of problems.

I always though about killing myself, and it was a ritual to think about whether to die and how to live at the top of a building on my birthday night. The air was always cold and clear, and stars just seem so near. Up there, rationality just seemed to blur, and wrong or right became so dull with all the pain. As a person who believes Christ, or perhaps in any other religion, suicide is a sin, but it literally felt like living in hell.

Nevertheless, now I finally understand. It was the sense of isolation and hunger of being accepted, that had been eating me after all. It's such a cliche, but I guess it's true. It irritates me because not one of the therapists were capable of handling a bilingual, abused and wounded person, and I myself never realized how much trouble I had when the other person was only capable of handling Japanese, although I am as good as a native after living here twenty years. Some of the therapists were trained and licensed in U.S. and spoke English, but I also didn't notice the huge difference of them and myself -- I can't give an explicit example, but I guess being a returnee and a natural interpreter gives people a different sense. Now, I clearly see the difference is not ignorable. And, it's almost unbelievable that it took me so long to come to this point.

I hate myself. I hate myself for not realizing all these years, for all the money I spent on therapy, for being abused, for being abused again by a therapist, for not being able to communicate my feelings and for even ignoring my own senses just to be accepted by my therapists themselves.

Perhaps being bilingual to me is much more troublesome than others say. Hopefully I can now be more comfortable by accepting that I'm like a gypsy. I've always been an outlaw, anyway. And I hope I can be able to connect with people and have real relationships. All the things I wanted from a therapist are the same things I wanted from normal other human beings. I know there are things that need to be covered by professionals, but now that I realize even professionals can't help, and I can't be really accepted by any professional, as long the relationship is kept "professional."

I hope I can sometime make a real relationship, accept and be accepted, by another person, maybe another gypsy.

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん