2011年11月23日水曜日

ARCについて

参照記事でお勉強↓
[iOS5] ARC (Automatic Reference Counting) : Overview
 
iOS5になってARC(Automatic Reference Counting)が話題になってますね。
iPhoneアプリ開発ではメモリの解放を、retain,releaseやdealloc,autolereaseでメモリを破棄してきました。
しかし、このARCを有効にすると解放宣言が書かなくて良いようです。
書かなくていいということは、書いてもいいかって それは違います。
ARCを有効にすると解放宣言はエラーになります。
ということは、既存のアプリはARCを有効にするとメモリ管理はエラーになるということなんですね。大変ーΣ(@o@)ノノ


 当初、「なんだ書かなくて良くなったらこれからのアプリ作るとき楽じゃん!」って思っていましたが、どうやらそうではないようですね。上のリンク先にもあるように「ARCはガーベージコレクションとは違います。あくまでも、コンパイラが一定のルールに則って適切な場所に適切なコードを入れてくれるものです」って書いてありました。


これまではヘッダファイルに、
@property( nonatomic,retain)って書いて、宣言した値を保持してきました。
 しかし、ARCではretain書いちゃ駄目なんですね。

ARCにおけるオブジェクトの考え方は、
  • オーナーのいる(強参照されている)オブジェクトは常に利用可能
  • オーナーがいなくなったら(スコープ外に出た場合も含む)破棄される
らしいのです。
 参照には2種類あり、strong referenceとweak referenceがあります。
オーナーになれるのはstrong referenceだけです。
他にも所有修飾子の使い方がありますが、今日はこの辺にしとこう。
ちょっと実際コード書かないと分からない。
やっぱりiOS5触りたいのでxcodeアップデートしよう。
Developer登録しましょう。生存戦略しましょうか。

2011年11月14日月曜日

androidのxml(Layout編)

Androidのxmlが何となくしか分かっていなかったので、ここにまとめておきたい。
まずLayoutはよく使う。リンク先は個人的に大変分かりやすくまとめられていた。

☆LinerLayout
縦と横の指定配置が可能。例えば、縦にbutton並べたり、横にbuttonを並べたり。よく使う。

☆FrameLayout
 ビューの重ね合わせが可能。

☆RelativeLayout
相対座標の指定配置が可能らしいが、私は主に画像の上に文字を表示したいときに使った。
 あっでも上手くすればFraneLayoutでも出来そう。
 ---------------------------------------------------
☆AbsoluteLayout
絶対座標指定の配置が買うらしいが、SDK1.5から非推奨。覚えなくても可(苦笑)
☆TableLayout
テーブルみたいに均等に表示が出来るらしい。使った事ない。

2011年9月16日金曜日

久しぶりに、

久しぶりにブログを更新する。なんやら忙しいと言うかやる気がおきなかった。
今日はandroidのcontextについて。ずっとcontextって何だろうって思ってた。当たり前のようにつかわれてるけど、正確な所良く知らなかった。

概要はアプリの状態を受け渡す為に用いられるのか。
contextには2種類あって、Activity(thisを返す)とApplication(getApplicationを返す)の2つ。どちらも然程、違いはないみたいですね。
ただ、つかう場合はメモリリークに気をつけろとどのサイト様でも言われてます。
メモリが残って、処理がおもくなってアプリが落ちるということなのか。
andoroidでのメモリリークの回避
memory leaks
じっくりゆっくり読んで消化して行きたい。

2011年8月23日火曜日

プログラム

本当はプログラムを写しているだけでは駄目だけど、
今回は写した。
この前購入した、入門objective-c2.0の2章に書いてあるコード
ブログでよくプログラミングのコード紹介してるけれどあれってどうなってるんだ。
コードの部分だけスクロールと番号が振ってあるの。
ちょっと調べてみてもやり方わからない。
既存のものって大変見やすいですよね。
あれにしたい今日この頃。

