- 1. より早く、より便利になったStorybook 8
- 2. Google Map上にベクトルタイルを描画してみた
- 3. 先日の続き
- 4. javascriptでオブジェクトが入った変数をコピーする方法
- 5. js 数値にsort()使ってもうまくいかない理由
- 6. Google SlidesやGoogle Docsで入力内容を取得する
- 7. 【WordPress】GTranslateのウィジェットをcssでカスタマイズして好きなところに設置する
- 8. 生年月日入力フォームに「西暦と和暦」を表示するよう実装した話
- 9. 要約、翻訳ツールにGemini Proを選定した話
- 10. JavaScriptでの型判別まとめ(typeof, Object.prototype.toString.call)
- 11. TypeScript – ファイルから import した定数をそのまま export する
- 12. 勉強会でなかなかメンバーが質問/意見してくれないときの対処法
- 13. 手数料計算【javascript】
- 14. SkyWayの公式のチュートリアルをやってビデオ通話を作ってみた
- 15. nodeでテンプレートエンジンっぽいものを作った
- 16. Minori4.html 個人用
- 17. Minori4_1.html 個人用
- 18. サーバ側でReactMarkdownを実行しmarkdownをhtmlに変換する
- 19. Vue.jsの公式ドキュメントを整理していく 2回目
- 20. 【React】Custom Hooksとは
より早く、より便利になったStorybook 8
Storybook 8がリリースされたので、簡単にまとめ。
https://storybook.js.org/blog/storybook-8/
– 📸 ビルトインのビジュアルテスト
– ⚛️ React Server Componentのサポート
– 🎛️ ReactのパフォーマンスアップとVue control autogenerationの改善
– ⚡️ Vite5やVitestのサポート
– 🧪 2-4倍高速なテストビルド
– 📲 モバイル・デスクトップUIの刷新
– 🙅♀️ 非ReactプロジェクトでのReactへの依存性を削除## 特に気になったもの
### ビルトインのビジュアルテスト
– アドオンで、ChromaticをStorybookに組み込み
– ワンクリックですべてのストーリーを同時テストし、変更点を特定可能
– CIのワークフローを、Storybookの中で直接実行可能に![sb-vta.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/10962/af6a2
Google Map上にベクトルタイルを描画してみた
# 概要説明
ベクトルタイルを、Google Map上に描画する方法を調査してみました。
結論から言いますと、Vector-Tiles-Google-Mapsといライブラリを使用して、Google Map上にベクトルタイルを描画します。描画のイメージは以下になります
![qiita1 (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2916958/3015f77b-f370-b0c4-5243-97cab51659b6.gif)## 使用したもの
### Vector-Tiles-Google-Maps
Google MapにベクトルタイルをレンダリングするためのJavaScriptライブラリ。https://github.com/techjb/Vector-Tiles-Google-Maps/tree/master
### ベクトルタイル(TerraMap API町丁目ポリゴン)
今回使用したベクトルタイルは、TerraMap APIの町丁目ポリゴンデータをベクトルタイル配信にしたも
先日の続き
解決策が分かったため記述
どうやらrubyとJavaScript を同時に使うことは相性が悪かったことが原因とメンターさんに伺いました。
解としては、該当するviewファイルの中の“`ruby
<%= form_with model: @item, local: true do |f|%>
“`
のなかに`data: {turbo: false},`を追記した
“`ruby
<%= form_with model: @item, data: {turbo: false},local: true do |f|%>
“`と記述すること。でした。
javascriptでオブジェクトが入った変数をコピーする方法
JavaScriptでオブジェクトが入った変数をコピーするには、いくつかの方法があります。
## 1. 浅いコピー(シャローコピー)
オブジェクトの参照をコピーする方法です。オブジェクト内のプロパティは共有されます。
方法
– Object.assign()
“`javascript
const obj1 = {
name: “John”,
age: 30,
};const obj2 = Object.assign({}, obj1);
// obj1とobj2は同じオブジェクトを参照している
console.log(obj1 === obj2); // true// obj1のプロパティを変更すると、obj2も変更される
obj1.name = “Mary”;
console.log(obj2.name); // “Mary”
“`コードは注意してご使用ください。
– スプレッド構文
“`javascript
const obj1 = {
name: “John”,
age: 30,
};const obj2 = { …obj1
js 数値にsort()使ってもうまくいかない理由
## jsのソートがうまくいかない
kintoneカスタマイズのために、javascriptを練習しているとこんな現象が起きた“`js
const array = [2, 99, 80, 2, 19, 22];
array.sort();
console.log(array); // 出力 Array(6)[ 19,2,2,22,80,99 ]
“`
うまくいけば
“`js
// Array(6)[ 2,2,19,22,80,99 ]
“`
と出力されるはずだ。## sortメソッドはデフォルトだと文字列として要素を比較する
sort()メソッドは本来、デフォルトだと文字列を比較するメソッド。つまりアルフォベット順にする。数値として比較したいときは、比較関数を用いる## 比較関数とは?
sort()メソッドに指定するコールバック関数。[MDM](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)では`compareFn(a, b)`と表現さ
Google SlidesやGoogle Docsで入力内容を取得する
数時間が溶けてしまったので、自分用メモを兼ねて公開しておく。
# 問題点
ブックマークレット等、任意のWEBサイトにコードを流し込める状態で、ユーザが入力した文字を取得したい。Google Spreadsheetを含む多くのWEBサイトでは、以下のようなコードを流し込むと可能である。“`js:Google Slides 内
window.addEventListener(“keydown”, e=>{
console.log(e.key+”を押した!”);
});
“`しかし、Google Slides(Googleスライド)とGoogle Docs(Googleドキュメント)は、このコードでは思っている通り、動作しない。正確に言うと、上部にあるメニューの部分をクリックした後に入力したキーは取得できる。しかし、スライド内の文字を編集している時は、このイベントは発火しない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197285/d97c73a7-b345-7d
【WordPress】GTranslateのウィジェットをcssでカスタマイズして好きなところに設置する
## WordPressサイトに超お手軽に翻訳機能を搭載できる
GTranslate というプラグインとその使い方の記事が大量にあるのですが、
意外とウィジェットをカスタマイズして設置する方法が見つからなかったので書きます。雑なスクショ&デザインで恐縮ですが、こんな感じで好きな翻訳ナビを作れます。
![スクリーンショット 2024-03-12 20.58.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3733749/9146961d-b33c-e75e-05eb-f96a08c5b6be.png)
### [1]. wp管理画面側でプラグインを追加・有効化
「Translate WordPress with GTranslate」というプラグインです。
「今すぐインストール」して有効化します。### [2]. 設定画面を開いて設定する
プラグイン > GTranslate > 設定 を開き、以下の設定をしていきます。
– **ウィジェット表示**: 言語コード
後で整形し
生年月日入力フォームに「西暦と和暦」を表示するよう実装した話
# はじめに
自分の生まれた年は西暦で分かると思いますが、自分の親や親せきの人の生年月日は西暦だけだと分からないですよね。そこで西暦と和暦を両方表示させてユーザーが選びやすいように、実務で実装を行ったため、備忘録として残します。
# 使用技術
HTML, Javascript, Laravel# 実装コード
HTML
“`html
JavaScriptでの型判別まとめ(typeof, Object.prototype.toString.call)
自分用メモ
|型|値|typeof|toString.call|
|-|-|-|-|
|string|””, “abc”, ‘a’, String(1)|string|[object String]|
|String|new String(“”)|object|[object String]|
|number|0, NaN, Infinity, Number(‘1’)|number|[object Number]|
|Number|new Number(0)|object|[object Number]|
|bigint|1n, BigInt(1)|bigint|[object BigInt]|
|Bigint|Object(1n)|object|[object BigInt]|
|boolean|true, Boolean(0)|boolean|[object Boolean]|
|Boolean|new Boolean(true)|object|[object Boolean]|
|symbol|Symbol(1)|symbol|[object Symbol]|
|Symbol|
TypeScript – ファイルから import した定数をそのまま export する
# コード例
importは書かずに export だけ書けば成り立つようだ
“`ts
export {
FOO_CONSTANT,
BAR_CONSTANT,
} from ‘foo_file’
“`# 解説
次のように import した定数をそのままexportしたかった
(以下は文法エラー)“`ts
import {
FOO_CONSTANT,
BAR_CONSTANT,
} from ‘foo_file’export const FOO_CONSTANT = FOO_CONSTANT
export const BAR_CONSTANT = BAR_CONSTANT
“`# チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ
# プロフィール・経歴
https://github.com/YumaInaura/YumaInaura
勉強会でなかなかメンバーが質問/意見してくれないときの対処法
### 導入
社内外でのオンライン勉強会は当たり前になってきましたね。よく社内で勉強会を開催しているとき、「どなたか質問ありますか?」といってもだれも返答がないことってよくありませんか。そのとき発表者も少し悲しくなってしまいます。もちろん発表内容が難しくて理解できなかった”発表の質”の場合もありますが、(それもフィードバックしてほしい)どう工夫してもなかなか質問がないとときがあります。しかしそこには共通している部分があり、それは質問しづらい環境が必ずあることが1つ原因にあるのではないかと思っています。
そこであえてみんなが感じているその雰囲気をいじることを考えてみました。### 「参加者から質問者をランダムに選出する」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3655530/c549d733-b6a9-74ef-2e98-00f1e4042a18.png)“`
手数料計算【javascript】
“`ruby
window.addEventListener(‘turbo:load’,() =>{
console.log(“OK”);
“`
urbo:loadというイベントは、ページが全て読み込まれた後に発火します。JSファイルの読み込みが正しく出来ていればコンソール上に”OK”という文字列が表示される“`ruby:
document.getElementById(“id名”)は、id名を指定してHTMLの要素を取得するメソッドです。
“`金額を次は金額を入力するたびに、イベント発火するようにaddEventListenerを使用
const inputValue = priceInput.value;
value属性を指定し、input要素から実際に入力した金額の値を取得。つまりフリマの出品値段から今回指定したい10%の値段を取得
これが終わると次はいよいよ手数料の実装。
innerHTMLを使用して、販売手数料や利益計算結果を表示できるようにしましょう。innerHTMLは、HTML要素の書き換えを行うことができます。
“`ruby
SkyWayの公式のチュートリアルをやってビデオ通話を作ってみた
# はじめに
こんにちは、プログラミングを始めて約3年のエンジニアのkeitaMaxです。
今回は、SkyWayの公式に従ってチュートリアルをこなして、音声・ビデオ通話アプリを作成していこうと思います。
# SkyWayに登録する
下記サイトでまずはアカウント登録をします。無料でも使用できるので、今回は無料版に登録をしました。https://console.skyway.ntt.com/
公式のガイドに従って登録、メール認証をしてプロジェクトとアプリを作成します。
アプリまで作成すると、『アプリケーションキー』と『シークレットキー』が発行されますのでメモっときます。
# 実際にローカル環境で通話をつなぐ
SkyWay開発ドキュメントのなかにクイックスタートという項目があったので、それに従ってブラウザのアプリケーションを作成します。https://skyway.ntt.com/ja/docs/user-guide/javascript-sdk/quickstart/
まずは環境作成をします。公式に載っている通りに、以下の手順で開発環境を作成しました。
>3-1.
nodeでテンプレートエンジンっぽいものを作った
## 背景
同じようなページを複製したいけど、それだけのためにEJSやPugを入れるのも面倒。。。
じゃあ自分でサクッと作ろう!## 環境
node 20.10.0
npm 10.2.3## 前提
以下のポケモン151匹のデータが入ったJSONをもとに、 (JSONは記事最下部に記載)
“`pokeData.json
[
{
“no”: 1,
“name”: “フシギダネ”,
“abilities”: [“しんりょく”],
“stats”: {
“hp”: 45,
“attack”: 49,
“defense”: 49,
“spAttack”: 65,
“spDefense”: 65,
“speed”: 45
}
},
{
“no”: 2,
“name”: “フシギソウ”,
“abilities”: [“しんりょく”],
“stats”: {
“hp”: 60,
“attack”: 62,
Minori4.html 個人用
“`Minori4.html
入力フォーム