ExcelからWebサイトにアクセス

こういうことができることはずっと知らなかったのですが、ExcelのVBAから、
Webサイトを取り込むことができます。

Webサイトの中には、APIと称して、JSONでデータを公開しているサイトが多いので、
そういったサイトを参照して、簡単にExcelデータに変換できそうです。

以前は、クラウドワークスでAmazonの商品リストをExcelに、という仕事を見かけ
のですが、これを使えばそれほど難しいことではないかも、と思っています。

ということで、今の仕事で何かに使えないかと考えているところです。

実は、これを使う予定だった入力フォームは、MS Access化することにしよう、という
話をしているので、使えなくなったということも理由ですが。でも一番の理由は
おもしろうそう、という点でしょう。

パソコン教育って

中学生になって、4月からパソコンを使っている子供から、ついにと言うべきか、それともやっとと言うべきか、プログラムってどうやって作るの、と聞かれました。まあ、詳しく聞くとホームページに興味がある、とのこと。

今の中学校では、技術の時間にパソコンに触れる時間があるとのこと。きっと、ホームページの話も出たのでしょう。会社のWebページの作成は、産業として多くの雇用を生んでいるのは間違いありません。

とはいえ、プログラムが即Webページに繋がるかと言うと、そう簡単ではないあたりが難しい。これは、のこぎりの使い方を習ったら、本棚を作ってみよう、という具合にはいかない。
きっと、教える先生も困っているでしょうね。

プログラム学習が取り入れられているイギリスでは、低学年にパソコンに触れるものの、その後の学習に役に立っていないことが問題、とされていました。プログラムに興味を持って本格的に取り組む子にとってはいい機会ですが、多くの子にとっては遊んだ体験でしかないそうです。

中学生くらいになると、実際の仕事でどうやっているかに興味があると思うのですが、プログラムは解りにくい。やっぱり、Webブラウザで動作するページを1枚作ってもらうことかな。

しかし、雛形を用意して、一部だけ修正して動作するようにするにしても、ハードルが高い。
教える方も教わる方も苦労することが見えている。これで興味を失ってしまっては、もったい
ないし。

従来のプログラム学習の延長ではなく、興味を持続できる何かいいアイデアが必要な気がする。作っている途中途中に達成感が味わえる何かがあるといいのかな。その点、Syntax error に悩まされるプログラムは、やっぱり不利だね。

ネットワークは重要

派遣先の大学で、今使っているメールシステムのサポート切れが迫っており、マイクロソフトのOffice365に移行する予定です。これで、Office が使えてメールもクラウドのファイル共有もできる、ということでいいことばかりですが、管理者から見るとそうとは言い切れません。

それでなくてもインターネットの利用が増えているので、繋がりにくくなっています。今年の前半、とくに3月と4月はひどい状況でした。契約を増やすことでなんとか一息ついている状況です。クラウドのファイル共有の利用が本格化したら、かなり深刻な事態になりそうです。

ということで、ネットワークやファイルサーバーを管理している会社の担当者と打ち合わせしました。やはり、回線を増やしましょう、ということに。

クラウドに移行するのだから、さらにネットワークの利用が増える。だからその分をまかなうために、回線を増やす。論理が合っています。それで、それまで内部で運用していたメールサーバーにかかる費用が無くなりトータルでコストダウンできればさらにいいのですが、そこは、これから細かい仕様を検討することに。たぶん、これでいけるでしょう。

ついでに話が出たのが、再来年の投資の話。ネットワークの基幹システムの入替時期なのだそうです。その中心になるのがL3スイッチですが、これは、高い。これだけでうん千万円の予算を組んでおく必要があります。しかし、これが無いと授業ができないのが現実。

電気や上下水道と同じように、今の社会に必要なインフラですね。

無線LANでトラブル発生

先週始め、派遣先の大学で、事務職員が使ってる共有サーバーが参照できない現象が発生した。

これが不思議なことに、有線では普通に繋がるのだが、無線からアクセスしようとすると繋がらない。これはサーバーとクライアントPCをチェックしてもどうしようもない。すぐに、ネットワークのメンテナンスを担当してもらっている会社にヘルプ要請した。

