2014年9月5日金曜日

Raspberry Piで無線LAN

Raspberry Pi をようやく触り始めた。

用途を色々考えたところ、持ち歩いて何かできるのがいいなぁと思ったので、

無線LANアダプタをつけて設定しようと試みた。


無線LANアダプタ











無線LANの設定方法は下記参照

  • http://kingyo-bachi.blogspot.jp/2013/07/raspberry-pilan.html
  • http://firtel.blogspot.jp/2012/09/raspberry-pilan.html


遅延対策
Wifi接続した場合、非常に遅い。
解消方法は下記参照

  • http://lowreal.net/2014/01/09/1
  • http://qiita.com/Hiroshi-Ito/items/77610be6e49de62a5b48

PowerManagment onからoffに変更すればよいが、そもそも何の機能なのか説明がない。
■調べた結果
パワーマネージメント機能が有効になると、消費電力低減を実現しながら、アクセスポイントとの接続は維持したままデータ通信を可能とするが、通信パフォーマンスが低下する。
以下参考ページ
  • http://manual.atmark-techno.com/armadillo-wlan/armadillo-wlan_software_manual_ja-3.1.0/ch07.html
  • http://www.hitxp.com/articles/software/ubuntu-fix-slow-wireless-internet-connection-speed-upgrading-11-04-natty-narwhal/

2014年2月19日水曜日

FTA資料まとめ

FTAをする際によさげな資料をまとめてみました。


  • トップ事象、一次要因、二次要因が重要になる。
    • システム全体を把握している人が実施した方がよい。
  • 観点として以下が重要
    • 抜け漏れがないか
    • 論理の飛躍がないか
※「FTAで不具合原因を追求する」が非常に分かりやすい。



リンク一覧






2013年12月12日木曜日

スタックポインタについて

ざっくりスタックポインタを調べてみた。

用語:
ベースポインタ:スタック領域の一番底

スタックの積み方

  • スタックポインタの演算タイミング
    • Full: 先に加減
    • Empty:後に加減
  • スタックポインタの進行方向
    • Descending:下降 利用するたびにSPが減算
    • Ascending:上昇 利用するたびにSPが加算される。
ほとんどのCPUについては、Full/Descending フル減算で実装されている。
ARMでは2*2=4パターンで実装が可能

  • ARMでは異なるソースファイル間での関数呼び出しなど全ての外部インタフェースに置いて、スタックを8バイト境界でアラインする必要がある。

関数呼び出しをする場合、呼び出し元がベースポインタの下に配置し、スタックを積んでいく。




  • 参考
    • http://hack.ninja-web.net/academy003-060.htm
    • http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204ij/Cacbgchh.html




2013年5月3日金曜日

隠しファイルに対してFileOutputStream.open() でFileNotFoundException例外

隠しファイルに対してFileOutputStreamのopenメソッドでFileNotFoundExceptionが発生する。
jdk-b63で解決しているのだが、一応念のため書いておきます。

http://bugs.sun.com/view_bug.do?bug_id=6350200


Exception in thread "main" java.io.FileNotFoundException: sample.txt (アクセスが拒否されました。)
       at java.io.FileOutputStream.open(Native Method)
       at java.io.FileOutputStream.(FileOutputStream.java:179)
       at java.io.FileOutputStream.(FileOutputStream.java:131)
       at java.io.FileWriter.(FileWriter.java:73)
       at sample.FileAccessSample.main(FileAccessSample.java:22)


以下のようなコードで発生する。


import java.io.*;

public class HiddenFileTest {
    // Main function, launches JFileChooser to select a directory
    public static void main( String[] args ) {
        try {
            FileWriter fw = new FileWriter( "C:\\temp\\file1.txt" );
            PrintWriter out = new PrintWriter( fw );
            out.println( "This is a test 2" );
            out.close();
        } catch( IOException e ) {
            e.printStackTrace( System.out );
        }
    }

}

2013年4月7日日曜日

構成管理のBranching Patternについて


実践 反復型ソフトウェア開発 の中で構成管理についての話で以下の論文が紹介されていました。

Streamed Lines: Branching Patterns for Parallel Software Development


Abstractを簡単に説明すると。

"ソフトウエアのバージョン管理はブランチさせたり、マージさせたりすることに対してメカニズムを提供する。しかしながらこれらのメカニズムを使うためにはテクニック、ポリシー、ガイドラインがしばしば間違った適用されたり、十分に理解されなかったりする。
これは不幸な事である。ブランチ、マージの使い方が平行ソフトウェア開発を作ったり、壊したりしてしまう。Streamed Linesは適切にソースコードの変更の流れを発散、収束を開発の関連するラインに組織化するためのパターンランゲージである。"

まぁ、つまりブランチ、マージなどの構成管理のパターンランゲージを定義しているという事です。
デザインパターンと同じで、こんなケースの場合はこのパターンに当てはめていけばよい集みたいなものです。

すべてのパターンは読んでみたいと思うので、後々







Eclipse Process Frameworkを試してみる

開発プロセスを定義中であり、プロセス説明資料を作ろうと思ったときになんかいいフレームワークないかな?と探していたらEclipse Process Framework(EPF)を見つけたので使ってみようかと。
AUTOSARのプロセス定義もこれ使っているっぽかったので、それなら則ってやってみるかと。


検索しても日本語の情報が少なすぎる。。。。。と思ってサイトを見てみたら

EPFがMacに対応していないっぽい。。。。。

暫定解決策として
  • EPFのプラグインをEclipseのdropinsに突っ込む。
    • Eclipse3.6 をダウンロードしてどっかに展開する。
    • win32用のEclipse Process Frameworkをダウンロードして展開する。
    • dropinsにEPFのpluginフォルダ内の全プラグインをコピー。
  • 普通のEclipseだがウィザード等にEPFのメニューが表示される。

使い方については
EPFプラグインでらくらく開発プロセス管理 が十分分かりやすい記事だったので、それを参照しながら試してみる。



  • プロセスの定義はdiagramでできるため操作は簡単
  • プロセス定義すればHTML化されるため簡単に公開できる。
  • 設定のしにくさがすこしあるが慣れれば楽ではないか。(まだ慣れていません)


2013年3月1日金曜日

ecoreのオペレーションの実装について

EMFでecoreにeOperationを定義する際に、ソースコード生成を行うと、以下のように
UnsupportedOperationException()を返してしまう。

 /**
  * 
  * 
  * @generated
  */
 public void sample() {
  // TODO: implement this method
  // Ensure that you remove @generated or mark it @generated NOT
  throw new UnsupportedOperationException();
 }

これのデフォルト実装を行うためにはeOperationに対してeannotationを設定する必要がある。

 
      
        

対応方法は

  • eannotation
    • 属性名:source
      • 値http://www.eclipse.org/emf/2002/GenModel
  • detailタグ
    • 属性名:key
      • 値:body
    • 属性名:value
      • operationの実装


これでデフォルトの実装が出力される。
これにより、モデルですべて実装まで定義できるようになります。