2016年12月25日日曜日

Macで自宅のWifi接続失敗の解決について

Mac(Macbook Pro / macOS Sierra 10.12.2)で、なぜか突然、自宅のWifiが繋がらなくなった。

Macを起動して、次のダイアログが表示された後に、Wifiが繋がらなくなるのです。



ちなみに、Wifiのルーターは BuffaloのModel: WHR-300HP2 です。

解決策がないか、ググってみる。
すると、以下のサイトが見つかりました。

https://discussionsjapan.apple.com/thread/10152242?tstart=0

この内容によると、Norton Internet Securityの「ファイアウォール」を無効にしたら解決できるように書いてある。そして、代わりにmacOSの「ファイアウォール」を設定するとのこと。

この内容とおりに、設定を行ってみる。
まず、Norton Internet Securityの「ファイアウォール」を設定を無効にする。
Norton Internet Securityを起動して、画面下の「詳細設定」タグを選択し、左上の「ファイアウォール」を選択。
そして、右側の設定を全て無効にする。以下の画面のようにする。
(「アプリケーションの遮断」「接続の遮断」「脆弱性保護」「ネットワークの検出」を無効にする。)



あ、ちなみにNorton Internet Securityのバージョンは7.3でした。念のため。

そして、macOSのファイアウォールの設定を行います。
「システム環境設定」を選択します。



「セキュリティとプライバシー」を選択します。


「ファイアウォール」タブを選択して、ファイアウォールを入にします。
以下の、画面のようにします。



これらの設定を行ったら、macOSの再起動を行います。
そしたら、本記事の冒頭であったような、ダイアログは表示されることはなくなり、Wifiが繋がらなくなる問題は解決しました。

2016年10月5日水曜日

Windows Update(更新プログラムKB3194496)後にApacheが動かなくなった件について

Windows10の端末にWindow Update(更新プログラムKB3194496)を実施後にApacheが動かなくなったのです。
ちなみに、このApacheはTracLightningにバンドルされているApacheです。

その時の解決した内容です。

まず、Window Updateの更新の履歴は次の通りです。
更新プログラムKB3194496適用直後です。


Window Update(更新プログラムKB3194496)を実施後に、TracLightningのページをブラウザ上から見ようとするとNot Found(404)になるので、サービスの「TracLightning」を確認して見る。

そしたら、「TracLightning」が起動していない。

なので、サービスから「TracLightning」を実行している。

すると、イベントビューアーのログを確認する旨のメッセージが表示されたのでイベントビューアーを見てみる。


エラーのログは次の通り。

The Apache service named  reported the following error:

>>> (OS 10013)アクセス許可で禁じられた方法でソケットにアクセスしようとしました。  : make_sock: could not bind to address 0.0.0.0:80 


このエラーログは何を意味しているのかを確認するため、ググってみる。
すると、次のサイトの記事が見つかった。

Windows 10でApache HTTPD Serverが起動しない。

どうやら「World Wide Web Publishing Service」というサービスが起動しているために、Apacheが起動できないようだ。

というか、「World Wide Web Publishing Service」ってなんだろう?と思いググってみる。
すると、次のサイトの記事が見つかった。

World Wide Web Publishing Service とは

「World Wide Web Publishing Service」は、Internet Information Services (IIS) の一部で、コンピューター上で HTTP サーバーとして動作するサービスとのこと。
なので、ApacheのPort番号80番を使用しようとしたが、既に「World Wide Web Publishing Service」のHTTPサーバーのPort番号80番が使われていたので、
Apacheの起動に失敗していたのですね。

最近、IISを全然使ってないけど、IISの構成も変わっているのでしょうね。
「World Wide Web Publishing Service」ってのが関わっているし。
IIS使ってたのって、2000年〜2002年ぐらいだった気がする。
それで、確か曖昧な記憶ではあるが、IISはInternet Information Serverの略だったのが、Internet Information Servicesに名称変更したんでしたよね。
また、IISの縮小版?のPWS(Personal Web Server)ってのもあったな。
確か、接続数に制限があったんだっけ。

少し、話が逸れたが、話を戻して
サービスの「World Wide Web Publishing Service」を探すのです。
ですが、見つからなかった。
ただ、「World Wide Web 発行サービス」ってのが見つかった。
おそらく「World Wide Web Publishing Service」の名称が少し変わったのだろうと思い
「World Wide Web 発行サービス」を止めてみる。




「World Wide Web 発行サービス」を止めた後に「TracLightning」を実行させる。
無事起動しました。



2016年10月2日日曜日

BlackBerryがスマートフォン生産を打ち切り

ついに、BlackBerryがスマートフォン生産を打ち切りにすることになった。

ブラックベリー、スマートフォン生産を正式打ち切り

