ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

上流工程における品質目標の考え方と、プロジェクトが失敗する4つの要因を聞いてきた

2016-10-24 22:09:39 | Twitter
10月24日
この1冊でよくわかる「ソフトウェアテスト、設計書作成、プロジェクト管理」教科書セミナー

を聞いてきた!!その内容をメモメモ




■「テスト設計」の観点から見た品質向上とプロセス改善の戦略
・体系的に学んだ人のあるひと5人くらい
 →属人的
・はじめに
 バルデスについて
  バリューとテストの造語
 自己紹介

・こんな悩みはないですか?
  テストのヌケ・モレ
 →限られた時間の中で→根性主義ではだめ
 →基本の型がだいじ:それを我流にしてしまうとだめ
 
・5分・10分で品質上がる
 →どういう発想で

・基本の型:クオリティゲートについて
 上流工程から下流工程まで考える
  →成功:QCDすべて→品質管理
   移行判定基準・品質基準:かんがえるのむずかしい
   時間がない

・V字モデル
  クオリティゲート:何が出来ていればOKかという考え方
  静的テスト:レビューも
  動的テスト:動くものがある普通のテスト
  考え方の基本が一緒

・上流工程でテストの発想を持っているかどうかが大事
  品質を作りこむ基本の型
  仕様ヌケの発見→手戻りの幅が広いほど、コストがかかる
  テストの発想ばらばら→そろえていく

・V字モデルとアジャイル
 ・アンケート:アジャイルは?すくない
 ・ウォーターフォールとアジャイル:本質は同じ
   設計する→実装する→テストする
  タイムスパンの違い
  成功のポイント:要求定義の段階からテストを考えている

・上流工程にかけるコスト
  不具合が発見されたときにかかる実装コスト
    1:10:40:60:100
  →基本設計で見つけられる修正:へらすことができる
    →5分の手間を省いて、3日かかってしまう
  基本の型:ロスが少ない

・品質低下
  ほおっておくと、本来あるべきものから外れる
  なにができればOKなのか
    →品質は劣化していく:下げ止まりをする
  開発;動くものを作ってから→品質保証;はずれている

・品質管理のポイント
  品質低下を防ぐ=品質目標からの乖離を防ぐ
  ・仕様書を全て実装すればOK?
    →お目にかかったことない。30%
   →未来永劫でてこない:100%の仕様書:コスト

・仕様書が不完全でも、テストは完全でないといけない
  →書かれていないことを読み解く
   リバースエンジニアリングが基本:これができないといけないはずだ
     →トレーニングで身につく
 品質:自分で作れる

・上流工程における品質目標の考え方
 要求分析
  仕様書&取説がないけど、テストできる能力
 フィリップクロスビー
  品質は要求を満たすことである→ペア概念
  要求:望んでいること
 ワインバーグ
  誰かの要求を満たすこと
 TQM:日本人が得意でない部分
  →この発想重要
 プロとして、どんな走り込みをしていますか?

・狩野モデル
  当たり前品質、魅力的品質
   基本要求:品質と要求がペア概念 むずかしい
   変動要求:評価が上がったり、下がったりすること
   潜在要求:魅力的品質

・異常形の部分:あっちゃいけない
 リスクベイスドテスト

・皆さんにとって優先順位が高いところ
  →メンバの癖
 :取り消しキー
  あけたら止まる
  ボディの異常加熱
 →機能仕様書のレビューをする前に行う
  Never Must Want に分解

・動かしてみないと分からない部分はある

・ISO9126 品質特性
 ソフトウェアがいい
  3つ 3つに分解
   外部特性
     機能性
     信頼性
     使用性
   内部品質:エンジニア
     メンテナンス
     別環境
     さくさく動く

 機能性のNever,Must,Want
 信頼性のNever,Must,Want
 使用性のNever,Must,Want
     :
     :
   とわけて考える
→日本のエンジニアは機能性のNever,Must,Wantしか考えない
 →テストの観点つくっていく

・テスト観点:テストを行う上での「切り口」のようなもの

・品質管理は教育に始まり教育に終わる




■設計書作成の標準化のススメ

・オブジェクトブラウザー for Oracle
 他のDBにも対応

・設計書を標準化する2つのポイント
 ・理想の設計書はない

・なぜ設計書はばらばらに
  目的:ドキュメント体系(横軸)
  読み手の特性:詳細度(縦軸)
  他のドキュメントの存在(除いたもの)
 →案件ごとに変わる:パターン化することは出来る
 ※ポイント1:案件のパターンを整理し、パターンごとに標準化する

・ツール
  標準化
   「オブジェクトブラウザ デザイナー」:フレームワーク、テンプレート
 ※ポイント2:設計には設計専用ツールを使う

・機能紹介:デモを使って「オブジェクトブラウザ デザイナー」などの紹介




■この一冊でよくわかるプロジェクト管理の教科書

・「オブジェクトブラウザ シリーズ」とは
 設計、開発、プロジェクト管理などソフトウェア開発全般の合理化、
 生産成向上を実現するツール群

・プロジェクト管理 PMBOK
 プロセスをマネジメントする考えを広めた
   9つの知識エリア:QCDがゴール QCDだけではむずかしい
  →いま10個

 PMBOKの体系
  10の知識エリア

