2010年2月14日 日曜日

IEからはMS10-015(KB977165)が適用できてしまう

カテゴリー: ソフトウェア
タグ:, , , , ,
時間:17時17分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

Windows XP にMS10-015(パッチリストではKB977165)というセキュリティアップデートパッチを適用すると不具合が発生することがあるそうです。

現在はこのパッチは公開停止になっていると発表されていますが、先ほど仮想PCにインストールした XP で確認したところ、IE から Microsoft Update を行った場合には表示されてしまっていました。

KB977165

ニュース以外にこの件についての情報を見つけることができませんでしたので、まったく知らずにアップデートを行ってしまう人もいるかもしれません。「重要」となっているため、自動的に適用されるように設定している場合は、ある日突然パソコンが使えないとなっていることも考えられます。

コメント (0)

2009年12月13日 日曜日

WordPressのアップグレードとユーザー権限

カテゴリー: WordPress, ハック
タグ:, , ,
時間:17時43分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

WordPress の自動アップグレードをしようとすると「このブログのプラグインを更新するための十分な権限がありません。」となってしまうので調査をしていたのですが、原因が判明しましたので記事にします。

まず、調査対象のバージョンは2.8.4です。2.6系から直接アップグレードしたもので、一番初めは2.0ME系でした。接頭辞は wp です。

権限がないといわれてしまう原因ですが、そのまま権限が与えられていないためです。管理者で作業しているので普通はそんなことはありえないのですが、どうやらアップグレード時に行われるデータベースの更新に問題があったようです。

権限情報の記録場所

権限の情報はオプションとしてデータベース上に記録されていて、次のSQLで見つけることができます。

SQL:
  1. SELECT `option_name`,`option_value` FROM `wp_options` WHERE `option_name` = 'wp_user_roles';

このオプションの値はPHPでシリアライズしたもので、管理者や編集者といったロール(役割)ごとに権限を配列の形で格納しています。wp-includes/capabilities.php の冒頭には、次のように書かれています。

PHP:
  1. * The role option is simple, the structure is organized by role name that store
  2.  * the name in value of the 'name' key. The capabilities are stored as an array
  3.  * in the value of the 'capability' key.
  4.  *
  5.  * <code>
  6.  * array (
  7.  *    'rolename' => array (
  8.  *      'name' => 'rolename',
  9.  *      'capabilities' => array()
  10.  *    )
  11.  * )
  12.  * </code>

権限の記録は20行目の配列で、権限名がキーでその権限があるかどうかを示す真偽値が値となります。

現状の確認

さて、ここまでを踏まえて実際にどのように権限情報が記録されているかを確認します。PHPで表示させるプログラムを書いてみてもいいのですが、面倒なのでもっと手っ取り早い方法を使いました。

前述したSQLでオプション値を取得し、それをテキストエディタ(私は秀丸エディタを使いました)に貼り付けます。このままではすべてが1行に繋がってわかりにくいので、{ と } と ; の後ろにテキスト置換で改行を入れました。
こうすると、権限名と真偽値が交互になってわかりやすくなります。

準備ができたら権限名を探します。自動アップグレードのアドレスから、きっかけとなるコードは wp-admin/update-core.php であることがわかりますので確認します。

冒頭の12行目に次のようにあります。

PHP:
  1. if ( ! current_user_can('update_plugins') )
  2.     wp_die(__('You do not have sufficient permissions to update plugins for this blog.'));

update_plugins という名前の権限を確認して、権限がなければメッセージを表示して終了するという処理ですね。早速この権限名を先ほど準備したテキストデータで探しますと、見当たりません。この名前をキーとする配列要素がないということになりますので、PHPでは真偽値は false となります。

念のため新規に同じバージョンのインストールをしてみた場合で確認したところ、しっかりとこの権限については true となっていました。

なぜこうなったのか

こうなると原因が気になります。アップグレードスクリプトの権限処理をするところを探してみました。アップグレードインストールをするときのファイル名を基点にしてたどってみたところ、wp-admin/includes/upgrade.php に定義されている upgrade_all() という関数の中で、WordPressデータベースのバージョンによってアップグレード用の関数を呼び出していることがわかりました。

