- 1. TensorFlow.jsを使用して骨格推定。骨格のライン推定 with TensorFlow.js
- 2. Google-gravity本当に検索できるようにした話
- 3. Lambdaからタイムアウト時間を取得する
- 4. TensorFlow.jsを使用してフェイストラッキング。Face Tracking with TensorFlow.js
- 5. まるで使徒。トーラスをランダムノイズで変形させるアニメーション。
- 6. 4次元サイン関数のテクスチャを張り付けた 球体ジオメトリ。
- 7. 加速器 陽子の衝突ゲーム。ボールの衝突後にパーティクルを生成。
- 8. メニュー開閉メモ
- 9. Prismaでviewを操作できるようにする
- 10. JavaScript: 配列上書きの速度比較
- 11. JavaScriptで日付の繰り返し処理を行う方法(年・月・日)
- 12. 【JavaScript】オブジェクトの存在チェックの方法アイデア
- 13. 覚えると便利なJavaScriptのイベントリスナーメソッドまとめ【番外編】
- 14. これまでのコードを最大限に活用!ViteでJavaScriptをライブラリー化してみよう
- 15. JavaScriptの関数について【入門編③】
- 16. Next.js で Supabase Auth がどんな仕組みで動いてるか調べました
- 17. 【JavaScript】ABC370まとめ(A~D)
- 18. JavaScriptの基本文法【入門編②】
- 19. パソコンのチュートリアルサイトを作って公開する方法(是非皆さんも作ってみて下さい)
- 20. Next.jsとjson-serverとsupabase
TensorFlow.jsを使用して骨格推定。骨格のライン推定 with TensorFlow.js
![スクリーンショット 2024-09-10 145927.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/8c994ef0-1e3d-3907-4f45-254b31f2ddf9.png)
![ダウンロード (20).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/622cbbc7-d8b6-ff01-bba0-507a6e7934e2.png)
![ダウンロード (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/56bd7b0d-170b-533d-7603-ff14c9592903.png)
### TensorFlow.jsを使用して骨格推定。骨格のライン推定 with TensorFlow.js
“`html
Google-gravity本当に検索できるようにした話
どうもお久しぶりですAtsu1209です。
今回はGooglegrabityというサイトで実際にGoogle検索ができるようにしたいと思います。# Google grabityとは
Google grabityとは検索欄やロゴが重力を帯びて落っこちてくるお遊びサイトです。サイトURL
https://mrdoob.com/projects/chromeexperiments/google-gravity/
# 今回やりたいこと
もちろんこのサイトはお遊びサイトなので実際には検索できません。
なので、実際に検索できるようにして 重力要素 + 検索ができるとても面白いサイトにしていきます。:::note warn
##### 注意
たとえお遊びでもコードを書き換えたものを実際に公開してしまうと、
著作権に引っかかってしまう可能性があるので気をつけましょう。
私はローカルで楽しむ前提で作りました。
:::# 方法
方法は至って簡単です。
Google検索はURLに仕掛けがあって、
`https://www.google.com/search?q=`の`q=`の後ろに検索し
Lambdaからタイムアウト時間を取得する
### Lambdaからタイムアウト時間を取得する
以前実装した内容でLambdaからとあるAPIを呼び出すというものがありました。
そのAPIは返答に時間がかかる場合があり、Lambdaのタイムアウト時間を超過してしまうこともあり、対策を打ちました。
対策としてはLambdaのタイムアウト時間に到達する前にカスタムのエラーを出力するようにしました。ここでLambdaのfunction内でタイムアウト時間を取得する必要があったので共有します。### 実際のコード
* 呼び出される側
`LambdaClient`と`GetFunctionCommand `を使用してLambdaの情報の詳細を取得していきます。
※`rccApiError`はカスタムのエラーなので気にしないでください
`getLambdaDetails`関数でLambda関数の詳細を取得しますが、取得する際にLambdaの関数名を与えます。
後は`send`コマンドを使った結果をreturnします。
“`javascript
const { LambdaClient, GetFunctionCommand } = r
TensorFlow.jsを使用してフェイストラッキング。Face Tracking with TensorFlow.js
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/6a84e237-1339-78e5-a77f-e24d3e0ca9b8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/1a6cc781-b0aa-2b39-80bb-f64891bb6d64.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/a8151495-bf47-1436-65b8-3aae487a75fc.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/81e889df-0b1e-62de-31a4-86e2086cbf4e.png)
まるで使徒。トーラスをランダムノイズで変形させるアニメーション。
![スクリーンショット 2024-09-10 050433.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/8c2af5a2-1771-bc04-ce7d-ad9039faf1b3.png)
![スクリーンショット 2024-09-10 050259.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/48df2524-a84d-cbb7-5d8d-36def2487c48.png)
![スクリーンショット 2024-09-10 050314.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/7c1fd6f4-ef43-3a46-d394-7d4169d57ec1.png)
![スクリーンショット 2024-09-10 050406.png](https://qiita-image-stor
4次元サイン関数のテクスチャを張り付けた 球体ジオメトリ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/eec5a799-3deb-12dd-fc77-cf6566bb5aec.png)
![スクリーンショット 2024-09-10 045500.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/30e18357-a07f-e0d0-71b6-e241ef901f0b.png)
![スクリーンショット 2024-09-10 045514.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/d9aaa9c5-4377-730c-ccf3-ad535f7266c2.png)
![スクリーンショット 2024-09-10 045529.png](https://qiita-image-store.s3.ap-northeast-1.
加速器 陽子の衝突ゲーム。ボールの衝突後にパーティクルを生成。
![スクリーンショット 2024-09-10 044507.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/3fa61784-e305-ef08-6493-aa90498b5875.png)
![スクリーンショット 2024-09-10 044450.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/79c49448-63e7-44a7-76c3-99066321795f.png)
スペースキー押下でランダム再描画です。
“`html
3D Ball Collision Simulation<
メニュー開閉メモ
## はじめに
メニュー開閉について対応することがあり、chatgpt先生に確認し見直しました。
こういう確認がすぐに動くコードで確認できるのはありがたいことです。
速習メモになりますが記載させて頂きます。## メニュー開閉
### やりたいこと
以下のような表示で対応し、初期は大項目2と大項目5で項目まで表示されている
大項目クリック後、その項目の表が表示、非表示になる
大項目1
-項目1-1
-項目1-2
大項目2
-項目2-1
-項目2-2
大項目3
-項目3-1
-項目3-2
大項目4
-項目4-1
-項目4-2
大項目5
-項目5-1
-項目5-2以下のように「大項目1」「大項目2」などの大項目をクリックすると、それぞれの項目(項目1-1、項目1-2など)が表示・非表示になるようなコードを作成しました。初期状態では、「大項目2」と「大項目5」の項目が表示される設定にしています。
### HTML
“`html
Prismaでviewを操作できるようにする
# はじめに
Prismaでviewを操作しようと思ったのですが、意外に記事が少なかったので実装方法を共有します。ちなみに公式ドキュメントを確認するとしっかりと記述がありますが、より分かりやすく説明することを心がけます。
[公式ドキュメント](https://www.prisma.io/docs/orm/prisma-schema/data-model/views)
# 初期設定
`schema.prisma`ファイルに`previewFeatures = [“views”]`を設定する“`diff_c:schema.prisma:
generator client {
provider = “prisma-client-js”
+ previewFeatures = [“views”]
}
“`# コマンドなどでviewを作成しましょう
:::note info
prismaから直接viewを追加することは2024年9月時点ではできないようです。
:::
viewを追加しましょう ※以下イメージです。
[mysqlでのview作成方法](http
JavaScript: 配列上書きの速度比較
配列の広範囲にわたって値を上書きする速度を比較する企画
# set + subarray vs copyWithin
C言語で例えると`memcpy`のような処理。`set`と`subarray`は古参、`copyWithin`は新参者。配列の前半部に後半部を複写する処理で比較してみる
“`js
for(let loop=1<<20,size=2,n=10;n--;loop/=2,size*=4){ let A=new Uint8Array(size),t=new Date; for(let a=loop;a--;)A.set(A.subarray(size>>1,size),0);
t=new Date-t;
let u=new Date;
for(let a=loop;a–;)A.copyWithin(0,size>>1,size);
console.log(loop,size,t,new Date-u)
}
“`
## Chrome
loop size set+subarray copyWithin < JavaScriptで日付の繰り返し処理を行う方法(年・月・日)
:::note warn
ある日付からある日付までを繰り返し処理する方法を記しています。
:::## 年を繰り返し処理する
“`bash:想定される出力結果
2022/01/01
2023/01/01
2024/01/01
“`### 素のJavaScriptのみの場合
“`javascript:main.js
const startDate = new Date(‘2022’);
const endDate = new Date(‘2024’);for (let d = startDate; d <= endDate; d.setFullYear(d.getFullYear() + 1)) { const year = d.getFullYear().toString(); const month = (d.getMonth() + 1).toString().padStart(2, '0'); const day = d.getDate().toString().padStart(2, '0'); console.log(`${year}/$
【JavaScript】オブジェクトの存在チェックの方法アイデア
# 背景
JavaScriptを書いていて、オブェクトが存在しないうちに要素を参照してエラーになってしまう。そういった事態を避けるためには、存在チェックをする必要があります。今回は、バグ修正を行う中で存在チェックの方法について調べたので、それらの方法と使うべき場面について私見を述べます。:::note
選択肢の根拠となったJavaScriptの仕様等について最初に書きます。結論から早く見たい!という方は[判定方法アイデア](#判定方法アイデア)からどうぞ
::::::note warn
すべてのパターンを網羅したわけではないので、あくまでもアイデアとして活用していただけると幸いです
:::# 目次
– [前提](#前提)
– [falsy(偽値)](#falsy偽値)
– [論理積](#論理積)
– [等価演算子と厳密等価演算子](#等価演算子と厳密等価演算子)
– [判定方法アイデア](#判定方法アイデア)
– 1.[`undefined`との比較](#1-undefinedとの比較)
– 2.[`undefined`がfalsyで覚えると便利なJavaScriptのイベントリスナーメソッドまとめ【番外編】
# はじめに
今回は、JavaScriptでよく使われるイベントリスナーメソッドについてまとめていきます。どのようなパターンで、どのような場面で活用すればいいか?を書き出しいます。# JavaScriptのメソッドとは
JavaScriptのメソッドとは、**オブジェクトに関連づけられた関数のことです**。オブジェクトのプロパティとして定義され、オブジェクトのデータを操作するために使われます。オブジェクトや配列、文字列などに組み込まれたメソッドも多く、JavaScriptのコードで頻繁に使用されます。# イベントリスナーメソッドとは
JavaScriptのイベントリスナーのメソッドは、**ユーザーの操作やブラウザの動作に応じて特定の関数(イベントハンドラ)を実行するために使用されます。**## イベントリスナーの追加
“`js
/* イベントリスナーメソッドの基本構文 */
element.addEventListener(‘イベント名’, 関数, オプション);/* 例題 */
const button = document.getElementById(‘myBuこれまでのコードを最大限に活用!ViteでJavaScriptをライブラリー化してみよう
ウェブ開発で、過去に作ったUI部品やアルゴリズムを再利用できると便利ですよね!今回は、Viteを使って「Hello World」を表示するシンプルなライブラリーを作成し、どのようにして他のプロジェクトに組み込むかを解説します。
# はじめに
再利用可能なライブラリーを作っておくと、コードをメンテナンスしたり、他プロジェクトでの応用するときに非常に役立ちます。この記事では、Viteを使用して、背景色を虹色に輝かせる「Hello World」を表示するJavaScriptライブラリーの作り方をステップ・バイ・ステップで紹介します。
この記事に記載したソースコードはこちらで公開しています。
https://github.com/takatama/hello-lib
# 1. プロジェクトのセットアップ
まず、Viteを使ってプロジェクトをセットアップします。以下の手順に従って進めてください。
## Viteのインストール
“`console
npm init vite@latest hello-lib
“`途中で選択肢が出てきます。今回は素の(Valnilla)Jav
JavaScriptの関数について【入門編③】
# はじめに
今回は、JavaScriptの関数についてまとめていきます。関数は再利用可能なコードのブロックを定義するために使用されます。関数を使うことで、コードを整理し、再利用性やメンテナンス性を向上させることができます。# 関数の定義について
関数はfunctionキーワードを使って定義します。
“`js
function 関数名(引数1, 引数2, …) {
// 実行するコード
return 戻り値;
}/* 例題 */
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet(“Taro”)); // “Hello, Taro!”
“`
## 関数の呼び出し
関数を定義した後は、その関数を名前を使って呼び出します。
“`js
関数名(引数1, 引数2, …);let result = greet(“Bob”);
console.log(result); // “Hello, Bob!”
“`
## 引数と戻り値
– 引数(Parameters): 関Next.js で Supabase Auth がどんな仕組みで動いてるか調べました
[Vercel]:https://vercel.com/
[Supabase]:https://supabase.com/
[Supabase Auth]:https://supabase.com/docs/guides/auth
[Next.js]:https://nextjs.org/
[Supabase Auth > Getting Started > Next.js]:https://supabase.com/docs/guides/auth/quickstarts/nextjs
[supabase-js]:https://github.com/supabase/supabase-js
[Route Handler]:https://nextjs.org/docs/app/building-your-application/routing/route-handlers
[@supabase/ssr]:https://supabase.com/docs/guides/auth/server-side/nextjs最近はいろんな開発者向けサービスが出てきてすごく便利ですよね。
【JavaScript】ABC370まとめ(A~D)
AtCoder Beginner Contest 370
https://atcoder.jp/contests/abc370
A~Cの3完(32分、2ペナ)でした。
605perfでレートは714->703(-11)です。
今回は標準の順序付き集合(C++の`std::set`)が用意されていないJavaScripterにとって辛い回になったのではないでしょうか。
この記事ではA~Cの詳細とDの概要について簡単にまとめます。# A – Raise Both Hands
https://atcoder.jp/contests/abc370/tasks/abc370_a以下の通りに出力すればよいです。
| L | R | 出力 |
|:-:|:-:|:-:|
| 0 | 0 | Invalid |
| 0 | 1 | No |
| 1 | 0 | Yes |
| 1 | 1 | Invalid |“`js
function Main(input) {
input = input.split(“\n”).map((line) => line.JavaScriptの基本文法【入門編②】
# はじめに
今回は、JavaScriptの基本文法についてまとめていきます。WebクリエイターボックスのManaさんの書籍、「1冊ですべて身につくJavaScript入門講座」を参考に、勉強していきます。# JavaScriptのコード解説
下記では、JavaScriptの基本中の基本である文法についてまとめています。今後はこれらを基に、コードを組んでアニメーションを起こそうと思います。
## 変数
“`js
/* 変数 */
let y = 20; // 昔の標準だったvarに代わり、現在よく使われる方法。
const z = 30; // 再代入ができない定数を宣言する。変更が不要な値には、これを使用する。
“`
“`js
console.log(); // JavaScriptでデバッグや情報の出力を行うためのメソッドです。
“`
– console.log();では以下の4つを目的に使用されます。
1. コードの実行時に変数の値や処理の流れを確認するために使用します。
2. ユーザーパソコンのチュートリアルサイトを作って公開する方法(是非皆さんも作ってみて下さい)
今回はサイト作成の練習として
パソコンのチュートリアルサイトを
作って公開してみようと思います。完成品は下記の URL で体験できます。
[パソコンのチュートリアルサイト](https://uni928.github.io/SephirothPCTutorial/page1.html)
[スマートフォンのチュートリアルサイト](https://uni928.github.io/SephirothSmartPhoneTutorial/page1.html)自分のホームページや SNS で活動している人は
ネタとして一緒にパソコンのチュートリアルサイトを作ってみませんか?これから作り方を説明していきます。
***
サイトを作る
まずはサイトを作っていこうと思います。
基本的には「テキスト」「説明画像」「次へ前へボタン」の
3個を各ページに配置したいと思います。下記のソースを編集して
自分なりのパソコンのチュートリアルサイトを
作ってみて下さい。下記のソースを改変するだけなら
html の初歩の知識だけで作成する事が出来ます。10 ページ以上作ると良いと思いま
Next.jsとjson-serverとsupabase
# データの受け渡し
## json-server
### データを作成する
“`src / data / posts.json
{
“posts”:[
{
“id”:”1″,
“title”:”Next.js”,
“content”:”ヤッホーーーー”,
“createdAT”:”2024-08-27″
},
{
“id”:”2″,
“title”:”プログラミングわからん”,
“content”:”これほんとにできるようになるのかな”,
“createdAT”:”2024-08-26″
}
]
}
“`### json-serverを立ち上げる
複数回立ち上げるのでスクリプトを用意して立ち上げやすいようにする。
またNext.jsで3000版を使用しているので、3001番を指定している。
“`package.json
“scripts”: {
~
“json-server”:”json-server –watch src関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた