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

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

2015 Japan IT Week秋に行ってきた!

2015-10-31 08:28:06 | Weblog
10月30日、2015 Japan IT Week秋(クラウドコンピューティングExpo秋、情報セキュリティExpo秋など)に行ってきた。

その雰囲気を雑多にメモすると・・・

・入り口で日本郵便がワンストップ物流ソリューションというのをやっていた
・ヤマトが名刺管理とか。。もちろんSanSanも出ていた
・Web系はいろいろ・・
  アプリ競合調査、SEO、YouTuberを使ったプロモーション、データマイニングなど・・・
  マーケティングオートメーションというのもでてきた。
・マイナンバー対応は、コーナーがあるくらい、ぼちぼち出ていた
・最近話題のてーまだと・・
  人工知能でB-Dashとか
  ビーコンとか出ている会社もあった
  ユビキタスエンターテインメントが4Kでブイライダーとかいうのをやってた
  ビッグデータはインテージ、富士ソフトがやってたけど、あんまり
  JustsystemはBIで出ていた
・クラウドはNTT,KDDI、さくらなど
・IoTはOKIが920MHz対のマルチホップ無線モジュールとか
・マイクロテクノロジーはIoT開発プラットフォームとか
・で、NEC,東芝、日立、富士通本体の展示が無かった気が・・(富士通はPFUはあったけど・・)

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

「クラウド、ビッグデータ、IoTそしてCPS」を聞いてきた

2015-10-30 17:42:43 | AI・BigData
昨日(10/29)、KKE Vision2015に行って、

クラウド、ビッグデータ、IoTそしてCPS
講師:電通大 新 先生

を聞いてきたので、メモメモ




Cyber Phisical System
・いま前面に出ているのは、統計学
・IoT→ユビキタスコンピューティング
 ・・・いまさら?

・ニューラルネットワーク
  →ディープラーニングというとお金が出る

クラウド:天
ユーザージェネレーティドメディア 地
IoT:和
→CPS
水道CPS:パイロット事業(経産省)
人口が減ると、今までのやり方が通用しない

プラットフォームを作っていく:ここがちがう
(オープンイノベーション)
→20世紀:かこいこみ

IPv6
・IPV4 32ビット(4G:40億、人口超える)
・IPV6 128ビット、40ケタ→さいきん

車車間通信
・ITS世界大会やモーターショー
  2020ねんには自動運転
 →2年たった:基礎できている

 2012年 テレビデジタル化
 →空きチャンネルできる(700MHz帯:使い勝手いいプラチナバンド)

 社会インフラ、コンセンサスが固まらないと、社会では使ってもらえない

6重苦
・少子化:わけまえふえる
・こんなに素晴らしい国はない
  スマホ1個でビールが買えて、電車にのれて、乗換できる
  蛇口ひねったら水が飲めるなんて、世界的に見たら奇跡
  東京に行けば、世界中のグルメができる
 →国は豊か
・老人の家にはいりこめば。。。20年たてば・・

日本のモノづくりの未来
・匠の技・・・たしかにそうだけど・・・
 素晴らしいのは消費者
  車に傷があるから、持って帰れというのは日本だけ
  消費者きびしい、ユーザー厳しい、だから品質高い

むかし、年間お金変わらなかった:鉄鉱石
 →月、日、時間単位で調達
マイコン:生産工程

円高だから苦しい?
 輸入しているのに??
 ほんとは為替に影響されるはずない

日本は資源大国
 広い海:世界5位の海洋資源
 ゴミ(静脈系)財産

消費
 高度に教育され
 贅沢を知っている
  コンビニ見慣れている消費者はすくない

待ってれば、
結婚して、子供ができれば(1人)
 家は2つ

文字から画像
 いつまで紙?
 新聞は、いつまで?
 設計図は?
  いまの学生、ロットリングとか知らない
 マニュアル
→みんな、コンピューターで書き、要求があったら紙で出す
 これが21世紀
  日記から絵日記(デジタルで書く):活性化
  今の学生の変化をとらえないと
 静止画動画あたりまえ

アジアと連携:オープンイノベーション

マイコンを入れて繋がる
反省
・2010年 トヨタ電子スロットル問題
http://www.toyota.co.jp/announcement/100217address.html
 メカだけならわかる。それをソフトで書くと誰もわからない
 自動車2千万行、→1万時間かかる
 XP4千万行→数千人:1万行
 →複雑にしすぎてる

 トヨタ自動車、自動車やサービス・ロボットの安全規格をOMSで提言へ

要求の多様化
・多数決
  民主主義
  情報技術
・少数意見の尊重

プロシューマー
→CPS,IoT

シミュレーション、CAD
・プロの素人化→ささえているのがIT

FA/PA統合
連続けいと離散系の工程の統合
情報共有
DCS/PLE統合

OPC
DCOM→.Netアーキテクチャ(SOAP)
PLC Open:らだ―
・ベンダー変えられる
・今の学生、リレー知らない

OpenXML:フォーマット標準化
人間を動かすのは文書

情報技術
・見えるか
・蓄積:データベース
・解析
・モデル(数式)→シュミレーション→未来
・最適化

