Reactを学習中(サンプルあり)

先週で派遣の仕事が終わってしまい、しかし、次の仕事がまだスタートしていません。しかも、ライターの仕事もないし。

ということで、プログラムの学習をやってます。8月と9月にReactをやっていたので、その続きを。

いや、いろいろやれるのが解りました。babelの中に全て入れてしまうと、いろいろ不便だと思っていたのですが、別に、全てをbabelの中に入れる必要がないことが解りました。

ということで、いろいろ試してます。

具体的に言うと、プルダウンのオプションをReactで作り、それを使ってボタンを押すタイミングで表示する処理もReactで作るWebページを作成しました。

simdenki

東北電力の電気料を、Javascriptだけで計算するWebページです。Javascriptの配列にプルダウンメニューの表示や、それで選ばれる料金などを格納し、それを使って計算します。

まあ、機能の割にコードが多いような気がしますが、ここから減らすだけのスキルがまだありません。Javascriptのオブジェクトの使い方は、まだまだ理解が足りないな、と感じてます。

文字を数える、修正しました

いつからか忘れましたが、いつもライターの仕事で使っている自作の文字数を数えるWebページで、Yahooの校正サービスが効いていませんでした。それが、ちょっと不便だなと感じたので、今日、直しました。

これ、jQueryのバージョンのせいかな、と思っていたのですが、ブラウザの更新の伴うJavaScriptの仕様変更かも、と思っています。

ということで、また、Yahoo構成のメッセージが見れるようになりました。微妙な指摘もありますが、なるほどと思える指摘もあるので、ちょっとは改善するかも。

http://muzina630.wp.xdomain.jp/js/m08.html

そいうえば、m08の08は、バージョンのつもりだったのですが、この数字は今回、変更してません。機能の追加等は無いので。

最近はSPAというらしい

私がJavaScriptのプログラムを使うようになったのは、2004年か2005年くらいだったと思う。マウスを選んだ部署名や氏名を、inputタグに代入させる簡単な処理で、かなり後から、この技術をDOMと呼ぶのを知った。

その後も、JavaScriptを長く使ってきたが、Table要素を追加したり、テキストを書き換えるなど、いろいろな使い方をしてきた。

また、このDOMが、Ajaxと相性がいいのは、かなり前から知っていたが、同時は非同期通信を素で書くとかなり面倒だったので、POSTの通信を使えなかった。しかし、今ではiQueryなどで簡単に書ける方法を学んだので、派遣先で作った簡単なWebシステムにも使っている。

この、昔から使われているAjaxとDOMを組み合わせたWebページを、シングルページアプリケーション(SPA)というらしい。2006年当時、javaScriptでAjaxが使えるエンジニアの給料は、かなり高かった。最近は、そうでもないかな、と思っていたのだが、まだまだAjaxでDOMが操作できるプログラムを書けるエンジニアは、評価が高いらしい。まあ、あれは作るのが面倒だからね。

PowerShellで一括処理を

派遣先の大学では、これまでオンプレミスで運営していたEメールを、去年の8月からOffice265のメールに移行しました。それで、新規作成時にPowerShellを使って、
一部の設定が必要となっています。

以前、バッチ処理のスクリプトを作っていたのですが、3月に教職員の入替があるので、一括処理のバッチの検討を始めました。

PowerShellは、去年から使い始めたばかりで、知らないことだらけですが、いろいろとできますね。配列が使えて、ループも可能なので、複数のアカウントを一括処理が可能です。さらに、CSVファイルからリストを取り込むことの可能でした。

ということで、EmailのリストをCSVとして読み込んで、ループで処理する、なんてスクリプトが簡単に組めます。なお、Emailのリストは、ヘッダが無いことを想定して、CSVファイルの取り込みで-Header オプションを使ってみました。それと、数値を文字列にするには、[string]count としないとエラーになります。これくらいで使えるのは便利かも。

#
# list.txtに格納されたEmailアドレスを読み込む
#
$array_emails = Import-Csv list.txt -Header "Email_Address"

