- 1. JavaScript配列の扱い
- 2. javascript 動画上のマウス操作のみ検出させる
- 3. ReactなしでJSXを使う / JSX without React
- 4. 認定 JavaScript デベロッパー資格の更新
- 5. ES2023 の新機能のいくつかの使いどころ・利用例を見てみる(MDNのサイトより)【JavaScript-2】
- 6. Node-REDしくじり先生 – 自作ライブラリ更新ミスでLINEノードが一瞬消えてしまった
- 7. クリスマスがやってこないカワイソウな人たちに爆撃するdiscordBotつくった話
- 8. KnexのMySQLにupsertがやってきたぞ!
- 9. HTML/JavaScriptで音声読み上げを173種類試してみた
- 10. React テストコード(Jest, React Testing Library)の学びと Tips
- 11. React入門9: タイムトラベル(1)
- 12. 【やべぇ】マジでヤベェ勉強法を見つけたけど教えてあげない【嘘】
- 13. TypeScriptのふわっとしている部分を再確認
- 14. Web Audio API を用いてCanvas 上に音声ファイルの波形を描画する
- 15. 個人開発のブラウザゲームを多言語対応する話〜自前で多言語対応をして、自分の欲しい多言語対応ライブラリを考える〜
- 16. 技術雑誌で Babylon.js 6.0 に関する記事を書くために行ったこと +α【Babylon.js】
- 17. JqueryでRedmineの「活動ページ」をもっと便利に②(フィルタリング機能と移動機能)
- 18. Oura API V2 を読み解いて、Datadog にヘルスケアデータを連携する
- 19. ChatGPT×CodePenでアイデア発想法支援ツールを作ってみた!
- 20. ChatGPTにアプリを作ってもらう2
JavaScript配列の扱い
## はじめに
JavaScriptの勉強を進めています。今は配列のところを勉強しており習ったことをまとめます。
他の言語の勉強も少ししたことがあるのですが、JavaScrptの配列って便利ですね!
自分用のまとめなので間違いなどあるかもしれないのでご了承お願いします## 配列の定義
“`
const scores = [10, 20, 30, 40];
“`
今回は配列名をscoresとして記事を書いていきます。[]を使って定義します。中身は「,」で区切ります。上記では横並びに記述していますが、以下のように縦並びで記述することも可能です。
この記述の場合最後の要素の後に「,」を付けることが可能です(多分)
こっちの記述の方が後から要素を追加する時やりやすいですよね。
“`
const scores =[
10,
20,
30,
];
“`## 配列の要素の数を取得する
“`
const score_len = scores.length;
“`
配列の要素の数が取得できます。for文にも組み込めるので便利です。
便利です
javascript 動画上のマウス操作のみ検出させる
# はじめに
モーダルで動画を表示するサービスの開発をしています。
画面上のどこで操作しても再生している動画内に停止ボタンが表示されてしまう現象が発生していました。
これを動画上での操作のみを検出してその時だけ停止ボタンが表示されるように修正しました。
その対応方法を記載しております。# 修正前のソース
document全体に対してEventListenerを追加しているため、どこでマウスを動かしても表示している動画コンテンツの再生ボタンに影響してしまいます。
“`javascript
function fadeInOutControl() {
document.addEventListener(‘mousemove’, () => {
// マウス操作で再生停止ボタンを表示・非表示処理など
});
}
“`↓
# 修正後のソース
修正後のソースではvideoを表示しているコンテンツに対してのみEventListenerを追加しました。
それによって動画を表示しているコンテンツ上でのみmousemoveが反応するようになりました。
ReactなしでJSXを使う / JSX without React
# JSXをReactなしで使ってみた
いろいろ実験したレポジトリはこちら
https://github.com/ykhirao/qiita/tree/master/jsx-without-react
## シンプルなページ
できたバンドルはこちら
https://ykhirao.github.io/qiita/jsx-without-react/jsx/build/
![スクリーンショット 2023-12-11 15.26.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112929/47e5286e-5e2e-183d-7702-316cf9612e4d.png)
“`html
My App
認定 JavaScript デベロッパー資格の更新
## Summer’23更新したポイント
– html: `lwc:if`、`lwc:else`と`lwc:ref`
:::note warn
重要 従来の `if:true` と `if:false` ディレクティブは、今後廃止され削除される予定のため、現在は推奨されません。
コードが今後の変更に対応できるように、新しい条件付きディレクティブを代わりに使用することをお勧めします。
:::
– js: `this.refs.定義した名前`
::: note
例:
“`html
“`
“`js
// 従来 document.querySelector(‘c-component’);
const domElement = this.refs.component;“`
:::## 実際資格更新のソース
– childコンポーネント“`child.html
ES2023 の新機能のいくつかの使いどころ・利用例を見てみる(MDNのサイトより)【JavaScript-2】
この記事は、「[JavaScript Advent Calendar 2023](https://qiita.com/advent-calendar/2023/javascript)」の 12日目の記事です。
## 今回の内容
今回、ES2023 の新機能のいくつかをピックアップし、それについて書かれた MDN のページを見つつ、使いどころや利用例を見ていこうと思います。ES2023 の新機能に関する記事は見たりしていましたが、実際に自分で何か記事を書いてみたりしないと、その後、忘れてしまいそうな気がするので記事を書いてみます。
### 今回とりあげるもの
今回、新機能の中で気になったものをいくつかピックアップしました。
具体的に、この記事で出てくるものは以下です。– toSpliced()
– with()
– findLast() / findLastIndex()## MDN の説明から使いどころを探る
### toSpliced()
まずは、以前からあった splice() メソッドに対応するコピーメソッドの「toSpliced() 」です。toSpl
Node-REDしくじり先生 – 自作ライブラリ更新ミスでLINEノードが一瞬消えてしまった
まじで焦りました。
何かミスってLINEノード消えてしまってる… #linedc pic.twitter.com/z1MAwAEpBb
— 菅原のびすけ (プロトアウト9期募集中) (@n0bisuke) December 11, 2023
クリスマスがやってこないカワイソウな人たちに爆撃するdiscordBotつくった話
# まず初めに
投稿者は素人質問が飛んで来たらその場で地団駄を踏んで泣き崩れるくらいの技術力なので結構間違ったことを書くかもしれないし、自分でもよくわかってないので温かい目で見てください。
# なんでそんなもの作ったんだ…
自分にもわかりません。ほんと。誰も幸せにならない…けど思いついてしまったし某ハッカソンでチームメンバーから学んだ技術を生かしたい。そんな思いで作ることになりました。
# 環境
discord.js v14.13.0
node.js v18.18.0
# さて作ろうか
作ります。
### なにすればいいんだ…
某ハッカソンでは原型をすべて友人が作成していてコマンド部分しか知見を得ていなかったため何をすればいいかわからない…
とりあえずググる### 原型はつよいひとと友人に提供してもらった
`index.js`(main),`deploy-commmads.js`はつよいひとをみならって自分でいろいろいじった。
# 主な機能
きたる12/24。Xmas前夜にクリスマスがやってこない場合
“`
(‘ε’ )くー
(‘ㅂ’ ) り
(‘ε’ )す
(‘□’ )ま
(‘
KnexのMySQLにupsertがやってきたぞ!
使用法
– updateの代わりにupsertにするだけです。なければinsert, あればupdateという挙動になります。“`ts
const result = await client(‘todo’).upsert(todoItem).where(なんらかの条件);
“`もともとCockroachDBにしか対応していなかったのですが、3.1.0で実装されたようです。ドキュメントは更新されていませんが、実際に3.1.0にあげてみたらmysqlで動きました。これまではupdateしてrowが0ならinsertみたいな小細工をしていたのですが、これですっきり書けますね。
発行されたSQL文を確認してみましたが、REPLACE INTOが使用されているようです。insert on duplicate key update ではないんですね。一度削除してから入れ直しになるので、created_atみたいなカラムがあるときは要注意です。まあ、これはknexというよりREPLACE INTOのハマりですが……。
……もうみんなprismaを使っており、knexなんて
HTML/JavaScriptで音声読み上げを173種類試してみた
JavaScript Advent Calendar 2023 11日目の投稿です。
https://qiita.com/advent-calendar/2023/javascript
## 動機
独自で収集した英熟語リストをちゃんとした英語の発音で読んでほしいときがあったので調べてみました。これで単語帳をWebに公開とかサービス使えそうでした。
## 結果
スピーチのテストは、このページで試せると思います。
https://ykhirao.github.io/qiita/adv2023/
中身は CDN版 Vue.js で書いてます。ソースコードはこちらのGitHubです。
https://github.com/ykhirao/qiita/tree/master/adv2023
英語圏内だとAaron, Nicky, Samantha, Google US Englishが問題なく使えそうでした。
bubblesが溺れそうな声でなんか変な気持ちになりました。
* 表の見方 defaultがtrueのものが基本使われる
* localServiceがfals
React テストコード(Jest, React Testing Library)の学びと Tips
# はじめに
早いもので2023年も終わりが近づいてきました。皆様はいかがお過ごしでしょうか。毎年アドベントカレンダーの時期になると、今年一年で学び経験した技術の知識を棚卸しするために記事を書いています。2023年はよくテストを書いた年でした。React のテストコードで学んだことを書き記します。テストにはいわゆる手動テストと自動テストがあります。どちらも必要ですし、用いる手法はケースバイケースなのかなと思います。テストにかける時間や労力は短期的に見るか長期的に見るかで手動テストと自動テストのどちらが良いかは一概には言えません。多くの場合は組み合わせて行うと思います。
テストレイヤーの切り方として、Ice-Cream Cones, Testing Pyramids, Testing Trophy など様々な考え方があります。上層ほど高コスト・低速。下層ほど低コスト・高速と言われています。
![test_layer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/127260/1cd76f93-39
React入門9: タイムトラベル(1)
# はじめに
私自身の復習兼、備忘録的な意味もあり、複数回の記事に渡って React を用いてマルバツゲーム(三目並べ)を開発していきたいと思います。
– [React](https://ja.react.dev/)
– [CodeSandbox(公式)](https://codesandbox.io/)
– [CodeSandbox(非公式)](https://csb-jp.github.io/)## シリーズの一覧
1. [React入門1: 環境構築 [オンライン版]](https://qiita.com/banana_bancho/items/64fa6ccb58101eadbb63)
– [React入門1.5: 環境構築 [ローカル版-番外編]](https://qiita.com/banana_bancho/private/30f5d9d2c5eea00ac11c)
1. [React入門2: 盤面の作成](https://qiita.com/banana_bancho/private/c50495b5d4c30555cec3)
1. [React入門3: イン
【やべぇ】マジでヤベェ勉強法を見つけたけど教えてあげない【嘘】
みなさん、おはようございます:runner:!
@f0lstです!この記事はAteam LifeDesign Advent Calendar 2023 の 15日目の記事になります :santa:
## :point_up: はじめに
**マジでヤベェ勉強方法**を見つけてしまいました…。**絶対に教えません** :angry:
~ *the End…* ~
….
…
..
.嘘です。ごめんなさい。シェアさせてください :cry:!!!
## :muscle_tone2: その勉強法とは?
今から紹介する方法は、**公式ドキュメントや本などを読み込む**際に有用です:point_up:名付けて!!
「**1行1行読むぞ会**」です:thumbsup::sparkles::thumbsup::sparkles:## :baby_tone2: これが重要なポイントだい!!
さて、「**じゃあ、どうやって
TypeScriptのふわっとしている部分を再確認
こんにちは。
ウェブクルー AdventCalendar 11日目の記事です。
昨日は @wc_sangen さんの「 ZIOのスタックセーフの注意点 」でした。## はじめに
型について理解している気でいてもしっかりと違いを説明できない部分が多々あるなと思い、復習がてら調べ直しまとめていこうと思います。## それぞれの比較パターン
比較パターンごとに説明していきます。### 1.any型とunknown型
どちらも型としての定義が完全でないイメージですが具体的な差は以下です。`
– any型の方がunknown型よりもさらに不明確である
– any型はTypeScriptが型のチェックをしない言うなればunknown型はTypeScriptが型のチェックをしてくれるため未定義のプロパティやメソッドへのアクセスは不正であるとチェックしてくれます。
“`ts
// dataがunknown型の場合console.log(data) // これはOK
console.log(data.length) // これはNG
console.log(data.pop(
Web Audio API を用いてCanvas 上に音声ファイルの波形を描画する
## ✏️ 前書き
音声を扱うUIを作成する際、波形を描画したいという要望が出てくると思います。波形の描画は視覚的に再生位置の特定がやりやすく、リッチな音声UIによく用いられている一般的なUIです。この記事では`Web Audio API` を使い取得した音声ファイルのデータを`AudioBuffer` にデコードし、その`AudioBuffer` から波形データを描画する為の方法を紹介します。
## 🗨️ 用語解説
一連の流れを理解するために把握しておくと良さそうな用語を簡単に解説します。### Web Audio API
Webの音声APIの総称。`WebAudioAPI`っていうAPIがあるわけではないです。`Web Audio API` の殆どは`AudioContext` を始めとして各種APIを接続して利用します。この`AudioContext` は処理によっては(ブラウザポリシーの為)ユーザーの操作による許可が必要になりますので、適宜`resume` 関数を叩いてあげる必要があります。
“`js
const audioCtx = new AudioCo
個人開発のブラウザゲームを多言語対応する話〜自前で多言語対応をして、自分の欲しい多言語対応ライブラリを考える〜
この記事は [ドワンゴ Advent Calendar 2023](https://qiita.com/advent-calendar/2023/dwango) 11日目の記事です。
この記事では、多言語対応のライブラリを選定するために、ひとまず自分で実際にライブラリを使わずに多言語対応の実装を行い、自分の求める機能が何なのかを明確にした経験についての話をします。
## 多言語対応の困難さとは
### 多言語対応は難しい?
多言語対応は難しいですね。……というのは簡単ですが、実際、どの部分が難しいのでしょうか?
– どういった方法で言語切替機能を提供するか?
– 言語を変えても破綻しないUI設計はどうするか?
– 複数の言語の保守・運用はどうするか?
– etc…きっと様々な意見があると思います。
しかし、その中でも特に僕が最大級に難しいと感じているものがあります。それは **「イメージができない」** ことです。
僕もお仕事上、何度か多言語対応をするようなアプリケーションを作る機会はありましたが、イケると思って実際にやってみたら、あとで上記の例のような部分で「
技術雑誌で Babylon.js 6.0 に関する記事を書くために行ったこと +α【Babylon.js】
この記事は、「[Babylon.js Advent Calendar 2023](https://qiita.com/advent-calendar/2023/babylonjs
)」の 11日目の記事です。## 今回の内容
この記事では、以下の X のポストで書いている「技術雑誌で Babylon.js 6.0 の紹介記事を書いた話」に関する内容(もう少し補足すると、依頼をもらった流れから、記事の内容を決めて原稿案を完成させた流れについて)を書いています。それと合わせて、スペースの都合で誌面にはのせてなかった内容を、いくつかこちらで書こうと思います。
月刊I/O 2023年7月号の著者向け見本誌を受領!
今回の件、編集部の方から記事執筆の依頼をいただき #BabylonJS 6.0 に関する記事(タイトルは『Babylon.js 6.0 Web向け「3Dグラフィックス・ライブラリ」の最新機能』)を書いてました。
Babylon.js に興味を持ってくれる方が増えると良いな。 pic.twitter.com/lnP9G2PMCp
— you (@youtoy) June 19, 2023
### Babylon.js 6.0 の新機能に関する公式動画
技術雑誌の記事で扱った「Babylon.js 6.0 の新機能」に関して、公式の動画が出ているので、本編に入っていく前に紹介しておこうと思います。
Babylon.js 6.0 の新機能について、映像で見てみたいという方は、こちらを見てみるのをお勧めします
JqueryでRedmineの「活動ページ」をもっと便利に②(フィルタリング機能と移動機能)
## JqueryでRedmineの「活動ページ」をもっと便利に②(フィルタリング機能と移動機能)
[Redmine Advent Calendar 2023](https://adventar.org/calendars/8974)の11日目の記事として作成しました。
* * *
### 既存のRedmineで不便なこと、改善したい点必要とする情報を網羅的に全て取得して、そこから確認をしたい情報を絞り込むことで、「探したい」情報、「確認したい」情報に漏れなくアクセスすることができます。そのため、Redmineでは「チケット」、「ガントチャート」、「カレンダー」などのページで「フィルター」機能が提供されています。
Redmineで標準で提供されているフィルター機能はかなり強力で、柔軟な条件で情報の絞り込みを直感的に行うことができます。Oura API V2 を読み解いて、Datadog にヘルスケアデータを連携する
## はじめに
こんにちは、Datadog Japan で Sales Engineer をしている AoTo(@AoTo0330) です。
この記事は **[AoTo Advent Calendar 2023](https://qiita.com/advent-calendar/2023/aoto) 10日目**の記事です。
:::note info
この記事は完全に趣味の記事です。Oura Ring や Datadog を個人で利用している方は是非最後までお読みください。
:::みなさん、[**Oura Ring**](https://ouraring.com/) はご存知でしょうか? Oura Ring は フィンランドのヘルスケア企業 Oura Health Oy によって開発された、睡眠と身体活動を追跡するために使用されるスマートリングです。
日本では Oura Ring [Gen2(第2世代)](https://support.ouraring.com/hc/en-us/articles/36002557
ChatGPT×CodePenでアイデア発想法支援ツールを作ってみた!
# 自部署の課題解決アイデアを発想する!
こんにちは!
大手小売企業のネットスーパー担当者です!デジタル化デジタル化といっても、”紙をなくす”だとか”作業の無駄をなくす”だとか大抵の人がふわっとしたイメージしか持っていないと思います。
私においてもまったく一緒でした。
DX推進します!って言っておきながら何をDXするんだろうとふわふわしながらネットスーパーの戦略を考えていたりします。世の中ではどんどん新しいツールが出てきているのにも関わらず、うまく自社には反映できていない。
そんな私たちにとって、必要なのは**課題/業務×デジタル技術**のアイデアを量産していくことではないでしょうか。
たくさんのアイデアを出すことで、最も最適なDXが行えないでしょうか!今回はそんな疑問を解決すべくアイデア発想法を行う為の支援ツールのプロトタイプを作成してみました!
## アイデア発想法とは
>新しいアイデアを効率的に発想するためのフレームワークです。刺激語法のように二つのアイデアを強制的に結びつける強制発想法、ブレインストーミングのように特に制約を求めずアイデアを発想する自由発想法、
ChatGPTにアプリを作ってもらう2
# この記事について
自分用のwebアプリをChatGPT(3.5) に全部作ってもらおうとしている途中。前回は [こちら](/nistake/items/0836daca666d9f304f08)。
また重くなってきたのでセッション切替記念に、次のプロンプト。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12729/38b70231-b8cf-d409-3a29-cb3327c48c87.png)
以下、このプロンプトの結果。Qiita用に出力を再整形したこと以外は無編集。
—
# 書籍感想アプリの開発冒険## 第1章: プロジェクトの舞台裏
ある日、中学生の冒険者が、「書籍感想アプリ」の開発に挑むことになりました。彼は先輩冒険者(ChatGPT)と連携し、アプリの冒険に乗り出すことに。### 問題発端
彼は最初、Vuexを使ってフィードバックメッセージを管理しようとしましたが、プロンプトの中で明確な指示がなく、混乱が生じました。#### 中学生冒険者:
「