30歳になりましたのでブログの再開

Facebook にシェア
Pocket

気づいたら、1年3ヶ月ぶりの投稿となりました。一度、投稿間隔が空くと投稿しづらくなってしまうんですよね。前にも似たようなことを書いた気がするのですが……。

何かきっかけがあれば再開できると思っていたんですが、よくよく考えたら2月25日が30歳の誕生日なのだから、ちょうどいいきっかけになると思って再投稿します(見てる人には関係ない)。今後は続けて投稿するようにしたいです(何回か同じことをこのブログで書いた気はしますが)。

とりあえず、投稿していない間に何があったかについて、技術的なこともそうでないことも含めて書いていこうと思います。

投稿していない間に参加したプロジェクトでの経験

投稿していなかった1年3ヶ月の間に、仕事で下記のツールやプログラミング言語に携わりました。

  • Azure
  • VB.NET(XAML)
  • C#(XAML)
  • Crystal Reports(帳票アプリ)
  • Java
  • Eclipse
  • SVF(帳票アプリ)
  • 楽々フレームワーク(Javaのフレームワーク)
  • DB2

下5つが今やっている仕事で関わりのあるツールとプログラミング言語です。Javaは昔、Androidアプリの作成で使ったことはあるのですが、ちょっとした修正作業程度だったので、ほぼ初めてです。ですが、Javaについて詳しい人が別会社から派遣できてくれて、その人に「そんなことも知らないの?」という感じで接せられてげんなりしています。例外を「エラー」というとダメだそうです。

楽々フレームワークというのは初めて知ったのですが、正直、全然楽々ではありません。何を持って楽々といっているのか分からないでいます。

最初のAzureというのは、初めて派遣契約で会社の外での職場で経験しました。クラウドプラットフォームを初めて使ったということもあって、ある程度勉強にはなったのですが、正直もう外では仕事したくないです。

後、仕事とはちょっと違うかもしれませんが、調査でWebSocketを触ったりしました。名前はよく聞きますけど、思ったよりややこしかったです(特にサーバー側の仕組み)。

このブログを通じて仕事をもらった

ちょうど更新が止まってすぐぐらいなのですが、ブログを見たという人からコメント経由で仕事の依頼がありました。内容は、FlashサイトをHTML5化してスマートフォンでも動くようにしてほしいというもの。こんなことは初めてだったので、半信半疑で受けたのですが(副業として)、なんとか終わって報酬の6万円をいただきました(自分が6万円と伝えたんですが、ちょっと安く見積もりすぎたかもしれないです。いい経験にはなりましたけど)。

仕事が完了した後も引き続き、仕事を依頼したいとお願いされたのですが、思ったよりも大変だったので、迷った末、お断り。クラウドソーシングのサイトなどを紹介して、それ以降は連絡ないです。それがよかったのか悪かったのか……。

ちなみに、この副業で初めてスマートフォンでは自動で音を鳴らすことができないと知りました。迷った末、AndroidかiOSの場合は起動時に一回タップしてその時に音声ファイルをとってくるという仕様にしたりしました。

ただ、ちょっと気になったのが、依頼者の息子さんとも少しやりとりしたのですが、その方がかなりハイスペック。アメリカでiPhoneアプリを作る仕事をしているのだとか。「これ、僕に依頼する必要ある?」なんて思ったりしました。そもそも、依頼者自身もFlashアプリは自分でActionScriptを使って作ったというから、それなりの腕前はありそうでした。

まあでも、HTML5やJavaScriptについては、それなりにブログに書いてきたので詳しいと思っていただいたのかもしれないです。個人的には最近、PWA(プログレッシブ ウェブアプリ)が気になっているのでもう少し掘り下げて勉強していきたいです。

会社に誘われましたが、話が無くなりました

このブログは、実名では書いてませんが知ってる人が見たら誰が書いてるかぐらいは分かるので悩んだのですが、書きます。

