2011/12/30

[本]断る力

読了

はじめに
◎「断る力」を身につけてはじめて、コモディティ(汎用品)から抜け出せた
◎9割は断るからこそ、引き受けた仕事は全力投球・命がけ
◎勇気を持って、あなたも「断る力」をつけよう!

第1章 総論 「断る力」の圧倒的な効用を理解する
◎「断る力」がない人たちは自己主張ができない人たち
◎「断る力」がないと「2ちゃんねる」で不満をぶちまけてしまう
◎正しいかどうかは関係ない。あるのは相手の「認識」だけ
◎アサーティブ、すなわち、賢い自己主張が「断る力」を支える
◎うつになる人は他人の評価に身を委ねてしまう人である
◎「断る力」をもたないと「子どもサッカー」をプレイしてしまう
◎「問題集をひたすら解く」ような教育は考える力を失わせる
◎「コモディティ」にならないためには「スペシャリティ」になる環境を選び抜かなければならない
◎「断ること」によるデメリットは思ったより少ない
◎同調はしやすいものと認識しなければならない
◎会社は同調思考を抜け出せるチャンスになる
◎「断らないこと」のメリットとは何か
◎「断らなく」ても嫌われることはゼロに出来ない
◎「熱狂的なファン」を作ることに集中する
◎「嫉妬」は必ず生じるものだと割り切る
◎「嫌われる」リスクを取ろう
◎だからといって、むやみに嫌われるようには振る舞わない
◎「悪意」の攻撃に対しては冷静かつ戦略的に対応する
◎その悪意は「解決すべき問題」か判断する
◎自分の「悪意」を制御することで、相手の悪意も理解できる
◎私たちは自分の扱い方を人に教えている
◎「断る力」を身につけるためには、相手との「対等」な人間関係が必要
◎「ランク・ジャンケン」主義者が一定割合はいることも割り切ろう
◎第1章のまとめ

第2章 ホップ 自分の揺るぎない軸を持つ
◎自分に責任を持てるのは自分だけ
◎ビートたけしさんの「毒舌」の正体とは?
◎上手に「断るリスク」を取る具体的なコツを学ぶ
◎ネットにおける「果たし状」~批判を繰り返す人の心理を考える
◎適切な「自己評価」がすべての基本になる
◎評価しづらい能力も評価する
◎「努力」の量はかけた時間で評価できる
◎自分の評価をするためのより具体的な方法を知る
1.まずは身近な人の意見を聞く
2.客観テストを使う
3.職場の人事評価を利用する
4.転職エージェントの力を借りる
5.顧客や取引先の評価を活用する
6.インターネットの評価を活用する
◎「客観的評価」を失うことこそ、最も避けるべき状況
◎「フィードバック」からノイズを取り除きながら、光と影を知る
◎他者からの評価バイアスで注意すべきこと
◎「不得意」なものは放っておく割り切りと強さが必要
◎30代前半までに「軸」を持つのが理想
◎自分が自分の「コーチ」として実は最適な人材である
◎第2章のまとめ

第3章 ステップ 相手への建設的な影響力を発揮する
◎「空気」を読んだ上で無視できる力をつける
◎「影響の輪」を常に意識しよう
◎上司は思いつきでものを言う
◎相手への影響とは、相手の力をうまく引き出し、「協力関係」を築くことである
◎「交渉力」はクセである
◎相手を尊重するからこそ、「断る」
◎「思考のクセ」を変えるには、手法を知り、行動を繰り返すしかない
◎「断る力」の発揮を「ロー・リスク」な場所から始めてみよう
◎「断る」成功体験で、自分に自信ができる
◎第3章のまとめ

第4章 ジャンプ 「断る力」で、自分と周囲の好循環を作る
◎「断る力」を身につけると、人間関係が目に見えて変わる!!
◎人との関わりの中で「自分の軸」が革新していく
◎相手を相対化する
◎職場でのチームワークをつくる
◎日常の生活の中で、基礎となる友情・愛情を育む
◎最後は、間違った考え方、間違った社会にNOを言える力を養うことを考えたい
◎第4章のまとめ