PHP:
  1. /**
  2. * Functions to be called in install and upgrade scripts.
  3. *
  4. * {@internal Missing Long Description}}
  5. *
  6. * @since unknown
  7. */
  8. function upgrade_all() {
  9.     global $wp_current_db_version, $wp_db_version, $wp_rewrite;
  10.     $wp_current_db_version = __get_option('db_version');
  11.  
  12.     // We are up-to-date.  Nothing to do.
  13.     if ( $wp_db_version == $wp_current_db_version )
  14.         return;
  15.  
  16.     // If the version is not set in the DB, try to guess the version.
  17.     if ( empty($wp_current_db_version) ) {
  18.         $wp_current_db_version = 0;
  19.  
  20.         // If the template option exists, we have 1.5.
  21.         $template = __get_option('template');
  22.         if ( !empty($template) )
  23.             $wp_current_db_version = 2541;
  24.     }
  25.  
  26.     if ( $wp_current_db_version <6039 )
  27.         upgrade_230_options_table();
  28.  
  29.     populate_options();
  30.  
  31.     if ( $wp_current_db_version <2541 ) {
  32.         upgrade_100();
  33.         upgrade_101();
  34.         upgrade_110();
  35.         upgrade_130();
  36.     }
  37.  
  38.     if ( $wp_current_db_version <3308 )
  39.         upgrade_160();
  40.  
  41.     if ( $wp_current_db_version <4772 )
  42.         upgrade_210();
  43.  
  44.     if ( $wp_current_db_version <4351 )
  45.         upgrade_old_slugs();
  46.  
  47.     if ( $wp_current_db_version <5539 )
  48.         upgrade_230();
  49.  
  50.     if ( $wp_current_db_version <6124 )
  51.         upgrade_230_old_tables();
  52.  
  53.     if ( $wp_current_db_version <7499 )
  54.         upgrade_250();
  55.  
  56.     if ( $wp_current_db_version <7796 )
  57.         upgrade_251();
  58.  
  59.     if ( $wp_current_db_version <7935 )
  60.         upgrade_252();
  61.  
  62.     if ( $wp_current_db_version <8201 )
  63.         upgrade_260();
  64.  
  65.     if ( $wp_current_db_version <8989 )
  66.         upgrade_270();
  67.  
  68.     if ( $wp_current_db_version <10360 )
  69.         upgrade_280();
  70.  
  71.     maybe_disable_automattic_widgets();
  72.  
  73.     update_option( 'db_version', $wp_db_version );
  74.     update_option( 'db_upgraded', true );
  75. }

呼び出されている upgrade_***() という関数の中では、さらに必要に応じて populate_roles_***() という関数を呼び出しています。

この関数の定義は wp-admin/includes/schema.php にあり、そこではまさにロールごとに権限の追加を行っていました。

次のSQLでデータベースバージョンを確認して呼び出されるはずの関数の処理を確認してみました。

SQL:
  1. SELECT `option_name`,`option_value` FROM `wp_options` WHERE `option_name` = 'db_version';

2.6の新規インストール環境では8201となっていましたので、upgrade_all() の342~346行目が該当します。呼び出される関数の定義は次のとおり。

PHP:
  1. /**
  2. * Execute changes made in WordPress 2.7.
  3. *
  4. * @since 2.7.0
  5. */
  6. function upgrade_270() {
  7.     global $wpdb, $wp_current_db_version;
  8.  
  9.     if ( $wp_current_db_version <8980 )
  10.         populate_roles_270();
  11.  
  12.     // Update post_date for unpublished posts with empty timestamp
  13.     if ( $wp_current_db_version <8921 )
  14.         $wpdb->query( "UPDATE $wpdb->posts SET post_date = post_modified WHERE post_date = '0000-00-00 00:00:00'" );
  15. }
  16.  
  17. /**
  18. * Execute changes made in WordPress 2.8.
  19. *
  20. * @since 2.8.0
  21. */
  22. function upgrade_280() {
  23.     global $wp_current_db_version;
  24.  
  25.     if ( $wp_current_db_version <10360 )
  26.         populate_roles_280();
  27. }

