サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
TGS2024
blog.knightso.co.jp
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m こんにちわ!マツウラです。 前回のPushキューに引き続き、今回はPullキューについてです。 公式ドキュメントを参考に見てゆこうと思います。 参考:Go — Google Developers Using Pull Queues in Go Pullキューの使い方 in Go Pullキューではタスクを実行するため独自のシステムを設計できます。 タスクをAppEngineアプリのみならず、外部のシステムに実行させることもできます。(タスクキューREST APIを用いて)。 タスクの実行者は指定した期間タスクを貸してもらい、その後処理を行い期間が過ぎる前にそれらを削除します。 Pullキューの使用にはPushキューで自動化されているいくつかの機能をアプリで処理する必要があります。 アプリケーションが処理量に基づきワーカー数
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m どうもこんにちわ!マツウラです。 今回はGo言語版のDatastoreインターフェースにおいて、 Java,Pythonとは異なる特徴的な機能を見てゆこうと思います。 参考:The datastore package - Go — Google Developers The datastore package エンティティの内容は一般的に構造体のポインタですが、PropertyLoadSaverインターフェースを実装することで任意の型で表現することができます。 構造体ポインタを使用する一般的な利用ではPropertyLoadSaverインターフェースは実装する必要はありません。 reflectionによって自動的に変換されるためです。 PropertyLoadSaverインターフェース エンティティのコンテンツはPrope
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m Google App Engine for GoでのGOPATH設定についていろいろ試行錯誤したのでメモしておきます。 ベストプラクティスかどうかは分かりません。 わるいGOPATH まず、今迄ずっとやっていて相当ストレスを感じていた悪いGOPATH設定を晒しておきます。 GAEアプリケーション単位でワークスペース(参考:How to Write Go Code - The Go Programming Language)ディレクトリを作成し、そこをGOPATHに設定していました。 hello <- GOPATHはここに設定 + src + app.yaml + hello.go この状態でgoapp getすると、取得してきた3rd partyライブラリはapp/srcの下に入ります。 hello + src + git
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m ionicでAngularJSの$anchorScrollを使ってハマった だいぶお久しぶりになりますマツウラです。 今回はionic frameworkでAngularJSの$anchorScrollが期待通りに動作しなかったことについてです。 まず結論から書いておきます。 結論:$ionicScrollDelegateを使う AngularJSの$anchorScrollではなく、ionicの$ionicScrollDelegate serviceを使ってください。 実際にハマった経緯について書いておきます。 $anchorScrollを使う WebViewを使ったモバイル・アプリの開発中に、HTML中の指定要素までスクロールしたい場面がありました。 HTMLは次のとおりです。 <ion-content ng-cont
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m npm linkでグローバルに作成されたシンボリックリンクを削除する方法。 マツウラです。 Yeomanではジェネレータを作成して動作確認をする際、npm linkを行いシンボリックリンクを作成します。 いくつかジェネレータを作成してゆくと初期にテスト目的で作成したもの、要らなくなったものが残ってしまいます。 npm -g lsで確認した際に、残っており気になったので調べました。 削除する方法についてメモしておきます。 npm linkでグローバルに作成されたシンボリックリンクを削除する方法。 sudo npm unlink -g <package_name> これだけです。簡単ですね。
Ikedaです。 Goのstringとruneについて曖昧な知識のまま使ってきたが、そろそろちゃんと理解しようと思って下記事を読みました。 Strings, bytes, runes and characters in Go - The Go Blog ざっくりと抜粋。 stringは実質read-onlyなbyteスライス。中身はUTF-8とは限らない GoのソースコードはUTF-8で書くルール ソースがちゃんとUTF-8で書かれていればリテラルで初期化されたstringはUTF-8になるはず len(string)はbyte数返す string[n]はインデックスnのbyte(int8) const sample = "日本語" for i := 0; i < len(sample); i++ { fmt.Printf("%x ", sample[i]) } ↓結果 e6 97 a5
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m こんちわ!マツウラです。 前回に引き続きGAE/GoからBigQuery APIを使用してみます。 今回は、BigQueryにデータのリアルタイム挿入を行うStreaming Insertをやってみます。 参考:Streaming Data Into BigQuery - Google BigQuery — Google Developers まずは、Streaming isertについてGoogle Developersから解説を引っ張ってきました。 今更必要ないって方は、Google APIs Client Librariesを使用してBigQuery APIを叩く下記サンプルコードへどうぞ。 Streaming Data Into BigQuery BigQueryではデータを読み込むためjobを実行する代わりに、t
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m どうもこんにちわ!マツウラです。 今回はGAE/Goと、BigQueryの組み合わせです。 BigQueryにデータセットを用意して、クエリを実行するところまでやっていこうと思います。 参考 BigQuery API Quickstart Getting Started with the Google APIs for Go 新規プロジェクトの作成 BigQueryを使う前に、Google Developers Consoleからプロジェクトを作成します。 プロジェクトごとに提供されるIDはGoogleがプロジェクトを特定し、BigQuery APIの使用許可を貰うためにアプリで使います。 Google Developers Consoleで、新規プロジェクトを作成します。(使えるプロジェクトが既にあるならばOK) サイド
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m どうもこんにちわ!マツウラです。 今回はデータストアを取り上げたことに続いてタスクキューについてです。 Go言語版のタスクキュードキュメントを参考に見てゆこうと思います。 参考:Go — Google Developers Using Push Queues in Go Pushキューの使い方 in Go アプリケーションによって実行される各タスクは、Task typeオブジェクトです。 タスクオブジェクトはタスクのリクエストハンドラのURL、さらにタスクをパラメータ化するデータ・ペイロードオプションが含まれています。 PushキューはAppEngine環境でのみ使用可能です。 AppEngine外部からタスクにアクセスするには、Pullキューを使用して下さい。 Goアプリのキュー設定にはqueue.yamlを使用します(
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m マツウラです。 Yeomanのyoでは、generatorによってWebアプリの骨組みを自動的に生成することができます。 今回はジェネレータで骨組みを生成しながら、基本的な処理について押さえていきます。 今回の実行環境は次の通りです。 Node.js 0.10.25 npm 1.3.24 yo 1.1.2 generator-generator 0.4.2 yoとgenerator-generatorをセットアップする npmでインストールする前にnpmのバージョンを確認します。 バージョンが1.2.10以上であると、yoインストールの際にgruntとbowerが自動的にインストールされます。 以前にgruntをグローバルにインストールしている場合、アンインストールします。 npm uninstall -g grunt n
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m どうもこんにちわ!マツウラです。 今回はオペレーションを確実に実行するため用いるトランザクションについてです。 それではGo言語での使い方について見てゆきます。 参考:Go — Google Developers Transactions App Engineではトランザクションがサポートされています。 トランザクションは完全に成功、または失敗することが保証された単一のオペレーションまたはオペレーションセットです。 アプリケーションは単一のトランザクションで複数のオペレーションや計算を実行することが可能です。 トランザクションの実行にはdatastore.RunInTransactionを使用します。 次の例は単純なリクエスト回数をカウントする際にトランザクションを用いたコードです。 c := appengine.NewC
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m どうもこんにちわ!マツウラです。 前回のDatastoreのエンティティ操作に引き続き、今回はQueryについてGoでの基本的な取り扱い方を見ていきます。 参考:Go — Google Developers Datastore Queries Query 次のコードはGoでのクエリを使用した一般的な例です。 Filter(),Order()といった下記で説明している機能も使用しています。 クエリの結果として取得されるエンティティは、GetAll()に渡したスライスに格納されます。 c := appengine.NewContext(r) q := datastore.NewQuery("Person").Filter("LastName =", "Voski").Filter("Height <=", 200).Order
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m どうもこんにちわ!マツウラです。 今回は前回の基本的なクエリに続けてGo言語でのクエリカーソルの使い方について見てゆきます。 参考:Go — Google Developers Datastore Queries クエリカーソル クエリカーソルはoffsetのオーバーヘッドを発生させること無く、結果を取得出来ます。 アプリケーションは結果の最後のインデックスを示すカーソル(文字列でbase64エンコード)を取得します。 アプリケーションはこのカーソルを保存し、次のバッチの開始点として使用することが出来ます。 また、エンドカーソルを指定することで結果セットの範囲を制限することも可能です。 次はカーソルを使用した基本的な例です。 c := appengine.NewContext(r) q := datastore.NewQu
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m GAE/Go Datastore どうもマツウラです。 App Engineを使用するにあたって欠かせないDatastore。 Go言語での使用方法はどのようになっているのでしょうか? 公式チュートリアルを参考に簡単に見てゆきます。 参考:Go — Google Developers Entities, Properties, and Keys PUT, GET, UPDATE, DELETE まずは基本的なデータストアへのエンティティの保存、取得、更新、削除です。 簡単な例を見てみます。 次の例ではエラー処理を省略しています。 // プロパティ名は大文字で始めるよう注意してください!! // 小文字で付けたい場合はタグを使用します。 type Employee struct { Name string Role stri
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m AngularJSではjQueryを使わない どうもマツウラです。 AngularJSでjQueryプラグインを使う方法を調べました。 結論から書くとなるべくdirectiveで書きなおして下さい、ということです。 プラグインをそのまま使いたい気持ちはありますが、理由があるんです。 まず、AngularJSで使う方法をみてみます。 プラグインが適用されない。 directiveのlink関数に書く。 .directive('myDirective', function() { return { link: { post: function(scope, element, attr) { //... } } } }) 動的に生成されたDOMに対してプラグインが適用されない。 $timeoutを使う。 $timeout(fun
注:古い記事の為、内容が最新ではない可能性がありますm(_ _)m どうもマツウラです。 AngularJSでUIを扱うために何か良いものがないか!?ということでAngularUIについてサラッと調べてみました。 AngularUIはAngularJSのコンパニオンスイートです。 名前の通り、UIに関するさまざまな機能を提供してくれます。 AngularUIは単にプロジェクト名です。 実際の機能を持っているのは下記にある個々のパッケージです。 UI-Utils 外部依存関係を持たないユーティリティ・パッケージ。 以下のモジュールはUI-Utilsに含まれますが、独立しているので個々に使うことができます。 IE Shiv カスタムエレメント(<ng-view></ng-view>とかですね。)をサポートしていないIEをサポートする。 Event Binder AngularJSでサポートされ
このページを最初にブックマークしてみませんか?
『blog.knightso.co.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く