「MESSAGE」を含む日記 RSS

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

2018-12-07

I am honored to be with you today at your commencement from one of the finest universities in the world. Truth be told, I never graduated from college. and, this is the closest I’ve ever gotten to a college graduation. Today I want to tell you three stories from my life. That’s it. No big deal. Just three stories. The first story is about connecting the dots. I dropped out of Reed College after the first 6 months, but then stayed around as a drop-in for another 18 months or so before I really quit. So why did I drop out? It started before I was born. My biological mother was a young, unwed college graduate student, and she decided to put me up for adoption. She felt very strongly that I should be adopted by college graduates, so everything was all set for me to be adopted at birth by a lawyer and his wife. Except that when I popped out they decided at the last minute that they really wanted a girl. So my parents, who were on a waiting list, got a call in the middle of the night asking: “We have an unexpected baby boy; do you want him?” They said: “Of course.” My biological mother later found out that my mother had never graduated from college and that my father had never graduated from high school. She refused to sign the final adoption papers. She only relented a few months later when my parents promised that I would someday go to college. And 17 years later I did go to college. But I naively chose a college that was almost as expensive as Stanford, and all of my working-class parents’ savings were being spent on my college tuition. After six months, I couldn’t see the value in it. I had no idea what I wanted to do with my life and no idea how college was going to help me figure it out. And here I was spending all of the money my parents had saved their entire life. So I decided to drop out and trust that it would all work out OK. It was pretty scary at the time, but looking back it was one of the best decisions I ever made. The minute I dropped out I could stop taking the required classes that didn’t interest me, and begin dropping in on the ones that looked interesting. It wasn’t all romantic. I didn’t have a dorm room, so I slept on the floor in friends’ rooms, I returned Coke bottles for the 5¢ deposits to buy food with, and I would walk the 7 miles across town every Sunday night to get one good meal a week at the Hare Krishna temple. I loved it. And much of what I stumbled into by following my curiosity and intuition turned out to be priceless later on. Let me give you one example: Reed College at that time offered perhaps the best calligraphy instruction in the country. Throughout the campus every poster, every label on every drawer, was beautifully hand calligraphed. Because I had dropped out and didn’t have to take the normal classes, I decided to take a calligraphy class to learn how to do this. I learned about serif and sans serif typefaces, about varying the amount of space between different letter combinations, about what makes great typography great. It was beautiful, historical, artistically subtle in a way that science can’t capture, and I found it fascinating. None of this had even a hope of any practical application in my life. But 10 years later, when we were designing the first Macintosh computer, it all came back to me. And we designed it all into the Mac. It was the first computer with beautiful typography. If I had never dropped in on that single course in college, the Mac would have never had multiple typefaces or proportionally spaced fonts. And since Windows just copied the Mac, it’s likely that no personal computer would have them. If I had never dropped out, I would have never dropped in on this calligraphy class, and personal computers might not have the wonderful typography that they do. Of course it was impossible to connect the dots looking forward when I was in college. But it was very, very clear looking backward 10 years later. Again, you can’t connect the dots looking forward; you can only connect them looking backward. So you have to trust that the dots will somehow connect in your future. You have to trust in somethingyour gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life. My second story is about love and loss. I was lucky — I found what I loved to do early in life. Woz and I started Apple in my parents’ garage when I was 20. We worked hard, and in 10 years Apple had grown from just the two of us in a garage into a $2 billion company with over 4,000 employees. We had just released our finest creation — the Macintosh — a year earlier, and I had just turned 30. And then I got fired. How can you get fired from a company you started? Well, as Apple grew we hired someone who I thought was very talented to run the company with me, and for the first year or so things went well. But then our visions of the future began to diverge and eventually we had a falling out. When we did, our Board of Directors sided with him. So at 30 I was out. And very publicly out. What had been the focus of my entire adult life was gone, and it was devastating. I really didn’t know what to do for a few months. I felt that I had let the previous generation of entrepreneurs down — that I had dropped the baton as it was being passed to me. I met with David Packard and Bob Noyce and tried to apologize for screwing up so badly. I was a very public failure, and I even thought about running away from the valley. But something slowly began to dawn on me — I still loved what I did. The turn of events at Apple had not changed that one bit. I had been rejected, but I was still in love. And so I decided to start over. I didn’t see it then, but it turned out that getting fired from Apple was the best thing that could have ever happened to me. The heaviness of being successful was replaced by the lightness of being a beginner again, less sure about everything. It freed me to enter one of the most creative periods of my life. During the next five years, I started a company named NeXT, another company named Pixar, and fell in love with an amazing woman who would become my wife. Pixar went on to create the world’s first computer animated feature film, Toy Story, and is now the most successful animation studio in the world. In a remarkable turn of events, Apple bought NeXT, I returned to Apple, and the technology we developed at NeXT is at the heart of Apple’s current renaissance. And Laurene and I have a wonderful family together. I’m pretty sure none of this would have happened if I hadn’t been fired from Apple. It was awful tasting medicine, but I guess the patient needed it. Sometimes life hits you in the head with a brick. Don’t lose faith. I’m convinced that the only thing that kept me going was that I loved what I did. You’ve got to find what you love. And that is as true for your work as it is for your lovers. Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. As with all matters of the heart, youll know when you find it. And, like any great relationship, it just gets better and better as the years roll on. So keep looking until you find it. Don’t settle. My third story is about death. When I was 17, I read a quote that went something like: “If you live each day as if it was your last, someday youll most certainly be right.” It made an impression on me, and since then, for the past 33 years, I have looked in the mirror every morning and asked myself: “If today were the last day of my life, would I want to do what I am about to do today?” And whenever the answer has been “No” for too many days in a row, I know I need to change something. Remembering that I’ll be dead soon is the most important tool I’ve ever encountered to help me make the big choices in life. Because almost everythingall external expectations, all pride, all fear of embarrassment or failure — these things just fall away in the face of death, leaving only what is truly important. Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose. You are already naked. There is no reason not to follow your heart. About a year ago I was diagnosed with cancer. I had a scan at 7:30 in the morning, and it clearly showed a tumor on my pancreas. I didn’t even know what a pancreas was. The doctors told me this was almost certainly a type of cancer that is incurable, and that I should expect to live no longer than three to six months. My doctor advised me to go home and get my affairs in order, which is doctor’s code for prepare to die. It means to try to tell your kids everything you thought you’d have the next 10 years to tell them in just a few months. It means to make sure everything is buttoned up so that it will be as easy as possible for your family. It means to say your goodbyes. I lived with that diagnosis all day. Later that evening I had a biopsy, where they stuck an endoscope down my throat, through my stomach and into my intestines, put a needle into my pancreas and got a few cells from the tumor. I was sedated, but my wife, who was there, told me that when they viewed the cells under a microscope the doctors started crying because it turned out to be a very rare form of pancreatic cancer that is curable with surgery. I had the surgery and I’m fine now. This was the closest I’ve been to facing death, and I hope it’s the closest I get for a few more decades. Having lived through it, I can now say this to you with a bit more certainty than when death was a useful but purely intellectual concept: 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. When I was young, there was an amazing publication called The Whole Earth Catalog, which was one of the bibles of my generation It was created by a fellow named Stewart Brand not far from here in Menlo Park, and he brought it to life with his poetic touch. This was in the late 1960s, before personal computers and desktop publishing, so it was all made with typewriters, scissors and Polaroid cameras. It was sort of like Google in paperback form, 35 years before Google came along: It was idealistic, and overflowing with neat tools and great notions. Stewart and his team put out several issues of The Whole Earth Catalog, and then when it had run its course, they put out a final issue. It was the mid-1970s, and I was your age. On the back cover of their final issue was a photograph of an early morning country road, the kind you might find yourself hitchhiking on if you were so adventurous. Beneath it were the words: “Stay Hungry. Stay Foolish.” It was their farewell message as they signed off. Stay Hungry. Stay Foolish. And I have always wished that for myself. And now, as you graduate to begin anew, I wish that for you. Stay Hungry. Stay Foolish. Thank you all very much.

anond:20181207115248

テスト

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

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

前回は、SQL文法を学びました。

今回は、データベースを使ったWebアプリ制作を通じて、SQLの使い方を確認してみましょう。

 

Webアプリとは?

WebブラウザーGoogle Chromeなど)で動作するアプリのこと。

ウェブアプリケーションWeb application)は、インターネット(もしくはイントラネット)などのネットワークを介して使用するアプリケーションソフトウェアである

多くの場合、これらのアプリケーションは、Webブラウザ上で動作するプログラミング言語(たとえばJavaScript)によるプログラムWebサーバ側のプログラム協調することによって動作し、ユーザはそれをWebブラウザ上で使用する。

 

準備

Windowsパソコンを使ってたら、「XAMPP」を使ってすぐにWebアプリを試作できる。

以前の講座(その6、その9)を参考にして、XAMPPCodeIgniterを用意しておこう。

 

Webアプリ制作の流れ

最近アプリの作り方は、「デザインスプリント」と呼ばれる方法流行ってます。本やネット情報がたくさんあるので調べてみよう。

 

ざっくりと、以下のような流れです。

  1. アイデア企画)を出す。
  2. アイデアを基に、ペーパープロトタイプ(紙の試作品)を作る。=アナログの試作品ノートなどにアプリの完成予想図、画面などを描く。
  3. ペーパープロトタイプを基に、動くモック(ハリボテ)を作る。=デジタルの試作品
  4. モック画面を基に、実際のプログラム作成して、アプリを完成させる。
  5. 完成したアプリを改良していく。

それでは順番にやってみよう。

 

アイデア

以前にデータベース練習をしたとき、「後で簡単チャット(おしゃべり)ができるWebアプリ作ってみたいと思う。」と言ったので、今回のアイデアは「チャットを作る」にしよう。

 

ペーパープロトタイプ

チャット必要な画面は3つある。

  1. トップページの画面(新規投稿投稿一覧がある)
  2. 投稿更新する画面
  3. 投稿を削除する画面

ノートなどに描いて画面をデザインしてみよう。

 

モック

Webページを作るには、HTMLCSS知識必要だ。HTMLCSSを使ったことがなければ、本やネット情報勉強してみよう。

今回はCSSを使わずに、HTMLだけでシンプルWebページを作ってみよう。(練習から余計なもの無駄を省きたい。)

 

Webページ制作ツール

ブラウザーテキストエディター(またはIDE)が必要です。

特にこだわりがなければ、Microsoftの「Visual Studio Code」という無料IDE統合開発環境)を使ってみよう。

インストール方法や使い方、メニュー日本語化のやり方は、検索して調べてみよう。

 

フォルダを作る。

デスクトップに「mock」というフォルダを作る。

 

ファイルを作る。

「mock」フォルダの中に

  1. index.html」 (トップページの画面)
  2. 「edit.html」 (投稿更新する画面)
  3. delete.html」(投稿を削除する画面)

という3つのファイルを作る。

テキストエディターで保存するとき文字コードを「UTF-8」にしておく。

 

ファイルの中身を編集する。