#import
//2つの整数が同じ値ならNO,そうでなければYESを返す
//areIntsDifferentは2つの整数引数を取りboolを返す
BOOL areIntsDifferent (int thing1,int thing2){
//引数が同じならNOを返す
if(thing1 == thing2){
return (NO);
}else{
return (YES);
}
}
//boolStringはポインタ変数で、数値に入っているBoolを人間が理解できる文字列に変換する
//YESを与えられたらYES,そうでなければNOという文字列を返す
NSString *boolString(BOOL yesNo)
{
if(yesNo == NO){
return (@"NO");
}else{
return (@"YES");
}
}
int main (int argc, const char * argv[])
{
BOOL areTheyDifferent;//areTheyDiffernt()が返してくるYESまたはNOの値を保持している
//%@とはNSString型の値を埋め込む為の%@書式指定子
areTheyDifferent = areIntsDifferent (5,5);
NSLog(@"are %d and %d different %@",5,5,boolString(areTheyDifferent));
areTheyDifferent = areIntsDifferent (23, 42);
NSLog(@"are %d and %d different %@",23,42,boolString(areTheyDifferent));
return 0;
//
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// insert code here...
NSLog(@"Hello, World!");
//
[pool drain];
return 0;
}

2011年8月12日金曜日

昨日のまとめ

昨日参加してきたモバイルカフェで自分が面白いなと感じたもののメモ。
主にURLとどんな商品だったり、コンセプトなのかを書きます。
Sifteo cubes
ブロック型のデジタルゲーム。単体でも、複数で繋げて遊んだりできる。
動画を観ると分かるけれど、結構小さい。でも、口には入らないサイズ。

Toyota Window to the world
コンセプトデザイン案。
窓がタブレットになっていて、後部座席に座っている人が景色を拡大したり、物の名前を差したりできる。観光によさそうって話がでてた。

wearable Android
コンセプトデザイン案。
文字通り身に付ける、携帯電話。WiFiにBluetoothに防水加工と目白押し。

Tablets for babies?
 赤ちゃんや、子ども向けのandroidBaseのタブレット。
通信機能はないみたいですが、PCに繋げるとアプリは入れれるらしい。

もっと他にも沢山あったけれど、全部は無理です。
Google I/OやwindowsPhone、iPhone to Arduinoの話題がありました。。

2011年8月9日火曜日

今日はobjective-c中心に。

色々な事がぐちゃぐちゃになってきて不安。
Javaを土日やるようにしよう。本当に不安だわ。
忘れつつある自分がいます。Cとobjective-cとjava....
今日のメモは、ガーベッジコレクションをJavaでは自動的に解放してくれるけども、objective-cのiOSではプログラマ自らが解放をしてあげないといけない。
でもiOS以外のobjective-c2.0にはガーベッジコレクションが含まれているので、主にiOSについてのobjective-cと言える。 まぁ今後はどうなるかわかりませんが。(2011年8年度現在の現状)

ガーベッジコレクション=自動的に解放する機能
ようは確保したメモリ領域をそのままにしておくと、メモリが足らなくなるのでバグが起きてしまう(メモリリークしたままとか言う)
もう使わないメモリはガーベッジ(ゴミ)ってこと。
あーあとは、参照カウントとかあった。それについても今後書こう。今日はここまで。

最近は苦しんで覚えるC言語を見て、(゚_゚)フムフム…してます。
あと、昨年に購入したやさしいCとか。配列やポインタはまだ全然理解してないので、こちらでお世話になってます。もう一冊objective-cの逆引き欲しい。嘘、2冊ぐらいはほしい本ある。

2011年7月26日火曜日

最後の応用課題

最後の応用課題は自分で好きなものを作っていいみたいだ。
ただ、Activity,Service,BroadcastReceiver,ContentProviderを利用する事とお題がでたので、edixttextでユーザーに入力させたものをtoastで出力させようかと思う。

serviceボタン、Activityボタン、BroadcastReceiverボタンを作ってそれぞれを利用した処理でToastに表示させる。
見た目的に対して変わらず、大変地味なアプリだけども、自分には実装できるのかがまだわからないので、今回は全力で逃げるわ。

今日、出来なさすぎて泣きそうになったのは秘密の話。
まだjavaのクラスとメソッドの処理のことよくわかってないんだ。
戻り値があるものとか自分で好きには書けない。

2011年7月17日日曜日

メソッドの戻り値がある、なし

