- 1. vistaでillustrator その6
- 2. 宣言
- 3. Symbolブロックチェーン上で持ってるNFT画像を全部出す。
- 4. 【1日10行コーディング】〜Google Map APIと向き合う〜
- 5. 今日Xpathを覚えた
- 6. 【Rails6】Turbolinksを同居させたままActionCableで非同期通信コメント機能を実装したい!
- 7. 初心者Laravel開発のまとめ
- 8. 【Jest】mockの初期化ができない時の備忘録
- 9. 【Jest】randomやDateのモック化
- 10. 【obniz×圧電スピーカー】処理(曲)コードをまとめました。 #マンボ #Disney
- 11. vistaでillustrator その5
- 12. vistaでillustrator その4
- 13. Bookmarkletでネット廃人になろう
- 14. TypeScript で 関数名の後ろに`string`←コレの正体
- 15. 「Announcing TypeScript 4.6 Beta」を読む
- 16. 古いバージョンのSwiper.jsを使ったら詰まったお話 Ver3.4.1
- 17. React + TypeScript: Recoil公式チュートリアルのTodoリストをつくる 01 ー atomを使った項目操作
- 18. 変数定義した配列を呼び出す時、存在しないインデックス番号だとどうなるか?
- 19. ブラウザでディープコピーができるようになった
- 20. ChromeDevToolsでスクリプトを終了させる隠しコマンド
vistaでillustrator その6
#概要
vistaでillustratorやってみる。
アートボード作って、コッホ曲線書いて、png出力してみた。#写真
![ill5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/5dc07a9a-eddc-c93a-1444-bf78deac7452.png)
#サンプルコード
“`
var v = [];
var ANGLE = 0;
var LX = 10;
var LY = 100;
function fmod(a, b) {
var x = Math.floor(a / b);
return a – b * x;
}
function turn(a) {
ANGLE = fmod(ANGLE + a, 360.0);
}
function gmove(l) {
var rd = Math.PI / 180.0;
var x = l * Math.cos(rd * ANGLE);
var y = -l * Math.sin(rd * ANGLE);
v
宣言
## 今月これやるぞ!!!
https://www.udemy.com/course/javascript-essence/
Symbolブロックチェーン上で持ってるNFT画像を全部出す。
今回はSymbolブロックチェーン上で展開されるNFTサービスで登録した画像を表示する方法を解説します。
テーマは自分のアカウントが所有しているモザイクトークンに紐づけられた画像情報を全部表示する、ということです。もちろんNFTが紐づいていないモザイクトークンもあります。それらが混ざったなかから、いかに目的の画像を引っ張ってくるかに注目してソースコードを読み解いてみてください。
# 共通
### 検証環境構築
https://qiita.com/nem_takanobu/items/e88d5ea76cd609e76bbf
### 画像挿入の共有化
取得した画像をimgタグに挿入するfunctionを定義しておきます。ここは使い慣れたフレームワークの書き方に変更してください。
“`js
function appendImg(src){(tag= document.createElement(‘img’)).src = src;
document.getElementsByTagName(‘body’)[0].appendChild(tag);
}“`
【1日10行コーディング】〜Google Map APIと向き合う〜
## 概要
### 1日10行コーディングとは
まず、1日10行コーディングというのは、1日10行でいいから新しいコード書こうよって感じのやつです(雑)
(1日1記事とか1機能とかだと続かない気がしてしまってる…)### 実装するもの
最終的に作りたいのは自分でピンを立てた店のアイコンとかを自由に変えられたり、カテゴリごとにアイコン変えたりとかするものが作りたいという気持ち。Google Map my place??とかいうのに近いというか多分おんなじようなのになると思う。
ただ、今日はその前の前の前の前段階くらいのとりあえずマップを表示するページを作ろうと思います。
## 手順
https://www.javadrive.jp/google-maps-javascript/charset/
とりあえずこちらの手順を参考にAPIキーの取得とかをします。
資料古かったのでスクショとかは微妙にあてにならなかった。1. Google Maps PlatformページのCreating API keys手順に従ってAPIキーを生成する。(https://develope
今日Xpathを覚えた
JavaScroptでうまくプログラミングできてこなかった。
今日、Xpathを覚えた。
xpathの使い方
https://qiita.com/NT1123/items/e8579a6a47eb66441c0a
覚えたっていうのは嘘。見て、聞いたものを、後でQiitaで探したらあった。記録。
これをどう使うかはこれから。予定では今年中に動くようにする。Xpathとは?Xpathを簡単に紹介する
https://qiita.com/ScrapeStorm-JP/items/a72bbf9e48e59a406962
XPATH Formulas examples ( XPATHのサンプル )
https://qiita.com/Fabral09/items/cfb50f8461e5f27983ed
XPath基礎編(1)ー XPathの基本概念
https://qiita.com/Octoparse_Japan/items/b54e42d696d2311b7b9a
XPath基礎編(2) ー XPathの書き方
https://qiita.com/Octopar
【Rails6】Turbolinksを同居させたままActionCableで非同期通信コメント機能を実装したい!
# なに、同じコメントが2つ、3つ追加されただと…?
というわけでRailsとJavaScriptの初学者がぶつかったTurbolinksという大きな壁について、今回はAjax通信のコメント欄の実装においてどのような課題解決をしたかアウトプットしようと思います。
## 環境
– Ruby : ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin20]
– Rails : 6.0.0
– Turbolinks5
– Action Cable 6.0.4.4## 前提
Turbolinksとはなんぞやという方は以下の記事を参考にしていただきたい。– [Turbolinks 公式ドキュメント(冪等性の確保)](https://github.com/turbolinks/turbolinks#making-transformations-idempotent)
– [Turbolinks5についてまとめてみる](https://qiita.com/saboyutaka/items/bb089e8208239bf6fdc0
初心者Laravel開発のまとめ
#概要
去年からWeb開発(Laravel)参入、
その前にC,C++はメインです。
まったく別の世界ですが、面白かったです。転職により技術スタッフが若干変わる予定なので(Web開発は変わらない)
いままで使っていたLaravel開発に関して、問題点などまとめたいと思います。###1.開発環境
一番最初、もちろんQiitaの記事を参考
[【超入門】20分でLaravel開発環境を爆速構築するDockerハンズオン](https://qiita.com/ucan-lab/items/56c9dc3cf2e6762672f4)
その時点で、PHPの経験もないし、MySQLの経験んもほぼない状態です。
とりあえず、うまく開発始まりました。Dockerの環境を弄って、だんだんPHPとMySQLのやり方が分かったので、
その後(一か月以降)、WampServerやMySQL Workbenchなどいろいろ良いツール
の存在が知っていて、ローカル環境に移行しました。デプロイの部分は
会社Azureを使っているので、VSCodeのAzure拡張機能を使って簡単にデプロイできます。
【Jest】mockの初期化ができない時の備忘録
# はじめに
TypeScriptで開発を行う際、テストツールとしてJestを利用しました。
その際、特定のテストに対しモックを設定したのですが、他のテスト結果にも影響してしまったので、Mockの初期化について整理し、備忘録としてまとめてみました。
Math.randomとDate.getMonthのモック化を例に紹介します。# 目次
1. [モック化と初期化](#Jestでのモック化と初期化方法)
1. [サンプルコード](#サンプルコード)
1. [ハマったところ](#ハマったところ)
1. タイポ
1. 初期化位置
1. afterEach()での初期化# 環境
node: 16.4.2
ts-node: 10.4.0
typescript: 4.5.5
@types/jest: 27.4.0
jest: 26.6.3
ts-jest: 26.5.6# Jestでのモック化と初期化方法
## jest.spyOn()でのモック化
random関数が必ず0を返すモック“`
const spyRandom = jest.spyOn(glob
【Jest】randomやDateのモック化
# はじめに
TypeScriptで開発を行う際、テストツールとしてJestを利用しました。
その時のモック化したコードを備忘録としてまとめてみました。
Math.randomとDate.getMonthのモック化を例に紹介します。# 環境
node: 16.4.2
ts-node: 10.4.0
typescript: 4.5.5
@types/jest: 27.4.0
jest: 26.6.3
ts-jest: 26.5.6# サンプルコード
“`sampleMethod.ts
export default class sampleMethod {
public getRandomNumber(): number {
return Math.random()
}
public getMonth(): number {
return new Date().getMonth()
}
}
“`以下はモックを使う前のテストコード
“`sampleMethod.test.ts
import sampleMet
【obniz×圧電スピーカー】処理(曲)コードをまとめました。 #マンボ #Disney
obniz1Yと圧電スピーカーを使って今まで実装してきた曲のコードのみを公開します。
自分で楽しんでもよし!他の事に使ってもよし!実際に使った記事は以下になります。
https://qiita.com/yui-kouy/items/d7959be61262a714833f
※obnizの0と1へ圧電スピーカーをつないで使用するソースコードを記載します。
#音符・休符の長さ、音階周波数について
##音符・休符の長さ
音符・休符の長さは、全音符・全休符の長さを基準として定数にします。
【参考】[バンド・スコアの小楽典 – 2. 音譜・休符・拍子](https://www.doremi.co.jp/gakufu_no_mikata/gakufu/basic2.ht
vistaでillustrator その5
#概要
vistaでillustratorやってみる。
アートボード作って、sin波書いて、png出力してみた。#写真
![ill4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/9f492503-47da-027c-b90e-278a38c601cc.png)
#サンプルコード
“`
var v = [];
for (var i = 0; i < 400; i++) { var s = Math.sin(i * 2.0 * Math.PI / 100.0) * 200 + 200; v.push([i, s]); } var docRef = documents.add(DocumentColorSpace.RGB, 400, 400); var lineColor = new RGBColor(); lineColor.red = 255; lineColor.green = 0; lineColor.blue = 0; var line = activeDocume
vistaでillustrator その4
#概要
vistaでillustratorやってみる。
アートボード作って、ベジェ曲線書いて、png出力してみた。#写真
![ill3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/5c502ed6-7c77-488e-480a-0e1ae3858f75.png)
#サンプルコード
“`
var docRef = documents.add(DocumentColorSpace.RGB, 400, 400);
var pObj = activeDocument.pathItems.add();
pObj.filled = false;
pObj.stroked = true;
pObj.strokeWidth = 0.3;
var pt = pObj.pathPoints.add();
pt.leftDirection = [100, 50];
pt.anchor = [100, 100];
pt.rightDirection = [100, 150];
var pt = p
Bookmarkletでネット廃人になろう
## 0.はじめに
この記事は以下に当てはまる方が対象です。
* 初心者
* Chromeでよく調べ物をする
* パソコンを複数持っていてブックマークを同期している
* Chrome拡張機能は便利だけどなんとなくセキュリティが心配
* Javascriptなら少しわかるそういう貴方にはブックマークレットがおすすめです。
## 1.作ったもの
以下のようなものをつくりました。
Bookmarkletは便利、拡張機能つかうまでもない。 pic.twitter.com/gcEuGzg40h
— basictomonokai (@basictomonokai) February 3, 2022<
TypeScript で 関数名の後ろに`string`←コレの正体
# TypeScriptでよくわからない書き方が発生した。
“`typescript
const GlobalStyle = createGlobalStyle`
${restCss}
body{
margin : 0;
padding: 0;
box-sizing: border-box;
}
`;
“`
それはこのような物で、関数の後ろに直接 “ ` “ を使用して文字列を書いている。## これなら理解できる。
“`typescript
const GlobalStyle = createGlobalStyle(`
${restCss}
body{
margin : 0;
padding: 0;
box-sizing: border-box;
}
`);
“`# 注意
このQiita記事を書きながら問題解決しているので、無駄に長くなっています。サッっと結果だけ知りたい方は[まとめ](#まとめ)を見たり[CodePen
「Announcing TypeScript 4.6 Beta」を読む
## はじめに
少し前になりますが、TypeScriptのブログで4.6 Betaがアナウンスされました。
個人的に気になるものをメモしてみたいと思います。
## Improved Recursion Depth Checks
再帰的な定義の場合にループ検知するのですかね。今までもヒューリスティックに検知していたので、効果としてはスピードアップということのようです。
## Indexed Access Inference Improvements
[こちら](https://devblogs.microsoft.com/typescript/announcing-typescript-4-6-beta/#indexed-access-inference-improvements)より引用:
“`ts
interface TypeMap {
“number”: number;
“string”: string
古いバージョンのSwiper.jsを使ったら詰まったお話 Ver3.4.1
WEBデザイナー&コーダーのYJ2222です。
JSを使ったスライダープラグインSwiperについてのメモです。## 経緯と概要
今回は最新(2022/2/3時点)の事についてではなく、古いVerのものになります。
経緯としてはコード改修案件で古いVerのまま実装しなくてはならなくて検索に困ったので自分用にまとめることにしました。
わざわざ古いVerを使うことはないかと思いますが、もし同じ境遇の方いたら助けになれば思います。
ただ詳しくは書けないので、参考程度にお願いします。▼正式マニュアル(最新版)
https://swiperjs.com/get-started▼Ver3.4.1で参考にした記事
https://www.willstyle.co.jp/blog/724/## 完成計コード
先に完成形を載せていきます。“`html:html
React + TypeScript: Recoil公式チュートリアルのTodoリストをつくる 01 ー atomを使った項目操作
[Recoil](https://recoiljs.org/)はMeta(Facebook)が実験的に開発している、Reactの状態を管理するライブラリです。状態をひとまとめにするのではなく、ひとつひとつ細かく分けて扱います。「[React + TypeScript: Facebookの状態管理ライブラリRecoilを使ってみる](https://qiita.com/FumioNonaka/items/b254db610d6e8cc17026)」では、その大まかな仕組みを、簡単なコード例でご説明しました。
本シリーズのお題は、Recoil公式「[Basic Tutorial](https://recoiljs.org/docs/basic-tutorial/intro)」の作例とされているTodoリストです。ただし、コードはモジュール分けしたうえで、TypeScriptによる型定義も加えました。この第1回が扱うのは、`atom`を用いたリスト項目の追加・編集・削除の操作です(サンプル001)。
#### サンプル001■React + TypeScript: Recoil tuto
変数定義した配列を呼び出す時、存在しないインデックス番号だとどうなるか?
_コード_
```
var coffee=["moca","santos"];
console.log(coffee[1]);
console.log(coffee[7]);
```_出力_
santos
undefined配列やオブジェクトも一緒で、存在しない要素を取得しようとすると
値が定義されていない(存在しない)という意味の「undefined」と出力されます
例えばif文で_コード_
```
if(coffee===undefined){
console.log("品種は未設定です");
}else{
console.log(coffee);
}
```_意味_
変数coffeeがundefinedの場合
「品種は未設定です」と出力
変数coffeeがundefinedではなかった場合
変数coffeeが出力されるこのような記述をした際、このif文の条件式で使われている「undefined」は文字列ではないため、「"」で囲わなくてもよくなります。
ブラウザでディープコピーができるようになった
Chrome98 で `structuredClone`が来ました。
すでに Firefox では導入済みで、Safari もプレビュー版で導入されているので、近い将来にメジャーブラウザでディープコピーが簡単にできるようになりそうです。
[structuredClone API | Can I use... Support tables for HTML5, CSS3, etc](https://caniuse.com/mdn-api_structuredclone)```js
const original = {
x: 0,
arr: [1, 2],
}// 共有渡し
const sharing = original
//「浅い」コピー
const shallowCopy = {...original}
// ディープコピー
const deepCopy = structuredClone(original)original.x = "x"
original.arr[0] = "x"console.log(original)
// {x:"x", arr:["x"
ChromeDevToolsでスクリプトを終了させる隠しコマンド
## はじめに
Chrome DevToolsのブレークポイントで一時停止したとき、再開ボタンしかないと思っていませんでした?
![長押しアイコン](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/311399/620aae06-fbc9-aac6-0fd8-aa280e765dee.jpeg)
スクリプト実行を一時停止や再開ではなく終了させる方法を紹介します。
## 終了させる方法
結論から言えば、再開ボタンを長押ししてください。スクリプト実行を一時停止すると再開ボタンが現れますが、この再開ボタンを**長押し**すると下側に終了ボタンが現れます。
**終了ボタン**を選べばスクリプト実行が終了します[^1]。
![スクリプト終了](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/311399/4d2c56b4-d153-443c-90bd-c04976f093fe.jpeg)
終了ボタンはChrome 67(2018-05-2