インターネット・パソコン Feed

2021年10月 3日 (日)

スマホ嫌いだ

履歴を見てみたら、9月は1件も書いてなかった。

実はCD・LPデータベースのスマホ版で「格闘」していたのです。(今も格闘してます)

【スマホは嫌いだ】

別にスマートフォンが嫌いなのではなくて、スマホで【普通に使える】HTML を作るのが大変なので【嫌いだ】なんです。画面が小さいのが大ネック。

最初に問題になったのが画面の幅が狭い事。適当に改行するとかをするんですけど、1ページがやたらに「縦に長い」になってしまいます。

そこで、ページ内の領域をいくつかに分割して必用なものを表示するように修正。ページ内に「タブ」がある(あるかに見える)Webページがありますが、それと同じやり方(だと思う)で、部分的に表示をOn、Offするようなページを作りました。見かけはタブではなくて「ボタンをクリックすると、それに必用な部分を表示、ですけどね。さほど難しくはないんだけど、面倒。ページ数が多いからねぇ。

さて、次の問題がとっても面倒。

適当に改行したのはいいんですけど、ボタン等が小さくてうまく押せない。ボタンの高さ(style width)を大きくしなくてはなりません。これもロジックは大した話ではないんですが、データベースシステムにある【全部】の text, button, select, checkbox, radio などに対応しなくてはなりません。なんせ数が多いんで・・・(v_v)

今困っているのは <Select><Option> の <Option> なんです。<Select> は style に値をセットすれば意図したように動いてくれるんですが、<Option> は何をやっても手応えなし。調べてみると「表示にOSが深くかかわっている。OSは HTML の Style なんか知らない」からなんだそうです。OSから見れば1つのアプリケーションに過ぎないWebブラウザの仕様なんか知らないのは当然なんですけど、ブラウザ屋さんが自分のアプリ(ブラウザ)の動作を犠牲にしてまでOSに依存する理由がわからない。(手を抜くという理由かなぁ・・・それにしては多くのブラウザが同じ動き、というか動かないというか・・・なんですけど)

というわけで、<select> は所望の大きさに出来たけど、<option> の高さは小さいまま。どうやら簡単には解決できそうにありません。

なぁに、タッチペンを使えばいい。なんですけど、それでいいんでしょうか・・・

<select><option> が思うように動作しないならば、タグ自体を作れば・・・という発想で調べてみたら。つまり、

<html>・・・<body>。。。

<MySelect name=...>

   <MyOption value=... style="height:...">表示文字列</MyOption>

</MySelect>

という風に書けるカスタムタグを作れればいい。XHTML(XML形式のHTML)ならば可能らしい・・・可能であっても、現データベースシステムの表示にかかわる部分全部を作り直さなくてはならない・・・し、何にしても簡単ではない。長い時間をかけて作るとしても、出来上がる前にブラウザ屋さんが「対応しました」てな事になるかもしれないし・・・

というわけで、<option> の表示サイズを変えるのは断念しました。「タッチペンを使ってね」になりそうです。面白くないなぁ。

2021年7月11日 (日)

HTML ページ内タブに似た動作 < div > と < table >(2)

この記事の表題の < div > と < table > には < > と div、table の間にスペースが入っています。前回の「HTML ページ内タブに似た動作 < div > と < table >」も同様です。なぜスペースを入れたかというと、編集画面ではなく閲覧しようとした時の表示が乱れたからです。スペースを入れたら正常に表示されたので、このようにしてあります。

・・・ブログに <div> とか書かれるとは思っていないだろうけど、これ、エスケープもれではないかな・・・


さて、不思議な現象が起こりました。<table> の style display を block とすると <tr> の幅がテーブルの幅よりも狭くなってしまう事があるという現象です。常に起こるのではなく、そうなる【事がある】という事です。どうやらテーブル内に表示される内容によって起こったり起こらなかったりするようです。
style display の初期値は空なので、表示したテーブルに対して style display=''; とすると意図した動きになりました。style display='' がどのように解釈され、どのように動作するのか分かりませんが、意図した動きになったので「良し」としましょう。
いくつかのブラウザで試しても結果は同じなので、仕様の問題なのか使い方の問題なのか????ブラウザの動作は複雑で、パラメータの「相互作用」なんか奇怪なので、こういう事もあるかな、と思います。