メソッドの戻り値がある、なしがいまいちうろ覚えだったので整理。
ついでに言うと戻り値はretrunのこと。
オレンジ色に発色したこの部分がメソッド
(1)public static int halve(int n){}
(2)public static void printGraph(int x){}
戻り値のあるなしはvoidで判断。voidは「無効の」とか「空の」って意味。
javaではvoidはメソッドの戻り値がないことを表す。
mainメソッドも同様。
また、計算(演算子)を求める場合は戻り値あり、
*のように記号を表示する為の物は戻り値なしということも念頭に入れておく。

★戻り値がある場合
public class Discount2{
public static void main (String[] args){
            int p,q;
            p = 10000;
            q = halve(p);
            System.out.println("元の値段が" + p + "円なら、半額だと" + q +"円になります。");
        }
        public static int halve(int n){
            return n/2;
        }
}
★戻り値がない場合
public class Graph1 {
public static void main(String[] args){
    printGraph(10);
}
    public static void printGraph(int x){
        for (int i = 0; i < x; i++ ){
            System.out.print("*");
        }
        System.out.println("");
    }
}

2011年7月9日土曜日

mainメソッド

mainメソッドはクラスをひとつのアプリケーションとして動作させるためのもの。
mainメソッドの前にあるpublicはパッケージの外から呼び出せる意味。
配列argsはクラスを実行しようとしたときの引数(コマンドラインパロメータ)
args.ength
args0];
args1];

args[args.length - 1]
ーーーーーーーーーーーーーーーーーーーーーーーーーー
public static void main(String[] args){
}

.....................................
★配列argsをSystem.out.println("")で表示
ただ、for(int i = 5;  i < args.length; i++)
としてみても、実行結果は変わらない。
なんで~??
というか、配列argsの中にいくつ格納されているのかがよくわからん。
型指定でStringに指定したargsはfor文章ではint型に指定したiとループ処理してるじゃないですか。
いいんですか!?そういう仕様なんですか?
lengthついてると変わるんですか?mainメソッドは特別なんですか?
私、この部分がわからなくて気持ち悪いので、疑問をまとめて検索しましょう。そうしましょ。

class ShowArgs{
public static void main(String[] args){
System.out.println("args.length = " + args.length);
for(int i = 0; i < args.length ; i++){
System.out.println(args[i]);
}
}
}
実行結果:
args.length = 0 ;
 
ーーーーーーーーーーーーーーーーーーーーーーーー
最近、プログラムにむかつくんじゃなくて、分からない自分にムカつく。
動作環境設定するのにひっかかるのも、エラーになるのも手が遅いのも自分が悪い。
PCやコードは誤作動おこすけども、基本嘘つかないし、正直者。
なにかに入信した気がする。

メソッドの書き方

メソッドの書き方がわからない、どういう状況下で使えばいいのか、スーパークラスとサブクラスで
継承関係をもったコードのとき役に立つということを教わったんだが、
それを自分で「このコードはメソッド使おう!」とかははじめたばかりでは思えない。

第一、去年iPhoneアプリをなんちゃってでも作るというのか、触ったんだけども、メソッド関係や親と子の関係とか、うろ覚えの状態でやってた。もう恥ずかしさ通り越して笑っちゃうよね。
初心者が公道運転してるようなもんだわ。
今、いちから教えてもらってて、あぁそうやったんか!という状態。

 ただ、相変わらずプログラムの考え方は身についていないので毎日かくしかないと思ってる。
何がわからないのかがわからない、書いてみてここがわからないことが分かる、
そこを繰り返し書いて覚えるしかないと実感してる。

「文型脳とか理系脳とか、知るか。書かんと覚えられんのじゃ。」っている体育会系的思考になってきた。愚痴っててもしかたないので、覚書メモ。

ーーーーーーーーーーーーーーーーーーーーーー
Rectangleっていう面積を求める計算を、メソッドの中で行う。
メソッドはインスタンスメソッド(非static)とクラスメソッド(static)がある。

★インスタンスメソッド
インスタンスフィールドのwidth,heightをすぐ使える。
ただ、以下のコードは省略して書かれていて、
returnの部分がreturn this.width * this.height;とthis省略されてる。
インスタンスメソッドはthisを暗黙の引数としてる。
書かなくても分かってよバカ///って感じ。
class Rectangle {
int width;
 int height;
 int getArea(){
 return width *height;
 }
}

 ★クラスメソッド
引数でインスタンスを渡してもらう必要がある。
class Rectangle {
int width;
 int height;
 static int getArea(Rectangle obj){
  return obj.width*obj.height;
 }
}