その会社のエンジニアにリモートで入ってもらって確認してもらったが、やはり、原因が特定できない。ということで、わざわざ仙台から山形まで来てもらって原因解析をやってもらった。

これ、結論から言ってしまうと、無線に、偶然サーバーと同じIPアドレスが定義してあるデバイスが繋がったため、無線側のみアドレスが重複していました。

こちらで問題の切り分けをやって、次のことが解っていました。
・特定のサーバーに、無線LANからのみアクセスできない。
・無線LANを使う全てのPCが、そのサーバーにアクセスできない。
・無線LANを使う全てのPCが、インターネットに接続できる。
・無線LANからは、同じセグメントにある別の共有サーバーにはアクセスできる。

これをわざわざ山形までやってきてくれたエンジニアに伝え、無線LANコントローラのログをチェックしてもらったところ、IPアドレスの重複が判明しました。このIPアドレスを、無線LANコントローラから削除すると、普通に使えるようになり、無事復旧しました。

このお騒がせなデバイスは、教員が使ったiPadだということが解っています。パソコンに関しては、事務局からこういう設定で使ってください、という通知などを連絡しているので、こんなことは無いのですが。自宅で固定IPを設定して、すっかり忘れて授業に持ち込んだのでしょう。インターネットに繋がらないので、すぐに固定IPから自動割り振りに直した形跡もあったそうです。

無線LANは、自動でIPアドレスが割り振られて使うのが一般的ですが、認証さえできていれば固定IPでも使えます。大学の無線LANでは、一度割り振ったIPアドレスを保持して、無線の接続が切れても、簡単に再接続できるようになっていました。そのせいで、iPadの重複したIPアドレスが、無線LANコントローラに残ってしまいサーバーに繋がらない現象が発生しました。

これを避けるには、無線LANコントローラ側でそんなIPのデバイスを接続拒否すればいいのですが、MACアドレスなら拒否できても、IPアドレスでは拒否できないのかも。うーん、ネットワークはやっぱり難しい。

スパムメール

自宅で使っているメールアドレスに、心当たりのない請求に関するメールが届いていた。あて先は自分のメールアドレスに間違いないが、CCにいろいろなあて先が書いてある。フィッシングメールだ。

どこからメールアドレスがバレたか解らないが、うんざりした気分に。早速、ネットで調べると、このメールについての詳細が書いてあった。リンクをクリックすると、ファイルがダウンロードされ、それをWebブラウザで開くと罠にはまるらしい。

このメールは即刻ゴミ箱へ。
さらに、メールをチェックしていたら、さらに、2通同じようなメールが届いていた。同じようにゴミ箱へ。

こんなことになるのは、sendmail の仕様が古いままだからでしょう。どこからのメールでも中継する仕様は、そろそろ止めてほしい。SSLで使われる証明の無いサーバーからの転送はブロックしてもいい時期なのでは、と思ってしまう。

Aviutilのインストールって難しい?

どうも、このサイトを含む運営会社のサーバーがDDOS攻撃を受けてたらしく、一週間くらいアクセスできませんでした。こういうの、無くならないどころか増える一方です。根本的に、何か考える時期かもしれませんね。

さて、本題に。

子供から自分のパソコンに、Aviutilをセットアップしてほしい、とのリクエストがあった。ちょうど、カゼで頭が痛かった日だったので、やり気にならず、そのままに。

4月にパソコンを買ってあげて、すぐにセットアップしてやったのだが、その後、ゲームとかインストールして調子が悪くなったので、何かといっしょに消してしまったらしい。

このツール、今年の1月から2月くらいにかけて私が使っているパソコンに一度設定して子供に使わせていたのだが、子供はそれ以来使っていなかった。それが突然、また使いたい気分になったらしい。

中学生には、Aviutilの設定は難しいらしい。ゲームは一人でダウンロードして遊んでいるのだが、このツールはそうはいかないのか。単に面倒だからやってほしい、というだけのような気もする。

ということで、どうやって設定するか、再度、確認することに。最近のアプリは、インストールと同時にいろいろな設定を自動でやってくれるので、こういった手作業でセットアップが必要なアプリは珍しいかも。

とりあえず、ここをチェック。
AviUtlの易しい使い方