PHP:
  1. /**
  2. * Create and modify WordPress roles for WordPress 2.7.
  3. *
  4. * @since 2.7.0
  5. */
  6. function populate_roles_270() {
  7.     $role =& get_role( 'administrator' );
  8.  
  9.     if ( !empty( $role ) ) {
  10.         $role->add_cap( 'install_plugins' );
  11.         $role->add_cap( 'update_themes' );
  12.     }
  13. }
  14.  
  15. /**
  16. * Create and modify WordPress roles for WordPress 2.8.
  17. *
  18. * @since 2.8.0
  19. */
  20. function populate_roles_280() {
  21.     $role =& get_role( 'administrator' );
  22.  
  23.     if ( !empty( $role ) ) {
  24.         $role->add_cap( 'install_themes' );
  25.     }
  26. }

populate_roles_***() で追加している権限を確認したところ、3つとも登録されていました。今度はさかのぼって確認してみると、populate_roles_260() で追加される2つの権限のみがありませんでした。しかもその1つは今回問題となっている update_plugins です。

どうやらここで失敗していたようです。

PHP:
  1. /**
  2. * Create and modify WordPress roles for WordPress 2.6.
  3. *
  4. * @since 2.6.0
  5. */
  6. function populate_roles_260() {
  7.     $role =& get_role( 'administrator' );
  8.  
  9.     if ( !empty( $role ) ) {
  10.         $role->add_cap( 'update_plugins' );
  11.         $role->add_cap( 'delete_plugins' );
  12.     }
  13. }

修復方法

原因まで判明したので、権限情報の修復を行います。直接書き換えてもいいのですが、間違えると面倒なので簡単なプログラムを作りました。

データを抽出して権限を追加し、再度シリアライズして表示するだけ。表示されたテキストデータをデータベース用の管理画面(ここのサーバーは phpMyAdmin が使えるのでそれを使いました)から直接反映させました。

このプログラムは自由に使っていただいてかまいませんが、何かあったときの補償はできませんので自己責任でお願いします。

PHP:
  1. <?php
  2. header('Content-type: text/plain;charset=UTF-8');
  3. $link = mysql_connect('データベースサーバー', 'ユーザー', 'パスワード');
  4.  
  5. if ( $link )
  6. {
  7.     mysql_set_charset('utf8');
  8.     if ( mysql_select_db('データベース') )
  9.     {
  10.         $sql = "SELECT `option_name`,`option_value` FROM `wp_options` WHERE `option_name` = 'wp_user_roles'";
  11.         if ( $res = mysql_query($sql) )
  12.         {
  13.             if ( $rows = mysql_fetch_assoc($res) )
  14.             {
  15.                 $rol_data = unserialize($rows['option_value']);
  16.                 $rol_data['administrator']['capabilities']['update_plugins'] = true;
  17.                 $rol_data['administrator']['capabilities']['delete_plugins'] = true;
  18.                 print serialize($rol_data);
  19.             }
  20.         }
  21.         else
  22.         {
  23.             print mysql_error();
  24.         }
  25.     }
  26.     else
  27.     {
  28.         print mysql_error();
  29.     }
  30. }
  31. else
  32. {
  33. }
  34. ?>

というわけで、無事自動アップグレードの画面を拝むことができました。

コメント (1)

2009年10月12日 月曜日

EN9600GT/DI/512MD3 開封レポート

カテゴリー: 自作パソコン
タグ:, , ,
時間:2時26分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

ASUS のビデオカード、EN9600GT/DI/512MD3 の開封レポートです。
省電力版の GeForce 9600 GT を使用したカードです。消費電力を従来よりも40%抑えているとのことで、補助電源なしとなっています。ビデオ出力ポートはD-Sub・DVI-I・HDMIの3つ。

パッケージ

パッケージ

縦23.3cm、幅41cmと、ビデオカードとしては大きな箱です。部分的にエンボス加工が施されています。

開けたところ

開けたところ

箱は大きいですが、中は隙間が結構あります。

一式

一式

中に入っているのはこれだけ。
本体のほかには、汎用の簡易マニュアルが2種類とCD-ROMが2枚に HDMI用と思われるS/P DIFケーブルが1本。CD-ROMはドライバと汎用簡易マニュアルです。CD-ROM版のマニュアルは印刷用データをファイル化しただけのようで、色見本やトンボがそのままでした。

本体(表側)

本体(表側)

本体の表側です。
2スロットを使用する大型のオリジナルファンが搭載されています。このファンは吹き付け方向になっていて、Windows 起動前でもなかなか静かです。

本体(裏側)

本体(裏側)

裏側。普通ですね。

本体(横側)

本体(横側)

