Konta's Blog

適当に書いていきます

あまり知られていない簡単歯磨き方法

よく、歯をみがくのに歯ブラシ一本でみがいている人がいるんですが、それでは効率も悪いしうまくみがけないので、もっとうまくみがく方法をご紹介します。



ちなみに僕はこの方法でみがいているおかげで、この間1年ぶりに歯医者にいったのに、歯科助手さんと歯科医さん、両方に「綺麗にみがいてますねぇ」と褒められました。二人が口裏合わせて褒めたわけじゃないと思うので、本当に綺麗だったんでしょう。(できれば、歯科医には四ヶ月に一回か半年に一回は通うべきです)




では本題ですが、歯ブラシは3種類使うのがいいです。
歯の表面をみがく用、歯のくぼみや奥歯の側面をみがく用、歯と歯の隙間をみがく用です。
詳しく説明していきます。


歯の表面をみがく

これに最適なのは毛先が平らで少し硬めの歯ブラシです。
毛先が波になっていると表面に当たる毛の量は減りますし、毛が柔らかいと歯垢をとる効果も薄くなるからです。
僕が使っているのはこちらの歯ブラシです。

みがく時は力を入れすぎないようにして歯の表面の平らな部分をみがくイメージです。
でないと歯肉が傷ついてしまったり知覚過敏になるおそれがありますからね。


歯のくぼみや奥歯の側面をみがく

これにはワンタフトブラシを使います
こんな感じの毛先が小さいやつです。

歯と歯の間や、歯肉間際の部分、歯の裏側のカーブしている箇所なんかをピンポイントにみがいていきます。
普通の歯ブラシでは届きにくいところ全般をみがくイメージですね。


歯の隙間をみがく

歯の隙間をみがくのは歯間ブラシです。
仕上げに歯に詰まった食べかすなんかをとるのに便利なんですが、太いものはうまく入らないところもあるので全ての隙間に入れられるよう、なるべく細いものを使うのがおすすめです。
僕はこちらを使ってます。

歯間ブラシは毎回使う必要はないですが、一日一回は使って歯間を綺麗にしておくべきです。
僕の場合奥歯にものが詰まりやすいので肉類を食べた後は必ず歯間ブラシも使ってます。



ワンタフトブラシを普段使っている人はあまり見かけないのですが、これを使うだけで歯みがきの精度もかなり上がるし、時間短縮にもなるしいいことしかないので一度使ったらもう手放せなくなりますよ♪

Googleに機械学習を習ったところ謎のエラーが発生した

こちらの動画で機械学習を学んで見たんだけど
www.youtube.com

動画の通りにコードを打つと、8行目のところで

TypeError: 'numpy.ndarray' object is not callable

こんなエラーがかえってきてしまい、困った。
ググったら予約語を変数に使うと出ることがあるということで、test_idxをtest_indexnに書き換えて見たらうまくいった。
コードはこんな感じ。

import numpy as np
from sklearn.datasets import load_iris
from sklearn import tree

iris = load_iris()
test_index = [0,50,100]

train_target = np.delete(iris.target,test_index)
train_data = np.delete(iris.data,test_index,axis=0)

test_target = iris.target[test_index]
test_data = iris.data[test_index]

clf = tree.DecisionTreeClassifier()
clf.fit(train_data,train_target)
print(test_target)
print(clf.predict(test_data))

あと、変数使うのやめて[0,50,100]を直接関数に書き込んでもいけた。
test_idxって予約語じゃないと思うんだけど、どうしてこうなるんだろ?

ヘッドレスChromeを使ってみた

備忘録など。
参考サイト:
ヘッドレス Chrome ことはじめ  |  Web  |  Google Developers

環境はMacOS バージョン10.13.5



ヘッドレスChromeの動かし方

1.まずコマンドのエイリアスを作成するため、ホームディレクトリ(ユーザー名の付いてるディレクトリ)に.bashsrcを作成、編集する(ターミナルで以下のコマンドを打つ)

vi .bashsrc

2.以下のエイリアスを書き込む(viで開いてiで編集モード、escで編集モード終了、:wqで保存して閉じる)

alias chrome="/Applications/Google\ Chrome.app"

3..bash_profileを開いて(vi .bash_profile)設定を反映させるため以下の書き込みをする(GUIでファイルをみたい時は[command]+[shift]+[.])

source ~/.bashrc

4.bashファイルの変更を反映するため以下のコマンドをターミナルで打つ

source  .bash_profile

5.chrome headlessを起動!

chrome --headless --disable-gpu --remote-debugging-port=9222  任意のURL

あとは参考サイトを見てやりたいコマンドを打つだけです。

僕の場合は自分で作ったウェブサービスのテストをやらせたくてヘッドレスchromeを使えるかと思ったのですが、seleniumなどを使っても同じことはできそうです。
ヘッドレスの方がGUIがない分高速なのでしょうが。

