ビジネスをデザインするブログ:ITmediaオルタナティブ・ブログ (RSS)

ビジネスをデザインするブログ

事業開発ほどクリエイティブな行為は他に無いと思いこんでいる人間の日常

Adobe Creative Cloudを月々プランで買ってみました。
WindowsとMac両方で使えるらしいので、私にはうれしい条件(だた、ライセンス条件では、インストールできるのは2台まで、同時起動は不可)。

年間で買えば5000円、月ごとに買えば8000円という設定。

そもそも、年間で買えば決済のタイミングはいつになるのか?また、月次で買えば、更新等はどうなるのか?など、事前にはいまいちわからなかったので、どんな感じだったか、簡単に報告させていただきます。

1)購入画面で月々プランを選択

Cap01

初期状態では年間プラン(5000円)になっているので、月々プランに変更。

2)利用条件を読む

肝心の利用条件のページ。

Cap02

月々プランでは、都度、クレジットカード情報の入力が求められるような雰囲気。あと、30日以内ならキャンセルできると・・・。じゃあ、30日つかって、毎回キャンセルしたらタダでつかえんのかな?などと貧乏臭いことを考えたりする。

3)Adobe ID登録したり、住所入れたり、カード情報入れたり

ここは省略

4)購入完了

購入はまあ普通に終了。が、ただ終了したというだけで、何をどうしていいのか全くわかりません(肝心のアプリをどからどうダウンロードしたのかまったく記載されていない)。後から届くメールに書いてあります。

5)自動更新をオフ

購入後のマイページ的なところをぼーっと見ていると、「自動更新」というのがオンになっているではありませんか!利用条件で「毎月カード情報を〜」的な話だったのに、デフォルトでは自動更新がオンになっています。なので、これをオフに。

Cap03

自動更新するなら、年間プランにしますよ・・・。
どうでもええけど、お姉さんの顔が素材集の人ですね。

6)ちょっと遅れて届くメールが指定するサイトにアクセス

Cap04

ここからいろいろダウンロードできみたいです。が、Adobe Application Managerなるソフトのインストールを進めているので、それをインストール。

7)Adobe Application Manager で目的のソフトをインストール

Cap05

Master Collection 的な、一気にインストールできるような項目はない・・・。この分だと、結局Photoshopとかしか利用しないので、単品で買った方がいいかな?などと思ったりもする。

8)まとめ

  • 月々プランは毎月決済情報を再入力することで更新する(らしい)
  • と言いつつ、デフォルトでは自動更新になっている
  • 使えるソフトを一気にインストール手法はない(らしい)

9)その他

クラウドストレージであるCreative Cloudのデータが期限切れになった場合、どのような扱いになるのか?というのは未だ、確認できず。
とりあえず使ってみたPhotoshopは、なんだか軽快な感じがしました。
1ヶ月使ってみて、次回は年間プランに変更かなと。

とりあえず。

tama

皆様。ご無沙汰しております。 久々に更新をしようと思ったのですが、どうせなら見やすいブログがいいと思い、前々から調べたいなと思っていたオルタナブログで使用できるHTML(というかCSS)をテストしてみます。

オルタナブログさんは、Six Apartさんのブログシステムを使用されているようですが、いろいろと制限というか癖がありますね。

HTML編集も可能なのですが、HTMLで書いたものが「リッチテキスト」モードのときと、「確認」の時と、「最終表示」が異なるので、表示してみるまで結果がわかりません。

というわけでテスト。

●まずは見出し系

使えるのは<h2>かな。h2にはbackground-colorも設定。

h1 test

h2 test

h3 test

●リスト系

まあ、普通。

  • ul li のテスト
  • ul li のテスト
  • ul li のテスト

●テーブル

うーんなんとかborderとかは使えるみたいだけど、widthはだめみたい。

NoName
01 tamaki
02 tanaka

●Divと制御

あんまりパリッとしません。width, padding使いたい。

divにbackground-colorを定義
widthやheightの設定はエスケープされるようですね。。。

●<pre>タグ

コードの解説などでは必要かなと。

#include stdio.h
main()
{
        print("Hello World\n");
}

●感想

cssは書き方にもよるのでしょうけど、何かとエスケープされます。特にwidth,heightやpadding, margin系がエスケープされちゃうのは痛いですね。

tama