本体を横方向から。

クーラー

クーラー

クーラーのアップ。風をヒートシンクに吹き付けて、そのまま外側へ流す構造のようです。

カード長

カード長

カードの長さは基盤部分で約20cm。

クーラーの高さ

クーラーの高さ

クーラーは基盤込みで約3cm。隣接スロットは当然使えませんが、そのさらに隣にも大型のスロットは避けたほうがいいかもしれません。

以上、開封レポートでした。

コメント (0)

2009年10月4日 日曜日

M3A785GMH/128M 開封レポート

カテゴリー: 自作パソコン
タグ:, , , ,
時間:15時48分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録
Popularity: 13%
by Popularity Contest 日本語版

マザーボード M3A785GMH/128M の開封レポートです。
チップセットに AMD の 785G を採用したマイクロATXフォームファクタのマザーボードで、ソケットAM3 と DDR3 に対応しています。オンボードグラフィック機能を持ち、ローカルフレームバッファとして 128MB の DDR3 が組み込まれています。

パッケージ外観

パッケージ外観

マイクロATXということで、コンパクトな箱です。Windows 7 にハードウェアレベルで対応していることを示していると思われるロゴもあります。

箱を開けたところ

箱を開けたところ

中身は、独自機能である Instant Boot とIntelligent Energy Saver の12ヶ国語簡易マニュアル各1枚と、11ヶ国語マザーボードマニュアル1冊、SATA ケーブル2本、80芯ATAケーブル1本、バックプレート1枚、CD-ROM 2枚、マザーボード本体1枚です。

マニュアル

マニュアル

簡易マニュアルをどかすとマザーボードマニュアルが見えます。228ページと結構厚みがありますが、11ヶ国語分なので内容は濃くはありません。

CD-ROM

CD-ROM

マニュアルの最初のところにCD-ROMが2枚挟まっていました。Windows XP 用とWindows Vista 用で、それぞれ32bit と 64bit の両対応のようです。袋は何の変哲もないビニール袋で、テープで止めてありました。

本体

本体

マザーボード本体です。基盤右端(写真では上)にはネジ穴がないため、ケースに固定したときには浮いた状態になります。コネクタにケーブルを繋げるときには、力をかけると基盤がしなうのでちょっと怖かったです。

拡張スロットは一番上に PCI Express x1 があるため、ビデオカードを取り付ける位置はケース側スロットでは上から2番目になります。今回2スロットを必要とするビデオカードを選択したため、PCIスロットは一番下しか空きませんでした。

なお、このマザーボードは、キーボードホットキーによる起動ができないようです。サスペンドからの復帰は可能でした。

以上、マザーボードの開封レポートでした。

コメント (0)

2009年10月3日 土曜日

PhenomⅡ X4 905e 開封レポート

カテゴリー: 自作パソコン
タグ:, , , ,
時間:17時21分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

CPUとして選択した PhenomⅡ X4 905e の開封レポートです。
PhenomⅡ X4 905e は AMD の クァッドコア CPU シリーズで、e のつくこのモデルは TDP が低いことが特徴です。

パッケージ外観

パッケージ外観

外観はPhemon のときと特に変化はありません。

ラベル

ラベル

スペックが書かれたラベル。65Wの表示がうれしい。

CPUが見える窓

CPUが見える窓

覗き窓の位置も同じ。

開封

開封

カッターでシールを切って開封。

引き出し

引き出し

くぼみに指をかけて引き出します。ここまでラベル以外に Phenom との違いほとんどなし。

クーラー(箱入り)

クーラー(箱入り)

クーラーです。一見同じですが・・・。

クーラー

クーラー

Phenom のときよりもケーブルが太くなり、ねじられている事でまとまっているのがわかります。

クーラーの裏側

クーラーの裏側

裏側です。ヒートシンクのフィン以外の部分が丸くなっています。CPUとの接触面積よりも放熱面積を優先したのでしょうか。

一式

一式

パッケージに入っていたもの一式。

以上、開封レポートでした。

コメント (0)

2009年10月2日 金曜日

久しぶりのPC自作

カテゴリー: 自作パソコン
タグ:, , ,
時間:1時04分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録
Popularity: 10%
by Popularity Contest 日本語版

Twitter では何度もつぶやいていますが、1年と3ヶ月ぶりに新規にPCを組み始めました。

