投稿者「admin」のアーカイブ

日本通信のWEBサポートに仕様バグを発見した

[追記しました@20130804]

海外で購入してきたSIMフリーiPhoneで縛りのない廉価な通信環境が構築できているので、日本通信のサービスには大変感謝しているのですが、WEBサポートに結構深刻?な「仕様上のバグ」を発見しましたのでここに掲載します。

ただ、結論から書きますと、電話で問い合わせたところ、これは「仕様」であって「バグ」ではないそうです。つまり間違えて契約したのが悪いということ。今回の場合100MBの契約で525円が全く使えずに徴収されてしまうのですが、自分で間違えたのだから仕方がありませんし、購入画面にも「いかなる理由があっても一切返金しない」と書いてありますので、泣き寝入りとなりました。

こんなつまらないミスをしてしまうのは当方だけなのでしょうが、みなさん気をつけましょう。

旅行先で使うため常用しているSIMにTurboチャージしようとした

近く帰省予定で年老いた両親のいる実家では通信環境がこころもとないこともあり、Turboチャージしておこうとしたのが、そもそもの始まりでした。

日本通信(B-mobile)との契約では、現時点で

  • 常用SIMカード(通話と通信)
  • 今月7月にMNPして他キャリアに移動したばかりのSIMカード

があります。

他にもありますが、契約終了しています。そもそも契約終了している番号がプルダウン画面に現れるのも間違いの元のような気がします。

Turboチャージの容量を100MBと500MBをどちらにするか悩んだ挙句、「ちょっとずつ使うとするか!」と100MBを選択しました。

 TurboチャージがなぜかONできない

そして契約画面に進んで難なく完了。

ところが、早速Turboチャージを使ってみようとしたところ「ON」できないのです。

bmobile_turbocharge_002_360x396

このときは、「そうか、スマホをWifiにしているからかも。3Gにしてみるか」と、3Gに切り替えてみましたが、状況は変わりません。

Turboチャージした番号が違っている!

そこで、bmobileのLOGINページから再度入り直して、プルダウンメニュから常用カードの電話番号の契約状況をみてみると、Turboチャージしたはずなのに0MBになっています

そうなんです。TurboチャージしたSIMカード(電話番号)を間違えていたのです。

「そんなはずはない。MNPが完了していて電話番号も通信も使えないはずで、それをキャリアが認識できないはずはないだろう」

と想定していたら、どうもシステムの認識できない空白期間?があるそうな。

MNP完了時に解約しておけばよかったのかも知れません。だた、ウエブページには「MNPしたSIMカードについては陽に解約する必要はない」と書かれていたりもします。

今から考えると500MBを選択していなくよかったです。2000円近く捨てることになりますから。

昔ならこうした状況に遭遇したときには消費生活センターに調査依頼したものでした。動機は費用というより同じ思いをするひとを増やさないように消費生活センター経由でサービス提供者に働きかけることでしたが、今ではこうしてブログやツイッター等で情報展開できますので、消費者にとって便利な時代になりました。 資料を揃え消費生活センターに出向き説明する手間は相当なものでしたから(消費生活センター?消費者センター?どっちが正しいのかな、今は。それともそんな機能はもうないのか)。

[追記:2013-08-04]

7月にMNPした件の契約番号の請求明細がでました。幸運なことに現時点、上記の525円は請求されていませんもしも実際に請求されないのでしたら、これはWEBサポートの仕様(バグ)と電話問い合わせの仕様(バグ)の2重の仕様(バグ)になるかと思います。費用請求を見るまでユーザをハラハラさせるのはやめた方がよいのではないでしょうか?

以上です。

 

 

iOSのメモ帳のように表示画面と編集画面をシームレスに切り替える

iOSデバイスのメモ帳は見た目もUIも洗練されていてとてもいいと思います(Android系のメモ帳はあまり使いませんでしたのでよく分かりません。今はかなり洗練されているんでしょうね)。

  • メモの一行目に書いた内容がそのままタイトルとして見えること
  • 起動時は単なるViewerのように見えるのにタッチすると編集モードになってくれ、表示画面と編集画面がシームレス(つぎはぎがない)に切り替えられること

が特長と思います。特に2つ目がいいです。

ios_device_memoapp

ある開発案件に関連して、これをAndroidアプリで実現したいと思いいろいろ調べてみました。

やりたいことは

  • 起動時EditText部品からFocusを外してTextView部品のように見せる
  • タッチ(またはクリック)するとFocusが現れて編集できるようにする
  • 編集を完了する(確認ボタンを押す等)とEditText部品から再度Focusが外れる