#
# foreachによりループ処理
#
$count = 0
foreach( $view in $array_emails) {

  $Email = $view.Email_Address
  .... (ここに、設定のコマンド)
  Write-Host "$Email を設定"
  $count = $count +1
}


$message = [string]$count + "件、設定しました。"
Write-Host $message

文字を数える(Vue版)

自宅でライターの仕事をしている際に、文字数を数えるのに使っている自作のWebページがあるのですが、新しくしました。

いままで使っていたページは、素のJavaScriptを使ってました。まあ、オリジナルは素のままだったのですが、後からajaxのところだけ、jQueryのものに直したので、完全に素のままではありません。

今時、JavaScriptでプログラムを作るなら、フレームワークは必須、ということでそういったものを使って作り直そうと思ったので、勉強がてら作り直してみました。

文字を数える(Vue版)

今回採用したフレームワークは、Vue.jpです。これ、かなり評判がいいようで、おすすめの記事がたくさんありました。

このVue.jpで作り直したページがこれです。ついでに、前から気になっていた点も手を修正してみました。単純に文字を数えたり、キーワードを数えるだけですが、Yahooの校正のAPIを使っているので、若干、面倒な処理も行っています。

しばらく使ってみて、不具合があったら修正していく予定。できれば、こういう仕事もあった方がいいのに、と思うのですが、そうはうまくいきませんね。

派遣会社からの連絡

派遣会社からの連絡

ずっと前に登録して、すっかり忘れていた派遣会社から、最近、仕事の案内の連絡が入りました。エンジニアとして、派遣を受けてみませんか、という内容です。私にそんな話が回ってくるとは、世の中、よっぽど人手不足なのかも。

この派遣会社に登録した際、スキルに、C言語を書いてしまったのが、ちょっと悔やまれます。今回は、これを見て、連絡してきた、とのことでした。

C言語の仕事

たぶん、C言語は今でも組めると思いますが、今どきC言語と言ったら、Objective-C、C#。それは使えません。そんな話をしていたら、組み込みのプログラム開発の仕事だそうです。そういえば、そっちの分野もあったんですね。時々、ハローワークの求人でも見かけます。

この組み込み系は、難しい割りに給料が安い、という仕事の典型です。若い人は、敬遠するでしょうね。昔いっしょに働いたエンジニアは、C言語で作ったプログラムをアセンブリにして解析し、デジタルカウンターで測定して最適化していました。1チップマイコンのインターフェースは独特のスキルが必要です。

給料が安いといえば

最近知ったのですが、スキルさえあれば、今、東京では月60万円(フリーランスなのでボーナスなし)で働けるそうです。そんな時代に、月20万円でプログラマーをやる若い人はいないでしょう。

ちなみに、山形市内のプログラマーの求人票には、15万円から25万円というのもありました。
月15万円でプログラマーとして働く人がほんとうにいたら、こんな先輩ですが、ぜひ転職を勧めたい。

プログラマとは

下記の記事が気になったので。

プログラマとして語り継ぎたい10の言葉

この記事にあった
「5.プログラマって時代の最先端っぽく思われてるけど、やってることは家内制手工業だからね」
これは若いころによく感じていました。

勤めている会社が半導体工場で、自動化された機械が稼動している工場脇の小さな事務所で、コツコツとソフトを手作りしていたのを思い出しました。

そのころは、設計を自動化しようと専用のCADを導入していた時期で、自動で処理するためのデータ変換用に、小さなプログラムを作っていました。そのため、その落差によく悩んだものです。

そういえば、後輩は、煮詰まると「これは私がやらなくても、きっと小人さんがやってくれる」と言って違う仕事を始めていました。こういう割り切りは、重要ですが、ほんとうに小人さんが見えたことはありません。それはそれで幸運だったかな。

プログラミグやってます

久しぶりにプログラミグしてます。

ここしばらくは、鍵の整理と称して退屈な単純作業ばかりやってきたのですが、そろそろやばいかな、ということになりプログラミングを始めました。