今年の1月に、今の会社に誘ってくれた人が会社を辞めたのですが、その人が新しい会社を作るということで誘われました。正直、お金をだしてくれる人がいたり、事業が多岐にわたっていたりと怪しいところはあったのですが、それなりに乗り気ではありました(他にも同じ会社で誘われた人がいます)。

ただ、自分を誘った理由となる仕事が取れそうにないため、とりあえず無くなりました。ちなみに
取れなくなった理由は今の会社の社長に邪魔されたからというもの。共通の知り合い経由でバレたそうです。確かに、話しだしたらよく喋る人だったしなぁ……。というわけでまあ、少なくともしばらくは今の会社に居座ろうと思います(一応、今のところ転職は考えていません)。

ちなみに、この話を父にしたところ、「辞めたい人は止めないが、さすがに同じ会社の人間を何人も誘って会社を作ろうとしていると知ったら怒る」とのことでした。確かにそうだろうと思います。ただ、もともとの予定では、新しく作る会社を作っても今自分が働いている会社の社長とは仲良くしておいて、派遣か請負で仕事を手伝ってもらう予定だったそうです。正直、それに関してだけは、そんなにうまくいくのかと疑問に思っていたのですが、やっぱりうまくいきませんでした。

paizaがSランクになりました

amyu さんの受験結果|問題:S010:ひとりすごろく

ついさっきですが、Sランクになりました。paizaは転職サイトなので、求人メールがちょくちょくくるのですが、たまに応募しようか迷います。ただ、Sランクになった上記の問題はちょっと考えたら簡単な問題だったのでビックリしました(簡単すぎて、自分の考えのどこか間違っているだろかと考えるのに、時間がかかりました)。これをSランクといっていいものかと。なお、同じくSランク問題の「データヒストグラム」は再チャレンジして何回か繰り返しても最後のテスト10だけとおらず、あきらめました。デバッグできないのが辛いです。

ちなみに先日、派遣で来てくれている人2人(どちらも別の会社)がpaizaのランクがどうなったかと話していてpaizaの画面を開いていたときは、さすがに止めようかどうか迷いました。

(2018/02/26追記)応用情報技術者試験に合格しました

応用情報に合格したのを書こうと思って忘れてました。昨年の秋に応用情報を受けて無事合格。会社から受験料と奨励金として2万円でたのがよかったです。

勉強方法としては、応用情報の参考書を一冊買って一通り読み、後は応用情報技術者試験ドットコムで過去問を何度も解きました。

前日まで上記サイトの模擬試験で午前は70点ぐらい、午後はギリギリ6割分かるかどうかという微妙なところだったのですが、終わってみると午前80点、午後89点と結構な高得点で合格できました。午前より午後のほうが高得点とは思わなかった。

GLAYのファンクラブに加入

技術にも仕事にも関係ないこと1つ目。

高校生のころから、GLAYが好きではあったのですが、好きといってもTSUTAYAでベストアルバムをレンタルしてiPodにいれたのを聞く程度の好きでした。ただ、昨年の3月ぐらいにYouTubeにGLAYチャンネルがあるのをしってPVをずっと流しっぱなしで勉強したり、Gyaoで「GLAY EXPO 2014 TOHOKU」の映像が無料配信されていたので見ていると、GLAY熱が高まり、ファンクラブに加入。古いアルバムなどをブックオフ(といったらファンの人には怒られそうですが)やアマゾンで買い、25000円もするG-DIRECT限定Special Editionのアルバム(SUMMER DELICS)を買い、9月に大阪城ホールでライブがあったので一人で行ってきました。

まさか今頃になってこんなにはまってしまうとは思いませんでした。先日、GLAY公式アプリなるものが登場したので、登録しようか迷っているところです(曲はiPodで聞けるし、ライブ映像は購入したライブDVDもまだ全部見れてないぐらい見る時間ないし、それで月額980円はちょっと考えます)。