昔は、gccコンパイラを自分でメイクして、そこからツールをビルドしてたんだ、なんて子供に話してもしょうがないかな。時間を作って、インストールしてやる予定。

HTMLの基本で失敗

既存のperlで書かれたCGIの一部を修正しようと思い、直していたらHTMLの割と基本的な、簡単なことにはまりました。HTMLなんて自由に使える、とは言えないかも。
 
やりたかったのは、あるページをHTML5に対応させること。
簡単なページなので、軽く考えていたのが敗因かな。
 
書いている途中、ボタンのサイズをスタイルシートで調整できないかな、と思い立ち、inputタグを buttonタグに置き換えることに。このとき、value を書き忘れたのに気が付きませんでした。
 
<input type=’submit’ name=’action’ value=’送信’>
 

<button type=’submit’ name=’action’>送信</button>
と書いてしまっていたのです。
正しくは
<button type=’submit’ name=’action’ value=’送信’>送信</button>
でした。
 
inputタグのvalueを、次の処理で使っているのを失念してました。おかげで、value が送られないので、エラーになってました。PHPならデバックはなんとかなるのですが、perlなので、メッセージを見てもよく解りません。おかげで、この原因に気が付くにのかなり時間がかかってしまうことに。
 
今回は、この記事を参考にさせてもらいました。

<input type=submit>は止めて<button type=submit>を使うべき

 
ところで、個人的には、日本語の文字を判定に使うのはよくないと思っています。今回は、次の処理を改造することになるのであきらめましたが最初から作るならこんな記述にはしません。
 
しかし、
<ここから引用>
もしボタンによって処理を分岐させたいのであれば、このようなコードを書きます。
 
<form>
<input type=’submit’ name=’action’ value=’送信’>
<input type=’submit’ name=’action’ value=’下書き保存’>
</form>

<input type=submit>は止めて<button type=submit>を使うべき

<ここまで>

だそうで、やっぱりこういう書き方をするんですかね。
日本語を使ったプログラムが普通、とはいえ怖い気がする。

ノートPCでのプロジェクターの不具合?

派遣先の大学で今週から後期の授業が始まりました。先週、各教室のAV機器をチェックして回ったので万全のはずです。しかし、本番は想定外のことがよく起こるもの。さっそくトラブルで呼ばれました。

トラブルの状況は、先生が持ち込んだノートパソコンを、教室のAV機器のセレクタに接続したところ、プロジェクターに映像を表示できなかった、というもの。もちろん、他の機器からの映像は表示できる。

ケーブルを抜き差したり、HDMIではなくVGAで接続したりしているうちに、映像が出るようになった、というもの。もちろん、後で違うパソコンを使って動作確認したところ、再現できなかった。

先生が持ち込んだノートパソコンの設定、ということは解ったのですが、実はこれが始めてでは無い。過去にも何度も発生している、やっかいな不具合の1つです。再現できないので、あきらめていました。

実は、先週、各教室のAV機器をテストしていて、似たようなケースに遭遇しました。先に、VGAのテストをやって問題なかったので、HTMIに切り替えたら、表示しない、というもの。理由は簡単で、Windows 7 の認識では、1番目の画面が内蔵モニター、2番目のモニターが今外したばかりのVGA、さらにHDMIを3番目のモニターとして認識しようとしていました。

もちろん、複製とか拡張は、1番目と2番目のモニターで行います。VGAは外れているので、複製にしても拡張にしても画像の出力先はありません。かといって、HDMIが繋がっているので、2番目のモニターが繋がっている状態です。しかし、出力先は3番目。でも、切り替わらない。

パソコンを再起動したり、ケーブルを抜き差ししているうちに、無事、2番目のモニターにHDMIが切り替わりました。うまくいってからは、切り替えがスムーズに進み、不具合は再現しません。

その時は、別のパソコンではこんなこと見たことないし、このパソコン特有の不具合
なのかな、と思ったのですが、どのパソコンでも起きるようです。

昔のUNIXで使われていたX-windowでは、モニターの情報をファイルに保存して参照していました。そのファイルにモニターの情報を書き込んでおかないと、うまく表示できなかったのです。

