多趣味まるの日常

跡取り息子を辞めたスーパー多趣味人間の日常や便利アイテムの紹介

APIの呼び出し方メモ

備忘録として記録

 

以外bingからの回答

 

はい、サテライトオフィスの申請APIでサンプルを例示することは可能です。サンプルとして、サテライトオフィスAPIの[4]で紹介されている「申請登録API」を例に挙げます。

このAPIでは、HTTPメソッドはPOSTで、パラメータはボディとして渡します。パラメータには、以下の5つが必要です。

- api_key: APIキー(英数字)
- email: メールアドレス(文字列)
- applicant_info: 申請者情報(JSON
- application_info: 申請内容(JSON
- attachment_info: 添付ファイル情報(JSON

例えば、APIキーが`123abc`で、メールアドレスが`test@example.com`で、申請者情報が以下のようなJSONだとすると、

```json
{
  "applicant_id": "test01",
  "applicant_name": "テスト太郎",
  "applicant_email": "test@example.com",
  "applicant_phone": "03-1234-5678",
  "applicant_address": "東京都港区1-2-3"
}
```

申請内容が以下のようなJSONだとすると、

```json
{
  "application_type": "出張申請",
  "application_date": "2023-04-15",
  "application_reason": "営業交渉のため",
  "application_destination": "大阪府大阪市4-5-6",
  "application_period": {
    "start_date": "2023-04-20",
    "end_date": "2023-04-22"
  },
  "application_cost": {
    "transportation": 20000,
    "accommodation": 10000,
    "other": 5000
  }
}
```

添付ファイル情報が以下のようなJSONだとすると、

```json
{
  "attachment_count": 2,
  "attachment_list": [
    {
      "attachment_name": "交通費領収書.pdf",
      "attachment_data": "(base64 encoded data)"
    },
    {
      "attachment_name": "宿泊費領収書.pdf",
      "attachment_data": "(base64 encoded data)"
    }
  ]
}
```

リクエストのURLは以下のようになります。

https://api.sateraito.jp/sateraitooffice/mlapi/register_application

ボディには、上記のパラメータをキーと値のペアとして渡します。例えば、Pythonでリクエストを送る場合、以下のようなコードになります。

```python
import requests

url = 'https://api.sateraito.jp/sateraitooffice/mlapi/register_application'
data = {
  'api_key': '123abc',
  'email': 'test@example.com',
  'applicant_info': {
    'applicant_id': 'test01',
    'applicant_name': 'テスト太郎',
    'applicant_email': 'test@example.com',
    'applicant_phone': '03-1234-5678',
    'applicant_address': '東京都港区1-2-3'
  },
  'application_info': {
    'application_type': '出張申請',
    'application_date': '2023-04-15',
    'application_reason': '営業交渉のため',
    'application_destination': '大阪府大阪市4-5-6',
    'application_period': {
      'start_date': '2023-04-20',
      'end_date': '2023-04-22'
    },
    'application_cost': {
      'transportation': 20000,
      'accommodation': 10000,
      'other': 5000
    }
  },
  'attachment_info': {
    'attachment_count': 2,
    'attachment_list': [
      {
        'attachment_name': '交通費領収書.pdf',
        'attachment_data': '(base64 encoded data)'
      },
      {
        'attachment_name': '宿泊費領収書.pdf',
        'attachment_data': '(base64 encoded data)'
      }
    ]
  }
}
response = requests.post(url, json=data)
print(response.json())
```

このコードを実行すると、JSON形式のレスポンスが返されます。レスポンスには、以下の項目が含まれます。

- status: ステータスコード(数値)
- message: メッセージ(文字列)
- data: 申請ID(英数字)

以上がサンプルです。他のAPIについては、各APIの仕様書を参照してください。

 

 

---------

上記のサンプルの内容でサテライトオフィスにリクエストする際のURLは、以下のようになります。

- ひな形一覧を取得する場合
  - URL: `https://workflow.sateraito.jp/api/v1/templates?access_token=xxxxxxxx`
- ひな形の詳細を取得する場合
  - URL: `https://workflow.sateraito.jp/api/v1/templates/1234?access_token=xxxxxxxx`
- 申請書を作成する場合
  - URL: `https://workflow.sateraito.jp/api/v1/applications?access_token=xxxxxxxx&template_id=1234&data={"title": "出張申請", "destination": "東京", "date": "2023/08/10", "reason": "営業ミーティング"}`
- 申請書の詳細を取得する場合
  - URL: `https://workflow.sateraito.jp/api/v1/applications/5678?access_token=xxxxxxxx`
- 申請書に対してアクションを実行する場合
  - URL: `https://workflow.sateraito.jp/api/v1/applications/5678/actions?access_token=xxxxxxxx&action=approve&comment=承認します`

以上がURLの例です。`xxxxxxxx`はアクセストークンを表しています。アクセストークンの取得方法は、[ワークフロー公開API]のページに記載されています。ご確認ください。

現場の上りが決定しました

こんにちは。まるです。

 

 

2月から新しい現場に参画していたのですが、7月末で上がりが決定しました。

 

 

参画していたプロジェクトが一回白紙に戻りそうということで契約打ち切りとなりました。

 

 

建前上そういう形で退場を通告されましたが、単純に単価に対してのスキル見合いが取れてなかったということなんだろうと反省しております。

 

 

8月からまた新しい現場になるわけですが、面談等これから頑張らないといけないですし、決まったらもちろん現場の作業をまた1から頑張らないといけないです。

 

 

年齢も年齢になってきたのでここらで頑張って踏ん張らないと先はないかなと感じてます。

 

 

最近はChatGPTをはじめとするAIの台頭が目覚ましく、どちらかというとそちら側にシフトしたいという思いはあります。

 

 

いつもそうですがこういう新しい波が来た時に乗れるかどうかがその先の人生を必ず決めますので虎視眈々と未来のために乗っかれる準備をしていこうと思ってます。

 

 

今日はほんとにただの日記でした。

 

 

それではまた。

【ビリヤード 厚み】こんな特殊な厚みの見方知ってます?

こんばんは。まるです。

 

 

2023/9/20

思いのほかこの記事が読まれているようなので結論を先に追記いたします。

 

 

以下のような厚みがあったとして、

 

 

厚みは以下のようになります。

 

 

詳しい内容は後述しておりますので上記のキャプチャに興味が出ましたらそちらを確認ください。

 

 

ーーー

たまたま会社の人たちとビリヤードをやる機会がありまして、15年ぶりに楽しんできました

 

久しぶりのビリヤードで非常に楽しかったですし、それがきっかけで最近また少し練習に行くようになりました。

 

 

 

ブログの紹介ページでも書きましたが私は15年ほど前にビリヤード場で働いておりまして、その頃は毎日朝から晩まで練習したものでした。

 

 

 

皆さんはビリヤードやったことありますか?

 

 

 

ビリヤードってポケットといわれる穴に1から15の数字が書いてあるボール「先玉(さきだま)」を、白い「手玉(てだま)」を当てて入れるスポーツですが、どうやったら狙ったところにボールが転がるかご存じでしょうか。

 

 

 

※ちなみにタイトルを見てきた人はこのあたりの話はご存じだと思うので飛ばしていただければと思います。

 

 

 

先玉を穴に向かわせるためには、穴から先玉のど真ん中に向かって直線を引いたとき、穴から反対側の点に手玉が当たると向かいます。

 

 

 

以下のような感じです。

※雑な図ですみません。後ほど動画にしようかと思ってますので動画にしましたらリンク貼るようにします。

 



 

上の図のような形で手玉が的球に当たったとき、先玉は穴に向かって真っすぐ向かいます。

 

 

 

理屈は非常に簡単で、これだけです。

 

 

 

でもビリヤードを実際に遊んだことがある方ならお分かりだと思いますが、

実際に球に向かうとどこを狙ったらいいかわからなくなりますよね。

 

 

 

何でかというと、上の図の手玉のイメージというのを頭の中で行わなければいけない為です。

 

 

 

実際には以下のような形で離れたところからイメージしなければいけないですし、

球を立体に見なければいけません。

 

 

 

しかもそこに向かって真っすぐ撞かなければいけないのでさらに大変です。

 

 

 

今回は真っすぐはちゃんと撞けますという方向けの記事となっております。

 

 

 

真っすぐ撞くためにはどうしたらいいかというのは機会があったら記事にしようと思います。

YouTube等でプロの方が動画出してますのでそちらを見たほうが良いです。

 

 



 

ではここからが本題です。

 

 

 

先玉に対して手玉をどう狙うかには大きく分けて3つ程あると思っています。

※パラレルエイミングとかは今回割愛します。

 

 

1:イメージボールに向かって真っすぐ撞く

 

2:手玉の中心が向かう点をイメージする ※1

 

3:景色で覚える

 

※1:ビリヤードのボールは57.2センチなので、だいたい3センチ位先玉から離れた位置を狙うという方法です。

ちなみに今更ですが、先玉と手玉がどれくらい重なっているかを「厚み」といいます。

 

 

今回私が紹介する狙い方は上のいずれかでもありません。

 

 

 

私は上記三つともすべて出来ません。右脳が終わっているんだと思います。

 

 

 

そんな私でもほぼ正確に厚みを知る方法があります。

 

 

 

まずは以下の図を見てください。



 

初めの雑な図に縦線を3本とA,Bを加えてみました。

 

 

 

これだけ見て「あっ!」と思われた方は鋭いです。

 

 

 

どういうことかというと、先玉のどこを撞いたら穴に向かうかの点(狙点と呼ぶことにします)と、

向かわせる穴から反対側の先玉の端(A)までの長さ。

それと手玉の反対側の端(B)までの長さは等しいのです。

 

※図のオレンジと青の幅

 

 

つまり、まず狙点を確認したら、手玉の位置から先玉の端Aまでの長さを見て、

狙点から反対側に同じ長さ伸ばした位置に、手玉の端Bが向かえば入るということです。

 

 

一旦まとめると以下です。

 

 

 

先ほど3つ挙げた狙い方のうち2番目の狙い方に似てますが、2番目の狙い方には決定的な欠点があります。

 

 

それは、真左に先玉を向かわせる時ならば、先玉の端から3センチは何となくイメージできるでしょう。

 

 

しかし上の図のように少しでも厚みがある場合、イメージする3センチは3センチじゃなくなるのです。

 

 

斜めに見るのでその分手玉の位置から狙うポイントを加味してあげないといけないので実は非常に難しいのです。

 

 

更に球は球体ですので球の端から3センチを狙ったとしても奥行が邪魔をします。

 

 

しかし私が今回紹介した厚みの見方では、ある意味3Dではなく2Dで厚みを見ることが可能ですし、手玉の端を先玉の厚みに向かわせればよいので簡単です。

(少なくとも私にとっては上記3つの方法よりはるかに簡単で、且つ厚みに自信が持てます。イメージボールというあいまいなものではなく、撞点さえわかれば厚みがほぼ正確に把握できるからです。もちろん長さはイメージすることになりますが、、)

 

 

 

どうでしょうか。こんな狙い方もあるんだよという紹介でした。

 

 

 

私はこの方法で初めから厚みを見ているのでC級の期間が記憶にないほど短いです。

 

 

 

真っすぐさえ撞ければ厚みは見えているわけですからね。

 

 

 

ただしこの狙い方にも弱点が二つあります。

 

 

 

一つは手玉の「端」で狙うため、右側の穴をねらう時と左側の穴を狙う時でその「端」が右左入れ替わります。

 

 

 

これが何を意味するかというと、実際にこの方法で狙っていただければわかると思いますが、利き目によってどちらかの厚みが非常に狙いにくいのです。

 

 

 

私の場合は利き目が右目なので、右側の穴を狙って手玉の右端を合わせに行くパターンの時が非常に大変です。

 

 

 

二つ目はそもそも狙点がわかりづらい。

 

 

 

どういうことかとビリヤードのボールは1番から8番までは基本単色の球体で、更にツルツルしています。

 

 

 

更にビリヤード場は往々にしてやや暗めとなっており、狙点を確認しに行って手玉のところまで戻ってくる間にどのあたりだかわからなくなることが多いです。

 

 

 

私がビリヤードを真剣にやっていたころの一番の課題は上記の二つでした。

 

 

 

そして私が真剣にやっていたころ「は」この解決策を見出すことができませんでした。

 

 

 

そう今の私はこの弱点も克服することが出来たので今ではかなり正確に狙うことが出来るようになってきました。

 

 

 

その方法はまたの機会に気が向いたら紹介します。

 

 

 

今回の方法は確かTプロが昔紹介していたような気もしなくもないのですが、

私がこの狙い方を見つけたときは知りませんでした。

 

 

 

そしてこの方法でビリヤードしている人を私はいまだ見かけたことはありません。

 

 

 

もしこの記事を読んでいて厚みの見方に困っている人がいたら是非試してみてください。

 

 

 

イメージボールが作れる人ならばこの方法と組み合わせれば強力になると思います。

 

 

 

それではまた!

 

【C# DateTime.ParseExact】9時15分30秒→2023/04/15 9:15:30【型変換】

こんにちは。まるです。

 

 

今回も備忘録を書きます。

 

 

内容短めです。

 

 

今回のテーマは

 

 

「9時15分30秒」のような文字列をDateTime型に変換する方法

 

 

です。

 

 

まず結論から。

 

 

例:

// 文字列の用意

string timeString = "9時15分30秒";

// 変換
DateTime time = DateTime.ParseExact(timeString, "H時m分s秒", null);

 

 

上記を出力すると

 

 

2023/04/15 9:15:30

 

 

のように出力されます。

 

 

DateTime.ParseExactは以下のような公式となっております。

 

    「DateTime.ParseExact(文字列, フォーマット, 書式情報)」

 

 

 

第一引数には変換したい文字列を。

 

 

第二引数には第一引数とした文字列がどのようなフォーマットであるかを。

 

 

第三引数には第一引数とした文字列が特定のカルチャーに依存する場合それを指定。

 

 

上記となります。

 

 

 

第三引数の書式情報は「IFormatProvider」というの正式な名称ですが、

 

 

いまいちよくわからなかったのでChatGPT先生に聞いてみました。

 

 

得られた回答は以下でした。

 

 

 

DateTime.ParseExactメソッドの第三引数であるIFormatProviderは、

解析する文字列が特定のカルチャに依存する場合に使用されるオプションのパラメーターです。

これは、解析する文字列の日付や時間の表現方法が、異なるカルチャで異なる場合に役立ちます。

たとえば、日付のフォーマットには、年月日の順序が異なる場合があります。

また、日付の区切り文字も、異なるカルチャで異なる場合があります。

このような場合、IFormatProviderを指定して、解析する文字列の表現方法を明示的に指定することができます。

以下は、IFormatProviderを使用して、日本のカルチャに依存する日付文字列を解析する例です。


string dateString = "2023年4月15日";
DateTime date = DateTime.ParseExact(dateString, "yyyy'年'M'月'd'日'", new CultureInfo("ja-JP"));

 

この例では、ParseExactメソッドの第三引数にCultureInfoオブジェクトを指定して、

日本のカルチャを表すja-JPを指定しています。

また、日付のフォーマット文字列には、年月日の順序が日本語に合わせて「年月日」になっています。

なお、IFormatProviderには、CultureInfoオブジェクトのほかにも、DateTimeFormatInfoオブジェクトなどを指定することができます。

 

 

 

ということでした。

 

 

第二引数でフォーマットを指定していれば、最初に例示した「null」でも問題なく変換されるので少なくともタイトルような文字列の場合には変換できるようです。

 

 

以上備忘録でした。

 

 

それではまた。

 

 

【ChatGPT】サクラエディタでAND検索(GREP)する方法聞いてみた

こんばんは。まるです。

 

 

 

出向先が変わってから1か月たちましたが相変わらずひーひーいいながら毎日過ごしてます。

 

 

 

これを頑張り切れればスキルアップ間違いないと信じて頑張ってます。

 

 

 

さてそんな私に強力な助っ人が現れました。

 

 

 

そう、みんなもうご存じChatGPT大先生です。




大先生はコードに関することでもなんでも答えてくれます。

 

 

 

本当に素晴らしい先生なので是非皆さんも使ってみてください。無料です。

 

 

 

ではタイトルの件を先生とやり取りした結果を載せてみます。

 

 

 

ただしあっているかはまだ調べてません。万が一違うようでしたら後日訂正します。

 

 

 

ChatGPTってすごいんだなーくらいで見ていただければと思います。

 

 

 

以下やりとり。

 

 

 

 

 

 

いかがでしょうか。こんなやり取りがものの数秒から数分でできてしまうなんてすごくないですか?

 

 

 

もちろん裏取りは必要ですが私の体感かなりの精度です。

 

 

 

C#はもちろんSQLなどの構文を教えてもらったりと大助かりです。

 

 

 

是非皆さんも試してみてくださいね

 

 

 

それではまた!



【追記】
その後いろいろ検索してみたのですがうまくヒットしなかったため追加であれこれ聞いてみました。



 




こんな感じで何回もやりとりすることで様々な回答が得られて勉強になります。




タダで聞いてるわけなのでこれくらいの労力は惜しんではいけないですね。




ほんとに助かってます。




以上です!それではまた

【C#】備忘録 throwの挙動

こんばんは。まるです。

 

 

 

今回は完全に自分のための備忘録となりますので興味のある方だけ軽く見ていただければと思います。

 

 

 

会社でコーディングをすることになってしまったため今更ながらいろいろ調べたことは備忘録として書いていこうと思いますのでよろしくお願いいたします。

 

 

 

では実際テストした結果を以下に。

 

 

 

テストしたコードは以下

 

 

コンソールアプリで簡易的に例外を起こしてどのように遷移するかのテスト



 

実行結果が以下



 

まとめると以下のように遷移していることがわかる。

 

①:例外が発生し、すぐにcatchに飛ぶ。

②:①で発生した例外の内容を受け取り、「例外テストのBの前」+「例外テストA(try中)」の形で出力する。

③:再度例外を意図的に起こしてその処理内容が表示され、そのままアプリが終了する。(ローカルの外の「例外処理C(try catch後)」に飛んでないことがわかる)

 

 

 

 

以上簡単ですが備忘録でした。

 

 

 

それではまた

【メモリ交換】ゲーミングノートPCのメモリ16GB*2にしてみた。

こんにちは。まるです。

 

 

 

今回は私が普段使っているゲーミングノートPCのメモリを交換したので紹介したいと思います。

 

 

 

私が使用しているゲーミングノートPCは以前ブログでも書いた気がしますが「Dell G15 5515」というPCです。

 

 

 

元々16GB(8*2)あるのでそこまで遅いというわけではなかったのですが、トリプルディスプレイでWEBブラウザなどを立ち上げ、タブもたくさんという状態で作業すると重くなることがありました。

 

 

 

最近メモリの値段も安くなっており、いい機会なので変えることにしました。

 

 

 

今回購入したメモリがこちらです。

購入した時点で1000円引きのクーポンがありまして、1万円ちょっとで購入することができました。

 

 

 

スペックと値段を比較するとおそらく最安値に近い商品ではないかなと思ったのと、ン「日本国内無期限正規保障」の文字につられてこれにしました。

 

 

 

 

実際に届いたものがこちらです。包装もしっかりしています。購入に翌日届きました。

一応商品リンクも貼っておきますね。もしかするとこれをあなたが見ているときには最安値ではないかもしれませんが、使ってみて特に問題はありませんでしたのでおすすめできます。

 

 

 

 

↓商品リンク

https://amzn.to/3lKGpHP

 

 

早速パソコンを裏返してねじを外していきます。

 

 

 

パソコンの裏に止まっていたねじを10本ほど取り外し、パネルを開いた写真がこちらです。

 

 

 

本当はSSDも交換しようと思ったのですが、上のキャプチャの左のほうに銅色のプレートの部分がSSDで、この形状のSSDがまぁ高いこと。

 

 

 

1tbで3万5千円以上するので手が出ませんでした。

 

 

 

大きさがわかりにくいと思うので指を添えてみました。こんなに小さいんですよ。

 

 

 

 

一応備忘録を兼ねて開けた内部の沢山写真撮ったので掲載しておきます。参考になれば幸いです。

 

 

 

左上

 

右上

 

右下

 

左下

 

SSDを横から撮影

 

 

交換は5分もかからず終わり、起動してみました。

 

 

元々16GBだったので起動するくらいではスピードの差はわからないのですが、

WEBブラウザでタブをたくさん起動したりすると顕著ですね。サクサクです!

 

 

 

CPU-Zというツールでスペックを確認した図がこちらです。

 

 

ちゃんと認識されてますね。

 

 

 

より詳細なデータはこちらです。

 

 

 

とまあこんな感じでした。

 

 

 

ノートパソコン開けたことないし開ける勇気がないから写真見たい!という方の参考になれば幸いです。

 

 

 

それではまた!