そうそう。昨日、バースデーカードも届きました。

バースデーカードが届くのは知らなかったので、驚き。

そういや昔、休日出勤した帰りに御堂筋線に乗ったら、やけにGLAYファンっぽい人がいっぱいいた時があったような気がする。記憶が曖昧だけど、多分、長居スタジアムでのライブの日だったんだろうな。何であの時からファンクラブに入るほどファンじゃなかったんだと今更になってショックを受けてます。

楽天マガジンに加入しました

技術にも仕事にも関係ないこと2つ目。

楽天マガジンに昨年の11月か12月の頭ぐらいに加入しました。

なんとなく名前ぐらいは知ってたのですが、調べて内容と値段を知り、あまりにもオトクすぎるサービスだと分かって驚きました。だいたいザッと目をとおすぐらいですが、新たに知ることももちろん多いので、役立ってます。

なお、同じく月額サービスのamazonプライムにも一応、入っては見たのですが、そんなに買い物するわけでもないし、動画もそんなに見ないしで、自分はお得に使いこなせていません。いい使い方を思いつかなかったら、辞めようと思います。

財布を購入しました

技術にも仕事にも関係ないこと3つ目。

自分が今までもっていた財布は就職浪人中に母が買ってくれたやつです。使い勝手は悪くはなかったのですが、自分がカードをいれまくったりしたせいかすぐに分厚くなってしまいました。そんな財布をズボンの後ろポケットにいれているせいか、ここ数ヶ月に続けて2着、ズボンのポケットが破れました。

多分、分厚いせいだなと思って、abrAsusというブランドの薄い財布という名前そのままの財布を購入しました。色は緑です。昔、ゲッターズ飯田が薄い財布で緑色が金運アップと言っていたので(風水や占いを信じているわけではないですが、一応)。

ちょっと使いづらいところはありますが、なれたらそんなに不便ではないです。小銭入れが999円入るようになっているので、基本的に999円いれるようにしています。

なお、カードを入れるスペースが少なくなったので、スマートフォンのケースを手帳型にしてそこにいくつかカードをいれるようにしました。ただ、最近になって、LINE Payカード楽天カードを申込んだので、カードの枚数は増えているという。

携帯電話の通信会社をauからmineoに変更しました

技術にも仕事にも関係ないこと4つ目。

昨日のことなんですが、通信会社を10年以上使っていたauからmineoに変更しました。端末そのままです。来月は高額な請求がきそうですが、多分、ある程度続けていると結果的に安くなると思っています。

LINE Payカードや楽天カードを申込んだのは、au解約にともなってau walletを使うメリットが無くなるからという理由でもありまして、うまく活用していきたいです。

結婚相談所に登録しました

技術にも仕事にも関係ないこと5つ目。

別に急いでいるわけではないのですが、30歳になったこともあり、ちょっと今年は本気で取り組んでみようと思って昨日、ゼクシィ相談カウンターに登録しました。結構なお金がかかるのでさすがに迷ったのですが(これでも安い方)、とりあえず今年はがんばってみようと思います。

ちなみに、彼女いない歴30年の女性経験なしです(いわゆるDTです)。人見知りで話下手です。

他にも、「皮膚科変えたらアトピーがかなりマシになった」など、細かいことはいろいろあるのですが、このへんで。本当は今年やろうと思っていることも書くつもりだったのですが、長くなったので次回書こうと思います。

神戸ITフェスティバル2016に行ってきた

Facebook にシェア
Pocket

神戸ITフェスティバル2016:11.25(金)〜26(土)デザイン・クリエイティブセンター神戸(KIITO)

今年は転職したばかりで有給がないうえに、忙しかったので土曜日のみ(土曜日も行こうか迷ったぐらい忙しい。今日も仕事いってたので、ここのところゆっくりと休めてない)。

