密着!わたしのコンソールアプリ開発環境

69
わたしの コンソールアプリ開発環境 momo_*(@tututen) 密着!

Upload: fumihito-yokoyama

Post on 14-Jul-2015

1.539 views

Category:

Documents


1 download

TRANSCRIPT

わたしのコンソールアプリ開発環境

momo_*(@tututen)

密着!

私?•北見在住の某社に務める会社員•文字列処理をC言語でやらせるとか•パネポンやろうよ、パネポン•お仕事でC言語、趣味ではC#とPython• Ohotechのスタッフ

私?•北見在住の某社に務める会社員•文字列処理をC言語でやらせるとか•パネポンやろうよ、パネポン•お仕事でC言語、趣味ではC#とPython• Ohotechのスタッフ

投稿動画のタグ

これを見た人の反応例

私?•北見在住の某社に務める会社員•文字列処理をC言語でやらせるとか•パネポンやろうよ、パネポン•お仕事でC言語、趣味ではC#とPython• Ohotechのスタッフ

Ohotechとは

•道東圏内で勉強会を行ってる集団•前回、@jsakamotoさんに来て頂きました

•次回、2月か3月ごろに@koiwaさんを呼んでお話してもらおうと画策中

一度来てくださいm(_ _)m

今回のお話

•導入•お仕事の基本的な環境•趣味の基本的な環境•実演

趣旨

趣旨

No マウス!No タッチパネル!

趣旨

No マウス!No タッチパネル!

できるだけ…

導入

導入•主にLinuxが今日の主役!(CentOS)•Windows、Macは「クライアント」•最近Ubuntuさんが頑張りすぎてて非力PCじゃ辛い(※個人の意見です)

• 

導入•主にLinuxが今日の主役!(CentOS)•Windows、Macは「クライアント」•最近Ubuntuさんが頑張りすぎてて非力PCじゃ辛い(※個人の意見です)

•とか言っちゃうと色んな「Ubuntu」さんを勧められちゃいます

主にこんなの

わたしの思想(思い込み)

•LinuxってCUIにこそ価値があるよね!

(私的)CUIの魅力

• CPUもメモリも非力で結構出来る•マウスを持たなくても良い•案外できることが多い(タスク確認、定時実行、TL確認etc)

(私的)CUIの欠点

•調べ物が大変(テキストブラウジング未習得…)

•膨大な出力処理を行うと…

それを補うクライアント

•何も「一つ」の武器に拘るはない• Linuxには「SSH」で入れば良い• GUIとCUIのいいとこ取り•(最初に言った趣旨とは・・・)

つまり?•安全に遠隔操作できるよ!

• でも、「iesys.exe」じゃないよ!

遠隔操作の利点

• PCの環境構築が1度だけ•クライアントの環境を汚さない•ネットワークの設定次第じゃ場所も問わない

お仕事のお話

•主にC言語を用いて、監視アプリ作成•監視:Ping応答、Snmp(Get・Trap)•主にオフラインの環境下で動作するネットワークアプリケーションの開発

開発手法

開発PCクライアント テスト環境

テスト環境

テスト環境

クライアント