です。

調べた結果そのものズバリの質問はありませんでした(もしくは質問はあっても回答がなかった)。

それじゃ自分で解決するしかないと思い海外サイトを含め下記内容のあわせ技で実現させました。

  1. edittext – How to replicate android:editable=”false” in code? – Stack Overflow
  2. たかがフォーカス,されどフォーカス – 愚鈍人
  3. ユーザがTextViewに文字を手入力できるようにしたい。 – Google グループ

解決方法はひとことでいうと、TextView部品ではなくEditText部品を使い、他部品にFocusを退避しておき、必要時にrequestFocusメソッドでFocusを戻す、です。

レイアウトに各部品とその属性(オプション)を設定する

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:id=”@+id/entire”
android:focusable=”true”
android:focusableInTouchMode=”true”>

<Button android:id=”@+id/confirm”
android:text=”@string/view”/>

<EditText
android:id=”@+id/edit”
android:hint=”@string/hint”
android:inputType=”textMultiLine”
android:scrollbars=”vertical”
android:focusable=”true”
android:focusableInTouchMode=”true”/>

</LinearLayout>

ここでは部品が3つ定義されています。上から背景部品、ボタン部品、EditText部品です。ボタン部品やEditText部品の属性はほぼ省略値そのものですが、背景部品の属性だけ通常と異なります。

ポイントは、背景部品(LinearLayout)に

android:focusable=”true”

を設定します。

背景部品は編集機能を持たずFocusする意味は、通常は、ありません。ここではFocusを退避させられるように故意に設定しています。Focusを退避させられる別部品があればそこに設定しても構いません。ただし編集機能のありそうな(?)部品の場合には困ることがあります。例えばTextView部品があってそこにFocusさせるとEditText部品のような動作になってしまったりします。

JavaプログラムにFocusに関する制御コードを書く

public class AppMain extends Activity {
    private static LinearLayout mBgView;// 背景のLinearLayout部品
    private static EditText mBodyText;// EditText部品

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mBgView = (LinearLayout) findViewById(R.id.entire);
        mBgView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus == false) {
                // Focusが来たときに何かさせるならここにコードを
                }else{
                // Focusが外れたときに何かさせるならここにコードを
                }
            }
        });

        mConfirmButton = (Button) findViewById(R.id.confirm);
        mConfirmButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                mBgView.requestFocus();// これでEditTextにあったFocusが外れ、背景部品に移る
            }
        });

        mBgView.requestFocus();// 起動時、背景部品にFocusを退避しておく

    }
}

これで、起動時あたかもTextView部品のように見えていたものが、タッチもしくはクリックするとEditText部品のように編集でき、確認ボタンで再びTextView部品のように見せることができるようになりました。

以上です。

GalaxyのGoogleChromeでparseIntがおかしな動作をしますね

「10秒で10年日記 逆日記帳」というWEBアプリを開発しています。
そのテスト中に、Javascriptの機種差(というかバグ?)に遭遇しましたので、
ここに記載しておきます。

文字列から整数に変換するparseInt()という関数でテスト機中
Galaxy S3 Progre(AU)だけが おかしな動作をします。

遭遇したのは、桁数をあわせるために左を0で埋めた日付けや時刻をあらわす
文字列から整数に変換する処理でした。

parseInt("09") => 0 (9)
parseInt("08") => 0 (8)
parseInt("07") => 7
parseInt("06") => 6
parseInt("05") => 5
parseInt("04") => 4
parseInt("03") => 3
parseInt("02") => 2
parseInt("01") => 1
parseInt("00") => 0

のように、08と09のみがうまく変換できません。

で対処方法はというと、

parseInt("09",10) => 9
parseInt("08",10) => 8

のように、(省略できる)進数のパラメータを明示するだけの簡単なものでした。

こうしたことに対処しようと省略パラメータを明示するのも手ですが、そういうものは
膨大に存在するので、大変になりますね。

テスト機のChromeのバージョン:18.0.1025308

以上です。

月400番組を予約録画・LAN転送・動画圧縮して保存する

※本投稿はブログサイト移行の一環として投稿します。内容はかなり古いです。
注:ここで紹介?した自作ソフトはAndroidアプリではなくPHPを使ったWEBアプリです。ブログのタイトルと

合っておらず紛らわしく申し訳ありません

現在月平均400番組を予約録画しています。

もちろん全て普通に手作業でこれをやると、2重録画していないかのチェック等に手間がかかって仕方ないのでLAMP(Linux、Apache、MySQL、PHP)をつかって自動化するシステムの紹介です。