最近は毎年そうだけど、特に今年はウェアラブルに力をいれていたように感じた(それと、攻殻機動隊とのコラボ。ただ、自分は攻殻機動隊を見たことがないのでよく分からない)。特に、ウェアラブル関連では、例年と比べてやけに大企業の出展が多かった気がする。富士通に日本電気にエプソンにリコー。シャープが中小企業に見えるぐらい(いや、今は実際に中小企業だったっけ。東証二部だし)。

ただ、これは自分のコミュ力のなさが悪いのだけど、どうやって展示を見て回ったらいいかいまだによく分からない。興味があってもなかなか展示へ近づくことができないし、空き時間に展示会場の回りをぶらぶらするのだけど、なぜか一歩が踏み出せない。自分の場合、ビジネスの客になるような存在でもないし、「何か興味があるんですか?」なんて聞かれてもいい回答が思いつかない。多分、そんな気後れする必要なんてないんだろうけど。客観的に見てみると、もしかして自分は変な人に見えるんじゃないかといろいろ考えてしまった。

ただ、ちょうどうちの会社がドローンで何かやりたいと言っていたので、ドローンの展示をしているところについては理由をつけられるということで気楽にいくことができた(他も行ったけど、特別な理由がないため、ちょっと勇気がいる)。実際、「ドローンを買ったのはいいものの、どうビジネスにするか考えて無くて……」と伝えると、そういう会社が多いとのことだ。名刺もらったのだけど、自分も渡したほうがよかっただろうか。まあ、むこうにはメリットがあるわけじゃないしいいか。

他には、例年とくらべるとやけに子どもが多い気がした。どうも、子供向けのプログラミング講座にも力をいれていたよう。やっぱり、最近の子どもにはプログラミング教室が人気なのか。日本の将来を担っていく人材になってくれるといいな。

多いといえば、女装しているスタッフも多かった印象。ただ、アニメのキャラクターのコスプレっぽい感じならまだいいのだけど、普通に女の子の私服を着こなしていた人、というよりさくらインターネットの江草陽太さんにはちょっと動揺してしまった。セミナーのはじめに自己紹介があったけど、格好については何の説明もなく普通に進行(服装以外は普通に男性です)。さくらインターネットの執行役員だそうで、調べてみるとどの記事でも女性らしい格好をしていた。
ASCII.jp:小笠原、江草、山口の3人が語った「さくらのIoT」の軌跡と奇跡 (1/3)|さくらの熱量チャレンジ
「さくらのIoT Platform」は“データを迎えに行く”プラットフォーム – INTERNET Watch
ASCII.jp:賃貸物件のカギがスマートロックになると、何が起こる? 開発企業を独占取材
まあ、最近はダイバーシティという考えが浸透しているし、そういう人がいるのも不思議ではないのかもしれない。セミナー終了後は普通に名刺交換をお願いされていたし、むしろ、動揺していた自分が異端なのかも。さくらインターネットの株持ってるけど、この感じならしばらく売らなくてよさそうかも。

セミナーもいくつか参加してきました。参加したのは、『デザイナーが考えるウェアラブル』『人工知能対話サービスの今と3歩先の未来』『ITによる他分野連携が加速する最新技術』『モノをネットワークでつなぐサービスの開発』の4つ。なぜかわからないけど、昔と比べて聞きたい質問というのが思いつかなくなってきてる気がする。だいたい今までなら、セミナー2つ参加したら、一つぐらいは質疑応答時間に質問したいことがあったり、実際に質問することもあったけど、今回は全く質問自体思い浮かばなかった。うまい質問ができるようになりたい。

ところで、自分は視力が悪く、メガネをかけているけど多分、0.5ぐらいじゃないかと思う(ただし、運転用には別にある)。最近また見えづらくなってきたような気がするのだけど、それはともかく、そういうこともあって前の方の席で聞くようにしている。それはいいのだけど、先程、自分が参加したセミナーについて調べてみると、自分の後ろ姿の写っている写真をいくつか見かけてしまった。しかも、後ろ姿を見ただけでダサい格好というのがよく分かる。今度からもう少し後ろに座ろうかな……(そろそろ、普段用のメガネも度が高いのに変えるか)。

