たまにはデジタル丁稚の本領発揮な記事もあげとくよー。
一度はやってみたかった、オープンソースだよー。
万人の役に立つわけじゃないけど、ごく限られた人には、作業軽減になるかもねーならないかもねー。
------------------------------------------------------------------------------------
◇PermTextBox-入力可能文字指定可能テキストボックス
特徴
許可された文字以外入力できないテキストボックス。それだけ。
入力できない文字は、コピペでも入力不可。
追加プロパティ
public char[] PermitChars { get; set; }
入力可能な文字を設定/取得
使い方
貼るだけ。
keypressで入力値を取捨選択すれば、普通のテキストボックスでも可能なんですが、
プロパティで設定できたらいいことあるかなと、専用のコントロールを作成。
ダウンロードはこちら
http://nagisa.okoshi-yasu.net/open%20source/PermTextBox.zip
------------------------------------------------------------------------------------
◇SerialPortList-シリアルポート一覧表示コンボボックス
特徴
・PCに存在するシリアルポートを自動で取得し、一覧として表示するコンボボックス。それだけ。
・サイズの自動調整に対応しており、リストのフォント変更、コントロールのサイズ変更に応じて、自動的に最適なサイズに変更される。
追加プロパティ
public Font ListBoxFont { get; set; }
リストボックスのフォント設定/取得
設定時、サイズに応じてコントロールのサイズが変化します。
public string ListBoxText { get; set; }
リストボックスのテキスト設定/取得
選択されているポート名を取得する時に使用します。
使い方
貼るだけ。
リスト化されていたら便利かなと、専用のコントロールを作成。
自分で作っておきながらアレだけど、日の目を見た記憶が無い。
ダウンロードはこちら
http://nagisa.okoshi-yasu.net/open%20source/SerialPortList.zip
------------------------------------------------------------------------------------
◇Clock-時計
特徴
・現在の日時をラベルに表示する。1秒ごとに変化。それだけ。
・datetimeの書式指定文字列に対応しており、日時のフォーマットをプロパティで指定可能。
追加プロパティ
public Font ClockFont { get; set; }
時計表示のフォント設定/取得
public string ClockFormat { get; set; }
表示形式の設定/取得 デフォルトは"F"(yyyy年MM月dd日 hh:mm:ss)
使い方
貼るだけ。
UIに時計を表示する事は多いけど、それのためにタイマーとラベルをいちいち用意するのが面倒で
一体化したものを作ってみました。
ダウンロードはこちら
http://nagisa.okoshi-yasu.net/open%20source/Clock.zip
------------------------------------------------------------------------------------
◇IPAddressControl-IPアドレス入力専用テキストボックス
特徴
・IP Address(IPV4)の入力に特化した、テキストボックス
地味にめんどくさい入力値のチェック(255以下であるか等)も、自動で行う
・1要素ずつにプロパティが設定されているので、好きな要素の設定/取得が可能
・サイズの自動調整に対応
各要素テキストボックスの、間隔などの指定が可能
追加プロパティ
public int Value1 { get; set; }
public int Value2 { get; set; }
public int Value3 { get; set; }
public int Value4 { get; set; }
各要素の設定/取得
範囲外の値の入力がされた場合は、例外FormatExceptionが返ります
public int TextBoxSpace { get; set; }
各要素の間隔の設定/取得
設定後、コントロール全体のサイズ調整を行います。
public Font TextBoxFont { get; set; }
各要素のフォントの設定/取得
設定後、コントロール全体のサイズ調整を行います。
使い方
貼るだけ。
昔はあった(古き良きMFCの時代)のに、いつの間にか無くなったIP Addressコントロール。
毎回テキストを組み合わせて自作するのは面倒なので、一体型のコントロールとして作りました。
ダウンロードはこちら
http://nagisa.okoshi-yasu.net/open%20source/IPAddressControl.zip
------------------------------------------------------------------------------------
◇TenKey-10キー
特徴
・登録したラベルに対し、10キーから入力が可能
各ラベルには、入力最大長、デフォルト値、数値チェックの有無が個別に設定可能
・上下ボタンにより、前後のラベルにフォーカスを移動させることが可能
また、上下ボタンの有無は自動、手動が選択可能。
・コールバック関数の登録により、入力値などのコードを受けることが可能
追加プロパティ
public eUpDownSetting UpDownSetting { get; set; }
上下ボタン表示方法を設定/取得
自動:登録したラベルが複数であれば表示。1個以下であれば非表示
手動:UpDownButtonVisbleに従う
public bool UpDownButtonVisble { get; set; }
上下ボタンの表示/非表示を設定/取得
UpDownSettingが自動の場合には無効
public Color TextFocusColor { get; set; }
選択状態であるオブジェクト(ラベル)の背景色を示します
public int TextBoxSpace { get; set; }
ボタン間隔の設定/取得
設定後、コントロール全体のサイズ調整を行います。
public Font ButtonFont
ボタンフォントの設定/取得
使い方例
◇ラベルの登録
label1、label2、label3を登録。
それぞれの設定は
label1 入力長制限なし,デフォルトは"",数値チェックなし
label2 入力は2桁まで,デフォルトは"",数値チェックあり
label3 入力は5桁まで、デフォルトは"0",数値チェックあり
デフォルト:未入力でフォーカスを外した場合等に使用します。
数値チェック:trueの場合は入力値がゼロサプレスされます ex."01"->"1"
TenKey.TenKey.InitSetting[] wk = { new TenKey.TenKey.InitSetting(label1, 0, "", false),
new TenKey.TenKey.InitSetting(label2, 2, "", true),
new TenKey.TenKey.InitSetting(label3, 5, "0", true),
};
tenKey1.SetInitSetting(wk);
◇コールバックの登録
登録例
private void Form1_Load(object sender, EventArgs e)
{
//登録
tenKey1.SetCallBack(new TenKey.TenKey.CallBack(EventTimingCallBack));
}
//コールバック関数
private void EventTimingCallBack(TenKey.TenKey.ResEvent code)
{
//0ボタンが押された?
if (code == TenKey.TenKey.ResEvent.NUM0_BTN)
{
}
}
UI制御にタッチパネルを採用している製品は、たとえメンテナンスといえども、
キーボードの使用が許されない事が多い。
大体決まったフォーマットの10キーが毎回必要になるので、一体型の10キーコントロールを作成。
また、タッチパネルで押下するためには、マウスよりもボタンを大きくする必要があるが、
一つ一つのボタンを個別に設定なんて、やってられんので、一括で自動的にサイズを変化させるよう対応
ダウンロードはこちら
http://nagisa.okoshi-yasu.net/open%20source/TenKey.zip
------------------------------------------------------------------------------------
◇SizableNumericUpDown ボタンサイズの変更が可能な数値ボックス(自作numericUpDown)
タッチパネルで操作することを想定した、SizableNumericUpDownオブジェクト風カスタムコントロール。
特徴
・数値の選択にはnumericUpDownが便利だけど、上下のボタンサイズが極小。
これをタッチパネルで操作しようなんてのは、相当心が広い人でないと不可能。
そこで、2つのボタンとテキストボックスを合体し、自作numericUpDownを作成し、
各コントロールの配置やサイズを、自由に変更できるようにした。
プロパティ
public Size UpButtonSize
▲ボタンのサイズ設定/取得
public Point UpButtonLocation
▲ボタンの位置設定/取得
public Font UpButtonFont
▲ボタンのフォント設定/取得
public Size DownButtonSize
▼ボタンのサイズ設定/取得
public Point DownButtonLocation
▼ボタンの位置設定/取得
public Font DownButtonFont
▼ボタンのフォント設定/取得
public int TextBoxXSize
テキストボックスの横幅設定/取得
public Point TextBoxLocation
テキストボックスの位置設定/取得
public Font TextBoxFont
テキストボックスのフォント設定/取得
public int Maximum
数値の最大値設定/取得
異常な設定の場合はFormatException()を返します。
public int Minimum
数値の最小値設定/取得
異常な設定の場合はFormatException()を返します。
public int Value
現在値の設定/取得
異常な設定の場合はFormatException()を返します。
public int RepeatFirstInterval
初回リピート開始時間(ボタン押下からリピート開始までの待ち時間)設定/取得(単位:ms)
public int RepeatInterval
リピート間隔時間(初回以降のリピート実行時間)設定/取得(単位:ms)
public uint Increment
▲▼押下時の、値の増減量設定/取得
ダウンロードはこちら
http://nagisa.okoshi-yasu.net/open%20source/SizableNumericUpDown.zip
まぁぶっちゃけ、5分もあれば作れるものばかりかもしれませんが、カスタムコントロールの作り方が分かるかもしれないし、そうやって学んだ若き英雄が、さらに便利なものを作ってくれるかもしれないしね。
浅学の老兵による、技術提供でした。
一度はやってみたかった、オープンソースだよー。
万人の役に立つわけじゃないけど、ごく限られた人には、作業軽減になるかもねーならないかもねー。
------------------------------------------------------------------------------------
◇PermTextBox-入力可能文字指定可能テキストボックス
特徴
許可された文字以外入力できないテキストボックス。それだけ。
入力できない文字は、コピペでも入力不可。
追加プロパティ
public char[] PermitChars { get; set; }
入力可能な文字を設定/取得
使い方
貼るだけ。
keypressで入力値を取捨選択すれば、普通のテキストボックスでも可能なんですが、
プロパティで設定できたらいいことあるかなと、専用のコントロールを作成。
ダウンロードはこちら
http://nagisa.okoshi-yasu.net/open%20source/PermTextBox.zip
------------------------------------------------------------------------------------
◇SerialPortList-シリアルポート一覧表示コンボボックス
特徴
・PCに存在するシリアルポートを自動で取得し、一覧として表示するコンボボックス。それだけ。
・サイズの自動調整に対応しており、リストのフォント変更、コントロールのサイズ変更に応じて、自動的に最適なサイズに変更される。
追加プロパティ
public Font ListBoxFont { get; set; }
リストボックスのフォント設定/取得
設定時、サイズに応じてコントロールのサイズが変化します。
public string ListBoxText { get; set; }
リストボックスのテキスト設定/取得
選択されているポート名を取得する時に使用します。
使い方
貼るだけ。
リスト化されていたら便利かなと、専用のコントロールを作成。
自分で作っておきながらアレだけど、日の目を見た記憶が無い。
ダウンロードはこちら
http://nagisa.okoshi-yasu.net/open%20source/SerialPortList.zip
------------------------------------------------------------------------------------
◇Clock-時計
特徴
・現在の日時をラベルに表示する。1秒ごとに変化。それだけ。
・datetimeの書式指定文字列に対応しており、日時のフォーマットをプロパティで指定可能。
追加プロパティ
public Font ClockFont { get; set; }
時計表示のフォント設定/取得
public string ClockFormat { get; set; }
表示形式の設定/取得 デフォルトは"F"(yyyy年MM月dd日 hh:mm:ss)
使い方
貼るだけ。
UIに時計を表示する事は多いけど、それのためにタイマーとラベルをいちいち用意するのが面倒で
一体化したものを作ってみました。
ダウンロードはこちら
http://nagisa.okoshi-yasu.net/open%20source/Clock.zip
------------------------------------------------------------------------------------
◇IPAddressControl-IPアドレス入力専用テキストボックス
特徴
・IP Address(IPV4)の入力に特化した、テキストボックス
地味にめんどくさい入力値のチェック(255以下であるか等)も、自動で行う
・1要素ずつにプロパティが設定されているので、好きな要素の設定/取得が可能
・サイズの自動調整に対応
各要素テキストボックスの、間隔などの指定が可能
追加プロパティ
public int Value1 { get; set; }
public int Value2 { get; set; }
public int Value3 { get; set; }
public int Value4 { get; set; }
各要素の設定/取得
範囲外の値の入力がされた場合は、例外FormatExceptionが返ります
public int TextBoxSpace { get; set; }
各要素の間隔の設定/取得
設定後、コントロール全体のサイズ調整を行います。
public Font TextBoxFont { get; set; }
各要素のフォントの設定/取得
設定後、コントロール全体のサイズ調整を行います。
使い方
貼るだけ。
昔はあった(古き良きMFCの時代)のに、いつの間にか無くなったIP Addressコントロール。
毎回テキストを組み合わせて自作するのは面倒なので、一体型のコントロールとして作りました。
ダウンロードはこちら
http://nagisa.okoshi-yasu.net/open%20source/IPAddressControl.zip
------------------------------------------------------------------------------------
◇TenKey-10キー
特徴
・登録したラベルに対し、10キーから入力が可能
各ラベルには、入力最大長、デフォルト値、数値チェックの有無が個別に設定可能
・上下ボタンにより、前後のラベルにフォーカスを移動させることが可能
また、上下ボタンの有無は自動、手動が選択可能。
・コールバック関数の登録により、入力値などのコードを受けることが可能
追加プロパティ
public eUpDownSetting UpDownSetting { get; set; }
上下ボタン表示方法を設定/取得
自動:登録したラベルが複数であれば表示。1個以下であれば非表示
手動:UpDownButtonVisbleに従う
public bool UpDownButtonVisble { get; set; }
上下ボタンの表示/非表示を設定/取得
UpDownSettingが自動の場合には無効
public Color TextFocusColor { get; set; }
選択状態であるオブジェクト(ラベル)の背景色を示します
public int TextBoxSpace { get; set; }
ボタン間隔の設定/取得
設定後、コントロール全体のサイズ調整を行います。
public Font ButtonFont
ボタンフォントの設定/取得
使い方例
◇ラベルの登録
label1、label2、label3を登録。
それぞれの設定は
label1 入力長制限なし,デフォルトは"",数値チェックなし
label2 入力は2桁まで,デフォルトは"",数値チェックあり
label3 入力は5桁まで、デフォルトは"0",数値チェックあり
デフォルト:未入力でフォーカスを外した場合等に使用します。
数値チェック:trueの場合は入力値がゼロサプレスされます ex."01"->"1"
TenKey.TenKey.InitSetting[] wk = { new TenKey.TenKey.InitSetting(label1, 0, "", false),
new TenKey.TenKey.InitSetting(label2, 2, "", true),
new TenKey.TenKey.InitSetting(label3, 5, "0", true),
};
tenKey1.SetInitSetting(wk);
◇コールバックの登録
登録例
private void Form1_Load(object sender, EventArgs e)
{
//登録
tenKey1.SetCallBack(new TenKey.TenKey.CallBack(EventTimingCallBack));
}
//コールバック関数
private void EventTimingCallBack(TenKey.TenKey.ResEvent code)
{
//0ボタンが押された?
if (code == TenKey.TenKey.ResEvent.NUM0_BTN)
{
}
}
UI制御にタッチパネルを採用している製品は、たとえメンテナンスといえども、
キーボードの使用が許されない事が多い。
大体決まったフォーマットの10キーが毎回必要になるので、一体型の10キーコントロールを作成。
また、タッチパネルで押下するためには、マウスよりもボタンを大きくする必要があるが、
一つ一つのボタンを個別に設定なんて、やってられんので、一括で自動的にサイズを変化させるよう対応
ダウンロードはこちら
http://nagisa.okoshi-yasu.net/open%20source/TenKey.zip
------------------------------------------------------------------------------------
◇SizableNumericUpDown ボタンサイズの変更が可能な数値ボックス(自作numericUpDown)
タッチパネルで操作することを想定した、SizableNumericUpDownオブジェクト風カスタムコントロール。
特徴
・数値の選択にはnumericUpDownが便利だけど、上下のボタンサイズが極小。
これをタッチパネルで操作しようなんてのは、相当心が広い人でないと不可能。
そこで、2つのボタンとテキストボックスを合体し、自作numericUpDownを作成し、
各コントロールの配置やサイズを、自由に変更できるようにした。
プロパティ
public Size UpButtonSize
▲ボタンのサイズ設定/取得
public Point UpButtonLocation
▲ボタンの位置設定/取得
public Font UpButtonFont
▲ボタンのフォント設定/取得
public Size DownButtonSize
▼ボタンのサイズ設定/取得
public Point DownButtonLocation
▼ボタンの位置設定/取得
public Font DownButtonFont
▼ボタンのフォント設定/取得
public int TextBoxXSize
テキストボックスの横幅設定/取得
public Point TextBoxLocation
テキストボックスの位置設定/取得
public Font TextBoxFont
テキストボックスのフォント設定/取得
public int Maximum
数値の最大値設定/取得
異常な設定の場合はFormatException()を返します。
public int Minimum
数値の最小値設定/取得
異常な設定の場合はFormatException()を返します。
public int Value
現在値の設定/取得
異常な設定の場合はFormatException()を返します。
public int RepeatFirstInterval
初回リピート開始時間(ボタン押下からリピート開始までの待ち時間)設定/取得(単位:ms)
public int RepeatInterval
リピート間隔時間(初回以降のリピート実行時間)設定/取得(単位:ms)
public uint Increment
▲▼押下時の、値の増減量設定/取得
ダウンロードはこちら
http://nagisa.okoshi-yasu.net/open%20source/SizableNumericUpDown.zip
まぁぶっちゃけ、5分もあれば作れるものばかりかもしれませんが、カスタムコントロールの作り方が分かるかもしれないし、そうやって学んだ若き英雄が、さらに便利なものを作ってくれるかもしれないしね。
浅学の老兵による、技術提供でした。
先日、7人で山に行きましてね。
その時、デジイチで写真をいっぱい撮ってました。
俺のデジイチに使ってるSDカードがちょっと特殊で、誤解を承知で大体の機能を説明すると、
「これで写真を撮ると、次の瞬間、自動的にスマホにも写真がコピーされる」
というものでして。
そんで夜に山小屋で、スマホに転送された写真をみんなで回し見したわけですよ。
その時に、なんでデジイチで撮ってたのに、スマホで見られるの?と質問されたんで、デジイチで撮った写真は自動でスマホに転送する方法があるのだよと言ったわけです。ドヤ顔で。
そしたら女子に、えらい驚かれましてね。
俺としては、デジカメからスマホへの自動転送なんて珍しくもなんとも無かったんですが、
「それ教えてあげたら絶対女子ウケしますよ」
と女子に言われたので、犯罪以外の方法なら何でもやる覚悟で絶対女子ウケしたい身としては、その方法をここに記したいと思うわけですよ。
ちなみにその女子は、全然俺にウケてなかった。ふしぎー。
その秘密はこいつです。
Eye-Fi 読み方は「あいーふぁい」
技術的に言うと、無線LAN内蔵SDカード。世界初。
http://eyefi.co.jp/
こいつをデジカメに挿して写真を撮れば、あらかじめ登録されたスマホやPCへと、自動的に転送することが出来ます。
転送した後、元のデータを削除したり、転送する写真を選択することも可能。
通信にはWi-Fiを使用するので、3G(携帯の電波)が圏外でも関係なく、転送できます。
うまく使えれば、色々と便利な一品です。
お試しあれ。
そして女子は俺にウケるといいよ。いや嘲笑ではなくて。
その時、デジイチで写真をいっぱい撮ってました。
俺のデジイチに使ってるSDカードがちょっと特殊で、誤解を承知で大体の機能を説明すると、
「これで写真を撮ると、次の瞬間、自動的にスマホにも写真がコピーされる」
というものでして。
そんで夜に山小屋で、スマホに転送された写真をみんなで回し見したわけですよ。
その時に、なんでデジイチで撮ってたのに、スマホで見られるの?と質問されたんで、デジイチで撮った写真は自動でスマホに転送する方法があるのだよと言ったわけです。ドヤ顔で。
そしたら女子に、えらい驚かれましてね。
俺としては、デジカメからスマホへの自動転送なんて珍しくもなんとも無かったんですが、
「それ教えてあげたら絶対女子ウケしますよ」
と女子に言われたので、犯罪以外の方法なら何でもやる覚悟で絶対女子ウケしたい身としては、その方法をここに記したいと思うわけですよ。
ちなみにその女子は、全然俺にウケてなかった。ふしぎー。
その秘密はこいつです。
Eye-Fi 読み方は「あいーふぁい」
技術的に言うと、無線LAN内蔵SDカード。世界初。
http://eyefi.co.jp/
こいつをデジカメに挿して写真を撮れば、あらかじめ登録されたスマホやPCへと、自動的に転送することが出来ます。
転送した後、元のデータを削除したり、転送する写真を選択することも可能。
通信にはWi-Fiを使用するので、3G(携帯の電波)が圏外でも関係なく、転送できます。
うまく使えれば、色々と便利な一品です。
お試しあれ。
そして女子は俺にウケるといいよ。いや嘲笑ではなくて。
ちょっとはソフト屋らしい記事も書こうかなと思いまして。
遅まきながら、androidのアプリ開発に着手しました。
作りたいアプリのアイデアはいくつかあるんだけど、まずはひとつ、作ってみようと思います。
プログラム的には簡単なんだけど、簡単すぎるせいか、マーケットで探しても似たようなものは見つけられなかったんですよね。
無い物は作ればいい、ということで、あたしが作ります。
まずアプリ開発環境をPCに作り上げるわけですが、これがまず大変だった。
何が大変って、あっちこっちのサイトから、様々なものをダウンロードしてこなきゃいけなくて、環境変数の設定なんかも必要で。
パスの設定とか失敗してると、いざプログラミング!って時になって
「エラーです。」
とか、味も素っ気もない、どう対処していいかもわからないツンのみのメッセージが表示されて止まっちゃいます。
ようやく作り上げたと思ったら、開発環境が尋常でないくらい重い。
シミュレータが起動するのに30秒もかかるなんて知らなくて何度も何度も起動したら律儀にその回数分のシミュレータが起動して今度はメモリ不足でアプリ落ちまくってギャー。
とまぁ、何日か理不尽なエラーメッセージと格闘して、ようやくある程度対処できるようになって来ました。
しかしあれだね。
androidのソフト開発環境(Eclipse)の使い勝手は、MSの10年前ぐらいを彷彿とさせる出来だね。
AS3の開発環境も酷かったけど、これもなかなか。
具体的にいうとVisual Studio 5.0のC++ぐらい。
VSは.NETになって、劇的にUI設計の性能は向上してるし、何より入力補完の力はマジ、パない。
プログラム言語に「continue」という命令があるんだけど、昔はちゃんと「continue」って自分でキーボードから全文入力する必要があったんだけど、いまは「c」と入れるだけで、cから始まる命令がズラっと並んで、一覧から選ぶだけで残りのontinueは勝手に補完してくれる。
もう5年も前から当たり前の機能だけど、最初は衝撃を受けましたわ。
方やEclipseちゃんは、このあたりが弱い。
もちろん補完もあるんだけど、.NET開発に慣れちゃってると、すんげーまどろっこしい。
クラスメソッドとかをヘルプやネットの情報から調べて、スペルミスで怒られ、それでもがんばって、ようやくひとつのメソッドを作り上げたときの充実感。
確かに快適さとは程遠い。だけど何か、便利さと引き換えに失ってしまった、大切なものを思い出したような気がするよいやごめん嘘やっぱ開発は快適なほうがええわ誰かなんとかしてくれよ。
そいで、俺がようやくソフト開発にこぎつくまでにハマった、いくつかの罠とその対策を紹介するよ!
といっても、WEBで検索したけどあんま似たような現象はみあたらんかったし、俺の環境でのみ生じた問題やもしれんけどね!
◆64bit OSの人は、Program files(X86)ではなく、Program filesにAndroid sdkとEclipseを入れるべし
もしかしたら86に両方入っていてもいいのかも知れんけど、こっちに両方入れたらうまく動くようになった。
◆外部のプロジェクトをロードすると、エラーの嵐になる場合は、エラーが発生してるファイルを開いてやると、エラーが解除されるっぽい
◆「Error in an XML file: aborting build.」とか言うエラーが出る。
◆コンパイル時になんとかかんとかoutとかいう空のファイルを勝手に作っておいて、それの中身がない!と怒られる。
Eclipseを落として、なんとかかんとかoutを削除する。(outで検索して出てきた空ファイルは全部消してもいいかも)
Eclipseを起動したら、ファイルがないって怒るけど、プロジェクト右クリックでrefreshをすればOK。
あと、プロジェクト以外を選択した状態でrunすると、これが出たりするかもしれんです。
とりあえず今はこんなとこ。
まだまだ苦労しそうだけど、これを乗り越えてショボアプリの作成にいそしむよ!
遅まきながら、androidのアプリ開発に着手しました。
作りたいアプリのアイデアはいくつかあるんだけど、まずはひとつ、作ってみようと思います。
プログラム的には簡単なんだけど、簡単すぎるせいか、マーケットで探しても似たようなものは見つけられなかったんですよね。
無い物は作ればいい、ということで、あたしが作ります。
まずアプリ開発環境をPCに作り上げるわけですが、これがまず大変だった。
何が大変って、あっちこっちのサイトから、様々なものをダウンロードしてこなきゃいけなくて、環境変数の設定なんかも必要で。
パスの設定とか失敗してると、いざプログラミング!って時になって
「エラーです。」
とか、味も素っ気もない、どう対処していいかもわからないツンのみのメッセージが表示されて止まっちゃいます。
ようやく作り上げたと思ったら、開発環境が尋常でないくらい重い。
シミュレータが起動するのに30秒もかかるなんて知らなくて何度も何度も起動したら律儀にその回数分のシミュレータが起動して今度はメモリ不足でアプリ落ちまくってギャー。
とまぁ、何日か理不尽なエラーメッセージと格闘して、ようやくある程度対処できるようになって来ました。
しかしあれだね。
androidのソフト開発環境(Eclipse)の使い勝手は、MSの10年前ぐらいを彷彿とさせる出来だね。
AS3の開発環境も酷かったけど、これもなかなか。
具体的にいうとVisual Studio 5.0のC++ぐらい。
VSは.NETになって、劇的にUI設計の性能は向上してるし、何より入力補完の力はマジ、パない。
プログラム言語に「continue」という命令があるんだけど、昔はちゃんと「continue」って自分でキーボードから全文入力する必要があったんだけど、いまは「c」と入れるだけで、cから始まる命令がズラっと並んで、一覧から選ぶだけで残りのontinueは勝手に補完してくれる。
もう5年も前から当たり前の機能だけど、最初は衝撃を受けましたわ。
方やEclipseちゃんは、このあたりが弱い。
もちろん補完もあるんだけど、.NET開発に慣れちゃってると、すんげーまどろっこしい。
クラスメソッドとかをヘルプやネットの情報から調べて、スペルミスで怒られ、それでもがんばって、ようやくひとつのメソッドを作り上げたときの充実感。
確かに快適さとは程遠い。だけど何か、便利さと引き換えに失ってしまった、大切なものを思い出したような気がするよいやごめん嘘やっぱ開発は快適なほうがええわ誰かなんとかしてくれよ。
そいで、俺がようやくソフト開発にこぎつくまでにハマった、いくつかの罠とその対策を紹介するよ!
といっても、WEBで検索したけどあんま似たような現象はみあたらんかったし、俺の環境でのみ生じた問題やもしれんけどね!
◆64bit OSの人は、Program files(X86)ではなく、Program filesにAndroid sdkとEclipseを入れるべし
もしかしたら86に両方入っていてもいいのかも知れんけど、こっちに両方入れたらうまく動くようになった。
◆外部のプロジェクトをロードすると、エラーの嵐になる場合は、エラーが発生してるファイルを開いてやると、エラーが解除されるっぽい
◆「Error in an XML file: aborting build.」とか言うエラーが出る。
◆コンパイル時になんとかかんとかoutとかいう空のファイルを勝手に作っておいて、それの中身がない!と怒られる。
Eclipseを落として、なんとかかんとかoutを削除する。(outで検索して出てきた空ファイルは全部消してもいいかも)
Eclipseを起動したら、ファイルがないって怒るけど、プロジェクト右クリックでrefreshをすればOK。
あと、プロジェクト以外を選択した状態でrunすると、これが出たりするかもしれんです。
とりあえず今はこんなとこ。
まだまだ苦労しそうだけど、これを乗り越えてショボアプリの作成にいそしむよ!
HDDがぶっ壊れました。
みんな勘違いしているみたいだけど、HDDは消耗品だからね。
いつか必ず、ビタ一文動かなくなる日が来るからね。
取り返しのつかないデータは、必ず別の場所にバックアップしておかなきゃいけないよ。
今回ぶっ壊れたHDDは、4年前ぐらいに買った160GBのHDDでした。
数日前から、なんとなーく予兆はあった。
何回も刺しなおさないと認識しなかったり、ウイーン、カシューン、ウイーン、カシューンという、HDDがまもなく壊れます警報音も、しっかり出た上でのぶっ壊れでした。
写真などのデータは別のHDDに移動してたんで問題なかったんですけど、もうひとつ消えたものがあることに気がつきましてね。
それは、俺が昔作ったまま放置していた、ホームページの元でした。
19歳の頃に初めてインターネットに接続し、チャットで知り合った仲間に教わりながら作ったホームページ。
ダサいホームページの代表みたいな「○○S HP」的なタイトルから始まり、CGIを自作したりフリーソフトを挙げてみたりと、やりたい放題していました。
その駄文を出版するという暴挙にまで出た、なかなか思い出深いHPでした。
ただブログを持つようになってから、最初は住み分けできていたHPとの両立も、段々面倒になって放置しており、多分最後の更新は3年前ぐらいだったような記憶が。
そんなHPの元データが、綺麗サッパリ消えました。
まぁサーバ上にはあるわけだし、そっちからダウンロードしてきたらいいかと思ってたんですが、よくよく考えたら、ADSL解約しちゃってるし、同時にHPも消えちゃったんですよね。
よりによってこんなタイミングで壊れるとは。
試しに「it will walk slowly」でググってみたら、キャッシュにすら残っていませんでした。
つまり、もう二度と、あのHPは再現することは出来ないわけです。
別に復活させたいとも思いませんが、膨大な時間をつぎ込んだデータが無いとなると、ちょっと寂しい。
そこで、もはや風前の灯であるHDになんとか入り込み、辛うじてHPデータの一部だけは吸い上げることが出来ました。しかしその結果、HDは完璧に停止してしまいました。よくがんばった。
よし。これでもう思い残すことは...
あ。
あ!
何年もかけてものすごく厳選された、ご機嫌なエロライブラリーもここに入っていたんだった。
これは痛い。俺はこれから、何を糧に生きていけばいいのか。
さすがに、ちょっと泣いたわ。
我々は、二度とこのような悲劇を繰り返さないために、こまめなバックアップと適度なHDの増設を推進します。
みんな勘違いしているみたいだけど、HDDは消耗品だからね。
いつか必ず、ビタ一文動かなくなる日が来るからね。
取り返しのつかないデータは、必ず別の場所にバックアップしておかなきゃいけないよ。
今回ぶっ壊れたHDDは、4年前ぐらいに買った160GBのHDDでした。
数日前から、なんとなーく予兆はあった。
何回も刺しなおさないと認識しなかったり、ウイーン、カシューン、ウイーン、カシューンという、HDDがまもなく壊れます警報音も、しっかり出た上でのぶっ壊れでした。
写真などのデータは別のHDDに移動してたんで問題なかったんですけど、もうひとつ消えたものがあることに気がつきましてね。
それは、俺が昔作ったまま放置していた、ホームページの元でした。
19歳の頃に初めてインターネットに接続し、チャットで知り合った仲間に教わりながら作ったホームページ。
ダサいホームページの代表みたいな「○○S HP」的なタイトルから始まり、CGIを自作したりフリーソフトを挙げてみたりと、やりたい放題していました。
その駄文を出版するという暴挙にまで出た、なかなか思い出深いHPでした。
ただブログを持つようになってから、最初は住み分けできていたHPとの両立も、段々面倒になって放置しており、多分最後の更新は3年前ぐらいだったような記憶が。
そんなHPの元データが、綺麗サッパリ消えました。
まぁサーバ上にはあるわけだし、そっちからダウンロードしてきたらいいかと思ってたんですが、よくよく考えたら、ADSL解約しちゃってるし、同時にHPも消えちゃったんですよね。
よりによってこんなタイミングで壊れるとは。
試しに「it will walk slowly」でググってみたら、キャッシュにすら残っていませんでした。
つまり、もう二度と、あのHPは再現することは出来ないわけです。
別に復活させたいとも思いませんが、膨大な時間をつぎ込んだデータが無いとなると、ちょっと寂しい。
そこで、もはや風前の灯であるHDになんとか入り込み、辛うじてHPデータの一部だけは吸い上げることが出来ました。しかしその結果、HDは完璧に停止してしまいました。よくがんばった。
よし。これでもう思い残すことは...
あ。
あ!
何年もかけてものすごく厳選された、ご機嫌なエロライブラリーもここに入っていたんだった。
これは痛い。俺はこれから、何を糧に生きていけばいいのか。
さすがに、ちょっと泣いたわ。
我々は、二度とこのような悲劇を繰り返さないために、こまめなバックアップと適度なHDの増設を推進します。
先日、東北に復興ボランティアに行きましてね。
そこで知り合った方々が、スマホで連絡先とかその場で交換しているのが、とても羨ましくてですね。
「俺が連絡先を聞いてもらえないのは、きっとスマホを持ってないからだ!」と、噴飯ものの勘違いをした挙句、無駄な行動力を発揮して、東北から帰ったその日にスマホにしました。なのに友達は少ないままです。ふしぎー。
そもそも、スマホなんぞ持つ気は全く無かった。
家に帰れば安価で高速な、広い画面のPCでネットが出来るというのに、何が悲しくてあんな小さな画面をちまちまいじくった挙句、月に6千円も取られなきゃならんの、と。
お前ら、ブロードバンド回線を知らないのかと。情弱はこれだから。
そんな思いで、周りが次々とスマホに変えていく景色を、やや冷ややかに眺めていた。
しかし、上記のよんどころのない事情により、スマホに変える事にしたわけですが、また出費が増えるなぁ、たまの贅沢であるボンカレーゴールドが食える頻度がまた下がるなぁと、胸を痛めていたんです。
だけど驚くべき事に、携帯をスマホにすることにより、ネットにかかるトータルコストがむしろ下がるという現象が発生しましてね。そのカラクリを、ここに綴りたいと思います。
料金を懸念してスマホ化を渋っておられる御仁に、是非とも届けたい耳寄り情報です。
珍しくこの駄ブログが、役に立つかもしれないよ!
携帯ショップに行ってどの機種にするか、スペック表を見ながらウンウンうなってました。
最初は防水にしようかと思ったけど、そもそも防水機能を必要とするような使い方、携帯時代にもしてなかったし。それならやっぱ、普段からの使い勝手を重視するべきか。
巷で人気のiphone様も何度か触らせてもらったんですが、俺の手がデカいせいで
・画面が小さすぎて、文字入力時に隣のボタンを押してしまう。
・コピペするための文字選択が、絶望的にやりにくい。
という点が非常にイライラしまして、こりゃダメだと見送りました。
そして、そこに並んでいたスマホの中で、もっともデカい4.7インチの液晶を持つ、「GALAXY SⅡ」に決めました。
機種交換を待たされている間、スペック表を眺めていたら、
「テザリング」
という見慣れない文字が目に入りましてね。
近くにいた研修中のバッジを付けた兄ちゃんに、テザリングについて聞いてみまして。
そしたらテザリングってのは、コイツ自身がwifiルータになる機能だと教えてくれました。
簡単に言うと、スマホが近くにあれば、ネット環境を持たないPCでもインターネットにアクセスできる機能、らしい。しかもタダ(パケホ一定額内)で。
俺はそれを聞いた瞬間、コイツは何言っているんだ。きっと何かと勘違いしているんだな。所詮は研修中か。と、散々に思ってました。
今の日本のネット回線事情は、wifiはもちろん、wimaxですら、まだまだ日本中に張り巡らされているとは言いがたく、どちらも高速移動に弱いという面もある。
その点携帯の回線である3Gは、速度はやや遅いものの、日本の大体の地域をカバーしているし、高速移動にもわりと耐えるし、建物の中でも問題ない。
3G回線でインターネットを使えるということは、それはすなわち日本中でインターネットが使えるということを意味している。
すれがスマホだけでなく、その側にあるタブレットやPCまでも3G回線でネットが出来るなんて、まさに俺が待ち望んでいた夢の技術じゃないですか。
これがあれば、出張先でネット環境がなくても、近くのマクドを探す必要もなくなるし、屋内外を問わず、そこが地の果てみたいな場所でさえなければ、どこでもネットが出来てしまう。
そんな夢のような機能があってたまるか!
若造が!ちゃんと勉強しとけ!という思いを込めて、研修中の兄ちゃんに
「マジッスか!?マジッスか!?」と連呼するという、高度に論理的な諭し入れたった。
何度も何度も確かめたんですが、どうやらマジだったらしい。
世の中は、俺が思ってるよりも遥かに進んでいた。
そうなればですよ。
家のネット環境は、もはや不要になるんですよね。
家にはADSLを引いているんですが、これがなんやかんやで月3500円ぐらいかかってるんです。これがなんと、いきなりゼロに!
もちろん、3G回線よりも、ADSL回線のほうが圧倒的に速いわけで、ネット環境としては貧弱になるわけですが、別に遅くても繋がってればOK!それよか月3500円飲める事の方が大事!
奥の手としては、この携帯、WiMaxも内蔵されていて、一ヶ月500円で使えるんですよね。ちょっとでも使ったら500円で、あとはその月にどれだけ使おうが同額なんですが、前にUQWimaxのレンタルで速度を試した事がありまして。
それぞれの回線速度は
ADSL 4M
Wimax 2M
3G 700k(1M未満)
だったんですわ。
だから最悪、どーしても遅さに耐えられなかったらWimaxを使うという手もあるわけで。何この奥の手がある安心感。
早速ADSLを解約し、3G環境にしました。
俺が家に居ないと、というかスマホが家に居ないと、ウチはネット環境がなくなるわけですが、ほとんど俺しか使わないので問題なし。
回線速度は全然問題なしでした。
ただ、PS3とWiiのシステムアップデート、PCOSのアップデートは、ものすごく遅いね。放置して寝るからどうでもいいけど。
世間は光だなんだって、回線速度をどんどん向上させているのに、俺は逆の道をひた走ってます。
そこで知り合った方々が、スマホで連絡先とかその場で交換しているのが、とても羨ましくてですね。
「俺が連絡先を聞いてもらえないのは、きっとスマホを持ってないからだ!」と、噴飯ものの勘違いをした挙句、無駄な行動力を発揮して、東北から帰ったその日にスマホにしました。なのに友達は少ないままです。ふしぎー。
そもそも、スマホなんぞ持つ気は全く無かった。
家に帰れば安価で高速な、広い画面のPCでネットが出来るというのに、何が悲しくてあんな小さな画面をちまちまいじくった挙句、月に6千円も取られなきゃならんの、と。
お前ら、ブロードバンド回線を知らないのかと。情弱はこれだから。
そんな思いで、周りが次々とスマホに変えていく景色を、やや冷ややかに眺めていた。
しかし、上記のよんどころのない事情により、スマホに変える事にしたわけですが、また出費が増えるなぁ、たまの贅沢であるボンカレーゴールドが食える頻度がまた下がるなぁと、胸を痛めていたんです。
だけど驚くべき事に、携帯をスマホにすることにより、ネットにかかるトータルコストがむしろ下がるという現象が発生しましてね。そのカラクリを、ここに綴りたいと思います。
料金を懸念してスマホ化を渋っておられる御仁に、是非とも届けたい耳寄り情報です。
珍しくこの駄ブログが、役に立つかもしれないよ!
携帯ショップに行ってどの機種にするか、スペック表を見ながらウンウンうなってました。
最初は防水にしようかと思ったけど、そもそも防水機能を必要とするような使い方、携帯時代にもしてなかったし。それならやっぱ、普段からの使い勝手を重視するべきか。
巷で人気のiphone様も何度か触らせてもらったんですが、俺の手がデカいせいで
・画面が小さすぎて、文字入力時に隣のボタンを押してしまう。
・コピペするための文字選択が、絶望的にやりにくい。
という点が非常にイライラしまして、こりゃダメだと見送りました。
そして、そこに並んでいたスマホの中で、もっともデカい4.7インチの液晶を持つ、「GALAXY SⅡ」に決めました。
機種交換を待たされている間、スペック表を眺めていたら、
「テザリング」
という見慣れない文字が目に入りましてね。
近くにいた研修中のバッジを付けた兄ちゃんに、テザリングについて聞いてみまして。
そしたらテザリングってのは、コイツ自身がwifiルータになる機能だと教えてくれました。
簡単に言うと、スマホが近くにあれば、ネット環境を持たないPCでもインターネットにアクセスできる機能、らしい。しかもタダ(パケホ一定額内)で。
俺はそれを聞いた瞬間、コイツは何言っているんだ。きっと何かと勘違いしているんだな。所詮は研修中か。と、散々に思ってました。
今の日本のネット回線事情は、wifiはもちろん、wimaxですら、まだまだ日本中に張り巡らされているとは言いがたく、どちらも高速移動に弱いという面もある。
その点携帯の回線である3Gは、速度はやや遅いものの、日本の大体の地域をカバーしているし、高速移動にもわりと耐えるし、建物の中でも問題ない。
3G回線でインターネットを使えるということは、それはすなわち日本中でインターネットが使えるということを意味している。
すれがスマホだけでなく、その側にあるタブレットやPCまでも3G回線でネットが出来るなんて、まさに俺が待ち望んでいた夢の技術じゃないですか。
これがあれば、出張先でネット環境がなくても、近くのマクドを探す必要もなくなるし、屋内外を問わず、そこが地の果てみたいな場所でさえなければ、どこでもネットが出来てしまう。
そんな夢のような機能があってたまるか!
若造が!ちゃんと勉強しとけ!という思いを込めて、研修中の兄ちゃんに
「マジッスか!?マジッスか!?」と連呼するという、高度に論理的な諭し入れたった。
何度も何度も確かめたんですが、どうやらマジだったらしい。
世の中は、俺が思ってるよりも遥かに進んでいた。
そうなればですよ。
家のネット環境は、もはや不要になるんですよね。
家にはADSLを引いているんですが、これがなんやかんやで月3500円ぐらいかかってるんです。これがなんと、いきなりゼロに!
もちろん、3G回線よりも、ADSL回線のほうが圧倒的に速いわけで、ネット環境としては貧弱になるわけですが、別に遅くても繋がってればOK!それよか月3500円飲める事の方が大事!
奥の手としては、この携帯、WiMaxも内蔵されていて、一ヶ月500円で使えるんですよね。ちょっとでも使ったら500円で、あとはその月にどれだけ使おうが同額なんですが、前にUQWimaxのレンタルで速度を試した事がありまして。
それぞれの回線速度は
ADSL 4M
Wimax 2M
3G 700k(1M未満)
だったんですわ。
だから最悪、どーしても遅さに耐えられなかったらWimaxを使うという手もあるわけで。何この奥の手がある安心感。
早速ADSLを解約し、3G環境にしました。
俺が家に居ないと、というかスマホが家に居ないと、ウチはネット環境がなくなるわけですが、ほとんど俺しか使わないので問題なし。
回線速度は全然問題なしでした。
ただ、PS3とWiiのシステムアップデート、PCOSのアップデートは、ものすごく遅いね。放置して寝るからどうでもいいけど。
世間は光だなんだって、回線速度をどんどん向上させているのに、俺は逆の道をひた走ってます。