今:みんなシミュレーション
CATIA
いま、同時立ち上げ。(もし、ハリウッド先で日本あとだと海賊版が作られる)
うそと誠があって世界

連携の進歩
・ファイル連携
・API連携
・モデル連携

Model Based Development
・コンピューターで何台潰してもお金には・・
  バーチャルとリアル
・ISO26262 
  たんたい
  HILS(ひるず):けつごう
  バリデーション
・MDAによるプラットフォーム非依存化
 PIM
 SysML
 ロボットの標準化

・Google:地図で儲ける会社
 すらーむ

 LiDARモデリング:3次元マップ
 3次元マップが中核

・反省点2
 サイバー攻撃を受ける可能性
  日立
  横河
  アズビル
 →認証書
  CSCM

 トヨタ:セキュリティ、CAD/CAE

情報技術
 通信
 蓄積
 処理

あんごうか ろりぽっぷから

PLM:ぷろぐらむらいふさいくるもでる

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

SESや偽装請負は、もうそろそろ、やばいかもしれない・・・

2015-10-30 12:40:09 | Weblog
 今、IT業界に人がいないのは、景気が良くて人が足らないという
意味では「ない」ということが、だんだん理解され始めてきている
ようだ。

日経SYSTEM 11月号 8ページ
ユーザー企業こそピンチ IT業界の「人不足」

ここの論旨とはちょっと違うが、書かれている内容を
我田引水すると・・・(以下太字は、それに近いことが書いてある。
そのままではない)


・今のITエンジニア不足は、一時的な需給の問題ではなく、構造的な不足である
・SIなどのIT業界(スマホ開発・ゲームを除く)は不人気業種である
・人材のパイが縮小し、報酬が高くなると、
   見積もりが高騰する
   賢いベンダーは、失敗要素が少ない案件をえり好みする
・結果、「金さえ出せば」(=安くて利益の出ない案件、無理難題をいうリスキーな客)
 という発想のユーザーは質の低いベンダーの餌食になるか、いつまでも発注できず、おろおろする


問題は、一番最後の部分。
リスキーな案件は、質の低いベンダーにあたるということ
逆に言うと、おいしい、安全な案件は、賢いベンダーに既に取られているということ。

つまり、今後出てくる案件は、結構やばい案件や炎上案件であり、
それを請ける側は、質の低いベンダー(リスクが見極められない営業、
リスクを押さえ込めない開発者)ということ。

これは、炎上している炎に油を注ぐようなもの(Cf「人月の神話」)

そろそろ、SESや偽装請負は、おいしい案件は食べつくされ、
炎上案件が出始めて
やばくなってくるかもしれない


P.S 構造的にやばい(SESや偽装請負では食えなくなる)という話は、
  またこんど

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

論文とかが通るかどうか、判断&アドバイスしてくれるかもしれないソフト?

2015-10-30 10:49:36 | Weblog
昨日(10/29)、「知能ソフトウェア工学研究会(KBSE)」で
日大理工学部 1号館 121に行ってきた!
研究会だから、書いちゃまずいのかもしれないけど、
2つとも招待講演なんで、まあ、いいしょ(^^;)ということで、
その内容をメモメモ

ちなみに、表題の件は、後のほうの発表の

Brain Plotsシリーズ
(その一部、プレゼン用)http://brainplots.com/BPTED/

のソフトの話。



■ごあいさつ 飯島先生
・知能ソフトウェア工学小特集
・次回1月(機械振興会館)、3月(湯布院)




■機能・品質の多様性を扱う適応的サービス合成
NII 石川先生

・自己紹介
 約束事のコンピューティング
 →サービス指向コンピューティング

・自己適応をやっていく
 サービスを合成する

・背景1:壮大な視点から
 Everything as a Service
 サービス:クラウドやWebAPIも含め
 ネットワーク経由でアクセス可能な情報や機能
 をプログラムを呼び出す
→サービス指向アーキテクチャ
  コモディティ
  特別な機能
  すべてをソフトウェアからアクセス可能に
  http://www.programmableweb.com/
  →登録APIはもうすぐ15000

 サービス指向の夢
・既存のサービスの選択と組み合わせを通し、
 システム構築(要求実現)を迅速、柔軟に
→既存サービスの選択・連携によるサービス合成
 ビジネスプロセス:ここを構築

 開発の「そもそも」
  機能、非機能
   ↓
  ・これから作る
   ライブラリ・フレームワーク
   外部サービス
→外部サービスは「選んで使う」

 継続性は外部に依存
 →情報はしっかり整理されてるかも(外部公開しているので)

 サービス合成における品質保証?
 ・書くサービスの品質(QoS)に関する知識が必要

背景2:既存研究の流れ

標準的なサービス合成の要件モデル
・機能(IOPE):入力、出力、事前条件、効果
 品質:さまざまな指標

・何をいつ主導・自動で行うかの想定は様々
  典型的には、ワークフローはgivenサービス選択は自動

・アルゴリズムの観点からは難しい問題
 全体制約→NP-hard
 さまざまな開放:遺伝的アルゴリズム
 候補数を減らすための工夫

・結構研究は多い 2003~

・メタヒューリスティック
 ヒューリスティック:こうやったらよさそう
 メタヒューリスティック→問題によらず、ヒューリスティック
   例:遺伝的アルゴリズム