ちなみに、BlackBerryの会社自体がスマートフォンのハードウェアを生産しなくなるけれど、BlackBerryのブランドは残るし、ハードウェアの生産はパートナー会社に委託することになるとのこと。
なので、ユーザーからすれば、まだBlackBerryのスマートフォンは今後も作られると思っていいはず?ですよね。
BlackBerryはいいアプリが少ないけれど、ハードウェアのショートカットキーや通知を一元化できるBlackBerryHubはいいですよ。
あと、アプリが少なくゲーム中毒になりにくですし。


2016年8月2日火曜日

情報収集は何が効率がいいのか

今時の情報収集は何が良いのだろうか。


7月末でGunosyによるメール配信ニュースが終了するのを知って
メールマガジンなどのメール配信は情報提供側として廃れていくのだろうか。と思った。
少なくとも、自分は有料なものも無料なものもメルマガを購読しており、
それで情報収集している。
GunosyやTechcrunchのメール配信は、ほぼ毎日目を通す。
これらのサービスは自分が興味ある分野について、キューレーションしてくれて、とても助かる。

以前、情報収集のためにTwitterで、興味がある分野のことを発言している人をフォローして、タイムラインを全て目に通すこともしていたが、1日1時間程度費やすので
さすがに時間がもったいなく感じられ、今はメルマガなどのメール配信サービスの購読やfeedlyを使用して興味あるサイトやブログのRSSを購読するのに留めている。

そういえば、元々はFeedlyを使用する前はlivedoor Readerを使用していた。
数年前に、livedoor Readerの運用終了のアナウンスがされて、慌ててfeedlyに鞍替えしたのだった。
だが、livedoor Readerはドワンゴが運用を引き継ぐことになり、現在も運用している。
ただ、自分は今、Livedoor Readerは使用していない。

で、冒頭の話に戻るがGunosyがメール配信サービスを止めるのは
もうメール配信は使用頻度が低くなっており、アプリ側の方が使用されるからなんだと推測されるが
アプリだと、情報を見ただけで、後先までメールみたいに残しておくとかしないような。
と思うのだけど、どうなんだろう。
メールで残しておくと、後でテキストを検索できて、いいと思うのだけど。
メールでなくてもいいのだけど、テキストで保存できるのは絶対いいよ。
アプリだと、端末上に保存して、クラウド上に保存するとは限らないし
別の端末だとアプリをインストールし直すとか面倒だ。
やっぱり、情報収集したテキストはWebメールのようなクラウドにテキストで保存するのがいいと思うのだが、どうなんだろうか。
少なくとも自分は、2000年からそうして、すでに16年になる。
まだ、しばらく続くとは思うし、さらに代替えが思いつかない。という考えにふけっている今日でした。

2016年7月14日木曜日

BlackBerry Classic製造終了

BlackBerry Classicの製造が終了します。

物理キーボードの象徴的スマホ「BlackBerry Classic」製造終了へ

私は、今まで約1年半程、BlackBerry Classicを使用しているので、少し寂しい感じがします。
決して、悪いスマートフォンではないです。
いいところもあります。
物理キーの長押しショートカットの機能なんかは便利だし、
メールやアプリの通知を一元管理できるBlackBerry Hubも便利です。
ですが、いいアプリがBlackBerryにないのも事実です。
Google純正のアプリはないし、今年前半にFacebookのネイティヴアプリのサポートも終わったし。

BlackBerryのFacebookのアップデートは最低

BlackBerry 10のOSのサポートはまだ終わってないですが
将来的に、BlackBerryが市場を盛り返すことは難しいと思います。

2016年6月19日日曜日

iOSアプリでHTTPが使えなくなる

2017年1月からiOSアプリからHTTPが使えなくなるみたい。
HTTPでなく、HTTPSを使わなければいけないみたい。

Webに接続するiOSアプリは2017年1月からHTTPSの使用が絶対条件になる、デベロッパーはご注意を

今でも、iOSアプリからHTTPを使うために、iOSアプリ作成時に設定が必要だ。

Xcode7に更新後に、iOS9のHTTP通信箇所でエラー。

だけど、もうHTTPは使えなくなるのか。
セキュリティの観点でデータが暗号化されないと問題ある通信に関しては
HTTPSが必要だと思うけど。
HTTPが使えなくのは不便だと思うし、そこまでしなくても。と思うんだけど。

2016年5月24日火曜日

javascript Dateで前月と翌月の設定について

javascriptで日時を扱う時は、次のようにDateオブジェクトを生成して使用する。

var date = new Date();

そして、Dateオブジェクトには月を設定する関数(setMonth)がある。
次のように使用する。

date.setMonth(month);

なので、Dateオブジェクトの前月、翌月はsetMonthを設定することで可能だ。
前月の場合はこんな感じ。

date.setMonth(date.getMonth() - 1);


翌月の場合はこんな感じ。

date.setMonth(date.getMonth() + 1);


で、前月と翌月の設定はできそうであるが、はまったことがある。
当日が31日で、当日の前月と当日の翌月が30日までしかない場合に
当日(31日)の前月と当日が、setMonthだとうまく設定できなかったのだ。
次のコードのような場合だ。

