投稿

7月, 2019の投稿を表示しています

Ryzen 5 2600XでAndroid Studio のx86エミュレータを使えないWindows May 2019 Update

WindowsのAndroid StudioではAndroidのエミュレータが使えるのですが、x86版のエミュレータにはIntelのVT-xかAMDのSVMをUEFI(BIOS)上で有効にする必要があります。 今回はAMD Ryzen 5 2600xなので初回セットアップでVT-xつかえないよといわれ、UEFI上でSVMを有効にしてみました。OSのバグかなにかで失敗したのですが、いろいろ調べた挙げ句のメモです。 AndroidエミュレータがAMD CPUとHyper-V に対応した、というニュースのAMD CPUとHyper-Vは別々の話なので混ぜるな注意です。Hyper-VはAMD CPUにたいおうしていないっぽいたぶん。 Android Studioでエミュレータを動かす条件 3種類 Intel VT-x AMD SVM Microsoft Hyper-V どれかが必要、ということらしいので今回はAMD SVMを有効にする方法 今回の前提 AMD Ryzen CPU Windows 10 Pro April 2018 Update 以降 (Homeでも可?) Windows 10 バージョン 1903 (OS ビルド 18362.239) (失敗するバージョン) Android Studio 3.4.2 (3.2 Beta以降) Avastかなにかのソフト使ってないこと 状態の確認 Windowsのバージョンを確認します。 スタートメニューを右クリックで「システム(Y)」を開き、Windowsの仕様というところにバージョンとOSビルドがあります。 コマンドプロンプトでwinver と入力してもバージョンが確認できます。 バージョン1903 (OS ビルド 18362.239) と出てくればバグ持ちなのでエミュレータは動きません。(注 : 7月末のKB4505903のアップデートでOS ビルド 18362.267になり修正されました) エミュレータが実行可能なのは現状では1803と1809です。 Windows Insider Programで18932を使用するとエミュレータが利用可能という情報もありますが、元には戻せません。 AMD RyzenでAndroid x86エミュレータの利用可能状況(1803以降

MavenでTomcatにJAX-RSのせるだけ

TomcatにはJava EE 改め Jakarta EEのWeb系の機能しか載っていないので、その他のサービスを利用するにはwarの中に封じ込めてあげるのが楽です。 とりあえずJDK 12 + Apache NetBeans IDE 11.0の場合 Mavenで構築、Tomcatに公開する場合です。 GlassFishのJAX-RSライブラリを使います。 MavenでWebつくる JAX-RS の機能でRESTfulなものを作る Servlet相当のクラスをひとつ作り、タグだけつけます。Applicationというクラスを継承するようです。@ApplicationPath で公開パスを決めます。 package net.siisise.example.rest; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; @ApplicationPath("/api") public class RestSetup extends Application { } 次に機能のclassを作ります。 @の機能は推測どおりかと思うので GET /api/menu/hello に公開されます。 package net.siisise.example.rest; @Path("/menu") public class Mmmmm {     @Path("/hello")     @GET     @Produces(MediaType.TEXT_PLAIN)     public String exHelloName() {         return "おはよう";     } } そのまま公開してもTomcatではライブラリ等不足しています。 web.xml の編集。GlassFishサーバの設定をしていると、<dependencies> にjavaee-web-api があるかもしれません。 (Bloggerの都合上XMLタグは全角で囲んでいます。) <dependencies>    <dependency>     

JSONとかいうもの

しばらく前からJSONとかRESTとかいうものがプログラムとか通信とかの間で使われるようになってきていたけど、全然追ってなかったのでいまさら追いかけた。 追いかけた足跡だけで細かいことは省略。 OpenIDを開いてみた気がする…。 JSONを広げる  避けていたのは認証とかそういうところにたどり着かなかったから。今なら簡単に見つかりそうな気もする。 とりあえず仕様を探せ。JSONはRFC 8259が最新で最終版ともいわれている。ECMAの方にもECMA-404 2nd Edition というのがあるのでそれまでにあった差異などが解消されているとか。 名と値を文字列で書いたオブジェクトっぽいのがJSONの書式で、配列のもある。それだけ。JavaScriptとの受け渡しで相性がいいらしい。 RESTから関連機能を探す  RESTは何だろうというと、HTTPやら何やらでJSONを通信する方法とでもいうか、HTMLの代わりにJSONが飛び交う。 どこで使われているのかというと、いろんなところで。XMLが流行ってたのは今は昔とでもいう勢いで。 各種サービス提供に使われているのはREST APIがほとんどらしいよ。と噂に聞いている。IoTの分野でも手軽にRESTで通信できるようになってる。人が間に入らないサービスはこういう方向でどんどん増えてもらいたい。  RESTを使うのをRESTfulとかいうらしいよ。 ここまでは知ってた範囲。それで認証とかどうなのよというところで思考が停止。PKI使うのかBASIC認証使うのか、いろいろもやもやしてた数年前かな。 認証に使うのはRFC 2617 BASIC認証? とかCookieとかいろいろあった時代もあるようで。 RFC 7515-7519 というのがようやく安定してきた認証方法なのかな。この中からまずは JSON Web Token (JWT)を知ってみよう。PKIの基礎知識が必要。OAuth やOpenID Connect とやらもあるのであわせて後で調べる。 ABNFとJSON作ってみた Javaで使うにはライブラリもあるのだろうけど、たまたま作りかけていたABNF(RFC 5234)で作ってみようと思ったらJSONの読み書きは簡単にできてしまったのでそういうことにしておく。 ABNFが何かというと、R

NetBeansからGitHubへ

GitやGitHubがよくわかっていないのでNetBeans IDEから公開してみるテスト 説明は日本語サイトもあるけどあまり読んでいない。 GitHubのアカウントを作る http://github.com/okomeki PuTTYgenで公開鍵を作る 画面上のPublic key をGitHubに登録する 秘密鍵をOpenSSH key形式で保存する リポジトリを作る https://github.com/okomeki/SoftLib SSHのURLを確認 git@github.com:okomeki/SoftLib.git (鍵を登録するとHTTPは不可?) NetBeansでプロジェクトをgitに入れる ローカルで作る Git → Commit Pushする Git → Remote → Push URLと秘密鍵、パスフェーズを指定 CVS/Subversionとの違い、疑問点のまとめ Gitはどこに溜まるのか 最小単位はソースディレクトリの.git フォルダ内だけ 管理専用の場所は不要 Commitもこの中で完結、ひとりで管理可能 CVSのブランチのようなものを保存場所で持つ GitHubにHTTPSで繋がらない 鍵を登録していると無理なのか? ライブラリが古いとHTTPSは無理らしい、どちらか謎。 アカウント/パスワードで繋がらない 同上 というわけで https://github.com/okomeki にいろいろと公開してみるかもしれません。