・ピラミッドという体系にした→思ったプロジェクト管理できない
  統合システムにしないと、管理力は上がらない→OBPM

 プロジェクト管理のERP
 脱Excel
   Excel:見える化できない、
         俺流の蔓延→標準のテンプレート
 組織で標準を持たない限り、プロジェクト管理力はUPしない

・プロジェクトが失敗する4つの要因
  (1)そもそも無理な計画
     スケジュール、コスト、スコープ、リスク
  (2)ユーザー側の甘い体質
  (3)体制が不十分
  (4)コミュニケーション不足

・(1)そもそも無理な計画
 受注しちゃいけない;未然に防ぐ
  →見積もり提出時にリスクチェックミーティングを行う
   チェックリストを用意:形骸化しない工夫
   営業が甘くなる中で、辞退すること;リスクに対して真剣に考える

 プロジェクトスタート時にレビュー会
  インセプションデッキで目的供給
  情報共有
   →ガントチャート上にマイルストン

 インセプションデッキ
  アジャイル開発のプロジェクトスタート
  みんなで作る→プロジェクト憲章と違う

・(2)ユーザー側の甘い体質
 最初が肝心。キックオフセットを用意・活用する
 自分たちが分かっているがお客さんが分かっていない→お客さんに理解
 日程の確保
 ステアリングコミッティー
 キックオフセットで何を決める
  体制:意思決定する人、ステアリングコミッティー
  目的と概要
  スケジュール
  要件定義
  コミュニケーションの方法

・(3)体制が不十分
 気合でGoは失敗する。リリース計画をきちんと立てる
   リソースヒストグラム
 スキル管理をこつこつ行う
   スキル照会、

・(4)コミュニケーション不足
 ・最初にツールとルールを決める(めーるはやめる)

・組織の成熟度を高める
 CMMI
 実績・計画・標準・分析
  計画までやらないと管理しているとはいえない

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

皇室はロボットになるかもしれない・・・

2016-10-24 12:31:48 | Weblog
眞子さまファンは憤死しそうな気配・・・

眞子さま、ガッチリ体型のイケメンと横浜デート後に東横線でラブラブなご様子
http://zasshi.news.yahoo.co.jp/article?a=20161017-00008327-jprime-soci

あ~、そういうファンがでてきてしまうと、
皇室は、ミクみたいなスキャンダルのありえないロボットで!
となるんでしょうなあ~

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

マスコミがやらない動画・沖縄の真実

2016-10-24 00:02:46 | Weblog

【閲覧注意】動画・沖縄の真実。警察のみが断罪されるべきなのか?【怒りを感じたらシェア】
https://samurai20.jp/2016/10/okinawa-12/


極左暴力集団リーダーによる警察官への暴行

とか、報道しないよね、マスコミは・・・

それと、もっと先の動画

わんぬうむいニュース 自称市民団体が市民を襲う 2014

の基地反対派の人が沖縄の人を襲って、沖縄の人は、どうすれば・・・
そこにあるように
「いわゆる基地反対派」とは、その多くは沖縄の人間ではない
んでしょうな。。。

【関連するかもしれない?記事】

レイプ対策、日本は百年古い=米兵性犯罪、豪被害女性語る
http://www.jiji.com/jc/article?k=2016102200283&g=soc


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

人工知能(AI)技術の進展に伴う産業・社会動向に行ってきた

2016-10-23 20:21:36 | AI・BigData
10月21日第94回InfoTalk

人工知能(AI)技術の進展に伴う産業・社会動向
-AIとは/AI価値創出/AI企業動向/ボット元年/インテリジェント社会到来-
に行ってきたので、内容メモメモ





■あんない
 情報アーキテクチャ専攻 助教 千代(ちしろ)先生
 つぶやくときは#infotalk のタグ付けてね!
 講師紹介

■講演 講師 MRIのえらいひと
・最近非常に関心高い
   バズワード
   よくわからないけど、こわい

・自己紹介
 第五世代コンピューター→下り坂→急に注目

・AIとは
 コンピューターに人間のような知的能力を持たせるソフトウェア
  Watson

・身近なAI
 知覚   見るAI
 言語処理 言葉を理解する
   りんな:すばらしいか、適当か、かなり会話する
 推論   Amazonのおすすめ
 行動計画 ルンバ:虫の人工知能

・人工知能
  1次ブーム:コンピューターが出来たとき
   →ダートマス会議:アルゴリズムって人工知能→簡単な問題しか解けない
  2次ブーム:第5世代コンピューター
   →知識を埋め込む:専門家の知識(エキスパートシステム)
    ルール:1000くらいつくるとわけわからん。
     →知識獲得問題、フレーム問題
  冬の時代
   90年代後半
     インターネット
     ERP
   2000年代
     ビッグデータ
     最適化、予測:人間が作りこむ
   コンピューター速くなる
   使えるデータおおくなる
     カスパロス、DeepBlueにやぶれる
  3次ブーム
   DeepLearning
     データから知識を獲得する:推論
      →汎用人工知能シンギュラリティ

・DeepLearning
  特徴量を自動的にみつける
  そろそろ人間を超えつつある
  DeepMind:
  投資が始まっている

 50年来のブレークスルー
 先に広がる世界がすごい