function dateTest1() {
    var date = new Date();
    date.setMonth(5);//6月
    date.setDate(0);//5月の最終日を設定

    console.log("date.getMonth() = " + date.getMonth());
    console.log("date.getDate() = " + date.getDate());

    var previousM = new Date(date.getTime());
    previousM.setMonth(previousM.getMonth() - 1);

    console.log("previousM.getMonth() = " + previousM.getMonth());
    console.log("previousM.getDate() = " + previousM.getDate());

    var nextM = new Date(date.getTime());
    nextM.setMonth(nextM.getMonth() + 1);

    console.log("nextM.getMonth() = " + nextM.getMonth());
    console.log("nextM.getDate() = " + nextM.getDate());
}


このコードの実行結果は次のようになった。

date.getMonth() = 4
date.getDate() = 31
previousM.getMonth() = 4
previousM.getDate() = 1
nextM.getMonth() = 6
nextM.getDate() = 1


前月に設定したはずが当月と同じ。それで翌月に設定していたはずが翌々月になっている。
今回の場合、当日は5月31日である。それで当日のDateオブジェクトにたいしてsetMonthに当月の-1した値を設定すれば4月になるのではと思うのだが、4月31日なんてものはない。4月は30日までだ。なので、javascriptが5月1日にしている。(previousMのgetMonth()とgetDate()の結果)
なお、前月はsetMonthに当月の+1した値を設定すれば6月になるのではと思うのだが、6月31日なんてものはない。6月は30日までだ。なので、javascriptが7月1日にしている。(nextMのgetMonth()とgetDate()の結果)
それで、この問題をどう解消しようかと考えて次のコードで対応することにした。
どうしたかというと、setMonthを使用せずに、setDateを使用して、前月と翌月を設定させることにした。
setDate(0)は前月の最終日がされるので、当月のDateオブジェクトに対して、setDate(0)を行い前月を設定する。
そして、当月の最終日が設定されているDateオブジェクトに対して、setDate(date.getDate() + 1)をすることで、翌月を設定するようにしている。

function dateTest2() {
    var date = new Date();
    date.setMonth(5);//6月
    date.setDate(0);//5月の最終日を設定

    console.log("date.getMonth() = " + date.getMonth());
    console.log("date.getDate() = " + date.getDate());

    var previousM = new Date(date.getTime());
    previousM.setDate(0);

    console.log("previousM.getMonth() = " + previousM.getMonth());
    console.log("previousM.getDate() = " + previousM.getDate());

    var nextM = new Date(date.getTime());
    nextM.setDate(date.getDate() + 1);

    console.log("nextM.getMonth() = " + nextM.getMonth());
    console.log("nextM.getDate() = " + nextM.getDate());
}


コードの実行結果は次のようになった。
ちゃんと、前月と翌月が設定できていた。

date.getMonth() = 4
date.getDate() = 31
previousM.getMonth() = 3
previousM.getDate() = 30
nextM.getMonth() = 5
nextM.getDate() = 1

2016年5月21日土曜日

Facebookをやめた

Facebookをやめて1週間経った。
Facebookをやめた理由を一言で言うと、疲れるからだ。
まず、誕生日のメッセージや投稿のやり取りするのが面倒だ。
自分に誕生日のメッセージや投稿を送ってくれた人には、
誕生日にお返しのメッセージまたは投稿をしなければと思ってしまう。

次に、いいねとしてあげないといけないような
投稿もあるので、それに気をつかってしまう。

最後に、毎日Facebookをチェックする時間が
もったいないということ。
Facebookをチェックすることによって、何か学習できることがあればいいのだけど
Facebookのタイムラインを見ると、美味しいものを食べました。とか
観光名所に行きました。とかの類であって
それにを見ることによって、いいと思うことがないからだ。
あっ、そう。って思って終わりで、無駄な時間を費やしているだけだと思うようになった。

なので、Facebookの利便性があると思わない限り
Facebookは利用解除のままで、使用することはないと思う。

2016年5月15日日曜日

iPhoneが運転免許証になる。

イギリスでWalletアプリに免許証が格納可能になるみたい。


免許証いらないよな。
クラウドの電子データでいいし。
免許証の更新とかは、楽になるんだろうね。
免許証の発行での待ちとか、その間に動画見るとかは
免許証を発行する交通センターとかに行かなくてもいいような気がする。

あと、スマートフォンでなくても
指紋や顔認証になれば、もっといいのではと。

2016年5月4日水曜日

眼球に挿入する視力矯正用デバイス

眼球に挿入する視力矯正用デバイスってのがあるのか。

グーグル、眼球に挿入する視力矯正用デバイスの特許を出願

これが、実用できるのだったらレーシック手術と競合するよな。
視力だけでなく、耳につける小型の補聴器とか、聴力矯正用デバイスとかは出来なのかな?
私事だけど、自分の母親は耳が悪くなって、両耳に補聴器つけているだよね。
でも、それでも母親は音が聞きづらいから、コミュニケーションが取りにくい。
しかも、補聴器ってサイズが小さくないからな。耳にかけるイヤホンぐらいあるからな。
絶対ウザイと思う。大変だよな。

