無趣味な人

生まれてこの方、無趣味。ハマったものこれといって特になし。

恥ずかしい思い出を忘れる方法

恥ずかしい思い出がある。
誰にでもあると思う。 思い出したくない嫌なこと。 夜寝る時に布団に入っていると、急に思い出して
「あぁあああああああああああぁ!」
って頭抱える。
これを何とかしたいとずっと思っていた。

自己啓発書を読むのが趣味みたいなところがある。

7日間で人生を変えよう(CD付き) という、書店では買うのをためらわれる題名の本がある。 題名はこんなだが結構売れた本である。 この本に嫌な事や恥ずかしい事を忘れる方法が書いてあった。

簡単に紹介する。 恥ずかしい事を思い出した時に以下をする。

  1. 思い出した映像を白黒にする
  2. 思い出した映像を遠くから俯瞰で観るようにする
  3. 思い出した映像から音声を削除する

効果はあるような気がしないでもない。 嫌な事や恥ずかしい事を思い出す回数が減ったような気もする。 恥ずかしい事を思い出しても頭を抱えるほどじゃなくなった気もする。 プラシーボ効果かもしれない。 思い出したくもない事を思い出した時に頭を抱えるだけじゃなく、やることがあるというのは気が紛れていい。

【追記】
上記の事を記憶を頼りに書いた。 本を読み返してみると上記の方法は、苦手な人の対処方法だった。 勝手に脳内で変換していた。 でも、別に嫌な思い出や恥ずかしい思い出を忘れる方法でも使えると思う。 なんでこの方法が効果があるかなど書いてあるので、興味のある方は本を読んでみてください。 ただし、この本を読んだぐらいで人生が変わることはないです。

「早教育と天才」、子供を天才にする方法

「早教育と天才」という本を読んだ。 家庭保育園などのような早期教育の原点となる本ということである。 幼児教育で天才をつくろうという本だ。

自分自身が読んだ感想としては、この本に書いてあることを実践すればある程度の子供にはなると思った。 ただし、実践するのは大変に根気のいる作業である。

この本の中では何人かの天才児について紹介されている。

その中でもヴィッテという人が原点であって、その他はヴィッテの書いた本を参考にしたようだ。

その天才児達のその後を調べると幸せな人生を歩んでいない人もいる。 人生においても一番の成功例はヴィッテだろう。 ヴィッテを参考にすべきだと思う。

その教育法だが以下の手順だ。

  • 出来るだけ早く言葉を覚えさせる
  • 言葉を覚えたら、毎日色々教える

要約するとこれだけである。 どのように工夫して言葉を覚えさせるか。 どのように物事を教えるか。 無理やり教えこませるのではない。 どのように興味をもたせるのか。 などなど、書いてあった。

魔法のような手法ではない。 根気のいる方法だった。 時間が必要である。 ヴィッテの父親はつきっきりだったのではないだろうか。

魔法のような方法があって、それを幼児期にすれば天才になる。 天才になったらあとは少しの勉强でいい。 後は面倒をみないでいい。 ということを期待して読む本ではない。

言葉を覚えさせて小学校に入るまで色々教えるわけだが、約5年ぐらいか。 仮に大人が5年間毎日2時間勉强した場合、ある程度のことは身につくのではないか。 ましてや、吸収の早い子供だったら、色々身につきそうだ。 実績できれば、どんな子でも、ある程度の優秀な子供になると思う。

定本 育児の百科〈上〉5カ月まで (岩波文庫) 松田 道雄 (2007/12/14)

育児本の中で一番有名な本らしいので読んでみた。 読み物として面白く、ぐいぐい読み進むことが出来た。 活字に抵抗がない人は、他の写真が多い育児本よりもこの本がオススメである。 ただし、かなり前に書いた本らしいので現在の常識とは違ったことが書いてあるようだ。 普通に読んでいて、あれ?これ本当かな?と思った箇所を調べてみた。 あら探しをしながら読んだわけではないので、全部を指摘は出来ない。

1.果汁を飲ませたほうがいい?

この本の中では果汁を飲ませたほうがいいとと書いてあります。 しかし、助産師さんに聞いてみたら飲ませないほうがいいと言っていました。 他の、産婦人科医の書いた書籍を読んでみても飲ませないほうがいいとのこと。 現在では生後6ヶ月までは果汁を飲ませないほうが良いというのが常識となっているようだ。

