<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="pretty-atom-feed.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  
  <title>Blog Title</title>
  <subtitle>This is a longer description about your blog.</subtitle>
  <link href="https://example.com/feed/feed.xml" rel="self" />
  <link href="https://example.com/" />
  <updated>2023-05-06T00:00:00Z</updated>
  <id>https://example.com/</id>
  <author>
    <name>Your Name</name>
  </author>
  <entry>
    <title>Fediverse vs. Bluesky</title>
    <link href="https://example.com/blog/fediverse-vs-bluesky/" />
    <updated>2023-05-06T00:00:00Z</updated>
    <id>https://example.com/blog/fediverse-vs-bluesky/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Nobody:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; Let me tell you all about my thoughts on the recent rivalry (read:
fairly one-sided grumbling on the Fedi side)
between &lt;a href=&quot;https://blueskyweb.xyz/&quot;&gt;Bluesky&lt;/a&gt; and the
&lt;a href=&quot;https://en.wikipedia.org/wiki/Fediverse&quot;&gt;Fediverse&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What I think of the “conflict”:&lt;/strong&gt; Wholly misguided. But I’m glad it’s happening,
because it’s galvanized a bunch of people and projects on the Fediverse side.&lt;/p&gt;
&lt;p&gt;I have no doubt that a bridge between Bluesky and Fediverse will go up in very
short order (already being worked on at @activitypubblueskybridge@venera.social).
Some instances will block it, most others won’t, and people will continue
posting and interacting as usual.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What I think of Bluesky:&lt;/strong&gt; As always, I look at &lt;em&gt;who&lt;/em&gt;’s doing the project first,
and at the code and architecture a distant second. And the Bluesky team (Jay,
Paul, Emily, David, Why, many others) are some top-notch humans — I’ve met and
talked to many of them in person and online. I think I understand, overall,
their motives and what they’re trying to achieve, and I want them to succeed
(just as I do with the Fediverse).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What I think of the Bluesky data model:&lt;/strong&gt; Siiiigh, ok, so, do I wish they at least
started with the ActivityStreams2 data model for posts and tried to extend from
there? Yes. Do I understand why they studied it and decided to not use it? After
a bunch of discussion, yes :/ Regardless, I think we (the builders of the
protocol bridges, and the larger Social Web) will be able to translate between
the two data models fairly easily.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What I think of the AT Protocol:&lt;/strong&gt; Do I wish the team didn’t re-invent JSON-RPC
and JSON Schemas? Yeah, my heart always leans towards interop- and existing
spec-first. Do I understand why they did it? Yeah, maybe, grudgingly. Change is
bad, but also, they wanted to play around with some new options and technologies,
and I highly suspect it will help improve the Social Web overall.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What I think of the Bluesky architecture:&lt;/strong&gt; Ok, so, this is where I’m kind of
boggled by the current Fediverse discourse. That architecture? Is almost exactly
what the Fediverse will end up with, as it scales. Third-party search indexing
(opt-in, of course) is a general tool of a decentralized Web, there’s nothing
AT-specific about it. Same with all the other pieces.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What I think of the source of Bluesky funding:&lt;/strong&gt; Heeeere’s the thing. If a
billionaire wanted to give me a million $ or ten, and I saw it as an opportunity
to further the cause of the Open Social Web, would I do the same thing Bluesky
is doing? Yes, IN A HEARTBEAT. (So, if you know any extra $ burning people’s
pockets, hook me up.) Except I think I’d re-use existing tech more.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Just whose team am I on?&lt;/strong&gt; Uh… I’m on team Plurality, Queer Post-Scarcity Space
Anarchism, and Libre and Liberatory Software. I’m against fascism, and &lt;em&gt;for&lt;/em&gt;
trying to survive the current Multicrisis/Jackpot with the least loss of human
lives and least species extinctions. (Except for deer ticks, those can seriously
go to hell.) So in that regard, I think (until proof to the contrary) that the
Bluesky team is on our side.&lt;/p&gt;
&lt;p&gt;But so, where am I going to be spending my time and effort? On the Fediverse
side, of course.&lt;/p&gt;
&lt;p&gt;Btw, I’m not really thrilled with the term “Fediverse”. It’s better than “Mastodon”,
of course, for obvious reasons. And better than “ActivityPub” (since that’s just
ONE protocol of the whole stack). But the thing is.. there’s nothing sacred
about federation. It’s just one (albeit important) tool in the distributed
system toolbox. To name our whole scene after it, is like naming us “Array-ists”,
or “Linked List-ists”. It’s just a low level detail.
Let’s just call us for what we are: the Open Social Web.&lt;/p&gt;
&lt;p&gt;Anyways, what do I think of the current Fediverse: Well, it’s my people.
I love it and use it, and am hoping to help it in whatever ways possible (paying
instance admins, reviving the W3C Social Web Incubation Community Group for
standards work, building bridges). Do I think it needs some improvements? Oh,
hells yes — and I’m’a tell you all about those, shortly.&lt;/p&gt;
&lt;p&gt;So, we have a lot of work to do. And remember, we’re aiming for the Pluriverse.
And lots of bridges.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Understanding Linked Data</title>
    <link href="https://example.com/blog/understanding-linked-data/" />
    <updated>2018-07-31T00:00:00Z</updated>
    <id>https://example.com/blog/understanding-linked-data/</id>
    <content type="html">&lt;p&gt;What does the concept of Linked Data mean to you as a developer? It means that you have datasets that have the following properties:&lt;/p&gt;
