ちょっとKotlin

なんか音的に良いな、などと思ったり。

いや、どーせ私は必要な部分機能をググっては貼り付けるだけのコピペグラマだから正直なところ言語なんか何でも良いのだけれど(ただし情報が多くないとググれないから困るし”C”みたいに一文字だと検索しにくいから勘弁してほしいが)

Javaで書いてるとついうっかりと「」を忘れたりしがちで、はじめっから入れなくて良い方がなんとなく書きやすいという単純な思考で好んでいたりします。

しかしじっくりと仕様をきめて何かを作る、というところに今はまだ時間を割けないこともあり(そんな暇があるなら過去に公開したアプリをどうにか改修しろという声もいただいたり)、ちょっとだけ練習程度に触れるにとどまっております。ああもどかしい。

■とりあえず何か動くもの作ろう

というわけで、別段だれにも求められていないであろうし使い古されたネタだろうとは感じながらもちょうど居室で使い古され放置されているタブレット(android 5.x時代のもの)にもうちょっとだけ役立ってもらおうとオリジナルのカレンダーを作って動かしてみたわけです。

いや、本音はと言うとそれくらいの大きさの日付が大きくでる時計をイオン店頭でみかけて、買おうとしたら想定外に高くて諦めたのが悔しくて模倣した、というところがスタートラインではあるのですが。

さくさくさくっと日付だけ画面いっぱいに出してみたら、なんとなく昔ながらの日めくりみたいだなと思ったわけで、それならば六曜やら二十四節気やら月齢やら併記しようかと。

そうなると和暦も書いてみたり・・・案外和暦って覚えてないんですよね。漢字で書いても恥ずかしながらさっと読めなかったり(漢検準二級なのですが)、なので自分のために読み仮名までこっそりローマ字で併記してデザインに取り込んでます。

こっそり「令和」をタッチすれば「平成」「昭和」「大正」「明治」と遡れたり。

だんだんだんだん欲が出てきて、日めくりならめくれるようにしないとな、とか、祝日には国旗がプリントされていたよな、とか、紙がそもそもトレーシングペーパーみたいに薄いから祝日前には透けて見えてたよなとか、そんな細かなところまで作り込んでいったり。

この時点ですでにkotlinよりレイアウトxmlの方に割いている時間の方が多くなってました。

サムネイルではこの微妙な透け感は伝わらぬか・・・

■重くなったじゃないか

そんなこんなで抱えるデータが多くなり、ただのカレンダーなのにターゲットとしていたAndroid5.xあたりの非力なタブレットでは初回起動時にはSQLiteへの展開が1〜2分かかってしまうはめに

真面目に仕様を考えるなら、リソースとして組み込むのは最低限1年分くらいの小さなデータにとどめておいて、あとは適宜API経由なりなんなりでダウンロードさせるってのがまともな作り方になるでしょうが。。。それだとインターネットアクセスの権限を取得しないといけないし、そもそもが古いAndroidにネットアクセスできる状態にさせるのもセキュリティ的に気持ちが悪いから全部ローカルリソースにべたっと。

で、動作テストのたびに待つのも面倒なので、一旦実機で展開したSQLiteのDBファイルをごっそりリソースとして取り込んで、初回インストールの機体にはそのリソースからローカルへファイルをべたっと貼り付けるなんて横暴を試してみたら案外すんなり動いたり・・・、でもこれが逆にほかのいろんな機体にインストールしたときに微妙なトラブルの元になったし、将来的にぜったい動かない機体も出てくるだろうと誰しもが思うところなので泣く泣く切り捨てて素直に初回だけ行儀良く待っていただくという方針で。

しまったなと思ったのは、その待ち時間を処理に専念させるためにプログレスバーすら表示させなかったこと。いずれなんとかしますが、結局は1分程度の話なので。

■どのみち誰もわざわざ使わん

だろうと思っていたらわりと数十人ほどはご利用いただいているらしくダウンロード数が少し上がってた。なんか今になって申し訳ない気分

なにせ居室に飾りつけた時点でもう気持ちは別のところに向かっていたりするので改修がいつになるやら。でもやり残している感覚もそこそこ。

たとえば100円ショップで買ってきた額縁にタブレットごと埋め込んで外観までそれらしくしようとか(すでに買ってきてます)、機能面ももうちょっと追加しときたいよね、とか。

というわけで気が向いた時に追加実装できるようソースコード内にコメントばかり増えてますが、例えば「めくったあと1分ほどで現在日付にもどす」とか、ちょっと前にM5 Stackに実装したような「江戸時間表示にする」ってあたりは割と早く組み込みそうなものの、優先順位としてはそろそろ決算月が迫っているので我慢我慢