2.サプリを飲ませないとダメ?

サプリを飲ませたほうがいいと書いてある。 調べてみるとアメリカではサプリを上げるらしい。 アメリカではビタミンA、ビタミンC、ビタミンD入りのサプリを生まれてすぐに与えるようだ。 日本人でもビタミンD不足によるくる病が増えているらしいので与えてもいいのかもしれない。

ただ、気になる調査結果があった。

生後6カ月までにマルチビタミン剤をのみ始めていると、3歳時点でぜん息になる確率が27%高い

出典:赤ちゃんにビタミン剤をのませると、黒人の子供はぜん息になりやすい??米国の大規模調査が示唆:日経ヘルスオンライン

この調査では黒人の子供だけだったらしい。 日本人にもその傾向はあるのだろうか? アメリカでの調査なのでアジア系もいるはず。 「黒人の子供だけ」と言っているので、大丈夫なのだろう。

じゃあ、買ってみようと、探したが日本では新生児用のサプリなんか売っていない。 個人輸入できるサイトも見つからなかった。 みんなサプリなしで元気に育っているのだから、別に必要もないのだろうと購入は諦めた。 出版されたころはサプリを入手することが出来たのだろうか?

まとめ

その他に気になったのは、出版された頃と住宅事情の違いなどによる読めばだれでも分かるようなところだ。

赤ちゃんにはそれぞれ個性があるから杓子定規にはいかないこと。 赤ちゃんが元気なら大抵のことは大丈夫なこと。 この辺が繰り返し述べられている。

現在の傾向とは異なる記述もあるが、それでも名著だと思う。 医学的なことよりも大切なことが沢山書いてある。 それに何より読んでいて面白い。スラスラ読める。

高齢出産と自閉症 どのぐらいリスクが上がるのか計算してみた

高齢出産のリスクとして知られているのは、ダウン症の可能性が高くなることである。 しかし、このリスクは検査をすることで回避が出来る。 検査そのものは異論反論があるが、昨今の少子化社会と出産の高齢化傾向を考えると全否定はできない。

最近、もう一つのリスクについて言われるようになった。 出産時の母親の年齢が高くなるほど自閉症のリスクが上がるということだ。 そして、母親だけでなく父親の年齢にも相関関係があるということだ。

母親の出産年齢が5歳上がるごとに、子供の自閉症リスクは18%ずつ上昇する

出典:高齢出産がリスクに? 自閉症の子どもが急増している2つの理由

アメリカの話である。 出産の高齢化が進んでいるためか、実際に自閉症と診断された子供の割合が増えているということである。

自閉症は染色体異常ではないため、出生前診断では判断することは出来ない。 このようなことを考えると、子供を作るのは出来るだけ若いほうがいいようだ。 それでは高齢になったら出産を諦めたほうがいいのだろうか。そうは思わない。

大体であるが、どのぐらいリスクが上がるのか計算してみた。

Wikipediaによると、自閉症児は「日本では1000人に1 - 2人の割合で生じている」ということである。 まあ、ハッキリとはわかっていないようである。
仮に多めに1000人に2人として計算すると0.2%

次に出産平均年齢を推測する。厚労省のページから「第1子出生時の母の平均年齢は上昇傾向にあり、平成23年は30.1歳」となっている。第2子以降を考えるともっと年齢が上がるはずだ。が、これも保守的に出産平均年齢は30歳とする。

以上から、かなり多めにみて、30歳で出産した場合の自閉症になる確率は0.2%となる。

ここから「5歳上がるごとに、子供の自閉症リスクは18%ずつ上昇」を 考慮すると、40歳に生むときの子供の自閉症リスクは0.28%となる。 出産を諦めるような数字ではない。 全体で考えた場合に差が出てくる話であって、個人レベルではほとんど差がないと言っていい数字ではないだろうか。

ダウン症でもそうだが、元々確率は0ではない。 障害を抱えた子供を生むリスクが0でなければ産まないという選択はない。

確率の問題なので理解しづらい話ではある。

大切なこと

元気な子供を生むために、赤ちゃんがお腹にいる間にできることもあります。 葉酸サプリを取ることです。二分脊椎などの神経系の胎児疾患を予防する効果があるとして、厚生労働省が妊娠中や妊娠する可能性のある方は葉酸サプリを摂取することを推奨しています。どうしようもないことに悩むよりもこれからどうすれば元気な赤ちゃんが産めるか考えるべきです。

