シェルスクリプトで複数行のコメントアウト

シェルスクリプト複数行のコメントアウト

困ったこと

一行のコメントは#でできるが、複数行のコメントはシェルスクリプトでは対応していないが、実現させたい。すなわちJavaにおける/* ソース */を実現したい。

環境

解決

:<<'#__COMMENT_OUT__’ ソース #__COMMENT_OUT__を利用する

コメントアウトなし

シェルスクリプト

#!/bin/sh
n=$1
f=0

i=1
while [ $i -le $n ]; do
  f=$((f + i))
  i=$((i + 1))
done

echo $f

実行結果

55

コメントアウトあり

シェルスクリプト

#!/bin/sh
n=$1
f=0
:<<'#__COMMENT_OUT__'

i=1
while [ $i -le $n ]; do
  f=$((f + i))
  i=$((i + 1))
done
#__COMMENT_OUT__

echo $f

実行結果

0

コメントアウトの無効化

シェルスクリプト

#!/bin/sh
n=$1
f=0
#:<<'#__COMMENT_OUT__'
i=1
while [ $i -le $n ]; do
  f=$((f + i))
  i=$((i + 1))
done
#__COMMENT_OUT__
echo $f

実行結果

55

参考

詳しい原理は以下を参照しくてください。 *  シェルスクリプトにおける複数行コメントアウト

以上

書かずにはいられない(フローチャート)