・第三次AIブームの3要素
  ビッグデータ
  機械学習アルゴリズムの進化(DeepLearning)
  計算パワー

 AlphaGo
  10年を一気に縮めた
  ビッグデータを学習しても足りなかった
  打ち手AI→
    仮想学習:深層強化学習
    対局的な形勢判断
  シミュレーションできるがポイント

・人工知能の2つの系譜
  弱いAI:囲碁だけ解けるAIなど→機械学習アルゴリズム
  強いAI:何でも解ける→全脳アーキテクチャ

・AIサービスの価値創造パターン
  個人適用
  人並み認知
  全体俯瞰
  高速性
  対話力
 →生産性向上か新しいサービス

・個人適用
 行動パターンの学習

・人並み認知
 目視、画像認識、文章理解:メールの不正

・全体俯瞰
 大事なところ→キーメッセージ

・高速性
 例:広告枠のオークション

・対話力
 Pepper→対話ボット:チャットに置き換えられるのが増えている
 AIのほうが安心して話しかけられる

・うまくいっているのは、実はあまりない・・・
 失敗しがち
  人手の作業を作業化するだけのサービス:コストが見合わない
   例外:同一作業で数十人 コールセンター
     データエントリー
     不正の発見
  便利なもの:売上に繋がらない
   →GoogleやApple、Microsoftですら
    ユーザー獲得の差別化

・自動運転とAI
 自動運転は、高度・多様なAIの集大成
  インパクトが大きい
  レベル1,2,3,4
  1:1こじどうか
  2:2こじどうか
  3:3つじどうか
  4:自動運転:ハンドルブレーキついてない
 テスラーなどは4を目指している。日本は1から→方向転換
 倫理課題と法的課題

・トロッコ問題
  5人ひき殺すか、1人ひき殺すか→きめのもんだい。

・AI企業動向マップ
 KAOSマップ
  基盤AI技術
  業務別:AIベンチャー 最近HoT 
  業界別
・人材XAI:HRTech
  転職マッチング:ビズリーチ(属性もまぜながら)
 教育XAI:EdTech
  アダプティブラーニング
   学習進度に合わせる
 不動産XAI Real Estate Tech
  価格査定:業界破壊(新しいビジネスモデル)
 ヘルスケアXAI
  デジタライゼーション
  予防医療→ダイエット(メタボを防ぐ)
 金融XAI 事前与信+マーケティング
  特定ローン:教育ローン 貸して大丈夫?
  Fintech系はいっぱい:機械アドバイス
 システム開発XAI リポジトリマイニング
 オフィースワークXAI
   HUE:過去ログから、教えてくれる
  →自社製品にいれる
 婚活とAI
  マッチング:選挙と婚活
  →ビジネスマッチング

・2016年はボット元年
 Siri,りんなさん→ソフトウェアロボット
  けっこうブレイク

 チャットボットに大手ITサービスが続々参入
  すらっくの中で、注目
 ボットラッシュ始まる
  ろはこ:FAQの類
 雑談の部分
 スラックのボット Subot
 音声アシスタント機器という、もうひとつの潮流

・一方日本はコミュニケーションロボットに注力
  AIBO、→全滅 会話気が利いていない

 このままいきのこるか?

 代表Pepper
  DMM
 これからくる?

 アメリカはECHO
 アメリカはロボットは執事、日本はパートナー

・変革1:ユーザーインターフェースの変革
  第一世代:キーボード
  第二世代:マウス
  第三世代:タッチパネル
  第四世代:音声対話
 デバイスという概念がいらなくなる

・変革2 ITサービスビジネスモデルのパラダイムシフト
  これまで、アプリストアを通じて
  これからはボットストア

・でも対話技術はまだ未熟
  実は、特定タスクにしか答えられない
  検索ベース(りんななど)は一見話題豊富、でもタスク解決は・・
  当面は、特定タスクのチャットボット

・AIが普及したインテリジェント社会の到来
 経済どうなるの?
  デジタル新技術(AI,IoT,ロボテクス)の最大活用で需給両面を底上げ
    新しい産業
    生産性があがる→医療・介護・健康・製造がききそう
  →創造型需要

・移動
 バリューチェーン:通勤している時間
 スマホ:すきまじかん
 長時間労働を減らす
 車の通勤時間がなくなる

・AI,ロボットによる雇用代替(技術的失業)
 →実はいい加減な試算
  一番のミスリーディング:職業的に見た
  人のしごと:30%代替できて、70%はできないなど
  BPO:同じ業務をまとめる→機械へ

・AI進展に伴うリスク
  AI単独
  いっぱいのAI
  AIネットワークで強化
  人とAIが共存
 まずはプライバシー・セキュリティー

・法的問題
 自動運転
 著作物:AIソフト開発者・実行した人?・元の著者??
  →権利化
 個人情報の扱い
  まなびすぎだよね:PASMOのデータ→自宅ばればれ
  裁判所でAI:結果として差別:プロセスの公平性

・汎用AIは第4次産業革命の汎用技術
 勝手に経済
・シンギュラリティの懸念
 カーツワイル
 かしこくなる:どこかがポイント
  →おしえて賢くなっている場合はOK
 自己進化で賢くなるのが問題
  →自己再生のAIはまだ:べつのブレイクスルーが必要

・AIにできないこと
 奪われない職業:感情と欲
 人と共感する仕事、枠組みを作る仕事

