m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

Perl Beginners #10に参加しました

概要

場所

 中央区京橋プラザ区民館 1号室 (東京都中央区銀座1丁目25番3号)←結構わかりにくい

日付

 2013/09/27(金)

時間

 19:00-21:00

形式

 勉強会

費用

 無料

今回のテーマ

バグ

画面

f:id:m_shige1979:20130927185912j:plain

ビギナー向けの勉強会としての趣旨

メインは初学者~中級者向け、開発する上でロジックの問題やエラーなどに直面することがあります。
その際にどのような対応をするかということをここで解決しましょう…。的なもの

質問はどんなものでもOKらしい、くだらない質問でも対応するとのこと
→参加者がどのレベルでのランクが不明だったのですが皆さん結構できそうな感じがしました。

基調講演

papix:よい質問, 悪い質問 〜よい質問で, 迅速にバグから逃げよう〜 [PerlLV:1]

Perlで不明なことがあった場合に

悩む→調べる→時間を考える→
        →諦める→脂肪
        →他の人などに助言を求める→せいかい

とのこと

わるいしつもん

 「なにもしてないのにこわれた」←ろんがい

よいしつもん

 「100のデータを与えたら20が返ると思ったのですが500が帰ってきた」←要点を明確に伝えることが大切

SNSとかで質問?

なんかこれがよいとか
http://yancha.hachiojipm.org/

あとはGistとかのソースを管理できるツールやブログに突っ込むとか

ソースコードをなんか公開して診てもらうのが一番ですね。。。

ビギナーズセッション

Perl初心者にかかわらず疑問を投げかけてもらって解決するのが目的

質問1:モジュールを入れているはずなのにエラーになる

→ sudoをしている場合としていない場合とかではいる場所が異なったり、なんか環境でいろいろ変な問題があるかもしれない

質問2:意識メーター(http://ishiki-meter.com/)でなんかごにょごにょしている処理でキーワードをいろいろしている

→ リアルタイムで制御する必要がなければバックグラウンドでなんかやったほうがいいよね

LT

オブジェクト指向

 Class::Accessor::FastやModule::SetUpとかでオブジェクト指向的な記載ができるとのこと
 入門編などではblessを使用してオブジェクトを生成して自身のコピー+プロパティのリファレンスをどうこうするので
 なんか変な感じがするので見てみよう

 とりあえずオブジェクト指向的な記載をしたい場合はCPANのもんを使用するのが良いとのこと

 3年位前にMovableTypeのプラグインを見た限りではそんなことしていなかった頑張ってblessしまくっていたな~
 当時はよくわからんCMSとしてMovableTypeを見ていた時に中身を見てみたら5年前に始めてみたPerlとは原型が異なっていたのでびっくりしたわwww

Perl ビギナーズ #10

 北海道からのリモート?LT
 Smart::Commenのご紹介
 
 コメントに記載するものをログとして出力できるよう
 出力できるレベルを調整もできる

あずまさとし:よくあるエラーメッセージと対処法

  Error
   ・☆☆☆    セミコロンが抜けた場合のエラー
   ・☆☆☆☆☆  モジュールを定義したけど存在しない場合などに発生する
   ・☆☆☆    変数にmy宣言などを指定していない
   ・☆☆     サブルーチンの定義漏れ
   ・☆☆     変数を0で割ろうとしたら発生する
   ・☆☆☆☆   代入文で右辺値を指定していない
   ・☆☆☆    変数か定数かなど不明
   ・☆☆     ヒアドキュメントの終わりがない
  
  Warning
   ・☆☆     ハッシュ型の要素数が偶数なのに奇数になっている
   ・☆☆☆    同じmy変数を宣言している→多重宣言
   ・☆☆☆☆☆  日本語データをエンコードせずに出力しようすると発生する
  
  おまけ
   Perl文字コードUTF-8で書こう
   use utf8もしくはuse Encode;

Hirobanex:Excel出力のCSV取り込み・・・

データの中身を見たい→Data:Dumper、Data:Dumper::AutoEncode
文字列のエンコード→Encode
テキストデータをCSVとして処理→Text::CSV

最初になんかのプログラムを作成するときに陥りそうな問題を明確に教えて頂きました。
Data:Dumperの文字コードはよく見ます。

電池が電池がああああああああああああ

切れましたのでなし

つっちーさん:Datta::Dumperでprintデバッグ

どういう時にバグが発生するか?
そしてその場合にどう見つけていくか?

→Data:Dumperを使用します

・ログを出力する場合には個別のキーワードを配置して見つけやすくする
・callerを指定すれば呼び出しもとを指定できるなど

Magnoliaさん:Blender-Declare

ビルドツールのご紹介
Perlで全部作りました。
バージョンを指定してインストール。最新バージョンのチェックなどを行ってくれます。
現時点?ではMAC専用とのこと

感想をお待ちのようです。

場所
https://github.com/magnolia-k/Blender-Declare

感想

Perl Beginnersがどんなものか不明なので参加しました。
ビギナーズセッションというだけあって皆さんとてもレベルを低めに説明してくれているのかな?
と思うくらいわかりやすい。

最後に

ブログに簡単にまとめているだけなのですが、結構疲れるます。
今回はかなり「うんうん」といえたり。「なるほど」といえたり。「そういうのがあるので」といえることが
多く、収穫がありました。時間が開けばまた参加したい。