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

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

NTTグループがiPhoneを販売

2013-08-16 19:05:51 | ネットワーク

NTTグループのNTTレゾナントは、SIMフリー版のiPhone 5/iPad 4/iPad mini等と、同社のSIMカード「OCN モバイル エントリー d LTE 980」のセット販売を開始した。同社が提供するオンラインショップ「goo SIMSELLER」で販売を行う。


NTTレゾナントって・・・Goo?

NTTグループがiPhoneを販売、SIMフリー端末とSIMカードのセットで
http://headlines.yahoo.co.jp/hl?a=20130816-00000024-mycomj-sci

(太字は上記ニュースより引用)

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

弥生のクラウドサービス、会員でなくても申し込み可能に

2013-08-16 12:52:47 | Weblog
もともと

「やよいの店舗経営 オンライン」は、経理の知識を必要とせず、日々の売上や仕入、経費といった売上日報の情報を入力するだけで収支状況を把握できる弥生初のクラウドサービスとして、2012年9月3日(月)よりサービスを開始していた。


のですが、


これまで、同サービスの申し込みは弥生のパートナー会計事務所(弥生PAP会員)経由のみだったが、8月15日より、利用者が弥生ホームページから申し込みをするだけで、同サービスを利用できるようになる。


とのこと


 初期費用は無料、月額利用料は1,470円(税込)、利用開始日より最大2ヶ月間は無料となる。また、利用料には、弥生による操作サポート費用も含まれる。支払い方法は現時点ではクレジットカード払いのみ。順次拡大する予定

だそうな。もともと強いサービスである弥生が、クラウド化して、利用しやすくなると、
これは、ちょっと、面白い展開になるかも??
(太字は、上記サイトより引用)


会計ソフトの弥生、クラウドサービス「やよいの店舗経営 オンライン」を直販開始
http://www.sbbit.jp/article/cont1/26747



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

E-ラーニングの成績管理は、Tin Can APIで、コンテンツと分離できるらしい

2013-08-15 19:02:08 | Weblog
現在、E-ラーニングの標準規約としては、SCORMがある。
SCORMは、コンテンツをひとまとまりにして、作成する。
つまり、SCORMで成績管理をしようとした場合、
コンテンツは、SCORM用のコンテンツとして纏め上げないといけない。

最近のE-ラーニングの新規約Tin Canは、そうではないらしい。
Tin Can APIは、成績管理のための受け渡しデータがJSON形式で決まっているようだ。


次世代SCORM – Tin Can API
http://scorm.jpn.org/projecttincan


つまり、
・成績管理サーバーをたてて、そこで、成績管理用のWebAPIを用意しておく
・コンテンツは、成績についての情報を、Web(REST)形式で、
   成績管理WebAPIを呼び出して、情報を渡す。
     →Tin Can APIにより、受け渡しデータはJSON形式が決まってるみたい
・成績管理サーバーは、そのデータを受けとって、DBに保存
・必要なときに、DBのデータをみて成績処理!

というように読める。

こうだとすると、コンテンツは、成績管理サーバーのWebAPIをAJAX形式で
呼び出せばよいだけとなり、便利便利に読めるんだけど、そういう意味なのかなあ?



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

ファイルのアップロード

2013-08-15 15:26:34 | トピックス
各フレームワーク、言語で、ファイルのアップロードについて、調べてみた

■Java フレームワーク

・Struts

●Struts-18.ファイルアップロード
http://www.javaroad.jp/opensource/js_struts20.htm


・Struts2

struts2でファイルアップロード(FileUpload Interceptorの設定、初期値、制限)
http://atohi.com/blog/post/2010/04/24/struts2e381aeFileUpload-Interceptere381abe996a2e38199e3828be8a8ade5ae9ae4ba8be9a085e38081e5889de69c9fe580a4e38081e58299e5bf98e98cb2.aspx



・サーブレット

●Servlet-12.ファイルアップロード
http://www.javaroad.jp/servletjsp/sj_servlet12.htm


・Spring

第7回 SpringMVCで簡単!ファイル・アップロード
http://itpro.nikkeibp.co.jp/article/COLUMN/20080307/295677/


・JavaEE

Servlet3.0で追加されたファイルアップロードを使う
http://d.hatena.ne.jp/jabaraster/20110330/1301466968


■PHP
・PHP

ファイルのアップロード
http://www.php-labo.net/tutorial/php/upload.html


・Cake PHP