まとめ
・AI普及しつつある(いしきされないかもしれないけど)
 ツールそろってる
 つかえるかな?とおもってみて

■Q&A
・日本のAIはバズワード化してないか?
 アメリカもバズワード化してるけど、日本もこのきらいはある
 過剰な期待を生み出してしまっているかも?

・計算機パワーが問題なら、ムーアの法則があたまうちになったら、
 シンギュラリティは?
  シンギュラリティはムーアの法則絶好調なときだった
  ムーアの法則はさちらないかも
  2、3桁の性能ならあがるかも

・松原先生の講義「AIは根拠が分からないところがポイント」
 全部ディープラーニングでやると、根拠分からない
 そうすると、こまること:マーケティング施策組めない
  →頻発、
   簡易モデルでシミュレート
   決定木で仮説をつくるところからの最適化
  →プラクティカルに
 例:自動運転で、理由分からないけど、人轢いちゃいましたあ(^^;)v

・なんでAI、ごまかしてんじゃね~の
 半分あたり。そういう面ある。マシンラーニング使っているのがAIになってる
 ただ、普通の情報処理とちがって、学習し続ける

■おしらせ
 12月10日 研究変遷から見た人工知能技術
 次回12月16日

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

windows10でFirefoxの動作が遅いとき

2016-10-23 13:29:36 | ネットワーク
windows10でFirefox使用中、動作が遅いときの対処
http://www.megabe-0.com/archives/3446.html

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

日経BPのITExpoと日刊工業のJapanRobotWeekに行ってきた!

2016-10-23 09:39:55 | Weblog
10月21日、東京ビッグサイトの東ホール
 Japan Robot Weekほか(日刊工業新聞社主催 東1~3)
   と
 ITExpoほか(日経BP社主催 東4~6)にいってきたので、
感想をすこし

 まず、似たような展示&小さい展示がいっぱいと・・・
 それは、東1~3と東4~6も似ていて、実際、日刊工業の展示会に、
日経BPの入場券で入ろうとした人もいたほど・・
(入り口で、「違うんですよ~」と止められてた ^^;)




■Japan Robot Weekほか
・小さな会社、大学などが多く、やっていることがITExpoに比べ高度。
・大きく分けると2種類
  ・中小企業やロボットしそうな会社、研究所が、
    コンシューマーを含むロボットがらみのことをしている
  ・大手企業が、産業用ロボットっぽいことをしている。

・例えば大手としてはAMANOや日立システム、THKとかでていて、
  ・日立システムは協調ロボット
  ・THKは、Seedソリューションというところと一緒に
     ロボット出してた。
    (電通大の蛇型ロボットっていうのもあったけど)

・中小その他のコンシューマーも含むロボットとしては
  ・タカラトミーのRobojr
  ・makeblockとかいうの
  ・近藤工業や双葉電子ももちろん出てて(モーターなど)
  ・都産技研がチリンとかいう案内ロボットをだしていた
  ・バラピッキングのMUJINコントローラーなんてのもあった
  ・生活革命さんの展示で、「ペッパーの賢さに違いがあるんです!」って、
    ペッパーが言っていた
・そのほかは(もしかすると、ITExpoとまじってるかも?)
  ・ロゼッタとかいう自動翻訳
  ・ドローン(日東建設)
  ・キーエンスの3Dプリンタとか

・もちろん、土壌、地下水とか、洗浄とかの展示もしていて
 ・大林組は、汎用遠隔操作(遠くから操作できる)
 ・セルロースナノファイバーなど

■ITExpoほか
・SANSANは、やっぱり出ていた
・Office365とソフトバンクでなんかやってたけど、
 コスプレっぽかったんで詳しく見なかった
・IoT検定なんていうのがあった。
・VRの体験コーナーがあったけど、良く見てこなかった
・Fintechはパビリオン(小さい会社の集まり)はあった
・ベトナムコーナーもあった
・クラウド関係の会社は、展示が大きい(その中を分けて、数社が展示する)
  ニフティ
  ソラコム
  AWSなど
・ERPはGRANDITやオービック等
・ジャストシステムが、クラウド、BIetc・・・よくわからなかった
・3Dプリンタで3Dシステムズ
・Web会議でWebRTCを使ったものが出ていた
・NTTコミュニケーションはIoTディープラーニング等
・超高速開発コミュニティがでていた
  (個々の超高速開発会社は、この中をわけて、展示している感じ)
・東京ライフスタイル農業って・・・何?

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Nintendo Switch

2016-10-22 14:07:19 | ネットワーク
ゲームの世界だけなら、限定的だけど、
これが、アプリケーションやVRの世界に入ってくると・・・
・・・こないか(^^;)

https://www.nintendo.co.jp/switch/index.html

ニュースリリース 
https://www.nintendo.co.jp/corporate/release/2016/161020.html

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Rで決定木を行う方法

2016-10-22 12:20:09 | AI・BigData
メモ。
データはRに入っているirisを使っている

【コマンド】

install.packages("rpart", dependencies = TRUE)
library(rpart)
data.rp <- rpart(Species~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width,data=iris,cp=0.01)
print(data.rp)
plot(data.rp)
text(data.rp,use.n=T,all=T)

【結果】


【参考サイト】
http://www.gixo.jp/blog/3982

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