話戻すけど、眼球にデバイスを挿入するってすごいよな。
そのうちに、失明しても目の位置にデバイスというかセンサを入れれば、脳に何かしらの電波みたいなものを送れば、目が見えるような状態になったりして。
その前に、細胞複製技術が発展して、眼球ごと復活できるようになる可能性もあったりして。

2016年5月3日火曜日

npm installで単純ミスではまる

Node.jsでロケールの時刻を取得する処理を実装させるために、npmでGlobalizeをインストールしようとした。

インストールの方法は、次のサイトに説明が記述してある。

https://github.com/jquery/globalize/blob/master/README.md#installation


説明通りに、npmコマンドでGlobalizeをインストールしようと試みる。

すると、エラーが出ている。
コマンドラインは次の状態だ。

npm install globalize cldr-data.
npm http GET https://registry.npmjs.org/globalize
npm http GET https://registry.npmjs.org/cldr-data.
npm http 200 https://registry.npmjs.org/globalize
npm http GET https://registry.npmjs.org/globalize/-/globalize-1.1.1.tgz
npm http 404 https://registry.npmjs.org/cldr-data.
npm ERR! TypeError: Cannot read property 'latest' of undefined
npm ERR!     at next (/usr/local/lib/node_modules/npm/lib/cache.js:692:35)
npm ERR!     at /usr/local/lib/node_modules/npm/lib/cache.js:680:5
npm ERR!     at saved (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js:142:7)
npm ERR!     at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:133:7
npm ERR!     at Object.oncomplete (fs.js:97:15)
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/isaacs/npm/issues>

npm ERR! System Darwin 15.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "globalize" "cldr-data."
npm ERR! cwd /Users/xxxxx/Documents/yyyyy
npm ERR! node -v v0.11.11
npm ERR! npm -v 1.3.25
npm http 200 https://registry.npmjs.org/globalize/-/globalize-1.1.1.tgz
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/xxxxx/Documents/yyyyy/npm-debug.log
npm ERR! not ok code 0


TypeError: Cannot read property 'latest' of undefined ってエラーが出ている。
なんだろう。これは?
ググってみる・・・だけど、それらしい解決方法が見当たらない。
Globalize特有の問題でもなさそうだ。
コマンドラインの結果をまた見ている。
すると、 npm http 404 https://registry.npmjs.org/cldr-data. ってのがある。
https://registry.npmjs.org/cldr-data. が見つからないのかって思い。
数秒経過・・・あれ、最後に「.」があるんですけどなんで?
そういえば、npmのコマンドって間違っているのか?
コマンドラインを確認する。

npm install globalize cldr-data. になっている。
なんか最後の「.」はいらないような・・・

npmのコマンドは、先のGlobalizeのインストール方法の説明の箇所をコピペしたんだけど・・・
Globalizeのインストール方法の説明の箇所を見てみる。


あっ・・・最後の「.」いらないじゃん。余分にコピー対象に含めてたんだな。

その後、npm install globalize cldr-data のコマンドで無事にGlobalizeのインストールをできました。
こんなことで、約1時間ぐらいが無駄になった。嗚呼…
でも、こんな単純ミスって結構あるんだよな。

2016年5月1日日曜日

GoogleアカウントでOAuth2.0認証

GoogleアカウントでOAuth2.0認証させるようにしてみた。

まず、次のURLのサイト(Google APIsのコンソール)を表示させる。

https://console.developers.google.com/?hl=JA

Googleにログインしてなければ、ログインを促す画面が表示する。
ログインしていると次の画面が表示する。


吹き出しの中の [次へ] を押して次に進みます。


また、吹き出しの中の [次へ] を押して次に進みます。


吹き出しの中の [完了] を押します。(多分ここまでの吹き出しは初回だけだと思います。)
そして、左メニューの [API Maneger] を選択します。
そのあとに、左メニューの [認証情報] 選択して、中央の [認証情報を作成] を選択します。


[OAuthクライアントID] を選択します。


[同意画面を設定] を押します。


[メールアドレス][ユーザーに表示するサービス名]を入力して、[保存]を押します。


[アプリケーションの種類]の[ウェブアプリケーション] を選択して、[作成] を押します。


[名前] [承認済みのJavaScript生成元][承認済みのリダイレクトURI(※1 後で使用する)]を入力して、[作成] を押します。
[承認済みのJavaScript生成元]は、OAuth2.0認証のリクエスト要求元のURI。[承認済みのリダイレクトURI]は、OAuth2.0認証結果後にコールバックされるURIになる。



中央の全面のウインドウに、OAuthクライアントの[クライアントID(※2  後で使用する)][クライアント シークレット]が生成されるので、コピーして退避させときます。



以上で、Google APIsのコンソールでの設定は、完了。
ブラウザのアドレスバーに次のURLを入力して、動作を確認する。

https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=[※2]&redirect_uri=[※1]&scope=https://www.googleapis.com/auth/plus.me

