- 1. IoT機器が手に入ったので推しを動かしてみた
- 2. 「いま何時?」「ReactとTypeScriptで時計を作っといたで」
- 3. Javascript スワイプ検出
- 4. 距離センサを使ってポケモンをゲットしてみた
- 5. [JavaScript]thisのスコープ理解していない人がいるわけない。(私は知らなかった)
- 6. 指定タグの任意の文字を後からcss装飾
- 7. [MV3] Chrome Extension 開発の教訓
- 8. 従前の特許出願案件のうちマルチマルチクレームを含む案件の割合
- 9. Ankiで早押しクイズ
- 10. 天気によって降水量を調整できる自動水やり機をつくる
- 11. 簡易的なアプリをReactとVueで書き比べてみた
- 12. Node.js 18 から実験的にグローバルスコープで利用可能になった fetch API を試す(鉄道遅延情報の JSON を取得してみる)
- 13. Google Apps Script(GAS)で翻訳API作成【Google Translate】
- 14. Error の cause オプションによってエラーの再 throw 時にスタックトレースが失われるのを防ぐ【ES2022】
- 15. Rust言語で署名付きURLによりGCSにファイルをアップロードする
- 16. GASとGlitchでDiscord botを作る(無料)
- 17. 郵便番号を入力すると住所を自動入力してくれるフォーム【コピペでOK】
- 18. 【javascript】TABLEのセルの内容を二次元配列で取得
- 19. JavaScriptで生成した画像配列をHTMLのimgタグで表示する
- 20. (祝IE廃止)かつてIEでは動いていたJavaScriptの書き方
IoT機器が手に入ったので推しを動かしてみた
## IoTって面白い
この度、obnizというIoT機器が手に入ったので色々触ってみました。
これまで自分でコードを書いたりしても画面の中で動作するのを見るのみだったのですが、IoTは現実世界で自分の作ったものが動作しているのを見ることができるので、その点が本当に面白いなと感じました。## 推しを動かしてみたい
obnizには色々なセンサーやモーター、LEDといったパーツがありますが、これらの触り方を一通り知って真っ先に思ったことがあります。**「推しを動かしてみたい」**
…はい。何を言っているか分からない方もいらっしゃると思いますが、obnizを使えば光と音と動きを簡単に制御できる、ということは推しキャラクターのフィギュアやアクリルスタント(以下、アクスタ)を使ってライブを再現できるのではないかと思い至ったわけです。## 実際にやってみた
思い立ったら後は行動するのみ。という訳で実際に作ったものが以下になります。自分が電子工作の部品と最低限の知識を得て真っ先にやりたかったこと、それは「推しを動かす」ことである
#obniz
#protoout pic.twitter.com/8ziy2GerTF— KendoLab (@kelab_8) April 25, 2022
「ライブを再現」ということで、ペンライトの
「いま何時?」「ReactとTypeScriptで時計を作っといたで」
というわけで、下記のように現在時刻をアナログ・デジタルの両方で表示する時計を作りました。特段、スゴイことを書いてあることではありませんのご承知おきください。

