- 1. ⓪まずは下準備
- 1.1. 初めてchromeの拡張機能を作ってみた話
- 1.2. node js で JWT をエンコード・デコードしてみる
- 1.3. 全国の人流オープンデータをLeafletで可視化してみる
- 1.4. 【完走賞ゲット-9】Awesome WebHID というページを見かけて気になった話
- 1.5. カルーセルUIライブラリの有力な選択肢 Embla Carousel
- 1.6. Alpine.jsで非表示の要素(モーダルなど)が読み込み時に一瞬表示されてしまう時の対処法
- 1.7. マウスでクリックしてる間だけ切り替わるおみくじ
- 1.8. javascript を使用してみる_1 関数の実行まで 20221209作業
- 1.9. 自転車シェアリングのオープンデータをLeafletで可視化してみる
- 1.10. 勝手に問題を出してくれるLINE Bot【LINE✖️GAS】百人一首で実装
- 1.11. forループを使った簡単なインタラクション
- 1.12. JavaScriptのアニメーションライブラリGSAPについて
- 1.13. decodeJwtResponse
- 1.14. 【超簡単】instagramの相互フォロー確認ハック法
【完走賞ゲット-10】gamecontroller.js を使って DualShock 4 を JavaScript で扱う
## はじめに
こちらは、[完走賞ゲットのため小ネタを毎日投稿しようとチャレンジする Advent Calendar 2022](https://qiita.com/advent-calendar/2022/youtoy) の 10日目の記事です。12月に試していくつか記事を書いてみたりもした「[WebHID](https://developer.mozilla.org/ja/docs/Web/API/WebHID_API)」関連の調べものをしていて、そこからたどり着いた [Gamepad API](https://developer.mozilla.org/ja/docs/Web/API/Gamepad_API/Using_the_Gamepad_API)関連のライブラリ「[gamecontroller.js](https://github.com/alvaromontoro/gamecontroller.js/)」に関する話です。
これを、以下の記事でも扱っていた「DualShock 4」で試します。
●【完走賞ゲット-6】「WebHID DualShock 4 Demo」
Pleasanterのサイト情報を一括更新する
本記事は、[OSSのノーコード・ローコード開発ツール「プリザンター」 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/pleasanter) の10日目の記事です。
# 前置き
[こちら](https://qiita.com/m-isik/items/3f558fd8e0e0298dee3e)の記事で、サイト情報を再帰的に取得する方法を投稿しています。今回はこの仕組みを応用して、フォルダ配下のサイト設定を一括更新する仕組みを作ります。# 作成するサイト
サイト設定の更新といっても、設定内容は山ほどあるので、今回は一覧画面・編集画面のガイドを一括更新する仕組みを作ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922382/0292d768-f98d-e086-5d13-fbccbf8464f5.png)
サイトID欄に一括更新したいサイト(フォルダ)のIDを指定、説明欄・一覧ガイド/編集ガイドに更新し
JavaScriptのsortメソッドを使って、永遠にただ1人のボカロPの曲をおすすめし続けるサイトを作った
この記事は、[クソアプリ Advent Calendar 2022](https://qiita.com/advent-calendar/2022/kuso-app)のシリーズ3の10日目の記事です。
僕、この前、コロナにかかったんですよ、(唐突)そして現在絶賛療養中でして、することと言ったらQiitaとTwitterとニコ動とにらめっこするくらいしかなく、暇でして。
そこで、アドベントカレンダーのネタなにかないかと考えていたら、コロナになる前に書いてたとあるコードがあったので、それを題材として、JavaScriptのsortメソッドについて勉強して書きなおして投稿しようかと思います。まだまだ初心者の初心者ですので、拙い部分、色々あるかと思いますが、というか拙い部分だらけだと思いますが、優しい目で見ていただけるとありがたいです。いいねとかくださると今後の勉強の励みになります。
あと,なんか間違いがあったらコメントで指摘していただけるとありがたいです.
あとあと,布団の中でスマホで書いた記事を,コード修正の時にWindowsで編集して…とかやってるんで,IM
[Day10] 関数の高度な機能 part2
本記事は一人アドベントカレンダー企画の一つです。
[30代未経験エンジニアが25日後にJavaScriptをマスターするカレンダー](https://qiita.com/advent-calendar/2022)[JAVASCRIPT.INFO](https://ja.javascript.info/)を元にJavaScriptを勉強していき、そこで学んだ知識をアウトプットしていきます。
25日でJAVASCRIPT.INFOをやりきり、未経験エンジニアがJavaScriptをマスターする過程を投稿していきます。## 6.6 関数オブジェクト, NFE
### 知らない単語
– レキシカル環境とは
– 環境レコードと、外側のレキシカル環境への参照がセットされたオブジェクトの事### 学んだこと
関数は型ではなくオブジェクト
オブジェクトの中でメソッドも関数も持てる– nameプロパティ
関数名は “name” プロパティとしてアクセス可能
“`javascript
function sayHi() {
alert(“Hi”);
}
alert(say
【J】「JavaScriptとJavaは別物」は全人類の共通認識ではない
全人類の認識になれと100億年前から言ってる
## 正しい認識
– JavaもJavaScriptも「プログラミング言語の名前」
– この2つは**別のプログラミング言語**
– **JavaScriptは「JavaのScript」ではない**## Javaとは?
– 汎用プログラミング言語。
– “Javaが動く仮想マシン”で動作する仕組みなのでいろんな機械で共通のプログラムを動かせる
– 例えば、Windows実行ファイルの.exeはMacでは基本的に動かないが、JavaのプログラムはWindowsで動くJavaの仮想マシン・Macで動くJavaの仮想マシンの両方で動くのでWindowsでもMacでも動くと言える
– なんならカーナビとかでも動いた覚えがあるぞ?## JavaScriptとは?
– webサイトでよく動いてるプログラミング言語。
– ブラウザ上で処理されるのでまあ「いろんな機械で共通のプログラムを動かせる」という共通点があるかもしれない。## なんでJavaScriptに”Java”がついているの?
**Javaの勢いに乗じよう
【Rails】現在地を取得し、緯度経度をもとに現在地から近い店舗を検索
こんにちは
今回は、Googlemapを用い、
①現在地の緯度経度を取得し、
②上記をもとに、現在地からテーブルに保存済みの店舗までの距離を計算し、
③距離が近い順番に店舗を表示するという機能を実装していこうと思います
“`Ruby:実装環境
Ruby 3.0.4
Rails 6.1.5
Bootstrap 4.3
“`⓪まずは下準備
・APIを用いてgooglemapが投稿できる状態にしておく
Googleマップの投稿機能の作成 ➤ [参考記事](https://qiita.com/MandoNarin/items/aa91ffae373a8cfc85d2)
(※後程用いるので、geolocation API も有効可しておくとよい)・jQueryを導入しておく
※今回はajaxモジュールを用いているので、jQueryは通常使われるslimではなく、uncompressedを用いてください
slimやuncompressedについてはこちら ➤ [参考記事](https://netrandum.com/jquery-slim-build/1
初めてchromeの拡張機能を作ってみた話
光栄なことにAdvent Calenderをやるから書かないかと誘っていただいたはいいものの、ネタに困っていた新卒が初めてchrome拡張機能を作る記事です
内容はとても薄いです# このchrome拡張機能をつくってみた背景
昔はよく顔文字に使われていたキリル文字ですが、最近はホモグラフ攻撃[^1]に使用されているそうです(゚Д゚)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2954384/4e0cf0cb-b372-d8af-6ce1-2aec4501328d.png)
上記の画像はまったく同じURLに見えますが片方にはキリル文字の”і”が含まれています
これを肉眼で見分けられる人はいないと思いますそしてそのようなサイトがGoogleの広告枠を購入することで検索結果の上位に表示されてしまいクリックしてしまうということです
詳しくはこちらの記事を参考にしてください [link](https://gigazine.net/news/20221101-google-
node js で JWT をエンコード・デコードしてみる
# コード例
“`js
const jwt = require(‘jsonwebtoken’)const payload = {
id: 333,
name: “Alice”,
email: “example@example.com”
}const token = jwt.sign(payload,’secret_signature’)
console.log(token)var decoded = jwt.verify(token, ‘secret_signature’);
console.log(decoded)
“`# 結果例
実行するたびにトークンは変わる(ドットで区切られた最後のゾーンが変わる)がデコード内容は同一になる。
ただしiatの値も毎回違う。“`
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MzMzLCJuYW1lIjoiQWxpY2UiLCJlbWFpbCI6ImV4YW1wbGVAZXhhbXBsZS5jb20iLCJpYXQiOjE2NzA1OTk2NjB9.uC438ol
全国の人流オープンデータをLeafletで可視化してみる
# オープンデータ
[全国の人流オープンデータ](https://www.geospatial.jp/ckan/dataset/mlit-1km-fromto/resource/1ee9aa41-2980-4801-a218-08acba4737d4)をWebページで可視化する.2019年,2020年,2021年に調査された「1kmメッシュ別の滞在人口データ」と「市区町村単位発生別の滞在人口データ」が提供されている.**滞在人口** とは1ヶ月における1日あたりの人口の平均値を表している.愛知県の2021年の1月~12月のデータはCSV形式のファイルとして公開されている.
– [2021年1月 愛知県 monthly_mdp_mesh1km_1.csv](https://mukai-lab.info/classes/graduation_preperation_1/jinryuu/aichi_2021/monthly_mdp_mesh1km_1.csv)
– [2021年2月 愛知県 monthly_mdp_mesh1km_2.csv](https://mukai-lab.info
【完走賞ゲット-9】Awesome WebHID というページを見かけて気になった話
## はじめに
こちらは、[完走賞ゲットのため小ネタを毎日投稿しようとチャレンジする Advent Calendar 2022](https://qiita.com/advent-calendar/2022/youtoy) の 9日目の記事です。この 12月のアドベントカレンダー用に公開した記事でも何度か登場している HID に関する話です。その中でも、ブラウザで HID を扱う「WebHID」が絡む話になります。
## 今回の内容
WebHID周りの調べものをしていたところ、以下の「Awesome WebHID」というページを見かけました。●robatwilliams/awesome-webhid: Curated list of resources relating to the WebHID (Human Interface Device) API
https://github.com/robatwilliams/awesome-webhid
![Awesome WebHID](https://qiita-image-store.s3.ap-northeast-1.a
カルーセルUIライブラリの有力な選択肢 Embla Carousel
ラクスパートナーズのWebエンジニアの安井です。
普段は主にフロントエンドの開発を行なっています。この記事は[ラクス Advent Calendar 2022](https://qiita.com/advent-calendar/2022/rakus)の9日目です。
Qiita初投稿 & 初Advent Calenderです。よろしくお願いします。過去に後輩エンジニアからカルーセルUIで用いるライブラリの選定について聞かれたことがあったのですが、自分のこれまで導入を検討したライブラリはネックに感じる部分もあり、なかなかすっきりとした提案ができなかったことがありました。
そんな思いを抱えていたところ「これならおすすめできる!」と感じたライブラリを見つけたのでご紹介したいと思います。
## 忙しい人のために先に結論
[Embla Carousel](https://www.embla-carousel.com/) をおすすめしたい## カルーセルUIライブラリの選定の観点
どのライブラリを採用するかの決め手はプロジェクトによってさまざまだと思いますが、自分はこれまで主に次の
Alpine.jsで非表示の要素(モーダルなど)が読み込み時に一瞬表示されてしまう時の対処法
# この記事で解決できること
### 例えばこういう場面
x-dataで{ open:false }をデフォルトで設定しといて、ボタンをクリックしたら{ open: true }にして表示させよう!
“`html
やっほー“`
↑ボタンクリックしたら「やっほー」が表示されるコード
上手くいってそうですがこのコードだとブラウザで読み込み時に一瞬だけ「やっほー」が表示されてしまいます。
::: note
これは“Blip”と呼ばれる現象です。
HTMLがAlpine.jsより先に読み込まれることにより、x-showの要素が表示されてしまう現象です。
:::### 要はこういうこと
![image.png](https://qiita-image-store.s3.ap-northeast-1.a
マウスでクリックしてる間だけ切り替わるおみくじ
もっと良い書き方、ゲーム的に面白くなるやり方があったら教えてくださいm(_ _)m
“`html
おみくじ
// おみくじの内容
const omikuji = ["大吉", "吉", "中吉", "小吉", "末吉", "凶"];
// おみくじの結果
let omikujiResult;function setup() {
createC
javascript を使用してみる_1 関数の実行まで 20221209作業
# 動的サイトを読める必要性
動的サイトはjavascriptが使用されていますが
javascriptで何かシステムを作った経験がないため
自分の勉強を兼ねて備忘録として残します上の動画がとても分かりやすかったです!
こちらの動画を参照にしながら作っていきます!!# HTMLタグ HEADタグ BODYタグの準備
https://html5boilerplate.com/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629668/12534345-8a47-2c86-2241-008c741057e3.png)
index.html のみ使用する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629668/e6da2975-9c2d-b850-4d2e-f9c24aef
自転車シェアリングのオープンデータをLeafletで可視化してみる
# オープンデータ
[自転車シェアリングのオープンデータ](https://urbandata-challenge.jp/idc/data-bikeshare)をWebページで可視化する.[OpenStreet株式会社](https://www.openstreet.co.jp/)が運営する自転車シェアリングのサービス「[HELLO CYCLING](https://www.hellocycling.jp/)」で利用されるステーションや自転車の情報が提供されている.ステーションのデータは,次のJSON形式で与えられる(GBFS: General Bikeshare Feed Specification).`lat`は緯度,`lon`は経度,`name`はステーション名,`address`は住所である.
```json
{
"lat":35.15174,
"lon":136.91396,
"name":"ライブリー鶴舞",
"address":"愛知県名古屋市昭和区鶴舞2丁目14-4-1",
"station_id":"7405",
"
勝手に問題を出してくれるLINE Bot【LINE✖️GAS】百人一首で実装
### はじめに
暗記系の勉強をしている時、ある程度インプットが終わったら、誰かにクイズ形式で問題出してほしいと思うことありませんか?そういう時のためのLINE Botです。
今回は題材として百人一首を使いました。
スプレッドシートにリスト化されていれば(リストがない場合作る手間がありますが)、百人一首に限らず、「〇〇なら△△」と1対1対応するものであれば同じ方法で作成できます。### LINEでいかに解答を返すか?
1対1対応させる時に問題となるのは、"ユーザーが送信する言葉が一定しない場合"です。
半角全角の違い、スペースの有無、ちょっとした表記の違い、は全てコンピューターにとっては全く別物です。
その解決方法として【リッチメニューから選択してもらう】方法があります。
これならユーザーからの送信内容は統一されるので、それに対するアクションを起こすのが簡単です。### スプレッドシート
問題部分と解答部分の列を作ります。
こうすれば問題部分の列番号を[クイックリプライ ](https://developers.line.biz/ja/docs/messaging-api/us
forループを使った簡単なインタラクション
# forループで簡単なインタラクション
p5js初めたての方が真似しやすいコードを紹介します。# 準備
p5jsのセッティングは済ませているものと仮定。
今回はラジアンを使って円を描くので、円周角の考え方も必要となる。# 早速本題のコード
まず、インタラクションのベースとなる、円周上へのサークルの配置から始める。
円周角2πを分割する数として、変数segmentを用意。```javascript
let segment = 100;
```
次に、このsegmentで割った角度ごとにサークルを配置。
```javascript
for(let i=0; i
JavaScriptのアニメーションライブラリGSAPについて
# GSAPとは
GSAPとはGreensockが提供しているJavaScriptのアニメーションライブラリです。
軽量かつ多機能でスクロールに応じたアニメーションや複雑なアニメーションが簡単に実装できます。## GSAPの導入方法
GSAPの導入は簡単で主にCDN(scriptタグを貼り付ける方法)と、NPM(パッケージマネージャーを使う方法)を使う方法があります。
```
//CDNの場合
https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.3/gsap.min.js//NPMの場合
npm install gsap
```## GSAPの基本的な使い方
第1引数にアニメーションをさせたいセレクターを指定します。
第2引数にはどのようにアニメーションさせたいかを指定します。```
gsap.to('idやclass',{
//どう動かすか
x: 200, //x方向に移動
repeat: 3, //3回繰り返す
duration: 5 //アニメーションに5秒かける
});
```## 主なプ
decodeJwtResponse
```
function decodeJwtResponse(t) {
let token = {};
token.raw = t;
token.header = JSON.parse(window.atob(t.split('.')[0]));var base64 = t.split('.')[1].replace(/-/g, '+').replace(/_/g, '/');
var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));token.payload = JSON.parse(jsonPayload);
return (token)
}
```
【超簡単】instagramの相互フォロー確認ハック法
# ◆この記事でできるようになること
:::note info
インスタのフォロバ来てない人炙り出せる
:::# ◆Instagramの相互フォロー知りてええ
インスタといえば、フォロワーを増やしたいけど、、、
フォローしまくって、相互フォロー来てない人解除ってやるひといますよね、、?
実は僕もやってました!
でも、、、ある日
が。。
というのも、フォロー・フォロワーチェックアプリをダウンロードして使ってたらこれになったんですよ。そこで、Pythonでスクレイピングで...
〜省略〜あああああああああああやる気起きねえ。
初心者には何がなんだか。。。しかもインスタ(Meta)めっちゃスクレイピングとかに厳しいじゃん。
# そんな人はこの記事を!
コピペで簡単!
こんなハック