CakePHP 画像や各種ファイルのアップロードフォームを作る
http://onlineconsultant.jp/pukiwiki/?CakePHP%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B


■Ruby

Rubyでファイルのアップロード
http://shinob.cocolog-nifty.com/mix_dvd/2008/09/ruby-6381.html



■結論
どの言語でも、やりかたは、たいていWebに載っている。


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

正常系と異常系の区別とドキュメントの書き方について

2013-08-15 12:12:28 | トピックス
正常系と異常系について、テストの観点から書かれているものが多い。
そして、区別が曖昧なものも多いです。
ところが、ソフトウェア工学の観点から見ると、これは、明確に分かれます。
  →ユースケース記述で

そして、開発上、重要な意味を持つので、ちょっと所見を書いてみます。




■正常系とは

<<ソフトウェア工学的には:たぶん>>
・事前条件が成立するときに、事後条件が成立するケースが正常

<<解説>>
 ある処理に対して、入力値が適切であるとき、
 処理終了後の状態が、期待している通りになっているもの
   →期待している成果物ができている状態

■正常系でないとは
<<ソフトウェア工学的には:たぶん>>
2とおりある
   ・事前条件が成立しないケース
   ・事前条件は成立するが、事後条件が成立しないケース

<<解説>>
正常系でないのは、2とおりあります。

   ・そもそも、入力値に間違い、エラーがある
     →入力チェックなどではじきます。

   ・入力値は正しいが、処理中に何らかの問題を生じ、
    期待した状態に達しなかった
     →通信エラー、DB中のエラー

2種類を一緒にして異常系という場合と、
ばらばらにわけで、エラーと例外とか、いろんな言い方を
する場合があります。

時と場合と会社とプロジェクトリーダーと
リーダーの気分によります。




■ドキュメントに書く場合

 正常系は、いくつものケースがありえます。
 そのため、正常系でも
    一番単純なケースや
    一番使われる頻度が多いケース、
    法律や慣習なんかで、これが基本形
 と決まっているケースをメインとして記述していき、
 そこから、「こういう場合は」と派生して書いていきます。

 さらに、異常系は、正常系に対して、
   こんな入力の場合は・・・

 というふうに書いていきます。




■ソフトウェア開発上の意義

 正常系は、結局、目的を達しているケースなので、
 このケースが出来ない場合は、目的を達していない
  =開発失敗
 ということになります(当たり前品質)。

 一方、異常系は、正常形ができた上で(=目的を達した上で)、
 正常でないケースに対応するということになるので、
 このケースが出来なくても、目的は達成する可能性があります。
 (魅力的品質)

 ということで、正常系が確実に動くことを、早く保証したいわけです。
 そうしないと、話がひっくり返ってしまうことがありますから。

 そこで、正常系と異常系をわけ、正常系に関して、より重視するという
意義が、あったり、なかったりです。

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

ブラック企業って、結局、オペレーションが確立していないのを上が認識してない会社だよね!

2013-08-14 15:26:32 | Weblog
ブラック企業の特徴として、ブラック企業であることを、
上層部が認識していない場合が多い。

いや、例を挙げられるけど、挙げると、その会社から
訴えられたりするので、例は挙げないけれど、
  会社が体育会系で、
  社長が、頑張ることがすばらしいと本気で思っていて、
  最近の若い人は・・・とか言い出すと
かなりやばそう(^^;)




そして、これらの企業について、さらにいえるのは、
  会社のオペレーションが確立していない
点にある。
ここでいう、オペレーションというのは、マスコミなどがいう、
戦略とか、そういう話ではない。ブラック企業でも、たいてい、
その辺はうまくいっている。

 現場(店舗)のオペレーションが確立されていないという
意味で、店長や現場リーダー、責任者(主任・課長)に依存
しているという意味。


だから、無駄にがんばるしかない。頑張ってできると思うしかない。
でもできないので、過労死して、ブラックになるというかんじ。

オペレーションが確立していないことを問題にしないので
  いろんな業種に進出できる
  現場のリーダー(店長、主任・課長など)によって、差が出る。
    属人性強い
という特徴がある




と、ここまで書くと、ソフトウェア企業がブラックなのが、
判ってくれると思う。

ソフトウェア開発は、体育会系のノリの場合が多い。
頑張れば、どうにかなる。
  がんばって、要件を挙げれば、漏れがなくなる?(^^;)
  ネットで調べ上げれば、対策はみつかる?(^^;)
  頑張れば、バグはつぶれる?(^^;)
  コーディングも、根性で徹夜ですか(^^;)