杉並清掃工場、ビッグデータ解析による最適運転管理

2016-10-21 19:02:57 | AI・BigData
ここの記事

杉並清掃工場ビッグデータ解析による最適運転管理システムの開発を開始
http://news.toremaga.com/release/tech/864668.html

あとでよむ

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

シリアル通信でノンブロッキング処理にするには

2016-10-21 15:31:33 | ネットワーク
シリアル通信(だけじゃないと思うけど)において、
入力待ちをしない、いわゆるノンブロッキングにする方法について。

カノニカルモードにすることは知っていると思うけど、
ほかにせっていするところがある。
まとめると、2つの方法があるらしい

【方法1】
1.termiosの
    c_lflag &= ~(ICANON);
  で、カノニカルモード無効化(非カノニカルモード)

2.termiosの
    c_cc[VMIN] = 0;
c_cc[VTIME]= 0;
  にする。このVMINとVTIMEの関係は、以下を参照

termios.c_cc の VMIN VTIME について(メモ)
http://oasynnoum.hatenablog.com/entry/2012/10/31/184038


【方法2】
 上記さいとにある、O_NDELAY指定。つまり、openでO_NONBLOCK または O_NDELAYを指定する。
詳しくは、以下のサイト

open - システムコールの説明 - Linux コマンド集 一覧表
http://kazmax.zpp.jp/cmd/o/open.2.html


ちなみに、以前の記事

LinuxのCで、キー入力されたらすぐ表示するけど、入力しないとき待たないようにしたい
http://blog.goo.ne.jp/xmldtp/e/067f5e0ff4efeca546e4458f4d36a619

では(これはコンソール端末=標準入力なので、fd=0で説明している)、
方法1で、VMIN=0,VTIME=1にしている

以下、raspberry piのシリアル通信における方法1の雰囲気(確認していないので、バグがあるかも・・・)

/*
 *	ノンブロッキングテスト
 *	内容 電文の送受信を1電文繰り返す
 *	参考:	http://www.rt-shop.jp/blog/archives/4145 (シリアル通信)
 *		http://oasynnoum.hatenablog.com/entry/2012/10/31/184038 (ノンブロッキング)
 *		http://simd.jugem.jp/?eid=145 (時間部分)
 */

#include<stdio.h>
#include<stdlib.h>
#include<strings.h>
 
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <termios.h>
#include <unistd.h>

#include <time.h>
#include <sys/time.h>

#define SERIAL_PORT	"/dev/ttyAMA0"
#define BAUDRATE	B9600

int main(int argc, char *argv[])
{
	int		fd;
	char		com[16];	//	とりあえず16バイト以上来ないものとする
	char		buf[2];		//	一時的に入れておく
	struct termios	newtio, oldtio;	//	コントロールの構造体
	int		len;		//	文字列の長さ
	clock_t nowtime,oldtime;
	double		keika;		//	経過時間

	//==============================//
	//	オープンと設定		//
	//==============================//
	if(!(fd = open(SERIAL_PORT, O_RDWR)))
	{
		printf("data error \n");
		return -1;
	}

       	//	現在のシリアルポートの設定を待避
	ioctl(fd, TCGETS, &oldtio);
 
	//	ポートのコントロール初期化
	bzero(&newtio, sizeof(newtio));
	newtio = oldtio;	// ポートの設定をコピー=基本的には同じにする
				//	ボーレートなど設定
	newtio.c_cflag = (BAUDRATE | CS8 | CLOCAL | CREAD);
 
	newtio.c_iflag = (IGNPAR);	//	エラー処理:無視
 	newtio.c_oflag = 0;
					//	非カノニカルモード
	newtio.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
	newtio.c_cc[VMIN] = 0;		//	ノンブロッキング
	newtio.c_cc[VTIME]= 0;

 	ioctl(fd, TCSETS, &newtio);	//	初期設定


	//==============================//
	//	データ処理		//
	//==============================//
	bzero(com, sizeof(com));
	len	=	0;	//	文字の長さ=次に文字が入るところ
	oldtime = clock();
	while(len < 15)
	{
		if ( read(fd,buf,1) <= 0 )	//	1バイトだけ読む
		{	//	読めないとき
			nowtime = clock();
			keika = ((double)(nowtime - oldtime)) / (double)CLOCKS_PER_SEC;
			if (keika > 0.5)	//	0.5秒たっても読めない
			{
				printf("no data \n");
				oldtime = nowtime;
				continue;
			}
		}
		else
		{
			com[len] = buf[0];
			len++; 
			oldtime = nowtime;
			nowtime = clock();
		}
	}
	com[len] = 0;
	printf("data:%s\n",com);

	//==============================//
	//	終了			//
	//==============================//
	newtio = oldtio;		// ポートの設定を戻す
 	ioctl(fd, TCSETS, &newtio);	//	前に戻す
	close(fd);
	printf("end\n");

}



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

プログラムの型とデバッグ手法を聞いてきた!

2016-10-21 11:47:06 | Weblog
昨日(10月20日)NIIの市民講座
情報学最前線
「正しいプログラムを簡単に書くには?プログラムの型とそのデバッグ手法」
を聞いてきた!ので、その内容をメモメモ




・正しいプログラムは何で必要か
 いろんなところでプログラムが使われている
  →正しいプログラムを書こうという努力