• OS Windows 7 Pro 32bit• メモリ 4GB• 使用ソフトmintty(ターミナルソフト

クライアント

開発PC• OS Cent OS 5• メモリ 2 GB• 使用ソフトzshvimfabricscreen Mercurial etc

開発PC

テスト環境• OS Cent OS 5• メモリ 1 GB• 使用ソフトbashvimake

gcc 4.1.2

テスト環境

Sapporo.cppさんに質問

gccの最新バージョンって今おいくつ?

Sapporo.cppさんに質問

gccの最新バージョンって今おいくつ?

http://gcc.gnu.org/

バージョン古いと?

•修正済みの地雷を踏む可能性•便利な機能・関数を使うことができない•動作速度が遅い

お仕事のお話

•主にC言語を用いて、監視アプリ作成•監視:Ping応答、Snmp(Get・Trap)•主にオフラインでのネットワーク構築

所々の理由により新しいのは使えません!

開発手法

開発PCクライアント テスト環境

テスト環境

テスト環境

SSH接続

開発手法

開発PCクライアント テスト環境

テスト環境

テスト環境

SSH+SCP接続

デプロイ手順

開発PC テスト環境

ソースファイル転送転送先でのコンパイル

デプロイ手順

開発PC テスト環境

ソースファイル転送$ make clean$ scp ./* TestEnv1:~/src/[AppName]/

デプロイ手順

開発PC テスト環境

転送先でコンパイルdev:$ ssh TestEnv1TE1:$ cd ~/src/[AppName]TE1:$ make cleanTE1:$ make

1個だからまだいい!

デプロイ手順

開発PC

テスト環境’s

・・・

ドヤァ!

増えるテスト環境

•テスト環境の数だけコマンドを叩く• VMのコピーなのでホスト名が連番管理•修正作業<反映作業•抜けが出るとテスター同士で混乱が

それを解消するのが!

Fabric

Fabric

•リモートPCにて任意のコマンドを実行したり、簡単にファイルを転送できたりする

•予め実行するリモートPC’sを登録しておくとそいつら全てに同じ実行を行なってくれる

つまり!

デプロイ手順

開発PC

テスト環境’s

fabric!

ギャー

複数台のデプロイも簡単・安心

アンコールワットね!

Fabric

• pythonで動作、pipで簡単インストール• RubyだとCapistranoがあるらしい

実演1•簡単なC言語をCentOS6とUbuntu12.04Serverに~/demo以下にsrc/をデプロイする

•デプロイ後動作を確認する• Fabric使用しない場合と使用する場合で比較する

趣味の開発環境

•主に作業拠点はさくらVPS1Gプラン• HTML、JavaScriptはドット・インストールをかじった程度

• OhotechのBot• IRCのGateway(Tiarra)の稼働• IRCBOTの作成

開発構成

さくらVPSクライアント

クライアント

• OS 何でも• メモリ SSH+OSが制御できる程度

• 使用ソフトmintty(ターミナルソフト

クライアント

さくらVPS• OS CentOS 6(でふぉ)• メモリ 1G• 運用費 980円/月• 使用ソフトscreenvim etc

さくらVPS

さくらVPS•月980円~から借りれるVPS•開発環境をネットにおけるのが素敵•そのかわりセキュリティががっちりと•ルートがあるのでWebサーバからVPNの大元まで

•その分侵入されるのも自己責任

趣味の開発環境• screen• vim• python• cron• apache

趣味の開発環境• screen → 多重端末ソフトウェア• vim → 宗k(ry エディタ• python → 言語、2系• cron → 定時実行• apache → Webサーバ

screen

• 1端末の画面で複数のターミナルがあるような振る舞いができる

•画面分割表示ができる•作業途中を保存できる

vim

•知る人ぞ知るエディタ(悪名も?)•小指が痛くなる某エディタじゃない方•設定ファイルの長さで戦闘力が決まる•実はあんまり長くないにわか

python

•どのLinuxにも最近標準搭載のスクリプト言語

•先ほどのfabricもpython製•面倒なことから単純なことまでこの子に頼ることが多い

cron•毎月毎週毎日毎時毎分毎秒に実行したい処理を登録しておくことができる

• OhotechのTwitterBotはこいつを利用して定期的に発言している

•定期的に実行するし、実行の成否がログを見ればわかる

apache

•よくhttp://~でアクセスしたら見えるようにするための物

•主に、自分の便利ツールをネットに公開するために使用

•主な制作物: RO経験値計算機 部室解錠施錠通知ページ

実演2

おわりに

•本当は作成話をやりたかった•次回構築話とか聞きたいですか?•使った画像の一部http://www47.tok2.com/home/anriyugo/clip_art/

pc_peripheral_accessories/ats00000.htm

対戦しましょ?

対戦しましょ?ご静聴ありがとうございました

Presented By momo_*(@tututen)