今回のパーツ構成

CPU
AMD PhenomⅡ 905e
マザーボード
ASRock M3A785GMH/128M
メモリ
A-DATA AD3U1333B2G9-DRH
ビデオカード
ASUS EN9600GT/DI/512MD3
HDD
日立 HDP725032GLA360
光学ドライブ
バッファロー DVSM-724S/V-BK
ケース
アクティス AC420-55W
OS
マイクロソフト Windows Vista Home Premium SP1(DSP版)

前回のは発熱がきつかったので、今回は発熱を抑えることを重視しての構成です。CPU・ビデオカード共に、低発熱をうたうものを選択。AM3 ソケットのものがないという理由からでしたが、マザーボードも「熱い」と言われる NVIDIA のチップではなく、AMD のチップを使用した物になっています。ちなみに、AMD チップを使用したマザーボードは初めての使用です。

現在すでにデバイスドライバのインストールや Windows Update まで終了しています。ビデオカードはまだ組み込まず、オンボードチップで間に合わせています。現時点での Windows エクスペリエンスインデックスの値は次の通り。

プロセッサ
5.9
メモリ(RAM)
5.9
グラフィックス
4.0
ゲーム用グラフィックス
4.0
プライマリハードディスク
5.9

ドライバはマザーボード付属のものなので最新ではありませんが、やはり外部ビデオカードが必要なようです。そのうち、ベンチマークをとってみようと思います。

コメント (0)

2009年9月7日 月曜日

AmazonLink 2.0.0 beta2 リリース

カテゴリー: AmazonLink
タグ:,
時間:23時30分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

すでに昨夜の話になってしまいますが、AmazonLink 2.0.0 beta2 をリリースしました。ダウンロードは、いつものようにWordPress Plugins/JSeriesのサイトからどうぞ。

ページ投稿画面での検索フォーム追加や、AmazonLink コードの変更などをしています。また、アップグレードが進むとの予測から、急いで WordPress 2.8.4 での動作検証も行いました。2.8系は投稿画面の幅が狭くなっているため、ボタンなどのレイアウトも少し変えてあります。

AmazonLinkコードの変更ですが、商品ごとにテンプレートを変える機能を思いついたためです。テンプレートは複数行になる可能性が高いため、属性値とするには不向きです。そのため、コードに挟むことができるようにしました。

なお、内部で変換処理を行っているので、今までの形式も使用することはできます。

ASIN は Amazon Standard Item Number の略で、Amazon の商品コードです。

以前の形式
CODE:
  1. [amazon]ASIN[/amazon]

新しい形式
CODE:
  1. [amazon asin="ASIN"][/amazon]
  2. [amazon asin="ASIN" /]

現在は個別のテンプレートには対応できていませんが、TODOには入れておこうと思います。手を出しすぎると切りがないので、正式リリースまでは触らない予定です。

コメント (0)

2009年9月6日 日曜日

WordPress を最新版にアップグレードしてください

カテゴリー: WordPress
タグ:, , ,
時間:15時10分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

現在、WordPress 2.8.4 未満に存在するセキュリティーホールをターゲットとした不正アクセスが行われているようです。該当バージョンを使用している方はできるだけ早めにアップグレードを行ってください。当サイトも、先ほど作業を行いました。

不正アクセスが行われているかどうかの判別については、コリスさんがまとめてくださっています。

また、この記事に書かれている「Wordpress Permalink & Rss problems」を、山本さくらさんが和訳した物を公開されています。

WordPress | 日本語 には、本家ブログの記事「How to Keep WordPress Secure」を訳したものが掲載されました。

これらの記事を参考に、不正アクセスが行われていないかどうかの確認と最新版へのアップグレードを行ってください。アップグレード済みであっても、念のため不正アクセスの有無の確認は行ってほうがいいと思います。

コリスさんの記事にもありますが、不正アクセスの形跡があった場合はデータベースも不正アクセスされている可能性があるとのこと。その場合はこのセキュリティホールが発見されるよりも十分古いバックアップに戻す以外は対策はなさそうです。
そうならないためにも、できるだけ早くアップグレードを行ってください。

2009年9月6日 15時40分 追記

それでもアップグレードを渋っている方には、Naoさんによる次の記事をどうぞ。

2009年8月7日 23時10分 追記

