- 1. CSS 勉強メモ0620
- 2. Node.jsのCLIツールでURLを既定のブラウザで開く
- 3. 【備忘録】Javascript : Generatorの基礎・応用に挑戦(2)
- 4. JavaScript関数の書き方 まとめ
- 5. ランダムな点のアニメーション(regl + React 利用)
- 6. fetch template
- 7. 現代のフロントエンド開発シリーズ(7)- フロントエンドでもエンジニアリング必要があるのはなぜですか?
- 8. レガシーなウェブシステムのSELECTタグを使いやすくするJavascript(ブックマークレット)
- 9. obniz を特定の人だけアクセスできるようにする
- 10. Javascriptの復習(5)
- 11. あるだけで一寸嬉しいちょっとした簡易ブックマークレット(たち)
- 12. P5.js 日本語リファレンス(textDescent)
- 13. P5.js 日本語リファレンス(textAscent)
- 14. P5.js 日本語リファレンス(textWidth)
- 15. P5.js 日本語リファレンス(textStyle)
- 16. P5.js 日本語リファレンス(textSize)
- 17. P5.js 日本語リファレンス(textLeading)
- 18. P5.js 日本語リファレンス(textAlign)
- 19. JavaScriptの日付フォーマットはこれだけあれば十分な気がする
- 20. ビデオチャット作るときの逆引きTipsまとめ
CSS 勉強メモ0620
画面をスマホサイズに合わせたい時はでコンテント属性に以下を記載。
“`html
“`画面のサイズによってスタイルを変え場合
に背景色をつける。
以下は画面幅が600-800pxの時に
@mediaの次に条件を記載“`
@media(min-width: 600px) and (max-width: 800px){
body{
background: skyblue;
}
}
“`以下は画面の大きさが0~599px,600~799,800~
で条件を分けて表示しているサンプルコード“`
/* common */
/* small screen */body{
margin: 0;
}.image{
background: pink;
height: 100px;
}.text{
background: gray;
height: 100px;
}asi
Node.jsのCLIツールでURLを既定のブラウザで開く
[open](https://www.npmjs.com/package/open) パッケージを使用すると、クロスプラットフォームでその辺の処理をよしなにやってくれる。
実行したらlocalhost:3000にHTTPサーバを立てたり、実行時にライセンスなどを表示したりするようなCLIツールで便利かもしれない。## Install
“`sh
yarn add open
“`## Usage
非常にシンプル。
“`js
const open = require(‘open’);open(‘https://qiita.com/’);
“`async/await を使用した実用的な例などは [README](https://www.npmjs.com/package/open) を確認されたい。
なお、従来は[opn](https://www.npmjs.com/package/opn)という名称だったものがrenameされたらしい。
【備忘録】Javascript : Generatorの基礎・応用に挑戦(2)
## はじめに
この記事は[前回](https://qiita.com/noytdm1021/items/335e224d928eb5ad5f05)の記事の続きです。
前回の記事から読んでいただけると喜びます。よろしくお願いします。また度々、間違い等が散見されると思いますが、その際はコメント欄でご指摘いただけますと幸いです。
よろしくお願いします。## ジェネレータをfor~of文で回してみよう。
前回の記事でも用いた`colors`ジェネレータを`for~of`文で回してみました。“`javascript.js
// colorsジェネレータを用意
function* colors () {
yield ‘red’;
yield ‘blue’;
yield ‘green’;
}const myColors = []; //空の配列を準備
for (let color of colors()) {
myColors.push(color);
// colorを配列に代入
}
console.log(myColors);
//
JavaScript関数の書き方 まとめ
備忘録として残します。
“`Javascript
// 関数宣言
function double(x) {
return x * 2;
}// 関数式
const double = function(x) {
return x * 2;
}// アロー関数
const double = (x) => {
return x * 2;
}// 引数が一つの場合()省略可能
const double = x => {
return x * 2;
}// 一行の場合は{}も省略可能
const double = x => x * 2;“`
ランダムな点のアニメーション(regl + React 利用)
こんにちは。
[regl](https://github.com/regl-project/regl) (Functional WebGL, GitHub) + React を利用しランダムな点のアニメーションを描いてみました[^1]。今回、[use-interval](https://github.com/donavon/use-interval) (GitHub) を用いてみました。[^1]: ただし、“`fragColor“` など未だに十分理解できていないので変な箇所があるかもしれません。
![regl.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/54617/75a59628-7b14-41fd-33e2-ddbc57edf281.jpeg)
“`App.js
import React from ‘react’;
import createRegl from ‘regl’;
import useInterval from ‘use-interval’;const App =
fetch template
phpでデータを取ってくる。
変数(parameter)と値(value)をsetDataに渡して、setDataToDB.phpでは例えばPDOでDBにデータをupdate(or insert)する。
setDataToDB.phpがもし戻り値としてデータセットを返す場合には“`then((json)“`の中で処理する。
“`fetchSample.js
function setData(paramater, value) {
var res = fetch(“./setDataToDB.php”, {
method: “POST”,
headers: {
“Content-Type”: “application/json”,
},
body: JSON.stringify({
“value”: value
})
}).then((response) => {
if(response.ok)
re
現代のフロントエンド開発シリーズ(7)- フロントエンドでもエンジニアリング必要があるのはなぜですか?
> ソフトウェアの品質を改善するために、定量化および標準化された方法でソフトウェアを開発する
では、なぜフロントエンドを体系的にする必要があるのでしょうか。私はいくつかの点があるかと思います:
1. 以前、フロントエンドの複雑さはそれほど高くなく、静的なページを表示するだけで十分でしたが、技術の進歩に伴い、エンジニアリングに役立つツールを導入しないと、多くのアプリケーションがますます複雑になっています(googleドライブ、facebookなど)。エンジニアリングの手法を導入しないと、プログラムの開発は管理しにくくなるでしょう
2. フロントエンドの開発が徐々に成熟しているため、フロントエンドエンジニアリング用のツール(gulp、webpackなど)を開発する余裕があります。実際、フロントエンドエンジニアリングは、「ああ、エンジニアリングを今すぐやろう」みたいな流行語ではありませんが、開発中は「ああ、できるなら」のように感じられます。
今日は、フロントエンドエンジニアリングを行う際の一般的な概念と構築ツールをいくつか紹介します。
## [Webpack](https://w
レガシーなウェブシステムのSELECTタグを使いやすくするJavascript(ブックマークレット)
久しぶりにブックマークレット
#困りごと
うちの会社には、スーパーなレガシーシステムがありまして、、、
HTMLで作られているWebシステムなのですが、`その画面に入力する身としては、たまったもんじゃありません。目で見て選択するなんて無理です。
ということで、レガシーシステムに息を吹き込む**ブックマークレット**を作りました。
#使うもの
– Javascript
– jQueryレガシーシステムが相手なので、jQueryで楽させてもらいます。
#コード
こんな感じになりました。コメント入れて60行くらい。
さすがにレガシーといえど、jQueryを使ってコード書きました。“`javascript:select-filter.js
void ((function (f) {
if (window.jQuery && jQuery().jquery > ‘2.0’) {
console.log(‘use jquery
obniz を特定の人だけアクセスできるようにする
# はじめに
[obniz](https://obniz.io/ja/)は、ハードウェアをあたかもWebサイトの要素の一つであるかのように制御することができるマイコン開発ボードです。
購入して電源を繋いで、Wi-Fiのパスワードを入力すれば、専用のobniz Cloudに接続され、あとはHTML+JavaScriptなどでプログラムを記述し、スマートフォンやパソコンのブラウザから制御することができます。
ファームウェアの書き換えが不要なので、I2C通信など、センサの制御をちょっと試したいときは、ブラウザで再読み込みするだけで良いのでとても便利に使っています。
obniz OS搭載のM5StickCなら、6軸センサや赤外線LEDも搭載されているので、マイコン開発がほぼ遠隔でできてしまいますね。obniz Cloudのリポジトリでは、HTMLやJavaScriptのプログラムを書いて保存することができるようになっていて、**公開**または**非公開**から選べるようになっています。非公開の場合は、自分のobniz アカウントでログインする必要があります。
今回は、自分と、共有した相手
Javascriptの復習(5)
# この記事について
Javascript初学者がアウトプットの場として書いている記事なので、スルーしてもらっても大丈夫です。Rubyを学習した後なのでRubyと絡めて記事を書くこともあります。#ファイルの分割
コードの量が増えてくるとコードの修正が大変になります。1つのファイルに書くのではなく、複数のファイルに分割することで管理しやすくなります。今回は分割する時のコードの書き方を説明します。
ファイルを分割する時は、それぞれのファイルを関連付け必要な値を渡さなければなりません。
「export default クラス名や定数等」とクラスや定数の下に書く事で他のファイルへとエクスポートできます。
※因みにexportは英語で「輸出」を意味します。“`animal.js
class Animal {
}
//クラス定義後に書く事で他のファイルで使うように準備できます。
export default Animal;“`
次に、上記のAnimalクラスを使いたいファイルで「import クラス名や定数 from “./ファイル名”と書きます。
これにより、そのファ
あるだけで一寸嬉しいちょっとした簡易ブックマークレット(たち)
# 概要
最近自分で作ったブックマークレットの内、
利用頻度が高く、作って良かったと感じたものをいくつか記載。※『作った』とかいう表現は大げさだけど
# ブックマークレットたち
## 上へ
所謂『1つ上の階層』に移動する。“`javascript:☝
javascript:(function(){
window.location.href = window.location.href.replace(/[^\/]+\/?$/g, ”);
})();
“`
“`javascript:☝ (ブックマーク登録用)
javascript:(function(){window.location.href = window.location.href.replace(/[^\/]+\/?$/g, ”);})();
“`## title
ページ タイトルを入力ダイアログで表示し、コピーを補助する。“`javascript:title
javascript:(
function(){window.prompt(‘page title’, documen
P5.js 日本語リファレンス(textDescent)
このページでは[「P5.js 日本語リファレンス」] (https://qiita.com/bit0101/items/91818244dc26c767a0fe) の textDescent関数を説明します。
## textDescent()
### 説明文
現在のフォントの現在のサイズでディセントを返します。ディセントとはベースラインより下のディセンダーが最も長い文字のピクセル単位の距離を表します。
![ascentDescent.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43467/1217cd97-12df-88df-cc4a-9f6d74f42000.png)
### 構文textDescent()
### 戻り値
Number:ディセンダー(ピクセル単位)
### 例1
“`javascript
function setup() {
createCanvas(200, 200);let base = 100;
// ディセントに乗ずる係数(フォ
P5.js 日本語リファレンス(textAscent)
このページでは[「P5.js 日本語リファレンス」] (https://qiita.com/bit0101/items/91818244dc26c767a0fe) の textAscent関数を説明します。
## textAscent()
### 説明文
現在のフォントの現在のサイズでアセントを返します。アセントとはベースラインより上の最も高い文字の距離をピクセル単位で表したものです。
![ascentDescent.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43467/0dfbcb81-2583-6862-1f0c-b80b065f9384.png)### 構文
textAscent()
### 戻り値
Number:アセント(ピクセル単位)
### 例1
“`javascript
function setup() {
createCanvas(200, 200);let base = 100;
//アセントに乗ずる係数(フォントごとに異なります)
P5.js 日本語リファレンス(textWidth)
このページでは[「P5.js 日本語リファレンス」] (https://qiita.com/bit0101/items/91818244dc26c767a0fe) の textWidth関数を説明します。
## textWidth()
### 説明文
文字または文字列の幅(ピクセル単位)を計算して返します。
### 構文
textWidth(theText)
### パラメタ
– theText
String:計算する文字または文字列### 戻り値
Number:文字または文字列の幅(ピクセル単位)
### 例1
“`javascript
function setup(){
createCanvas(300, 300);textSize(14);
let aChar = ‘P’;
// テキストサイズ14の文字幅を取得します
let cWidth = textWidth(aChar);text(aChar, 0, 40);
// 取得したサイズの位置にラインを描画します
line(cWidth, 0
P5.js 日本語リファレンス(textStyle)
このページでは[「P5.js 日本語リファレンス」] (https://qiita.com/bit0101/items/91818244dc26c767a0fe) の textStyle 関数を説明します。
## textStyle()
### 説明文
システムフォントのテキストスタイルを NORMAL、ITALIC、BOLD または BOLDITALIC に設定または取得します。
注:これは CSS スタイルによってオーバーライドされる場合があります。非システムフォント(OpenTypem、TrueType など)の場合は, 代わりにスタイル付きフォントをロードしてください。### 構文
textStyle(theStyle)
textStyle()
### パラメタ
– theStyle
定数:設定するテキストスタイル(NORMAL、ITALIC、BOLD、BOLDITALIC)### 例1
“`javascript
function setup() {
createCanvas(200, 200);strokeWeight(0);
P5.js 日本語リファレンス(textSize)
このページでは[「P5.js 日本語リファレンス」] (https://qiita.com/bit0101/items/91818244dc26c767a0fe) の textSize関数を説明します。
## textSize()
### 説明文
現在のフォントサイズを設定/取得します。フォントサイズはピクセル単位です。
### 構文
textSize(theSize)
textSize()
### パラメタ
– theSize
Number:設定するフォントサイズ(ピクセル単位)### 例1
“`javascript
function setup() {
createCanvas(200, 200);textSize(12);
text(‘Font Size 12’, 10, 30);
textSize(14);
text(‘Font Size 14’, 10, 60);
textSize(16);
text(‘Font Size 16’, 10, 90);
}“`
### 実行結果
https://editor
P5.js 日本語リファレンス(textLeading)
このページでは[「P5.js 日本語リファレンス」] (https://qiita.com/bit0101/items/91818244dc26c767a0fe) の textLeading関数を説明します。
## textLeading()
### 説明文
テキストの行間の間隔をピクセル単位で設定/取得します。この設定は textSize() の以降のすべての呼び出しで使用できます。
### 構文
textLeading(leading)
textLeading()
### パラメタ
– leading
Number:設定する行間隔のサイズ(ピクセル単位)### 例1
“`javascript
function setup(){
createCanvas(200, 200);
textSize(12);// 表示するテキスト。 ‘\n’ は「改行」文字です
let lines1 = ‘ABC\nDEF\nGHI\nJKL\nMNO\nPQR\nSTU’;
// 行間隔を10に設定します
textLeading(10);
P5.js 日本語リファレンス(textAlign)
このページでは[「P5.js 日本語リファレンス」] (https://qiita.com/bit0101/items/91818244dc26c767a0fe) の textAlign関数を説明します。
## textAlign()
### 説明文
テキストを描画するための現在の配置を設定します。 horizAlign(LEFT、CENTER、RIGHT) および vertAlign(TOP、BOTTOM、CENTER、BASELINE)の2つの引数を受け入れます。
horizAlign パラメータは text() 関数のx値を参照し、vertAlign パラメータはy値を参照しています。
したがって、textAlign(LEFT) と記述する場合、テキストの左端を text() で指定したx値に揃えます。 textAlign(RIGHT, TOP)と書くとテキストの右端をx値に、テキストの上端をy値に揃えます。
### 構文
textAlign(horizAlign, [vertAlign])
textAlign()
### パラメタ
– horizAlig
JavaScriptの日付フォーマットはこれだけあれば十分な気がする
日付フォーマットは言語やライブラリによって微妙に書き方が違ったりして覚えるのが面倒です。
JavaScriptならライブラリ不要で以下の定義を入れておけば足りそうな気がしたのでメモしておきます。
“`javascript
Date.prototype.format = function(formatter, utc) {
var month_en = [‘January’, ‘February’, ‘March’, ‘April’, ‘May’, ‘June’, ‘July’, ‘August’, ‘September’, ‘October’, ‘November’, ‘December’];
var wday_en = [‘Sunday’, ‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’, ‘Saturday’];
var wday_ja = ‘日月火水木金土’;
return formatter(utc ? {
year: this.getUTCFullYear(),
month:
ビデオチャット作るときの逆引きTipsまとめ
リモートワークのため社内用ビデオチャットツールを先日作ったのですが、せっかくなので一部をオープンソースにしてGitHubにあげておきました。
[ukkz/v-sky: Single page video chat appplication](https://github.com/ukkz/v-sky)
※リファクタしてないので見辛いですSPAなのでGiHub Pages上でそのまま利用もできます。
[https://ukkz.github.io/v-sky](https://ukkz.github.io/v-sky)で、一旦開発が落ち着いたので、作業時のメモを簡単に整理して公開しておくことにします。
## 構成
– Vue.js (@vue/cli v4.3.1)
– Vuetify @2.3.1
– Vuex @3.4.0
– Vue-Router @3.3.4
– SkyWay## まとめ一覧
### ビデオストリームの情報を知りたい
**使ったところ:実際の映像アスペクト比とブラウザ画面のアスペクト比から複数映像配置時の自動最適化**
`VideoTrac