emolog

脳内メモです。

【rails】activerecord-importとelasticsearch-railsのimportがコンフリクトしたのでメモ

前提

  • もともとrailsでElasticsearchを使用していて、後からactiverecord-importに依存しているライブラリを入れた。
$ bundle exec gem list | grep activerecord-import
activerecord-import (1.0.8)
$ bundle exec gem list | grep elasticsearch-rails
elasticsearch-rails (7.1.1)
  • 両方でrailsのmodelにimportというクラスメソッドを生やすので、コンフリクトしてしまい、Elasticsearchの処理が軒並みこけてしまった。

f:id:ababababa0222:20210308172835p:plain

調査

  • activerecord-import側にコンフリクトした場合の対応が載っていた。

Activerecord-Import adds the .import method onto ActiveRecord::Base. There are other gems, such as elasticsearch-rails, that do the same thing. In conflicts such as this, there is an aliased method named .bulk_import that can be used interchangeably.

aliasを使えみたいにかいてある。

github.com

対応

  • なんかメソッドのalias使うの微妙だな〜と思ったので。
Model.__elasticsearch__.import

みたいな感じでつかうようにした。

参考

qiita.com

おしまい。

【Flutter】 クリップボードにコピーする

Flutterを最近プライベートで書いていて、クリップボードにコピーしたかったのでメモです。

f:id:ababababa0222:20210328103419p:plain

組み込みライブラリであるっぽいのでそれを使います。

api.flutter.dev

stackoverflow.com

// クリップボードにコピーするメソッド
void copyRoomLink() {
  final url = "http://localhost:3000/api/v1/hoge";
  Clipboard.setData(new ClipboardData(text: url));
}

// 呼び出すアイコンボタン
IconButton(
  icon: const Icon(Icons.link),
  tooltip: 'copy to link',
  onPressed: () {
    copyRoomLink(room.id);
  },
),

以上です。あざました〜〜

【Flutter】formとsubmitボタンを定義する

Flutterでフォームとsubmitとボタンを作成したかったのでメモです。

  Widget build(BuildContext context) {
    final roomNameFocusNode = FocusNode();
    final formState = GlobalKey<FormState>();

    return
      Form(
        key: formState,
        child: Column(
          children: [
            TextFormField(
              // 画面遷移時にformにオートフォーカスする
              autofocus: true,
              // キーボードでのEnter時の処理
              onFieldSubmitted: (value) {
                print(value);
              }, // 追加
              onSaved: (value) {
              },
            ),
            FlatButton(
              child: Text('Save'),
              color: Colors.grey,
              // submitした時の処理
              onPressed: () {
              },
            ),
          ],
        ),
      );
  }

iOSのSimulatorでiOS側のキーボードを開くときのメモ

iOSで開発していて、モバイル内のキーボードを開きたかったのでメモです。

f:id:ababababa0222:20210312000009j:plain

iOS Simulatorを開き、

Hardware-> IO-> Keyborad > Connect Hardware Keyboard

のチェックを入れると、接続しているハードウェアキーボードがSimulatorの方でも認識されます。

f:id:ababababa0222:20210324153344p:plain

TypeScriptのindex.tsってなに?って思ったのでメモ

Barrelというらしい

basarat.gitbook.io

f:id:ababababa0222:20210312000123j:plain

Barrelを使わない場合

// 3つのファイルそれぞれでexport
// demo/foo.ts
export class Foo {}

// demo/bar.ts
export class Bar {}

// demo/baz.ts
export class Baz {}
import { Foo } from '../demo/foo';
import { Bar } from '../demo/bar';
import { Baz } from '../demo/baz';

それぞれでimport / exportしているのでつらい🥺

Barrelを使う場合

  • demo/index.ts
// まとめてexport
export * from './foo'; // re-export all of its exports
export * from './bar'; // re-export all of its exports
export * from './baz'; // re-export all of its exports
import { Foo, Bar, Baz } from '../demo'

まとめてexport / importできてすっきり🙋‍♂️

以上です。あざました〜〜

JIRAとSlackを連携させる

会社でJIRAを用いてプロジェクト管理をしているので、個人開発でもJIRAを用いてプロジェクト管理することにしました。

SlackにJIRAの連携をしたかったので、備忘録です。 手順としては、以下となります。

  • SlackにJIRAアプリケーションを入れる
  • SlackのJIRAアプリケーションから、認証したユーザーの保持しているJIRAプロジェクトを選択して対象のslackチャンネルを選択
  • 連携設定を変更

ではやっていきましょう〜

f:id:ababababa0222:20210312000123j:plain

SlackにJIRAアプリケーションを入れる

まずSlackにJIRAアプリケーションを入れます。Slack左下のappを選択

f:id:ababababa0222:20210320111650p:plain

JIRAで検索。僕はJIRA Cloudを使用していたので、そちらを選択しました。

f:id:ababababa0222:20210320103348p:plain

ブラウザで対象のSlackの管理画面に遷移するのでインストールをしましょう。

f:id:ababababa0222:20210320103428p:plain

JIRA(Atlassian)の認証

Slack内で /jira connect コマンドを打ちましょう。

Atlassianに認証していなければログイン画面に遷移すると思うので、そちらからSlack連携したいJIRAプロジェクトに入っている Atlassianユーザーでログインしましょう。

再度 /jira connect を行うと対象のJIRAプロジェクトと、Slackのチャンネルを選択できるかと思うので選択すればSlack連携できます。

連携設定を変更

デフォルトの設定だと、JIRAのカードを移動した際などに通知が飛ばないので、必要あればJIRAのSlack設定から変更しましょう。

f:id:ababababa0222:20210320103839p:plain

以上です。あざました〜〜〜〜

未経験からエンジニアになって4年目になったので、ちゃんと読み直したい本達のメモ

2018年の4月くらい(たしか)にエンジニアになり、早いものでエンジニアになって4年目になりました。

非エンジニアの期間とエンジニアの期間が5:5くらいで、ビジネスとエンジニアリングのバランスを評価されることが多いのですが、エンジニアリングも引き続き伸ばしていきたいので読んでいる本、読みたい本のメモをつらつらと書いていきます。 (普段はバックエンドをやることが多いので、バックエンド周りが多いです。)

f:id:ababababa0222:20210319234119j:plain

データ指向アプリケーションデザイン

鬼の用に厚いですが、最近読んでます。 データの扱いを中心として書籍でRDB、NOSQL、分散データベースなどについて歴史的背景から、アーキテクチャ設計の考え方など参考になります。

amzn.to

達人に学ぶDB設計

テーブルを設計を1から解説してくれてます。 DB設計がバックエンドで一番失敗してはいけない場所だと個人的には思っているので一度通読しましたが、また読み直したいです。

www.amazon.co.jp

Web API: The Good Parts

API設計の名著です。 綺麗なREST API設計のインターフェイスを学ぶことができます。API設計している時や、設計時に意見が割れたとき等、迷ったときに読んでます。

www.amazon.co.jp

Real World HTTP

Webを支える技術の強めのやつです。 積ん読しているのでよみます。

Real World HTTP 第2版 ―歴史とコードに学ぶインターネットとウェブ技術 | 渋川 よしき |本 | 通販 | Amazon

ポエム

言語の勉強は、どの言語も毎日書いてれば書けるようになってくるのではないかなと思っており、抽象度の高い設計の本等を意識的に読むようにしてます。

また組織最適された知識や、属人化したコードを書き方を覚えるのは、部分最適化されるかもですが、他の環境になった時に通用しないリスクがあるので、環境に依存しない知識をためていきたいな〜と考えてます。

以上あざました〜。