modest violet

modest violet

開発者としてのあれこれや、日々の雑記など

your future hasn't written yet. no one's has.
by Emmett Lathrop "Doc" Brown

【雑記】何故日本ではAppleのCarPlayが普及しないのか

www.apple.com

Appleの「Car Play」がいまいち普及しないなーと。

2014年の3月に発表以来、もうじき3年近くたとうとしています。

日本人のiPhone所有率は約7割で圧倒的、アメリカよりもシェア率は良いわけです。

なのに、そのiPhoneを手軽に車とペアリングできるCar Playがいつまで経っても普及しない。

というか、メーカーから対応されない。

2017.01 時点の対応メーカー

www.apple.com

一部車種のみとか何故に!と言いたい。

そもそも車のナビって高すぎない?

画面も小さいし、TV機能やナビが付いていても20万オーバーって今の時代には高すぎる気がするんですよね。

何らかの圧力でもかかっているのか・・・。

とにかくCarPlayが普及して欲しい。

とめどない、雑記でした。

iOS 10.2 のバッテリーの減り方は尋常ではない

f:id:shin21sk:20170122000625p:plain

前々から気にはなっていたのですが、そのうち直るだろうと放置していたのです。

ただ、やはり我慢が出来なくなってきました。

iPhoneのバッテリーが1日持たない!!

ただでさえ、バッテリー持ちが悪いのに、iOS 10.2にアップデートしてからは顕著。

先程も、

「残り 20% です」

という表示が出て、画面ロックを解除し、ホーム画面へ

その時点で残量が「19%」に減り、

Safariを開いた瞬間に

「14%」に減り、

Safariを閉じると

「残り 10% です」と表示されました!

対処方法は?

色々と調べた結果、細々と対応方法を記載しているページもありました。

ただ、それは総当たり的な方法で、どれか一つでも当たればラッキー的な恒久的な解決方法ではなさそうでしたのでスルー。

やはり、ダウングレードを試みるか、改修バージョンが出来るのを待つほうが賢明なようです。

やはり今後に期待する事は

ガラケー時代は2、3日は充電しなくても使えていたので、スマホもそういう風になればいいんですけど。。。

カメラの性能や防水、おサイフケータイもいいですけど、「携帯」なんだからバッテリーの良さを最優先でなんとかして欲しいですね。

iPhone7では電源が切れるとおサイフケータイが使えないという問題もあるようなので、おサイフケータイや電話といった待機系の電源を別に内蔵するとかとか。

【ASP.NET MVC】【Azure】デプロイ後に「The system cannot find the file specified」エラーが表示される

f:id:shin21sk:20170119202327p:plain

Azureへデプロイ後、やたらと「The system cannot find the file specified」エラーが頻出して少々困ったのでメモ書きです。
原因が判ればたいした話では無かったんですが・・・。

環境

ASP.NET MVC5 + Azure Web Apps + Azure SQL Server + Entity Framework

エラーメッセージ

The system cannot find the file specified

原因

Entity Framework を利用すると、自動的にLocalDbが作成され、LocalDbに対してのDbContext設定が作成されます。

今回、このContextとは全く別のContextを使用していたので、デフォルトの自動生成されたContextは全く気にもしていませんでした。

ただ、この設定がAzureデプロイ後に「そんな接続先ないやんけ、コラァッ!」と怒っていたようです。

「誤った」対処法

Models > IdentityModels > ApplicationDbContext

こちらにおそらくDefaultConnection の指定があります。

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection") // ここの設定を替える
    {
    }
    // 略
}

上記の箇所を普段使いのDbContextに置き換えると、確かに「The system cannot find the file specified」は出力されなくなりました。

ただ替わりに、下記のエラーが発生します。


'/' アプリケーションでサーバー エラーが発生しました。
エンティティ型 ApplicationUser は、現在のコンテキストのモデルに含まれていません。


英語エラー

The entity type ApplicationUser is not part of the model for the current context

