[背景音:咖啡馆环境音,键盘敲击声]
Alex: 嘿,Sam!好久不见,最近在搞什么?
Sam: Alex!正好想找你聊聊。我最近在用 Claude Code,就是 Anthropic 出的那个命令行工具。你知道吗?用着用着,我突然想起了咱们以前讨论过的 Smalltalk...
Alex: 当然记得!那个"代码即数据,数据即代码"的老古董?等等,你不会是想...
javascript:(function(){ | |
const getComputedStyleString = (element) => { | |
const computed = window.getComputedStyle(element); | |
let styles = ''; | |
for (const prop of computed) { | |
if (prop.includes('"')) { | |
continue; | |
} | |
const value = computed.getPropertyValue(prop); |
const YOUR_CLAUDE_KEY = '' | |
async function main() { | |
const resp = await fetch('https://api.anthropic.com/v1/messages', { | |
method: 'POST', | |
headers: { | |
"x-api-key": YOUR_CLAUDE_KEY, | |
"anthropic-version": '2023-06-01', | |
"content-type": "application/json", | |
}, | |
body: JSON.stringify({ |
// ==UserScript== | |
// @name 拷贝任意选中的 HTML | |
// @description 方便粘贴到 chatgpt 进行问答 | |
// @namespace github.com/taowen | |
// @match *://*/* | |
// @version 1.0.0 | |
// @author taowen | |
// @license MIT | |
// @grant GM.registerMenuCommand | |
// @grant GM_setClipboard |
// ==UserScript== | |
// @name youtube转文本到剪贴板 | |
// @description 方便粘贴到 chatgpt 进行问答 | |
// @namespace github.com/taowen | |
// @match https://www.youtube.com/* | |
// @version 1.0.0 | |
// @author taowen | |
// @license MIT | |
// @grant GM.registerMenuCommand | |
// @grant GM_setClipboard |
// ==UserScript== | |
// @name arxiv论文转markdown拷贝到剪贴板 | |
// @description 方便粘贴到 chatgpt 进行问答 | |
// @namespace github.com/taowen | |
// @match https://ar5iv.labs.arxiv.org/* | |
// @match https://browse.arxiv.org/html/* | |
// @match https://arxiv.org/html/* | |
// @version 1.0.1 | |
// @author taowen | |
// @license MIT |
Layout projection: A method for animating browser layouts at 60fps
Animating layout is hard. Prohibitively so; how many ambitious designers have provided dev teams dazzling videos of app-quality UI animations, only to be rebuffed?
If you're a web developer, what would your reaction be if asked to realise this kind of App Store-style interaction, where an item opens into a full-screen view when clicked:
@sources.Scene | |
export class AccountDemo extends RootSectionModel { | |
@constraint.required | |
public name: string; | |
@constraint.required | |
public password: string; | |
private justFailed: boolean; |
CREATE TABLE `Account` ( | |
`id` int(11) NOT NULL AUTO_INCREMENT, | |
`name` varchar(255) NOT NULL UNIQUE, | |
`password` varchar(255) NOT NULL, | |
`status` varchar(255) NOT NULL, | |
`retryCount` int(11) NULL, | |
PRIMARY KEY (`id`) | |
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1; |