F#談話室に憧れて知り合いでIT勉強会開いた話
F#談話室に何回か出席させてもらっているのですが、その雰囲気が好きなので、自分でもそのような会を開いてみました。
F#談話室とは
月1回ペースで7shiさんが開催されているF#に関する勉強会です。 目的は限定しないで、F#について語ったり、語らなかったり、もくもくと作業したり、LTしたりしている会です。 その自由な雰囲気とか、F#について何でも話しやすい場が好きで何回か参加しました。
IT勉強会の開催動機・目的
知り合いにエンジニアが何人かいるけれど、一緒にコード書いたり、技術について語ったりして見たいなぁ、と思い開催してみました。
お互いの興味のある技術について知ったり、業務や現場について情報交換したり、コードを書きながらわいわいするのが目的です。
開催概要
場所
池袋のレンタル会議室「マイスペース&ビジネスブース 池袋西部横店」
My Space マイスペース&ビジネスブース 池袋西武横店 | 店舗検索|ルノアール
8名参加、4時間、オプションで無線LAN・プロジェクターを借りて一人当たり1800円くらいです。
飲食持ち込み禁止ですが、ドリンクバーがあります。
内容
- 自己紹介・今回自分がやる作業の紹介
- わいわいしながら作業
- LT
- 作業の成果発表
特に作業やLTのテーマは定めませんでした。
実際やってみて
各参加者がこの会でやってた作業
- Twilioで電話対応システムの開発
- 形態素解析エンジンのmecabを触ってみる
- C#でRedmineのチケット投稿ツールを開発
- JavaScriptの書籍を参考に簡単なゲームを作ってみる
- iOSアプリ開発の学習
- サポートページのWebデザイン
- F#でDelta Engineを触ってみる
見事にバラバラw
LTの内容
- FP(ファイナンシャル・プランナー)試験の薦め
- TypeScriptとJSライブラリの紹介
- テストコードを書くことのメリットについて
収穫
やはりいろんな他業種のエンジニアの参加者と情報交換できたのは楽しかった。
特に、Webデザインをやっている参加者や転職経験者の参加者からは、興味深い話を聞くことができました。
課題
テーマを定めなかったため、各自の作業テーマがバラバラになり、作業について質問や議論などが発生しづらい状況でした。 何かゆるくてもテーマなどあった方がいいかもしれません。
まとめ
この規模の勉強会は気軽に開けて、楽しかったのでおすすめです。 他の参加者からも「また参加したい」「次回はLTやります」など言ってもらうことができ、会としても成功したのかなと思います。
球根の水栽培について
植物の根や茎、葉がガンガン伸びたり、花が咲いたりを見るのは心が和むものです。
もう秋植えの球根が出回ってるのでおさらいがてらまとめる。
1.水栽培が可能な球根
以下のような球根が可能
上記の球根は肥料を与えなくても花が咲く。球根内にすでに十分な養分を蓄えているため。
また、球根の時点で内部に花芽ができる種類であることも条件らしい。
球根は9月末から10月にかけてホームセンターや園芸店に出回る。
2.器
器は水栽培専用の器が販売されている。
専用のものでなくても、球根が固定できればなんでもよい。
クロッカスなどは丈が小さいため、コップに高分子ポリマーを引き詰めただけでも大丈夫。
3.育て方
3.1.寒さに当てる
秋植えの球根は、冬の寒さに当たることによって花芽をつけるらしい。
しばらく外に置いておく。
3.2.根を伸ばす
10月頃から栽培を行う。
容器に、球根の底部に水が触る位に入れる。
※ 水位が高く水が触れる部分が多いとカビが生える!!生えた!!
球根を容器に置き、暗いところに置いておく。
(被いなどをかける)
球根に土の中にいると錯覚させるためである。暗い方が根の伸びが良い。気づくと根がガンガン伸びる。楽しい。
水が濁ったら取り替えること。
根が伸びてきたら少しずつ水位を下げ、最終的に3分の2程度にする。
3.3.発芽後
芽が出始めたら、室内の明るいところに移す。
※ 日当たりが悪いとひょろひょろになる!!なった!!
1月中ごろまでは、あまり暖房の効かない部屋で管理する。
水が濁ってきたら取り替える。
春ごろ、咲く!
CPUとメモリ消費量の3次元グラフをぐりぐり動かす
matplotlibの3次元グラフ描いてみたい!そしてグラフをアニメする機能があるらしいのでぐりぐり動かしたい!
1. WindowsでCPUとメモリの消費量を取得する。
ぐりぐりリアルタイムで動かすデータと言えばCPUとメモリ消費量が気軽でいいかな。Windowsではちょうどいいコマンドが用意されていないので探したらPythonのモジュールでちょうどいいのがあった。
psutil -
A cross-platform process and system utilities module for Python - Google Project Hosting
プロセスとシステムの使用量(CPU, disk, memory, network)を取得できる。
しかもLinux, Windows, OSX,FreeBSDに対応!32bitでも64bitでも!頼もしい!
(1) システムのCPU使用量(%)
import psutil
psutil.cpu_percent(interval=0.1, percpu=False)
- intervalはCPU割り当て時間の計測期間
- CPU割り当て時間 / 経過時間 * 100
- interval=0.0 の場合は前回にこのメソッドが呼び出され時から計測
- percpuは複数CPUある場合の挙動
- Falseの場合は結果は1個にまとめられる。(上限は100%)
- Trueの場合は結果はCPUの個数分、リストで出力される。
(2) システムの物理メモリ使用量(%)
import psutil
psutil.used_phymem()
(3) プロセスのCPU使用量・メモリ使用量
import psutil # プロセスIDからProcessオブジェクトを生成 p = psutil.Process(pid) # CPU使用量(%) # interval引数の使い方は(1)と同様 # CPUが複数個の場合はCPU個数*100が上限となる p.get_cpu_percent(interval=0.0) # メモリ使用量(%) p.get_memory_percent()
2.3次元グラフを動かす
(1) 3次元のグラフ描画
from mpl_toolkits.mplot3d import Axes3D import numpy as np import matplotlib.pyplot as plt # Axes3DSubplotを取得 fig = plt.figure() ax = fig.gca(projection='3d') # 直線をプロット x = [i for i in range(10)] y = [i for i in range(10)] z = [i for i in range(10)] line, = ax.plot(x, y, zs=np.array(z), zdir='z') plt.show()
(2) グラフを動かす
matplotlib.animationのFuncAnimation関数を使用する。
import matplotlib.animation as animation line_ani = animation.FuncAnimation(fig, update_line, frames=360, fargs=(line, ax), interval=100, blit=False) plt.show()
引数
fig | Figureオブジェクト |
func | グラフを更新する関数。この関数の1個目の引数は現在のフレーム数が渡される。 |
frames | 描画するフレーム数 |
fargs | funcに渡す引数 |
interval | グラフを更新する間隔 |
blit | 描画するグラフを最適化するかどうか(?) |
グラフを更新する関数の例
def update_line(num, line, ax): # ラインの更新 # x軸、y軸、z軸それぞれに値リストをセットする。(伸びてく直線) line.set_xdata([i for i in range(num)]) line.set_ydata([i for i in range(num)]) line.set_3d_properties([i for i in range(num)]) # グラフ全体を回転 ax.view_init(30, 1 * num)
3.作ったスクリプト
psutil と matplotlib を使用してシステム・プロセスの3次元グラフ(x軸:メモリ使用量、y軸:時間、z軸:CPU使用量)をリアルタイムで描画するスクリプト。
This is a script which draws the amount of CPU used and memory usage of a process to a 3D graph. — Gist
(GitHubのGistを使ってみた。初回保存時、ログオンし忘れててAnonymousになってしまった……。)