pythonなどのプログラムから扱う方法がまだわからないので今後の課題です。

ニコ生のコメビュを作りたかったけどできない

pythonスクレイピングの練習もかねてニコ生のコメントのスクレイピングに挑戦したがダメだった。
ニコ生のHTMLを覗くと、コメントはここに書いてあった。

<span class="___comment-text___2plM2">コメント</span>

なので最初はrequerst()でhtmlをとってきてクラス名で抽出すればいけると思ったがニコ生のコメントはreactで動的に生成しているいて、さらにログインしないとアクセスできないと言う二つの問題点があった。
なのでseleniumを使って頑張ったが自分のIDとパスワードを入力させないと動かないし、コメントも表示されている10件分ほどしか取れなかった
コードはこんな感じ

import bs4,requests,time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(放送ページのURL)                                             #ログインしていない状態で放送ページにアクセスするので、ログインページに飛ばされる
time.sleep(1)
passelm=driver.find_element_by_id('input__password')  #パスワードを入力させる
passelm.send_keys(自分のパスワード)
mailelm=driver.find_element_by_id('input__mailtel')        #メールアドレスを入力させる
mailelm.send_keys(自分のメールアドレス)
mailelm.submit()
driver.get("http://live2.nicovideo.jp/watch/コミュニティID?ref=grel")  #再度放送ページにアクセスする
time.sleep(5)
html = driver.page_source
bs = bs4.BeautifulSoup(html,"html.parser")
comments = bs.select(".___comment-text___2plM2")
print(len(comments))
for i in comments:
    print(i.getText())

一般的なコメビュって100件以上取ってくるし、ログインも自動的にしてくれる
あれどうやって動いてんだろ

チャットで改行をそのまま反映させつつHTMLなどはエスケープする方法

ユーザーの入力を以下の関数でエスケープして要素.innerHTMLに渡した