Windows では、モニターを認識しているので、どこかに情報を保存してあるはずです。今繋がっているモニターの情報がタイミングよく書き換わらないと、2番目のモニターに表示できないのかな、と考えました。それでネットで検索したのですが、そんな情報は見つかりません。似たような記事があったので、これは参考になるかな。

PCのデュアルディスプレイ設定が保存されないのを何とかした件

やはり、何か設定ファイルがあるようですが、その操作はネットでは見つけられない
ようです。

いつもは解像度の設定は、デスクトップ上で右クリックで表示されるメニューの「ディスプレイの設定」でやっているのですが、同じメニューにある「グラフィック プロパティ」をマスターしなければならないかも。これって、使い方がいまいち解らないんだよね。

使い方は、ここ。
インテルR グラフィックス・プロファイルの使用方法

この記事を読むと、プロファイルをマルチディスプレイ関係する様子。これが問題の原因かも。

動画のダウンロード

動画共有サイトから、49分もの長い動画をダウンロードすることになりました。いつかは自宅でもやってみようと思いつつ、やってなかった作業です。

ということで、まずは、グーグル先生に聞いてみました。するとフリーのソフトをインストールすることで、できそうです。そういったフリーのソフトを紹介しているサイトの、一番上にあったアプリをダウンロードしてインストール。

偶然、動画のファイル形式を変更したり、DVDプレイヤーで再生できるように変換したりで使っているアプリと同じ系列のアプリでした。

そのアプリの使い方は簡単で、変換したい動画のあるページのURLを指定するだけ。後は自動で動画を認識して、ダウンロードを開始します。さすが、49分もの動画だけに、全てダウンロードするのに49分かかりました。そういうものかな。

普通にmp4形式でダウンロードしたのですが、すでに同じ系列の変換用アプリをインストール済です。画面からの操作でwmv形式とかにも変換できるのを確認しました。まあ、使いませんでしたが。

動画のダウンロード専用サイトも使ったことがあるのですが、動画をダウンロードするには、やっぱりアプリの方がいいですね。

1つのSoCに48コア

ネットで気になった記事が。

Qualcomm、最大48コアのサーバー向けSoC「Centriq 2400」

単純な話、1台のサーバーで、最大48個のプロセスが動く、ということですかね。

昔の話ですが、1つのCPUコアを8時間占有するプロセスを、同時に数本流す、という仕事がありました。

当時使っていたのは、1台数百万するサーバーでしたが、1台に1CPUコアの時代です。そんな高価なサーバーを、同時に何台も使うという訳です。そのサーバーを使っていた人の調整とかもあり、サーバーを増やす増やさないといった議論になって、対応に苦慮してました。

その後、分散処理の技術が確立され、4つのCPUコアに割り振れば、2時間ちょっとでできるようになる、ということでCPUコアを4つ持つMPUを搭載したサーバーの導入を検討した覚えがあります。それは、リモートでそういうサーバーを利用できる環境ができたので、不要になったのですが。

最近は、コア数はインフレ気味ですね。16コアでも驚いたのですが、48コアですか。昔のあのプロセスは、朝流したら夕方までかかってました。その処理が、10分で終わるかもしれない。当時からCPUもずっと高性能になっているので、5分かからないで終わるのかも。まる1日かかっていた計算が10分で終わったら、最適な条件へのアプローチのしかたが、大きく変わるでしょうね。今のエンジニアは、きっと昔とは全く別のことに悩んでいるのかもしれない。

昔は、時間がかかる計算を前提に、エンジニアはいろいろな可能性を自分の頭で考えていたと思うんです。しかし、今は、計算させた方が早い。多くの計算結果を並べて、そこからアイデアを出すとなると問題の本質の理解が進まない。なんか、こんな記事も何かで読んだような気がする。しかし、ここまで処理が早いと、違ったアプローチがとれる。

条件をリニアに変えて、ベストな条件を算出させれば、細かいパーツの理解が無くても全体の設計ができるようになる訳です。最後は、AIに最適な設計をやらせ、人は仕様を明確にするのが仕事、なんてこともありか。すると、何がやりたいのか、が重要になってくる。とりあえず、前の仕様を変えずに、なんとなく新しい機能を追加してみました、なんてものは無くなるということかな。きっと、普通のエンジニアには厳しい時代のように思える。