以下の記事が面白かったので、ざっくり訳してみました。 ・Compiling a TensorFlow LiteBuild with Custom Operations 1. はじめに「TensorFlow Lite」は素晴らしいです。 一方、カスタムオペレーションを含むモデルを実行しようとすると、次のような例外が発生します。TensorFlow Lite」に存在しないオペレーション「Normalize」「ExtractFeatures」「Predict」を使用したためです。 W/System.err: Caused by: com.google.firebase.ml.common.FirebaseMLException: Internalerror has occurred when executing Firebase ML tasks Caused by:java.lang.I

AndroidやiPhoneの通知機能やらなにやらを使いたいときはよくあります。 アセット使えば手っ取り早いんですけど、かゆいところに届かないところもあるので、自前で用意する方法をちょろっと書いてみます。 今回はAndroidです。Android開発やったことない人には、ちんぷんかんぷんかと思いますのでご注意。 目次AndroidStudioでプラグインを作る 新規プロジェクトを作る ライブラリ用モジュールの作成Unityからアクセスするクラスを作成する ライブラリのビルド ライブラリの拡張子についてUnityからプラグインを呼び出す aarを配置する プラグインを呼び出す ビルドして端末にインストール プラグインからUnityの関数を呼び出す 注意するエラー minSdkVersionがあってない なんか知らんが動かんiPhoneは?AndroidStudioでプラグインを作