## 利用技術
– emotion/react 11.8.2
– emotion/styled 11.8.1
– react 17.0.2
– typescript 4.6.3
– dayjs 1.11.0## リンク先について
[GitHub](https://github.com/Naughty1029/React-Clock)でソースを公開しています。issue/プルリク募集しています!
またデモについては[こちら](https://react-clock.cocoroworks.net/)で公開しています。## ソースコードについて
とくに特別なところもないですが、自分
Javascript スワイプ検出
javascriptバニラで十分なプログラムだけど、スワイプ入力したいと言われた時に書いたコード。
何かしらライブラリとかフレームワーク使う時には、たいがい含まれてるんじゃないかな…しらんけど。# スワイプ検出する君
* 検出するエレメントを指定してもらう。
* そのエレメントに対するtouch系のイベント ( touchstart, touchend, touchmove, touchcancel ) を見張る。
* この動きってスワイプ? と思ったら、swipe.xxx というイベントを作って発生させる。
* マルチタッチとか気にしない“`javascript
// スワイプ検出
const SwipeTracker = function(elem, direction=””) {let x = 0;
let y = 0;
let target = null;
let startX = 0;
let startY = 0;
let moveX = 0;
let moveY = 0;
le
距離センサを使ってポケモンをゲットしてみた
## ポケモンを3次元でゲットしてみたい
前回の投稿を見ていただいた方はお気づきだろうが今回もポケモンに関する記事だ。前回はクイズに正解をするとポケモンを捕まえられるという仕様になっていたのだが、 **『現実世界でポケモンを捕まえたい!』** という小学生からの夢を実現するために、現実世界でポケモンを捕まえた気分になれるようなプロトタイプを作成した。https://qiita.com/kosuke0517lab/items/7fbe11c337ea3e8c7d16
## 遊び方
– 『ポケモン』とLINEへ送信すると、捕まえる対象のポケモンの画像がLINEへ送られてくる。
– モンスターボール(?)をポケモンに向けて投げる。
– 『ゲーム』とLINEへ送信をすると、距離センサでモンスターボールとの距離を計測する。
3~5cmの間にモンスターボールが止まればポケモンをゲットできる。
– ポケモンがゲットできた際には『やった~! ○○を捕まえた!』とLINEへ送信。## どんなプロトタイプ?
まずは下記の動画を見ていただきたい。https://youtu.be/9ES0
[JavaScript]thisのスコープ理解していない人がいるわけない。(私は知らなかった)
# はじめに
画像アップロード機能を実装していたときにスコープに苦しめられた話です。
FileReaderやImageオブジェクトを使って苦手な非同期処理をしていたので、ハマっている原因が整理できずに泥沼化してました。。。
# できごと
## やりたいこと
– ``で画像選択時にリアルタイムで選択した画像が表示される
– 最終的に選択した画像のbase64の値をサーバーに送信したいので、ファイルが選択されたらcanvas→blob→base64の流れでデータを変換する## 参考にした記事
[‘input type=file’から’canvas’への転写]([https://qiita.com/_shimizu/items/7df9add540984eba8786](https://qiita.com/_shimizu/items/7df9add540984eba8786))
ほぼこちらのソースコードをコピーで実装
## ソースコード
upload-component.vue
“`vue
指定タグの任意の文字を後からcss装飾
概要:
指定タグの任意の文字を後からcss装飾するコード。
あとからcss的styleを一気に一括指定で変えたいな、というのを実現させる。
あまり詳しい解説はなく最低限。## JavaScript コード
html描画後に文字列をタグで囲む。(別途cssで)追加するタグにcss設定してたらそのstyleになる。複数可。この例では2パターン設定している。
“`javascript:js: sample
//指定タグの任意の文字を後からcss装飾
const aplay_tagCss=(tag,func)=>{
//❶引数1=tag の指定
const $TagS=Array.from( $qcls(tag) );
//複数パターンOKなようにswitch (これは別にifでも構わない)
switch (func){
case ‘astrsk’ ://❷引数2=func の指定, ex. 任意の文字列
//func例) 「※」に後からcssタグ
//roop
for (let tag of $TagS){
const tagC
[MV3] Chrome Extension 開発の教訓
## これは何
個人開発中に経験した、chrome 拡張機能開発における教訓でございます。
Manifest のバージョンは MV3 です。V3 特有の話と、よく嵌りやすい点についてまとめました。
## icon が表示されないときは
参考:https://developer.chrome.com/docs/extensions/reference/action/#icon
次を確認してみてください。
– `png`を提供しているか
`pbg`以外の拡張子、例えば`svg`とかは無視されます
次の 3 つのサイズ(DIP: デバイスに依存しないピクセル)を提供しているか
– 128 \* 128
> インストール中および Chrome ウェブストアで使用されます
– 48 \* 48
> 拡張機能管理ページ(chrome://extensions)で使用される 48×48 アイコンも提供する必要があります
– 16 \* 16
> 拡張機能のページのファビコンとして使用する 16×16 アイコンを指定することもできます。
> 16×16 アイコンは、実験的
従前の特許出願案件のうちマルチマルチクレームを含む案件の割合
# 1 ある日の知財部にて
|| やれやれ、今年(令和4年)4月1日からマルチマルチクレームの出願が認められなくなったんだよなあ。|
|:———–|:————|
|| あら、そんなに気に病むことですか。甲田さん。 |
|Ankiで早押しクイズ
暗記カードアプリ「Anki」で、早押しクイズを練習するためのカードを作ってみたので、備忘録として書いてみます。
なお、以下の記述は全てmacOSのAnki.appとiOS版のAnkimobile Flashcardsでのみ動作確認しています。Ankidroidなど他の環境での動作は保証できないのでご注意ください。
# 概要
### この記事でやること– Ankiで、ボタン/キーを押したらフィールドの文字列が前から順に表示されるようにする
– もう一度ボタン/キーを押したらそこで文字列の表示更新が止まるようにする### この記事でやらないこと
– ここでは「みんなで早押しクイズ」などに見られるような問題文を文字で表示するタイプの出題のみを扱い、競技クイズの大会を模したような音声による早押し練習は扱わない
– 点数計算や、CPUとの対戦形式にする機能は実装しない# Ankiのカードについて
### ノートとカードの基礎
まず、Ankiのノートとカードについての軽い説明です。ここではざっとした説明しかしないので、詳しい仕様については公式のdoc(日本語:https://
天気によって降水量を調整できる自動水やり機をつくる
# ラズパイとサーボモータで自動水やり機をつくる
## 背景
先日,家の庭に畑を作りそこに大根や枝豆やなどの家庭菜園を始めました.
最初のころは楽しみながら水やりしていましたが,今ではめんどくさすぎて雨の日を祈るばかりです.
そこで,勝手に水やりしてくれるものがあればいいじゃん!と気が付いたので調べてみました.### 既製品は高いし時限式ばかり
https://www.amazon.co.jp/s?k=自動水やり機
アマゾンで自動水やり機を検索し値段と機能を確認したところ,やはり高価なものばかり...
1万円以上するものは蛇口をタイマーで制御し,定刻になるとスプリンクラーが作動するという仕組みのものが多く,一万円以下のものは簡易的な植物の水やりに適したポンプ式が多いように思います.
できればお金をかけたくないので安いものを購入したいところですが,私の家の植物たちは外の畑にあるので,簡易ポンプ式では水の量や水圧などに限界がある可能性があります.また,ポンプ式はポンプ式内の水を足さなければならないという手間があるので,やはりめんどくさいです.
そこで,自動でお水を撒いてくれる仕組
簡易的なアプリをReactとVueで書き比べてみた
JavaScript素人が勉強の一環でVue.jsでアプリ作成していたものをReactでも書き起こしてみました。
Reactを書いてみて良かった点や、つまづきポイントをまとめていきたいと思います。※アプリ本体はお粗末なもの(未作成ページあり、スタイル超適当)なのでご了承ください。
# 作成物の見た目
※両方CSSがバグり散らかしてますが、許してください。DatePickerの仕様がVue.jsとReactで異なるのか見た目が異なっているが、それ以外はVue.jsで書いたコンポーネントをほぼそのままReactでも利用できました。
## Vue.jsで作成したものがこちら
## Reactで作成したものがこちら

この記事は、最近の技術記事でも話題を見かける「Node.js の fetch API」に関するものです。
●「Node.js 18」がリリース ~fetch API、Web Streams APIがグローバルスコープで利用可能に – 窓の杜
https://forest.watch.impress.co.jp/docs/news/1404310.html以前のバージョンでも利用可能にはなっていた fetch API(以前のバージョンだと `–no-experimental-fetch` というフラグが必要だった)ですが、Node.js 18 からはグローバルスコープで利用可能になりました。これを試してみようと思います。
### 余談: ブラウザの Fetch API
なお、ブラウザでは以前から特別な対応なしに [Fetch API](https://developer.mozilla.org/ja/docs/Web/API/Fetch_API) が利用可能でした。そのためブラウザで Fetch API を利用する話は、過去に以下の記事などで取り扱ったことがありました。●
Google Apps Script(GAS)で翻訳API作成【Google Translate】
“`javascript
function doGet(e) {
const text = LanguageApp.translate(e.parameter.text, e.parameter.src, e.parameter.dest || ‘ja’)
return ContentService.createTextOutput(text)
}
“`[新しいプロジェクト](https://script.google.com/home/projects/create)を作成し、URLを作成することで[AdvancedなAPI](https://cloud.google.com/translate/docs/editions?hl=ja)を作成できます。
[https://script.google.com/macros/s/AKfycbxEpEZ3PNmT8fRE4ZnksmNV1Q5Hgs3QCJ7lWC4LUcWKKhScotN9OPxVDbMKdCLWU8NT/exec?text=This is a cat.](https://script.google.com
Error の cause オプションによってエラーの再 throw 時にスタックトレースが失われるのを防ぐ【ES2022】
「エラーをキャッチして再度エラーを投げる」をやる場合、以下のように書くと元のエラー情報が失われてしまうためデバッグしづらいコードになります。
“`js
try {
const user = await fetch(userApiUrl);
} catch (error) {
throw new Error(“ユーザー情報取得APIでエラー”);
}
“`メッセージに `error.message` や `error.trace` を連結して入れるのも手ですが、メッセージとしては読みづらく使いづらいです。
よってこれまでは、コード全体のエントリポイントなどでまとめてエラーをキャッチしスタックトレースが失われない形で処理するなどしていたかと思います。
# Error の cause オプション
ES2022 で入った機能で、このように `Error` の第二引数にオプションで `cause` を渡せるようになりました。
“`js
throw new Error(“エラー”, {
// ここに前のエラーを渡せる
cause: prev
Rust言語で署名付きURLによりGCSにファイルをアップロードする
GCS(Google Cloud Storage)へファイルアップロードについて、仕組みの理解とRust言語でそれを実装する時にはまったことをメモする。
# 1. Google Cloud Storage 基本概念
## 1-1. バケット
##### 1-1-1. バケットとは
– ファイルをフォルダを格納するロジカル的なストレージ領域である。
ローカルPCだと、ドライブ名的なもの。(WindowsシステムのCドライブ、Dドライブ)– アクセス方法:GCP > Cloud Storage > ブラウザ > バケット名をクリック
##### 1-1-2. オブジェクト
不正確かもしれないが、バケット中のファイル名やフォルダ名のことを思えばよい。
##### 1-1-3. 権限
– 当たり前、基本はバケットは非公開
– プリンシパル・ロールで強力的に色々コントロールできる印象## 1-2. サービスアカウント
– GCPの普通のユーザと違って、バックエンドAPIで利用するユーザのこと。
– プライベート鍵JSONファイルをダウンロードして、署名付きURL作成時に利
GASとGlitchでDiscord botを作る(無料)
初Qiita記事
# 概要### 実現したいこと
botに送られたメッセージをGASでいろいろ処理して返信できるbotを作りたい。無料で。
とりあえず今回はGAS経由でオウム返しをするbotを作る。### 利用するサービス
+ [Google Apps Script (GAS) ](https://script.google.com/home)
+ [Glitch](https://glitch.com/)
+ [Discord]()すべて**無料**で利用可能。すばらしい!
### 処理の流れ
無料版Glitch はアクセスがないと5分で落ちます。24時間稼働のために、GASの時限トリガーで毎分アクセスし続けます。

多分こんな感じ。# 実践
### botの作成
自分
郵便番号を入力すると住所を自動入力してくれるフォーム【コピペでOK】
# コード全文
ECサイトのフォーム等でよく見る郵便番号で住所が自動入力されるやつを[郵便番号検索API](http://zipcloud.ibsnet.co.jp/doc/api)を活用して作成してみました。
下記のコードをコピペすれば最低限使える1画面が完成するので用途に合わせてHTMLなど改変してください。[動作確認用サンプルページ](https://yutami-works.github.io/webParts/addressForm)
“` html:addressForm.html
郵便番号フォーム
郵便番号で住
【javascript】TABLEのセルの内容を二次元配列で取得
前回までの記事
https://qiita.com/noenture/items/71ee266ec2a8a16a0fbe
https://qiita.com/noenture/items/098661275542930e0566
#概要
前回までと比べて、処理とコードを簡潔に。
そして、取得データをテキストに限らず任意の関数で自由に取得できるように変更。#コード
“`javascript:
const getTable = (table, func) => {
const collector = []const tableRows = table.rows
const numOfCols = ((cnt, i) => {
const headerCells = tableRows[0].cells
while (++i < headerCells.length) cnt += headerCells[i].colSpan return cnt })(0, -1) const rowspanCounter = Array(numOfCol
JavaScriptで生成した画像配列をHTMLのimgタグで表示する
JavaScriptで生成した画像配列をHTMLのimgタグで表示してみます。
これが全コードです。
“`html
Dispaly image array using HTML img tag