サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
TGS2024
www.tdtsh.com
習慣と惰性で Vim (GVim) 使ってます。 Syntax Checkerは syntastic を使ってます。 あんまり使い込んで無くて、JavaScript ではファイル保存時にjshintをかけるために使ってます。 それだと、React.js というかJSXで Syntax Error が出ます。 Syntax Error とかいうとベーマガのBASICを打ってた頃を思い出します。因みにPC-6001mk2でした。しゃべるやつ。 あーそうそう、エラーです。 React.jsたまにしか使わないし放置してたけど気になります。 公式によるとReactの場合はjsxhintを使えばいい、となっています。 おおそうなんだと思ってインスコして動かすと確かにエラーでません。やったねと思ってたら、JSXHint のREADME に、もうJSXHintは使うな。eslintを使え、と書い
クロスプラットフォームを触ってみたシリーズの第6弾は、Native Scriptです。 前回のReact Native に続き、JavaScriptで書ける繋がりで。 ほんとはTitaniumとマネタイズ的にカブっている Xamarin について書こうと思ったのですが、アプリはガッツリ有料なのとC#だからいまいちやる気が出なかったので。 因みに Xamarin は 少なくとも Xamarin Studio のMac版は無料なので、.Net framework なアプリがMac OS Xで作れちゃいます。 monoフレームワークを使えばLinuxとかでも動くYo! 但し iOS/AndroidアプリのSDKは有料なので、アプリ開発する場合には無料では出来ないみたいです。 話を Native Scriptに戻します。 情報少ないです。公式の情報が頼りです。 NativeScript公式 N
もとい Titanium なんですけど、自分も未だに検索するときはTitanium Mobile て書きますね。 そうしないと場合によっては変なネジのサイトがヒットしたりするし。 結論から言うと仕事でも受託開発でもガンガン使ってる方々もおられますんで、大丈夫です。自社サービスでの採用例もあります。 1年弱前にTitaniumを採用するかどうか悩んで1ヶ月位かけて調査した自分の様な人に向けて書きました。 技術の採用を検討する担当としては、Titaniumを検討している時点で、そのメリットは大体わかっている筈です。 なので美辞麗句を並べる必要は無くて、各ステークホルダーへの説明に使えそうな内容や事例であったらいいと思ったので、そういう視点で書きました。 ポイントはTitaniumは思っているよりサクサク動くしサクサク書けますよ、逃げ道としてモジュールを使えばほぼ何でも出来ますよ、モジュール
ソーシャルメディア、スマホ、Google App Engine 等の備忘録と、趣味的な事や時事ネタもちょっとずつ 関東では定期的にTitaniumもくもく会があるそうで良いなぁ、などと思っていたら、titanium もくもくin関西vol0のお知らせが目に止まり、早速参加させて頂きました。 もくもく会的なものは初めてだったのですが、参加者の距離が近くなって良いものですね。 もくもくの筈が若干喋りすぎた様な気もしますが、普段社外のTitaniumな方と話す機会なんて皆無なので、嬉しかったのです。 自然発生した懇親会的なものにも誘って頂きました。有難うございます。(皆さんの許可を頂いて無いので低解像度で) さて、もくもく会の私の課題は、これを機に便利そうな TiShadow の環境を作っちまおうというモノでした。 参考サイトや不明点など教えて頂きながらなので捗りました。 私の環境で行った事
Titaniumの個人的な参考サイトまとめです。 概要 まず最初にコレを見ておけば間違いない Javascript だけで Android/iPhone アプリを作れる Titanium Mobile の紹介 ‐ ニコニコ動画:Q これも読んどくべきやつ Titanium実装最初の一歩 – SlideShare AlloyにはふれられてないけどクラシックなTitaniumの開発のとっかかりとして Titanium Mobile入門 (全28回) – プログラミングならドットインストール アンチパターン大事 Titanium Mobile ~本当にあったこわい話~ 採用実績としてはサイボウズが有名 サイボウズLive for iPhone @ Titanium meetup Tokyo #8 #titaniumjp リファレンス titanium-mobile-doc-ja – A
ソーシャルメディア、スマホ、Google App Engine 等の備忘録と、趣味的な事や時事ネタもちょっとずつ 先生、Alloyでテスト自動化したいです。 という訳で、Titanium Mobile で使いやすそうな UnitTestフレームワークをググってみると Jasmine 一択な空気をビンビン感じます。感じやすく空気が読めるのを自負する自分としてはこれはもう迷い無く Jasmine でいく事にします。 便宜上自動ユニットテストと呼んでますが、やりたい事はどっちかというとコントローラ含む結合〜システムテストだったりします。そもそもJasmineを触った事ないんでそこまで出来るかは未だ良く判ってないですけど、それはそれとして。 先人達の知恵 Jasmine Titanium Titanium で Jasmine を動かし、GitHubで公開もされています。なんというGJ。2011年と
ソーシャルメディア、スマホ、Google App Engine 等の備忘録と、趣味的な事や時事ネタもちょっとずつ Node.ACSの日本語の情報皆無に近いので、一発書いてみます。 前回、ACSが素敵的なエントリを書きましたが、Node.ACSもかなり素敵そうです。 無料で node.js をホスティングできると言えば、Node Ninja です。 折角以前やっとの思いでインスタンスを割り当ててもらったのですが、しばらくしたら消えちゃった・・・ やはり Heroku 一択なのかなと思っとりましたが、AppceleratorのPaaSには、ACS以外にNode.ACSなるものがあるじゃないですか。 無料枠の説明を探したんですけど何処にもありません。Node.ACS自体がACSのサービスの1つという考え方で良い様です。多分。 Node.jsのプロジェクト作成からデプロイの流れ # node
ソーシャルメディア、スマホ、Google App Engine 等の備忘録と、趣味的な事や時事ネタもちょっとずつ Apple Developer登録を法人で行った時の備忘録です。 流れを画面キャプチャ取ってみました。すぐ陳腐化すると思いますが、2012年9月現在はこんな感じです。 自分用なんで不親切でサーセン。 iOS Dev Center 左上の [Register] をクリック [Sign in with your Apple ID] で Need to register? の横の [join now] をクリック [Which Develover Program is for you?] で [iOS Developer Program Company $99/Year] をクリック [iOS Developer Program] で [Enroll Now] をクリック
ソーシャルメディア、スレート、Google App Engine 等の備忘録と、趣味的な事や時事ネタもちょっとずつ PageSpeed Serviceは自動的にアプリケーションのパフォーマンスを最適化するGoogleのサービスです。 PageSpeedってサイトのパフォーマンスを調べてくれるサービスだと思ってましたが、それはPageSpeed Insights で、PageSpeed Serviceはそれとは別モノみたいです。 明示的に試した訳ではありませんが、 How it works You sign up and provide us with your serving and reference domains. You send traffic to PageSpeed Service by pointing your DNS CNAME entry to ghs.google
随分と前にGAE/J の Urlフェッチについて書きましたが、 今回は、Basic認証のページをフェッチする機会があったのでメモっておきます。 Low Level API で urlFetch しました。 こんな感じです。 URL fetchurl = new URL("http://somewhere.to.see/"); HTTPRequest request = new HTTPRequest(fetchurl); String authStr = "Basic " + Base64.encode((name+":"+pass).getBytes()); request.addHeader(new HTTPHeader("Authorization", authStr)); HTTPResponse res = URLFetchServiceFactory.getURLFetch
前回ちょろっと書きましたが、backends で DatastoreTimeoutException が発生して結構ハマりました。 コチラのまとめをブログに書いておきます。 Backends での Query で DatastoreTimeoutException – Google グループ 環境 Slim3 1.0.15 appengine java sdk 1.7.0 HRD BackendsのインスタンスはB8です。 概要 Backends で Query で100万件位を Key で取得しようとすると、 DatastoreTimeoutException が発生しました。 kind は ほぼ Key のみで、Avarage Sizeは200Byte位で、Entityはトータルで数百万件あります。 TaskQueue で処理するには量が多すぎるので Backends なら
appengine独自ドメインでSSL GAE/JでSSLがサポートされました。 SSL for a Custom Domain – Google App Engine — Google Developers for businessの発表から2年、Trusted Tester Programから半年以上経ってますが、待望のSSLサポートです。 未だ治ってないバウンスメールの件といい、企業がウェブサービスを提供する上で普通に要る重要な機能がえらい後回しになっているのは社風でしょうか。Googleらしいと言えばらしいですけど。 SNIかVIPを選ぶ いつのまにか管理コンソールのDashboardにも、「SSL VIPs」と「SSL SNI Certificates」が追加されています。 VIPで3.3ドル/日なんで、1ドル80円として8000円/月位、年間10万円弱です。 まぁIP半固
CentOS(4.2)のサーバを踏み台にして、SSHポートフォワード ssh -L 3389:rdphost:3389 tadatoshi_hanazaki@remotehost -v で、リモートデスクトップに接続しようとしたら、 open failed: administratively prohibited: open failed と怒られる。 CentOS側の/etc/ssh/sshd_config が、 AllowTcpForwarding=no になってた事が原因。覚えてない・・・ AllowTcpForwarding=yes にしたらOKでした。 参考サイト 漢(オトコ)のコンピュータ道: MySQLレプリケーションを安全に利用するための10のテクニック
ホーム > Google App Engine, slim3 > appengine 1.5.5 の Cross-Group Transactions は Entity Group が 5つまでしか扱えない 先日 slim3 1.0.14 とグローバルトランザクションについて書きました。 その続編です。 slim3 の Datastore.beginGlobalTransaction() とか deprecated になってます。 やはりフツーのDatastore.beginTransaction() を使えと言う事ですね。 で、Cross-Group Transactions なんですけど、やはり今のところ 5 entity groups までしか対応していないようです。 確かに複数Entityでも、今までの様に「can’t operate on multiple entity gr
スマートフォンでの音声・ビデオ通話/チャット のアプリが熱い 去年しらべた時以降に、LINE(ライン) がテレビCMまで打ってブイブイいわせているみたいですね。兎に角この手のアプリは相手あってのモノなんで、Facebook とかに完全にシェアを奪われてしまう前の今が勝負所なんでしょう。 ただ若い人は兎も角として、やはり暫くは電話番号つかって電話をかけるというのは、まだまだ主流で在り続けると思います。 なので去年はIDEOSで SkypeIn / Skuypeout を試す などしましたが、通話品質は兎も角として、割り切れば使えなくもないな、と言った印象でした。ただ、番号通知や不在時の挙動など、端末との統合っぷりがイマイチだった事もあり、それをメインにしようとは思えませんでした。 持ち出せるIP電話、050plus そうこうしている内に、050 plusが、iPhoneのみならずいつのまにか
私は現在サラリーマンです。 ある企業にフルタイムで雇用して頂き、今はソーシャルメディアっぽいWebサービスの開発と運用をやらせていただいています。 今風にカッコよく DevOps を実践しているとも言えるかもしれません、レベルが全然違いますので何でも屋と言った方が適切です。 開発と運用の新しい関係、「DevOps」とは何か? − Publickey 私は40歳です。 35歳を過ぎてもなお仕事の一部としてプログラミングをさせて頂いているのは幸せであります。 35歳を超えたエンジニアの5つの働き方 ところで私個人の成功の条件は、 健康な肉体と精神を有し、 ある程度の選択の自由を持てる程度の金銭的余裕があり、 愛する家族がいて、家族に愛される状態にあり、 小さな目標にむかって努力し実現させるサイクルを継続することを通じ、 積み上げたコツを伝播したり活用したりして、周囲を成長させ続ける状態 で
ITの受託開発はだいたい人月でナンボの世界。 要するに時間でナンボ。 個々プログラマの生産性の違いとか創造性とかそんなんは殆ど関係がない。 価値のあるものを作るより言われたもの言われた通りに作る事の方が重要な仕事。 本質的には工場のラインのバイトとかと一緒。 ・・・の場合が多いと思います。 勿論全部が全部では無いと思います。あくまで私の偏見です。 受託開発、無くなればいいのに。 いやいきなり全部なくなると困るんですけど。 米国のベンダーはそこに製品を供給する役割であり、日本でいうSIerというのはほとんどなく、あっても企業でリソースが不足したらそれを補う役割でしかない。契約にしてもはっきりしますよね。提供されるプロダクトやサービスに対する対価を払えばよいわけで、かかった人月で支払ういう出来高払いのような形態は少ない。日本のようにベンダーやSIerに丸投げして、できてからこんなはずでは
Java版のbulkloaderが出ると信じて待つこと1年以上、for businessもスベッてしまい、いまだその気配もなく。 痺れを切らして、普段 GAE/Jな私が、Python版のbulkloaderを使ってみました。 普段GAE/Jなので、スタートガイド Python 開発環境 / Google codeを参考に、環境作りからはじめます。 Pythonをインストール Download – Pythonから手繰り、私の場合はWindows (未だにXPデス)なので、Windows x86 MSI Installer なんをインストールします。最新は2.7.2の様です。 Macなら最初から入っていますし、Linuxも大概のディストリビューションで最初から入っています。 Google App Engine SDK for Python をインストール GAE/JなヒトでもPython版
Google App Engine/Java (以下 GAE/J) でセッションを有効にすると、Datastore上に_ah_SESSIONがどんどん増え続けます。 削除用サーブレットが用意されているので、Cronで実行すれば良い。 WEB-INF/web.xml <servlet> <servlet-name>_ah_sessioncleanup</servlet-name> <servlet-class>com.google.apphosting.utils.servlet.SessionCleanupServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>_ah_sessioncleanup</servlet-name> <url-pattern>/_ah/sessioncleanup</url-patte
OGP情報ヘッダに入れてますか? 要は、Facebook likeとかmixiチェックとかをWEBサイトに導入するとき、Open Graph Protocolに従い、HTMLヘッダのmetaタグ書きましょう、と言う事です。 フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か – IT戦記 当ブログはwordpressのプラグインに全てお任せで入れてませんけど、他でmixiチェック、GREEイイね、Facebook likeで色々実験してみました。 さっとググッてさっと実験しただけなんで、誤りを含んでいる可能性が大いにあります。鵜呑みにしないでください。 誤りを見つけた方はご指摘ください。 HTMLタグは、こんな感じに。 <html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”ja”
ホーム > Google App Engine, slim3 > slim3 で ModelクラスのStringに(@lob=true)を追加すると org.slim3.controller.HotReloadingRuntimeException が発生 slim3 で ModelクラスのStringに(@lob=true)を追加すると org.slim3.controller.HotReloadingRuntimeException が発生 slim3 で、既に存在するModelクラスのStringフィールドに、文字列を沢山保存しようとすると IllegalArgumentException が発生して保存が出来ませんでした。 これはApp Engineの仕様で、通常Entity オブジェクトにプロパティとして格納される Java 文字列は 500 文字まで、となっています。長いテキ
ホーム > Google App Engine, java, slim3 > java の AntiSamyでサニタイズ、任意のHTMLタグを許可しscriptタグとかを無効化 一般公開するWEBサービスを作る場合、慣れてないと手がかかるのがセキュリティへの配慮です。 Google App Engineとか使っている時点でSQLインジェクションとかディレクトリ・トラバーサルとかOSコマンド・インジェクションとか関係ありませんが、セッションハイジャックとかアプリケーションの作りに依存する部分は他のフレームワークと同じです。 気をつけたいのがXSS(クロスサイト・スクリプティング)です。 HTMLタグ不許可な場合は簡単なんですが、昨今のWEBサービスではブログをはじめフォームにHTMLタグを入力できる様なサービスが増えてきたので大変です。 良い子のウェブプログラマはIPAのガイドライン、安全な
ホーム > Google App Engine, slim3 > slim3でユニーク制約みたいな – #Datasotre#putUniqueValue() WEBアプリケーションの会員登録などにおいて、ユーザ名とかメールアドレスとかを一意にしたい場合、アプリケーション側で一意チェックを実装するのは勿論、RDBMS側でもUnique制約をかけておいて整合性を担保しますよね。 app engineにはそんなモンないですが、擬似的に実現する方法はあります。 Google App EngineではRDBMSのようなUnique Indexをサポートしていません。ユニーク制限を実現する場合は、トランザクション中でKeyを使ったgetとputを組み合わせる必要があります。 App Engineのユニーク制限を正しく理解しよう – ひがやすを blog slim3では上記を行うメソッドが用意されて
システムのCAP (分散耐性と可用性と一貫性) のうち、同時には2つまでしか満たすことはできない、という (Prof. Eric Brewer (UC Berkeley)の) 主張。 Consistency (一貫性(整合性)) Availability (可用性) Partition Tolerance(分散耐性) ※ITにおけるConsistencyの略は整合性の方が一般的の様だけど、個人的には一貫性の方が意味を良く表していて良い思います。 BASEトランザクション CAP定理に対して、「Eventual Consistency(結果的な一貫性(整合性)) を満たせば、Availability(可用性)とPartition Tolerance(分散耐性)も満たせるよ」という新たな主張とそれを踏まえたトランザクションのACID属性を見直していこうという概念の基本。 個人的には「DNS」や
slim3、Google App Engine for Java 1.3.6 で Blobstore API Google App Engine/Java (以下 GAE/J) のBlobstore APIについて調べています。 環境はSlim3 (1.0.5) + Velocity + app engine sdkは1.3.6です。 Blobstore概要 まずはドキュメントを見てみます。 最大2GBのデータオブジェクトを扱える アプリケーションから直接Blobを作成、保存する事は出来ない ここでいうBlobはBlobstoreはDatastoreのblobプロパティとは関係ない Blobの削除は出来る Blobの更新は出来ない Blobの作成は基本的にユーザがブラウザからBlobstoreにPOST(アップロード)する ImageServiceの#getServingUrl(BlogK
ホーム > Google App Engine, eclipse, java, クラウド > GAE/J (Google App Engine for Java) で Apache Velocityを動かす GAE/J で Apache Velocity は動く わたしにとってGAE/Jをガンガン使えるか否かは、Apache Velocityが動くかどうかに強く依存しています。 他のテンプレートエンジンを触ったことないし、JSPは絶対イヤだからです。 Will it play in App Engine – Google App Engine for Java | Google GroupsにはVelocityのことは書かれていてない(2009年10月30日現在)。 結論から言うとGAE/JでVelocityは動きます。すでに動かしちゃってる先人の方もいらっしゃる様です。 ちょっと安心
毎回忘れて調べるのでメモ。 アイコン の generate 1536px x 1536px (72dpi) の画像を作ってmakeappiconにアップロードする。入力したメールアドレスにダウンロード用
重量級のフレームワークはGAE/J上でspin-upの速度が遅い。JDOでDatastoreを操作してもsipn-upが遅い。その上トランザクションの要件を満たそうと思うと、難易度が高い。 App Engineではどの言語を使えばいいのか – ひがやすを blog 悩んだ挙句、オレオレフレームワークを捨て、Slim3に移行する事に決めました。 でもやはり、toCのWEB屋にとってJSPはキツイ。 保守フェーズ(運営)は主にエディターとかWEBデザイナとかが担う訳でして、彼らが扱いやすいVelocityが使いたい訳です。慣れてるし。 多少の性能ダウンは覚悟で、slim3 と Velocityと連携させます。 まぁvmファイルの数が少ない内はVelocityも早いですし。 GAE/Jのロードマップ上、スピンダウン/スピンアップの回避が出来る方法が提供されるかも知れない様ですから、それにちょ
前回も書きましたが、GAE/J上ではSocketが使えない。故にopenid4javaはGAEでは使えない。 でも、dyuprojectは動くし、動かした上にコードを公開されている方もいる。 どうやらGAE/Jの URLフェッチ API を使っている模様。そりゃそれしか方法はないですよね。 私は職業プログラマでは無いので、車輪の再開発どころか、なるべくコードは書きたくないんです。 早速、dyprojectにトライしてみましょう。 dyuproject-openid-1.1.6-jarjar.jar のダウンロード dyuprojectのDownloadsから、dyuproject-1.1.6.zipをダウンロードします。 JavaDocとか他のライブラリとかデモが不要なら、dyuproject-openid-1.1.6-jarjar.jar でもいいです。 eclipseのGAEプロ
次のページ
このページを最初にブックマークしてみませんか?
『www.tdtsh.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く