数年ぶりにAmazonのAPIにアクセスしてみたら、まったく仕様が変わっていてビックリ(というか、当然ですね)。

というわけで、おさらい。

C#で、Amazon Product Advertising API を使ってみました。

最新環境(2011-0801)では、

  • リクエストに署名がいる(これはもっと前からみたいですね。。。)
  • AssociateTagが必須になった
  • ItemPageが10ページまでに制限

という感じ。

また、リクエストはRESTとSOAPどちらにも対応しているみたいですが、SOAPの方は今更感があるので、RESTを利用することにします。

署名は、ここからダウンロードできるサンプルから、SignedRequestHelper.csを抜き取ってきて利用するだけ。

SilverlightやWindows Phone環境では、使えるClassに制限があったりするようですが、その解決法も先人さまが解決されているようでした。

大変参考になりました。というか、ほぼパクリ。

事前にAmazonさんに開発者登録して、Access Key IDとSecret Keyさらに、AssociateTagを取得しておく必要があります。

で、ソースですが、WindowsフォームにTextBoxとButtonを1つ配置し、Buttonのクリックイベントに下記コードを書きました。TextBoxはマルチラインにして広げておきます。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using AmazonProductAdvtApi;
using System.Net;
using System.Xml.Linq;
using System.Web;

namespace AmazonTest
{
    public partial class Form1 : Form
    {

        private const string MY_AWS_ACCESS_KEY_ID = "ほげほげ";
        private const string MY_AWS_SECRET_KEY = "ふーふー";

        private const string DESTINATION = "ecs.amazonaws.jp";

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var helper = new SignedRequestHelper(MY_AWS_ACCESS_KEY_ID, MY_AWS_SECRET_KEY, DESTINATION);
            var param = new Dictionary<string, String>();
            
            param["Service"] = "AWSECommerceService";
            param["Version"] = "2011-08-01";
            param["Operation"] = "ItemSearch";
            param["Keywords"] = "Linq";
            param["SearchIndex"] = "Books";
            param["ResponseGroup"] = "Small";

            param["ItemPage"] = "1";

            param["AssociateTag"] = "げほげほ";

            var requestUrl = helper.Sign(param);
            var request = new WebClient();
            
request.Encoding = Encoding.GetEncoding("UTF-8");

            request.DownloadStringCompleted += (_s, _e) =>
                {
                    if (_e.Error != null)
                    {
                        MessageBox.Show(_e.Error.ToString());
                    }

                    var xml = XElement.Parse(_e.Result);

                    XNamespace ns = "http://webservices.amazon.com/AWSECommerceService/2011-08-01";

                    textBox1.Text = "";
                    textBox1.Text += "件数 = " + xml.Element(ns + "Items").Element(ns + "TotalResults").Value.ToString() + "\r\n";
                    textBox1.Text += "ページ数 = " + xml.Element(ns + "Items").Element(ns + "TotalPages").Value.ToString() + "\r\n";
                   
                    var result = from item in xml.Descendants(ns + "Item")
                                 select item;

                    foreach (var i in result)
                    {
                        textBox1.Text += i.Element(ns + "ASIN").Value.ToString() + " : ";
                        textBox1.Text += i.Element(ns + "ItemAttributes").Element(ns + "Title").Value.ToString() + "\r\n";
                    }
                };

            request.DownloadStringAsync(new Uri(requestUrl));
            
        }
    }
}

こんな感じ。

特に、難しいことは何もないのですが、SignedRequestHelper.csをコンパイルするのに、System.WebのDLLを参照する必要がありますが、Client Profileの.NET Frameworkにはないので、ターゲットのFrameworkを普通の.NET Frameworkにすつ必要があります。

あと、XMLは基本UTF-8のはずなのですが、なぜかWebClientで取得したXML(の日本語)が文字化けし、Parseがこけるので明示的に文字コードを指定(緑字部分)しました。

tama

どういうわけか、最近まで、(Windows上の)VMWareにMac OS がインストールできることを知りませんでした。

私の場合、「どうしてもMacじゃないとダメ!」という状況は、XCodeを使うときだけなので、もし、VM上でMac OSが動いてくれるなら、こんなにいいことはありません。

というわけで、早速手元にあったSnow Leopardをインストールしてみました。

Mac

先人がいろいろと記事を書いてくれてるので、難なく?インストールできました。

