ニキビが治らないのは化粧品に頼りすぎているからかもよ
ニキビが治らないなら皮膚科へ行きましょう!
そんなもんわかっとるわい、と思われるかもしれません。それはそうと、ちょっとこれを見てください。
https://www.dermatol.or.jp/uploads/uploads/files/guideline/acne guideline.pdf
尋常性痤瘡(ニキビ)の治療ガイドラインです。5年で改訂らしいので、2016年版が最新です。(2017年現在)
ガイドラインの内容は?
治療ガイドラインなので、お医者さんがより良い治療をするために読むものですね。ですが、私たちにも役立ちます。2ページ目の推奨度の分類を見てください。ざっくり言うと、より科学的に効果があると認められている治療法が推奨度が高いということです。当たり前っちゃ当たり前ですね。
C1以上であれば推奨される治療で、Aに近付くほどよりおすすめの治療ということがいえます。
それを踏まえて6ページの表を見てみましょう。まずビタミン薬内服が有効か?という項目では、推奨度C2となっていますね。あれ?ニキビにはビタミンってあちこちで言われてるけどそうなんですね。(もしお医者さんに処方された場合は指示に従ってください。あくまでもガイドラインなので個人差があるはずです。)
次に、痤瘡用基礎化粧品の使用が有効か?という項目があります。こちらは推奨度C1となっています。こちらは一応選択肢の一つとして推奨されるようです。
では表の他の部分も眺めてみてください。推奨度A(強く推奨されている)がいくつか見つかります。これは処方薬ですね。医者に行かないと手に入れることができません。
統計が大事
この推奨度が何によって決まっているのかというと、エビデンス(証拠)のレベルです。これもガイドラインの中に説明がありますが、すごく簡単に言うと統計的に答えが導かれている物はそうでないものより信用できるということです。さらにその研究をいくつもまとめて分析したものが、もっとも質の高いエビデンスとして扱われます。
ニキビ用化粧品もいいけれど…
私も色々なニキビ用化粧品を試してきました。効いた!と思ったものも、全然効かない…と思ったものもあります。
そもそも、自分の肌の調子は季節の変化(花粉や気温)、月経の周期等により変化するものです。しかもニキビの原因は人それぞれ。
なので、その化粧品が本当に効いているのか、あるいはただの体調の変化で肌の調子が良くなったのかは統計の知識を持って調べてみなければわかりません。
化粧品が悪いとはいいません。大抵の場合、化粧品の開発でも限られた範囲(薬事法)でもより良いもの作ろう、と研究者の方々が頑張っているのだと思います。ですが、より効果があると学術的に認められているものがあるのだから、まずそれを使ってみるのが一番良いでしょう。治ったらなんぼでもパッケージが綺麗だとか、香りが良いとかの好きな化粧品を使えばいいのです。まずは治療が先決!
残念ながら皮膚科に行って、薬を塗れば3日でニキビが治りました!というようなものではなく、しばらく通院を継続することが必要な場合がほとんどだと思います。継続するためには、何よりも信頼できるお医者さんを見つけることが一番大事です。なので皮膚科に行きましょう。大丈夫、きっと綺麗な肌になりますよ。
〈おまけ〉
この記事を書いたのは、実は「統計学が最強の学問である」という本を読んで感銘を受けたからです。
「統計って聞いたことはあるけど、具体的にどういうことをしてるのかよくわからない…」という状態でしたが、本を読んで「なるほど統計学って最強だな!」となりました。今後の人生の指針に。
Raspberry Pi 3を二ヶ月弱使ってみての雑感
ラズベリーパイ(以下ラズパイ)とは
ラズパイの使い方は人それぞれです。1万円以内で買える小型のLinuxパソコンとしても使えるし、今流行りのIoTに使うことも。元々子供のSTEM(Science, Technology, Engineering and Mathematics)教育用らしいです。なので色々プログラミング言語が入ってたりします。普通のPCと違うのは、GPIO(General Purpose Input/Output)ピンというものが付いているところです。汎用インプット・アウトプットピンですね。このピンを通して電気を流し、自分で作った外部の機器等を操作したりセンサーからの情報を読み取ったりできます。楽しい。
元々入ってるソフト
OSは自分で入れます。ラズパイ向けのRaspbianというやつが良いでしょう。以下Raspbianに元々入ってるソフトで、私が触ったやつ。
- Python(2と3)
- Scratch(子供向けプログラミング言語)
- Libre Office(オープンソースのoffice)
- Sonic Pi(コードを書いて音楽を作れるやつ)
- Minecraft (建物作ったりするゲーム)
- Mathematica(本当はウン万円する高度な計算ソフト)
- Chromium(Webブラウザ)
使い心地
Python、Scratch、Sonic Pi、Minecraftは特に問題なく動作しました。
Minecraftは普通のと違って敵が出てこないみたいです。あんまりやってないから知らないけど。
Chromiumはちょっと重め。
Libre Officeの表計算ソフト(エクセルみたいなの)は、私の全ツイート(80000程度のツイートデータ)を読み込んだらめちゃ重くなったので使い物になりませんでした。
普通のエクセルでもそんなものかもしれない。
Mathematicaはそもそもあんまり使い方がわかってないのですが、本気で使うにはラズパイでは重すぎると思います。でも何となく楽しいことができそうな雰囲気があります。
ラズパイって何ができるの?
人それぞれですが、私は今のところこんな感じの流れで遊んでいます。
- IoTやりたい。電子工作!とりあえずLチカ!
- Scratchおもろいやん!
- Sonic Piたーのしー!
- Pythonでツイート分析(最近ずっとこれ)
電子工作
私は「何かロボとか作りたい…」と思って行った本屋さんで存在を知りました。なので最初はどちらかというと電子工作寄りの目的でした。電子部品売ってるお店に人生で初めて足を踏み入れたのですが、あのワクワクったらなかったです。行ったことない人は、行ってみるといいと思います。東京ならアキバ、大阪なら日本橋。
で、買ってきてしばらくは電子工作界の'hello,world!'ことLチカ(LEDをチカチカ点滅させる)をやったりしてました。楽しい。でも電子工作やるなら何らかのセンサーがあった方が絶対楽しいと思います。私はまだ買ってないので、今は電子工作よりPythonの勉強してます。
Scratch
ブロックを積み重ねてアニメーションとかゲームとか簡単に作れます。直感的に操作できるので、子供でも楽しく遊べそうです。プログラミングの基礎もしっかり勉強できます。しかも出来上がった作品の公開がとても簡単。公式サイトにアップできます。私もごくシンプルなゲーム(のようなもの)を作って公開しましたが、外国の人がコメントくれて嬉しかったです。子供がいるならかなりオススメ。
Sonic Pi
丁寧なチュートリアルがあるので、それっぽい音楽が簡単に作れます。サカナクション好きなら楽しめそう。何となく。
Python
今はPythonで遊んでます。他の言語と比べてかなり取っつきやすいと思います。今流行りのデータ分析にもオススメってあちこちに書いてたし。
思うこと
何かインストール中に別の作業(Pythonで書いたコードを動かしたり)すると、フリーズしてしまうことが何度かありました。値段が値段なので、仕方ないなと思ってます。あと、電子工作で遊ぶならGPIOピンの部分だけふたが開くタイプのケースを買いましょう。私はうっかりと違うのを買ったので、何か繋げる時はふた全開です。
なんだかんだラズパイを買ってから、色々と勉強する気になったので本当に買ってよかったです。ラズパイ ゼロというもっと安くて小さいやつ(税込702円だとか)も最近日本でも買えるようになったみたいなので、みんなも買って遊びましょう。それでは!
おすすめの本↓
大きめ柑橘おいしいけど皮むきにくくない?
みなさん、はっさくは好きですか?私は大好きです。
冬の温州みかんが終わり、寂しくなった心の隙間を埋めてくれるのが??そう、はっさくですよね。
はっさくライフの向上に、この間めっちゃいいものを買ったので紹介します。ムッキーちゃんです。
超時短便利グッズ
大きめの柑橘が家族みんな大好きなのですが、みかんと違って少し皮を剥くのに手間がかかりますよね?
中の薄皮まで剥かないといけないし。なので面倒な時はちょっと食べるのを躊躇してしまうほどでした。
そこでムッキーちゃんの登場です。
まず外の分厚い皮を、プラスチック製の鋭い刃が何なく切り目を入れてくれます。切り目が入っているだけで、段違いの剥きやすさ!
爪が多少伸びてようが、逆に深爪気味だろうが関係ありません。
もうこの段階で、「はあ〜、ええもん買ったわい…」と大満足です。しかしそれだけで終わりではありません。薄皮もめっちゃ楽に剥けるようになっているのです。
今度は金属の刃に向けて、すっと一房ずつ滑らせます。するとまっすぐ皮に切り目が入り、ささっと薄皮も剥くことができるではありませんか!
これはね、実際にやらないとその凄さが実感できないと思いますが、私は大興奮でした。今までの労力は何やったんや?と。しかも楽しい。
興奮のあまり一度に2つ剥きましたが、今まで2人がかりで1個分剥くのにかかっていたのと同じ時間で楽々剥けてしまいました。
しかもバラバラにならず綺麗に剥けます。350円くらいしましたが、それ以上の価値はあるとはっきり言えます。
これで今後ははっさくが安い時も遠慮なくたくさん買えます。
グレープフルーツも今までは半分に切って、周りに汁を飛び散らせながらスプーンで食べていましたが、これがあれば綺麗に楽に食べることができるでしょう。
私は手に入れたのです。文明の利器を!ああ今、私は猿から人間に進化したんだ!そう感じました。
猿から人間になりたい人は、ぜひ使ってみてください。
公式動画もありました
剥いた外皮の使い道
よく洗ってお風呂に入れると、とても良い香り!
光毒性があるかもしれないので、朝風呂にはしない方がいいかも。あと敏感肌の人も要注意です。
PythonでTwitterのbotを作ろう!(定期投稿タイプ)
定期投稿する簡単なbotを作ります
いくつも用意しておいた文章の中から、ランダムで10分に1回投稿します。かなり単純ですが、色んな応用例が考えられますね。
以下で作り方を説明します。今回は定期投稿するbotについてのみ解説します。(リプライに返事等はしません)
全ての作業はラズベリーパイ3で行なっています。OSはLinuxの一種のraspbianです。
まずはbot用アカウント作成
Twitterのサイトへ行き、作りたいbotの名前でアカウントを作成します。
この時メールアドレスが他のアカウントと重複していると作れないのですが、Gmailを使ってる場合はエイリアス機能というやつで解決できます。
例えば手持ちのGmailアドレスが"temochi@gmail.com"だとすると、"temochi+bot@gmail.com"などの様に、太字部分を付け足しても前者のメールアドレス("temochi@gmail.com")にメールが届くという仕組みです。
これで登録しておけば、別のメールアドレスだと認識されます。とっても便利。
また電話番号も重複していると登録できません。あらかじめ元々持っているTwitterアカウントに紐付けされている電話番号を削除しておけば問題ないので、先に消しておきましょう。
次の段階では電話番号の登録が必要になります。
必要なモジュールをインストール
sudo pip3 install requests_oauthlib
これをターミナルに打って、インストールしておきます。
キーやトークンを取得
上記のサイトにアクセスし、Create New Appをクリック、上からbotの名前・説明、URLを入力します。規約に同意するチェックを入れて、下のボタンを押すと登録できます。
この時、さっき作ったbot用アカウントに電話番号が登録されていないとエラーが出るので気をつけてください。
登録できたらKeys and Access Tokensというところを開くと、以下のファイルに対応するキー4つが見つかるはずです。トークンはCreate my access tokenボタンを押せば出ます。
取得したキーをsettings.pyという名前で作ったファイルに以下のように保存しておきます。XXXXXXの部分に取得したキー等をそれぞれ入力します。(実際はもう少し長い文字列)
実際のコード
では実際のコードを見てみましょう。これを"tweet.py"みたいな名前で保存しておきます。
まずこのコードを動かすためのモジュールがいくつかインポートされています。5行目でインポートされているのが、先ほど作った設定ファイルです。
11行目にツイートしたい内容を入力します。ダブルクォーテーション(")でくくり、コンマで区切って入力してください。
13行目で先ほど入力した内容の中から一つがrandomtweetという変数に入力されます。
14行目、15行目ではタイムスタンプを用意しています。これは、Twitterに一定時間内に全く同じ文言を何度もツイートしようとするとエラーが出るので、それを避けるためです。いらなかったら消してもOK。
17行目でrandomtweetとタイムスタンプを合わせてツイート内容を用意。
あとはインポートしたモジュールがうまいことしてくれます。詳しく知りたい人は下部にリンクした参考サイトを見てください。
実行してみてエラーが出ず、きちんとツイートされているようなら次へ進んでください。定期実行してみましょう。
cronの設定
cronとは決まった時間にプログラムを実行してくれるタイマーみたいなものです。さあここからがちょっとややこしいんですが、私はラズベリーパイでやってるのでそのやり方を説明します。
まずターミナルでcrontab -eと入力します。使うエディタを聞かれるので、2番のnanoを選びます。そして下の空いてるところに*/3 * * * * python3 /home/pi/tweet.py等と入力し(自分が保存したプログラムのパスを入れてください)、Ctrl+oを押してEnterで保存し、Ctrl+xを押して終了します。これで3分おきにプログラムが実行され、ツイートされます。
詳しくはこのサイトなどを見てください。
私が引っかかったポイントを説明しておきます。 アスタリスク(*)の間には一つずつスペースを入れ、アスタリスクと何分おきかを示すスラッシュ(/)の間にはスペースを入れません。
Herokuを使って定期実行できるようになりました(2017/06/04追記)
少しコードに変更(APIキーとタイムスタンプの部分)がありますので、注意してください。1番短い間隔で、10分おきにツイートできます。
もっと簡単にbotを作る
もっと簡単にbotを作れるwebサービスもあるようですが、短くて30分おきにしかツイートできないようなので、私は使いませんでした。それくらいの間隔で充分というなら便利に使えそうです。なので貼っておきます。
自分の普段使ってるアカウントで、何かのお知らせ定期ツイートだけしたいという人もこういうサービス使えば簡単そう。
注意事項
Twitterの規約はしっかり読んでおきましょう。うっかりするとbotだけでなく、通常利用のアカウントまで凍結される恐れがあります。
この中に気になる事項があって、複数アカウント取得するのはもしや禁止なのでは?と思ったのですが、以下のサイトによると、攻撃的なアカウントでなければ大丈夫なようです。人を傷つけることのないbotを作り、楽しいTwitterライフを!
Twitterルール改定──人種や性的指向へのヘイト行為や脅迫行為など、禁止事項が詳細に - ITmedia NEWS
参考サイト
かなり参考にさせてもらいました。わかりやすいです。
グラフにすればよくわかる!Twitterから自分のツイートをダウンロードして分析する方法。
(2017/03/30追記:もっとわかりやすく使いやすいプログラムを書けたので新しい記事を書きました。下のリンクから飛んでください。)
Twitterでよくある診断アプリは好きですか?自分がどんな人間かわかってるつもりでも、目に見える形にまとめられると新たな発見があって面白いですよね。
ただ、ああいうアプリではTwitterの仕様により、過去の全ツイートを読み込んで分析するということができません。ツイート頻度が高い人では特に、ごく最近のツイートからしか結果に反映されなくてつまらなかった…ということもあります。
それならPythonで簡単診断!
それならば!Python(Pythonとは、初心者にも使いやすいプログラミング言語です。)を使って自分で色々と自分のツイートを分析してみましょう。以下のグラフを見てください。これは私の全ツイート履歴から、非常に辛い気持ちを表す言葉が含まれるツイートの数を時系列で表したものです。私は双極性障害という病気持ちなので、かなりはっきりした波があることがわかります。
これだけでも何となく面白いですが、これに"お金"という言葉を含むツイートのグラフを重ねてみると…
こうなりました。お金について言及している時(私の場合ほぼお金がない時)には、やはり死にたい気持ちも強くなるのかもしれませんね。こうやって重ねてグラフにすると、とてもわかりやすいです。
今回はこのように自分の全ツイート履歴から、任意の言葉を含むツイートを時系列でグラフにするということを説明します。私は自分のメンタル分析・改善を目的としてるので暗いグラフを作ってますが、皆さんは好きな人・物などでグラフを作ってみると楽しいと思います。
Python環境構築
環境構築についてはOSによって違うので、以下のサイトを参考にしてください。すみません、あんまり詳しくないので丸投げ。ちなみに私はRaspberry pi3を使っていて、OSはRaspbianです。ラズパイは教育向けにできてるらしく、Pythonも元々入っています。みんなもラズパイ買っちゃいなよ。
いくつかライブラリをインストール
以下ラズパイのターミナルにコマンドを打ちます。環境によって違うかもしれませんが、ググればいっぱい情報出てくるはず。
sudo pip3 install pandas matplotlib numpy
もしこの辺でわからないことがあったら、コメントに書いてもらえればわかることなら答えます。
ツイートの履歴を取得
Twitterの設定の中に全ツイート履歴をリクエストするというボタンがあるので押してください。しばらくすると登録メールアドレス宛に送られてきます。解凍して適当な場所に保管してください。
さあ実践
まずは下のコードをメモ帳などのテキストエディタに貼り付け、"twigraph.py"という名前で保存します。拡張子(.py)があっていれば、名前は今適当に考えただけなので違ってもOKです。
まず8行目でダウンロードしたツイート履歴を読み込んでいます。自分が保存した場所のパスを入力してください。その次9行目から11行目に自分が抽出したいキーワードを入力します。3つまで同時に扱えるようにしました。それより多いと重なり過ぎてわけわからんことになると思います。11行目は今使っていないので、コメントアウトしています。(先頭に#をつけて無視されるようにしている)キーワードを3つ使うときは#を外します。
その後はデータをグラフに出力できる形式に整えています。20行目から24行目、これも今使っていないのでコメントアウトしています。この場合はこの場合は複数行なので行の前後をダブルクォーテーション3つ(""")で挟んでいます。これもキーワードを3つ使うときは外します。
34行目から36行目には、グラフの凡例を入れます。日本語入力するには設定が大変そうなので、ローマ字で入れてください。そしてまた保存しておきます。
いざ実行
自分の構築した環境で実行してみてください。どうでしょう?グラフがちゃんと出ましたか?
出てないかもしれませんね。私もグラフ出るようになるまでめっちゃ時間かかりました。backendの設定が云々とかあるかもしれません。しかしそろそろ疲れたので終わりにします。何かあれば聞いてください!私も初心者なので答えられないかもしれませんが、一緒に考えましょう。
ちゃんとグラフ出た人は色々キーワード変えて楽しんでみてください。それでは!
(2017/03/16追記:matplotlibバックエンドの設定、下のサイト見るとわかりやすいです。)
matplotlibのデフォルトのバックエンドをPyQt4にする - 計算物理屋の研究備忘録
(2017/3/19追記:同じキーワードで複数の呼び名が考えられる時(ex.猫,にゃんこ,ネコ)、まとめるにはstr.contains("猫|にゃんこ|ネコ")という風に指定します)
【初心者向け】Python標準入力の取扱い
先日紹介したpaizaですが、スキルチェック問題を解くのに初心者は絶対つまづくんじゃ?と思ったポイントがあったので、簡単に解説したいと思います。
一番簡単なの
まず一行・一回だけ読み込み。これは簡単。
3行目で標準入力から一行代入されます。ここで注意するポイントは、このままだとstr型(文字列)で受け取ることになるということです。文字列ならそれでいいのですが、例えば
このプログラムで入力が”10”だった場合、何が出力されるかわかりますか?正解は、10×2で20!・・・ではなく”1010”となります。何故こうなるかというと、str型で受け取っているため、数字ではなく文字列として認識されているからです。数字として扱い、計算するにはまずstr型からint型(整数)もしくはfloat型(小数点)に変換する必要があります。
なので、こう。aに代入する時に、一緒にint型に変換します。これで実行すると”1010”ではなく”20”と計算できました。
また、1行ではあるけれど、スペース区切りでいくつかの入力がある場合もあります。"2 10"など。
それぞれを別々の要素として、同じリストに受け取ってみましょう。split()というメソッドでそれが実現できます。
このかっこの中には区切り文字を指定できますが、詳しくは過去記事で紹介してるサイトを見たほうがわかりやすいと思います。スペースで区切る場合は何も入れなくて大丈夫です。
さて、上のコードで分割はできました。しかし先程と同じように、このままではstr型のままです。では”a = int(input().split())”とすれば良いのでしょうか?ここが私のどハマリしたポイントです。実はそう簡単にいかないのです。”a = int(input().split())”として実行したところ、こんなエラーが出ると思います。
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
int関数の引数はリストじゃあきまへんで~ってことですね。ではどうするか。以下のような方法があります。
これが本命
これで一行丸ごとint型で且つsplit ()関数によって分割されてリストに収納されました。
sysモジュールを使う
またsysモジュールを使う方法もあります。使うには三行目のように、あらかじめimportしておく必要があります。これだと複数行の入力をまとめてint型に変換できます。ただ、これだとsplit()を使えないので一行に一つの入力がある時しか使えません。
もしかしたらもっと他にスマートなやり方があるのかもしれませんが、この辺がわかっていれば標準入力だけでつまづくことは少ないと思います。あとはfor文で何とかします。append関数も覚えておくと便利。ループ処理等がわからない初心者さんはとりあえず過去記事で紹介したサイトでお勉強してくださいね。それでは!
2019年7月16日追記:paiza公式ブログで動画解説してくれてました。
Pythonの勉強にオススメのサービス3つ。全部無料!
Python完全に初心者の人向け。全部無料!
たくさんオススメしても悩むだけなので、3つだけです。まずは始めよう!
1. まずはこれ。元々は転職サービスみたいだけど、様々な言語の初心者向け動画講座が受けられます。もちろんPythonも。ブラウザ上で実際に手を動かしながら覚えられるのでわかりやすいです。動画を見終わったあとは、スキルチェック問題にチャレンジ。S~Dランクまで問題があり、解けるとランキングがわかるので(翌日)ゲーム感覚で楽しめます。問題を解くためにわからないところを調べると勉強になって良いです。あとは模範解答が見れたら最高なのになー。
2. 次はこれ。わかりやすく解説がまとまっています。paizaのスキルチェック問題を解いてる時にわからないことを検索すると出てきて何度もお世話になりました。そして気がついた。先にこのサイトを全部読めばいいんじゃね?と…。その後はpaizaのD問題がちゃんと解けるようになりましたとさ。めでたしめでたし。(C問題は問題によって解けたり解けなかったり)
3. 最後はこれ。iPhoneアプリ(Androidアプリがあるかは知りません)で、全部英語ですが時間制限もないのでゆっくり読むとわかるはず。プログラミング言語の勉強するとどうしても英語の文章を読む機会が増えるので、それに慣れる意味でもオススメ。これも解説の後に穴埋め問題があり、ちょっとしたスキマ時間に勉強できます。
このアプリにはCode PlaygroundというPython実行環境がついていて、iPhone上でちょっとしたコードの動作確認したりするのにも便利です。
以上です。まだ勉強途中ですが、他人のコードを見て何がどうなってるかわかる程度にはなりました。
paizaのスキルチェック問題を解く時、最初に標準入力の受け取り方がわからなくてめちゃくちゃハマりました。それについてもまた今度。
(3/10追記:標準入力についての記事を書きました。)
<2018/9/27追記:Progateのほうがオススメかも。楽しいよ。>