Loading

S.F. Info.

S.F.@SFPGMR

2019/11/5 6:01:06

Shadow DOMというのもすでにブラウザでは実装されているのか。。

shadow DOM の使い方 - Web Components | MDN
Web コンポーネントにおいてカプセル化 (構造やスタイル、挙動を隠し、同じページの他のコードと分離すること) は重要です。これにより他の場所でのクラッシュを防ぎ、またコードが綺麗になります。Shadow DOM API はこの隠され分離された DOM を付加するための方法を提供しています。この記事では Shadow DOM を使う基本を記述しています。

2019/11/5 6:04:00

twitter apiのwidget.jsの動きをchrome developper toolで見ていて、「#shadow-root」なるものを見つけたので「これ何?」と思ったんだよね。まあしかし、ちょっと見ぬ間にいろいろ変わっとるなあ、Webの技術は。。 https://t.co/McrHnAjmio

2019/11/6 20:20:20

「Display Locking」なるものもあるしな。。

Display Locking によるレンダリングの最適化と Async DOM | blog.jxck.io
React や lit-html などにより、 DOM 操作の抽象化に加えて最適化が提供されることが一般的となった。見方を変えれば、本来ブラウザがやるような最適化を、ライブラリが肩代わりしていると捉えることもできる。これは、現在の標準 API には、規模が大きく処理が複雑な...

2019/11/7 6:03:24

仕様的には今こうなっているようだ。試してみたところ、jxckさんの方法ではできなくなってるようだ。

GitHub - WICG/display-locking: A repository for the Display Locking spec
A repository for the Display Locking spec. Contribute to WICG/display-locking development by creating an account on GitHub.

2019/11/7 6:11:54

ちなみにドラフトの仕様を私が試すと、chrome 78では死亡、Chrome Canaryでは動いた。が意図した動きにはならなかった。これは私の実装が悪いのかもしれないが。。今の仕様はHTML Attributeで表示・非表示をコントロールするようになったようですな。

2019/11/7 21:00:04

twitterのwidgets.jsを使うのではなく、いちから描画することにするかなあ。やっぱり。

2019/11/7 21:00:59

スレッドになってるのを1つのコンテンツとしてまとめたい欲求もあるしなあ。。

2019/11/11 6:13:16

今の状況。ちょっとずつ進めている。。 https://t.co/OACvnEz28i

2019/11/11 18:08:17

css grid + jsでやるのが、一番モダンなmasonryの実装方法かもね。。

Create Horizontal Masonry layouts with CSS Grid Layout
A tutorial to create a left-to-right masonry layout using CSS Grid Layout properties. Practical and dynamic use case involves a tiny bit of JavaScript.

2019/11/12 20:28:28

tweetを独自描画するのもいいんだけど、puppeteerを使ってプリレンダリングしたものを静的HTMLとして保存するのはどうだろうか。ちょっと試してみようかなと。

GitHub - puppeteer/puppeteer: Headless Chrome Node.js API
Headless Chrome Node.js API. Contribute to puppeteer/puppeteer development by creating an account on GitHub.

2019/11/15 6:14:29

puppeteerによるプリンレンダリングはやめて、普通に自前描画することにした。

2019/11/15 6:14:31

そして今の成果物。Youtube Playerを埋め込んでみた。なんかちょっともたつくわな。。

No Image
Twitter APIを試す
https://t.co/Dx68nOG3N8

2019/11/17 7:00:00

今まではAPI得たデータを適当に解釈して表示してきたが、今後は以下を読んでちゃんとやるか。。

No Image
Introduction to Tweet JSON — Twitter Developers

2019/11/17 7:05:03

クォートされてるリツイートとかの処理とか、文中のURLやハッシュタグ、URL先のページもTwitter Cardに対応しているんであればそれを解析して表示してやらんといかんしな。。なかなかめんどい。widget.jsに任せると楽なんだけどちょっと重いし、プリレンダリングしずらいんだよなあ。

2019/11/17 7:05:04

つまり自前描画はなかなか大変。。

2019/11/17 7:07:44

私のやつは、ogpもひも解いてカード形式で表示しようと思ってるけどね。。オリジナリティがある?のはスレッドの表示部分だけなので+αをどこで出すか。。

2019/11/18 6:09:46

といいつつogpあたりのところはほとんどいじらず、twitter videoのところをvideoタグで再生できるようにしたに留まる。。土日はほとんどコード書かずに終わる。。

No Image
トップページをリニューアルする
https://t.co/nWwZ8f0JL9

2019/11/20 5:15:37