参考にさせていただいたサイト

http://taiseiko.blog.so-net.ne.jp/2011-05-14

ちなみに、iMac (Core i5) +Bootcamp上にインストールしてます。。。

インストールの途中でEBIOS errorというのが出ましたが、強制的にdarwin_snow.isoをマウントしたら、ブートしました。

tama

10月に入って、私が少なからず影響を受けた人が何人か亡くなった。

まず、

スティーブ・ジョブズ氏。

影響を受けたというのもおこがましいですが、単純に、Macintoshが無ければ私がIT業界にいることはなかったと思います。氏の教えで、私が実践できることは、

Stay foolish

くらいですが、胸にとめ、あがきながら生きていきたいと思います。

そして、

デニス・リッチー氏。

ブライアン・カーニハン氏と共にC言語の父とされる人。ケン・トンプソン氏と共にUNIXの父とされる人。C言語が無くても、UNIXが無くても、私がIT業界にいることはなかったと思います。

プログラミング言語に興味を持ち始めた頃、知り合いに、いわゆる「カーニハン本(Dリッチー氏共著)」を勧められ読んでみたのが、氏の名前を知る最初の機会でした。その本を読んだとき「何を書いてるのかわからない・・・」と内心思いつつ、背伸びをして読んでいたのをほろ苦い思い出として覚えています。

また、初めてUNIXの世界観に触れた時の衝撃、初めてrootアカウントをまかされたときの喜びは今でも忘れません。

最後に、

柳ジョージ氏。

特に音楽的に影響を受けた訳ではないのですが、

ギターを持って歌い。ソロは自分で弾く。

という、一見当たり前のことを普通にやる人として尊敬していました。若い頃、カッコつけるだけのためにギターを持っているボーカルを見つけては、「柳ジョージを見習え」と思っていたものです。

3氏を含め、亡くなられた全ての方のご冥福をお祈りいたします。

tama

プログラマの人なら、新しい言語やプラットフォームと出会ったとき、とりあえず書いてみるプログラムがあると思うのですが、私の場合はLife Gameがそれです。

というわけでHTML5(Javascript + Canvas)で書いてみました。

Lifegame