なお、来年は別のイベントと合同で、『078』という枠組みのなかで神戸ITフェスティバルを開催するそう(参考:音楽・映画・IT・食のイベント『078』、COMIN’KOBEとタイアップして2017年5月6日・7日に神戸で開催。イベントロゴも募集 | UROROS)。時期はゴールデンウィーク(11月にはやらないということだろうか?)。ゴールデンウィークってどうなんだろう。一応、ビジネス的な意味合いもあるイベントだと思うのだけど、集まるのかな? 子どもは確かに多そうな気がする。多分、暇だろうし、来年もいこうかな。

Visual Studio CodeのEmmetでlang=”en”をlang=”ja”にする方法

Facebook にシェア
Pocket

最近はHTMLやJavaScriptのコードを書くときには、Visual Studio Codeというエディタを利用しています(自分の利用している環境は、Windowsのv1.6.1です)。

前はBracketsを利用していたのですが、Visual Studio Codeのほうが軽くて多機能な感じがするので、気に入っています。

そのVisual Studio Codeに標準でついているのが、Emmetという機能。短縮記法でHTMLを書くことができ、例えば、『ul>li*4』と入力してタブキーを押すと、下記のようなHTMLが出力されます。

そんな中でも基本的なのは、『html:5』もしくは『!』(多分、こっちのほうがよく使う)を書いた後にタブキーを押して出力される、HTMLの基本的なテンプレート。簡単なサンプルページ的なものを作るときはまずこの記法を使うことが多いのですが、一つ問題があって、デフォルトでは下記のようにlang属性がenとなってしまっています。

これをjaにしたいと思って調べてみたら、snippets.jsonというファイルを編集したらいいということが分かりました(参考:Visual Studio Code for Windows、HTML ファイルで使う Emmet のスニペットを変更する – Browser)。ただ、ここに書いてあるフォルダが自分の環境には無く、いろいろ探してみるとVisual Studio Codeをインストールしたフォルダ内にありました。

C:\Program Files (x86)\Microsoft VS Code\resources\app\node_modules\emmet\lib\snippets.json

多分、32ビット環境なら、『Program Files (x86)』ではなく、『Proguram Files』フォルダの下にあると思います。

このファイルを編集すれば、lang=”en”から、lang=”ja”に変更できます。ただし、場合によってはこの場所にあるファイルは編集できなくなっていると思うので、ファイルを右クリックしてプロパティを選び、セキュリティからUsersの変更権限を与えて起きましょう(フルコントロールでもいいと思います)。

開くと、3行目に”lang”というキーに”en”という値が設定されています。予想できる通り、ここの”en”の値を”ja”にすれば、lang=”en”が、lang=”ja”に置き換わります(ついでにその下の”locale”の値も”en-US”から”ja-JP”にしといてもいいかもしれません)。

と、ここまで書いてVisual Studio Codeが更新を促してきたので更新したら、このファイルまで更新されちゃいました……(なので、lang=”en”に戻る)。