おわりに

via:目次
タイトルも釣りっぽいし、この本、危険だなー。

assert は affirm (肯定) でもなく、 accept (受容)でもなく、ましてや negate (否定)でもない。しかしその実践にはどちらも含まれている。よって assert とは「断定」することであり、assertiveness は「断る力」となるのである。

via:assert(yourself); - 書評 - 断る力
第一章までは、紙面の半分近くを占めており、かつ、この段階で読むのやめてしまった場合は、前述したように非常に危険である。

なぜならば、簡潔に書くと、「断ること」しか書かれておらず、この部分だけ読んだ人によっては、なんでもかんでも、否定的に断る人がでてくる可能性があるからだ。

現に、本書に出会う前だが、今の会社に転職した時に、結構な頻度で断ることだけを行っていた。
というのも、企画内容に対して、どうしてそこまでコミットしなくてはいけないのか、理解できなかったからだ。

代案を出すにも、仕事内容がそもそも違うから、越権行為になってしまうのではないかと、控えていたのだが、マネージャー面接で、「もっと提案してください。直接、プログラムに関わることでもなくていいので。」と言われてから、以後、納得できない部分に対しては、第一章のように断るのだが、それと同時に心がけていることは、「代案」を「必ず」出すということ。

代案を出すというのは、第二章以降に書かれているのだが、代案も、最初の提案内容よりも、もっとよくなければならない。
それは、そうだ。だって、代案がさらにへぼかったら、発言する意味もないからだ。

おかげさまで、高確率で提案(代案)が通っており、まずまずの結果(と思っている。)が出せているのでほっとしているのだが、これを、今後ずっと続けていかないかと思うと、かなり大変。だが、それ自体が仕事であり、かつそうしていかないと、今後、生き残っていけないような気がする。

提案かつプログラムもできるが、今、求められている付加価値なのではないかと。
本書でも記載されていたが、ただ純粋に従っている方が楽なのである。

こうして、代案を出す事に対するフレームワークを一冊の書籍にしてくれたことは本当にありがたい。
おかげで、より頭の中がすっきりしました。

最後に、著者に対する要望として、本書の中に、参考文献が、数多く登場するのだが、巻末に一覧がほしかったです。

2011/12/29

[Python]市場シェアってどのぐらい?

今、先輩社員からいただいた「初めてのPython 第2版」を読んでいるのですが、そもそも、Pythonのバージョン毎のシェアってどのぐらいあるのだろうか?

Usage statistics and market share of Python version 2 for websitesで確認してみると、調査対象となっているすべてのwebサイトの中で0.2%のシェアで、version2の中では、48.8%と2.4が一番多いみたいです。
Photobucket
Google App Engineでは、Python2.5と2.7をサポートしているのですが、いずれも、19.1%と4.0%と少ないですねー。

バージョン3はどうなんだろうか?


2011/12/28

[css]Bootstrapベースのinputタグ その1 text編

Bootstrapを使ったデザインの勉強をしているのですが、プログラムを見ると、ものすごい量のCSSで、ちょっとげんなり。
そこで、inputタグのtext属性だけ抜き出せないかなーっと思い、ちょっとこさえました。

<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
input {

-webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
-moz-transition: border linear 0.2s, box-shadow linear 0.2s;
-ms-transition: border linear 0.2s, box-shadow linear 0.2s;
-o-transition: border linear 0.2s, box-shadow linear 0.2s;
transition: border linear 0.2s, box-shadow linear 0.2s;

-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);

display: inline-block;
height: 18px;
padding: 4px;
font-size: 13px;
line-height: 18px;
color: gray;
border: 1px solid #CCC;

-webkit-border-radius: 3px;
-moz-border-radius: 3px;

font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: normal;
vertical-align: baseline;
}