おすすめのDHAサプリを2つ紹介します。

たくさんあるのですが、なぜこの2つを選んだかというと、葉酸だけでなくDHAも含まれているからです。DHAをたくさん取得した妊婦から生まれた子供は高IQになるという調査結果が出ています。【参考】これから生まれてくる赤ちゃんのIQを少しでも上げる方法

Macbookってケンジントンロックないのね

Macbookケンジントンロック(セキュリティスロット)がない。 必要なときもあろう。 防犯対策を考えていた。

1. ディスプレイまたはシリアルポートに取り付ける

シリアルポートはない。

2. 液晶の首部分に付ける

ワイヤーロックが細ければいいとおもったが、ディスプレイと本体の間はかなり狭い。 市販のやつではダメそう。

3. 両面テープで取り付ける

外された時に音がなるので防止にはなるかも

4. ネジで取り付ける

ネジで取り付けられるようなところはない。

5. ケンジントンロックを取り付けるキットを利用する

Macケンジントンロックの穴のついたケースをネジ止めでつけるキットと ケンジントンロックの穴のついた金具を強力接着剤でMacbook Pro Retinaにつけるキットがある。

6. USBの差込口でロック

USBをキューって外側に締め付けて外しづらくしてくれるだけでいい。 抜こうと思っても抜けなくなる事案もあるみたいだしロック出来そう。 中華製しかみつからなかった。

7. 吸盤式セキュリティワイヤー

吸盤式のセキュリティワイヤーというのもある。元々はタブレット用のものであるがMacbookのようなノートパソコンでも使用できるだろう。本体を傷つけたりしないからいいかも。

8. トレネ

トレネという、ノートPCの上においておいて動くとアラームが鳴る商品がある。ノマドワーカーなどが一時的に席を外したいときに使えそうだ。まだまだ、動作で問題があるようだがいずれ解決されるだろう。面白い商品だと思う。

結論

これで決まり!!!っていう商品はないような気がする。ワイヤーでセキュリティというのがもう古いのだろうか。

Androidアプリ開発:リソースIDを文字列から

テーマの変更を動的にやりたかった。 テーマはPreferenceでListPreferenceを使用して、ユーザーに選択してもらう。 選択したテーマを元に動的に変更する。

配列は以下の感じ。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="theme_array">
        <item>白</item>
        <item>黒</item>
        <item>赤</item>
    </string-array>
    <array name="theme_array_values">
        <item>Theme.Light</item>
        <item>Theme.Dark</item>
        <item>Theme.Red</item>
    </array>
</resources>

Preferenceは以下の感じ。

<ListPreference
    android:defaultValue="Theme.Light"
    android:dialogTitle="テーマ選択"
    android:entries="@array/theme_array"
    android:entryValues="@array/theme_array_values"
    android:key="theme_setting"
    android:summary="ツールバーや背景の色を変更する"
    android:title="テーマの変更"/>

テーマ変更はsetThemeを使えばいいのだが、リソースIDをどう取得すればいいのかわからなかった。 条件分枝しなければならないのかと思ったら簡単な方法があった。 getIdentifierを使えば、文字列からリソースIDを取得できる。

String theme_setting = sharedPreferences.getString("theme_setting", "Theme.Light");”;
Resources res = getResources();
int viewId = res.getIdentifier(theme_setting, "style", getPackageName());
setTheme(viewId);

上記をActivityごとにやる。

NavigationViewのMenu Itemを動的に非表示に

DrawerLayoutとNavigationViewでメニューを作成した。 状態によって一部のMenu Itemを表示したり非表示にしたりしたかった。 動的にメニューを追加しようとした。 が、すべてのメニューをmenu.xmlで定義しておいて動的に非表示にするのが楽だった。

//NavigationView
mNavigationView = (NavigationView) findViewById(R.id.main_navigation_view);
mNavigationView.setNavigationItemSelectedListener(this);

//省略

//非表示にしたい時に以下をする
Menu menu = mNavigationView.getMenu();
MenuItem menuItem1 = menu.findItem(R.id.menu_item_1);
menuItem1.setVisible(false);

別のプロジェクトのモジュール利用をやめて、モジュールをインポートした