function escapestr(str){
     str = str.replace(/&/g,'&amp');
     str = str.replace(/</g, '&lt;');
     str = str.replace(/>/g, '&gt;');
     str = str.replace(/"/g, '&quot;');
     str = str.replace(/'/g, '&#39;');
     str = str.replace(/\n/g, '<br>');
     return str;
   }
<||

CSSで似顔絵描いてみた

このようなピョコタン先生の似顔絵をCSSで作ったのでコードを紹介します。

<html>
<head>
<style>
.content{
position:relative;
width:600px;
height:600px;
border:solid 1px black;
}
.hair{
position:absolute;
width:470px;
height:400px;
background-color: black;
border-radius: 50%;
bottom: 130px;
right:65px;
z-index:1;
}
.face:before{
content:"";
position:absolute;
border:solid 1px black;
background-color: black;
width:100%;
height:30%;
left:0px;
bottom:70%;
border-radius: 50% 50% 0% 0%/100% 100% 0% 0%;
border: solid 1px black;
}
.righteye{
position:absolute;
overflow:hidden;
border-radius:50% 50% 70% 30%/90% 70% 30% 10%;
transform:rotate(5deg);
border:solid 1px black;
width:25%;
height:30px;
left:65%;
top:50%;
}
.lefteye{
position:absolute;
border-radius:50% 50% 30% 70%/70% 90% 10% 30%;
transform:rotate(-5deg);
border:solid 1px black;
width:25%;
height:30px;
left:10%;
top:50%;
overflow: hidden;
}
.kurome{
position:absolute;
width:40%;
height:120%;
left:30%;
top:-30%;
background-color:black;
border-radius:50%;
}
.face{
position:absolute;
background-color: white;
bottom:100px;
right:100px;
width:400px;
height:400px;
border:solid 1px black;
border-radius:50% 50% 50% 50%/50% 50% 50% 50%;
z-index:2;
}
.nose{
margin:0px;
padding:0px;
position:absolute;
width:25%;
height:25%;
border:solid 1px black;
border-radius: 50%;
left:37%;
top:60%;
}
.nose:before{
margin:0px;
padding:0px;
content:"";
position:absolute;
width:100%;
height:35%;
top:-1px;
right:0px;
background-color: white;
}
.nose:after{
content:"";
position:absolute;
width:100%;
height:35%;
bottom:-1px;
right:0px;
background-color: white;
}
.lefthole{
position:absolute;
width:20%;
height:20%;
left:10%;
bottom:35%;
background-color: black;
border-radius: 50%;
}
.righthole{
position:absolute;
width:20%;
height:20%;
right:10%;
bottom:35%;
background-color: black;
border-radius: 50%;
}
.mouth{
position: absolute;
width:40%;
height:5%;
left:30%;
top:85%;
border-radius: 50%;
border:solid 1px black;
}
.mouth:after{
content:"";
background-color: white;
position: absolute;
width: 100%;
height:52%;
top:50%;
left:0%;
}
.leftbrow{
position: absolute;
width: 25%;
height: 5%;
left:10%;
top:40%;
border-radius: 50% 50% 50% 50%/80% 60% 40% 20%;
border:solid 5px black;
}
.leftbrow:after{
content:"";
position: absolute;
width: 110%;
height: 70%;
left:-5%;
top:60%;
background-color: white;
transform: rotate(-3deg);
}
.rightbrow{
position: absolute;
width: 25%;
height: 5%;
right:10%;
top:40%;
border-radius: 50% 50% 50% 50%/60% 80% 20% 40%;
border:solid 5px black;
}
.rightbrow:after{
content:"";
position: absolute;
width: 110%;
height: 70%;
right:-5%;
top:60%;
background-color: white;
transform: rotate(3deg);
}
</style>
</head>
<body>
<div class="content">

<div class="face">
<div class="leftbrow">
</div>
<div class="rightbrow">
</div>
<div class="lefteye">
<div class="kurome">
</div>
</div>
<div class="righteye">
<div class="kurome">
</div>
</div>
<div class="nose">
<div class="lefthole">
</div>
<div class="righthole">
</div>
</div>
<div class="mouth">
</div>
</div>
<div class="hair">
</div>
</div>

</body>
</html>

黒目のサイズとか色を動的に変えれるのでどっかで使えるかもしれない。

求職者支援訓練という名のチート

生きるのって大変だと思いませんか?

 

僕は思います。

 

毎日真面目に働いても月給20万円程度じゃあ、世間では低収入のレッテルを貼られてしまいますし、かと言って収入を増やすために勉強をしたいと思っても、学校にいけば授業料が取られ、それを払うためにはさらに働かないといけないという悪循環に陥ったりします。

 

でも、それはしょうがないことなのでしょう。社会の本質は弱肉強食、能力も資本もないものに与えるチャンスはないんです。

 

なんて、世間に絶望しているあなた、実はそれは間違いです。

 

弱者があまりに不幸になってしまうと、治安の悪化などの問題が発生してしまうので、非効率的な経済状態になってしまいがちです。メキシコなんかがいい例ですね。

 

そのため、この国には、弱者を救済するための制度がいくつかあり、今回僕は

 

その1つである、求職者支援訓練の相談に行ってみたので、その情報を書いて行こうと思います。

 

 

・求職者支援訓練とは

 

民間の教育をただで受けられる制度です。条件を満たした人は月10万円の支給もされます。

 

 

・申し込みの条件

申し込みは誰でもできるわけではなく、次の条件を満たしている必要があります。

 

1. 求職活動をしていること

 ハローワークに登録をして、面接を受けるなど、求職活動をしている実績が必要のようです。また、あくまで就職のための制度なので、勉強したいだけの人や、自営業を目指す人は申し込み不可らしいです。

 

2. 訓練を受けないと就労が困難と認められること

 希望する職種専門のコンサルティングの人がOKを出すかどうかですが、その基準はよくわかりません。

 

3. 過去1年以内に制度の利用がないこと

1度この制度を利用したら1年は利用できないようです。

 

4. 雇用保険の受給資格がないこと

 雇用保険を受けている場合は公共職業訓練を受けることになっているようです。 

   その場合は給付ではなく、雇用保険の延長という形でお金をもらえるので心配は入り

   ません。ただし、受講の科目なんかは違ってくるので、希望する科目がなかったら

 残念ですね。雇用保険が切れるまで就職を失敗し続ければいけるかもしれませんが。

 

 

 

・給付金を受けるには

 

給付金を受けるのにも条件があるみたいなので紹介します。

 

1. 本人の収入が8万以下であること

 収入があればその分給付金も減るので、働き損です。

 

2. 世帯収入が25万以下であること

 ニートなら親を頼れということですね。

 

3. 世帯全体の金融資産が300万円以下であること

 貧乏人向けの制度ということです。

 

4. 現在住んでいるところ以外に土地・建物を所有していない

 資本家は遠慮してください、ということですね。

 

5. 全ての訓練実施日に出席していること

 病気で休む場合は診断書がいるみたいです。

 

6. 世帯の中に同時にこの給付金を受けている人がいない

  親子どっちかはまともに働いてくれないと、という逆セーフティネットです。

 

7. 過去3年以内に、不正行為により給付金の支給を受けたことがない

 収入を隠して支給を受けたりすると、ペナルティがあるということですね。

 もちろん支給分も返金しなければならなくなります。

 

 

 

どうでしょうか。そんなにハードル高くないですね。

 

毎年支援を受けることも不可能じゃないです。

 

就職できなくても数ヶ月は面倒見てくれますし、それでもダメなら生活保護という制度もあります。

 

こういう制度をしっかり調べると、実は日本て結構な福祉国家なので、日本人はもっとリスク選好的になってもいいんじゃないかと思いました。