_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
◇ 台風も過ぎ、もう秋ですね ・・・・・・ 第707
☆モバイルオフィスの作り方 ★
Vol.0707
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
□ とても素晴らし技術
□ とっても偏った知識
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ とても素晴らし技術
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3連休です。シルバーウィークというのは敬老に日も含みますからジジババウ
ィークだと思っていたのですが、実はゴールデンウィークの対語だそうです。
◇ びっくりしました
シルバーウィークの初日は若者のプログラムの手伝いで、ちょっと込み入った
インターフェースを作っていました。
これは8年ほど前にデスクトップアプリケーションとして作ったプログラムをH
TMLに置き換える案件だったのですが、問題が2個出てきました。
1. 人の氏名を入力した際にヨミガナを自動で生成したい
2. よく入力するテキストボックスで過去の履歴を表示したくない
この2点を若者からリクエストされていました。
HTMLではIME(漢字変換)の制御は出来ないと聞いていますので1の案件は即却下
したのですが・・・・
それが出来るのです。お客様は以前にお使いのデスクトップアプリでは人の名
前を入力した際に自動的にヨミガナが生成されるので今度のシステムでもご要
望です。
しかし元々漢字変換を操作するのは極めて難しく、私は諦めていました。
◇ 漢字変換のOn/Offは制御できる
MicrosoftのIEならImemode=Onとか言った制御が可能なことは知ってましたが
先のないIEだけの機能を使うことはしませんでした。
世界標準の推奨機能だけでプログラムを作ろうと決心していたからです。
だから今私が作っているプログラムの作動要件は”Yahooが見えること”と言
うおおらかな条件で稼働します。
IpadでもLinuxでも稼働するのです。
ところがIMEをだけは世界標準とは行きません。そもそもアメリカやヨーロッ
パにはIMEをはないからです。
ところが例えばテキストボックスにカーソルが移動し得た際にそのテキストボ
ックスの設定で"テキストボックスの名称.setAttribute("type", "tel");"と
するとカーソルが来た瞬間にIMEをはOffになります。
このタイプには本当はNumberと言う設定もありますが、カンマが入らなかった
りとても堅苦しいのであれこれ試して”tel”がほどよいことが分かりました。
これだけでもえらい出世で、以前作っていたデスクトップアプリケーションに
ひけをとらないインターフェースが出来たのです。が・・・・・
ヨミガナは他のお客様からも要望をいただきながら、諦めていたのです。
◇ しかしあった!
ところが以前にはまったく制御できなかったIMEがOn/Offぐらいは制御できる
ようになったのでもしかしたら・・・と思って調べたらあったのです。
https://arts-factory.net/autokana/
私の苦手なJQeryの拡張機能なのですが、サンプルページを見ると確かに名前
を入力するとカタカナでフリガナが表示されます。
こんなことが出来るのはVisyualStudioで作るデスクトップアプリかExcelぐら
いだろうと思っていたので腰を抜かすほど驚きました。
早速、自身の実験用プログラムにJQuery本体とこのjquery.autoKana.jsを接続
し、試したところたった2行のプログラムでフリガナをふってくれます。
このjquery.autoKana.jsはGitHubからもらってくるのですがダウンロードの方
法が分からず、テキストをコピーして自身の環境でエディターで貼り付けて作
ったので内容も見たのですが、説明を除くと150行ほどの極めてシンプルなプ
ログラムです。
それでこんな奇跡を起こすとは・・・・
◇ IME入力中の文字列はとれない
IME入力中の文字列はJavaScriptのイベントを使っても"IMEをで入力中"と言う
特殊なコードが返ってくるだけで私の知っている技術だけでは判断できませ
ん。
ところが、コードではなくて特別のプロパティーを取得すると”どのキー”が
押されたかは分かるようです。
それをローマ字入力しているとして、かなに変換しているようです。
私のまったく知らない技術で、世の中は広い!とつくづく感嘆させられまし
た。
そもそもIME入力中のキーはとれないと知った時点で私はそれ以上の調査をせ
ず、出来ないものとして断念していたのです。
その上、JQueryは何が出来るのかとか言ったことがブラックボックスなので意
識的に避けてきました。
ちょっと食わず嫌いだったかも知れません。
大いに反省するところです。
◇ 逆に入力候補が消せない
比較的簡単だと思っていたテキストボックスの入力候補を止める方法は現時点
では見つかっていません。
これは”autocompleteを無効にする”という件枠ワードで腐るほど出てきます
がどうやら今は出来なくなっているようです。
本当に迷惑な話で、かなり重要なことなのですが必ず以前入力した文字列がリ
ストで出てきます。
こちらは出るのは仕方がないものとして実用上問題にならないように改善する
しかありません。
世の中は広くてすごい技術を持っている人がいます。
特にHTML5でIME関連の操作をする技術は日本独自のものですから日本の中でしか
探すしかありません。日本も私が思っているより遙かに広くて、すごい人がいる
ものだと感嘆した次第です。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☆ とっても偏った知識
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
今回の件でも分かるように私の持っている知識は極めて狭いのです。
◇ 意識的に広げない
実は私は意識的に知識を広げません。自身が作らないといけない企業の業務シ
ステムに関係のないと判断した技術はまったく見向きもしません。
かれこれ40年以上プログラマをしていながら使うプログラミング言語はほんの
数点です。
・ Microsoft VBA
・ Microsoft VisualBasic
・ Microsoft PowerShell
・ PHP
・ JavaScript
たったこれだけです。今ソフト会社の就職の面接を受けたらあきれられるほど
の幅の狭さです。
特にVBとVBAは私の出身母体の故郷の言語ですが、いまではあまり使わないの
であまり自信がありません。
PowerShellは社内のサーバーがプリントを受け持つ際にPowerShell製のプログ
ラムで待ち受けますのでそれなりに使いますが、比較演算子(=、<>、!=)さえ満
足に覚えていません。
PHPはLinuxサーバー上でデータベースの検索や登録するエンジンを作りますの
でこれもかなり真剣にやりましたが、ふだんは出来たエンジンを使うだけなの
でそれほど自信があるわけでもありません。
今ではJavaScriptがほぼメインのプログラミング言語でこれは毎日使いますか
らかなり強いです。
とはいえ、今回のようなヨミガナを自動生成する方法などにも精通しておら
ず、ちょっとため息の出る思いです。
でもそれは意識的にやってきたのです。
◇ たくさん知ることが強くなることではない
私は元々それほど賢い人間ではないので自身のリソースを不要だと思う知識の
ために使いたくなかったのです。
例えば新しプログラミング言語を習得しようと決めるときには自身のやりたい
プログラムの中からもっともやっかいなものを作ってみることをします。
PowerShellを学習したときもSpeedServeという通信サーバーを実現するプログ
ラムを作ってみました。
このプログラムをもし作ることが出来たらPowerShellは私が欲しい機能を一通
り持っていることになります。
1ヶ月ほどかけて毎日毎日SpeedServeの制作に励み、ついに稼働したのでPower
Shellを自身の道具として採用しました。
JavaScriptの時は納品伝票や売掛台帳、請求書を作ってみました。
これも2ヶ月ほど苦しんだ後、私が使いたい機能はすべてあるか、または作る
ことが出来ると分かったので主力言語にしたのです。
一方でPowerShellもJavaScriptもPHPもこのテストが終わった段階で、そのと
きの私の要望は満たしているのでそれ以上知識の幅を広げようとは思いません
でした。
それよりはたくさんのプログラムをすることで慣れる方が重要だったのです。
そしてそのことは今も変わっていません。
◇ 手になじむ少数の道具で戦う
私は新しい武器や高機能な武器が戦いの現場で有効だとは思っていません。
自身が目隠しをしていても操作できるほどよくわかって慣れた道具を好みま
す。
お客様の仕様というどうしても外せない戦いに勝利するためには広範囲な知識
よりも使い慣れた道具の方が有効だと経験上知っているからです。
そしてたまにGoogleでちょっと検索したら出てくるような新機能をまったく知
らないというとんでもない目に遭います。
とはいえ・・・
以前お客様からある入力箇所の文字列の一部の文字の色を変えたい・・・と言
うご要望をいただき、インターネットを探し回りましたが出てきた解はたった
一つ、Twitterで@を入力した後の文字が反転すると言う記事だけでした。
この技術はとても面白くて、まだJavaScriptにそれほど慣れていなかったので
すが、入力用のテキストボックスと、表示するテキストを別にするというそこ
で書かれている方法で実現しました。
そして、コントロール(テキストボックスなどの部品)を同じ位置にかぶせると
言う技術を学んだのでExcelのようなSpreadもつくれるのではないか・・・と
思って試したところうまくいったのです。
お客様から強力に要望されると世界中を探し回り、なんとか見つけてくること
もありますし、それが出来ると必ず強くなれます。
自身の腕が落ちることを恐れてあまり手広く技術開発をしないのですが、やはり
たまには広く世間に目を向けないとだめですね。
今度はWebSocketにチャレンジしてみようと思っています。
━━━━━━━━━━━━━━━━━━━━━━
[モバイルオフィスの作り方]はサボのマナベが日々気づいたこ
とや思ったことをお天気の良い日の縁側に座ってポツリポツリと
お話しするようなマガジンです。
ご意見などもあることと思います。
もしご意見等がありましたらお寄せいただければ随時話題にして
いきたいと思います。
新規登録・解除はこちら
↓
==========================================
★発行責任者:
(有)ファクトリー・サボ
真鍋隆彦
兵庫県神戸市垂水区東舞子町9-9
マリタイム舞子501号
Tel:078-787-3602 Fax:078-787-3619
☆ソフトウェアーギャラリーに遊びに来てください
==========================================
◎このメルマガに返信すると発行者さんにメッセージを届けられます
※発行者さんに届く内容は、メッセージ、メールアドレスです
◎モバイルオフィスの作り方
の配信停止はこちら