ogp/twitter card/json-ldのメタデータをpuppeteerで取り出すコードをようやく書き始めた。

2019/11/20 5:21:16

しかしquerySelector/querySelectorAllは便利ですなあ。。これでdom操作のためだけにjquery/d3を使わなくてもよくなってますな。しかしこのAPIを規格に入れさせたという点でjqueryの果たした役割は大きいわ。。

2019/11/20 6:17:48

d3はselectしたグループに対してまとめて何かできるという点でメリットはあるけどね。利用者側ではグループに対して何かするときにループ回さなくていいんだよね。。jqueryもそうだったかな?

2019/11/20 6:22:26

今日書いたのはこのコード。。

sandbox/make-embeded.mjs at 238f8f4b2c38082dcf5f944e364f2adcc10a5e80 · sfpgmr/sandbox · GitHub
JS,WebGL,three.jsをいじるためのレポジトリ. Contribute to sfpgmr/sandbox development by creating an account on GitHub.

2019/11/21 5:01:15

Array.reduceのつかいどころをようやく理解できた私。

2019/11/21 5:10:47

puppeteerのevaluate()中でconsole.logの内容をホストに転送する方法。

Console.log() from page.evaluate() not working · Issue #1944 · puppeteer/puppeteer · GitHub
Hello, I'm trying to console.log() in a page.evaluate() function and it's not working... Any solutions ? Thank you !


しかし以下のIssueが発生。
EventEmitter memory leak detected. 11 exit listeners added · Issue #594 · puppeteer/puppeteer · GitHub
This is the full error message: MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added. Use emitter.setMaxListeners() to increase limit I run Node v8.1.2 w...

2019/11/21 5:13:34

Possible EventEmitter memory leak detected. 11 console listeners added to [Page]. Use emitter.setMaxListeners() to increase limit

2019/11/21 5:36:34

これを回避するには以下を追加しないといけないようですな。。
process.setMaxListeners(Infinity); // <== Important line

2019/11/21 5:36:35

さらにいかによれば

「Note: you don't need to launch browser just to create a page. Instead, you can open multiple pages in the same browser:」

らしい

EventEmitter memory leak detected. 11 exit listeners added · Issue #594 · puppeteer/puppeteer · GitHub
This is the full error message: MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added. Use emitter.setMaxListeners() to increase limit I run Node v8.1.2 w...

2019/11/21 5:47:18

たしかにこれも考慮せんと同じエラーが出ますな。。 https://t.co/2Gd3AoW7YF

2019/11/21 20:50:31

ページからのメタデータの取り出しはそこそこできたと思うので、これを描画するコードを追加することにしよう。あとは無限スクロールをどう実装するかですな。

2019/11/24 5:59:16

ページのメタデータ(ogp/twitter card/json-ld/html meta)を取り出してカード形式で表示する部分は少し進捗。イメージの取り出しはもうちょっとちゃんとしないとなあ。。json-ldをもうちょっとちゃんとパースするとか、faviconも対象にするとか、アバターのイメージも含めるとか。。 https://t.co/KJpoZfGQ07

2019/11/24 10:58:47

ツイート内部やカード内部のレイアウトはcss gridを使ってる。これはほんとに便利で楽。flexboxよりもずっとわかりやすいしね。

2019/11/24 18:43:38

ogpのメタデータ取り出しコードは思いっきりバグっていたことが発覚。修正した。メタデータ取り出しコードを実際書いてみると、json-ldのほうが楽でいいわ。textContent取り出してJSON.parseするだけだもんね。こりゃgoogleもこれからはjson-ldで行くって言うわな。。

2019/11/24 18:50:05

データをmetaタグや普通のタグに埋め込むのは解析コストが高いですわな。私ごときではメタデータを使って関係や構造の解析まではとてもできんが、検索エンジンとかはふつうにやってるんだろうかね。。

2019/11/25 6:19:26

metaデータのパーサはnode moduleであったのですな。

GitHub - blakeembrey/node-htmlmetaparser: A `htmlparser2` handler for parsing rich metadata from HTML. Includes HTML metadata, JSON-LD, RDFa, microdata, OEmbed, Twitter cards and AppLinks.
A `htmlparser2` handler for parsing rich metadata from HTML. Includes HTML metadata, JSON-LD, RDFa, microdata, OEmbed, Twitter cards and AppLinks. - blakeembrey/node-htmlmetaparser

2019/11/25 6:28:42

まあ自前のコードでかなりのことができるようになったのでこのままで行くけどね。。

2019/11/25 6:28:42