index.htmlファイルエディターやIDEで開き、以下のような内容に編集して保存します。(コピペする場合、行頭の字下げ(インデント)の全角スペースを半角スペースに置換して下さい。)

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

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

 </head>

 <body>

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

  <h2>新規投稿</h2>

  <form>

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

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

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

   <tr>

    <td>3</td>

    <td>2018-10-20 12:34:56</td>

    <td>Webアプリを作ってみる!</td>

    <td><a href="edit.html">編集</a></td>

    <td><a href="delete.html">削除</a></td>

   </tr>

   <tr>

    <td>2</td>

    <td>2018-09-10 22:33:44</td>

    <td>今日からプログラミングを勉強します。</td>

    <td>編集</td>

    <td>削除</td>

   </tr>

   <tr>

    <td>1</td>

    <td>2018-08-01 11:22:33</td>

    <td>こんにちは!</td>

    <td>編集</td>

    <td>削除</td>

   </tr>

  </table>

 </body>

</html>

 

「edit.htmlファイルエディターやIDEで開き、以下のような内容に編集して保存します。(コピペする場合、行頭の字下げ(インデント)の全角スペースを半角スペースに置換して下さい。)

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

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

 </head>

 <body>

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

  <h2>編集</h2>

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

  <form>

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

   <input type="text" name="message" value="Webアプリを作ってみる!">

   <button>更新する</button>

  </form>

  <p><a href="index.html">戻る</a></p>

 </body>

</html>

 

delete.htmlファイルエディターやIDEで開き、以下のような内容に編集して保存します。(コピペする場合、行頭の字下げ(インデント)の全角スペースを半角スペースに置換して下さい。)

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

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

 </head>

 <body>

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

  <h2>削除</h2>

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

  <form>

   <p style="background-color:lightpink">Webアプリを作ってみる!</p>

   <button>削除する</button>

  </form>

  <p><a href="index.html">戻る</a></p>

 </body>

</html>

 

以上でモックWebページ(HTMLファイル)ができました。

Webブラウザーで「index.html」を開いてください。「編集」や「削除」、「戻る」をクリックして、チャットの画面を確認してください。

 

モックを作ってからWebサイトを作る方法

実務では「仕様書」という書類を大量に作る場合もありますが、時間と労力の無駄になっている場合が多々あります。(紙の仕様書はあまり使われる機会がない)

紙の仕様書アナログ)の代わりに、モック仕様書デジタル)として使うと、その後の段階がスムーズになります

どうしても紙でなければ困る場合以外は、モックをそのまま仕様書として使ってみましょう。

 

プロトタイプ作成ツール

モック(動くハリボテ)を作るための便利なツールがいろいろあります

 

 

 

ちょっと長くなったので、モックを基に機能実装プログラミング)するのは次回にしましょう。

 


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:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-10-24

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

前回まで手続言語の基本(構造プログラミングオブジェクト指向プログラミング)を見てきた。

今回から問合型言語SQLを学び、データベースDB)を使ってみよう。

 

データベースとは?

大量のデータを記録して、活用するために特化したソフトウェアが「データベース」だ。

データベースには、いろんな種類があるけど、今回学ぶのは「リレーショナル・データベース」(RDB)だ。

 

データベースの利点

データベースがなかった時代の人々は、大量のデータを扱うのに苦労していた。

データベース活用すれば、人間は脳の記憶力を補完して、膨大な知識を扱うことができるようになる。

キミも今日からデータベース活用して、記憶力を100億倍にしよう!ドラえもんの暗記パンなんて目じゃないぜ!!!

 

勉強方針

 

MySQLの起動

MySQL無料で使えるRDBです。MySQLデータベース練習をやってみよう。

それではさっそく、以前インストールしたXAMPPで、MySQLを使ってみよう。

 

  1. xamppフォルダの中にある「xampp-control.exe」をダブルクリックしてください。
  2. XAMPP Control Panel」が表示されたら、一番上の「Apache」と次の「MySQL」の「Start」ボタンクリックします。

Port(s)が「80,443」「3306」と表示されたら、PHPMySQLが使える状態になってます

 

phpMyAdminの起動

Webブラウザー(Google Chromeなど)で、「 http://localhost/phpmyadmin/ 」というURLを開く。

phpMyAdmin」という画面が出てきたらOK

 

phpMyAdminとは?

phpMyAdmin」は、MySQL管理するツールです。

phpMyAdmin」で検索したら、使い方を紹介する記事が、たくさん見つかります

 

phpMyAdmin(ピーエイピーマイアドミン)はMySQLサーバーウェブブラウザ管理するためのデータベース接続クライアントツールで、PHP実装されている。

phpMyAdminを用いることで、SQL文を記述することなく、MySQLデータベースに対して様々な操作が行える。

また、ユーザ任意SQL文を記述して実行することもできる。

 

phpMyAdminの使い方解説ページ

検索したら、こんなのがありました。

 

データベース作成

それでは練習で使うデータベースを1個作ってみよう。

後で簡単チャット(おしゃべり)ができるWebアプリ作ってみたいと思う。(Twitterをショボくしたシステムw)

チャット用のデータベースとして「chat」という名前データベースを作ろう。

 

これで「chat」という空のデータベースが1個できた。

 

テーブル作成

RDBの「テーブル」とは、データを保存する表のこと。

「chat」データベースの中に、テーブルを1個作ってみよう。

 

すると「名前」「データ型」「長さ/値」「デフォルト値」…などの空欄がたくさん並んだ画面が表示されただろう。

4段ある上から順番に、以下の通り入力してくれ。

これでテーブル構造を設定することができた。

これら4段の下にある「ストレージエンジン:」欄は「InnoDB」にしておく。

ここまで入力したら、画面右下にある「SQLプレビュー」というボタンクリックしてみよう。

すると、

CREATE TABLE `chat`.`message` (

 `id` INT NOT NULL AUTO_INCREMENT ,

 `create_at` DATETIME NOT NULL ,

 `update_at` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,

 `message` TEXT NOT NULL ,

 PRIMARY KEY (`id`)

) ENGINE = InnoDB;

というSQL文が表示されただろう。

これが「SQL」というデータベース操作するプログラミング言語の書き方なんだ。

今はツールを使って自動的SQL文を作成したが、SQL文法を学べば、自分で書けるようになる。

とりあえず、今はphpMyAdminでMySQL簡単操作してみよう。

 

すると、画面左側のデータベース一覧で、「chat」の下に「message」というテーブルが表示されるようになっただろう。

これでテーブル作成ができた。

 

データ作成

データベースと、その中のテーブル(表)を作ったけど、まだデータが入ってないので空のままだ。

phpMyAdminでデータを1件、追加してみよう。

すると、

INSERT INTO `message` (`id`, `create_at`, `update_at`, `message`) VALUES (NULL, '2018-10-24 12:34:56', CURRENT_TIMESTAMP, 'Hello, world!')

というSQL文が表示されただろう。

これがデータ操作するSQL文の一例だ。これも後でSQL文法を学んでみよう。

これでデータが1件追加できた。

 

こんなかんじで、とりあえず、phpMyAdminでMySQLをいろいろいじって練習してみよう。

 

まとめ

 

次回以降の予定は、

  1. データベース参考書を紹介
  2. SQL文法
  3. データベース設計方法
  4. データベースを使ったWebアプリ作成
  5. データベース理論

といったかんじです。

 


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:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-08-24

anond:20180824112752

消せれば、綺麗なデザインのもあるし、面白いと思う。(ヘナとかは消せますよね)

身内の名前を彫るのは、「いつも一緒」みたいな固い意志表示なのかなーと思う。

https://www.elle.com/jp/culture/g244798/cfe-celebrity-tattoo-meanings15-0109/

単なるファッションじゃない! セレブタトゥーに込められたメッセージ

CULTURE SPECIAL

Message座右の銘?)を刻んでいる人が、多いんだなぁ。あるいはお守りみたいな?

2018-06-24

anond:20180624193421

「おまえだってー」って言ってる増田さんへの言及で書かないと全然わけわかんないですよ?

しろお知り合いならlineMessage喧嘩なさればよいのでは。

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

anond:20180309014039

よっぽど仲良しでないとそんなの嫌。

というか、もし自分結婚するなら、依頼主の(結婚する人)呼ぶかな?と思ってみて、

呼びたくないなら、そんな人のお祝いMessageなんてしないですね。

あ、面倒だけど、私がする時この人にも列席してほしい、Message欲しい場合は、無理してでも頑張るけど。

2018-01-11

韓国の求める心から謝罪とは何か

日韓問題

最終的な解決がなされたのに蒸し返すことの契約的な是非はともかく、心情面で日本がどんだけ謝っても韓国納得しないじゃんって話については、2015年戦後70年首相談話の時にパックンが書いたコラムが興味深い。


首相談話についても、アメリカ人なので語りません

以下に一部引用する。

 謝るべきかどうかではなく、何故お詫びを求められ続けるかということだけについて話そう。

 まず挙げられるのは「各国の政府は、内政が厳しいとき反日感情煽り国民の怒りの矛先を外に向けさせる作戦を取る」という説明。これは間違いない。その作戦自体は間違っていると思うけどね。やりすぎてだんだん効果が薄れているみたいだし。

 でもそれだけではないだろう。もう1つの理由として、日本の「反省が伝わっていない可能性」も考えよう。もちろん、これまでに日本政府が謝ってきたのは事実。少なくとも村山首相中曽根首相細川首相小泉首相安倍首相謝罪している。

 しかし、各時代首相が謝っている傍らで、他の政治家たちによる謝罪とは反対の意に捉えられる発言が目立つ。有名な例だと、中曽根内閣時代藤尾正行文部大臣韓国併合についての「韓国側にも責任がある」発言竹下内閣時代奥野誠亮国土庁長官日中戦争についての「侵略意図は無かった」発言最近だと、「慰安婦制度必要だった」という橋本徹大阪府知事(当時)のコメントがある。

 行動も紛らわしく見える。5名の首相がおわびをしている一方で、靖国神社へ参拝している戦後首相は14名。国会議員では数百人に上る。靖国神社は、世界メディアWar Shrine戦争神社)と紹介されている。参拝される人の意図とは関係なく、世界が受ける印象は「お詫び」とは反するものになってしまう。

 今回も謝罪の意をこめた総理談話を発表した翌日に、67名の国会議員が参拝をした。安倍総理は参拝しなかったが玉串料を収めた。こういうことは英語でmixed messageという。その行動により、残念ながら「お詫び」が印象に残らない結果となる。

 その後、おおむね「謝罪した」とみられているドイツとの比較などが行われている。

 つまり日本政府や首脳は、公式声明では確かに何度も謝罪している。だが、公式声明以外の振舞いや、首脳以外の政治家言動に「本当はたいして悪いと思ってません」というホンネが感じられるため、本気で謝っていると思ってもらえないということである

 なので、どうすれば心から謝罪したと納得されるかというと、政治家(たぶん国民も)の大半の意見を「日本が悪かったです」ということで統一し、かつ大々的な声明だけでなくその他の場面でも日本が悪かったという態度を崩さず、あと政治家や元政治家靖国参拝奉納を止めるといったところだろう。

 少なくともパックン見立てではそのような感じだ。


 まあ確かに会社とか友人関係でも、いったんちゃんと頭は下げたものの、その後自分の席に戻って肩をすくめたりする姿が見られたら、本当は反省しておらずしぶしぶ形だけ謝ったのだ、という風に思われるだろうことはわかる。

 靖国は、誰がどの墓や神社に参拝しようが自由なのだがその自由なところから透けて見える気持ち反省のしてなさであるというのはなんか難しい所だ。

 結局のところ、大日本帝国とそれにまつわる物事ナチス第三帝国と同じくらいの扱いにしたら満足してもらえるはずってわけだろうが……。


