Hatena::ブログ(Diary)

udagawaの日記

2017-05-13

[]java8 on AppEngine java8 on AppEngineを含むブックマーク

Jun 20, 2013 10:48AM に初投稿された Java 8 support

https://issuetracker.google.com/issues/35895687

が3/14に動き始めた。


Java8 on App Engine Standard (Alpha)

https://docs.google.com/forms/d/e/1FAIpQLSflZkMzHP_pKBE5w-bZgTQPXT7V6iANJQhqjAjWAiCjOEVGDQ/viewform

で申請できるので一応申請してみた。

「User Guide AppEngine Standard Java 8 (external) - Invitation to comment」

ってメールが2週間後ぐらいにきた(一ヶ月ぐらい前の話なのでいまはもっとやはいのかな?)。

メールに設定方法や注意事項のかいてるGoogleDocsへのリンクがついてくるのでその通りやればよい(AppEngine SDKは最新が必要)。


Eclipseのpluginは https://cloud.google.com/eclipse/docs/ がまだ未対応(Project facet Java 1.8 is not supported by target runtime App Engine Standard Runtime)。でもlocalでJettyの実行は問題ない。


AppEngineへのdeployは maven 経由で行う。

mvn appengine:update

でOK。きちんと動いた。


サーバーの環境変数を表示してみたら

java.version=1.8.0_112-google-v7

java.class.version=52.0

になっていた。

console.cloud.google.com の versions のリストの runtime もちゃんと java7 ではなくて java8 になった。

[]XPS 15 を買って2ヶ月ほどたった XPS 15 を買って2ヶ月ほどたったを含むブックマーク

ハード自体はEnterキーがちょい小さい以外は特に不満はない。


初期状態でアプリ頻繁にかたまったりOSがハングしていた

Dell、New XPS 12/13/15の致命的バグを修正したBIOSとドライバ配布

〜GPUドライバの停止やSkylakeのブルースクリーン問題などが改善

http://pc.watch.impress.co.jp/docs/news/742677.html

を入れてみたらOSはハングしなくなった。

[windows]GPU対応

アプリによっては固まる症状が幾つかみつかったのでGPUをOFFに。

Chrome は「ハードウェアアクセラレーションが使用可能な場合は使用する」をOFF。

VSCode は Code.exe --disable-gpu で起動でOKだったので code.bat を用意して対応。


問題は解消したがハード、ドライバ、OS、アプリのどれが本当の問題なのかどうすれば調べられるのかわからんな。。。

[windows]High DPI対応

Windows 10 Creators Update後はなにも設定しなくてもある程度対応された感じ。

文字をきれいに表示するには

アプリを右クリック > プロパティ > 互換性 > 高いDPIスケールの動作を上書きします -> システム(拡張)

現在サクラエディタだけは設定している。


Windows10 Creators Updateの新機能!高DPI設定でのデスクトップアプリの表示を改善

http://pcmanabu.com/improved-high-dpi-support-for-desktop-apps/

がイメージ付きで解説されていてわかりやすい。

トラックバック - http://d.hatena.ne.jp/udagawa/20170513

2016-12-31

[]振り返り 振り返りを含むブックマーク

  • あまり忙しくない一年だった。めちゃくちゃ忙しくなりそうになったが。。。
  • HDPと結構格闘した一年だった。Hadoop/Spark系はプロダクトが多すぎだな。。。
  • Dockerを本格的に触り始めた。docker-compose 地味に便利だと気がついた。
  • AWS 認定ソリューションアーキテクト アソシエイトに受かった。試験受けたりするの何時以来だろう。。。
  • 受託開発だけではなくてプロダクトやサービスで毎月ある程度お金が入ってこないようにしないと今後はやはりつらそうだなー。
  • タブレットをiOSからAndroidに乗り換えた。思ったよりもKindle Fire HDちゃんと動いたのでよかった。
  • グッドワイフ面白かった。Amazon Prime ビデオ値段の割によいね。
  • チビ達が元気に育ってくれていて何よりだ。
トラックバック - http://d.hatena.ne.jp/udagawa/20161231

2016-05-28

[]外だしSQLが少し書きやすくなる C# 6.0 外だしSQLが少し書きやすくなる C# 6.0を含むブックマーク

nameof(xxx) と $"" の組み合わせが便利だ。

https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6#string-interpolation

https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6#nameof-expressions

