-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 09/22/2012 05:45 PM, Bryan Bishop wrote:
> On Sat, Sep 22, 2012 at 6:59 PM, Ray Dillinger <
be...@sonic.net>
> wrote:
>> Please mention a specific reason for your objection. I might
>> agree heartily with you, if only I knew what the problems were.
> Are you a programmer? Let me know what level I need to explain this
> at.
I am in fact, a computer programmer. I mostly hack natural-language
systems, compilers, and development tools in a UNIX environment using
C and C++ and various LISPS and shell scripting languages, but haven't
done much "web." There are lots of other programming languages I'm
aware of or grok the basics of, but my familiarity is mostly from
research, short scripts, or from working on dev tools rather than from
actually using them day-to-day over long periods.
>> Also, please recommend an open-source alternative that you
>> consider to be a better choice, and say why it's a better
>> choice.
> There is no open source thingiverse yet. Wordpress isn't a
> thingiverse. You would need to make your own. You're not going to
> get git integration in a wordpress plugin without a lot of
> additional php. But if you're going to be making that sort of
> investment, you might as well just setup a basic MVC web app
> anyway, both for future programmer's sanity in maintaining it and
> present development.
It seems likely that if the needs are sufficiently distinct from WP,
and especially if WP goes a different direction in the future, they
may eventually result in a software fork. But in the absence of a
better alternative, I don't see a reason to not start with the
available software off the shelf.
Let's think about what we need.
0) A channel for news, announcements, and project updates, with
backchannels for discussion-of and feedback-to. This is the
role I'd been considering WordPress a good fit for. Each
"project" becomes a channel or WordPress "blog" that people
can subscribe to via RSS for updates, etc. The people doing
the project make an announcement, and then the "discussion"
area below the announcement allows for discussion-of and
feedback-about from users and interested parties.
1) Mailing lists with webby archives, and a web-form that allows
member contributions when members don't have an email client
handy or don't want to do it via email. There's any number of
standalone products for this, including plugins for WP and
Wiki. These would be the persistent channels for admin, for
standardization discussions, for working groups, etc, that
announcements, project updates, etc, would mostly flow from.
2) Open Discussion Forums. For support and user discussion
mostly. Again, there are any number of standalone products
for this, including plugins for both WordPress and Wikis.
3) A wiki-ish repository of information. I imagine each project
and meta-project having its own page of wiki where it's explained
what it's for, what it works with, a link to the "announcements"
blog for that project, etc. I had been thinking that source
control was more naturally (and more easily) tied to a wiki
than to a discussion forum or announcement channel anyway,
which is why I'm not too concerned about integrating WP with
git. Wikis have their own revision control built-in, so
cross-linking wiki revisions to github revisions seems like
a natural fit.
4) Revision control -- git is certainly a lead contender but not
the only contender.
5) Bug database -- needs to be integrated with source control,
wiki, and mailing lists, but also have its own face. This is
probably the most challenging part of the web design.
I'm thinking that most of the integration we need to do can be
done by the simple expedient of using URL's that point from
discussions, blog posts, or mail lists to bugs in the bug
database, from bugs to discussions or forum topics, etc.
The problem with that approach is "lock-in"; if you change a
component, all the extant URLs that point at pages generated
by that component no longer work, because the new component
is unlikely to generate the same set of URLs. Sometimes,
if excessively obnoxious fnord, this happens even with just
version upgrades.
There are several solutions, but mostly they are simple if you
just recognize the problem before trying to make a switch.
I favor the straightforward and simple; "serial ID tags"
for every chunk of content (or at least every URL target) on
the whole site. Every single update to anything would get
a unique serial number from a central counter, and these
serial numbers would be embedded in the document somewhere
or used as an ID for the document in a database table, or
both.
These we would use to build redirection tables. For
every URL, we'd record the serial number of the document
it points to. Then when a new component takes over some
role, after all the "content migration" that doesn't respect
any integration with other components, we can find the URLs
that point to documents having the same serial number as
the documents that the old URLs pointed to. After that
we can either update the text in-place using search/
replace across the whole database or just maintain
redirections by putting a redirect file into the local
config for the web server.
There's a QA problem with build plans and schematics
that's familiar from cookbooks, but which we don't see with
conventional computer software. Finding out whether a build
plan or recipe actually works can't easily be automated.
You can't easily write a test suite, nor do automated
nightly builds to see if something broke a dependency.
As a result, even "obvious" bugs or requirements no longer
possible to meet may remain unnoticed until someone actually
needs it to work.
When you're working with atoms instead of bits, you have
to respect the fact that both atoms and the energy and
equipment to manipulate them cost orders of magnitude more
in time and money than bits, and therefore non-live testing
becomes prohibitively expensive and slow.
To address this, we would need to model atoms using bits --
meaning something like a software model of a working shop
that can test run build plans and model the results.
Nothing like this exists now. It's sort of within my area
of expertise (in dev tools) to build or architect, but
it's a big project.
The restricted case of a plastic-extrusion reprap might
be a within reach to model, however -- and that's the
starting "shop" that most of the build plans available
at this time are for. That would at least allow us to
generate warnings that, eg, the holes in XXX model
have "fake" diameters which are intended to result in
"desired" diameters that are actually different, when
printed by a machine with a common misconfiguration.
Or, conversely, warnings that they DON'T have fake diameters
for those whose machines actually ARE misconfigured in
exactly that way.
iQEcBAEBAgAGBQJQX0EGAAoJEAOzWkqOibfN9uUIAI4n9XEgBrd+Iiwbr//fWfwL
oqlhJem7dirbuH8PqeliHMlXGdOq3T9Rw+UQbtoWIIjUTQ+onU+Q4lYhqQQ7noyS
hodA/GVq+zRFk842P2oVtxUvBCbtj1ykhhb8G5FJaKNm7bva3yqG9+qd6463ZK4b
7vCIqSl0bW3XqbOjXBRrnipwzhPzu7WutnvJcXg/O6gCdWHuQPFLDL6+Mfb5TWQz
g9mDRn8A04aIJ4DCNH4Ox4KdKpnOWIZkoXdKxIpvmkaZFgdy/ynbThFqQLTFp9e6
mJMg/XU3Zfab0pUjps+Xof477mqsWZoB5GBmXm+FHmJ7bUYUqJT6vHG01MGHJkA=
=WD08
-----END PGP SIGNATURE-----