input:focus{
border-color: rgba(82, 168, 236, 0.8);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) inset, 0 0 8px rgba(82, 168, 236, 0.6);
outline: 0 none;
}

input.mini{
width: 60px;
}
input.small{
width: 90px;
}

input.medium{
width: 150px;
}

input.large{
width: 210px;
}

input.xlarge{
width: 270px;
}

input.xxlarge{
width: 530px;
}
</style>
</head>
<body>
<input class="xlarge" id="xlInput" name="xlInput" size="30" type="text">
</body>
</html>
できたパーツは、こちら
Photobucket
この調子で、どんどんパーツごとに抜き出したいなー。

2011/12/27

[JavaScript]localStorageを使ってみる

いまさらながら、localStorageを、HTML5ROCKSClient-Side Storage試してみました。

作ってみたサンプルコートは↓

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<script src="./jquery.min.js" ></script>
</head>
<body>
<script>
jQuery(function(){
 $("input[name='save']").bind('click',function(){
  localStorage.textdata = $("input[name='lcalStrgeVal']").val();
 });

 if(typeof localStorage.textdata != 'undefined'){
  $("input[name='lcalStrgeVal']").val(localStorage.textdata);
 }

});
</script>
<input type="text" name="lcalStrgeVal" value="">
<input type="button" value="Save" name="save">
</body>
</html>
テキストボックスに入力されたデータを、ボタンを押して保存するという簡単なもの。

で、IE8とchromeで正常終了したのですが、chromeの場合は、「JavaScriptコンソール」の

「Resources」→「LocalStorage」

で確認できるのですが、IE8ではどこで確認できるのだろうか?

ちなみに、保存容量ですが、どうやらドメインごとに5MBのようです。

For example, "http://abc.example.com" is allowed to store up to 5MB of Web Storage, 25MB of Web SQL Database Storage, and forbidden to use Indexed Database.

via:Quotas
簡単なwebアプリを作りたい場合に便利ですね。

2011/12/26

[framework]アプリ収益の3つ柱

下の記事なのですが。。。

従来の考えでは、アプリのデベロッパーには主に2種類の収益ソースがあった。それはアプリを有料にするか、もしくはアプリを無料にして広告をつけるかだ。

via:アプリ経済—好調なアプリ業界の背後にあるもう一つの物語
これ、本当に2つだけなのでしょうか?

3つある気がします。
  • 有料アプリ
  • 無料アプリ+広告
  • 無料アプリ+アプリ内課金
今、書いて思うのが、「有料アプリ+広告」もあれば、「有料アプリ+アプリ内課金」なんて可能性も考えられる。

「有料アプリ+アプリ内課金」で知っているところでは、「魔界村」がある。

先ほどのエントリーの論理展開が、広告に移っていったので、それはそれでいいと思うのですが、できれば、考えられるパターンの列挙を行い、一番、収益が最大化できるものは何かを模索していくのも大事なのではないかなと思った。

2011/12/25

[jQuery]attrのまとめて設定

昨日に引き続いて、今日もjQuery

attrメソッドも、CSSメソッドと同様にまとめて指定できるようです。

$('#hoge').attr({
 '':''
});
こちらも便利ですねー。

2011/12/24

[jQuery]cssのまとめて設定

以前、jQueryのCSSを書きましたが、毎回、毎回、

$('#hoge').css('','');
$('#hoge').css('','');
って設定するの、めんどいなーっと思っていたら、まとめて設定する方法がありました。
$('#hoge').css({
 '':''
});
これすっげー便利

2011/12/23

[本]おとなの叱り方

読了

はじめに
プロローグ 誰も叱らないなら、私が叱る!
第1章 その人のために叱ってあげたい大切なこと
第2章 「親になる資格がない」おとなを叱る
第3章 「自分らしさ」を広げる生き方
第4章 好かれる叱り方、かわいがられる叱り方
エピローグ 自分で自分を叱れる人でありたい

via:目次
よくある昔はよかったの説教本。

