TKYM's profile※ 画面は開発中のものですPhotosBlogListsMore Tools Help

Blog


    November 30

    フィクション

    今日特急電車に乗って移動中、隣に座っていた他人が、「弁当を食べてもいいですか?」と聞いてきたので、「いいですよ」と言ったのだが・・・。
     
    男性は弁当を広げ、かばんの中から My箸・・・と、納豆を取り出した。
    驚きのあまり何も言うことが出来なかった。
     
    そして、タレをかけてかき混ぜ始める。特有のにおいが車内に充満する。
    通路向かいの人がこちらを見ている。
     
    男性は何かに気づいてネバネバの箸をおいた。
    どうやらからしを入れ忘れたようだ。
    袋を開けることに手間取っているようだった。
     
    早くこの空間から抜け出したく思いながら、窓の外を見ていると、隣から何かが飛んできた。
    手でそれをぬぐい、隣を見ると、ミクロの穴が開いたからしの袋が、持ち主の指圧によって破裂寸前になっていた。
    箸が一本、床に落ちた。
    November 29

    nico+

    赤外線通信搭載&パステルカラーの「nico+」が登場
     
    ほしい。パステルカラー化でかわいさが数段増しているけれど。
    nico.neco が本当は一番ほしいかもしれない。
     
    もう少しまじめに考え直すと '9' がほしい
     
    PHS が速度的に不利になってきたとき(まさに今)、音声に特化してシンプルに使うための作戦を考え中なのです。

    シウマイ・定額

    <崎陽軒>シューマイの原材料表示に誤り 回収し廃棄
     
    こんなニュースの中、今日は京急に乗って横浜をとおり、 原材料に「シウマイ(*)」 と書いてあり 表示上全く問題が無い シウマイ弁当を買って、おいしくいただきました。
     
    (*) シウマイ単体の場合、シウマイの原材料が書いてある。
     

    KDDI、PC向けデータ定額プランと専用データカード「W05K」を発表
     
    KDDI の発表したPC定額は、プロトコルを問わず定額で通信が行えるようです。
    有力な選択肢が イーモバイル・KDDI の2つになりました。
    ドコモは制約が多いので他者に比べ不利、ソフトバンクは追従するのかどうか。
     
    そんな中心配なwillcom.
    W-OAM typeG のスピードアップを急いでも、まだ 800kbps.
    PHS はこの先生きのこることができるのでしょうか・・・。
    November 25

    蜂黒 、 ハチクロ

    ハチクロは来年からドラマが放送されます。
    うちの小屋を整理していたら、半年前に部屋中を暴れまわった挙句どこかに迷い込んでしまった哀れな怖いハチの死体が出てきました。
     
    無題 一応虫なので、小さくしときました。 
     
    大きい画像
     
    特徴は首のフサフサ。なでてみたら、小さすぎて何も感じなかった。
     
    毎週火曜日はアニメのハチクロ2 23:00- アニマックス。
    November 24

    その改造が終わったことについて

    2.5日間、PHP を書き続けた。 睡眠はしっかり8時間とったけど。
     
    ブログのRSS を取得してタイトルによってシリーズ分けした。
    それをさらにソフトウェアの公開情報と統合して、最新情報をトップに表示した。
     
    フィードや日付表記の種類に対応できていない。
    書き方も汚いけれど、最初だから仕方ない。
    作り直せばプログラムは生まれ変わるのだけれど、一般にそういうやり方は通用しないので、自分もしばらくしない。
     
    ちなみに、書いた行数は500ちょっと。
    1日3000行書く人に比べると少なすぎる。
    論理的思考なんて最初から全くしていないのにこんな調子です。
    多分集中力がないからでしょう・・・。

    ブログと日記の違い

    話していて、ブログ = 日記+トラバ という、何気ない認識が、それだけではないことを知った。
     
    語源からすれば、 weB LOG なので、 ウェブのログを書くものであり、個人の日記ではない。 ブログがたまたま日記としても便利な機能を 数多く備えていたことから、現在の使われかたに至っているということらしい。
     
    普段何気なく使っている言葉も、分解して考えてみると新たな発見があるのですね。
     
     
    見苦しい記事が続きましたが、これは programming_city の改造のためです。
    programming_cjity というカテゴリの記事は、http://prog-city.no-ip.info/ にで、シリーズごとにまとめて表示されます。
    November 20

    産業プログラム(Ctrl + L)

    ユーザの切り替え画面に勝手に移動するために、Win + L を自動的に押したことにしてくれるプログラムを書きました。
    なんとオープンソースです
     
    #include <windows.h>
    int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
          keybd_event(0x5b, 0, 0, 0);
          keybd_event('L', 0, 0, 0);
          keybd_event(0x5b, 0, 2, 0);
          return 0;
    }
     
     
    便利なような、不便なような・・・
    VMWare を起動していると、ついログオフしたとき、VM まで落ちてしまうので、対策用になるかなと。
     
     
    ;
    November 17

    テクノラティに登録するついで

     
    今日は非常に寒く、キーがまともに打てません。
    PCも何処からかカチカチと音を上げています。
     
    • 高校数学+α を読む。
    • 今日は電脳コイル。

    HSP でクイズ(7) とりあえず完成

    最後に、点数の区分によって、違った文章を表示するようにします。
     
    20点ごとに、5つの文章を用意します。
    2次元配列を使うと、複数の文字列をまとめて扱えます。
    2次元配列も sdim 命令で作成します。
     
    sdim comment, 100, 5
    100文字の要素が5つ分ある配列を作ります。
     
    これに、5つのコメントをあらかじめ入れてしまいます。
    comment(0) = "思った選択肢以外を選びましょう"
    comment(1) = "これはひどい"
    comment(2) = "残念"
    comment(3) = "まあまあ"
    comment(4) = "すばらしい"
    comment(5) = "おめでとう"
     
    上から、0~19, 20~39, 40~59, 60~79, 80~99, 100 点の時のコメントです。
    これを、 mes comment(x) のような形で表示します。
     
    機能は一通り完成しました。
    あとは、ウィンドウのタイトルを "クイズ" に変えて、exe を作ります。
     
    プログラムの始めに、
    title "クイズ" と書きます。
     
    exe を作る方法
    1. コンパイルか、コンパイル+実行する
    2. start.ax を作成する
    3. [ツール]-[PACKFILE編集] を開き、 start.ax を右側に入れる
    4. [ツール]-[exe作成] を選択する

     pos 320,10
     mes "結果発表"

     ten = right * 100 / nData
     mes "あなたの点数:"+ (ten) + "点"
     
     sdim comment, 100, 5
     comment(0) = "思った選択肢以外を選びましょう"
     comment(1) = "これはひどい"
     comment(2) = "残念"
     comment(3) = "まあまあ"
     comment(4) = "すばらしい"
     comment(5) = "おめでとう"
     
     pos 320,50
     mes comment(ten/20)

     ソース

    実行可能ファイル + ソース + 問題データ

    November 16

    HSP でクイズ(6)

    成績表示画面を作りましょう。
     
    これまでは、全ての問題を回答すると、プログラムが終了してしまいましたが、これを成績発表処理に飛ぶように変更します。
     
     
        if q_cnt = nData : end ; 問題数に達したら終了
    この行により、今までは終了してしまっていました。この end 命令を goto 命令に置き換え、新たな処理へと飛ばします。
     
        if q_cnt = nData : goto *score ; 問題数に達したら終了
    ・・・ 一番下へ
    *score
        ; ここで何かを表示
        stop
     
     
    成績表示画面に切り替えるために、今までの画面をクリアします。
     
    cls
    これで、画面は真っ白になります。
     

     
    画面はこんな感じにしようと思います。
    無題
     
    問題数が増加したときのため、メッセージボックス内に結果を表示するようにします。
     
    メッセージボックスを作るのは mesbox 命令です。
    mesbox 表示する文字列変数, xサイズ, yサイズ
     
    mesbox 命令には、表示する文字列を指定するので、まずはその文字列を作る必要があります。
     
    地道にループして、文字列を作っていきます。
    ループは repeat ~ loop で、 repeat 繰り返す回数 のように書きます。
    ループの内部では、 cnt という変数が使え、繰り返すごとに0, 1, 2, 3, 4 と増えます。
     
    scorebuf という変数を用意し、 念のためsdim で 1000文字分の長さを確保しておきます。
     
    ループしながら、各問いの結果を連結していきます。文字列を連結するには
    scorebuf += "hello"
    のように書きます。
     
    そして、文字列を作っていく中で、正解・不正解を判定し、 ○×をつけ、その数をカウントし、点数を算出します。 問題データの正解が書かれた行を取り出して比較しますが、そのデータは文字列なので、比較可能な数値型に変換します。
    int(文字列 )
     
     

    *score

              cls

              sdim scorebuf, 1000

              scorebuf = ""

     

              ;結果集計

              right = 0 ; 正解をカウントします

              repeat nData

                       scorebuf += "第"+cnt+"問\t"

     

                       ;正解の判定

                       noteget tmp, cnt*6+5         ;正解が書かれた行を取り出す

                       if int(tmp) = log(cnt){ ;正解なら

                                 scorebuf += "○  "

                                 right ++

                       }else{                                          ;間違いなら

                                 scorebuf += "×  "

                       }

     

                       ;あなたの答えと正答

                       scorebuf += "あなた : "+(log(cnt)+1)+"  "

                       scorebuf += "正答 : "+ (int(tmp)+1) + "  "

     

                       ;正答の文字列

                       tmpidx = cnt*6 + int(tmp) + 1

                       noteget tmp, tmpidx

                       scorebuf += "[ " + tmp + " ]"

                      

                       scorebuf += "\n"

              loop

             

              pos 10,10

              mesbox scorebuf, 300, 460

     

              pos 320,10

              mes "結果発表"

              mes "あなたの点数:"+ (right * 100 / nData) + "点"

     

              pos 320,50

              mes "おつかれさまでした"

     

              stop

    November 15

    HSP でクイズ(5)

    回答ボタンが押されたとき、どのボタンが押されたのかを判別し、正解・不正解を記録するよう処理を書き加えていきます。
     
    即座に正解・不正解を表示せず、回答した選択肢の番号を記録し、全部出題したあとに結果表示することにします。 各問題の回答を記録するには、問題数分の配列を準備する必要があります。 回答番号(1-4)を入れるので、数値を入れるための配列です。
    数値を入れる配列を作るには、dim 命令を使います。
    dim 配列名, 要素の数
    この命令に、問題数である既存の nData 変数を指定すれば、配列を作ることが出来ます。
    dim log, nData
     
    また、ボタンが押され、 *a1 ~ *a4 ラベルにジャンプしたとき、選択肢の番号を配列に格納します。
    *a1
        log(q_cnt) = 1
        goto *update
    (他のラベルでも同じ事をします。)
     
    これで、配列にはデータが書き込まれましたが、見ることが出来ません。
    そこで、debug ウィンドウというものを開いてみます。これは、変数の状態を表示したり、途中で動作を止めて、1行1行動作を確かめることが出来るものです。
    [HSP(P)]メニューから、Debugウィンドゥ表示を選択し、スクリプトを実行します。 すると、メインのウィンドウのほかに、 Debug Window が表示されます。 問題を数問回答してから、その中の、[変数]タブを選び、チェックボックス[配列変数]をチェックします。そして、作成した配列である log を選択すると、配列の中身がどうなっているか表示されます。
    答えていた問題の回答が正しく記録されているでしょうか。
    [表示の例]
    変数名:log
    型:int
    配列:(10,0,0,0)
    モード:1
    使用サイズ:40
    バッファサイズ:40
    内容:
    1
    (0)=1
    (1)=1
    (2)=1
    (3)=2
    (4)=2
    (5)=0
    (6)=0
    (7)=0
    (8)=0
    (9)=0
    今度は、これをつかって結果表示をします。
     
    November 14

    HSP でクイズ(4)

    画面を作り、問題を読み込んだので、今度は問題を表示していきます。
     
    問題の表示は、問題数の数だけ毎回同じ事を繰り返します。このような処理は、サブルーチンを作って、何度でも呼び出せるようにすると便利です。
     
    HSP には、普通の goto によるジャンプと、 サブルーチンジャンプである、gosub によるジャンプがあります。goto も gosub もラベルを指定しますが、 gosub で指定されるラベルの下には、return という命令があり、return まで処理が進むと 呼び出し元の gosub まで戻ってきます。
     
    [例]
    1.     gosub *a
    2.     mes "a"
    3.     stop
    4.  
    5. *a
    6.     mes "b"
    7.     return

    この場合、1, 5, 6, 7, 2, 3 の順番に処理が進みます。


    *q_show というラベルを、問題の表示を更新するための サブルーチンとして書いてみます。 このサブルーチンでは、 問題を画面上に表示し、4択ボタンに表示される文字を書き換えます。 何番目の問題に書き換えるかは、q_cnt に格納されていることとします。gosub する前に表示したい問題番号をq_cnt にしておけば良いということです。

    すでに表示されたボタンの状態を変更するには、objprm 命令を使います。objprm を使うには、ボタン作成時にわかるボタン固有のIDを変数に入れて覚えておかなければなりません。button 命令を実行し、ボタンを配置したとき、 stat という特別な変数に ボタンのID が入っています。これを、idb_1, idb_2, idb_3, idb_4 という変数を用意して覚えておくことにします。

    objprm 命令は、 objprm ID, 文字列 の形式で記述します。

    [ボタン配置部分の変更]
        button "答え1", *a1
        idb_1 = stat
    ; 他のボタンも同じように書きます。

    [gosub 前に準備しておく変数]

    • 問題データが格納され、notesel で指定済みの変数 buf
    • 1行分の文字列を十分に格納可能な大きさの配列 linebuf
    • 表示する問題の番号 q_cnt
    • 選択肢ボタンのID idb_1, idb_2, idb_3, idb_4

     

    *show_question
         noteget linebuf, q_cnt*6
         color 255,255,255 ;塗る色を白にして
         boxf 0,0,640,50  ;問題表示部分を白く塗り
         color 0,0,0   ;黒に戻す
         pos 10,10   ;座標10,10に
         mes linebuf   ;新しい問題を表示

     

         ;選択肢の行を取得,ボタンを書き換え

         noteget linebuf, (q_cnt*6 + 1)
         objprm idb_1, linebuf

         noteget linebuf, (q_cnt*6 + 2)
         objprm idb_2, linebuf

         noteget linebuf, (q_cnt*6 + 3)
         objprm idb_3, linebuf

         noteget linebuf, (q_cnt*6 + 4)
         objprm idb_4, linebuf
         return

     


    これを踏まえ、今までのコードにこのサブルーチンへのジャンプを書き加えます。

    [今回書いたところ]

    • ボタンを識別するため、button 命令直後に、 stat の値を取得する。
    • 問題表示のサブルーチン : show_question ラベル~return
    • 全てのボタンを表示した後、最初の問題を表示する gosub
    • ボタンが押され、*update に飛んだところで、次の問題を表示する gosub

    それと、

    • 問題番号 q_cnt の増加は *update でまとめて行うようにしました。

        ;問題の読み込み

        notesel buf

        noteload "question.txt"

        nData =  notemax / 6

     

        ;行読み込み用配列の確保

        sdim linebuf, 500

        q_cnt = 0;問題カウント 

     

        pos 10,160

        objsize 300, 100

        button "答え1", *a1

        idb_1 = stat

     

        pos 330,160

        button "答え2", *a2

        idb_2 = stat

                 

        pos 10,290

        button "答え3", *a3

        idb_3 = stat

                 

        pos 330,290

        button "答え4", *a4

        idb_4 = stat

     

        gosub *show_question ; 1問目を表示

        stop

     

    *a1

         goto *update

    *a2

         goto *update

    *a3

         goto *update

    *a4

         goto *update

     

    *update

         q_cnt++

         if q_cnt = nData : end ; 問題数に達したら終了

         gosub *show_question

         stop

     

    *show_question

         noteget linebuf, q_cnt*6; 問題の行を取得

         color 255,255,255 ;塗る色を白にして

         boxf 0,0,640,50 ;問題表示部分を白く塗り

         color 0,0,0    ;黒に戻す

         pos 10,10      ;座標10,10

         mes linebuf    ;新しい問題を表示

     

         noteget linebuf, (q_cnt*6 + 1)

         objprm idb_1, linebuf

     

         noteget linebuf, (q_cnt*6 + 2)

         objprm idb_2, linebuf

     

         noteget linebuf, (q_cnt*6 + 3)

         objprm idb_3, linebuf

     

         noteget linebuf, (q_cnt*6 + 4)

         objprm idb_4, linebuf

         return

     

     

    これで、正解・不正解はわからないものの、答えを選択して出題を進めていくことができるようになりました。

    次は、正解・不正解を判定してみます。

    ソースと問題ファイル

    HSP でクイズ(3)

    問題ファイルを読み込みます。
    HSP でファイルを読み込む場合、普通のファイル操作を行ってもよいですが、改行で区切られたテキストファイルを読み込む場合、メモリノートパッド命令という特有の機能を用いると便利です。命令ひとつで、任意の行を取得することが出来ます。
     
    [ファイル名] question.txt
     
    [読み込みのコード]
    •  notesel buf
      メモリノートパッドに用いる変数を指定します。
    •  noteload "question.txt" 
      ファイルを指定した変数に読み込みます。(メモリ確保は不要)
    •  nData =  notemax / 6
      データ数を記憶しておきます。 notemax = 行数なので、6行で割ります。
     
    [n 問目の問題データを参照する方法]
    メモリノートパッドの各行の値を取得するには、 noteget 命令を使用します。
    noteget は、 noteget (データを格納する変数), (取得する行) の形式で記述しますが、データを格納する変数は、配列として十分な大きさを用意しておかなければなりません。
     
    配列を作るには、sdim 命令を使います。
    sdim 変数名, バイト数  の形式で、十分な容量の配列を確保します。
     
    n問目の 各データのインデックスは次のとおりです。(nは0から開始)
    6*n + 0 : 問題文
    6*n + 1 : 選択肢1
    6*n + 2 : 選択肢2
    6*n + 3 : 選択肢3
    6*n + 4 : 選択肢4
    6*n + 5 : 正解
     

     ;問題の読み込み
         notesel buf
         noteload "question.txt"
         nData =  notemax / 6

     ;行読み込み用配列の確保
         sdim linebuf, 500
     
         q_cnt = 0;問題カウント
     

         pos 10,160
         objsize 300, 100
         button "答え1", *a1

         pos 330,160
         button "答え2", *a2

         pos 10,290
         button "答え3", *a3

         pos 330,290
         button "答え4", *a4

         stop

    *a1
         q_cnt++
         goto *update
    *a2
         q_cnt++
         goto *update
    *a3
         q_cnt++
         goto *update
    *a4
         q_cnt++
         goto *update

    *update
         if q_cnt = nData : end ; 問題数に達したら終了
         noteget linebuf, q_cnt*6
         dialog linebuf
     stop

     
    適当に書いてみました。内容としては、とりあえず問題を読み込んで、選択肢ボタンのどれかをクリックすると、次の問題の文章がダイアログで表示されるという実験プログラムです。
    ボタンが押されると *a1 ~ *a4 のどれかに飛びます。そこで、 q_cnt++ という命令が実行されると、 q_cnt の値は1増加します。そして、goto 命令で、 *update にジャンプします。
     
    そこでもし、問題数までq_cnt が到達してしまっていたら、終了します。 そうでなければq_cnt 番目の問題文を あらかじめ作っておいた配列 linebufに読み込み、 dialog でダイアログボックスに表示します。
     
    November 13

    HSP でクイズ(2)

    問題を作りました。
    で、今度は画面を作ってみます。
     
    ようやくここでコードを打つことになるわけですが。
    とりあえず、こんな感じに表示するという程度のものです。
     

    ; クイズプログラム

    ; セミコロンから行末は、コメントです。

          mes "問題をここに表示"  ; 文章を表示します。

     

          pos 10,160                     ; (10, 160) に

          objsize 300, 100         ; (300 * 100) サイズの

          button "答え1", *a1    ; "答え1" と書かれた *a1 に飛ぶボタンを配置

     

          pos 330,160

          button "答え2", *a2

     

          pos 10,290

          button "答え3", *a3

     

          pos 330,290

          button "答え4", *a4

          ;ボタンを配置したら待機します。  

          stop

     

    ;ボタンが押されたときの飛ぶ先を作っておきましたが、

    ;まだそのまま下に行ってstop するだけです。

    *a1

    *a2

    *a3

    *a4

          stop

     
    これを実行すると、このようになります
    画面
    地味です。しかも何もしません。
     
    使用した命令
    • mes
      文章を表示します。
    • pos
      ボタンを表示する座標を指定しています。
      button や、mes など、何かを表示・配置する前に書きます。
    • objsize
      ボタンのサイズを指定しています。
      全て同じサイズのボタンなので、最初に一度だけ指定しています。
    • button
      ボタンを配置しています。 ボタンの名前、押されたら飛ぶ場所を指定します。
      下のほうにある *a1 等に飛んで、その下のstop で停止します。
    • stop
      実行を停止します。
      停止しても、配置したボタンは生きているので、押される事によって、とんだ先から再度プログラムが動き始めます。
    • *aなんとか
      ラベルといい、ボタンを押したとき、飛ぶための場所を表しています。

    適当に画面を作りました。次は、問題を読み込んで見たりします。

    November 12

    HSPでクイズ

    HSP でクイズを開発します。
    4択の問題で、制限時間は無く、全問回答形式です。
    100点満点で評価を行い、最後に各問の正解・不正解とともに表示します。
     
    Hot Soup Processor(ホットスーププロセッサー)は1994年おにたまにより開発されたプログラミング言語環境(正確にはプログラミングツール)である。
    (Wikipedia より)
     
    HSP を使うと、非常に簡単にGUI のプログラムを作ることが出来ます。
    まず、HSP のプログラミング環境を準備します。
    ダウンロードサイトから HSP をダウンロードします。
     
    インストールウィザードに従い、HSP をインストールしたら、"HSPスクリプトエディタ"を開きます。
     
    ここに、コードを書き、プログラムを実行します。が、実はもうプログラムの原型は作られています。
    F5 を押してみると、ウィンドウが開きます。
    HSP は何もしなくても GUI のプログラムが作れるのです。
     
    ・・・ちなみに、やりたければ mes "hello world" と打ち込んでからF5 を押してください。
     
    hsp1-1
     

    プログラムを書く前に、適当にクイズを作っておきましょう。

    question.txt

    1+1=?

    1

    2

    3

    4

    1

    次のうち、うるう年はどれか

    1900

    2000

    2100

    2200

    1

    このクイズ開発が課題となった科目に含まれる単語はどれか

    入門

    上級

    基礎

    応用

    3

    C#言語の Cの由来は?

    Computer

    COBOL

    C 言語

    CPU

    2

    google の社名の由来となる単語の表す数は?

    10^-1024

    10^100

    2^128

    2^65536

    1

    Office アシスタントでないものはどれ?

    冴子先生

    ロッキー

    M1

    ミミ

    2

    まきますか

    はい

    いいえ

    (空白行)

    (空白行)

    0

    この問題で何問目?

    6

    7

    8

    9

    2

    この問題で何問目?

    (1001) 2

    (0101) 2

    (1010) 2

    (0111) 2

    0

    この問題で何問目?

    (11) 8

    (12) 8

    (13) 8

    (14) 8

    1

    つかれた。 (つづく)

    November 10

    時計

    時計が3分もずれていた。
    鯖としてずっと起動していたのに、油断ならない。
    それで、30分録画するうちの後ろ5分は関係の無い番組が入っているのに、時計は遅れていた。これってマーフィのなんとか?
     
    対策として、東大のntp にサーバーを変えておいた。time.windows.com は全く同期できない。
    Windows をインストールしたときにやっておけばよかった。
     
    さらに、mAgicTV を使用している場合、mAgic マネージャの「時刻補正」タブの設定で「補正しない」がデフォルトになっているので、「1日1回」とかにしておくと安全だと思う。
    November 09

    勉強ってどうやってやるの?

    時間が過ぎていて、間に合わなくなってしまった。
    テストらしいということだったが、結局のところテストはなく、それどころか授業開始が遅れていて間に合ってしまった。
    関係ない科目の勉強もはかどり、面倒なプリントもなく、終えてみるとすばらしい一日だった。

    ところで、ひざが痛い。立ったり座ったりが特に大変。
    原因はけん玉。もしかめを延々とつづけていたから。
    朝の段階で痛みは筋肉のみだったが、ひざまで来てしまった。

    November 08

    ムシャムシャ幸せ

    http://www.kfc.co.jp/tvcm/cm_26.html(ケンタッキーフライドチキン)
     
    ケンタッキーのCMが見るたびに気になったので調べた。
     
    ムシャムシャソングに合わせ、肉に食らいついている。動物としての幸せの原点を見せられた感じがする。
    食べる喜びはみんな共通だと思うから、とても効果的なCMだと思う。
    何より見ていて楽しい。
    November 07

    さまざま

    最近、電車が混雑している。さまざまなイベント・行楽のシーズンだから、みんな電車に乗っていくのだろう。
     
    マンガを2冊買った。読むと落ち着く。
     
    11~12時ごろに寝て、朝は7時までにおきる。眠っていられる実質的な時間は大体6:30ぐらい。
    夜更かししては 8~10時間睡眠するパターンよりは、時間を有効活用できていると思う。
    しかし、これから先朝起きるのは大変だ。
     
    けん玉の紐をはずした。しばらくもしかめの練習に集中しようと思う。音楽を鳴らしながらひたすらもしもしかめかめと練習するのが結構面白い。
     
    gcc: 最終行の改行に意味はあるのですか?
     "no newline at end of file"
     
    November 06

    教師による逆パカは存在したのだろうか

    授業中に携帯電話が鳴って逆パカされた
    というエピソードは飽きるぐらい耳にしています。しかし、目にしていません。
    果たして、本当に逆パカは存在していたのか。
     
    私が目にしたものは
    • 見逃し
    • 個人を特定しない注意
    • 個人を特定した注意
    • クラス全員への熱い説教
    • 没収

    ぐらいで、物理的に壊されたようなケースは無いです。

    実質1円でも開発費はとても高いのだから、使い終わったとしても壊してしまうのはもったいないです。

    ところで、ストレート型端末はそもそも逆パカできないと思いますが、それでも 702nk2 が結構頑丈だと思うのです。
    イライラしたときに(つい)思い切り投げつけたことが3回ありましたが、当時のバッテリーが欠陥品だったことを考えるとぞっとします。
    でもぜんぜん壊れない