プログラミングが難しいなら、まずこれ読もう

f:id:pontasensei:20190913220011p:plain

 

プログラミングが難しいです。。何からどう手をつければいいんでしょうか?

この疑問に答えます。

僕はいまSE歴7年目の会社員です。プログラミングは大学の頃から始めて、10年くらいやっています。すべて独学でやってきたので、何度も挫折しました。はっきりいって、プログラミングは難しいと思います。ですが、今となって思うのは「どう取り組むべきか」「どうやったら効率よく習得できるか」を理解できれば、あとは一歩ずつ行動していくだけです。本記事を読むことで、プログラミングが上達していくイメージをつかんでもらって、明日からの励みにしてほしいと思っています。

本記事の内容

 

プログラミングが難しい理由

f:id:pontasensei:20190913220716p:plainプログラミングってかなり難しいですよね。僕もそう思います。僕はプログラミングについて、今まで何度もつまずいてきました。なんでこんなに難しいのかについて、僕なりの考えをお話していきますね。

なぜプログラミングが難しいか、結論から言っちゃうと、「ネットで検索して自分で解決できないから」の一言につきます。

プログラミングが難しいのは、ネットで検索して自分で解決できないから。

いまの世の中、ネットで検索するだけで、かなりのことが理解できます。

  • 東京でおすすめのラーメン屋
  • ニキビの治し方
  • 転職のコツ

このあたりのことであれば、検索すればすぐに知ることができますよね。
じゃあ、プログラミングで上達するために、あなたはどのように検索しますか?

検索しようにも、なにをどう調べればいいの?

ってな感じだと思います。大丈夫です、気持ちはわかりますが、この記事を読んでいけば解決できます。

大事なことなので繰り返しますが、プログラミングが難しいのは、ネットで検索して自分で解決できないからです。
具体的に言うと、

  • 何から手をつけたらいいかわからないので、検索のしようがない
  • 知らないことや、難しいエラーが出たけど、どう検索したらいいかわからない
  • 検索したとしても、検索結果で出てきたページに書いてあることが理解できない

といったことです。

もっと具体的に、参考までに僕の経験をお話していこうかと思います。

何から手をつけたらいいかわからないので、検索のしようがない

プログラミングを習得したい気持ちはわかります。ですが、果たしてどこからどう勉強していけばいいのでしょうか。初心者の方が最初にぶつかる壁だと思います。
僕が初めてプログラミングをしたのは大学3年生の頃です。当時は物理学をやっていて、物の動きをシミュレーションするプログラムをC言語で作りました。
初めてのプログラミングだったので、右も左もわからず、研究室の先輩や教授に質問しまくってました。ネットで検索なんてほとんどしていません。

当時の学習サイクル↓

 

わけがわからないので、人から教えてもらう
 ↓
ある程度教えてもらったら、あとはC言語の本を参考にして書いていく
 ↓
エラーとか出るけど、わけがわからないので、やっぱり人に聞く

ということを繰り返していました。

この経験から言えることは、以下の2点です。

  • 人に聞ける環境があると良い。というか、人に聞けないとかなりきついです。
  • 自分でも進められるように、本は買った方がいい。

こうしていくうちに、だんだんとプログラミングの雰囲気をつかんでいくことができて、半年くらいかけて少しずつ自分でネットで検索して解決できるようになっていきました。

 

知らないことや、難しいエラーが出たけど、どう検索したらいいかわからない

どう検索したらいいのさ…!と、悲鳴をあげたくなることがあります。
僕が大学院の頃にやっていたプログラミングは、Facebookのデータ収集です。(物理学→社会工学に転向しました。)言語は主にPHPです。大学でC言語をやっていたときとは違って、すべてネット上でプログラムが動きます。しかもFacebookと連動しながら。
大学院で研究を進めるため、どうしてもFacebook上のデータ収集が必要になり、取り組みました。
レンタルサーバーを借りて、いろいろ設定し、そこにPHPで開発したアプリケーションをアップロード。収集するデータの出力結果も、キレイな形で出てこないと使い物になりません。
その時は、周りに同じことをやっている人がいなかったので、完全に独学で挑みました。C言語ができたんだから、きっと大丈夫だと思っていたんです。
PHP言語の入門書と、Facebookアプリの専門書を買って、あとはググりながらやっていきました。
その時にぶち当たった壁が、これです。↓

カツオ「ていうか、ネット上に情報なくね?」

という問題。
世の中で、おんなじことをやっている人が、なかなか見つからないのです。
正確に言うと、PHPのことやFacebookアプリの解説記事はあっても、自分がやりたいことに対して、ズバリ教えてくれるサイトがなかったです。
とにかくはまり続けて、膨大な時間を費やしてしまいました。
このときに痛感したのは、

  • ズバリ自分と同じことをやっている人が、オンライン/オフラインのどこにもいない。
  • 検索してわかるのはパーツの部分だけ。サーバーの設定だけとか、PHPの書き方だけとか。
  • サーバー、Facebook、PHP…などを組み合わせたときに、体系的な知識が身についていないので、なにがなんだかわからない。

といったことです。

これらについては、かなり遠回りしてしまいましたが、仕組みを理解することから根本的に取り組んでいくことで解決していきました。具体的には、いきなり「Facebookアプリ 動かない」とか検索するのではなく、「レンタルサーバー 仕組み」とかのワードで、ひとつずつ理解を深めていった感じです。

検索したとしても、検索結果で出てきたページに書いてあることが理解できない

f:id:pontasensei:20190914013905p:plain

プログラミングについて、一般的なことであれば、ネット上に充実した解説記事が多くあります。でも、詳しいことやニッチな内容になってくると、とたんに検索結果が冷たくなっていきます。
なぜなら、そういった記事を書ける人が少ないのと、需要がないので書かれない、という2つの理由があるためです。
たとえば、僕の体験の続きで言うと、「Facebook データ収集 PHP」とかで検索したとします。すると、こんなかんじの記事がヒットします。

  • 「おう、よくきたな、おれが書いたプログラムはこれだぜ、ジャーン! →自分がやりたいこととずれている」
  • 「詳しいことは省略するが、いつも通りXAMPの構成で、DNSはお名前.comでOK!」 →難しい専門用語のオンパレードで、とても読めない
  • 「◯◯について参考にしたサイトはこれだぜ」 →見てもわからない

もう、どうしたらいいんでしょうか。悩んでしまいますよね。

こういったサイトたちは、「全く同じことをしたくて、かつ知識も十分にある人」にとっては、すごく意味があるんですが、初心者にはちょっと厳しいです。
どうすればいいかというと、知識をつけるしかありません。

 

プログラミングが難しい理由のまとめと対処法

今までの話をいったんまとめます。プログラミングが難しいのは、ネットで検索して自分で解決できないから。
なぜネットで解決できないかというと、

  1. 最初は人に聞かないと右も左もわからない
  2. おんなじことをやっている人がいない
  3. 専門用語や体系的な知識が足りない

というのが理由です。

それぞれどうやって解決するかと言うと、


1.最初は人に聞かないと右も左もわからない
→先輩や友人に教えてもらう。もしそういった環境がなくて、ある程度お金をかける余裕があるなら、スクールに通うことをおすすめします。スクールでは、プロの先生が手取り足取り教えてくれるので、成長速度をかなり速めることができます。比較的時間に余裕のある人は、ぶっちゃけ独学でもいいかなーと思いますが、どちらかというと時間に余裕がない人は、スクールに行ってしまう方がいいかもです。有名なのはこの3社です↓

2.おんなじことをやっている人がいない
ある程度プログラミングができるようになってくると、だんだん同じことをやっている人がネット上に存在しなくなります。
これは仕方のないことです。なぜなら、「まだ世の中にないからそのプログラムを書くんでしょ」と言いたい。
なので、自分で開拓していくしかないんです。その時に武器になるのは、体系的な知識です。知識の習得方法については、この記事を読んでいけば大丈夫です。

3.専門用語や体系的な知識が足りない
ネットでプログラミングのことを検索しても、内容が理解できないとどうしようもないです。なぜ理解できないかというと、これも体系的な知識が足りていないから。これについては次の章で解説します。

 

プログラミングについて最低限知っておくべきこと

プログラミングを始めるにあたり、最低限知っておいた方がいいことを書きます。というのも、ここを抑えておかないと多分すぐに挫折してしまうから。

 

覚えなきゃいけないこと、覚えなくていいこと

