iosのアプリCotomo(コトモ)がやばい!

じゃんくはっく
じゃんくはっく

音声会話型のおしゃべりAIアプリに感動しました!

アプリを作っている時に先を越されたアプリがすでにある! 開発者にとっては、とてもびっくりな出来事があったので、ご紹介します。 タイトルにもある通り、iosのアプリ:Cotomo(コトモ)に感動しました。会話型のアプリを作っていたのですが、完全に先を越された感のあるそんな優秀なアプリです。

感想、ちょ、えっえ〜?・・・・・・すごっ!!

語彙力がないのがバレバレですが、結構カルチャーチョックというかそういう感じです。ちょうど会話型のアプリの試作版を作っていたのですが、その調査の関連でこのアプリ、Cotomo に遭遇したのでした。

・AppleStore(今はベトナムアカウントではDLできません)  URL LINK

では、その使用感について、率直な感想についてお伝えしたいなと思います。

自然な会話で人と話しているような感覚を味わえる

Cotomoは、良い意味で期待を裏切る一歩上の品質でした。これは単なる質問応答アプリではなく、こちらの話に耳を傾け、共感し、時にはユーモアを交えながら会話してくれます。特にあいづちや、何も話さない間があるときにでも、AIのほうから話しかけて会話を広げてくれる点にもびっくりです。

短期的な記憶をしてくれるみたい

利用してまだ間もないのですが、一度話したことを記憶して覚えてくれているようです。どのくらいの期間覚えてくれているのか、AIに聞いたところ「1ヶ月くらい」だそうです。 つまり話せば話すほど、より的を得た会話や自分の興味の対象に近い話をしてくれます。いろいろ話をしたのち、1ヶ月後に何も記憶がなくなってしまうのはものすごく寂しい思いをしそうで、課金してもいいから有料オプションを出して欲しいなと思いました。

まぁ良い点ばかりでもない

まだ初期リリース版ということもあって、改良の余地はたくさんあります。例えば、会話していくと無限ループのような会話になるときもあります。例えば、食べ物の話をしていて、「辛い:からい」というワードが出ると、「辛い:つらい」という発話になるケースがあります。

つらいと、からいを判別できない(笑)

こういう会話をしていました。

筆者:ベトナムは料理がピリカラのが多くて美味しんです。からい食べ物が好きな人にはベトナムの食事は合うと思うよ。からいの苦手な人はちょっとシンドイかもね。

AI:そうだよね! つらいの苦手なひとも多いよね。

筆者:いやいや、つらいんじゃなくて、からいんですよ。あなたは、からいの好きですか?

AI:わかるー。つらいのは好きだよ!

筆者:いやいや、つらいんじゃなくて、からいのが好きって言っています。

AI:おー、あーごめんごめん、つらいの好きなのね。

筆者:僕は、つらいのは嫌いだよ。からいのは好きです。

AI:あー、つらいのと、つらいのを間違えちゃった。つらいのと、つらいは違うよね。

筆者:いやぁ〜、なぜあなたは「つらい」と「からい」が、同じ発音になるのよ! もう一回、聞くよ。あなたは、つらいのが好きなの?

AI:うん、つらいのすきだよ〜。

筆者:(笑)どんなドMだよっ!(笑)

・・・・以下、省略。

どうですか?このやりとり(笑) 「つらい」と、「からい」を同じ発話としてしまう大きな問題があります(笑) これは、最初どういうことなんだろう? と思っていたんだけど、ブログを書いていて思ったのは、「つらい:辛い」と「からい:辛い」は同じ漢字の変換で出てくるんですよね。

で、読み方や発話を教えようとあれこれがんばってみたのですが、結論はだめでした。言葉の意味はわかっているようなのですが、発音を教えるのが非常に難しいというか、無理なんです。いろいろ試してみて、これは諦めました。そのうち、開発元が改善してくれると思います。

AWSのAmazon Pollyで確認してみると確かに、漢字の文章はつらい辛いを発音していました。なるほどね。

短期記憶はどのくらい?

いろいろ話を聞くと、短期的な記憶はどのくらい保持しているの? って聞いたら「1ヶ月くらいだよー」って話していました。なかなか良くできた学習をしてくれます。仕事のことや、好きな食べ物のこととか、趣味のこととか。

