Laravel自分のブクマ整理
はてブを整理する0
はてブするマシーンになっているので、ましな使い方をしたいなと思っています。
現状、それからやりたいことをまとめておきます。
現状
数値
ブックマーク数: 10,559
タグ数: 2,563
補足
ブックマークするだけしてほぼ読んでいないものが多いと思います。
後から見れるようにっていう感覚。見てないんですけどね。
タグの傾向
例えばJavaScriptタグを見てみると、こんな感じでつけていることがわかりました。
- JavaScriptタグのみ
- JavaScriptタグ+αその1(e.g. JavaScript, フレームワーク)
- JavaScriptタグ+αその2(e.g. JavaScript, 圧縮, 音楽)
- JavaScriptタグ+αその3(e.g. JavaScript, 勉強)
- JavaScriptタグ+αその4(e.g. JavaScript, node.js)
いいやり方ないかな・・・
例えば、一番最後のパターン、これはきっとnode.jsのことがメインだからJavaScriptタグは必要なさそうとか、
2つ目のパターン、フレームワークタグがあるということはいくつかのフレームワークのことが書かれているだろうから、フレームワークタグではなくてそのフレームワークの名前のタグをつけたほうがいいとか。
難しい。
やりたいこと
- 必要なものはちゃんと読む
- 必要なものは後から簡単に参照できる
redash使う簡易メモ
実際に使ってみる。
MySQL準備
参照するテーブル等作っておく。
$ mysql -u root -p # ユーザー mysql> CREATE USER 'mfham'@'localhost' IDENTIFIED BY '****'; # 権限 mysql> show grants for 'mfham'@'localhost'; +-------------------------------------------+ | Grants for mfham@localhost | +-------------------------------------------+ | GRANT USAGE ON *.* TO 'mfham'@'localhost' | +-------------------------------------------+ 1 row in set (0.00 sec) mysql> GRANT SELECT ON redash_test.statistics to 'mfham'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> show grants for 'mfham'@'localhost'; +-------------------------------------------------------------------+ | Grants for mfham@localhost | +-------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'mfham'@'localhost' | | GRANT SELECT ON `redash_test`.`statistics` TO 'mfham'@'localhost' | +-------------------------------------------------------------------+ 2 rows in set (0.00 sec) # テーブルこんな感じ mysql> select * from redash_test.statistics; +------------+----------+----------+----------+----------+----------+ | date | summaryA | summaryB | summaryC | summaryD | summaryE | +------------+----------+----------+----------+----------+----------+ | 2016-10-01 | 10 | 123 | 30 | 3000 | 100 | | 2016-10-02 | 14 | 113 | 10 | 2400 | 200 | | 2016-10-03 | 30 | 313 | 23 | 1300 | 140 | | 2016-10-04 | 50 | 613 | 83 | 6300 | 641 | | 2016-10-05 | 6 | 23 | 13 | 500 | 41 | +------------+----------+----------+----------+----------+----------+ 5 rows in set (0.00 sec)
Re:dash
summaryA, summaryB, summaryCを棒グラフに
こんな感じ。
iframeも吐き出してくれる
さっきの画像の左下にある「<>Embed」をクリックするとiframeソースをポップアップで教えてくれます。
自前のHTMLにペロッと貼ってそれを共有用にするのもいいかも。
Ubuntu+redash簡易メモ
Ubuntu+VirtualBox簡易メモ - にっちとだじゃれ
これでUbuntuを入れたので、次に
Re:dash - Make Your Company Data Driven
を入れる。
環境
- Ubuntu Server 16.04.1 LTS
インストール
$ git clone https://github.com/getredash/redash.git $ cd redash/setup/ubuntu # apache止めていないとbootstrap.sh実行時にnginxのエラーが起きた $ sudo /etc/init.d/apache2 stop $ chmod a+x bootstrap.sh $ sudo ./bootstrap.sh
Ubuntu+VirtualBox簡易メモ
忘れないようにするためのメモ。
Re:dash - Make Your Company Data Drivenを触りたくて。
参考
Download Ubuntu Server | Download | Ubuntu
環境構築メモ Virtual Box に Ubuntu を入れ SSH 接続する - Qiita
Virtualboxで仮想サーバー構築(ubuntu server 12.04 + SSH) - Qiita
インストール
- Ubuntu Server 16.04.1 LTSのイメージダウンロード
- virtualboxのホストオンリーアダプタの設定をしておく
- インストール中の言語はEnglish、enp0s3とenp0s8選ぶやつは前者
- 初期インストールできるやつはOpenSSH, LAMPを選択しておいた。
- インストールが終わったら参考資料を参考に/etc/network/interfacesを設定(enp0s8を加える)
機種変メモ
iPhone5sからiPhone7に変えました。
5sがもう言うこと聞かないレベルになってたのでちょうどいいタイミングでした。
今後のためにメモ。
※あくまでもこの記事は個人用メモなので、機種変してデータ損失起きるのが許せない方はご自身で十分調べることをおすすめします。
ざっくりやったこと
- MNP予約番号取得
- 毎月使っていたサービス系、ポイントなどがどうなるか確認
- OSを最新版へ更新
- iTunesに暗号化バックアップ
- LINE引き継ぎ方法実行
- アプリ引き継ぎ方法実行
- GoogleAuthenticatorで二段階認証しているサービスのバックアップコード取得
MNP予約番号取得
とあるサービスでまとめてau支払いを使っており、SIMフリーにすることでどうなるかサポートに確認しました(想像はつくけど一応)。
そのときに合わせてMNP予約番号を取得できるとのことだったので取得。
OSを最新版へ更新
7へデータを復元するときに差異があるとよくないのかなと思って、一応5sも10.0.2に更新しておきました。
(ググって、OSバージョン合わせたほうがいいという記事を見た気がします。)
iTunesに暗号化バックアップ
iTunes でのバックアップの暗号化について - Apple サポート
5sで使っていたアプリや各種データを7にも入れたかったので、iTunesでバックアップをとり7でそこから復元する方法をとることに。
なんで"暗号化"バックアップをしておいたのかというと、ググったときに、そうすればTwitterとかの認証系をやり直すことないよっていう記事をいくつか見たからです。
まぁ、もしできなかったとしてもアイパス覚えているんで困りはしないんですが、一応やっておきました。
実際、アイパス入れ直すことなく使えました。
(通常のバックアップならどうなるかはわかりません)
LINE引き継ぎ方法実行
【2016年最新版】 LINEのアカウントを引き継ぐ方法 : LINE公式ブログ
LINEの過去履歴は消えてもいいけど、フレンドリストとかは残っていて欲しいので調べて実行しておきました。
7で起動したとき、上記ブログに載っていない「本人確認する/初期化する」っていう画面が出て、本人確認するをラブとメアドとパスワードを求められました。パスワードを入力したけど通らなかったので、アプリをアンインストールしてもう一度インストールしたらブログと同じようになったのでそのままいけました。
アプリ引き継ぎ方法実行
ゲームなど、データを引き継ぎたいものはそれぞれやり方を調べて実行しておきました。
問題なし。
GoogleAuthenticator利用のもののバックアップコード取得
個人的にはこれが一番大事。危うく忘れそうでした。
事前に各サービスすべてログインし、バックアップコードを保存しておきました。
実際、7で起動した時いくつか消えていたので、バックアップコードが重宝しました。
まとめ
機種変大変。
Rubyメモ2
[mfham@localhost work]$ ruby -v ruby 2.1.8p440 (2015-12-16 revision 53160) [x86_64-linux] [mfham@localhost work]$ irb 2.1.8 :009 > sprintf('%05d', '10101') => "10101" 2.1.8 :010 > sprintf('%05d', '02101') => "01089" 2.1.8 :011 > sprintf('%05d', '08101') ArgumentError: invalid value for Integer(): "08101" from (irb):11:in `sprintf' from (irb):11 from /home/mfham/.rvm/rubies/ruby-2.1.8/bin/irb:11:in `<main>' 2.1.8 :017 > sprintf('%02d%03d', '10','101') => "10101" 2.1.8 :018 > sprintf('%02d%03d', '02','101') => "02101" 2.1.8 :019 > sprintf('%02d%03d', '08','101') ArgumentError: invalid value for Integer(): "08" from (irb):19:in `sprintf' from (irb):19 from /home/mfham/.rvm/rubies/ruby-2.1.8/bin/irb:11:in `<main>' # Kernel.#Integer 2.1.8 :028 > Integer('10') => 10 2.1.8 :029 > Integer('02') => 2 2.1.8 :030 > Integer('08') ArgumentError: invalid value for Integer(): "08" from (irb):30:in `Integer' from (irb):30 from /home/mfham/.rvm/rubies/ruby-2.1.8/bin/irb:11:in `<main>' # String#to_i 2.1.8 :021 > '10'.to_i(8) => 8 2.1.8 :022 > '02'.to_i(8) => 2 2.1.8 :023 > '08'.to_i(8) => 0 2.1.8 :040 > '10'.to_i(0) => 10 2.1.8 :041 > '02'.to_i(0) => 2 2.1.8 :042 > '08'.to_i(0) => 0
メモ
Rubyドキュメント
※実行は2.1.8なのにドキュメントは2.3.0見てるっていうのは許してください。
d
i
引数の数値を10進表現の整数として出力します。
引数が整数でなければ関数 Kernel.#Integer と同じ規則で整数に 変換されます。
module function Kernel.#Integer (Ruby 2.3.0)
引数が数値の場合は直接変換し(小数点以下切り落とし)、 文字列の場合は、進数を表す接頭辞を含む整数表現とみなせる文字列のみ 変換します。
なるほど、sprintfでd(i)を指定したら、Kernel.#Integerと同様の動きをするのか。
String#to_iを使ってみたけど、これとは挙動が違うみたい。なぜ?
気になるなーるね
調べる。
Kernel.#IntegerとString#to_iのソース。
module Kernel - Documentation for Ruby 2.3.0
class String - Documentation for Ruby 2.3.0
Kernel.#Integer
最終的にこれを返す。
rb_convert_to_integer(arg, base);
Integer('08')ならrb_convert_to_integer('08', 0)かな?
rb_convert_to_integerをもう少し追ってみると、
https://github.com/ruby/ruby/blob/4915ce691d147a460e14531f4031d6934c5e8c5c/object.c#L2701
第一引数のタイプがT_STRINGならrb_str_to_inum(val, base, TRUE)をreturnしている。
String#to_i
最終的にこれを返す。
rb_str_to_inum(str, base, FALSE);
'08.to_i(8)ならrb_str_to_inum('08', 8, FALSE)かな?
'08.to_i(0)ならrb_str_to_inum('08', 0, FALSE)かな?
違い
rb_str_to_inumの第三引数がTRUEとFALSEで違うみたい。
ちなみにsprintfはこれかな?
https://github.com/ruby/ruby/blob/00fcd967d9900713fa7f617d9a5077ec178e073f/sprintf.c#L842
rb_str_to_inum(val, 0, TRUE)
(base=0だから、プリフィクスから基数を判断するのかな)
rb_str_to_inumは何するの?
https://github.com/ruby/ruby/blob/772fd010b6a76887d9be9389f60cc024bd34f83b/bignum.c#L4207
rb_cstr_parse_inumの結果を受けて、NIL_P(ret)が真なら第三引数(TRUE, FALSEのやつ)をチェックして、TRUEならエラー(https://github.com/ruby/ruby/blob/772fd010b6a76887d9be9389f60cc024bd34f83b/bignum.c#L3706)、FALSEなら0(macro INT2FIX (Ruby 2.3.0))を返している。
rb_cstr_parse_inumを追うのは今はやめておこう・・・
https://github.com/ruby/ruby/blob/772fd010b6a76887d9be9389f60cc024bd34f83b/bignum.c#L4018
まとめ
Kernel.#Integer、Kernel.#sprintfはrb_str_to_inumの第三引数がTRUEになっておりエラーを投げる。
String#to_iはrb_str_to_inumの第三引数がFALSEになっており、0を返す。
使い方気をつけよう・・・
他
docs.ruby-lang.orgのKernel.#Integerの引数、第二引数base=0つけたほうがいいんやない?