プログラミングについてこらから勉強するとき、気をつけてほしいことがあります。それは、言語の書き方ではなく、仕組みを理解することです。
プログラミングは、検索して自分で解決できるようになる、という状態になればあとはどーにでもなります。

  • 言語の書き方 →そんなことはググればわかる
  • 仕組み →これがわからないと、困ったときにググって解決できない

なので、仕組みを理解していくことが大切です。

プログラミングの仕組み

f:id:pontasensei:20190914020238p:plain

じゃあ、プログラミングの仕組みとはなんぞ、という話をしますね。
一言で言うと、プログラミングとは「人間が読める文章でコンピューターへの命令を書くこと」です。
そもそもコンピューターの中では、電気信号のON/OFF、つまり1か0でしか、物事を処理できません。

  • 数字はすべて2進数という0と1の羅列で表現されます。たとえば、13は1101です。
  • 文字データも0と1に変換されます。
  • 画像データも0と1の組み合わせでデータを持ちます。

こんな感じで、コンピューターはすべて0か1でしか理解できません。なので、突き詰めて考えると、コンピューターに命令するためには、0と1を並べて指示する必要があるのです。

カツオ「コンピュータ君!011001100010100011010101010101001をやって下さい」

みたいな。
そんなの無理ですよね!そこで発明されたのが「プログラミング言語」というものです。
コンピューターと人間の間に立ってくれて、言葉を翻訳してくれるヤツです。PHP君とか、Python君とか、Java君のことです。
彼らもまだまだ完璧ではないので、人間の言葉をちょっと工夫して、伝えてやる必要があります。それがプログラミング言語です。

 

プログラムが動く環境とは

プログラミング言語について、ざっくりと理解できたと思いますが、今度は「環境」という言葉についてお話します。
プログラムが動くためには、コンピューターが処理するためのツールが必要になってきます。そのツールたちのことを「環境」と言います。
それらのツールって何かって言うと、たとえば「サーバーOS」。フツーの人であればWindowsやmacのOSを使っています。でも、プログラムを処理するときにサーバー用のOSが必要になることもあります。たとえば、いま見ているこの記事は、はてなブログのサーバー上でサーバーOSが処理したデータを表示しています。
ほかにも、たとえば「データベース」とか。データベースとは、データを効率よく格納/取り出しできる仕組みです。たとえば、ググったときに検索結果がスパーんと出てくるのは、Google先生が持っている「データベース」にアクセスしているのです。
このように、プログラムが動くためにはいろんなツールたちが、力を合わせています。これらを理解し、そして準備してあげないと、プログラムは動きません。
初心者がいちばんつまずくのが、この「環境」だと思います。プログラミング言語を勉強したいと思ったとき、書いても書いても、「環境」が整っていないとまったく動いてくれず、なにがなんだかわからなくなってしまうのです。

 

"プログラミングを学ぶ"とは

プログラミング言語自体の書き方なんて、あとからどうにでもなります。大事なのは、プログラムがなぜ動くのか、どういう環境が必要なのかを理解していくことです。
プログラミングを学ぶとは、言語を学ぶのではなく、仕組みを学ぶことなんです。

 

プログラミングが難しいと思う人がやるべきこと

プログラミングは難しいです。でも、大丈夫です。ちゃんとステップを踏んでいけば、どんな人でもできるようになります。

言語を決める

プログラミングを始めるには、どのプログラミング言語をやるのか決める必要があります。というのも、言語によって作れるものや、準備しなければいけない環境が違うからです。
すでに仕事の関係などで習得すべき言語が決まっている方は迷うことないですが、もしどれにしようか決めなければならないなら、下の表を参考にしてみてください。

言語 難易度 作れるもの 環境キーワード
エクセルマクロ(VBA) ★★☆☆☆ 自動化ツール Excelのみ
C、C++ ★★★☆☆ シミュレーション パソコンのみ
HTML ★☆☆☆☆ 簡単なホームページ サーバーのみ
CSS ★★☆☆☆ キレイなホームページ サーバー、HTML
JavaScript ★★☆☆☆ 動きのあるホームページ サーバー、Apache、HTML、jQuery
Ruby、Ruby on Rails ★★★☆☆ Webスクレイピング、Webアプリケーション、人工知能など サーバー、HTML、Apache、SQLite、MySQL
Python ★★★☆☆ Webスクレイピング、Webアプリケーション、人工知能など サーバー、HTML、Apache、SQLite、MySQL
PHP ★★★★☆ Webアプリケーション(ECサイトとかWordpressとか) サーバー、HTML、Apache、MariaDB、Perl、XAMPP
Swift ★★★★☆ iOSアプリ Mac、Xcode、AppleDeveloper
Java ★★★★★ 業務アプリケーション(注文処理とか、在庫管理とか、夜間バッチも)、デスクトップアプリ サーバー、HTML、JRE、JDK、Oracle、MySQL

 

この中でおすすめの言語は、「Ruby」か「Python」です。難易度がそこまで高くなくて、いろんな種類のアプリケーションを作れる言語だからです。
初めてプログラミングをする方は、「Ruby」か「Python」で間違いないです。
また、すでにひとつの言語をすでにやったことがある人なら、次に取り組む言語は断然「Java」がおすすめです。
Javaは今のところ世界一需要がある言語なので、つぶしが効きます。
難易度が高いので初心者にはお勧めできませんが、自信があるならチャレンジしてみてもいいかと思います。

まずは一冊本を通す

先ほど紹介した通り、初心者におすすめの言語は「Ruby」か「Python」です。
体系的な知識をつけていくうえで、チュートリアルのように勉強していくのがおすすめです。
そのためには、順序だててクリアしていくような内容の本を買うのが良いです。

初心者がRubyを学ぶときにおすすめの本は、「3ステップでしっかり学ぶ Ruby入門」です。


初心者向けに丁寧に書かれています。
ただ文法を羅列して、サンプルコード羅列しておしまい。みたいな乱暴な本ではなく、ちゃんと環境構築のところから丁寧に解説されていて、順番に知識を身に着けていけるところが◎goodです。

また、初心者がPythonを学ぶときにおすすめなのは、「独学プログラマー Python言語の基本から仕事のやり方まで」です。


この本は、超ベストセラーです。正直なところ、すべてのプログラミング書籍において、この本の右に出るものはないと思います。
この本では、Pythonのことも勉強しつつ、プログラムの仕組みや、仕事の進め方まで解説されていて、非常にバランスのとれた本だなーと思います。
僕の会社は金融ですが、システムにまったく関係のない普通の社員向けのPython研修があって、その研修ではこの本を使っています。
Webスクレイピングによる働き方改革が狙いです。

 

なにがなんでもHelloWorldを表示する

f:id:pontasensei:20190914023330p:plain

プログラミング学習用の本を買ったら、あとはパソコンの前でひたすら手を動かしましょう。
まずは、環境を作るところが最初の難関です。これについては、まずは本に書いてあることを忠実に再現しましょう。
そして、プログラミングの世界では有名な、「HelloWorld」という言葉を画面に出しましょう。
「HelloWorld」が出せる=「環境構築ができた」ということになります。

 

コーディングを練習する

環境構築まで済ませてしまえば、あとはコーディングの練習をしていくだけです。
プログラミングを進めるには、決められたルール(文法)を守りながらコーディングしていく必要があります。
最初は何度もエラーが出てしまうと思いますが、一つずつ着実にすすめていけば、どんどん身についてきます。

 

プログラミングを理解するための最終ステップ

他の言語も試してみる

プログラミングというのは、ひとつの言語をつきつめて理解してしまえば、すぐにほかの言語に応用することができます。
ネットワーク、サーバー、データベース、文法、オブジェクト指向などの知識が一通り見についてしまえば、いままで経験したことのない言語に取り組む場合でも、すぐに習得できてしまいます。
僕が思うに、その「共通感」みたいなところは、二つ目の言語を習得するとよくわかります。
なので、ひとつ言語を習得したら、ぜひほかの言語にもチャレンジしてみてください。

初心者におすすめなのは「Ruby」か「Python」ですが、二つ目の言語では圧倒的に「Java」がおすすめです。
スッキリわかるJava入門 第2版 (スッキリシリーズ)
Javaは難易度が少し高めですが、世界一使われている言語なので、損はないです。

ぜひ、二つ目のプログラミング言語にもチャレンジして、共通しているところ共通していないところを理解してほしいです。
そしたら、未知の言語に「明日からよろしく!」と言われても、即戦力として活躍できるほどの力がつくと思います。
※実際の現場はそんなもんです。

 