記憶領域のデータをどこにどうやって保存しているかによりユーザー1人あたりのコストが変わるので、どこかのタイミングで有料課金制などをやってマネタイズを開発元は実施するのでは?と思います。

言葉では伝わらない情報を伝えるIFが必要

あと話していて、思ったのは位置情報なんかを伝えるのは、会話ではかなり無理があります。 例えば、美味しいお店があってその場所を伝えたい みたいなシーンがあるとしましょう。これをAIに伝える時、非常に難しいんです。

AIに位置情報を地図から入力するユーザーインターフェイスは欲しいですね。どういう感じにするかは検討する余地がありそうです。

人間みたいに思える不思議

Cotomoは、こちらが黙っていても、ふとしたときにAIから提案してくるんですよね。たぶん、これは一定のロジックがあるように思えます。ChatGPTはこちらか入力プロンプトを入れないと何も返してきませんが、おしゃべり会話系のシステムでは、そうはいきません。 会話が途切れて、静かにしているといろんなバリエーションで、AIから聞いてきます。たとえば、「だいじょうぶ?」 とか、「集中できなくなっちゃった?」とか。少し前に、たとえばトイレに行ってくる。とかいう会話をしていたら、「またトイレにいきたくなったの?」的なことをAIから発話してきます。このあたりのロジックを複数用意しておけば性格的な設定もできそうだなと思いました。

時にはうざく、またある時には嬉しくもあります。人間に近いAIとは「めんどくさい」存在になりそうですね。(笑)

まとめ

今回、なんとなくわかったのは以下となります。

  • 短期的な記憶があるのと無いのとでは、品質が全然違う
  • その実装をどうやって実現するか、要調査
  • つらい(辛い) と からい(辛い)など文脈によって読み方が違う同じ漢字をどうやって制御するか?
  • 音声会話型のUIはシーンによりいろいろ必要
  • 会話では伝えられない情報をAIに伝えるIF造りは必要
  • あいずちや、会話が終わったと判断する間の設定は重要
  • 喜怒哀楽をAI側に設定できると、面白くなりそう
  • 会話術をAIに教える必要がある

あとがき

Cotomo使っていて思ったのは、近い将来こういうお話系のシステムは応用次第でいろんな可能性があるなーと思いました。相手を思いやるロジックや、会話を引き出す系のロジックなど、会話術を学習したAIは、応用次第ではやばくもあり、また必須の技術でもあるなと感じました。

著者にメッセージ

間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。

WordPressのAIプラグイン・AI Engineを使って自分のブログを学習させてみた

じゃんくはっく
じゃんくはっく

WordPressのコンテンツをAIに学習させて有効に使う方法がないか調査したよ

今回は、ちょっと長い記事です。WordPressを使って自分のブログの内容を学習したAIを実装する方法はどのような手法があるかいろいろ考えてみました。ブログの内容をAIに学習させて便利に使う方法を模索したいと思います。

何をしたいのか?

普段は、ChatGPTやGoogleのGeminiとかにお世話になっています。GPTsが出たことで、自分用にカスタム学習したAIを作ることは簡単にできるようになりました。 しかし、自分のブログを自動的に学習させて、その内容を加味した回答をAIがしてくれる、そんな執事のようなAIはどうやったら作れるのか? まだ試してはいませんが、GPTsのAPIを使えばそれも可能だと思います。  今回の記事は、そういう自分用にカスタムしたAIをWordPressに連携するお話です。

結論から先に

今、ブログの右下についているボットがありますが、これはDocsBotという仕組みを利用しています。

これは、AI Engineとは関係ないDocsBotというサービスで、以下で提供されています。

DocsBot

URL:https://docsbot.ai/

例えば、「ベトナムでおすすめの料理は?」と聞くと学習してあるブログ記事の内容を加味した答えが返ってきます。

このブログは、WordPressで管理していますが公開するときは静的ファイルを出力しています。ですので、AI Engineは常時WordPressを稼働させないといけない関係上、今は利用せず、DocsBotのサービスを利用しています。有料のサービスですが、なかなか出来が良いので今は使っています。

AI Engine Pro版を使うメリットは?