まー、納得できる部分もあれば、出来ない部分も。

特に、朝青龍と亀田興毅選手の比較は、正直どうなの?
それこそ、人を見た目で判断しているんじゃーないの?
人を見た目で判断してはいけないと書いてなかった。
マスコミから流れいる情報だけを頼りにしていませんか?

叱ると怒るの違いは子供にわかるの?
そこまで小さいときから判断できるの?

と書いたらきりがなく、誤解をしている部分も多々あるかもしれない。

怒る者は疎まれ、叱る者は慕われる。

via:叱ると怒るの違い - 書評 - おとなの叱り方
を心に刻んで、これからの人生を楽しく過ごしたいですね。

2011/12/22

[chrome extension]開いているタブの情報を取得

そりゃーわからないよ。。。

これでポップアップにカレントタブのURLがテキストとして表示される。
URLの取得の確認で使っているだけなのであまり関係ないけど、cssでdivの大きさを事前に指定しておかないと、DOMで書き換える前には何も入ってない(=大きさが最小)のですごーく見にくい。

via:Chrome拡張機能で現在開いているタブのURLを取得する
って、このエントリー、そもそも作成日時が、2011年6月と書かれているが、そもそも、どこで情報を取得したのだろうか?

もっというと、chrome.tabs.getSelected()メソッドなのだが。

だって、Browser Interactionのtabsの部分を読んでも、全然書かれていない。

で、くまなく探したら、ありました。
あった場所は、OverviewのExample: Using a callbackの部分。
//THIS CODE WORKS
chrome.tabs.getSelected(null, function(tab) {
  chrome.tabs.update(tab.id, {url:newUrl});
});
someOtherFunction();
ここにあったのかよ。

ってか、ここに書いたなら、tabsにも書いておけよーっと言いたい。

2011/12/21

[html]Evernote Site Memory buttonが公開

あるページを開いているときに、Evernoteに残したい場合が、多々あります。

で、そんなときは、Evernote Site Memory buttonがあると便利。

機能はソーシャルボタンと同じ感じです。クリックして、情報を書き込む。

JavaScriptは必要なく、htmlのコピペでいけるので、実装もらくちん。

これを埋め込んでくれるwebサイトが増えることを願います。

2011/12/20

[Knights of the Crystals]終了

してしまうようだ。

Knights of the Crystals by SQUARE ENIXによると、2012年2月29日に終了する予定とのこと。

ソーシャルゲームだから、わりと早い段階で、終わったりするんだけど、いざ体験してみると、なんだか、悲しいですね。

2011/12/19

[chromewebapps]adsense使えるじゃん

これも前回、Packaged Appにadsenseが使えるかどうか確認して、結果から言うと、NGだったのですが、↓を見ると、いけるんじゃない?

Yes, as Chrome Web Store apps are just web apps.

via:Can I use Google AdSense in my web app?
ってことで、「おk」で判断します!!

2011/12/18

[chromewebapps]extensions機能について

だいぶ前に、packaged appの場合に、Chromeのextensions機能が使えると書きましたが、あれから少し調査をしましたが、実は、Browser Actionsと、Page Actionsは使えないようだ。

Packaged apps cannot use browser actions.

via:Browser Actions

Note: Packaged apps cannot use page actions.

via:Page Actions
一番ほしい機能が使えないなんて・・・

今後のバージョンアップでサポートしてほしいなー。

2011/12/16

[iPad]タブについて

確かに、動かせる

ページの切り替えが非常にやりやすくなって助かっている

via:@ iPad の Safari はタブが動かせる
けど、そもそも表示できるタブの数が決まっているのがいやですねー。

もっと、firefoxやchromeのように無限(と言っても有限なのかもしれませんが。。。)に開いてほしい。

9は少ないよー。

2011/12/15

Google Waveも終了

昨日、GoogleBuzzの終了エントリーを書きましたが、Google Waveも終了するみたいです。

