2015年5月28日木曜日

Git For Beginers(#javajo #PyLadiesTokyo)参加してきた

先日Java女子部とPyLadies共催の
「Git For Beginners」へ参加してきました。
一応Java女子部のメンバーなのだけれど,このイベントが初参加!
イベントページ(Doorkeeper)
Togetter

女性エンジニア団体主催イベントなので、
当たり前だけど空間に女性しかおらずソワソワしてました。
(Togetter見ると私だけではなかった模様)

勉強会の主な流れは、
1. 各主催団体の紹介
2. 関西Java女子部との中継(面白かった!)
3. アイスブレイク(参加者の自己紹介)
4. 講演
(1) 2ヶ月前にGitを始めた私からこれから始める皆さんへ @ihcomega
(2) [ハンズオン] はじめてのGitHub @yuryu
(3) 私が複数人開発・業務で感じているGitのうまみ @sinamon129
(4) DevOps分野でのGit活用事例 @_zoo

全体としては、講演の途中に適宜休憩があったこと、
アイスブレイクでどんな背景を持った人が来ているのかわかってよかったです。
講演担当の方々はみなさん緊張していたのがよくわかりました。。。笑

講演についてちょこっとメモ
(1) 2ヶ月前にGitを始めた私からこれから始める皆さんへ @ihcomega

前までSVN使ってた発表者(よこな)がGitを始めた時に、
何を覚えて、何につまずいたのか教えてくれました。
(このSlideShareがなんとはてぶのホットエントリ入り!)
ちょうど社内でSVN→Gitへの以降話が出ているので、
移行した時に社内共有できたらいいなとおもいました。

(2) [ハンズオン] はじめてのGitHub @yuryu

ハンズオンすごいよかった!
一通りGitHubフローをすることができたので、
一人で勉強しているとなかなかできない、他人のPJへのPR(プルリク)とか、
Forkとか手で覚えることができてよかった。
PyLadiesのGit使いが勉強会の裏でSlack使って連携してたのはすごかった!
裏Slack。PyLadiesの運営は手厚い!

(3) 私が複数人開発・業務で感じているGitのうまみ @sinamon129
※資料準備中らしい※
あまり新しいことはなくて、
内容はGitのうまみというよりバージョン管理のうまみって感じでした。
大事なところが初心者じゃわからないコマンドラインで説明されて
何やってるか意味わからなくて残念。せめて操作しながら解説ほしかった。
LGTM*の文化初めて知った。画像まであるなんて面白い。
*LGTM: "looks good to me."の略。GitHubのプルリクに対するOKコメント

(4) DevOps分野でのGit活用事例 @_zoo
突然の難易度UP...
例えば、環境構築もGitを活用すれば簡単にできるよっていうお話。
ほかにもあったのだけど理解できなかった・・・
でも、難しかったけど理解したい内容でした。

2015年4月23日木曜日

GTUG Girls Meetup (#gtuggirls) に参加してきました!

しょこです。

昨日は第21回GTUG Girls Meetup「1からはじめるAngularJSハンズオン」に
参加してきました。GTUGのイベントは初参加。

Meetupの内容

簡単な概要と初心者向けハンズオンをやりました。
講師は@albatrosaryさん,チュータが@mitsuruogさんでした。
これに則ってやってきた(全部はやってない)
http://albatrosary.hateblo.jp/entry/2014/11/06/101400
togetterはこちら

AngularJS概要

1. AngularJSが生まれた背景
そもそもJava Scriptとは,DOMを操作することを原点としている言語。
→ただ操作しづらいので,操作しやすくするためにjQueryができた。
→でも結構問題があったので,jQueryを整理したBACKBONE.JSが生まれた
→そこからさらに操作しやすくしたのがAngularJS

ちなみにWeb業界2大トレンド"AngularJS"と"React"の違いは,
DOM操作を隠ぺいするかしないか辺りらしい。

2. AngularJSとは
JavaScriptフレームワーク。
色々特徴あるなかで今日は初心者でもわかりやすいディレクティブをやります。
(ディレクティブ以外だとルーター,コントローラー,ファクトリーなどがある)
近いうちに1.x系か2.x系への大型アップデートがあり,機能も拡張される予定。
<<キーワード>>
カスタムタグ/双方向バインディング/DI/ルーティング/Virtual DOM

ハンズオン

1. 環境構築 (サーバの準備)

(1)Macの場合
Pythonが入ってるのでそれを使う。
- アプリケーションサーバを作業フォルダ内で立ち上げる
- localhost:8000 (またはlocalhost:9000)にアクセス
- index.htmlを作成する

(2) Windowsの場合
Python入ってないのでとりあえずWeb IDEを使う。
- Web IDEを開く (今回はJS Binを使った)
- [Add Library] で Angular 1.3.2 Stableを選択
- この時点でindex.htmlが作成されるのでここを編集していく

2. index.htmlを編集してHello, Worldしよう。


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Angularの基礎</title>
</head>
<body>
  Hello
</body>
</html>

3. index.htmlにAngularJSを読み込ませる

ダウンロードしてもいいけど,とりあえず以下のようにURLから読み取る
srcに指定するのはhttps://angularjs.org/のDownload→CDN
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script>
</head>

4. 実際に動かしてみよう!!

(1) Angular JSが動いてることを確認する
1+1を{{}}で囲んだ場合に演算結果が表示されればOK
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Angularの基礎</title>
</head>
<body>
  Hello {{1+1}}
</body>
</html>

<出力結果>
Hello 2

(2) バインディングの基本をやってみる
<body ng-app>とすると,AngularJSのコードだと認識される。
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Angularの基礎</title>
</head>
<body ng-app>
<!--テキストボックス-->
  <input type="text" ng-model="hoge">
<!--テキストボックスに入力された内容を表示(バインディング)する-->
    {{hoge}}
</body>
</html>

バインディング時に一瞬{{hoge}}が見えてしまう。
これを解決したい場合はspanを利用してバインディングする。
<body ng-app>
  <input type="text" ng-model="hoge">
  <span ng-bind="hoge"></span>
</body>

(3) 条件分岐をやってみる
AngularJSではng-showとng-ifの2種類が条件分岐文。
二つの違いは今は気にしなくてよいため,今回はng-showを利用。
(*・ω・){<div ng-show="hoge==='1'">が肌になじまない...!
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Angularの基礎</title>
</head>
<!--"1"入力時のみメッセージを出す-->
<body ng-app>
  <input type="text" ng-model="hoge">
  <div ng-show="hoge==='1'">
    <span ng-bind="hoge"></span>
    が入力されました
  </div>
</body>
</html>

(4) ループ文をやってみる
予め初期化しておいたリストからデータを取り出して表示する。
ここらへんで気付いたけどAngularJSはデフォルトの表示がある程度成形されている。
今回のケースだと箇条書きになっている点。
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Angularの基礎</title>
</head>
<body ng-app>
  <!--ブラウザが表示されたときにdemoDataとして読み取るデータ群-->
  <div ng-init="
    demoData = [
      {name: '佐川', age: 28}, 
      {name: '小川', age: 32}, 
      {name: '山田', age: 16}, 
      {name: '井上', age: 42}
    ]
  "></div>
  <ul>
    <!--リストからデータを取り出す-->
    <li ng-repeat="data in demoData">
      {{data.name} - {{data.age}}
    </li>
  </ul>
</body>
</html>
<出力結果>
・ 佐川 - 28
・ 小川 - 32
・ 山田 - 16
・ 井上 - 42

ここにフィルタ機能を実装するときはliにfilterオプションつけるだけ。
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Angularの基礎</title>
</head>
<body ng-app>
  <div ng-init="
    demoData = [
      {name: '佐川', age: 28}, 
      {name: '小川', age: 32}, 
      {name: '山田', age: 16}, 
      {name: '井上', age: 42}
    ]
  "></div>
  <input type="text" ng-model="search">
  <ul>
    <li ng-repeat="data in demoData | filter: search">
      {{data.name} - {{data.age}}
    </li>
  </ul>
</body>
</html>
(5) Validationチェックをやってみる
まず初めにhead内でstyleを定義する。
<head>
  <meta charset="utf-8">
  <title>Angularの基礎</title>
  <!--style定義-->
  <style>
    input.ng-invalid.ng-dirty {
      border-color: #ff0000;
    }
  </style>
</head>
次に,body内で必須項目設定(required)をする
<body ng-app>
  <input type="text" ng-model="hoge" required>
</body>
これだけで必須項目にしたテキストボックスに値が入っていないと赤枠が表示されるようになる。
最初から陰影ついててビビる。

(6) エラー処理をやってみる
body内をformで囲った後,エラー条件(今回は文字数)を定義。
エラーメッセージで指定するために名前を付けておく。
<body ng-app>
  <form name="demo">
    <input type="text" name="username" ng-model="hoge" ng-minlength="4" ng-maxlength="8" required>
  </form>
</body>
エラー条件定義後,エラーメッセージを実装
<body ng-app>
  <form name="demo">
    <input type="text" name="username" ng-model="hoge" ng-minlength="4" ng-maxlength="8" required>
      <!--テキストボックスに入力された文字数に問題があった場合エラーメッセージを表示する-->
      <p ng-show="demo.username.$error.minlength">4文字以下です</p>
      <p ng-show="demo.username.$error.maxlength">8文字以上入力されています</p>
  </form>
</body>
(7) 番外編:ヘッダーを固定させる(SPA)
Single Page Applicationを実装するときは,ファイルを分けてbody内でindex.htmlから呼び出す。
<body ng-app>
  <div ng-include="'header.html'"></div>
  <div>
    <!--この中身を書き換える-->
  </div>
</body>

Q&A

1. 今後独学するのにおすすめなサイト/本


2. その他


  • Yeoman
    • http://yeoman.io/
    • yo angular-fullstackコマンドだけでちょっとしたアプリケーションが動く。
    • 次回のGTUGのテーマです。
  • AngularJS適用するのにおすすめ/おすすめじゃないソフトウェアは?
    • おすすめ→業務アプリケーションの管理画面とか
    • おすすめじゃない→画像をたくさん動かすゲームとか
    • 規模は小規模~大規模特に関係ない
  • ディレクティブの次は何やるのがいい?
    • 次のステップならルーターとコントローラーがおすすめ。
      • ルーターには3種類ある。ng-ルーター/ui-ルーター/new-ルーター
      • 仕事でAngular触るならui-ルーター,勉強用ならnew-ルーターを使うのがおすすめ (newはまだ安定していない)
    • ルーターとコントローラーの次はファクトリー
      • $httpと$resourceを使ってサーバと通信すれば一通り作れるようになったってことになる。

2015年4月16日木曜日

3泊4日で坐禅修行してきた

お休みをいただいて3泊4日の坐禅修行に行ってきました。

修行してきたのは,宝泉寺 禅センターという
嵐山よりさらに奥へ入ったところです。

行ってどうだった?

行ってよかった。でも1回でいいかな。
今回の大きな収穫は,無心になることを坐禅を通して身に着けれたことかなと思います。
あとは,食事の際の行儀がよくなった。
メリハリが聞いていたので長期でも大丈夫かなと思いました。
施設も全体的に綺麗で,建物も新しかった。お寺の方も若かった。
ただ施設内はシャワーだけなのでお風呂が恋しかった。

修行の基本

決まった場所以外での私語禁止。5分前行動。
防寒具の着用禁止。靴下も禁止で常に裸足。
食事に肉・魚は出てきません(精進料理。ただし味付けは薄目濃いめ様々。)
朝食・夕食は無言で食事中の飲み物も無しで,決められた作法でいただきます。
ここで使う箸・器は修行初日~最終日まで洗剤では洗いません。
昼食は和やかな雰囲気で喋りながら楽しく食べれます。(カレーとか出てきます)

修行のスケジュール

※1日目は安単から参加し,最終日は粥座まで参加です。
5:20 開静 (起床)
  行く前は早いと思ったけど,夜も早いので意外に起きれる。
5:40 八段錦 (太極拳)
  起きてから15分なので始まりまであまり余裕がない。
  雨の日は坐禅に変わります。
6:00 坐禅 (25分×2)
  朝のいい静けさと空腹によるお腹からの音(笑)を感じながらの坐禅は
  落ち着きました。(坐禅は初日の夜以外は落ち着く)
7:00 朝課
  本堂でお経を読みます。お経を読むと,修行感高まります。
7:20 掃除
  誰でもわかるマニュアルが置いてある。だから常に寺は綺麗。
7:50 粥座 (朝食)
  朝早い割に朝食が遅い。朝は必ずお粥。
-:-- 下山者挨拶
  その日の下山者はここで挨拶して帰ります。
9:00 作務
  雨の日は法話DVD鑑賞に変更。
  草むしりしたり,畑耕したりします。途中に茶礼(おやつ休憩)あり。
11:45 安単
  昼食前の坐禅タイム。
12:00 斎座 (昼食)
  普段どおりに食事して,修行者が手分けして片付けます。
  作法無しで自由に食べれるので三食のうち一番食べてます。
12:40 自由時間
  自分は寝たり,観光に行ったり,洗濯したり,シャワー浴びたり。
  読書している方や,外で坐禅している方など過ごし方は様々。
16:45 安単
  夕食前の坐禅タイム。ここで入山した人が自己紹介した後合流する。
17:00 薬石 (夕食)
  個人的に,初日の薬石はこの修行最難関。
  前に座っている長期修行者並のスピードで食べ,片付けます
18:10 法話 (火曜/土曜のみ)
  和尚さんからのありがたいお話。法話がなければ休憩になる。
19:00 坐禅 (25分*3)
  初日は最初のコマで坐禅指導あり。
  姿勢指導も適宜あり,テレビなどでよく見る板で叩かれるのも
  希望すればしてもらえます。(希望しなければされない)
20:30 開枕調経
  消灯までの準備時間開始って意味です。
21:10 茶礼 (自由参加)
  お寺のスタッフの方や修行者とお菓子とお茶をいただきながら,
  雑談したり食事の作法の練習したりフリータイムです。
22:00 開枕 (消灯)
  消灯の見回りに来ます。消灯後は速やかに寝ていました。
  ログハウスの二段ベッドで寝ましたが,少し寝にくいです。

これから行く人へ

一回の修行でしっかりとした収穫を得るために,
長期修行者やお寺のスタッフさんとたくさん話すといいと思います。
また,寒暖差が激しいのでジャージの中に着込める防寒具を多めに用意しましょう。

2015年3月22日日曜日

時雨祭@ドワンゴ行ってきた(後編)

プレゼンメモが長くなってしまった

ので,後半の4つのプレゼンについてはこちらにまとめました。
4. Quipperを支えるテスト技術(@hakobera)
5. freeeを支える技術 (@xga)
6. (Web魚拓の闇(公開禁止)) (@hiroki_niinuma)
7. HLSについて知っていることを話します (@moriyoshit)
前半はこちらです。
1. 真 Drone入門 (@mopemope)
2. メルカリを支える技術 (@cubicdaiya)
3. Qiitaを支えたい技術 (@mizchi)

プレゼンメモ(後編)

4. Quipperを支える負荷テスト技術(@hakobera)

負荷テストの重要性と手軽な負荷テスト環境構築とデモがありました。
資料:https://gist.github.com/hakobera/e47dd940b92f56d8bf1a
参考スライド:


負荷テスト:大事なのはわかるけどシナリオ作成とかインフラ構築がめんどくさい
→プログラミング言語(例:Locust)でシナリオ作ってDockerでインフラ構築すると楽だよ!
- シナリオ作成:XMLで作るのもあるが,あくまで構図を書くものだから
 ロジックを作りこむには向いてない。例えば,Pythonで書けるLocustで作成する。
- インフラ構築:ハードなDockerのイメージ管理はGoogle Container Registryで,
 クラスタの構築はGoogle Container Engineで解決!

LocustのWebインタフェースがやたらおしゃれでリッチだったし,
csv形式で結果吐き出せるしでちょっと使ってみたかった。

5. freeeを支える技術(@xga)

クラウド会計ソフトfreeeを支える技術
資料:https://t.co/ufHavYWfvs

■支える技術
フロントエンドをbackbone.js/vue.js/CSS
裏はRuby on Rails
インフラは全部AWSを利用している
監視にはZABBIXを利用している。「さいこーっすね」「楽っすね」
PostgreSQLのJSONB+GIN INDEXは革命的に早い。
電話対応にはZendeskを利用(03番号が取得できる)
タスク管理は殆どasana
■社内制度
社員全員(インターン含め50人くらい)が集まって食事する機会多し。
「見た目はいいんですけど」「いや、大丈夫です」「なかよしです、なかよし」
バグのことをハッピーと呼び,確定申告シーズン以外はハッピー担当が二人いる。

6. Web魚拓の闇(@hiroki_niinuma)

公開禁止なので何も書きません。

7. HLSについて知っていることを話します。(@moriyoshit)

今回の発表で一番本業と遠くて新鮮だった。


HLS(HTTP Live Streaming)は,HTTPを使ってネットラジオと同じ要領で動画を配信する技術。
■仕組みがシンプル
(1)動画をセグメントごとに分割
(2)プレイリストを更新
以上。
■特徴
・プロトコルがシンプル(クライアントにひたすら送るだけ)
・キャッシュフレンドリー(セグメントごとに分割されてるから扱いやすい)
■ご家庭でHLSを始めるには
Webサーバを用意してセグメントファイルを送り付ける。
nginx-rtmp-moduleを使うのがおすすめ
設定がAdobe Media Serverより楽で,nginxの他のモジュールと合わせて利用できる。

時雨祭@ドワンゴ行ってきた(前編)

昨日は時雨祭行ってきました。
http://shigure.connpass.com/event/11780/
会場はドワンゴさん。歌舞伎座の横にこんなタワーあるなんて知らなかった。

今回は,特にLTとかはせず聴講者です。
リアルタイムな感想・実況は以下の時雨祭togetter参照で。
まったり編 - http://togetter.com/li/797656
プレゼン編 (1) http://togetter.com/li/797700
プレゼン編 (2) http://togetter.com/li/797722
プレゼン編 (3) http://togetter.com/li/797735
プレゼン編 (4) http://togetter.com/li/797739
プレゼン編 (5) http://togetter.com/li/797750

全体の感想

GoとDockerはやっぱり勉強しておかないと
どんどん置いていかれてしまうなぁと実感。
時間見つけてちょこちょこ動かしつつ勉強しなきゃと思いました。
あとは,今回の聴講者みたいに自分が好きかつ得意な技術があると
強いなーと思いました。
もうすこしハンズオンの時に交流できたらよかったな。

プレゼンメモ(前編)

プレゼンメモが長くなってしまうので前半の3つについてここに。
1. 真 Drone入門 (@mopemope)
2. メルカリを支える技術 (@cubicdaiya)
3. Qiitaを支えたい技術 (@mizchi)
後半はこちらです。
4. Quipperを支えるテスト技術(@hakobera)
5. freeeを支える技術 (@xga)
6. (Web魚拓の闇(公開禁止)) (@hiroki_niinuma)
7. HLSについて知っていることを話します (@moriyoshit)

1. 真 Drone入門(@mopemope)




Abby CTOのマツバラさんによる発表。
(WindowsでもMacでも文字化けてる…)
赤ちゃん抱っこしながらプレゼン。なんか新しい時代を感じる。
drone.ioというDroneのCIツールをJenkinsの代わりに入れてみませんかっていう話。
詳しくは以下の参考スライド。

Drone.io のご紹介 from Uchio Kondo

Dockerで動かしていて,カスタムは主にシェルコマンド,できないものはGoでする。
参考スライドの中で複数のJenkinsを統合してDrone.ioにしようというのがあったので,
自分のプロジェクトにも適用できそうだなと思った。ただ初期学習コストがまだ高い・・・><

Drone.ioの次バージョン0.4の目玉は以下の通り。
1. .yml(やむる)の構造が変わる
0.4未満からアップデートする際には,この点に留意しなければならない。影響がある可能性有
2. Matrixビルドができる
ディストリビューション別/言語バージョン別/DBバージョン別でビルドができる
詳しくはhttps://github.com/drone/drone/issues/6

2. メルカリを支える技術(@cubicdaiya)

メルカリの性能設計の話。いかに高性能にするかを話していただけました。


元ネタは以下のスライド。


メルカリのネットワーク構成はさくら×AWSの混合構成
今回は高性能な仕組みを持つモジュールを3つ紹介

1. 高性能なAPIサーバをPHPで実現
利用しているのは軽量で高速なPHPフレームワークDietCake(http://dietcake.github.io/),
キャッシュのウォームアップ,
非同期処理(ジョブキューにQ4M,ワーカーにphp-Parallel-Preforkを利用)を使っている。
社内にDietCakeを書いている人がいる。

2. ハイパフォーマンスブラウザネットワーキングをnginxで実現
ハイパフォーマンスブラウザネットワーキングは以下の書籍のこと。
http://www.oreilly.co.jp/books/9784873116761/
TLS Session Cache/Ticketを導入してロードバランサであるnginxサーバのCPU使用率半減,I/O転送量を数Mbps削減している。
ただし,TLS Session Ticketに対応していない端末(iOSとAndroid4.x未満の端末)があるのが難点。
ちなみに,さくらにロードバランサオプションがあるが何故か利用せずにnginxサーバを利用している。パフォーマンスが足りないのかも?

3. 高性能なアプリケーションをGoで実現
メルカリのメイン開発言語はPHPだけど,最近の新機能はどんどんGoで作っている。
∵Goは早い・速い・軽い
Gaurun(Goで作った汎用プッシュ通知サーバ)を利用して,
プッシュ通知サーバ3台で数百万件のプッシュ通知を2時間程度で通知が可能。

3. Qiitaを支えたい技術(@mizchi)

フロントエンドエンジニアの技術(主にJS周り)で,
個人的には今回で一番聞いてよかった―って思ったお話。

前置きの「自分の業務をOSS化して,会社のドメインにせず,モジュールもきれいに分割する」っていう考えは素晴らしいし,その環境を提供するQiitaいいなぁと。

1. フロントエンドエンジニアとは何者なのか
HTML/CSS/JavaScriptで実装できるエンジニア。
最近の「実践的なフロントエンドエンジニア」に求められるスキルは
・node.jsでツールチェインを扱う能力
・外部モジュールの管理
・アセットパイプライン構築
・中規模以上のコントロールフローの設計
最近のAltJSを扱ううえではアセットパイプライン構築は重要で,
大規模なプロジェクトだと専任の担当者がいないと厳しい。

2. Modern Java Script
今はES6で「やっと普通の言語」になってきた。
Java Script界隈で最近大きな勢力は,
Babel/Type Script/Coffee Script/Flow Typeあたり。
@mizchiさんはCoffee Scriptが好き。
この中でどれを使うか選ぶ観点として,
・アセットパイプライン構築ができる→Babel/Type Script
・構築できない→互換のポリフィルを選択すること!

3.アプリケーション設計について
■重要なこと(1):SPAは片手間ではできません!!!!!!!
最近はMVCのController部分が分厚い。
ただ,ClientサイドにMVC(正式にはMVC2)を完全に適用するのは無理。
■重要なこと(2):Java Scriptでできることが増えた分は覚えましょう。
今後フロントエンジニアが目指すところは
・Server/Clientの境界面を設計する
・設計によって見通しをよくして,学習コストを抑える
・古いJSの悪習を引き継がない(DDDでいうSmartUI)

4.Isomorphic
Client/Serverどっちも同じ言語なら楽なのに…という発想のこと。
・Isomorphicを支える技術
ReactによるDOM抽象化とbrowserifyによるnodeモジュールの抽象化
・一般Isomorphic
node.jsやJava ScriptでClient/Serverのコードをすべて書く
・特殊Isomorphic(ラップしてれば大丈夫という発想)
@mizchiさんが一番筋がいいと考えているのはclojure/clojurescript
- clojure/clojurescript
- scala/scala.js
- ocaml/js_of_ocaml
- haskell/ghcjs
・Isomorphic
現状はパラダイム変わりすぎで時間とライブラリが足りてないのでこれから。
「みんな頼む」

2015年1月26日月曜日

時にはワインの話をしよう

当ブログのタイトルA Days of Wine and Geeksにちなんで
ワインの話をたまにはしてみます。
(タイトル自体はJazzのスタンダードナンバーA Days of Wine and Rosesをもじってます)

ワインだと赤より白派なのですが,
さらに言うとスパークリングかシャンパン派です。
美味しいシャンパン大好きです。断然辛口派です。

というわけで,今日はお気に入りのシャンパンについて
書こうかなと思います。



その名も・・・
「Taittinger Les Folies de la Marquetterie」

テタンジェ レ・フォリ・ド・ラ・マルケットリー
と読みます。














詳しくはこちら
泡の立ち方とかがすごい上品です。

ただTaittingerの中でも高価な方なので,
今度は比較的お手頃なブリュット・レゼルヴを注文してみようかと思います。

よきワインライフを~♪

※追記※
Taittinger社は2014のワールドカップ公式シャンパンに選ばれていました。
参考URL:Taittinger Brut Reserve Collector 2014 FIFA World Cup TM

2015年1月25日日曜日

SlideShareのスライドを埋め込み表示する方法

In English:How to upload to slideshare and embed in blogger
----------------------------------
昨日のブログ書くとき,困ったので,
ブログにSlideShareのスライドをリンクではなく埋め込み表示する方法を
ここにまとめておきます。

やりかた

1. 埋め込みたいSlideShareのスライドへアクセスする
2. スライド左下の[Share This Presentation]をクリックする
3. [Embed]をクリックして,HTMLタグをコピーする
4. ブログに戻り,エディタのモードをHTMLへ変更する。(Bloggerの場合)
5. 埋め込みたい場所にタグを貼り付ける
6. 完・成!

画像付き解説

1.埋め込みたいSlideShareのスライドへアクセスする


とりあえず例として私の挙げておきますね。

2. スライド左下の[Share This Presentation](左端のボタン)をクリックする

スライド表示部がこんな感じに切り替わります

3. [Embed]をクリックして,HTMLタグをコピーする

タグの下にオプションがあります。表示サイズや表示開始位置も設定可能です。

4. ブログに戻り,エディタのモードをHTMLへ変更する。(Bloggerの場合)



5. 埋め込みたい場所にタグを貼り付ける


一番後ろに足しました。

6. 完・成!

こんな感じで表示されます!
ぜひ参考にしてみてくださいね(・ω・*)

2015年1月24日土曜日

Tech Women - New Year's PartyでLTしてきました

しょこです。
来週のTOEICに向けてほとんど勉強ができていません。
まぁ...現状を測る方向で行きたいと思います(ぁ

さて,先週の金曜日はTech Women - New Year's PartyでLTしてきました。
内容としては,自分の仕事と業務分野を紹介したLTです。


エンプラYouは何してる? from Syoko Matsumura

こういうイベントに集まる人はだいたいB2Cの人が多いし,
アプリケーションしかわからなくてもどんどん物が作れるので,
このLTを見る人はB2Cな人が多いだろうから,
インフラを知って今後の開発でむちゃくちゃなことやらない
エンジニアになって欲しくてこういうの書いてみました。

リップサービスかもしれないけれど,
プレゼン良かったよ!って言われてめちゃくちゃうれしかった(´`*)


イベント自体は,
「もともとエンジニアじゃなかったけどPython触ることになったんです!」
って農学博士の方や,
「産休中にAndroid wearとかで遊んだもの紹介するよ!」
っていうすーぱーママさんとか,
業種も経歴も幅ひろ~い方がいらっしゃってました。

今後もこういうイベント続いてほしいから,
帰り道のFacebookでグループ立ち上げてしまった。笑
Geek Women Japan
興味のある方もない方もぜひ「いいね!」してください♪

最後宣伝になってしまったけど,ではでは!