wrongwrongな開発日記

しんまいさんの忘備録

プログラミング

【プログラミング】末尾再帰を使って累乗(バイナリ法)を実装する【Kotlin】

wrongwrong163377.hatenablog.com 続きです。 ネット上のループや通常の再帰を使った実装に比べ、末尾再帰で書いた方がシンプルにバイナリ法を実装できました。 バイナリ法とは をを掛け合わせた形に変形することで乗算回数を抑えるアルゴリズムです。 例え…

【プログラミング】末尾再帰を使う【Kotlin】

末尾再帰とは この記事ではtailrec funで宣言すると末尾再帰最適化がかかる関数全てを末尾再帰であるとします。 なぜ末尾再帰が必要なのか 再帰的な書き方ではコードが美しくなる反面、実行時間が遅い、スタックオーバーフローを引き起こすなど、実用上の問…

【日記】アドベントカレンダーに投稿した【プログラミング】

折角の機会ということで、弊社(言ってみたかった)のアドベントカレンダーに以下2記事を投稿しました。 qiita.com qiita.com 感想 人生初アドベントカレンダーでした。 この記事に引き続きKotlinでSpringBoot触ってましたが、そもそもSpringBootに不慣れな…

【プログラミング】JetBrains製IDEでSQLのハイライトを設定する

SQLにはDialect(方言)が多々あり、IDEに適切なDialectを設定しなければハイライトや補完がうまく機能しません。 設定方法 SQLファイルで右クリックし、Change Diarectを選びます。 以下のようにメニューが出るので、使いたいものを選択します。 まとめて設…

【Kotlin】バリデーション用のアノテーションを自作する【SpringBoot】

↓の続きです。 wrongwrong163377.hatenablog.com 記事執筆時点でのプロジェクトリポジトリは以下。 github.com やること フィールド用に名前が半角スペースで2分割できるかをチェックするCustom Validatorを作ります。 深い理解ができていないので、作って動…

【Kotlin】SpringBootでControllerが受け取った内容をバリデーションするまで【SpringBoot】

↓の続きです。 wrongwrong163377.hatenablog.com Post/Putで受け取った内容をBeanのバリデーション/相関チェックするところまでやります。 この記事の内容が完了した状態のリポジトリは以下。 github.com やること モデルを追加する コントローラーを追加す…

【Kotlin】SpringBootでGetのコントローラーを動かすまで【SpringBoot】

最近黒べこ本(会社のお金で)買いました。サーバーサイドでもKotlinはいいぞ。 今回はKotlinのSpringBootでハロワします。 記事執筆時点でのプロジェクトリポジトリは以下。 github.com やること SpringInitializrでプロジェクトの概形を作る Controllerを…

【JavaScript】オブジェクトをディープコピーする

JavaScriptには素の状態でディープコピーを取得する機能が無く、ただ代入してもシャローコピーとなってしまい、バックアップを一時的に持っておくような作業には使えません。 やり方 自分で書こうとすると手間が大きかったので、Lodashを導入した上で、そこ…

【JavaScript】JasmineでsetTimeOut/crearTimeOutをspyOnする

Karma + JasmineでsetTimeOut/crearTimeOutをモックにします。 コード setTimeOutには戻り値を設定しています。複数回呼ぶときはreturnValues(100, 101, 102...)としてやると、呼ぶごとに戻り値を変えられます。 //timeout系をmock化 spyOn(window, 'setTime…

【HTML/CSS】複数の要素を同期してScrollする【JavaScript】

複数要素を同期してScrollさせます。 強引な実装だと思うので、もっとスマートな実装が有れば教えてください。 やりたいこと 実装 利用例 解説 呼び出し元の記録と、記録のリセット 高さの操作 やりたいこと 以下のような機能を実現します。 複数要素を同時…

【プログラミング】JetBrains製IDEでwebpackのビルド時に長時間Indexingが走る状態への対処

問題 webpadkでbabelのビルドを走らせると、Indexingが長時間走ってIDEの補完やらビルドやらができなくなる状況が発生していました。 原因 ビルド結果の出力されるフォルダもIDEAの管理下になっていたため、大量のファイルをIndexingしていたことが原因でし…

【Java】@FunctionalInterfaceを使ってみる

