1 名前:nobodyさん mailto:sage [2008/04/10(木) 00:29:02 ID:???] Google App Engine code.google.com/appengine/
541 名前:nobodyさん mailto:sage [2009/01/08(木) 17:52:26 ID:???] いつのまにか、google.co.jpにアクセスしたら www.google.co.jpにリダイレクトされるようになってるな google的にはホストがないurlなんて糞ってことか。
542 名前:nobodyさん mailto:sage [2009/01/08(木) 17:55:35 ID:???] urlにwwwが付いてると90年代初頭みたいだよね(´・ω・`)
543 名前:nobodyさん mailto:sage [2009/01/08(木) 18:01:51 ID:???] >>542 www2, www3 は90'初頭なかんじだけど、wwwは後半だな。
544 名前:nobodyさん [2009/01/09(金) 00:22:51 ID:PbQMr6cR] データストアでツリーモデル作りたいのですが、 どういうアプローチをしたらいいですか?
545 名前:nobodyさん mailto:sage [2009/01/09(金) 02:45:41 ID:???] ReferenceProperty って自分参照出来なかったっけ?
546 名前:nobodyさん mailto:sage [2009/01/09(金) 03:49:16 ID:???] データストアの500M制限って現実的に考えると小さすぎるよな 有料版ではこの制限も取れるんだろうか?
547 名前:nobodyさん mailto:sage [2009/01/09(金) 06:22:01 ID:???] >>545 できますね。ただ一回のクエリでツリーを取得するのは難しいかと 同じような疑問がグーグルグループにありました groups.google.co.jp/group/google-appengine/browse_thread/thread/879cfff68bf9ab3f/e2a87aaf4cfe29e6?lnk=gst&q=tree# これから読んでみます
548 名前:nobodyさん [2009/01/10(土) 06:26:14 ID:luavPm0j] Kindをまたいで、同じプロパティーを持つエンティティーをselectすることはできますか? sqlの疑似コードで言うと、 select * from * where user_id=1 みたいな
549 名前:nobodyさん mailto:sage [2009/01/10(土) 06:51:27 ID:???] 共通の親クラスから継承するようにモデル作れば?
550 名前:nobodyさん mailto:sage [2009/01/10(土) 06:58:10 ID:???] 確かにモデリング自体は、共通の親を継承させることでできますが、 横断的なselectの可不可は、また別問題では? SQLでは、from * なんて書き方は絶対できませんが、 データストアはスキーマレスなので、 できないこともないような気もします・・
551 名前:nobodyさん [2009/01/10(土) 09:21:18 ID:pVr1yf0c] いくらなんでも select * from * は酷いな。 自分で for table in tables: ... 'select * from %(table)s' ... みたいにすれば?
552 名前:nobodyさん mailto:sage [2009/01/10(土) 10:58:54 ID:???] 仮に同じプロパティーを持つエンティティー e が取り出せたとして query = db.GqlQuery('select * from * where user_id=:1', user_id) for e in query: ここで e に対して何が操作出来るかどうやって区別するんだ
553 名前:nobodyさん mailto:sage [2009/01/10(土) 11:00:13 ID:???] e の polymorphism を利用するべきじゃないか?
554 名前:nobodyさん mailto:sage [2009/01/10(土) 11:01:56 ID:???] >>550 それは杞憂です とりあえずうんこ行ってから続き書きます
555 名前:nobodyさん mailto:sage [2009/01/10(土) 11:37:33 ID:???] goggle的にはentitygroupを作ってparent-key-valueをall_entitiesにぶっこむのが正解らしい
556 名前:nobodyさん mailto:sage [2009/01/10(土) 14:15:13 ID:???] >>551 それだとKindが増えた時にコストがどんどん増えるので、 最初から一つのインデックスにできたらと思ったのです >>553 そうですね >>554 杞憂の言葉の意味分かってますか? >>555 ありかとうございます。見てみます。
557 名前:nobodyさん mailto:sage [2009/01/10(土) 16:33:33 ID:???] ttp://s01.megalodon.jp/2008-0928-1547-13/www.death-note.biz/up/img/25243.html ttp://s03.megalodon.jp/2008-0928-1610-28/www.death-note.biz/up/img/25253.html ttp://s02.megalodon.jp/2008-0930-1956-35/yutori.2ch.net/test/read.cgi/news4vip/1222517791/53-305
558 名前:nobodyさん mailto:sage [2009/01/11(日) 18:08:07 ID:???] www.moongift.jp/2008/07/httpmr/ www.moongift.jp/2008/06/skynet/ techon.nikkeibp.co.jp/article/NEWS/20080627/154025/ morii3.cocolog-nifty.com/sanpo/2008/09/080909-1218.html diaspar.jp/node?page=2 jp.youtube.com/watch?v=-vD6PUdf3Js code.google.com/p/httpmr/ www.virtual-tech.net/blog/2008/07/mapreduce-httpmrgroovyflash.html markmail.org/message/pzyqapveerwgu2ki
559 名前:nobodyさん [2009/01/12(月) 17:38:30 ID:j7rSo5dO] mail.is_email_validの動作おかしくね? メールアドレスじゃなくても通るっていうか、 mail.is_email_valid('hoge')でもTrueが返ってくるよ
560 名前:nobodyさん mailto:sage [2009/01/12(月) 17:51:48 ID:???] is_email_valid "google app engine" でググっても8件しか見つからない・・ gaeってあんま使われてないんの?
561 名前:nobodyさん mailto:sage [2009/01/12(月) 18:56:45 ID:???] markmail.org/message/ddtnnevv3o6xbqrx
562 名前:nobodyさん mailto:sage [2009/01/12(月) 19:05:52 ID:???] Email address validation with Django and Google App Engine Email address validation is a quixotic affair that's sure to end with you sporting a false sense of achievement and your users in tears. Many "better mousetrap" regular-expression-based validation system on the web today are overly strict and reject perfectly valid email addresses. Beyond regular expressions and other string-based techniques, your options are to check the DNS server (but DNS lookups can fail on occasion) and vrfy the SMTP server (but many SMTP servers turn this off to stop email harvesters). Ultimately, you can actually send an email to the address and see if there are any bounces. Or, we could just not bother. That, at least, is the approach that the Google App Engine SDK currently takes. Both the google.appengine.ext.db.EmailPropery() and the google.appengine.api.mail.is_email_valid() functions only check that a non-empty string instance is passed. The problem with that is that you really don't want your good friends asdfhdsjkj and asdfghdsj to make regular camio appearances in your lovely database.
563 名前:nobodyさん mailto:sage [2009/01/12(月) 19:08:21 ID:???] It feels to me that the best approach is to accept that we can't truly validate email addresses and instead perform some light validation that doesn't provide false positives while blocking the most obviously non-validating addresses. This seems to be the approach taken by the validation regular expression in Django (email_re in django.core.validators). Phil Haack has a good article about all this from last year this titled I Knew How To Validate An Email Address Until I Read The RFC in which he quotes several unlikely-looking yet valid email addresses from RFC 3696 (Application Techniques for Checking and Transformation of Names) including such gems like !def!xyz%abc@example.com. I ran the whole list through Django's validator and they all passed. All this to say that I'm using the Django email validator in my Google App Engine apps and it appears to be working well.
564 名前:nobodyさん mailto:sage [2009/01/12(月) 22:51:05 ID:???] 日本語でおk まとめると「イマイチ使えない関数」ってことっすか?
565 名前:nobodyさん mailto:sage [2009/01/12(月) 23:06:58 ID:???] 言い訳すんなって感じだな。 確かに、!とか%とか""とかスペースとか<> [] ()あたりを全部駆使すれば 相当に訳のわからないValidなアドレスは作れるが、所詮BNFで記述できる 範囲だから実装するのは簡単だし、もしくはふつーの形式以外は 拒否すりゃいい話。 なんか入ってればOKなんて結論になる理由になってない。
566 名前:nobodyさん mailto:sage [2009/01/13(火) 02:17:52 ID:???] gae oilってZendFramework参考にしてるんだ pythonerがphpのプロダクト参考にしてるなんて・・プークスクス
567 名前:nobodyさん mailto:sage [2009/01/13(火) 03:12:53 ID:???] RoRもだね
568 名前:nobodyさん mailto:sage [2009/01/13(火) 03:20:19 ID:???] RoRの作者も元PHPERだから、PHP様々だねwクスクスプー
569 名前:nobodyさん mailto:sage [2009/01/13(火) 03:38:07 ID:???] あーだからあんなに使いにくいのか
570 名前:nobodyさん mailto:sage [2009/01/13(火) 12:39:27 ID:???] 馬鹿には使えないんです
571 名前:nobodyさん mailto:sage [2009/01/13(火) 13:06:29 ID:???] Perl様々だろ、常識的に考えて
572 名前:nobodyさん mailto:sage [2009/01/13(火) 14:27:42 ID:???] pc11.2ch.net/test/read.cgi/tech/1218155094/
573 名前:nobodyさん [2009/01/14(水) 18:43:31 ID:BrrRMqDH] Google App Engine で Django 1.x を使いたいんだけど、 サポートはまだですか?
574 名前:nobodyさん mailto:sage [2009/01/14(水) 20:57:41 ID:???] 自分でインストールしたらいいだけじゃないの? pure pythonなら大抵動くでしょ
575 名前:nobodyさん [2009/01/15(木) 02:53:40 ID:sFuWbZ6t] エンティティーグループを使わずに(トランザクションなしで) 同じKindのエンティティーを同時に作成した時、 それはエラーなしで実行されるのでしょうか? 自動で割り振られるidがほぼ連番なので、 id生成はアトミックに行われているような気もするし、 それだとマズいので、バッティングしないid生成を使っているような気もします
576 名前:nobodyさん mailto:sage [2009/01/15(木) 03:56:11 ID:???] idはダブらないよ
577 名前:nobodyさん mailto:sage [2009/01/15(木) 04:07:27 ID:???] たしかに、今動いてるアプリ見ると、 1から始まる連番と200から始まる連番が混在してますね ノードレベルでアトミックなのかなぁ 連番の間隔もっと離れてた方がいいような気も・・
578 名前:nobodyさん mailto:sage [2009/01/15(木) 06:11:06 ID:???] きちんと連番にするためにidじゃなくて 自前のカウンタを持たせた場合 カウンタをインクリメントするときに アトミックでないと当然同じ番号になるケースが起こる カウンタに対してはアトミックなアクセスが必要
579 名前:nobodyさん mailto:sage [2009/01/15(木) 08:12:32 ID:???] expandoはプロパティーを好きに追加できますが、プロパティー数に制限ありますか?
580 名前:nobodyさん mailto:sage [2009/01/15(木) 22:55:14 ID:???] www.itmedia.co.jp/news/articles/0901/15/news095.html Google、Google VideoのアップロードやJaikuなど6サービスを終了 gaeで構築してgaeがいきなり終わったら目も当てられないね
581 名前:nobodyさん [2009/01/16(金) 05:58:22 ID:JXr+7Aan] モデルを操作するメソッドは、モデル自身に実装させていいのですか? たとえば、incrementなどです
582 名前:nobodyさん mailto:sage [2009/01/16(金) 08:14:03 ID:???] なんでmemcacheのビューアないの?なめてんの?
583 名前:nobodyさん mailto:sage [2009/01/16(金) 12:12:53 ID:???] get_stats() Gets memcache statistics for this application. All of these statistics may reset due to various transient conditions. They provide the best information available at the time of being called. The return value is a dictionary mapping statistic names to associated values. Statistics and their associated meanings: hits: Number of cache get requests resulting in a cache hit. misses: Number of cache get requests resulting in a cache miss. byte_hits: Sum of bytes transferred on get requests. Rolls over to zero on overflow. items: Number of key/value pairs in the cache. bytes: Total size of all items in the cache. oldest_item_age: How long in seconds since the oldest item in the cache was accessed. Effectively, this indicates how long a new item will survive in the cache without being accessed. This is _not_ the amount of time that has elapsed since the item was created.
584 名前:nobodyさん mailto:sage [2009/01/16(金) 15:53:33 ID:???] >>583 たしかにそれで自分で作ればいいけども datastoreビューアを用意するならmemcacheビューアがあってもいいじゃん
585 名前:nobodyさん mailto:sage [2009/01/16(金) 21:00:05 ID:???] いつのまにか機能が増えてるときがあるから気長に待て
586 名前:nobodyさん mailto:sage [2009/01/16(金) 22:51:39 ID:???] gae管理画面のタイムゾーンが日本時間でないので困ります 日本時間にする方法あれば教えて下さい
587 名前:nobodyさん mailto:sage [2009/01/16(金) 23:13:28 ID:???] シンプルなエンティティーを3つputするリクエストを繰り返すだけで、 Avg CPUがどんどん上がって赤くなっていくんだけど 1リクエスト中で許されるput数はたった2つ程度? それでいったい何をしろと・・
588 名前:nobodyさん mailto:sage [2009/01/17(土) 06:55:17 ID:???] >>586 googleにメール
589 名前:nobodyさん mailto:sage [2009/01/17(土) 06:56:25 ID:???] >>587 使い方間違ってるかと
590 名前:nobodyさん mailto:sage [2009/01/17(土) 18:56:07 ID:???] あるモデルを全削除する場合、 all().fetch()してイテレータで回して一つずつ削除するしかないの?
591 名前:nobodyさん mailto:sage [2009/01/17(土) 19:33:47 ID:???] >>589 cpuタイムが1000ms程度超えるだけで赤くなるね 気にする程のことでもないみたい
592 名前:590 mailto:sage [2009/01/17(土) 20:09:31 ID:???] Queryをイテレートでおkでした
593 名前:nobodyさん [2009/01/18(日) 03:00:28 ID:qAy4grM0] coLinuxにapp engineを入れて、ホストのwinからサイトを見たいのですが、 winからcoLinuxに接続出来ません サイトは、coLinuxのlynxでは見えます。 lsof -i:8080 で確認すると、 localhost:webcache (LISTEN) と表示されます。このlocalhostが気になります。 dev_appserverは、ローカル以外にはサイトを公開しないのでしょうか?
594 名前:nobodyさん mailto:sage [2009/01/18(日) 03:10:24 ID:???] -aオプションで解決しました
595 名前:nobodyさん mailto:sage [2009/01/18(日) 05:13:32 ID:???] 解決おめ
596 名前:nobodyさん mailto:sage [2009/01/20(火) 22:55:39 ID:???] >>573 App Engine向けのDjango code.google.com/p/app-engine-patch/ 色々なものが動くようになってきたので、cronとか要望の高いものをどんどん拡張していってほしい所だな。
597 名前:nobodyさん mailto:sage [2009/01/21(水) 00:16:28 ID:???] うほっ
598 名前:nobodyさん mailto:sage [2009/01/22(木) 09:25:14 ID:???] >>596 でもそれ、まだ1.x系には対応してないんだよね?
599 名前:nobodyさん mailto:sage [2009/01/24(土) 16:19:59 ID:???] >>448 同じ問題で検索してカスタムフィルタで一部分は解決出来ました ありがとうございました ただ django の template はなんとも貧弱なのと {% ifequal hoge fuga|customfilter:param %} みたいなことしようとしても ifequal の中ではカスタムフィルタが ちゃんと動いていないみたいなので目的は完全には達成出来ませんでした {{fuga|customfilter:param}}の結果は期待通り出てるのになぁ
600 名前:nobodyさん [2009/01/24(土) 17:59:26 ID:v7FoOqq8] 結局まだpython以外利用できないんだよね? ってか今登録できるのは、無料アカウントだけですか?
601 名前:nobodyさん [2009/01/25(日) 05:58:05 ID:7yBqIDHT] >>600 言語は Python のみ。 登録は無料アカウントのみ。 ストレージは500MBのみ。 制限厳しすぎだな。 > Google これじゃ流行らないよ。
602 名前:nobodyさん mailto:sage [2009/01/25(日) 08:11:11 ID:???] アパッチハドゥープでデータストアみたいの作れないのかな?
603 名前:nobodyさん [2009/01/25(日) 08:16:25 ID:7yBqIDHT] Google App Engine でストレージを購入できるようになったら本格的に使うのに。 今だと、外部のDB/APIサーバー作ってそことコミュニケーションさせるしか道がない。
604 名前:nobodyさん mailto:sage [2009/01/25(日) 14:14:22 ID:???] >>601 どうなんだろ。 無料の範囲でいい人にはいいだろうし、 そうでない人はVPSとか専用鯖借りるだろうし Pythonのみというのは確かに致命的だが
605 名前:600 [2009/01/25(日) 22:14:13 ID:l1F13FTZ] >>601 あざす!
606 名前:nobodyさん [2009/01/26(月) 11:38:31 ID:xM4CpIxr] GAEの正式リリースが何時か知ってる人いる?
607 名前:nobodyさん [2009/01/26(月) 18:38:36 ID:aFYLHCo/] 去年の3月だっけ
608 名前:nobodyさん mailto:sage [2009/02/01(日) 00:08:18 ID:???] googleなんか調子悪いと思ったら今度は派手にぶっ壊れたね こういうことがあると、gaeで全面的に依存するのもどうなのかと思う
609 名前:nobodyさん mailto:sage [2009/02/01(日) 00:45:36 ID:???] 全面的に依存してたのか・・・
610 名前:nobodyさん mailto:sage [2009/02/01(日) 00:58:16 ID:???] gae使ったら依存するだろ
611 名前:!omikuji mailto:sage [2009/02/01(日) 02:12:22 ID:???] !omikuji
612 名前:nobodyさん mailto:sage [2009/02/01(日) 07:00:43 ID:???] Googleがぶっ壊れた
613 名前:nobodyさん mailto:sage [2009/02/01(日) 07:18:16 ID:???] NGURLの登録データ間違えてただけらしいね big tableがぶっ壊れたのかと思った
614 名前:nobodyさん [2009/02/01(日) 07:49:01 ID:rg7gZ0Rw] さすがGoogle。 段々アホの子になってきたな。
615 名前:nobodyさん mailto:sage [2009/02/01(日) 08:50:11 ID:???] gmailの検索がやたら重かったり、google readerの一括更新が遅かったりと 最近のgoogleは何か変だ
616 名前:nobodyさん mailto:sage [2009/02/01(日) 09:08:45 ID:???] >>615 会社は大きくなればなるほど、非効率的で、コミュニケーションが停滞しがちで、 プロダクト間の連携も難しくなり、しまいにはバグが増え、会社自体がアホになってく。 Googleも他と同様、アホの退化への道を辿っているし、 この先ずっとそうなっていくことだろう。 だが心配なかれ。 また別の会社がでてくるから。 こうした創造的破壊は経済の必然プロセスなんだ。
617 名前:nobodyさん [2009/02/01(日) 12:53:17 ID:jgCOwxDC] >また別の会社がでてくるから。 >こうした創造的破壊は経済の必然プロセスなんだ。 Cloudのようなシステムを本格化するためには、こういう事では ためだ。安定・長期のシステム稼働が無かったら使いものにならない。
618 名前:nobodyさん mailto:sage [2009/02/01(日) 13:24:31 ID:???] W.nnyが一番長期のシステム稼働かもな 安定かどうかは知らん
619 名前:nobodyさん [2009/02/02(月) 02:00:32 ID:enCDFoM0] 一つのアプリの異なるURLを、別のドメインにマップすることってできますか? www.hoge.com/ → hoge.appspot.com/hoge/ www.hoge1.com/ → hoge.appspot.com/hoge1/ みたいな感じに。 10個しか作れないので、単機能的なミニアプリ作るともったいないです
620 名前:nobodyさん mailto:sage [2009/02/02(月) 06:25:12 ID:???] アプリの削除機能付かないのかな
621 名前:nobodyさん mailto:sage [2009/02/02(月) 06:28:12 ID:???] >>619 複数のドメインを一つのアプリに割り当ては出来るから そのアプリの各URLのところに どのドメインでアクセスされているかを調べて それぞれの処理を行うディスパッチャを作れば実現可能
622 名前:nobodyさん mailto:sage [2009/02/02(月) 13:33:03 ID:???] >>621 なるほど ありがとうございました
623 名前:nobodyさん mailto:sage [2009/02/05(木) 16:54:27 ID:???] referenceproperty(a)を持つmodel(A)で reference先のmodel(B)のproperty(b)の値を条件に 検索を行いたいのですがどうすれば出来ますか? db.GqlQuery('SELECT * FROM A WHERE a.b=:1', hoge) みたいな感じで書くとエラーになるようです><
624 名前:nobodyさん [2009/02/05(木) 17:16:42 ID:865tdHLi] ちょっとまぬけだけどこんなの ttp://groups.google.co.jp/group/google-app-engine-japan/browse_thread/thread/13dce425a5063bd0#
625 名前:nobodyさん mailto:sage [2009/02/05(木) 17:23:03 ID:???] whereに a > 1 and b > 2 のように ">" などの条件は2つ以上記述できない。 (1つしかだめ) ', '.join(self.INEQUALITY_OPERATORS)) BadFilterError: BadFilterError: invalid filter: Only one property per query may have inequality filters (<=, >=, <, >)..
626 名前:nobodyさん mailto:sage [2009/02/05(木) 17:27:40 ID:???] 部分一致検索はできない w が unicode のとき q = db.GqlQuery("SELECT * FROM Hoge WHERE fuga>=:1 and fuga<:2", w, w + u"\uFFFD") w が utf-8 のとき q = db.GqlQuery(("SELECT * FROM Hoge WHERE fuga>=:1 and fuga<:2", w, w + "\xEF\xBF\xBD").decode("utf-8")) 自動でデコードされるみたいなので q = db.GqlQuery("SELECT * FROM Hoge WHERE fuga>=:1 and fuga<:2", w, w + "\xEF\xBF\xBD") でもいいみたい
627 名前:nobodyさん mailto:sage [2009/02/05(木) 17:36:32 ID:???] 使えねーw
628 名前:nobodyさん mailto:sage [2009/02/06(金) 23:57:51 ID:???] 馬鹿には使えないのですね わかります
629 名前:nobodyさん mailto:sage [2009/02/07(土) 04:07:10 ID:???] 馬鹿しか使わないのです。 全然わかってないですね
630 名前:nobodyさん mailto:sage [2009/02/07(土) 07:00:42 ID:???] なるほど ありがとうございました
631 名前:nobodyさん [2009/02/07(土) 07:23:13 ID:+a2UfnZm] 複雑だと思うならつかわなきゃいいんじゃねーの? なんでアホはあるもの全部使わなきゃ気がすまねーの?
632 名前:nobodyさん mailto:sage [2009/02/07(土) 18:47:59 ID:???] そういうのの他にも、好きな物(言語とか)を袖にされて怒りで思考が乱れ、 心の平安を得る為に「相手を見下せるキャラ設定を相手にかぶせる」という 手短な方法を選ぶ人も多いね。>>628-631 とか。
633 名前:nobodyさん mailto:sage [2009/02/07(土) 19:01:16 ID:???] 632は?
634 名前:nobodyさん mailto:sage [2009/02/07(土) 19:25:54 ID:???] >>632 ただの痛い子です
635 名前:nobodyさん mailto:sage [2009/02/07(土) 20:44:09 ID:???] >>632 >>628-632 の間違いじゃん。
636 名前:nobodyさん mailto:sage [2009/02/07(土) 22:30:53 ID:???] キャラ設定をかぶせているが、それほど不当だとは思ってない。 逆にそういうキャラと想定しないと、意見をスルーできずに心の平安を 得られないのもまあおっしゃる通りで、むしろ当然のことだと思ってるぞ。
637 名前:nobodyさん mailto:sage [2009/02/07(土) 22:34:12 ID:???] ロードマップが更新されたね メール受信処理とかタスク処理とかなかなか使えそう
638 名前:nobodyさん mailto:sage [2009/02/08(日) 11:20:51 ID:???] ちなみに以前のロードマップ codezine.jp/article/detail/3233 それによると、今後2四半期(2009年3月まで)で次のような機能追加が行われるという。 * 大容量ファイルのサポート * 大規模データのインポート・エクスポート * 有料プランの開始 * 新しい言語サポート * Uptimeモニタ用サイト 有料サポートは間に合うのか? 新しい言語サポートは無理そうだな・・
639 名前:nobodyさん mailto:sage [2009/02/08(日) 23:42:00 ID:???] 馬鹿にされると(恥ずかしい?)のは馬鹿だからだろ 馬鹿じゃないんだったら馬鹿にされてもいいじゃん ひとちがいなんだから
640 名前:nobodyさん mailto:sage [2009/02/09(月) 13:47:41 ID:???] 自作モジュールを作ったんだけど、 ImportError: No module named xxxx というエラーが出るんだけど、モジュールの置く場所って 何か知らせないとダメなの? hoge/test.py /xxxx.py ←今回作ったモジュール test.pyの中でimport xxxxとやっても読み込めません
641 名前:nobodyさん mailto:sage [2009/02/09(月) 16:12:08 ID:???] | | ∩___∩ | | ノ _, ,_ ヽ (( | プラプラ / ● ● | (=) | ( _●_) ミ _ (⌒) J )) 彡、 |∪| ノ ⊂⌒ヽ / ヽノ ヽ /⌒つ \ ヽ / ヽ / \_,,ノ |、_ノ