そして、現場のオペレーションは、
  SIerの人も、
  下請けの偉い人も

わからない。そこで、リスクがどこにあるかわからず、
仕事を請ける。そのため、現場のリーダーがすばらしく、
開発を見切ってしまう場合には、問題が起こらない。

そうでない場合は、問題が顕在化し、デスマーチになるという
属人性を持っている。

この辺がわからないと、結局、この業界は、ブラック企業が続出なわけで、
ブラックを競い合う世界になってしまう。

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

JQueryを考えると、JavaEEのViewはJSP+サーブレットのほうが、JSFよりもいい?

2013-08-14 10:00:37 | JavaとWeb
今は、お客さんがJQuery出作った画面を、いろんなサイトで見てしまっているので、
JQuery部品を前提としたサイト(DatePickerとか)を要求してくることが多い。
そうなってくると、まずHTMLで作成して、JQueryで動作を確認した後、
それをもとに、Viewとして利用できることが求められる。




そうすると、Viewに要請されるのは

1.JQueryが埋めこめられ、連携できること
2.HTMLの構造と乖離していないこと
3.サーバーサイドのプログラムが柔軟に書けるもの

ということになってくる。
そうすると、Viewにタグをつかわずに、
HTMLに制約をかけずに、そのままViewにでき
Javaのプログラムを書ける

(素の)JSPということになってくる




もちろん、JSFでも、タグをまったく使わないということはできるけど、
それなら、わざわざJSFといわなくても、JSPでいいことになる。

 ここでJSFといっているのは、JSFで制御するためにJSFのタグを使った
場合の話で、そうなると、タグを入れる分、JQueryが埋め込みにくい。
(タグを入れてしまうと、HTMLとして表示できなくなるので、
 タグを入れた後では、デザイナーさんに直してもらいにくいから)

 さらにNetBeansで作ると、ファイル構造も変わり・・・

そうやって考えると、
JavaEEのViewはJSP+サーブレットのほうが、JSFよりもいいんじゃないか?

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

JavaEE6を使ってみた(JSP+サーブレット+EJB+JPA)

2013-08-13 18:49:27 | JavaとWeb

NetBeans+GlassFishでEJB3.1+Servlet3.0+JPA2.0なJavaEE6アプリを3分で作る
http://blog.ik.am/entry/view/id/99/titie/NetBeans+GlassFish%E3%81%A7EJB3.1+Servlet3.0+JPA2.0%E3%81%AAJavaEE6%E3%82%A2%E3%83%97%E3%83%AA%E3%82%923%E5%88%86%E3%81%A7%E4%BD%9C%E3%82%8B/

っていうサイトがあって、やってみたんだけど、
一部、ツッコミも入れたいところ有りつつ、
結構面白いので、載せておきます。




■インストール

上記サイトに書かれている、

https://netbeans.org/downloads/index.html?pagelang=ja

からダウンロードできるのですが、そのまえに、Java7が入っていない人は
JDK7を先にインストールしたほうがよさげ。

JDK6しかいれてなかったら、途中で動かなくなり、後から入れたら、
プロジェクトでちょっといじらないといけないことになり、面倒だったから。




■Webアプリケーションプロジェクト作成

上記サイトに書かれている通りの操作でOK
ちょっと時間がかかる。

ここで、プロジェクトの下にindex.jspができ、それが表示される。




■JPAエンティティ作成

上記サイトに書かれているとおりで作成できる。
べんりべんり。




■EJB作成

ここの修正箇所がはっきりかかれていないけど、
HelloSessionBean の中をすべて、書く。すなわち、
   @PersistenceContext
    EntityManager em;

    public List1<Customer> findAllCustomers() {
        return em.createNamedQuery("Customer.findAll").getResultList();
    }



(<>は、本当は半角)
を追加する。インポートも追加するが、それは、上記の追加をすると
警告が出るので、その黄色く出た警告をクリックすれば、修正(インポート追加)
ができる。




■EJBをたたくサーブレット作成

上記サイトを読むと、tryの中だけ変えるように読めるが、
ほか、もう一箇所変える。
public class HelloServlet extends HttpServlet {
の下の、

@EJB HelloSessionBean ejb; // さっき作ったEJBをインジェクション

を追加。これに伴うインポートも行う(警告が出るので、クリックして)

さらに、

// ここから追加

から

// ここまで

をコピーして、実行。




つまり、基本的には、上記サイトに書いてあるとおりで
作れる。結構簡単。

設定ファイルをごしごしして・・・
というのがいらないぶん、簡単かもしれない。

今、さらに、もうちょっといじって、普通に使うっぽくしてみたので、
それについても、今度書く。


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

C言語での組み込みの開発方法について聞いてきた その2

2013-08-13 16:29:26 | トピックス
前回の続き
内容をメモメモ



【スイッチ】
・アクティブLOWとアクティブHighがある
  →それを感じさせないスイッチの状態の関数GetSW(int SW_id)
   を作ればよい