2021年7月10日 (土)

HTML ページ内タブに似た動作 < div > と < table >

スマホ版を作っていますが、問題は画面が小さいことです。画面幅が狭いのが問題ですね。昔々の MS-DOS 時代は横幅640ピクセルでしたが、それよりも狭い。そこで適当に改行を入れるなどして幅を狭く作るわけですが、大きな(情報量の多い)ページだと当然極端に縦長になってしまいます。そのページにアクセスした人にとって本当に必用な情報はページ内の一部だけである事が殆どなんですが、「必用な情報」が何であるかは場合によって異なるでしょう。ページを分割してもいいんですが面倒。ページ内にあるパラメータは簡単にアクセスできますが、ページをまたがると HTML のパラメータで受け渡さなくてはならなくなります。


ページ内にタブがあって、タブをクリックすると表示内容が変わるページがありますね。そのようなページは「1つのページ」で、部分的に表示、非表示としているんだそうです。これならばページ間でのパラメータの受け渡しは不要。やってみる事にしました。調べてみると


<div id="ID1">タブ1に対応する表示内容</div>

<div id="ID2">タブ2に対応する表示内容</div>

などとし、表示したい物は style display = block、そうでない物は style display = none とすればOKのようです。なんだ、簡単じゃないかと思ったのですが・・・
Reclib のDBではアライメントのために <table> を多用しています。この方法、今では【推奨されない】そうですが、修正するには工数が大きすぎます。最初にやったのは、適当な位置に <div> </div> を挿入してブロックを作り、それに対して JavaScript で style.display="none" などとする方法です。
<table>

    <div> <tr> <td> </td> </tr>  </div>

    <div> ・・・ </div>

</table>

動かしてみると全くダメ。原因調査のために

<div style="color:red;"><table><tr><td>文字列</td></tr></table></div>

などとやってみましたがダメ。表示される文字列は黒のままで、赤くはなりません。<table><div><tr><td>文字列</td></tr></div></table> ダメ

<table><tr><div><td>文字列</td></div></tr></table> これもダメ

<table><tr><td><div>文字列</div></td></tr></table> これはOK


ググっていたら「DivおよびTableは両方ともブロックレベルの要素です。そのため、ネストすることはできません。」というのが見つかりました。知らなかった、というより、やってみた事がなかった。確かにネストしていますね。でも <td><table>....</table></td> は可能なんです。これもネストしているのでは??何にしても動かないのではしょうがない。


結局 <table> を分割する事にしました。
<table id="table1">   // タブ1で表示するもの

    <tr> <td> </td> </tr> </table>
<table id="table2">   // タブ2で表示するもの

    <tr> <td> </td> </tr> </table>
などとし、JavaScript で table1, table2 の style display を操作するとOKでした。

こんな事は常識かもしれませんが、私にとっては常識ではなかった・・・参考になれば幸いです。

2021年6月30日 (水)

データベース、スマホ版とスピーカー

RecLibデータベースのスマホ版を作っています。

いわゆる「スマホアプリ」ではなく、画面幅が狭い端末でも「使い物になる」HTML を出力するサーバーアプリです。

主要ロジック(検索とか更新とか)は変更なし。幅の狭い画面に合わせて「改行する」とか「規定サイズを超えた文字列は折り返す」とか【だけ】なんで、大したことはあるまいと思っていたのですが、どうして、どうして。

ブラウザの「領域の幅を越えた文字列の処理」が良く分からないし、コレ、ブラウザのバグでは・・・てなのもあるし。style XXX を XXX とすると「文字列は折り返されます」。確かにそうなんだけど、その領域にあるボタンなどは、はみ出して表示されたりするし、ボタンの表示文字列は言語によって変わるし。思っていた以上に面倒。難しいちうよりも「面倒」ですね。でも、何とかする「方法」というか「手口」がつかめてきたので、まあまあ進捗しています。

で、コレのあおりを受けたのが「ESL63復活プロジェクト」。ちっとも進んでいません。こちらも「手口」は見つけたんですが、DBいじりと違って・・・DBいじりは画面単位での作業になるので、半日~数日で結果が出るのですが、スピーカーの方は長い長い作業が進捗するだけ。短期的には「1画面できたぞ」みたいな結果が見えないんですよね。という事で、完全に止まっています。