(URLの[※1]及び[※2]は、事前の説明箇所で入力及び生成された内容と同じものを設定する。)

Googleにログインしてなければ、ログインを促す画面が表示する。
ログインしていると次の画面が表示する。
これで、OAuth2.0認証ができますね。
実際は、今回ブラウザのアドレスバーに入力したURLをWebアプリケーションに組み込んで使用するかと思います。
ちなみに、事前の説明箇所の入力箇所や生成箇所のグレイアウトしている箇所は、大事な情報ですので、他人には知らせない方が良いかと。(URI、クライアントIDなど)



2016年4月10日日曜日

Beaconはなくなるのか

屋内の位置測定は、GPSだと正しく検知できない。
そして、近年屋内の位置測定として、Beaconを使用して検知したりすることがある。

Beaconは小型の電波発信機なので、特定の場所に置いておく。
そして、スマートフォンのアプリでBlue tooth経由でBeaconの電波を検知することができて、Beaconとの距離が判断できる。
なので、例えば、お店に入店したタイミングで、その客がアプリを起動していれば、アプリにお店の割引クーポンを表示したりできる。

なお、壁があると、Beaconの電波が検知できない。
過去にBeaconを検知するアプリの開発に、関わったことがあるが、
壁の向こうのBeaconは検知できなかった。
また、Beaconを配置するのは、少し手間なんだよな。
と思っていたら、Wi-fiで屋内の正確な位置を検知できる技術が開発されているみたいだ。

Wi-Fiで正確な位置を特定する技術「Chronos」をMITが開発、パスワード不要なWi-Fi・屋内GPS・自動追従ドローンが誕生する

これが普及したら、Beaconはいらなくなると思うけど、どうなんだろう。

2016年4月2日土曜日

続 Apple vs FBIの行方

FBIはiPhoneのアンロックをできたかと思いきや。今度は他者に、iPhoneのアンロックを協力しますよ。て事になっているらしい。

どうぞどうぞ、いいですよ、FBIがアーカンソーの検察のためにiPhoneのアンロックで協力

正義感からか、公務員通しだからか、Appleへのちょっとした復習っぽい思いもあるんだろうか。

まだまだ、Apple 対 FBIの話題はすぐに消えないだろうな。

と思いきや、Googleは過去にFBIにAndroidのアンロックを協力してた事がわかった。

Googleも捜査機関からの要請でAndroidのアンロックを行っていたことが判明

同じアメリカのIT企業でも、対応が違うのが面白い。
だが、現在のAndroid 5.0以降のLollipopからは、できない対応みたい。

それにしても、巨大IT企業は凄いよね。
国家に対抗できてる感がするよな。
今時点でも、どこかの国より、AppleやGoogle方が
力関係では上なんじゃないのって勝手に思うんだけど、どうなんだろうか。

2016年3月31日木曜日

Microsoftのオープン化が進む

Windowsでついに、Bashが使えるようになるとは。

Build 2016で驚きの発表―Microsoftはこの夏Windows 10でBashシェルをサポート

Dosはどうなるんだろう。
ひとまずは、そのまま使えると思うのだが、いずれなくなるのだろうか。
てか、Windowsもいずれ、Linuxのディストリビューションみたいな感じになったりするかもね。
今の時代は、OSは無償は当たり前だから、どうしてもオープンよりになるしかないんだろうな。

やっぱ、独自フォーマット戦略はホント、昔のビジネスのやり方だと思う。
今はプラットフォームは、オープンになってきて、サービスかコンテンツで勝負なのでしょうよ。
プラットフォームでも、手数料を取って行ったところも手数料をなくしたり、代わりに同種の手数料なしのサービスが出てきたりするから。(楽天の対抗サービスとしてBaseだったり)
プラットフォームで手数料と取るビジネスっていうのも長続きはしないんだろうね。

2016年3月29日火曜日

Apple vs FBIの行方

以前にFBIがAppleに対して銃乱射事件の容疑者のiPhoneのアンロックについて記事を書いたのだが。

Apple vs FBI

どうやら、FBIは自力で、iPhoneのアンロックができたらしい。

司法省、対Apple訴訟を取り下げ―テロ容疑者のiPhoneはFBIがアンロックに成功

凄いぞ、さすがFBIだ。
FBIには、凄腕エンジニアがいるのだろうか。
てか、FBIは、Appleはおろか、Google、Microsoftの技術にも対抗できたりするのだろうか。
それとも、Appleのロックが甘かったのか。
なんか、あっさりとセキュリティのロックの解除がなされた気がするが。
もしかして、裏で誰かApple関係者がFBIに協力したのかな。

2016年3月28日月曜日

プログラマー35歳定年説

プログラマー35定年説ってあるが、私は37歳で、まだ現役プログラマーだ。
30歳ぐらいから、このまま少しプログラマーを続けれるのかな。と思っていた。
前職は、SIerの下請け企業だったので、退職前の数年はどちらかというと、管理側の仕事の割合が多くなったいた。現職では管理の仕事はなくて、ほとんどプログラミングだ。
ちなみに、社会人になってからの仕事の役割は、経験年数ごとでは、次のような感じ。