 GetSW(int SW_id)
  ・ピンモードをGPIO
  ・プルアップに設定
  ・出力に設定
  ・マスクなし(0)
  ・if( PIN&0x10 == 0x10)
(0x10がスイッチがおされると1になるとき)
    のような形でアクティブHighはつくる
    アクティブLOWは!= 0x10と聞く

【チャタリング・長おし】
 forで一定時間まつ

【通信】
・RS232CをUSBで行うUART
・RS232Cの通信CTS:アサートすると、通信とめる

・通信関数
  InitUART(int rate)
   ・UODLLレジスタ:ボーレート
   ・U0LCRレジスタ:動作モード
   ・U0LSRレジスタ:以下を初期化
      5ビット目→送信バッファエンプティ(送信できる)
      1ビット目→受信完了
   ・U0THRレジスタ:送信バッファ(下位8ビット)
    U0RBRレジスタ:受信バッファ(下位8ビット)

  SendData(char c)  送信
   ・U0LSRレジスタ:5ビット目が1であること確認
   ・U0THRレジスタ:送信データ書き込み

  RecvData()  受信
   ・U0LSRレジスタの最下位確認
   ・U0RBRの下位8ビットを読み出す

・実際に行うときは
  ・ボードをプログラム書き込みでなく、通信用にして
  ・TeraTermから入力
     端末:モード設定注意!変更必要かも

【割り込みの基礎知識】
・関数名が決められていたりする(interrupt_handler())
   →main関数とのやり取り:グローバル変数で
・VIC=Vectored Interrrupt Controller
    →いろんな情報が集約されている
・mainで開始して、
 interrupt_handler()で
    割り込み判断:割り込みあったら
      処理
      割り込みクリア

【スイッチの割り込み】
・全体的に
  main
   ・EnableSWInt();   // 割り込み初期化

  interrupt_handler()で
   ・if (SWInt() != 0) // 割り込みあったら
    {
      // 割り込み処理
      SWIntClr(); // 割り込みクリア
    }
      
・EnableSWInt();
  ・GPIOピンに入力セット
  ・割り込み有効化
     VICIntSelect設定
     VICIntEnable設定
     IO0INTERレジスタ=立ち上がりに反応させるSW指定
     IO0INTEFレジスタ=立ち下がりに反応させるSW指定

・SWInt()
   ・割り込み判定
     IO0INTSTATUS & 01 チェック

・SWIntClr()
   ・割り込み解除
     IO0INTCLRセット

【タイマー割り込み】
・全体的に
  main
   ・StartTimer(int msec) // 割り込み時間:初期化

  interrupt_handler()で
   ・if (TimerInt() != 0) // 割り込みあったら
    {
      // 割り込み処理
      TimerIntClr(); // 割り込みクリア
    }
      
・StartTimer()
  ・VIC設定
     VICIntSelect設定
     VICIntEnable設定
  ・タイマーリセット
     T0TCR
     T0CTCR
     T0PR
  ・割り込み時間セット
     T0MR0に引数*1ミリ秒の割合(4650くらい?)
  ・タイマースタと
     T0MCR
     T0TCR

・TimerInt()
  ・割り込みチェック
     T0IR & 0x1

・TimerIntClr()
  ・割り込みフラグリセット
     T0IR

【通信割り込み】
・全体的に
  main
   ・InitUART(ボーレート); // 通信初期化
   ・EnableUARTRXInt();  // 受信割り込みイネーブル

