- 1. p5-matter を使って p5.js での物理演算エンジン(Matter.js)の利用を簡単化する【概要編】
- 2. Markdownのリンクを「別タブで開く」に変換するスクリプト
- 3. 社内の複数あるオンライン事務とバッチ事務を可視化してみた
- 4. Firebaseのバージョンによるimport記法
- 5. jQueryのclickがiPhoneで発火しないと思ったらasyncが原因だった話
- 6. コントローラーで定義した値をJSに受け渡す
- 7. dialogタグを使ってモーダルウィンドウ
- 8. p5.js と物理演算エンジン「Matter.js」の組み合わせをお試し
- 9. microCMSを使い5分でCMS機能を実装してみる【PHP/JS】
- 10. GASでプログラミング入門 ~応用編 Vol.1~
- 11. JavaScript/TypeScriptにおけるimport/exportについての個人的な方針
- 12. LiteXLoader用のプラグインを自作する
- 13. 【Vue Router】動的ルートマッチングによる遷移前後で同じコンポーネントを使用する場合の注意点
- 14. ブラウザ上でプレビューを表示せずにカメラキャプチャする方法
- 15. Typescriptを使う理由
- 16. 'name' は非推奨です。ts(6385)
- 17. Vue.js 値の変更がビューに検知されない問題
- 18. ウェブサイト作成用備忘録・18号:three.jsで似たようなオブジェクトをまとめて生成し、後で個別にアニメーションさせたい【コピペでプレビュー】
- 19. 【JavaScript】ホイスティング(巻き上げ)について
- 20. [React]chart.jsで縦軸に小数点を表示させない方法[TypeScript]
p5-matter を使って p5.js での物理演算エンジン(Matter.js)の利用を簡単化する【概要編】
今回の記事の内容は、以下の記事の最後に書いた「[p5-matter](http://palmerpaul.com/p5-matter/)」の話です。
●p5.js と物理演算エンジン「Matter.js」の組み合わせをお試し – Qiita
https://qiita.com/youtoy/items/0b16f6fb3a1c76d64b68前回の記事では、p5.js での描画処理に「物理演算エンジン Matter.js」を取り入れるという内容を、[CodingTrain のリポジトリ](https://github.com/CodingTrain/website)の中で公開されていたサンプルをベースにして進めました。
その際に、Matter.js の処理をいろいろ書く必要があったのですが、その処理を簡単化できる [p5-matter](http://palmerpaul.com/p5-matter/)というライブラリがあるらしいです。
(物理演算エンジンのお試しをあれこれやっている中、Twitter で「[@takawo さんが OpenProcessing で過去に公開され
Markdownのリンクを「別タブで開く」に変換するスクリプト
Markdown記法では、リンクは次のように書きます。
“`markdown
[リンク先の説明](URL)
“`これを、別タブで開くようにするには(Markdown記法ではHTMLを使えることを利用して)次のHTMLに変換すればOKです。
“`markdown
リンク先の説明
“`Webブラウザーのエディター上(例えば、はてなブログ)でMarkdownを書くときに、この変換を一発でやってくれるスクリプトを作りました。ブックマークレットにして使っています。
“`javascript
javascript:(function(){
const t = document.querySelector(‘#body’);
t.value = t.value.replace(/\[(.*?)\]\((.*?)\)/g, ‘$1‘);
社内の複数あるオンライン事務とバッチ事務を可視化してみた
#はじめに
弊社の汎用機及びそれに群がるシステムでは、オンライン処理、バッチ処理が毎日動作しており、大、中、小合わせるとおよそ100種類以上の規模になります。その個々の事務はファイルの作成、更新、参照を繰り返して事務を進めるのですが、個々の事務は必ずしも独立していません。更に、全体を俯瞰する資料が存在しないため、システムの全体見直しを行う際に非常に困ります。#全体システムの見える化
今回、保守・業務担当にお願いし、各業務ごとに参照しているファイルのうち自業務のファイルではないものについてまとめてもらい、その情報の分析を networkx を用いて有効グラフ化した。なお,見直しにあたり,集約結果から各事務どうしの結合度を求めた。#作業の流れ
1. 全事務のオンライン、バッチシステムの参照関係
* 方法:人力(機械化も可能だが,今回は業務担当にお願いした)
* 入力:業務知見
* 出力:参照関係ファイル
1. オンライン、バッチ業務の参照関係を記した各々1ファイル(参照関係ファイル)にまとめた。
* 方法:プログラム
* 入力:参照関係ファイル
* 出力:参
Firebaseのバージョンによるimport記法
[こちら](https://reddest11.com/firebase%e3%81%ae%e3%83%90%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b3%e3%81%ab%e3%82%88%e3%82%8bimport%e8%a8%98%e6%b3%95/)にまとめてみました。
Ver7以降を対象にしてあります。
jQueryのclickがiPhoneで発火しないと思ったらasyncが原因だった話
## はじめに
こんにちは。ハリモグラ(*Tachyglossus aculeatus*)です。
こう見えてカモノハシと同じく原始的な哺乳類の仲間で、よくハリネズミに似ていると言われます。
ふだんはオーストラリアの草原でのんびりと地中の虫を探しながら過ごしていますが、
ひょんなことからweb屋さんの世界に興味を持ち、自分のサイトを作っています。
今回、サイトを作っていたらある問題にドツボにハマってしまったので、
誰かが同じ轍を踏まないようにQiitaに投稿することにしました。
初投稿です。よろしくお願いいたします。## 環境
– メインPC:Windows 10 Home ver.10.0.18363.1556(Docker Desktop, VSCode)
– メイン携帯:iOS 14.3 (iPhone 12 Pro Max)
– サブ携帯:Android 11 (UMIDIGI A9 Pro)## 結論
– **目的**:モバイル専用フッターをクリック/タップしたらメニューを表示するようにしたい
– **事案**:jQueryのClickイベントで発火するプログ
コントローラーで定義した値をJSに受け渡す
# 開発環境
– OS:macOS Big Sur 11.2.2
– Ruby:2.6.5
– Ruby on Rails:6.0.0
– テキストエディタ:Visual Studio Code# つまづいたこと
投稿の詳細画面から非同期通信でDB更新をしたいと考えたときに、更新に必要な値を更新アクションを定義しているコントローラーに渡せず詰まった。コントローラーからビューファイルに値を渡すときはインスタンス変数を定義するが、JavaScriptへはどうしたらいいのだろう?と思い調べてみた。**gon**というgemの導入により実現できるらしい。
# 実践したこと
[gon](https://github.com/gazay/gon)は簡単にJSファイルにデータを受け渡すために作られたgemらしい。(と、いうことは難しい手順を踏めば使わなくてもできるということか・・・)使い方は、
①まずgemファイルにgonを定義
“` gemfile
gem ‘gon’
“`②gemをインストール
“`
% bundle install
“`③includeの記述
dialogタグを使ってモーダルウィンドウ
html5の`dialog`タグを使ってモーダルウィンドウ実装するとどうなるのか試してみたかった。
#HTML
クラス構文使って以下の通りに。“`html
class Modal { constructor(dialog){ if (dialog.tagName!=='DIALOG') throw 'target is not DIALOG' if (dialog.classList.contains('modal-instance')) throw
p5.js と物理演算エンジン「Matter.js」の組み合わせをお試し
以下のツイートの動画で、「円同士がぶつかったり、地面みたいなところの上を転がったり」という部分の仕組みの話です。
先ほどツイートしてた、#p5js と Matter.js を組み合わせて物理演算エンジンに入門してみた話の続き。
取り急ぎ Handtrack.js を使った実装を追加して、カメラ映像からの手の認識と組み合わせた機能を追加してみた! pic.twitter.com/ScPjDsLv6K
— you (@youtoy) Septemb
microCMSを使い5分でCMS機能を実装してみる【PHP/JS】
久しぶりです。最近JAMStackとかが流行ってる流れで**ヘッドレスCMS**が使われつつあるので実際に使って爆速でCMS機能を実装してみたので実装例とかを紹介したいと思います。 初心者はもちろん非エンジニアでもわかるレベルで解説・紹介します。
**デモ:https://0115765.com/samples/php/MicroCMS_List.php**
# microCMSとは microCMSは**純国産のヘッドレスCMS**です。
https://microcms.io
ヘッドレスCMSとは表示する部分を排除したCMS(コンテンツ管理システム)のことです。 通常WordPressなどの一般的なCMSはフロントエンドとバックエンドのセットで構築されます。WordPressはテーマなどを使って見える部分を整備しますよね。 一方ヘッドレスCMSは表示する部分(=フロントエンド)を提供せず自分で見える部分を作るので**自由度が格段に増します**。(公式サイトより) ![公式サイトより](https://qiita-image-store.s3.ap-northeast-1.a
GASでプログラミング入門 ~応用編 Vol.1~
社内サークルにてエンジニアから非エンジニアの方向けにプログラミングを教えるという活動を行っています。
今回はその教材応用編の第1弾です。
今まではGASというよりもJavaScriptの基礎文法とアルゴリズムの組み立て方の基礎を学んできたので、本記事以降ではGASを活用した応用編に入っていきたいと思います。
JavaScriptについてある程度知見のある方は本記事から読んでいただいて大丈夫ですが、もしプログラミングに入門して基礎固めをしたいという方がいましたら、下記にVol.1~10までのリンクとそれぞれの記事に含まれる内容を表にしましたので、参考にしていただけますと幸いです。
| 記事 | 内容 | | ---- | ---- | | [GASでプログラミング入門 Vol.1](https://qiita.com/YoshinagaYuta/items/7dfef1ef9fdf0e3d2f28) | 変数 | | [GASでプログラミング入門 Vol.2](https://qiita.com/YoshinagaYuta/items/83f1709bee0a5ef10626)
JavaScript/TypeScriptにおけるimport/exportについての個人的な方針
JavaScript/TypeScriptにおけるimport/exportについて、個人的な方針を考えてみました。
## デフォルトエクスポートは使わない
値や型をエクスポートするときは、常に名前付きエクスポートを使います。
:thumbsdown: デフォルトエクスポートを使っている
```ts:foo.ts export default function foo (): void {} ```
```ts:main.ts import foo from './foo' ```
:thumbsup: 名前付きエクスポートを使っている
```ts:foo.ts export function foo (): void {} ```
```ts:main.ts import { foo } from './foo' ```
なぜなら、名前付きエクスポートにはデフォルトエクスポートに勝るいくつものメリットがあるからです。
- [Avoid Export Default - TypeScript Deep Dive 日本語版](https://typescript-jp
LiteXLoader用のプラグインを自作する
# はじめに 前回はBDSサーバーでプラグインを導入するための準備としてLiteXLoader等を導入しました まだ見てない方はこちらから [Minecraft統合版公式サーバーでプラグインを使う方法【LiteXLoader】](https://qiita.com/nerrog/items/1e54ea7d74f9651ef97b)
今回はLiteXloader(以下LXL)用のプラグインを自作してみよう!っていう記事です 言語はJavascriptを使います(~~Luaは知らねぇ~~) エディタは何でも良いですが、自分はVisual Studio Codeを使ってます VSCode用のプラグインでLXLDevHelperというものあるみたいですが言語が中国語でプラグインなので翻訳しようがないので使ってません。 多すぎるので一部のみの紹介となります。公式ドキュメントに全ての情報が乗っているので気になる人は是非
# 対象 * Javascript触ったことがある人(プログラミングにある程度慣れている人)向け
# 文字を表示してみよう
1.適当になディテクトリにjavaScript
【Vue Router】動的ルートマッチングによる遷移前後で同じコンポーネントを使用する場合の注意点
# 実行環境
- macOS 10.15.7 (19H1217) - Vue.js 2.6.14 - Vue Router 3.5.2
# 前提
以下のように`user`の詳細ページについてのルーティングを行っているとします。
```vue:App.vue ...
... ``` ```javascript:router.js const router = new VueRouter({ routes: [ { path: '/user/:id', component: User } ] }) ```
# 問題点
例えば,`/user/1`から`/user/2`へURLが遷移した場合,どちらのURLでも`User`コンポーネントが表示されます。 しかし,遷移前後のコンポーネントが同じ場合,そのコンポーネントは`rerender`されません。 この例の場合は,`User`コンポーネントは`/user/2`へ遷移した時には`rerender`されないということです。
# 解決策
前述の問題点を解消するためには,次のようにし
ブラウザ上でプレビューを表示せずにカメラキャプチャする方法
javascript を使うとウェブブラウザからカメラにアクセスして画像をキャプチャできる。が、多くのサンプルプログラムではプレビュー表示(カメラから取り込んだままの画像の表示)があったり、さらにその画像を取り込むためのキャンバスエリアがあったりするので、画面のレイアウト上で問題になることがある(なにか悪い目的で使うわけではない。ブラウザ上に必ず警告なりアイコンなりが出るし)。では、プレビュー表示なしにキャプチャができるか?というと、出来ますという話。
##ポイント
- `
具体的には以下のような感じ。Mac の Chrome と Safari で動作確認。
```javascript navigator.mediaDevices.getU
Typescriptを使う理由
# javascriptには限界がある 1.値が自由すぎる javascriptのプログラムでは、使用する値のタイプをあまり意識しない。この変数はどんなタイプの値が入っててどんな用途に使うものかをきちんと理解していない。 2.関数も自由すぎる 変数のスコープが関数ないなのかグローバルかと言ったところも大雑把。使い終わったのに残っている変数があるとerrorの元になる 3オブジェクトも自由すぎる 多くの他の言語ではクラスを定義してこれをコピーしてオブジェクトを作っているがjavascriptでは、クラスがあまり浸透していない
1.2.3これらの要素はいずれもerrorの原因になりかねず非常に安全ではない。
'name' は非推奨です。ts(6385)
某UdemyでJavaScriptの講座を見ていて、初歩的コードをVSCodeで入力していた。
``` let name = 'Tim'; function hello(name){ console.log('HELLO' + name); }
hello(name); ``` ☝エディタの画面上では、最後のhello()の引数に取り消し線が表示されている。そして下のような注意書きが表示された。
``` 'name' は非推奨です。ts(6385) lib.dom.d.ts(18305, 5): この宣言はここで非推奨とマークされました。 const name: void @deprecated 利用できるクイックフィックスはありません ```
動作自体は問題ないが非推奨だと怒られている。 JavaScriptについて、仕事で使っているのに体系的な知識がない私は、なんです……?これ…と同じ言葉で検索をかけた。下記の英語サイトと同じ現象の模様。 https://www.reddit.com/r/vscode/comments/ltonp7/name_is_deprecated
Vue.js 値の変更がビューに検知されない問題
Vue.jsでの実務が多くなってきて、ビュー側が変更されない問題が多すぎたので、解消方法一旦まとめました。
公式ドキュメントにもVue2で検知されない変更のパターンはまとめられています 参考リンク → [Vue 2 での変更検出の注意事項](https://v3.ja.vuejs.org/guide/change-detection.html#%E3%83%AA%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%95%E3%82%99%E3%83%95%E3%82%9A%E3%83%AD%E3%83%8F%E3%82%9A%E3%83%86%E3%82%A3%E3%81%AE%E5%AE%A3%E8%A8%80)
## オブジェクトの場合 公式ドキュメント >Vue では、すでに作成されたインスタンスに対して新しいルートレベルのリアクティブなプロパティを動的に追加することはできません。
```js data: { user: { name: "taro", age: 52, }, }, methods: {
ウェブサイト作成用備忘録・18号:three.jsで似たようなオブジェクトをまとめて生成し、後で個別にアニメーションさせたい【コピペでプレビュー】
タイトル通りの目標を実現させようとした結果、最終的にこのようなサンプルが完成しました。
学習が進むたびにプレビューのコードがどんどん長くなってそろそろ邪魔になってきたので、今回は折りたたみ機能を活用してみました!
__【コピペでプレビュー】__
```HTML