こんな感じ。(実行してみる

で、なぜかIE9で動かない。。。

ちょっと調べてみたところ、IE9では、頭に、

<!DOCTYPE html>

をつけないとHTML5系の機能がうまく動かないようです。いつもVisualStudioにお世話になっていたので、気が付きませんでした。。。

いちおうソース貼り付けておきます。

<!DOCTYPE html>
<html>
    <head>
        <title>Gmae of Life</title>
        <script type="text/javascript">

            //一辺のセルの数(正方形を想定)
            var n = 50;
            //セルの幅(px)
            var w = 10;

            //配列の宣言
            var out = new Array(n); //出力用(描画用)
            var inp = new Array(n); //入力用(計算用)

            //配列の定義と初期化
            for(x=0;x<n;x++){
                out[x] = new Array(n);
                inp[x] = new Array(n);
                for(y=0;y<n;y++){
                    out[x][y] = Math.floor(Math.random()*2); //乱数で0か1を代入
                    inp[x][y] = 0;
                }
            }

            //ロード時にタイマーをスタート
            window.onload = function(){
                //lifegame関数を500ミリ毎に実行
                setInterval(lifegame,500);
            }

            //本体
            function lifegame(){

                //前の状態を入力用配列にコピー               
                copy();
                //ルールを適用       
                calc();
                //描画
                draw();

            }

            //前回の状態を入力値として利用
            function copy(){
                for(x=0;x<n;x++){
                    for(y=0;y<n;y++){
                        inp[x][y] = out[x][y];
                    }
                }
            }

            //ルールを適用
            function calc(){

                //近傍をとれるよう配列をオフセット
                for(x=1;x<n-1;x++){
                    for(y=1;y<n-1;y++){

                        //セルの状態を取得(0か1)
                        var state = inp[x][y];

                        //近傍の状態カウント用
                        var cnt = 0;

                        //近傍の状態を取得
                        for(i=0;i<3;i++){
                            for(j=0;j<3;j++){
                                //近傍で生きているセルの数を数える(左上にオフセットして走査)
                                if(inp[(x-1)+j][(y-1)+i] == 1){
                                    cnt++;
                                }
                            }
                        }

                        //自分が空(死)状態で...
                        if(state == 0){
                            if(cnt == 3){ //周りに3つ生きてたら
                                state = 1; //生まれる
                            }
                        }
                        //自分が生きていて...
                        else{
                            if((cnt-1) == 2 || (cnt-1 == 3)){ //周りが2つか3つ生きていれば...
                                state = 1; //現状維持
                            }
                            else{
                                state = 0; //それ以外は死ぬ
                            }
                        }

                        //状態を描画用の配列に代入
                        out[x][y] = state;

                    }
                }

            }

            function draw(){

                //要素の取得とコンテキストの取得
                var canvas = document.getElementById("cvs");
                var ctx = canvas.getContext("2d");

                //一度描画をクリア
                ctx.clearRect(0,0,canvas.width,canvas.height);

                //配列の状態を見ながら...
                for(x=0;x<n;x++){
                    for(y=0;y<n;y++){
                        //生きているセルがあれば...
                        if(out[x][y] == 1){
                            //四角形を描画s
                            ctx.fillRect(x*w,y*w,w-1,w-1);
                        }
                    }
                }

            }

        </script>
    </head>
    <body>
        <canvas id="cvs" width="500" height="500">not supported.</canvas>
    </body>
</html>

tama

幸か不幸か、ここのところJavaScriptを書く機会が増えてきています。

私は普段、開発環境としてはVisualStudioを使うことが多いのですが、潜在意識の中に、

VisualStudioはJavaScriptエディタとしてはどうよ

という気持ちがありました。

なので、他の環境も調査することにしました。

調査対象としては、

  • VisualStudio
  • Coda
  • Aptana

の3つ(他にもいろいろいじってはみましたが)。

私としては、WinとMac両方で使いたいので、Aptanaも候補。

で、結論から言えば、

意外にもVisualStudioが一番よかった

ということになりました。正確に言えば、VisaulStudio2011 developer previewが一番よかった。となります。

理由は、

私が多用するCanvas(を制御するJavaScript)のコード補完がもっとも優れていたから

です。

極めて個人依存な理由ではありますが、道具というものはそもそもそいういうものだと思うのでお許しを。

簡単に試した中でVS2011(VS2010はだめ)が唯一、getContext()やbeginPath()など、コンテキストの取得、制御に対応した(コード補完が効く)唯一の環境でした。

01

VS2011さんでは、getContext等も補完されます。

02

Codaさん。有償なので期待したのですが、今のところ駄目のようです。

03

Aptanaさん。クールでかっこいいのですが、補完はだめのようです。ちなみに、昨日からダウンロード(Update)可能となった3.0.5でも駄目でした。

もしかすると、CodaやAptanaでも設定次第で、できるのかもしれませんが、私の調査内容では上記のような結果でした。

ただ、この辺の機能は主要機能なので、VS2011が正式リリースされるころにはCodaもAptanaも対応しているとは思います。

いずれにせVS2011もExpressが存在し、無料で利用できるので、Canvasフリークな人は利用されてみてはいかがでしょうか。

ものすごく限定的かもしれませんが、VisualStudioが意外にもいけてたという話でした。

tama

最近では、分野を問わず萌え系の表紙を採用する書籍が増えてきました。

実は、表紙が萌え系だったという理由で、何度か本の購入を躊躇した経験があります。今日も、数学系の本を買いにいった際、内容は気に入ったものの、表紙が萌え系だったため、購入を躊躇するという状況に陥りました。

躊躇する理由は、

レジのお姉さんに渡すとき恥ずかしいから

だと思います。

であれば、Amazonで頼めばいいのですが、

それはそれで負けた気がする

のです。

というのは、そもそも、

なぜ、自分は萌え系の表紙を恥ずかしく思うのか?

について考察したとき、どのような理由であれ、

自分は世間体を気にしているつまらない人間という結論に至る

からです。

仮に「自分は萌え系が嫌い」だとすれば、レジのお姉さんに

「萌え系が嫌いなのに、好きな人間だと思われたらどうしよう」

ということを気にしているつまらない人間ということになりますし、

仮に「萌え系が好き」だとすれば、

「萌え系が好きにもかかわらず、自分は萌え系が好きな人間と思われたくない」

というさらにつまらない人間だということになります。

私は常に、

世間体など気にしない

をモットーとしているので、どのような理由にせよ、萌え系表紙本の購入を躊躇すること事態あってはならないことなのです。

そんなことを思いながら、本棚の前でモジモジしていると、

「馬鹿じゃないの?じゃあ、買ってきてあげるよ」

と、同行していた嫁がさらっとレジを通してくれました。

ま、いずれにせよ、私が小さな人間であることは間違いないようです。

tama

ソフトウエアアップデートマニアの私もすっかりEVOのアップデートの事を忘れていたのですが、加藤さんのブログ記事を見て、アップデートを思い出し、早速実行してみました。

アップデートは非常に簡単。Wi-Fi経由で10分もかからずダウンロードでき、インストール作業もサクッと終わりました。拍子抜け。

掲示板などの事前情報では、

「全体的にはやくなった」
「WiMaxの認識率?が上がった」

など、比較的好感触な感じ。。。

まあ、私にとって2.3.Xの最大の魅力はNFCへの対応なのですが、ハードが対応してないと意味がありません。。。

それはさておき、実際の感想ですが、

「早くなったと言われたら早くなったかな」

という感じ。まあ、いい感じです。アプリが動かなくなったというのも無いです(とはいえ、gmail, Twitter, Facebookくらいしか使ってませんが)。

で、私が一番改善して欲しかた機能?というのは、テザリング時の、

WiMax - 3G あるいは 3G - 1G 等のスムーズな切り替え@横須賀線

だったのですが、、、、

なんかWiMaxの感度が良くなっていてそもそもあまり切り替わらない

という印象です。

ブラウザはともかくメッセンジャー系はぶちぶち切れて使い物にならなかったのですが、まあまあ使えます。

但し、横須賀線のネットユーザ泣かせエリアの「新川崎 - 西大井」、「大船 - 鎌倉」あたりでは3Gに切り替わりましたが、以前よりスムーズになった印象があります。

以前は、ネットワークが切り替わったあとしばらく繋がらないという感じだったのですが、そのようなストレスは感じません。

ハンドオーバーまわりのソフトが改善されたのでしょうか。

というわけで満足満足。

tama

少々はまったので後の人のためにメモ。

SQL Serverの次期バージョン、コードネームDenali。現在CTP3ですが、VisualStudioのServer Explorerから従来の方法(Data Connections)でサーバを追加し、操作しようとすると、

01

と怒られます。まあ、なんともさびしい話です。

Juneauをインストールしたり、VS2011からならOKかなと思いましたが、ダメっぽいです。

が、

「SQL Server」として追加すると普通に操作できるようです。

02

簡単ではありますが、以上です。

tama


プロフィール

玉木 栄三郎

玉木 栄三郎

ビジネスデザイナー
(現在は、Microsoft Regional Directorなどとして活動)

詳しいプロフィール

最近のコメント
最近のトラックバック
カレンダー
2012年5月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
カテゴリー
エンタープライズ・ピックアップ

news094.gif ストレス社会との付き合い方
政府がメンタルヘルス検査の義務化を検討しています。しかしうつになった後だけではなく、なる前の予防も大切なのではないでしょうか。(5/24)

news094.gif 「思いやり経営」のススメ
産学・NPO連携の民間団体が先頃、「思いやり経営」という観点で評価した指標や企業ランキングを発表した。企業のマネジメント力を知る手立てとして注目されそうだ。(5/24)

news094.gif テレワークが労働者のマインドを変える
テレワークが普及すると、労働者の評価は従来の「時間×生産性」から「成果」へと変化する。時間や場所を自分の裁量でコントロールできる変わりに、成果を最大化するために労働をマネジメントする能力とマインドが労働者には必要になる。(5/23)

news094.gif 求む、クックパッド男子
高身長も高学歴も高収入もいらない。私が男性に求めるのは「料理の腕」だけです。(5/18)

news094.gif 37歳の常識――我々は一生学び続ける
学び続けなければ衰退するのみだ。(5/18)

オルタナティブ・ブログは、専門スタッフにより、企画・構成されています。入力頂いた内容は、アイティメディアの他、オルタナティブ・ブログ、及び本記事執筆会社に提供されます。

Special

- PR -

サイトマップ | 利用規約 | プライバシーポリシー | 広告案内 | お問い合わせ