one small voicestpeter's blog on jabber, technology, history, philosophy, et alia | |||||||
|
about who feeds categories identity archive current |
2006-12-31The New YearResolutions and reformation. Here's a choice and timely quote from Mark Twain regarding New Year's resolutions:
I don't think I've ever made a New Year's resolution, and I don't think I ever shall. But speaking of the new year, dontcha think it's appropriate to lop off the millennium and call this one "007"? :-) Posted on 2006-12-31 at 22:15. File under personal. ~ link ~ Theseus RevisitedIdentity persistence and Zooko's triangle. Bob Wyman suggests that it's time to update Zooko's triangle by adding a dimension of persistence vs. non-persistence to the existing dimensions of unique vs. non-unique, global vs. local, and memorable vs. non-memorable. First, it's important to clearly understand the meaning and import of Zooko's triangle (note well: the task is made harder by the fact that the property names at the above-referenced Wikipedia page are seriously confusing). Bob lays it out as follows:
As I wrote in XEP-0165: Best Practices to Prevent JID Mimicking, my understanding is that no one scheme can provide names that are simultaneously global, unique, and memorable (where a name could be an address, identifier, nickname, handle, etc.). However, certain combinations of names can together provide all three properties. Such combinations are commonly called petname systems. In XEP-0165, I use the following example:
What happens when we put these three names together? We have a global+unique address, a global+memorable nickname, and a non-global+unique handle. If you talk about me with another person on the network, you can refer to me as stpeter@jabber.org + PSA (but you must never mention that your handle for me is "that Jabber protocol dude"). If you receive a message from stpeter@jabbber.org (note the third "b"), your client will warn you that the sender is not "that Jabber protocol dude". Together this combination of names gets us closer to a system that provides the properties of global, unique, and memorable (GUM?). (Note: It's even better if we associate a cryptographic key, or fingerprint thereof, with the address / nickname / handle, but we'll look at that some other time.) Now to this "GUM" system, Bob Wyman suggests that we need to add "P" for persistence (GUMP?):
It's true that all of the names I mention in my example could be non-persistent. Jer might forget to renew his registration for jabber.org and the domain might fall into the hands of someone who pulls the plug on the XMPP service there. I might decide to change my nickname from PSA to MaineBoy. You might decide to change your handle for me to "the guy who blogs at one small voice". My X.509 certificate might be revoked and I might generate a new one through a provider other than StartCom. I might get hit by a bus tomorrow and die on the way to the hospital, in which case my identity will become of only historical interest. Etc. Well, sure -- everything is temporal (at least until the heat-death of the universe). I do think Bob's right that we do need to take better account of persistence -- or, more precisely, the lack of persistence -- in our identity systems. But I'm not yet sure if we need to expand Zooko's Triangle into Zooko's Pyramid in order to do that. We seem to function OK in Internet-space without persistent identifiers, since we use social norms to solve the problem of non-persistence ("sorry, changed my email address again"; "I'm no longer blogging here, go there for my latest posts"; "my old cert expired, here's my new cert"; "don't call me PSA anymore, call me MaineBoy"). That said, most people do have a persistent identifer in meatspace (in America we call it a Social Security Number). Do we need such a persistent identifier on the Internet? (I have an i-name, but do I really need an i-number?) I'm not yet convinced, but I haven't followed the argument very closely. If anything, I tend to think that identity persistence is an emergent property of a combination of names. My email address changes but my JabberID and domain name stay the same during the transition; then I get a new cert but my (new) email address, JabberID, and domain name persist through that transition. Etc. As long as I don't change everything at once, we have as much identity persistence as the ship of Theseus did, which has enough persistence to provide a useful concept of identity for most people. Perfection (in this case, guaranteed persistence to the end of time) is not an option... Posted on 2006-12-31 at 21:43. File under identity. ~ link ~ 2006-12-30Page 123Random book quote. Here's a fun idea (HT: David Aitken):
I'd prefer it to be "the last book you've read", but in this case they are one and the same because I've just finished re-reading (parts of) Albion's Seed by David Hackett Fischer. Page 123 is an illustration so I proceed to page 124, where the fifth sentence reads as follows:
Posted on 2006-12-30 at 22:01. File under personal. ~ link ~ PD HowToPutting works into the public domain. In commenting on my essay Who's Afraid of the Public Domain?, Mike Linksvayer raises a practical question: how exactly do you put your creations into the public domain? On all of the essays and poems I post to the web, I place a "public domain" image (linking to <http://creativecommons.org/licenses/publicdomain/>) and the phrase "no rights reserved" (linking to <http://www.saint-andre.com/me/copyright.html>); I also place a meta tag of <meta name="DC.Rights" content="Public Domain"> in the head of each page. Is that enough? Maybe not. According to this Wikipedia page, we face the following conundrum:
Hmm. There are several problems here:
To overcome some of these challenges, Creative Commons provides a public domain dedication service whereby the author enters an author name, email address, and work title into a web form and Creative Commons sends an electronic receipt to the author and to Creative Commons. But who says that a given email address can be reliably associated with the author? A stronger method would involve the use of digital signatures, but that is prohibitively difficult for the average creative individual, who doesn't know what a digital certificate is, let alone have the tools that would make it easy to digitally sign documents, images, and the like -- heck, even I don't know how to digitally sign an HTML file with OpenSSL, and (thanks to Thunderbird) I digitally sign the email messages I send! It's clear to me that we need better tools to enable rights-assignment (including assignment to the public domain) during the authorship phase -- support in word processors, desktop publishing programs, image creation applications, music recording software, and so on. We need better ways to associate electronic files with authors, whether through digital signatures or some other means. We need ways to register public domain works with a neutral third party such as Creative Commons. Then we need to start testing these mechanisms among authors and in the courts of law and public opinion. In the meantime, I've updated my copyright policy to adhere to the guidelines that Mike mentions, and I've updated my essay to point to some helpful pages at Creative Commons. Posted on 2006-12-30 at 15:49. File under publicdomain. ~ link ~ 2006-12-29Moving CenterThe geographical migration of western civilization. Over at Rants and Raves, Steve Brown is posting a series of entries about the value and state of western civilization. In his most recent post he observes:
This is consistent with Carroll Quigley's analysis of civilizational evolution. Do you think the Greeks were happy when the Romans became the center of classical civilization? There are plenty of such examples. Typically, especially during the imperial phase of a civilization's history, the center of power moves to the periphery. Western civilization is unique in that it keeps cycling through the phases of expansion and conflict, without moving on to empire and decay. During its first phase of expansion (~970-1270), the center of western civilization was probably northern Italy; during its second phase of expansion (~1420-1650), the center moved north and west to Flanders, northern France, and (later) England; during its third phase of expansion (~1725-1915), the center moved north and west again to England and (later) America; during its fourth phase of expansion (~1945-????), the center has decidedly skipped over the Atlantic and is firmly planted in North America. There's nothing to be lamented about that fact -- better a western civilization dynamically expanding from a center in North America than a western civilization in decay. Posted on 2006-12-29 at 20:45. File under society. ~ link ~ 2006-12-28HobgoblinsMencken on practical politics. I really must read more H.L. Mencken. Here's a tasty quote found at Cafe Hayek:
Classic. Posted on 2006-12-28 at 21:51. File under politics. ~ link ~ Natural DivinityFurther thoughts on the language of religion. Regarding the language of religion (see parts one and two), the following paragraphs from my essay Objectivism: Who Needs It? seem apropos (despite the fact that quoting oneself is in poor taste):
Posted on 2006-12-28 at 21:31. File under philosophy. ~ link ~ 2006-12-27EnthusiasmMore on the language of religion. In part one of my series on the language of religion, I talked about the secular etymology of most terms we use to describe religious concepts and experience. In sum, those terms cluster around the phenomena of love, admiration, honor, respect, devotion, passion, joy, emotion, elevation, and a capacity to deeply experience and appreciate life. I know that conventionally religious people experience those phenomena in relation to their own conceptions of a higher god, and I respect that in ways I didn't respect when I was a sophomoric know-it-all. But those belief-systems are not mine -- and I think that the phenomena can be experienced in relation to life in the here-and-now, not only in relation to the above or the hereafter (as I put it in my song Pre-Emptive Strike, "your only life, there's none above / it's here that you must show your love"). Indeed, I think that the essence of spirituality is not belief, it is enthusiasm in the original Greek sense of depth of feeling, of inspiration, of being infused with a kind of shining divine presence. But since I don't think there are any specifically divine beings outside or above physical reality, I would account for that personally divine aspect in a more naturalistic manner -- as the interior and exterior manifestation of the cluster of qualities I mention above. I don't think this is far-fetched (though it is difficult to talk about clearly). After all, we humans differ endlessly. Some are smarter than others, some are more practical, some are more organized, some are more socially adept, some are more athletic, some are more graceful, some are more stable, some are more serene. And some have a greater capacity for love, admiration, honor, respect, devotion, passion, joy, emotion, elevation, and deep experience and appreciation of life. The latter are more inclined to spirituality and to experiencing the divine aspects of human life. That doesn't make them better or higher than other people. It only makes them more spiritual or religious. To my mind, belief is too easy. Anyone can believe. That's good if you care about being inclusive, since it seems that few people have a great capacity for spirituality. Don't get me wrong, I think that many people have glimmers of appreciation for the spiritual aspects of life, but after experiencing such glimmers they pick themselves up and walk off as if nothing profound had happened. Naturally, it may not necessarily be healthy to have continual and deep spiritual experiences. After all, we're physical creatures who need to work, eat, procreate, and otherwise exist in the here-and-now. The challenge as with everything else in life is to achieve balance and integration, which can take a lifetime of passion, reflection, enculturation, appreciation for beauty, openness to experience, and active wisdom. A relatively few people devote themselves to that kind of quest, which is why I think true spirituality is hard-won (and exclusive in a way that professed belief is not). Not that I think I have achieved that kind of true spirituality in my own life, mind you. I've learned enough humility to keep from being that presumptuous. But at least I can aspire... Posted on 2006-12-27 at 20:33. File under philosophy. ~ link ~ 2006-12-26More RESTTransfer this! Even before reading this post today I had been thinking more about REST and XMPP. At most, the principles of REST apply to XMPP request-response semantics (i.e., the <iq/> stanza), because that's the only time we transfer representations from one entity to another. Consider the example of an XMPP roster (a.k.a. contact list or Buddy List [tm]) from a server to a client, as explained in RFC 3921. On logging in to its server, an IM client requests its roster with an IQ get "operation" (cf. HTTP GET). We can see this as a request to read or copy the roster from the server to the client, where the XML namespace of the IQ's child element defines the "content type" in question. The server returns an IQ result containing a copy of the roster according to the server's current understanding (i.e, the server "transfers" a "representation" of the roster to the client -- perhaps we can even say that the roster is a "resource"). The client can also update the roster via an IQ set "operation" (cf. HTTP PUT) containing a roster item or deleting an existing roster item. The update is pushed out to all other connected resources via roster pushes, obviating the need for clients to poll for changes. And there are no cookies required, because the client is authenticated with its server and the authenticated connection provides enough state for the server to do its job. So far, so RESTful. This line of thinking doesn't apply to XMPP <message/> or <presence/> stanzas, which have far different, non-request-response semantics because they don't involve the "transfer of representational state" (or do they? when I receive information about your network availability, isn't your presence state transferred to me "automatically" based on a standing subscription rather than an initiated request?). And REST principles may not even apply to all uses of the <iq/> stanza (which we use in protocols like Jingle). But thinking through how REST does or does not apply to XMPP is probably a useful exercise, and may help us devise better protocol extensions. So no, I don't consider REST to be a religion (even though some people seem to); but then again I don't consider XMPP to be a religion either... ;-) Posted on 2006-12-26 at 20:29. File under jabber. ~ link ~ DoSResource exhaustion and you. The IETF recently published RFC 4732: Internet Denial-of-Service Considerations. It looks like a helpful summary of what to do -- and what not to do -- in building Internet-scale protocols. I'll definitely read it closely before we finish work on rfc3920bis. Posted on 2006-12-26 at 20:02. File under jabber. ~ link ~ SnipperdagenSome days off. I'm playing hooky this week. The Dutch word for a day off playing hooky is snipperdag -- one of my favorite Dutch words, along with stippeltje ("polkadot") and the nearly-impossible-to-pronounce verschikkelijk ("terrible"). Posted on 2006-12-26 at 19:17. File under language. ~ link ~ EnsconcedA lexicographical excursus. A call came in over the language line last weekend regarding "ensconced" ("hidden away") -- in particular, is it related at all to "sconce" (in the sense of "a lantern-like wall lamp")? Well, I'm glad you asked! It turns out there may be a relationship here, but it's a tangled tale of linguistic evolution punctuated by prefixes and suffixes, lengthening and shortening, addition and subtraction, derivation and projection. It all starts with those crazy Romans and the Latin word "do", meaning "to give" or "to put" (the English equivalents have hundreds of meanings, and so does the Latin original). Add the prefix "com/con" ("together") and you have "condo", meaning "to put together" or "to stow" (is that what people do with their condos?). Add another prefix "ab/abs" ("away") and you have "abscondo", meaning "to stow away" or "to hide away" (thus English "abscond"). So much for building up, now we start taking away. The Latin "absconsa laterna" was a "hidden lantern" or "dark lantern" (i.e., a portable lantern with a screen for protecting the flame). The medievals lopped off the "laterna", calling it "absconsa" and, eventually, "sconsa" (in Old French "esconse"). Thus the modern English "sconce" (I suppose eventually folks stopped carrying those lanterns around and attached them to a convenient wall -- or at least the design was similar). That's one kind of sconce. A second meaning of "sconce" is a small earthwork or fort, or a shelter or screen that protects one from weather or fire. Does that kind of sconce enable one to "hide away" (thus deriving from the Latin "abscondo")? Well, maybe. But probably this meaning comes from the Dutch "schans", meaning "brushwood", "bundle of sticks", "earthwork made with gabions" (familiar to those of us who have visited the famous Zaanse Schans) -- with the spelling modified to conform to Romanized English expectations. What of "ensconce" (sometimes formerly "insconce")? It originally meant "to be in a sconce", where "sconce" was used in the second sense of a protective fortification. Thus to be ensconced was to be safe from harm or attack; eventually the meaning was extended to less martial situations, so that today "ensconce" is used mainly to denote the act of settling into a place that is warm, cozy, and comfortable (what the Dutch call "gezellig"). Language is fun, eh? :-) Posted on 2006-12-26 at 18:57. File under language. ~ link ~ 2006-12-23Ye GodsThe language of religion. At this time of year it's hard to escape spirituality (it's also hard to escape materialism, but that's another matter, as it were). O holy night, the son of god, come let us adore him, glory to god in the highest, and all the rest. I became a non-believer at the age of nine, and when I was younger the language of religion made me uncomfortable. After a while it made me resentful -- why did the believers get to hold a monopoly on the words expressing deep emotion? Then it made me curious about finding a secular meaning for those terms. Can't those of us who don't believe in a higher realm outside or above our human reality also revere, worship, venerate, and adore real-life people and this-worldly values that are holy, hallowed, divine, sacred, and glorious, thus leading to experiences of exaltation, transport, rapture, ecstasy, and bliss? Fifteen years ago I wrote a youthful essay on the topic, and I'm still thinking about it. It's a difficult area to explore without becoming ungrounded. One possible ground is etymology. Consider:
Nothing here says that the object of these actions and emotions must exist in a realm outside or above this-worldly human experience. But few people are comfortable applying these terms to their friends or family or companions -- or especially to themselves (it's considered awfully impudent to think that you're glorious or divine or holy!). Interestingly, some of these words are acceptable when applied to one's spouse or lover -- "he really worships his wife", "I adore you", "our marriage is blissful", etc. Others are sometimes applied in the realm of the arts (such as Glenn Gould's notion of "ecstasy as the only proper quest for the artist"). But most of them are used primarily in the special, walled-off realm of religion. One of these days I'll write an essay about the phenomenon, because I find it endlessly fascinating... Posted on 2006-12-23 at 22:41. File under philosophy. ~ link ~ Double ConsonantsOrthographical confusion. English spelling is a morass of rules, semi-rules, and exceptions. One semi-rule is that a vowel before a single consonant is long, whereas before a double consonant it is short -- contrast snipe with snipped, rile with rill, abate with batten, and so on. But when a word has three or more syllables that rule seems to go out the window. So for instance the last two syllables of "shipper" and "worshiper" are pronounced exactly the same. Why don't we spell the latter "worshipper"? Personally I do, but "worshiper" is acceptable and seemingly preferred -- see also marvelous vs. marvellous, traveled vs. travelled, etc. Yet "prefered" is wrong and "preferred" is right. Those who learn English as a second language must find such phenomena endlessly frustrating... Posted on 2006-12-23 at 21:21. File under language. ~ link ~ 2006-12-22Do We Need Some REST?XMPP and representational state transfer. I've been trying to grok REST of late (yes, I've even read Roy Fielding's dissertation). The concept is much-hyped but, to my mind, vague. Or, at the least, I don't (yet) see how it applies to the wonderful world of Jabber. For instance, in the comments to a post by Adam Bosworth from 2003, RESTafarian Mark Baker said:
Well, it pretty much all boils down to the same thing, doesn't it? I mean, in XMPP we have some HTTP-like (i.e., request-response semantics) semantics, but they don't happen through an HTTP proxy; instead, they happen natively in our protocol (via the <iq/> stanza). Does that make XMPP IQs unRESTful? And what about semantics other than those familiar from HTTP? In XMPP we have three kinds of semantics:
It seems downright silly to say that it's a good thing to limit the use of other protocols to HTTP-like semantics, given that push semantics have launched not one but two killer apps -- email and IM. And presence too opens up a whole world of new applications (it forms the bedrock for IM). Presence is one form of pubsub semantics, but not the only one, which is why in the XMPP community we abstracted from our more basic presence functionality to define a generic pubsub protocol. And pubsub semantics seem to be of interest even to folks in the HTTP community -- heck, there are even proposals to do pubsub over HTTP by defining some new HTTP verbs (if those are standardized, are they automatically included in the universe of "HTTP-like semantics"?). By "RESTful" some folks seem to mean "it's available at a URI". Well, that's nice, but is it everything? Sure, we too have an XMPP URI scheme, but we don't typically use it to express availability of all resources. Does that make XMPP unRESTful? AFAICS, Adam Bosworth's five questions are still apropos (especially since he explicitly mentions Jabber as a desirable transport protocol). I paraphrase them as follows:
It strikes me that XMPP satisfies quite a few of the REST principles. It's client-server and stateless (no cookies here) and layered (data is separated from presentation). It has a small number of well-defined operations (IQ get and set, message, presence, pubsub publish and subscribe, data forms of type form and submit) and content types (the various XMPP extension "payloads"). Etc. But we don't make "resources" the center of our universe (I guess you'd say that entities and messages are primary in XMPP), we don't use URIs to identify all "resources", and cacheability is not critically important in our world. So I don't know that the Jabberites will ever be good RESTafarians. But given that REST seems to be something approaching a religion rather than a set of practical, helpful guidelines for building interesting services, I also don't know that it really matters all that much. :-) Posted on 2006-12-22 at 21:27. File under jabber. ~ link ~ IMBoxWhat I've been working on of late. Sorry I've been too busy for blogging much of late. So much to do, so little time. By golly, world domination is hard work! :-) Among other things, I've been working on the following:
I think 2007 is going to be an extremely good year for Jabber/XMPP technologies -- and an extremely busy year for those of us who work on them... ;-) Posted on 2006-12-22 at 20:20. File under jabber. ~ link ~ 2006-12-15BlueMusical perfection. I've listened long and hard to a lot of albums by a lot of singer-songwriters, from the medieval troubadours on up through the latest CDs. Based on my listening experience, I would single out two song-collections as the best of the bunch: Bob Dylan's Blood on the Tracks (1975) and Joni Mitchell's Blue (1972). In particular, I've been playing Blue repeatedly of late and I must say that it's close to a perfectly integrated expression of the troubadour ethos (what I like to call the individualism of the poet-musician). Posted on 2006-12-15 at 20:43. File under music. ~ link ~ 2006-12-14Inboxed InThe email wars, part 697. This evening I got my inbox down below 300 messages. Unfortunately I'm going to be offline for the next four days, and when I sync back up with my inbox it'll be quite full again. Sigh. Posted on 2006-12-14 at 21:51. File under personal. ~ link ~ 2006-12-11Email SucksHelping lost users the old-fashioned way. One of my minor duties is retrieving lost passwords for users of the jabber.org IM server. The usual process is that the clueless user sends email to stpeter@jabber.org with answers to some questions and responds to the spam challenge I send, I ssh into the server machine to verify the information and then reply via email, and the clueless user receives my emailed reply. Unfortunately, email sucks. By which I mean, I receive so much spam that I needed to institute a challenge-response system (which some users don't seem to understand) and email gets blocked by various ISPs and end-users based on blacklists and spam filters. So for instance one particular clueless user is now irate about the fact that I have not emailed him his password, despite the fact that I sent it several times -- clearly I receive his email but he doesn't receive mine. If your name is Bernd Voglmeier and you've lost your password, do the right thing by creating a new IM account (they're cheap) and contacting me via Jabber, OK? Posted on 2006-12-11 at 09:57. File under jabber. ~ link ~ 2006-12-07Wordie(st)Language addiction. I wasn't kidding when I said I was smitten with Wordie (ooo, smitten is a good word, I think I'll add that one!). With a little scripting help from Joe Hildebrand I was able to upload my existing personal word list. The result is that my list now contains over 2300 words. So it seems that I'm now the wordiest of the wordies (well, at least until someone like colleen adds some more words). What fun! Posted on 2006-12-07 at 21:51. File under language. ~ link ~ ICAMaking the Jabber network more secure. Yesterday we launched an intermediate certification authority (ICA) for the Jabber/XMPP network. Here's a short rundown:
Server admins are encouraged to register at xmpp.net, which is the first step in obtaining a certificate. (Eventually we may also issue end-user certificates, too -- stay tuned for details.) Many thanks to Eddy Nigg of StartCom for working with me in making this happen, to Alaric Dailey of Pengdows for encouragement and beta testing, and to Drupaleers Boris Mann and James Walker of Bryght for their help with the XMPP Foundation website. Posted on 2006-12-07 at 21:37. File under jabber. ~ link ~ IdealizationA quote from Malthus. Recently while reading an essay by Ross Emmett, I came across the following quote from Thomas Malthus:
A useful antidote to utopianism and idealization of any kind. Posted on 2006-12-07 at 19:35. File under philosophy. ~ link ~ 2006-12-03Getting WordieFor the love of words. Dizzy recently pointed me to Wordie, a social networking site for those who love words (they advertise themselves as "like Flickr, but without the photos"). Those who know me won't find it hard to believe that I've taken to this service like a duck to water. Indeed, some years ago I came up with a long list of my favorite words -- words that I like for their sound, their style, their rhythm, their look, their meaning, or any feature I happen to find attractive. So I've begun transferring my favorite words over to Wordie; I've gotten up through words beginning in the letter E (with a few outliers that have struck my fancy more recently), resulting in 450+ words to date. I'll be inputting more as time allows... Posted on 2006-12-03 at 22:33. File under language. ~ link ~ The Three EthicsNot all states are created equal. In a recent essay entitled The Exceptionally Entrepreneurial Society, Arnold Kling writes as follows:
Too often, those of a libertarian persuasion seem to focus only on the work ethic (or, even more narrowly, the functioning of a market economy), while ignoring the learning ethic and especially the public service ethic. They treat all governments as equivalently evil, not distinguishing between the governments of (say) Hitlerian Germany or Stalinesque Russia and the governments of (say) Periclean Athens or Jeffersonian America. To the anarcho-capitalists, all these and more are simply The State and therefore to-be-destroyed (or at least to-be-overcome). Far be it from me to argue from philosophical first principles that government is necessary, because I know that pre-state societies have existed in the past and I think that it's possible for post-state societies to emerge in the future (how likely that is, I don't know). But it's equally silly to maintain that all states are the same not only in principle but in fact. Some cultures have a stronger public service ethic than others, and those cultures have more open, honest, transparent governance. Rather than railing against all governance, libertarians might spend their time more productively by encouraging a stronger public service ethic as well as a stronger work ethic and learning ethic, since all three lead to a stronger civil society and therefore a culture that is more open to greater freedom. Posted on 2006-12-03 at 22:21. File under society. ~ link ~ Capitalism is DeadLong live capitalism. Some folks wonder why I cart my own laptop around rather than, say, accepting a computer from my employer. The short answer is that I prefer to own my means of production. Indeed, owning your means of production is just about the most anti-Marxist thing you can do. In The Anglosphere Challenge, James Bennett explains why (pp. 48-49):
Posted on 2006-12-03 at 21:53. File under society. ~ link ~ |
identity... my back pages me my group blogs albion's seedlings jabberites adam nemeth techies barry leiba wonks cafe hayek i use... i support... i listen to... fighting censorship... current threat level... flying the flag...
|
|||||
| |||||||
| |||||||