でもなぁ。やらなくては【聴けない】んで・・・DBが一段落したら(主要なページが出来たら)再開したいですね・・・この2つを同時にやろうとしたのが、そもそも間違いのような気はしますが・・・どちらも注文を受けた「仕事」ではないわけで、まっ、いいか。

さて、来週の火曜日、コロナワクチン接種2回目です。1回目は何ともなかったけど2回目は酷い目にあったなどという報道もあるので、接種後の状態を書くことにします。書込みがなかったら・・・相当ひどい目に遭っている・・・単に怠けているだけかもしれませんが・・・

2021年5月21日 (金)

データベース:スマホ用バージョンを作り始めました

RecLib データベースのスマホ用というか「画面が小さい」端末用のバージョンを作り始めました。

私、スマホは嫌いです。モバイルが必用ならば、それ用の端末を用意していたので、スマホでモバイル・・・はなかったのです。(リタイヤしたのでモバイル端末は不要。PCは手元にあるけど通信インフラは解約)。今手元にある「モバイルできる機器」はスマホだけ。

スマホが嫌いな理由は

・画面が小さい。(一度に表示できる情報が少ない)

・めんどう。特に文字入力が面倒。「あ」をタップして、もう一度タップすると「い」になって・・・やっとれん。キーボードの方がはるかに簡単。・・・皆さま、こんなもの、よく使っているなぁ・・・と思うんですけど・・・でも、それが主流なんですよね。

1年ほど前に携帯電話屋が「2Gサービスは終了する。スマホに買い替えろ」と言ってきたので仕方なくスマホを買いましたが、いまだに通話以外には殆ど使っていません。

で、スマホで RecLib データベースをアクセスしたら、とうてい使える状態ではない。大きい画面前提で作っているので、縮小表示された画面は小さすぎて何がなんやらよ~わからん。ズームするにしても、必用な情報がどこにあるのか分からん。

作った本人でさえ「必用な情報にたどり着くには上下左右どちらにスクロールすべきか」・・・と考えてしまうんですね。これでは使えない。というのは、ずいぶん前に分かっていたんですけどね・・・スマホは嫌いだ・・・

という事で「小さい画面用バージョン」を作り始めました。左右スクロールなし、上下スクロールだけで必用な情報にたどり着ければいいだろう・・。。

第2版をベースに作り始めました。ベースは第2版(という事は、第2版は「比較的マシ」な状態になった)。作業を初めてみると面倒なこと。画面幅が小さいというのが、これほど問題だとはね。なにしろ、昔々のMS-DOSの頃のPCの画面幅(640ピクセル)よりも狭いんだから。

デバッグはPC上のブラウザのウインドウ幅をいっぱい縮めてやっています。横幅は485px。これより幅の狭いスマホ、けっこうあるみたいですね。まぁ、ある程度出かがったら「本物のスマホ」でテストするか。

今のところ動いているのはログイン、音楽家辞典の一部だけですけど、まぁ、気長にお待ちくださいませ。

2021年4月27日 (火)

ワクチン接種券が届いたけど

コロナワクチンの接種券が届きました。電話またはインターネットで予約するように書かれていますが・・・インターネットでの予約は各医療機関のページにアクセスして行うようです。

国レベルのポータルサイトがあって、都道府県、市町村、日時などを選び【予約】をクリックするだけだと思っていたのですが、各医療機関・・・とは・・・あぜん。

こんなシステム、オレに作らせたら「3日で出来るよ」とは言わないけど、まともなソフト屋にとっては難しいとは思えません。ワクチンの在庫とか流通状況とかを確認するのが多少面倒だと思うけど大した事でじゃないでしょう。在庫、流通のデータベースに問い合わせるだけ・・・まさか、そういうデータベースがないのでは・・・

インターネットで予約を受け付けたい医療機関は自前でシステムを作れ(買え)とでも言うのか。まったく何を考えているのだ。国レベルで作るべきではないのか。

結局、電話で予約になりそうなんですが、混雑してつながらないとかありそう。やれやれ