まとめ

さて、冒頭の話にもどりますが、なぜプログラミングって難しいんでしたっけ?
それは、「ネットで検索して自分で解決できないから」でした。
ですが、本記事に書いた方法で取り組んでいただければ、必ず体系的な知識を身につけることができます。
そしたらどうなるかというと、

 

体系的な知識がある
 ↓
自分でネットで検索して、理解することができる
 ↓
プログラミングなんて、難しくないじゃん!

 という思考回路になります。
この状態になったら、プログラミングは一人前と言えるでしょう。
ぜひ、積極的に取り組んでみてくださいね。

 

男のラウンドファスナーの長財布おすすめベスト3(予算5万〜10万)

f:id:pontasensei:20190911012706p:plain

 

お財布が欲しい30代男性「ラウンドファスナー長財布が欲しい!予算は5万円~10万円で、10年くらい長く使いたいな~。いろいろあるみたいだけど、結局どれがいいのかな?」

 

この疑問にお答えします。私自身2年前にラウンドファスナー長財布を探しました。ネット上には大量に情報が転がっていて、はっきりいってどれを選んだらいいのかわかりませんでした。
結論から言うと、私の場合は「ボッテガヴェネタ」のラウンドファスナー長財布を買いましたが、そこにたどり着くまでに最後まで迷った3本の長財布をご紹介します。

本記事の内容

 

元々は、ATAOのlimovitro(リモヴィトロ)が欲しかった

いきなりベスト3はこれだー!って紹介してもいいのですが、まずは私がラウンドファスナー長財布を購入することにした経緯あたりを簡単にお話します。
突然ですが、ラウンドファスナー長財布ってよくないですか!?
「うーん、どうでしょう」、という声や、「そうそう!」という声も聞こえてきそうです。
私がラウンドファスナー長財布を買おうと思ったきっかけは、私の母が「ATAOのlimovitro(リモヴィトロ)」を使っているのを見て、一目惚れしてしまったからです。

ATAOのlimovitro(リモヴィトロ)は、ドラマで北川景子さんも持っていたということで、けっこう当時話題になっていまして、メンズのカラーがないかを必死に探しました。
しかし、ない・・・!
メンズのカラーがなく、カワイイ系しかないのです。

しかたなく、仕切り直して別の長財布を探すことにしたのですが、「ラウンドファスナー」というものに強い興味が残りました。
そこで、ラウンドファスナー長財布を探すことにしたわけです。

当時、「ラウンドファスナー長財布 おすすめ」でググったところ、「○○30選!」とか「××18選!」とかゴリゴリのサイトばっかりヒットして、けっこうドン引きしてました。
なので、オンラインで検討するのは断念し、実物の確認と直感的なブランドイメージで決めていくことにしました。

 

男っぽいブランドが良いと思います

突然ですが、ルイヴィトンとシャネルは好きですか?
好きな方いらしたら申し訳ないのですが、私は長財布を買う上では候補から外してしまいました。
というのも、どちらのブランドもキラキラした女性が持っているイメージがあったからです。

男なら、男らしいブランドを使いたいなと。
そこで探し当てた"男らしい"ブランド3つがこれです。↓

  • ボッテガヴェネタ
  • ブルガリ
  • ホワイトハウスコックス

他にも男らしいブランドはありますが、より高級感のあるブランドに絞りました。
高級なブランドイメージで、男らしいところといえば、この3ブランドになるかと思います。

前置きが長くなってしまいましたが、いまから上記3ブランドが出しているラウンドファスナー長財布を、紹介していきますね。

 

1位:ボッテガヴェネタのラウンドファスナー

f:id:pontasensei:20190911013656j:plain

私の場合は、ボッテガヴェネタのラウンドファスナー長財布を買いました。
いちばんの決め手は、「イントレチャート」です。皮を網目状に編む技術のことね。
ボッテガヴェネタといえば、このイントレチャートがトレードマークで、実物を見た瞬間に惚れました。
同じような感覚がビビッっと来る方は、ボッテガがおすすめです。

 

2位:ブルガリのラウンドファスナー

ブルガリのラウンドファスナー長財布は、最後までボッテガヴェネタと迷いました。
リザードスキンがなかなかシブいのと、リング状の「ブルガリ・ブルガリ」がトレードマークになっていて、バランスがすごくいいなと思いました。
リザードスキンのシブい感じの方が好きな方は、ブルガリがおすすめです。

 

3位:ホワイトハウスコックスのラウンドファスナー

上質なレザーブランドとして有名なホワイトハウスコックスも、候補のひとつでした。個人的には質素な感じがして、購入には至らなかったのですが、人によってはたまらないと思います。
ブランドの主張はせずに、「見た目はシンプルで、実際には良いものを使っている」という感覚で使っていきたい人におすすめです。
レザーの質を考えると、コスパはかなりいいです。

 

まとめ

ラウンドファスナー長財布は、いろんなブランドから出ています。
私の場合は、"男らしい"、"高級"なブランドを3つ候補に挙げてそこから選びました。

  • ボッテガヴェネタ
  • ブルガリ
  • ホワイトハウスコックス

その結果、(結局ほぼフィーリングですが)私の場合はボッテガヴェネタのが一番良かったです。

ちなみにこちらでもレビューしていますので、よかったら読んでいってねー。

では。

ボッテガヴェネタ長財布レビュー!(ラウンドファスナー)

f:id:pontasensei:20190820232521j:plain

ボッテガヴェネタのラウンドファスナー長財布にするか迷ってるけど、結構高いしな。。。本当にいい買い物になるか不安だな〜。ボッテガヴェネタのブランドイメージはいいのかな。ラウンドファスナーのメリット・デメリットも知りたいな。


こういった疑問に答えます。

そもそも「ラウンドファスナーって何?」「ラウンドファスナーにするかどうかまだ決めてない」って人は、↓こちらの記事も読んでみて下さい。

 

実際にボッテガヴェネタのラウンドファスナー長財布を2年間使用しています。
本記事を読むことで、実際にボッテガヴェネタのラウンドファスナー長財布の良い点・悪い点が分かります。

 

✓本記事の内容


ボッテガヴェネタのラウンドファスナー長財布の徹底レビュー

メリット1:個性的なイントレチャートがこだわりを感じさせてくれる。

f:id:pontasensei:20190820233836j:plain

 

「イントレチャート」とは、イタリア語の「intrecciare(編む)」から派生した言葉で、ボッテガヴェネタの代名詞となっています。

ボッテガヴェネタを知っている人が見たら、遠くからでも一発で分かるほど目立つデザインです。

 

あ!ボッテガじゃーん

まあね!

オシャレ!やっぱ、ボッテガいいよね〜

(へぇ、いいもの使ってるんだなぁ…やるな)

 

そういった光景が目に浮かぶ。

そんなブランドです。

 

メリット2:バッグを持っているような高級感

f:id:pontasensei:20190820234232j:plain

 

ラウンドファスナー自体、合理的な選択とは思えません。
毎回、ジップを開け閉めしなきゃならないですから。

ですが、大切なお金、大切なカードを持ち運ぶわけですから、大事にしまうべきだと、僕は思います。

そして、お財布も大事にする。

 

そういった意識を持てるし、周りにもそれが伝わる。

ボッテガヴェネタのラウンドファスナー長財布は、そんなお財布だと思います。

 

デメリット1:内部ジップはわずかに干渉します

f:id:pontasensei:20190820234413j:plain

 

ラウンドファスナー長財布を買うときに、必ず気をつけなければいけないのが、「内部ジップの巻き込み」です。

中のジップが外を向いていると、お財布を閉じたときにぶつかってしまいます。

 

このボッテガのお財布も、わずかですが内部ジップが干渉します。

 

デメリット2:YKKではなく、ジップは若干硬め

f:id:pontasensei:20190820234517j:plain

 

世界一のファスナーブランドである「YKK」ですが、ボッテガヴェネタのラウンドファスナーには採用されていません。

そのせいかは不明ですが、ファスナーの滑りは若干硬めに感じます。

ファスナーの滑りは潤滑スプレーで解決できますので、長く使いたい方は、KUREの「シリコンスプレー」をおすすめします。

大容量を選ぶなら、ラウンドファスナー長財布か…

違います!今のラウンドファスナー長財布のトレンドは、良くも悪くもスリムです!

 