  interrupt_handler()で
   ・if (UARTInt() != 0) // 受信割り込み
    {
      // 割り込み処理
    }
      
・EnableUARTRXInt();
  ・VIC設定
     VICIntSelect設定
     VICIntEnable設定
  ・U0IERの1ビット目をセット
  
・UARTInt()
  ・U0IIRの1ビット目をチェック

【割り込みハンドラを呼び出す仕組む】

アセンブラで・・
割り込みベクタ
0x00 Reset
  :
  :
0x18 IRQ
B _startup
nop
  :
  :
B _IRQ_handle

_IRQ_handle:
  :
  :
  interrupt_handler()
  :
  :



つまり、はじめ、0x00のリセットから割り込み処理が実施され、0x18のIRQにいくと
B _IRQ_handle
が実行されて、_IRQ_handleに飛ぶ。
この_IRQ_handle内でinterrupt_handler()が、実行される。




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

Windows Vista以降でApacheを使うとハマる罠まとめ

2013-08-13 10:21:41 | ネットワーク
うちはXPしか使ってないので、知らなかったんだけど、
Windows Vista以降でApache+PHP(Xamppでなく)の
環境だと、いろいろはまるらしいことが

Windows Vista以降を使うと生きるのがつらい理由
http://uzulla.hateblo.jp/entry/2013/08/12/013207

に書いてあって、これが話題らしい。

う~ん、XPからの移行、いろいろありそうだにゃ~・・・




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

自動化するのがいいのなら、CakePHPでBakeしてる人は、リア充なの?

2013-08-12 14:22:57 | Weblog
あ、このデータか・・・
ごめん、知らなかったよ。。。

日本は仕事してる割に、生産性が低い、ノルウエーは高い
という話をきいたんだけど・・・

これ

「超高速開発コミュニティ」を設立――日本が19位で黙っているわけにはいかない
http://www.atmarkit.co.jp/ait/articles/1308/06/news121.html

の真ん中のグラフだね。

ノルウェーは2位で120455、
日本は19位で73374ですか。

たしかに、労働生産性はひくいっすね。

だから自動化っていう話もわかるけど、
そうすると、CakePHPを使っている人
とくにbakeで作っている人は、Happyか?
っていう話になる・・・

・・・どうなのどうなの?

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

PSPとゲーミフィケーションをあわせると、生産性向上?

2013-08-11 09:49:29 | Weblog
ソフトウェア開発のプロセス改善手法の1つにPSPがある。

【中級】一流エンジニアのタイムマネジメント 最終回
分単位で自己管理する米国初の改善手法「PSP」
http://itpro.nikkeibp.co.jp/article/COLUMN/20060911/247647/


ある作業を行うのに
(1)どのくらいの時間かかるか見積もり
(2)実際に、かかった時間を記録し
(3)(1)と(2)を比較する
これを繰り返して、(1)と(2)の差分をプロットしていくと、
最終的には、差がなくなるという話(=正確に見積もれる)

実は、やってみると、これだけで、時間短縮できてくるのだが、
もっと効果的にするには、ゲームフィケーションの要素を加え

(1)どのくらいの時間かかるか見積もり
   時間以内に終わったら、自分へのごほうびを決める

(2)実際に、かかった時間を記録し

(3)(1)と(2)を比較し、
   時間以内に終わったら、自分へのごほうび

自分へのごほうびは、お昼のデザートとか、お菓子とか?
ってすると、ゲーミフィケーションの要素が入って
生産性があがるかも?

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

ミクシィ、上場来初の赤字転落

2013-08-10 10:20:13 | Weblog
時代が終わった?

ミクシィ、上場来初の赤字転落・4~6月期 「厳しい状況だが立ち止まらない」と朝倉社長
http://www.itmedia.co.jp/news/articles/1308/09/news110.html


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

2進数から、コンピューターの教え方が飛びすぎている気がする

2013-08-09 20:05:49 | Weblog
一般に、コンピューターを教えるとき、
2進数までは教える。
AND、OR,NAND,NOR、XORについては教える。

で、その先・・・

この話はぶっ飛んで、いきなり、プログラムの話とかにいっていないだろうか?
あんなに覚えた、2進数は、どこに使われているの?
みたいな・・・

その間を埋めないと、arduinoとか、組み込みとかをC言語で、何で制御
できるのか、よくわかんないことになるので、ちょっと、この間について
触れてみたい。




■記憶回路と周辺機器

 コンピューターは結局、情報処理をするものであるが、これは、
   情報:データを
   処理:処理加工する
 ことである。

 そして、データは、記憶装置に置かれる。
 入出力したデータも、記憶装置に置かれる。
 記憶装置というのは、フリップフロップを使うと作れて、こいつは、1といれたら、
 電気が入っている間、書き換えない限り1になる。0も同じ。

 で、いろんなロボットも、通信も、ディスクの書き換えも、結局は、電気信号の
0,1→電気的なスイッチON,OFFで行われ、それは、記憶装置のどこかに
つながっていて、そこのON,OFF(1,0)で決まる。