このコラムへの読者の反応にパックンが返答している記事もあるのでそれも貼っておく。

アメリカ人だからか、語りきれなかったみたい

2017-11-24

ある声優に心底救われている話

何で唐突匿名に書こうかと思ったのかは解らない。

気持ち悪いだけの文章になっていますがそこはもうホントすみません

話せば長いんですけど、

友人が物凄くアイドルマスターSideMにハマっていて、お渡し会のためにBeitとハイジョのCDを6枚ずつ買ったのを貰ったときから全てが始まりました。

友人とは防衛部好きーで繋がっていたので声帯が決まった時に「あの子声優も出てるから!!!」と猛プッシュされたんです。

なし崩しに曲を聴いて。。。

あっ、スマイルエンゲージいいんじゃない?ってなって。。。

モバイル登録して。。。

その時は確かもふもふえんとカフェパレ婚活だったかしら。。ハイジョの水泳イベだったかしら。。。

まあそこでゆるゆるとしたプロデューサー活動をしていたんですよ。

3週に1回ログインするみたいな。

ピエール可愛いなって。今も思ってるけどね。好き。

そしてまあ10月になった時に私が異動になったんですよ。社内でも精鋭部隊が揃ってるバチクソ厳しいところ!

そこからあれよあれよと言う間に病みましてね。。。

いい子だと思ってた後輩にも「えっ?(笑)こんなことも出来ないんですか?(笑)」とか言われちゃう日々でした。

で、やべえぞもうそろそろ死ぬか?って本気で考え始めた時の朝、出勤してた時!

6時?とか7時なのにまあなんとTLがめちゃくちゃ賑やか。

すごい物販列の写メRTされておる。

なんぞこれ?となったらSideMの1stライブがこの日にある!と察して

まあ何故か行かないといけない気持ちになったんです。オタクによくある使命感ってやつです。

スマイルエンゲージと赤いやつ(当時は心の中でそう呼んでいました)(名前が覚えられません)しかまともに知らないのにね。

よく行こうとしたよね。

でも勿論現地はチケット無いし。じゃあどうする?となった時に会社の物凄く近くでライビュがある事を突き止めたんです。

異動する前だったらスーツ勤務だからちょろっと抜け出してチケット買って…て出来たけど

異動して固定の制服勤務になったのでもう抜け出すのは難しい。

でもチケット無くなったらどうしよう。

お昼休憩1時間の中、なんとか行けない?

からずっとそのチケットの事だけ考えるようになりました。

そして「お昼行っていいよ」と言われた時に…計画実行です。やってやりました!

ズボン制服のままで…

上は少しだけ脱いで大きいパーカー

ジャケット姿になり…(ここで10分経過)

片道15分の映画館に向かい

チケットを買って…

また15分かけて戻り…

と、まあなんともギリギリな中チケットを買って、適当な事を言って退勤して

(それまでそんな事した事なかったです。ごめんなさい上司 ありがとうフレックス勤務)

もうね、チケット買った後はこれから観れるライブの事しか考えていませんでした。

何か今の自分に物凄く衝撃を与えてくれるんじゃないかって。

アイマスは本当にそれまで未履修だったんですけども

キラキラしたものを見れるんじゃないかと!

そんな気持ちでいっぱいで、まあ色々と買ってギリギリめに映画館にいざ入ったら

私 以 外 オ ー ル ス タ ン デ ィ ン グ

えっ?!映画館だよここ?!

つの!?!?!?!?

プロデューサー洗礼を受けつつ…

(前から5列目くらいの隔離された場所だったのでたまに後ろを振り返りつつずっと座って見ていました)

ライブが始まった訳です。

DRIVE A LIVEだ…あっ、これ知ってる…

後ろの大声すごいな?!

とか思いつつ…まあ声優さん自己紹介していきますよね。

そうです。前述した通りの防衛部の梅原さんと白井さんしか存じない感じでした。

Beitとハイジョの人がああこんな感じなの?!とそういう風に見てました。

そして曲に行きましたよね。

2曲目「HIGH JUMP NO LIMIT

知ってるーーーーー!!!!!!!!!

いきなり知ってるの来たー!!!!!!!!

わかるわかる、これわかる。赤いやつだハイジョだ!白井さんいるもの

で、それが終わってさあ次は?次はなんぞ?となった時です。

∞Possibilitiesに出会ったのは!

それまで映画館椅子にまあ踏ん反り返る感じで座っていたのに

イントロから心を奪われ。

え?何や?何だよこれ?となり。

あぁピンク色だから宇宙人の人かしら?!

えっ?あの宇宙人ってこんな感じの人たちなの?!!?!?となり。

そして中央の一際キリッとした表情の人に釘付けになりました。

これは確かグレーの髪の人だ、何とか夫みたいな名前の子だ!と1人で興奮したのもいい思い出です。

私の両隣は2席ずつ空けて彼女に(無理矢理)連れて来られたであろう彼氏さんがいらっしゃったんですが、

その人たちももうノリノリになっている始末。

すごいぞこの人たち。何者なんだ。

そして彼らの歌う「可能性は無限大さ!」という言葉に心が奪われて。

そこからは一気に魅入られていきました。

で、自己紹介していた時には気付かなかったんですけど真ん中のお兄さん(仮)はずーっと役に徹底しているんですよ。

Study Equal Magic! でもね。

これすごい歌ですよね。高校の頃に出会っていたら私は多分今頃初の女性総理大臣になっていました。成人してから出会ったので残念ながら平社員です。

これ、物凄くノリノリになる歌であろうに、真ん中のお兄さん(仮)は眼鏡の人のイメージそのままに頷いてるだけなんですよ!

イメージそのままにってお前まともに知らないんじゃないの?って感じだけども何回か見たイラストイメージそのままなんですよ!解るか!?解るかい?!!?!?

…とまあこんな衝撃を受けてライブも終わった頃に、

その、役に徹してた真ん中のお兄さん(仮)が最後にフニャァと笑ったのを見て

まるでスタジオジブリキャラクターが如く髪の毛がブワっとなったのを感じていました。

…この人、何だ? なんなんだこの人!

終わって客電が付いて、劇場内には「お疲れ様でしたー」が行き交う中

もう真ん中のお兄さん(仮)含めた宇宙人グループの事だけ考えるようになっていました。

家に帰る途中色々調べ…

フムフム、真ん中のお兄さん(仮)は伊東健人さん。…おた恋の彼氏役か!とか情報収集しつつ…SideMのS.E.M関連を片っ端から開けて…

あぁ、こんな感じの人たちだったんだ!と新たな発見をして…

出来る分だけ解放したボイスを聞いてみて…ああ、道夫さん!となり…

伊東さんのサンプルボイスを聞いて…

全然声が違うのにビックリ。思ったより若いんやこの人。となりまして。

SideMを深く知るきっかけとなったのは勿論、役者さんという存在にずずハマりするきっかけともなりました。

それまで追っかけとかした事無かったんです。本当です。母親が好きなアーティストライブについて行って、握手会で「おぁっ、歌うまいっすね(笑)」って言うくらい。

そして月日は流れて、私も仕事が解るようになり…

地道に追っかけなどして…

で、もう一度壁にぶち当たる時が来ました。

今度は本当にやばいやつ。

ドクターストップ仕事も行けなくなってもうお先真っ暗、って時に硲さんのソロ曲が出たんですよ。

皆さまご存知 Learning Message

∞ PossibilitiesやStudy Equal Magicとは違って少し声のトーンが高め(曲が高いのかな)

ですがまあ何がおススメしたいかって、

伊東さんの声と歌詞!君の未来の輝き…からがグサグサささりまして、ええ。

深夜3時に不覚にも号泣しました。

仕事関係で3時半に起きなきゃいけなかったのに配信日の24から眠れなかったやつですね。

そして極め付けはつい最近あった銀河鉄道の夜朗読

すごく良かった。優しい大人やらせたらピカイチだと思います

そこでまあ色んな決心をしたんです。

死のうかなと思っていた私の人生が変わりました!!!

この人の芝居は兎に角

真摯にやってくれてるっていうのがビンビンに伝わって来るから大好きなんですよ!

まだまだ出始められたばかりだから勿論色んな話は聞きます。たまに私も思います

(でも多少の自己顕示欲と上昇志向が無いとやっていけない世界だと思うのよ!)

2回も死のうかなと思ったところを救われたらそりゃもう死ぬまで推すって決めるに決まってるじゃないですか!なぁ!!!

上に書いたのは硲道夫と銀河鉄道の夜だけだけど、見てきたもの全部に衝撃を受けました!

フスプも見たさ、やった吹き替えは全部探したし、NHKに問い合わせまでしてみたんだ!(世界街歩きだけが見つけられません)

所謂ただの声豚にはなりたくなかったかアプリゲームに出演が決まれ配信前だったら予めダウンロードして勉強して…

時には他の子にハマったりとかもして…

(ユバの徽というゲームです)

伊東さんを追っかけていると、

新たな発見毎日になっています

もうホント、愛してます!!!!!!!!!!!!

日々健やかに大切な人と元気にお過ごしください!!!!!!!そしてその素敵な芝居でどんどん色んな人を魅了させてください!!!!!!


なんて日々思いながら生きています

こんなんじゃラブレターじゃないか

ファンレターには書けないやつだな。


いやあの…今日朗読見てきたんです……明日も見れるんだ…エヘヘ…やったぜ…

ていう訳で寝ますおやすみ…エヘヘ…

2017-10-15

bitcointalkの説明

アクティティ説明過去情報コピペです)

ログイン時間書き込み数で上がり、アクテイビティ毎にランクが決まる(Activity = min(time * 14, posts))

  書き込み0:Brand new

  0 Activity: Newbie

  30 Activity: Jr. Member

  60 Activity: Member

  120 Activity: Full Member

  240 Activity: Sr. Member

  480 Activity: Hero Member

・2週間毎に最高14ずつ上がるらしい(でもなんか微妙に違うのかも。僕は14は飛ばし28までは一気に上がりました)

・僕は10月5日登録10月26日Jr.Member昇進になりました。3週間でした)