&lt;p&gt;Globally unique IDs (since they use URIs for IDs). Also, you can almost always dereference those IDs and get more detailed useful data from them.
Globally unique, collision free, reusable property names (or column names, if you’re coming from an RDBMS world).
The datasets are self-documenting and self-describing. If you dereference each of the unique property names, you get comments, context, data types, and if you’re lucky, validatable schemas.&lt;/p&gt;
&lt;h3 id=&quot;linked-data-from-first-principles&quot;&gt;Linked Data from First Principles&lt;/h3&gt;
&lt;p&gt;The easiest way to understand the benefits and challenges of Linked Data is to
start with something familiar to most developers — data in the CSV format. Let’s
say we want to store some user records:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;birth_date&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Alice&lt;/td&gt;
&lt;td&gt;1990-01-01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Bob&lt;/td&gt;
&lt;td&gt;1990-02-02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Cindy&lt;/td&gt;
&lt;td&gt;1990-03-03&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;We have data, we have property names on the first line, but there are several challenges here. For one, although the meanings of the example property names are fairly easy to guess, anybody who’s worked with CSV datasets knows that this is not always the case. It would be of immense help to be able to have some sort of explanations or comments alongside that first line, to understand what the properties are and how to process them. Along the same lines, the schema of the properties is far from clear (such as their data types and validation logic). Lastly, this dataset is not very portable, in terms of its IDs. They appear to be the usual sort of auto-incrementing integer, but it’s not easy to add them to an existing dataset (say, a Users table), since those IDs could already be taken up by existing users. To put it another way, those IDs are not very collision-resistant.&lt;/p&gt;
&lt;p&gt;Let’s put that same dataset into JSON format, to make it slightly easier for developers to understand (and use in their code).&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Alice&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;birth_date&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1990-01-01&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Bob&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;birth_date&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1995-02-02&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Cindy&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;birth_date&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1999-01-01&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A little better — we can now refer to a property from a parsed row by name (say, user.name) instead of by index (user[1]).&lt;/p&gt;
&lt;p&gt;Now, imagine if we could give each of those users a globally unique id. Maybe each of them has their own domain name. Or failing that, an account on some service provider. Then we would have:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://www.alice.com#me&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Alice&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;birth_date&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1990-01-01&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://bob.provider.com#about&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Bob&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;birth_date&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1995-02-02&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://cindy.provider.com#about&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Cindy&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;birth_date&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1999-01-01&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now the dataset becomes much more portable. We can merge it into existing datasets with no fear of id collisions. Not only that, but now we can dereference those IDs and hopefully be able to get more useful data, such as a public user profile.&lt;/p&gt;
&lt;p&gt;Incidentally, HTTP URIs is not the only way to have globally unique identifiers. Other schemes have been used, such as XRI. The benefit of HTTP URIs should be obvious, however — the tooling and infrastructure and developer familiarity with those is considerable.&lt;/p&gt;
&lt;p&gt;The property names are still a bit ambiguous though. Does name mean full name, or just the given name? To address this, we could do the same thing with property names as we did with the IDs, and just use URIs:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://www.alice.com#me&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;http://schema.org/givenName&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Alice&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;http://schema.org/birthDate&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1990-01-01&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://bob.provider.com#about&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;http://schema.org/givenName&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Bob&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;http://schema.org/birthDate&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1995-02-02&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://cindy.provider.com#about&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;http://schema.org/givenName&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Cindy&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;http://schema.org/birthDate&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1999-01-01&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now, all of a sudden, we have reusable, unambiguous properties. With the added benefit of — we can resolve those properties as HTTP URIs and get a human-readable comment explaining its semantics, and the data format and validation constraints for the values (for example, the fact that the birthDate is in ISO 8601 date format). And they&#39;re reusable in the sense of, now app developers are encouraged to simply use http://schema.org/birthDate for the birth date property name, instead of various incompatible combinations of birthdate, birth_date, bd, and so on.&lt;/p&gt;
&lt;p&gt;Of course, repeating the full URL for the property name for each record gets a little verbose, and not very DRY. Let’s factor out the property name URIs, and put them in a lookup dictionary, in their own context section.&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;context&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;givenName&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://schema.org/givenName&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;birthDate&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://schema.org/birthDate&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;data&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://www.alice.com#me&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;givenName&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Alice&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;birthDate&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1990-01-01&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://bob.provider.com#about&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;givenName&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Bob&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;birthDate&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1995-02-02&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://cindy.provider.com#about&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;givenName&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Cindy&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;birthDate&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1999-01-01&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And now we have the best of both worlds. We have compact property names (so that we can once again refer to a parsed user’s property as user.givenName instead of something horrible like user[&#39;http://schema.org/givenName&#39;]). And we still retain the benefit of globally unique unambiguous dereferenceable property names (they just get short, readable local aliases). (By the way, a thematic grouping of properties, such as http://schema.org/, is referred to as a vocabulary or ontology in the Linked Data community.)&lt;/p&gt;
&lt;p&gt;Congratulations, we have just created a proper Linked Data document. And with a few tweaks (we’ll use the reserved properties @id and @context, and @graph instead of data), we can turn this into full-fledged RDF based linked data, using the JSON-LD serialization format. (You can have Linked Data without using any of the RDF formats, it&#39;s just that by using them, you get access to a rich ecosystem of tools, standards, databases, validators, reasoners and deduction engines, a standardized query syntax, and so on.)&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;@context&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;givenName&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://schema.org/givenName&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;birthDate&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://schema.org/birthDate&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;@graph&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;@id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://www.alice.com#me&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;givenName&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Alice&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;birthDate&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1990-01-01&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;@id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://bob.provider.com#about&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;givenName&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Bob&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;birthDate&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1995-02-02&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;@id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://cindy.provider.com#about&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;givenName&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Cindy&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;birthDate&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1999-01-01&quot;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;linked-data-benefits&quot;&gt;Linked Data Benefits&lt;/h3&gt;
&lt;p&gt;So what did all of that get us? The benefits of the Linked Data approach are several.&lt;/p&gt;
&lt;p&gt;Easier data merging and schema migration. Mashups (combining data from heterogenous sources) become much easier, due to unique IDs and unambiguous properties. The flat graph based structure of most linked data formats (composite structures are expressed via local links, instead of nested documents) also makes merging datasets and schema migration much easier.&lt;/p&gt;
&lt;p&gt;Data is discoverable (from IDs), self-describing and self-documenting.&lt;/p&gt;
&lt;p&gt;Reuse and interop. Unique property names (that are published on the net, well described and schema-specified) encourage interop and reuse, and help cut down on constant wheel reinventing.&lt;/p&gt;
&lt;p&gt;Better searches. If you embed linked data in your web pages (in JSON-LD format, or embedded in HTML attributes using the RDFa format), Google will actually parse it and use it to enhance search results. See Google’s Introduction to Structured Data for further discussion.&lt;/p&gt;
&lt;p&gt;Rich toolset/ecosystem. By using an RDF based format, you get a lot of extra tooling and infrastructure for free (in addition to the existing JSON-based toolsets, for example).&lt;/p&gt;
&lt;h3 id=&quot;linked-data-challenges&quot;&gt;Linked Data Challenges&lt;/h3&gt;
&lt;p&gt;In going from something like CSV to RDF-based linked data, you’ve probably picked up on a few implications and challenges to organizing your data in this fashion. Let’s go over a few of those.&lt;/p&gt;
&lt;p&gt;URIs. Giving URIs to things is not always easy.&lt;/p&gt;
&lt;p&gt;Schema discovery. Discovering, choosing or creating schemas (vocabularies) that fit your use case is sometimes challenging. But at least with linked data, you have the option to browse and study listings/directories of such schemas (unlike with database table schemas, for example). Schema.org/schemas is a good place to start.&lt;/p&gt;
&lt;p&gt;Availability. Linking to things on the net means you are depending on the uptime of other systems. (See also Leslie Lamport’s quote, “A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable”.) Fortunately, actually dereferencing the links of properties or IDs is not mission critical, but is more helpful during development and design phases. To put it another way, you can still use http://www.alice.com/#about as a good user ID even if Alice&#39;s website happens to be down during a given day -- browsing linked data is an additional benefit and possibility, instead of a core operation.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Data Longevity and Data-Centric Software</title>
    <link href="https://example.com/blog/data-longevity-and-software/" />
    <updated>2016-11-17T00:00:00Z</updated>
    <id>https://example.com/blog/data-longevity-and-software/</id>
    <content type="html">&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Jamie_Zawinski#Zawinski.27s_law_of_software_envelopment&quot;&gt;Zawinski&#39;s Law of Software Envelopment&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I wonder if there&#39;s a similar law having to do with APIs, or backup/export functionality, or open standards. If there is not, there &lt;em&gt;should&lt;/em&gt; be. Something like &amp;quot;Law of Software Superiority&amp;quot;.&lt;/p&gt;
&lt;h3 id=&quot;rules-of-software-superiority&quot;&gt;Rules of Software Superiority&lt;/h3&gt;
&lt;p&gt;It comes down to this. If you have a choice of which software (or web app or service) to use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Choose the one with an API over the one that doesn&#39;t&lt;/li&gt;
&lt;li&gt;If choosing between two APIs, pick one that uses standard protocols and data formats, or is an open standard itself&lt;/li&gt;
&lt;li&gt;Choose one that has an Export/backup functionality&lt;/li&gt;
&lt;li&gt;Choose one that stores its data in a standard (spec&#39;d out or well understood) format&lt;/li&gt;
&lt;li&gt;Choose one that is open-source over one that isn&#39;t. Hell, go wild, and choose &lt;em&gt;free software&lt;/em&gt; (in the Stallman sense) over merely open source (and of course over proprietary)&lt;/li&gt;
&lt;li&gt;That said, if the choice is between free software that uses an obscure/undocumented data format (that is, it&#39;s not clear how you&#39;d get your data &lt;em&gt;out&lt;/em&gt;) and proprietary software that has a clear backup/export strategy to an understandable format... &lt;em&gt;choose the proprietary one&lt;/em&gt;. The safety and longevity of your data is of paramount importance.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These preferences (libre &amp;gt; open-source &amp;gt; proprietary, api &amp;gt; backup/export &amp;gt; neither, open data format &amp;gt; proprietary/undocumented format) are not about idealism (unless that&#39;s your thing, in which case, by all means). They are about &lt;em&gt;reducing risk&lt;/em&gt;. Chances are incredibly high that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you&#39;re using an online service or a commercial app, the company will go out of business, or even more likely, will get acquired or merge with another (which will not care about product continuity).&lt;/li&gt;
&lt;li&gt;If the company doesn&#39;t change hands, the project (or app or service) will get discontinued, or pivot to a direction you don&#39;t like.&lt;/li&gt;
&lt;li&gt;Your account can be locked out or revoked at any time, due to over-zealous content filtering, accounting errors, etc.&lt;/li&gt;
&lt;li&gt;Even for open-source projects, the project leadership may abandon it and move on, or again, take it in a direction that makes it unusable to you.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is not meant to discourage you, or sound overly pessimistic. This is just a simple reality of living with software. My point is that if you consistently choose software and services that make it possible to get your data &lt;em&gt;out&lt;/em&gt;, you can be at peace with all these eventualities.&lt;/p&gt;
&lt;p&gt;Ok, so, the API thing... The important thing here is to be able to get the data out of the software. (And, only secondarily useful for actually scripting / extending it / mashups.) If you can get to the data (because it lives on your computer&#39;s hard drive) but can&#39;t use it (it&#39;s in an undocumented/proprietary format), it&#39;s no good. Similarly, if it&#39;s in a simple or well-understood format (say, blog posts, or pictures or whatever) but you can&#39;t get to it (ahem, I&#39;m looking at you, various social media sites), again, useless. At best, you will have to resort to the nightmare of screen-scraping.&lt;/p&gt;
&lt;h3 id=&quot;data-centric-software&quot;&gt;Data-Centric Software&lt;/h3&gt;
&lt;p&gt;There is a type of software that, by its very nature, lends itself well to preserving the longevity of your data, and compares favorably in terms of the above rules. And that is &lt;em&gt;data-centric&lt;/em&gt; software, where the user has control over data in a well-understood and documented format, and thus has a choice of which apps to use to work with it. Chances are you&#39;re very familiar with this sort of model, just from using popular desktop applications. Examples include text editing and word processing, spreadsheets, presentations, image editing. Personal accounting software (Quickbooks and the like) is actually almost there, although there are occasional subtle incompatibilities with formats.&lt;/p&gt;
&lt;p&gt;The situation gets a lot more difficult (in terms of users being able to control their data, and be able to have a choice of interchangeable/competing applications) once you get into online services and applications, and mobile apps. In the world of traditional desktop software, data lives on generic storage (hard drives, etc), and most applications have equal access to it. In the mobile app world, aside from a small handful of standardized shared resources (basically, your camera roll), storage mechanisms are a lot more opaque, and each app is encouraged to use its own individual slices of storage.&lt;/p&gt;
&lt;p&gt;And with online services and social media apps, the situation is even worse. Unless a service is progressive enough to expose a comprehensive API, your data is pretty much locked in there, and good luck using third-party services with it.&lt;/p&gt;
&lt;p&gt;It doesn&#39;t have to be this way, though. There is nothing about web apps or mobile apps that inherently forbids them from being data-centric, or makes interoperability impossible. These days, browser applications can actually have access to your hard drive (if you let them), and cheap cloud service providers can serve the role of generic data stores (just like your computer&#39;s hard drive). Your data (whether it&#39;s documents or images or even social media type things like blog posts and status updates) &lt;em&gt;could&lt;/em&gt; be under your control, and you could have the choice of interoperable competing software with which to edit it.&lt;/p&gt;
&lt;p&gt;This goal of enabling interoperable data-centric web applications that use generic storage (local or cloud-based) is one of our main motivations at the &lt;a href=&quot;https://solid.mit.edu/&quot;&gt;Solid project&lt;/a&gt; (&lt;a href=&quot;https://github.com/solid/solid&quot;&gt;project repo&lt;/a&gt; | &lt;a href=&quot;https://github.com/solid/solid-spec&quot;&gt;specs&lt;/a&gt;). (There are other goals, like making decentralized app development easier, encouraging the use of &lt;a href=&quot;http://computingjoy.com/blog/2016/09/26/understanding-linked-data/&quot;&gt;linked data&lt;/a&gt;, breaking the deadlock of various social media monopolies, and so on.) It&#39;s an ambitious project, and involves a lot of interesting engineering and research challenges (as does all large-scale decentralized software). I&#39;ll get into some of the technical challenges (and our solutions) in subsequent posts.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Standards and Protocols are Holy</title>
    <link href="https://example.com/blog/standards-and-protocols-are-holy/" />
    <updated>2014-06-20T00:00:00Z</updated>
    <id>https://example.com/blog/standards-and-protocols-are-holy/</id>
    <content type="html">&lt;p&gt;In biology, the individual organism is ephemeral. Each individual is incredibly fragile, and has a built-in limited lifespans, not to mention a good chance of meeting with accidental death at any moment.&lt;/p&gt;
&lt;p&gt;The only things that matter, that have at least a shot at longevity, are genes (and species, really).&lt;/p&gt;
&lt;p&gt;With humans, again, the individual, while certainly extremely important, is very fragile and limited in lifespan (just ask Tolkien&#39;s Ringwraiths, &lt;i&gt;&amp;quot;Nine for Mortal Men, doomed to die&amp;quot;&lt;/i&gt; and all that). Genes certainly matter (the importance of family). But in addition, &lt;a href=&quot;https://en.wikipedia.org/wiki/Meme&quot;&gt;memes&lt;/a&gt; (in the Dawkins sense, as ideas and units of cultural propagation) become incredibly important, and offer another venue for longevity.&lt;/p&gt;
&lt;p&gt;To put it another way, the effect of an individual on the world is threefold: their actions during their lifetime, their propagated genes (arguably the least important), and their cultural legacy (their propagated memes, the ideas and memories they leave behind). If &amp;quot;cultural legacy&amp;quot; sounds too grand or abstract, remember that it operates on the tiniest of scales. If you have a child, how you raise it and the things that you teach it (this becomes a part of your cultural legacy, the memes that you propagate) is much more important than the genes it inherits. On a smaller scale, that book you lent to your friend&#39;s kid? You know the one, that sparked off their lifelong love of scifi and fantasy, or of problem solving, or poetry, or riding horses, or whatever? &lt;i&gt;That&#39;s&lt;/i&gt; a part of your cultural legacy. Obviously, if you &lt;i&gt;wrote&lt;/i&gt; that book, your legacy is even greater. But in the world of memes and ideas, curation, rebroadcasting, analysis and commentary, are almost as important as actual idea creation.&lt;/p&gt;
&lt;p&gt;Sidenote: if one wanted to rank those three factors (actions, genes, memes) in the order of importance (a questionably useful endeavour), I would argue that an individual&#39;s cultural legacy, the ideas and memes, are of the highest import, and leave the largest influence. Certainly more important than genes (unless you&#39;re Magneto, and your kids can somehow inherit a never-before-seen genetic mutation that can save the world). And more important than individual actions. Think of history&#39;s high-impact individuals, like Margaret Thatcher, Alexander the Great, Martin Luther King or Eleanor of Acquitaine. These were &lt;i&gt;no slouches&lt;/i&gt;, when it came to individual actions and their effect on the world. But consider how much greater the impact of their &lt;i&gt;cultural legacy&lt;/i&gt; is. Of the ideas, laws and concepts that came into the world as a result of their actions.&lt;/p&gt;
&lt;p&gt;Now consider the world of technology, specifically &lt;a href=&quot;http://online.wsj.com/news/articles/SB10001424053111903480904576512250915629460&quot; title=&quot;Why Software is Eating the World&quot;&gt;software&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As engineers and developers, we spend so much of our time involved in specific tech stacks. Endlessly debating the merits of a particular tool, programming language, framework, infrastucture components or applications.&lt;/p&gt;
&lt;p&gt;Here&#39;s my point: &lt;b&gt;individual systems, applications, and frameworks don&#39;t matter that much&lt;/b&gt;. But &lt;b&gt;formats, standards and protocols are holy&lt;/b&gt; (whether de-facto or de-jure). (Similarly, the ability to export and import, is the single most important feature that your software can have). This is related to the concept of &lt;i&gt;&lt;a href=&quot;http://steve-yegge.blogspot.com/2007/01/pinocchio-problem.html&quot;&gt;living software&lt;/a&gt;&lt;/i&gt;, though different in emphasis.&lt;/p&gt;
&lt;p&gt;In terms of impact and longevity, the importance of standards and protocols over individual applications is the equivalent to the importance of genes and species over individual organisms, or to the importance of cultural legacy and memes over a person&#39;s genes or individual actions.&lt;/p&gt;
&lt;p&gt;MySQL and Postgres? Yes, they&#39;re important, sort of. But only because of the ANSI SQL standard. (And because of the CSV format for importing/exporting data between them).&lt;/p&gt;
&lt;p&gt;The Mosaic browser, Netscape, IE, Firefox or Chrome? Again, also important. But only insofar as they implement the HTTP protocol and the HTML/CSS/ECMAscript formats. (And especially important in the &lt;i&gt;battle&lt;/i&gt; for those protocols and formats, using the usual weapons of embrace-and-extend, nonstandard features and so on).&lt;/p&gt;
&lt;p&gt;Pay attention to these. Formats, standards and protocols are an important battleground, one that does not receive enough attention in our open source culture. Identify and stake out the crucial ones, and protect them. Get involved in their formation and implementation (again, you can have an enormous influence by just writing a useful library such as Markdown, even if you don&#39;t have a seat on a W3C standards workgroup).&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Thoughts on a Mars Colony</title>
    <link href="https://example.com/blog/thoughts-on-a-mars-colony/" />
    <updated>2014-06-03T00:00:00Z</updated>
    <id>https://example.com/blog/thoughts-on-a-mars-colony/</id>
    <content type="html">&lt;p&gt;(Note: I wrote this as an &lt;a href=&quot;https://www.quora.com/How-many-people-are-required-for-a-self-sustaining-Mars-colony/answer/Dmitri-Zagidulin&quot;&gt;answer for a Quora question&lt;/a&gt;
originally.)&lt;/p&gt;
&lt;h3 id=&quot;how-many-people-are-required-for-a-self-sustaining-mars-colony&quot;&gt;How many people are required for a self-sustaining Mars colony?&lt;/h3&gt;
&lt;i&gt;What level of technology would be required to survive several generations?&lt;/i&gt;
&lt;p&gt;These are two separate questions.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;How many people are required for a self-sustaining population anywhere (genetically speaking)?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The answer seems to be: about the size of a small village. (Incidentally, these are historically proven to support stable populations almost indefinitely).&lt;/p&gt;
&lt;p&gt;This article, for example: &lt;a href=&quot;http://www.newscientist.com/article/dn1936-magic-number-for-space-pioneers-calculated.html&quot; id=&quot;qlink_k0&quot; name=&quot;qlink_k0&quot;&gt; &amp;quot;Magic number&amp;quot; for space pioneers calculated&lt;/a&gt; gives the number at about&lt;strong&gt; 160&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;With some luck, realllly good medical care, and careful genetic screening (to watch out for harmful recessive genes, etc), you could probably bump that down to about 100. But you know how it is, the more, the better.&lt;/p&gt;
&lt;p&gt;See also: &lt;a href=&quot;http://www.quora.com/Planetary-Science/How-many-people-would-we-need-to-send-to-a-distant-planet-to-colonise-it&quot; id=&quot;qlink_k1&quot; name=&quot;qlink_k1&quot;&gt;Planetary Science: How many people would we need to send to a distant planet to colonise it?&lt;/a&gt;&lt;/p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;&lt;strong&gt;What level of technology would be required to survive several generations on Mars?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(To be specific, this includes &amp;quot;What level of technology is required to GET (a bunch of people) to Mars&amp;quot; and &amp;quot;What level of technology is required to sustainably live on Mars? (versus, the Moon, for example - it&#39;s very slightly different&amp;quot;).&lt;/p&gt;
&lt;p&gt;First of all, this is a popular question to ask. We all want to know this!&lt;/p&gt;
&lt;p&gt;See for example:&lt;/p&gt;&lt;ul&gt;&lt;p&gt;&lt;/p&gt;
&lt;li&gt;&lt;a href=&quot;http://www.quora.com/Colonization-of-the-Moon/If-scientists-established-a-self-sustaining-colony-on-the-moon-how-would-sufficient-food-be-produced-for-the-people-who-live-there&quot; id=&quot;qlink_k2&quot; name=&quot;qlink_k2&quot;&gt;Colonization of the Moon: If scientists established a self-sustaining colony on the moon, how would sufficient food be produced for the people who live there?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.quora.com/Space-Colonization/What-provisions-and-technology-would-be-required-to-establish-a-self-sustaining-human-colony-on-Mars-after-a-successful-one-way-landing&quot; id=&quot;qlink_k3&quot; name=&quot;qlink_k3&quot;&gt;Space Colonization: What provisions and technology would be required to establish a self-sustaining human colony on Mars after a successful one-way landing?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.quora.com/Mars-planet/How-feasible-is-Elon-Musks-idea-to-establish-a-colony-on-Mars-in-the-2020s&quot; id=&quot;qlink_k4&quot; name=&quot;qlink_k4&quot;&gt;Mars (planet): How feasible is Elon Musk&#39;s idea to establish a colony on Mars in the 2020s?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.quora.com/Space-Colonization/What-are-the-fundamental-requirements-for-human-beings-to-live-on-another-planet&quot; id=&quot;qlink_k5&quot; name=&quot;qlink_k5&quot;&gt;Space Colonization: What are the fundamental requirements for human beings to live on another planet?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
But, let&#39;s take a stab at outlining what&#39;s involved.
&lt;h3 id=&quot;getting-to-mars&quot;&gt;Getting to Mars&lt;/h3&gt;
What we need, to get a village full of people to Mars:
&lt;p&gt;&lt;strong&gt;#1&lt;/strong&gt; (by a big margin) &lt;strong&gt;Better Propulsion!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here&#39;s the thing you need to understand about space colonization. It&#39;s all about &lt;em&gt;how much mass&lt;/em&gt; you can haul across long distances (and how fast). Everything else is secondary. If you can bring a lot of mass with you, you can colonize with very primitive technology. If you &lt;em&gt;can&#39;t&lt;/em&gt;, that&#39;s when high tech becomes the limiting factor - that&#39;s when you need all sorts of research and invention, on how to make everything super small and efficient, and to learn how to make everything when you get there.&lt;/p&gt;
&lt;p&gt;This is the biggest challenge we have. Our current engines (Apollo style chemical rockets) are just not enough.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Analogy Alert:&lt;/em&gt;
Think of a modern highrise hotel. Now imagine that you have to pick up and move the hotel (all of its people and equipment) to a nearby city (let&#39;s say from New York to Boston),&lt;em&gt; and all you had for transportation was a shopping cart.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;(Even if it&#39;s a big shopping cart, like from Home Depot).&lt;/p&gt;
&lt;p&gt;Can you do it? Sure. It&#39;s theoretically possible.&lt;/p&gt;
&lt;p&gt;But if all you have is a shopping cart, &lt;em&gt;it&#39;s going to take a long time&lt;/em&gt; (think of all of the trips you have to take!) and is going to be &lt;em&gt;insanely difficult.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;And even aside from time and effort, you&#39;re going to have to invent and manufacture a lot of custom equipment.&lt;/p&gt;
&lt;p&gt;For example, that giant industrial stove in the hotel kitchen, or the massive washing machines in the basement? How are you going to fit that onto your shopping cart? You aren&#39;t. You&#39;ll need to pay an industrial engineering company to design and make a big stove/washing machine/whatever that can be disassembled into small pieces which fit into the cart (plus careful instruction manuals on how to do it) and reassembled at the destination. The cost adds up.&lt;/p&gt;
&lt;p&gt;How about that swimming pool? (You&#39;ll probably have to take all of the water with you to the new hotel!) That&#39;s going to take a LOT of gallon jugs, to move all that.&lt;/p&gt;
&lt;p&gt;And that&#39;s assuming that you have a building waiting for you in that other city.&lt;/p&gt;
&lt;p&gt;With space colonization, it&#39;s even worse -- not only do you have to transport the people and the equipment, you&#39;ll also be needing to transport all of the building materials to&lt;em&gt; build&lt;/em&gt; a new highrise hotel on the other side. (Again, good design can help - see &lt;a href=&quot;http://www.wired.com/2012/09/broad-sustainable-building-instant-skyscraper/all/&quot; id=&quot;qlink_k6&quot; name=&quot;qlink_k6&quot;&gt;Meet the Man Who Built a 30-Story Building in 15 Days&lt;/a&gt; for example - but only up to a point).&lt;/p&gt;
&lt;p&gt;So that&#39;s the problem. What we &lt;em&gt;have,&lt;/em&gt; at best, is a shopping cart. What we &lt;em&gt;need&lt;/em&gt;, for this project to be anything more than a pipe dream, is at least a modest fleet of big U-Haul trucks.&lt;/p&gt;
&lt;p&gt;Our best hopes, in terms of propulsion (getting to Mars will require a combination of these, most likely) are:&lt;/p&gt;
&lt;p&gt;A) &lt;i&gt;Better chemical rockets&lt;/i&gt;.
We&#39;re slowwwly working on these. See for example: &lt;a href=&quot;http://www.nasa.gov/exploration/systems/index.html&quot; id=&quot;qlink_k7&quot; name=&quot;qlink_k7&quot;&gt;NASA | Exploration Systems Development&lt;/a&gt; page. Even so, chemical rockets, no matter how good, are still going to be closer to the &amp;quot;shopping cart&amp;quot; end of the scale.&lt;/p&gt;
&lt;p&gt;B) &lt;i&gt;Nuclear propulsion&lt;/i&gt;. Which would be amazing. You can haul a LOT of mass using nuclear-powered engines. The problem is - politics and legislation and international treaties (people get seriously worked up when you start talking about putting nuclear anything into orbit).
Oh, one more thing - you really can&#39;t use these methods to get from the ground to Earth orbit. You&#39;ll still need good chemical orbital launch systems.&lt;/p&gt;
&lt;p&gt;Nuclear space propulsion tech includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nuclear pulse propulsion (&lt;a href=&quot;https://en.wikipedia.org/wiki/Project_Orion_%28nuclear_propulsion%29&quot; id=&quot;qlink_k8&quot; name=&quot;qlink_k8&quot;&gt;Project Orion (nuclear propulsion)&lt;/a&gt; or derivatives)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Nuclear_thermal_rocket&quot; id=&quot;qlink_k9&quot; name=&quot;qlink_k9&quot;&gt;Nuclear thermal rocket&lt;/a&gt;s, such as the&lt;a href=&quot;https://en.wikipedia.org/wiki/NERVA&quot; id=&quot;qlink_k10&quot; name=&quot;qlink_k10&quot;&gt; NERVA&lt;/a&gt; project&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Nuclear_electric_rocket&quot; id=&quot;qlink_k11&quot; name=&quot;qlink_k11&quot;&gt;Nuclear electric rocket&lt;/a&gt; (this is where you hook up a reactor to an electric propulsion engine, see below)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C) (non-nuclear) &lt;i&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Electrically_powered_spacecraft_propulsion&quot; id=&quot;qlink_k12&quot; name=&quot;qlink_k12&quot;&gt;Electrically powered spacecraft propulsion&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Electric rocket engines are great - they&#39;re not powerful like chemical rockets, but they can run continuously. (If you had to go a couple dozen miles on a skateboard, which would you rather have - a single initial push (no matter how powerful), or a small two-stroke engine for a motorized skateboard that ran the whole time?). (These also, obviously, work only in deep space, and won&#39;t help you with getting things into Earth orbit).&lt;/p&gt;
&lt;p&gt;Some examples of this include:&lt;/p&gt;&lt;ul&gt;&lt;p&gt;&lt;/p&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Ion_propulsion&quot; id=&quot;qlink_k13&quot; name=&quot;qlink_k13&quot;&gt;Ion thruster&lt;/a&gt;s - currently working (and in-space) craft that use these: &lt;a href=&quot;https://en.wikipedia.org/wiki/Deep_Space_1&quot; id=&quot;qlink_k14&quot; name=&quot;qlink_k14&quot;&gt;Deep Space 1&lt;/a&gt;, Hayabusa, Smart 1, Dawn. See also the canceled&lt;a href=&quot;https://en.wikipedia.org/wiki/Project_Prometheus&quot; id=&quot;qlink_k15&quot; name=&quot;qlink_k15&quot;&gt; Project Prometheus&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/VASIMR&quot; id=&quot;qlink_k16&quot; name=&quot;qlink_k16&quot;&gt;Variable Specific Impulse Magnetoplasma Rocket&lt;/a&gt; (has been in development for a long time, but hasn&#39;t flown on a mission yet)&lt;/li&gt;
&lt;/ul&gt;The problem with electric propulsion (aside from the fact that it&#39;s very complicated high tech, and much further research is needed) is: What are you going to power it with? Wouldn&#39;t it be great to hook it up to a nice nuclear reactor? Even if it&#39;s a low-powered &lt;a href=&quot;https://en.wikipedia.org/wiki/Radioisotope_thermoelectric_generator&quot; id=&quot;qlink_k17&quot; name=&quot;qlink_k17&quot;&gt;Radioisotope thermoelectric generator&lt;/a&gt; like what the &lt;a href=&quot;https://en.wikipedia.org/wiki/Galileo_%28spacecraft%29#Electrical_power&quot; id=&quot;qlink_k18&quot; name=&quot;qlink_k18&quot;&gt;Galileo (spacecraft)&lt;/a&gt; had? But again, for various political and practical reasons, for the moment, Solar Panels is likely the power source you&#39;re going to get.
&lt;p&gt;D) &lt;i&gt;Solar Sails&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;If you&#39;re going to be relying on the sun for power anyways (solar panels powering, say, an ion thruster), the thinking goes - why not skip the middle steps and just have the sunlight bounce off of a sail and provide propulsion more directly?&lt;/p&gt;
&lt;p&gt;These can be either physical &lt;a href=&quot;https://en.wikipedia.org/wiki/Solar_sails#Projects_in_development_or_proposed&quot; id=&quot;qlink_k19&quot; name=&quot;qlink_k19&quot;&gt;Solar sail&lt;/a&gt;s (really thin very tough foil / mirrors) like project&lt;a href=&quot;https://en.wikipedia.org/wiki/Sunjammer_%28spacecraft%29&quot; id=&quot;qlink_k20&quot; name=&quot;qlink_k20&quot;&gt; Sunjammer (spacecraft)&lt;/a&gt;, or a &lt;a href=&quot;https://en.wikipedia.org/wiki/Magnetic_sail&quot; id=&quot;qlink_k21&quot; name=&quot;qlink_k21&quot;&gt;Magnetic sail&lt;/a&gt; (have the sunlight bounce off of a magnetic field. Still very theoretical).&lt;/p&gt;
&lt;p&gt;Solar sails have probably the least amount of research and development so far, among the propulsion systems. If we do get them working, they&#39;ll be pretty great - free power/propulsion!&lt;/p&gt;
&lt;p&gt;Whew! That was a long section. But that&#39;s because &lt;strong&gt;Propulsion is 90% of what matters&lt;/strong&gt; to a colonization effort. All right, what else do we need?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#2&lt;/strong&gt; &lt;strong&gt;Better&lt;/strong&gt; &lt;a href=&quot;https://en.wikipedia.org/wiki/Life_support_system&quot; id=&quot;qlink_k22&quot; name=&quot;qlink_k22&quot;&gt;&lt;strong&gt;Life support systems&lt;/strong&gt;&lt;/a&gt; (we&#39;re still on the subject of Getting to Mars)&lt;/p&gt;
&lt;p&gt;People will need to breathe, stay warm, drink and eat on the way to Mars (and also while living there - #2 applies to the Living on Mars section as well). Oh, we&#39;ll also need better space-toilets. (See &lt;a href=&quot;https://en.wikipedia.org/wiki/Astronautical_hygiene&quot; id=&quot;qlink_k23&quot; name=&quot;qlink_k23&quot;&gt;Astronautical hygiene&lt;/a&gt;)&lt;/p&gt;
&lt;blockquote&gt;
&amp;quot;A crewmember of typical size requires approximately 5 kg (total) of food, water, and &lt;a href=&quot;https://en.wikipedia.org/wiki/Oxygen&quot; id=&quot;qlink_k24&quot; name=&quot;qlink_k24&quot;&gt;oxygen&lt;/a&gt; per day&amp;quot; (from that Life Support systems entry on Wikipedia).&lt;/blockquote&gt;
That means - we&#39;ll need to both bring a lot of supplies, and learn to recycle the ones we have. And hopefully even produce some, along the way.
&lt;p&gt;How are we doing, in this area? Not so good. Our state of the art is fairly primitive, at the moment (see &lt;a href=&quot;https://en.wikipedia.org/wiki/ISS_ECLSS&quot; id=&quot;qlink_k25&quot; name=&quot;qlink_k25&quot;&gt;International Space Station ECLSS&lt;/a&gt; for a discussion of the current ISS life support systems).&lt;/p&gt;
&lt;p&gt;Evaluation of individual systems:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Heat&lt;/em&gt;: pretty good, actually. Like a server room on Earth, all the electric systems on a spacecraft output a lot of heat. Needs power (see below).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Air&lt;/em&gt;: Passable. (Pack lots of oxygen, or water (to derive oxygen from)). Also pack plenty of CO2 scrubbers.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Water:&lt;/em&gt; Problematic. You&#39;ll need to bring along a lot of water (to drink, wash, and electrolyze to produce oxygen). And water recycling is &lt;em&gt;difficult&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;For example, the ISS currently has a Urine Processor Assembly and a Water Processor Assembly. (And regular water deliveries from Earth - four per year, minimum). The reclaimed water is mostly fed to the oxygen generating machines, though it is available for drinking in emergencies.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Closed Circuit Air/Water Recycling Systems&lt;/em&gt;: Forget it. We have never even experimented with closed life support systems in space. Our best state-of-the-art biosphere tech is something like &lt;a href=&quot;https://en.wikipedia.org/wiki/BIOS-3&quot; id=&quot;qlink_k26&quot; name=&quot;qlink_k26&quot;&gt;BIOS-3&lt;/a&gt; (which could support 3 people for 180 days) - and that thing was HUGE. Oh, there was also&lt;a href=&quot;https://en.wikipedia.org/wiki/Biosphere_2&quot; id=&quot;qlink_k27&quot; name=&quot;qlink_k27&quot;&gt; Biosphere 2&lt;/a&gt;, which, again, is the size of several football fields, and even so, had very inconclusive results, in terms of closed system life support. Lots of progress needed here.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Food production:&lt;/em&gt; Nope. Meaning, we do not have any experience with growing food in space, so a lot of research needs to be done. On the other hand, given a big enough mass allowance (propulsion again), we can figure this part out.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sanitation&lt;/em&gt;: Passable. (Given enough water). Space toilets, sponge baths (Skylab had enclosed showers), air scrubbers to get sweat/odors/bacteria/vomit (see gravity, below) out of the air. No washing dishes, obviously. Oh, and no laundry - disposable clothes only, currently.
See &lt;a href=&quot;http://www.pbs.org/spacestation/station/living_sanitation.htm&quot; id=&quot;qlink_k28&quot; name=&quot;qlink_k28&quot;&gt;Space Station | The Station | Living in Space&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;By the way - do you see how this part very much depends on how good your &lt;em&gt;Propulsion&lt;/em&gt; systems are? If you can get to Mars fast, you need less supplies and you can get away with more primitive systems. If you can haul a lot of supplies with you, your recycling systems don&#39;t need to be as advanced (and you can afford the luxury of oxygen- and food-producing plants).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#3 Power Generation&lt;/strong&gt;
You need a lot of electricity, on the way to Mars , for lights, air conditioning, to power life support and computers, and likely the engines, too, for course correction.&lt;/p&gt;
&lt;p&gt;Your options are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Solar Panels (tech exists, though could stand to be better/more efficient). This is what the International Space Station uses.
or&lt;/li&gt;
&lt;li&gt;Nuclear reactors (Galileo-style RTGs would work, see above) - Deep space probes use these (plus solar panels), currently.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Incidentally, if you solve the problem of Power Generation and have lots of power to spare (such as, say, with a reactor), you get better propulsion for free (hook up the excess juice to an electric thruster, as discussed above).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#4 Radiation Shielding (extremely helpful)&lt;/strong&gt;
Outside of Earth&#39;s protective atmosphere and magnetosphere, you&#39;re exposed to high levels of radiation. How bad is it? Well, it depends on how
fast you get there. Exposure estimates for a 280-day trip to Mars (see &lt;a href=&quot;http://www.mars-one.com/faq/health-and-ethics/how-much-radiation-will-the-settlers-be-exposed-to&quot; id=&quot;qlink_k29&quot; name=&quot;qlink_k29&quot;&gt;How much radiation will the settlers be
exposed to? - Health and Ethics - Mars One&lt;/a&gt;) are reasonable (high, but within NASA limits for astronauts).&lt;/p&gt;
&lt;p&gt;Obviously, the more protection from radiation you have, the better (less chances of dying from rad poisoning, cancer, etc). Unfortunately, radiation
is hard to shield against. You basically need either lots of water (which would also help with life support, obviously), or lots of stone. In short,
shielding is incredibly heavy. (But would be solved with better propulsion tech.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#5 Artificial Gravity (extremely helpful)&lt;/strong&gt;
Space is rough on humans. Aside from radiation exposure, it turns out that being weightless for long periods of time is incredibly hard to deal with (see &lt;a href=&quot;https://en.wikipedia.org/wiki/Effect_of_spaceflight_on_the_human_body#The_effects_of_weightlessness&quot; id=&quot;qlink_k30&quot; name=&quot;qlink_k30&quot;&gt;Effect of spaceflight on the human body&lt;/a&gt;). For one, you get serious Motion Sickness (even if you&#39;re a highly trained astronaut and are full of anti-motion-sickness meds).&lt;/p&gt;
&lt;p&gt;More importantly, you start losing muscle mass and bone mass (see &lt;a href=&quot;https://en.wikipedia.org/wiki/Spaceflight_osteopenia&quot; id=&quot;qlink_k31&quot; name=&quot;qlink_k31&quot;&gt;Spaceflight osteopenia&lt;/a&gt;), at an average rate of 1-2% bone mass loss &lt;em&gt;per month&lt;/em&gt; in zero G. Given the typical flight time to Mars, this starts to add up quickly. (Though hey, what do you know, if you can get there faster (see Propulsion above), you don&#39;t need to worry about this as much).&lt;/p&gt;
&lt;p&gt;To manage all of this, &lt;em&gt;it would be really nice to have artificial gravity&lt;/em&gt; on the way to Mars.&lt;/p&gt;
&lt;p&gt;Now, until we have a much better grasp of physics and can generate artificial gravity fields or some such convenience, we either need to rely on centrifugal acceleration (spin the ship/habitat around really fast), or on linear acceleration (step on the gas halfway to Mars, and then step on the brakes the other half. Though this requires better propulsion.)
See &lt;a href=&quot;https://en.wikipedia.org/wiki/Artificial_gravity#Methods_for_generating_artificial_gravity&quot; id=&quot;qlink_k32&quot; name=&quot;qlink_k32&quot;&gt;Artificial gravity&lt;/a&gt; (methods of generating section).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#6 Careful Thought/Design to Mitigate Psychological Effects&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This one&#39;s not so bad. Yes, being enclosed in tiny spaces for months and months is hard psychologically. But at least in this area, we have LOTS of research, throughout history. Monks, prisoners, sailors, submarine crew, astronauts, and so on. Obviously lots of room for improvement, but manageable.&lt;/p&gt;
&lt;h3 id=&quot;living-on-mars&quot;&gt;Living on Mars&lt;/h3&gt;
&lt;p&gt;OK! Assuming we got some people to Mars (a hundred or two) and they survived. What is needed for a self-sustaining colony?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Power Generation&lt;/strong&gt;
Your options are:&lt;strong&gt; nuclear reactors&lt;/strong&gt;, and &lt;strong&gt;wind turbines&lt;/strong&gt;. Fortunately, Mars at least has an atmosphere, and occasionally has wind storms. So that&#39;s at least something.&lt;/p&gt;
&lt;p&gt;But really, you need decent (lightweight, safe) nuclear reactors. You&#39;re not going to be burning coal or oil or gas. No hydroelectric dams. And wind, while possible (not really studied), will not be reliable enough to power a whole colony.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Closed System Life Support&lt;/strong&gt;
Given the cost and the distance (not to mention, risk) involved in shipping things from Earth, the colony is not going to be able to rely on regular care packages from home. It&#39;ll need to be able to provide its own air, water, food, and waste recycling.&lt;/p&gt;
&lt;p&gt;We do not currently have the technology for closed-system life support, so again, a lot of research will need to be done in this area. We will probably be growing a lot of carefully engineered algae in tanks, use ingenious hydroponics, and so on.&lt;/p&gt;
&lt;p&gt;Given enough weight allowance, can can probably set up something like Biosphere-2 or -3, eventually. Though again, think of how much&lt;em&gt; soil&lt;/em&gt; - carefully engineered biomass - a farm of that size would require. Soil is something we get for free on Earth, and take very much for granted. Whereas it would take a LOT of composting and poop recycling to make enough soil out of the salty and alkaline Martian sand.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mining (Water, Oxygen, Metals, Minerals)&lt;/strong&gt;
Even if you figure out all of the details of an efficient closed life-support system, you will still need to keep supplying it with raw materials, constantly.&lt;/p&gt;
&lt;p&gt;For example - people, plants and machinery need LOTS OF WATER. You can recycle a lot of it, but you will still need more, no matter what. That means - the colonists must figure out how to find and extract water/ice from Mars surface. We know there&#39;s some water ice on Martian polar icecaps. We suspect there might be some hidden underground, but all of that needs to be explored/investigated.&lt;/p&gt;
&lt;p&gt;If you find enough water, you can make oxygen out of it. (If you can figure out ways of mining oxygen from Martian soil, even better).&lt;/p&gt;
&lt;p&gt;Beyond those two necessities, you will need to learn how to mine and extract everything else you need for a self-sustaining Advanced Manufacturing infrastructure (see below). Think of all of the metals and minerals that we mine and fight over on Earth -- we will need to re-learn new methods of mining/extracting, transporting and processing them on Mars.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Radiation Shielding&lt;/strong&gt;
Though not as bad as outer space, living on Mars also incurs a lot of radiation exposure. Fortunately, once you&#39;re on a planet, rad shielding is easy: pile lots and lots of sand and stone on top. Meaning: you&#39;re going to build your colony underground. While we don&#39;t have a good handle on how to build underground cities (or even small habitats) on Mars, I&#39;m sure we can at least figure this part out, assuming we&#39;ve solved all of the other problems.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Advanced Manufacturing&lt;/strong&gt;
Same deal as with life support. To be truly self-sustaining, a colony would need to have the tools and knowledge to essentially replicate, on a small scale, a high technological civilization. This will mean: a lot of luck, spare parts, resupply trips from earth. But also, mining robots, 3D printers (though we would need to figure out how to make plastics on Mars), CNC machines &amp;amp; lathes, lots of power tools and hardware.&lt;/p&gt;
&lt;p&gt;Basically, we&#39;ll need a Martian equivalent of the &lt;a href=&quot;http://opensourceecology.org/wiki/Global_Village_Construction_Set&quot; id=&quot;qlink_k33&quot; name=&quot;qlink_k33&quot;&gt;Global Village Construction Set&lt;/a&gt; - a set of self-replicating tools needed to make all of the tools, spacesuits, robots, computers, air filters, life support machines, and everything else people would need.&lt;/p&gt;
&lt;p&gt;We do not have this technological capability yet, though we are slowwwly getting there.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Communication (with Earth)&lt;/strong&gt;
At least have a good handle on communication satellite technology. Still, that&#39;s a hell of a ping / response time - 4 to 24 minutes, one way, depending on how far apart Mars and Earth are at any time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Research into Long Term Effects of Low Gravity&lt;/strong&gt;
Will humans be able to survive in the weak gravity field on Mars? Without catastrophic bone loss and so on? We don&#39;t know.&lt;/p&gt;
&lt;p&gt;Maybe, maybe not. If not, we will need to figure out treatment options (gene therapies, etc) to treat and mitigate this.&lt;/p&gt;
&lt;p&gt;All right! Lots to do, better get to it.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The Flattening of Design</title>
    <link href="https://example.com/blog/flattening-of-design/" />
    <updated>2014-05-31T00:00:00Z</updated>
    <id>https://example.com/blog/flattening-of-design/</id>
    <content type="html">&lt;p&gt;I&#39;m still not sure how I feel about the &amp;quot;All the things must be flat&amp;quot; design
trend. (Well, that&#39;s not true, I certainly hate Windows 8&#39;s Xbox-like desktop,
the way that the Xbox UI was changed to match it, and the iOS 7 UI update.)
Also, I did notice, the other day, how LJ&#39;s own user interface was certainly,
er, flattenized.&lt;/p&gt;
&lt;p&gt;But, I thought this article was interesting:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://bits.blogs.nytimes.com/2013/04/23/the-flattening-of-design/&quot;&gt;The Flattening of Design&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;[...] companies aren&#39;t simply following Microsoft&#39;s lead in the quest for flat. There are cultural and technological reasons for this new look and feel.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Also, unrelated (well, related in that the article mentioned that the flat design is reminiscent of these):&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://secure.flickr.com/photos/bpx/sets/72057594117941491/&quot;&gt;Gallery of Russian Propaganda Posters&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
</feed>