 だから、この、いろんな装置に繋がる記憶装置の0、1を、コンピューターで
制御できれば、コンピューターでいろんな装置が制御できることになる。
 じゃあ、このコンピューターで、いろんな装置に繋がる記憶装置の0、1をセット
できるのか・・・




■アドレス

 これら、いろんな装置に繋がる記憶装置の0、1の場所には、名前がついている。
 そう、アドレス。
 アドレスを指定して、ON,OFFを設定すればいい。
 ここでC言語。

 C言語では、ポインタという、アドレスを指定して、その中身を(*変数で)
みたり、セットしたりできたりする。
こんなかんじ。

volatile unsigned int *PINSEL0;
PINSEL0=0xE002C000;

こうすると、*PINSEL0で、アドレスE002C000の中身が見れる。
*PINSEL0=1で、アドレスE002C000の値を1にセットできる。
このアドレスE002C000が、ハードウェアの装置の入出力するところとつながると、
その装置を操作できる。

OS上だと、そういうところはアクセスできないが(OSで禁止されるので)
OSが無ければ、アクセスOKとなる。




■加算機

これで、いろんなロボット、センサー、入出力装置なんかのデータは、
取ったりセットしたりできるようになった。

つぎに、これを処理する。

結局、処理は、積分だろうが微分だろうが、最終的には、四則演算になり、
四則演算は、結局+に帰着する。なので、2進数の足し算ができればよい。

2進数の足し算は、

  信号Aと信号Bがあり、これが、Oと1のときがある。
  そのとき、桁上がりCと、答えXは、こんなかんじのくみあわせ

  AB|CX
----------
  00|00
  10|01
  01|01
  11|10

ここで、ABとCだけみると、ABが1のときのみCが1、
つまり、ANDなので、ABとCをAND回路で結べばよい
ACとXをみると、ABがどちらか1のとき1、
つまり、XORなので、ABとXをXOR回路で結べばよい

ANDやXORの回路はICとして売っているので、これを
線でつなぐ。こいつが加算機

現実には、こんなものが、果てしなくいっぱい並んでいる。
そして、計算している。これが、CPU(のアキュムレーター)




こんなかんじで、線から値をとってきて、計算して、その結果をまた線に返して
・・・を繰り返している。

ざっくり説明すると、こんなかんじ。



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

mrubyの事例とか

2013-08-09 16:04:44 | Ruby
OSSユーザーのための勉強会 <OSS X Users Meeting>の第4回mbuby
のときに聞いてきた話のメモメモのつづき(これでおしまい)




IIJによるmruby事例紹介
・SEIL(さいる):企業向けルーター
 アーキテクチャ
   NetBSDベース
   ルーティングエンジン
   コンフィグ管理システム

・ルーター:
  C,C++
    エラーハンドリング:割と大変・煩雑
    文字列処理:大変
    コンフィグ管理=mruby

・事例紹介1
  バックボーン計測
  プローブの開発にRuby→mruby化したい

・事例紹介2
  SEIL:イベントスクリプト処理

・事例紹介3
  SACM(サービスアダプターコントロールマネージャー)
  機器の自動接続、一元管理
  http://www.scam.jp/
  機械SA-W1は無償:月額で、機能に対してお金を払う
  SA-W1にmruby(レシピフレームワーク)
   →開発効率が上がる

・組み込み機器の開発プロセスが進化する
  今までの組み込み機器開発
   ドライバ、アプリすべてC
  今後
   速度が要求されるところC

・スクリプト言語があつい
  NetBSDカーネルでLuaが動く




福岡SCSKでのmruby活用
・軽量rubyへの取り組み
  mrubyの活用
  mrubyの啓蒙
  軽量ruby

・事例:産業用ロボット
  リアルタイムOS上で複数のmruby VM
  お絵かき上をロボットが追随
  RTOS:VxWorks タスク4つ

・今後の取り組み
  ロボットDSL
   JOB言語を覚えなくてもmrubyでロボットが動く

  MindstormNTXをmrubyで動かす
   きびしい?
   →新しいMindStorm
      Linux,ARM9,メモリいっぱい

  enzi
   http://enzi.cc
   mrubiを手軽に実行できるプラットフォーム
   実行環境はwebブラウザ(そのまま使える)
    →AWS上に構築
   Web上でボードシミュレーター
   Cortex-M4 168MHz
   RAM 192K+1M
   Rom 1M
   クロック落としたかんじでシミュレーション可能

   近日発売予定 6980円予定




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