(詳細⇒ https://bitcointalk.org/index.php?topic=178608.0 誰か訳してください)

.

.

ランク説明

ランクがNewbieだと書き込みが6分に1回など制限があったり、PMを送っても届かなかったり、フリーエアドロップに参加できなかったりする

・だから基本的ランクを上げといた方が良い

しかし、私利のランク上げのために日本語スレスパムみたいに適当投稿するのは単純によくないことだと思う

・結局一番いいのは、単純に、真面目にスレに貢献し、参加することだと思う

(たまに書き込み削除の通知メールが来るが、それはたまによくあることなので、気を落とさなくていい)

(注意点として、以下に示すような投稿をするとBAN対象になると声明がありましたので、「スレ主がそういう投稿を求めている時」以外にこういう投稿をしないようにしたほうがいいです)

「joined」

「looking forward to getting X」

「signed up for X」

「applied」

日本語スレでも自分ツイッター宣伝したり露骨なアフィしたりすると消されます

(詳細: https://bitcointalk.org/index.php?topic=2284373.0

.

.

フリーエアドロップ説明(主に留意点)

情報が貼られる場所を紹介しま

.

1次情報(最新情報

ビットコイントークアルトコインアナウンス板」

https://bitcointalk.org/index.php?board=159.0

ビットコインガーデン:ギブアウェイ板」(ビットコイントークより規制が緩いため色々と留意

https://bitcoingarden.org/forum/index.php?board=2.0

.

2次情報用途は1次情報の取りこぼし用、時間無い人用、などとして)

「airdropalert」(一部アフィだが優秀なので書かざるを得ない)

https://airdropalert.com

ビットコイントーク日本語板」(もはやエアドロップ情報スレになってるため。アフィ目的スパムが多すぎて最近は見るのが心苦しい)

https://bitcointalk.org/index.php?topic=877.new#new

リファラつけた紹介アフィは規約違反なので基本消されます。最悪BANされます

.

・配布時期は気長にみたほうがいい(応募してすぐ配布されるわけではないものも多い。配布時期は各説明を読むしかない)

・scam対策のため、ウォレットダウンロード系は「安心なのだけやる」または「仮想環境作ってそこでやる」または「scamされてもいいマイニング専用PCでやる」

・scam対策のため、メールアドレスパスワード登録系は「パスワードは毎回別のを用意する」、「メールアドレスはできればサブのを使う」(要は「メールアドレスパスワードペア」が他の登録情報かぶらなければいい)

・たまにフリーエアドロップで「PMする」「肯定的ツイートして宣伝する」みたいな条件があるが、それは礼儀分別のあるPMでないと失格になることもあるっぽい(僕はRICHのフリーエアドロップで「Yes I wanna be rich!!」みたいなテンションの文とアドレス書いて送ったら、フリーエアドロップ受けられませんでした。あとSOARCOINの人が「ただRTしてるだけの人にエアドロップ配るか配らないかどうしたらいいかな?」という内容のアンケート取ってたりするので。外人とは言え、分別もった内容で応募しないといけないのかなと思いました)

・また、「send me personal message」「PMする」「PM」とかはパーソナルメッセージツイッターで言うDM)を送るということです。レス左側にある吹き出しマークを押せばPMを書くフォームに飛べますので、そこで書いて送信する、ということです

.

.

フリーエアドロップの際によくフォーム入力をせがまれる項目の説明

・「bitcointalk profile」は、自分プロフィールページの左側カラムにある「Forum Profile Information」に行った時のURLから、語尾の「;sa=forumProfile」を省いたもの

・「bitcointalk ID」は、上記「Forum Profile Information」に行った時のURLの中にある「u=なんたらかんたら」の複数桁の数字のこと

・「Address」は、ものによって違うが、基本的イーサリアムウォレットアドレスか、ウェーブスのウォレットアドレスか、または専用ウォレットアドレス基本的取引所アドレスでなく、どれもウォレットアドレス。例えばイーサリアムならMyEtherWalletなど)

.

.

■bitcointalk書き込み説明

スレに書き込むには、ページの右下や右上にある「reply」ってボタンを押せば書き込みフォームが出る

レスにアンカつけるには、レス右側にある「quote」ってボタン押せばアンカつき書き込みフォームが出る

適当書き込みをしたらたまにけっこう削除される(そして「削除したからな」ってメールが届く)

.

.

VM仮想マシン)の入れ方の例

・まず仮想マシンインストール https://pc-karuma.net/windows8-virtualbox-install/

・次に仮想マシンubuntuLinux一種インストール https://pc-karuma.net/windows-8-virtualbox-ubuntu-install/