Android Studioでライブラリプロジェクトを作成して、そこからモジュールを参照する形にしていた。が、メンテナンス上、自分のプロジェクトにモジュールを追加して使うようにしたくなった。 その時のメモ

1. setting.gradleから削除

setting.gradleに以下の記述をして、外部ライブラリプロジェクトからモジュールを追加していたが削除した。

include ':testlib'
project(':testlib').projectDir = new File(settingsDir, '../MyLib/testlib')

2. app の build.gradleから削除

appのbuild.gradleのdependenciesからライブラリモジュールを削除

compile project(':testlib')

syncさせると確認があるので「OK」を押す。 モジュールがプロジェクトから消える。 当然、ビルドするとエラーがいっぱい出る。

追記:ここはやらなくてもいいかも

3.モジュールをインポートする

[File] > [New] > [Import Module]でモジュールを選択する。 ファイル一式がコピーされ、setting.gradleは自動で以下のように変更される。

include ':app', ':testlib'

その後、app の build.gradleのdependenciesに

compile project(':testlib')

を追加する。

PagerSlidingTabStripのNullPointerException

ViewPagerIndicatorからPagerSlidingTabStripに変更して使っていたら、以下のようなエラーが吐かれてしまう。

java.lang.NullPointerException
        at com.astuetz.PagerSlidingTabStrip$PageListener.onPageScrolled(
                PagerSlidingTabStrip.java:361)
        at android.support.v4.view.ViewPager.onPageScrolled(ViewPager.java:1712)
        at android.support.v4.view.ViewPager.pageScrolled(ViewPager.java:1633)
        at android.support.v4.view.ViewPager.scrollToItem(ViewPager.java:581)
        at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1600)
        ...

ViewPagerIndicatorを使用していた時にはでないエラーだった。 PagerSlidingTabStripのバグのようなのだが、回避方法はあった。

エラーは、PagerSlidingTabStripにセットするViewPagerの保持している配列の長さが0の時に起こるようだ。そこで、ViewPagerのArrayListの長さを確認してから、PagerSlidingTabStripにセットするようにした。

mViewPager.setAdapter(mViewPagerAdapter);

PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
if(mViewPagerAdapter.getCount() > 0){
     tabs.setViewPager(mViewPager);
}

抜粋だがこんな感じ。getCountは自分で作ったもので、ViewPagerAdapterの中のArrayListの長さを返す。

Toolbarの文字の色を変更する

f:id:itereta:20141215174816j:plain

公開中のAndroidアプリをマテリアルデザイン風に変更するために、Toolbarを使うことにした。

テーマは「Theme.AppCompat.Light.NoActionBar」で。 すると、マテリアルデザイン風にしたいのに、Toolbarの中の文字が黒くてダサい。

f:id:itereta:20170406222036p:plain

この文字の色を変更するだけで苦労してしまった。

最初は、単純に

<style name="MyCustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">#0091EA</item>
    <item name="colorAccent">#607D8B</item>
    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="android:textColorSecondary">@android:color/white</item>
</style>

というテーマを作り、AndroidManifest.xmlに登録した。 しかし、こうすると他のandroid:textColorPrimaryを使っている箇所の文字の色も変わってしまった。Toolbarだけのためだけにアプリ全体のtextColorPrimaryを変更するのは色々不都合なのでやめにした。

色々試した方法は二つ。

方法1. 別のスタイルを登録する
方法2. ただのビューとしてスタイルを定義する

「setSupportActionBar」を使ってアクションバーとしてセットする場合は方法1でしかできない。 元々あるアプリはこの方が変更点が少なくて楽であった。 しかし、柔軟なスタイル変更はできない。 方法2の方は変更点が多いが柔軟に色々変更できるので私はこちらを選択した。

方法1

自分のカスタムテーマの下にToolbar専用のテーマを作り、レイアウトファイルでToolbarに設定した。

<style name="MyCustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">#0091EA</item>
    <item name="colorAccent">#607D8B</item>
</style>


<style name="MyCustomTheme.Toolbar" parent="MyCustomTheme">
    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="android:textColorSecondary">@android:color/white</item>
</style>

上のように作っておいて、AndroidManifest.xmlにはMyCustomThemeを登録。 ToolbarのlayoutにMyCustomTheme.Toolbarを登録する。

<android.support.v7.widget.Toolbar
                android:id="@+id/my_toolbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:theme="@style/MyCustomTheme.Toolbar"
                app:popupTheme="@style/Theme.AppCompat.Light">

