annotate README.txt @ 46:cee8bf9cc5a2

starting down the road towards flowerbed
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 14 May 2013 16:57:53 -0700
parents 0c411c083fab
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
1 buttercup: a flower for k0s.org
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
2 ===============================
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
3
43
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
4 buttercup is a ``flower`` that is used to bloom a website like
4
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
5 `k0s.org <http://k0s.org>`_. There are several `python <http://python.org>`_
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
6 components to a buttercup website:
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
7
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
8 * `decoupage <http://k0s.org/portfolio/software.html#decoupage>`_: for static files and indices
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
9 - `montage <http://k0s.org/portfolio/software.html#montage>`_for image galleries
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
10 - contenttransformer for static file presentation
9
fe197282c615 fix ReST typo
Jeff Hammel <jhammel@mozilla.com>
parents: 4
diff changeset
11 * `bitsyblog <http://k0s.org/portfolio/software.html#bitsblog>`_ for blogging
4
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
12 * a set of mercurial repositories
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
13 * software demos:
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
14 - anagram
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
15 - wordstream
43
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
16 * and so forth
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
17
4
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
18
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
19 why is buttercup so messy?
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
20 --------------------------
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
21
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
22 Easy. Its the backport of a highly specific website to a flower. The
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
23 buttercup flower is in fact a study in botany, useful in the study of
43
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
24 species, but probably less interesting as a practical deployment for
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
25 widescale use.
4
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
26
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
27
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
28 does buttercup work yet?
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
29 ------------------------
1fa9ca23d696 include description from README
k0s <k0scist@gmail.com>
parents:
diff changeset
30
43
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
31 Depends on what you want to do. Right now, what `buttercup` does is
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
32 mostly best gleaned from the source code. I hope to change this with time.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
33
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
34
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
35 what is a flower?
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
36 -----------------
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
37
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
38 Every website has, in essence, an intent, a purpose the website serves
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
39 and tools and method with which to enact such purpose. While the
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
40 intent itself belongs to the domain of natural language, the tools
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
41 (read: web applications) and how they are deployed (including
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
42 e.g. request dispatching) should be catalogued in a manner actionable
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
43 to machine.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
44
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
45 A flower is a deployment pattern of a website.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
46
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
47 The deployment pattern contains information about what tools (usually,
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
48 python packages) are required, how they are set up for an instance of
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
49 the pattern, and how they interact with each other; but it does not
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
50 contain content (including site-static content) save in abstract.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
51
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
52 For example, imagine you are making a very simple website where you
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
53 want static files and directories served from the path info segment
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
54 ``/``, a blog served at ``/blog``, and the ability to upload files to
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
55 whatever directory ``/`` corresponds to on the web server's
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
56 filesystem. (Let's also make it real simple and completely ignore auth
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
57 which you should definitely *NOT* do if you were to deploy this flower.)
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
58 If you were me, you'd probably use
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
59 `decoupage <http://k0s.org/hg/decoupage/>`_
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
60 for the file server,
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
61 `bitsyblog <http://k0s.org/hg/bitsyblog/>`_
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
62 for the blog software,
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
63 and `uploader <http://k0s.org/hg/uploader/>`_
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
64 for the file upload widget.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
65 This would be a *flower*. It has a clear intent -- a blog and file
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
66 server -- and a set of tools that manifests that intent.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
67 You could have variations on this, such as mounting the blog at ``/``
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
68 and files at ``/files``, but since the deployment intentions are the
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
69 same (the tools interact with each other the same way, from a machine
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
70 point of view). It would be of merit to write this example flower,
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
71 but such shall be reserved for an exercise to the reader (which may
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
72 very well be me).
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
73
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
74
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
75 I'm a programmer. Can you give me a briefer explanation?
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
76 ---------------------------------------------------------
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
77
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
78 Assuming you know object-oriented programming, a flower would be the
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
79 *class* of the website, and the website would be the instance.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
80
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
81
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
82 what should a flower look like?
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
83 -------------------------------
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
84
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
85 As said, buttercup is currently messy. It was written as a marriage
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
86 between a very minimalistic need of saving some time on very specific
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
87 problems and the abstract idea of flowers which I didn't have time to
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
88 delve in. Voila! Software is born. In addition, even had I the best
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
89 intentions and time available to them, technologies such as more
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
90 recent pip changes were not available at the time of crafting.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
91
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
92 Also, I'm lazy and/or don't have time to work on it.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
93
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
94 In essence, ``buttercup`` has (or should have):
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
95
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
96 - a list of software requirements (that should be installed in
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
97 ``--develop`` mode in a ``virtualenv``)
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
98 - a method of "fitting the pipes" with
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
99 `wsgintegrate <http://k0s.org/hg/wsgintegrate/>`_
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
100 - (and there's also something about ensuring system packages are
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
101 installed and what not; see e.g
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
102 http://k0s.org/hg/buttercup/file/c008855cf3a9/buttercup/PACKAGES.txt
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
103 though I believe it is yet unused)
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
104
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
105 If I were to incorporate these as concepts into ``buttercup``, I would
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
106 make the flower have:
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
107
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
108 - a ``pip``
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
109 `requirements file <http://www.pip-installer.org/en/latest/requirements.html>`_
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
110
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
111 - a skeleton of a ``wsgintegrate`` ``.ini`` file and methods to
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
112 interpolate this skeleton to the instance
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
113
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
114 - *and*, very importantly but very forgettably, tools to port
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
115 production changes to the ``wsgintegrate`` configuration back to
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
116 the flower.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
117
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
118 - (in addition formalize the system packages (obviously per platform)
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
119 needed and how to check for them install them etc. Not sure if
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
120 there is stuff out there for this; outside of the fact that several
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
121 platforms have to be supported, its a pain. Vagrant and puppet seem
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
122 close...ish. Silverlining?)
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
123
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
124 Obviously, this sort of make-up works for ``buttercup``. It would not
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
125 work so well if, say, you were using apache + mod_wsgi vs
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
126 e.g. wsgintegrate and a standalone WSGI server. While the latter (and
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
127 other) software stacks can certainly be part of flowers, I care less
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
128 about them for my personal development needs/wants. You could imagine
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
129 a buttercup variant, built roughly the same but with e.g. apache.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
130 While the intents are close, that is a different flower ... at least
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
131 until an abstraction layer is written to obviate that difference (the
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
132 clause itself being very illustrative as to what a flower *is*).
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
133
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
134
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
135 why is this all coded into buttercup? why not have one or more base packages?
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
136 ------------------------------------------------------------------------------
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
137
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
138 So far all I've needed to care about was k0s.org for purposes of
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
139 flowers. Being not one to repeat code and being very much one to put
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
140 things in the right place, if there is an event to abstract the logic,
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
141 abstract I will.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
142
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
143
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
144 so what's the advantage of flowers, anyway? is this just for deployment?
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
145 -------------------------------------------------------------------------
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
146
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
147 While I've presented flowers as a deployment pattern for a website,
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
148 that is mostly for expedience and because such language is easily
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
149 understood. While of course this is directly usable for deployment, I
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
150 am more interested in classification. Its kinda like design patterns
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
151 or whatever other sorts of patterns: having a copy of the catalog
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
152 does not guarantee an understanding of taxonomy.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
153
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
154 There are technical advantages at looking at websites and their
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
155 deployments as evolving pattern. There is the generic: the flower;
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
156 and there is the newly deployed site. But both change and evolve.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
157 You can make a new flower from the old. You can use a flower as part
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
158 of a flower. They become building blocks.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
159
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
160 I want to make something crazy called *flowerbed* which combines some
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
161 generic flower software (to be written) with wsgintegrate and a web
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
162 interface to manipulating directed graphs (also to be written). With
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
163 this and a little elbow grease and unicorn dust, you could write a
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
164 tool to allow you to make a flower (and also the website, if desired)
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
165 just by drawing a graph with a preselected set of tools and pipes.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
166 But, as usual, postponed until needed.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
167
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
168
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
169 it seems like it'd be cool if ``buttercup``
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
170 and other flowers were insantiable TTW.
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
171 -------------------------------------------
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
172
0c411c083fab update doc
Jeff Hammel <jhammel@mozilla.com>
parents: 9
diff changeset
173 It does, doesn't it? You should write that! Or maybe I will someday.