SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

【VScode】ショートカットで相対パス relative pathをコピれるようにした

まずはこれをプラグインでいれる。

GitHub - enochcheung/copy-relative-path: A VS Code extension for copying relative path of the active file

コード > 基本設定 > キーボードショートカット

f:id:Saku-Saku:20180903191708p:plain で、ここの次を開いてのファイルを開いて、間違わないように設定。

  {
    "key": "cmd+.",
    "command": "extension.copyRelativePathOfActiveFile"
  },

僕は、コマンドキーとドットでいけるようにしました。

gitのプルリク出す時とかで解説する時に便利です。 すぐコピレなかったり、絶対パスしかなかったり困っておりました。 が、これでさくさくコピーですね。

[20190111追記]

どうやらVScodeのupdateでプラグインなしでもできるようになった?ようです。 その場合はextension.copyRelativePathOfActiveFileの部分をデフォルトのやつにかえるとうまくいきそうなきがします

Ruby on Railsを使ってtwitterに画像付きtweetをするぞ

wip記事ですが、追記していきます。

Ruby on Rails使って、twitterにガンガン画像をあげてやろう、画像付きtweetをしようという記事です。

Twitter::REST::Request.new(@client, :post, "https://upload.twitter.com/1.1/media/upload.json", command: 'APPEND', media_id: media_id, media_data: file, segment_index: 0).perform

これ、media_dataにしてbase64でデコード済みのものを渡そうとするとエラる。

Twitter::Error::Unauthorized: Could not authenticate you.

きみ、認証できてへんで。なんでや!!

    Twitter::REST::Request.new(@client, :post, "https://upload.twitter.com/1.1/media/upload.json", command: 'APPEND', media_id: media_id, media: file, segment_index: 0).perform

media にして、fileを params[:image]のように直接デコードしないままのものを受け取って投げて見たります。 が。FINALIZEで失敗して以下のエラーが。

Twitter::Error::BadRequest: Segments do not add up to provided total file size.

結局

サーバの方の処理は以下な感じ(まだ整理も何もしてない)

    base_file = Base64.decode64(params[:image])
    file = params[:image]
    init_request = Twitter::REST::Request.new(@client, :post, "https://upload.twitter.com/1.1/media/upload.json", command: 'INIT', total_bytes: base_file.size ,media_type: 'image/jpeg').perform
    media_id = init_request[:media_id]
    Twitter::REST::Request.new(@client, :post, "https://upload.twitter.com/1.1/media/upload.json", command: 'APPEND', media_id: media_id, media: file, segment_index: 0).perform

    Twitter::REST::Request.new(@client, :post, "https://upload.twitter.com/1.1/media/upload.json", command: 'STATUS', media_id: media_id, media: file).perform
    Twitter::REST::Request.new(@client, :post, "https://upload.twitter.com/1.1/media/upload.json", command: 'FINALIZE',media_id: media_id).perform
    Twitter::REST::Request.new(@client, :post, "https://api.twitter.com/1.1/statuses/update.json", status: "test with image", media_ids: media_id).perform

名前ぐっちゃんぐっちゃんですが、デコードしてるファイルでサイズ測ってupするのは、デコードしてないバイナリなデータ。

jsの方はこんなかんじに。

      var imgData = canvas.toDataURL("image/jpeg");
      var data = { "image" : imgData.replace(/^.*,/, '') }

      $.ajax({
        url: "twitter_post",
        type: "POST",
        beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
        data: data,
  • canvas.toDataURL("image/jpeg");
  • var data = { "image" : imgData.replace(/^.*,/, '') } あたりがハマりそう。 今は一旦動いてるよっていところですが。。。 .replace(/^.*,/, '')で画像の前についてるjpegの指定している文字列とかを消してます。

今いるブランチのプルリクエストをコマンドラインから開けるようにする方法

コマンドラインから現状のブランチ(branch)のPR(プルリクエスト)を開きたい人、いますよね。 さっきまでの僕です!!

ということで、サクっと設定しちゃいましょう。

今回できるようにしたことはこちら

"bashのコマンドラインから、 pu と打てば現在いるブランチのプルリクエストをブラウザで開く"です。

続きを読む

Railsでテーブルを追加するコマンド【migaration】

Ruby on Railsでテーブルを追加、migrationファイルを追加するコマンド、たまーにしか使わないのでいつも検索しちゃいます。 どうせなので自分のブログにも残しておくことにしました。

要点は modelを追加するとテーブルもmigrationファイルも、modelも生成されるというところ

rails generate model User uuid:string email:string

ちなみに、 Usersにすると、怒られちゃいます。笑 modelの追加なので、単数形にしろ!ということですね。

rails generate model Users uuid:string email:string
Running via Spring preloader in process 42696
[WARNING] The model name 'Users' was recognized as a plural, using the singular 'User' instead. Override with --force-plural or setup custom inflection rules for this noun before running the generator.
      invoke  active_record
      create    db/migrate/20180728163652_create_users.rb
      create    app/models/user.rb
      invoke    test_unit
      create      test/models/user_test.rb
      create      test/fixtures/users.yml

【gridlayout】-ms-gridが適用されない問題対応

grid layoutのcssをIE11に適用ようとした備忘録

      display: -ms-grid;
      display: grid;
      grid-template-columns: 25% 25% 25% 25%;
      -ms-grid-template-columns: repeat(3, 25%);

こんな感じで当てようとしたらあたりません。

CSS Grid Layout Module(IE対応) | CodeCode

IE11はprefixが必要

まだ完全に対応していません。

Can I use... Support tables for HTML5, CSS3, etc

しかしただつけるだけではだめ

      grid-template-columns: 25% 25% 25% 25%;
      -ms-grid-columns: 25% 25% 25% 25%;

template-columnsに対応する修正には、そのまま-ms-をつけるだけではダメでした。鬼かな?

IE11 で CSS Grid を使うのが大変だった - Corredor ここにまとまっているものを全て目は通して修正しましょう。

後輩と先輩

後輩が入って、コードレビューなどしているのですが 自分のためにも、後輩のためにも、いい。

後輩入ってくるの、怖いなぁなんて思っていた時もあったりはしたんですけど 若いメンバーが増えて、いろんな意味でよいなぁと思っております。

なんていう投稿を。

わからないなーの壁の第一段階を越える

最近、以前よりもRailsに対してクリアになった気がしている。 といっても劇的にどうだ!ということではないけど MVCへの理解だったり、モデルへの切り分けとか、テーブルとかその辺についてがかなりクリアになったなぁと思う。

英語の勉強って階段状になってます、という話をよく聞いていたけどその階段の1ステップが、登れたのかもしれない。

クリアになるまで、正直9ヶ月くらいはかかっていると思う。 長かったのか、短いのかは人それぞれだろうけど。

Railsはじめました、とか、プログラマーなりたいっす。とか、そんな人が勉強しだしてどんなもんでどうなるかの基準になるかもとおもったりして書いている。

だいたいどんなもん。

平日毎日7時間くらいお仕事しているとして、時間でいうと5時間 * 5日 25時間が平日コード書いたり設計したりしたとして1ヶ月で100時間(少ないw)

9ヶ月で900時間。

と思うと1000時間が1ステップ目だったりするのかなー。

1万時間の法則といったりするけど、これを10倍すれば、ある程度極めたことになるのか。なるほど。

もっとやる人は、1日10時間の積み重ねで、毎日やれば1ヶ月で300時間。3ヶ月。 たしかにこんなもんかも。

gitでみる

gitでみるとこんな感じだった。 オープンにしちゃうスタイル。

f:id:Saku-Saku:20180617132550p:plain