■1年目(2000年)
 先輩が作成したプログラムのテストとバグ表の記入。テストは単体テスト、組合テスト、総合テスト。(テストの試験項目リストは、先輩が作ってくれた。)
 プログラミングの改造作業(Power Builderっていうプログラミング言語だった。)
 そして、テストの試験項目リストも自分で作成するようになった。
 また、1年目はクライアントサーバシステムの開発のみだった。

■2年目(2001年)
 プログラミングの新規開発をPerlで行う。
 プログラミングの新規開発をWebpage Generetorというプログラミング言語で行う。
 (ASPとJSPみたいに、htmlに専用のタグを入れることで、htmlを動的に表示させるプログラミング言語だった。)
 プログラミングの新規開発をJavaで行う。フレームワークのStrutsを使う。
 2年目からWebシステムの開発が主になってきた。Perlはプログラミングしやすかったし、Javaでプログラミングをするのは、とても楽しかった。そして、Strutsはあまり普及してない時に、使っていたりした。このころは、Strutsすげえ。と思っていたし、Javaが好きだったなぁ。

■3年目(2002年)
 内部仕様書(プログラム仕様書)の作業を行うようになる。
 仕事は、Java + StrutsのWebシステムの開発が主だった。

■4年目(2003年)
 外部仕様書のの作業を行うようになる。
 仕事は、Java + 色々なフレームワークでのWebシステムの開発だった。
 国産のフレームワークだとcFrameworkとかあったなぁ。今はどうなんだろう。

■5年目(2004年)
 システム開発の作業見積書を作成するようになる。
 仕事は、前年に引き続きJava + 色々なフレームワークでのWebシステムの開発だった。

■6年目(2005年)
 前年から特に新しく増えた役割(仕様書作成とか、見積作成とか)はなかったはず。
 仕事は、前年に引き続きJava + 色々なフレームワークでのWebシステムの開発だった。

■7年目(2006年)
 引き続き、特に新しく増えた役割(仕様書作成とか、見積作成とか)はなかったはず。
 そういえば、中国の人と一緒に仕事した。
仕事は、前年に引き続きJava + 色々なフレームワークでのWebシステムの開発だった。

■8年目(2007年)
 引き続き、特に新しく増えた役割(仕様書作成とか、見積作成とか)はなかったはず。
 仕事は、前年に引き続きJava + SeasarでのWebシステムの開発だった。
 SeasarはTeedaという、JavaServerFacesのフレームワークを使用した。
 Seasarは凄くわかりやすいフレームワークだった。当時感動したのを覚えている。

■9年目(2008年)
 プロジェクト管理するようになった。だいたい2、3人の作業担当者を管理していた。
 スケジュールを作成して、品質管理をするようになった。
 仕様書の作成や、プログラミングをする時間がほとんどなくなってきた。
 週に1時間も自分の実作業をしてなかったと思う。
 進捗管理や懸案事項の整理と、作業担当者が作成した仕様書やプログラムをレビューしていた。

■10年目(2009年)
 前年から特に新しく増えた役割(仕様書作成とか、見積作成とか)はなかったはず。
 仕事は、Java + StrutsのWebシステムの開発が主だった。
 Strutsの仕事は、断続的にあったな。長いよ。

■11年目(2010年)
 引き続き、特に新しく増えた役割(仕様書作成とか、見積作成とか)はなかったはず。
 仕事は、Java + StrutsのWebシステムの開発や、Androidアプリの開発。
 Androidアプリの開発では、管理でなくて、久しぶりにプログラミングばかりしていた。楽しかった。確か、Androidのversionなんて、1.6とかだったよ。

■12年目(2011年)
 引き続き、特に新しく増えた役割(仕様書作成とか、見積作成とか)はなかったはず。
 仕事は、Java + StrutsのWebシステムの開発や、C#でのクライアントサーバシステムの開発だった。
 C#も、管理でなくて、プログラミングばかりしてた。その時にVisual Studioいいじゃん。って思った。

 ■13年目(2012年)
 会社を辞めた。カナダのトロントに語学留学してた。

■14年目(2013年)から今まで
 スマートフォン(AndroidとiOS)のアプリの開発をしている。
 少し、WebのAPIの開発もしている。


13年目(2012年)に前職を辞めたのは、プログラミングの仕事の割合が少なくなってきたからだね。やっぱり技術に関わるのが少なくなると、良い仕事ができないと思うし、
10年目(2009年)ぐらいに、リーマンショックの影響で、仕事が少くなって会社で待機みたいな人がいたりしたけど、すぐに仕事が割り当てられるのって、技術屋だったと記憶している。年配のマネージャーとかはいらないんだよ。自分はそうなりたくないから、そして、SIer系の仕事は、年をとったら、単価の関係で、プログラマーでなくマネージャーの仕事をやらざるをえないだよ。
プログラマーの単価よりマネージャーの単価は高い。
そして、年とった人の給料は高くなる。
だから、年をとったら、マネージャーにさせられるんだよ。
なので、SIer系の仕事でないITの仕事に関わろうとして、今はSIer系以外の仕事で、プログラムばっかり書いている。
まだ、プログラマーを辞めることは考えてない。これからも続けるだろう。
生涯現役のつもり。(甘いかな。)