問題定義
・典型的な問題設定における課題
 サービスはすべて均一・互換
 自己適応は事前には考えていない
 →サービスにつがい、自己適応を考える。確率的に

サービスの接続性、置き換え可能性は、
 一般的には、オントロジーにおけるサブクラス関係に定義される
 →セマンティックWeb

サービス機能グラフ
 下に行くほどより強力になるグラフを構築

選択アルゴリズム
・遺伝的アルゴリズム
 →遺伝子の強制修正

サービス機能グラフ
 ホテル検索サイトの出力結果

まとめ(おわりに)
・サービス合成に関する研究
 もともとはサービス指向コミュニティ
・要求の元である「顧客」が「大衆」の場合
http://infogra.am/app-user-survey-0

別方向の取り組み
・スマートシティのサービスに基づく実現
  町に落ちているAPIを組み合わせる
  非サイロ・オープン・レジリエンス

おまけ SIG-SC研究会

Q&A
Q:業務フロー的に満たさない代替案が選ばれないようにするには?
A:遺伝的あるごりずむで、そのような場合、評価関数の結果が
 凄く悪くなるようにする

QoS aware Service Composition
効用関数あるいはパレートフロント

広い意味でのadaptation




■BrainPlots/CogStructureのご紹介
コグニティ株式会社 河野さん

意思決定時の認知限界を技術の力で取り除く

・Brain Plotsしりーず(プレゼン用)http://brainplots.com/BPTED/
・CogStructure
 DAMM

1)ルール作り
  概念構造→Toulmin Model
  KJ法

Toulmin Modelとの違い
 ブログなど

理解しやすい主張
  事実情報が多いと理解しやすいが
  詳細情報はそこまででもない

議論討論例

バイアスアラート・他視点変換
自動さまらいず
言語横断・リアルタイム共有

TED 芸術は例示がおおい
    教育は事実・理由多い

構造上のパターン

勝てない勝負を選んではいけないが
8割のところを選んでも残れない

Q&A

Q:D-CASEのサポートは出来る?
A:今研究中。ゴールグラフに合わせることが必要

Q:論文に応用できる?(これだと、査読に通らないと分かる?)
A:よいの、わるいの3つあればいい。
 その手の話はいろいろあって、「事業計画を判断して欲しい」
 (Byベンチャーキャピタル)とか

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

「ブラック企業大賞2015 ノミネート企業」に「セブン-イレブン・ジャパン」が!!

2015-10-29 20:30:25 | Weblog
ここ

第4回 ブラック企業大賞2015 ノミネート企業発表!
http://blackcorpaward.blogspot.jp/2015/10/4-2015.html


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

複数ファイルをドラッグ&ドロップでアップロードするプログラム全体(PHP版)

2015-10-29 12:30:49 | PHP
ここ

HTML5のFile APIを使用して、ドラッグ&ドロップでファイルをアップロード
http://soraxism.com/soraxism/blog/html5%E3%81%AEfile-api%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81%E3%83%89%E3%83%A9%E3%83%83%E3%82%B0%EF%BC%86%E3%83%89%E3%83%AD%E3%83%83%E3%83%97%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4

に、複数ファイルをドラッグ&ドロップでアップロードする方法について書いてある
・・・がJavascript(クライアント)だけ。

一方、ここ

JavaScript と PHP でドラッグドロップでファイルをアップロードする
http://vosegus.org/blog/2014/08/drop-file-upload.html

に、あるファイルをドラッグ&ドロップでアップロードする方法について書いてある

が、そもそも、どちらもポイントだけしか書いていない。
欲しいのは、

複数ファイルをドラッグ&ドロップでアップロードするプログラムの全体
だとおもうので、そのプログラム、HTML(ブラウザ表示部分)とPHP(アップロード部分)
について、ここにまとめてみる
(基本的に上記サイトをまとめただけ)




■お題

以下の表示

を行い、ドラッグアンドドロップ、またはファイルを選択ボタンから、
1つないしは複数のファイルを選択して、サーバーにアップロードする。
サーバー側のプログラムは、PHP,
ブラウザ表示するプログラムはHTML(HTML5 FileAPI+Javascript)




■ブラウザ表示するプログラム test.html
(基本的に上記サイト
 「HTML5のFile APIを使用して、ドラッグ&ドロップでファイルをアップロード」
 の内容を組み合わせたもの)
<HTML>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(function(){
  /*================================================
    ファイルをドロップした時の処理
  =================================================*/
  $('#drag-area').bind('drop', function(e){
    // デフォルトの挙動を停止
    e.preventDefault();
 
    // ファイル情報を取得
    var files = e.originalEvent.dataTransfer.files;
 
    uploadFiles(files);
 
  }).bind('dragenter', function(){
    // デフォルトの挙動を停止
    return false;
  }).bind('dragover', function(){
    // デフォルトの挙動を停止
    return false;
  });
 
  /*================================================
    ダミーボタンを押した時の処理
  =================================================*/
  $('#btn').click(function() {
    // ダミーボタンとinput[type="file"]を連動
    $('input[type="file"]').click();
  });
 
  $('input[type="file"]').change(function(){
    // ファイル情報を取得
    var files = this.files;
 
    uploadFiles(files);
  });
 
});
 