よく、「大容量がいい人はラウンドファスナーにしましょう」と紹介されていますが、最近の傾向は違うようです。

 

ボッテガヴェネタのラウンドファスナー長財布の良い所は、シュッとしていること、だと思います。

 

実際に、カード収納は8ポケットしかないです。

 

その代わり、ラウンドファスナーなのにすごくスッキリしたデザインになっています。

僕は好きですが、人によっては容量が足りないと感じるかもしれません。


デメリット4:カードは少し取りづらいかも

f:id:pontasensei:20190820235739j:plain

 

カードは取り出しづらいです。

見開きの大きさが限定される上、外側の記事が硬いので、最初は戸惑うかもしれません。

 

ですが、長く使っていると硬さはちょうど良くなりますし、取り方も慣れます。

それでも気になる方は、見開き長財布のほうがいいかもしれません。

 

ボッテガヴェネタのブランドイメージ

f:id:pontasensei:20190821000008j:plain

 

ボッテガヴェネタのブランドイメージは一言で言うと、「知る人ぞ知るイントレチャート」です。

ボッテガヴェネタは1966年にイタリアで創業された、比較的若いブランドです。

 

当時から高級レザーを多数取り扱っており、細い革をメッシュ状に編み込む「イントレチャート」で爆発的なヒットを生み出しました。

 

それ以来、ボッテガヴェネタというブランドと同レベルで、「イントレチャート」自体にブランドイメージが宿っているわけです。

 

他のブランドだと、ブランド名を財布に出しますよね。↓

でもボッテガヴェネタは、ブランド名を外側には出しません。内側に小さく書いてあるくらいです。※あとは一応ファスナーにも

f:id:pontasensei:20190821000234j:plain

 

じゃあ主張してないか?というと全く逆ですね。

「ボッテガヴェネタだよ」というアピールはしませんが、「イントレチャートだよ」というアピールは凄まじいです。

なので、知っている人なら100%気づくし、逆に知らない人は何もわからない。
というメリハリがあるブランドです。

 

対象年齢は20代後半〜40代前半といったイメージです。


安心して格安で購入する方法

ブランド物を格安で安全に買うためにいつも利用しているのが「モダンブルー楽天市場店」さんです。
楽天市場以外にもショップを持っていて、返品保証、梱包、スピードがしっかりしています。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

ボッテガヴェネタ BOTTEGA VENETA ラウンドファスナー 長財布 小銭...
価格:77400円(税込、送料無料) (2019/8/21時点)

楽天で購入

 

ちなみに…買った直後に不具合があれば、返品可能です。

修理が必要になった場合は、全国にあるボッテガヴェネタ正規店に持っていけば受け付けてもらえますよ。

 

 

 

AWSインスタンスへの接続でエラーが出たらやる事

この記事はAWSでWordPressを立ち上げたことがある人が対象です。

やったことない人は、AWSでWordPressを爆速で立ち上げるチュートリアルがあるのでぜひぜひやってみてくださいな。↓

そんでもって、このチュートリアルなんですが、
WordPressを爆速で立ち上げることを体感するにはいいのですが、
いかんせんすんなり接続ができない。。
 
接続って言ってるのはこれね。

f:id:pontasensei:20190818182948p:plain

 
本来であれば、このボタンを押すと、
コマンドを叩ける画面が使えるようになるイメージなんだけども、
Amazonさんのチュートリアルがシンプルなせいでエラーになるんですわ。
 
結論から言うと、
「keypairを作成して、インスタンスを再度作り直す」
ことで治ります。

 

目次

 

1.どんなエラーがでるのか

接続を押します。
f:id:pontasensei:20190818183000p:plain
 
するとこんなのがでる。

f:id:pontasensei:20190818183028p:plain

 

インスタンスがキーペアに関連付けられていません。
このインスタンスがキーペアに関連付けられていません。キーペアがない場合、有効なユーザー名とパスワードの組み合わせを使用してこのインスタンスにログインする必要があります。
 

2.なんでエラーになるのか

そんな時に見てもらいたいのがここ。
インスタンスの説明のところの「キーペア名」

f:id:pontasensei:20190818183055p:plain

キーペアってのは、「インスタンスに安全に接続するための鍵」のことで、
ここが空欄になってるということは、その鍵が"ない"ということ。
 
だからさっきみたいなエラーがでる。
 
Amazon様のチュートリアルでは、キーペアの設定をスルーしてるんです。↓ 

aws.amazon.com

 
チュートリアルの時になにしてたかというと、これ↓

f:id:pontasensei:20190818183106p:plain

 
それもそのはず、このチュートリアルは
WordPressを爆速で立ち上げて、
「ほらすごいでしょ!AWSいいでしょぉぉ」
というのが目的だから。
 
いいんです。
 
本気のチュートリアルは、また別にある。

f:id:pontasensei:20190818183120p:plain

ね。
 
とはいえそこまではやりたくはない。
じゃあどうするか。
 
 

3.キーペアの作成方法

キーペアがないのが問題、ならキーペア作りましょう。
手順は下記リンクの通り。 

docs.aws.amazon.com

 
やるのはこの部分↓

f:id:pontasensei:20190818183136p:plain

4.インスタンスの再立ち上げ

キーペア作るだけではだめで、
作ったキーペアをインスタンスの設定時に組み込む必要があります。
 
なのでキーペアがないインスタンスは、いったんあきらめて
新しいインスタンスを起動する必要があります。
 
なので、下記チュートリアルをもっかいやります。
 
ただし、ここが一番重要で、
この画面が出たときに、さっき作ったキーペアを選択するのです。

f:id:pontasensei:20190818183155p:plain

この手順を正しく行えていれば、
hoge.pem的な感じでキーペアのところに名前が入ります。
 
 
 

5.接続方法

では接続してみましょう。
 
今度はこんな画面が出るかと思います。
ちなみに「ブラウザから直接接続のJavaSSHほげほげ」というほうは気にしないでください。
※古いやり方が残してあるだけです。メジャーな方を使いましょう。
 
手順1,2は飛ばしてよし。
 
手順3ですが、Windowsの場合はコマンドを読み替えてあげる必要があります。
 
Windowsのコマンドプロンプトを立ち上げて(windowsキー → "cmd" → Enter)、権限の設定をします。
 
cd [pemファイルのフォルダ]  ※pemファイルを置いたフォルダのパスを入れて
cacls ***.pem /g *user*:R  ※pemファイル名と、あなたのWindowsアカウント名を入れて
 
すると、
よろしいですか (Y/N)?
と聞かれるので、"Y"→Enter
 
とすると、権限の設定完了です。
これやらないと、接続時にAmazonからはじかれます。
 
ではそのままトドメの一発。手順4
 
黄色い行をコマンドで叩きましょう。
※pemファイルが置かれているところにcdコマンドで移動してから実行してね。
 
以上



 

30代におすすめのメンズ財布

「なんとなく財布が欲しいけど、どんなのがいいかな〜」
「そもそも財布ってどんなのがあるんだろう」


こういった疑問に答えます。

 

一言にメンズの財布と言っても、いろんなタイプのものがあり、タイプ別にメリットデメリットがあります。

本記事を読むことで、自分が使いたい(あるいはプレゼントしたい)財布がどのタイプに該当するか、見つけることができます。

※本記事は30代メンズにお届けします


1.長財布(見開き型・かぶせ蓋)

 

財布といえば、まず思いつくのが、この「長財布(見開き型・かぶせ蓋)」のタイプです。

特にビジネスシーンで最も一般的で、
「スーツの胸ポケットに入れて使いたい」人はこのタイプがおすすめです。

逆に、夏にスーツを着用しない場合、結局バッグやズボンのポケットに入れるしかなく、扱いに困ることもあります。
また、プライベートでも同じ財布を使うつもりで、ポケットに入れたい人には、あまりおすすめできません。

大切な財布をポケットに入れると、型崩れだったり、湿気で劣化が早まります。

 


2.ラウンドファスナー長財布

 

長財布にジップがついたタイプが、この「ラウンドファスナー長財布」になります。

「通常の長財布よりも、大容量のものを使いたい」人や、「ちょっとしたバッグを持ち運ぶような高級感が欲しい」人におすすめです。

衣類のポケットに入れるには少々サイズが大きいため、基本的にはバッグに入れて持ち運びます。

なので、胸ポケットからサクッと出したい人には向きません。


3.コンパクト財布

 

文字通り、コンパクトな財布。近年一番売れていてちょっとしたブームになっている財布です。