twitterのuser_timeline apiは過去3200ツィート分までは遡れるので、APIを使って取れるだけデータを取った。これを使って無限スクロールで過去コンテンツをさかのぼれるようにし、かつページングもできるようなデータ&ページ構造を考えて実装してみることにする。

2019/11/25 7:28:41

youtubeコンテンツは初期はサムネイルとタイトル表示とし、クリックしたらplayerに差し替えて再生するように変更した。そしたらページ表示がかなり軽くなった。

2019/11/26 21:01:51

ページングと無限スクロールの両立は以下の技術でなんとかなりそうな気がしてきた。

・fetch
・DOMParser
・いろいろなObserverたち
・HTML History

2019/11/26 21:05:17

Mutation/Intersection/Resize Observerはなかなか強力である。。

MutationObserver - Web API | MDN
MutationObserver とは、指定したコールバック関数を DOM の変更時に実行させる API です。この API は、DOM3 Events の仕様で定義されていた Mutation Events を新しく設計し直したものです。

Intersection Observer API - Web API | MDN
Intersection Observer API (交差監視 API) は、ターゲットとなる要素が、祖先要素もしくは文書の最上位のビューポートと交差する変更を非同期的に監視する方法を提供します。

ResizeObserver - Web API | MDN
ResizeObserver インターフェイスは、Element のコンテンツ矩形または SVGElement のバウンディングボックスへの変更を監視します。コンテンツ矩形は、コンテンツを配置できるボックスです。つまり、ボーダーボックスからパディングを引いたものです。(ボーダーとパディングの説明はボックスモデルを見てください。)

2019/11/28 6:09:51

Intersection Observerを使用してInfinite Scrollを実装してみた。

トップページをリニューアルする
Programming,Music,HTML5,WebGL,javascript,WebAudio
https://t.co/4lwJBO1fIB

2019/11/28 6:54:55

iphone7だと処理が追いつかない感じ。。

2019/11/28 6:57:57

fetch + domparser + intersection observer の組み合わせがモダンなinfinite scroll の実装方法なのかなーと思ってるけどね。。

2019/11/28 7:04:43

fetchはjsonではなく次のページを読んで、domparserでパースしてからarticleだけを抜き出してる。それを適宜appendしてくんだよね。

2019/11/28 7:04:44

挿入のタイミングは番兵エレメント+intesection observerの組み合わせでコントロールするわけですな。

後藤寿庵@juangotoh

2019/11/25 19:25:44

1981年のI/O表紙。「パーコン」は「パーソナルコンピューター」の略語。このころI/Oは「パーコン」、ASCIIは「パソコン」と記述していた。最終的に残ったのは「パソコン」だけど、当時表記がぶれていた歴史的事実を知ってほしい。 https://t.co/Dfg9xIcDlf

トモカズ@tomo0354

2019/11/24 8:33:41

ベッドの脇に(PCと)ディスプレイを設置
当時のラジカセを置いてあるかのような感じになり、サイズもほぼ同じ。
中学生の頃に戻ったみたい。(懐古趣味) https://t.co/R0Lbzv6qA9

葛飾出身@ahtamaraneze

2019/11/23 3:53:48

今日の日記です(527)
アホみたいに時間がかかりました https://t.co/jYpShT0YEp

S.F.@SFPGMR

2019/11/19 5:02:05

@osmk15 当時使っていたのはこれですね。

No Image
Amazon | 1stモール スマホにキーボード 無線キーボード Bluetooth 搭載 カバー ケース アンドロイド デザイン おしゃれ iPhone Android iPad ブラック ST-1STSMAPASO2 | COM-SHOT | パソコン用キーボード 通販

カヂロ♨️原稿@kadikadisake

2019/11/17 21:47:51

にんげんってなんだ https://t.co/05XcMpqjAi

S.F.@SFPGMR

2019/11/17 8:16:30

最近この「ろっか・ばい・まい・べいびい」がとても気に入っていて、よく聴く。ギターとベースのシンプルなバッキング。ギターの音が心の琴線に触れているような感じ。デモをそのままミックスしたらしいね。。

Youtube - 細野晴臣 - ろっか・ばい・まい・べいびい

2019/11/17 8:19:25

細野さんの曲で一番好きなのは「夏なんです」だ。これもアコギの音が耳に心地よいし、凝ってるなあという印象。。

Youtube - Happy End - 風街ろまん - 07. 夏なんです

2019/11/17 8:21:03

「夏なんです」に匹敵するくらい好きなのが「L.D.K.」なんですわ。これが。

Youtube - Haruomi Hosono - Living Dining Kitchen

2019/11/17 8:23:15