/*================================================
  アップロード処理
=================================================*/
function uploadFiles(files) {
  // FormDataオブジェクトを用意
  var fd = new FormData();
 
  // ファイルの個数を取得
  var filesLength = files.length;
 
  // ファイル情報を追加
  for (var i = 0; i < filesLength; i++) {
    alert(files[i]["name"]);
    fd.append("files[]", files[i]);
  }
 
  // Ajaxでアップロード処理をするファイルへ内容渡す
  $.ajax({
    url: 'test.php',
    type: 'POST',
    data: fd,
    processData: false,
    contentType: false,
    success: function(data) {
      alert(data);
    }
  });
}
</script>
</head>
<body>
<div id="drag-area" style="border-style: dotted;background-color: #ffbbff;">
  <p>アップロードするファイルをドロップ</p>
  <p>または</p>
  <div class="btn-group">
    <input type="file" multiple="multiple" style="display:none;" name="files"/>
    <button id="btn">ファイルを選択</button>
  </div>
</div>
</body>
</html>





■サーバー側のプログラムtest.php

<?php
$count = count($_FILES['files']['tmp_name']);
for($i = 0 ; $i < $count ; $i ++ )
{
if (is_uploaded_file($_FILES["files"]["tmp_name"][$i]))
{
if (move_uploaded_file($_FILES["files"]["tmp_name"][$i], "sendfile" . $i . ".txt"))
{
echo "ok:" . $_FILES["files"]["name"][$i] . "\n";
}
else
{
echo "error:" . $_FILES["files"]["name"][$i] . "\n";
}

}
else
{
echo "no file" . $i . "\n";
}

}
?>


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

とうとう、テレビ東京が視聴率で、TBS、フジテレビに勝ったらしい!(ドラマで)

2015-10-29 10:26:13 | Weblog
ここの記事

篠原涼子、香里奈が「釣りバカ」に負けた!視聴率爆死でテレ東以下の非常事態
http://www.asagei.com/excerpt/46067


まとめると、

テレビ東京ドラマ 「釣りバカ日誌~新入社員 浜崎伝助~」 10月23日視聴率 10.8%
TBSドラマ『結婚式の前日に』(香里奈さん主演) 第2話視聴率 4.6%
フジテレビドラマ『オトナ女子』(篠原涼子さん主演) 第2話視聴率 9.2%

まあ、この3つだったら、釣りバカみるかなあ・・・
でも、TBS4.6%って(^^;) 
もう、水戸黄門の再放送でもやったほうが、まだいいんじゃないか?

この分で行くと、そのうち、テレビ東京がネット人気だけでなく、
視聴率でも1位になる日は近いな・・・

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

そもそも、CakePHPで掲示板つくるのに、学校のプログラミング教育は大事なのか?

2015-10-28 11:31:21 | Weblog
昨日の、

大学のプログラミング教育って、IT業界にとって、役に立つの?
http://blog.goo.ne.jp/xmldtp/e/5b7ed30b22348083ca6bbd3022239c83

の続きの話。

プログラミング教育の落とし穴
https://wirelesswire.jp/2015/10/47351/

という記事がある。

この記事、ScratchよりJavascriptとかを教えたほうが良いみたい
に読めるんだけど(私の読み方がおかしいかもしれないけど)
ほんとうにそうでしょうかねえ?
Javascriptは、今は絶好調だけど、今の中高生が仕事をしはじめるころ、
5年後、10年後には、今のBASIC見たいになっちゃっているかもしれません。
そもそも、手続き型言語が時代遅れになっているかも・・・




教育には、目的があって、目標があります。
プログラミングして、楽しかった!という目標達成には、
Scratchもいいかもしれません。

で、仕事の役に立つという場合、どんな仕事につくか・・・
によります。
コンピューター会社以外でプログラムが必要とすると、
Excel VBAやRだと思います。
コンピューター会社の場合は、いろんな言語が必要ですが、
今までは、多くは手続き型言語だった。
(COBOL,C,Java・・・)

ただ、SQLは、手続きというより宣言型という感じ
(やりたいことを書く&繰り返しを意識しない)
だし、関数型も出てきているし・・・
ということで、手続き型言語だけ分かればいいという
感じではなくなってきた。




 そもそも、IT業界におけるプログラミングの位置づけが、
相当ダウンしてきた。

 プログラミングは大学で学んできているけど、
 じゃあ、「CakePHPで掲示板作ってください」というと、作れない

 CakePHPで掲示板作るには、
 ・サーバーを立ち上げ、PHP,DB(MySQL等)が動くようにする
 ・CakePHPのフレームワークにあったプログラミングをする
 ・動かないとき設定を見直す
   (プログラムのバグより、設定を知らないことのほうが多い)
 というようなことをする。
 つまり、学校で教わるプログラミングの知識以外のことが多い。

 そうなってくると、CaePHPで掲示板作るのに、今の学校で行われている
プログラミング教育は重要なのか?という話になってくる。

 もっとも、学校で、プログラミングをやる理由は「論理的な考え方を見につける」