Emmetの機能ではないですが、Visual Studio Codeの機能として提供されているユーザー定義スニペットを用いて、追加しなきゃいけないのかもしれません(参考:Visual Studio Code for Mac ユーザー独自のスニペット定義(Emmet編) – Qiita

日本語環境だと、メニューの『ファイル』→『基本設定』→『ユーザースニペット」→HTMLと入力してエンターキーを押すことで、スニペットの設定ファイルが開きます。そこに全体を囲む波括弧({})の中に、下記のようにスニペットの設定を追加します。

こうすると、prefixの値に指定している『html』と入力した後にタブキーを押すと、lang属性がjaとなっているテンプレート文字列が出力されました(残念ながら、『!』ではダメでした)。

ただやっぱり、Visual Studio Codeを更新してもsnippets.jsonの内容を保持する方法があればそれが一番いいと思います。もし、やり方を知っているかたがいたら教えてください。

JavaScriptで日時の加減算を行う

Facebook にシェア
Pocket

またもや、改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用までから。

JavaScriptの日時処理は少し面倒だという印象があります。上で紹介した本を読んでも、ES2015でもそれは変わってないらしく、例えばフォーマットによる日時を付与した関数なんてものも用意されてないらしいです。

その点ではMoment.jsというライブラリ(参考:Moment.jsを使う – Qiita)がよさげではあるのですが、今回は素のJavaScriptを使った加減算について。

というのもやり方は簡単で、DateオブジェクトのgetXxxxxメソッドとsetXxxxxメソッドを使えばいいだけだそう。実は、本をよむまで、getとつくメソッドがあるのは知ってたけど、setとつくメソッドがあるのは知らなかった。

使い方としては以下。

見て分かるように、月をまたいでもちゃんと計算される(それにしてもなぜ、月だけ0始まりにしたのだろうか。最初間違えて、『new Date(2016,11,6,22,30);』として12月6日になって混乱した)。

これを応用したら、指定の日付の月末日を取得することができる。

ちなみに、setXxxxメソッドの戻り値は、Dateオブジェクトではなくて1970 年 1 月 1 日 00:00:00 からのミリ秒数。Dateオブジェクトだったらメソッドチェーンが利用できたので少し面倒。まあ、目的は変更後の日付を返すのではなく、自分自身の日付を変更するということだから仕方ないか。

まあ、やろうと思えば下記のようにできなくはない。

いや、これはメソッドチェーンとは言わないか。

というよりよくよく考えたら、Dateオブジェクトを新しく生成すればいいだけでした(調べて気づいた)。

なお、日付通しの計算については、getTimeメソッドを利用して数値化したうえで、1単位をミリ秒数で表した数で割らなきゃいけないそうです。

なんで標準でこれぐらいの計算が簡単にできるメソッドが用意されていないのだろうか……。ES2015では追加されるんじゃないかと期待していたのだけど……。

JavaScriptで、できるかぎり小数演算の誤差を少なくする方法

Facebook にシェア
Pocket

JavaScriptにかぎらず、プログラミングでの小数を含む演算では誤差が発生してしまうことがよくあります。例えば、『0.2+0.1』という単純な足し算すら、『0.30000000000000004』という結果になってしまいます(Chromeで確認した場合)。その対応方法が改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用までに書いてあったのでメモしておきます。

対応方法といっても単純なことで、ようは小数をいったん小数の長さ分の10の累乗を掛けて整数にしてから演算し、それから10の累乗分した数を割って正しい値を取得するというもの。最後の10の累乗で割るときに誤差が発生してしまうのではないかと思いそうですが、割られる方の数が整数であれば誤差は発生しないようです(例えば、『12.35/10』の結果は『1.2349999999999999』となるけど、『1235/1000』の結果は『1.235』となる)。

というわけで、小数の演算に対応した関数を書いてみました。

足し算、引き算、掛け算、割り算の4つの関数がありますが、上半分はすべて同じです。本来ならこの部分は共通化しておいたほうがいいでしょうね。エラー処理は余計だったかもしれません(この処理がなくても、どのみち例外エラーが発生するのだし、throwで返すのではなく、0やnullを返すとかでもいいかも)。

エラー処理はまず引数が数値かどうかチェックし、その後に指数表記かどうかを調べています。

実行した結果は下記のとおりです(『//=>』より右側が実行結果)。

ところで今回、小数って英語でなんていうんだけと思って調べて、英語でdecimalということを初めて知りました。decimalというと、10進数というイメージがあるのだけど、小数という意味もあったのかと。どっちの意味で使ってるか分かりづらいことってないのだろうか。