modest violet

modest violet

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

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

2017年こそスタイリッシュに手帳を扱える大人でありたい

うん、よく分からないタイトルですね。

私は手帳というものを長く使えません。

既に2016年も惨敗しています。

shin21.hatenablog.com

この記事の中では、「下半期頑張るぞ!」と息巻いていますが、使われずに終わりました・・・。

正直、スマホのカレンダーで十分

いや、本当に。

Googleカレンダー、ガチで最強だと思ってます。

Gmailのメール内容から自動的にスケジュール登録してくれたり、リマインダー機能も優秀だし。

そもそも、ブログを書いているから日記も付ける必要ないし。

会議の場とかで困る

困るのは会議とか、客先ですね。

何もださないと、やる気がない的な扱いを受けてしまいます。

メモなんて、紙の裏に書けるじゃないか・・・と思うのですが。

何度か、A4ノートなんかで代用していたんですが、かさばるので長続きしませんでした。

もう、全てにおいて駄目だな。手帳とか持てる性格じゃないわ・・・と開き直っていたんです。

トラベラーズノートとの出会い

そんな折、一つの記事を読みました。

www.bibolog.net

これだ!

これしかない!!

思い立ったら即実行がモットーですので、その日のうちにゲットしました。

色々と悩んだ挙句、「パスポートサイズ」を選択。大きいのはかさばるので、長続きしないかな・・・と。

思ってた以上に、革のいい香りがします。

愛着を持つことが長続きの秘訣なのかもしれませんね。

今年こそは、今年こそは!!

スタイリッシュに手帳を扱える大人でありたい!なりたい!!と思います。

好きな言葉「1 pixel line makes all the difference // 1ピクセルの線がすべてを変える」

f:id:shin21sk:20170125001147p:plain

私は、普段自分の好きな言葉を目の届くところに置いていたり、書いていたりします。

それは自分を鼓舞するためでもあり、戒めるためでもあり・・・。

そんな言葉が結構溜まってきたので、少しずつ書いていこうと思います。

今日は、「1 pixel line makes all the difference // 1ピクセルの線がすべてを変える」です。

そもそもの出典は不明ですが、数年ほど前に下記のサイトで見かけて、一発で気に入りました。

www.webcreatorbox.com

ピクセルとは

ピクセル(英: pixel)、または画素とは、コンピュータで画像を扱うときの、色情報(色調や階調)を持つ最小単位、最小要素。しばしばピクセルと同一の言葉として使われるドットとは、後者が単なる物理的な点情報であることで区別される。例えばディスプレイにおいて320×240ピクセルの画像を100%表示すれば320×240ドットとなるが、200%表示ならば640×480ドットとなる。

出典:Wikipedia

ここで言うと「ドット」の事ですね。ドットの線の事です。たった1ピクセルの横線や縦線で、ガラリと雰囲気が変わるのです。

魅せられた理由

大体の人に、1ピクセル単位であーだこーだ言うと、「細かい所にこだわって・・・」という顔をされます。

いやいやいや、大事ですよ!?

ピクセルの線を引くか引かないかで、印象というのは結構変わってきます。

微に入り細を穿つと言いますが、「普段から細かい箇所を注視しておく事により、大きなミスを防ぐことが出来る」訳です。

そんな精神を端的に表す言葉として、また職人っぽい響きも相重なって、この言葉に魅せられているわけです。

とことんこだわる

何でもそうですが、こだわりを持つことは大切です。

言われたままの仕事をして、何が楽しいのか私には分かりません。必ず自分のオリジナリティーを付け足す工夫をしています。

もちろん、そういったオリジナリティーを追加する事が出来る職種というのは限られているわけで、全てこの通りには行かないとは思います。

でも、スーパーで品出しをする際にも「こだわり」を持つことは可能ですし、工場で物を作る際も自分なりのこだわりを持つことも出来ると思います。

こだわって、こだわって、こだわる事が自分を高めていける術だと思うんですね。

こだわるためには、どうするか。

そう、「これでもか、これでもか」と飽くなき探究心と共に、細かい箇所を突き詰めていく訳です。

1ピクセルの線がすべてを変える

大げさな言葉かもしれません。でも、「小さな事からコツコツと」の精神なんです。

小さなことでも、全体として見たときに思いもよらないインパクトを与える。

そんな色々なエッセンスが詰まったこの言葉。

今日も私を勇気づけてくれます。

【雑記】何故日本では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の記載方法で書く。