my coding note

コーディングして思ったことなどを気ままに

賃貸トラブル:賃貸マンションの所有者が外国人に変わったらどうする?

プライベートねたです。

困ったことになったので、ここに記録します。

4行くらいで要約

  • 賃貸マンションの所有者変わったよ。←わかる
  • 賃貸管理会社も変わったから、後のことは、新しい管理会社から連絡があるよ。 ←わかる
  • (連絡を待っても何も来ず)
  • 新所有者の友人「家賃まだー?」 ←はぁ?
続きを読む

AWSのS3のリージョンを調べる

背景

  • AWSのEC2コンテナに乗せたRailsアプリからS3パケットにアクセスするように設定したい
    • アプリにはCarrrierWave + fog-awsを使用
  • 設定ファイルに記載するS3のリージョンの名称がわからないので調査

調査過程

結論

Pull Requestしなくても、ブランチの履歴を残ししたい

背景

  • リモートリポジトリはGitHub、ツールはGitHub Desktopを利用
  • GitHub-Flowに沿って、機能単位でブランチを作成している
  • そのままブランチをmasterにマージしても、Pull Request同様にマージコミットしたい
続きを読む

カウントダウンタイマーのスクリプト(Windows)

背景

  • 作業に集中したいときに、カウントダウンタイマーが欲しかった
  • 支給されているPCに開発環境を用意できないため、プリインストールされているスクリプトを使用して作成

実行環境

作ったもの1(PowerShell版)

  • 機能
    • 分単位で時間を入力
    • 残り時間を表示(Write-Progress)
    • 終了時にダイアログを最前面に表示
  • 所感
    • PowerShellは、.NET Frameworkを使用できるため、わりと簡単に作れた
    • バッチファイルからPowerShellを起動するようにした際、初回起動が遅い

ソースコード

powershellCountDownTimer

作ったもの2(バッチファイル版)

  • 機能
    • 分単位で時間を入力
    • 残り時間(秒)を表示
    • 終了時に何かアプリorファイルを開いて通知
  • 所感
    • PowerShell版は起動が遅いので、こちらを作成
    • 文法的なギャップが大きく、コーディングに時間がかかった
      • 条件文の中でsetした値が反映されるタイミングなど
    • 起動は早い
  • 参考: https://jj-blues.com/cms/wantto-countdown/

ソースコード

カウントダウンタイマー

参照型の引数が ref だった時の対応

事の始まり

とあるSDKのメソッドに以下のようなものがあり、解決策に悩んだので記録しておきます。
名称などは変更しています。
ここでは、メソッドの引数として渡せるのはOption1クラス、Option2クラスのオブジェクトもしくはnullです。
尚、Option1クラスとOption2クラスは継承関係はありません。

/// <summary>引数に渡されたオブジェクトを元に何か処理をする</summary>
/// <param name="option">Option1, Option2のオブジェクトもしくはnull</param>
/// <return>エラーコード</return>
int api_doSomthing(ref object option);

エラー:参照型の参照渡しでキャストエラー?

C#ではすべてのClassはobjectを継承しているので、そのまま引数に代入できると考えました。 しかし、インスタンスを引数に代入しようとすると、コンパイルエラーになります。

// 引数に渡すオブジェクト
var option1 = new Option1();
int errCode = api_doSomthing(ref option1); //エラー 'ref Option1' から 'ref object' に変換できません。

原因

引数にrefが付いているため、参照型の参照渡しとなり、型に互換性がなくためだそうです。(原因の深掘りはしてません)
参考:http://bbs.wankuma.com/index.cgi?mode=al2&namber=37050&KLOG=64
そもそもClassは参照型なので、参照渡しする理由がありません。どうしてこうなった。

対策

一旦object型の変数に代入する事で回避しました。

// 引数に渡すオブジェクト
var option1 = new Option1();
object objOption1 = option1; 
int errCode = api_doSomthing(ref objOption1); //OK

ES modulesを触ってみる

背景

  • 最近フロントエンドに再入門しました。
  • commonjsとかそこらへんも全然わかってはいません。
  • JavaScript(ES6)の勉強を学習サイトの入門コースでやってみたのですが、import/exportに触れていなかったので軽くやってみました。

この記事でやること

  • 制限事項
  • import/exportの基本的な書き方(モジュールバンドラーなし)
続きを読む

GASで気象庁の防災情報Atomフィードを取得してみた

背景

取得するデータ

続きを読む