マガジンのカバー画像

へっぽこ学習記録

186
運営しているクリエイター

記事一覧

【JavaScript】半角ハテナ「?」をmatchで検索したいのにUncaught SyntaxError: Invalid regular expressionが出る

【JavaScript】半角ハテナ「?」をmatchで検索したいのにUncaught SyntaxError: Invalid regular expressionが出る

「この文章には半角ハテナが含まれているか?」をmatchで調べようとしたらUncaught SyntaxError: Invalid regular expressionで落ちた話。

結論こう。

const check_text = "この文章中に半角ハテナはあるか?"if(check_text.match('/\?/')){ console.log("あるよ");}else{ conso

もっとみる
【Java+Junit5】例外を期待するテストをする

【Java+Junit5】例外を期待するテストをする

適切な例外が発生するかどうかをテストしたいときのやりかた。

assertThrowsを使って例外が発生することを確認するassertThrowsを使うことで、期待した例外が発生したかどうかを確認することが出来ます。

public class なんかのクラス_の_テスト{ @test public void 例外を期待するテスト(){ // Arrange Book テストデータ

もっとみる

【MySQL】日付で絞り込む

Date型のカラムを日付で絞り込みたいときはこう

SELECT * FROM sample_table WHERE 登録日時 <= '2024-06-25 00:00:00'

普通に文字で、Date型のフォーマットに乗っ取った日時を渡してあげればそれでOK。

「このSQLを実行した日のその月」とか「その前月」とかやろうとするともうちょっと色々面倒ですが、とりあえず人力で日付指定出来る状況なら

もっとみる
コピー元と全く同じ状態になるようにバックアップを取るバッチを作る

コピー元と全く同じ状態になるようにバックアップを取るバッチを作る

前回の記事

では、「コピー元からコピー先へ、コピー先より新しいフォルダ・ファイルをコピーする」というだけの処理を作りました。

ただ、これだと、元フォルダ内でリネームしたり消したりしたファイルも、そのまま蓄積していってしまいます。バックアップとしてはそういう挙動にしたい場合もあるので一概にダメではないのですが、コピー元とコピー先を常に全く同じ状態に保っといたほうが便利そうだな……と思ったので、そ

もっとみる
バッチ+タスクスケジューラを使って、内蔵HDDの中身を自動で外付けHDDにバックアップする

バッチ+タスクスケジューラを使って、内蔵HDDの中身を自動で外付けHDDにバックアップする

パソコンが壊れました。

早々に新しいのを買ったのですが、その際、以前のPCに仕込んでいた自動バックアップバッチが灰燼に帰したので、もう一度仕込みながら、noteというクラウドにもバッチのバックアップを残しておこうと、そう言う記事です。

全て無料でご覧頂けますが、もし、突然PCが壊れてボーナスを吹っ飛ばした私を憐れんでくださる方がいらっしゃいましたら、有料部分を購入して頂けたら大変嬉しく存じます

もっとみる
【MySQL】自動採番されるID番号だけが登録されているテーブルにデータを追加する

【MySQL】自動採番されるID番号だけが登録されているテーブルにデータを追加する

いっつもやり方分からなくなる

INSERT INTO `スキーマ`.`テーブル名`() VALUES();

これで登録すれば、自動で採番された番号が入ります。
自動採番のIDと現在時刻のタイムスタンプ自動取得、みたいな複数カラムあるテーブルでもこれでOK。

複数項目あって、自動採番されない項目もあるテーブルなら、自動採番される項目だけ空にしてINSERTすれば良いんですけど、自動採番される項

もっとみる
【GAS】HTMLサービスを使ってクリックできるURLを表示したり、非同期処理問題をなんとかする

【GAS】HTMLサービスを使ってクリックできるURLを表示したり、非同期処理問題をなんとかする


やりたいこと①:スプレッドシートの「入力用」シートに入力した情報を、「出力用」シートに転記・整形して、出力用シートをPDFとして書き出すという処理をボタン一つでやりたい。
②:①で書き出してドライブに保存したPDFのURLを画面上に表示し、クリックで表示できるようにしたい

問題点①

転記・整形する処理とPDF書き出し処理を別のfunctionとして記述すると(おそらく)処理スレッドが分かれて

もっとみる
【GAS】セルから取得したDate型の日付をStringにフォーマットする

【GAS】セルから取得したDate型の日付をStringにフォーマットする

セルに入力した日付を取得すると、Date型になってしまっているので、必要に応じてフォーマットします。

結論function Date型をStringにフォーマット(値){ // Date型かどうかを確認 if(Object.prototype.toString.call(値) != "[object Date]"){ throw Error("引数はDate型で渡してく

もっとみる
【Python3+Firestore】PythonアプリからFirestoreにアクセスする2024

【Python3+Firestore】PythonアプリからFirestoreにアクセスする2024

以前の記事

を参考に新しいアプリを作ろうとしたら動かなかったので情報を更新していきますよっと。

今回は、既にFirestoreデータベースは作ってある前提でさくっとデータを取得しに行きます。とりあえずテスト用にデータベースを作ってみたい場合はGUIからやればすぐできる。

公式ドキュメントより始めよはい

言われた通りにやってみる管理用パッケージをインストール

$ pip install -

もっとみる

【Java】StringからIntにしたりDateからStringにしたりStringをDateにしたり

テスト用に、データベースに入れる情報を用意→データベースに登録→登録した情報を取り出して比較、というロジックを作ったら、入れる用のデータはJSONで受け取る前提だから全部Stringで渡さなきゃいけなくて、出してくるデータはテーブルカラム通りの型で出てくるもんだから困ったね、ということで全部変換していくよ!
とりあえずざっくりキャストできればOK!細かいフォーマットの違いとか例外が発生する文字が入

もっとみる
【Java+MyBatis】データ登録系API作成時に、登録に成功したレコードの、自動採番で付与されるIDを返却する

【Java+MyBatis】データ登録系API作成時に、登録に成功したレコードの、自動採番で付与されるIDを返却する

「このデータを登録しておくれ」「はいよ、登録したよ、レコード番号〇〇番として登録できたよ」というAPIを作る際、肝心の「レコード番号〇〇番として登録できたよ」をどうやって取得しようか。というお話。

レコード番号は通常自動採番に設定するじゃないですか。いちいち最新のレコード番号取得して+1してとかしないじゃないですか。あんまり。
でも、SQLでInsertする処理は登録処理をするだけで、「今まさに

もっとみる
【GAS】APIを叩いてPOSTでJSONを送信したり、その通信をPostmanでエミュレートしてみたり

【GAS】APIを叩いてPOSTでJSONを送信したり、その通信をPostmanでエミュレートしてみたり

GASからAPIのエンドポイントへアクセスして、POSTで情報送信出来るようにしたいの巻きです。

結論// データベース登録用会員データ.gs// sampleclass 会員データ{ constructor(名前, 電話番号, メールアドレス){ this.name = 名前; this.tel = 電話番号; this.mail = メールアドレス; } JSONとし

もっとみる
【GAS】VLOOKUPみたいなことをfindを使って華麗にやる

【GAS】VLOOKUPみたいなことをfindを使って華麗にやる

VLOOKUPがそのままGAS上でも使えれば何も問題ないんですが

結論function lookup(target_code){ // A列に商品名、B列に商品コードが入っているものとする const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const vals = sheet.getDataRange

もっとみる

【GAS】map関数を使って、一列分のデータだけを華麗に取得する

やりたいことスプレッドシート上にあれこれ展開した情報のうち、1列だけ、例えば計算結果のC列だけ、ごっそり配列として取得したいんじゃよ、っていうときに、forだのなんだのごにょごにょ書くのめーんどーくさーい。

結論const CODE_COL = 0 // 取得したい列番号let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveShee

もっとみる