予約は5月10日から(岡山市)、今日は4月27日。2週間ある。今から作っても間に合う・・・かな??

2021年3月14日 (日)

Windows 10 Version 1909 タッピングを禁止する方法

タッチパッドでポインタを移動している時、指がパッドから離れたりするとタッピングしたと認識されてしまう事があります。これが嫌なのでタッピングを禁止していたのですが、Version 1909 へのアップデートで復活してしまいました。ったく。

Version 1909 でタッピングを禁止する方法が分かったので書いておきます。

【スタート】~【設定】~【デバイス】~【マウス】~【その他のマウスオプション】

または

【スタート】~【Wundows システムツール】~【Control Panel】~【マウス】

とすると、マウスのプロパティが開きます。

【タッチパッド】タブで~【クリックしてタッチパッドの設定を変更します】をクリック

左側のペインで【タッピング】を選び、チェックボックス【1本指タップ】と【2本指タップ】のチェックを外す。【保存】をクリックする。

これでタッピングを禁止する事ができました。

それにしても Windows Update が行われるたびに、そこらじゅうの設定がデフォルトに戻されてしまうのは嬉しくないなぁ。

2021年3月 4日 (木)

Windoes Update ついに成功

ついに Windows Update に成功しました。

失敗が続いた原因は【デバイスドライバが古かった。最新 Windows には使えない】でした。NGだったドライバは

Realtec HD audio ドライバと Realtek(R) PCI(e) Ethernet Controller ドライバ

何故こんな事になったかというと、

・問題のPCは Windows 8.1 がプリインストールされていた。PC メーカーは Windows 10 での動作確認をしていない。(Windows 10 の動作は保証していない)

・Microsoft が Windows 8.1 から Windows 10 への無償アップグレードを行った時、Windows 10 をダウンロード、インストールしたら動いた。から、今まで使っていた。

・Realtek のドライバが古かったのだけれど、RealTec のサイトには最新ドライバはない。OEM 先の PC メーカーから入手せよ、とのこと。

・問題のPCは、メーカーが Windows 10 の動作を保証していない。Windows 10 用の最新ドライバがない。

・Windows Update とかデバイスマネージャのドライバ更新とかは、Microsoft, デバイスのメーカー(今の場合 Realtek)、PCメーカーのサイトに新しいドライバがなければ「適切なドライバが使用されている」とするようです。Windows Update は今インストールされているドライバが「適切なドライバ」であるとして動くわけですが、実は古いドライバだったわけですね。だから失敗した。

さて、どうやって最新ドライバを入手するか。

ググりまくったあげく「アスカブログ」「Realtek 製オーディオの最新ドライバを入手する方法」というページを見つけました。

https://ac-as.net/realtek-audio-latest-driver/

このページに「Station Drivers」というサイトが紹介されていました。

 https://www.station-drivers.com/index.php?lang=en

Realtek に限らずドライバを集めたサイトのようです。オーディオドライバ以外にもいろいろなドライバがありました。このサイトから適合しそうなドライバをダウンロード、インストールした後【アップデートのチェック】を行いました。

・ダウンロードする。zip ファイルだった。適当なフォルダへ解凍する。

・インストールする。インストール手順は「アスカブログ」に書いてありましたが、ネットワークドライバは多少違っていました。解凍して出てきた ....exe をダブルクリックする点は同じでした。

・再起動して動作を確認する。私の場合、問題なく動作したので「動かなかったら元に戻す・・・どうやって?」の情報はありません。

【この作業は自己責任で行ってください。誰も保証してくれません。私も保証などできません】

・【設定】~【Windows Update】~【更新プログラムのチェック】を行う。再起動を求められたら再起動する。

・失敗すると、元のバージョンの Windows に戻されてしまいます。

失敗したら、何が原因かを調べなくてはなりません。

c:\$Windows.~BT\Sources\Rollback\setupapi.dev.log を読むのが助けになるようです。ドライバが古いならば

! sig: Error 0x800b0003: The form specified for the subject is not one supported or known by the specified trust provider.

といった行があるように思えます。このような行がない場合は、それ以外の問題があると思われます。私の場合、最初のうちはこのような行は記録されていませんでした。(それ以前の問題で落ちている)。その場合【設定】~【Windows Update】~【トラブルシューティング】が有効だったように思えます。