だと思うけど、最近のJQueryやCSSは、論理的に考える
というよりか、とりあえず、入れてみて・・・というかんじだよね。。




ということで、

・プログラミングの勉強をする理由は、
  将来システム関係の仕事に就くためではないとおもう
 →そのために手続き型の言語を勉強することはプラスになるかどうかわからないし
  そもそも、システム関係の場合、プログラムの比重は、いまや相当小さい。

・プログラミングの勉強をする理由が、
  将来システム関係の仕事に就くためではないのであれば
  Scratchが向いている、教育目標もあるかもしれない。
 →たぶん、Pepperにつなげていくのが、いいような気がする

と思う。




P.S 13:00

ちなみに、プログラミングを教える意味としては

プログラミングを学ぶべきたった一つの理由
http://blog.goo.ne.jp/viscuit/e/63fe911b56d4c738cc32550ed3f0a7db

というのがあります。

で、プログラミング教育との差としては、

某R社を5日でクビになった話
http://codeio.hateblo.jp/entry/2015/03/07/003348

が参考になる。そこで、「自分が今まで作ってきたものなどを見せて」とあり
「フロントエンドはガッツリやったことある僕ですが、」とあるので、
Javascriptのコーディングは出来る人だと思います。

その人が挫折したお話。

ちなみに、その人に出された宿題

『開発環境に、user_idパラメーターでユーザー情報を表示するphpを作ってください』

の答えは(LinuxでPHPがはいっていて、ユーザー情報が、ここで言っているユーザー情報の場合)

こたえ?は

結果

で、これが5時間でできなかったから、NGになったと。。。
・・・ね、あんまり、プログラミング能力は、必要ないでしょ・・・
・・・別の知識は必要だけど・・



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

大学のプログラミング教育って、IT業界にとって、役に立つの?

2015-10-27 12:10:38 | Weblog
よく、大学で、プログラミング教育をやる目的として、
「論理性を磨く」とかあるけど、
そもそも、IT業界が扱うスクリプトって、必ずしも論理的とは思えない・・・
(むしろ、直感的かも?)




論理的をGooで調べたら、
1 論理に関するさま。「―な問題について書かれた本」
2 論理にかなっているさま。きちんと筋道を立てて考えるさま。「―に説明する」「―な頭脳の持ち主」
⇒ ろんり【論理】の全ての意味を見る

となっていて、論理を見たら
1 考えや議論などを進めていく筋道。思考や論証の組み立て。思考の妥当性が保証される法則や形式。「―に飛躍がある」
2 事物の間にある法則的な連関。
3 「論理学」の略。

となっている。ということは、
「おまじない」
とかいって、プログラムを書いたり、フレームワークで、前後は分からないけど、
ここに値をセットすると表示できるというのは、論理的じゃないんですね。
わかります・・・

でもそうすると、現場では、論理的なプログラムは、あまり書いていないかもしれない(^^;)
(直感的で分かりやすくはなってきているんだけどね)




では、論理的に書くことを考える。

  ・ソクラテスは、人間である
  ・人間は、死ぬ
  ・だから、ソクラテスは死ぬ

というのは、三段論法で、演繹的な論理とされる。

これを、プログラミングで書くと、

function isソクラテス死ぬ()
{
    カテゴリー=getカテゴリー("ソクラテス")
    生死=isカテゴリー死ぬ(カテゴリー)
    return 生死
}

となる。でも、このような考えの流れに書くものばかりではない。




例えば、sqlの検索で結果を得たい場合は、
SELECT 結果
  from 結果が入っているテーブル 
  (inner,left,right) join 結果、中間結果が入っているテーブル on 他のテーブルの項目=このテーブルの項目
  where 問いについて書かれたテーブル.項目=問いの値

という形で、結果を先に出してくる。

ソクラテスの例で言うと

SELECT カテゴリー生死TBL.生死
   from カテゴリー生死TBL
   inner join インスタンスカテゴリーTBL on カテゴリー生死TBL.カテゴリーID = インスタンスカテゴリーTBL.カテゴリーID
   where インスタンスカテゴリーTBL.インスタンス名='ソクラテス';

のような感じになる。ちなみに、
  カテゴリー生死TBL(カテゴリーID int,生死 BOOLEAN)、
  インスタンスカテゴリーTBL(インスタンス名 varchar(50),カテゴリーID int)
のようなテーブルを想定している。





そして、webサービスで、インスタンス→カテゴリー、カテゴリ→生死サービスがある場合、