「灰色の段階」。いっときこればかり聴いてたときもある。ヤオヤのリズムってほんといいなあと思わせる一曲。

Youtube - Gradated Grey - YMO

S.F.@SFPGMR

2019/11/17 7:09:43

タイムラインで流れてきたので知った、dwitterなるサービスもなかなか面白いよねぇ。。

No Image
Dwitter - javascript demos in 140 characters

2019/11/17 7:11:26

No Image
fleur v2 by netule | Dwitter

S.F.@SFPGMR

2019/11/7 20:59:14

のどの痛みがようやく引いてきた感じ。。

2019/11/15 6:16:59

まだ咳は出ている。痰の粘度が高く、のどにへばりついてとても気持ちが悪い。それで咳が止まらないようだ。

S.F.@SFPGMR

2019/11/11 13:08:16

久しぶりにゲームをSTEAMで購入。
セール品だけどね。前から欲しかったやつを3つほど。。

2019/11/11 13:09:02

しかしやる時間があまりない。tomb raider も途中までで放置してるし。。

2019/11/11 19:56:13

今年買ったゲームは(全部STEAM)、

・Shadow Of The Tomb Raider

Youtube - シャドウ オブ ザ トゥームレイダー ”Launch"トレーラー 日本語吹き替え版

2019/11/11 20:06:51

・コナミ アーケード・クラシックス

これはサンダークロスやりたさに衝動買い。。

Youtube - 「アーケードクラシックス アニバーサリーコレクション」ローンチトレーラー

2019/11/11 20:06:51

・Cities Skylines
以外にシム・シティみたいなやつ好きなんだよね。。

Youtube - Cities: Skylines - Release Trailer

2019/11/11 20:06:51

・Call Of Duty WW2
まあこれは昔好きだったFPSが、WW2に回帰したバージョンである。。

Youtube - Official Call of Duty®: WWII Reveal Trailer

2019/11/11 20:09:22

そしてこれ。。R-TYPE Dimensions。これもちょっとやりたくてね。。3D <--> 2Dがシームレスに切り替わるのがちょっとすごいですわ。。

Youtube - R-Type Dimensions プロモーションムービー

2019/11/11 20:10:38

セール品も含んでるので全部で10Kくらいですわ。STEAMのセールはちょっとやばい。。

2019/11/11 20:52:54

ゲームの振り幅が大きいのはまあしょうがない。風船割りゲームくらいからのお付き合いですからなあ。。

2019/11/11 20:55:50

何年も心待ちにしてるゲームは1つだけあって。「Half-Life 2 Episode Three」なんだけどね。

2019/11/11 20:59:17

FPSはWolfenstein 3Dからだけなんだけど、あんまり面白いとは思わんかったんだよね。

Youtube - PC Longplay [563] Wolfenstein 3D

2019/11/11 21:00:27

DOOMが出てそのグラフィックに「すげえ。」とは思ったものの、これもそんなに面白いとは思わんかった。。

Youtube - [60FPS] DOOM (1993) LONGPLAY

2019/11/11 21:01:30

FPSにハマったのは「Half-Life」からであろう。やはり。

Youtube - Half-Life: Full Game Walkthrough

2019/11/11 21:04:29

なんちゅうかもう、イントロから映画的で。そして謎ときも少しあったり、エイリアンだけでなく第3の存在が現れて3つ巴の争いになったりするとことか。単なるFPSではないところがいいんだよな。

2019/11/11 21:06:11

「Half-Life 2」もその路線で、期待を裏切らない出来だった。パッケージで持ってたのにまた「オレンジ・ボックス」を買いなおしたくらいですからな。。

2019/11/11 21:08:35

EPISODE 2がなんか尻切れなというか、続編を匂わすようなエンディングだったような気がするんだな。なんか忘れてるなあ。。もう一回やるか。。 https://t.co/6CwQC0rwrQ

2019/11/11 21:11:13

なんかファン・メイドのEpisode 3とかあったりして。

Youtube - Boreal Alyph Mini Update: October 2019

2019/11/11 21:15:49

Half-Lifeをリメイクした「Black Mesa」もXenまでできとるということは完成が近いのかいな。。

Youtube - Black Mesa: Xen - Opening Minutes (HALF-LIFE 1 REMAKE)

2019/11/11 21:23:11

しかし「Black Mesa」も相当な期間経ってるから、グラフィック見る限り時代遅れ感が半端ないような気もするな。。

2019/11/11 21:30:32

このような「Half-Life」ネタをtweetしてしまうということは、何年かに一度訪れる「Half Lifeしたい発作」かもしれんな。。