プログラミング

【GitHub】Branch protection ruleでRestrict who can push to matching branchesが効かなかった話

TL;DR Include administratorsしない場合、自分がadminならRestrict who can push to matching branchesは機能しない やりたかったこと 間違えてフォーク元にpushする事故を防ぐためBranch protection ruleを調べていた所、Restrict who can push to matchin…

【プログラミング】Intellij IDEAでVueファイルの@エイリアスが解決できなかった問題への対処

TL;DR Webpackのコンフィグファイル名を間違えていた 原因/対処法 Cmd + Shift + aでPreferences -> Language & Frameworks -> JavaScript -> Webpackを開き、webpack configuration fileを確認した所、webpack.config.jsとなっているべき所がwebpack.common…

【GitKraken】Refresh Token表示が出ても、まずは通信の失敗を疑うべきだった話

TL;DR push開始後に通信の失敗が起こると下記の画像のようなRefresh Token表示が出る 単純に通信に失敗しているだけだった場合、実際にはRefresh Tokenしなくてもよい 本文 リモートワーク開始以降、自宅の回線やVPNの不安定さで通信に失敗する場面がしばし…

【プログラミング】JetBrains IDEでgradle.ktsプロジェクトがKotlin 1.4へのアップデート後Cannot access...となって壊れる状況への対処

問題 JetBrains IDEでgradle.ktsで書いたプロジェクトを編集し、依存するKotlinのバージョンを1.4に上げた所、gradle.kts/Kotlin/Java全てのファイルがエラー表示となり、補完等が効かなくなった 一応コマンドライン等からは正常に機能しているようだった エ…

【プログラミング】JetBrains IDEで起動直後に固まって操作できなくなる問題への対処

TL;DR IntelliJ IDEA 2020.2で起動直後に固まって操作できなくなる状況になった PCの再起動、IDEAの再インストールは効果が無かった 自分の場合は閉じる前に開いていたREADME.md(Markdownファイル)を消した所正常に操作できるようになった 問題 IntelliJ IDE…

【プログラミング】JetBrains IDEでvueファイルを編集しているときに固まる問題への対処

TL;DR Intellij IDEA 2019.3で、大きめのvueファイルを編集するとハングアップするようになった ランタイムをJDK8系からJDK11系に変更したところ症状が抑制された 原因がJDK依存の問題か、JDK変更による処理効率アップかは不明 問題 Intellij IDEA 2019.3で…

Qiitaを始めてから1年で書いた80本弱の記事を振り返る

この記事はMicroAd Advent Calendar 2019の23日目の記事です。 目次 目次 前書き 【Kotlin】アノテーションを自作する【SpringBoot】(2018年12月4日) 【SpringBoot】ファイルとその他データを同時にPostする【Axios】(2019年2月1日) 補足 【Git】GUIツー…

【日記】DDD的な設計完全に理解したメモ【プログラミング】

マサカリ避け 本読んでないです。 経験則です。 DDDチョットデキル人になりたいです。 前書き 「大量の相関チェック(しかもDBアクセスなど層をまたぐ処理や複数オブジェクト間の相関チェックを含む)とその後の登録が発生する状況」を想定して書きます。 言…

【Java】interfaceでinterfaceをimplementsしたかった(extendsが正しかった)話

やりたかったこと 以下のようにinterfaceが2つあるとき、この2つのinterfaceを継承したinterfaceを作ろうとしました。 public interface Interface1 { String hoge(); } public interface Interface2 { int fuga(); } やろうとしたこと interfaceなので、以…

【SpringBoot】内部エラー周りの話

内部エラー周りの設計について自分の経験から得た知見をまとめます(なのでセオリーとかアンチパターンとか有れば教えていただけるとありがたいです)。 内部エラーとは基本的に自分で書いてThrowするようなエラーを想定しています。 エラーハンドリングに関…

【Maven】OWASP Dependency CheckでsuppressionFileを指定した際に「要素'suppressions'の宣言が見つかりません。」とエラーになる問題への対処

問題 以下のようにSuppressionFileとpomを用意して抑制設定を行いました。 owasp-dependency-check-suppressions.xml(SuppressionFile) <suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.3.xsd"> </suppressions> pom.xml <plugin> </plugin>

【Vue.js】オブジェクトの内容を変更しているのにcomputedが変化しない状況への対処

状況 dataに用意したオブジェクトの内容を変更しているのにcomputedが変化しなくて困っていました。 対処 前提 dataに宣言する時点でプロパティを宣言しておけばVueが更新を追ってくれるので、基本はプロパティを宣言しておいた方がいいらしいです。 // ダメ…

【日記】読みやすいコードについて考えたこと

読みやすいコードとは何かについて個人的に思っていることについて書きます。前提として、黒魔術的な話や自動整形で直せるような部分には触れません。 そもそも読みやすさとは何か? 最近のコードにおける読みやすさとは「その処理によって何がどう変化する…

【日記】エンジニアの自分が"床上手な処女"に求める技術的スキル

「即戦力学生」という存在が目立っていたり、企業側もそんな存在を求めていたりする中で、エンジニアの自分が「エンジニアとしてこんなスキルを持った人間と働きたいな」と思っているスキル3つをまとめます。 タイトルについて 『床上手な処女』というのは下…

【ASP.Net Core】@Html.TextAreaForの初期値が入らなくて詰まった話

状況 TextAreaForでModelを正しく指定しているにも関わらず初期値が入らない状況になりました。 原因 TextAreaForを追加しようとする前は、ViewData経由でcshtml側に値を渡してバインドし、バインドされた値によってModelが初期化されるという構造になってお…