山本さくらさんが、攻撃内容について詳しく書かれています。

古いバージョンを使用しているところはすべてアウトと言うわけではないようですね。
とは言うものの、まだ見つかっていないセキュリティーホールによって条件がゆるくなる可能性は十分あります。残念ながら「バグのないプログラムはない」のです。

コメント (1)

2009年9月5日 土曜日

AmazonLink のテンプレート

カテゴリー: AmazonLink
タグ:, ,
時間:16時17分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

8月14日に公開となった AmazonLink 2.0.0 beta では、テンプレート機能によってある程度自由にデザインを作ることができるようになっています。

管理画面上の説明でどこまで伝わるのか自信がないので、現在このサイトで使用しているテンプレートを公開しようと思います。

CODE:
  1. <table class="amazonLink" width="468">
  2.     <tr>
  3.         <td colspan="2">
  4.             <strong><span class="itemName"><a href="[DETAIL_PAGE_URL]">[ITEM_NAME]</a></span>[IF_AUTHOR/] <span class="author">[AUTHOR]</span>[/IF_AUTHOR]</strong><br />
  5.             [IF_PUBLISHER/]発売:[PUBLISHER][IF_RELEASE_DATE/] [RELEASE_DATE][/IF_RELEASE_DATE] [/IF_PUBLISHER]
  6.             販売数ランク:[SALES_RANK]
  7.         </td>
  8.     </tr>
  9.     <tr>
  10.         <td rowspan="3" width="[MEDIUM_IMAGE_WIDTH]" valign="top">
  11.             <a href="[DETAIL_PAGE_URL]"><img src="[MEDIUM_IMAGE_URL]" width="[MEDIUM_IMAGE_WIDTH]" height="[MEDIUM_IMAGE_HEIGHT]" alt="『[ITEM_NAME]』の商品写真" /></a>
  12.         </td>
  13.         <td valign="top">
  14. [IF_CREATOR/]
  15.             <ul class="creator">
  16. [CREATOR/]        <li>[CREATOR_ROLE][CREATOR_NAME]</li>
  17. [/CREATOR]
  18.             </ul>
  19. [/IF_CREATOR]
  20.         </td>
  21.     </tr>
  22.         <td valign="top">
  23. [IF_REVIEW/]
  24. 平均評価:<img src="/wp-content/themes/custom01/images/evaluation_[AVERAGE_RATING].gif" width="59" height="11" alt="[AVERAGE_RATING]">
  25.             <ul class="evaluation">
  26. [REVIEW/]            <li><img src="/wp-content/themes/custom01/images/evaluation_[REVIEW_RATING].0.gif" width="59" height="11" alt="評価:[REVIEW_RATING]"> [REVIEW_SUMMARY]</li>
  27. [/REVIEW]
  28.             </ul>
  29. [/IF_REVIEW]
  30.         </td>
  31.     </tr>
  32.     <tr>
  33.         <td valign="bottom">
  34.             <span class="powerdBy">[POWERD_BY]</span>
  35.         </td>
  36.     </tr>
  37. </table>

テーブルの幅が固定であったりしますが、別のサイトにも流用可能かと思います。WordPress や プラグイン同様に GPL ライセンスとしますので、ご自由にお使いください。

コメント (0)

2009年8月16日 日曜日

Twitter 始めました

カテゴリー: インターネット
タグ:,
時間:12時29分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

先日Twitterを使い始めました。プロフィールページは http://twitter.com/yoshitomo_y です。
ネット上ではいまさらな話ですが、最近一般にも広まってきたと言うことで。

興味はかなり以前からあったのですが、なんだかよくわからないものと言うことで手は出さないままでいました。しかし、最近はニュースサイトなどでアイコンを見かけることが多くなりましたし、芸能人や政治家と言った著名人が使っているということで、これは経験しておくべきかもと思うようになりました。

一番のきっかけは広瀬香美さんの『ビバ☆ヒウィッヒヒー』を聞いて楽しそうにしてるなぁと感じたことなのですけどね。

残念ながらまだ何が楽しいのかはわかっていませんが、のんびりやってみようと思います。今のところはすべて公開していますので、フォローもお気に入り登録もご勝手にどうぞ。

コメント (0)
次ページへ »

HTML convert time: 1.006 sec. Powered by

Images is enhanced with WordPress Lightbox JS by Zeo