そして、最近、仕事で使用しているプログラミング言語は、C#、Java、JavaScriptが主だね。
少し、VBAだったり、Phpをプログラミングするときもある。
趣味で使用しているプログラミング言語はJavaScriptだね。Nodeをいじっているよ。

2016年3月27日日曜日

使われなくなるEメール

どんどんEメールが使われなくなっているみたいだ。

モバイル最若年層では、Eメールが死につつある

自分は仕事で、Eメールを使用しているが、最近はチャットも使用するようになっている。
使用しているのは、Charworkだ。

Eメールは、フォーマルな感じでメール本文に「お世話になります。」みたいなものを含めるけど、チャットの場合は要件のみを率直に伝える感じだね。チャットの方がちょっとしたことを確認しやすい。なので、お決まりのご挨拶みたいなのが不要になるので、当然時間も短縮できる。
ただ、軽く言えない重要な約束などは、Eメールでお決まりのご挨拶があって、言葉を選んで本文を作成する。
まぁ、自分はそんな感じで使い分けている。

使う人によっては、Eメールもチャットもフォーマルな感じでお堅い使い方しているかも
どうなんだろう。

また。Eメールは送信した内容は、変更できないけど、チャットのメッセージは後から変更できるのはいいと思う。(ちなみにCharworkの場合。他のチャットサービスはどうなんだろう。)

チャットのサービスだと、個人的には、Slackのデザインはいいなぁ。と、すごく使いやすいなぁ。と思っている。
でも、自分のまわりにSlack使う人がいないんだよな。

まぁ、ここまでは、仕事のことだったんだけど、プライベートだとEメールは使う機会が少なくなってきたな。と。週1回ぐらい親への連絡で使用するくらいか。
親はLINEとかFacebookは使わないし、知らないからね。
連絡するのに使うのは、Facebookの割合が多くて、その次にLINE。 そしてEメール かな。

Eメールより、チャットやSNSの方が楽だから、Eメールが使われなくなったんだろう。

2016年3月24日木曜日

BlackBerry PlayBookのいいところ

BlackBerryには、BlackBerry PlayBookという7インチディスプレイのタブレットがあります。

ワタクシは、それを所有しています。
えっ、なにに使うかって?
ただの音楽プレーヤーですね。
iPadやAndroidのタブレットと比べると、BlackBerry PlayBookの優位なところは、ほとんどないんだよ。

ワタクシが所有しているBlackBerry Playの写真ですが、
タブレット用のスタンドに置いてます。


で、このタブレットの上側の写真なんですけど


ただ一つだけ、BlackBerry PlayBookいいな!と思うのはこれです。
音楽の再生(一時停止も兼用)ボタン、前の曲、次の曲のボタンがあるのです。
なので、"Music" っていう音楽再生アプリを立ち上げた状態で
画面が省電力モードになって、画面に何も表示されなくなった時に、再生、前の曲、次の曲のボタンを押すことで、"Music" アプリを操作可能なんです。
でも、気にいっているところは、これだけ。

あとは、アプリの少ないですし...使う用途がないんだよ。
せっかくなので、BlackBerry PlayBookのスクリーンショットをお見せしよう。

ホーム画面はこんな感じ。



"Music" っていう音楽再生アプリ



Twitterを起動すると・・・



Twitterのネイティヴアプリでなく、ブラウザが起動して、Twitterのサイトが表示されるのです。BlackBerryはこの手のアプリというか、ランチャーアイコンだけあるけど、ブラウザを起動のショートカットのアプリをたまに見かけます。Youtubeもそうだし。

ただ、BlackBerry PlayBookのFacebookアプリは、ネイティヴアプリです。
ただし、よく異常終了するけど。また、UIが古いから、すごく昔からアプリ自体が更新されてないんでしょう。


次に、BlackBerry World(iOSのAppStore、AndroidのGoogle Playに相当するアプリ)です。





どうです?iPhoneとかAndroid使っている人からすると、知らないアプリばかりで、別世界でしょうよ。
てか、BlackBerry PlayBookを持っている人を見たことないね。
そんで、発売されたのは、2011年4月19日。日本語入力はできません。(自分の知る限り。)

BlackBerry PlayBook

物好きな方は、お試しあれ。

2016年3月23日水曜日

iPhone SEのサイズは正義

iPhone SEが発表された。iPhone 5と同じく、4インチディスプレイ。
もう、これでスマートフォンの大型化をすることは、なくなるんだろう。
てか、iPhone 6 Plusについては、は5.5インチディスプレイのファブレットだ。
でも、携帯電話なんだけどね。