日めくり風カレンダー GooglePlay


消えちゃった動画や写真データの復元は
安心安全な『株式会社パソコントラブル救助隊』へ。
https://hqsecure.net/

SDカードやUSBメモリって自然消失するんです

大昔の話じゃないですよ、いま現在流通しているSDカードやUSBメモリ(ついでに安価に流通しだしたSSDまで含めて)のほうがメモリ蒸発といわれる症状は起こりやすくなっている傾向があります。

・情報はどう記憶されているか

そもそもどうやって情報を記録しているかというところなんですが、一般的にSDカードのような記録媒体は書き込んだ情報を内部セルに電子として蓄えています。

記憶用のセルは紙コップみたいなものだと思ってください。

空っぽのままだとなにも記憶していない状態ですので、ここに電子の代わりに水を注ぎ込むことにします。

注ぎ込んだ水(=電子)でコップが満たされた状態がデータを記憶している状態です。

しかし困ったことに、紙コップみたいなものなので年月が経過するとともに中の水が染み出して自然に無くなっていってしまいます。これが、メモリ蒸発するといわれる現象につながります。

ときどき「バッテリーが無くなるようなもの」と表現されることがありますが、それだとまるでパソコンやスマホなどに接続しているだけで充電できるんじゃないかという誤解を生んでしまうことになります。

現実にはSDカードやUSBメモリでは単純にパソコンに接続しているだけで再充電されることはありません。あくまでもデータをメモリに書き込んだ時点からの年月の経過が大きな要素になるのです。

・蒸発するとどんな症状になるか

さて、先ほどは紙コップ1つの図で表しましたが実際にはこの紙コップ1つではわずか1ビットの情報しか記憶できません(SLCの場合)。そのため実際のメモリチップの中ではこのような器がいくつも連なってはじめて1つのデータを表すことになります。

こんな感じですね。

たとえば1GBの容量のメモリであれば紙コップ状のものが内部に8,589.934,592個(かりに器1つで4ビットを表すQLCを想定しても2,147,483,648個)が作り込まれていることになります。

そんなにたくさんの紙コップが小さいチップの中に作り込まれているわけですから、当然ながら均一の品質でないものも混ざっています

たくさんの紙コップの中のほんの少しでも蒸発が起きやすいコップが含まれていたとすると、その部分に記録されていた情報が比較的早く消失してしまうことになります。

たとえば写真データだと最低でも1MB(コップ1,048,576個分)くらいのファイルになりますが、それだけの量がごっそりと消えてなくなることよりも部分的に抜けてしまって全体が崩れてしまうといった壊れ方として現れる機会は非常に多く寄せられます。

・大容量になればなるほど

膨大な数の紙コップが作り込まれている様子を想像できた方ならば、その一歩先も想像しやすいかもしれません。

昨今ではSDカードやUSBメモリが大容量化して、しかも安価になっているのでついつい必要以上の大容量品を買ってしまいがちだと思います。

ですが、大容量だからといってSDカードが大型化するわけではなく、あくまでも同じ面積のなかに小さく小さく紙コップを作っていくイメージになります。

するとどうでしょう、コップ1つあたりがどんどん小さくなりますよね、小さいコップには少しの量しか水が入りません。そのため抜けはじめるとすぐに無くなってしまいます。

もちろんメーカー側は設計製造の微細化で従来程度を維持していると公言はしますが、物理的に考えれば余力が無くなっていくのは簡単に想像ができるというものです。

・ほかに見られる症状は?

前述の例では写真1枚でしたが、たとえば動画データが記録されていた領域で蒸発が起き始めると再生中にブロックノイズだらけになったり、あまりに消失部分が多くなってくると再生不能になったりもします。

また、運悪くファイル管理用の情報を記憶している領域で蒸発が起きると何を記録していたかわからなくなってしまうため「フォーマットしてください」といったメッセージがある日とつぜん現れたりもします。

これらの症状は実際にはある日とつぜん悪くなったわけではなく、それ以前から時間をかけて徐々に徐々にあちこちの情報が消失していった結果だと考えたほうが良いことがほとんどです。

そのような悲しいトラブルに遭遇しないためにも、SDカードやUSBメモリに長期間データを置いたままにせずHDDやDVD・BDディスクなどにコピー保存をこまめに行うことをおすすめしています。


消えちゃった動画や写真データの復元は
安心安全な『株式会社パソコントラブル救助隊』へ。
https://hqsecure.net/