「ドライバが古い」というログが記録されるようになったのは、新しい Windows をインストール~再起動した時、48%程度で落ちるようになってからのようです。

2021年3月 2日 (火)

Windoes Update 大トラブル。あきらめたと言いながら、まだやってる。

電源オン、ログインした状態で放置していたら、2021-03-02 10:35 ごろ ウラでのダウンロードが終わり「再起動せよ」となった。再起動する。 やはり 48% で落ちた。 インストールしようとしたのは 10.0.19042 (20H2)

やれやれ。もうログを見る元気、ない。けど、見てみた。
C:\$Windows-BT フォルダが作成され、ログ等が格納されていた。
C:\$Windows-BT\Source\Rollback\setupapi\api.log によると
! sig: Unable to create hash for file!! sig: Error 0x800b0003: The form specified for the subject is not one supported or known by the specified trust provider.
ドライバが古い。サポートされていないんだと。

このまま放置してたとしても、

・OSのバージョンが古いから自動更新しよう。

・失敗する物がダウンロードされる。

・再起動すると失敗、ロールバックされる。

・OSのバージョンが古いから自動更新しよう。

動くものが用意されるまでは上記のような無限ループになりそうな気がする。

setupapi.dev.log によると落ちているのは PCI\VEN_8086&DEV_0F04
これ、High Definition Audio コントローラなんだよね。Ver 1809 のドライバの供給元は RealTek

RealTek の Web ページを見ると「ドライバはOEM先から入手せよ」、HP のドライバダウンロードのページを見ると「シリアル番号を入力せよ」

問題のPCは Windows 10 の動作確認をしていない機種なので、当然サポート対象外。なので最新ドライバはない。という事は、動くものは決してリリースされないのでは?

それでも Celeron, Realtek を使ったPCが全滅とも思えないのでググってみたら 

「Realtek 製オーディオの最新ドライバを入手する方法」というページが見つかった。

https://ac-as.net/realtek-audio-latest-driver/

問題のPCに適合するものがあるかどうか分からないけど、やってみよう。今日は疲れたので、明日以降ね。

それにしても、Windows 8.1 から 10 へのアップデートを可能にしたからには、最後まで面倒を見るべきでしょう、Microsoft さん。

2021年3月 1日 (月)

Windoes Update 大トラブル。あきらめた(v_v)

Windows 10 1809 から 1909, 20H2 へのアップデートが失敗する。

【スタート】~【設定】~【Windows Update】とすると、サポート終了が近いから最新版に更新せよという意味のメッセージが表示されるのですが、その最新版への更新に失敗し続けています。

もう3週間くらいも格闘していたのですが、あきらめました。

PC は HP 14-r237TU S/N CND5034PDB。購入時は Windows 8.1 がインストールされていました。HP の「Windows 10 の動作を確認した PC の一覧」には入っていません。でも、8.1 から 10 への無償アップグレードは何の問題もなく行えたし、今でも Ver 1809 は問題なく動作しているんです。

手動で【更新プログラムのチェック】を行うのと、バックグラウンドで自動的にダウンロード、インストールするのは異なっている「気がする」ので、そして、もうすぐ更新の時期だと思うので、当分は電源オンの状態で放置する事にしました。結果は、ここに書く予定です。

Microsoft や HP への問合せはしていません。Web にある以上の答えは返ってこないのは知っているし、HP が動作確認していない PC なので「サポート対象外」とされてしまいます。(私、元SEです。こんなの、真面目にサポートしていたら商売にならん)

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

何故あきらめたかと言うと、原因が分からなかったです。XXの場面で、XXをXXしようとした時、XXがXXであるので失敗した、というパターンがつかめないのです。ある場面で問題が起こって、それをクリアすると別の問題が起こって、更に試行すると以前の問題が再発したり・・・。何なんだ、これは。

それにしても「最新版に更新しろ」というメッセージを出しておきながら更新できないとはねぇ。

という訳で「Windows Update 失敗」ネタはこれでおしまい。

明日からは気を取り直して「RecLib DB のお遊び」と「QUAD スピーカーの修理」をやるか。。。明日からではなくて、少しお休みするかもしれませんが。。。