書かずにはいられない(フローチャート

神々は細部に宿る

技術者としても文学者としても敬愛する結城浩先生がnoteでこんなことを言ってた。

ルーチンワークを創造して、一冊の本を書き上げる(本を書く心がけ)

というわけで、私もなるべくルーチン化しようとしてフロー図を書いてみた。

フローチャート@Cacco

まあただそれだけ。

補足:画像ファイルの取り扱い方

以前の日記(markedを用いてEvernote上でMarkdown記法の即時プレビュを実現する)で画像ファイルの取扱に関して以下の用に書いてました。

 たいていはSkitchを用いてスクリーンショットを取ることが多いです。その場合は、ノートにコピペするだけでよろし(わざわざファイルをアップロードしImageを書かなくても良いです。)。

が、これ取りやめます。それよりも、SkitchやCacooで書いた画像を公開してそこにリンクを貼った方が管理しやすい気がしてきました。こんな感じです。

![フローチャート@Cacco](https://cacoo.com/diagrams/VwAAHkoMHv2Pgu4s-FEB77.png)

以上。

書かずにはいられない(Webサービスnoteを使う)

書かずにはいられない(Webサービスnoteを使う)

書くことによってストレス発散

noteとはなにか

先週くらいからnoteっていうのを遊んでいます。

noteの使い方

簡単に言うと自作のノート(文章やイラスト、音楽や写真)を公開できるプラットホーム。公開したノートを販売することができるっぽい。売買に関する決済サービスも組み込まれている。

そもそも最近のWebの傾向として、 名無しユーザが無料だが真偽不明の情報を共有する という時代から、 名前ありユーザが有料で精度の高い情報を共有する という時代に変わっていったということでしょう。

観点 これまで これから
発信元 匿名 実名かつ有識者
情報精度 不確か(噂レベル/又聞きレベル) 正確(実体験に基づく/知識に基づく)
情報量 垂れ流し 厳選された
情報の値段 無料 有料
例:レストランサイト 食べログ TERIYAKI
例:情報共有サイト ブログ cakes    

何がすごいか

自作のノートを 簡単に売る ことができる。

どのように活用するか

テキストノート

技術的内容ははてなブログに投稿するとして、散文や物語を投稿すると良いかも。

メモ的なものは無料で

まとまったら文章は一部有料で

製本したものは有料で

イメージノート

今後写真を趣味します。カメラ買うぞ〜(予定)

サウンドノード

オリジナルの音楽なきゃだめかな?バンド演奏のスタジオ録音とかあげれればいいのだけど。

以上

BootstrapとDropboxを用いたモダンなホームページ作成

Bootstrap on Dropbox

BootstrapとDropboxを用いたモダンなホームページ作成

今更ながらBootstrapと戯れる。

作成手順

ダウンロード

Bootstrap

上記サイトよりBootstrapをダウンロードします。中身はcssやjsファイルですね。

テンプレートの適用

exampleというしてテンプレートが公開されていますので、お好きな物のソースを取得します。適当にindex.htmlとでもしておけばよいでしょう。今回はこれを適用します。

[justified-nav/] (http://getbootstrap.com/examples/justified-nav/)

ホームページの作成

テンプレートよりcssやjsのリンクパスを修正したのち、適当にホームページを作ってみる。各種フォルダ構成はこんな感じがよいかな。

7010onCajon/css # 各ページのスタイルシート
7010onCajon/dist # Bootstrapの資材
7010onCajon/dist/css # Bootstrapのスタイルシート
7010onCajon/dist/fonts # BootstrapのWebフォント
7010onCajon/dist/js # BootstrapのJavaScript
7010onCajon/doc # 公開用ファイルなど
7010onCajon/html # HTMLページ
7010onCajon/html/index.html # HTMLページ(入り口)

Dropboxで公開

DropboxにはPublicフォルダという物があり、そこに配置していおくと外部に公開することが可能です。作成したホームページのindex.htmlの右クリックで公開リンクをコピーします。これをTwitterなどに放流すればよろしいかと。

いまさらながら自分のホームページを作ってみる

制作物の公開用のホームページを作ってみた。ファイル共有にはもってこいのデザインです。

7010onCajonの工作室

おしゃれでモダン

f:id:naotooncajon:20140619182256j:plain

レスポンシブなデザインも簡単です

f:id:naotooncajon:20140619182300j:plain

結論

今更ながら Bootstrapスゲー。 Railsと組み合わせてシステム作りてー。

以上

markedを用いてEvernote上でMarkdown記法の即時プレビュを実現する

marked on Evernote

markedを用いてEvernote上でMarkdown記法を実現する

Excel方眼紙でドキュメント書くんじゃねーよ。読みづれーし編集しづれーんだよ。

背景

いつまでたってもEvernote公式で採用してくれないから、なんとかしてみようと常々思ってました。今まではMarkdownを用いた文章を書くときはこんな感じでした。

記入@Mou -> プレビュ@Mou -> プレビュ保存@Evernote -> 公開@はてなブログ

これのイケてないところは以下。

  • Mouはファイルを管理しなければならない
  • マルチ端末での同期ができない(まあDropBoxにおけよという話もあるが)
  • 画像ファイルの用意およびリンクがめんどくさい 

というわけで以下のように文章作成フローを変更する。

記入@Evernote -> プレビュ@ Evernote -> 保存@Evernote -> 公開@はてなブログ

問題は プレビュ@ Evernote をどうするかでした。

やったこと

markedの購入

appストアで買えます。 marked Smart tools for smart writers.

Evernoteファイルをmarkedで即時プレビュする

以下を参考に行います。(というかまんまです) 作成者様に感謝します。

(Mac) EvernoteでMarkdownを書きながらMarkedを利用して自動プレビュー表示

mba:EVERWATCH 7010oncajon$ pwd
/Users/7010oncajon/Documents/Programing/ShellScript/EVERWATCH
mba:EVERWATCH 7010oncajon$ ls -l
total 8
-rw-r--r--@ 1 7010oncajon  staff  1178  6 16 23:44 everwatch.sh
mba:EVERWATCH 7010oncajon$ chmod a+x everwatch.sh
mba:EVERWATCH 7010oncajon$ ls -l
total 8
-rwxr-xr-x@ 1 7010oncajon  staff  1178  6 16 23:44 everwatch.sh
mba:EVERWATCH 7010oncajon$ ./everwatch.sh 

everwatchのアプリ化

このままでは芸がないのでAutomatorを用いてシェルをアプリ化する。

f:id:naotooncajon:20140619150740p:plain

最終的には

ファイル -> 変換 -> 保存(アプリケーション)

を行うと、everwath.appが作成されます。後は、Docに入れるなりしてEvernoteを起動時に合わせて起動しておけばいいです。

画像の挿入

たいていはSkitchを用いてスクリーンショットを取ることが多いです。その場合は、ノートにコピペするだけでよろし(わざわざファイルをアップロードし![Image](Image URI)を書かなくても良いです。)。後はeverwath.appがなんとかしてくれます。

その他設定

お好みで以下の設定をしてしませう。

Evernote

evernoteにプレーンテキストで貼付ける方法

marked

MarkedでGithub Flavored Markdownを使う

いざプレビュ

左側がEvernoteの入力画面。右側がmarkedによるプレビュ。 f:id:naotooncajon:20140619150735p:plain

はてなブログに投稿

設定より編集モードを Markdownモードに変更します。そいで Evernote貼り付けという機能で投稿します。ここまででかなりシームレスすに文章の作成とブログの公開ができます。

参考(Markdown記法一覧)

最後にMarkdown記法のチートシートおいておきます。 チートシート f:id:naotooncajon:20140619150745j:plain

Rで統計解析を始めよう(その1)

Rで統計解析を始めよう(その1)

ビッグデータとか言われて久しいですが、やっぱり大事だよね、統計解析。

以下はこの本(参考文献)のまんまです。

データサイエンティスト養成読本

Rをインストール

ここからpkgをダウンロード。インストールはなされるがままに。

R for Mac OS X

起動確認(GUI)

専用GUIみたいなんもついてきました。アプリケーションフォルダにある「R.app」をクリック。

f:id:naotooncajon:20140322190111p:image

起動確認(GUI)

当然「ターミナル」からの起動も出来るよ。Rと入力してエンター。

mba:~ 7010oncajon$ R

簡単な解析

データ

こんなデータを用意する。(body_sample.csv)

参考文献のサポートページ

body_sample.csv

id,gender,height,weight
1,M,157.67,64.82
2,M,178.76,72.38
3,M,161.95,64.52
4,M,162.26,63.35
5,M,167.95,68.76
6,M,165.59,66.4
7,M,163.66,64.22
8,M,171.78,67.76
9,M,161.11,60.76
10,M,160.97,60.64

...

パッケージ(ggplot2)の利用

グラフの描画にggplot2を利用する。よく分かってないけど、参考文献のまま。

install.packages("ggplot2")
library(ggplot2)

データの読み込み

body.dataというオブジェクトに、csvファイルのデータを読み込ませる。

body.data <- read.csv("body_sample.csv", header=T,stringsAsFactors=F)

header=Tは1行目をヘッダーと見なす。

stringsAsFactors=Fは文字列がFactorだとみなされないようにする。(ココらへん意味わかってない)

身長データのヒストグラム

何はともあれ可視化をしてみる。

ggplot(body.data, aes(x=height, fill=gender)) + geom_histogram() + theme_bw(16) + ylab("count")

f:id:naotooncajon:20140322190107p:image

身長と体重の散布図+回帰直線

さらにそれっぽいことをやる。

ggplot(body.data, aes(x=height, y=weight, col=gender)) + geom_point() + theme_bw(16) + geom_smooth(method = "lm")

f:id:naotooncajon:20140322190114p:image

身長と体重の相関関係

回帰直線より、身長と体重には相関関係をみることができる。(そりゃそうだろうけど。。。)

相関係数の算出

相関係数Rは、以下の用に計算する

> cor(body.data$height, body.data$weight)
[1] 0.8928748

相関係数とは

相関係数R相関関係
0.7 〜 1.0 強い相関あり
0.4 〜 0.7 やや相関あり
0.0 〜 0.2 ほとんど相関なし

以上。

D3.jsを用いたフレームワーク描画ツール(その2)

frameworks_on_D3_02

D3.jsを用いたフレームワーク描画ツール(その2)

意外とJS好きだわ。(女子○学生ではないよ)

前回のやつを実装してみた。ご感想があればお願いします。(`・ω・´)ゞ

できたもの

こんな感じになりました。Frameworks on D3

f:id:naotooncajon:20140103203639p:image

機能

  • シャープの数によって階層構造と、それのグラフ化
  • リアルタイム反映
  • 階層の深さや幅によるノードの自動調整

参考

次回予告

なんかもう満足しちゃったけど、やる気がでたら以下をやる。

  • SVGの画像ダウンロード
  • Canvasの移動拡/大縮小
  • 別のフレームワークの実装
  • ノードの色や大きさの変更
  • というか、ローンチにむけてまじめに取り組む?

以上です。