【HTML】Google Chart APIでQRコードを生成して表示する

やり方 以下のAPIに対してQRコードにしたいURLを指定することで、簡単にQRコードを生成することができます。 http://chart.apis.google.com/chart?chs=320x320&cht=qr&chl=/* QRコードにしたいURL */ 例えば、このブログのブログトップを指定すると以下のよ…

【SpringBoot】vuejs-datepickerで取得した日時をPOSTするとサーバーサイドで読んだ時に1日前になる問題が発生した【Vue.js】

やりたかったこと vuejs-datepickerでPOSTした日時から、サーバーサイドで日付を取得する 問題の概要 vuejs-datepickerはタイムゾーンまで含めてデータを出力する Jacksonはフォーマット設定をしなければ受け取った日時をGMT基準(=日本時間-9時間)に変換し…

【Java】最近やっているプロジェクトで後悔していること5点【プログラミング】

Java8でプロジェクトをやっていて後悔していることを5点挙げます。 上から後悔している順です。 nullを返すな、Optionalを使え 文字通りなんですが、null が絡むと何が返ってくるのか分からない状態になるのでOptional使った方がいいです。 特にnullを返しが…

【プログラミング】好きなインデント、嫌いなインデント【日記】

インデント数や改行のやり方について、自分の好みを書きます。 言語はJava想定ですが、別言語でも基本的な好みは同じです(IDEは当然使うものとします)。 はじめに そもそもの話 インデント数 4スペース対2スペース Tabインデント 改行の方式 ブロックの改…

【プログラミング】JetBrains Riderで「Cannot run project of type Unloaded using any of available configuration types.」と出てプロジェクトがビルド/実行できなくなった話

何で直ったのかわかりませんが、とりあえず直った話です。 状況 JetBrains Riderでプロジェクトを開発中、Visual Studio InstallerからVisual Studio 2019のアップデートを行ったところ、Visual Studio Installerから「MSBuildがなんたらという」メッセージ…

【Windows】環境変数をいくら編集してもPathが通らなかったときの対処【Java】

状況 下記の記事を参考に環境変数を設定しても設定が反映されず、javaコマンドが通りませんでした。 www.atmarkit.co.jp コンソールには以下のようなエラーが出ていました。 PS C:\Users\wrongwrong> java Error opening registry key 'Software\JavaSoft\Ja…

【プログラミング】何かをダウンロードするようなエンドポイントで、Edgeでのみダウンロードにならなかった話

問題 CSVをダウンロードさせるようなエンドポイントを立てた時、ChromeやFireFoxではダウンロードになるのに、Edgeでのみダウンロードにならないという状況が発生しました。 問題のコード エンドポイントのコードは以下です。フレームワークはSpringBootです…

【Java】引数のListに対するStream処理がコンパイルできない状況への対処

以下のコードは、Listを内容のクラスの名前の配列にして返すという内容です。 List内の型に関係なく実行できるコードであるため、一見正しいように見えますが、このコードはコンパイルできません。 String[] toNameArray(List list) { return list.stream().…

【ModelMapper】The destination property [セッター名] matches multiple source property hierarchiesと言われた時の対処【Java】

以下のようなエラーに対処します。 org.modelmapper.ConfigurationException: ModelMapper configuration errors: 1) The destination property [セッター名] matches multiple source property hierarchies: 対処 ModelMapper#getConfiguration().setAmbigu…

【SpringBoot】Lombokでアクセサを実装したis...という名前のBooleanを含むEntityのマッパーを用いたINSERT/SELECTが失敗する問題への対処【JDBC】

概要はSSIAです。 ここではEntityをデータベースのテーブルそのままのPOJOとします。 原因 ここではis_active_sampleという名前のカラムに対して、isActiveSampleというBoolean/booleanのフィールドを持つEntityを挿入する状況をサンプルとして書きます。Lom…

【Android】Emulator: emulator: ERROR: x86_64 emulation currently requires hardware acceleration! への対処

問題 Androidスタジオインストール直後にエミュレーターでプロジェクトを起動しようとしたところ、Emulator: emulator: ERROR: x86_64 emulation currently requires hardware acceleration!と出て起動できませんでした。 原因 AndroidStudioのインストール…

【プログラミング】JetBrains製IDEでプロジェクトのソースフォルダ(packageなど)が認識されない時の対処

Intellij ideaで作成したプロジェクトをGitHubで共有した際に、別PCでビルドができない現象が発生したので、その解決方法を書きます。 現象 パッケージが認識されず、設定を写してビルドしてもclass not foundと言われてビルドが通りませんでした。 対策 Pro…

【Kotlin】通常ではfor文で回せないものをfor文っぽく扱う

Kotlinでは、浮動少数やBigIntegerなどはそのままだとfor文に入れて回すことができません。 こういったものはgenerateSequenceを使ってシーケンスにすることで、for文のように回すことができます。 やり方 以下はgenerateSequenceを使って階乗を実装したもの…

【JDBC】SimpleJdbcInsertで複数の要素を一気にInsertする

BeanPropertySqlParameterSourceの配列を作ってSimpleJdbcInsert#executeBatchに入れるとできます。 //配列を作る関数 private BeanPropertySqlParameterSource[] makeParamArray(List entities){ BeanPropertySqlParameterSource[] sources = new BeanPrope…

【JDBC】SimpleJdbcInsertでDEFAULTを設定したEnumのInsert時にcannot be nullと言われる状況への対処

wrongwrong163377.hatenablog.com 前回の記事がトラブっていた原因が判明したので書き直します。 原因 NOT NULLなEnumカラムに対して値を指定しない場合、com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column '[カラム名]'…