作っているのはただの台帳。建物の配置図から、建物をクリックするとその建物の情報が表示されるというもの。一応、データはExcelにあるので、簡単なページを作ればいいだけ。

正直、いつでもできると思っていただけに、そろそろという話になった訳です。ということで、図を別の仕組みから流用して作成中。

できばえの確認用に、クリックすると非同期で情報を取得して表示するだけの仕組みを作ろうとしたのですが、XMLのパーサーでエラーに。このあたり、マイクロソフトのIE11とEdgeでは、Chromeなどと仕様が違うらしい。

既存のXMLパーサーを使う予定だったが、データ構造が簡単なのでJavascriptで作ることに。

ただ表示するだけですが、図をクリックすると表示される情報を切り替わるのは気持ちがいい。これだけで達成感がある。まあ、簡単な仕組みだけど。

ということで後は、細かい希望を聞いて調整して終わりにしたい。

と、ここで文字化け発見。非同期通信はUTF-8でないと動作しないので、Excelから変換したCSVを、文字コードを変更してアップしてたから、そこかも。これは、要相談かな。一筋縄ではいきそうにない予感。

文章校正のページ

9月と10月にライターの内職で提出した記事に、誤字があったとの指摘があり、今は、ネットの無料文章校正サイトを利用しています。そういったサイトは以外と多く、ほとんどはYahoo APIを利用しているようでした。

じゃ、自分が使いやすいように作ってしまおうか、と思い、今作成中です。

実は、この機能、最初からつまずきました。Chrome でデバックしていたのですが、Javascript でやろうとすると、違うサイトとの非同期通信はダメだ、怒られます。フィッシングサイトの手法なのでしょうね。

そのため、これを回避するための仕掛けが必要になりました。
それを組み込んでJavascriptで作成したのが、下記のページです。

日本語の校正

まだ、作りかけなので、Yahoo API が指摘した箇所をハイライトするだけです。そのうち、文字数やキーワードを数えるページといっしょにして、ちょっとは使えるサイトにしたいな。

プログラム勉強中

派遣先の大学で、時間が空いたのでプログラムの勉強をはじめました。先日ちょっとJavaScriptをいじっただけで、最近、プログラムしてないな、と感じてたので。

ネットの記事で、カリフォルニアのITエンジニアの採用では、ソートのアルゴリズムをコードに書ける試して採用を決める、なんて記事を見かけたので、久々にやってみることに。

ソートのアルゴリズムを勉強したのは、かなり若いころでした。今はもうすっかり忘れています。配列の要素をソートして処理する、というプログラムは過去に何度も書いてますが、sort() とかの関数を使うので、そのアルゴリズムを意識したことはありません。若いころは、C言語にデータを入替する処理を書いたことがあり、ソートのプログラムを参考にした覚えがあります。しかし、最近は意識することもありません。

VirtualBoxでLinuxを起動して、コマンドラインから PHP でネットの記事を見ながらささっと書いてみました。しかし、クイックソートは難しい。どういう動作なのか、なかなか理解できません。

10個くらいの数字をテキストに書いて、自分でやってみたのですが、右側と左側の処理の切り替えって、どうなっているんだ、と変なところで悩んでしまいました。ソート途中の配列を書き出してみて、こう動いているんだ、と納得はしました。たぶん、若いころもしっかりとは理解できていなかったのでしょう。バブルソートと選択ソートは考え方が簡単なので、コードに落とすのは楽でした。こっちはプログラムを組む際によく使うような考え方だと思います。

昔、後輩にPHPのプログラムの書き方を指導した時は、プログラムは、極々簡単な処理の組み合わせだから、全然難しくないから、と言ってから始めました。今もその考えは変わっていません。とはいえ、やりたいことをコードに落とすのは、難しい。どういう手順で実現するかで、その人のスキルが解るのでは、という気がします。そして、この手順の引き出しが多くするには、その動きをイメージしながら、手を動かして書いてみるしかありません。ここがプログラムの難しいところでしょうか。