わたしのコンソールアプリ開発環境
momo_*(@tututen)
密着!
私?•北見在住の某社に務める会社員•文字列処理をC言語でやらせるとか•パネポンやろうよ、パネポン•お仕事でC言語、趣味ではC#とPython• Ohotechのスタッフ
私?•北見在住の某社に務める会社員•文字列処理をC言語でやらせるとか•パネポンやろうよ、パネポン•お仕事でC言語、趣味ではC#とPython• Ohotechのスタッフ
私?•北見在住の某社に務める会社員•文字列処理をC言語でやらせるとか•パネポンやろうよ、パネポン•お仕事でC言語、趣味ではC#とPython• Ohotechのスタッフ
Ohotechとは
•道東圏内で勉強会を行ってる集団•前回、@jsakamotoさんに来て頂きました
•次回、2月か3月ごろに@koiwaさんを呼んでお話してもらおうと画策中
今回のお話
•導入•お仕事の基本的な環境•趣味の基本的な環境•実演
趣旨
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のいいとこ取り•(最初に言った趣旨とは・・・)
SSH?• Secure Shell(セキュアシェル、SSH)は、暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。
つまり?•安全に遠隔操作できるよ!
• でも、「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
デプロイ手順
開発PC
テスト環境’s
・・・
ドヤァ!
増えるテスト環境
•テスト環境の数だけコマンドを叩く• VMのコピーなのでホスト名が連番管理•修正作業<反映作業•抜けが出るとテスター同士で混乱が
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経験値計算機 部室解錠施錠通知ページ
おわりに
•本当は作成話をやりたかった•次回構築話とか聞きたいですか?•使った画像の一部http://www47.tok2.com/home/anriyugo/clip_art/
pc_peripheral_accessories/ats00000.htm
対戦しましょ?ご静聴ありがとうございました
Presented By momo_*(@tututen)