えたこと、その他を雑記するためのブログです。Twitterこんにちは。ブログを続けて書くのはなかなか難しいですが、考えたこと、発見したことのメモだけにでもなればいいなと思っています。IMEからだと簡単に行えることを確認しています。「あいす」と入力して変換すればアイスの絵文字🍦が表示されるなど。IMEでは絵文字の変換がそのままではできないのです。8ではONになっていると考えるべきですね。7ではデフォルトで入力OFFなのか。そもそもこの絵文字はなんなの?どうしてTwitterで使われるようになってきたの...?ずっと疑問に思っていました。黙って使えるけれど、どうして使えるのかわからない。調べたら意外と大変でした。この変化が、どういう流れで起こったのかまとめられているところもない気がしたので、色々不正確な気もしますが以下にまとめました。参考した資料を置いてますので、真偽の程が気になる方は検証いただければと思います。ちなみにもう以下にあらたなお役立ちTipsなどはありません。Twitterで絵文字が使いやすい"理由"まで気になる方は、自分といっしょにいろいろ考えていただく意味で読んでいただければな、と思います。絵文字が使いづらかった理由と、使いやすくなりそうなこれからまず、そもそもどうして絵文字はTwitter上でほとんど使われてこなかったのでしょうか。いやむしろ、今までweb上で絵文字が使われることが少なかったはずです。ある意味絵文字の代替としてAAや顔文字があったはずです。して急に使われるようになったのでしょうか。これは以下の記事でなんとなくわかりました。japan.cnet.com非常に長いので簡単に言いますと、今までのいわゆる携帯の絵文字はキャリア間で共通しない文字コードにそっていたので、環境の違いですぐ文字化けして見られなくなるものだったのです。それは同キャリア間のメール程度なら問題なかったでしょうが、様々な環境の人が閲覧するweb上ではほとんど共通して見られるものではなかったのですね。そんな携帯絵文字を、様々な環境で共通して用いる文字コード規格の一つであるUnicodeの中で新たにきっちり定めましょう、という動きがあったということですね。Unicodeはすでに利用されていた文字コード規格ですが、絵文字が追加されたのはそのバージョン6からとのことです。ここでUnicodeってなんぞや、文字コードって知らないよって人のために以下。分かってる人はさらに次の段落へ。Unicodeは文字コードの一種です。文字コードというのはバイト列(コンピュータ上での01のデータ)をどのような文字として解釈するかの対応規則です。対応規則なので、たとえばUnicodeで作成されたテキストファイルを、Shift_JISという別の文字コードで解釈して開こうとすると文字の対応が本来意図したものとはちぐはぐになったり、そもそも元の文字コードで使えるバイト列が、後から開くときの文字コードで使えないバイト列であったりします。文字コードが大切になるのは、文字のデータを2箇所以上でやりとりするときです。このインターネット時代、文字をやりとりしない場面のほうが珍しいですね。その上で何が大事か、というと、やりとりする場所すべてでデータを共通した文字コードで解釈すること、さらにいえばそのデータの文字コードに「対応」していることが重要です。Unicodeで送るよーと言っても、Unicodeなにそれおいしいの?という相手がいたらお話しにならないのです。文字コードに対応しているもの、そうでないものもう1回言うことになりますが、実はさきほど挙げた絵文字はUnicodeのバージョン6以降追加されたものなのです。ある時からUnicodeという対応表に、バイト列0Aはケーキの絵文字、BCはアイスの絵文字...というような新たな対応が追加されたわけです。対応表にそう決めても、上記で述べたとおり、実際のプログラムや表示するためのフォントが対応していない場合は意味がないのです。6は2010年10月に制定された比較的新しい文字コードです。文字コードが新しく、対応している環境とそうでない環境が入り交じっている場合は、簡単に絵文字を入力できても、受け取る側で対応していないため閲覧できないため意味がない、という状況がありえます。IMEで有効/無効のオプションがあったのですね。Win8ではデフォルトでON、という状況は上記のOSレベル対応状況に合わせたのかな...と、不確かながらもこの事が分かった今では思います。実際、今でもWin7機では変換するときに変換候補では絵文字が表示されないんですよね。前述しましたが、実際のプログラムや表示するためのフォントが対応していなければ、いくら文字コードに規格化されても、表示できません。著作権があって別物なんです。AppleはAppleで、GoogleはGoogleで、それぞれ1つずつ自前で作っているわけです。表示に対応する」ということは表示する絵文字素材を1つ作らなくてはいけないということ。対応する絵文字素材を作る、ということはすなわちフォント素材から作るということですが、これは思ったより地道な印象で驚きました!Twitterで絵文字が使いやすくなるまで今まで絵文字は環境の違いですぐ文字化けしてしまうため、様々な環境からアクセスされるweb上では使用を嫌われていたフシがありました。6自体に対応していない環境も存在していました。6に対応していない環境でもTwitter上ではみんなが共通して絵文字でのコミュニケーションが可能となった...と考えるとなかなか長い道のりですが、その発展によってTwitterに、インターネット上の文字コミュニケーション自体に、新しい形ができたようにも思えますから、すごいことだなーと思います!さらに、規格として定められ、それに一つのサービスが対応したのでみんなが見ることができるようになった、という技術的側面は大きいと思いますが、Twitter上では、絵文字は文字化けするから...という心理障壁が取り払われている感覚がするのも、絵文字コミュニケーションの拡大への寄与は大きいと思います。これはどこが発祥かもわかりませんが、Twitter公式も絵文字対応Tweetを絵文字つきでしていますから、そこからネタを愛する(?)ユーザーに取り上げられたのかなあ、と思います。アップデートがあり絵文字が表示されるようになりました。ツイートに絵文字を付けるのはモバイル端末のみで可能です。2014まとめなんだか自分の知らぬところで結構大きな変化が来てた、という感じです。C++STLちゃんと使ってますかー?自分は結構std::array使います。いうか基本、C言語の人が生配列使いたいなーって思うところが全部std::arrayに置き換わる感じです。今日もこんな感じでテーブルをstd::arrayで作って、色々と計算に使ったりしました。'\n';}コメントにも書いたとおり、生配列の記法+便利(というかCが不自由すぎ)な機能があるのでナイスです。今日はたくさんテーブルを作って計算してたのですがその内の一つの処理が少し複雑だったので、std::arrayはクラスに持たせて複雑な処理はそこにまとめ、main内はすっきり書けるようにしたいなあと思いました。tbl;tbl.print();}え?動かない、というかコンパイルが通らないというのが今日の困り事でした。調べたら思ったよりも沼という感じだったので、結論から言うと下記のコードは動きます。tbl;tbl.print();}コメントで色々試してみたりしたものを置いておきました。エラー内容やコンパイルOKかどうかが変わります。そもそも(1)と(2)のm_data={~}型の初期化は使えません。(1)か(2)のとき、C2797のコンパイルエラーが出ます。これについての説明は以下です。C2797この書き方が実装されてないみたいです。実装されていないなら仕方がないです。下の方に記述がありますが、明示的にコンストラクタを呼び出して初期化、という感じで解決するようです。}で解決、と思いますよねところが、さっきの(1)および(3)ではC2797の他にもう一つエラーが出ます。このサブオブジェクト初期化子では中かっこを省略できません"というものです。面白いのは(?)このエラーはコンパイルエラーにはならないところです。(1)はコンパイルエラー、(3)はコンパイルは通り、プログラムが問題なく動くのです。いうことはコンパイルを妨げるのはC2797だけ、ということです。中括弧が1重だと、中かっこを省略できません~のエラーが出ます。この中かっこが1重か2重か?ってのが色々面白そうです。{initializer-list};の形で初期化できるもの、と書いてあるので(メンバ変数内宣言時の初期化とは言え)1重でエラー出すのはどうなんだ?と思ったりもしないのですが、集成体(aggregate)の初期化時の中かっこの省略が、メンバ変数の宣言時初期化だとできないようになってるのかな?とか色々思いました。こと考えてると†闇†が深くなってくるので、まあVS2013なら(4)でちゃんと動きます。4.9.2では(2)でちゃんと動きますが、(1)はコンパイルが通りませんでした。(2)のコンパイルは通るものの、-Wallオプション付きだとmain内での中かっこ1重の初期化、および(1)について、警告が出る状態でした。コンパイラで色々違いが出たり、初期化子リストやaggregate等、調べたら結構勉強になりました。詳しい所もまた書きたいと思います。03:17【C++】メンバ変数のstd::arrayの宣言時初期化で躓いたTweet広告を非表示にするもっと読むコメントを書く2015-04-16VirtualBoxに入れたUbuntuが重かったのでxubuntu-desktop入れましたIT早速1ヶ月空けそうになりました。研究室からVirtualBox上にUbuntu入れてねというお達しがあったので入れました。14.04を入れました。水より柔弱こちらも試した・確認したにもかかわらず、重いのでTwitterでつぶやいてみたところデスクトップ環境を変えてみてはどうか、と提案をもらいました。xfce4とすると、xfce4-なんちゃら、ってパッケージがどんどん出てきちゃうんですね。xubuntu-desktopというパッケージを入れればXfce4を確実にインストールできるようだ、ということは分かったのでインストールしました!確かに結構軽いかもしれないです...ただ、再起動→ログインとかその他もろもろの処理に時間がかかってるのでそもそものスペック不足が感じられて悲しいですが。Ubuntuのデスクトップ環境の方(ログイン時に切り替え可能)も、なんだかXfce4らいくな見た目になってしまったのです...。なんと一回直したら状況が再現できないというなかなかファンキーなことになってしまったのでスクリーンショットがないのですが、「左のランチャーはそのままに、背景が青いネズミに、ウィンドウのフレームが白」という状態でした。encyclopedia)ちょうどこの写真に、ランチャーはUbuntuのデフォルトのような感じでした。背景を一番左下にあるものに設定すればOKでした。単純でした...背景は別のものでいいのですが、ウィンドウの見た目がかなり見辛かったので戻せて良かったです。ちなみに、後から知ったのですが、xubuntu-desktopはXfce4-なんとか(とかその他色々)、を全部色々まとめた感じのパッケージみたいです。受講者・スタッフ皆でわいわいお昼中どちらでも、Siv3Dを使ったプログラミングを小〜高校生の方に体験してもらうというカリキュラムがあり、その中で質問を受け付けたり、特定の動作が実現できなくて困っている子のサポートをしたりしました。えたこと、その他を雑記するためのブログです。イベントの記録や、有益(と思われる)情報などの全般的な発信場所として考えています。記事が累積すれば視野です。えたこと、その他を雑記するためのブログです。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。