今日はゲームの更新ではありませんが、 物理ゲームを作る過程で生まれた問題の解決方法です。 「任意多角形の三角形分割」 です。 今使っている物理エンジンは、凸包(凹んでない多角形)しか扱えません。 とすると、多角形の作成に制限が出てしまいます。 前に、 ほんとは用意しないつもりだったけど、手が滑って(?) 「ぐりぐりポリゴンが書けるツールを用意する」 と言ってしまったので、せっかくなので作ります。 "任意多角形の三角形分割"などと書きましたが、 「適当な図形を全部三角形で作ってみよう」という事です。 すごく参考になったページがあります。 [お勉強] 非凸多角形の三角形分割 ※勝手にリンク貼りました。すみません 手法とかはこのページを見れば大体分かるのだけど、 ちょっと難しくてわからないと言う人向けに詳しい解説を用意しました。 長くなるので続きからどーぞ
2011年02月22日Androidのデバッグダンプからソース上の問題発生箇所を調べる方法 今回もAndroidのアプリケーション開発者でなくて、ポーティングなどでシステム部分の問題を追いかける人が知っておくとよい話です。(English version of this page) 実機でいろいろいじくって動かしていると、いつまでもandroidの起動アニメーションのままになって立ち上がってこなくなってしまうことがあります。このときにシリアルのコンソールからlogcatを見てみると、以下のようにあるプロセスが例外を起こして落ちてしまっていたりします。 ログのこの部分はdebuggerdが出しています。(debuggerdのしくみは以前に紹介しました。) I/DEBUG ( 3037): *** *** *** *** *** *** *** *** *** *** *** *** ***
アルゴリズムの話では、計算量の解析がかかせません。 計算量はオーダー記法で表されますが、これは、データの入力量に対してどのくらい時間がかかるかをあらわしたものです。 こういった話はどのアルゴリズムの本にも載ってるはずですが、具体的にどのようなプログラムを書くとそのオーダーになるかという記述はあまりありません。 ということで、やってみました。 計算時間表示のための共通処理を行うクラスは、一番最後に書いてます。 O(1) 計算時間がO(1)のアルゴリズムは、処理が入力の量によらない場合です。 配列の要素のアクセスや、ハッシュテーブルによるデータ検索、連結リストへの追加削除などがこれにあたります。 コードには入力量でのループが含まれません。 public class O1 extends ViewCompFrame{ @Override void compute(int n) { proc();

[速報]Google、「Android Instant Apps」を披露。インストール不要で即実行可能なアプリ形式。Google I/O 2016Googleはサンフランシスコで開催中のイベント「Google I/O 2016」で、現在Sneak Peak Projectとして開発中のAndroidアプリケーションの新しい形式「Android Instant Apps」を披露しました。Android Instant Appsは、インストールが不要で、その場ですぐ実行できるアプリケーション。 例えば、指定されたURLをクリックするとWebページではなくアプリがその場でロードされて実行される。アプリ全体ではなく必要な部分だけがロードされ実行が開始されるため、ロードの待ち時間がほとんどありません。 あるいはNFCでの通信をトリガーにして、インストールされていなかった駐車場アプリが起動する、と
![[速報]Google、「Android Instant Apps」を披露。インストール不要で即実行可能なアプリ形式。Google I/O 2016](/image.pl?url=https%3a%2f%2fcdn-ak-scissors.b.st-hatena.com%2fimage%2fsquare%2f303d25cd33c5cf391bf5fc2890c1e85344cd4101%2fheight%3d288%3bversion%3d1%3bwidth%3d512%2fhttp%253A%252F%252Fwww.publickey1.jp%252F2016%252Fgio27.jpg&f=jpg&w=240)
【image via Cult OfAndroid】Androidの開発言語はいずれJavaではなくなるかも?! The Next Webによると、GoogleはAndroid用開発言語としてSwiftへの移行を検討していると報じている! FacebookやUberもSwiftへの移行を検討中か?!SwiftはAppleが2014年に発表した開発言語。「WWDC 2015」でオープンソース化を発表し、2015年12月に正式にオープンソースの開発言語としてスタートを切った。AndroidがJavaからSwiftへ移行するとなると現在Androidプラットフォームで開発している全てのデベロッパーが影響を受けることになるが、幸いにも近々で移行するようなことは無さそうだ。移行の手間が膨大であるためそもそも移行するかどうかさえも分からないが、Javaの開発元であるOracle社との訴訟問題を

java.io.Serializable …、ある程度Javaに触れて来た人は必ず見たことがあるインターフェイスだと思う。私も何度も見てきたし、必要に迫られて自分の作ったクラスにSerializableをつけたこともある。しかし、こいつは一体何なのか? 継承の便利さ 僕らがまだJava初心者だった頃。継承というメカニズムに助けられながら育って来た。簡単に言えば、HttpServletクラスを継承しさえすれば、自分の作ったクラスがサーブレットとして認識されるのだ。また、abstractメソッドなどという便利な機能もあり、継承にあたって実装しなければいけないメソッドは確実に指示され、言われた通りにそのメソッドを実装すれば良い。 StrutsのActionも然り。そう、多くの場合は「継承さえすれば、望む物がだいたい出来上がる」というのがJavaの世界だと思っていた。 だが、世の中そんなに甘くない
ここで説明するJWTは、最新のdraftの内容とは異なる場合がありますので、実装される際には最新のdraftや、対応するdraftを確認したほうがよいと思われますのでご注意下さい。 また、本エントリではできるだけわかりやすく記載するために、詳細な仕様を省いている箇所もありますので、実装時などにはdraftを読む必要があります。 概要JWTとはJSON Web Tokenの略で、JSONを使ったコンパクトでurl-safeなクレームの表現方法であり、OAuth2やOpenID Connectなんかで使われます。 読み方は JWT の推奨される発音は,英単語の “jot” と同じである. なんて書いてあります。 JWTの仕様は以下のURLから参照できます。(日本語訳は若干古いと思われます。) http://tools.ietf.org/html/draft-ietf-oauth-json-w
ここでは、Java SE 5.0 以降を知っている人が C# 2.0 を使うことになった場合を考える*1 *2。 あと、ライブラリについては触れないことにする*3。 命名規約 まず、命名規約が全然違う。Java ではメソッド名にキャメル形式*4を使うけど、C# では Pascal 形式*5を使い、Java では定数名に大文字アンダーバー区切り*6を使うけど、C# では Pascal 形式を使う。 C# に関する命名規約としては、ここだとかここだとかにあるので、参考にするといい。 間違っても、オブジェクト倶楽部のは参考にしないこと*7。 struct の扱いJava ではユーザ定義型は全て参照型だけど、C# では値型も作成できる。また、標準ライブラリの中に struct で定義されたものもある。 で、何にはまるかというと、struct は class と違い、「値渡し」される*8、つまりコ
会員事業部の山下(@tomorrowkey)です。 RxJavaが流行ってますね。最近Android版クックパッドでもRxJavaが導入されました。この記事は私がRxJavaを使うにあたって検証用のテストコードを書いたものをベースに、RxJavaの挙動をみなさんに紹介したいと思います。 目次 リスト操作でおさらいする基本的なRxJavaの使い方Observable OperatorObserver / Subscribe 実行順序を確認するサンプルプログラム 7つのサンプルプログラム リスト操作でおさらいする基本的なRxJavaの使い方 RxJavaはAPIアクセスやイベントトリガーやリスト処理などを多岐にわたる処理に使うことができます。このエントリでは初学者に一番分かりやすいリストの処理を例に解説します。 これは1から10までの値を渡し、偶数だけにフィルタリングしたうえ、値を10倍に
この記事はドワンゴ Advent Calendar 2014の14日目です。 ちなみに前日は@erukitiさんでした。 他の方は「こんなもの作ってみた!」系の記事が多いのですが、技術系の話題であれば特に縛りはないようなので、今回はひたすら文章をつらつらと綴っていきたいと思います。 ここ数年、「マルチコア時代の主流は関数型だ」とか「Javaはもう古い! 時代は関数型!」といった記事をよく見かけるようになった気がします。 大学でOCamlを学んできた自分としては嬉しい限りなのですが、なんだか関数型という言葉がバズワード的な使われ方をしている気がして、まるで「現在起こっている全ての問題を解決する銀の矢だ!」といわんばかりの雰囲気を感じるのが気になっています。 最近うちの部署でもにわかに「関数型っぽく書こう」みたいな機運が高まってることもあるので、この機に関数型プログラミングとはなにか、どのよう
Technology Radarの2015年1月版から厳選したGo lang,React.js,Swiftなどの11のテクノロジーを紹介した記事先日 ThoughtWorks社 から最新の技術動向をまとめたTechnology Radar の2015年1月版が発表されました。 このTechnology Radarですが毎回、『技術』『ツール』『プラットフォーム』『言語・フレームワーク』と4つの領域に分けて紹介しており、絶賛流行中もしくは今後注目されるテクノロジーなどが紹介されています。 今回はそんな『言語・フレームワーク』の領域から厳選した11の注目テクノロジーを紹介します。 はじめに 各テクノロジーは『Adopt』『Trial』『Assess』『Hold』という4つの階級のどれかに属しており、各階級は以下の意味を持っております。 ・【Adopt】企業での使用が推奨されるレベ

OpenGL。その単語の響きだけで素晴らしく魅力的に思える 3D コンピューターグラフィックスライブラリは、これまで何人もの駆け出しゲームプログラマーに幾度と無く挫折を味わわせてきた。「ゲーム作るならやっぱり高速に描画できる OpenGL でしょ。でも自分が作るゲームに 3D はいらないし、しかも難しそうだし、別に 2D 描画だけできればいいや」 と、軽い気持ちで手を出したのが運の尽き、世の中そんなに甘くはなかった。OpenGL というその難攻不落城は私達の進む道を阻むように高々とそびえ立っている。 OpenGL がコレほどまでに取っ付きにくいのは 気軽に Hello World できない からなんじゃないかと思う。OpenGL の場合だとそれは何かしら 1 つの図形を表示することにあたるのかな。でもたったそれだけなのに、覚えることが山ほどありすぎて全然本題にたどり着くことができないし、O
はじめに コンボリューション(Convolution)は数学用語で、日本語では「畳み込み」といいます。掛け算の結果を足し集める演算からなり、コンピュータ処理の得意とするところです。コンボリューションを画像処理に使うと、画像を滑らかにしたり、シャープにしたりできます。掛け算の係数は、3×3などのサイズのマトリックスで指定します。これをオペレータ、フィルタ、マスク、カーネルなどと呼びます。Java 2DAPIには、画像処理でコンボリューションを行うのに便利なConvolveOpやKernelのクラスがあります。しかし、これらだけに頼ると不便な点もあるため、これらを利用しながら、従来と変わらぬ画像処理ができるように工夫しました。 対象読者 画像処理の基本を学び、ペイント系画像ソフトの一部の機能を自作したい人。 必要な環境 J2SE 5.0を使っていますが、J2SE 1.4.2でも大丈夫です。

コレクション内から特定の要素を削除するいくつかの手法を考えてみる。 (Objective-C,Java,C++ それぞれの場合。) 最も単純なのは、コレクションに対してインデックスを指定して削除するというものだ。 i番目の要素を削除する。 Objective-Cの場合1 NSMutableArray* array = [NSMutableArray array]; [array addObject:[NSNumber numberWithInt:0]]; [array addObject:[NSNumber numberWithInt:1]]; [array addObject:[NSNumber numberWithInt:2]]; [array addObject:[NSNumber numberWithInt:3]]; [array addObject:[NSNumber num
今回のエンジニアブログを担当する村田です。 前回の「Cocos2d-xにおけるJNI(その1)」の続きです。 今回は、『C/C++ からJava(Android) を呼び出す時』です。Android端末に設定されている言語情報をC/C++側へ返すプログラムを作成します。 使用したCocos2d-xのバージョン:cocos2d-x-2.1.5 1.Javaプログラムの定義 C/C++側から呼び出すJavaプログラムを定義します。 今回使用するJavaプログラムは パッケージ名「com.example.testjni」 クラス名 「TestJniActivity」 と付けます。 TestJniActivity.java package com.example.testjni; : (略) : public class TestJniActivity extends Cocos2dxAc
あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

プログラムがまだ不慣れな人が「プログラムちょっとわかるようになったけど、まだぜんぜんオブジェクト指向とかできてません」のように言ったり、ちょっと慣れた人が「このソース、ぜんぜんだめ。オブジェクト指向ができてない」にようなことを言ったり、まるで、オブジェクト指向ができてるかどうかがよいプログラムかどうかを表すことになってるようだ。Javaのアルゴリズムの本に、「Javaなのにオブジェクト指向ができていない」のような書評がついているのを見たときには、お前は何を求めてるんだと思ったりもした。 そのようなオブジェクト指向は、窓から投げ捨てるべきだ。オブジェクト指向はプログラムのよしあしの基準にならない。 むだにHogeインタフェースとHogeImplクラスがあったり、むだにnewするだけのcreateメソッドがあったり、どこで値が設定されてるかわからないオブジェクトがひきまわされてたり、ソースコ

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く