このようにすれば、Toolbarの文字だけが白くなる。

方法2

「setSupportActionBar」を使わずActionbarとしなければ、styleを設定できる。 要するに、ToolbarをただのViewとして扱うということ。

<style name="MyCustomTheme.Light" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">#0091EA</item>
    <item name="colorAccent">#607D8B</item>

    <!-- Toolbarのnavigation & overflow icon の色 -->
    <item name="colorControlNormal">@color/white</item>

    <!-- Toolarのスタイル -->
    <item name="toolbarStyle">@style/MyCustomTheme.Toolbar</item>
</style>

<style name="MyCustomTheme.Toolbar" parent="Widget.AppCompat.Toolbar">
    <item name="titleTextAppearance">
        @style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse
    </item>
    <item name="subtitleTextAppearance">
        @style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse
    </item>
</style>

私は結局、方法2を使うことにした。方法1ではソースコードの変更は少ないのだが、自由度が少なく自分のやりたいことができないことがあるためだ。

以上

Navigation Drawer使用時のaddDrawerListenerでのエラー

f:id:itereta:20141215174816j:plain

Toolbarにメニューアイコンを表示して、そのアイコンをタップすればNavigation Drawerを開くようにしたかった。 ActionBarDrawerToggleを使えば実現できるのだが、大体のサンプルでは以下のように書いてあった。

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawerLayout); 
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, drawer, toolbar,R.string.drawer_open, R.string.drawer_close); 
drawer.addDrawerListener(toggle);
toggle.syncState();

しかし、以下のようなエラーが表示された。

Error:(**,**)エラー: シンボルを見つけられません
シンボル: メソッド addDrawerListener(ActionBarDrawerToggle)
場所: タイプDrawerLayoutの変数 mDrawerLayout

理由がわからないのだが、addDrawerListenerが悪いらしい。 これをsetDrawerListenerに変更したら、エラーもなくなり動作確認もできた。

本来はsetDrawerListenerはdeprecatedだが私の環境では動作の問題はない。

ViewPagerIndicatorからPagerSlidingTabStripに変更した

ViewPagerIndicatorを使ったアプリをPagerSlidingTabStripに変更した。 メモ的に必要だった変更をまとめた。簡単だった。

1. build.gradleのdependenciesに以下を追加する。

compile ‘com.astuetz:pagerslidingtabstrip:1.0.1’

2. PagerSlidingTabStrip widgetをレイアウトに追加する

<com.astuetz.PagerSlidingTabStrip
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="48dip" />

これをViewPagerの上に追加した。 ViewPagerは今までViewPagerIndicatorの下に配置するようになっていたので、

android:layout_below="@+id/tabs"

と変更して、PagerSlidingTabStripの下に配置するように変更した。

ViewPagerIndicatorは android:visibility=“gone” として、一時的に非表示にした。PagerSlidingTabStripの動作確認後に完全に削除する。

3.onCreateでバインドする

サンプルなどでは以下のように書いてある。

// Initialize the ViewPager and set an adapter
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new TestAdapter(getSupportFragmentManager()));

// Bind the tabs to the ViewPager
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setViewPager(pager);

pager.setAdapter(new TestAdapter(getSupportFragmentManager())); の部分がよく分からない。

私はViewPagerIndicatorで使っていた、アダプターをそのまま使いたいので、以下のような感じになる。

mViewPagerAdapter = new ViewPagerAdapter(this);
mViewPager = (ViewPager) findViewById(R.id.viewpager);
mViewPager.setAdapter(mViewPagerAdapter);

// Bind the tabs to the ViewPager
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setViewPager(mViewPager);

4. ViewPagerAdapterの変更

ViewPagerIndicatorを使っていたので、ViewPagerAdapterは以下のような感じ。このまま使うが、メソッドを追加したり変更する必要がある。

public class ViewPagerAdapter extends PagerAdapter implements TitleProvider
1.getPageTitleを追加する

タブタイトルを返すメソッドを追加する。 ViewPagerIndicatorではgetTitleを使っていたが、PagerSlidingTabStripではgetPageTitleとなる。

public CharSequence getPageTitle(int position)

という、タブのタイトルをCharSequenceで返すメソッドを追加する。 getTitleをコピーして変更すればいい。