・プログラムとはどんなものか?
 速く書けるときもあるが・・・

・プログラムとは何か
 コンピューターへの指令・指示書
 例:1~10までたしてください→あいまい

・プログラム:明確な手順を指定した指令

・プログラムはどう実行されるか
  1+10+2*3
    字句解析(じくかいせき):トークンの列
    構文解析:トークンの列→(どことどこがくっついているのか)→抽象構文木
    各種変換・最適化・コード生成:抽象構文木→いろいろ→機械語
    機械語を実行する=17


 ※字句解析、構文解析はツール(lex,yacc)。
  構文解析器は古くからあるが、今も研究
  「LR構文解析の原理」大堀淳

・正しいプログラムとは何か
  ・コンピューターが解釈できる
    →実行は出来る
  ・人が思ったとおりに動作する
    →意図どおりに書くのは難しい

・プログラムの正しさを、どう高めるか?
  ・データの種類に注目して、書けるプログラムに制限を設ける

・データの種類:型
  →型を使って制限する
    :動作を予期しないプログラムをのぞくことが出来る
 いつ型を検査するか
  1.静的型付け:実行前検査
  2.動的型付け:実行時検査

 ※値の性質まで入った型: LiquidHaskell

・型の難しさ
 修正→型エラーのデバッグ手法

 本質的な難しさ
  どれが正しいかは自動的には決められない

 型エラーのデバッグ手法
  エラーに関係している:型エラースライス
  対話的に:対話的型エラーデバッガ
  可能性の高い:原因箇所推定

・研究の話(宣伝)
 機能を再利用

・型以外の手法
  テスト
  性質の検証

・テスト
  研究:テスト例自動生成
   →自動生成をどうするか:ランダム、小さいものから全通り

・性質の検証
  性質が満たされるか証明する
   →自動定理証明:ここ10年ほどホットトピック

・本講座で話したこと
 プログラム:明確な指令
 プログラムの正しさ
 正しさを高める「型」
 型以外:テスト・証明

・プログラムを書くには?
 プログラミングの学びかた:コースとかあふれている
   Gacco はじめてのP
 競技プログラミング、プログラミングコンテスト
   ICFP プログラミングコンテスト

Q&A
・静的と動的の型付け、どっちがいい
 →大規模は静的、ネットでの処理・外部との受け渡しは動的
  1回実行すればいいのも動的で

・なんで似たような言語が出てくるの?
 言語を作るのが好きだから

・ツールはどんなの?
 emacs

・生産効率的な点からコメント
 型を使う:型がひとつのドキュメント→あがっている
 ソフトウェア工学で研究しているので、そちらのほうを見て
 

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Office365APIとか、Google Apps Scriptで自動化の話とか聞いてきた

2016-10-20 10:15:25 | ネットワーク
10月19日、html5j Webプラットフォーム部 第14回勉強会に行ってきた。その内容をメモメモ




■簡単!Google Apps Script入門
・自己紹介
・Google Apps Scriptとは
 Googleアプリケーションを連携できる
 もちろん無料
 環境構築簡単:アカウントあればいい
 基本的にJavascriptベース
 デメリット:情報が少ないなあ~
  公式リファレンス
    AppsScript:英語
 本が電子書籍で出ている。Googleをプログラミングせよ

・Google Apps Scriptを立ち上げてみる
 ツール:スクリプトエディタ
  この中で書いて動かす

・Google Apps Scriptは仕事の課題解決・効率化に役立つ
 GoogleForm:
  自動返信メールが着いてない
  定員を超えたら、変える
  フォームのフォーマットが微妙に違う

・まずはスプレッドシートからはじめよう
  他からも立ち上げられるけど、DBが必要なことが
   →スプレッドシートから
  命令したいものを指定、命令を指定
  カレンダー:イベント:タイトル・・・
   →階層関係が成り立っている

  Googleドライブだけ、概念が違う
   ファイル名で指定できない
  →ファイルイテレーター・フォルダーイテレーター

・それでもやっぱり難しい
 アドオン

・まとめ
 まずはスプレッドシートから始めよう
 ルーチンワークの解消
 命令する場所の指定の概念が出来ればOK




■Apps Scriptによる高度な開発プロセス
・自己紹介
・Apps Scriptによる高度な開発プロセスって?
 Google Apps Developersブログで紹介された
 Apps Scriptはランタイム
・一言で言うと
 Drive APIをExport/Import
 Google Drive REST APIでApps Scriptのソースコードをインポート、エクスポート
 APIをたたくコマンドが作られている→ローカルPCへ
・Drive APIの注意点
  Appsプロジェクトに2種類
   コンテナ付属のものはX
   スタンドアロンのもののみ可能
・ローカル開発のメリット
  ソース管理できる
  好みのエディタ、IDE
  ツールが利用できる
  テストが実施しやすい
・実際にメリットを活用した一歩進んだ開発
  require()使おう
   CommonJSのモジュール機能
   Node.jsならネイティブ
  Apps Scriptにもライブラリがある
   遅い(公式サイトでトップで警告)
   管理手動
   共有複雑
・一歩進んだ解決策がrequire
 → Browserify+gasifyを利用
  
・ビルド方法
  browserifyを実行する

・ビルドしたファイルはDriveAPI Export/Import