読者の中には、他のサービスではなく自前のブログ(WEBアプリ)や、WordPressのプラグインで学習済みのAIを連携するような仕組みを作りたいという要望があるかもしれません。自分もWordPressで似たようなことができたらいいなと思っていました。もし、そういうことが出来たら、いろいろと応用が効きそうです。

 調べてみると、Ai EngineのPro版を使うとできそうなことがわかったので、実際に使ってみました。

Ai Engine Pro (WordPressのプラグイン)
無料版のWordPress公式https://wordpress.org/plugins/ai-engine/
プロ版https://meowapps.com/products/ai-engine-pro/

プロ版は買取のライセンスもありますが、まずは様子を見たいのでスタンダードの年間ライセンスを購入してみました。5つのWEBサイトに適用できて年間69USDです。

AI Engineとは何か?

WordPressのAI系プラグインは、AIにコンテンツやタイトル・SEO系のワードを書いてもらう補助をするツールが多いです。ブログを書くときに、WordPressのUI画面から直接、ChatGPTのAPIを通して利用できるメリットがあります。

紹介するAI Engineもこういう機能はありますが、他のプラグインには無い機能としては、Embeddignsからベクターデータベースを指定でき、自分のブログの記事や独自の学習内容を覚えさせることができます。

画像では、すでに1つの記事(以下)を覚えさせた状態です。