ざっくりとした作業の流れ(フローflow)は、

  1. ネットからiEPG情報を取ってくる(PHP自作ソフト)
  2. .録りたい番組を選ぶためのポリシー(ルール)を決め、それに従い機械的に録画予約する(PHP自作ソフト)
  3. 録画する
  4. LAN転送する
  5. 一括動画圧縮する(マルチバイトファイル名からテンポラリファイル名への変換で一部PHP自作ソフト)
  6. ライブラリDBを更新する

となってますが、録りながら転送しながら録画予約しながら動画圧縮しながらという自転車操業のような具合。まわし方等運用面の工夫が要る。いづれにしても来年の7/24にアナログ放送が終了するのでそれまでがんばって続けるつもり。

(他プログ2010/07/27JST22:50からの移動記事です)

と書いていましたが、今はデジタルですが、結局同じようなことをやってますね

第23回参院選が公示されましたね

新聞によると国内の自殺者は減少しているのだそうです。

でも、若い方が増えているとのこと。昨今の就職難で、新卒でも内定がとれず思い悩むひとがいらっしゃるようです。新卒、女性、中高年の就職はどれが最も厳しいのでしょうね。

今度の参院選に限らないですが、まさにこれらの、働き盛りの30-40代男性*以外*の候補者の方々が、日本の将来に光をもたらすべく頑張ろうとしてくださっているようです。本当に頼もしい。

就活に挑むひと、参院選に挑むひと、を含め、日本全国1億2800万人の方々のうちこの逆境に対して「頑張れてるな」というひとと、「もうひと頑張りだな」というひとがいらっしゃると思いますが、みなさんに以下の文章を贈ります。

これは世界的に流行した作者不詳の話で、いろいろな方が翻訳・紹介されているものですが、その中から、すばらしい翻訳と英文のリンクと共に紹介させていただきます。

ニンジンと卵とコーヒー豆

ある日、若い娘が母親に愚痴をこぼした。

様々な難問に直面していてもうダメかもしれない、
いくら頑張ってみても
一つ問題を解決したと思ったら、
また別なことが起きてきてキリがない、
何をどうしたていいのかさえ分からないのだから、
もうあきらめてしまいたい、と。

すると母親は何も言わず娘を伴って台所に入っていった。
コンロに水をはった鍋を3つ置き、
それぞれに人参、卵、そしてコーヒー豆を入れて、
何も言わないまま
20分ほど沸騰するのを待ち、
人参、卵を器に取り出し、
コーヒーをすくってカップに注いだ。

「ここにあるのは何かしら」

ようやく口を開いた母からの質問に、
娘はためらいながら答えた。

「人参と卵とコーヒー」

すると母親は人参を触って見るよう促した。

「固いと思っていた人参が茹でることによって
柔らかくなっているのが分かるかしら」と母は言った。

「逆に卵はどう?もろくて壊れやすいと思って
いたものが茹でられて固くなっているでしょ」

「それじゃコーヒーはどう?」

母に勧められて娘はカップを手にし、
コーヒー特有の匂いをしばし楽しんでからすすった。

「あなたは人参と卵、
そしてコーヒーのうちどれかしら?」と母が娘に問いかけた。

娘はさらに戸惑った素振りを見せて、
どういうことなのかと尋ねた。

すると母は次のように語った。

「あなたは人参のように強固な意志をもっていたかしら?

それが痛めつけられるような経験によって煮立った
人参のようにフニャフニャの精神に変わってしまったのかしら?

それとも柔らかい殻でありながら流動体を
包み込んで順応性が高かった卵が、
悲しみを体験するうちにかたくなな心になって、
無感覚になってしまったのかしら?

けれど挽いたコーヒーの豆はちょっと違うの、
お湯そのものを変えてしまうから。

あなたに辛苦を与えた環境であるお湯を、よ。

お水が熱くなってくると豆は香りと味わいを放つの。

もしあなたもコーヒー豆のようなら
最悪の状況でこそ自分を高めることができ、
周囲の状況をも変えられるのよ。
困難であればあるほど自分を向上させていく
チャンスでもあるのよ。
それはあなたがその苦境をどう対処するかに
かかってくるのよ。

ではあなたはニンジンと卵、
それともコーヒーのどれかしら?」

日本文のリンク:http://naoko624.exblog.jp/15295520

英文のリンク:http://lifecoachingvj.blogspot.jp/2012/03/carrots-eggs-and-coffee-beans.html

私自身も微力ですが「コーヒー豆」になるべく毎日なにができるか考え行動しています。共に頑張りましょう!

以上です。