外出しSQLが書きやすくなる。

    // Table名、コラム名と名前を合わせること
    public class Sample
    {
        public int id;
        public string name;
    }

    public class Param
    {
        public int Id;
    }

    [TestClass]
    public class TwoWaySqlTest
    {
        [TestMethod]
        public void TestCSharp6StringAndNameOf()
        {
            var sample = new Sample { id = 1 };

            var sql = $"select {nameof(Sample.name)} from {nameof(Sample)} where {nameof(Sample.id)} = {sample.id}";
            Assert.AreEqual("select name from Sample where id = 1", sql);

            var twoWqySql = $"select {nameof(Sample.name)} from {nameof(Sample)} /*IF pmb.{nameof(Param.Id)} != null*/where {nameof(Sample.id)} = {sample.id}/*END*/";
            Assert.AreEqual("select name from Sample /*IF pmb.Id != null*/where id = 1/*END*/", twoWqySql);

            var twoWayMulti = $@"
select {nameof(Sample.name)}
from {nameof(Sample)} 
/*IF pmb.{nameof(Param.Id)} != null*/where {nameof(Sample.id)} = {sample.id}/*END*/
";
            Console.WriteLine(twoWayMulti);
        }
    }

nameOfの渡す値はリファクタ可能だ(クラス名、プロパティ名の変更に対応)!!!

ない名前だときちんとコンパイルエラーになってくれる。

しかもきちんと文字列の中でコード補完(たとえばSample.とうてばプロパティ一覧がでてくる)も効くのだ。

いままで頑張ってGenして型セーフにしている部分がごそっと要らなくなる可能性ある。

クラスさえつくってしまえばNonSQL的な文字列指定なものでもこまることは減るかもしれない。

上記だとそのままSQLをそのまま流せないが、C# Intrative(VS 2015 Update1から)である程度解決するようになるかも。

[]C# Intractive をVisual Studioから使う C# Intractive をVisual Studioから使うを含むブックマーク

Introducing the Visual Studio 'C# REPL'

https://channel9.msdn.com/Events/Visual-Studio/Connect-event-2015/103

https://www.visualstudio.com/news/vs2015-update1-vs で Visual Studio 2015 Update 1 に C# Intractive がはいった。

まだnugetに対応していなし、プロジェクファイルと連携していにけどすぐによくなるだろう(Update2 でもあまり変わってない感じ。。。)。

表示 -> その他のWindow -> C# インタラクティブ で起動して貼り付ける(一応ここでもコード補完が効く)。

Microsoft (R) Roslyn C# コンパイラ バージョン 1.2.0.60425
'CSharpInteractive.rsp' からコンテキストを読み込んでいます。
詳細については、「#help」と入力します。
> #r "C:\Users\udagawa\development\csharp\csharp6-test\csharp6-test-unit\bin\Debug\csharp6-test-unit.dll"
> using csharp6_test;
.
> var sample = new Sample{ id = 1 };
> sample
Sample { id=1, name=null }
> var sql = $"select {nameof(Sample.name)} from {nameof(Sample)} where {nameof(Sample.id)} = {sample.id}";
> sql
"select name from Sample where id = 1"
>

[]C# Intractive をコマンドラインから使う C# Intractive をコマンドラインから使うを含むブックマーク

>csi
Microsoft (R) Visual C# インタラクティブ コンパイラ バージョン 1.2.0.60317
Copyright (C) Microsoft Corporation. All rights reserved.

詳細については、「#help」と入力します。
> #r "System.Windows.Forms"
> using System.Windows.Forms;
> new Form().ShowDialog();

WinFormが表示された。

もちろんコード補完がきかないけど。

GroovyのGrape(http://docs.groovy-lang.org/latest/html/documentation/grape.html)みたいな nuget対応がほしいところだ。

> class Hoge
. {
. public String Id;
. }
(3,15): warning CS0649: フィールド 'Hoge.Id' は割り当てられません。常に既定値 null を使用します。
> var hoge = new Hoge();
> hoge.Id = "hoge";
> hoge
hoge.Id = "hoge";
> var hoge = new Hoge2();
(1,16): error CS0246: 型または名前空間の名前 'Hoge2' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)。
> hogehoge = new Hoge();
(1,1): error CS0103: 現在のコンテキストに 'hogehoge' という名前は存在しません。

結構ちゃんとエラーをだしてくれる。

https://github.com/scriptcs/scriptcs を使おうとした(こっちはnuget対応)が結局やめてしまったが今回は使うようになるかな?

トラックバック - http://d.hatena.ne.jp/udagawa/20160528

2016-05-22 kindle Fire HD 10 入手

[]Fire HD 10 のセッティング Fire HD 10 のセッティングを含むブックマーク

iPad2が死亡したので急遽 Fire HD 10 をかう。


Amazon Prime にもはいったので当日きた。

Wi-Fiの設定したら直ぐに使えるようになった。

とりあえず機能制限でパスワードの設定。