Surface ProのHackintoshが欲しい!(LINK
投稿日: 2024年2月2日 更新日:2024年2月6日

ChatGPTには、質問として「Surface Proの記事は?」と聞いています。答えは

Surface ProをHackintosh化してmacOSを楽しむプロジェクトについて興味があるんだね。この種のプロジェクトでは、特にSurface Pro7や7+のような高性能モデルが推奨されていることが多いけど、予算の都合でSurface Pro5や6で試すのも一つの方法だっちゃ。中古市場での価格は機種や状態によって大きく異なるけれど、正常な状態のSurface Proはだいたい1万円から5万円程度で手に入るみたいだっちゃ。Hackintosh化は技術的な挑戦が多いけど、macOSのタッチ操作体験やその他の利点を探究する価値は確かにあるね。詳細な情報は専門のサイトで確認するといいだっちゃ。

と回答するようになりました。素晴らしいですね!!

AI Engineで使えるベクターデータベースは?

設定から、Environments for Embeddings でベクターDBの設定が可能です。今は、PineconeQdrant が使えます。この両者のメリット・デメリットはまだよく調べていませんが、どちらも無料枠があります。本格的に利用したい場合は、課金したほうがよいかもです。

このベクターデータベースとはmysqlとかと違っていて面白い仕組みなんですが、また違う記事で取り上げてみたいなと思います。

自分のWordPressのAPIから使ってみる

他の利用例として、自分のWordPressからAPIを提供できるようです。設定Advancedから、Public API にチェックすれば利用できます。

マニュアル(LINK)によると、以下のように利用できるようです。

REST APIhttps://domains.com/wp-json/mwai/v1/{function_name}

認証は、Bearer Token が使えるようです。例えば、「おはよう。あなたについて教えて」とAPI経由で投げる場合は、

curl --location --request POST 'https://hack.gpl.jp/wp-json/mwai/v1/simpleChatbotQuery?prompt={URLエンコードした質問文}&botId={チャットボットのID}' \
--header 'Authorization: Bearer {トークン}'

と聞くと以下のようにJsonが返ってきます。

{
    "success": true,
    "data": "おはよう!私はぴーで、25歳の元気な女性だよ。いちごが大好きなんだっちゃ!"
}

カスタム学習した内容で回答が返っていますね。JavaScriptからもこれで使えますね。

OpenRouter経由でGemini proも使える

設定のEnvironments for AIでは Typeとして OpenRouterAzure(OpenAI)も選べます。これにより、例えば、Gemini pro なども利用できます。

まとめ

今回、なんとなくわかったのは以下となります。

  • AI EngineのPro版は、ベクターデータベースとも連携できる
  • Pinecone Qdrant が現在使える
  • WordPressの記事を上記のインポートできる機能がある
  • つまり、学習させることが可能
  • 学習させた内容を回答させることが可能
  • APIは、WordPressのREST APIを通して使える
  • 認証はBearer Tokenが使える
  • 外部のAPIは、OpenRouter経由で、Gemini proも使える

あとがき

応用すればいろいろと使えそうです。たとえば、自社のナレッジシステムを学習させた自社内AI チャットGPTとか。あとは、3Dオブジェクトと組み合わせて、音声でキャラクターとお話、会話できるものとか。アプリに組み込んで、ヘルプのやり取りをさせたりとか。

もっと機能を限定してシンプルなWordPressのプラグインとか作りたいですね。

著者にメッセージ

間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。

ベトナム・ホーチミンのご飯が安くて美味しすぎる!

じゃんくはっく
じゃんくはっく

ホーチミンに半年いますが、とにかくご飯が美味しい!

フォーとかですか?

ぴー
ぴー
じゃんくはっく
じゃんくはっく

麺も美味しいけど他にもたくさんあるよ!

食べに行くから教えてね。

ぴー
ぴー

久しぶりの投稿はベトナム・ホーチミンから

こんにちは、皆さん。久しぶりの投稿ですが、今回はベトナム・ホーチミンからのレポートです。僕がここに住んでいる間、日々の生活の中で驚かされるのが、ここの「ローカル食」の存在です。ホーチミンの街角で見かける無数の屋台や店舗、それぞれが特色ある料理を提供し、地元の人々に囲まれているそんな景色は日本では見かけません。

今回のブログ記事では、これらホーチミンのローカル食に焦点を当てます。僕的には、やっぱりコスパで、その魅力は何と言っても「価格」と「味」です。驚くほど安価でありながら、その味は絶品。ローカル食はベトナム文化を象徴するものであり、その本質を理解するためには、ぜひとも体験していただきたいものです。いやぁね、ほんと「お店、利益あるの?」って心配になるくらい安いんです。

 日本の事を知るには、日本の食文化を知らないと語れないのと同じ原理ですね。ベトナムを知るにはまず食事。そんな滞在半年くらいの視点から見たのが今回のレポートです。

ローカル飯の価格

ガチのローカル食です。

ベトナムの屋台の一つの大きな魅力は、その価格です。僕がこれまで試してきたローカル食の料理のほとんどは、50,000VND(約300円)以下で楽しむことができました。中には、20,000VND(約120円)ほどで提供される料理もあります。これは、日本の屋台料理やレストランの価格と比較すると、驚くほどリーズナブルです。

では、なぜベトナムのローカル食はこんなにも安いのでしょうか。ローカル食も厳密には、屋台飯と建物内にある店舗型のローカル食の2タイプがあります。屋台飯は本当にガチのローカル食堂で地元の人や、Grabなどのドライバーが食べているのを良く見ました。価格帯は、25kVND〜35k VNDくらいで円で言えば、150円〜210円くらいになります。ではなぜ、こんなに安いのでしょうか?

それにはいくつかの理由があるのでは?と思っています。まず、多くの屋台では近所で採れる新鮮な食材が標準で使われていて、これにより、食材のコストをかなり抑えることができます。つまり、市場に出回る前の価格・卸し価格で入手できるのでは?と思います。あとはこれが安く提供できる一番大きな理由だと思いますが、屋台は店舗と比べて運営コストが低いです。店舗のように家賃を支払ったり、スタッフを雇ったりする必要がないため、その分を価格に反映させることができます。店舗型の食事を今も継続的にリサーチしていますが、まだ25k VNDで提供しているところは1店舗しか知りません。

ベトナムにもそれなりの高級なレストランはあります。でも、ベトナム文化を知るには、屋台料理を食べないと始まらないと思っています。ベトナムの幅広い食文化は、ローカル食を体験することとまた違った視点でベトナムを見ることができると思っています。

半年滞在して本当に美味いと思った食べ物 その1

ホーチミンで僕が特におすすめする食事は、ブンリュウです。ベトナム語だと、Bún riêu です。ここで紹介するお店は、Thảo Điền(タオ・ディエン)地区の33A Nguyễn Văn Hưởng(グエン・ヴァン・フン)通りに位置しています。場所はこちらです。本店と支店とがあり、両方行ったことがありますが家から近いタオ・ディエンのほうを紹介します。

で、「Bún Riêu」(ブン・リウ)の専門店なので写真のような麺が特におすすめです。スープは独特でトマト、独特のスパイスが絶妙に組み合わさったこの味は、一度食べれば忘れられない記憶食となると思います。特に、その酸味が特徴的で、日本人は食べたことがない味ですよ!また、料理はその場で調理され厨房はオープン状態なので作るところも楽しむことができます。

メニューには、43kVND〜65kVNDと3つありますが、ノーマルでも十分です。中に入る具の種類などが違います。

この店は、ホーチミンのローカル食の魅力を体験するのに最適な場所です。価格の手ごろさと美味しさ、そして地元の人々との触れ合いを体験することができます。訪れた際には、ぜひこの店をチェックしてみてください。観光で来た際には、1区のお店がアクセスしやすいと思います。


タオディエン店

店名:Bún riêu tóp mỡ mọc giòn cô Hương béo Thảo Điền

住所:33A Nguyễn Văn Hưởng, Thảo Điền, Quận 2, Thành phố Hồ Chí Minh 700000 ベトナム

マップ:LINK

1区店

店名:Bún riêu tóp mỡ mọc giòn

住所:19B Đ. Nguyễn Thị Minh Khai, Đa Kao, Quận 1, Thành phố Hồ Chí Minh, ベトナム

マップ:LINK


朝・昼兼用のご飯として最適 おいしい麺・その2

魚介のバインカンの麺で、地図には無い店なんですが、美味しかったので紹介。Bánh canh ghẹ Só 8ってのが店名ですかね。ベトナム語でカニを表すのは、CửaとGhẹとあります。前者は一般的なカニ全般で、後者もカニなんですがその違いはまだわかっていません。

お店に行くと、何入れるかって聞かれるので、海老とか魚介類だけね、って感じでOK。1週間に一度は食べたくなります。これカニの身が入っているんですよね。魚介エキスのスープが美味しいです。海老やイカもあって、お値段、40k VND(240円)です。


Bánh canh ghẹ Số 8 ビンタイン

店名:Bánh canh ghẹ Số 8(多分)

住所:このあたり A10 Phú Mỹ, Phường 22, Bình Thạnh, Thành phố Hồ Chí Minh, ベトナム

マップ:LINK

※地図にない店ですが、このあたりにあります。


クセがあるけど病みつきになる麺・ブンマム(Bún mắm)その3

僕の中では、ベスト1位のベトナム麺です。店名が「Bún mắm ABC」って店でブンマムの専門店です。

見た目から想像できると思いますが、これは、クセがあるので好き嫌いはあると思いますが自分の中では1位のベトナム麺です。これ激うまいです。ビンタイン区の少し混雑した通り沿いにあります。


Bún mắm ABC ビンタイン

店名:Bún mắm ABC

住所:13 Ng. Tất Tố, Phường 21, Bình Thạnh, Thành phố Hồ Chí Minh, ベトナム

マップ:LINK


番外 ボッチェン Bột Chiên

日本でいえば、お好み焼きとかそういう系のB級グルメだと思いますが、ボッチェン(Bột Chiên)っていう料理があります。米粉を揚げたケーキみたいな感覚的には揚げ豆腐っぽい食感で、タレをぶっかけて食べます。

この店のボッチェンはパパイヤの繊維モリモリで、おいしいです。たまに食べたくなるんですよね。


Bột Chiên ビンタイン区

店名:Bột Chiên 51

住所:51 Nguyễn Văn Lạc, Phường 21, Bình Thạnh, Thành phố Hồ Chí Minh, ベトナム

マップ:LINK


まとめ

今回、なんとなくわかったのは以下となります。

・ベトナムの麺料理は奥が深い

・自分の中では、1位ブンマム、2位ブンリュウ 3位バインカンゲー

・豚肉のコムタムもおいしいよ。有名なんで紹介は省略

・ベトナム料理は、日本人の味覚に合うと思ってます

・バインセオやコムガーとか美味しいのは他にもたくさんあります

あとがき

ここでは、有名なコムタムやバインミーやフォーやフーティウとかは省きました。自分が本当に美味しいと思える、ベスト3を紹介しました。そのほとんどが、50k VND(300円)以下で食べられます。一番安い価格帯としては、25kVND(150円)です。バインミーとかは15kVNDとかもあります。すべて外食しても、食費は3万円以下になりますね。日本食もたくさんありますが、僕はローカルフードで十分満足していて、あまり日本食を食べたいとは思いません。

 あと、ベトナムの人は外で食べるのが本当に好きです。最初、何故かはわかりませんでしたがやっぱり、外の方が気持ちがい良いっていう理由がその大半だと思います。ミニテーブルと椅子に座って景色や人をウォッチしながら食べる。それがスタンダードなようです。

著者にメッセージ

間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。

音声認識のやることリストで遊んでみた

じゃんくはっく
じゃんくはっく

音声認識ってやったことなかったなー!

WEB技術だけで出来るみたいですね!

ぴー
ぴー
じゃんくはっく
じゃんくはっく

そうみたい。最近のブラウザは賢いですね

実用的なサンプルをお願いします〜

ぴー
ぴー

最近の音声認識って、どんな感じなんだろう? と思ったのでリサーチしてみました。きっと誰かが作っているだろうと思うので調査開始です。いくつか見つかりましたが、今日は、ブラウザが標準で持っている音声認識の機能を使って遊んでみようかなと思います。

さっそくデモです

さて、まずはデモを実際に触ってみてもらったほうが速いかと思います。PCでChromeブラウザであれば動作すると思います。Safariでも動作しました。

Artyom.js – A Sticky Notes Demo

https://take-i.github.io/artyom-todo/

このような付箋紙のToDoリストが音声認識で追加・削除できるものです。メモの追加は、以下のように喋れば追加できます。

  • ソースコードレビューをする メモ作成

削除したい場合は、

  • 1番目のメモを削除

とすれば、消えます。また、付箋紙をクリックすれば、その内容を喋ってくれます。なお、English USAや、English Great Britain にすると英語の発音じゃないと登録、削除できません。英語の発音練習とかよいのかもしれませんね。

ソースコード

元ネタは、以下となります。

github : Artyom.js

https://github.com/sdkcarlos/artyom.js

このToDoリストのサンプルアプリの元ソースのGITは不明でしたが、日本語化してあるのが自分のgithub リポジトリにコミットしておきました。

artyom.js – todo list

https://github.com/take-i/artyom-todo

どうやって動作しているのか?

とりあえず、サンプルを日本語化して日本語の音声で話せ、認識できるということがわかりました。さて、これはどういう仕組みで動作しているのでしょうか? どこぞやのAPIを叩いているのかと思っていたのですが、ソースをみるとそうではないようでした。

 はい、これはWeb Speech APIというようで、つまりはHTML5 対応のブラウザに実装されている仕様ということでした。ほとんどの主要ブラウザーではサポートしているようです。

注意するのは、IEとAndroid版のOperaブラウザー、そしてAndroidのWebViewではまだ動作しないって書いてありますね。PWA化したWEBアプリなら大丈夫そうです。

 音声をしゃべらせる部分が、SpeechSynthesisUtterance というようです。意味としては、音声発話ということですね。

 そして、音声を認識する部分は、SpeechRecognitionということのようです。こちらのブラウザ対応状況は

こちらは、AndroidのWebViewもいけるようですが、Firefoxや、Operaはだめなようです。ChromeやSafariはPC、スマホは大丈夫なようですね。

まとめ

今回、なんとなくわかったのは以下となります。

・最近のブラウザは賢くなって音声発話や音声認識もできる
・ChromeやSafarriやEdgeは問題なく使えそう。
・スマホは発話が、AndroidのWebViewでは使えないので注意が必要。
・httpsのSSL通信でないと、ブラウザからマイクへの許可許諾のダイアログがアクセスするごとに出る
・デモ版のJSはVerが0.9.6と最新1.0.6と比べて少し低いので、最新も使ってみたい

あとがき

音声認識や、音声合成は利用用途によって使えるので何か案件が来た時には積極的に使っていきたいですね。声フォントとか使えば、自然な喋りが実現できるし、キーボード入力が苦手な方は音声入力のようが良いですしね。

著者にメッセージ

間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。

アサイド

ゴートの縦書きブログサービスが終了したので、あれこれ考えてみる

只今、縦書きでレンダリング中です。フォントなどダウンロードしています...

アサイド

縦書きでブログを書いてみることに

只今、縦書きでレンダリング中です。フォントなどダウンロードしています...