・Apps Scriptの自動テスト
  Node.jsで実行する
  Apps scriptとして実行
 きぞんの

・CI
  Node.js:OK
  Apps ScriptはCIとの連携難しい
   作ればいい→gas-test
   コマンドラインツールも
  大きな機能 
   テストコードビルド機能
   実行機能(Excution API)
   認可のセットアップ機能7
  連携
   CIサーバー→ExcutionAPI→Apps Script

・サンプル説明

・高度な開発のお勧め構成

■Office365

・Office365 日経255銘柄の80%
 Office365 Solo デスクトップ
  サービスサブスクリプションで出している
  何台までインストールしていいよ
   →契約更新クイックインストール
    2世代前はインストールできない
  地球上の7人に1人(10億人くらい)
   コマーシャル版とコンシューマー版

・コマーシャル版の戦略
 ワークフロントのデータをあつめる
  →CRMとかは入らない
  メール・SNS・ファイル
   One Driveに同期

・デモ
 Delve
  MyAnalitics

・IPhoneを侵食?・・・MSアプリが増えている
  最近はIPhone版のほうが先とか
  全てのデバイス

・APIの話
 APIのトレンド:
  アドイン:E2D3 グラフ→HTMLのページ(JavascriptのD3で書かれている)
    comアドインはやめていない
    でも、全てのデバイス:

 Office 365 API's
  昔:SOAPに投資していることもあった→RESTにいま

  ふぃどらーでキャプチャ

  ふつうのAPIになる

・SalesForceと連携している

・2要素認証などは開発側は意識する必要ない
 いろんなことができます
  Webフック
  同期
  デルタリンク:差分だけ返ってくる
  あき時間探し
  オーディオ WebRTC1.1(コンシューマースカイプは1.0)
  ピープルAPI

・Do.com
  ログイン画面:アクセストークン 

・API登録
  スコープを足す
  アクセストークンの変換が出来る→高度なモジュール化
  証明書連携
  デバイスプロファイルフロー

・パルミーというロボットで

・AzureAD V2.0エンドポイント&Microsoft Graph
  でも、今までの話は、コマーシャル版
  コンシューマー版:統合 v2.0のエンドポイント
   いまはOutLookだけ

■じゃんけんたいかい
・JQueryMobileの本が欲しい人2人だけ
・Angular 1の本が欲しい人はもう少し多かった(10人くらい?)
・いずれにせよ、Tシャツが欲しい人のほうが多かった。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PICでの開発方法のまとめ

2016-10-19 18:30:03 | Weblog
Lちかするだけでも、Arduinoやmbedにくらべて大変だったので、
ここにまとめておく




■用意するもの
・PICKIT3
・秋月のPickit対応ICSP書き込みアダプターキット
  http://akizukidenshi.com/catalog/g/gK-05355/
・ターゲットのPIC
 今回はPIC 12f1822
・そのほか、ブレッドボード、LちかするのでLED,抵抗、PC(Windows)など

■MPLAB® X Integrated Development Environment (IDE)のダウンロード
 http://www.microchip.com/mplab/mplab-x-ide
にいく
少しスクロールしてDownloadタブで、自分の環境に合ったものをおとしてくる

■MPLAB® XC Compilersのダウンロード
※これをインストールしないと、ビルドのところで失敗した。
 http://www.microchip.com/mplab/compilers
にいく
少しスクロールしてDownloadタブで、自分の開発する環境とPICにあったビット数のXCなんとかを選ぶ。

■IDEを立ち上げ、プロジェクトを作成する
 途中、Select DeviceでターゲットのPICを選択
例:PIC12F1822はMid-Range 8-bit MCUs (PIC10/12/16/MCP)
 Hardware Toolにpickit3
 Compiler ToolchainsにインストールしたXC8をセット

■プロジェクトのSource Filesを右クリックして、新規にファイル作成
  main.cを選択(ファイル名は違うものを付けられる)

■ファイル編集
 今回は、  http://www.geocities.jp/zattouka/GarageHouse/micon/MPLAB/12F1822/LEDblink/LEDblink.htm
 の内容をコピー

 保存して RUN→Build main project
   →コンパイルできるはず

■PICに焼く
・「File」 → 「Project Properties」をひらいて、PICKIT3から電源を取る設定をする
  http://www.geocities.jp/zattouka/GarageHouse/micon/MPLABX/MPLABX_use.htm#writing
 をしたが、
Target device was not found (could not detect target voltage VDD). You must connect to a target device to use PICkit 3.
というエラー。私の設定間違い?とにかく

http://d.hatena.ne.jp/garyo/20121021/p2

に書いてあるように、Project Propertiesでやったような設定をRUNでしてみた。
 
・書き込みアダプタの詳細は

http://akizukidenshi.com/download/ds/akizuki/PICKit_ICSP_adpV2.pdf

にある。そこに左側のジャンパ線の配線方法が書いてある

右側の、がしゃんってやるほうにPICを入れて(上に上げておく)、
入れたら、がしゃんとする

・PICKIT3を、PCにUSBで接続し、書き込みアダプタにPINで接続する

・IDEの真ん中あたりのボタンの「↓にマイコンが有る」ボタン
 (make and program device main project)をクリックすると、
 やきはじめる

・Programming/Verify completeが最後に出れば、OK