ブームの火付け役となっているのは、キャッシュレス化です。最近はsuicaやクレジットカードさえ入っていれば、ほぼ事足ります。

通勤時の定期を忍ばせて、あとは少々の小銭が入るタイプを買ってしまえば、通常の財布の出番はほぼなくなってしまいます。

個人的には、「コンパクト財布+ラウンドファスナー長財布」というセットで使用することをおすすめします。

繰り返しになりますが、日常生活は「コンパクト財布」でほぼ事足りるので、それをポケットに入れて通勤pr買い物。
いざというときはバッグから、「ラウンドファスナー長財布」をバッグから取り出す。

というイメージです。

「コンパクト財布」は安価なもので十分です。
ポケットに入れて使う前提になるため、痛みも早いです。なので、ガシガシ使えるようにコスパで選んだほうがいいかと。

逆に「ラウンドファスナー長財布」の方は、フォーマルな場面で活躍し、かつ大容量で高級感があるものをおすすめします。
バッグに入れて大切に10年間は使っていくイメージです。

「ラウンドファスナー長財布」オススメベスト3はこちら


4.二つ折り財布

 

二つ折り財布も依然として人気があるタイプのひとつです。
ただ、長財布のほうが需要があり、最近はあまり人気がありません。。

よほど気に入ったものがなければ、二つ折り財布を買うよりも、無難に長財布を買ってしまったほうがいいでしょう。


5.【番外編】ベリベリ財布

 

最後にご紹介するのは、コスパ最強の「ベリベリ財布」です。
※勝手に名前つけました。テキトーですみません。

マジックテープで蓋をするタイプで、ベリっと開けるものです。

とにかく楽で、安くて、ガシガシ使える。
超合理的な財布です。

最強のメンタルを持った人でないと、フォーマルな場面で使用することはできないでしょう。

合理的で個性が欲しい人に、おすすめです。

 

Bluetoothイヤホン買いたいならBOSEにしときな

「Bluetoothのイヤフォンが欲しいんだけど、どれがいいかな?やっぱAppleかな?」
と聞かれたら、

迷わずBOSEの
「SoundSport wireless headphones」
をおすすめします。

 

Bose SoundSport wireless headphones ワイヤレスイヤホン ブラック

Bose SoundSport wireless headphones ワイヤレスイヤホン ブラック

 

1年以上前から通勤や日常生活のなかで抜群のパフォーマンスを発揮している、このイヤフォン。
もう手放せません。

この製品のポイントは、

  1. 音質が最高
  2. 紛失しにくい

という2点です。


音質が最高

BOSE製品の特長は、音の迫力がすごいことです。
スタイリッシュな見た目からは想像できないレベルで、ずんずんした重低音を出してきます。

「SoundSport wireless headphones」も同じ志向で、
見かけは他のBluetoothイヤフォンと変わらないものの、すごい迫力の音を味わうことができます。

気づけば身の回りのスピーカーやヘッドフォンは、
ずっとBOSEを使っています。

 

Bose SoundLink Mini Bluetooth speaker II ポータブルワイヤレススピーカー カーボン

Bose SoundLink Mini Bluetooth speaker II ポータブルワイヤレススピーカー カーボン

 

↑2年前に買いました。
キッチンカウンターに置いていて、基本的にはリビング方向に向けています。
たまに料理しながら音楽を聴くときは向きを変えたりもしますね。

映画を見るときは、テレビの前に持っていったりもします。
Bluetoothかつバッテリー駆動なので、どこに持っていってもどの端末からでも使えます。

まだ手に入れていないですが、一軒家にもし住むことができるなら、絶対にこれを買います。↓

Bose Lifestyle 600 home entertainment system ホームシアターパッケージ Amazon Alexa対応 ブラック

Bose Lifestyle 600 home entertainment system ホームシアターパッケージ Amazon Alexa対応 ブラック

 

 

というか、これを置く前提でリビングを設計しますね。
テレビの大きさとソファーの位置を計算しますわ。

とにかく、BOSEの音はサイコーです!
BOSEを試したことない人は、ぜひとも家電量販店に行って試しに聞いてみるといいですよ!


コードが付いていた方が紛失しにくい

さて、イヤフォンの話に戻します。
Bluetoothイヤフォンを買うのであれば、絶対にコードで左右がつながっているタイプがいいと思います。

なぜなら、紛失しそうだから。
コードで繋がっていれば、ふとしたときにイヤフォンを外した時に、首にかけておけます。
また、バッグの中や部屋の中で、コロコロとどこかに行ってしまうこともありません。

なので、コードありのものを買うべきです。

BOSEの「SoundSport wireless headphones」であれば、
音質がサイコーで、無くしづらい。

Bose SoundSport wireless headphones ワイヤレスイヤホン ブラック

Bose SoundSport wireless headphones ワイヤレスイヤホン ブラック

 


ちなみに、同じBOSEからコードなしのタイプもあります。↓

 

Bose SoundSport Free wireless headphones 完全ワイヤレスイヤホン トリプルブラック

Bose SoundSport Free wireless headphones 完全ワイヤレスイヤホン トリプルブラック

 

 

コードありと比べて、音質に違いはありません。
なので、コードありの方が安いし無くさないし、おすすめです!

 

 

「Galaxy S10+」使用感レビュー

 

 

Galxy S10+の検討~購入を経て感じたことをまとめる。
ネット上でいろいろと言われているが、実際のところどぉなのか参考にしてほしいと思う。

ではさっそく。↓


ヌルサク感がハンパない

スマホを買い換えた最大の理由。
Antutuベンチマークで35万点を叩き出すモンスターマシンってのは本当だった。

スマホは1日に合計3時間は触っている。その動作が10%向上するだけで、1日約20分の時短に匹敵する。

もともとHUAWEIの「P10 Lite」という廉価なスマホを使っていたが、アプリを数個起動しているだけで、例えばgoogle mapやカメラの起動が著しく遅くなる。
ひどいときは、アプリがクラッシュしたり、再起動を余儀なくされることもしばしばあった。

HUAWEI P10 Liteを酷評するつもりはまったくない。コスパという意味では、購入当時最高のパフォーマンスを誇っていた。
だが、今となってはAntutuベンチマークが5万の端末と、35万のモンスターマシンとでは、まったく勝負にならない。

Galaxy S10+はすさまじく、裏でアプリが何個起動していようが関係ない。最高のヌルサク感を提供してくれる。

 

バッテリーはまったく問題ない

ネット上では、バッテリーの持ちが課題だとか、よく言われているが、実際にはなんの問題もない。

ネットサーフィン1時間、kindleで読書1時間、音楽再生1時間、記事編集1時間と、計4時間使っても、100%→60%しか減らない。

いったい、なにを心配すればいいのだろうか。

 

S10にしなくてよかった

実は元々S10+ではなく、S10を買うつもりでいた。しかし、バッテリー容量がおよそ20%も異なる点が気になり、S10+を購入した。

前述のとおり、バッテリーの心配はないが長い目でみると、大容量にしといて良かったと思う。
S10+で100%→60%という使い方は、S10だとおよそ100%→40%ということになる。

そう言われると、だいぶ違った印象になるのではなかろうか。
バッテリーのことが少しでも気になる人は、S10ではなくS10+を買うべきだ。

ちなみに、S10+のほうがサイズが大きく、それがデメリットになると思っていた。しかし、実際は微々たる差だったので気にすることはない。
このへんは、家電量販店で実際に触ってみるとよいだろう。


ディスプレイがほんとに綺麗で鮮やか

S10+に一目惚れした最大の理由。ホントにキレイだ。
端末自体や画面内のデザインも最高だ。

こういう、直感的に美しいと思える端末は、今までiPhoneしかなかったのだが、Androidにもこういう端末があって良かった。

 


ワンセグが見れるしFelicaに対応している

前に使っていた端末が廉価だったこともあり、ワンセグもFelicaも初体験だった。

ワンセグは、この美しいディスプレイを存分に味わういい機会であり、なにより通信料がかからないのがgoodではないか。

また、Felicaについて言うと、いまや日常生活はほぼsuicaで事足りることを考えると、財布をポケットに入れる必要がなくなるのも、とても助かる。


最強の認証体制

端末にロックをかけるのは常識として、しばしばロック解除が面倒に感じることもある。

その点、Galaxy S10はどうかというと、はっきり言って、「本当にこれロックかかってる?」と心配になるレベルだ。

ちゃんと言うと、ロック解除のストレスが皆無だということ。