Google Wave—We announced that we’d stopped development on Google Wave over a year ago. But as of January 31, 2012, Wave will become read-only and you won’t be able to create new ones. On April 30 we will turn it off completely. You’ll be able to continue exporting individual waves using the existing PDF export feature until the Google Wave service is turned off. If you’d like to continue using this technology, there are a number of open-source projects, including Apache Wave and Walkaround.

via:More spring cleaning out of season
2年前に少しやってみたのですが、UIが複雑すぎて、正直、よくわからなかったなー。

技術押しになるとこうなっちゃうんだなーという意味で勉強になりました。

2011/12/14

[Google Buzz]正式に終了

昔のエントリーを読んでいて、

google版 twitterか??

なんてものがあったんだけど、これって、最終的に、google buzzになり、結局、

米google20+ 件は10月14日(現地時間)、主力サービスへのリソース集中のため、「Google Buzz」をはじめとする5つのサービスを打ち切ると発表した。ラリー・ペイジ氏のCEO就任以来、

via:Google、「Buzz」や「Code Search」も終了へ
と、終わってたんだなーっと。

昔、ものすごくわくわくして待ち遠しいサービスだったけど、いざ使ってみたら。。。

なんか感慨深いものがありますね。

2011/12/13

[YouTube][jQuery]FullScreen対応

以前、YouTubeの動画を動的にローディングする方法について書きましたが、実はその際に、FullScreenモードには対応していませんでした。

で、対応方法は

var params = { allowScriptAccess: "always" };
・・・省略・・・
swfobject.embedSWF("http://www.youtube.com/e/" + prms.movieData + "?version=3&enablejsapi=1&hl=ja_JP&playerapiid="+prms.playerId, ・・・省略・・・);
・・・省略・・・
のところを、
var params = { allowScriptAccess:'always', allowfullscreen:'true'};
・・・省略・・・
swfobject.embedSWF("http://www.youtube.com/e/" + prms.movieData + "?version=3&enablejsapi=1&hl=ja_JP&fs=1&playerapiid="+prms.playerId, ・・・省略・・・);
・・・省略・・・
とJSONパラメータを一つ追加して、さらにURL変数にfs=1とする必要があります。
最終的には、下の形に落ち着きます。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="./jquery.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject_src.js"></script>
<script type="text/javascript">
function onYouTubePlayerReady(playerId) {
}

jQuery.extend({
loadYoutube:function(args){
prms = $.extend({
width:"420",
height:"345",
version:"9"
},args);
var params = { allowScriptAccess:'always', allowfullscreen:'true'};
var atts = {id: prms.embedId};
swfobject.embedSWF(
"http://www.youtube.com/e/" + prms.movieData + "?version=3&enablejsapi=1&hl=ja_JP&fs=1&playerapiid="+prms.playerId,
prms.id ,
prms.width,
prms.height,
prms.version,
null,
null,
params,
atts
);
}
});

jQuery(document).ready(function(){
jQuery.loadYoutube({
id:"js_movie",
playerId:"ytplayer1",
embedId:"ytPlayer1",
movieData:"R0ks1U2C6aI"
});
});

</script>
</head>
<body>
<div id="js_movie"></div>
</body>
</html>

2011/12/12

[YouTube]autoPlay機能

前回、動画再生後の関連動画の表示・非表示に関するエントリーを書きましたが、今日は、表示された瞬間に自動的に動画を再生する方法について。

と言っても、queryStringにautoplayを1にして設定すれば、自動的に再生してくれます。

逆に自動的に再生して欲しくない場合は、0(といってもデフォルトの値)に設定すればおk

2011/12/11

[GoogleCodeProjectHosting]ブラウザ上でソースの編集と作成

昨日、Google Social Developers 忘年会 2011に参加しましたが、その時に、ちょっと便利だなーっと思ったところが。

Google Project Hostingのページ上で、ソースの作成と編集ができるようになりました。