■回路をブレッドボード上に作る
・PIC12f1822のデータシート
http://akizukidenshi.com/download/ds/microchip/PIC12F1822_PIC12LF1822_PIC16F1823_PIC16LF1823.pdf
・データシート中 VSS→GNDへ
 

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Googleってモバイル版とPC版のインデックスを分離するの?

2016-10-19 15:25:02 | Weblog
たしかにモバイルで検索することと、PCで検索することは違うように思える・・・

【重要発表】Googleがモバイル版とPC版を分離する事を発表!数ヶ月以内に実施の予定
http://www.web-planners.net/blog/archives/000210.html


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Sparkによる機械学習と、ディープラーニングのしくみについて聞いてきた!

2016-10-19 11:41:43 | Weblog
10月19日、「データサイエンティスト実践セミナー Sparkによる機械学習とディープラーニング」を聞いてきた!
その内容をメモメモ!




■Spark活用による機械学習入門
本日の内容
 ・MLLibによる機械学習プログラミング
 ・分析を支援するビジュアライゼーションAPI
 ・新しい分析基盤Data Science Experience

・Spark MLLibによる機械学習プログラミング
 http://bit.ly/2ecYpWK
 与えられたデータ(コイン100枚)を教師
 クラス分類(教師あり学習)問題です

・今回出てくる言葉
 Spark MLLib
 統合エンジンSpark
  複数言語に対応していて、どの言語でも利用可能
  YARNとの連携が出来る
 MLLib
  Sparkで機械学習:MLLibとRが利用可能
 データの持ち方
  RDD:分散処理のデータセット
  DataFrame:テーブルのようなデータ構造を持った分散処理
 処理
  Spark mllib:RDDベース
  spark.ml:DataFrameベース 今後○
 mllibで
  分類と回帰
   モデル(SVM,ロジスティック回帰、線形回帰)
   ナイーブベイズ
   決定木
   アンサンブルツリー
   単調回帰
  協調フィルタリング
   ALS
 SVM
  各データ間のマージン最大化となる超平面で分類
   マージン最大化=はんか能力
  サポートベクターによって超平面を構成
  顧客の離反分析

プログラミングツール
 Jupyter Notebook
  2001年にリリース IPythonをベース

DashDB
 BlueMixのDB

デモ
 http://ibm.biz/bdu1018a

・ビジュアライゼーション
 Brunelで可視化
  ほぼ1行でかける(きれいなグラフが) たぶろーとおなじかんじ

・IBM Data Science Experience
  コミュニティ
  オープンソース
  付加価値
 これらの環境が5分で使えるようになります

・11月16日 セミナーやります

■(仮)Sparkで試してみるディープ・ラーニング
・お詫び
 Numpyを使って実装
 →Sparkでは未実装:独自で実装→ながくなるので、今日は一部

・自己紹介

・DeepLearningとは
 機械学習のひとつ ニューラルネットワーク→層を重ねる
 例:VGG16
  畳こみから入ると、こける→べつのニューラルネットで説明予定
 今日のゴール:fully-connectedを作成
   アフィン変換
   ReLU
   ソフトマックス関数

 今日説明しないこと
  CNN たたみこみ
  RNN 再帰
  GAN 教師なし学習(画像を作り出す)
  DQN 強化学習
 すうしきやらない
 各関数の詳細 微分の話:ふれない

 Batch Norm 分布調整
 Dropout

・背景
 人間の脳の構造を模してやれば、上手く識別できるのでは?
  例:単純パーセプトロン ニューロン情報処理モデル
    単純パーセプトロンの基本のき
  →非線形できない
 層を増やしてやれば、上手く識別できるのでは?
  例:FF-NN

・今日のサンプル(色の識別 3つに分類)
 何色ですか
  赤
  緑
  青

 フリーコネクティッド
  入力層
  隠れそう
   アフィン変換
   ReLU
  出力層
  レイヤ 0層 入力層
      アフィン変換と活性化関数であわせて1層
        ReLU:活性化関数
      ソフトマックス:出力関数
  アフィン変換のところがフリーコネクテッド

  フォワード処理
  バックワード処理:バックプロパゲーション

 アフィン変換
  R,G,Bの重み、バイアス(発火しやすさ)の4つの値
   アウトプット=インプット*重み+バイアス
 
 Relu:活性化させるかどうか
   活性化関数:シグモイド関数など
    0以下なら 0
    +なら 値を伝える

 いくつもつなげる

 ソフトマックス関数:最終値を扱いやすい形に変換
  →確率を出す:足すと1

 バックプロパゲーション
  バイアスを自動で設定していく:教師ラベル

  初期値設定
  フォワード:出力がでてくる
  損失関数:誤差伝播
   交差エントロピー誤差
   本来は勾配という微分計算を全パラメータに対して行う
   誤差逆伝播法だと単純計算でOK

 バックワード
  出力レイヤ(ソフトマックス+交差エントロピー誤差)
  アフィン変換の重み、バイアス(詳細は省略)

ハイパーパラメータ
 層の数とノードの数:いくつの層を重ねると
 ネットワーク全体の学習率

今日のサンプルプログラム
 240個教育、20件のデータ判定
 最後の出力は分類したい数

■ご連絡
・次回は11月11日
・11月9日にDataLakeのセミナー
・(再度)11月16日にテクニカルセミナー

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする