SELECT / 01 — 06 TRACKS
↑ ↓ 选曲 / ENTER 查看详情
ARTWORK / CREATED WITH CODE
TRACK 01 / PROJECT
CTF HUD
一枚留在 macOS 菜单栏的比赛时钟,随手查看阶段倒计时和队伍排名。
▶ENTER / 查看详情NOW PLAYING / CODE
Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) •
0102let now = Date()03let remaining = max(0, stageEnd.timeIntervalSince(now))04let minutes = Int(remaining) / 6005let seconds = Int(remaining) % 6006let clock = String(format: "%02d:%02d", minutes, seconds)07overlay.show(clock)
0102let now = Date()03let remaining = max(0, stageEnd.timeIntervalSince(now))04let minutes = Int(remaining) / 6005let seconds = Int(remaining) % 6006let clock = String(format: "%02d:%02d", minutes, seconds)07overlay.show(clock)
Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) • Date() • stageEnd.timeIntervalSince(now) • String(format: clock) • overlay.show(clock) •
0102const fps = 60;03const seconds = 3;04const frameCount = Math.ceil(seconds * fps);05for (let index = 0; index < frameCount; index += 1) {06 render(canvas, index / fps);07 await encoder.write(canvas);08}
0102const fps = 60;03const seconds = 3;04const frameCount = Math.ceil(seconds * fps);05for (let index = 0; index < frameCount; index += 1) {06 render(canvas, index / fps);07 await encoder.write(canvas);08}
render(canvas, index / fps) • await encoder.write(canvas) • CanvasRenderingContext2D • frameCount = Math.ceil(seconds * fps) • render(canvas, index / fps) • await encoder.write(canvas) • CanvasRenderingContext2D • frameCount = Math.ceil(seconds * fps) • render(canvas, index / fps) • await encoder.write(canvas) • CanvasRenderingContext2D • frameCount = Math.ceil(seconds * fps) • render(canvas, index / fps) • await encoder.write(canvas) • CanvasRenderingContext2D • frameCount = Math.ceil(seconds * fps) • render(canvas, index / fps) • await encoder.write(canvas) • CanvasRenderingContext2D • frameCount = Math.ceil(seconds * fps) • render(canvas, index / fps) • await encoder.write(canvas) • CanvasRenderingContext2D • frameCount = Math.ceil(seconds * fps) • render(canvas, index / fps) • await encoder.write(canvas) • CanvasRenderingContext2D • frameCount = Math.ceil(seconds * fps) • render(canvas, index / fps) • await encoder.write(canvas) • CanvasRenderingContext2D • frameCount = Math.ceil(seconds * fps) • render(canvas, index / fps) • await encoder.write(canvas) • CanvasRenderingContext2D • frameCount = Math.ceil(seconds * fps) • render(canvas, index / fps) • await encoder.write(canvas) • CanvasRenderingContext2D • frameCount = Math.ceil(seconds * fps) • render(canvas, index / fps) • await encoder.write(canvas) • CanvasRenderingContext2D • frameCount = Math.ceil(seconds * fps) • render(canvas, index / fps) • await encoder.write(canvas) • CanvasRenderingContext2D • frameCount = Math.ceil(seconds * fps) •
0102const meeting = await lookup(code);03const request = await requestToJoin(meeting, displayName);04if (request.approved) {05 await connect(request.participantToken);06}07return request.state;
0102const meeting = await lookup(code);03const request = await requestToJoin(meeting, displayName);04if (request.approved) {05 await connect(request.participantToken);06}07return request.state;
await lookup(code) • requestToJoin(meeting, displayName) • await connect(participantToken) • RealtimeKit • await lookup(code) • requestToJoin(meeting, displayName) • await connect(participantToken) • RealtimeKit • await lookup(code) • requestToJoin(meeting, displayName) • await connect(participantToken) • RealtimeKit • await lookup(code) • requestToJoin(meeting, displayName) • await connect(participantToken) • RealtimeKit • await lookup(code) • requestToJoin(meeting, displayName) • await connect(participantToken) • RealtimeKit • await lookup(code) • requestToJoin(meeting, displayName) • await connect(participantToken) • RealtimeKit • await lookup(code) • requestToJoin(meeting, displayName) • await connect(participantToken) • RealtimeKit • await lookup(code) • requestToJoin(meeting, displayName) • await connect(participantToken) • RealtimeKit • await lookup(code) • requestToJoin(meeting, displayName) • await connect(participantToken) • RealtimeKit • await lookup(code) • requestToJoin(meeting, displayName) • await connect(participantToken) • RealtimeKit • await lookup(code) • requestToJoin(meeting, displayName) • await connect(participantToken) • RealtimeKit • await lookup(code) • requestToJoin(meeting, displayName) • await connect(participantToken) • RealtimeKit •
01const bytes = new TextEncoder().encode(text);02const hex = Array.from(bytes, (byte) => {03 return byte.toString(16).padStart(2, "0");04});05const encoded = hex.join(" ");06console.info(encoded);
01const bytes = new TextEncoder().encode(text);02const hex = Array.from(bytes, (byte) => {03 return byte.toString(16).padStart(2, "0");04});05const encoded = hex.join(" ");06console.info(encoded);
new TextEncoder() • Uint8Array.from(bytes) • byte.toString(16) • hex.join(" ") • new TextEncoder() • Uint8Array.from(bytes) • byte.toString(16) • hex.join(" ") • new TextEncoder() • Uint8Array.from(bytes) • byte.toString(16) • hex.join(" ") • new TextEncoder() • Uint8Array.from(bytes) • byte.toString(16) • hex.join(" ") • new TextEncoder() • Uint8Array.from(bytes) • byte.toString(16) • hex.join(" ") • new TextEncoder() • Uint8Array.from(bytes) • byte.toString(16) • hex.join(" ") • new TextEncoder() • Uint8Array.from(bytes) • byte.toString(16) • hex.join(" ") • new TextEncoder() • Uint8Array.from(bytes) • byte.toString(16) • hex.join(" ") • new TextEncoder() • Uint8Array.from(bytes) • byte.toString(16) • hex.join(" ") • new TextEncoder() • Uint8Array.from(bytes) • byte.toString(16) • hex.join(" ") • new TextEncoder() • Uint8Array.from(bytes) • byte.toString(16) • hex.join(" ") • new TextEncoder() • Uint8Array.from(bytes) • byte.toString(16) • hex.join(" ") •
01import { getCollection } from "astro:content";02const notes = await getCollection("notes");03const entries = notes.map(({ id, data }) => ({04 title: data.title,05 href: `/notes/${id}/`,06}));
01import { getCollection } from "astro:content";02const notes = await getCollection("notes");03const entries = notes.map(({ id, data }) => ({04 title: data.title,05 href: `/notes/${id}/`,06}));
getCollection("notes") • render(entry) • entry.data.tags • GET /rss.xml • getCollection("notes") • render(entry) • entry.data.tags • GET /rss.xml • getCollection("notes") • render(entry) • entry.data.tags • GET /rss.xml • getCollection("notes") • render(entry) • entry.data.tags • GET /rss.xml • getCollection("notes") • render(entry) • entry.data.tags • GET /rss.xml • getCollection("notes") • render(entry) • entry.data.tags • GET /rss.xml • getCollection("notes") • render(entry) • entry.data.tags • GET /rss.xml • getCollection("notes") • render(entry) • entry.data.tags • GET /rss.xml • getCollection("notes") • render(entry) • entry.data.tags • GET /rss.xml • getCollection("notes") • render(entry) • entry.data.tags • GET /rss.xml • getCollection("notes") • render(entry) • entry.data.tags • GET /rss.xml • getCollection("notes") • render(entry) • entry.data.tags • GET /rss.xml •
01$ whoami02Alex / 楚嘉墨03$ ls04projects notes tools05$ printf "hello, world!\n"06hello, world!
01$ whoami02Alex / 楚嘉墨03$ ls04projects notes tools05$ printf "hello, world!\n"06hello, world!
$ whoami • Alex / 楚嘉墨 • $ ls projects notes tools • hello, world! • $ whoami • Alex / 楚嘉墨 • $ ls projects notes tools • hello, world! • $ whoami • Alex / 楚嘉墨 • $ ls projects notes tools • hello, world! • $ whoami • Alex / 楚嘉墨 • $ ls projects notes tools • hello, world! • $ whoami • Alex / 楚嘉墨 • $ ls projects notes tools • hello, world! • $ whoami • Alex / 楚嘉墨 • $ ls projects notes tools • hello, world! • $ whoami • Alex / 楚嘉墨 • $ ls projects notes tools • hello, world! • $ whoami • Alex / 楚嘉墨 • $ ls projects notes tools • hello, world! • $ whoami • Alex / 楚嘉墨 • $ ls projects notes tools • hello, world! • $ whoami • Alex / 楚嘉墨 • $ ls projects notes tools • hello, world! • $ whoami • Alex / 楚嘉墨 • $ ls projects notes tools • hello, world! • $ whoami • Alex / 楚嘉墨 • $ ls projects notes tools • hello, world! •