<?xml version="1.0"?>
<opml version="2.0">
	<head>
		<title>drummerDocs</title>
		<dateCreated>Mon, 29 Mar 2021 14:37:40 GMT</dateCreated>
		<dateModified>Thu, 08 Apr 2021 17:22:42 GMT</dateModified>
		<longTitle></longTitle>
		<description></description>
		<expansionState>1,6,8,11,21,22</expansionState>
		<lastCursor>5</lastCursor>
		<ownerTwitterScreenName>davewiner</ownerTwitterScreenName>
		<ownerName>Dave Winer</ownerName>
		<ownerId>http://twitter.com/davewiner</ownerId>
		<urlUpdateSocket>ws://test.littleoutliner.com:1230/</urlUpdateSocket>
		</head>
	<body>
		<outline text="What is this?" created="Mon, 29 Mar 2021 14:37:40 GMT">
			<outline text="Docs that explain how everything but verbs in Drummer works. The verb docs are in the DocServer app." created="Mon, 29 Mar 2021 14:41:48 GMT"/>
			</outline>
		<outline text="What is Drummer?" created="Mon, 29 Mar 2021 14:43:58 GMT"/>
		<outline text="Drummer as an outliner" created="Mon, 29 Mar 2021 14:44:07 GMT"/>
		<outline text="Attributes on outlines" created="Tue, 30 Mar 2021 16:07:11 GMT"/>
		<outline text="Callbacks" created="Thu, 08 Apr 2021 17:20:53 GMT">
			<outline text="We say that the key innovation in Drummer is that synchronous and asynchronous functions are called the same way. That means we don't need callbacks, and this makes for simpler code. But there are places where Drummer does use callbacks, for advanced functions. They're not always asynchronous. Two examples are the visit routines that are part of the op class, and drummer.startSocket. " created="Thu, 08 Apr 2021 17:20:55 GMT"/>
			</outline>
		<outline text="op.setCursor and op.getCursor" created="Thu, 01 Apr 2021 21:43:40 GMT">
			<outline text="Use this pair of verbs when you want to move the cursor somewhere, do something, and then move it back. " created="Thu, 01 Apr 2021 21:16:57 GMT"/>
			<outline text="You can't save cursors you get this way, and if you delete or move objects, the cursor may not restore to where it was.  " created="Thu, 01 Apr 2021 21:44:21 GMT"/>
			<outline text="Example script in the Outliner section of the sample Scripts menu under op.setCursor." created="Wed, 07 Apr 2021 16:52:27 GMT">
				<outline text="var origCursor = op.getCursor ();" created="Wed, 07 Apr 2021 16:53:43 GMT"/>
				<outline text="op.firstSummit ();" created="Wed, 07 Apr 2021 16:53:56 GMT"/>
				<outline text="dialog.alert (op.getLineText ());" created="Wed, 07 Apr 2021 16:54:09 GMT"/>
				<outline text="op.setCursor (origCursor)" created="Wed, 07 Apr 2021 16:54:22 GMT"/>
				</outline>
			</outline>
		<outline text="Scripting" created="Mon, 29 Mar 2021 14:43:53 GMT"/>
		<outline text="Private files vs Public files" created="Mon, 29 Mar 2021 14:42:22 GMT"/>
		<outline text="Subscribing to outlines" created="Mon, 29 Mar 2021 14:42:35 GMT"/>
		<outline text="Persistent data for scripts" created="Mon, 29 Mar 2021 14:42:55 GMT"/>
		<outline text="Including one outline in another" created="Mon, 29 Mar 2021 14:43:04 GMT"/>
		<outline text="Scheduled scripts" created="Tue, 06 Apr 2021 17:38:21 GMT">
			<outline text="When Drummer is running in a browser" created="Tue, 06 Apr 2021 17:38:24 GMT">
				<outline text="When you're running a Drummer app in the browser, if it's not the frontmost browser tab, the scheduled scripts will probably appear to &quot;drift.&quot;" created="Tue, 06 Apr 2021 17:38:50 GMT"/>
				<outline text="It probably works perfectly in an Electron environment. " created="Tue, 06 Apr 2021 17:39:33 GMT"/>
				</outline>
			</outline>
		</body>
	</opml>
