IHクッキングヒーターの汚れ落としに万能Jr.くんを使ったら簡単に綺麗になって感動した話
マジすごいっス、万能Jr.くん。
これです。
- 出版社/メーカー: マルシン
- メディア: Tools & Hardware
- この商品を含むブログを見る
ぼくは知り合いから勧められて使ってみたんですが、これがまぁホントに良く落ちる。
これまでIHクッキングヒーターの油汚れとの戦いは決して楽ではなかった。。。
まず、専用シート(↓コレ)。これを敷いていて、ある程度防汚効果はあり。
IH ヒ-タ-マット グラスファイバー ガラストップヒーター用 1枚入 75088
- 出版社/メーカー: Mitsubishi Aluminum Co.,Ltd
- メディア: ホーム&キッチン
- この商品を含むブログを見る
でも、徐々に汚れは積み重なり、、、
その積み重なった汚れを落とすために、
- 食器用洗剤を使って一生懸命こすってみる → ×
- 重曹水を吹きかけてこすってみたり → ×
- 重曹水でこするだけじゃダメだということで付け置きしてからこすってみたり → ×
- セスキ炭酸ソーダ水を吹きかけてこすってみたり → △
- セスキ炭酸ソーダ水でこするだけじゃダメだということで付け置きしてからこすってみたり → 〇
これらの長い戦いを経て、ぼくの中では、IHクッキングヒーターの油汚れを落とすには「セスキ炭酸ソーダで付け置きandこすり捲る」が正義認定。
ただ、この「こすり捲る」っていうのが、直径1mm程度の小さくて薄ぅーい油汚れを落とすのにスポンジ50往復の過酷作業(涙
「さっ、掃除するかっ!」っていうところまで気持ちを持っていくところでポッキリと心が折れる折れる。
そんなときに登場したのが万能Jr.くん!!
- 出版社/メーカー: マルシン
- メディア: Tools & Hardware
- この商品を含むブログを見る
これまで50こすり必要だったところが、なんと1回でぇっ!とまでは言わないものの3こすりくらいでするっっと取れます。
こするのに使ってるキッチンペーパーがみるみる油で茶色くなっていきます。これマジ感動ものです。しかもコンパウンドなどの研磨成分が入っていないというのだから驚き。
この感動は使ってみないことには分かりません。
ぜひ試しください。
勧めてくれた知り合いは、IHクッキングヒーターの油汚れが落ちないよーって住設メーカーの人に話したら「万能Jr.くん」を勧められたとか。
やっぱりその道の人は詳しいですね。巷に溢れる100円均一で出来るお掃除テク的なものを信じて時間を浪費するよりは、玄人に聞くが一番なんだと痛感しました。
honor10が来る!?
ヤヴァイ。yavay。
honor10が来てしまう。5月15日にその詳細が披露される。
👀💣💥👀 Follow this space to find out more!!! #BeautyInAI #ForTheBrave pic.twitter.com/ZF9OKN7PAZ
— Honor UK (@UKHonor) 2018年4月5日
ほく、つい最近P20いいねって言ってた気がする。
だけど、honor10が来るって言われたらソッチでしょ。
だってぼく、自分がhonor8で、嫁にhonor9を使わせてる生粋のhonor信者。
ぼくのhonor8をそろそろ買い替えたいなーって物欲が出てきたところにP20の話が舞い込んできたのでついついP20に心が揺れ動いてしまったことは事実。
でも、今回のニュースで迷うことなくhonor10を買おうと決心したぼくってやっぱりhonor信者です。
honor9が出てからあまり日が経ってない気がしますが、サムスンも Galaxy Note 9 を少し早めにリリースするとかLGも同様の動きをする可能性があるとかで、honorもいつもよりは早めのリリースになるようです。
ウソかホントか分かりませんが、こんなリーク画像も出回り始めました。
iPhone X から始まった切り欠きディスプレイ。
でも、それをサクっと超越して前面フルディスプレイにしようとしているようです。
しかも指紋認証までディスプレイ上で出来るようになるとか。
価格がどうなるかはまだ不明ですが、これまでのhonorシリーズの値段設定を鑑みれば、iPhone X の半値以下で手にすることが出来ると思っておいていいでしょう。
いや~、これは待ち遠しいです。
HUAWEI P20 lite に期待を抱かずにはいられない!
2018年3月27日に HUAWEI P20 / P20 Pro が発表!!
トリプルカメラ!?
- 出版社/メーカー: Jacess JP
- メディア: エレクトロニクス
- この商品を含むブログを見る
何と言っても目を引くのはトリプルカメラ。
ライカの4,000万画素(カラー, f値1.8)+2,000万画素(モノクロ, f値1.6)+800万画素(望遠, f値2.4)の3つ。
3つもカメラがある上にレンズも明るいし、めちゃくちゃ綺麗が写真が撮れること間違いなし。
ミドルクラスのカメラ持つくらいなら P20 Pro を使った方が写真の満足度が高くなりそうですね。
しかし、つい最近ダブルカメラ/デュアルカメラが登場してすげぇーってなってたのに、さらにもうひとつ追加って。。
カメラのインフレが止まりません。
これからは1年ごとにカメラが1つずつ増えていく時代ですね。
孫の世代にはスマホ背面がすべてカメラになってしまうわww
サイズは?
サイズは以下のとおり。
高さ:155mm | 幅:73.9mm | 厚さ:7.8mm | 重さ:約180g
iPhone X が
高さ:143.6mm | 幅:70.9 mm | 厚さ:7.7 mm | 重量:174 g
なので、高さが約1cmちょっと長いことを筆頭にひと周り大きいです。
したがってディスプレイは6.1インチと、iPhone X の5.8インチよりも大きくなります。
カラーバリエーションは?
ブラック | トワイライト | ピンク・ゴールド | ミッドナイト・ブルー
の4色展開。
HPトップではトワイライト推しな印象ですが、ぼくが選ぶとしたらミッドナイト・ブルーですね。(正直言うと、ぼくは機種が変われど、ずーっと白を選んできたのでP20に白がないのは残念)
チップセットは?
HUAWEI独自のKirin 970 CPUを積んでます。
そして当然のようにオクタコア(「オクタ」っていうワード、HUAWEIとスプラトゥーンでしか聞かないのはぼくだけ!?) 。
そして micro core i7。
??
これってオクタコアなの?9コアなの?
9ってなんていうんだ?ノナ?
カメラもそうだけどCPUも1年あたり1コア増やす計画ですか?
そしたら2020年にはウンデカコア、2021年にはドデカコア、ぼくが住宅ローンを完済するころにはトリアコンタコアになってしまいますよ。
シンギュラリティも一周余裕で回ってスマホ1台で全人類の知能にトリプルスコアつけていそうですね。
これは買い?
バッテリーは4000mAh、そして防水。その他、今あるスマホの備えるスペックを網羅して、4月6日パリでは販売価格は889ユーロ(889ユーロ×131円/ユーロ=約11.6万円)。
ですよね。高い。。。
ぼくは P20 lite でガマンします。
Huawei P20 Lite ケース 手帳型 マグネット スタンド機能 カード収納付き 高級PUレザー スマホケース 軽量 薄型 耐衝撃 耐摩擦 [DUXDUCIS]
- 出版社/メーカー: Dux Ducis Technology Co., Ltd.
- メディア: エレクトロニクス
- この商品を含むブログを見る
データベースの処理にはクラスで対応しよう!|エクセルVBA
エクセルのシートをデータベースのテーブルとして扱えるってめちゃくちゃ便利です。
上記エントリーの最後にも触れているとおり、データベースに関係するコードをクラスで管理する方法を考えたいと思います。
クラスの構成要素を目次で示します。
Excel 最強の教科書[完全版]――すぐに使えて、一生役立つ「成果を生み出す」超エクセル仕事術
- 作者: 藤井直弥,大山啓介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2017/01/28
- メディア: 単行本
- この商品を含むブログ (2件) を見る
内容は至ってシンプル。
前出エントリーに記載したコードのコピペでほとんどが完成します。
クラス化すればこんなにシンプルにデータが取れるようになる!
まずは、完成したクラスを使って、どんなコードを書けばデータを取ってこれるようになるのかを見たいと思います。
以下は、上記エントリーのデータベース関連処理をクラスに置き換えたものになっています。
前提条件等は上記エントリーをご参照ください。
また、クラスの名前は「blClsDataBase」としいています。
Public Sub getDataSample() Dim clsDB As blClsDataBase Dim strSQL As String Dim objRS As Object Set clsDB = New blClsDataBase 'クラスを生成(当エクセルに接続) With clsDB .DataBaseType = XLS .DataSource = ThisWorkbook.FullName .ConnectDB End With '抽出条件を作成 strSQL = "SELECT" '抽出フィールド(項目)を指定 strSQL = strSQL & " [名前]" strSQL = strSQL & ", [ふりがな]" strSQL = strSQL & ", [電話番号]" strSQL = strSQL & ", MONTH([誕生日]) AS [誕生月]" strSQL = strSQL & " FROM rngXDB_DataBase" 'データテーブルを指定 strSQL = strSQL & " WHERE 1 = 1" '抽出条件 strSQL = strSQL & " AND [性別] = '男'" '性別=男 strSQL = strSQL & " AND [年齢] >= 30" '年齢=30歳以上 strSQL = strSQL & " AND [年齢] < 50" '50歳未満 strSQL = strSQL & " AND [婚姻] = '未婚'" '婚姻=未婚 '抽出実行 If clsDB.GetRecordset(strSQL, objRS) = False Then Err.Description = clsDB.ErrNum GoTo ERR_PROC End If '抽出結果を出力 With wsXLSDataBase With .Range("rngXDB_DataTop") '出力エリアにある既存データを消去 .CurrentRegion.ClearContents 'フィールド(項目)名を出力 For lngF = 0 To objRS.Fields.Count - 1 .Offset(, lngF).Value = objRS.Fields(lngF).Name Next lngF 'データを出力 .Offset(1).CopyFromRecordset objRS End With End With GoTo END_PROC ERR_PROC: MsgBox clsDB.ErrDes END_PROC: 'DBクラスを閉じる Set clsDB = Nothing End Sub
すごいシンプルですよね。
クラス化してしまえば、コードが非常に分かり易くなります。
データは取ってきてから色々と加工したりと複雑な処理が始まるワケで、だから尚のことデータを取ってくる部分はシンプルにしておきたいもの。
クラスを使うことで、それが実現できるわけです。
ただ、そのクラスを作るところでちょっとだけ手を動かす必要があります。
それを順に見ていきたいと思います。
データベースへの接続(コネクションの確立)
普段使うことになるデータベースはエクセルだけとは限りません。
アクセスを使うこともあるし、SQLServerを使うこともあります。
使用するデータベースが何であれ、ひとつのクラスで対応できちゃった方が断然ラク。
なので簡単に接続先を指定できるようにしたいと思います。
接続先を指定するためのプロパティを用意
クラスのプロパティを使います。
プロパティにどんな値を入れればいいのか選択肢が表示された方がコードを書きやすいと思います。
そこで列挙子を併用します。
Public Enum DBTYPE NONE XLS ACCESS End Enum Public DataBaseType As DBTYPE
こうすることで、いざプロパティの値を入れるときに
こういったカンジでオプションが出てきます。
選択肢の中から値を選ぶだけですから、コードを書くのがラクになりますよね。
この段階では、どこに接続するかを決めただけですから、実際に接続は行われていません。
接続を実行するためのメソッドを用意します。
エラーへの対応
ただその前に、データを取って来るときなどに何かしらエラーが発生することがあります。
例えば、SQL文が間違っていた、というそもそものエラーもありますよね。
それらエラーの内容を把握できるようにプロパティも用意しちゃいましょう。
Private mErrNum As Long Private mErrDes As String Public Property Get ErrNum() As Long ErrNum = mErrNum End Property Public Property Get ErrDes() As String ErrDes = mErrDes End Property
クラス内でエラーが発生した場合は、そのエラー内容を「ErrNum」「ErrDes」で確認できるようになります。これらの具体的な使い方は、後のコード全文で確認してください。
接続の実行
準備が整ったところでいざ接続です。
データベースにエクセル、アクセスを使う際は、それらのバージョンによって接続文字列が異なるので注意。
Public Enum DBTYPE NONE XLS ACCESS End Enum Public DataBaseType As DBTYPE Public DataSource As String Public ID As String Public Password As String Private mobjConnection As Object Private mErrNum As Long Private mErrDes As String Public Enum DBPROPERTY adStateClose = 0 adOpenStatic = 3 End Enum Public Function ConnectDB() As Boolean Dim strCNString As String Dim strExtension As String ConnectDB = False 'データベースの種類に応じてConnectStringを用意 Select Case Me.DataBaseType Case DBTYPE.NONE '指定忘れ Err.Description = "データベースタイプ選択エラー" GoTo ERR_PROC Case DBTYPE.XLS 'エクセルの場合 'データソース無指定はエラー If Me.DataSource = "" Then Err.Description = "DataSource指定エラー" GoTo ERR_PROC End If '拡張子に応じて接続文字列を分岐 strExtension = LCase(Right(Me.DataSource, Len(Me.DataSource) - InStrRev(Me.DataSource, "."))) Select Case True Case LCase(strExtension) = "xls" '2003以前 strCNString = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;" Case LCase(strExtension) Like "xls?" '2007以降 strCNString = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;" End Select strCNString = strCNString & "Data Source=" & Me.DataSource & ";" Case DBTYPE.ACCESS 'アクセスの場合 'データソース無指定はエラー If Me.DataSource = "" Then Err.Description = "DataSource指定エラー" GoTo ERR_PROC End If '拡張子に応じて接続文字列を分岐 strExtension = LCase(Right(Me.DataSource, Len(Me.DataSource) - InStrRev(Me.DataSource, "."))) Select Case True Case LCase(strExtension) = "mdb" '2003以前 strCNString = "Provider=Microsoft.Jet.OLEDB.4.0;" Case LCase(strExtension) = "accdb" '2007以降 strCNString = "Provider=Microsoft.ACE.OLEDB.12.0;" End Select strCNString = strCNString & "Data Source=" & Me.DataSource & ";" If Me.Password <> "" Then strCNString = strCNString & "JET OLEDB:DataBase Password=" & Me.Password & ";" End If End Select 'コネクション確立 Set mobjConnection = CreateObject("ADODB.Connection") mobjConnection.Open strCNString ConnectDB = True GoTo END_PROC ERR_PROC: mErrNum = Err.Number mErrDes = Err.Description END_PROC: End Function
これで使いたいデータベースに接続することで出来るようになりました。
データベースに接続したら、あとは欲しいデータを取ってきたり、あるいはデータベースを更新したりすることになります。
それらもクラスの中で完結できるようにします。
10年戦えるデータ分析入門 SQLを武器にデータ活用時代を生き抜く (Informatics &IDEA)
- 作者: 青木峰郎
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/06/30
- メディア: 単行本
- この商品を含むブログ (6件) を見る
SQLの実行
ここまで来れば、あとはSQLを実行するのみです。
SQLの実行結果、つまり滞りなく実行できたかどうかTrue/Falseを返してくれる関数を作ります。
レコードセットの取得(SELECT句)
Public Function GetRecordset( _ strSQL As String, _ objRecordset As Object _ ) GetRecordset = False On Error GoTo ERR_PROC Set objRecordset = CreateObject("ADODB.Recordset") objRecordset.Open strSQL, mobjConnection, adOpenStatic GetRecordset = True GoTo END_PROC ERR_PROC: mErrNum = Err.Number mErrDes = Err.Description END_PROC: End Function
SELECT句の場合は、引数にレコードセット・オブジェクトを持ちます。
SQL文を実行した結果、得られるレコードセットをそのオブジェクトに格納します。
SQL文の実行が問題なく行われれば、関数としてはTrueを返します。
一方、エラーが発生した場合はFalseを返しつつ、エラー内容を「ErrNum」「ErrDes」に格納します。
これにより、Falseだった時にそのエラー内容を確認することが可能になります。
レコードの追加・更新(INSERT, UPDATE句)
Public Function ExecuteDB( _ strSQL As String _ ) ExecuteDB = False On Error GoTo ERR_PROC mobjConnection.Execute strSQL ExecuteDB = True GoTo END_PROC ERR_PROC: mErrNum = Err.Number mErrDes = Err.Description END_PROC: End Function
引数にレコードセット・オブジェクトを持たないこと以外は、SELECT句の場合と同じです。
オブジェクトの破棄
レコードセットやコネクションといったオブジェクトの破棄もクラスで行えるようにします。
レコードセットの破棄
Public Sub CloseRS( _ objRS As Object _ ) If Not objRS Is Nothing Then If objRS.State <> adStateClosed Then objRS.Close End If End If End Sub
コネクションの破棄
Public Sub CloseCN() If Not mobjConnection Is Nothing Then If mobjConnection.State <> adStateClose Then mobjConnection.Close End If End If End Sub
クラスの破棄と同時にコネクションも破棄されるようにする
上記のメソッドを使って個々のオブジェクトを破棄してもOKですが、クラス破棄と同時にコネクションを破棄するようにすれば手間が減らせます。
Private Sub Class_Terminate() Call CloseCN End Sub
一度クラスを作れば使い回しが効く
これでデータベース処理用のクラスが出来上がりました。
作り上げるまでにかかる手間は、その後ラクになることで回収できます!
コード全文を掲載しますので、最初はコピペで使ってみてから、使いやすいようにアレンジしてみてください。
「blClsDataBase」
Option Explicit Public Enum DBTYPE NONE XLS ACCESS End Enum Public DataBaseType As DBTYPE Public DataSource As String Public SQLServerName As String Public SQLDataBaseName As String Public ID As String Public Password As String Private mobjConnection As Object Private mErrNum As Long Private mErrDes As String Public Enum DBPROPERTY adStateClose = 0 adOpenStatic = 3 End Enum Private Sub Class_Terminate() Call CloseCN End Sub '========================================================== 'エラー処理 '========================================================== Public Property Get ErrNum() As Long ErrNum = mErrNum End Property Public Property Get ErrDes() As String ErrDes = mErrDes End Property '========================================================== 'DB接続 '========================================================== Public Function ConnectDB() As Boolean Dim strCNString As String Dim strExtension As String ConnectDB = False 'データベースの種類に応じてConnectStringを用意 Select Case Me.DataBaseType Case DBTYPE.NONE '指定忘れ Err.Description = "データベースタイプ選択エラー" GoTo ERR_PROC Case DBTYPE.XLS 'エクセルの場合 'データソース無指定はエラー If Me.DataSource = "" Then Err.Description = "DataSource指定エラー" GoTo ERR_PROC End If '拡張子に応じて接続文字列を分岐 strExtension = LCase(Right(Me.DataSource, Len(Me.DataSource) - InStrRev(Me.DataSource, "."))) Select Case True Case LCase(strExtension) = "xls" '2003以前 strCNString = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;" Case LCase(strExtension) Like "xls?" '2007以降 strCNString = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;" End Select strCNString = strCNString & "Data Source=" & Me.DataSource & ";" Case DBTYPE.ACCESS 'アクセスの場合 'データソース無指定はエラー If Me.DataSource = "" Then Err.Description = "DataSource指定エラー" GoTo ERR_PROC End If '拡張子に応じて接続文字列を分岐 strExtension = LCase(Right(Me.DataSource, Len(Me.DataSource) - InStrRev(Me.DataSource, "."))) Select Case True Case LCase(strExtension) = "mdb" '2003以前 strCNString = "Provider=Microsoft.Jet.OLEDB.4.0;" Case LCase(strExtension) = "accdb" '2007以降 strCNString = "Provider=Microsoft.ACE.OLEDB.12.0;" End Select strCNString = strCNString & "Data Source=" & Me.DataSource & ";" If Me.Password <> "" Then strCNString = strCNString & "JET OLEDB:DataBase Password=" & Me.Password & ";" End If End Select 'コネクション確立 Set mobjConnection = CreateObject("ADODB.Connection") mobjConnection.Open strCNString ConnectDB = True GoTo END_PROC ERR_PROC: mErrNum = Err.Number mErrDes = Err.Description END_PROC: End Function '========================================================== 'SQL実行 - SELECT '========================================================== Public Function GetRecordset( _ strSQL As String, _ objRecordset As Object _ ) GetRecordset = False On Error GoTo ERR_PROC Set objRecordset = CreateObject("ADODB.Recordset") objRecordset.Open strSQL, mobjConnection, adOpenStatic GetRecordset = True GoTo END_PROC ERR_PROC: mErrNum = Err.Number mErrDes = Err.Description END_PROC: End Function '========================================================== 'SQL実行 - SELECT '========================================================== Public Function ExecuteDB( _ strSQL As String _ ) ExecuteDB = False On Error GoTo ERR_PROC mobjConnection.Execute strSQL ExecuteDB = True GoTo END_PROC ERR_PROC: mErrNum = Err.Number mErrDes = Err.Description END_PROC: End Function '========================================================== 'Recordsetを閉じる '========================================================== Public Sub CloseRS( _ adoRS As ADODB.Recordset _ ) If Not adoRS Is Nothing Then If adoRS.State <> adStateClosed Then adoRS.Close End If End If End Sub '========================================================== 'Connectionを閉じる '========================================================== Public Sub CloseCN() If Not mobjConnection Is Nothing Then If mobjConnection.State <> adStateClose Then mobjConnection.Close End If End If End Sub
Jige(じげ)で鮪の中落を食らう!
まずはこれ!
鮪の中落!
こんな状態でお目にかかれるなんて、当の鮪でさえ想像していなかったことでしょう。
しかも、食べる道具は貝殻。
貝だって身を守る殻を、身を削ぐ道具に使われるとは露程も思わなかったハズ。
貝殻を使って骨の間にある赤身をそぎ落としていきます。
そして結構、貝殻がちょうどいい。
鋭角から扇形まで多様な角度を持つ貝殻のエッジで、鮪の骨に着く赤身も簡単に取ることが可能です。
そりゃ間違いなく美味いですよね。
美味くないはずがない。
鮮度が抜群で、噛み締めると赤身の濃厚な味が口の中に広がります。
これを食べて美味しくないという人はまず居ないでしょう。
魚介類が苦手なぼくが言うんだから間違いないです。
この日は6人で食べたのですが、ものの数分でコレ。
片面終わっても実は裏面もあります。
ひっくり返すときにお店からユッケ、なめろう、細巻きにすることも可能ですよ、という神の声。
このときは裏面のおよそ半分を貝殻で削ぎ食べて、残りの半分をなめろうに。
なめろうに仕立ててくれてる間に、お通し第二弾のイカ墨の味噌汁が登場。
口を付けなくても烏賊の凝縮された香りが鼻腔を駆け抜けていきます。
決して臭みはなく、これを食べて美味しくないという人はまず居ないでしょう。
魚介類が苦手なぼくが言うんだから間違いないです。
あと(酔っぱらっていて)写真を撮るのを忘れてしまったのですが河豚のヒレ酒もあります。
しかもヒレが2つも入っていて贅沢な一品でオススメです。
この鮪の中落が食べられるお店はコチラ。
お店は綺麗で女性を連れて行っても怪訝な顔をされることはないでしょう。
家族連れでも大丈夫だと思います。
エラい人との接待なんかには不向きかとは思いますが、気心しれた人との接待なんかには丁度いいかもしれません。
インスタ映えはするかもしれませんが若者には不向きかとは思います。
ランチもお手頃で美味しいという口コミをよく見かけますので、ランチも行っていたいみたいなー。
その時は再度レポートします。
- 出版社/メーカー: 双葉社
- 発売日: 2016/02/02
- メディア: ムック
- この商品を含むブログを見る