Galaxy S10+ではパスコード認証以外に、
①顔認証
②指紋認証
③Bluetooth認証
の3つがある。

スマホを傾けるだけで、ロックを解除しようとしてそこに顔があれば①顔認証でシームレスにスマホに入れる。
顔認証が上手くいかなくても、指を画面に添えていれば②指紋認証が働いてスマホに入ることもある。

さらに、そもそもBluetooth端末をリンクさせていると、すでに認証済みとなる。
これはBluetoothイヤフォンをしているときなどに、抜群の効果を発揮する。

以上の3つの認証体制により、はっきりいってロックを解除するストレスがない。というか、本当にロックがかかっているか不安になるので、スマホから顔を背けて確認したくなるレベル、ということになる。


左下、右下の誤りタップが気になるが、工夫すれば問題ない

一部の記事で指摘されている通り、右下や左下のボタンを誤って押してしまうことが、確かにある。
端末の隅々まで画面になっているから、しかたないのだが、最初は面くらった。

ただ、そこはAndroid。いくらでも設定で回避可能だ。
例えば入力キーボードだが、横幅を減らすことができる。
明らかにこの手の誤タップを意識した設定だ。
元々画面が大きいこともあり、誤タップがなくてもキーボードは少し小さい方が楽なので、一石二鳥となる。

また、下のナビゲーションバーも、たびたび誤タップするが、これも隠すことができる。
正確に言うと、隠す代わりに下からスライドするように押すことになる。

この辺の設定方法は、他のサイトを参照してくれ。

ちなみに、キーボードやナビゲーションバーなどはAndroidの設定で回避可能だが、起動したアプリの中に配置されている右下,左下の誤タップについては、もうどうしようもなく、やはりデメリットかと思う。


ケース、画面保護フィルムは付いてくる

細かいところで言うと、ケースや保護フィルムが付いてくるのはうれしい限りだ。

ケースはプリズムホワイトの輝きを失わないクリアなケースで、ケースのサイズ感が実に端末にフィットしてとても良い。
保護フィルムに関しては、最初から貼ってあるので面倒がない。


充電器が着いていなかった

事前にいろいろ調べていた通り、充電器はやはり付いていなかった。
ケースを付けてくれるなら、充電器も欲しいと個人的には思う。

とはいえ、高い買い物ではないので、Type-Cの充電器を事前に買っておくと良い。

 

 

画面ロック中に音楽が止まる人は、これやってみ(Android)

NHKラジオ英会話のアプリが大好きで、いつも聞いているのだが、なぜかスマホをロックすると頻繁に音が数秒途切れる現象が発生していた。

 

画面ロック中でも基本的にはラジオ英会話が再生されるのだが、5分に1回くらい数秒停止するという奇妙な動きに。

 

ロックが解除されているうちは、一切止まらない。

 

治し方は簡単で、
僕の場合は、「バッテリー使用量を最適化」することで治った。

 

僕はGalaxy S10+を使っているが、その場合は↓の手順。

 

設定→アプリ→右上の「︙」タップ→特別なアクセス→バッテリー使用量を最適化→全て→落っこちるアプリがONになってたら、OFFにする。(例えばラジオ英会話)

 

f:id:pontasensei:20190807005938j:plain

 

これで症状は治った。

 

他の機種だと、設定場所は異なる。でも、基本的な考え方は同じなので探してみてくれ。

 

要は、メモリーやバッテリーを消耗しないように、アプリをkillする、のはやめてね、という設定をすれば良い。

 

以上

「Galaxy S10」をUQモバイルで使いたきゃdocomoのSIMロック解除版を買いなさい

家電量販店でGalaxyS10に一目惚れし、
実際に購入するにあたり確認したことをお伝えする。


僕は格安SIMしか使いたくない。
3大キャリアと品質の違いを感じないからだ。
僕はUQモバイルを使っているが、最高だ。


同じ品質のものを買うなら、安いものを使うのが当然だろう。


UQモバイルの契約更新月が近づいてきて、
家電量販店でスマホをぷらぷら眺めていたら、
衝撃的な出会いをした。


これだ。

 


一目惚れしてしまった。
このブログにたどり着いた君も、Galaxy S10が欲しくてたまらないだろう。


いろいろ調べていくと、どうやら”フツー”にいくと、
docomoとauでしかGalaxy S10は買えないことがわかった。
いいよ、いろいろとビジネスの力学が働いているんだろう。


でもね、そこは絶対格安SIMを使いたい。


そしてさらに、いろいろ調べた。
その調べたことをまとめておきたいと思う。


格安SIMでGalaxy S10を使うには2通りしか方法がない。
海外SIMフリー版を買うか、国内版のSIMロック解除版を買うかだ。


Amazonなどのネットで買うのもいいが、どうしても店頭で買いたい。
実物を見て、手渡しで、店員が責任を持って売ってくれるところに行きたかった。


あった。
秋葉原にある「イオシス」というお店だ。
中古もやっているが、未使用品もある。


僕が調べた時の相場はこんな感じだ。↓
・海外版SIMフリー版 → 82800円(秋葉原イオシス店頭販売)
・国内版SIMロック解除版 → 84800円(秋葉原イオシス店頭販売)


調べたこと


■S10のスペックは化け物
 →Antutuベンチマークという、スペックの点数があるのだが、
  35万点という驚異的な数値。
  元々使っていたHuawei P10 liteが5万点なので、その差はかなり激しい。
  カメラの性能もいいらしく、文句のつけようがない。
  ※バッテリーの持ちだけが玉にキズらしいけどね。


■S10 plusじゃなくてもよいか
 →結論としてはS10が良い。
  S10 plusだと2,3万円も高くなっちゃう。
  だけど、それ相応の効果を期待できない。
  
  まず、画面が大きすぎて操作がしづらいと感じた。
  フリック入力の時に、はじっこに指が届かないんだもん。
  これじゃ電車に乗ってるときに、ネットサーフィンできない。


  S10だとバッテリーが弱くなるが、その点は
  職場や車内にケーブルを配備して、マメに充電すればなんとかなるかと。


■国内版と海外版のどちらとするか
 →国内版としておく。
  理由は3点。
  ①まず海外版は技適がなく、電波法違反だ。大人としてそんなのはカッコ悪い。
  ②UQモバイル等の格安SIM取扱業者は、
   国内版の型番しか動作確認を公開していない。その点はリスクになる。
  ③国内版はFelicaが使える。現状使用する予定はないが、今後使ってみたくなるかもしれない。


■画面が側面ギリギリまであるけど、スマホケースで守れるものか
 →これは実際にスマホケースを見て確かめたが、大丈夫そう。


■UQモバイルは使えるのか
 →海外版は対応しているとは言えない状況。
  これは秋葉原「イオシス」の親切な店員さんが教えてくれた。
  UQモバイル公式サイトの説明だと、docomoのSIMロック解除版のみOK。
  ※UQモバイルはau系列のはずが、なぜかau版のSIMロック解除端末だとダメなんだってさ。


  さらにSIMを挿すだけではだめで、
  APN設定とMMS設定が必要とのこと。
  この辺はUQモバイルの動作確認端末一覧の説明をよく読むといい。
  難しくはない。美しい手順書が掲載されている。


■機械のサポート状況はどうだ
 →秋葉原「イオシス」なら初期不良を6か月保証してくれる。(してくれない商品もある)
  それに、修理であれば最近オープンした「Galaxy Harajuku」がある。
  余談だが、海外版でも対応可能とのことらしい。


■Y!mobileやmineoでも使えるか
 →ネット上の口コミではあるが、SIMロックさえ解除していれば、
  Y!mobileやmineoをGalaxy S10で使えるとのこと。
  この辺は、実際に店頭に端末持って行って、優しそうな店員さんを見つけて
  ざっくり稼働確認させてもらえたら乗り換えもありかな。


■カバーはどれがいいか
 →カバーは製品にセットで付属してくるので、いったんそれを使う。
  少しして市場からGalaxy S10のカバーが消え去りそうになる前に、
  1回カバーを買い替える感じで。


次回はレビューするよん。
じゃ。

 

 

画面が大きすぎてPontaカードアプリのバーコードが読み取れないときにやること