これで、わざわざjs.do itなどでアカウントを作らなくても、ブラウザ上でいじれるようになったので、いいですね。

後、欲を言えば、削除もできるとうれしいなーっと思いました。

2011/12/10

[ITイベント]Google Social Developers 忘年会 2011

に参加しました。

Uploaded from the Photobucket iPhone App

Uploaded from the Photobucket iPhone App

追記
2012.01.16
Hangouts API セッションの発表時の資料が公開されました。

2011/12/09

[jQuery]animateのeasingについて

jQuery日本語リファレンスのanimateメソッドの部分を読んでいると、第三引数に「easing」という言葉がでてきます。

で、これを設定してもうまくうごかない。。。

なぜだろうーっと考えていたら、どうやら、別のpluginを用意しないといけないようだ。

jQuery Easing Plugin (version 1.3)

で紹介されているJSを使って↓のように実装すれば、無事に動かすことができるようになりそうだ。

<script src="./jquery.easing.1.3.js"></script>
<div
style="position:absolute;width:100px;height:100px;border:solid 1px red;left:0;"
>
</div>

<script>
setTimeout(function(){
$('div').animate({
left:'100px'
},1000,'easeOutExpo');

},1000);
</script>

2011/12/08

[JavaScript][YouTube]muteを行なう

YouTubeの動画をJavaScriptでミュートしたい場合は、muteメソッドを使えば、実現できるとわかります。

動画がロードされたタイミングでミュートを行ないたい場合は、下のように実装します。

function onYouTubePlayerReady(playerid){
 var player = document.getElementById('player');
 player.mute();
}
onYouTubePlayerReady関数が呼ばれたタイミングで、embedタグを取り出すことができるので、そこで、muteメソッドを使います。

動画広告をはさみたいんだけど、画面が表示されたタイミングでは音声を出したくない場合などに便利な技です。

2011/12/07

[YouTube]動画再生後、関連動画を非表示

ブログやホームページでYouTubeの動画を貼る局面が多々あると思います。

で、貼り付けること自体はおkなのですが、問題は、動画終了後、関連動画がでてしまうところ。

これをなくすにはどうすればいいのかなーっと悩んでいたのですが、

「All YouTube player parameters」にあったrelパラメータに、0を設定すればいいのですな。

備忘録として。

2011/12/06

[IT用語]KGIとKPIの違い

上の二つがよく混同します。

●ボーリングでいうと、最終的にはどのピンに当てるという目標(KGI)は定めるのですが、より正確に狙うために中間目標であるスパッツ(KPI)を目がけて投げるようなものです。

via:KGI、KPIとは
最近、分析も行なっているので、よく言葉が混同するのですが、これはわかりやすい。

2011/12/05

[YouTube][JavaScript]ある一定のところから再生

タイトル通りになってしまうのだが、JavaScriptから、YouTubeのある一定のところからスタートさせる方法について調査をしました。

Playback controls and player settingsを読むと、player.seekTo(seconds:Number, allowSeekAhead:Boolean):Voidメソッドを使えば、できるようだ。

第一引数は、何秒目からスタートさせるのか?という設定を行なうので楽なのだが、問題は、第二引数。

allowSeekAheadとはいったい?

The allowSeekAhead parameter determines whether the player will make a new request to the server if the seconds parameter specifies a time outside of the currently buffered video data. We recommend that you set this parameter to false while the user is dragging the mouse along a video progress bar and then set the parameter to true when the user releases the mouse.

via:player.seekTo(seconds:Number, allowSeekAhead:Boolean):Void
つまり、サーバー側に問い合わせを行なうかどうかを設定するところ。

trueなら行なう、falseなら問い合わせを行なわない。

上記の文面から、プログレスバーをいじっている間は、falseで、それ以外は、trueを推奨しているとのこと。

確かに理解は、できるが、そもそも、プログレスバーをいじっているかどうかって、どこで判断するのだろうか?

onStateChangeメソッドじゃーないしなー。

うーん、困った。困った><