お待ちかねのiPhone SEが発表、昔みたいに手に収まる4インチ

やっぱり、iPhone 6とか、iPhone 6 Plusは、でかいよ。
片手で操作する時に、親指でタップしようとしたら、画面上側が届かんよ。
画面全体を下げる機能もあるけど、そこまでするより、親指が届く端末を使った方がいいでしょ。

また、自分は仕事でiOSとAndroidのアプリ開発しているけど、動作確認で使用する実機は、大きいスマートフォンは使わない。
だって、作業効率悪いでしょ。ストレス溜まるし。

iOSの場合、プログラムの動作確認で使用する実機は、iPod Touch、iPad Airとかの高スペックでないかつ、画面サイズがそれほど大きくないものを使っている。(iPadはタブレットなので、でかいのは仕方ない。)

高スペックでない端末を選んでいるのは、高スペックの端末でなくても、作成したプログラムが重くなく、スムーズに動作できることを確認するためだ。
iPhone 6とは、iPhone 6 Plusの確認は、シミュレータで動作確認する程度だな。
画面サイズが他の端末と違うから、画面表示が問題ないかを確認するぐらいか。

ただ、Androidの場合は、ほとんど実機で確認だな。
Androidのシミューレタは動作が思い。使いにくいからだ。(動作が軽いといわれてるシミューレータもあるのだが、個人的には、そこまで良いとは思わない。)

なお、個人的にはNexus 6は開発で使用しづらい。背面が丸くなっており、机の上に置いて、Nexus 6の画面をタップするとぐらつくからだ。この状態で、テストしている時に早めにタップしている時に、ぐらついて、ミスタップしたりするし、すごくストレスが溜まる。なので、Nexus 6は極力使用を避けている。

また、iOS9.3だったり、Xcode7.3がリリースされていたので、会社に出社して、早速アップデートした。

iOS 9.3、今日からダウンロード可能―夜間モード追加、ヘルス、CarPlayなど強化

で、なぜか、iOS9.3にアップデートした端末が、アクティベートに失敗した。
iOS9.3がリリースされたばかりだから、サーバーが混雑しているかな。と思い、
iOS9.3にアップデートした端末自身からでなく、その端末をMacに接続して、MacからiTunesを起動して、AppleIdにサインインしたら、問題なくiOS9.3にアップデートした端末のアクティベートができた。なんだったんだろう。

2016年3月21日月曜日

BlackBerry Twitterのアップデート後のBBM接続のセットアップを回避させる

BlackBerryのTwitterアプリの更新が通知されてました。


Facebookアプリの時のように、アップデートした後で、アップデードするんじゃなかった。ってことがないように、アップデード前に、アップデート内容とレビューを見てみます。






更新内容を見るからに、Facebookアプリのように、ただのブラウザのショートカットになることはなさそうだ。

では、レビューを見てみよう。


あら、アップデート後のアプリ起動で、BBM設定が終わらないらしい。
だめじゃん。実際どうなるんだろう。試してみよう。

アップデートをしてみる。




さて、アップデートが終わったらので、アプリを開いてみよう。


ありゃ、"BBMに接続してます" のダイアログが表示されたままになる。
キャンセルをタップして、アプリを起動し直しても同じ。

じゃ、この問題をどう解消させるのか、Google先生に聞いてみる。

すると・・・

次のサイトが見つかった。

http://forums.crackberry.com/blackberry-10-os-f269/twitter-app-bb-10-updated-1066604/

そして、次のようにコメントがある。



まず、

Hi guys, after updating Twitter the app can't connect to BBM and I have to press cancel to enter on the timeline. Are you facing the same inconvenience??? Many thanks!

だってよ。
やっぱり、BBM接続のダイアログが出続けるんだ。
そして、

Got the same issue

Go to settings app permission
Connect to BBM and turn off the twitter BBM connect and it will stop trying

なるほど、TwitterアプリのBBM接続の設定を無効にすればいいのか?
また、

Is there a fix for this—other than tapping Cancel or removing the permission?

BBM接続を無効以外の解決方法があるのかと?
そしたら、

Apparently more fixes are coming next month according to John Chen's tweet.

ふーん。John ChenのTweetを見てみよう。




ともかく、来月にまた、Twitterアプリのアップデートがあるんだ。
それで、今回の問題も解決されているかもしれないんだな。

ひとまず、Twitterアプリ起動後に、BBM接続のダイアログが表示したままになるのを回避したいから、TwitterアプリのBBM接続の設定を変更してみよう。

端末のブラックベリーマークのボタンを押して
"設定" をタップ


"セキュリティーとプライバシー" をタップ


"アプリケーションの権限" をタップ


"Twitter" をタップ


すると、"BBMに接続" が有効になっている。


なので、"BBMに接続" を無効にする。


そして、Twitterアプリを起動すると、BBM接続のダイアログが表示されなくなった。
ひとまず、Twitterは使えるな。
BBM接続の問題解決については、来月のTwitterアプリのアップデート後にまた、確認してみるとするか。