スタックトレース

   at System.Data.Entity.Internal.InternalContext.UpdateEntitySetMappingsForType(Type entityType)
   at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
   at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
   at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
   at System.Data.Entity.Internal.Linq.InternalSet`1.FindAsync(CancellationToken cancellationToken, Object[] keyValues)
   at System.Data.Entity.DbSet`1.FindAsync(CancellationToken cancellationToken, Object[] keyValues)
   at System.Data.Entity.DbSet`1.FindAsync(Object[] keyValues)
   at Microsoft.AspNet.Identity.EntityFramework.UserStore`6.<GetUserAggregateAsync>d__6c.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNet.Identity.TaskExtensions.CultureAwaiter`1.GetResult()
   at Microsoft.AspNet.Identity.Owin.SecurityStampValidator.<>c__DisplayClass2`3.<<OnValidateIdentity>b__1>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Owin.Security.Cookies.CookieAuthenticationHandler.<AuthenticateCoreAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.<BaseInitializeAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.<Invoke>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNet.Identity.Owin.IdentityFactoryMiddleware`2.<Invoke>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNet.Identity.Owin.IdentityFactoryMiddleware`2.<Invoke>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNet.Identity.Owin.IdentityFactoryMiddleware`2.<Invoke>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.<RunApp>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.<DoFinalWork>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.StageAsyncResult.End(IAsyncResult ar)
   at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


「正しい」対処法

web.config 内の「DefaultConnection」パスを、LocalDbから本番サーバーの設定に変更する。

但し、EntityFrameworkの記述ではなく、従来通りのConnectionStringの記載方法で書く。

今の音楽にはニオイがない

https://www.amazon.co.jp/b/ref=sv_dmusic_0?ie=UTF8&node=3589137051www.amazon.co.jp

Amazon Prime ミュージックがヤバい。プライム会員になれば、膨大な数の音楽が聴き放題なんです。

今の時代の子供達が羨ましいと思う反面、少し物悲しさも覚えました。

学生時代の音楽は一生モノ

f:id:shin21sk:20170121012308p:plain

流行りの曲というものがあります。学生時代に聴いていた曲というのは、何歳になっても「昔を思い出すタイムマシン」の役割を果たしてくれます。思春期に聴いた曲ってなかなか忘れないものです。

もちろん、プライムやLINEミュージックで一生モノの曲に出会う事もあります。何万曲もある曲の中から出会えた奇跡という楽しみ方もあるかもしれませんね。

音楽のニオイ

学生時代は一部の人を除き、お金を自由に使える訳ではありません。そんなお小遣いをやりくりする中で、三千円近くするアルバムCDはなかなかの出費なわけです。

今みたいにアルバムの中の好きな曲を1曲だけ買うという選択は出来ません。

そして、買ったCDの封を開け、CDディスクをトレイに載せ、再生されるまでの数秒間の気持ちの高揚感。

新しいCDには紙ジャケットのニオイがあります。

ダウンロード音楽に慣れきったこの頃、ふと思い出し懐かしくなります。

ジャケットや歌詞カードを目で触れ、新しい紙ジャケットやCDのニオイ、ケースに触れ、耳で音楽を聴く。

音楽を聞くということは、五感のうち、4つを使っていたハズなのに。

今は「聴く」という感覚しか使っていない事に気づきました。

とはいえ、便利な世の中

ダウンロード一つで好きな曲をいつでも、どこでも楽しめるというのは素晴らしいことだと思います。

ただ、数が多すぎる・・・。先程もプライムで何か聴きたい曲がないか探していましたが、数が多すぎて1曲毎にじっくり吟味する事が出来ませんでした。

手軽さは良いことです。私も最近はほとんどiTunesで購入します。

便利になることで、音楽が無味無乾燥な代物になりつつあるのかな、と。

そう思った時、今の時代の子達は便利な反面、楽しみを1つ失っているなー、と思うのです。

さらにもう1つ前のレコード世代は、CDでも寂しさを感じる傾向にあるようです。
やはり、あのでかくて管理が大変で面倒なレコードですが、独特のにおいがあります。

1枚のアルバムを愛おしく何回も何回も、そして傷がいかないように丁寧に大切に聴く。

そういったCDへの敬意というのを、忘れずにいきたいものだと、溢れかえるプライムミュージックの曲たちを眺めながら思い直したのでした。

生き物を飼うということ

peticonbu.hatenablog.com

とても読まずにはいられないタイトルだったので。

そして読んだ後、色々と考えさせられました。

この飼い主のお方は自分の決断に後悔され、もう猫は飼わないと仰られています。

生き物を飼うということは、当然ですが楽しい事ばかりではありません。

人間よりも圧倒的に寿命が短い彼らと過ごせる時間というのは、あっという間です。

一時期のアイフルのCMで、何も考えずにペットを飼ってしまう人も多く、社会問題にもなっていました。

ペットといえ、出会いは巡り合いです。

この猫も、飼い主さんが必死で考えて下した決断を恨んだりはしないと思います。

「自分よりも圧倒的に寿命が短い生き物を飼うという事自体、既に人間のエゴと思え」と私は昔から考えています。

エゴだっていいじゃないか。この子は私が幸せにするんだ、という意気込みがなければ生き物は飼えません。

今はつらいと思います。でも、いつの日か悲しい別れを埋めてくれる新しい出会いがある事を切に願うばかりです。

f:id:shin21sk:20170121014910p:plain