僕はローソンが大好きです。
正確に言うと、ポンタが大好きです。
だって、
キャンペーンがいっぱいあって、覚えてるだけでも、
・焼き鳥1本無料
・先着○○名に200ポイントプレゼント
・500mlの水1本無料(商品名は忘れた)
・期間限定でアイスラテが、150円⇒120円に
とかとか。
非常にお世話になっています。
もちろん、基本機能であるポイントカードとしても重宝しております。
そんな便利なPontaカードですが、
先日アプリ化されました。
つまり、
Pontaカードを持ち運ばなくてよくなった」
ということです。
例によって僕はポンタ君が大好きなので、
真っ先にアプリをインストールしたわけなんですが、
「使えない…!!!」
アプリ上にバーコードが表示されて、
それを店員さんに見せて使うんですが、
このバーコードが全然認識されないんです。
レジのスキャナの角度を何度も変えたり、
距離感を変えてみたりと、格闘しないとダメ。
店員さんが
「あれっ…?あれっ…?」
とか言って、1分くらい待ってると
「認識できました」
だって。
毎回こんなことをやっていたら、
ぜんぜんコンビニエンス(便利)じゃないじゃん!
ということで、対策を考えたので、
同じ現象に困っている人がいたら参考にしてください。
 
 

原因は画面の大きさだった

いま日本で一番使われているスマホと言えば、iPhoneですよね。
だから、アプリを作る人たちが真っ先に
テストするのはiPhone端末です。
でもね、androidも忘れないでほしい。
androidには、結構画面の大きいモデルがあって、
僕が使っている「HUAWEI P10Lite」も画面が大きい。
大きな画面でポンタのバーコードを表示すると、
レジのスキャナの幅よりも大きくなるんですよ。
これが原因だった。
iPhoneだったら、きっとちょうどいいサイズになるんだろうね。
 
 

スクリーンキャプチャ取ればよくね?

じゃあ、Pontaカードアプリのスクリーンショットを取って、
縮小すればええやん。
と思ったんですが、Pontaカードアプリは、
スクリーンショットができないようになってました。
友達に画面の写真を撮ってもらって、
LINEで送ってもらうのもありなんだけど、
ちょっとめんどい。
※めんどいとかじゃなくて、本当はやっちゃだめだけどね。。
なので、スクリーンキャプチャ案はボツ。
 
 

そもそも画面小さくできないの?

そこで、思い出しました。
HUAWEI P10Liteには、画面を縮小できる設定があることを。
設定>スマートアシスト>ワンハンドUI>ミニ画面表示
⇒「オン」にする
この設定をオンにすると、
画面下の「ナビゲーションバー」をスライドすることで、
画面サイズを小さくすることができるようになります。
実際にローソンでスキャンしてもらったら、
一瞬で認識されるようになりました。
めでたし。
※あなたの端末がHUAWEI P10 Liteじゃなくても、
 画面を小さくする手順があるかもしれないので、ぜひ探してみてください。
以上

自動ログインしたいならブックマークレットじゃなくてVBSを使え

よく使うWebサイトに、なんとか自動でログインするためにやったこと。
 
やりたいこと
  • 会社のポータルサイトへのログインを自動化したい
  • できればブックマークバーに置いてあるお気に入りを差し替えたい。(デスクトップにショートカットを置くとかはイヤ。)
  • あくまで今まで通り、追加で特別な操作はなしで、ログインを自動でさせたい。
現状、社内ポータルサイトにアクセスすると、
一応「ログインID」と「パスワード」は、
IEブラウザのオートコンプリート機能で補填されていて、あとはEnterを打つだけ
 
そう、
「あとはEnterを打つだけ」
なんだけど、
 
セッションが切れる毎に(PC,ブラウザ,タブを落とすたびに,新しいタブで開くたびに)
毎回まいっかいログイン画面が出てくる。。
 
イライライライラ・・・
 
会社人生あと30年。
あと何回"無駄なEnter"を打てばいいんだ。。
 
 
 

ブックマークレットで試してみる

いろいろ調べた結果、まずはじめに検討したのはブックマークレット
でも、僕の欲している完全自動化とは程遠かった。。
だって、ワンクリックで済まないんだもん。
 
シンプルに3秒後にHelloWorldを表示できる。うまくいった。↓
 
javascript:function login(){alert("hello%20world");};setTimeout("login()", 3000);
 
helloworldを2回表示できる。1個目をOKしたら3秒後にもっかい。うまくいった。↓
 
javascript:alert("hello%20world");function login(){alert("hello%20world");};setTimeout("login()", 3000);
 
サイト表示後だと、helloworld出てこない。うまくいかん…↓
 
javascript:document.location = "https://www.yahoo.co.jp/";function login(){alert("hello%20world");};setTimeout("login()", 3000);
 
どうやら、
①サイトを表示
②あれこれする
という①②を両方セットにしたブックマークレットは、作れないらしい。
 
参考にしたサイトはこれ↓


 

 

まあ、確かにこれができたら、それはそれで危なそうだね。

はい、ブックマークレットの検討はボツ。次。
 
 
 

VBSを試してみる

いままでみたいに、ブックマークをクリックする方法が使えないので、
当初の検討からは外していたんだが、、
しゃーないのでVBSで書いてみることにする。
 
参考にしたサイトはこれ↓
 

 

 

作成したvbsはこれ↓

 
InputAndClick
Sub InputAndClick
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "http://*****(URLはごめんね)*****.portal"
WScript.Sleep 2000
'ie.Document.getElementByName("user")(0).Value = "**(名前もごめんね)**"
'ie.Document.getElementByName("password")(0).Value = "***(パスワードもごめんね)***"
ie.Document.getElementsByName("form")(0).submit
End Sub

 

僕がログインしたい社内ポータルサイトのフォームは、
idが振られていなくって、nameが振られていた。
 
なので、
"getElemenById"じゃなくて、"getElementByName"を使ってます。
 
あと、ログインIDとパスワードの入力については、
IEのオートコンプリートに任せることにした。
※IDとPASSはコメントアウトしたよ。
 
ただ、実行してみたところ、こんなエラーがでてしまった。。↓
「起動されたオブジェクトはクライアントから切断されました。」
 
デバッグの参考にしたサイトはこれ↓
 

 

 

 
“ユーザーアカウントでユーザーアカウント(UAC)を使ってコンピュータの保護のチェックを外すと正常に動作しますので、この対応で逃げたいと思います。”

 

これはつまり、
コントロールパネル>ユーザーアカウント制御設定の変更
⇒レベル最下部まで落とすということ。
 
設定を変えたら、直った。
深いことは知らん。
 
 
 

もっと使いやすくする

IntraLogin.vbsというファイルがデスクトップにできたので、
それをダブルクリックすれば、社内ポータルサイトに自動ログインできるようになった。
 
そして、
このファイルをIEのお気に入りにドラッグ&ドロップして、
ブックマークっぽくした。
 
ただ、さっきのコードのままだと、
「vbsをクリックする度に、新規ウィンドウが開かれる」
のが気に食わん。
 
ということで、
「ウィンドウは増やさずに、新規タブで開かれる&ログインされる」
ように書き換えた。↓
 
InputAndClick
Sub InputAndClick
 
    'オブジェクトを格納する変数
    Dim objShell, objWindow
    'シェルのオブジェクトを作成する
    Set objShell = CreateObject("Shell.Application")
   
    'ウインドウの数だけまわすぞ
    For Each objWindow In objShell.Windows
        'HTMLDocumentだったら
        If TypeName(objWindow.document) = "HTMLDocument" Then
            'そのHTMLDocumentをこの後操作するIEオブジェクトとする
            Set ie = objWindow
        End If
    Next
    Set objShell = Nothing
'新規ウィンドウでは開かない
'Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
'新規タブで開く
ie.Navigate2 "http://*****(URLはごめんね)*****.portal", &H800
WScript.Sleep 2000
'ie.Document.getElementByName("user")(0).Value = "**(名前もごめんね)**"
'ie.Document.getElementByName("password")(0).Value = "***(パスワードもごめんね)***"
'今操作対象のieオブジェクトは、開いたタブの一個手前にあたっている
'ので、もっかいHTMLDocumentを取り直す。
'URLとタイトルを表示させるテスト
 
    'オブジェクトを格納する変数
    Dim objShell2, objWindow2
    'シェルのオブジェクトを作成する
    Set objShell2 = CreateObject("Shell.Application")
   
    'ウインドウの数だけまわすぞ
    For Each objWindow2 In objShell2.Windows
        'HTMLDocumentだったら
        If TypeName(objWindow2.document) = "HTMLDocument" Then
            'そのHTMLDocumentをこの後操作するIEオブジェクトとする
            Set ie = objWindow2
        End If
    Next
    Set objShell = Nothing