wrongwrong163377.hatenablog.com 今更ですが、↑の内容ならFunctionalInterface使った方が楽な場面も有るかな?と思ったので書きました。 使い方 全部まとめ これ以降で書く内容を全部まとめたクラスが以下です。 public class Main { @FunctionalInterface …

【HTML/CSS】JavaScriptで新しいタブを開き、そこからPOSTを送る【JavaScript】

以下のような動作がしたかったのですが、1, 2をやるようなコードが落ちてなかったので作りました。 新しいタブを開く 開いたタブからPOSTを送信する 戻ってきたwebページを表示する 内容的には新しいタブをtargetに指定してpost結果を表示するというのが正し…

【プログラミング】JetBrains製IDEでLanguage Injection(言語インジェクション)を使う

JetBrains製IDEで使える言語インジェクションとその使い方をまとめます。 言語インジェクションとは コードを書く中で、HTMLやSQL、GLSLのシェーダーなど、別言語のコードを文字列として書く必要が出てくる場合があります。 しかし、エディタ上ではこれらの…

【Android】picassoでURLから画像をよしなに扱う【Kotlin】

URLで公開されている画像をAndroidから効率的に扱うライブラリとしてはPicassoとGlideが有名です。 今回はPicassoの導入について書きます。 Picassoとは 画像のダウンロード、変形、メモリキャッシュといった処理をよしなにやってくれるライブラリです。 や…

【Android】Retrofitの通信をOkHttpでデバッグする【Kotlin】

wrongwrong163377.hatenablog.com 続きです。 やりたいこと 前回の記事の時点ではRetrofitの通信がどうなっているか把握できないので、上手くいかないときにデバッグするのが困難です。 そこで、OkTTP3を用いて通信のデバッグを行います。 プロジェクトリポ…

【VB】自作したコンポーネントをデザイナーに表示する【.Net】

↓の記事の続きです。 wrongwrong163377.hatenablog.com 前回の問題点 コンポーネントをデザイナーで扱えないので、デザインの確認が難しい状態でした。 今回はデザイナーで自作コンポーネントを扱う手順を書きます。かなりバットノウハウなやり方ですが……。 …

【DxLib】描画スレッドで宣言したハンドルへの描画が止まる問題への対処【.Net】

別スレッドにおいてDxLibを動かして描画を行うプログラムで、exeから起動時に描画が停止する状況と、対応策をまとめます。 プロジェクト全体はGitHubに有ります。 github.com ※このサンプルは描画はUIスレッドから行うという原則に反しているので良くないで…

【HTML/CSS】axiosでAPIを叩く【JavaScript】

ソースコード axiosでGitHub APIを叩くサンプルです。自分(k163377)のリポジトリ情報を取得し、その名前を書き出します。 一瞬詰まった点としては、取得成功時に呼ばれる関数内でエラーを出した場合、処理はそこで中断されてエラー処理関数が呼び出される…

【Android】入力欄にヒントを出す【HTML/CSS】

テキスト入力欄に何を入力して欲しいかを表す灰色の文字列を表示している例は多々有りますが、どう調べればよいか分からず手をつけていませんでした。 Android Androidの場合はxmlにandroid:hint="someText"を書けば出せるようです(今環境が無いので後で試…

【VB】関数ポインタっぽいことをする【.Net】

cやc++の関数ポインタは、相手に処理を渡したいというときに非常に便利なので、別言語でもそれっぽいことがしたいです。 以前の記事ではJavaでFunctionを使ってこれを実現しました。 今回は.NetのFuncを使い、VBで同じようなことを実現します。 参考記事 @Ry…

【VB】フォームをコンポーネントのように扱う【.Net】

Windows Formアプリケーションで、複数の画面で同じように使う機能(外見的な部分というよりは内部ロジック)がある場合、機能をまとめたフォームをコンポーネントとして機能を使い回すと便利です。 この記事ではそのやり方をまとめます。サンプルプロジェク…

【Android】ListViewを使う【Kotlin】

自作クラスを使ったListViewの使い方をまとめます。この記事を書いた時点で用いているサンプルプロジェクトは以下。 github.com やること 表示するレイアウトを作る Adapterクラスを作る アクティビティへの配置とAdapterのセット ListViewをレイアウトに配…

【Android】GitHubの言語ごとの色に対応するXMLを作る【Kotlin】

GitHubでは以下のように言語ごとに色が割り振られています。これをAndroidで利用したかったので、XML形式に変換しました。 やりかた 以下に定義が有るので、これをローカルに持ってきて解析します。 https://raw.githubusercontent.com/hiroppy/github-langu…

【日記】モイ株式会社のFizz Buzz チャレンジをやった

Fizz Buzz チャレンジとは? モイ株式会社の新卒採用エントリー前の試験です。 saiyo2019.moi.st 結果 スコア上げは気力が続かなかったのでしてません。 ハイスコアは800超え。どうやったのかな……。

【Java】Intellij IDEAでWebSocketを導入する【Kotlin】

Intellij IDEAでWebSocketを使います。 やること やることは以下の通りです。 (Intellij IDEAでコンパイル・実行までできるようにする) Java EEを持ってきて配置する Application Serverを設定する 参考ページ ここから書く内容は以下のページと同様です。 j…

【Android】Retrofit2を使う【Kotlin】

KotlinでRetrofit2を使ってみました(2018/9/8全面的に書き直し)。 Retrofitとは プロジェクト やったこと Gradleに追記 Manifestに追記 受け取るためのデータクラス作成 Retrofitを使う 続き 参考URL Retrofitとは httpで公開されたAPI叩くライブラリです…

【Android】コードからアクションバーを変更する【Kotlin】

出てきた情報が古かったりしたのでまとめます。 やり方 変数で変更する方法と、supportActionBarを持ってきて変更する方法とが有ります。 ソースコード アクションバーのタイトルを「あああ」に、背景(色)をリソースのcolor内colorAccent変更します。 titl…

【Kotlin】APIを叩く【Java】

KotlinでAPIを叩いてJSONを取得します。 APIを叩くことを勉強しはじめたばかりなので分かってないことばかりですが、URLを叩くとJSONが帰ってくる状況を想定して作りました。 ソースコード GitHubAPIを叩いて、自分のアカウント(k163377)の全リポジトリの…

【日記】プロジェクトをクラスライブラリに分割する中で後悔したこと

二度と繰り返したくないので言語化します。 背景 ソースコードを流用して別プロジェクトを作ろうとする中で、複数のプロジェクトから同じコードを使いたいので、機能のクラスライブラリへの分割を行っています。 内容はVB.NetのWindowsフォームアプリケーシ…