2. もしinstantiateItemがdepregatedだったら

以下のようにViewをViewGroupに変更する

変更前

public Object instantiateItem(View pager, final int position) {

変更後

public Object instantiateItem(ViewGroup pager, final int position) {

以上、あとはViewPagerIndicatorの使用箇所を削除していけばいいだけだった。 最初にViewPagerIndicatorを使った時は苦労した記憶があるので難しいのかと思ったが、拍子抜けするぐらい簡単だった。

f:id:itereta:20170404125455p:plain

EclipseのプロジェクトをAndroid Studioへインポート時に出たエラー対処方法

f:id:itereta:20170403153809j:plain

重い腰を上げて、EclipseのプロジェクトをAndroid Stuidoへインポートした。 インポート自体はAndroid StudioからImport Projectをすれば良いのだが、エラーがいっぱい出てた。私が必要だった変更をまとめる。

1. minSdkVersionの設定

以下のエラーメッセージが出てきた。

Manifest merger failed : uses-sdk:minSdkVersion 10 cannot be smaller than version 14 declared in library [com.google.android.gms:play-services:10.2.1]

2017/04/03現在、ほとんどがversion 14以上だと思うので、プロジェクト内の全部のminSdkVersionを14にした。

2. compileSdkVersionの変更

以下のようなエラーが出た。

Error retrieving parent for item: No resource found that matches the given name ‘android:Widget.Material.Spinner.Underlined’.

compileSdkVersionをbuildToolsVersionと合わせないとダメなようだ。

buildToolsVersion “25.0.2”

だったので

compileSdkVersion 19

から

compileSdkVersion 25

に変更した。 すべてのbuild.gradleで変更した。

3. FloatMath

エラー: シンボルを見つけられません シンボル: メソッド sin(float) 場所: クラス FloatMath

ってのが出たから すべてのFloatMathをMathに変更した。

4. org.apache.http.legacy

パッケージorg.apache.httpは存在しません

とかのエラーが出てしまう。

build.gradleにuseLibrary ‘org.apache.http.legacy’ を追加すれば解決した。

以下のような感じ

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    useLibrary 'org.apache.http.legacy'

5. This support library should not use a different version

compile ‘com.android.support:support-v4:19.1.0’

で、This support library should not use a different versionというエラーメッセージが出ている。 19を25に変更すれば、エラーは消える。ついでに最新にしておく。

compile ‘com.android.support:support-v4:25.3.1’

6. All com.android.support libraries must use the exact same version

compile ‘com.android.support:support-v4:25.3.1’

にて

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 25.1.1, 24.0.0. Examples include com.android.support:animated-vector-drawable:25.1.1 and com.android.support:mediarouter-v7:24.0.0

とかいうエラーメッセージが出た。

compile ‘com.google.android.gms:play-services:+’

が原因のようで、 必要なものだけ追加するようにする。

例。

compile ‘com.google.android.gms:play-services-ads:10.2.1’

7. 不要なパーミッション

Android Studioでは自動でパーミッションがついてしまう。 不要なパーミッションがついて、プライバシーポリシーを追加しなくてはならなくなったりする。 ので、極力減らす。

原因1

Google Play Serviceが原因で追加されてしまう。 以下のように全て追加するのはやめる。

compile ‘com.google.android.gms:play-services:+’

以下のように必要なものだけ追加するように変更する。

compile ‘com.google.android.gms:play-services-ads:10.2.1’

原因2

インポートしている外部ライブラリで、minSdkVersionを明記しないと不要なパーミッションがついてしまう。

build/intermediates/manifets/full/の中にあるマージ後のAndroidManifestを確認すると 以下の2行が追加されてしまっていた。

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

最初はGoogle Play Serviceのせいかと思ったが、外部ライブラリのせいだった。 外部ライブラリでminSdkVersionを設定すれば解決した。 外部ライブラリのbuild.gradleにて

    defaultConfig {
        minSdkVersion 14
    }

その他、状況によってはtargetSdkVersionを指定する必要もあるようだ。

以上

JILLA - 日本イラストレーション協会に加入できる職業名一覧

f:id:itereta:20170215175944j:plain

日本イラストレーション協会に加入に加入できれば、文芸美術国民健康保険組合への加入資格を得ることが出来ます。 国民健康保険から文芸美術国保に変更すれば、保険料を大幅に節約出来きます。

ざっくりですが、国民健康保険料を20万円以上支払っている人は文芸美術国保のほうが安く済むようです。 実際にどのぐらい節約出来るかは、公式サイトにある保険料の比較で確認するといいと思います。

誰でも日本イラストレーション協会に加入できる訳ではないですが、アフィリエイターのようにホームページの作成で収入を得ている人は、ほぼ加入できます。 JILLA の方で加入できる職業名一覧を明確にしています。 以下に列記します。

イラストレーター系

  • イラストレーター
  • イラストレーション制作(業)
  • 絵本作家
  • 画家
  • 美術家
  • 建築パース(制作)
  • 3DCG(制作)
  • キャラクターデザイン

デザイナー系

  • グラフィックデザイナー
  • グラフィックデザイン
  • デザイナー
  • デザイン(業)

WEB関連事業者系

  • WEBデザイナー
  • WEBデザイン
  • HPデザイン

漫画家系

  • 漫画家
  • 漫画制作(業)
  • 漫画執筆(業)

広告関連系

  • 広告制作(業)
  • 広告デザイン(業)

その他

  • 編集(業)
  • 編集者
  • アニメーター
  • フォトレタッチャー
  • アートディレクター

加入希望の人は、「個人事業の開業等届出書」の職業種目とか確定申告の時の職業欄に上の一覧にある職業名にしておいたほうが、加入がスムーズになります。

赤ちゃんのIQを少しでも上げる方法

f:id:itereta:20161013101920j:plain

子供の知能面での成長で一番大切な事は教育なのだろう。 しかし、生まれたばっかりの赤ちゃんに教育は無理だ。 教育以外の環境面で、IQへ僅かではあるが影響を与えることがある。 少しでも赤ちゃんのIQが上がるように、環境とIQとの関係について調べてみた。

母乳で育った子供は、少なくとも15歳まではややIQが高い傾向があるようです。

出典:書籍「妊娠中の運動ハンドブック

これは色々なところで書かれている。本の中では、DHAが母乳に含まれていることや授乳による母子交流が理由としてあげられるのではないかと推測している。 人工乳であっても、DHA入りを選択したりミルクの飲ませ方を工夫することで同じ効果を期待することができそうだ。 他の調査結果では、「出産後に魚油サプリメントを飲ませた試験により、生まれてからDHAなどを飲ませてもIQを高くする効果は期待できない」という結論が出ている。 なぜ母乳にDHAが含まれる場合は効果があり、魚油サプリメントでは効果がないのか疑問だ。

母乳育児を1年間続けた子どものIQは、そうでない子どものIQを約4ポイント上回った

出典:母乳育児でIQが上がるとの論文、信ぴょう性は?

こちらの調査結果では具体的なIQポイントが書いてある。 4ポイントだとクラスの中くらいの人が、クラスの中の上ぐらいになるかも。 母乳そのものが理由なのかどうかはまだわかっていない。 さらに、「生後半年間母乳のみを飲んで育ち、それ以降は補完食(母乳を補う飲食物)を取り入れながら母乳を飲み続ける、という、WHOで推奨される『理想的な母乳育児』を行った場合はもっと結果がよくなる」ということだ。

8歳時のIQテストを見ると、母乳、ミルクにかかわらず、時間を決めずに授乳した子のIQは約5ポイント高かった

出典:Babies fed on demand do better at school... but it's not so good for exhausted and grumpy mothers 出典:パパママ必見! 時間を決めず欲しがった時に授乳した方が子どもの頭は良くなるという研究結果

3時間おきなど時間を決めて授乳していた場合に比べて、赤ちゃんがほしがった時に欲しがっただけ授乳した場合の方がIQは約5ポイント高かったということ。 さらに14歳でも、SATsという学力テストで好成績だったということである。 これもクラスの中くらいの人が、クラスの中の上ぐらいだろうか。 だたし、「時間を決めて授乳していた母親は、若い、シングルマザー、公営住宅住み、かつ学歴も低い傾向」があり、母集団が違うのでどこまで授乳の影響なのかはわからない。

授乳期間が長くなるほどいずれの年齢においても児の知能アウトカムが向上する傾向が示唆されたが,母乳に限定した場合でより顕著であったという

出典:母乳による授乳期間が長いほど児の知能が向上

母乳での授乳期間が長ければ長いほどIQスコアが高くなるという調査結果だ。 ただし、これでは12カ月までの調査になっており、それ以上長くなった場合どうなのかは分からなかった。 さらに6ヶ月までの調査になるが、母乳限定で育てた期間が長い方がスコアが高かった。 12ヶ月以降の断乳や6ヶ月以降までの母乳限定についてはこの研究結果では分からない。

幼少期に加工食品や脂肪分および糖質の多い食事を取っていた児童と,サラダや米,魚や果物など栄養バランスの取れた食事を取っていた児童とでは,8歳半時点でのIQに差があった

出典:幼少期の食生活が8歳半時のIQを左右する? 出典:Danger of a junk food diet for children: Study reveals toddlers who eat more chips, crisps, biscuits and pizza have lower IQ

高脂肪・高糖質中心の「加工食品生活」よりも肉・野菜中心の「伝統的食生活」。 肉・野菜中心の「伝統的食生活」よりもサラダ・米・パスタ・野菜・果物を均等に取る「健康的食生活」。 面白いのが4~7歳時での食生活が、8歳半時のIQに与える影響はなかったことだ。 あくまで3歳時の食事が、8歳半時のIQに影響を与えている。

生後6カ月から24カ月にかけての食生活が8歳になったときのIQに、「小さいけれど重要な」影響を与える

出典「子供にジャンクフードを食べさせちゃダメ」は本当だった! 幼い頃からジャンクフードを食べているとIQが低下することが判明 出典:Giving your child junk food can lower their IQ, claim scientists

こちらでも上の調査結果とほぼ同じことを書いている。ポイント数ではわずかだが、生涯に渡る影響があるとのこと。

「インスタントのベビーフード」も、子供たちのIQにマイナスの影響を与えるということがこの研究により判明

これが日本の市販の離乳食がこれに当たるのかはわからない。また、原文の方を読むと、

6ヶ月の子にはインスタントフードは悪い影響があったが、24ヶ月の子にはいい影響があった。

ということである。便利なのでうまく使いたい。

体罰で子供が攻撃的になるだけではなくて、その後の人生で、うつ病、不安とドラッグや飲酒を含むメンタル・ヘルス問題に結びつき、IQテスト成績と物質濫用の可能性に関与する脳部分を変化させ、感情とストレス規則を含む脳エリアにすごく影響する可能性があるという

出典:子供に体罰を加えると、その後子供が反社会的になる 出典:Do You Spank Your Kids?

体罰というと大げさだが、子供を躾けるのに平手で叩くことが悪影響があるらしい。 Distraction(気をそらすこと)やRedirection(リダイレクト。ブロックを投げる場合、ボールに持ち替えさせる)などの方法が体罰に変わり有効だとのこと。

第一子は弟や妹よりも問題行動が少なくて、学力テストの成績もいい。第二子のIQのスコアは第一子より平均2㌽低く、第三子のスコアは第二子よりさらに低かった。

参照:書籍「0歳からの教育 2014年版 - ニューズウィーク日本語版」リンク→0歳からの教育 発達編 (MEDIA HOUSE MOOK)

兄や姉が幼くして亡くなり長男となった場合もIQテストで高得点であるため、先天的な能力差ではない。

  • 第一子という立場そのものが違いを生む。
  • 親のリソースがより多く注がれる傾向にある。
  • 幼児時代の親(大人)との会話量が相対的い多い。

などの理由が考えられている。

感想

調べた結果以上の方な方法が挙げられるが、どれも天才になるなど人生が変わるほどのIQの差がでるわけではないようだ。 食事など健康面からは気をつけるのは当たり前だが、あまり神経質になるよりは教育に力を入れたほうがよさそうだ。 IQが高いのわいいことばかりではなく、ドラッグやアルコールに依存しやすくなるとか悪い面もある。 子供の頃だけ頭がよくてもしょうがないので、努力を継続する力や集中力の方が大事なように思う。

最後に

面白いのを見つけたので見てみてください。GIQという子どもの能力遺伝子検査です。こちらからどうぞ→自宅でカンタン【GIQ子ども能力遺伝子検査】 自分の子供が生まれながらにしてどんな能力を持っているかを遺伝子から解析するそうです。自宅で簡単に、子供の遺伝子的な能力鑑定を国内の医療機関でしてくれるそうなので安心です。ただ、どんな結果になるかは少し怖いですね。