$.ajax({
:
URL:インスタンス→カテゴリーサービス
 data: "name=ソクラテス",
datatype: "JSON",
success: function(msg){
   $.ajax({
    :
   URL:カテゴリ→生死サービス
    data: msg,
datatype: "JSON",
success: function(msg){
alert( "ソクラテスは" + msg );
 }
}
});
   
と、(successの)中に書いていく。
この場合、今はソクラテスだけだからいいけれど、
ソクラテスとプラトンと、ジェミノイドを調べるという場合、
並列処理となり、同期を取る必要がある場合、難しくなってくる。





最近流行の、とうべき性が求められる場合、
順番、件数、関係なしにしたいことになる。
この場合には、ルールを以下のように並べるとできる

if (事前条件が満たされている && 事後条件は設定されていない) then
   事後条件=処理
endif

そして、最終的な事後条件が達成するまで、繰り返す。

ソクラテスの例だと、

ソクラテス生死=null
カテゴリー=null
インスタンス名=”ソクラテス”

while ソクラテス生死 == null
  ロジックループ = false

  // ルールStart
  if ( カテゴリー != null && ソクラテス生死 == null )
     ソクラテス生死 = isカテゴリー死ぬ(カテゴリー)
     ロジックループ = true
  endif

  if ( インスタンス名 != null && カテゴリー == null )
     カテゴリー = getカテゴリー(インスタンス名)
     ロジックループ = true
  endif
  // ルールEND

  if ( ロジックループ==false )
    print("ルールが足りないので、処理できず、無限ループになる")
    break;
  endif
loop

なかんじです。

この場合、事前条件と事後条件だけ分かれば、論理の道筋は、プログラマが
知る必要はない(というか、ルールで書く場合、わからないほど、複雑なものを書く)
この場合、順番も関係ない(わざと、isカテゴリー死ぬから、書いている)




つまり、いまどきの、
   AJAXとか、
   SQLとか、
   とうべきせいのあるスクリプトや
   ルールベースは
順番に書いていかないし、とくに、最後のルールベースなんて、
筋道わかんなくってもOKになっている
(やりたいことを直接書く)

って、こういう時代に、「筋道立てて、プログラムを書く書き方を教わっても・・・」
使えるところは、あまり無いかもしれない
(昔みたいに、そもそも、長いコードを書かないんだよね・・・)

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

PHPで、ある対象文字列中に複数あるキーワード(文字列)が1つでも含まれているかどうかを知りたい

2015-10-26 16:17:40 | PHP
トライ木、パトリシアツリーを作成するのは除く。
KMP(クヌース–モリス–プラット)法でごにょごにょすれば、というのも却下。

そうすると、方法は3つくらい?

1.foreachを使って、
    各キーワードが対象文字列中にあるかどうかをチェックする
  のを、全キーワード分行う


[PHP][疑問]ある文字列が、複数のキーワードのうち一つでもマッチするか判定する方法について
http://www.happyquality.com/2012/02/04/1959.htm

のはじめのほう


2.正規表現をつかう。キーワードを|(OR)でつなげて、 preg_match

上記サイトの下のほう、または(具体的には)

PHPでの文字列検索について教えてください
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1186431091

の解答


3.複数のキーワードを1つの配列とする。str_replaceでその配列を渡して、置き換えが起こるかチェック


ある複数の単語が文章中に含まれるかどうかを調べる方法
http://honey8823.hateblo.jp/entry/2015/08/05/173129



なんか、1が、早いという結果?
やっぱ、ソフトでがんばるより、ハードを早くしたほうが「勝利」だよね(^^;)

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

ドローンをAndroidで操作したりGoogleMapと合わせるのに必要そうなオープンソース

2015-10-26 12:24:24 | ネットワーク
10月25日オープンソースカンファレンス2015 Tokyo/fallに行って聞いてきた内容のメモメモの続き。

つぎは

オープンソースのドローン用フライトコントローラー「Dronecode」の概要

をメモメモ




Dronecode:Linux Foundationのプロジェクトの1つ
  yacto,TIZEN,Auto motive Grade Linuxなんかも同じレベル
  TIZENとAuto motive Grade Linux
   →大手企業が参加

Linux foundationによるDronecodeの概要
→ハード、ソフトとも公開
 マルチコプター、無人ビークル、VTOL
 ぱろっと、日本国内企業も参加
 ROSの管理元も

ドローンを取り巻く環境
・DJI社が有名:完全垂直統合
・DroneCodeの中心メンバーは3DRでMakersのクリスアンダーソンが率いる
3.3のベータからの6ヶ月間RCが1~8

なぜDroneCodeが必要か?農業用ドローンで考える
・無人機での農薬散布:散布量が決まっている
  1分でまく(均一に)
  ポイントを指定してはいけない→見える範囲で人がやる
   →一定速度でまくのが、むすかしい
   →でもそういうドローンはない
     →フィードバック機能がないから


・本来のフライトにかかわる部分はそのまま使用
・ポンプのモーターを飛行速度で制御する部分を追加
・ハード的にもポンプのモーターの速度コントローラーも作りこむ
→本来のアプリに必要な部分

オープンソースハードウェア紹介
・マイコン系
 PX4→PIX HAWK→
 APM2.6
 PIXHawk Fire Cape(PXF):びーぐるぼーど Ubuntuで制御するドローン
 NavIO+ らずぱい2+ボード らずびあんでうごく

ドローンアプリの開発「Dronekit」
・フライトコントローラーに制御・アプリを作れるSDK
 →オープンソース
・テレメトリデータなども簡単に受け取れる
・Android,PC(Python)、クラウド

Dronekit for Android
・Androidからドローンへ制御コマンド
 データ受信
夏にセミナーがあった

Dronekit Python APIの概要
・ちゅうしんてきAPI すべてできる
。自律飛行
・非同期
・Waypointの作成と管理
・ラジコンチャネルの書き換え

Dronekit Cloudの概要
・電波法上日本では飛行しているものが、直接クラウドと通信できない
  一回地上波で受けて、クラウドへ
  ログの保管
  ログ解析
    JSON,Kmz

Dronekitを使うと?農業用ドローンで考える

DronecodeとROSの概要
2か所
・フライトコントローラー
・オフビークル(地上局)
フライトシュミレーションができる
すらむ:自己位置推定

すぐに試せるROS対応フライトコントローラー

オープンソース国産フライトコントローラーの開発
96ボード Visual スラムを動かす

大学、研究者向けDronecode対応ドローン
→共同購入しましょう!

国内でのDronecodeの活動
 Facebook

DCoJA(どこじゃ)の設立
→Dronecode Japan Association (DCoJA)
 勉強会などを行っていく予定

FPVを使う場合
 →3陸特をとって、1G帯でできる

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

OpenFlow1.3対応のオープンソース「Lagopus Switch」を聞いてきた

2015-10-26 09:20:06 | ネットワーク
10月25日オープンソースカンファレンス2015 Tokyo/fallに行って聞いてきた内容のメモメモの続き。

つぎは

オープンソース!OpenFlow1.3対応!
日本初のネットワークスイッチOS「Lagopus Switch」

をメモメモ




今日覚えてほしいこと
・ネットワークはプログラミングできる
・サーバーで動作するソフトウェアスィッチ

現状のネットワーク機能の課題
・多様なユーザーニーズ
・自律分散
・装置の制限
・人手中心のオペレーション(CLI全盛)

既存スイッチCLIの例(魔法の言葉)

なぜSDN
・大規模なデータセンターを低コストに運用したい
・構成変更を迅速に行いたい
・サービス要件からネットワークを設計したい

どのように
・ネットワーク機器の制御部をプログラム可能に
・ネットワークをプログラムから触れるように

制御と転送を分離(OpenFlow)
・利点・プロトコルおよびスイッチ仕様の標準化

OpenFlow概要(スイッチの動作)
・IF THEN(マッチ&アクション)
・L1~L4まで
  Forward
  Drop
  Modify Field
 →ハードウェアによる

IPのデータ転送
・IPは相手先で転送
・OpenFlowは、宛先、送信元、トラフィックの捻じ曲げ可能

データセンターでの例
・データセンターにおけるネットワーク仮想化の課題
・従来技術を用いた場合の課題
・OpenFlowによる構成(Hop-By-HOP)
・SDNを構成するオープンソース
  コントローラー
  スイッチ OpenVSQITCH,

OpenFlowでSDNを体験してみたい
・NW制御部
・データプレーン:OpenVSwitch,Lagopus,LINC

Lagopus
・NFVやSDNを実現するソフトウェアコンポーネントを提供
・ソフトウェアパケット処理の適応領域の拡大
・ネットワーク研究のツール・ライブラリとしての活用

ネットワーク
 ショートパケット:134サイクルしか使えない・・・
 1KBは1600クロック

Lagopus
・OpenFlow1.3に最も適したソフトウェア
・DPDKを活用した高性能データプレーン
・外部連携API

ネットワークのエッジのノード

Lagopus vSwitchの構成

パケット処理の高速化

IntelDPDK
・X86アーキテクチャに最適化されたデータプレーン用ライブラリとNICドライバ
・BSDライセンス
・ふつうのサーバーで80GBPS


性能向上に向けての工夫や実装
 →詳しくはソースコード
性能評価
・10GBPSは超える

オープンソース化
 2014年7月31日に公開

柔軟なネットワーク
・展示でも
  半透明人間カメラ(202の奥)
・SDN Japan2014
  前に来たら早いネットワーク
・ブラジル-日本間の映像伝送実験

SDN IXの背景
・DDOSのトラフィック削減→OpenFlowを使う

まとめ
・高速なLagopusソフトスイッチをオープンソースとして提供

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

分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向

2015-10-26 03:19:46 | Weblog
10月25日オープンソースカンファレンス2015 Tokyo/fallに行って聞いてきた内容のメモメモの続き。

つぎは

分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向

をメモメモ




・自己紹介
・Hadoop概要
 オープンソースの大規模分散処理フレームワーク
 Doug CuttingがJavaで開発
 Hadoop→Dougさんのお子さんのお気に入りのぬいぐるみ

10年目のHadoop
・MapResuce
・YARN
→大容量、多件数
 →MapReduceにこだわらない
  →ここ数年、あらたなステージへ

Hadoopの構成
・集中管理型の分散システム
・おおきく2つのコンポーネント
  分散ファイル   HDFS
  分散リソース管理 YARM(YARN上でMapReduce)
→集中管理型の分散システム
 並列分散処理の面倒な部分を解決してくれるミドルウェア

HDFSとは
・分散ファイルシステム
  外から見ると1つの巨大なファイルシステム
  hdfs dfs -put ファイル名
  hdfs dfs -ls

 舞台裏では
  ブロックサイズで分割される
  複製され、スレーブサーバーに格納

MapReduceとは
 複数ワーカーで並列に処理できる仕組み
 Map処理、Reduce処理
 YARN上のアプリケーションの1つ
 hadoop jar サンプルジョブ.jar

YARNとは
・Yet Another Resource Negotiator
・「蓄積+処理」の構成から、リソース切り出し
・理由
  Hasoopのスケーラビリティ
  スループット向上
  MapReduce以外の処理実行

マスターサーバーの負荷軽減
Jobtracker TaskTracker
→マスターサーバーの管理コストが大きい

YARN
 Resource Manager NodeManager
→アプリケーションの管理はメンバーに依存
 リソース情報はリソースマネージャーで管理
 ますたーサーバーの管理コスト減る

スループットの向上
・Mapスロット、Reduceスロット
→コンテナ単位で払い出し(Map,Reduceの区別なし)

Hadoopエコシステム
・Hadoopはためる・処理するに特化
 →エコシステム

。MapReduceを直接Javaで書くと、こーどが。。
→エコシステム
  Apache Hive:HiveQL(SQLとは若干違う)
  Apache Pig

よくあるぎもん
・SQLのような複雑な処理→組み合わせて

低レンテンシ処理は苦手

Apache Tez:YARN上での処理に最適化された実行エンジン
 DAG(ゆうこうグラフ)により実行計画
 GUI HiUE
 メッセージかふか

最新動向
・大規模、多件数:仕組み手法は成熟
・MapReduceにこだわらない:ベースは完成、成長著しい
・新たなステージ:群雄割拠
  SQL On Hadoop

あらたな分散処理エンジンの出現
Spark
・オンメモリで実現

まとめ


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

オープンソースになったマイコン開発環境.Net Micro Frameworkの紹介

2015-10-25 23:15:26 | Weblog
今日(10月25日)オープンソースカンファレンス2015 Tokyo/fallに行って

オープンソースになったマイコン開発環境.Net Micro Frameworkの紹介

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





・.NET MicroFrameworkとは
・新プラットフォーム
・LLIUM

.NET MicroFrameworkとは
・もともとは、マイクロソフトリサーチ開発の組み込みOS
・VC#,VBで開発、.Netアセンブリを中間コードインタープリタで実行
・豊富なドライバとライブラリ
・オープンソース、(Apache V2)
・30種類以上のプラットフォームに移植
  SOC,業務アプリ、IoT

.Net Micro Frameworkの歴史
・2001年 時計のOSとして
・2010年でOpenSource
・2015年 V4.4,GitHubde

NETMFの本質
・元WindowsCE未満のOSだった
 →びじねすにならん
・2010年にオープンソース
  GR-Peaceでてきた
・GitHub:NETMFになっている

アーキテクチャ

ライブラリ
  CLR
  PAL
  HAL/OS

 2種類の実装方法
   直接/OSの上に

OSとしての提供機能
・TinyCLR
・全部入っている
・4.4になって、サポートはcortrx-M4

ドライバとサービス

プラットフォームとアプリケーション

開発方法
・SDK:Visual Studioでいきなり
  →移植済みのボードの場合
・PK
  →動いていないボードの場合

何ができる?
・コーディング:.Net Gadgeteerで簡単に

デバッガインターフェース
 シリアル
 USB
 LAN(TCP/IP)
OS更新時のブートスイッチ

.NET Gadgeteerとは?
  ハードウェア
  ソフトウェア

IoT入門キット

V4.4対応版

V4.4で何が変わったか?
・Git Hubへ
・SDK開発ツールの変更
・Visual Studio2015対応。ただしWindows10は不可
・ARM-CMSIS対応
・テンプレートが2CPU/2ポートに激減

移植前のチェック
・ターゲットプラットフォーム
  RAM/ROM容量
  CPU-アーキテクチャ
  最低メモリ目安
・コンパイラとデバッガ
 Windows上で動作するクロスコンパイラ
 JTAG-ICE
・ネイティブ実装、OS on OS

移植に必要な知識
・組み込みシステム全般
  割り込み処理
  ブートローダー
・移植対象のCPU,ターゲットボート
  データシート、回路図、メモリマップ、クロック
・ツール
  Toolchain(コンパイラアセンブラ、リンカ、らいぶらりあん)

V4.4
 (Express版不可、Community版可)

ハードウェア環境
・STM32系を使えばほぼ間違いない
 →オンボードデバッガ
・そうでない場合は自分で用意

移植の作業
・開発環境と基本設計

・ビルド・デバッグ
 Tiny CLRに手を入れるとおかしくなる

InterOp(いんたーろっぷ)の実装
・NETMF標準APIにないOS機能をアプリケーションから呼び出す
 →自分で作れる

ビルド&デバッグ
 ・Naive Sample
 ・Tiny CLR
 ・Tiny Booter(MF Deployでつなぎ、実機へ)
3段階の開発

LLILUM(りりうむ)
・NETMFと同じ開発者が開発している組み込み
・UWP互換のILをアプリケーションとして実行できる



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

平鍋さんが、永和システムマネジメントの社長になったらしい

2015-10-25 00:12:11 | Weblog
ここ

永和システムマネジメントの社長に就任しました
https://anagileway.wordpress.com/2015/10/24/%E6%B0%B8%E5%92%8C%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%83%9E%E3%83%8D%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E7%A4%BE%E9%95%B7%E3%81%AB%E5%B0%B1%E4%BB%BB%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F/


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