(大体HDDの容量を10GBくらい取ります

2017-10-12

1996年以来の株価高値

株価20年ぶりに高値をつけたらしい。

ようやっと20年前の状況にもどったわけだ(少なくとも株価は)


1996年と言えば

ポケモンバイオハザードマリオ64パラッパペルソナクラッシュたまごっち

ドラゴンボールGT、エスカフローネ名探偵コナンナデシコ

Shall We ダンス?、インデペンデンスデイ、ザロックキッズリターン

アムラー援助交際、親父狩り、ジベタリアンプリクラ


1位 名もなき詩 Mr.Children 230.3万

2位 DEPARTURES globe 227.2万

3位 LA・LA・LA LOVE SONG 久保田利伸with NAOMI CAMPBELL 161.3万

4位 チェリー スピッツ 153.9万

5位 花-Memento-Mori- Mr.Children 153.9万

6位 空も飛べるはず スピッツ 143.2万

7位 愛の言霊~Spiritual Message サザンオールスターズ 138.1万

8位 I'm proud 華原朋美 137.2万

9位 Don't wanna cry 安室奈美恵 137.2万

10Chase the Chance 安室奈美恵 136.2万


なんだか楽しそうだなぁ・・・

安室奈美恵引退するし、マリオオデッセイは発売するし。

なんだか時代が変わっていくのを感じる。

ちょっとだけ期待して今日は筆を終えることにする。

バイバイ(´・ω・`)

2017-08-06

5 reasons why Japanese Engineer are fu*king da*n

  • Because they likes "Technical document" much, though they usually study with books even it's Front-end latest technology, Many of them are just translated original EN contents or da*n not sexy sample code, it's worthless in the world which dynamically changing day by day in few months. Regardless of free latest contents which can be found everywhere, they just get Secondary Information given by some evangelists with passive mindset, it causes making this Evangelist? market stable due to this kind of information gap structure.

See also : https://anond.hatelabo.jp/20170728223725

2017-04-30

http://anond.hatelabo.jp/20170429110724

Google翻訳

Although I am a college college student but recently I went to the test site of the Futamata River by the license renewal I was suddenly inverse of an Afro hair woman like Esperanza Spalding but my hair style was so beautiful but my face was so beautiful that I exchanged the tension and exchanged the line that day Although I broke up but the message arrived and it was invitation of the gong consomme so it got even more tension Soon after talking to the department's friends I gathered members and gathered at the private room pub in Ikebukuro yesterday Esperanza Spalding Because I got urgent, I joined up late, so I started drinking with men and women 3, for the time being, for the time being I started to drink 4 girls 3 and the situation of the three girls was obviously crazy and everyone's cute but the face is cute, but the behavior has been consistently suspicious and constantly dull Absolutely by moderation We are not trying to fit together what the matter These children are becoming uneasy but I come with pins at once so that they are all virgins and not quite accustomed to men so I think they are getting nervous so tense If that happens, the men are reincarnated again in the meaning that it is exciting but even if we struggle hard we can not relax their tensions, oh well, if you are confused with what you've done already Unexpected development One of three visited us to take out the booklet from the bag as a matter of fact and began to distribute it to our male team and it seems that if we look closely it is a group name that we have never heard of as an admission guide for emerging religion but we are staggering as to what I got to say that they started to recruit us seriously and spirited about the wonder of the cult and the greatness of the guru and the depth of history and the appreciation of the interests But all three of the girls changed their hands a little while ago and now we are relaxing and we have to stay silent for the time being silent as soon as we go into time like hell and fall apart suddenly the branch of the private room suddenly As the girls screamed at once with all the girls shouting "Guru-sama!" As they all looked at, look at them and wear a rag in the whole body and gods of Afrohair with a golden stick stand standing and see well with Esperanza Spalding While placing a nice smile on the placard, "There is a great success! Although it was all written as it was written as it was all It was a genuine thing seemed to be the entrance guidance of the cult but if it asked what you want to do is to cooperate with friends of the design major, The greetings and the history of the cult and so forth are written carefully and photographs and illustrations are abundantly used and the layout is also getting stuck. I thought that this wasteful energy pouring condition is usually thoughtful but usually they are beauty and theater theater circle Doing it and it seems to be an actor fellow there, just a while ago I came up with this fake religion Dokkari and looked for a target It seemed me that I was captured in the truth so it seems that three of my friends took care of the collaboration but since I was made a solicitude Girls who were suspiciously behaviorally suspicious because they got tension relaxed at once Espana spallding was also funky at the highest Espana Spalling was also funky so I was already enjoying it too much I drunk quite drinking I felt memory flew from the way I seemed to have collapsed apparently but when I woke up 4 men were at an internet cafe and everyone remembered too much I am not sure, girls are not found anywhere Even if I line it to Esperanza Spalding I will not be read Alright, while thinking that gossip with beauty students is dangerous, I wrote this in a private room of a net cafe now.

翻訳

私は大学生ですが、最近は二代目川の試験場に免許更新で行きました。私は突然エスペランサ・スパルディングのようなアフロ髪の女性とは逆でしたが、私の髪型はとても美しいですが、私の顔はとてもきれいでしたその日に緊張を交わしてその日のラインを交換しましたが、メッセージが届きましたが、それはゴングコンソムの招待で、もっと緊張しました。すぐに部署の友人と話した後、私はメンバーを集め、池袋プライベートルームパブに集まりました昨日エスペランサ・スパルディング緊急事態になったので、私は遅く入社したので、当分の間、私は男女3人で飲み始めました。私は4人の女の子3を飲み始めました.3人の女の子の状況は明らかに狂っていました。誰もがかわいいが、顔はかわいいですが、その行動は一貫して疑わしく、常に鈍いです。絶対に適度には私たちは一緒に取り組もうとしていません。不安ですが、私は一度にピンを持ってくるので、彼らはすべて処女であり、男性にはあまり慣れていないので、彼らは緊張していると思います。そのようなことが起きれば、男性は再び興奮するという意味で生まれ変わりますあなたがすでに行ったことと混同している場合は、緊張を緩和することはできません。予期せぬ開発3人のうち1人が、実際にバッグから小冊子を取り出して、男性に配布し始めました私たちが密接に見ると、それは新興宗教入学ガイドとしては聞いたことのないグループ名ですが、私たち真剣私たち募集し始めると言うことを驚かせていますカルトの偉大さと歴史の深さと利益尊重しかし、少女の3人はすべて少し前に手を変え、今はリラックスしているので、私たちは静かなまま静かにしなければならないすぐw地獄のように時間が掛かり、突然個室の枝が崩壊する突然、女の子たちが一瞬に叫んで「女達さま」と叫んだ。彼らが見ているように、それらを見て、全身にぼかしをかけ、アフロヘアの神々を金色の杖で立って立て、Esperanza Spaldingとよく会ってください。プラカードに素敵な笑顔を浮かべている間、「大成功です!それはすべて書かれたようにすべて書かれていました。それはカルトの入口指針と思われる本物のものでしたが、あなたがしたいことを尋ねるなら、デザイン専攻の友人と協力することです、挨拶歴史写真イラスト豊富に使われてレイアウトも詰まっているこの無駄エネルギー注ぎ込みは普通思慮深いと思っていましたが、通常は美しさと演劇劇場サークルですそこの俳優になってください、ちょっと前に、私はこの偽の宗教のDokkariを思いついて目標を探しました。私は真実に捕らえられたようでしたので、3人の友人が協力してくれたようです私は恋人となったので、疑わしい行動が疑わしい女の子たちは緊張感を緩和していたので、Españaも最高のファンキーであった。Spallingもファンキーだったので、私はすでにそれを楽しんでいた。私は明らかに崩壊したようでしたが、私が目を覚ましたときインターネットカフェに4人の男性がいて、みんながあまりにも多くを思い出していました。私はよく分からない、女の子はどこにも見られません。私はEsperanza Spaldingに行けても、美容師とのゴシップ危険だと思って、ネットカフェプライベートルームにこれを書きました。

2016-11-22

年間興行収入トップ20以内の漫画アニメ原作実写邦画

http://entamedata.web.fc2.com/movie/movie_j2016.html

2006

順位興行収入(億円)タイトル
5位71.0LIMIT OF LOVE 海猿
9位52.0デスノート the Last name
18位28.5デスノート 前編

2007

順位興行収入(億円)タイトル
7位45.6ALWAYS 続・三丁目の夕日
16位34.5どろろ

2008

順位興行収入(億円)タイトル
2位77.5花より男子ファイナル
1039.520世紀少年<第1章> 終わりの始まり
15位31.0L change the WorLd

2009

順位興行収入(億円)タイトル
1位85.5ROOKIES卒業
6位44.120世紀少年最終章ぼくらの
1234.8ごくせん THE MOVIE
16位31.4ヤッターマン
1730.2クローズZERO II
18位30.120世紀少年<第2章> 最後希望

2010

順位興行収入(億円)タイトル
5位80.4THE LAST MESSAGE 海猿
1141.0のだめカンタービレ 最終楽章 前編
13位37.2のだめカンタービレ 最終楽章 後編
2023.6ライアーゲーム ザ・ファイナルステージ

2011

順位興行収入(億円)タイトル
9位34.5GANTZ
14位28.2GANTZ PERFECT ANSWER

2012

順位興行収入(億円)タイトル
1位73.3BRAVE HEARTS 海猿
2位59.8テルマエ・ロマエ
1134.4ALWAYS 三丁目の夕日'64
14位31.3映画 怪物くん
16位30.1るろうに剣心
18位25.2僕等がいた 前篇

2013

2014

順位興行収入(億円)タイトル
5位52.2るろうに剣心 京都大火編
6位44.2テルマエ・ロマエII
7位43.5るろうに剣心 伝説最期
1724.7ホットロード
19位24.5ルパン三世
2021.9土竜(モグラ)の唄 潜入捜査官 REIJI

2015

順位興行収入(億円)タイトル
14位32.5進撃の巨人 ATTACK ON TITAN
18位27.7映画 暗殺教室

2016

順位興行収入(億円)タイトル
9位46.0信長協奏曲
13位35.0暗殺教室卒業編~
14位32.0orangeオレンジ

2016-07-25

gitにおけるコミットログ/メッセージ例文集100

私はコミットログの書き方に悩む英語の苦手な人間である。実際、似たような人は世の中に結構いるようで、頻出単語を集計したりまとめたものは既にあって役に立つのだけれど、これらはあくま単語の話であり、具体的な文を構成する過程でやっぱり困る部分がかなりあった。

要するに、どういう時にどういう文が使われているのか、ということを示した例文集が欲しいのであるググると他にも「例文集があればいいのに」みたいな声はあるくせして、しかし誰も作ろうとしない。何なんだお前ら。それじゃ私が楽できないじゃないか

仕方なく自分でまとめたので、増田に垂れ流しておく。

はじめに

ここで挙げているコミットログは全て実際のコミットログから転載である。当然ながら各コミットログ著作権はそれぞれの書き手にある。いずれも各英文でググれば出てくるし、フェアユース範囲なら許してくれるだろうと考え名前プロジェクト名は割愛したが、ここにお詫びと感謝を述べておきたい。

抽出条件だが、参考にできそうなコミットログを多く含んでいそうなリポジトリGitHubSTARの多い方からざっと目で見て適当に選び、それぞれ最新コミットから5000件抽出した(あわせて前処理として、コミットログ冒頭のタグ情報は消去した)。

結果として対象としたリポジトリは以下の通り。

atomのみ5400件抽出していたため、計25400件のコミットログベースである。このうち、以下の条件に合致するものは参考例にすべきでないとして一律排除した。

こうして残った8540件を眺めながら、適当に切り出したのがこの用例集である個人的に「うーんこの」と思った表現も、散見される場合は載せた。

ということで、以下用例を羅列していく。

用例集

オプションフラグメニューを追加した
ファイルを追加した
メソッド機能を追加した
実装を別のものへ切り替えた
  • Use args.resourcePath instead of args.devResourcePath
  • Use arrays instead of while loops
  • Use auto instead of repeating explicit class names
  • Use weak pointer instead of manual bookkeeping
  • Change all uses of 'CInt' to 'Int32' in the SDK overlay
  • Change Integer#year to return a Fixnum instead of a Float to improve consistency
新しく何かに対応した/機能上の制約を取り払った
何かを使うようにした
より好ましい実装に改良した
何かを出来ない/しないようにした
  • Don't bail reading a metadata instance if swift_isaMask isn't available
  • Don't exit until the parent asks for an instance
  • Don't include Parent pointer in Nominal/BoundGeneric TypeRef uniquing
  • Don't use MatchesExtension for matching filters
  • Don't use ES6 class for AutoUpdater windows class
  • Don't use MatchesExtension for matching filters
  • Avoid `distinct` if a subquery has already materialized
  • Avoid infinite recursion when bad values are passed to tz aware fields
オブジェクトの内容や挙動確認やすくした
Assertを追加した
不要コードを除去した
コードを移動した
名前修正した
さなバグタイポ修正した, 警告を潰した
バグや好ましくない挙動修正した
テストコメントドキュメントを追加した
テストを削除した
テストコメント修正した
ドキュメント修正した

表現傾向とまとめ

以上の用例をふまえ、今回の参考ログ8540件から先頭の単語を出現回数で並べると次のようになった。

Add1149
Fix1014
Update584
Remove566
Use382
Don't260
Make228
Move178
Change103
Rename85
Improve76
Avoid68
Allow65
Implement60
Handle58

コミットログの基本形はもちろん動詞 + 名詞である名詞固有名詞複数形、不可算名詞が多いが、単数形場合冠詞は a が使われるか、あるいは省略される。the はまず使われない。

何かを追加した、という表現では非常に広く Add が使われる。メソッドからテストドキュメントに至るまで大概これでまかなえる。

一方、何かを修正した、という表現では広く Fix が使われる。「何か」は typocrash といった単語からメソッド名まで幅広い名詞を取るが、動名詞はあまり取らないのと、that節は取らないのでその点は注意が必要である

Fix は「何かが正しく動くようにした」ことを示し、正しい動作内容が何かを説明しない。そこで正しい動作内容に言及したい場合Make sure が使われる(こちらはthat節が取れる)。ただし Fix よりもニュアンス的に重い表現と思われ、Fix を使わず Make sure ばかり使うのはちょっとキモいのではないかと思う(Ensure はさらに重い表現っぽい)。

また、Fixtypo 以外でのドキュメント修正に対して使われることは稀である。対して Update はドキュメントコメントテストに使われ、本体コード修正に対しては使われない。本体コード修正にあわせてテスト更新したなら Update が使われる。ただ、テスト機構それ自体バグ修正したなら Fix である

無駄な何かを単純に除去したなら Remove を使う。これまでのもの(A)からのもの(B)に切り替えたのであれば Use B instead of A か Change A to B が使われる。新たに何かを利用するようにしたのであれば Use を、利用を取りやめた場合Don't use を使うことが多い。

何かをしないようにしたなら Don't を、内部実装効率化なら Make A + 比較級/形容詞Improve が使われる。

中身の変更を伴わない単なる名前の変更なら Rename A to B、コード機能論理上の場所を移動させたなら Move A to B である

この辺はリファクタリングと呼ばれる行為と思うが、Refactor というぼんやりした動詞はあまり使われず、このように変更内容の種類に応じて動詞が使い分けられている。

余談

コミットログにはWhyを書くべきだ、というのを何かで見かけたので because とか since を使ったログがどの程度あるかを調べたが、8540件のうち22件だった。基本的に短く、シンプルに、一目で意味が取れるログが好まれる傾向がある。例えば get rid of とか2件しか使われておらず、圧倒的に remove である

一方で、シンプル単語だけど開始単語としては使われないものもある。例えば次のような単語である。Expand(9)、Extend(8)、Print(5)、Optimize(5)、Publish(4)、Append(4)、Modify(3)、Manage(2)、Revise(2)、Dump(2)、Insert(2)、Migrate(2)、Enhance(1)、Edit(1) 。いずれもカッコ内は8540件に対する冒頭での登場回数である。結局、より一般的平易な単語で表せたり、Refactor同様に抽象度が高すぎると使われないのだろう。

おわりに

8000件もログを見たおかげで、迷いなくコミットメッセージが思いつくようになったのが個人的には今回書いてて最大の収穫だった。たぶんカンニングペーパーを作る行為それ自体効率のいい学習になるという話と同じだと思う。

このまとめも100以上用例を転載してあるので、それを読むだけでも多少は効果があるんじゃないかと思う。同じようにコミットログ書きたくねぇなぁ英語わっかんねぇなぁと思っている人にとって、何か役に立つところがあれば幸いである。

2016-01-31

RedditなどのURL連続投稿スパムあぼーんする方法

Masuda A boneを利用します。

http://d.hatena.ne.jp/ku__ra__ge/20080311/p5

下記の設定済みスクリプトコピペして使えば、Masuda A boneをインストールする必要はありません。

ChromeならTampermonkey、FirefoxならGreasemonkeyインストールします。

Chrome

https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ja

Firefox

https://addons.mozilla.org/ja/firefox/addon/greasemonkey/

Chrome場合

拡張機能-Temperamonkey-オプションクリック

プラスアイコン新規スクリプト)をクリック

最初に表示されているメタデータブロックは削除

下記スクリプトコピペして保存アイコンクリック

Firefox場合

メニューからツール-Greasemonkey-ユーザスクリプト管理

(もしくはアドオンマネージャユーザースクリプトクリック

以下のスクリプトを先にコピーしておく

ユーザスクリプト新規作成クリック

クリップボードスクリプト使用する」ボタンクリック

注意点

スマホで使えるかは確認していません。

var ignore行を編集すれば、好きな言葉を追加できます

お願い

AutoPagerize対応していません。

URLが2行連続するとあぼーん対象になってしまうので、本文があればあぼーん対象から除外したい。

あとURL1行のみの投稿あぼーんしたい。

どなたかエロい人お願いします。

// ==UserScript==

// @name Masuda A bone

// @namespace http://www.petitnoir.net/

// @description

// @include http://anond.hatelabo.jp/

// @include http://anond.hatelabo.jp/?page=*

// ==/UserScript==

///////////////////////////////////////////////////////

//あぼーんしたい言葉

//あぼーんしたい言葉を「""」でくくって入力します。複数個追加したい場合は「,」でくぎります

//入力

// igonore =["あぼーんしたい言葉1","あぼーんしたい言葉2","あぼーんしたい言葉3"]

// var ignore = ["死ね","糞","クソ","くそ","<●>","ばーか","スイーツ(笑)"];

var ignore = ["[0-9a-zA-Z/\-]https?://"];

///////////////////////////////////////////////////////

///////////////////////////////////////////////////////

//あぼーんした時タイトルに表示する言葉

//

var abonemessage = "__";

///////////////////////////////////////////////////////

(function abone(){

//本文

var section = document.evaluate('//div[@class="section"]',document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);

for (i=0; i < section.snapshotLength; i++) {

var sec = section.snapshotItem(i);

var p = sec.textContent;

for (t=0; t < ignore.length; t++){

var reg = p.match(ignore[t]);

if(reg){break;}

}

if(reg){

while(sec.firstChild){

sec.removeChild(sec.firstChild);

}

var message = document.createElement('h3');

message.textContent = abonemessage;

sec.appendChild(message);

}

}

//言及

var refererlist = document.evaluate('//ul/li',document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);

for (i=0; i < refererlist.snapshotLength; i++) {

var list = refererlist.snapshotItem(i);

var p = list.textContent;

for (t=0; t < ignore.length; t++){

var reg = p.match(ignore[t]);

if(reg){break;}

}

if(reg){

for(y=0;y < 8 ; y++){

list.removeChild(list.firstChild);

}

var message =document.createElement('span');

message.textContent = abonemessage;

list.insertBefore(message, list.firstChild);

}

}

})();

2016-01-13

http://anond.hatelabo.jp/20160112183433

Re:

[ Mail Delivery Subsystem the original message was recevid at ...... ]

返信来てる!と喜んだのも一瞬で、指を滑らせて開けたメール意味のよく分からない英語メール

メアドわっちゃったんだろうな。)

最近何もかもうまくいかず、満面の笑みなんて表情は、遠くにおき忘れてきちゃったみたい。

 

寂しさの波が大きくなりすぎた昨日の夜、勢いで、アイツへメールを送信した。

[ 突然すみません黒木ミサです。覚えてますか?このメアドまだつかってるのかな ]

" 送信 "をタッチする瞬間いろんな考えが頭に浮かんじゃった。

(もしも奥さんがいたら、こんなメール迷惑だよね)

(でも結婚してるかわからないし)

仕事中だったらどうしよう)

ものすごく不安になってきたけど、えい!と送信をタッチ

返信が怖くて、スマホソファーに投げた。そのまま布団をかぶって気づけば朝だった。

 

メールダメかぁ。LINEの “知り合いかも?” には、アイツの名前は出てないし。

今日が日曜ってのも最悪。予定もなく家で一人悶々と考える羽目になっちゃう。

(あ、そうだ、電話・・かけてみる?)

時計を見るとまだ8時。寝てるかな。心臓メール送信をタッチする時の数倍も、早く鼓動を打っている。

(そういやアイツ朝弱かったよな・・・

 

と、アドレス帳のアイツのページの “電話アイコン” に吸いつけられるように指が触れてしまった。

とまどっているうちに呼び出し音が鳴り始める。なかなかでない。

(切っちゃおうか)

ガチャ

(あ、つながっちゃった、えっと、)

もしもし、杉尾さんですか?」

なにやら街の喧騒が聞こえる。問いかけてから返事が返ってくるまで数秒もないのに、相手の声が聞こえてくるまでの間が、長く、長く、感じた。

「いいえ、ちがいますよ」

「そ、そうですか」

(あ、番号間違っちゃったかな)

アドレス帳タッチたから番号を間違えるなんてないのにこういう時の思考回路はどうかしている。

「番号は、080-XXX-XXXXですよね?」

はい、確かにその番号ですけど、私はちがいますよ」

「私、黒木ミサといいますが、聞き覚えないですよね?」

電話ダメかぁ。やっぱり私の満面の笑みは、どこかに落としちゃったんだ。

相手はしっかりした喋り口調の男性。励まそうとしてくれているのか、落ち着いた感じで話しかけてくれる。その声を聴きながら、涙が目に溜まっていく。

「あの・・・迷惑じゃなければ、もう少し話してもいいですか?」

黒木ミサといいます

振り返れば、いつの間にかアイツと話していると錯覚に落ちたのかもしれない。今週部長にひどく怒られた話や、シャワーが壊れた話とか、なんでもない話を赤の他人に話してしまった。話しているうちに、背丈を超えそうな大波になっていた寂しさは、さざ波くらいになっていった。

「あ、だらだらとすみません。吐き出せてよかったです。突然失礼しました。」

「いえ、私は何もしていませんよ。聞いていただけですから

「それでは」

 

メール電話ももう変わっちゃんだね。10年経っちゃったからね。スマホの連絡帳を開き、アイツの名前タッチ編集タッチ、削除・・・タッチしようとしたその瞬間、画面にSMSの通知があらわれ、ブブというバイブ振動が手に伝わる。

(え?アイツからSMS?)

(あ、いや、もうこれはアイツじゃなかった)

[ よければこれからメール等させてもらえませんか? ]

(どうしよう。どして?)

無視しようか、お礼だけ返信しようか、そう考えていると、耳奥で、さっきまで話していたあの声が聞こえてきた。

(そういえば、しっかりと、穏やかに話してくれたなぁ)

[ はい§^ o ^§ ] 短く返信し、

削除しようとしていたアイツのページを、削除じゃなく名前編集をする。

(あれ、お名前聞いてなかったな)

 

 

 

 

 

 

 

コメントの「この瞬間から電話帳の「杉尾さん」の名前が「増田さん」に変わるんだな。」が素敵だったので、続きを書いてみました。

2015-12-01

アシュレイ・マディソン自己紹介bot [3]

長文

ほとんどは140字以内だったか、切り詰めて140字以内にしましたが、長いままのせたかったものはtwitlongerというサービスリンクをおきました。

一つだけRTの多かったものに入っていますが、リンクとばきゃいけないということでRT伸びにくかったようなので、その一つ以外のものをここに書いておきます。

(女 刈谷市 1987)プロフィールに目を通していただけると嬉しいです。 Thank you for your message and wink. 一身上の都合により、4月に差し掛かるまでお返事をお休みさせていただきます。 心より深くお詫び申し上げますと共に、またご縁がございましたら宜しくお願いいたします。 アクセスして下さった方、気にかけていただきまして、どうも有難う御座います。 私は2014年10月3日にこちらのサイトに登録しました。 長月(ナガツキ)兎(ウサギ)と読みます。 ニックネームは、私が卯年の9月生まれである事が由来です。 初めは携帯電話からアクセスしていたため画面が小さく全体の把握ができなかった事と、英語に苦手意識を持っているため、お返事ができるようになるまでには時間がかかりました。 ログインする度にポップアップが出るので、クイック返信機能の設定と秘密のお写真を追加したところメッセージとウインクを沢山いただく事となり、お返事が追いつかなくなってしまいました。 その為、よく質問される事などを、この場をお借りしてもう少し詳しく記述させて頂こうと思います。 男性側はお金を消費なさっていると知ったので、少しでもお互いに時間的、金銭的負担がかからないようにと思い、恥を忍んで正直に書きます。 このサイトには心に疲れを感じた時に衝動的に登録しました。 知ったのは2014年の春頃で、確かネットサーフィン中に見かけてコンセプトに衝撃を受けたので、覚えていました。 私は、18歳の時に結婚と出産をしています。 小学生の子供が1人おりますが、第二子の予定はありません。 車の免許は持っておりません。 高校生の頃は歯科助手アルバイト、出産後には複数のライブチャットサイトを掛け持ちしてチャットレディをしていました。 今は専業主婦をしています。 出身地は、愛知県名古屋市で、現在は愛知県刈谷市に住んでいます。 友人や知人からは、夫婦仲が良いとよく羨まれますが、私は違和感を感じています。 平日の過ごし方は、主に家事やお買い物をしています。 知人から声がかかればお出掛けもします。 休日の過ごし方は、学校や会社のイベントに参加してみたり、サイクリングロードウォーキングしたり、市民プールに行ったりします。 学生の頃に経験した習い事と部活は、硬筆・ピアノ・珠算・水泳・学習塾英会話・茶道・華道・手芸・バドミントン軟式テニスバスケットボールです。 よく聴く音楽は歌詞の無い物で、自然音やオルゴールヒーリングミュージックリラクゼーションミュージックです。 よく飲む物はジャスミン茶です。 お花は、薔薇と金木犀が好きです。 装いはシンプルで質素な事が多く、装飾品はつけませんし、特別な用事がなければお化粧もしません。 髪色は茶系色です。 ヘアサロンでは、色白で小顔と言われ、ネイルサロンでは桃色が似合うと言われます。 お洒落をしないので、同性からは勿体無いと言われます。 笑うと可愛いのに、あまり笑わないと言われます。 笑顔が苦手です。 外出時にはコンタクトカラーコンタクトを用いることもありますが、お家では眼鏡をかけています。 匂いに敏感です。 お酒はご迷惑をお掛けするといけないので外出先で他所様と飲んだことがなく、好き嫌いはありませんが一回あたりの食事量は少ないです。 少人数で静かに会話が楽しめる場所が好きで、繁華街など騒々しい場所は好みません。 急いだり慌てる行動は得意ではありません。 影響を受け易いので健康や清潔を心がける方が気になります。 凝り性で依存し易いので、趣味や興味は敢えて持たない様にしています。 勉強になりますのでお話しを聴かせていただく事が好きです。 どんな事でも教えていただければ嬉しく思います。 警戒心が強いので、恐怖感を抱く作品や暗所や虫はとても苦手です。 ストレスがかかると体重が減ります。 遠出や旅行の経験は極僅かです。 私よりも、身長か体重が少ない方とは、並んで歩く自信がありません。 元々、性格は内向的で小心者です。 こういうサイトを介しての出会いなので、人間性を重視し、信頼関係を築きたいと思っています。 人見知りで慎重を期すため、まだ誰ともお会いした事がありません。 無料通話アプリの使用を検討中です。 親しくなるまでに月単位のお時間を要します。 関係の進展を急がれる方にはお応えできませんので、ご遠慮ください。 更に、稀に援助を申し出て下さる方がいらっしゃいますが、お引き取りください。 主に平日の朝9時から15時くらいまでの自由時間に、お返事しています。 目的や希望は特に持っておらず、出会った方との流れに任せたいと思っています。 私は性行為のみが目的の方や、性的な話題しかなさらない方には全く魅力を感じません。 秘密のお写真は1ヵ月毎に1枚づつ追加しますが、雰囲気が分かる程度のお写真です。 お顔を載せる事はありません。 それでも鍵の申請をなさる場合は、メッセージを下さい。 スリーサイズは最近測っておりませんので、下着E65と服XS/SS/5号と靴23.5のスリーサイズでお許し下さい。 性行為の幅を広げるためにストレッチを行ったり、より感度を高めたいので体型や体重の維持に努めています。 体脂肪率は15%です。 自他共に傷つける事がない様に爪の長さにも気を配っています。 性的欲求が強く1週間に1度は必ず性生活を営みます。 気持ちが高ぶり易く1人で慰めることも多いです。 結婚前は、愛人となったり複数人と4桁回数ほど身体の関係を持ちました。 私より4歳から16歳年上の方、10名とお付き合いの経験があります。 ミミズ千匹や名器と言われます。 ストレス解消方法は大人の玩具で慰めてからお昼寝する事です。 性趣向はSと言われた事が無いのでMだと思います。 前のお口だけではなく後ろのお口でも上り詰めますし、手指の愛撫では潮吹きもします。 淫楽に貪欲で、興味や好奇心が旺盛なので、性具も多数所持しています。 後背位の時に掌で叩かれる事は好みますが、鞭と針と蝋燭は苦手です。 ノーマルからアブノーマルまで幅広く様々なプレイを愉しめます。 飲精は好みますが、聖水を飲む事と黄金を食べる事は出来ません。 恥毛は剃毛により無毛、または短い状態です。 ただでさえ容姿が悪い上に、出産時の会陰切開による傷と妊娠線で女としての自信を無くしました。 一糸まとわぬ姿に、内面的そして外面的魅力を感じていただければ幸いです。 来る者拒まず去る者追わずで仕方が無いと考えていますので、お気に入りブロックは使いません。 私ごときでよろしければお相手して下さいませ。 稚拙な文章に目を通していただきまして、どうも有難う御座いました。 宜しくお願いいたします。 ごめんくださいませ。

(女 台東区 1996)フェミニストがいい。 人付き合いの為に中身のないことを塗り固めたような方は苦手です。 どうせこのような場で出会うのですから、礼節を除いて、そのような対応をして頂く必要はありません。 また、清潔感の無い人は嫌いです。 苦手ではなく、嫌いです。 体が太くない・髪にワックスがついてる=清潔感と思われてる方も嫌いです。 ワックスなどは、ついていないほうが清潔と感じることもあります。 誰にお会いしても恥ずかしくないという点で、スーツ姿はとても好きです。 上記の意味では非常に面食いです。 その他にも記載しましたが、求めている男性は二通り。 話を紳士的に聞いてくれる方 絵のモデルになってくれる方 どちらかに属する男性のみご連絡お願い致します。 現在は両タイプの男性が身近に居ますので、特に急ぎの用では御座いません。 様々な方とお知り合いになれたら、若い内の良い経験になると思っています。 宜しくお願い致します。

(男 中央区 1967)犯されたい願望を安全に、超リアルに叶えますよ 多くの女性が密かに持つ「乱暴されて犯されたい」願望を、安全第一で超リアルに叶えます。決して「レイ◎ごっこ」ではありません。主導権はあなたにあり、途中でいつでも中止出来ますので安全です。興味のある方以外はコンタクトしないでください。 ボタンが弾け飛び、無残に引き裂かれたブラウス。  鍛え上げられた男の前では、いくら泣き叫んでも無駄だ。  乱暴に押さえ突けられ、必死に抵抗したが、ショーツは強引に剥ぎ取られ、熱く大きく硬直した塊が湿った谷間を無理やり引き裂いて来た。  脳天を突き刺すようなピストンが激しく繰り返され、やがて・・・。      ★★★女性なら誰でも一度くらい、こんな妄想したことあるんじゃないですか?  ただし、相手は福山雅治で、身の安全と避妊が100%保障されて・・・と言う条件付きでね(笑)    でも、ちょっとした発想の転換で、そんなプレイが超リアルに、しかもあなたの主導で可能になるとしたら・・・。    勿論本当のレ○×は犯罪ですので、私は絶対にしませんよ。  唯一残念なのは、私が福山ではないということですが・・・ね(笑) 実はレ○×願望のある女性と、どうしたら超リアルプレイになるか色々と意見を出し合って考えついた方法なんです。 で、彼女と実際にプレイしてみたら大好評! 今までに9人の女性とプレイしました。  最後まで行った人、途中までの雰囲気で満足した人、興奮し途中からホテルへ行った人・・・。 1人だけプレイ開始直前で中止(残念~笑)となった人がいましたが、みなさん大満足の様子でした。  私からはアクセスしませんので、興味ある方のみご連絡下さいね。  事前に十分メールのやり取りをし、お互いが信頼できないと無理なプレイですので・・・。 (類似の満員電車編もありまよ~笑)

(男 港区 1940)老人好色師にて候 一途に天与の仕事のみで生きてきて好色に疎く孤高を貫くように意地張りとうし今に至る。器量容姿不問にて相愛、緩慢、穏やかに睦みあえる40歳代以上80歳だいの淑女、ご婦人との出逢いを願う。一緒にバブルバスに入ったり、青柳貝角しゃぶりなどを好む。 花鳥風月を愛で書読を嗜み響きを傾聴し、時として女院を舐め吸う妄想にしたり夢中で天与の仕事に勤しみ半世紀を過ごし、我に返れば労歳境地に居り好色に疎く孤高を貫く如くに意地張通し今に至る。器量容姿不問にて心底より相愛静寂緩慢、穏やかに睦合える40歳代から80歳代の御婦人との出逢いを願います。

(男 葛飾区 1958)太いです。お腹ではありません 女性を悦ばせるのが好き、CU○Tを舐めるのが大好き。。。 冬はコートの下は全裸、夏はnoPan・noBura・ミニで散歩する「メス」が好み。 木、金曜日の昼間がF○CK TIME、葛飾区 「淫らん」は女にとって最高の『栄誉』であり、究極の『賛辞』である hubbyで満足できないcu◎tは、別のco◎ksを漁り、貪り、堪能する権利がある c◎ntは一滴残らず搾り取るためにある ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 肉づきのいい太腿が、窓外の陽を受けて白く光っていた。 それをたくましい腕と両肩ががっちりとらえている。 脚をばたつかせても、男は微動だにしない。 日焼けしたたくましい背中にさえぎられて、右耳のピアスだけが見えかくれしている。 白く光る太腿の間で禿げ上った頭が上下に、左右に、そしてグリグリと円を描き、ピチャピチャ卑猥な音がしていた。 妻は、禿げ頭を押しのけようと、もがき、身をくねらせ、「お願い、やめて・・やめて下さい・・」と、あたりをはばかるようにささやいた。 種豚のアレように膨らんだ“ニンニク”の向こうで、重そうに揺れていた一物が、太さを増しながら頭をもげた。 ・・・こいつは誰なんだ・・ 飛び込んで、パンパンに膨れ上がった“ニンニク”を蹴り上げようと思った瞬間、妻への疑念が甦った。 それは小さい棘のように、常に意識を離れないものだった。 ・・・・・妻の“真実”を・・・・・ 魔が差したも同然だった。 後ろからは長さが分からない。精子を注ぎ込むにはあり余る太さだ。“すりこ木”かと見まごうばかりの偉容に息をのんだ。 被虐の感覚にも似た衝撃の予感に脳髄が痺れだした。 葛藤した。 そうあって欲しくない。 他方で、それを望む自分がいるのだ。 痺れた脳髄には正常な判断ができなかった。 “すりこ木”によって暴かれる妻の本性。その淫靡な思惑には抗せなかった。 飛び込むどころか、むしろ舌なめずりしながらその思惑にのめり込んで行ったのだ。 私はそっと身をかがめ、両手を床に這わせて亀のように首を突き出した。 “すりこ木”の先っぽが標的をなぶり焦らすかのように、上下に、そしてグルグルとまさぐっていた。 いつの間にか絨毯に滴り落ちた淫水の溜りに気づくと、私は後頭部を強打されたかのような衝撃を覚えた。 それまで平穏だった半生の暗転の始まりだった。

(女 大田区 1988)癒しを下さい↷꒰ू´•௰ू• `꒱↷ 26歳、主婦しています。 産後2ヶ月 旦那と会話もしたくないし、本当消えてほしいです。自分は自由に行動している所や、愚痴ばかりグチグチ言う所や、妊娠期から我慢ばかりしてきました。 もう視界に入れたくないくらい本当うざい。 給料少ないくせに、今週忘年会だから一万。 今月きついから少しは協力してよ、と言うと逆ギレ、あたしは小遣いも無いし、遊びにも行けねーんだよ!早く死ね!!と本気で思う毎日です。 男性から優しくされたいです。。(;_;)

(男 日野市 1960)貴女は此処へ何を求めているのか? バーチャルの世界と現実の世界。 夢と現実を分けるのは時計に表わされる数字と、一着のドレスゆっくりと交錯する。 貴女の夢やおとぎ話の世界と私たちの甘美で柔らかな時間。 皆さんは我々男性に何を求めそしてどのような時間の流れに身を晒そうとしているのか。 触ると壊れてしまいそうなその瞳に何を見ているのか… 一時の幻なのかそれとも永久に続く終わりのない世界なのか… でもすべてはやがては醒めてゆく夢、羊は群れに紛れ消えてゆく。 柔らかで暖かなその羊毛は刈り取られ、また美しい羊が生まれゆく。 人は皆わがままで傲慢、でもそれが許されるのは貴女のみ? 貴女の夢や希望を叶えるため、男たちは奔走する。 決して報われない夢と分かっていても… 特別に何を求めているわけではありません。 何を求められているのか? 人の趣向は千差万別、なにを求められそしてどこまで叶えて差し上げられるのか。 人の欲望もまた終わりな様々。 どのようなものが欲しく、またどのようなことを望むのか。 隣にいる近親者には言えなくとも対面にいる見知らぬ誰かには聞いてほしいと! そんな願望や希望をお聞きするために私たちは此処に集っているのです。 お話やらメールやら・・・何でもお聴きしましょう、誰も貴女を苛めたりしません。 少しのわがままと沢山の吐息、そして取り戻せない時・・・

(女 瀬谷区 1980)ちょぴり怖いけど登録しちゃった 激しいH 好みのタイプは、年齢打と45~55才ぐらいで、80k以上の人、背が高くて男っぽい人、がっしりした人。大きい人。強風でも飛ばされない人がいいな。キュンキュンはアレ小さいから、大きい人・長い人はダメですからね。だって痛いから気持ちよくないだもの。理想は13~14センチで先細りしていない人が大好きです。 逆にダメなタイプは、背が低くい、痩せ型とか細マッチョ?の人はゴメンナサイ。 素敵な人と気持ちいい関係になりたいでーす。 1/21追記します。 とても沢山のお誘いのご連絡ありがとうございます。でも、希望ではない方々が多く今回興味のある方一人いましたが写真がなく、ご連絡するまではしませんでした。 少し曖昧だったかもなので、私の望む殿方は次の通りです。 ・年令50才以上の殿方 ・身長最低175cm以上の殿方 ・体重も最低85kg以上の殿方 50才までの男性に興味はありません。おじさん大好きっ子だから、低い身長もダメなんです。体重も最低の値なんです。だからお願いします希望以外の方々はご遠慮ください。私の希望に合う殿方にお願いですが、全体のイメージのわかる写真もお願い、よろしくおねがいします

(男 文京区 1983) アナキスト テロリスト 政治犯 アジテーター 孤独な芸術家 大衆に指示される事を目的としていない革命家 自分以外の全てに対するアンチテーゼ 私を表すには、どれも当てはまるが どれも正確ではない エイリアンウイルスの発生源 または神や悪魔などが相応しいのでは無いかと思う 俺の考え方や生き方は現在では否定されるべきもので 今の世界から仲間はずれにされた疎外感や怒りが俺に強大な破壊衝動を芽生えさせた 人間達に同じ人間だと扱われなかった事が 俺に人間を超えた観点をもたらし それが俺の人間離れを加速させたのだと思う しかし何度か廻り合う人間(大衆)の仲間に入る機会を 悉く拒絶する選択をし続ける生き方を選んだ事実が 私を根源的に人間ではない事を証明している。

(男 城東区 1956)どちらかと言うとMな女性・人妻 長期で逢っている時は、恋人感覚の少しMな女性。既婚者でもOK。秘密厳守。またMac(パソコン)でのアクセスなので返事は遅れます。 1.セフレでも二人の時は恋人感覚の女性。2.顔写真要。イラスト不可。3.キスとぼくのものを舐めるのが好きな方。4..恥ずかしいことをさせられたり卑猥な言葉を言わされると興奮する女性。5.待合せは城東区諏訪の成城こうこうの正門を越えて最初の信号の辺り。変更はNGです。6.ぼくは女性が昇天する所を見るのが好きなので、まず、手・指・舌で何度も昇天して下さい。次はぼくの長いものででイ昇天する姿を何度も見せて下さい。8.最後は一緒にあなたがイクときにあなたなかにぼくのものをいっぱい発射。9.もちろん、その後は、お口でぼくのものを綺麗に。ぼくはパイプカットしてるので妊娠の心配はありません。また、病気も持っていません。すべての番号がYesの女性は文句なしでお逢いしたい女性です。これはNGの方は、そのNGの番号を記して送信して下さい。既婚者でもOK。秘密厳守。またMac(パソコン)でのアクセスなので返事は遅れます。

(女 千種区 1963)心の癒しを求めています 若さを保つために恋愛はずっとしていたいです。 お互い高めあえるような、良い刺激を与えてくれる魅力的な男性希望。 刺激って性的なものでなく、文化的なものです。 多少の性癖がありますが、愛のない行為はいたしません。 恋愛できる人。セフレにはなりません。 プロフィールにあえて「秘密厳守」とか「大人の関係」って記載されていると、からだだけ目的って感じがしてとても印象悪いので、そういった方は遠慮させてください。 どしょっぱつのメール、ここにも1、2行のご挨拶しかしてこなかったり、いきなりタメ口の人とか多いんですね。手当たりしだいのコピペもご遠慮ください。 一般的シモネタはしなくもないので、内容はかたくなくて大丈夫です。 でも趣味などに触れていただけると楽しいのではないかな、と思います。 デジタル機器大好きです。 けっこうおたくなので、かなりくいつきがよろしいかもです。 エンジニア系の職業を言われるだけで萌えるかもしれないです。 読書は実用書オンリーで、コンピュータのものが多いです。 こんなデート場所だと喜ぶかも。 映画館カラオケボックス、こじゃれたカフェ、ゴージャスなお食事、図書館、お部屋でいちゃいちゃ。 苦手なのはスポーツ、お酒、旅行、ドライブ。 どしょっぱつから、ドライブ行きましょうとか、飲みに行きましょうとか、絶対やめてくださいね。 貴女って呼ばれるの、かなり嫌い。 まぁ、汎用的な表現しかできない人はコピペメール気持ちがこもってないから嫌い。

(男 港区 1973)恋と言われたら、愛に行くよ! こんにちは。 僕は、中長期的にお付き合いできる彼女を一人だけ探しています。 ネットニュースでこのサイトを発見たので、登録してみました。本来は男である僕のほうからコンタクトすべきなんですが、あなたからの連絡をお待ちしています!。 女性の方にはがメールが山のように来て覚えていられない聞いたので・・・。 気軽にコンタクトしてくださいね 僕はこのサイトを通じて、いろんな女性とお会いしました。 独身の方、DINKSの方、子持ちの主婦の方……。 全員とは言いませんが、ほとんどの方に共通する悩みがだんだんわかってきました。 それは、 ・パートナーと長い間レスであるパートナーとの関係に満足していない ・そもそもパートナーがいない だから、心のスキマを埋めるための相手を探している、ということでした。 僕はこの事実に衝撃を受けました。 私がお会いした方は皆きれいで性格も素敵な方でした。それなのに、満足していないなんて。これは由々しき問題です。 もしあなたが先述のような悩みをお持ちでしたら、僕はあなたの期待に応えられるかもしれません。僕はあなたに楽しんでもらうために、ここにいるからです。 「男は自分さえ満足すればいいんじゃないの」という反論があるかもしれません。 僕もそれは認めます。しかし、それは満足の定義によります。 僕の満足は、あなたに精神的にも肉体的にも気持ちよくなっていただくことです。 「床上手」は僕にとって最高の褒め言葉です。 たとえば? こんなアプローチはいかがでしょう? シャワーから出て、バスタオルを巻いたままのあなたはベッドに腰掛けている。 僕は後ろからあなたのことをそっと抱きしめる。手を握りそのままじっとしていると、お互いの心臓の鼓動が伝わってくる。 男は髪を優しくなで始める。 頃合いをみて、女をベッドに横たえ、バスタオルゆっくりと取る。 そして、額に、まぶたに、軽くて長いキスをする。 時々、まつげを舌先で軽く触れる。 次は、耳を軽く噛む。決して歯は立てないで。 耳のなかに舌先を入れる。唾液が入るとあなたが不快になるので、そこは注意しながら。 その間、ずっとお互いの片手は強く握ったまま 男の指は鎖骨の上のくぼみに触れる あなたは、ごつごつした男の指がこんなに繊細なタッチだったのかとそのギャップに混乱する。 男は、右手で女の左腕を上に上げる。 あなたは一瞬、脇の処理大丈夫だったかな、と少し焦る(笑) そんな女の様子を見て見ぬふりをして男は二の腕の内側をさする。 男は二の腕から指をゆっくり胸のほうに向かってはわせる。 あなたは脇のあたりを撫でられて、くすぐったいかも、と身構えてしまう。 ところが、しばらく忘れていた感覚に、じわりと溢れる箇所が気になる。 そして、思わず内股になって腰をあげる。 また男はそんな動作に気づかぬふりをして胸の膨らみを周りからゆっくり円を描くように指先を中心部に向かってなぞっていく。 あなたは、乳首触られる、と少し期待しながらその瞬間を待つ。 しかし、男の指先は決してそこには触れることなく周りだけをゆっくりと触れるだけだ。 あなたは「なんで触ってくれないのー」と、思いながらも恥ずかしくて言い出せない。 そんな気持ちを察した男は、小指の先で、ほんの一瞬だけ、乳首に触れる。 あっ、と声をあげ、びくびくびくっと二回ほど身震いするあなた。 もうこの時点で、あなたは頭が白くなりかけていたが、腰の下のあたりがひんやりとしたのに気づく。 腰を少し上げ、片手で腰の下に何気ないふりをして手を当てると、シーツがえらいことになっている。 ---悔しい、とあなたは思う まだ、肝心なところにはどこにも触れられていないのに、こんなになっちゃうなんて。 何とか、この状況を打開しなければ、どうなってしまうのかわからない。 あなたは勇気を出して言う 「もう限界。助けて」 男は、「じゃ、入れるね」と言うと、あなたはこっくりと頷いた。 あなたは少し、そして、ますます悔しくなった だって、肝心な部分に触れられてさえいないのに、もう入れられる状態になるなんて。 あなたは、ぼんやりと考えながら、男の物を受け入れる準備をした。 すると、男は親指と人差指であなたの顎を持ち、ぐっと下に下げた。 そして、あなたの顔のあたりに腰を移動させ、ちいさな口にカチカチの物体をねじこんだ。 予想外の展開に、あなたの頭は完全に真っ白になった to be continued とはいえ、なかなか女性の方から「女性を気持よくさせるのが好き」という男性にコンタクトするのは、抵抗があるかもしれません。その気持はよくわかります。 でも、ちょっとだけ勇気を出して僕に一声かけていただければ、十二単を一枚、一枚丁寧にはがすようにあなたエスコートします。 あるいは、こんなこと言う人間は、もしかするとヤバイ仕事している男なのでは、と警戒されるかもしれません。 大丈夫です。まともな仕事をしています。 申し遅れましたが、こんな男です、という自己紹介をします。 僕は都内で会社を経営しています。 もしかすると、あなたも僕の会社の商品をお使いになったことがあるかもしれません。 そんな仕事をしていますので、僕にもリスクがあります。 だから、秘密厳守です。 秘密を守れる方法、場所をよく知っています。 通勤は毎日クルマですので、フットワークは軽いです。 時間は割と自由になりますので、昼間も大丈夫です。 外見は、身長172センチ、体重66キロ。 今のところ白髪もハゲもありません。 顔は好みがあるかと思いますので、後にお送りする写真でご判断ください。 性格は、冗談や笑い話が好きです。 また、諦めがよく、粘着質なところはありません。 人には丁寧に接するよう心がけています。 もし、もっと自分を開放したい、女性として満足したいという想いがいっぱいになったら、僕にコンタクトしてください。 きっとあなたの期待に応えます。 なお、僕はお気に入りに登録することはありますが、僕からはウィンクメールも最初には送りません。 あなたに選んでいただきたいからです。 ウィンクでも、秘密写真のリクエストでも、どんな方法でも結構ですので、ご連絡ください。 プロフィールが書かれていて、雰囲気のわかる写真をご登録の方でしたら、必ず返信します。 なお、このサイトでは顔がはっきりとわかるプライベート写真は公開していません。 メアドを交換して、ある程度お話して、「じゃお会いしてみましょうか」という段階になった時点でお送りします。 気軽にコンタクトしてくださいね。お待ちしています。 よろしくお願いします! P.S. あのー、お願いですから、いわゆる「割り切り」を要求する方のコンタクトはやめてください。ここのところ「2枚」とか「3枚」を要求して、「西日暮里で会いたい」というコンタクトを複数もらっています。そういうの全く興味ありませんので、あしからずご了承ください。

(男 世田谷区 1977)酢豚にパイナップルは苦手派です  虫さされにはムヒよりウナ、居酒屋では焼き鳥より唐揚げ派、風邪っぽいときは葛根湯よりジキニン、並んでいる自販機できっちりお釣りを目論んで余計に10円玉とかを投入するのを見るとイラッとくる派、熱っぽいときは冷えピタよりは熱さまシート派で、「世界」と聞くと国際情勢より山ちゃんが思い浮かぶ庶民派でもあります。ですが、春の訪れを桜よりはヤマザキのパンまつり、夏はサザンの新曲よりもサライの合唱で感じる今風なとこもあります。  最近落ち込んだことは、浴室の掃除をしようとカビキラーを手にしたら、その容器にカビが生えていたことと、「訓読み」自体が音読みだとしったことです。気まずかったことは、美容室での洗髪中に顔にかけたタオルがずれて、片目だけ視線が美容師と合ったことです。ミルフィーユを素手を使わずに食べられる人や、カールを咀嚼する前に歯にくっつくことをためらわず食べられる人はリスペクトできます。系統は、草食系でもアキバ系でもありませんが、自宅のトイレブルーレット置くだけにしています。

次:アシュレイ・マディソン自己紹介bot 4

目次

2015-06-23

processing.jsで作ってはherokuに上げを繰り返すと時間がどんどん過ぎてい

zm-message.herokuapp.com/#{文字列}

文字列がズモズモ動くよ。

http://zm-message.herokuapp.com/%E5%B8%8C%E6%9C%9B%E3%81%AE%E6%9C%9D

2015-04-06

https://developer.mozilla.org/ja/ブラウザコンソール

             _.-~-.
           7''  Q..\
        _7         (_
      _7  _/    _q.  /
    _7 . ___  /VVvv-'_                                            .
   7/ / /~- \_\\      '-._     .-'                      /       //
  ./ ( /-~-/||'=.__  '::. '-~'' {             ___   /  //     ./{
 V   V-~-~| ||   __''_   ':::.   ''~-~.___.-'' _/  // / {_   /  {  /
  VV/-~-~-|/ \ .'__'. '.    '::                     _ _ _        ''.
  / /~~~~||VVV/ /  \ )  \        _ __ ___   ___ ___(_) | | __ _   .::'
 / (~-~-~\\.-' /    \'   \::::. | '_ ` _ \ / _ \_  / | | |/ _` | :::'
/..\    /..\__/      '     '::: | | | | | | (_) / /| | | | (_| | ::'
vVVv    vVVv                 ': |_| |_| |_|\___/___|_|_|_|\__,_| ''

Hi there, nice to meet you!

Interested in having a direct impact on hundreds of millions of users? Join
Mozilla, and become part of a global community that’s helping to build a
brighter future for the Web.

Visit https://careers.mozilla.org to learn about our current job openings.
Visit https://www.mozilla.org/contribute for more ways to get involved and
help support Mozilla.

---

If you don't want to see this message next time, run this JS statement:

    Tabzilla.disableEasterEgg()

が出力されて一瞬びっくりした。

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