2011年7月7日木曜日

オブジェクト指向について

オブジェクト指向とはオブジェクトつまり
インスタンスを大切にする考え方のこと。
オブジェクト=フィールド+メソッド
またはオブジェクト=情報+操作

javaのオブジェクトはクラスから作られる。
クラス宣言の中にフィールドとメソッド、情報と操作をひとまとめに記述する。
以前は情報は情報で、操作は操作で記述していたので、
オブジェクト指向とは オブジェクト(インスタンス)を中心とした情報と操作をひとまとめにしたものの言語の事。

クラスとインスタンス

★クラスとインスタンス
クラス関連した情報を1つにまとめたもの
インスタンスは具体的な物

★クラス宣言フィールド
public class クラス名{
型 フィールド名;
型 フィールド名;
}

★インスタンスの作り方
クラス名 変数 = new クラス名();

コンストラクタはインスタンスをいっぺんに作る事が出来る
kamoku kokugo = new Kamoku("国語",63);みたいな感じ
クラス名とコンストラクタ名は同じ。
コンストラクタには戻り値の型を書かない。
 //public class クラス名
public class クラス名 {
String namae;
int tensuu;

//public クラス名()
public コンストラクタ名前(クラス名と同じ)(String namae,int tensuu){
    this.namae =namae;
    this.tensuu = tensuu;  
}
メモとして残しているものやコードが投稿のボタンを押すと文字数制限されているように切れるようになってしまった。
大変困った。
折角、残しておきたい、覚えたい物を書き出して入力しているのに、
それはないだろうと思ってしまう。
googleblog調子悪い気がする。


公開そうそう移転しようかと考えてる。

つれズレメモ

私はeclipseでJavaコード書いていまして、分からないものをメモとして載せています。


★lengthを繋げた式は配列tenの長さを表す。
tenは配列のことこの場合。配列の長さのぶんだけ
例 for(int i =0; i

いろいろメモ

いろいろとど忘れしそうなのでメモ

★final
★try.......catch処理.....catch
tryの中でおこったエラー処理

★n< 0||100default 定数式3:
処理3
break;
}
//breakはここで処理を終わるという意味
String型の文字列定数は二重引用符(")
例case "a":{}
char型の文字定数は一重引用符(')
例:case 'a':{}
★doubleやString型は整数じゃないので定数式作れない。

★Integer.parseInt
キーから入力された数字を整数に変換

★NumberFormatException
文字列が数字でなかった場合

★ line.charAt(i) 文字列のlineのi番目の文字を得る式

★ line.length()文字列のlineの長さを測る式


2011年7月4日月曜日

光の進む早さの計算

光の進む早さを30万㌔として、光が一日に進む距離の計算
public class Q31 {
public static void main(String[] args){
//正解
System.out.println("光が一日にすすむ距離は" + (24 * 60 * 60 * 300000L) + "kmです。");
System.out.println("光が一日にすすむ距離は" + (long)24 * 60 * 60 * 30000 + "kmです。");
System.out.println("光が一日にすすむ距離は" + (300000.0 * 60 * 60 * 24) + "kmです。");
System.out.println("光が一日にすすむ距離は" + (double)300000 * 60 * 60 * 24 + "kmです。");

//誤り
System.out.println("光が一日にすすむ距離は" + (24 * 60 * 60 * 300000) + "kmです。");

}
}

上から
光が一日にすすむ距離は25920000000kmです。
光が一日にすすむ距離は2592000000kmです。
光が一日にすすむ距離は2.592E10kmです。
光が一日にすすむ距離は2.592E10kmです。
光が一日にすすむ距離は150196224kmです。
と表示される。
------------------------------------
計算にもいろいろやり方がある。
★30万㌔メートルはオーバフローを起こすのでlong型の定数かdouble型をつけてあげる。
以下は、どちらも同じ書き方の違い。
◯long型
System.out.println("光が一日にすすむ距離は" + (24 * 60 * 60 * 300000L) + "kmです。");
System.out.println("光が一日にすすむ距離は" + (long)24 * 60 * 60 * 30000 + "kmです。");

◯double型
System.out.println("光が一日にすすむ距離は" + (300000.0 * 60 * 60 * 24) + "kmです。");
System.out.println("光が一日にすすむ距離は" + (double)300000 * 60 * 60 * 24 + "kmです。");

なんにも型指定しないと誤った数値が表示される
System.out.println("光が一日にすすむ距離は" + (24 * 60 * 60 * 300000) + "kmです。");

プログラムは

プログラムは書いた通りにしか動かないし、
どういう考え方や書き方をしていけばいいのか、
本当に考えて書くという行為をしないと。
まだわからなくて、少し書いてみて、そこからやっぱり回答みてしまう。

でも講習をうけていることは本当に充実していて、楽しい。

今日寝付けなくて3時間くらいしか寝てなかったから、フッととんだ瞬間あって奥歯かみしめたわ。この講習は本当にありがたいので、耳の穴かっぽじって聞かないとと思ってる。
私、結構まわりに呆れられてると知ってるw
今日のこの記事はコードじゃないけど、何か書き留めておきたい。

私にとってプログラムは作る物の手段だと思ってる。
これが作りたかったらJAVA勉強せなあかんやろうし、
あっちが作りたかったらC言語を勉強する。
臨機応変に対応していきたい。
Flashで作るのが最適だったらactionscript書く。
ただ、人一倍不器用なので唸ってるし、路頭に迷ってる。
でも、その考えが出来るようになったので大学いってよかった。
ただ、よく理解もせずsampleを使ってコピペするのは詰む。
だから今困ってるorz

だいたいユーザーは、中身なんて気にしてないんだよ。
バグがなくてUIよくて楽しめれば、いい。
それが一番難しい。

復習

今日は名前と年齢を聞いて、10年後の足した年齢を表示することを覚える。
以下は参考書をそのまま写したコード。

import java.io.*;
public class HowOldAreYou {
public static void main(String[] args){
System.out.println("あなたの名前を入力して下さい。");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try{
String line =reader.readLine();
System.out.println(line + "さん、こんにちは。");
System.out.println("年齢を入力して下さい。");
line = reader.readLine();
int age =Integer.parseInt(line);
System.out.println("いま" + age + "歳とすると、10年後は"+ (age + 10) +" 歳ですね。");
}
catch (IOException e){
System.out.println(e);
}
catch(NumberFormatException e){
System.out.println("年齢が正しくありません。");

}


}
}
★readLineは文字列を一行分取得して行くメソッド
String line =reader.readLine();//入力待ち
line =reader.readLine();

★reader.readLine
rederは変数
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
変数readerはBufferedReader の型
char a ='A';と同じで 
型 変数名=代入する値
代入するのはnew BufferedReader (゚_゚)フムフム…
BufferedReaderっていうのは、データを読み込む為のクラス

★その後の(new InputStreamReader(System.in));
InputStreamReaderはBufferedReaderを作る為の引数。
new InputStreamReaderで別のクラスのオブジェクトを作成
System.inはキーボードからデータを入力する為の物。


ということで、
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));は
System.inで入力された文字列をもとに、InputStreamReader作成→ BufferedReader作成→
変数readerを、そのオブジェクトに作成。
なにこれ逆から反応していくという事かいな。

Integerは整数を表すクラス
parseIntは数字の列を解析して対応する整数値を得るメソッド
parseは文法の解析

2011年7月3日日曜日

なんか焦るわ

プログラムを移すことに満足していてはいけないと、自分に忠告。
サンプルばかりをうつして、書いた気になっているようでは駄目だ。
でも、移す事も覚える事だから、
この動作が何をするための動作なのか意味を理解し考えながら書かないとと忠告。
卒業制作してみて、本当にこれは実感した。
そうじゃないと上達しないし、書かないと。

ーーーーーーーーーーーーーーーーーーーーーー
基本型は論理値及び数値を表す方double

参照型はクラス、インターフェース、配列や列挙型を表す方

2011年7月1日金曜日

コマンドプロンプト

XcodeやFlashでスクリプト書いて実行するときcommand+returnなんやけども、
今日の作業は一々実行するときファイル指定してあげないといけなかった。

テキストエディタでjava書く→コマンドプロンプトでファイル指定、デバッグ(classファイル生成)→実行

Macユーザーには「何これ〜」やよ、本当。
windows良く分からんとも思ったし、テキストエディタから読み込んでくるから早いのか複数の操作ができるというのか、マウス使わずキーボードだけで実行可能とか調べるといろいろでてくるけども。

でもはっきり言ってよくわかんない。
コマンドプロンプト(MS-DOS)ってcharacter user interfaceをもったOSってとりあえずメモっとく。

人事だけども、自分事。

詳しい事は言えないが、Java言語プログラミングレッスンを今日から使って勉強してく。
私はJavaとjavascriptって、C言語のobjective-cのような感じで勝手に解釈してた。
でも文法も動作する環境も異なり、直接関係ないよって書かれてた。MA・ZI・KA!!

★Javaの特徴
・機種依存性が非情に少ない。javaはほとんど移植をしなくてもいいように設計されてる
・型の制約が厳しいので、コンパイル時に発見されやすい
・オブジェクト指向言語
Javaはプログラム全体がオブジェクトという部品による構成
・マルチスレッドを取り扱える。複数のスレッドを簡単に扱う平行プログラミングが出来る。

うーん、何となく?
スレッドについてはここ読むと、分かりやすい。
これ読んだ私の解釈としてスレッドはプログラムを1行ずつ解釈して実行して行くのに対して、マルチスレッドは複数のスレッドが分担して作業を行ってるということかな。

2011年6月29日水曜日

参考URL

個人的メモおよび参考URL

★開発初期に関するサイト
Androidメモ
Android入門
Eclipce入門

★Android関連の情報収集を行うサイト。
android情報まとめ

アプリケーション

(1)ApiDemos
・ボタン、リストなど各種オブジェクトのサンプルが格納
・GUIに関するほぼ全てのサンプルが入ってる
用は、emulatotでサ ンプルがどう動くのか確認する為のツール。

(2)LunarLander
・ライフサイクルの理解
・時間で変化するコンテンツの作成
・画面描画
canvas,paint,bitmap,drawable等のクラス

2011年6月28日火曜日

Android SDK and AVD Managerについて

Android SDK and AVD Managerで初期に作業しておかなければいけないことがある。
AVDには「Virtual devices」「Installed packages」「Available packages」の3つの項目がある。

・Virtual devicesはエミュレータ環境を整える。
一つ一つバージョン設定しないといけないので面倒だけど始めに世間で普及している1.6、2.1、2.2、3.0あたりを整えておく。
NEW>Create AVDでnameを選ぶ。
nameはバージョンの名前にしておくといい。 私はこれに失敗してて最初のHelloWorld作成時、emulatorが起動しなくて悩んだ。

・Installed packagesは文字通りInstallしてあるpackage

・Available packagesでAndroid SDK の Package (特定のバージョンの SDK やドキュメントなど)をインストール


だから、作業の流れとして Available packagesでバージョンインスト→Virtual devicesでエミュレータ環境整え。

2011年6月27日月曜日

androidタブレットメモ

ICONA TAB A500が発売される。
ipadにも引けをとらない性能で、注目は3万円台という安さ。
家庭用ならこれで充分だと思う。
OSはandroid3.0。

2010年のときはiPadが発売され、話題になった。
電子書籍元年とか言われてた。
1年経つと他社も技術を追いつき追いこそうと多くの商品が発売された。
しばらく、情報を仕入れるのを疎かにしていると?ばかりになる。
でっ今日は自分で整理するために少しメモをとってみた。
2011年6月の日本のタブレット市場
・iPad2
・GALAXY Tab
・Optimus Pad
・Motorola Xoom
★その他★
(Dell Streak/Light Tab
(wifiのみ使用可能)SMT-i9100/LuvPad AD100/Aigo/Creative ZiiO
(電子書籍関連タブレット)Kindle/GALAPAGOS/Reader
参考ページ

と占めているけども、タブレットに関してはOSを見るとiOSとandoroidの二つに分かれる。
でも大部分はandroid。
タブレット市場はandroid3.0がいち早く普及してる印象。
あっでもちょっと前までandroid2.2だったのか。

携帯市場はandroid2.2と2.1あたりが占めてる。

というか中身の性能が、
CPUはよく聞くけども1GHz デュアルコアとかよくわかってない。
ROMとRAMも迷うし、ぼやーとしたイメージしかつかん。
よくわかんないやー。

年内は無理かもしれんけども、
PCの転送作業を必要としない、
独立した機器になるんだろうなぁ。
もうすぐそこにきてる。