私は戦って負けた
だから戦わなかった君達とは一緒にいられない。
私は故郷に帰る。
というか帰ってきた。
もう大分前の話ですが。
航空自衛隊浜松広報館へ行ってきました
今回技術のお話はありません。
行き
概要
- 目的地は静岡県浜松。
- 250CCのバイクで有料道路以外を使用。 (片道260kmくらい)
- 午前六時出発~午後三時到着。 (九時間くらい。走行時間自体は七時間くらい?)
- 一時間半おきに五分から十分の休憩と、一時間くらいの昼食以外はずっと走ってました。
- 疲れました。
道
バイク(カワサキ Z250)
広報館
写真 外の写真しか貼ってません。
感想
- 1日遊ぶには良いところでした。
- 広報のためか、10分間隔くらいで飛行機が飛んでます。(正直これを見るのが一番楽しかった)
- 中に大掛かりなフライトシミュレーター(飛行機の操縦席だけ切り取って、前面に飛行画面のスクリーンを置いた機械)があったので、やらせてもらいました。(無料だけどその場での予約が必要)結果はタイトルから推して知るべし。
- 撮った写真を使用して良いか確認した際、広報館の人と話す機会がありました。柴田恭平さんに雰囲気が似ていたので、間違いなくこの人は空飛ぶ広報官の人のモデルだと重いましtが、まったく違う人でした。でも格好良い人でした。(写真はありません)
帰り
- 写真
- 楽しかったのはここまで
- 行きとほぼ同じ道を通って帰宅。
- GWの渋滞にはまって暑さに耐えました。頑張った。そして私は帰ってきた。
フォームAPIの続き6
Ajaxを使用したフォーム要素の変更
Drupal6ではフォーム要素のうち、AHAHプロパティを
使うが、Drupal7ではAjaxを使用するようになっている。
以下の例では、Ajaxを使用してSubmitボタン押下時に
アニメーションを動かすようにする。
アニメアイコンを追加
1.Formの定義
<?php /** * Hook_menuの実装 */ function ajax_test_menu(){ $items['ajax_test'] = array( 'title' => 'Ajaxのテスト', 'page callback' => 'drupal_get_form', 'page arguments' => array('ajax_test_form'), 'access arguments' => array('access content'), ); $items['ajax_test/fade_js'] = array( 'page callback' => 'ajax_test_fade_js', 'type' => MENU_CALLBACK, 'access arguments' => array('access content'), ); return $items; } /** * フォーム定義 */ function ajax_test_form(){ $form['target'] = array( '#type' => 'markup', '#prefix' => '<div id="target">', '#markup' => t('ボタンをクリックすると幸せな気分になれますが、それは幻想です'), '#suffix' => '</div>', ); $form['submit'] = array( '#type' => 'submit', '#value' => t('クリックしてね!'), '#ajax' => array( 'path' => 'ajax_test/fade_js', 'wrapper' => 'target', 'method' => 'replace', 'effect' => 'fade', ) ); return $form; } ?>
2.コールバック関数を定義
<?php /** * Ajaxを追加するためのコールバック */ function ajax_test_fade_js(){ $output = t('FADE!'); drupal_json_output(array('status' => TRUE,'data' => $output)); } ?>
首尾一貫しない私の生き方
■「生き方」(稲盛和夫著)読み始め
___________________________________________________
表題の事もあり、言動も一致しない自分に嫌気がさしてきたので、これを読みます。
前回の反省を踏まえて、今回は本書のプロローグをちゃんと読みました。
本書の目的は「人生を充実したものにするためのヒントを得る」ことで、
そのための手段として、稲盛さんのこれまでの経験から、
「人間の生き方について真正面に、忌憚の無い意見を言う」事だそうです。
プロローグを読んでいるだけで心を蝕まれる気がしたのは、私の心が汚れている
せいでしょう。
それでも、何か一片でも得られるものがあるかもしれませんので、最後まで
読み進めたいと思います。
技術ブログはお休みではないので、進めたら合間に書きます。
知識は失敗より学ぶ
■失敗の本質読み終わり
とある上司が読んだことあると聞き、購入しました。
ジョン・ハンター曰く「外科医師が成功と失敗を書に記せなければ
外科技術の向上はない」といったとも言われますし、タイトルに
期待して読んだのですが、本の目的を理解せずに読み始めるのは
失敗の元だと、読み終わって、これを書いている時に気づきました。
(実に四ヶ月近くかかりました)
序章に書いていましたが、この本の目的は「組織の失敗を解読する」
ことであって、個人的な考え方やら実践方法を教えてくれるものではありません。
あと凄く読みづらい文章でした。ここの文章の方が読みづらいですか?そうですか。
読み終わって覚えているのは、話し合うって大事だなということくらいです。
感想がこれだけであんまりなので、下に概要と感想の追記を書きます。
間違ってても責任持ちません。
- 序章
・この本の目的と手段
・目的:大東亜戦争における日本軍の負け方から、組織の欠陥を抜き出して、
組織的な失敗を解読する。
・手段:
①6つの事例から、日本軍の組織的欠陥を抜き出す。
②①の内容を整理して、米軍の組織的特性と比較する。
③①②を踏まえて、日本軍の組織的欠陥を理論的に考察する。
また、現代組織にその欠陥が反映されているかも考察する。 - 一章
・6つの作戦失敗事例
それぞれの事例の作戦目的や経過を説明して、アナリシスという形で
振り返りを行う。
→すべてに一環しているのは、おれの空気を読めという感じの人が
出てくること・・・。 - 二章
・一章で抜き出した欠陥要因を、戦略上と組織上に分けて分析する。
→とにかく日本軍はひどいという点がこれでもかと挙げられる。
(それがこの章では目的なんでしょうが・・・)
あと、目的が不明確で技術体系が一点豪華主義というところは、
なぜかすごく納得できました。 - 三章
・日本軍が欠陥要因を持つようになった戦争への適応方法と、
環境変化へ適応できなかった理由を考察する。
それと現代組織へその欠陥が反映されているか考察する。
→何かの本でも読みましたが、とにかく前例を重視する。
新しい手法が結果を出しても、それを無視して過去最もうまく
いった方法を採用し続けるだそうです。
はい。私も時々現実を無視します。(^^
フォームAPIの続き5
form再表示の際にform_stateの値を使用する方法
formを再構築させれば良い。
具体的には、hook_form_submitの中で
$form_state['rebuild'] = TRUE;
を定義してやればよい。
Formが再表示する際にカウントアップ
1.Formの定義
<?php /** * hook_menu()の例 */ function multiform_menu(){ $items['multiform'] = array( 'title' => t('Multi Page'), 'page callback' => 'drupal_get_form', 'page arguments' => array('multiform_exampleform'), 'type' => MENU_NORMAL_ITEM, 'access arguments' => array('access content'), ); return $items; } function multiform_exampleform($form,&$form_state){ $step = isset($form_state['values']) ?(int)$form_state['storage']['step'] : 0; $form_state['storage']['step'] = $step + 1; $form['indicator'] = array( '#type' => 'fieldset', '#title' => t('Step @number',array('@number' => $step)) ); $form['submit'] = array( '#type' => 'submit', '#value' => 'submit' ); return $form; } ?>
2.Submit関数を定義
<?php /** * */ function multiform_exampleform_submit($form,&$form_state){ $form_state['rebuild'] = TRUE; return; } ?>
これを表示して、Submitを押すと、
(初期表示)
(Submit1回目)
(Submit2回目)
カウントアップされる。
php $form_state['rebuild'] = TRUE;
を設定していると、
Submit後にFomrが再構築される。(=form_stateの値がmultiform_exampleformで使用
できる)
ただそれだけです。
フォームAPIの続き4
form_alterへの復讐
hook_form_alterの実装を試します。
作成されたFormに変更を加える技です。
本来は既存のFormを変更する際に使われますが、
ここでは新しく作ったFormにわざと変更を加えます。
既存のForm情報を表示
1.formファンクションの最後でdebug($form)にてform内容表示。
(ちなみにこのDebugファンクションは適当なソース上に書いても
、配列を引数にしても中身をきれいに表示してくれる、
ものすごく優秀な子です)
<?php /** * フォームを定義する */ function simpleform_nameform() { $form['user_name'] = array('#title' => t('あなたの名前'), '#type' => 'textfield', '#description' => t('あなたの名前を入力して下さい')); $form['animal'] = array('#prefix' => '<hr />', '#title' => t('動物'), '#type' => 'fieldset' ,'#collapsible' => TRUE, '#collapsed' => FALSE, '#description' => t('ここには動物しかいない!'), '#suffix' => '<div class="privacy-warning">' . t('この情報は公共性のある情報だ') . '</div>'); $allowed_keys = array(t('家のカギ'), t('会社のカギ'), t('銀行のカギ')); $form['keys'] = array('#type' => 'textfield', '#title' => 'カギ', '#allowed_keys' => $allowed_keys, '#element_validate' => array('simpleform_keys_validate')); $form['homestay'] = array('#title' => t('とまる場所'), '#type' => 'textfield', '#description' => t('泊まる場所を記す場所')); $form['submit'] = array('#type' => 'submit', '#value' => t('Submit')); // フォーム内容を表示 debug($form); return $form; } ?>
フォームに用意されているフィールド、submit、validateの情報が 表示される。 keysフィールドにはsimpleform_keys_validateが設定されている。
2.hook_form_alterを実装
フォームID_form_alterで実装すると、そのフォームIDが呼び出される際だけ
このファンクションも呼ばれる・・・らしい。
<?php /** * hook_form_alter実装 */ function simpleform_form_alter(&$form, &$form_state, $form_id) { // validateを追加 $form['#validate'][] = 'simpleform_test_alter_validate'; } /* * Validate */ function simpleform_test_alter_validate($form, &$form_state){ if(!isset($form_state['values']['homestay'][0]['value']) && empty($form_state['values']['homestay'][0]['value'])){ form_error($form,'test alterエラーのテスト'); } return $form; } ?>
これでSubmitしてみると。
ちなみにさきほど追加したValidateの中でDebug( debug($form['#validate']);)をしてみると、
Validateが追加されているのが確認できる。
右利きは左手でコップを持たない
Aptana3によるPHPコメント切り替えショートカット
Drupalのhook_form_alterについて学習していましたが、上手くいかないので
題名の記事を書きます。
でもDrupalも続けます。
なぜなら、
こんなこと言っても意味はないかもしれないけど、
やり遂げる可能性はあるんだ(迫真)。
Aptana3の設定
1.ウィンドウ→設定→一般→キーを選択
2.「コメント」で検索して、場合でソートすると、いくつかコマンドが出てくる。
3.いろいろあって邪魔なので、ひとつを残して全部アンバインド。
(ここではCtrl+/を残しました)
4.Ctrl+/で検索して、他で使われているところを削除
5.試してみる。
Ctrl+/
Ctrl+/