思ったよりも縦長、でもAmazonプライムビデオ見ている限りあまり気にならない。

パフォーマンスは特に問題ない。

縦横固定のハードウェアボタンがないのはちょっと面倒。


iOSとちがってKindleアプリで完結できるので便利。

実際本の月一冊の無料はKindle端末からじゃないと選べないみたいだし。


Google Playを使えるようにする。

http://rootjunkysdl.com/files/?dir=Amazon%20Fire%205th%20gen

から Amazon-Fire-5th-Gen-Install-Play-Store.zip をおとしてきて

1-Install-Play-Store.bat を実行でインストールできた(シリアルナンバー7回クリックで開発者モードを有効にするのは他のAndroid端末と同じ)。

Amazonストアにない Chrome、ChromeCast、Dropbox などをいれた。問題なく動いている。


iOSとくらべて KindleやDropboxが使いやすい。Huluは微妙かな。

iOSとAndroidの動作の違いはそのうちなれるだろう。

[][]Xamarin で作ったアプリを Fire HD 10 に入れる Xamarin で作ったアプリを Fire HD 10 に入れるを含むブックマーク

Xamarinが動くかためしてみたがちゃんと動いた(Macからできるかは確認していないが)。


実際にはVisualStudioでXamarinをインストール時に

JDK、Android SDK,Android NDK、Android がインストールされるので自分でいれる必要はないが別途入れなおした。


Xamarin.Android は JDK と Android SDK(http://developer.android.com/intl/ja/sdk/index.html から android-sdk_r24.4.1-windows.zip)をダウンロードしてきてVisaul Studio の Xamarin の設定にJDK と Android SDK のインストール場所を設定。

Android SDK Manager で SDK等をインストール。

Android のバージョンは https://developer.xamarin.com/guides/cross-platform/getting_started/requirements/#windows

にある通り Android 6 API-23 を入れた。

ちなみに Fire HD 10 は Android 5.1 API-22。


Blank App(Android) でプロジェクト作って実行ボタンで

Fire HD に転送される(アプリ(8MB)と 初回のみMono Shared Runtime(38MB)。初回のみXamarin.Android API-23 Support(33MB))。

無事実行できた。


Xamarin.Forms は Blank App(Xamarin.Forms Portable) でプロジェクト作ったがビルドエラー。

Xamarin.Android for Visual Studio requires Android NDK, which is used to embed .NET assemblies into native libraries. While the NDK is generally not used for developing an Android application, we suggest you to install it. Please set Android NDK path on Tools->Options->Xamarin->Android Settings menu.

http://developer.android.com/intl/ja/ndk/downloads/index.html から

android-ndk-r11c-windows-x86_64.zip をダウンロードして NDK の場所を設定。

プロジェクト作りなおして実行ボタンで Fire HD に転送(アプリ(15MB))して実行できた。

Mono Shared RuntimeとXamarin.Android API-23 Support)が必要なのはXamarin.Android版と同じ。

トラックバック - http://d.hatena.ne.jp/udagawa/20160522

2016-03-02

[]CentOS に ansible 2.0 をインストールする CentOS に ansible 2.0 をインストールするを含むブックマーク

http://docs.ansible.com/ansible/intro_installation.html#latest-release-via-yum

にあるように

yum install ansible

だとまだ 1.9系のようだ

CentOS 6.7

> grep centos VagrantFile
  config.vm.box = "bento/centos-6.7"
> vagrant up
> vagrant ssh
$ cat /etc/redhat-release
CentOS release 6.7 (Final)
$ sudo yum install epel-release -y
$ sudo yum install gcc python-devel python-pip -y
$ sudo pip install pip --upgrade
$ sudo pip install ansible
$ ansible --version | grep ^a
ansible 2.0.1.0
$ python --version
Python 2.6.6

ansible 実行時に HAVE_DECL_MPZ_POWM_SEC となったら

https://github.com/ansible/ansible/issues/276 にあるように

sudo yum reinstall python-crypto

すればエラーがでなくなる。

CentOS 7.1

> grep centos VagrantFile
  config.vm.box = "bento/centos-7.1"
> vagrant up
> vagrant ssh
$ cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
$ sudo yum install epel-release -y
$ sudo yum install gcc python-devel python-pip -y
$ sudo pip install pip --upgrade
$ sudo pip install ansible
$ ansible --version | grep ^a
ansible 2.0.1.0
$ python --version
Python 2.7.5

実際には sudo yum update -y したほうがいいだろうけど。。。

トラックバック - http://d.hatena.ne.jp/udagawa/20160302
['uda4ml', '@', 'yahoo.co.jp'].each {print it}