ie.Document.getElementsByName("form")(0).submit
End Sub
 
以上

JavaScriptでURLのパラメータによって変化するサイトを作る方法

参考にしたサイトはこれ

 
URLの引数を参考にして、サイトの表示を変えたい。
の2通りがあるが、前者を採用。
 
参考にしたサイトのコードをコピペして、
テキトーに「test.html」とかつけてみたけど動かなかった。
⇒どうやらjQuery言語が混ざっていた模様。
 $マークのところね。
 
// URLのパラメータを取得
var urlParam = location.search.substring(1);
 
// URLにパラメータが存在する場合
if(urlParam) {
  // 「&」が含まれている場合は「&」で分割
  var param = urlParam.split('&');
 
  // パラメータを格納する用の配列を用意
  var paramArray = ;
 
  // 用意した配列にパラメータを格納
  for (i = 0; i < param.length; i++) {
    var paramItem = param[i].split('=');
    paramArray[paramItem[0]] = paramItem[1];
  }
 
  // パラメータidがosakaかどうかを判断する
  if (paramArray.id == 'osaka') {
    $('.pram').append('<p>大阪です</p>');
  } else {
    $('.pram').append('<p>大阪ではありません</p>');
  }
}
 
このコードだと、jQueryが混ざっちゃってるんで、javaScriptのみで、サンプルを作り直してみた。↓
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
<html lang="ja">
    <head>
        <title>サンプル</title>
    </head>
    <body id="body">
        Hello, World!<br><br>
        <a href="?id=tokyo">URL末尾が"?id=tokyo"の場合</a><br>
        <a href="?id=osaka">URL末尾が"?id=osaka"の場合</a><br>
        <a href="?id=nagoya">URL末尾が"?id=nagoya"の場合</a><br>
        <a href="?id=nagoya&pass=tokyo">URL末尾が"?id=nagoya&pass=tokyo"の場合</a><br>
        <a href="?id=nagoya&pass=tokyo&option=train">URL末尾が"?id=nagoya&pass=tokyo&option=train"の場合</a><br><br>
    </body>
<script>
// 現在アクセスしているURLを取得します。
document.writeln("------------------------------------------------------<br>");
var url = location.href;
document.writeln("「location.href」メソッドで取得できる値");
document.writeln("<br>");
document.writeln(url);
document.writeln("<br><br>");
//alert(url+"\nにアクセスします");
 
// 現在アクセスしている"?"以降を取得します。
var a = location.search;
document.writeln("------------------------------------------------------<br>");
document.writeln("「location.search」メソッドで取得できる値");
document.writeln("<br>");
document.writeln(a);
document.writeln("<br><br>");
 
var urlParam = location.search.substring(1);
document.writeln("------------------------------------------------------<br>");
document.writeln("「location.search.substring(1)」メソッドで取得できる値");
document.writeln("<br>");
document.writeln(urlParam);
document.writeln("<br><br>");
 
// URLのパラメータを取得
var urlParam = location.search.substring(1);
 
// URLにパラメータが存在する場合
if(urlParam) {
  // 「&」が含まれている場合は「&」で分割
  var param = urlParam.split('&');
 
  // パラメータを格納する用の配列を用意
  var paramArray = ;
 
 document.writeln("------------------------------------------------------<br>");
 document.writeln("引数を分割した結果");
 
  // 用意した配列にパラメータを格納
  for (i = 0; i < param.length; i++) {
    var paramItem = param[i].split('=');
    paramArray[paramItem[0]] = paramItem[1];
    document.writeln("<br>");
    document.writeln(paramItem[0]);
    document.writeln("   =>   ");
    document.writeln(paramItem[1]);
  }
 
  document.writeln("<br><br>");
 
  // パラメータidがosakaかどうかを判断する
  if (paramArray.id == 'osaka') {
    //$('body').append('<p>大阪です</p>');
    var answer = "大阪です";
  } else {
    //$('body').append('<p>大阪ではありません</p>');
    var answer = "大阪じゃないです";
  }
 
 document.writeln("------------------------------------------------------<br>");
 document.writeln("idが'osaka'かどうかの判定<br>");
    document.writeln("idは");
    document.writeln(answer);
    document.writeln("<br><br>");
 
 document.writeln("------------------------------------------------------<br>");
    document.writeln("たとえばこんな感じで、idごとに、裏のロジックで使用するディレクトリ名も変えられる。↓<br>");
    var directory = "/bbs/";
    directory += paramArray.id;
    directory += "/logs"
    document.writeln(directory);
}
</script>
</html>

 

このコードなら、「test.html」とかテキトーに名前をつけて、
デスクトップにでも置いてもらって大丈夫。
 
ダブルクリックして開いてみて、いろいろ挙動を見てほしい。
?マーク以降にいろいろ値をセットしてみると、表示が変わる。
 

firebaseでリアルタイム掲示板をたった2時間でWeb公開する方法

参考にしたサイトはこれ。
  

 
このサイトの通りに、掲示板を作成してみる。
 
 
Firebaseにログインする。
 
 
プロジェクトを追加
⇒「chatroom」という名前にしてみた
 
 
アクセス権の変更
プロジェクトを開いて、「Database」の「ルール」タブを表示
認証をやらないので、アクセス権を下記のようにする。
{
  "rules": {
    ".read": "true",
    ".write": "true"
  }
}

 

  

Node.jsをインストールしておく
省略。これやらないと、後続のnpmコマンドが打てない。
 
 
firebaseコマンドを打てるようにする
npm install -g firebase-tools
 
 
firebaseにログインする
firebase login
⇒「Y」で進む。
 
 
もろもろ初期構築する
firebase init
 
 
ローカル上でサーバーを動かす
firebase serve
⇒ここでエラー発生。オーマイガー
 
 
firebase serveコマンドを実行したときに、エラーになる。
当然「http://localhost:5000/」にアクセスしてみても、何も表示されない。
どうやら、サーバー立ち上げ時に読み込まれるfirebase.jsonが空っぽで作成されてしまう模様。
⇒その前のfirebase initコマンドのときに、Hostingを選択するときの方法が悪かった。
 Hostingに⇒を合わせてEnterを押していた。
 正しくは、Hostingに⇒を合わせて、"Spaceを押してから"Enter
※英語でそうするように書いてあったのに、ちゃんと読めよおれ...
 
改めて、
firebase serveコマンドを実行したところ、
今度は「http://localhost:5000/」が正しく表示された。
 
 
index.htmlを置き換える
デフォルトのページは、なんとも質素な感じ。
firebase initを実行すると、index.htmlが./public配下に作成されている。
これを、掲示板用のhtmlに置き換える。↓
 
<!DOCTYPE html>
<html><head><meta charset="utf-8">
<title>掲示板</title>
 
<!-- TODO 以下を書き換えてください★★★ -->
<script>
  alert("HTMLコードのTODOの部分を書き換えてください!");
</script>
<!-- ★★★ここまで -->
 
</head><body>
  <h1>掲示板</h1>
  <div><textarea id="txt" rows="4" cols="80"></textarea></div>
  <div><button onclick="post()">投稿</button></div>
  <div><hr></div>
  <div><ul id="logs"></ul></div>
  <script>
  // Firebaseのデータベースを取得
  var db = firebase.database();
  var bbs_db = db.ref("/bbs/logs");
  // ログが追加されたときの処理を記述
  function addLog(data) {
    var val = data.val();
    var e = document.getElementById("logs");
    var li = document.createElement("li");
    li.innerHTML = val.text;
    e.appendChild(li);
  }
  // 誰かがログに追加したら内容を通知するよう設定
  bbs_db.limitToLast(10).on("child_added", addLog);
  // 投稿ボタンが押されたとき
  function post() {
    var txt = document.getElementById("txt");
    bbs_db.push({ text: txt.value });
    txt.value = "";
  }
  </script>
</body></html>

 

firebaseスクリプトをindex.htmlに追記する
firebaseサイトの「Overview」内の「ウェブアプリにFirebaseを追加」をクリック
index.htmlのTODO枠にコピペする。
 
 
web公開する
参考にしたサイトはこれ。

 

いまは認証に興味ないので、参考にしたのは3ページ目の
firebase deploy
のみ。
※でも認証やってみたくなったら、めっちゃ参考になりそう。
 
 
コマンドラインに表示されたURLにアクセスする
⇒インターネット経由で、サイトを確認することができた。